:root{--logo-shell:url(../img/brand/logo-shell.png);--logo-word:url(../img/brand/logo-word.png)}
/* Layout: an Italian palazzo in print. Uppercase Gilda Display headlines, Cormorant italics for the
   voice, Tenor Sans (a flared sans, like the Gemelli wordmark) for reading and labels.
   Warm ivory and sand grounds, terracotta and olive from the logo. Arched, offset, overlapping
   images that drift as you scroll. Light-only by design. */
:root{
  color-scheme:light;
  --bg:#FAF6F0;          /* ivory */
  --sand:#F2EBE1;        /* limestone */
  --blush:#F4E6DD;       /* inside of the shell */
  --white:#FFFFFF;
  --ink:#45362D;         /* espresso, headings */
  --text:#6A5B51;        /* body */
  --soft:#9A8B80;        /* fine print on large text only */
  --line:#E4D9CB;
  --terracotta:#B05A42;  /* buttons and links */
  --terracotta-dk:#93472F;
  --coral:#D1725D;       /* logo coral, large accents */
  --olive:#7D8F4E;       /* logo olive */
  --olive-text:#5E6F3D;
  --on-dark:#FAF6F0;
  --logo-card:#FFFFFF;
  --display:"Gilda Display","Didot","Bodoni 72",Georgia,serif;
  --italic:"Cormorant Garamond","Cormorant",Garamond,Georgia,serif;
  --sans:"Tenor Sans","Optima","Candara","Segoe UI",system-ui,sans-serif;
  --gutter:max(20px,env(safe-area-inset-left,0px));
  --gutter-r:max(20px,env(safe-area-inset-right,0px));
  --wrap:1240px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-stopped{overflow:clip}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.8;letter-spacing:.01em;-webkit-font-smoothing:antialiased;overflow-x:clip}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--bg)}
a{color:inherit}
p{margin:0}
::selection{background:var(--blush);color:var(--ink)}
h1,h2,h3{font-family:var(--display);font-weight:400;color:var(--ink);margin:0;text-wrap:balance;text-transform:uppercase;letter-spacing:.04em;line-height:1.08}
h1{font-size:clamp(2.5rem,6vw,5.4rem)}
h2{font-size:clamp(1.9rem,3.8vw,3.3rem)}
h3{font-size:clamp(1.15rem,1.6vw,1.35rem);letter-spacing:.08em}
em.it,.it{font-family:var(--italic);font-style:italic;font-weight:300;text-transform:none;letter-spacing:0;color:var(--coral)}
h1 em.it,h2 em.it{font-size:1.12em;line-height:1}
.eyebrow{display:inline-block;font-family:var(--sans);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--olive-text)}
.lede{font-family:var(--italic);font-style:italic;font-weight:400;font-size:clamp(1.25rem,1.9vw,1.55rem);line-height:1.5;color:var(--text);max-width:42ch}
.big-italic{font-family:var(--italic);font-style:italic;font-weight:300;font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.3;color:var(--ink)}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter-r)}
section{padding-block:clamp(44px,5.5vw,80px)}
/* sections that share a background: no double gap */
section:not([class]) + section:not([class]),.intro + section{padding-top:0}
:focus-visible{outline:1px solid var(--terracotta);outline-offset:4px}

/* buttons and links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--sans);font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:var(--on-dark);background:var(--terracotta);border:1px solid var(--terracotta);padding:17px 30px;cursor:pointer;transition:background .5s var(--ease),color .5s var(--ease),border-color .5s var(--ease)}
.btn:hover{background:var(--terracotta-dk);border-color:var(--terracotta-dk)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--on-dark)}
.link{justify-self:start;align-self:start;position:relative;display:inline-flex;align-items:center;gap:12px;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:var(--ink);padding-bottom:6px;cursor:pointer;background:none;border:0;font-family:var(--sans)}
.link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:right;transition:transform .7s var(--ease-out)}
.link:hover::after{transform:scaleX(0)}
.link .arr{transition:transform .5s var(--ease-out)}
.link:hover .arr{transform:translateX(6px)}

/* logo */
.logo-shell{display:block;aspect-ratio:300/313;background:var(--olive);-webkit-mask:var(--logo-shell) center/contain no-repeat;mask:var(--logo-shell) center/contain no-repeat}
.logo-word{display:block;aspect-ratio:560/169;background:var(--coral);-webkit-mask:var(--logo-word) center/contain no-repeat;mask:var(--logo-word) center/contain no-repeat}

