/* Homepage interactive selector. Static fallback exposes all service content. */
.home-editorial .home-services { background:var(--paper); color:var(--ink); }
.home-editorial .home-services h2 { color:var(--ink); }
.service-explorer { position:relative; container-type:inline-size; overflow-anchor:none; }
.service-explorer .se-cards { display:grid; gap:24px; }
.service-explorer .se-service { position:relative; min-width:0; background:var(--ink); color:var(--paper); overflow:hidden; }
.service-explorer h3 { margin:0; padding:20px; font-size:21px; line-height:1.3; font-weight:400; letter-spacing:-.02em; }
.service-explorer .se-frame { position:relative; width:100%; aspect-ratio:4/3; overflow:hidden; background:#28353a; }
.service-explorer .se-frame img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.service-explorer .se-placeholder { position:absolute; inset:0; display:grid; place-content:center; text-align:center; padding:20px; }
.service-explorer .se-placeholder span { display:none; }
.service-explorer .se-placeholder small { color:var(--paper); }
.service-explorer .se-copy { padding:20px; }
.service-explorer .se-copy p { font-size:15px; line-height:1.6; margin:0 0 12px; max-width:44ch; color:var(--paper); }
.service-explorer .se-copy .se-active-title { display:none; }
.service-explorer .home-link { color:var(--paper); border-color:rgba(241,241,237,.55); }
.service-explorer .se-trigger { width:100%; min-height:96px; display:flex; align-items:center; justify-content:space-between; gap:16px; appearance:none; border:0; border-radius:0; padding:18px 20px; background:none; color:var(--paper); text-align:left; font:inherit; cursor:pointer; }
.service-explorer .se-trigger::after { content:'+'; font-size:24px; font-weight:300; }
.service-explorer .is-active .se-trigger::after { content:'\2212'; }
.service-explorer .se-trigger:focus-visible { outline:2px solid var(--paper); outline-offset:-6px; }
.service-explorer a:focus-visible { outline:2px solid var(--paper); outline-offset:4px; }
.service-explorer.is-ready .se-cards { gap:0; }
.service-explorer.is-ready h3 { position:relative; z-index:2; padding:0; }
.service-explorer.is-ready .se-frame { position:absolute; inset:0 0 auto; height:100%; aspect-ratio:auto; }
.service-explorer.is-ready .se-frame::after { content:''; position:absolute; inset:0; background:rgba(16,24,32,.62); }
.service-explorer.is-ready .se-service:not(.is-active) .se-panel { display:none; }
.service-explorer.is-ready .is-active .se-frame { top:96px; height:auto; aspect-ratio:4/3; }
.service-explorer.is-ready .is-active .se-frame::after { background:none; }
.service-explorer.is-ready .is-active .se-panel { position:relative; padding-top:75%; }
.service-explorer.is-ready .se-copy { background:var(--ink); }
@media(min-width:1100px) {
 .service-explorer:not(.is-ready) .se-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .service-explorer.is-ready .se-cards { grid-template-columns:7fr 1fr 1fr 1fr 1fr 1fr; height:calc(100cqw*.4375); min-height:340px; }
 .service-explorer.is-ready .se-frame,.service-explorer.is-ready .is-active .se-frame { inset:0; height:100%; aspect-ratio:auto; }
 .service-explorer.is-ready .se-frame img { transform:scale(1.12); }
 .service-explorer.is-ready .is-active .se-frame img { transform:scale(1); }
 .service-explorer.is-ready .se-frame::after { background:rgba(16,24,32,.48); }
 .service-explorer.is-ready .is-active .se-frame::after { background:linear-gradient(0deg,rgba(16,24,32,.94),rgba(16,24,32,.6) 35%,rgba(16,24,32,0) 75%); }
 .service-explorer.is-ready h3 { position:absolute; inset:0; }
 .service-explorer.is-ready .se-trigger { position:absolute; inset:0; min-height:0; padding:0; }
 .service-explorer.is-ready .se-trigger > span:not(.se-icon) { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .service-explorer.is-ready .se-trigger::after { position:absolute; top:18px; right:0; width:100%; text-align:center; }
 .service-explorer.is-ready .se-trigger::after { display:none; }
 .service-explorer.is-ready .is-active .se-panel { position:absolute; z-index:3; bottom:0; left:0; right:0; padding:0; pointer-events:none; }
 .service-explorer.is-ready .se-copy { background:none; padding:28px 28px 28px 88px; }
 .service-explorer.is-ready .se-copy .se-active-title { display:block; font-size:clamp(25px,2.4vw,36px); line-height:1.12; letter-spacing:-.025em; margin-bottom:12px; max-width:22ch; }
 .service-explorer.is-ready .se-copy a { pointer-events:auto; }
}
/* Spatial continuity for pointer expansion; keyboard and reduced-motion changes are immediate. */
@media(min-width:1100px) and (prefers-reduced-motion:no-preference) {
 .service-explorer.is-ready:not(.se-keyboard) .se-cards { transition:grid-template-columns 500ms var(--ease-out); }
 .service-explorer.is-ready:not(.se-keyboard) .se-frame img { transition:transform 500ms var(--ease-out); }
}
.reduced .service-explorer.is-ready .se-cards,.reduced .service-explorer.is-ready .se-frame img { transition:none; }

/* Icon-led, adjoining panels from the replacement reference. */
.service-explorer.is-ready .se-service { border:2px solid #29333b; }
.service-explorer.is-ready .se-service.is-active { border-color:var(--paper); }
.service-explorer .se-icon { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; border-radius:50%; border:1px solid rgba(241,241,237,.4); background:rgba(16,24,32,.9); }
.service-explorer .se-icon svg { width:24px; height:24px; }
.service-explorer .se-trigger > span:not(.se-icon) { flex:1; }
.service-explorer.is-ready .is-active .se-icon { border-color:var(--paper); }
@media(min-width:1100px) {
 .service-explorer.is-ready .se-icon { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); }
 .service-explorer.is-ready .is-active .se-icon { left:22px; bottom:76px; transform:none; }
}
@media(max-width:1099px) {
 .service-explorer .se-trigger { font-size:18px; padding:14px 16px; gap:12px; }
 .service-explorer .se-trigger::after { font-size:22px; }
 .service-explorer.is-ready .se-frame::after { background:rgba(16,24,32,.72); }
 .service-explorer.is-ready .is-active .se-frame::after { background:none; }
}
