
  :root{
    --ocean-deep:#071C2C;
    --ocean-mid:#0E3049;
    --ocean-line:#1B4A66;
    --red:#BD1522;
    --red-deep:#7C0F1A;
    --red-bright:#E31C2E;
    --ivory:#F2EFE9;
    --mist:#8FB2C4;
    --font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Courier New", monospace;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--font-body);
    background:var(--ocean-deep);
    color:var(--ivory);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}

  /* ---------- Header ---------- */
  header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:22px 6vw;
    position:relative;
    z-index:5;
  }
  .logo img{height:42px;width:auto;}
  .badge-nonstop{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:12.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--mist);
    font-weight:600;
  }
  .badge-nonstop .dot{
    width:8px;height:8px;border-radius:50%;
    background:var(--red-bright);
    box-shadow:0 0 0 0 rgba(227,28,46,.7);
    animation:pulse-dot 2s infinite;
  }
  @keyframes pulse-dot{
    0%{box-shadow:0 0 0 0 rgba(227,28,46,.55);}
    70%{box-shadow:0 0 0 8px rgba(227,28,46,0);}
    100%{box-shadow:0 0 0 0 rgba(227,28,46,0);}
  }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    padding:8vh 6vw 10vh;
    text-align:center;
    overflow:hidden;
    min-height:78vh;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
  }
  .hero::before{
    content:"";
    position:absolute;
    inset:-20% -10% auto -10%;
    height:140%;
    background:
      radial-gradient(60% 50% at 50% 0%, rgba(27,74,102,.55), transparent 70%),
      radial-gradient(40% 35% at 85% 30%, rgba(189,21,34,.10), transparent 70%);
    pointer-events:none;
  }
  .eyebrow{
    position:relative;
    font-size:13px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--mist);
    font-weight:600;
    margin-bottom:22px;
  }
  h1{
    position:relative;
    font-size:clamp(2.6rem, 8vw, 5.6rem);
    font-weight:900;
    letter-spacing:-.01em;
    line-height:1.02;
    max-width:16ch;
    margin:0 auto 18px;
  }
  h1 .accent{color:var(--red-bright);}
  .hero p.sub{
    position:relative;
    max-width:46ch;
    margin:0 auto 46px;
    font-size:clamp(1.02rem,1.6vw,1.25rem);
    color:var(--ivory);
    opacity:.86;
  }

  /* ---------- Call button (signature element) ---------- */
  .call-wrap{
    position:relative;
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    gap:14px;
  }
  .call-btn{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:18px;
    background:linear-gradient(180deg, var(--red-bright), var(--red));
    color:var(--ivory);
    padding:22px 44px;
    border-radius:100px;
    font-family:var(--font-mono);
    font-size:clamp(1.5rem, 4.4vw, 2.4rem);
    font-weight:700;
    letter-spacing:.02em;
    box-shadow:0 14px 34px -10px rgba(189,21,34,.65), inset 0 1px 0 rgba(255,255,255,.18);
    transition:transform .18s ease, box-shadow .18s ease;
    overflow:hidden;
  }
  .call-btn:hover, .call-btn:focus-visible{
    transform:translateY(-3px);
    box-shadow:0 20px 44px -8px rgba(189,21,34,.75), inset 0 1px 0 rgba(255,255,255,.22);
  }
  .call-btn:active{transform:translateY(0px) scale(.99);}
  .call-btn svg.keyhole-mark{
    position:absolute;
    right:-18px; top:50%; transform:translateY(-50%);
    width:120px; height:120px;
    opacity:.14;
  }
  .call-btn .phone-ic{
    flex:0 0 auto;
    width:1.05em;height:1.05em;
    animation:ring 2.6s ease-in-out infinite;
    transform-origin:70% 30%;
  }
  @keyframes ring{
    0%,80%,100%{transform:rotate(0deg);}
    82%{transform:rotate(14deg);}
    84%{transform:rotate(-12deg);}
    86%{transform:rotate(9deg);}
    88%{transform:rotate(-6deg);}
    90%{transform:rotate(0deg);}
  }
  .call-hint{
    font-size:13.5px;
    color:var(--mist);
    letter-spacing:.03em;
  }
  @media (prefers-reduced-motion: reduce){
    .call-btn .phone-ic, .badge-nonstop .dot{animation:none;}
  }

  /* ---------- Services ---------- */
  section{padding:9vh 6vw;}
  .services{
    background:var(--ocean-mid);
    border-top:1px solid var(--ocean-line);
    border-bottom:1px solid var(--ocean-line);
  }
  .section-head{
    max-width:640px;
    margin:0 auto 52px;
    text-align:center;
  }
  .section-head .eyebrow{margin-bottom:14px;}
  .section-head h2{
    font-size:clamp(1.7rem,3.6vw,2.5rem);
    font-weight:800;
    letter-spacing:-.01em;
  }
  .svc-grid{
    max-width:980px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px,1fr));
    gap:1px;
    background:var(--ocean-line);
    border:1px solid var(--ocean-line);
    border-radius:18px;
    overflow:hidden;
  }
  .svc{
    background:var(--ocean-mid);
    padding:34px 28px;
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .svc .ic{
    width:38px;height:38px;
    color:var(--red-bright);
  }
  .svc h3{font-size:1.08rem;font-weight:700;}
  .svc p{font-size:.92rem;color:var(--mist);}

  /* ---------- Regions ---------- */
  .regions{text-align:center;}
  .regions .section-head{margin-bottom:44px;}
  .city-list{
    max-width:820px;
    margin:0 auto;
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    justify-content:center;
  }
  .city{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:11px 20px;
    border:1px solid var(--ocean-line);
    border-radius:100px;
    font-size:.94rem;
    font-weight:600;
    color:var(--ivory);
    background:rgba(27,74,102,.18);
  }
  .city svg{width:13px;height:13px;color:var(--red-bright);flex:0 0 auto;}

  /* ---------- Bottom CTA ---------- */
  .bottom-cta{
    background:linear-gradient(180deg, var(--ocean-deep), #050f19);
    text-align:center;
  }
  .bottom-cta h2{
    font-size:clamp(1.6rem,4vw,2.3rem);
    font-weight:800;
    margin-bottom:30px;
  }

  /* ---------- Footer ---------- */
  footer{
    padding:34px 6vw 40px;
    text-align:center;
    border-top:1px solid var(--ocean-line);
    color:var(--mist);
    font-size:13.5px;
  }
  footer .foot-logo{height:22px;width:auto;margin-bottom:14px;opacity:.9;display:inline-block;}
  footer a.tel-foot{color:var(--ivory);font-weight:700;}

  @media (max-width:560px){
    header{padding:18px 5vw;}
    .logo img{height:32px;}
    .call-btn{padding:18px 26px;gap:12px;}
    section{padding:8vh 5vw;}
  }

  /* ---------- Nav (subpages header) ---------- */
  header{flex-wrap:wrap;gap:14px;}
  nav.main-nav{
    display:flex;
    align-items:center;
    gap:26px;
    flex-wrap:wrap;
  }
  nav.main-nav details{position:relative;}
  nav.main-nav summary{
    list-style:none;
    cursor:pointer;
    font-size:.92rem;
    font-weight:600;
    color:var(--ivory);
    display:flex;
    align-items:center;
    gap:6px;
  }
  nav.main-nav summary::-webkit-details-marker{display:none;}
  nav.main-nav summary .chev{width:9px;height:9px;border-right:2px solid var(--mist);border-bottom:2px solid var(--mist);transform:rotate(45deg);margin-top:-3px;}
  nav.main-nav details[open] summary .chev{transform:rotate(-135deg);margin-top:3px;}
  nav.main-nav .dropdown{
    position:absolute;
    top:calc(100% + 14px);
    left:50%;
    transform:translateX(-50%);
    background:var(--ocean-mid);
    border:1px solid var(--ocean-line);
    border-radius:12px;
    padding:10px;
    min-width:240px;
    box-shadow:0 20px 40px -14px rgba(0,0,0,.55);
    z-index:20;
  }
  nav.main-nav .dropdown a{
    display:block;
    padding:9px 12px;
    border-radius:8px;
    font-size:.9rem;
    color:var(--ivory);
  }
  nav.main-nav .dropdown a:hover{background:rgba(227,28,46,.14);}
  nav.main-nav > a{font-size:.92rem;font-weight:600;color:var(--ivory);}
  nav.main-nav > a:hover{color:var(--red-bright);}
  .nav-tel{
    font-family:var(--font-mono);
    font-weight:700;
    color:var(--ivory);
    background:rgba(227,28,46,.16);
    padding:9px 16px;
    border-radius:100px;
    font-size:.92rem;
    white-space:nowrap;
  }

  /* ---------- Breadcrumbs ---------- */
  .breadcrumbs{
    padding:16px 6vw 0;
    font-size:12.5px;
    color:var(--mist);
    display:flex;
    flex-wrap:wrap;
    gap:6px;
  }
  .breadcrumbs a{color:var(--mist);}
  .breadcrumbs a:hover{color:var(--ivory);}
  .breadcrumbs span.sep{opacity:.5;}
  .breadcrumbs span.current{color:var(--ivory);}

  /* ---------- Inner page hero (smaller than home) ---------- */
  .hero.inner{min-height:44vh;padding:6vh 6vw 7vh;}
  .hero.inner h1{max-width:22ch;}

  /* ---------- Content ---------- */
  .content{
    max-width:760px;
    margin:0 auto;
  }
  .content h2{
    font-size:clamp(1.4rem,2.6vw,1.9rem);
    font-weight:800;
    margin:36px 0 14px;
    letter-spacing:-.01em;
  }
  .content h2:first-child{margin-top:0;}
  .content p{
    color:var(--ivory);
    opacity:.9;
    font-size:1rem;
    margin-bottom:14px;
  }
  .content ul{
    margin:0 0 18px 1.2em;
    color:var(--ivory);
    opacity:.9;
  }
  .content ul li{margin-bottom:8px;}
  .content .lead{
    font-size:1.08rem;
    opacity:.95;
  }

  /* ---------- Related links grid ---------- */
  .related{background:var(--ocean-mid);border-top:1px solid var(--ocean-line);border-bottom:1px solid var(--ocean-line);}
  .related-grid{
    max-width:980px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(200px,1fr));
    gap:12px;
  }
  .related-card{
    display:block;
    padding:18px 20px;
    background:rgba(27,74,102,.18);
    border:1px solid var(--ocean-line);
    border-radius:14px;
    font-weight:700;
    font-size:.95rem;
  }
  .related-card:hover{border-color:var(--red-bright);}
  .related-card span{
    display:block;
    font-weight:400;
    font-size:.82rem;
    color:var(--mist);
    margin-top:4px;
  }

  /* ---------- FAQ ---------- */
  .faq-item{
    border-bottom:1px solid var(--ocean-line);
    padding:18px 0;
  }
  .faq-item summary{
    list-style:none;
    cursor:pointer;
    font-weight:700;
    font-size:1rem;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary .plus{
    flex:0 0 auto;
    width:22px;height:22px;
    border-radius:50%;
    border:1px solid var(--ocean-line);
    display:flex;align-items:center;justify-content:center;
    font-size:16px;
    color:var(--mist);
  }
  .faq-item[open] summary .plus{color:var(--red-bright);}
  .faq-item p{
    margin-top:12px;
    color:var(--mist);
    font-size:.94rem;
  }

  /* ---------- Pricing table ---------- */
  table.price-table{
    width:100%;
    border-collapse:collapse;
    margin:18px 0 30px;
    font-size:.94rem;
  }
  table.price-table th, table.price-table td{
    text-align:left;
    padding:14px 16px;
    border-bottom:1px solid var(--ocean-line);
  }
  table.price-table th{
    color:var(--mist);
    font-weight:600;
    font-size:.82rem;
    text-transform:uppercase;
    letter-spacing:.05em;
  }
  table.price-table td.price{
    font-family:var(--font-mono);
    font-weight:700;
    white-space:nowrap;
  }
  .price-note{font-size:.85rem;color:var(--mist);margin-bottom:30px;}

  /* ---------- Contact info blocks ---------- */
  .contact-grid{
    max-width:900px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px,1fr));
    gap:1px;
    background:var(--ocean-line);
    border:1px solid var(--ocean-line);
    border-radius:18px;
    overflow:hidden;
  }
  .contact-card{
    background:var(--ocean-mid);
    padding:30px 26px;
  }
  .contact-card h3{font-size:1rem;margin-bottom:10px;}
  .contact-card p{color:var(--mist);font-size:.92rem;}

  @media (max-width:860px){
    nav.main-nav{display:none;}
  }