/* header */
.site-header{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:50;transition:background .6s var(--ease),border-color .6s var(--ease),transform .6s var(--ease);border-bottom:1px solid transparent}
.site-header.solid{background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:var(--line)}
.site-header.away{transform:translateY(-110%)}
.site-header .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding-block:18px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;justify-self:center}
.brand .logo-shell{width:34px}
.brand .logo-word{width:118px}
.nav{display:flex;gap:30px;align-items:center}
.nav a{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:var(--ink);position:relative;padding-block:6px}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav.right{justify-self:end}
.nav .btn{padding:12px 20px;font-size:.68rem;color:var(--on-dark)}
.nav .btn::after{display:none}
.menu-toggle{display:none;justify-self:start;background:none;border:0;padding:8px 0;font:inherit;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.mobile-menu{position:fixed;inset:0;z-index:55;background:var(--bg);display:grid;align-content:center;justify-items:center;gap:18px;padding:max(90px,env(safe-area-inset-top,0px)) var(--gutter-r) 40px var(--gutter);clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease-out);visibility:hidden}
.mobile-menu.open{clip-path:inset(0);visibility:visible}
.mobile-menu a{font-family:var(--display);font-size:clamp(1.8rem,8vw,2.6rem);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);text-decoration:none}
.mobile-menu small{margin-top:24px;font-family:var(--italic);font-style:italic;font-size:1.2rem}
@media (max-width:980px){
  .nav{display:none}
  .menu-toggle{display:block}
  .site-header .wrap{grid-template-columns:1fr auto 1fr}
  .site-header .cta-mobile{justify-self:end;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terracotta);text-decoration:none}
}
@media (min-width:981px){.cta-mobile{display:none}}
main{padding-top:84px}

/* photos */
.photo{position:relative;overflow:hidden;margin:0;background:var(--sand);border-radius:3px;max-width:100%}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transform-origin:center;will-change:transform}
.photo.par img{top:-9%;height:118%}
.photo.round{border-radius:24px}
.photo.portrait img{object-position:50% 30%}
.cap{font-family:var(--italic);font-style:italic;font-size:1rem;color:var(--soft);margin-top:10px}

/* reveal on scroll (only applied once JS has decided an element starts off-screen) */
.pre{opacity:0;transform:translate3d(0,36px,0)}
.pre.in{opacity:1;transform:none;transition:opacity 1.3s var(--ease-out) var(--d,0s),transform 1.3s var(--ease-out) var(--d,0s)}
.photo.pre{opacity:1;transform:none;clip-path:inset(18% 0 0 0 round 3px)}
.photo.pre img{scale:1.18}
.photo.pre.in{clip-path:inset(0 0 0 0 round 3px);transition:clip-path 1.6s var(--ease-out) var(--d,0s)}
.photo.pre.in img{scale:1;transition:scale 2.2s var(--ease-out) var(--d,0s)}
.line-draw{height:1px;background:var(--line);transform-origin:left}
.line-draw.pre{opacity:1;transform:scaleX(0)}
.line-draw.pre.in{transform:scaleX(1);transition:transform 1.6s var(--ease-out) var(--d,0s)}

/* page entrance */
.view{display:block}
.view.enter .page-head .wrap > *, .view.enter .hero-copy > *{animation:rise 1.4s var(--ease-out) both}
.view.enter .page-head .wrap > *:nth-child(2), .view.enter .hero-copy > *:nth-child(2){animation-delay:.12s}
.view.enter .page-head .wrap > *:nth-child(3), .view.enter .hero-copy > *:nth-child(3){animation-delay:.24s}
.view.enter .page-head .wrap > *:nth-child(4), .view.enter .hero-copy > *:nth-child(4){animation-delay:.36s}
@keyframes rise{from{opacity:0;transform:translate3d(0,40px,0)}to{opacity:1;transform:none}}
@keyframes heroimg{from{clip-path:inset(100% 0 0 0 round 3px)}to{clip-path:inset(0 0 0 0 round 3px)}}
@keyframes slowzoom{from{scale:1.2}to{scale:1}}

