/* Allrounder / Light editorial design system
   Pearl surfaces, botanical ink, translucent glass, and photographic breathing room. */
:root{
  --linen:#fafbf8;--sand:#eff3ee;--warm-sand:#e5ece5;--taupe:#d5dfd5;
  --olive:#718c7a;--olive-deep:#506c5c;--forest:#315644;--forest-deep:#243f32;
  --walnut:#25392f;--terracotta:#5c7967;--gold:#a6bdab;--ink:#24372d;--muted:#5a665e;
  --cream:#fafcf8;--rule:rgba(49,86,68,.17);--rule-soft:rgba(49,86,68,.09);
  --max:82rem;--radius:.9rem;--radius-lg:1.65rem;--radius-sm:.55rem;
  --type-shadow:none;--type-shadow-lg:none;
  --glass:rgba(251,253,249,.86);--glass-edge:rgba(255,255,255,.84);
  --ease:cubic-bezier(.22,.75,.2,1);--lift:0 18px 60px rgba(41,68,50,.065);
}
body{background:var(--linen);font-size:1.05rem;line-height:1.65}
h1,h2,h3{text-wrap:balance;font-weight:500;letter-spacing:-.035em}
p{text-wrap:pretty}
::selection{background:#d6e3d3;color:var(--forest-deep)}
.section{padding-block:clamp(4.5rem,8vw,8rem)}
.section--sand{background:var(--sand)}
.section-head{margin-bottom:clamp(2.5rem,4vw,4rem)}
.section-head h2,.about-copy h2{font-size:clamp(2.4rem,4.6vw,4.4rem);max-width:18ch;line-height:1.02}
.section-head .lede{margin-top:1.3rem;max-width:55ch}
.eyebrow{font-size:.66rem;letter-spacing:.19em;font-weight:600;color:var(--olive-deep)}
.section-label{display:flex;align-items:center;gap:.8rem}
.section-label::before{content:"";width:1.7rem;height:1px;background:currentColor;opacity:.55}
.lede{font-size:clamp(1.05rem,1.25vw,1.2rem);line-height:1.65}
.prose{max-width:44rem;gap:1.25rem}
.prose p,.prose li{line-height:1.8}
.prose a:not(.btn){text-decoration-color:var(--taupe);text-underline-offset:.24em}
.prose a:not(.btn):hover{color:var(--forest);text-decoration-color:currentColor}
:where(a,button,summary,input):focus-visible{outline:2px solid var(--forest);outline-offset:5px}
.btn{border-radius:var(--pill);font-size:.88rem;font-weight:500;min-height:3.2rem;padding:.8rem 1.3rem;gap:.8rem;transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(1px) scale(.98)}
.btn--solid{box-shadow:0 5px 16px rgba(49,86,68,.1)}
.btn--solid:hover{box-shadow:0 9px 22px rgba(49,86,68,.15)}
.btn--ghost{border-color:var(--rule);background:rgba(255,255,255,.45);color:var(--forest)}
.btn--ghost:hover{background:#fff;border-color:var(--olive)}
.btn--pill{font-size:.68rem;letter-spacing:.11em}
.button-orbit{display:grid;place-items:center;background:rgba(49,86,68,.07);width:1.9rem;height:1.9rem;flex-shrink:0;border-radius:50%;transition:transform .35s var(--ease);line-height:1}
.btn:has(.button-orbit){padding-right:.55rem}
.btn:hover .button-orbit{transform:translate(2px,-1px)}
/* The floating glass navigation is the shared frame for every page. */
.site-header,.site-header.is-solid,.site-header.is-open{inset:1.1rem 2rem auto;max-width:82rem;margin-inline:auto;border:1px solid rgba(255,255,255,.9);border-radius:1.3rem;background:rgba(251,253,249,.88);color:var(--ink);text-shadow:none;box-shadow:0 6px 40px rgba(35,62,44,.06),inset 0 1px 0 #fff;backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);transition:background .4s var(--ease),box-shadow .4s var(--ease)}
.site-header.is-solid{background:rgba(251,253,249,.96);box-shadow:0 6px 32px rgba(35,62,44,.09)}
.header-inner{padding:.8rem 1.3rem;max-width:none}
.site-nav{gap:clamp(.85rem,1.5vw,1.5rem)}
.site-nav a{font-size:.66rem;letter-spacing:.1em;font-weight:500}
.site-nav a:not(.btn){position:relative;padding-block:.6rem}
.site-nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:.2rem;height:1px;background:var(--forest);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.site-nav a:not(.btn):hover::after,.site-nav a[aria-current]::after{transform:scaleX(1)}
.site-nav a[aria-current]{box-shadow:none}
.site-nav a:not(.btn):hover{opacity:1}
.site-header .btn--line,.site-header.is-solid .btn--line,.site-header.is-open .btn--line{color:var(--cream);background:var(--forest);border-color:var(--forest);padding:.75rem 1.2rem;min-height:2.7rem}
.site-header .btn--line:hover,.site-header.is-solid .btn--line:hover{background:var(--forest-deep);color:#fff}
.nav-toggle{align-items:center;gap:.75rem;border:0;padding:.6rem;font-size:.66rem}
.menu-icon{position:relative;width:1.25rem;height:.8rem;display:block}
.menu-icon i{position:absolute;width:100%;height:1px;left:0;background:currentColor;transition:transform .4s var(--ease)}
.menu-icon i:first-child{top:2px}.menu-icon i:last-child{bottom:2px}
.nav-toggle[aria-expanded="true"] .menu-icon i:first-child{transform:translateY(3.4px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .menu-icon i:last-child{transform:translateY(-3.4px) rotate(-45deg)}
.mobile-nav{border-radius:0 0 1.3rem 1.3rem;background:transparent;padding:1rem 1.5rem 1.5rem;max-height:calc(100dvh - 7rem);overflow-y:auto}
.mobile-nav a{font-family:var(--serif);font-size:1.75rem;letter-spacing:-.025em;text-transform:none;font-weight:500;padding:.45rem .15rem}
.mobile-nav a.btn{font-family:var(--sans);font-size:.85rem;padding:.7rem 1.1rem}
.mobile-nav[data-open="true"] a{animation:menuEnter .45s var(--ease) both}
@keyframes menuEnter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
/* Light-filled glass: keep the panoramic hero, lift the treatment. */
.hero{min-height:100dvh;padding-top:8rem;background:var(--sand)}
.hero-media::after{background:linear-gradient(180deg,rgba(28,50,38,.04),transparent 50%,rgba(28,50,38,.1))}
.hero-media img{transition:opacity 2s var(--ease);will-change:opacity}
.hero-media img.is-active,.hero-media img.is-leaving{animation-timing-function:var(--ease)}
.hero-band{padding:0 var(--pad) 2.1rem}
.hero-copy{max-width:82rem;grid-template-columns:1.35fr .8fr;gap:clamp(2rem,5vw,5rem);align-items:center;padding:clamp(1.75rem,3.2vw,3rem);color:var(--ink);background:rgba(249,252,247,.86);border-color:var(--glass-edge);box-shadow:inset 0 0 0 5px rgba(255,255,255,.16),var(--lift);text-shadow:none;backdrop-filter:blur(14px) saturate(115%);-webkit-backdrop-filter:blur(14px) saturate(115%)}
.hero h1{color:var(--ink);font-weight:500;font-size:clamp(3rem,5.8vw,5.7rem);max-width:14ch;line-height:.98;letter-spacing:-.045em;text-shadow:none}
.hero h1 em{display:block;font-weight:500;color:var(--forest)}
.hero .eyebrow{color:var(--olive-deep);font-size:.63rem;margin-bottom:1rem}
.hero-sub{color:var(--muted);font-size:1rem;line-height:1.7;margin-bottom:1.4rem}
.hero-note{color:var(--olive-deep);font-size:.77rem;margin-top:1.1rem}
.hero .btn--line{color:var(--cream);background:var(--forest);border-color:var(--forest)}
.hero .btn--text{color:var(--forest);font-size:.7rem;letter-spacing:.08em}
.hero .btn--text:hover{color:var(--forest-deep)}
.hero .btn-row{gap:1rem}
.hero-controls{max-width:82rem;margin:0 auto .85rem;display:flex;align-items:center;justify-content:flex-end;gap:.4rem;color:var(--ink)}
.hero-controls button,.hero-slide-count{height:2.5rem;display:grid;place-items:center;border:1px solid rgba(255,255,255,.8);background:var(--glass);border-radius:50%;font-size:.9rem;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.hero-controls button{cursor:pointer;width:2.5rem;transition:background .25s var(--ease),transform .25s var(--ease)}
.hero-controls button:hover{background:#fff;transform:translateY(-2px)}
.hero-slide-count{border-radius:var(--pill);padding:0 .9rem;font-variant-numeric:tabular-nums;font-size:.7rem;letter-spacing:.1em}
.hero-controls .hero-slide-pause{width:auto;padding:0 1rem;border-radius:var(--pill);font-size:.72rem}
.proof{background:#fff;border:0}
.proof .wrap{max-width:90rem}
.proof ul{padding:1.5rem 0;gap:0}
.proof li{border-radius:0;background:none;padding:.45rem 1rem;font-size:.65rem;line-height:1.5;letter-spacing:.1em;text-align:center;border-right:1px solid var(--rule-soft)}
.proof li:last-child{border:0}
/* A framed photograph and fine line are the recurring editorial details. */
.image-frame{padding:5px;background:rgba(223,232,221,.6);box-shadow:inset 0 0 0 1px rgba(255,255,255,.85);border-radius:1.65rem}
.image-frame>img{border-radius:1.35rem}
.project-media{display:block}
.project-media img{transition:transform .7s var(--ease)}
.project-media:hover img{transform:scale(1.025)}
.project h3{font-size:clamp(1.5rem,2vw,2rem);font-weight:500;margin:.5rem 0}
.project-copy{padding:1.2rem .25rem 0}
.project-copy .cat{font-size:.63rem;font-weight:500;color:var(--olive-deep);letter-spacing:.14em}
.project-copy p{font-size:.95rem;line-height:1.7}
.project-copy h3 a{background-image:linear-gradient(var(--forest),var(--forest));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:background-size .45s var(--ease);padding-bottom:.12rem}
.project-copy h3 a:hover{background-size:100% 1px;text-decoration:none}
.home-services{background:var(--linen)}
.home-services .section-head{display:grid;grid-template-columns:1.2fr 1fr;column-gap:5rem;align-items:end}
.home-services .section-head>.eyebrow{grid-column:1/-1}
.home-services .section-head .lede{margin:0;font-size:1rem;max-width:42ch;justify-self:end}
.service-photo-grid{gap:1.25rem}
.service-photo{aspect-ratio:4/5;isolation:isolate}
.service-photo-caption{inset:auto 1rem 1rem;background:rgba(252,254,249,.87);border-color:var(--glass-edge);box-shadow:inset 0 0 0 3px rgba(255,255,255,.18),0 5px 20px rgba(39,64,44,.04);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:1.05rem;padding:1rem .9rem;color:var(--ink)}
.service-photo-caption h3{font-size:clamp(1.5rem,2.2vw,2rem)}
.service-photo-arrow{border:0;background:rgba(64,96,73,.08);color:var(--forest)}
.service-photo-card>p{font-size:.9rem;margin-top:1.1rem}
.service-aging-note{margin-top:3rem;padding-top:2rem}
.experience-section{background:#fff}
.experience-section>.wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:0 5rem}
.experience-section .section-head{grid-column:1;grid-row:1;max-width:23rem;margin-bottom:0}
.experience-section .section-head h2{font-size:clamp(2.6rem,4vw,4rem)}
.experience-grid{grid-column:2;grid-row:1/3;grid-template-columns:1fr 1fr;gap:2.5rem 2rem}
.experience-grid article{padding-top:1.25rem}
.experience-grid article>span{font-family:var(--serif);font-size:1.6rem;font-style:italic;color:var(--olive)}
.experience-grid h3{font-size:1.65rem;margin:.5rem 0 .75rem}
.experience-grid p{font-size:.9rem}
.experience-section .section-link{grid-column:1;align-self:end;margin-top:2rem}
/* Alternating open sections and intimate image moments replace the tan blocks. */
.home-page #pricing{background:var(--sand)}
.price-table-wrap{border:5px solid rgba(255,255,255,.8);border-radius:1.5rem;box-shadow:var(--lift);background:#fff}
.price-table caption{background:#fff;font-size:.8rem;padding:1rem 1.4rem}
.price-table th,.price-table td{padding:1.5rem}
.price-table thead th{background:var(--linen);color:var(--olive-deep)}
.price-table tbody th{font-size:1.65rem}
.price-table td{font-family:var(--serif);font-size:1.65rem;font-weight:500}
.tiers-note{gap:2rem;margin-top:2rem}
.tiers-note article{padding:0 0 0 1rem;background:none;border:0;border-left:1px solid var(--rule);border-radius:0}
.tiers-note h3{font-family:var(--serif);font-size:1.5rem;font-weight:500}
.tiers-note p{font-size:.9rem}
.cost{background:var(--sand);color:var(--ink)}
.cost .section-photo::after{background:rgba(246,250,244,.94)}
.cost h2,.cost .driver h3{color:var(--ink);text-shadow:none}
.cost .eyebrow,.cost .lede,.cost .prose p,.cost .prose a{color:var(--muted)}
.driver{background:rgba(255,255,255,.75);border:0;backdrop-filter:none;-webkit-backdrop-filter:none}
.driver li{color:var(--muted);font-size:.95rem}
.driver--up li::before,.driver--down li::before{background:var(--olive)}
.home-page #cost{margin:3rem var(--pad);display:grid;grid-template-columns:.8fr 1.2fr;padding:6px;border-radius:2rem;max-width:90rem;box-shadow:inset 0 0 0 1px #fff}
.home-page #cost>.section-photo{position:relative;border-radius:1.6rem;overflow:hidden;min-height:38rem}
.home-page #cost .section-photo::after{display:none}
.home-page #cost .section-photo img{object-position:52% center}
.home-page #cost>.wrap{margin:0;max-width:none;padding:clamp(2rem,4vw,4rem)}
.home-page #cost .section-head{margin-bottom:2rem}
.home-page #cost .section-head h2{font-size:clamp(2.6rem,4vw,4rem)}
.home-page #cost .drivers{grid-template-columns:1fr 1fr;gap:1.25rem}
.home-page #cost .driver{padding:0;background:none}
.home-page #cost .driver h3{font-size:1.4rem}
.home-page #cost .driver li{font-size:.88rem}
.xform{background:#fff}
.xform-grid{grid-template-columns:.8fr 1.2fr;gap:5rem}
.xform h2{font-size:clamp(2.5rem,4.8vw,4.5rem);font-weight:500}
.ba{border:5px solid var(--sand);border-radius:1.6rem;box-shadow:var(--lift)}
.ba-tag{background:var(--glass);font-weight:500;letter-spacing:.12em}
.ba-knob{background:#fff;box-shadow:0 4px 25px rgba(32,61,42,.13)}
.home-page #projects{background:var(--linen)}
.home-page #projects .projects-grid{grid-template-columns:1.15fr .85fr;gap:4rem 3rem;align-items:start}
.home-page #projects .project:nth-of-type(even){padding-top:7rem}
.home-page #projects .project:nth-of-type(odd) .project-media{aspect-ratio:5/4}
.home-page #projects .project:nth-of-type(even) .project-media{aspect-ratio:1}
.home-page #projects .section-link{grid-column:1/-1;margin-top:0}
/* The process becomes a photographic spread with a readable five-step sequence. */
.process{background:var(--sand);color:var(--ink)}
.process .wrap{color:var(--ink);text-shadow:none;display:grid;grid-template-columns:.95fr 1.05fr;column-gap:4rem;align-items:start}
.process .section-head{grid-column:1/-1}
.process .eyebrow{color:var(--olive-deep)}
.process h2{color:var(--ink);text-shadow:none}
.process .lede{color:var(--muted)}
.process-portrait{position:relative;margin:0;align-self:stretch;min-height:36rem}
.process-portrait>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:5px;width:calc(100% - 10px);height:calc(100% - 10px)}
.process-portrait figcaption{position:absolute;bottom:1.5rem;left:1.5rem;right:1.5rem;padding:1.1rem 1.3rem;background:var(--glass);border:1px solid #fff;border-radius:1rem;font-family:var(--serif);font-size:1.7rem;line-height:1.2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.process .steps{grid-template-columns:1fr;gap:0}
.process .step{display:grid;grid-template-columns:3.2rem 1fr;gap:0 1rem;padding:1.25rem 0!important;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.process .step:first-child{padding-top:0!important}
.process .step-num{grid-row:1/4;font-size:2.7rem;font-style:italic;color:var(--olive);margin:0}
.process .step h3{font-size:1.7rem;color:var(--ink);margin:0 0 .2rem}
.process .step-dur{font-size:.6rem;color:var(--olive-deep);letter-spacing:.1em;margin:.1rem 0 .4rem}
.process .step-body{grid-column:2;color:var(--muted);font-size:.93rem!important}
.process-foot{grid-column:1/-1;margin-top:2.5rem;border-top:1px solid var(--rule);padding-top:1.5rem}
.process-foot p{font-size:1.2rem;color:var(--muted)}
.process .btn--ghost{color:var(--forest);border-color:var(--rule);text-shadow:none;background:rgba(255,255,255,.5)}
.about{background:#fff}
.about-grid{grid-template-columns:.9fr 1.1fr;align-items:center;gap:5rem}
.about-media img{aspect-ratio:5/6;object-position:center}
.about-pull{border-left:1px solid var(--olive);font-size:1.55rem;padding-left:1.4rem}
.quotes{gap:3rem;margin-top:4rem}
.quote{background:none;border-radius:0;border-top:1px solid var(--rule);padding:1.5rem 0 0}
.quote p{font-size:1.4rem}
.quote footer{font-size:.65rem;font-weight:500}
.faq{background:var(--sand);color:var(--ink)}
.faq .eyebrow{color:var(--olive-deep)}
.faq-board{grid-template-columns:1fr 1fr;gap:0 3rem}
.faq-item{background:none;border:0;border-top:1px solid var(--rule);border-radius:0;padding:1.75rem 0 2rem;grid-column:auto;display:grid;grid-template-columns:2.3rem 1fr;column-gap:1rem;align-content:start}
.faq-num{grid-column:1;grid-row:1/4;color:var(--olive)!important;font-size:1.6rem}
.faq-item h3{grid-column:2;font-size:1.7rem;margin-bottom:.9rem}
.faq-item p:not(.faq-num){grid-column:2;color:var(--muted);font-size:.93rem;line-height:1.75}
.faq-item .btn{grid-column:2;justify-self:start;padding-left:0;background:none;border:0;font-size:.85rem;min-height:auto;margin-top:1rem}
.faq-item a{color:var(--forest)}
.home-page #guides{background:var(--linen)}
.home-page #guides .projects-grid{grid-template-columns:1.2fr 1fr 1fr;gap:2rem}
.home-page #guides .project-media{aspect-ratio:4/3}
.home-page #guides .project:first-child .project-media{aspect-ratio:1}
/* Every page ends in the same light glass invitation. */
.schedule{margin:2rem var(--pad) 0;border-radius:2rem 2rem 0 0;padding-block:5rem;background:var(--sand)}
.schedule .section-photo::after{background:rgba(235,242,232,.28)}
.schedule .section-photo img{object-position:center 48%}
.schedule .wrap{max-width:76rem}
.sched-copy{background:var(--glass);color:var(--ink);text-shadow:none;border:1px solid var(--glass-edge);box-shadow:inset 0 0 0 5px rgba(255,255,255,.22),var(--lift);padding:clamp(2rem,4vw,3.5rem);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.sched-copy h2{color:var(--ink);font-size:clamp(2.6rem,4vw,4rem);line-height:1.04;text-shadow:none;max-width:17ch}
.schedule .eyebrow{color:var(--olive-deep)}
.sched-copy .lede{color:var(--muted)!important}
.sched-points{color:var(--muted);font-size:1rem;line-height:1.7}
.phone,.phone a{color:var(--forest);font-size:.9rem}
.schedule .btn--line{background:var(--forest);color:var(--cream);border-color:var(--forest)}
.schedule .btn--text{color:var(--forest)}
.booker{background:rgba(255,255,255,.95);border:5px solid rgba(255,255,255,.5);box-shadow:var(--lift);padding:2rem}
.sched-grid{align-items:center;gap:2rem}
.booker h3{font-size:2rem}
.booker p:not(.eyebrow){font-size:.95rem}
.site-footer{background:var(--sand);color:var(--muted);padding:5rem 0 0;overflow:hidden}
.site-footer .logo{color:var(--ink)!important;display:inline-grid;width:max-content}
.foot-grid{gap:4rem}
.foot-tag{font-size:.95rem}
.foot-h{color:var(--olive-deep);font-size:.65rem}
.foot-list{font-size:.9rem;gap:.55rem}
.foot-list a:hover{color:var(--forest);text-decoration:underline;text-underline-offset:.25em}
.foot-bottom{border-color:var(--rule);color:var(--muted);font-size:.72rem;padding-block:1.5rem;margin-top:3rem}
.footer-signature{font-family:var(--serif);font-size:clamp(5rem,17vw,16rem);font-weight:500;line-height:.9;text-align:center;letter-spacing:-.055em;color:rgba(73,108,84,.16);margin-top:1rem;margin-bottom:-.04em;user-select:none}
.chat-toggle{width:3.15rem;height:3.15rem;box-shadow:0 7px 24px rgba(35,67,43,.14);border:1px solid rgba(255,255,255,.7);transition:transform .3s var(--ease)}
.chat-toggle:hover{transform:translateY(-3px)}
.chat-panel{background:var(--glass);border:1px solid #fff;box-shadow:var(--lift);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:1.5rem}
/* Interior pages share the palette, but have layouts appropriate to their content. */
.page-hero{min-height:min(78dvh,47rem);padding-top:8rem;background:var(--sand)}
.page-hero-media{background:var(--sand)}
.page-hero-media::after{background:linear-gradient(180deg,rgba(34,53,39,.06),transparent 45%,rgba(34,53,39,.13))}
.page-hero-band{padding:0 var(--pad) 2.5rem;max-width:90rem}
.page-hero-copy{background:var(--glass);color:var(--ink);max-width:47rem;padding:clamp(1.75rem,3vw,3rem);border-color:var(--glass-edge);box-shadow:inset 0 0 0 5px rgba(255,255,255,.15),var(--lift);text-shadow:none;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.page-hero h1{font-size:clamp(2.7rem,5.4vw,5rem);font-weight:500;line-height:1.01;color:var(--ink);max-width:18ch;text-shadow:none}
.page-hero .eyebrow{color:var(--olive-deep)}
.page-hero .lede{color:var(--muted);margin-top:1.2rem;font-size:1.05rem}
.crumb{font-size:.68rem;color:var(--olive-deep);margin-bottom:1rem}
.guide-page .page-hero{background:var(--linen);min-height:35rem;padding-block:10rem 4.5rem;overflow:hidden}
.guide-page .page-hero-media{inset:8.5rem var(--pad) 3rem auto;width:32%;border-radius:1.6rem;border:5px solid var(--sand);box-shadow:var(--lift)}
.guide-page .page-hero-media::after{display:none}
.guide-page .page-hero-band{padding-bottom:0;max-width:82rem}
.guide-page .page-hero-copy{max-width:63%;padding:0;background:none;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.guide-page .page-hero h1{font-size:clamp(2.7rem,5vw,4.8rem);max-width:17ch}
.guide-page .page-hero .lede{max-width:45ch}
.guide-layout{grid-template-columns:14rem minmax(0,1fr);gap:5rem}
.guide-toc{top:8rem;gap:1rem;background:none}
.guide-toc a{font-size:.85rem}
.guide-part{margin-bottom:2.5rem;scroll-margin-top:8rem}
.guide-part h2{font-size:2.4rem;margin-bottom:1.25rem}
.resource-grid{grid-template-columns:1.1fr .9fr;gap:4rem 3rem;align-items:start}
.resource-grid .guide-card:nth-child(even){padding-top:5rem}
.resource-grid .guide-card:nth-child(odd) .project-media{aspect-ratio:5/4}
.resource-grid .guide-card:nth-child(even) .project-media{aspect-ratio:3/2}
.resource-grid .project-copy{max-width:35rem}
.guide-read{color:var(--forest);font-weight:500}
.portfolio-page #projectGrid{gap:4.5rem 3rem;align-items:start}
.portfolio-page #projectGrid .project:nth-child(odd) .project-media{aspect-ratio:5/4}
.filter-row{gap:.6rem;margin-bottom:1.8rem}
.filter-btn{font-size:.65rem;letter-spacing:.1em;font-weight:500;padding:.7rem 1rem;border-color:var(--rule);transition:background .25s var(--ease),color .25s var(--ease)}
.filter-btn:hover{background:var(--sand)}
.filter-btn[aria-pressed="true"]:hover{background:var(--forest)}
.portfolio-note{font-size:.85rem;margin-bottom:3rem}
.case-meta{background:none;border-radius:0;border-block:1px solid var(--rule);padding:1.5rem 0;margin-bottom:4rem}
.case-meta dt{font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;font-weight:500}
.case-meta dd{font-family:var(--serif);font-size:1.5rem;line-height:1.25;margin-top:.55rem}
.reading-layout{grid-template-columns:.8fr 1.2fr;gap:5rem}
.reading-layout aside h2{font-size:clamp(2.4rem,3.5vw,3.4rem);line-height:1.05}
.story-gallery{gap:2.5rem;margin-top:3rem}
.story-photo img{transition:transform .6s var(--ease)}
.story-photo figcaption{font-size:.8rem;line-height:1.5;margin:1rem .2rem 0}
.project-story .story-gallery .story-photo:nth-child(3n+1):last-child{grid-column:1/-1}
.project-story .story-gallery .story-photo:nth-child(3n+1):last-child img{aspect-ratio:16/9}
.client-quote{border:0;border-left:1px solid var(--olive);border-radius:0;background:none;padding:1.5rem 0 1.5rem 2rem}
.client-quote blockquote{font-size:clamp(1.6rem,2.5vw,2.3rem);line-height:1.4;font-style:italic}
.client-quote figcaption{font-size:.75rem;margin-top:1.5rem}
.team-person img{border:5px solid var(--warm-sand);border-radius:1.35rem}
.team-person h4{font-size:1.6rem;font-weight:500}
.team-person p{font-size:.8rem}
.client-voices{gap:2rem}.client-voices blockquote{font-size:1.4rem}
.tier-card{border:5px solid var(--sand);border-radius:1.5rem;background:#fff;padding:1.5rem;box-shadow:inset 0 0 0 1px #fff}
.tier-card h3{font-size:1.6rem;font-weight:500}
.tier-card .price{font-size:2.4rem;font-weight:500;color:var(--forest)}
.option-summary .eyebrow{font-size:.65rem}
.option-detail>p,.option-detail li{font-size:.92rem}
.option-jump a{border-color:var(--rule);background:#fff;font-size:.8rem}
.finish-details summary{font-size:.85rem;letter-spacing:.01em;font-weight:500}
.finish-details dt{font-weight:500}.finish-details dd{font-size:.88rem}
.service-option .btn{font-size:.78rem;padding:.7rem 1rem}
.steps--ink .step{background:#fff;border:5px solid var(--sand);border-radius:1.35rem}
.steps--ink .step-num{font-style:italic;font-size:2.4rem}
.factor-list article{background:#fff;border-radius:1rem;grid-template-columns:2rem 1fr;padding:2rem}
.factor-list h2{font-size:1.85rem}.factor-list p{font-size:1rem;line-height:1.8}
.faq-list{gap:1.25rem}
.page-faq .faq-card,.faq-card{background:#fff;border:0;border-bottom:1px solid var(--rule);border-radius:0;padding:1.75rem 0}
.photo-dialog{background:var(--linen);border:5px solid #fff;box-shadow:0 18px 80px rgba(24,46,32,.2)}
.photo-dialog::backdrop{background:rgba(27,48,35,.76)}
.photo-dialog button{border-color:var(--rule);transition:background .2s var(--ease)}
.photo-dialog button:hover{background:var(--sand)}
/* Motion enhances browsing; content remains available without JavaScript. */
.reveal-ready{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .9s var(--ease);transition-delay:var(--reveal-delay,0ms)}
.reveal-ready.is-revealed{opacity:1;transform:none}
@media(min-width:1600px){.home-page #cost{margin-inline:auto;width:calc(100% - 2 * var(--pad))}}
@media(max-width:1100px){
 .site-nav{gap:.85rem}.site-nav a{font-size:.61rem}.site-header .btn--line{padding:.6rem .8rem}
 .hero-copy{grid-template-columns:1.15fr 1fr;gap:2rem}.hero h1{font-size:4.1rem}
 .experience-section>.wrap{gap:0 3rem}
 .home-page #cost{grid-template-columns:.7fr 1.3fr}.home-page #cost .drivers{grid-template-columns:1fr;gap:1.8rem}
 .process .wrap,.about-grid,.xform-grid,.reading-layout{gap:3rem}
 .home-page #guides .projects-grid{grid-template-columns:1fr 1fr}.home-page #guides .project:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.1fr 1fr;gap:2rem;align-items:center}.home-page #guides .project:first-child .project-media{aspect-ratio:4/3}
 .guide-layout{gap:3rem;grid-template-columns:12rem minmax(0,1fr)}
}
@media(max-width:980px){
 .site-nav{display:none}.nav-toggle{display:inline-flex}
 .home-services .section-head{grid-template-columns:1fr;gap:1.25rem}.home-services .section-head .lede{justify-self:start;max-width:55ch}
 .experience-section>.wrap{grid-template-columns:1fr}.experience-section .section-head{max-width:none;margin-bottom:2.5rem}.experience-grid{grid-column:1;grid-row:auto}.experience-section .section-link{margin-top:2.5rem}
 .process .wrap{grid-template-columns:.8fr 1.2fr;gap:2rem}.process-portrait{min-height:34rem}.process .step{grid-template-columns:2.2rem 1fr}.process .step-num{font-size:2.2rem}
 .guide-page .page-hero-copy{max-width:62%}.guide-page .page-hero-media{width:30%}.guide-page .page-hero h1{font-size:3.5rem}
 .home-page #projects .projects-grid{gap:3rem 2rem}.home-page #projects .project:nth-of-type(even){padding-top:5rem}
 .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 :root{--pad:1.25rem}
 .section{padding-block:4.5rem}.section-head{margin-bottom:2.4rem}.section-head h2,.about-copy h2{font-size:2.8rem}
 .site-header,.site-header.is-solid,.site-header.is-open{inset:.65rem .75rem auto;border-radius:1rem}.header-inner{padding:.75rem 1rem}.logo-name{font-size:.94rem}.logo-name--2{font-size:.56rem}
 .hero{min-height:100dvh;padding-top:19rem}.hero-band{padding:0 1rem 1rem}.hero-copy{grid-template-columns:1fr;gap:1.5rem;padding:1.6rem;border-radius:1.3rem}.hero h1{font-size:clamp(2.6rem,9vw,4.3rem);max-width:14ch}.hero .eyebrow{font-size:.55rem}.hero-sub{font-size:.93rem;margin-bottom:1rem;line-height:1.65}.hero-note{font-size:.73rem}.hero-controls{margin-bottom:.75rem}.hero-controls button,.hero-slide-count{height:2.2rem}.hero-controls button{width:2.2rem}
 .proof ul{grid-template-columns:repeat(2,1fr);padding:1rem 0}.proof li{font-size:.58rem;text-align:left;padding:.65rem;border:0}.proof li:last-child{grid-column:1/-1}
 .home-services .section-head h2{max-width:17ch}.service-photo-grid{gap:2rem 1rem}.service-photo{aspect-ratio:5/4}.service-photo-caption{inset:auto .8rem .8rem;padding:.8rem}.service-photo-caption h3{font-size:1.6rem}
 .service-aging-note{gap:1.3rem}.service-aging-note h3{font-size:1.7rem}
 .experience-grid{gap:2rem}.experience-grid h3{font-size:1.6rem}
 .price-table th,.price-table td{padding:1rem}.price-table td{font-size:1.45rem}.price-table tbody th{font-size:1.45rem}.price-table{min-width:36rem}
 .home-page #cost{display:block;margin:0 1rem;padding:5px;border-radius:1.6rem}.home-page #cost>.section-photo{min-height:0;height:21rem;border-radius:1.3rem}.home-page #cost>.wrap{padding:2rem 1.4rem 2.5rem}.home-page #cost .drivers{grid-template-columns:1fr 1fr;gap:1.5rem}.home-page #cost .section-head h2{font-size:2.6rem}
 .xform-grid,.about-grid,.reading-layout{grid-template-columns:1fr;gap:2.5rem}.xform h2{max-width:17ch;font-size:2.8rem}.compare{gap:1.5rem}.compare p{font-size:.92rem}
 .home-page #projects .projects-grid{grid-template-columns:1fr;gap:3rem}.home-page #projects .project:nth-of-type(even){padding-top:0}.home-page #projects .project:nth-of-type(even) .project-media,.home-page #projects .project:nth-of-type(odd) .project-media{aspect-ratio:4/3}
 .process .wrap{grid-template-columns:1fr;gap:0}.process .section-head{grid-column:1}.process-portrait{min-height:0;height:24rem;margin-bottom:2.5rem}.process .steps{grid-column:1}.process .step{grid-template-columns:2.5rem 1fr}.process-foot{grid-column:1}.process-foot p{font-size:1.05rem}
 .about-media img{aspect-ratio:5/4;min-height:0}.quotes{grid-template-columns:1fr;gap:1.5rem;margin-top:3rem}.quote p{font-size:1.4rem}
 .faq-board{grid-template-columns:1fr;gap:0}.faq-item{padding-block:1.6rem}.faq-item h3{font-size:1.6rem}
 .home-page #guides .projects-grid{grid-template-columns:1fr;gap:2.5rem}.home-page #guides .project:first-child{grid-column:1;display:flex;gap:0}.home-page #guides .project:first-child .project-media{aspect-ratio:4/3}
 .schedule{margin:1rem 1rem 0;padding-block:2rem;border-radius:1.6rem 1.6rem 0 0}.schedule .wrap{padding:0 .7rem}.sched-copy{padding:1.5rem}.sched-copy h2{font-size:2.6rem}.sched-points{font-size:.93rem}.sched-grid{grid-template-columns:1fr;gap:1rem}.booker{padding:1.5rem}
 .site-footer{padding-top:3.5rem}.foot-grid{gap:2.5rem}.foot-bottom{font-size:.7rem;margin-top:2rem}.footer-signature{font-size:22vw;margin-top:1rem}
 .page-hero{min-height:38rem;padding-top:9rem}.page-hero-band{padding:0 1rem 1.25rem}.page-hero-copy{padding:1.5rem;border-radius:1.25rem}.page-hero h1{font-size:clamp(2.6rem,8.5vw,3.8rem)}.page-hero .lede{font-size:.95rem}
 .guide-page .page-hero{min-height:0;padding:8rem 0 0;display:flex;flex-direction:column;gap:2rem}.guide-page .page-hero-band{order:0;padding:0 var(--pad)}.guide-page .page-hero-copy{max-width:none;padding:0}.guide-page .page-hero h1{font-size:clamp(2.7rem,9vw,4rem)}.guide-page .page-hero-media{position:relative;inset:auto;order:1;width:calc(100% - 2.5rem);height:15rem;margin:0 auto;border-width:4px;border-radius:1.35rem}.guide-page .page-hero-media img{border-radius:1rem}
 .guide-layout{grid-template-columns:1fr;gap:3rem}.guide-toc{position:static;grid-template-columns:1fr 1fr;gap:.8rem 1rem}.guide-toc a{font-size:.8rem}.guide-part h2{font-size:2rem}.guide-part{margin-bottom:2rem}
 .resource-grid{grid-template-columns:1fr;gap:3rem}.resource-grid .guide-card:nth-child(even){padding-top:0}.resource-grid .guide-card:nth-child(odd) .project-media,.resource-grid .guide-card:nth-child(even) .project-media{aspect-ratio:4/3}
 .portfolio-page #projectGrid{gap:3rem;grid-template-columns:1fr}.portfolio-page #projectGrid .project:nth-child(odd) .project-media{aspect-ratio:4/3}.filter-row{gap:.5rem}.filter-btn{font-size:.62rem;padding:.65rem .8rem}
 .case-meta{grid-template-columns:1fr;gap:1.25rem;margin-bottom:3rem}.case-meta dd{font-size:1.35rem}.case-meta>div+div{padding-top:1rem;border-top:1px solid var(--rule-soft)}
 .story-gallery{grid-template-columns:1fr;gap:2rem}.story-photo img{aspect-ratio:4/3}.story-photo figcaption{font-size:.77rem}.project-story .story-gallery .story-photo:nth-child(3n+1):last-child{grid-column:auto}
 .client-quote{padding-left:1.25rem}.client-quote blockquote{font-size:1.6rem}.client-voices{grid-template-columns:1fr}.client-voices blockquote{font-size:1.45rem}
 .team-grid{gap:1.5rem 1rem}.team-person h4{font-size:1.4rem}
 .tier-card{padding:1.3rem}.tier-grid{grid-template-columns:1fr}.factor-list article{padding:1.5rem 1.2rem;grid-template-columns:1.2rem 1fr;gap:.8rem}.factor-list h2{font-size:1.6rem}
 .chat{right:.9rem;bottom:.9rem}.chat-toggle{width:2.9rem;height:2.9rem}
}
@media(max-width:480px){.experience-grid{grid-template-columns:1fr 1fr;gap:2rem 1.25rem}.experience-grid h3{font-size:1.45rem}.experience-grid p{font-size:.86rem}.home-page #cost .drivers{grid-template-columns:1fr}.service-photo-grid{grid-template-columns:1fr}.service-photo{aspect-ratio:6/5}.service-photo-caption h3{font-size:2rem}.hero .btn-row{gap:.75rem}.hero .btn--pill{font-size:.63rem;padding:.75rem 1rem}.guide-toc{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none;transition:none}.hero-media img{animation:none!important;transform:none!important}.mobile-nav a{animation:none!important}html{scroll-behavior:auto}}
@media(prefers-reduced-transparency:reduce){.site-header,.hero-copy,.page-hero-copy,.service-photo-caption,.sched-copy,.process-portrait figcaption,.chat-panel{background:var(--linen)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}
@supports not (backdrop-filter:blur(1px)){.site-header,.hero-copy,.page-hero-copy,.service-photo-caption,.sched-copy{background:rgba(250,252,248,.97)}}

.table-scroll-hint{display:none}
@media(max-width:760px){.table-scroll-hint{display:block;font-size:.75rem;color:var(--olive-deep);margin:.8rem 0 1.5rem}}

/* Photography first: edge-to-edge scenes, with the introduction below. */
.site-header,.site-header.is-solid,.site-header.is-open{
 inset:0 0 auto;max-width:none;margin:0;border:0;border-bottom:1px solid transparent;border-radius:0;
 transition:background .45s var(--ease),color .35s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease);
}
.site-header:not(.is-solid):not(.is-open){background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:#fff;text-shadow:0 1px 14px rgba(14,28,18,.22)}
.site-header.is-solid,.site-header.is-open{background:rgba(250,252,248,.96);color:var(--ink);border-bottom-color:var(--rule-soft);box-shadow:0 5px 28px rgba(35,62,44,.055);text-shadow:none;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.header-inner{max-width:90rem;padding:1.4rem var(--pad)}
.site-nav a:not(.btn)::after{background:currentColor}
.site-header:not(.is-solid):not(.is-open) .btn--line{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.site-header:not(.is-solid):not(.is-open) .btn--line:hover{background:rgba(255,255,255,.2);border-color:#fff}


.site-header :focus-visible{outline-color:currentColor}
.mobile-nav{max-width:90rem;margin:auto;border-radius:0;padding-inline:var(--pad);max-height:calc(100dvh - 6rem)}
.hero{display:block;min-height:0;padding:0;background:var(--linen);color:var(--ink)}
.hero-stage{position:relative;height:clamp(28rem,72svh,52rem);overflow:hidden;isolation:isolate;background:var(--sand)}
.hero-media{inset:0;transform:translate3d(0,var(--photo-drift,0px),0);transform-origin:center}
.hero-media::after,.page-hero-media::after{background:linear-gradient(180deg,rgba(15,30,21,.52),rgba(15,30,21,.12) 18%,transparent 36%)}
.hero-media img.is-active,.hero-media img.is-leaving{animation:photoBreathe 18s var(--ease) both}
.hero-stage.is-paused .hero-media img{animation-play-state:paused}
@keyframes photoBreathe{from{transform:scale(1.025)}to{transform:scale(1)}}
.hero-controls{position:absolute;inset:auto var(--pad) 1.2rem;z-index:4;max-width:82rem;margin:0 auto;pointer-events:none}
.hero-controls>*{pointer-events:auto}
.hero-controls button,.hero-slide-count{background:rgba(251,253,249,.79);height:2.65rem}
.hero-controls button{width:2.65rem}
.hero-band{padding:0 var(--pad);background:var(--linen)}
.hero-copy{grid-template-columns:1.1fr 1fr;padding:clamp(2.3rem,4vw,4rem) 0;gap:3rem;background:none!important;border:0;border-radius:0;box-shadow:none;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transform:none;isolation:auto;align-items:center}
.hero h1{font-size:clamp(3.4rem,5.5vw,5.5rem);max-width:15ch}
.hero-copy-aside{max-width:33rem;justify-self:end}
.hero-sub{font-size:1.02rem;line-height:1.7}
.hero .btn-row{gap:.7rem;flex-wrap:wrap}
.hero .btn--text{padding:.75rem 1rem}
.hero-note{margin-top:.65rem}
.proof{border-top:1px solid var(--rule-soft)}
body.atelier-site .page-hero{display:block;min-height:0;padding:0;background:var(--linen);color:var(--ink)}
body.atelier-site .page-hero-media{position:relative;inset:auto;height:clamp(26rem,68svh,48rem);overflow:hidden}
body.atelier-site .page-hero-media img{object-fit:cover;object-position:center;transform:translate3d(0,var(--photo-drift,0px),0) scale(1.015)}
body.atelier-site .page-hero-band{max-width:90rem;padding:clamp(2.25rem,4vw,4rem) var(--pad);margin:auto}
body.atelier-site .page-hero-copy{display:grid;grid-template-columns:1.15fr .85fr;gap:0 4rem;max-width:none;padding:0;background:none!important;border:0;border-radius:0;box-shadow:none;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.atelier-site .page-hero-copy .crumb{grid-column:1/-1;margin-bottom:1.2rem}
body.atelier-site .page-hero-copy>.eyebrow{grid-column:1;align-self:end;margin-bottom:.9rem}
body.atelier-site .page-hero-copy>h1{grid-column:1;grid-row:3;font-size:clamp(3rem,4.8vw,4.7rem);max-width:19ch}
body.atelier-site .page-hero-copy>.lede{grid-column:2;grid-row:3;align-self:center;margin:0;max-width:43ch;justify-self:end;font-size:1.05rem}
body.atelier-site .page-hero+.section{padding-top:3.5rem}
.guide-page .page-hero-media{width:36%;overflow:hidden}
.guide-page .page-hero-copy{max-width:58%}
.guide-page .page-hero-media img{object-position:center;transform:scale(1.015)}
/* The header's fine line gently tracks reading progress after scrolling. */
.site-header::after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--olive);transform:scaleX(var(--reading-progress,0));transform-origin:left;opacity:0;transition:opacity .4s var(--ease);pointer-events:none}
.site-header.is-solid::after{opacity:.7}
/* A coordinated motion vocabulary: text rises, photographs open, steps glide. */
[data-motion]{--enter-y:24px;--enter-x:0px}
.motion-ready{opacity:0;translate:var(--enter-x) var(--enter-y);transition:opacity .8s var(--ease),translate .95s var(--ease),clip-path 1.1s var(--ease);transition-delay:var(--enter-delay,0ms)}
.motion-ready[data-motion="photo"]{--enter-y:18px;clip-path:inset(0 0 8% 0 round 1.5rem)}
.motion-ready[data-motion="step"]{--enter-y:0px;--enter-x:22px}
.motion-ready[data-motion="detail"]{--enter-y:12px}
.motion-ready.is-revealed{opacity:1;translate:0 0;clip-path:inset(0 0 0 0 round 0)}
.section-label::before{transform-origin:left;transition:transform .8s var(--ease)}
.section-label.motion-ready:not(.is-revealed)::before{transform:scaleX(0)}
.image-frame{overflow:hidden}
.project-media img,.story-photo img,.service-photo img,.team-person img{transition:transform 1s var(--ease),filter .6s var(--ease)}
.service-photo-caption{transition:translate .55s var(--ease),background .45s var(--ease),box-shadow .45s var(--ease)}
.service-photo-arrow,.button-orbit{transition:transform .5s var(--ease),background .35s var(--ease)}
.btn,.filter-btn,.option-jump a,.hero-controls button,.photo-dialog button{transition:transform .35s var(--ease),background .35s var(--ease),color .3s var(--ease),box-shadow .35s var(--ease)}
.service-photo-card,.project-media,.photo-zoom{transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.btn:active,.filter-btn:active,.option-jump a:active,.hero-controls button:active,.photo-dialog button:active{transform:scale(.96)}
.service-photo-card:active,.project-media:active,.photo-zoom:active{transform:scale(.985)}
.option-jump a:focus-visible,.service-photo-card:focus-visible .service-photo-caption{background:#fff}
.finish-details summary{transition:color .3s var(--ease),padding .3s var(--ease)}
.finish-details summary:hover{color:var(--forest);padding-left:.35rem}
.finish-details[open] dl{animation:detailOpen .45s var(--ease) both}
@keyframes detailOpen{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.photo-dialog[open]{animation:dialogOpen .4s var(--ease) both}
.chat-panel:not([hidden]){animation:dialogOpen .35s var(--ease) both;transform-origin:bottom right}
@keyframes dialogOpen{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
#projectGrid .project.filter-enter{animation:filterEnter .55s var(--ease) both;animation-delay:var(--filter-delay,0ms)}
@keyframes filterEnter{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
@media(hover:hover) and (pointer:fine){
 .service-photo-card:hover .service-photo img{transform:scale(1.045)}
 .service-photo-card:hover .service-photo-caption{translate:0 -5px;background:rgba(252,254,249,.96);box-shadow:0 8px 28px rgba(39,64,44,.09)}
 .service-photo-card:hover .service-photo-arrow{transform:rotate(45deg);background:var(--forest);color:#fff}
 .project-media:hover img,.story-photo>a:hover img{transform:scale(1.045)}
 .team-person:hover img{transform:translateY(-4px)}
 .option-jump a:hover{transform:translateY(-3px);background:var(--sand)}
 .guide-toc a{transition:color .3s var(--ease),translate .3s var(--ease)}
 .guide-toc a:hover{translate:4px 0;color:var(--forest)}
 .foot-list a{display:inline-block;transition:translate .3s var(--ease),color .3s var(--ease)}
 .foot-list a:hover{translate:3px 0}
}
@media(min-width:981px){.site-header{animation:headerArrive .75s var(--ease) both}}
@keyframes headerArrive{from{opacity:0;translate:0 -10px}to{opacity:1;translate:0 0}}
@media(max-width:1100px){
 .hero-copy{grid-template-columns:1fr 1fr;gap:2.5rem}.hero h1{font-size:3.8rem}
 body.atelier-site .page-hero-copy{column-gap:2.5rem}
}
@media(max-width:760px){
 .site-header,.site-header.is-solid,.site-header.is-open{inset:0 0 auto;border-radius:0}
 .header-inner{padding:1.1rem 1.25rem}
 .hero-stage{height:clamp(22rem,105vw,32rem);max-height:68svh;min-height:20rem}
 .hero-media img{object-position:50% center}
 .hero-controls{inset:auto 1rem .9rem;gap:.35rem}
 .hero-band{padding:0 1.25rem}.hero-copy{grid-template-columns:1fr;padding:2.3rem 0 2.5rem;gap:1.5rem}
 .hero h1{font-size:clamp(3rem,10vw,4.2rem);max-width:none}.hero h1 em{display:block}
 .hero-copy-aside{max-width:none;justify-self:stretch}.hero-sub{font-size:.96rem}
 .hero .btn-row{gap:.35rem}.hero .btn--text{font-size:.65rem;padding:.75rem .6rem}
 body.atelier-site .page-hero-media{height:clamp(22rem,102vw,32rem);max-height:66svh;min-height:20rem}
 body.atelier-site .page-hero-band{padding:2rem 1.25rem 2.5rem}
 body.atelier-site .page-hero-copy{display:block}
 body.atelier-site .page-hero-copy .crumb{margin-bottom:1.25rem;font-size:.7rem}
 body.atelier-site .page-hero-copy>h1{font-size:clamp(2.8rem,9.5vw,4rem);max-width:20ch}
 body.atelier-site .page-hero-copy>.lede{font-size:.98rem;margin-top:1.25rem;max-width:45ch}
 body.atelier-site .page-hero+.section{padding-top:2.5rem}
 .guide-page .page-hero{padding-top:7.5rem}.guide-page .page-hero-copy{max-width:none}
 .guide-page .page-hero-media{width:calc(100% - 2.5rem);height:auto;aspect-ratio:4/3;max-height:none}
 .motion-ready{--enter-y:18px}.motion-ready[data-motion="step"]{--enter-y:0;--enter-x:12px}
}
@media(prefers-reduced-motion:reduce){
 .motion-ready{opacity:1;translate:none;clip-path:none;transition:none}
 .hero-media,body.atelier-site .page-hero-media img,.guide-page .page-hero-media img{transform:none!important}
 .hero-media img,.site-header,.photo-dialog[open],.chat-panel:not([hidden]),.finish-details[open] dl,#projectGrid .project.filter-enter{animation:none!important}
 .service-photo-card,.project-media,.photo-zoom,.btn,.filter-btn,.option-jump a,.hero-controls button,.photo-dialog button,.guide-toc a,.foot-list a,.service-photo-caption,.team-person img{transition:none;translate:none}
}

/* Consultation calendar — an interactive scheduling preview. */
.sched-grid{grid-template-columns:.85fr 1.15fr;gap:2rem}
.schedule .wrap{max-width:86rem}
.booking-panel{padding:clamp(1.5rem,2.5vw,2.3rem);background:rgba(255,255,255,.97);border:1px solid #fff;min-width:0}
.booking-intro{border-bottom:1px solid var(--rule-soft);padding-bottom:1.25rem;margin-bottom:1.25rem}
.booking-intro .eyebrow{font-size:.6rem;margin-bottom:.6rem}
.booking-intro h3{font-size:clamp(1.7rem,2.1vw,2.15rem);line-height:1.1;margin:0 0 .7rem}
.booking-intro>p:not(.eyebrow){font-size:.9rem;color:var(--muted);line-height:1.6}
.booking-meta{display:flex;gap:1.3rem;flex-wrap:wrap;font-size:.73rem;color:var(--olive-deep);margin-top:.9rem}
.booking-meta span{display:flex;align-items:center;gap:.4rem}
.booking-meta span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--olive)}
.booking-calendar-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;gap:1rem}
.booking-calendar-top h4{font-family:var(--sans);font-size:.95rem;letter-spacing:0;font-weight:500;margin:0}
.booking-month-controls{display:flex;gap:.4rem}
.booking-month-controls button{height:2rem;width:2rem;border:1px solid var(--rule);background:transparent;border-radius:50%;cursor:pointer}
.booking-picker{display:grid;grid-template-columns:minmax(0,1fr) 7.6rem;gap:1.3rem;align-items:start}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem;text-align:center}
.booking-weekdays{font-size:.64rem;color:var(--muted);margin-bottom:.5rem}
.booking-weekdays span{padding:.2rem 0}
.booking-day{aspect-ratio:1;min-height:2rem;padding:0;border:1px solid transparent;background:var(--sand);color:var(--forest);border-radius:50%;font-size:.78rem;cursor:pointer;font-variant-numeric:tabular-nums}
.booking-day[aria-current="date"]{text-decoration:underline;text-underline-offset:.3em}
.booking-day[aria-pressed="true"]{background:var(--forest);color:#fff;box-shadow:0 3px 12px rgba(49,86,68,.15)}
.booking-panel button:disabled{opacity:.35;cursor:default;box-shadow:none;transform:none}
.booking-day:disabled{background:transparent;color:var(--muted)}
.booking-date-label{font-size:.67rem!important;line-height:1.3;min-height:1.5rem;text-align:center;margin:0 0 .6rem;color:var(--olive-deep)}
.booking-time-list{display:grid;gap:.45rem}
.booking-time-list button{font-size:.73rem;border:1px solid var(--rule);border-radius:.55rem;min-height:2.4rem;padding:.45rem .25rem;color:var(--forest);background:transparent;cursor:pointer;font-variant-numeric:tabular-nums}
.booking-time-list button[aria-pressed="true"]{color:#fff;background:var(--forest);border-color:var(--forest)}
.booking-next-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;border-top:1px solid var(--rule-soft);margin-top:1.4rem;padding-top:1.1rem}
.booking-selection{font-size:.73rem!important;color:var(--muted);margin:0;line-height:1.5}
.booking-next-row .btn{font-size:.78rem;min-height:2.65rem;padding:.6rem 1rem}
.booking-panel-foot{display:flex;flex-wrap:wrap;gap:.35rem 1rem;justify-content:space-between;padding-top:1.25rem;margin-top:1.25rem;border-top:1px solid var(--rule-soft);font-size:.62rem;color:var(--muted);line-height:1.4}
.booking-phone{font-size:.75rem!important;color:var(--muted);margin:.65rem 0 0}
.booking-phone a{color:var(--forest);text-underline-offset:.2em}
.booking-back{border:0;padding:0;background:none;color:var(--olive-deep);font-size:.76rem;margin-bottom:1.25rem;cursor:pointer}
.booking-panel .booking-step-title{font-family:var(--serif);font-size:1.85rem;font-weight:500;line-height:1.15;letter-spacing:-.025em;margin:0 0 .75rem}
.booking-panel .booking-summary{font-size:.85rem;color:var(--forest);line-height:1.65;margin-bottom:1.2rem}
.booking-form{display:grid;gap:.8rem}
.booking-form label{font-size:.74rem;display:grid;gap:.35rem;color:var(--ink)}
.booking-form input{width:100%;min-height:2.8rem;border:1px solid var(--rule);border-radius:.6rem;background:var(--linen);padding:.7rem .85rem;color:var(--ink);font:inherit;font-size:1rem;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.booking-form input:focus{border-color:var(--olive);box-shadow:0 0 0 3px rgba(113,140,122,.1)}
.booking-panel .booking-demo-note{font-size:.7rem;color:var(--muted);margin:.3rem 0}
.booking-form>.btn{justify-self:start;font-size:.8rem}
.booking-confirmation{padding:1.5rem 0;text-align:center;min-height:22rem;display:flex;flex-direction:column;justify-content:center;align-items:center}
.booking-check{height:3rem;width:3rem;display:grid;place-items:center;background:var(--sand);border-radius:50%;color:var(--forest);font-size:1.2rem;margin-bottom:1.25rem}
.booking-confirmation>p:not(.booking-summary){font-size:.85rem;color:var(--muted);margin-bottom:1.5rem}
.booking-panel button{transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.booking-panel button:not(:disabled):active{transform:scale(.96)}
.booking-panel button:focus-visible{outline-offset:2px}
@media(hover:hover){.booking-day:not(:disabled):not([aria-pressed="true"]):hover,.booking-time-list button:not([aria-pressed="true"]):hover,.booking-month-controls button:not(:disabled):hover{background:var(--warm-sand);transform:translateY(-2px)}}
.booking-view-enter{animation:bookingEnter .3s var(--ease) both}
@keyframes bookingEnter{from{opacity:.7;translate:0 5px}to{opacity:1;translate:0 0}}
@media(max-width:1100px){.sched-grid{grid-template-columns:.75fr 1.25fr;gap:1.5rem}.sched-copy{padding:1.8rem}.booking-picker{gap:.75rem;grid-template-columns:minmax(0,1fr) 6.5rem}.booking-panel{padding:1.5rem}}
@media(max-width:980px){.sched-grid{grid-template-columns:1fr}.booking-panel{max-width:44rem;width:100%;justify-self:center;padding:2rem}.sched-copy{max-width:44rem;width:100%;justify-self:center}.booking-picker{grid-template-columns:minmax(0,1fr) 8rem;gap:1.5rem}}
@media(max-width:480px){.booking-panel{padding:1.2rem}.booking-picker{grid-template-columns:1fr;gap:1.2rem}.booking-day{min-height:2rem}.booking-time-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.booking-date-label{text-align:left;min-height:0;margin-bottom:.65rem}.booking-panel-foot{gap:.45rem}.booking-selection{max-width:9rem}.booking-next-row{gap:.5rem}.booking-intro h3{font-size:1.9rem}.booking-form>.btn{width:100%}}
@media(prefers-reduced-motion:reduce){.booking-view-enter{animation:none}.booking-panel button{transition:none}}
.booking-panel{scroll-margin-top:7rem}

/* Every page now opens with the same uninterrupted photographic treatment. */
body.atelier-site .page-hero-media{width:100%;margin:0;border:0;border-radius:0;box-shadow:none;aspect-ratio:auto}
body.atelier-site .page-hero-media::after{display:block}
body.atelier-site .page-hero-media img{border-radius:0}
.footer-sitemap a{color:var(--forest);text-underline-offset:.25em}
.sitemap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem 4rem;align-items:start}
.sitemap-group h2,.sitemap-group h3{font-family:var(--serif);font-size:2rem;font-weight:500;margin-bottom:1.4rem;line-height:1.1}
.sitemap-group ul{list-style:none;padding:0;display:grid;gap:0}
.sitemap-group li{border-top:1px solid var(--rule-soft)}
.sitemap-group a{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;font-size:.94rem;text-decoration:none;line-height:1.5;transition:color .3s var(--ease),padding .3s var(--ease)}
.sitemap-group a span{color:var(--olive);transition:transform .3s var(--ease);flex-shrink:0}
.sitemap-group a:hover,.sitemap-group a:focus-visible{padding-inline:.3rem;color:var(--forest)}
.sitemap-group a:hover span{transform:translate(2px,-2px)}
.sitemap-group a:active{color:var(--olive)}
@media(max-width:980px){.sitemap-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem}}
@media(max-width:600px){.sitemap-grid{grid-template-columns:1fr;gap:2.5rem}.sitemap-group h2,.sitemap-group h3{font-size:1.85rem}}

.booking-step-title{scroll-margin-top:7rem}
@media print{.motion-ready{opacity:1!important;translate:none!important;clip-path:none!important}.site-header,.chat{display:none}}

.motion-ready:focus-within{clip-path:none}

/* An invitation to make the next project personal. */
.planner-feature{background:#f8faf5}.planner-feature-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(3rem,7vw,7rem);align-items:center}.planner-feature-photos{position:relative}.planner-feature-photos>img{width:100%;height:auto;aspect-ratio:1.12;object-fit:cover;border-radius:1rem}.planner-feature-note{position:absolute;bottom:1.5rem;left:1.5rem;right:1.5rem;padding:1.2rem 1.5rem;background:rgba(255,255,255,.82);backdrop-filter:blur(18px);border:1px solid #fff;border-radius:.65rem;display:flex;flex-direction:column;gap:.35rem}.planner-feature-note>span:last-child{font-family:var(--serif);font-size:1.8rem;letter-spacing:-.025em}.planner-feature-copy h2{font-size:clamp(2.7rem,4.7vw,4.3rem);line-height:1.03;margin:1rem 0 1.5rem}.planner-feature-copy .btn{margin-top:1.8rem}.planner-feature-small{font-size:.73rem;color:var(--muted);margin-top:1.2rem}.planner-invitation{background:#eaf0e6}.planner-invitation>.wrap{display:flex;align-items:center;justify-content:space-between;gap:3rem}.planner-invitation h2{font-size:3rem;margin:.6rem 0 1rem}.planner-invitation p{max-width:52ch}.planner-invitation .btn{flex-shrink:0}
@media(max-width:1120px){.site-nav{display:none}.nav-toggle{display:inline-flex}}
@media(max-width:760px){.planner-feature-grid{grid-template-columns:1fr;gap:2.5rem}.planner-feature-note{bottom:1rem;left:1rem;right:1rem;padding:1rem}.planner-feature-note>span:last-child{font-size:1.5rem}.planner-invitation>.wrap{align-items:start;flex-direction:column;gap:1.5rem}}
