:root{
    --navy-deep:#0a1f44;
    --navy:#173b73;
    --blue:#1e5fae;
    --blue-light:#4fa8dc;
    --red:#c8202f;
    --red-dark:#8f1420;
    --charcoal:#232a31;
    --ink:#0d1720;
    --paper:#f5f7fa;
    --white:#ffffff;
    --line:rgba(13,23,32,0.1);
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    background:var(--paper);
    color:var(--ink);
    line-height:1.5;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}

  /* ===== Ripple background used behind hero ===== */
  .ripple-bg{
    position:absolute;inset:0;overflow:hidden;z-index:0;
    background:
      radial-gradient(circle at 15% 20%, rgba(30,95,174,0.35), transparent 45%),
      radial-gradient(circle at 85% 10%, rgba(200,32,47,0.18), transparent 40%),
      linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 55%, var(--blue) 100%);
  }
  .ripple-bg svg{position:absolute;bottom:-2px;left:0;width:100%;height:auto;}

  /* ===== Header ===== */
  header{
    position:sticky;top:0;z-index:50;
    background:var(--white);
    border-bottom:1px solid var(--line);
  }
  .nav-wrap{
    max-width:1180px;margin:0 auto;
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 24px;
  }
  .nav-wrap img{height:58px;width:auto;}
  .nav-right{display:flex;align-items:center;gap:32px;}
  nav ul{list-style:none;display:flex;gap:32px;}
  nav a{
    font-weight:600;font-size:14px;letter-spacing:.03em;
    color:var(--charcoal);
    position:relative;padding-bottom:4px;
  }
  nav a::after{
    content:"";position:absolute;left:0;bottom:0;width:0;height:2px;
    background:var(--red);transition:width .25s ease;
  }
  nav a:hover::after{width:100%;}
  .nav-cta{
    background:var(--navy-deep);color:var(--white);
    padding:10px 20px;border-radius:4px;font-weight:700;font-size:14px;
    box-shadow:0 2px 8px rgba(10,31,68,0.25);
  }
  .nav-cta:hover{background:var(--navy);}

  /* Desktop: Log in / Apply shown as buttons inline, no dropdown */
  .nav-account{display:flex;align-items:center;gap:14px;}
  .nav-account a.nav-cta{color:var(--white);}
  .nav-cta-outline{
    background:transparent;color:var(--navy-deep);
    border:2px solid var(--navy-deep);box-shadow:none;
    padding:8px 18px; /* 2px less than .nav-cta's 10px to account for the border, so both boxes are the same overall size */
  }
  .nav-account a.nav-cta-outline{color:var(--navy-deep);}
  .nav-cta-outline:hover{background:var(--navy-deep);}
  .nav-account a.nav-cta-outline:hover{color:var(--white);}

  /* Hamburger + dropdown - mobile only (see the max-width:900px block
     below), hidden by default so desktop never shows both the inline
     links above AND the hamburger at the same time. */
  .menu-wrap{position:relative;display:none;}
  .menu-toggle{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;background:var(--navy-deep);border:none;border-radius:8px;
    cursor:pointer;transition:background .2s ease;flex-shrink:0;
  }
  .menu-toggle:hover{background:var(--navy);}
  .menu-toggle .bar{display:block;width:20px;height:2px;background:var(--white);border-radius:2px;position:relative;}
  .menu-toggle .bar::before,.menu-toggle .bar::after{
    content:"";position:absolute;left:0;width:20px;height:2px;background:var(--white);border-radius:2px;
    transition:transform .2s ease;
  }
  .menu-toggle .bar::before{top:-6px;}
  .menu-toggle .bar::after{top:6px;}

  .menu-dropdown{
    position:absolute;top:calc(100% + 10px);right:0;
    background:var(--white);border-radius:10px;
    box-shadow:0 16px 32px rgba(10,31,68,0.18);
    min-width:230px;padding:8px;
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
    z-index:60;
  }
  .menu-dropdown.open{opacity:1;visibility:visible;transform:translateY(0);}
  .menu-dropdown a{
    display:block;padding:11px 14px;border-radius:6px;font-weight:600;font-size:14px;color:var(--charcoal);
  }
  .menu-dropdown a:hover{background:var(--paper);color:var(--navy-deep);}
  .menu-dropdown .divider{height:1px;background:var(--line);margin:6px 4px;}

  /* ===== Hero ===== */
  .hero{
    position:relative;
    padding:100px 24px 130px;
    color:var(--white);
    overflow:hidden;
  }
  .hero-inner{
    position:relative;z-index:2;
    max-width:900px;margin:0 auto;text-align:center;
  }
  .eyebrow{
    display:inline-flex;align-items:center;gap:8px;
    font-size:12px;letter-spacing:.16em;text-transform:uppercase;
    font-weight:700;color:#cfe0f7;
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.25);
    padding:6px 14px;border-radius:999px;
    margin-bottom:26px;
  }
  .eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--red);
    box-shadow:0 0 0 0 rgba(200,32,47,0.6);
    animation:pulse 2s infinite;}
  @keyframes pulse{
    0%{box-shadow:0 0 0 0 rgba(200,32,47,0.6);}
    70%{box-shadow:0 0 0 10px rgba(200,32,47,0);}
    100%{box-shadow:0 0 0 0 rgba(200,32,47,0);}
  }
  .hero h1{
    font-size:clamp(34px,5.4vw,58px);
    font-weight:800;line-height:1.08;letter-spacing:-0.01em;
    margin-bottom:22px;
  }
  .hero h1 span{color:#ff6b78;}
  .hero p{
    font-size:18px;color:#dbe6f5;max-width:620px;margin:0 auto 38px;
  }
  .hero-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
  .btn-primary{
    background:var(--red);color:var(--white);
    padding:15px 30px;border-radius:5px;font-weight:700;font-size:15px;
    box-shadow:0 6px 18px rgba(200,32,47,0.4);
  }
  .btn-primary:hover{background:var(--red-dark);}
  .btn-ghost{
    border:1.5px solid rgba(255,255,255,0.5);
    color:var(--white);padding:14px 28px;border-radius:5px;font-weight:700;font-size:15px;
  }
  .btn-ghost:hover{background:rgba(255,255,255,0.12);}

  /* Live-strip under hero */
  .live-strip{
    position:relative;z-index:2;
    max-width:960px;margin:56px auto 0;
    display:grid;grid-template-columns:repeat(4,1fr);
    gap:1px;background:rgba(255,255,255,0.18);
    border-radius:10px;overflow:hidden;
    border:1px solid rgba(255,255,255,0.18);
  }
  .live-strip div{
    background:rgba(10,31,68,0.55);
    padding:20px 12px;text-align:center;
  }
  .live-strip strong{display:block;font-size:24px;color:var(--white);}
  .live-strip span{font-size:12px;color:#b9cbe6;letter-spacing:.04em;text-transform:uppercase;}

  /* ===== Sections ===== */
  section{padding:90px 24px;}
  .section-inner{max-width:1180px;margin:0 auto;}
  .section-head{max-width:640px;margin:0 auto 56px;text-align:center;}
  .section-head .tag{
    font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
    color:var(--red);margin-bottom:12px;display:block;
  }
  .section-head h2{font-size:clamp(26px,3.4vw,38px);color:var(--navy-deep);font-weight:800;letter-spacing:-0.01em;margin-bottom:14px;}
  .section-head p{color:#4b5a68;font-size:16px;}

  /* How it works — three pillars */
  .pillars{
    display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
  }
  .pillar{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:12px;
    padding:34px 28px;
    position:relative;
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .pillar:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(10,31,68,0.1);}
  .pillar .icon{
    width:52px;height:52px;border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    margin-bottom:20px;color:var(--white);
  }
  .pillar:nth-child(1) .icon{background:linear-gradient(135deg,var(--blue),var(--navy));}
  .pillar:nth-child(2) .icon{background:linear-gradient(135deg,var(--red),var(--red-dark));}
  .pillar:nth-child(3) .icon{background:linear-gradient(135deg,var(--charcoal),var(--navy-deep));}
  .pillar:nth-child(4) .icon{background:linear-gradient(135deg,var(--blue-light),var(--blue));}
  .pillar h3{font-size:19px;color:var(--navy-deep);margin-bottom:10px;font-weight:700;}
  .pillar p{color:#556170;font-size:14.5px;}

  /* Retrofit banner */
  .retrofit-band{
    background:linear-gradient(135deg,var(--navy-deep),var(--navy));
    color:var(--white);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .retrofit-inner{
    max-width:1180px;margin:0 auto;
    display:grid;grid-template-columns:auto 1fr auto;gap:36px;align-items:center;
    padding:52px 24px;
  }
  .retrofit-icon{
    width:64px;height:64px;border-radius:14px;flex:0 0 auto;
    background:linear-gradient(135deg,var(--blue-light),var(--blue));
    display:flex;align-items:center;justify-content:center;color:var(--white);
  }
  .retrofit-text .tag{
    font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#8fc3ec;margin-bottom:8px;display:block;
  }
  .retrofit-text h3{font-size:24px;font-weight:800;margin-bottom:10px;}
  .retrofit-text p{color:#cddcef;font-size:15px;max-width:620px;}
  .retrofit-uses{
    display:flex;gap:10px;flex-wrap:wrap;flex:0 0 auto;
  }
  .retrofit-uses span{
    border:1px solid rgba(255,255,255,0.3);
    padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;color:#eaf1fb;
    white-space:nowrap;
  }
  .retrofit-cta{
    display:inline-block;background:var(--white);color:var(--navy-deep);
    padding:12px 26px;border-radius:6px;font-weight:700;font-size:14.5px;
    margin-top:16px;transition:background .2s ease;
  }
  .retrofit-cta:hover{background:#eef3fa;}
  @media (max-width:900px){
    .retrofit-inner{grid-template-columns:1fr;text-align:left;}
    .retrofit-uses{margin-top:6px;}
  }


  .showcase{
    background:var(--white);
    border-radius:16px;
    border:1px solid var(--line);
    overflow:hidden;
    display:grid;grid-template-columns:1.1fr 1fr;
  }
  .showcase-copy{padding:52px;align-self:center;}
  .showcase-copy .tag{
    font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:12px;display:block;
  }
  .showcase-copy h3{font-size:28px;color:var(--navy-deep);font-weight:800;margin-bottom:16px;}
  .showcase-copy p{color:#4b5a68;margin-bottom:22px;}
  .checklist{list-style:none;}
  .checklist li{
    display:flex;gap:10px;align-items:flex-start;
    font-size:14.5px;color:#33404c;margin-bottom:12px;
  }
  .checklist li::before{
    content:"";flex:0 0 8px;height:8px;border-radius:50%;margin-top:6px;
    background:var(--red);
  }
  .map-panel{
    position:relative;
    background:
      radial-gradient(circle at 30% 30%, rgba(30,95,174,0.35), transparent 55%),
      linear-gradient(160deg, var(--navy-deep), var(--navy));
    min-height:380px;
  }
  .map-grid{
    position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
    background-size:34px 34px;
  }
  .pin{
    position:absolute;width:16px;height:16px;border-radius:50%;
    background:var(--red);border:3px solid rgba(255,255,255,0.85);
    box-shadow:0 0 0 6px rgba(200,32,47,0.25);
  }
  .pin.ok{background:var(--blue-light);box-shadow:0 0 0 6px rgba(79,168,220,0.25);}
  .pin-label{
    position:absolute;transform:translate(-50%,-130%);
    font-size:11px;font-weight:700;color:var(--white);
    background:rgba(10,31,68,0.85);padding:3px 8px;border-radius:4px;
    white-space:nowrap;
  }

  /* Suppliers band */
  .suppliers-band{
    background:var(--white);
    border-top:1px solid var(--line);
  }
  .suppliers-inner{
    max-width:1180px;margin:0 auto;
    background:linear-gradient(135deg, var(--charcoal), var(--ink));
    border-radius:16px;
    padding:56px;
    display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;
    color:var(--white);
  }
  .suppliers-copy .tag{
    font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ff9aa3;margin-bottom:12px;display:block;
  }
  .suppliers-copy h2{font-size:clamp(24px,3vw,32px);font-weight:800;margin-bottom:14px;letter-spacing:-0.01em;}
  .suppliers-copy p{color:#c7cfd8;font-size:15.5px;margin-bottom:0;}
  .suppliers-list{list-style:none;}
  .suppliers-list li{
    display:flex;gap:14px;align-items:flex-start;
    padding:16px 0;border-top:1px solid rgba(255,255,255,0.1);
  }
  .suppliers-list li:first-child{border-top:none;}
  .suppliers-list .num{
    flex:0 0 auto;width:30px;height:30px;border-radius:8px;
    background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);
    display:flex;align-items:center;justify-content:center;
    font-size:13px;font-weight:800;color:var(--white);
  }
  .suppliers-list strong{display:block;font-size:15px;color:var(--white);margin-bottom:2px;}
  .suppliers-list span{font-size:13.5px;color:#a9b3bd;}
  .suppliers-cta{
    margin-top:26px;display:inline-block;
    background:var(--red);color:var(--white);
    padding:13px 26px;border-radius:5px;font-weight:700;font-size:14.5px;
  }
  .suppliers-cta:hover{background:var(--red-dark);}
  @media (max-width:900px){
    .suppliers-inner{grid-template-columns:1fr;padding:36px 28px;}
  }

  /* Footer */
  footer{
    background:var(--charcoal);color:#b7c0c9;padding:48px 24px 28px;
  }
  .footer-inner{
    max-width:1180px;margin:0 auto;
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;
  }
  .footer-wordmark{font-size:20px;font-weight:800;color:var(--white);letter-spacing:-0.01em;}
  .footer-wordmark span{color:#ff6b78;}
  .footer-links{display:flex;gap:24px;flex-wrap:wrap;font-size:13px;}
  .footer-links a:hover{color:var(--white);}
  .footer-bottom{
    max-width:1180px;margin:24px auto 0;
    border-top:1px solid rgba(255,255,255,0.08);
    padding-top:20px;font-size:12px;color:#79828b;
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
  }

  @media (max-width:900px){
    .pillars{grid-template-columns:1fr;}
    .showcase{grid-template-columns:1fr;}
    nav ul{display:none;}
    .nav-account{display:none;}
    .menu-wrap{display:block;}
    .live-strip{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:1100px) and (min-width:901px){
    .pillars{grid-template-columns:repeat(2,1fr);}
  }

/* ===== Application page embed (applications.php) ===== */
.apply-wrap{
  max-width:900px;margin:0 auto;
  padding:56px 24px 80px;
}
.apply-wrap h1{
  font-size:clamp(28px,4vw,38px);color:var(--navy-deep);margin-bottom:10px;
}
.apply-wrap p.lead{
  color:#4b5866;font-size:16px;margin-bottom:32px;max-width:640px;
}
.apply-frame-card{
  background:var(--white);border-radius:14px;
  box-shadow:0 16px 40px rgba(10,31,68,0.12);
  overflow:hidden;
}
.apply-frame-card iframe{
  display:block;width:100%;border:none;min-height:640px;
}

/* ===== Features page (features.php) ===== */
.features-hero{
  padding:70px 24px 20px;text-align:center;
}
.features-hero h1{
  font-size:clamp(30px,4.4vw,42px);color:var(--navy-deep);font-weight:800;
  letter-spacing:-0.01em;max-width:760px;margin:0 auto 16px;
}
.features-hero p{color:#4b5a68;font-size:17px;max-width:640px;margin:0 auto;}

.feature-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;
  max-width:1180px;margin:0 auto;
}
.feature-card{
  background:var(--white);border:1px solid var(--line);border-radius:12px;
  padding:30px 26px;transition:transform .25s ease, box-shadow .25s ease;
}
.feature-card:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(10,31,68,0.1);}
.feature-card .icon{
  width:48px;height:48px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:18px;color:var(--white);font-size:22px;
  background:linear-gradient(135deg,var(--blue),var(--navy-deep));
}
.feature-card h3{font-size:18px;color:var(--navy-deep);margin-bottom:8px;font-weight:700;}
.feature-card p{color:#556170;font-size:14.5px;}

/* Tier comparison table */
.compare-wrap{max-width:1180px;margin:0 auto;overflow-x:auto;}
table.compare{
  width:100%;border-collapse:collapse;background:var(--white);
  border-radius:14px;overflow:hidden;box-shadow:0 16px 40px rgba(10,31,68,0.08);
  min-width:720px;
}
table.compare th, table.compare td{
  padding:16px 18px;text-align:center;border-bottom:1px solid var(--line);font-size:14.5px;
}
table.compare th:first-child, table.compare td:first-child{
  text-align:left;font-weight:600;color:var(--charcoal);min-width:220px;
}
table.compare thead th{
  background:var(--navy-deep);color:var(--white);font-size:15px;padding:20px 18px;
}
table.compare thead th:first-child{background:var(--navy-deep);}
table.compare thead .tier-price{display:block;font-weight:400;font-size:13px;color:#b9c8e0;margin-top:4px;}
table.compare tbody tr:last-child td{border-bottom:none;}
table.compare tbody tr:hover{background:var(--paper);}
table.compare .tick{color:#1f9d63;font-weight:800;font-size:17px;}
table.compare .cross{color:#c4cbd3;font-weight:800;font-size:17px;}
table.compare .figure{color:var(--charcoal);font-weight:600;}
table.compare .row-group td{
  background:var(--paper);font-weight:700;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:#6b7784;text-align:left;
}

.compare-note{max-width:820px;margin:26px auto 0;text-align:center;color:#79828b;font-size:13px;}

/* Plan choice buttons - one row inside thead (right under the prices,
   dark background) and one in tfoot (light background) - both real table
   cells so they're always exactly column-aligned, never guessed at with
   separate flex/grid spacing. */
table.compare thead .cta-row th{
  padding-top:4px;padding-bottom:18px;background:var(--navy-deep);
}
table.compare thead .cta-row a{
  display:block;text-align:center;padding:9px 14px;border-radius:7px;
  font-weight:700;font-size:13.5px;border:2px solid rgba(255,255,255,0.55);color:var(--white);
  transition:background .2s ease, border-color .2s ease;
}
table.compare thead .cta-row a:hover{background:rgba(255,255,255,0.12);border-color:var(--white);}

table.compare tfoot a{
  display:block;text-align:center;padding:13px 22px;border-radius:8px;
  font-weight:700;font-size:14.5px;border:2px solid var(--navy-deep);color:var(--navy-deep);
  transition:background .2s ease, color .2s ease;
}
table.compare tfoot a:hover{background:var(--navy-deep);color:var(--white);}
table.compare tfoot td{padding:18px;background:var(--paper);border-top:2px solid var(--line);}
table.compare tfoot td:first-child{background:var(--paper);}

/* Closing sign-up band */
.signup-band{
  background:linear-gradient(135deg,var(--navy-deep),var(--navy));
  color:var(--white);text-align:center;padding:80px 24px;margin-top:40px;
}
.signup-band h2{font-size:clamp(24px,3.4vw,34px);font-weight:800;margin-bottom:14px;}
.signup-band p{color:#cfe0f7;font-size:16px;max-width:520px;margin:0 auto 30px;}
.signup-band .btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.signup-band .btn-white{
  background:var(--white);color:var(--navy-deep);padding:14px 30px;border-radius:6px;
  font-weight:700;font-size:15px;
}
.signup-band .btn-outline{
  border:2px solid rgba(255,255,255,0.5);color:var(--white);padding:12px 28px;border-radius:6px;
  font-weight:700;font-size:15px;
}
.signup-band .btn-white:hover{background:#eef3fa;}
.signup-band .btn-outline:hover{border-color:var(--white);}