/* hero */
.hero{padding-block:clamp(40px,6vw,90px) clamp(80px,10vw,140px)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,96px);align-items:center}
.hero-copy{display:grid;gap:30px;justify-items:start}
.hero h1{font-size:clamp(2.6rem,6.4vw,5.8rem)}
.hero h1 .it{display:block;margin-top:.08em}
.hero .actions{display:flex;flex-wrap:wrap;gap:28px;align-items:center}
.collage{position:relative;padding-bottom:16%}
.collage .main{aspect-ratio:3/4.1;width:82%;margin-left:auto}
.view.enter .collage .main{animation:heroimg 1.8s var(--ease-out) .15s both}
.view.enter .collage .main img{animation:slowzoom 3s var(--ease-out) .15s both}
.collage .small{position:absolute;left:0;bottom:0;width:52%;aspect-ratio:4/3;border:10px solid var(--bg);border-radius:4px}
.view.enter .collage .small{animation:rise 1.6s var(--ease-out) .6s both}
.collage .tag-note{position:absolute;right:0;bottom:2%;font-family:var(--italic);font-style:italic;font-size:1.05rem;color:var(--soft);max-width:14ch;text-align:right}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.collage{max-width:520px;margin-inline:auto;width:100%}}

/* full-bleed hero slideshow */
.hero-full{position:relative;height:min(100svh,960px);min-height:580px;margin-top:-84px;padding:0;overflow:hidden;color:var(--on-dark);background:#2B2420}
.hs{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.8s var(--ease)}
.hs.on{opacity:1;z-index:1}
.hs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.hs.on img{animation:kenburns 7s linear both}
@keyframes kenburns{from{transform:scale(1.14)}to{transform:scale(1.04)}}
.hero-shade{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgb(30 22 18 / .38) 0%,rgb(30 22 18 / 0) 26%,rgb(30 22 18 / 0) 45%,rgb(30 22 18 / .58) 100%)}
.hero-inner{position:relative;z-index:3;height:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding-block:0 clamp(40px,7vw,90px)}
.hero-full .hero-copy{display:grid;gap:24px;justify-items:start;max-width:760px}
.hero-full h1{color:var(--on-dark);font-size:clamp(2.5rem,6vw,5.4rem)}
.hero-full h1 .it{display:block;color:var(--on-dark)}
.hero-full .eyebrow,.hero-full .lede{color:var(--on-dark)}
.hero-full .lede{max-width:40ch}
.hero-full .actions{display:flex;flex-wrap:wrap;gap:28px;align-items:center}
.btn.light{background:var(--on-dark);color:var(--ink);border-color:var(--on-dark)}
.btn.light:hover{background:transparent;color:var(--on-dark)}
.link.light{color:var(--on-dark)}
.hero-bars{display:flex;gap:8px;align-self:flex-end;padding-bottom:12px}
.hero-bars span{position:relative;width:44px;height:1px;background:rgb(250 246 240 / .35);overflow:hidden}
.hero-bars span::after{content:"";position:absolute;inset:0;background:var(--on-dark);transform:scaleX(0);transform-origin:left}
.hero-bars span.on::after{animation:bar 5s linear both}
.hero-bars span.done::after{transform:scaleX(1)}
@keyframes bar{to{transform:scaleX(1)}}
@media (max-width:640px){.hero-bars{display:none}.hero-full{height:min(92svh,760px)}}
/* header over the hero */
.site-header.on-hero .nav a:not(.btn),.site-header.on-hero .menu-toggle,.site-header.on-hero .cta-mobile{color:var(--on-dark)}
.site-header.on-hero .logo-shell,.site-header.on-hero .logo-word{background:var(--on-dark)}
.site-header.on-hero .nav .btn{background:transparent;border-color:var(--on-dark)}

