/* Final client edits, 16 September 2026. Existing brand tokens and headlines retained. */
/* Approved option 3: headline, full-width panorama, then the eight-item index. */
.sec.transition--panorama{padding:0 0 clamp(40px,5vw,72px)}
.transition--panorama .wrap{max-width:none;width:100%;padding-inline:clamp(24px,5vw,96px)}
.transition--panorama .transition__heading{display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:auto;gap:clamp(32px,4.86vw,70px);padding-block:clamp(38px,3.125vw,54px) clamp(33px,2.92vw,50px);align-items:end}
.transition--panorama h2{font-size:clamp(43px,4.52vw,76px);line-height:1.04;letter-spacing:-.043em;max-width:none}
.transition--panorama .lead{font-size:clamp(19px,1.74vw,28px);line-height:1.43;padding-bottom:3px}
.transition--panorama .transition__plate{width:100%;height:clamp(257px,24.03vw,460px);min-height:0;aspect-ratio:auto;overflow:hidden}
.transition--panorama .transition__plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 65%;transform:none;transition:none}
.transition--panorama .transition__index{display:block;padding-top:clamp(28px,2.36vw,40px)}
.transition--panorama .transition__run{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(20px,2.08vw,36px);border-top:0}
.transition--panorama .transition__run::before{display:none}
.transition--panorama .transition__run > span{display:block;border-top:1px solid var(--ink-10);border-bottom:0;padding:18px 0;font-size:clamp(18px,1.67vw,26px);line-height:1.2;letter-spacing:-.025em}
@media(max-width:700px){
 .transition--panorama .transition__heading{grid-template-columns:1fr;gap:22px}
 .transition--panorama h2,.transition--panorama .lead{grid-column:1;grid-row:auto}
 .transition--panorama .transition__run{grid-template-columns:repeat(2,minmax(0,1fr))}
 .transition--panorama .transition__run > span{padding:15px 0}
 .transition--panorama .transition__plate img{object-position:48% 65%}
}
/* Clean original photographs have no extended headroom or softened edges.
   Keep their full height; crop only the sides inside the existing frames. */
.rcard__plate img,.relay-active .rcard__plate img,.bio .bio__portrait figure img{
 position:absolute;inset:0;width:100%;height:100%;max-height:none;
 object-fit:cover;object-position:var(--portrait-x,50%) center;
 transform:none!important;filter:none;
}
img[src*="/clean/todd-golper.jpg"]{--portrait-x:90%}
img[src*="/clean/amy-castro.jpg"]{--portrait-x:80%}
#services .idx__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
#services .idx__cell{padding:var(--sp-6) clamp(20px,2.3vw,36px);border-top:0}
#services .idx__cell:first-child{border-left:0}
#services .idx__cell h3{min-height:2.3em;text-wrap:balance}
.idx__list{margin-top:var(--sp-4);padding:0;list-style:none}
.idx__list li{font-size:var(--fs-body);line-height:1.5;color:var(--ink-74);padding-block:var(--sp-1)}
.services__foot{justify-content:flex-end}
.terr__row{padding-inline:clamp(20px,2.3vw,36px)}
.terr__row > div,.terr__list{min-width:0}
.contact-intro{max-width:43ch;text-wrap:pretty}
/* The complete wall sign stays in frame; the tree sits at the right edge. */
.open.split-soft .split-soft__plate--tall{aspect-ratio:1/1.1}
.split-soft__plate--tall img{object-position:10% center}
@media(max-width:1099px){
 #services .idx__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 #services .idx__grid .idx__cell{padding:var(--sp-5) var(--sp-4)}
 #services .idx__grid .idx__cell:nth-child(n+3){border-top:1px solid var(--ink-10)}
 #services .idx__grid .idx__cell:nth-child(odd){padding-left:var(--sp-4)}
}
@media(max-width:640px){
 #services .idx__grid{grid-template-columns:1fr!important}
 #services .idx__grid .idx__cell{padding:var(--sp-5) 0!important}
 #services .idx__grid .idx__cell + .idx__cell{border-top:1px solid var(--ink-10)}
 #services .idx__cell h3{min-height:0}
 .terr__row{padding-inline:0}
 .open.split-soft .split-soft__plate--tall{aspect-ratio:1/1.1}
}

