/* Service pages: shared styles for /services/*, /pt/services/*, /es/services/*.
   Base block mirrors the inline CSS of the original three service pages; the rest adds body sections, proof links and the directory. */
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#efeee9;color:#111;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}
.nav{height:74px;padding:0 2.2vw;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-transform:uppercase;font-size:11px}.logo{font-size:28px;font-weight:800;letter-spacing:-.06em}.mid{display:flex;gap:28px}.right{display:flex;justify-content:flex-end;gap:18px}.langs{display:flex;gap:8px}.langs a{opacity:.35}.langs a.active{opacity:1}
.hero{min-height:76vh;padding:14vh 2.2vw 7vh;display:grid;grid-template-columns:1fr 3fr;gap:5vw;border-top:1px solid rgba(0,0,0,.15)}.label{font-size:10px;letter-spacing:.11em;text-transform:uppercase}.hero h1{font-size:clamp(64px,10vw,160px);line-height:.79;letter-spacing:-.07em;font-weight:500;margin:0 0 42px}.hero p{font-size:clamp(20px,2vw,32px);line-height:1.28;max-width:900px;margin:0}
.list{padding:0 2.2vw 10vh;margin-left:25%}.list div{display:grid;grid-template-columns:70px 1fr;padding:23px 0;border-top:1px solid rgba(0,0,0,.2)}.list div:last-child{border-bottom:1px solid rgba(0,0,0,.2)}.list span{font-size:10px}.list strong{font-size:clamp(24px,3vw,48px);font-weight:500;letter-spacing:-.035em}
.foot{background:#0b0b0b;color:#fff;padding:8vh 2.2vw;display:grid;grid-template-columns:1fr 3fr;gap:5vw}.foot a{font-size:clamp(42px,7vw,100px);letter-spacing:-.06em;line-height:.9}
/* additions */
.hero .descriptor{margin-top:-14px;margin-bottom:28px;font-size:clamp(17px,1.5vw,22px);line-height:1.35;max-width:760px}
.page-hero{min-height:60vh}
.sec{display:grid;grid-template-columns:1fr 3fr;gap:5vw;padding:8vh 2.2vw;border-top:1px solid rgba(0,0,0,.15)}
.sec h2{font-size:clamp(30px,3.6vw,56px);font-weight:500;letter-spacing:-.05em;line-height:.98;margin:0 0 26px;max-width:900px}
.sec p{font-size:clamp(17px,1.5vw,22px);line-height:1.45;max-width:820px;margin:0 0 18px}
.sec ul{margin:0 0 18px;padding:0 0 0 1.1em;max-width:820px;font-size:clamp(16px,1.35vw,20px);line-height:1.5}.sec li{margin-bottom:6px}
.plist{display:block;max-width:980px}.plist a{display:grid;grid-template-columns:1fr 2fr auto;gap:2vw;align-items:baseline;padding:20px 0;border-top:1px solid rgba(0,0,0,.2)}.plist a:last-child{border-bottom:1px solid rgba(0,0,0,.2)}
.plist strong{font-size:clamp(18px,1.9vw,28px);font-weight:500;letter-spacing:-.03em}.plist span{font-size:clamp(15px,1.15vw,17px);line-height:1.45;opacity:.8}.plist em{font-style:normal;font-size:20px}
.plist a:hover strong{text-decoration:underline;text-underline-offset:6px}
.sec .inline-link{border-bottom:1px solid currentColor}
.related{display:flex;flex-wrap:wrap;gap:12px 28px;font-size:clamp(16px,1.4vw,20px)}.related a{border-bottom:1px solid currentColor;padding-bottom:3px}
/* directory */
.dir-core{display:block;padding:0 2.2vw 7vh;margin-left:25%}
.dir-core a{display:grid;grid-template-columns:50px minmax(0,1.7fr) minmax(0,1fr) 30px;gap:2vw;padding:30px 0;border-top:1px solid rgba(0,0,0,.25);align-items:start}.dir-core a:last-child{border-bottom:1px solid rgba(0,0,0,.25)}
.dir-core span{font-size:10px;padding-top:.6em}.dir-core strong{font-size:clamp(28px,3.2vw,52px);line-height:.92;letter-spacing:-.05em;font-weight:500}.dir-core p{margin:0;font-size:clamp(14px,1.15vw,17px);line-height:1.4;opacity:.8}.dir-core em{font-style:normal;font-size:22px}
.dir-add{display:block;padding:0 2.2vw 10vh;margin-left:25%}
.dir-add a{display:grid;grid-template-columns:50px minmax(0,1.7fr) minmax(0,1fr) 24px;gap:2vw;padding:15px 0;border-top:1px solid rgba(0,0,0,.15);align-items:baseline}.dir-add a:last-child{border-bottom:1px solid rgba(0,0,0,.15)}
.dir-add span{font-size:10px}.dir-add strong{font-size:clamp(18px,1.7vw,26px);font-weight:500;letter-spacing:-.03em}.dir-add p{margin:0;font-size:clamp(13px,1vw,15px);line-height:1.4;opacity:.7}.dir-add em{font-style:normal;font-size:16px}
.dir-label{padding:0 2.2vw 18px;margin-left:25%}
.dir-core a:hover strong,.dir-add a:hover strong{text-decoration:underline;text-underline-offset:6px}
@media(max-width:800px){
 .nav{grid-template-columns:1fr 1fr}.mid{display:none}.right>a:last-child{display:none}
 .hero,.foot,.sec{grid-template-columns:1fr;padding-left:5vw;padding-right:5vw;gap:28px}
 .hero{min-height:auto;padding-top:12vh}
 .list{margin:0;padding-left:5vw;padding-right:5vw}
 .plist a{grid-template-columns:1fr auto;gap:6px 12px}.plist span{grid-column:1/2;grid-row:2}
 .dir-core,.dir-add,.dir-label{margin-left:0;padding-left:5vw;padding-right:5vw}
 .dir-core a{grid-template-columns:38px 1fr 24px;gap:10px 14px}.dir-core p{grid-column:2/4}
 .dir-add a{grid-template-columns:38px 1fr 20px;gap:4px 14px}.dir-add p{grid-column:2/4}
 .dir-core span,.dir-add span{grid-column:1;grid-row:1}.dir-core strong,.dir-add strong{grid-column:2;grid-row:1}.dir-core em,.dir-add em{grid-column:3;grid-row:1}.dir-core p,.dir-add p{grid-row:2}
}
/* More Projects */
.mp{display:grid;grid-template-columns:1fr 3fr;gap:5vw;padding:8vh 2.2vw;border-top:1px solid rgba(0,0,0,.15)}
.mp-meta{font-size:11px;letter-spacing:.11em;text-transform:uppercase;line-height:1.6}
.mp h2{font-size:clamp(30px,3.6vw,56px);font-weight:500;letter-spacing:-.05em;line-height:.98;margin:0 0 8px;max-width:980px}
.mp .mp-sub{font-size:clamp(18px,1.7vw,26px);letter-spacing:-.03em;margin:0 0 22px;opacity:.7}
.mp p{font-size:clamp(17px,1.5vw,22px);line-height:1.45;max-width:820px;margin:0 0 22px}
.mp dl{display:grid;grid-template-columns:140px 1fr;gap:10px 22px;max-width:820px;margin:0 0 26px;font-size:clamp(14px,1.1vw,16px);line-height:1.45}
.mp dt{font-size:10px;letter-spacing:.11em;text-transform:uppercase;padding-top:.35em;opacity:.7}.mp dd{margin:0}
.mp dd a{border-bottom:1px solid currentColor}
.mp-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1vw;max-width:1100px}
.mp-gallery.two{grid-template-columns:repeat(2,1fr)}
.mp-gallery img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.mp-gallery figure{margin:0}
.mp .mp-credit,.mp p.mp-credit{font-size:11px;line-height:1.4;opacity:.6;margin:10px 0 26px;letter-spacing:.04em;max-width:none}
.mp-gallery figcaption.mp-credit{margin:6px 0 0}
.mp-credit{font-size:11px;opacity:.6;margin:10px 0 0;letter-spacing:.04em}
@media(max-width:800px){.mp{grid-template-columns:1fr;padding-left:5vw;padding-right:5vw;gap:22px}.mp dl{grid-template-columns:1fr;gap:2px}.mp dd{margin-bottom:10px}.mp-gallery,.mp-gallery.two{grid-template-columns:1fr;gap:5vw}}
/* Optional service media (Curator "Services Media"). Empty slots emit no markup.
   Media sits on the same 1fr / 3fr grid as the text sections: the content column starts at 25% + 3.75vw of the padded width.
   --w / --r (source width / aspect ratio) are set on each image: a landscape Lead is full width only when its source can fill it (else content column), portrait or near-square images
   and every Feature sit in the content column; nothing is upscaled and nothing is cropped except gallery tiles. */