/* marquee */
.marquee{display:grid;justify-items:center;gap:10px;border-block:1px solid var(--line);padding-block:20px 18px}
.mq-label{font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;color:var(--olive-text)}
.mq-window{overflow:hidden;width:100%;white-space:nowrap;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee-track{display:inline-flex;gap:30px;padding-right:30px;animation:marquee 50s linear infinite}
.marquee-track span{font-family:var(--italic);font-style:italic;font-weight:400;font-size:clamp(1.15rem,1.6vw,1.4rem);color:var(--ink)}
.marquee-track i{font-style:normal;color:var(--coral);font-size:.7rem;align-self:center}
@keyframes marquee{to{transform:translateX(-50%)}}

/* select-bookings statement */
.statement{background:var(--blush);text-align:center}
.statement .wrap{display:grid;justify-items:center;gap:28px}
.statement .logo-shell{width:46px;background:var(--coral)}
.statement p{font-family:var(--italic);font-style:italic;font-weight:300;font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.3;color:var(--ink);max-width:28ch}
.statement small{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--olive-text)}

/* intro */
.intro .photo{aspect-ratio:4/4.4}
.intro .copy{max-width:none}
.intro .copy h2{margin-bottom:8px}

/* text overlapping images */
.ov{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:center}
.ov > .photo,.ov > .duo{grid-row:1;grid-column:1/9}
.ov > .card{grid-row:1;grid-column:7/13;position:relative;z-index:2;background:var(--card-bg,var(--white));padding:clamp(30px,4.5vw,64px);display:grid;gap:20px;justify-items:start;box-shadow:0 40px 80px -60px rgb(69 54 45 / .35)}
.ov.flip > .photo,.ov.flip > .duo{grid-column:5/13}
.ov.flip > .card{grid-column:1/8}
@media (max-width:860px){
  .ov{grid-template-columns:1fr}
  .ov > .photo,.ov > .duo,.ov.flip > .photo,.ov.flip > .duo{grid-column:1;grid-row:1}
  .ov > .card,.ov.flip > .card{grid-column:1;grid-row:2;margin:-70px 14px 0}
}

/* wide band */
.band{padding-block:0}
.band .photo{aspect-ratio:21/9}
@media (max-width:700px){.band .photo{aspect-ratio:4/3}}

/* services, staggered */
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:28px;flex-wrap:wrap;margin-bottom:clamp(28px,3.5vw,48px)}
.sec-head > div{display:grid;gap:16px}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,36px);align-items:start}
.svc-card{display:grid;gap:16px;text-decoration:none}
.svc-card:nth-child(even){margin-top:clamp(0px,8vw,110px)}
.svc-card .photo{aspect-ratio:3/4}
.svc-card .photo img{transition:scale 1.6s var(--ease-out)}
.svc-card:hover .photo img{scale:1.06}
.svc-card .fee{font-family:var(--italic);font-style:italic;font-size:1.25rem;color:var(--coral)}
.svc-card p{font-size:.95rem}
@media (max-width:980px){.svc-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.svc-grid{grid-template-columns:1fr}.svc-card:nth-child(even){margin-top:0}}

/* founders */
.founders{background:var(--sand)}
.founders{--card-bg:var(--bg)}
.statement .link{justify-self:center}
.founders-photo{aspect-ratio:1/1}
.founders blockquote{margin:0}