/* September 18: Abe's sunlit editorial reference, with the approved audience copy. */
.sec.transition--sunlit{padding:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-rows:auto auto;background:#f5f2eb}
.transition--sunlit .wrap{width:auto;max-width:none;margin:0;padding-inline:clamp(28px,4.5vw,88px)}
.transition--sunlit .transition__heading{grid-column:2;grid-row:1;display:block;padding-top:clamp(48px,5vw,90px);padding-bottom:32px}
.transition--sunlit h2{font-size:clamp(42px,4.3vw,76px);line-height:1.04;letter-spacing:-.043em}
.transition--sunlit .lead{font-size:clamp(19px,1.7vw,28px);line-height:1.45;margin-top:28px}
.transition--sunlit .transition__plate{grid-column:1;grid-row:1 / 3;position:relative;width:100%;height:100%;min-height:640px;aspect-ratio:auto;overflow:hidden}
.transition--sunlit .transition__plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 53%;transform:none}
.transition--sunlit .transition__index{display:block;grid-column:2;grid-row:2;padding-bottom:clamp(42px,4vw,72px)}
.transition--sunlit .transition__run{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;border-top:0;margin:0}
.transition--sunlit .transition__run:before{display:none}
.transition--sunlit .transition__run>span{border-top:1px solid var(--ink-10);border-bottom:0;padding:17px 0;font-size:clamp(17px,1.5vw,24px);line-height:1.3}
.transition__audience{margin-top:28px;font-size:clamp(14px,1.15vw,18px);line-height:1.6;color:var(--ink-74);max-width:44ch}
.services-photo{margin:0;overflow:hidden;height:clamp(260px,36vw,600px)}
.services-photo img{width:100%;height:100%;object-fit:cover;object-position:center 50%}
.open.split-soft .split-soft__plate--tall{aspect-ratio:3/2}
.split-soft__plate--tall img{object-position:center;transform:none!important}
.rcard__plate:has(img[src*="/clean/todd-golper.jpg"]),.bio__portrait figure:has(img[src*="/clean/todd-golper.jpg"]),.rcard__plate:has(img[src*="/clean/amy-castro.jpg"]){background:#000}
.rcard__plate img[src*="/clean/todd-golper.jpg"],.bio .bio__portrait figure img[src*="/clean/todd-golper.jpg"],.rcard__plate img[src*="/clean/amy-castro.jpg"]{height:100%;top:0;--portrait-x:72%}
@media(max-width:700px){
 .sec.transition--sunlit{display:flex;flex-direction:column}
 .transition--sunlit .transition__heading{padding-block:42px 30px;order:0}
 .transition--sunlit .transition__plate{order:1;height:auto;min-height:0;aspect-ratio:4/5}
 .transition--sunlit .transition__index{order:2;padding-block:30px 42px}
 .transition--sunlit .lead{margin-top:22px}
}

/* Saved framing also applies when Amy’s archived bio is restored. */
.rcard__plate:has(img[src*="/clean/amy-castro.jpg"]),.bio__portrait figure:has(img[src*="/clean/amy-castro.jpg"]){background:#222}
.bio .bio__portrait figure img[src*="/clean/amy-castro.jpg"]{height:100%;top:0;--portrait-x:72%}

.bio__portrait figure:has(img[src*="/clean/todd-golper.jpg"])::after,.bio__portrait figure:has(img[src*="/clean/amy-castro.jpg"])::after{display:none}

/* Abe2: retain the selected-team context on phones and reduced-motion layouts. */
.relay__heading{padding-bottom:var(--sp-5)}
.relay-active .relay__heading{display:none}

/* Phone navigation and touch targets, checked down to 320px. */
@media(max-width:860px){
 .hdr .burger{width:44px;height:44px;flex:0 0 44px;margin-right:-9px;touch-action:manipulation}
 .hdr .burger i{left:9px;right:9px}
 .hdr .burger i:first-child{top:15px;bottom:auto}
 .hdr .burger i:last-child{top:28px;bottom:auto}
 .nav.open{max-height:calc(100dvh - var(--hdr-h));overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(24px,env(safe-area-inset-bottom))}
 .nav.open a{min-height:44px;width:100%;display:flex;align-items:center}
 .ftr__col a{min-height:44px;display:flex;align-items:center}
 .rcard__acts a,.bio__meta a{min-height:44px;display:inline-flex;align-items:center;overflow-wrap:anywhere}
 .cta,.lnk{min-height:44px;touch-action:manipulation}
 .bio__meta>*{min-width:0}
 input,textarea,select{font-size:16px}
}

/* September 18 review: labels align directly with their headlines. */
.eyebrow::before,.eyebrow::after{content:none!important;display:none!important}
.open .eyebrow{padding-left:0}
/* Frame the approved terrace photograph around the seating and skyline. */
.split-soft__plate img[src$="proof-warm-terrace.jpg"]{object-position:61% center}

/* September 20: legible labels, clean portraits and compact mobile services. */
.ftr__parent{font-size:13px;line-height:1.5;color:var(--ink-74);margin-top:var(--sp-6)}
.idea__rings:has(.diagram-label){aspect-ratio:1;isolation:isolate}
.idea__rings:has(.diagram-label)>svg{position:absolute;inset:5%;width:90%;height:90%}
.diagram-label{position:absolute;z-index:2;font-family:var(--sans);font-size:clamp(12px,1vw,14px);font-weight:400;line-height:1.4;letter-spacing:.02em;color:var(--gold-deep);white-space:nowrap;opacity:1!important}
.diagram-label--top{top:6%;left:50%;transform:translateX(-50%)}
.diagram-label--bottom{bottom:6%;left:50%;transform:translateX(-50%)}
.diagram-label--left{left:0;top:50%;transform:translateY(-50%)}
.diagram-label--right{right:0;top:50%;transform:translateY(-50%)}
img[src*="todd-golper-sep20"]{--portrait-x:54%}
.rcard__plate img[src*="todd-golper-sep20"],.bio .bio__portrait figure img[src*="todd-golper-sep20"]{height:102%;top:-1%}
.service-toggle{display:none}
@media(max-width:700px){
 .idea--steps{padding-bottom:32px}
 .idea--steps+.idea{padding-top:32px}
 .service-toggle{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;border:0;background:none;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer;min-height:48px}
 .service-toggle::after{content:'+';font-family:var(--sans);font-size:28px;font-weight:300;flex-shrink:0}
 .service-toggle[aria-expanded="true"]::after{content:'−'}
 .service-toggle h3{font:inherit;margin:0}
 .service-disclosure [hidden]{display:none!important}
 .terr__row{padding-block:24px}
 .terr__row>div{width:100%}
}

@media(max-width:700px){.terr__row h3{max-width:none;width:100%}}

/* Full-screen navigation with a composed panel and link entrance. */
.group-menu-backdrop{display:none}
@media(max-width:860px){
 html.group-menu-open,html.group-menu-open body{overflow:hidden}
 .hdr .nav,.hdr .nav.open{display:flex;position:fixed;top:var(--hdr-h);left:0;right:0;bottom:0;box-sizing:border-box;height:calc(100dvh - var(--hdr-h));max-height:none;min-height:0;flex-direction:column;align-items:flex-start;gap:2px;padding:32px var(--pad) max(28px,env(safe-area-inset-bottom));background:var(--cream);border:0;overflow-y:auto;overscroll-behavior:contain;z-index:59;transform:translate3d(0,calc(-100% - var(--hdr-h)),0);visibility:hidden;pointer-events:none;transition:transform .28s cubic-bezier(.55,0,1,.45),visibility 0s .28s}
 .hdr .nav.open{transform:translate3d(0,0,0);visibility:visible;pointer-events:auto;transition:transform .44s cubic-bezier(.22,1,.36,1),visibility 0s}
 .hdr .nav a,.hdr .nav.open a{font-family:var(--sans);font-size:clamp(30px,8.8vw,40px);line-height:1.2;letter-spacing:-.025em;font-weight:300;padding:12px 0;min-height:56px;width:100%;display:flex;align-items:center;color:var(--ink)!important;opacity:0;transform:translateY(20px);transition:opacity .15s ease,transform .2s ease}
 .hdr .nav.open a{opacity:1;transform:none;transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .3s ease;transition-delay:calc(100ms + var(--menu-i,0)*35ms)}
 .hdr .nav a:first-child{margin-top:auto}
 .hdr .nav a:last-child{font-size:17px;letter-spacing:0;margin-top:auto;padding-top:32px;flex-shrink:0;color:var(--gold-deep)!important}
 .hdr .nav a::after{display:none}
 .hdr:has(.nav.open){background:var(--cream)!important}
 .hdr:has(.nav.open) .brand span{color:var(--ink)!important}
 .hdr:has(.nav.open) .mark--ink{display:block!important}
 .hdr:has(.nav.open) .mark--light{display:none!important}
 .hdr .burger i{transition:transform .28s ease}
 .hdr .burger[aria-expanded="true"] i{background:var(--ink)!important}
 .hdr .burger[aria-expanded="true"] i:nth-of-type(1){transform:translateY(6.5px) rotate(45deg)}
 .hdr .burger[aria-expanded="true"] i:nth-of-type(2){transform:translateY(-6.5px) rotate(-45deg)}
}
@media(max-height:580px) and (max-width:860px){.hdr .nav,.hdr .nav.open{padding-top:14px;padding-bottom:18px}.hdr .nav a,.hdr .nav.open a{font-size:28px;min-height:44px;padding-block:8px}.hdr .nav a:last-child{font-size:17px;padding-top:20px}}
@media(prefers-reduced-motion:reduce){.hdr .nav,.hdr .nav a,.hdr .burger i{transition:none!important;transition-delay:0s!important}}

/* Restore the original direct transition, without a spacer or gradient. */
.sec.transition--sunlit{margin-top:0}
a,button{font-variant-emoji:text}

/* Compact disclosures throughout the stacked phone/tablet service layout. */
@media(max-width:1080px){
 .service-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:48px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;scroll-margin-top:96px}
 .service-toggle::after{content:'+';font-family:var(--sans);font-size:26px;font-weight:300;flex-shrink:0}
 .service-toggle[aria-expanded="true"]::after{content:'−'}
 .service-toggle:focus-visible{outline:1px solid var(--gold-deep);outline-offset:4px}
 .service-disclosure [hidden]{display:none!important}
 .terr__row{padding:14px 0;gap:0}
 .terr__row>div{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:center;width:100%}
 .terr__row .num{font-size:11px}
 .terr__row h3{margin:0;max-width:none;width:100%;font-size:clamp(22px,3vw,28px);line-height:1.25}
 .terr__list{grid-template-columns:1fr;gap:0;margin:8px 0 12px 44px}
 .terr__list li{font-size:16px;line-height:1.5;padding:7px 0}
 #services .idx__grid{grid-template-columns:1fr!important}
 #services .idx__grid .idx__cell{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px;align-items:center;padding:14px 0!important;border-left:0;border-top:1px solid var(--ink-10)}
 #services .idx__cell>.ico{display:none}
 #services .idx__cell>.num{grid-column:1;font-size:11px;margin:0}
 #services .idx__cell h3{grid-column:2;margin:0;min-height:0;max-width:none;width:100%;font-size:clamp(22px,3vw,28px);line-height:1.25;text-wrap:initial}
 #services .idx__list{grid-column:2;margin:8px 0 12px}
 #services .idx__list li{font-size:16px;line-height:1.5;padding:7px 0}
}

/* Sept 21 client copy review: complete list dividers and shared footer hierarchy. */
.terr__list li:last-child{border-bottom:1px solid var(--ink-10)}
.ftr__mark .ftr__parent{margin-top:8px;font-size:13px;line-height:1.5;color:var(--ink-74)}
.rcard__office{margin-top:8px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-74)}