.svc-media{padding:0 2.2vw 7vh;margin:0}.svc-media figure{margin:0}
.svc-media img,.svc-media-inline img{--col:calc(25% + 3.75vw);display:block;height:auto}
.svc-media-lead img{--off:max(clamp(0px,calc((100% - var(--w,100%))*9999),var(--col)),calc(clamp(0,(1.1 - var(--r,2))*9999,1)*var(--col)));margin-left:var(--off);width:min(var(--w,100%),calc(100% - var(--off)),calc(85vh*var(--r,2) + clamp(0,(var(--r,2) - 1.1)*9999,1)*100000px))}
.svc-media-feature img{margin-left:var(--col);width:min(var(--w,100%),calc(100% - var(--col)),calc(85vh*var(--r,2) + clamp(0,(var(--r,2) - 1.1)*9999,1)*100000px))}
.list+.svc-media-lead{margin-top:-4vh}.sec+.svc-media{margin-top:-3vh}
.svc-media-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1vw}
.svc-media-gallery figure{aspect-ratio:3/2;overflow:hidden}.svc-media-gallery img{width:100%;height:100%;object-fit:cover}
/* One tile: a single Gallery image takes the Lead image's box (same left edge and width, mirrored by ggs-global-ui.js; the content column without JS), keeps its own ratio and never stretches. */
.svc-media-gallery[data-count="1"]{display:block}.svc-media-gallery[data-count="1"] figure{aspect-ratio:auto;overflow:visible;margin-left:var(--lead-x,calc(25% + 3.75vw));width:var(--lead-w,calc(100% - (25% + 3.75vw)))}.svc-media-gallery[data-count="1"] img{height:auto;object-fit:initial}
/* Three: a 2-column grid of identical tiles; the lone third tile stays one column wide instead of stretching. */
.svc-media-gallery[data-count="3"] figure{aspect-ratio:3/2}
/* Selected work: the image and the existing project link read as one proof block */
.svc-media-inline{margin:4px 0 0;max-width:980px}.svc-media-inline+.plist{margin-top:clamp(40px,5.5vh,60px)}
.svc-media-inline img{width:min(var(--w,100%),100%,calc(80vh*var(--r,2) + clamp(0,(var(--r,2) - 1.1)*9999,1)*100000px))}
@media(max-width:800px){.svc-media{padding:0 5vw 8vw}.svc-media-lead img,.svc-media-feature img{margin-left:0;width:min(var(--w,100%),100%)}.svc-media-gallery,.svc-media-gallery[data-count="1"]{display:block}.svc-media-gallery[data-count="1"] figure{margin-left:0;width:auto}.svc-media-gallery figure,.svc-media-gallery[data-count="1"] figure{margin-bottom:5vw}.svc-media-gallery figure:last-child{margin-bottom:0}.list+.svc-media-lead{margin-top:-2vh}.sec+.svc-media{margin-top:-2vh}.svc-media-inline{margin:2px 0 0}}
/* Services hero type scale (scoped to Services pages: More Projects shares .hero and is left alone) */
main:is(:has(>.list),:has(>.dir-core)) .hero{min-height:54vh;padding-bottom:9vh}
main:is(:has(>.list),:has(>.dir-core)) .hero h1{font-size:clamp(44px,5.8vw,100px);line-height:.94;margin:0 0 30px}
main:is(:has(>.list),:has(>.dir-core)) .hero p{font-size:clamp(16px,1.32vw,20px);line-height:1.45;max-width:720px}
main:is(:has(>.list),:has(>.dir-core)) .hero .descriptor{margin:-8px 0 22px;font-size:clamp(19px,1.67vw,25px);line-height:1.2;font-weight:400;max-width:820px}
@media(max-width:800px){main:is(:has(>.list),:has(>.dir-core)) .hero{min-height:auto;padding-bottom:7vh}main:is(:has(>.list),:has(>.dir-core)) .hero h1{margin-bottom:22px}}
/* Technical credential line (AV for Museums): small, inside the editorial grid */
.sec-credential{padding-top:5vh;padding-bottom:5vh}.sec-credential .cred-title{font-size:clamp(18px,1.5vw,22px);font-weight:500;letter-spacing:-.02em;line-height:1.25;margin:0 0 8px}.sec-credential .cred-meta{font-size:clamp(14px,1.05vw,16px);line-height:1.45;opacity:.75;margin:0;max-width:640px}
@media(max-width:800px){.sec-credential{padding-top:7vw;padding-bottom:7vw}}