/* horizontal drifting gallery */
.drift{overflow:hidden;padding-bottom:clamp(72px,11vw,150px)}
.drift-track{display:flex;gap:clamp(16px,2.4vw,32px);align-items:flex-start;padding-left:var(--gutter);will-change:transform;width:max-content}
.drift-track .photo{flex:none;width:clamp(220px,26vw,380px)}
.drift-track .photo:nth-child(3n+1){aspect-ratio:3/4}
.drift-track .photo:nth-child(3n+2){aspect-ratio:4/3;width:clamp(280px,34vw,500px);margin-top:clamp(40px,6vw,90px)}
.drift-track .photo:nth-child(3n){aspect-ratio:2/3;margin-top:clamp(10px,2vw,30px)}
.drift-track .photo:nth-child(4n+1){border-radius:3px}
@media (max-width:700px){.drift{overflow-x:auto;scrollbar-width:none}.drift-track{transform:none!important}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(20px,3vw,40px)}
.step{display:grid;gap:12px;align-content:start}
.step .num{font-family:var(--italic);font-style:italic;font-weight:300;font-size:2.6rem;line-height:1;color:var(--coral)}
.step b{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);font-size:1rem}
.step p{font-size:.92rem}
@media (max-width:980px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* testimonial slider */
.voices{position:relative;overflow:hidden;text-align:center;color:var(--on-dark);background:#3A2E27}
.voices-bg{position:absolute!important;inset:0;border-radius:0!important;margin:0}
.voices-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgb(35 26 21 / .62),rgb(35 26 21 / .55))}
.voices .wrap{position:relative;z-index:2}
.voices .eyebrow,.voices .link{color:var(--on-dark)}
.voices .link{justify-self:center}
.voices .dots span{background:rgb(250 246 240 / .35)}
.voices .slider-ctrl button{border-color:rgb(250 246 240 / .45);color:var(--on-dark)}
.voices .slider-ctrl button:hover{border-color:var(--on-dark)}
.voices .wrap{display:grid;justify-items:center;gap:34px}
.slides{position:relative;width:100%;max-width:900px;min-height:clamp(260px,30vw,300px)}
.slide{position:absolute;inset:0;display:grid;align-content:center;gap:26px;opacity:0;transform:translateY(16px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease-out);pointer-events:none}
.slide.on{opacity:1;transform:none;pointer-events:auto}
.slide p{font-family:var(--italic);font-style:italic;font-weight:300;font-size:clamp(1.45rem,2.7vw,2.25rem);line-height:1.35;color:inherit}
.voices .slide p{color:var(--on-dark)}
.voices .slide cite{color:rgb(250 246 240 / .8)}
.slide cite{font-style:normal;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--olive-text)}
.slider-ctrl{display:flex;gap:22px;align-items:center}
.slider-ctrl button{background:none;border:1px solid var(--line);width:46px;height:46px;border-radius:50%;cursor:pointer;color:var(--ink);font-size:1rem;transition:border-color .4s,background .4s}
.slider-ctrl button:hover{border-color:var(--ink)}
.dots{display:flex;gap:8px}
.dots span{width:6px;height:6px;border-radius:50%;background:var(--line);transition:background .4s,transform .4s}
.dots span.on{background:var(--coral);transform:scale(1.3)}

/* guides */
.guides{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,34px);align-items:start}
.guide{display:grid;gap:14px;align-content:start}
.guide:nth-child(even){margin-top:clamp(0px,5vw,60px)}
.guide .photo{aspect-ratio:800/1131;box-shadow:0 30px 50px -30px rgb(69 54 45 / .45);transition:transform .9s var(--ease-out),box-shadow .9s var(--ease-out)}
.guide:hover .photo{transform:translateY(-8px) rotate(-.6deg);box-shadow:0 40px 60px -30px rgb(69 54 45 / .5)}
.guide .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.guide h3{font-size:1rem}
.guide .price{font-family:var(--italic);font-style:italic;font-size:1.3rem;color:var(--coral);font-variant-numeric:tabular-nums}
.guide .buy{justify-self:start}
@media (max-width:980px){.guides{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.guides{grid-template-columns:1fr}.guide:nth-child(even){margin-top:0}}

/* partner */
.partner{background:var(--sand)}
.partner .wrap{display:grid;gap:clamp(36px,5vw,60px)}
.partner .top{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,6vw,90px);align-items:end}
.partner-logos{display:grid;gap:12px}
.partner-logos figure{margin:0;background:var(--logo-card);padding:clamp(14px,3.5vw,48px);border-radius:3px}
.partner-logos img{display:block;width:100%;height:auto}
.partner-logos .cap{margin:0}
@media (max-width:820px){.partner .top{grid-template-columns:1fr}}

/* closing image with text */
.closing{position:relative;padding-block:0}
.closing .photo{aspect-ratio:21/10;min-height:420px}
.closing .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgb(40 28 22 / .05),rgb(40 28 22 / .45))}
.closing .over{position:absolute;inset:auto 0 0 0;z-index:2;display:grid;justify-items:center;gap:22px;text-align:center;padding:clamp(28px,6vw,80px) 20px}
.closing h2{color:var(--on-dark)}
.closing h2 .it{color:var(--on-dark)}
.closing .btn{background:var(--on-dark);color:var(--ink);border-color:var(--on-dark)}
.closing .btn:hover{background:transparent;color:var(--on-dark)}

