/* Shared visual language; loaded after existing page styles. */
:root{--bg:#f7f7f2;--surface:#fff;--surface2:#edf3f1;--text:#10283b;--muted:#536672;--line:#dbe5e2;--accent:#007f80;--accent-soft:#dcf3ef;--sss-gradient:linear-gradient(120deg,#007f80,#206b93);--sss-wash:linear-gradient(135deg,#def4ee,#e5eff7)}
:root[data-theme=dark]{--bg:#0b1823;--surface:#112634;--surface2:#193441;--text:#ecf5f3;--muted:#adc1c5;--line:#294653;--accent:#65ddd1;--accent-soft:#153c40;--sss-gradient:linear-gradient(120deg,#65ddd1,#a3d3ef);--sss-wash:linear-gradient(135deg,#153c40,#1d3549)}
.cinematic .c-button,.cinematic .sss-service-page .c-button{background:#007f80!important;color:#fff!important;border-color:#007f80!important;box-shadow:0 8px 24px #007f8015}
.cinematic .c-section{background-image:radial-gradient(ellipse at 100% 0%,#159c9110,transparent 55%);border-top:1px solid var(--line)}
.cinematic .c-section:nth-of-type(2n){background-image:radial-gradient(ellipse at 0% 100%,#267aa010,transparent 55%)}
.c-section-heading h2{max-width:780px}.c-chapter>span,.c-photo-symbol{color:var(--accent)}
.c-card,.sss-feature-card,.sss-team-card,.sss-details article{border-radius:16px!important;border:1px solid var(--line);overflow:hidden}
.c-card-picture img,.c-process-photo{object-fit:cover}.c-card-picture{background:var(--surface2)}
.sss-details article{padding:28px;background:linear-gradient(145deg,var(--surface),var(--surface2));border-top:3px solid var(--accent)}
.c-process article{border-radius:14px;overflow:hidden}.c-process article>span{color:var(--accent);font-weight:700}
.sss-section-symbol{width:38px;height:38px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--sss-wash);color:var(--accent);margin:0 0 18px}
.sss-section-symbol svg{width:21px;height:21px}
.c-has-hero-photo.sss-logo-hero{padding-right:6%!important}.c-has-hero-photo>.sss-secondary-logo{display:none}
@media(max-width:600px){.sss-details article{padding:22px}.c-hero h1{letter-spacing:-2px}}

/* Contrast fixes for small text, including overlays on photos. */
:root:not([data-theme=dark]) .cinematic :is(.c-kicker,.c-chapter small,.c-card-top,.c-hero-bottom,.c-scene-tag){color:#40545f!important}
.cinematic .c-card-picture .c-picture-label{color:#fff!important;background:#10283bea;padding:6px 10px;border-radius:5px}
.cinematic .c-photo-symbol{background:var(--surface);color:var(--accent)}
:root[data-theme=dark] .cinematic :is(.c-kicker,.c-chapter small,.c-card-top,.c-hero-bottom,.c-scene-tag){color:#bfd3d6!important}
.c-kicker i,.c-scene-tag i{animation:none!important}

/* Targeted Lighthouse contrast fixes: solid backgrounds keep ratios predictable. */
html body.cinematic .c-chapter>span,
html body.cinematic .c-section-heading mark{
 color:#07555a!important;background:#dcf3ef!important;
 -webkit-text-fill-color:currentColor;opacity:1;
}
html body.cinematic .c-work .c-work-label{
 background:#f7f7f2;color:#10283b;
}
html body.cinematic .c-work .c-work-label small{
 color:#07555a!important;opacity:1;
}
html[data-theme=dark] body.cinematic .c-chapter>span,
html[data-theme=dark] body.cinematic .c-section-heading mark{
 color:#bdf4e9!important;background:#153c40!important;
}
html[data-theme=dark] body.cinematic .c-work .c-work-label{
 background:#0b1823;color:#ecf5f3;
}
html[data-theme=dark] body.cinematic .c-work .c-work-label small{
 color:#bdf4e9!important;
}
/* Number badges sit over photographs; never inherit the teal accent here. */
html body.cinematic .c-process article>span{
 color:#ffffff!important;background:#0b2c4a!important;
 -webkit-text-fill-color:currentColor;opacity:1;
}

/* Photo badges are white on solid navy in both themes, independent of muted labels. */
html body.cinematic .c-card-picture .c-picture-label{
 color:#ffffff!important;background:#10283b!important;
 -webkit-text-fill-color:#ffffff!important;opacity:1!important;
 font-size:11px;line-height:1.4;letter-spacing:1px;font-weight:700;
 padding:7px 10px;border-radius:5px;text-shadow:none;
}
