/* Header, dropdown menu, WhatsApp/call buttons and the mobile action bar. Loaded on every page. Mobile first. */
:root{--head-h:64px;--wa:#128C4A;--wa-dark:#0B6334}
@media (min-width:1201px){:root{--head-h:72px}}
html{scroll-padding-top:calc(var(--head-h) + 16px)}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Header (no backdrop-filter: it would trap the fixed mobile menu inside the header) */
.site-header{position:sticky;top:0;z-index:100;background:var(--paper);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.site-header.scrolled{border-bottom-color:var(--line);box-shadow:0 4px 18px rgba(18,49,42,.06)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:10px;height:var(--head-h)}
.logo{display:flex;align-items:center;gap:9px;flex:none;text-decoration:none;color:var(--ink);font:800 1.05rem/1 var(--head);letter-spacing:-.02em;white-space:nowrap}
.logo-mark{width:32px;height:32px;border-radius:9px;background:var(--ink);display:grid;place-items:center;flex:none}
.logo-mark svg{width:20px;height:20px;color:#fff}
.logo em{font-style:normal;color:var(--brick)}
@media (min-width:600px){.logo{font-size:1.2rem;gap:10px}.logo-mark{width:36px;height:36px;border-radius:10px}.logo-mark svg{width:22px;height:22px}}
@media (max-width:359px){.logo-mark{display:none}}
.nav-actions{display:flex;align-items:center;gap:8px;flex:none}
.nav-actions .btn{display:none;min-height:44px;padding:9px 16px;font-size:.94rem}
@media (min-width:520px){.nav-actions .btn{display:inline-flex}}
.menu-btn{width:44px;height:44px;padding:0;border-radius:10px;border:1.5px solid var(--line);background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer}
.menu-btn .icon{width:22px;height:22px}

/* Mobile: the menu drops down below the header and fills the screen */
.menu{position:fixed;left:0;right:0;top:var(--head-h);bottom:0;z-index:99;display:none;flex-direction:column;gap:22px;padding:6px 16px calc(24px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);overflow-y:auto;overscroll-behavior:contain}
body.menu-open{overflow:hidden}
body.menu-open .menu{display:flex}
.menu-list{list-style:none;margin:0;padding:0}
.menu-list>li{border-bottom:1px solid var(--line)}
.menu-list a{display:flex;align-items:center;min-height:52px;padding:6px 4px;text-decoration:none;font:600 1.08rem/1.3 var(--body);color:var(--ink)}
.menu-list a[aria-current]{color:var(--brick-dark)}
.sub-row{display:flex;align-items:center;justify-content:space-between}
.sub-row a{flex:1}
.sub-toggle{width:48px;height:48px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer}
.sub-toggle .icon{transition:transform .2s}
.has-sub.open .sub-toggle .icon{transform:rotate(180deg)}
.sub{list-style:none;margin:0;padding:0 0 10px 12px;display:none}
.has-sub.open .sub{display:block}
.sub a{min-height:44px;font-size:1rem;font-weight:500;color:var(--ink-2)}
.sub-all a{gap:6px;color:var(--brick-dark);font-weight:700}
.menu-cta{display:grid;gap:10px}
.menu-cta .btn{width:100%}
.menu-cta-note{margin:0;font-size:.92rem;color:var(--muted);text-align:center}

/* Desktop: menu in the header, submenus open on hover or click */
@media (min-width:1201px){
  .menu-btn{display:none}
  .menu{position:static;display:flex;flex-direction:row;align-items:center;gap:0;margin-left:auto;padding:0;background:none;border:0;overflow:visible}
  .menu-cta{display:none}
  .menu-list{display:flex;align-items:center;gap:2px}
  .menu-list>li{position:relative;border:0}
  .menu-list a{min-height:44px;padding:8px 11px;border-radius:8px;font-size:.98rem;color:var(--ink-2);white-space:nowrap}
  .menu-list a:hover,.menu-list a[aria-current]{background:var(--paper-2);color:var(--ink)}
  .sub-row a{padding-right:2px}
  .sub-toggle{width:26px;height:44px}
  .sub-toggle .icon{width:16px;height:16px}
  .sub{position:absolute;top:100%;left:0;min-width:270px;max-height:72vh;overflow-y:auto;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg)}
  .sub-wide{columns:2;column-gap:4px;min-width:430px}
  .sub li{break-inside:avoid}
  .has-sub:hover .sub,.has-sub:focus-within .sub,.has-sub.open .sub{display:block}
  .sub a{min-height:40px;padding:8px 12px;font-size:.95rem;white-space:normal}
  .nav-actions{margin-left:12px}
}

/* WhatsApp and call buttons */
.icon-fill{fill:currentColor;stroke:none}
.btn .icon-fill,.btn:hover .icon-fill{transform:none}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{background:var(--wa-dark)}
.btn-call{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 2px 6px rgba(18,49,42,.18)}
.btn-call:hover{background:var(--ink-2);border-color:var(--ink-2)}
.btn-call:hover .icon{transform:none}
.side-cta .btn-call{background:#fff;color:var(--ink);border-color:#fff}
/* Footer links are styled dark (.foot a); buttons in the footer keep their own colours */
.foot a.btn-wa,.foot a.btn-call{color:#fff;text-decoration:none}
.side-cta .btn-call:hover{background:var(--paper-2);border-color:var(--paper-2)}
.btn-on-dark{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-on-dark:hover{background:rgba(255,255,255,.12);border-color:#fff}
.btn-on-dark .icon-fill{color:#7BE3A6}
.btn-sm{min-height:42px;padding:9px 16px;font-size:.94rem}

/* Quick contact under the hero text and in CTA blocks */
.quick-contact{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.quick-contact .btn{flex:1 1 140px;padding:12px 14px;gap:8px;white-space:nowrap}
@media (min-width:600px){.quick-contact .btn{flex:0 0 auto}}
.quick-note{width:100%;margin:2px 0 0;font-size:.9rem;color:var(--muted)}
.band-actions{display:flex;flex-wrap:wrap;gap:10px;position:relative;z-index:1}
.band-actions .btn{flex:1 1 180px}
@media (min-width:800px){.band-actions{flex-direction:column;align-items:stretch}.band-actions .btn{flex:0 0 auto}}
.side-contact{display:grid;gap:8px;margin-top:10px}
.side-contact .btn{width:100%}

/* Mobile action bar: request, WhatsApp, call */
.sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(18,49,42,.08);transform:translateY(110%);transition:transform .25s}
.sticky-bar.show{transform:none}
.sticky-bar .btn{min-height:46px;padding:8px 8px;gap:6px;font-size:.92rem;white-space:nowrap}
.sticky-bar .btn .icon{width:18px;height:18px}
.sticky-bar .btn:hover .icon{transform:none}
.sticky-bar.two{grid-template-columns:1.3fr 1fr}
@media (min-width:1001px){.sticky-bar{display:none}}
body.menu-open .sticky-bar{display:none}
@media (prefers-reduced-motion:reduce){.sticky-bar{transition:none}}