/* inner pages */
.page-head{padding-block:clamp(40px,5vw,72px) clamp(24px,3vw,40px)}
.page-head + section,.page-head + .wrap{padding-top:clamp(12px,2vw,28px)}
.page-head .wrap{display:grid;gap:22px;justify-items:start}
.pair{display:grid;grid-template-columns:1fr 1.7fr;gap:clamp(16px,2.4vw,32px);align-items:end}
.pair .photo:first-child{aspect-ratio:3/4;border-radius:3px}
.pair .photo:last-child{aspect-ratio:3/2;margin-bottom:clamp(0px,6vw,80px)}
@media (max-width:640px){.pair{grid-template-columns:1fr}.pair .photo:last-child{margin-bottom:0}}
.svc-list{display:grid;padding-block:clamp(40px,6vw,80px) 0}
.svc-row{display:grid;grid-template-columns:.9fr 1.4fr .7fr;gap:clamp(20px,4vw,60px);padding-block:clamp(36px,4vw,56px);border-top:1px solid var(--line)}
.svc-row h2{font-size:clamp(1.4rem,2.4vw,1.9rem)}
.svc-row .body{display:grid;gap:16px;max-width:60ch}
.svc-row ul{margin:0;padding-left:1.1em;display:grid;gap:6px}
.svc-row li::marker{color:var(--coral)}
.svc-row .meta{display:grid;gap:14px;align-content:start;justify-items:start}
.svc-row .meta .fee{font-family:var(--italic);font-style:italic;font-size:2rem;line-height:1;color:var(--coral)}
.svc-row .meta small{font-size:.85rem;line-height:1.6}
@media (max-width:860px){.svc-row{grid-template-columns:1fr}}
.tag{display:inline-block;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--terracotta);border:1px solid currentColor;padding:4px 10px}
.band-photo .photo{aspect-ratio:21/9}
@media (max-width:640px){.band-photo .photo{aspect-ratio:4/3}}
.about .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,7vw,110px);align-items:start}
.about .photo{aspect-ratio:3/4.2;position:sticky;top:120px}
.about .copy{display:grid;gap:22px;max-width:58ch}
.name-note{display:flex;flex-wrap:wrap;gap:12px 40px;padding-block:22px;border-block:1px solid var(--line)}
.name-note span{display:block;font-family:var(--italic);font-style:italic;font-size:2rem;line-height:1.1;color:var(--ink)}
.name-note small{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--olive-text)}
@media (max-width:820px){.about .wrap{grid-template-columns:1fr}.about .photo{position:relative;top:0;max-width:440px}}
.strip{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:clamp(14px,2vw,28px);align-items:center}
.strip .photo{aspect-ratio:3/4}
.strip .photo:nth-child(2){aspect-ratio:3/4.4;border-radius:3px}
@media (max-width:640px){.strip{grid-template-columns:1fr 1fr}.strip .photo:nth-child(2){display:none}}
.reviews-all{columns:2 340px;column-gap:clamp(30px,5vw,70px)}
.quote{break-inside:avoid;margin:0 0 46px;padding-bottom:40px;border-bottom:1px solid var(--line);display:grid;gap:18px}
.quote p{font-family:var(--italic);font-style:italic;font-weight:300;font-size:1.35rem;line-height:1.45;color:var(--ink)}
.quote cite{font-style:normal;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--olive-text)}
.faq-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(36px,6vw,90px);align-items:start}
.faq-photo{position:sticky;top:120px;aspect-ratio:2/3;border-radius:3px}
@media (max-width:900px){.faq-layout{grid-template-columns:1fr}.faq-photo{display:none}}
.faq-group{margin-top:56px}.faq-group:first-child{margin-top:0}
.faq-group > .eyebrow{margin-bottom:10px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:24px;padding-block:24px;font-family:var(--italic);font-weight:400;font-size:1.45rem;line-height:1.3;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);color:var(--coral);font-size:1.3rem;line-height:1.2;transition:transform .5s var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding-bottom:26px;max-width:66ch}
.contact .wrap{display:grid;grid-template-columns:.9fr 1.2fr;gap:clamp(40px,7vw,110px);align-items:start}
.contact aside{display:grid;gap:30px}
.mail{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.mail code{font-family:var(--italic);font-style:italic;font-size:1.7rem;color:var(--ink);user-select:all}
.contact aside a[href*="instagram"]{font-family:var(--italic)!important;font-style:italic;color:var(--ink)}
.copy-btn{font:inherit;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;background:none;border:1px solid var(--line);color:var(--text);padding:6px 14px;cursor:pointer}
.note{background:var(--blush);padding:24px 26px}
.note b{display:block;margin-bottom:6px;font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}
.contact aside .photo{border-radius:3px;aspect-ratio:4/5!important}
form.enquiry{display:grid;grid-template-columns:1fr 1fr;gap:26px 24px}
.field{display:grid;gap:8px;min-width:0}
.field.full{grid-column:1/-1}
label{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text)}
input,select,textarea{font:inherit;font-size:1rem;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 0;width:100%;transition:border-color .4s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--terracotta)}
textarea{min-height:120px;resize:vertical}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips input{position:absolute;opacity:0;width:1px;height:1px}
.chips label{font-size:.8rem;letter-spacing:.06em;text-transform:none;color:var(--ink);border:1px solid var(--line);padding:9px 16px;cursor:pointer;transition:background .4s,color .4s,border-color .4s}
.chips input:checked + label{background:var(--ink);color:var(--on-dark);border-color:var(--ink)}
.chips input:focus-visible + label{outline:1px solid var(--terracotta);outline-offset:3px}
.form-msg{grid-column:1/-1;padding:18px 20px;background:var(--blush)}
.form-note{font-size:.85rem}
@media (max-width:860px){.contact .wrap{grid-template-columns:1fr}}
@media (max-width:520px){form.enquiry{grid-template-columns:1fr}}
.legal-copy{display:grid;gap:18px;max-width:70ch}
.legal-copy h2{font-size:clamp(1.2rem,2vw,1.5rem);margin-top:28px;letter-spacing:.08em}
.legal-copy h2:first-child{margin-top:0}
.legal-copy b{color:var(--ink);font-weight:400}
.legal-copy ul{margin:0;padding-left:1.1em;display:grid;gap:8px}

