/* Modern UI layer — lightweight, framework-free, mobile-first */
:root {
  --ui-radius: 1.35rem;
  --ui-ease: cubic-bezier(.22,1,.36,1);
}
html { scroll-behavior: smooth; text-rendering: optimizeLegibility; }
body { overflow-x: hidden; -webkit-font-smoothing: antialiased; }
::selection { background: rgba(255,122,26,.22); color: inherit; }

/* Reading / scroll progress */
#scroll-progress { position: fixed; inset: 0 0 auto 0; height: 3px; width: 0; z-index: 100; transform-origin: left; background: linear-gradient(90deg,#ff7a1a,#ffb36f); pointer-events:none; }

/* Header: compact glass state */
#site-header { transition: background-color .35s var(--ui-ease), box-shadow .35s var(--ui-ease), border-color .35s var(--ui-ease), transform .35s var(--ui-ease); }
#site-header[data-scrolled="1"] { box-shadow: 0 10px 35px rgba(8,20,39,.10); backdrop-filter: blur(18px) saturate(1.25); -webkit-backdrop-filter: blur(18px) saturate(1.25); }
.dark #site-header[data-scrolled="1"] { box-shadow: 0 14px 40px rgba(0,0,0,.28); }

/* Interactive cards */
.gradient-border, article > div, .glass { will-change: transform; }
.gradient-border { transition: transform .45s var(--ui-ease), box-shadow .45s var(--ui-ease), border-color .35s ease; }
.gradient-border:hover { transform: translateY(-4px); }

/* Reveal animation is GPU friendly */
.reveal { opacity: 0; transform: translate3d(0,24px,0); transition: opacity .7s var(--ui-ease), transform .7s var(--ui-ease); }
.reveal.is-visible { opacity: 1; transform: translate3d(0,0,0); }

/* Mobile menu: outside header stacking context, above every page section */
#site-header { position: sticky; z-index: 1000 !important; }
#mobile-menu-backdrop {
  position: fixed; inset: 0; z-index: 1100;
  background: rgba(3,10,20,.58);
  backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
}
#mobile-menu-backdrop.hidden { display:none !important; }
#mobile-menu {
  position: fixed;
  top: var(--site-header-height, 68px);
  left: 0; right: 0; z-index: 1101;
  max-height: calc(100dvh - var(--site-header-height, 68px) - env(safe-area-inset-bottom));
  overflow-y: auto; overscroll-behavior: contain;
  transform-origin: top;
  transition: opacity .2s ease, transform .25s var(--ui-ease), visibility .2s ease;
  box-shadow: 0 24px 45px rgba(3,10,20,.24);
  border-bottom: 1px solid rgba(15,35,60,.10);
}
#mobile-menu.hidden { display: block !important; opacity: 0; visibility: hidden; transform: translateY(-10px); pointer-events: none; }
#mobile-menu:not(.hidden) { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
#mobile-menu nav { padding-top: 14px; padding-bottom: max(18px, env(safe-area-inset-bottom)); }
body.mobile-menu-open { overflow: hidden; }
@media (min-width:1024px) { #mobile-menu, #mobile-menu-backdrop { display:none !important; } }

/* Privacy notice: compact themed card, always below the content and above the mobile CTA */
.privacy-notice {
  top: auto !important;
  bottom: 1rem !important;
  left: 50% !important; right: auto !important;
  transform: translateX(-50%);
  width: min(720px, calc(100vw - 2rem));
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid rgba(255,122,26,.22) !important;
  background: rgba(255,255,255,.97) !important;
  box-shadow: 0 18px 50px rgba(8,20,39,.18) !important;
  backdrop-filter: blur(18px);
}
.privacy-notice > div {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px;
}
.privacy-notice p { margin: 0 !important; flex: 1; font-size: .72rem !important; line-height: 1.55 !important; }
.privacy-notice button { min-height: 38px; padding: 0 15px !important; border-radius: 11px !important; white-space: nowrap; }
.dark .privacy-notice {
  border-color: rgba(255,154,82,.24) !important;
  background: rgba(8,20,39,.96) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.35) !important;
}
.mobile-bottom-cta { padding-bottom: max(.75rem, env(safe-area-inset-bottom)); }
@media (max-width:639px) {
  .privacy-notice {
    bottom: calc(4.75rem + env(safe-area-inset-bottom)) !important;
    width: calc(100vw - 1.5rem);
  }
  .privacy-notice > div {
    align-items: flex-start; gap: 10px; padding: 13px 14px;
  }
  .privacy-notice p { font-size: .69rem !important; line-height: 1.5 !important; }
  .privacy-notice button { align-self: center; min-height: 36px; padding: 0 12px !important; }
}

