/* Interaction states shared across templates; preserve the resting Figma layout. */
a:not(.button):not(.brand),.services-menu>summary,.menu-category,.city-toggle,
.city-search-field button,.city-list a,.services-catalog summary,.faq-list summary,
.review-image,.office-map,.consent input {
 transition:color 240ms ease,background-color 240ms ease,border-color 240ms ease,box-shadow 240ms ease,transform 280ms var(--motion-ease);
}
.nav-links a,.services-menu>summary {transition:color 240ms ease}
.services-menu>summary[aria-expanded=true] {color:var(--color-primary)}
.city-search-field button {background-image:none;color:#fff}
.city-search-field button::before {
 content:'';position:absolute;inset:0;pointer-events:none;
 background-color:currentColor;
 -webkit-mask:url('../icons/city-search.svg') center/26px no-repeat;
 mask:url('../icons/city-search.svg') center/26px no-repeat;
 transition:transform 280ms var(--motion-ease);
}
.city-search-field button:focus-visible {
 background-color:#fff;color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary);
}
.nav-links a:focus-visible,.services-menu>summary:focus-visible {color:var(--color-primary)}
.city-list a:focus-visible,.article-toc a:focus-visible,.menu-category:focus-visible {color:var(--color-primary);background-color:#e6fbfa}
@media(hover:hover) and (pointer:fine) {
 .nav-links a:hover,.services-menu>summary:hover {color:var(--color-primary)}
 .city-toggle:hover,.topbar-contact .phone:hover,.mega-links .menu-subservices a:hover {color:var(--color-primary)}
 .mega-links .menu-category:hover,.mobile-service-links a:hover,
 .article-toc a:hover {color:var(--color-primary);background-color:#e6fbfa}
 .footer-grid li a:hover,.footer-bottom a:hover,.breadcrumbs a:hover,.post-author:hover {
  color:var(--color-primary);text-decoration:underline;text-underline-offset:4px;
 }
 .service-link:hover,.catalog-subservices a:hover,.services-catalog summary:hover {
  color:var(--color-primary);background-color:#e6fbfa;border-color:var(--color-primary);
 }
 .faq .faq-list summary:hover,.article-faq summary:hover {color:var(--color-primary);background-color:#f0f9f8}
 .post-card h3 a:hover {color:var(--color-primary)}
 .review-image:hover,.office-map:hover {box-shadow:0 0 0 2px var(--color-primary)}
 .socials a:hover,.socials button:hover {box-shadow:0 0 0 3px #57aba633}
 .city-search-field button:hover {
  background-color:#fff;color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary);
 }
 .city-search-field button:hover::before {transform:scale(1.1)}
 .city-search-field button:active::before {transform:scale(.96)}
 .button:not(:disabled):not([aria-disabled=true]):hover {
  background:var(--color-primary);border-color:var(--color-primary);color:#fff;
 }
 .button--primary:not(:disabled):not([aria-disabled=true]):hover,
 :is(.card--teal,.cta,.mini-cta--teal,.document-callout,.dialog--consultation,.dialog--success) .button:not(:disabled):not([aria-disabled=true]):hover {
  background:#fff;border-color:var(--color-primary);color:var(--color-primary);
 }
 .document-callout .button::after {background:currentColor;-webkit-mask:url('../icons/file-pdf.svg') center/contain no-repeat;mask:url('../icons/file-pdf.svg') center/contain no-repeat;transition:background-color 240ms ease}
 .consent:hover input:not(:disabled) {box-shadow:0 0 0 3px #57aba633}
 :is(.cta,.card--teal,.mini-cta--teal) .consent:hover input:not(:disabled) {box-shadow:0 0 0 3px #ffffff55}
}
@media(prefers-reduced-motion:reduce) {
 .city-search-field button:hover::before,.city-search-field button:active::before {transform:none}
}

/* The expert stays in place while the service catalogue scrolls beneath it. */
@media(min-width:1101px) {
 body:has(.services-menu[open]) {overflow:hidden}
 .mega-menu {display:flex;flex-direction:column;gap:0;height:calc(var(--menu-viewport,100vh) - var(--menu-top-offset,136px));min-height:calc(var(--menu-viewport,100vh) - var(--menu-top-offset,136px));max-height:calc(var(--menu-viewport,100vh) - var(--menu-top-offset,136px));overflow:hidden}
 .mega-menu>.menu-expert-wrap {flex:none}
 .menu-catalog {flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#57aba6 #f7f7f7}
 .mega-links {align-items:start}
 .menu-panels {position:sticky;top:8px;min-width:0}
 .mega-links .menu-category {height:auto;min-height:40px;padding:9px 34px 9px 12px;border-radius:6px;overflow-wrap:anywhere}
 .menu-category[data-menu-category]::after {right:12px}
 .mega-links .menu-category.is-selected {background-color:#e6fbfa}
}

/* Keep both header rows available without removing them from document flow. */
.site-header {position:sticky;top:0;z-index:100;background:var(--color-background)}
html {scroll-padding-top:calc(var(--site-header-height,136px) + 20px)}
@media(min-width:601px) {.admin-bar .site-header {top:46px}}
@media(min-width:783px) {.admin-bar .site-header {top:32px}}
