:root { --interaction-accent:#bba9ce; --interaction-time:180ms; }
/* A consistent keyboard marker; inset markers stay inside scrollable lists. */
:is(a,button):focus-visible { outline:2px solid var(--interaction-accent); outline-offset:5px; }
.service-tab:focus-visible,.project-row:focus-visible,.faq-question:focus-visible { outline:2px solid var(--interaction-accent); outline-offset:-3px; }
.calc-option:has(input:focus-visible) { outline:2px solid var(--interaction-accent); outline-offset:3px; }
:is(.cta,.calc-back,.service-next,.contact-channel,.reference-offer-link) {
 transition-duration:var(--interaction-time);
}
:is(.cta,.calc-back,.service-next,.contact-channel,.reference-offer-link):active {
 transform:translateY(0); scale:.98;
}
:is(.case-open,.about-project-link,.calc-max-link,.contact-phone,.site-nav a,.header-contact,.site-footer a,.reference-legal a,.figure-sound-toggle) {
 transition:color var(--interaction-time),opacity var(--interaction-time),border-color var(--interaction-time);
}
:is(.case-open,.about-project-link,.calc-max-link,.contact-phone,.site-nav a,.header-contact,.site-footer a,.reference-legal a,.figure-sound-toggle):active { opacity:.7; }
:is(.service-tab,.project-row,.faq-question) { transition:background var(--interaction-time),border-color var(--interaction-time),color var(--interaction-time); }
:is(.service-tab,.project-row,.faq-question):active { background:rgb(187 169 206 / 12%); }
.calc-option:active { transform:translateY(0); border-color:var(--interaction-accent); }
:is(.cta,.text-link,.service-next,.about-project-link,.case-open) { gap:.75rem; }
:is(.cta,.text-link,.service-next,.about-project-link,.case-open) svg { width:18px; height:18px; flex:0 0 18px; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.case-open svg { fill:none; stroke:currentColor; transition:translate var(--interaction-time); }
.case-open:is(:hover,:focus-visible) svg { translate:2px -2px; }
@media(hover:hover) and (pointer:fine) {
 :is(.site-nav a,.header-contact,.site-footer a,.contact-phone):hover { color:#f2f2f6; }
 :is(.case-open,.about-project-link):hover { border-color:var(--interaction-accent); }
 .faq-question:hover { background:rgb(187 169 206 / 5%); }
}
@media(hover:none) {
 .cta:hover,.calc-option:hover,.contact-channel:hover { transform:none; }
}
@media(prefers-reduced-motion:reduce) {
 :is(.cta,.calc-back,.service-next,.contact-channel,.reference-offer-link,.case-open,.about-project-link,.calc-max-link,.contact-phone,.site-nav a,.header-contact,.site-footer a,.reference-legal a,.figure-sound-toggle,.service-tab,.project-row,.faq-question,.calc-option),.case-open svg { transition:none; }
}

/* The final item ends the dropdown without an extra divider. */
.site-nav a:last-child { border-bottom:0; }