/* Hamburger morph */
#mobile-menu-toggle svg { transition: transform .3s var(--ui-ease); }
#mobile-menu-toggle[aria-expanded="true"] svg { transform: rotate(90deg); }

/* Button micro-interactions */
.shine, a, button { -webkit-tap-highlight-color: transparent; }
.shine:active, #mobile-menu-toggle:active, #theme-toggle:active { transform: scale(.98); }
.service-chip { transition: transform .2s var(--ui-ease), box-shadow .2s ease, background-color .2s ease; }
.service-chip:hover { transform: translateY(-1px); }

/* Form focus */
input, textarea, select { transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease, transform .2s ease; }
input:focus, textarea:focus, select:focus { transform: translateY(-1px); }

/* Hero atmosphere */
.bg-aurora::before { content:""; position:absolute; width:34rem; height:34rem; right:-10rem; top:-10rem; border-radius:999px; background:radial-gradient(circle,rgba(255,122,26,.18),transparent 65%); filter:blur(8px); animation:float-orb 12s ease-in-out infinite alternate; pointer-events:none; }
.bg-aurora::after { content:""; position:absolute; width:26rem; height:26rem; left:-12rem; bottom:-12rem; border-radius:999px; background:radial-gradient(circle,rgba(42,111,181,.18),transparent 68%); pointer-events:none; }
@keyframes float-orb { from { transform:translate3d(0,0,0) scale(1); } to { transform:translate3d(-20px,18px,0) scale(1.08); } }

/* Better image rendering */
img { max-width:100%; }
img[loading="lazy"] { content-visibility:auto; }

/* Mobile layout polish */
@media (max-width: 639px) {
  #site-header > div { height: 4.25rem; }
  .bg-aurora::before { width:20rem; height:20rem; right:-8rem; top:-4rem; }
  .reveal { transform: translate3d(0,16px,0); }
  .gradient-border:hover { transform:none; }
  .text-gradient-brand { -webkit-box-decoration-break: clone; box-decoration-break: clone; }
  main { padding-bottom: 4.5rem; }
}

/* Respect users who disable motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}

/* Safe-area for modern phones */
@supports (padding: max(0px)) {
  .fixed.inset-x-0.bottom-0 { padding-bottom: max(.75rem, env(safe-area-inset-bottom)); }
}