/* what happens next */
.next{padding-block:0 clamp(48px,6vw,80px)}
.next .wrap{display:grid;gap:30px}
.next-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,40px);border-top:1px solid var(--line);padding-top:30px}
.next-steps div{display:grid;gap:10px;align-content:start}
.next-steps .num{font-family:var(--italic);font-style:italic;font-weight:300;font-size:2.4rem;line-height:1;color:var(--coral)}
.next-steps b{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}
@media (max-width:760px){.next-steps{grid-template-columns:1fr}}
[data-view="contact"] .page-head{padding-top:clamp(36px,5vw,72px)}
[data-view="contact"] .page-head h1{font-size:clamp(2.2rem,4.6vw,4rem)}
.next-list{display:grid;gap:18px}
.next-list ol{list-style:none;margin:0;padding:0;display:grid;gap:20px;border-top:1px solid var(--line);padding-top:20px}
.next-list li{display:grid;grid-template-columns:44px 1fr;gap:6px}
.next-list .num{font-family:var(--italic);font-style:italic;font-weight:300;font-size:1.9rem;line-height:1;color:var(--coral)}
.next-list b{display:block;font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);font-size:.95rem;margin-bottom:4px}
.next-list p{font-size:.92rem;line-height:1.65}
/* services overview + detail */
.svc-index{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.svc-index button{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:20px 16px;border-bottom:1px solid var(--line);margin-right:clamp(16px,3vw,40px);transition:background .4s var(--ease)}
.svc-index button span:first-child{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;color:var(--ink);font-size:1rem}
.svc-index .pr{font-family:var(--italic);font-style:italic;font-size:1.25rem;color:var(--coral)}
.svc-index button:hover{background:var(--white)}
.svc-index button:hover span:first-child{color:var(--terracotta)}
.svc-index .go{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;font-family:var(--sans);font-style:normal;font-size:.85rem;color:var(--terracotta);transition:background .4s,color .4s,border-color .4s,transform .5s var(--ease-out)}
.svc-index button:hover .go{background:var(--terracotta);border-color:var(--terracotta);color:var(--on-dark);transform:translateY(3px)}
.svc-hint{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-family:var(--italic);font-style:italic;font-size:1.1rem;color:var(--text)}
.svc-index button:focus-visible{outline:1px solid var(--terracotta);outline-offset:4px}
@media (max-width:860px){.svc-index{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.svc-index{grid-template-columns:1fr}.svc-index button{margin-right:0}}
.svc-detail{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,6vw,100px);align-items:center;padding-block:clamp(32px,4vw,56px);border-top:1px solid var(--line);scroll-margin-top:100px}
.svc-detail.flip .photo{order:2}
.svc-detail.text-only{grid-template-columns:1fr}
.svc-detail.text-only .inner{grid-template-columns:1.1fr .9fr;display:grid;gap:clamp(24px,5vw,80px)}
.svc-detail .photo{aspect-ratio:4/5}
.svc-detail .inner{display:grid;gap:18px;justify-items:start}
.svc-detail .fee{font-family:var(--italic);font-style:italic;font-size:2rem;line-height:1;color:var(--coral)}
.svc-detail ul{margin:0;padding-left:1.1em;display:grid;gap:6px}
.svc-detail li::marker{color:var(--coral)}
.svc-detail small{font-size:.85rem;line-height:1.6}
@media (max-width:820px){.svc-detail,.svc-detail.text-only .inner{grid-template-columns:1fr}.svc-detail.flip .photo{order:0}.svc-detail .photo{max-width:420px;aspect-ratio:4/3.4}}

.svc-detail.ov{grid-template-columns:repeat(12,minmax(0,1fr));gap:0}
.svc-detail.ov .photo{aspect-ratio:5/4}
@media (max-width:860px){.svc-detail.ov{grid-template-columns:1fr}.svc-detail.ov .photo{max-width:none;aspect-ratio:4/3}}

/* reviews */
.rv-feature{padding-bottom:clamp(36px,4vw,56px)}
.rv-feature .photo{aspect-ratio:3/2}
.rv-feature .card p{font-family:var(--italic);font-style:italic;font-weight:300;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.35;color:var(--ink)}
.rv-feature .card cite{font-style:normal;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--olive-text)}
.reviews-all .photo{break-inside:avoid;margin:0 0 46px;aspect-ratio:4/5}

