/* CynCode 3.1 – additive extensions. The supplied site.css is unchanged. */
.mega-menu { max-height: calc(100dvh - 110px); overflow-y: auto; overscroll-behavior: contain; }
.mega-intro .text-link { display: flex; width: fit-content; margin-top: 1.1rem; }
.mega-links.mega-grouped { gap: 2rem; align-items: start; }
.mega-group { min-width: 0; }
.mega-group-title { font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; margin: 0 0 .7rem; color: var(--muted, #56686b); }
.mega-group a { grid-template-columns: 1fr auto; gap: .55rem; padding: .7rem 0; min-width: 0; border-bottom: 1px solid var(--line, #d7e3e0); }
.mega-group a > span { font-size: .95rem; line-height: 1.35; min-width: 0; }
.mega-group a[aria-current="page"] { color: var(--ink, #10272a); font-weight: 800; }
.mega-group a > .icon { width: 16px; height: 16px; }
.cta-direct { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin-top: 1.6rem; align-items: center; font-size: .9rem; line-height: 1.7; }
.cta-direct > span { opacity: .72; }
.cta-direct a { text-decoration: underline; text-underline-offset: .25em; overflow-wrap: anywhere; }
.cta-direct a:hover { text-decoration-thickness: 2px; }
.contact-location p { margin-top: .7rem; max-width: 43ch; font-size: .9rem; line-height: 1.65; font-weight: 400; text-transform: none; letter-spacing: 0; }
.contact-location > a, .footer-location > a { text-decoration: underline; text-underline-offset: .24em; }
.trust-facts .text-link { margin-top: .8rem; font-size: .85rem; }
.service-visual { min-width: 0; }
.service-visual-scene { padding: 2.2rem; }
.service-visual-heading { margin: 0 0 1.8rem; font-size: clamp(1.55rem, 2.8vw, 2.8rem); font-weight: 700; line-height: 1.08; letter-spacing: -.045em; }
.service-visual-heading > span { display: block; }
.service-visual-heading > span:last-child { color: var(--cyan, #72e1d4); }
.service-visual-rows { border-top: 1px solid rgba(255,255,255,.16); }
.service-visual-row { display: grid; grid-template-columns: 1.6rem 1fr 1rem; align-items: center; gap: .7rem; padding: .85rem 0; border-bottom: 1px solid rgba(255,255,255,.16); font-size: .95rem; line-height: 1.4; }
.service-visual-row > span { min-width: 0; }
.service-visual-row .icon { width: 15px; height: 15px; opacity: .65; }
.service-visual-note { margin: 1.35rem 0 0; color: #bfd0cd; font-size: .76rem; line-height: 1.5; max-width: 42ch; }
@media (max-width: 1190px) and (min-width: 981px) {
    .mega-menu { gap: 1.5rem; padding: 1.8rem; }
    .mega-links.mega-grouped { gap: 1.2rem; }
    .service-visual-scene { padding: 1.5rem; }
}
@media (max-width: 980px) {
    .mega-menu { max-height: none; overflow: visible; }
    .mega-links.mega-grouped { gap: 1.2rem; }
    .mega-group a > span { font-size: .94rem; }
    .service-visual-heading { font-size: clamp(2rem, 5vw, 3.2rem); }
}
@media (max-width: 700px) {
    .mega-links.mega-grouped { grid-template-columns: 1fr; gap: 1.2rem; }
    .mega-group-title { margin-bottom: .2rem; }
    .mega-group a { padding: .65rem 0; }
    .service-visual-scene { padding: 1.35rem; }
    .service-visual-heading { font-size: clamp(1.5rem, 6.5vw, 2.5rem); margin-bottom: 1.2rem; }
    .service-visual-row { font-size: .85rem; padding: .7rem 0; gap: .4rem; }
    .service-visual .visual-top { font-size: .57rem; }
    .service-visual .visual-bottom { font-size: .62rem; }
    .cta-direct { display: grid; gap: .45rem; }
}
/* Explicit display for nested menu links; the original menu used direct grid children. */
.mega-group > a { display: grid; align-items: center; min-height: 44px; }
.mega-group > a > .icon { position: static; }
/* Variable-length bilingual copy must never be clipped by the old illustration ratio. */
.page-hero-visual .service-visual { aspect-ratio: auto; height: auto; }
.service-visual > .visual-top, .service-visual > .visual-bottom { flex-shrink: 0; }