/* On phones the service introduction stays clear of the oversized decorative arc. */
@media(max-width:1099px){.group-home #services .idx>.arc-rule{display:none}}

/* Keep the services-to-process handoff compact on phones. */
@media(max-width:700px){.group-home #services{padding-bottom:32px}.group-home #services+.sec{padding-top:36px}}

/* A little extra photographic depth below the mobile hero, while preserving
   the copy/CTA position. Stable viewport units avoid scroll-toolbar jumps. */
@media(max-width:879px){
 .group-home .hero{--mobile-hero-extension:clamp(24px,4vh,40px);min-height:calc(100vh + var(--mobile-hero-extension))}
 .group-home .hero{padding-bottom:calc(62.31px + var(--mobile-hero-extension))}
 @supports(height:100svh){.group-home .hero{--mobile-hero-extension:clamp(24px,4svh,40px);min-height:calc(100svh + var(--mobile-hero-extension))}}
}

/* Client review Sept 22: the photo is followed immediately by its controls. */
.steps-hint{display:none}
@media(max-width:1099px){
 .idea--steps>.wrap{display:flex;flex-direction:column;gap:0}
 .idea--steps .steps-copy{display:contents}
 .idea--steps .steps-copy>.eyebrow{order:0}
 .idea--steps .steps-copy>h2{order:1;margin-bottom:28px}
 .idea--steps .stack{order:2;width:100%;margin:0}
 .idea--steps .steps-hint{display:block;order:3;font-size:12px;color:var(--gold-deep);margin:18px 0 0}
 .idea--steps .steps{order:4;width:100%;margin-top:8px!important}
 .idea--steps .steps-copy>.body{order:5;margin-top:24px!important}
 .idea--steps .steps>span[aria-pressed="true"]{color:var(--gold-deep);border-bottom-color:var(--gold-deep)}
}

/* Current-page navigation indicator on desktop and mobile. */
.hdr .nav a[aria-current="page"]{color:var(--gold-deep)!important;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px;}

/* Native scrolling for page and anchor navigation. */
html{scroll-behavior:auto!important}

/* Keep reading content ready as it enters the viewport. */
body [data-rise],body .group-inner-reveal{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important;transition-delay:0s!important}
body .rv-i{transform:none!important;transition:none!important;transition-delay:0s!important}
body .group-plate-reveal{clip-path:none!important}
body.atmos-breathe::after{animation:none!important}