/* v4 serious redesign */
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;border:1px solid rgba(255,122,26,.25);background:rgba(255,122,26,.07);color:#d85e08;border-radius:999px;padding:.45rem .8rem;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.dark .eyebrow{color:#ffb27c;border-color:rgba(255,154,82,.25);background:rgba(255,154,82,.08)}
.feature-card{position:relative;min-height:190px;padding:1.5rem;border:1px solid #e7ebf1;border-radius:1.5rem;background:linear-gradient(145deg,#fff,#f8fafc);box-shadow:0 10px 30px rgba(8,20,39,.05);transition:transform .45s var(--ui-ease),box-shadow .45s var(--ui-ease),border-color .3s}.dark .feature-card{border-color:rgba(255,255,255,.09);background:linear-gradient(145deg,#0b1f3a,#081427);box-shadow:none}.feature-card:hover{transform:translateY(-5px);box-shadow:0 18px 45px rgba(8,20,39,.1);border-color:rgba(255,122,26,.3)}.feature-num{display:block;font-size:.72rem;font-weight:900;letter-spacing:.12em;color:#ff7a1a}.feature-card h3{margin-top:1.4rem;font-size:1.1rem;font-weight:800;color:#0b1f3a}.dark .feature-card h3{color:#fff}.feature-card p{margin-top:.55rem;font-size:.88rem;line-height:1.65;color:#53657d}.dark .feature-card p{color:rgba(255,255,255,.58)}
.calculator-card{padding:clamp(1.25rem,3vw,2rem);border:1px solid #e3e8ef;border-radius:1.75rem;background:rgba(255,255,255,.88);box-shadow:0 20px 60px rgba(8,20,39,.08);backdrop-filter:blur(14px)}.dark .calculator-card{border-color:rgba(255,255,255,.09);background:rgba(255,255,255,.035);box-shadow:none}.calc-field{display:flex;flex-direction:column;gap:.6rem}.calc-field>span{font-size:.84rem;font-weight:800;color:#20344f}.dark .calc-field>span{color:rgba(255,255,255,.82)}.calc-field select{height:3rem;border:1px solid #dbe2eb;border-radius:.85rem;background:#f8fafc;padding:0 .9rem;font:inherit;color:#0b1f3a}.dark .calc-field select{border-color:rgba(255,255,255,.12);background:#0b1f3a;color:#fff}.calc-field input[type=range]{accent-color:#ff7a1a;width:100%}.calculator-result{min-height:100%;border-radius:1.75rem;padding:clamp(1.5rem,4vw,2.25rem);background:radial-gradient(circle at 90% 0%,rgba(255,122,26,.25),transparent 35%),linear-gradient(145deg,#0b1f3a,#06111f);box-shadow:0 25px 70px rgba(8,20,39,.2)}.calc-live-dot{display:inline-flex;align-items:center;gap:.35rem;border:1px solid rgba(52,211,153,.25);border-radius:999px;padding:.35rem .6rem;font-size:.62rem;font-weight:900;color:#6ee7b7}.calc-live-dot:before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:#34d399;box-shadow:0 0 0 5px rgba(52,211,153,.1)}
.case-card{overflow:hidden;border:1px solid #e6eaf0;border-radius:1.5rem;background:#fff;box-shadow:0 12px 35px rgba(8,20,39,.05);transition:transform .45s var(--ui-ease),box-shadow .45s var(--ui-ease)}.dark .case-card{border-color:rgba(255,255,255,.09);background:#0b1f3a;box-shadow:none}.case-card:hover{transform:translateY(-6px);box-shadow:0 25px 60px rgba(8,20,39,.11)}.case-visual{height:190px;display:flex;align-items:flex-end;padding:1rem;background-color:#0b1f3a;background-size:cover;background-position:center}.case-visual span{padding:.45rem .65rem;border-radius:999px;background:rgba(8,20,39,.72);border:1px solid rgba(255,255,255,.16);color:#fff;font-size:.7rem;font-weight:800;backdrop-filter:blur(10px)}.case-home{background-image:radial-gradient(circle at 70% 30%,rgba(255,122,26,.35),transparent 30%),linear-gradient(135deg,#183a62,#071426)}.case-office{background-image:radial-gradient(circle at 30% 40%,rgba(52,211,153,.22),transparent 30%),linear-gradient(135deg,#122d46,#06111f)}.case-door{background-image:radial-gradient(circle at 75% 45%,rgba(56,189,248,.25),transparent 30%),linear-gradient(135deg,#182b50,#071426)}.review-card{padding:1.4rem;border:1px solid #e6eaf0;border-radius:1.4rem;background:#f8fafc}.dark .review-card{border-color:rgba(255,255,255,.09);background:rgba(255,255,255,.035)}.review-card .stars{color:#ff7a1a;letter-spacing:.1em;font-size:.8rem}.review-card p{margin-top:.75rem;font-size:.92rem;line-height:1.65;color:#334860}.dark .review-card p{color:rgba(255,255,255,.72)}.review-card footer{margin-top:1rem;font-size:.75rem;font-weight:800;color:#718096}.floating-cta{position:fixed;z-index:30;right:1.25rem;bottom:1.25rem;display:inline-flex;align-items:center;gap:.7rem;height:3.35rem;padding:0 1rem 0 1.05rem;border-radius:999px;background:#ff7a1a;color:#fff;font-size:.8rem;font-weight:900;box-shadow:0 14px 35px rgba(255,122,26,.32);transform:translateY(0);transition:transform .3s var(--ui-ease),box-shadow .3s}.floating-cta:hover{transform:translateY(-3px);box-shadow:0 18px 45px rgba(255,122,26,.42)}.floating-cta b{display:flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:50%;background:rgba(255,255,255,.18)}.floating-cta-pulse{width:.45rem;height:.45rem;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.12)}
@media(max-width:639px){.floating-cta{left:1rem;right:1rem;bottom:max(.8rem,env(safe-area-inset-bottom));justify-content:center}.case-visual{height:160px}.feature-card{min-height:auto}}
@media(prefers-reduced-motion:reduce){.feature-card,.case-card,.floating-cta{transition:none}.feature-card:hover,.case-card:hover,.floating-cta:hover{transform:none}}
.hero-phone-card{position:absolute;right:-1.5rem;bottom:-2rem;width:10.5rem;padding:.45rem;border:1px solid rgba(255,255,255,.2);border-radius:1.5rem;background:rgba(5,16,31,.8);box-shadow:0 25px 60px rgba(0,0,0,.35);backdrop-filter:blur(16px);transform:rotate(4deg);animation:phone-float 6s ease-in-out infinite}.hero-phone-notch{width:3.2rem;height:.35rem;margin:.1rem auto .3rem;border-radius:999px;background:rgba(255,255,255,.18)}.hero-phone-screen{overflow:hidden;border-radius:1.1rem;padding:.65rem;background:linear-gradient(160deg,#132d4d,#06111f)}@keyframes phone-float{0%,100%{transform:translate3d(0,0,0) rotate(4deg)}50%{transform:translate3d(0,-8px,0) rotate(2deg)}}
@media(max-width:1023px){.hero-phone-card{right:-.5rem;bottom:-1.5rem}}@media(max-width:639px){.hero-phone-card{right:-.25rem;width:8.7rem;bottom:-1rem}.hero-phone-screen{padding:.5rem}.hero-phone-card{animation:none}}@media(prefers-reduced-motion:reduce){.hero-phone-card{animation:none}}

/* Calculator v5 */
.calculator-section{background:linear-gradient(180deg,#f8fafc 0%,#eef3fb 100%)}
.dark .calculator-section{background:linear-gradient(180deg,#081427 0%,#0b1f3a 100%)}
.calculator-orb{position:absolute;border-radius:999px;filter:blur(70px);pointer-events:none}.calculator-orb-one{width:360px;height:360px;right:-120px;top:40px;background:rgba(255,122,26,.13)}.calculator-orb-two{width:300px;height:300px;left:-150px;bottom:0;background:rgba(42,79,135,.12)}
.calculator-shell{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);overflow:hidden;border:1px solid #dbe4ef;border-radius:32px;background:rgba(255,255,255,.8);box-shadow:0 30px 90px rgba(8,20,39,.12);backdrop-filter:blur(18px)}
.dark .calculator-shell{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.035);box-shadow:0 30px 90px rgba(0,0,0,.25)}
.calculator-form-panel{padding:clamp(24px,4vw,44px)}
.calculator-step-head{display:flex;align-items:center;gap:14px;margin-bottom:22px}.calculator-step-head h3{margin:0;font-size:1.05rem;font-weight:850;color:#0b1f3a}.dark .calculator-step-head h3{color:#fff}.calculator-step-head p{margin:3px 0 0;font-size:.78rem;color:#64748b}.dark .calculator-step-head p{color:rgba(255,255,255,.48)}.calculator-step{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fff1e6;color:#ed6a0a;font-size:.72rem;font-weight:900}.dark .calculator-step{background:rgba(255,122,26,.12);color:#ff9a52}.calc-step-2{margin-top:34px}
.calc-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.calc-service{display:flex;align-items:center;gap:12px;text-align:left;padding:14px;border:1px solid #dbe4ef;border-radius:17px;background:#fff;color:#0b1f3a;transition:.2s ease;cursor:pointer}.dark .calc-service{border-color:rgba(255,255,255,.11);background:rgba(255,255,255,.035);color:#fff}.calc-service:hover{transform:translateY(-2px);border-color:#ff9a52}.calc-service.active{border-color:#ff7a1a;background:#fff7f0;box-shadow:0 8px 25px rgba(255,122,26,.12)}.dark .calc-service.active{background:rgba(255,122,26,.1)}.calc-service-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#eef3fb;color:#2a4f87;font-weight:900}.dark .calc-service-icon{background:rgba(255,255,255,.08);color:#ff9a52}.calc-service b,.calc-service small{display:block}.calc-service b{font-size:.82rem}.calc-service small{margin-top:3px;font-size:.68rem;color:#7b8aa0}.dark .calc-service small{color:rgba(255,255,255,.45)}
.calc-quantity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}.calc-range-field{display:block;padding:17px;border:1px solid #dbe4ef;border-radius:18px;background:#f8fafc}.dark .calc-range-field{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.025)}.calc-range-field>span{display:flex;justify-content:space-between;gap:10px;font-size:.82rem;color:#243b5a}.dark .calc-range-field>span{color:#fff}.calc-range-field strong{color:#ed6a0a;font-size:1.05rem}.calc-range-field input{display:block;width:100%;margin:16px 0 8px;accent-color:#ff7a1a}.calc-range-field small{font-size:.68rem;color:#8190a4}.dark .calc-range-field small{color:rgba(255,255,255,.45)}.calc-range-field.is-muted{opacity:.42}.calc-range-field input:disabled{cursor:not-allowed}
.calc-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.calc-option{position:relative;display:flex;align-items:center;gap:12px;padding:15px;border:1px solid #dbe4ef;border-radius:17px;background:#fff;cursor:pointer}.dark .calc-option{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.025)}.calc-option input{position:absolute;opacity:0}.calc-option i{width:21px;height:21px;flex:0 0 21px;border:2px solid #c5d0de;border-radius:7px;margin-left:auto}.calc-option input:checked~i{border-color:#ff7a1a;background:#ff7a1a;box-shadow:inset 0 0 0 4px #fff}.dark .calc-option input:checked~i{box-shadow:inset 0 0 0 4px #0b1f3a}.calc-option b,.calc-option small{display:block}.calc-option b{font-size:.78rem;color:#172d4b}.dark .calc-option b{color:#fff}.calc-option small{margin-top:3px;font-size:.66rem;color:#8190a4}.dark .calc-option small{color:rgba(255,255,255,.45)}
.calculator-result-panel{position:relative;padding:clamp(26px,4vw,44px);background:radial-gradient(circle at 85% 0,rgba(255,122,26,.22),transparent 34%),linear-gradient(145deg,#0b1f3a,#06111f);color:#fff}.calc-result-top{display:flex;justify-content:space-between;gap:16px}.calc-result-label{font-size:.66rem;font-weight:900;letter-spacing:.17em;color:rgba(255,255,255,.48)}.calc-total{margin-top:7px;font-size:clamp(2.15rem,4vw,3.3rem);font-weight:900;letter-spacing:-.04em}.calc-live-dot{display:inline-flex;align-items:center;height:30px;padding:0 10px;border:1px solid rgba(52,211,153,.25);border-radius:999px;color:#6ee7b7;font-size:.62rem;font-weight:900}.calc-result-caption{margin:14px 0 26px;color:rgba(255,255,255,.58);font-size:.8rem;line-height:1.55}.calc-breakdown{display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(255,255,255,.1)}.calc-breakdown-row{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:.8rem;color:rgba(255,255,255,.62)}.calc-breakdown-row b{color:#fff;white-space:nowrap}.calc-total-note{display:flex;justify-content:space-between;gap:16px;margin-top:18px;padding:14px 16px;border-radius:15px;background:rgba(255,255,255,.06);font-size:.76rem;color:rgba(255,255,255,.55)}.calc-total-note b{color:#fff}.calc-main-cta{display:flex;align-items:center;justify-content:center;gap:12px;height:54px;margin-top:20px;border-radius:16px;background:#ff7a1a;color:#fff;font-size:.9rem;font-weight:850;box-shadow:0 14px 30px rgba(255,122,26,.22);transition:.2s}.calc-main-cta:hover{background:#ed6a0a;transform:translateY(-2px)}.calc-main-cta span{font-size:1.2rem}.calc-disclaimer{margin:12px 0 0;text-align:center;font-size:.65rem;line-height:1.5;color:rgba(255,255,255,.35)}
@media (max-width:900px){.calculator-shell{grid-template-columns:1fr}.calculator-result-panel{border-top:1px solid rgba(255,255,255,.08)}}
@media (max-width:640px){.calc-services,.calc-quantity-grid,.calc-options{grid-template-columns:1fr}.calculator-shell{border-radius:24px}.calculator-form-panel,.calculator-result-panel{padding:22px}.calc-service{padding:12px}.calc-service small{display:none}.calc-total{font-size:2.2rem}}

/* Calculator result attached to the lead form */
.calculator-summary{
  border:1px solid rgba(37,99,235,.18);
  background:linear-gradient(135deg,rgba(37,99,235,.055),rgba(14,165,233,.035));
  border-radius:1rem;
  padding:1rem;
  overflow:hidden;
}
.calculator-summary-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid rgba(37,99,235,.12)}
.calculator-summary-head strong{display:block;margin-top:.15rem;font-size:.95rem;color:#0f172a}
.dark .calculator-summary-head strong{color:#fff}
.calculator-summary-kicker{display:block;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#2563eb}
.dark .calculator-summary-kicker{color:#60a5fa}
.calculator-summary-lock{display:flex;width:2rem;height:2rem;align-items:center;justify-content:center;border-radius:.65rem;background:rgba(37,99,235,.08);font-size:.85rem}
.calculator-summary-text{margin:.8rem 0 0;white-space:pre-wrap;overflow:auto;font:600 .78rem/1.65 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#334155;background:rgba(255,255,255,.58);border-radius:.75rem;padding:.75rem;max-height:15rem;user-select:text}
.dark .calculator-summary-text{color:rgba(255,255,255,.82);background:rgba(255,255,255,.045)}
.calculator-summary-note{margin:.65rem 0 0;font-size:.7rem;line-height:1.45;color:#64748b}
.dark .calculator-summary-note{color:rgba(255,255,255,.48)}

/* ─── Final responsive/mobile layer ──────────────────────────────── */
#scroll-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; transform-origin: left center; transform: scaleX(0); z-index: 1200; pointer-events: none; }

#site-header { position: sticky; top: 0; z-index: 1000 !important; }

#mobile-menu-backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1090 !important;
  display: none;
  background: rgba(3,10,20,.58);
  opacity: 0;
  transition: opacity .2s ease;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
#mobile-menu-backdrop.is-open { display: block; opacity: 1; }

#mobile-menu {
  position: fixed !important;
  top: var(--site-header-height, 64px) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1100 !important;
  display: none;
  max-height: calc(100dvh - var(--site-header-height, 64px));
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid rgba(8,20,39,.08);
  border-bottom: 1px solid rgba(8,20,39,.08);
  box-shadow: 0 22px 50px rgba(3,10,20,.20);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .2s ease, transform .2s ease;
}
#mobile-menu.is-open { display: block; opacity: 1; transform: translateY(0); }
#mobile-menu.hidden { display: none !important; }
#mobile-menu:not(.hidden).is-open { display: block !important; }
#mobile-menu nav { width: 100%; box-sizing: border-box; padding: 14px 16px max(20px, env(safe-area-inset-bottom)); gap: 6px; }
#mobile-menu a { min-height: 48px; box-sizing: border-box; }
#mobile-menu a + a { margin-top: 2px; }

body.mobile-menu-open { overflow: hidden; touch-action: none; }
body.mobile-menu-open .floating-cta,
body.mobile-menu-open .mobile-bottom-cta,
body.mobile-menu-open #privacy-notice { opacity: 0 !important; pointer-events: none !important; visibility: hidden !important; }

.privacy-notice {
  top: auto !important;
  left: 50% !important;
  right: auto !important;
  bottom: 16px !important;
  width: min(760px, calc(100vw - 32px)) !important;
  max-width: none !important;
  transform: translateX(-50%);
  box-sizing: border-box;
  z-index: 900 !important;
  border-radius: 18px !important;
  padding: 16px !important;
  box-shadow: 0 18px 55px rgba(3,10,20,.18) !important;
}
.privacy-notice > div { gap: 14px !important; }
.privacy-notice p { margin: 0 !important; font-size: .78rem !important; line-height: 1.55 !important; }
.privacy-notice button { min-height: 40px; padding: 0 16px !important; border-radius: 11px !important; white-space: nowrap; }

.mobile-bottom-cta {
  z-index: 800 !important;
  padding-bottom: max(.75rem, env(safe-area-inset-bottom));
}

@media (max-width: 639px) {
  #mobile-menu { top: var(--site-header-height, 64px) !important; max-height: calc(100dvh - var(--site-header-height, 64px)); }
  #mobile-menu nav { padding-left: 14px; padding-right: 14px; }
  #mobile-menu a { min-height: 50px; }
  .privacy-notice {
    bottom: calc(4.85rem + env(safe-area-inset-bottom)) !important;
    width: calc(100vw - 24px) !important;
    padding: 14px !important;
    border-radius: 16px !important;
  }
  .privacy-notice > div { align-items: stretch !important; }
  .privacy-notice p { font-size: .72rem !important; line-height: 1.5 !important; }
  .privacy-notice button { width: 100%; }
  .floating-cta { left: 12px; right: 12px; bottom: calc(.8rem + env(safe-area-inset-bottom)); }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .privacy-notice { bottom: 16px !important; }
}

@media (min-width: 1024px) {
  #mobile-menu, #mobile-menu-backdrop { display: none !important; }
  body.mobile-menu-open { overflow: auto; touch-action: auto; }
}

@media (prefers-reduced-motion: reduce) {
  #mobile-menu, #mobile-menu-backdrop { transition: none; }
}
