/* 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}
