:root{
    --navy-950:#0A1228;
    --navy-900:#0F1C3A;
    --navy-800:#162A50;
    --blue-700:#234B8C;
    --blue-600:#2F5FA8;
    --blue-500:#4978C4;
    --blue-400:#6B97E0;
    --sky-300:#9CCBF2;
    --sky-200:#C9E4F8;
    --asphalt:#15171C;
    --paper:#F4F7FC;
    --paper-dim:#E9EFF8;
    --white:#FFFFFF;
    --amber:#F2A93B;
    --amber-dark:#D88C1F;
    --ink:#10162A;
    --mist:#5C6680;
    --mist-light:#8893AC;
    --line:#D8E1F0;

    --font-display:'Sora',sans-serif;
    --font-body:'Inter',sans-serif;
    --font-mono:'IBM Plex Mono',monospace;

    --container:1180px;
    --radius:14px;
    --radius-sm:8px;
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    overflow-x: hidden;
    max-width: 100%;
    margin:0;
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
    line-height:1.6;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{margin:0;padding:0;list-style:none;}
  h1,h2,h3,h4{font-family:var(--font-display);margin:0;line-height:1.15;color:var(--navy-900);}
  p{margin:0;}
  .container{max-width:var(--container);margin:0 auto;padding:0 28px;}
  section{position:relative;}

  /* ---------- focus ---------- */
  a:focus-visible,button:focus-visible{
    outline:3px solid var(--amber);
    outline-offset:3px;
    border-radius:4px;
  }

  /* ---------- lane-line divider, signature motif ---------- */
  .lane-divider{
    display:flex;
    align-items:center;
    gap:10px;
    overflow:hidden;
    width:100%;
    height:6px;
  }
  .lane-divider span{
    flex:0 0 34px;
    height:4px;
    background:var(--blue-400);
    border-radius:2px;
    opacity:.55;
  }
  .lane-divider.dark span{background:var(--sky-300);}
  .lane-divider.animated span{
    animation:lane-shift 1.8s linear infinite;
  }
  @keyframes lane-shift{
    0%{transform:translateX(0);}
    100%{transform:translateX(-88px);}
  }
  @media (prefers-reduced-motion:reduce){
    .lane-divider.animated span{animation:none;}
  }

  .eyebrow{
    font-family:var(--font-mono);
    font-size:12.5px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--blue-600);
    font-weight:600;
  }
  .eyebrow.on-dark{color:var(--sky-300);}

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:14px 26px;
    border-radius:999px;
    font-family:var(--font-display);
    font-weight:600;
    font-size:15px;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
    white-space:nowrap;
  }
  .btn:active{transform:translateY(1px);}
  .btn-amber{
    background:var(--amber);
    color:var(--navy-950);
    box-shadow:0 10px 24px -10px rgba(242,169,59,.65);
  }
  .btn-amber:hover{background:var(--amber-dark);}
  .btn-outline{
    background:transparent;
    border-color:rgba(255,255,255,.35);
    color:var(--white);
  }
  .btn-outline:hover{background:rgba(255,255,255,.1);}
  .btn-navy{
    background:var(--navy-900);
    color:var(--white);
  }
  .btn-navy:hover{background:var(--navy-800);}
  .btn-outline-sky{
    background:transparent;
    border:1.5px solid rgba(156,203,242,.45);
    color:var(--white);
  }
  .btn-outline-sky:hover{background:rgba(156,203,242,.1);border-color:var(--sky-300);}

  /* ---------- header ---------- */
  header{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(10,18,40,.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .nav-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    height:78px;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:12px;
  }
  .brand img{height:34px;width:auto;}
  .brand-text{
    font-family:var(--font-display);
    font-weight:700;
    font-size:17px;
    color:var(--white);
    letter-spacing:.01em;
    line-height:1.1;
    white-space:nowrap;
  }
  .brand-text small{
    display:block;
    font-family:var(--font-body);
    font-weight:500;
    font-size:11px;
    color:var(--sky-300);
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-top:2px;
    white-space:nowrap;
  }
  nav.links{
    display:flex;
    align-items:center;
    gap:34px;
  }
  nav.links a{
    font-size:14.5px;
    font-weight:500;
    color:rgba(255,255,255,.82);
    transition:color .15s ease;
  }
  nav.links a:hover{color:var(--sky-300);}
  .nav-cta{display:flex;align-items:center;gap:14px;}
  .nav-phone{
    display:flex;
    align-items:center;
    gap:8px;
    font-family:var(--font-mono);
    font-size:14px;
    color:var(--white);
    font-weight:600;
  }
  .nav-toggle{
    display:none;
    background:none;
    border:none;
    color:var(--white);
    font-size:26px;
    cursor:pointer;
    line-height:1;
  }
  .btn-nav{padding:10px 20px;font-size:13.5px;}

  /* ---------- hero ---------- */
  .hero{
    background:
      radial-gradient(ellipse 900px 500px at 82% 8%, rgba(91,141,239,.30), transparent 60%),
      linear-gradient(180deg, var(--navy-950) 0%, var(--navy-900) 55%, var(--navy-800) 100%);
    color:var(--white);
    overflow:hidden;
    /*padding-top:84px;*/
    padding-top:33px;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:50px;
    align-items:center;
    padding:64px 0 0;
  }
  .hero h1{
    font-size:clamp(34px,4.6vw,56px);
    color:var(--white);
    font-weight:800;
    letter-spacing:-.01em;
    margin:18px 0 22px;
  }
  .hero h1 em{
    font-style:normal;
    color:var(--sky-300);
  }
  .hero p.lead{
    font-size:17.5px;
    color:rgba(255,255,255,.78);
    max-width:46ch;
    margin-bottom:32px;
  }
  .hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:36px;
  }
  .hero-stats{
    display:flex;
    gap:34px;
    flex-wrap:wrap;
    padding-top:26px;
    border-top:1px solid rgba(255,255,255,.14);
  }
  .hero-stats div b{
    display:block;
    font-family:var(--font-mono);
    font-size:22px;
    color:var(--sky-300);
    font-weight:600;
  }
  .hero-stats div span{
    font-size:12.5px;
    color:rgba(255,255,255,.6);
    letter-spacing:.03em;
  }

  /* road visual */
  .road-scene{
    position:relative;
    height:460px;
    border-radius:22px;
    overflow:hidden;
    background:linear-gradient(180deg,#1A2C52 0%, #101C3A 100%);
    border:1px solid rgba(255,255,255,.08);
  }
  .road-scene svg{position:absolute;inset:0;width:100%;height:100%;}
  .road-dash{
    stroke-dasharray:18 22;
    animation:dash-move 1.1s linear infinite;
  }
  @keyframes dash-move{ to{ stroke-dashoffset:-80; } }
  @media (prefers-reduced-motion:reduce){
    .road-dash{animation:none;}
  }
  .scene-badge{
    position:absolute;
    left:24px;
    bottom:22px;
    background:rgba(10,18,40,.7);
    border:1px solid rgba(255,255,255,.16);
    border-radius:12px;
    padding:12px 16px;
    backdrop-filter:blur(6px);
  }
  .scene-badge b{
    display:block;
    font-family:var(--font-mono);
    color:var(--sky-300);
    font-size:13px;
  }
  .scene-badge span{font-size:12px;color:rgba(255,255,255,.65);}

  /* ---------- about ---------- */
  .about{
    padding:96px 0;
  }
  .about-grid{
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:64px;
    align-items:center;
  }
  .about h2{
    font-size:clamp(28px,3.4vw,38px);
    margin:14px 0 20px;
  }
  .about p{
    color:var(--mist);
    font-size:16.5px;
    max-width:54ch;
  }
  .quote-card{
    background:var(--navy-900);
    color:var(--white);
    border-radius:var(--radius);
    padding:38px 36px;
    position:relative;
  }
  .quote-card .mark{
    font-family:var(--font-display);
    font-size:54px;
    color:var(--blue-500);
    line-height:1;
    margin-bottom:8px;
  }
  .quote-card p{
    font-family:var(--font-display);
    font-size:21px;
    font-weight:600;
    color:var(--white);
    line-height:1.45;
  }
  .quote-card cite{
    display:block;
    margin-top:18px;
    font-style:normal;
    font-family:var(--font-mono);
    font-size:12.5px;
    color:var(--sky-300);
    letter-spacing:.04em;
  }
  .badge-row{
    display:flex;
    gap:14px;
    margin-top:30px;
    flex-wrap:wrap;
  }
  .badge-pill{
    display:flex;
    align-items:center;
    gap:8px;
    background:var(--white);
    border:1px solid var(--line);
    padding:10px 16px;
    border-radius:999px;
    font-size:13.5px;
    font-weight:600;
    color:var(--navy-900);
  }
  .badge-pill .dot{
    width:8px;height:8px;border-radius:50%;background:var(--amber);
  }

  /* ---------- section heading shared ---------- */
  .section-head{
    max-width:640px;
    margin:0 auto 50px;
    text-align:center;
  }
  .section-head h2{
    font-size:clamp(28px,3.4vw,40px);
    margin:14px 0 14px;
  }
  .section-head p{
    color:var(--mist);
    font-size:16px;
  }

  /* ---------- packages ---------- */
  .packages{
    background:var(--white);
    padding:100px 0;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .vort-card{
    background:linear-gradient(155deg, var(--navy-950) 0%, var(--navy-800) 100%);
    border-radius:24px;
    color:var(--white);
    padding:36px 32px;
    display:flex;
    flex-direction:column;
    gap:24px;
    position:relative;
    /* overflow:hidden removed — it was causing ::after to clip card content */
    isolation:isolate; /* creates stacking context without clipping */
  }
  .vort-grid{
    display:flex;
    gap:24px;
    max-width:960px;
    margin:0 auto;
    align-items:stretch;
  }
  .vort-grid .vort-card{
    flex:1 1 0;
    min-width:0;
  }
  .vort-card--standard{
    background:linear-gradient(155deg, #162A50 0%, #1A2E58 100%);
    border:1px solid rgba(156,203,242,.18);
  }
  .vort-card--premium{
    border:2px solid var(--amber);
    box-shadow:0 0 0 1px rgba(242,169,59,.15), 0 20px 50px -16px rgba(242,169,59,.25);
  }
  .vort-badge-best{
    display:inline-block;
    background:var(--amber);
    color:var(--navy-950);
    font-family:var(--font-mono);
    font-size:11px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    padding:5px 12px;
    border-radius:999px;
    white-space:nowrap;
    align-self:flex-end;
    margin-bottom:6px;
  }
  .vort-price-col{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:4px;
    flex-shrink:0;
  }
  .vort-card::after{
    content:"";
    position:absolute;
    right:-60px;top:-60px;
    width:260px;height:260px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(91,141,239,.25), transparent 70%);
    z-index:-1; /* sits behind all card content */
    pointer-events:none;
  }
  .vort-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
    position:relative;
    z-index:1;
  }
  .vort-name{
    font-family:var(--font-mono);
    font-size:13px;
    letter-spacing:.14em;
    color:var(--amber);
    font-weight:600;
    text-transform:uppercase;
  }
  .vort-card h3{
    color:var(--white);
    font-size:28px;
    margin-top:6px;
  }
  .vort-price{
    text-align:right;
  }
  .vort-price .amount{
    font-family:var(--font-mono);
    font-size:42px;
    font-weight:700;
    color:var(--white);
    line-height:1;
  }
  .vort-price .amount sup{
    font-size:16px;
    color:var(--sky-300);
    margin-right:2px;
  }
  .vort-price .tag{
    display:block;
    margin-top:6px;
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--sky-300);
    font-family:var(--font-mono);
  }
  .vort-features{
    display:flex;
    flex-direction:column;
    gap:12px;
    position:relative;
    z-index:1;
    margin:0;
    padding:0;
    list-style:none;
    flex:1;
  }
  .vort-features li{
    display:flex;
    align-items:center;
    gap:12px;
    font-size:15px;
    color:rgba(255,255,255,.92);
  }
  .vort-features li svg{flex:0 0 auto;}
  .vort-card .btn{align-self:flex-start;margin-top:4px;position:relative;z-index:1;}

  /* ---------- pricing ---------- */
  .pricing{
    padding:100px 0;
  }
  .price-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
  }
  .price-card{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:34px 28px;
    text-align:center;
    transition:border-color .15s ease, transform .15s ease;
  }
  .price-card:hover{border-color:var(--blue-400);transform:translateY(-3px);}
  .price-card .dur{
    font-family:var(--font-mono);
    font-size:13px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--mist-light);
    margin-bottom:14px;
  }
  .price-card .amt{
    font-family:var(--font-mono);
    font-size:42px;
    font-weight:600;
    color:var(--navy-900);
  }
  .price-card .amt sup{
    font-size:16px;
    color:var(--blue-500);
    margin-right:2px;
    vertical-align:top;
    top:6px;
    position:relative;
  }
  .price-card .label{
    margin-top:10px;
    font-size:14px;
    color:var(--mist);
  }
  .price-note{
    text-align:center;
    margin-top:30px;
    color:var(--mist);
    font-size:14px;
  }

  /* ---------- service areas ---------- */
  .areas{
    background:var(--paper-dim);
    padding:90px 0;
  }
  .areas-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:24px;
    max-width:840px;
    margin:0 auto;
  }
  .area-card{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:30px 28px;
    display:flex;
    align-items:center;
    gap:18px;
  }
  .area-card .pin{
    flex:0 0 44px;
    width:44px;height:44px;
    border-radius:50%;
    background:var(--navy-900);
    display:flex;align-items:center;justify-content:center;
  }
  .area-card h4{font-size:17px;color:var(--navy-900);}
  .area-card p{font-size:13.5px;color:var(--mist);margin-top:4px;}

  /* ---------- CTA / contact ---------- */
  .cta{
    background:linear-gradient(135deg, var(--navy-950), var(--navy-800));
    color:var(--white);
    padding:90px 0;
    text-align:center;
  }
  .cta h2{
    color:var(--white);
    font-size:clamp(28px,3.6vw,42px);
    max-width:620px;
    margin:16px auto 14px;
  }
  .cta p{
    color:rgba(255,255,255,.72);
    max-width:50ch;
    margin:0 auto 36px;
    font-size:16px;
  }
  .cta-actions{
    display:flex;
    gap:16px;
    justify-content:center;
    flex-wrap:wrap;
    margin-bottom:46px;
  }
  .contact-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    max-width:880px;
    margin:0 auto;
  }
  .contact-item{
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.12);
    border-radius:var(--radius-sm);
    padding:20px;
    text-align:left;
  }
  .contact-item .k{
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--sky-300);
    margin-bottom:8px;
    display:block;
  }
  .contact-item .v{
    font-size:15px;
    font-weight:600;
    color:var(--white);
    word-break:break-word;
  }

  /* ---------- footer ---------- */
  footer{
    background:var(--navy-950);
    color:rgba(255,255,255,.55);
    padding:36px 0;
    border-top:1px solid rgba(255,255,255,.08);
  }
  .foot-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    flex-wrap:wrap;
    font-size:13px;
  }
  .foot-brand{
    display:flex;
    align-items:center;
    gap:10px;
    color:rgba(255,255,255,.8);
    font-family:var(--font-mono);
    font-size:12.5px;
  }
  .foot-brand img{height:20px;width:auto;}

  /* ---------- responsive ---------- */
  @media (max-width: 920px){
    .hero-grid{grid-template-columns:1fr;}
    .road-scene{height:300px;order:-1;}
    .about-grid{grid-template-columns:1fr;}
    .vort-grid{flex-direction:column;}
    .vort-card{padding:28px 24px;}
    .vort-price{text-align:left;}
    .price-grid{grid-template-columns:1fr;}
    .areas-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
    nav.links{
      position:fixed;
      inset:78px 0 0 0;
      background:var(--navy-950);
      flex-direction:column;
      padding:30px 28px;
      gap:6px;
      transform:translateY(-130%);
      transition:transform .25s ease;
      height:calc(100vh - 78px);
    }
    nav.links.open{transform:translateY(0);}
    nav.links a{
      padding:14px 4px;
      border-bottom:1px solid rgba(255,255,255,.08);
      width:100%;
    }
    .nav-toggle{display:block;}
    .nav-phone span.full{display:none;}
  }
  @media (max-width:560px){
    .vort-features{grid-template-columns:1fr;}
    .hero-stats{gap:24px;}
  }
  @media (max-width:420px){
    .nav-row{height:70px;}
    .brand-text{font-size:14.5px;}
    .brand-text small{font-size:9.5px;}
    .brand img{height:28px;}
    .nav-cta{gap:8px;}
    .nav-phone{display:none;}
    .btn-nav{padding:9px 14px;font-size:12.5px;}
  }

  /* ---------- WhatsApp floating button ---------- */
  .wa-float{
    position:fixed;
    bottom:28px;
    right:28px;
    z-index:999;
    display:flex;
    align-items:center;
    gap:0;
    text-decoration:none;
  }
  .wa-bubble{
    display:flex;
    align-items:center;
    justify-content:center;
    width:60px;
    height:60px;
    border-radius:50%;
    background:#25D366;
    box-shadow:0 6px 28px -6px rgba(37,211,102,.65), 0 2px 8px rgba(0,0,0,.18);
    transition:transform .2s ease, box-shadow .2s ease;
    flex-shrink:0;
  }
  .wa-float:hover .wa-bubble{
    transform:scale(1.10);
    box-shadow:0 10px 36px -6px rgba(37,211,102,.75), 0 4px 12px rgba(0,0,0,.2);
  }
  .wa-bubble svg{
    width:32px;
    height:32px;
  }
  .wa-tooltip{
    background:var(--navy-900);
    color:var(--white);
    font-family:var(--font-body);
    font-size:13.5px;
    font-weight:600;
    white-space:nowrap;
    padding:9px 14px 9px 16px;
    border-radius:999px 0 0 999px;
    opacity:0;
    transform:translateX(12px);
    transition:opacity .22s ease, transform .22s ease;
    pointer-events:none;
    box-shadow:0 4px 16px rgba(0,0,0,.18);
    margin-right:-4px;
  }
  .wa-float:hover .wa-tooltip,
  .wa-float:focus-visible .wa-tooltip{
    opacity:1;
    transform:translateX(0);
  }
  .wa-float:focus-visible .wa-bubble{
    outline:3px solid var(--amber);
    outline-offset:3px;
  }
  /* pulse ring */
  .wa-bubble::after{
    content:"";
    position:absolute;
    width:60px;
    height:60px;
    border-radius:50%;
    border:2px solid rgba(37,211,102,.55);
    animation:wa-pulse 2.2s ease-out infinite;
  }
  @keyframes wa-pulse{
    0%{transform:scale(1);opacity:.7;}
    70%{transform:scale(1.55);opacity:0;}
    100%{transform:scale(1.55);opacity:0;}
  }
  @media (prefers-reduced-motion:reduce){
    .wa-bubble::after{animation:none;}
  }
  @media (max-width:560px){
    .wa-float{bottom:20px;right:40px;}
    .wa-bubble{width:54px;height:54px;}
    .wa-bubble svg{width:28px;height:28px;}
    .wa-bubble::after{width:54px;height:54px;}
  }