/* Final approved copy, 7 October 2026. Existing Papillon visual identity retained. */
.nav-links{gap:clamp(.7rem,1.15vw,1.35rem);font-size:.69rem}
.nav-shell{gap:1.2rem}
.brand-name sup{font-family:Arial,sans-serif;font-size:.55em;vertical-align:top;position:relative;top:-.1em;margin-left:.12em}
.hero-content .display{max-width:920px}
.cost-big{margin-top:3rem}
.price-card .price,.cost-big,.cost-math strong,.service-card .num,.step::before{font-family:'AvantGardeThin','AvantGarde',Arial,sans-serif}
.cost-section .h3{max-width:520px}
.journey-head>div{flex:1;min-width:0}
.journey-head .prose{max-width:600px}
.about-image picture,.about-image img{height:100%;width:100%;object-fit:cover}
.prose h2,.prose h3{margin:2.6rem 0 1.2rem}
.prose a:not(.button){text-decoration:underline;text-underline-offset:.22em}
.faq-item{border-bottom:1px solid var(--line);padding:1.5rem 0}
.faq-item:first-child{border-top:1px solid var(--line)}
.faq-item summary{font-size:clamp(1.1rem,2vw,1.5rem);cursor:pointer;padding-right:1rem;font-weight:600}
.faq-item .prose{padding:1.5rem 0 .25rem}
.faq-item p{margin-bottom:0}
.field small,.form-delivery-note{font-size:.82rem;color:#655a60;line-height:1.55}
.form{margin-top:1.7rem}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-status[data-state='error']{color:#982c3a}
.form-status[data-state='success']{color:#235641}
.form-status p{margin:.5rem 0}
.form-status a{text-decoration:underline}
.button:disabled{opacity:.65;cursor:wait;transform:none}
:focus-visible{outline:3px solid var(--coral-deep);outline-offset:5px}
[id]{scroll-margin-top:115px}
.footer-location{max-width:32ch}
.footer-bottom .footer-legal{display:flex;gap:1rem;flex-wrap:wrap}
.footer-logo{margin-bottom:1.5rem}
.service-card h3{overflow-wrap:anywhere}
.hero-content .display{overflow-wrap:normal}
/* Content remains available if JavaScript fails or is disabled. */
.reveal{opacity:1;transform:none}
@media(max-width:1180px){
  .menu-toggle{display:block;flex-shrink:0;cursor:pointer}
  .nav-links{display:none;position:fixed;top:88px;left:0;right:0;height:calc(100dvh - 88px);padding:2rem;overflow-y:auto;background:var(--cream);flex-direction:column;align-items:stretch;gap:.7rem;font-size:.9rem}
  .nav-open .nav-links{display:flex}
  .nav-links>a{padding:.7rem 0;font-size:inherit;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.08em}
  .nav-shell{height:88px}
}
@media(max-width:860px){
  .journey-head .prose{margin-top:2rem}
  .cost-big{font-size:clamp(5rem,18vw,9rem);margin-top:3rem}
  .hero-content .display{font-size:clamp(2.7rem,8.4vw,5rem);line-height:1.05}
}
@media(max-width:620px){
  .nav-shell{height:76px}
  .nav-links{top:76px;height:calc(100dvh - 76px);padding:1.5rem}
  .hero-content{min-height:calc(100svh - 112px)}
  .hero{min-height:calc(100svh - 112px)}
  .hero-content .display{font-size:clamp(2.65rem,11vw,4rem);line-height:1.02}
  .hero-content{padding-block:5rem 3rem}
  .hero-badge{display:none}
  .brand-name{font-size:1rem}
  .form-status.full{grid-column:1/-1}
  .footer-bottom .footer-legal{flex-direction:column;gap:.6rem}
  .contact-details dd{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Keep the approved portrait and headline in separate, responsive regions. */
.hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);min-height:0;background:var(--cream);overflow:visible}
.hero::after{display:none}
.hero-media{position:relative;inset:auto;width:100%;min-width:0;min-height:0}
.hero-media picture{position:absolute;inset:0;display:block}
.hero-media img{object-fit:cover;object-position:42% 30%}
.hero-content{width:100%;margin:0;min-width:0;min-height:clamp(660px,calc(100svh - 124px),980px);padding:clamp(3rem,5vw,6rem) clamp(2rem,4vw,5rem);justify-content:center;background:var(--cream);color:var(--ink)}
.hero-content .eyebrow{color:var(--coral-deep)}
.hero-content .display{font-size:clamp(3.15rem,4.3vw,5.6rem);line-height:1.04;letter-spacing:-.035em;max-width:700px;text-wrap:balance}
.hero-content .hero-sub{flex-wrap:wrap;gap:.65rem;font-size:.8rem;line-height:1.6;letter-spacing:.12em}
.hero-content .hero-sub span:not(:last-child)::after{margin-left:.65rem}
.hero-content .hero-actions{margin-top:2rem;gap:.75rem}
.hero-content .button.light{border-color:var(--ink);color:var(--ink)}
.hero-content .button.light:hover{background:var(--ink);color:white}
.hero-badge{display:none}

/* Both arrow pieces share one reserved icon area, including wrapped links. */
.text-link{display:inline-block;align-self:flex-start;position:relative;min-width:0;max-width:100%;padding-right:1.7rem;line-height:1.6;overflow:visible}
.text-link::before,.text-link::after{content:'';position:absolute;display:block;top:50%;margin:0;flex:none;pointer-events:none;transition:transform .2s ease}
.text-link::before{right:.35rem;width:.9rem;height:1.6px;background:currentColor;border:0;transform:translateY(-50%);transform-origin:center}
.text-link::after{right:.3rem;width:.5rem;height:.5rem;background:none;border-top:1.6px solid currentColor;border-right:1.6px solid currentColor;transform:translateY(-50%) rotate(45deg);transform-origin:center}
.text-link:hover::before{transform:translate(2px,-50%)}
.text-link:hover::after{transform:translate(2px,-50%) rotate(45deg)}
.menu-arrow,.menu-arrow svg{overflow:visible;flex-shrink:0}
.button,.social-button{white-space:normal;line-height:1.55;text-align:center;max-width:100%}
.button svg,.social-button svg{flex-shrink:0;overflow:visible}

@media(max-width:1100px) and (min-width:861px){
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .hero-content{min-height:660px;padding:3rem 2rem}
  .hero-content .display{font-size:clamp(2.85rem,4.9vw,3.7rem)}
}
@media(max-width:860px){
  .hero{grid-template-columns:1fr}
  .hero-media{aspect-ratio:1600/1490;max-height:660px}
  .hero-media img{object-position:42% 26%}
  .hero-content{min-height:0;padding:3.5rem max(20px,5vw) 4rem}
  .hero-content .display{font-size:clamp(2.7rem,6.8vw,4.6rem);max-width:730px}
  .hero-content .hero-actions{width:auto}
}
@media(max-width:620px){
  .hero-content{padding:2.7rem 20px 3rem}
  .hero-content .eyebrow{font-size:.67rem;letter-spacing:.13em}
  .hero-content .display{font-size:clamp(2.55rem,9.7vw,3.65rem);line-height:1.08;letter-spacing:-.035em}
  .hero-content .hero-sub{font-size:.72rem;gap:.55rem;margin-top:1.5rem}
  .hero-content .hero-sub span:not(:last-child)::after{margin-left:.55rem}
  .hero-content .hero-actions{width:100%;flex-direction:column;align-items:stretch}
  .hero-content .hero-actions .button{flex:none;width:100%}
}

/* Brand coral stays decorative; readable text and interactive states use ink. */
:root{--coral-action:#A53645}
.eyebrow,.hero-content .eyebrow,.brand-name{color:var(--coral-action)}
.page-hero.plum .eyebrow,.page-hero.ink .eyebrow{color:#FFD1D4}
.cta-band .eyebrow{color:var(--ink)}
.button.coral{color:var(--ink)}
.button.coral:hover{background:var(--coral-action);border-color:var(--coral-action);color:white}
.cost-section,.cost-section .eyebrow{color:var(--ink)}
.cost-math span{opacity:1}
.price-card.featured,.price-card.featured p{color:var(--ink)}
.price-card.featured .eyebrow{color:var(--ink)!important}
.price-card.featured .button.light{border-color:var(--ink);color:var(--ink)}
.price-card.featured .button.light:hover{background:var(--ink);color:white}
.social-button:hover{color:var(--coral-action)}
.footer a:hover,.footer a:focus-visible{color:var(--coral)}
.footer-socials .social-button:hover{color:var(--ink)}
::selection{background:var(--coral);color:var(--ink)}
:focus-visible{outline:3px solid var(--coral-action);outline-offset:5px}
.cost-section :focus-visible,.price-card.featured :focus-visible{outline-color:var(--ink)}
.footer :focus-visible,.about-tease :focus-visible,.testimonials :focus-visible{outline-color:#FFD1D4}