/* guide pages */
.guide a.cover-link{display:block;text-decoration:none}
.g-detail{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(36px,7vw,110px);align-items:start}
.g-detail .photo{aspect-ratio:800/1131;position:sticky;top:110px;box-shadow:0 40px 70px -40px rgb(69 54 45 / .5)}
.g-detail .copy{display:grid;gap:22px;justify-items:start;max-width:58ch}
.g-detail .price{font-family:var(--italic);font-style:italic;font-size:2.2rem;line-height:1;color:var(--coral)}
.g-detail .deliver{display:flex;gap:12px;align-items:center;padding:16px 20px;background:var(--blush);color:var(--ink);font-size:.92rem}
.back{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:var(--text)}
.back:hover{color:var(--terracotta)}
.more-guides{border-top:1px solid var(--line);margin-top:clamp(40px,5vw,64px);padding-top:clamp(32px,4vw,52px)}
.more-guides .guides{grid-template-columns:repeat(3,1fr)}
@media (max-width:820px){.g-detail{grid-template-columns:1fr}.g-detail .photo{position:relative;top:0;max-width:380px}.more-guides .guides{grid-template-columns:1fr 1fr}}

/* footer */
footer.site{background:var(--sand);padding-block:clamp(48px,6vw,80px) 32px}
footer.site .wrap{display:grid;gap:56px}
footer .big{display:grid;justify-items:center;gap:22px;text-align:center}
footer .big .logo-shell{width:64px}
footer .big .logo-word{width:min(360px,70vw)}
footer .big p{font-family:var(--italic);font-style:italic;font-size:1.3rem;color:var(--text)}
footer .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-top:1px solid var(--line);padding-top:40px}
footer .cols ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
footer .cols a{text-decoration:none}
footer .cols a:hover{color:var(--terracotta)}
footer .cols .eyebrow{margin-bottom:14px}
footer .legal{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.78rem;color:var(--text)}
@media (max-width:700px){footer .cols{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .pre{opacity:1!important;transform:none!important;clip-path:none!important}
  .pre img{scale:1!important}
  .marquee-track{animation:none}
}
