  :root{
    --navy: #0B2A44;
    --navy-deep: #071B2E;
    --teal: #00A5B5;
    --teal-dark: #00838F;
    --gold: #F0A93B;
    --bg-soft: #F5F9FA;
    --ink: #17324A;
    --ink-soft: #4C6579;
    --line: #E1EAEE;
    --white: #FFFFFF;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--white);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{font-family:'Poppins', sans-serif; color:var(--navy); line-height:1.2;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
  section{padding:72px 0;}
  .eyebrow{
    text-transform:uppercase; letter-spacing:.12em; font-size:12.5px; font-weight:700;
    color:var(--teal-dark);
  }

  /* ---- Top info bar ---- */
  .topbar{
    background:var(--navy-deep); color:#CFE4EA; font-size:13.5px;
  }
  .topbar .wrap{
    display:flex; justify-content:space-between; align-items:center;
    padding-top:9px; padding-bottom:9px; flex-wrap:wrap; gap:6px;
  }
  .topbar a{color:#fff; font-weight:600;}
  .topbar .divider{opacity:.4; margin:0 8px;}

  /* ---- Header ---- */
  header.site{
    padding:16px 0; border-bottom:1px solid var(--line);
    background:#fff; position:sticky; top:0; z-index:50;
  }
  header.site .wrap{display:flex; align-items:center; justify-content:space-between;}
  header.site img.logo{height:42px;}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:13px 26px; border-radius:100px; font-weight:700; font-size:15px;
    cursor:pointer; border:none; transition:transform .15s ease, box-shadow .15s ease;
    white-space:nowrap;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-primary{background:var(--teal); color:#fff; box-shadow:0 8px 20px -6px rgba(31,182,201,.55);}
  .btn-primary:hover{background:var(--teal-dark);}
  .btn-ghost{background:transparent; color:var(--navy); border:1.5px solid var(--line);}
  .btn-ghost:hover{border-color:var(--navy);}
  .btn-on-dark{background:#fff; color:var(--navy);}
  .btn-on-dark:hover{background:var(--gold); color:#fff;}
  header.site .cta-group{display:flex; gap:10px; align-items:center;}
  header.site .phone{
    display:flex; align-items:center; gap:8px; font-weight:700; color:var(--navy); font-size:15px;
  }

  /* ---- Hero ---- */
  .hero{
    position:relative; background:linear-gradient(160deg, var(--navy) 0%, #0E3654 60%, var(--teal-dark) 130%);
    color:#fff; overflow:hidden; padding:64px 0 0;
  }
  .hero .wrap{
    display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center;
  }
  .hero .eyebrow{color:#8FE4EE;}
  .hero h1{
    color:#fff; font-size:44px; font-weight:800; margin:14px 0 18px; letter-spacing:-0.5px;
  }
  .hero h1 span{color:#8FE4EE;}
  .hero p.lead{
    font-size:17.5px; color:#D8E8EE; max-width:520px; margin-bottom:28px;
  }
  .hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:22px;}
  .trust-row{
    display:flex; gap:22px; flex-wrap:wrap; font-size:13.5px; color:#BFDDE4; margin-top:8px;
  }
  .trust-row span{display:flex; align-items:center; gap:7px;}
  .trust-row svg{flex:none;}
  .hero-media{
    position:relative; border-radius:20px; overflow:hidden; box-shadow:0 30px 60px -20px rgba(0,0,0,.5);
    align-self:end;
  }
  .hero-media img{height:460px; width:100%; object-fit:cover;}
  .hero-badge{
    position:absolute; left:20px; bottom:20px; background:rgba(7,27,46,.82);
    backdrop-filter:blur(6px); padding:14px 18px; border-radius:14px; color:#fff;
    display:flex; gap:12px; align-items:center; max-width:260px;
  }
  .hero-badge .num{font-family:'Poppins'; font-weight:800; font-size:22px; color:#8FE4EE;}
  .hero-badge .txt{font-size:12.5px; color:#CFE4EA; line-height:1.3;}
  .wave{display:block; width:100%; height:60px; margin-top:40px;}

  /* ---- Value props ---- */
  .value-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:38px;
  }
  .value-card{
    background:var(--bg-soft); border:1px solid var(--line); border-radius:16px; padding:26px 22px;
  }
  .value-card .icon{
    width:44px; height:44px; border-radius:12px; background:var(--teal); display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  }
  .value-card h3{font-size:17px; margin-bottom:8px;}
  .value-card p{font-size:14px; color:var(--ink-soft);}
  .section-head{max-width:640px; margin-bottom:20px;}
  .section-head h2{font-size:32px; margin-top:10px;}
  .section-head p{color:var(--ink-soft); font-size:15.5px; margin-top:10px;}
  .center{text-align:center; margin-left:auto; margin-right:auto;}

  /* ---- Treatments ---- */
  .treat-section{background:var(--bg-soft);}
  .treat-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:36px;
  }
  .treat-card{
    background:#fff; border-radius:16px; border:1px solid var(--line); padding:26px; position:relative;
    display:flex; flex-direction:column; gap:10px;
  }
  .treat-card .tag{
    align-self:flex-start; background:#E8F8FA; color:var(--teal-dark); font-size:11.5px; font-weight:700;
    padding:4px 10px; border-radius:100px; text-transform:uppercase; letter-spacing:.05em;
  }
  .treat-card h3{font-size:18.5px;}
  .treat-card p{font-size:14px; color:var(--ink-soft); flex:1;}
  .treat-card .price{
    display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line);
    padding-top:14px; font-size:13.5px; color:var(--ink-soft); font-weight:600;
  }
  .treat-card .price b{color:var(--navy); font-size:16px;}
  .treat-more{
    text-align:center; margin-top:34px; font-size:14.5px; color:var(--ink-soft);
  }

  /* ---- How it works ---- */
  .steps{
    display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:40px; counter-reset:step;
  }
  .step{position:relative; padding-left:0;}
  .step .num{
    font-family:'Poppins'; font-weight:800; font-size:40px; color:var(--teal); opacity:.35; margin-bottom:6px;
  }
  .step h3{font-size:18px; margin-bottom:8px;}
  .step p{font-size:14.5px; color:var(--ink-soft);}

  /* ---- Membership ---- */
  .member-band{
    background:var(--navy); color:#fff; border-radius:24px; padding:48px; margin-top:8px;
    display:grid; grid-template-columns:1.2fr .8fr; gap:30px; align-items:center;
  }
  .member-band h2{color:#fff; font-size:28px;}
  .member-band p{color:#C9DEE4; margin-top:12px; font-size:15px; max-width:460px;}
  .member-band .btn-primary{margin-top:20px;}

  /* ---- Location ---- */
  .loc-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:36px; align-items:stretch;
  }
  .loc-card{
    background:var(--bg-soft); border:1px solid var(--line); border-radius:20px; padding:34px;
  }
  .loc-card h3{font-size:20px; margin-bottom:18px;}
  .loc-row{display:flex; gap:14px; margin-bottom:16px; align-items:flex-start;}
  .loc-row .ic{
    width:36px; height:36px; border-radius:10px; background:#E8F8FA; color:var(--teal-dark);
    display:flex; align-items:center; justify-content:center; flex:none;
  }
  .loc-row b{display:block; color:var(--navy); font-size:14.5px;}
  .loc-row span{color:var(--ink-soft); font-size:14px;}
  table.hours{width:100%; border-collapse:collapse; font-size:14px; margin-top:4px;}
  table.hours td{padding:5px 0; color:var(--ink-soft);}
  table.hours td:last-child{text-align:right; font-weight:600; color:var(--navy);}
  .map-embed{border-radius:20px; overflow:hidden; border:1px solid var(--line); min-height:100%; }
  .map-embed iframe{width:100%; height:100%; min-height:380px; border:0;}

  /* ---- Final CTA ---- */
  .final-cta{
    background:linear-gradient(135deg, var(--teal-dark), var(--teal));
    color:#fff; text-align:center; border-radius:24px; padding:56px 30px; margin:0 24px;
  }
  .final-cta h2{color:#fff; font-size:30px; margin-bottom:12px;}
  .final-cta p{color:#EAFBFD; font-size:15.5px; margin-bottom:26px;}
  .final-cta .ctas{display:flex; justify-content:center; gap:14px; flex-wrap:wrap;}

  /* ---- Footer ---- */
  footer{background:var(--navy-deep); color:#9FB7C4; padding:44px 0 26px; font-size:13px;}
  footer img.logo{height:32px; margin-bottom:14px; opacity:.9;}
  footer .foot-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; margin-bottom:26px;}
  footer .disclaimer{border-top:1px solid rgba(255,255,255,.1); padding-top:18px; line-height:1.6; color:#7C97A5;}
  footer a:hover{color:#fff;}

  /* ---- Sticky mobile CTA ---- */
  .sticky-mobile{
    display:none; position:fixed; bottom:0; left:0; right:0; z-index:60;
    background:#fff; border-top:1px solid var(--line); padding:10px 14px;
    box-shadow:0 -8px 24px rgba(0,0,0,.08);
    gap:10px;
  }
  .sticky-mobile .btn{flex:1;}

  @media (max-width: 980px){
    .hero .wrap{grid-template-columns:1fr;}
    .hero-media{order:-1;}
    .hero h1{font-size:34px;}
    .value-grid{grid-template-columns:repeat(2,1fr);}
    .treat-grid{grid-template-columns:repeat(2,1fr);}
    .steps{grid-template-columns:1fr;}
    .member-band{grid-template-columns:1fr;}
    .loc-grid{grid-template-columns:1fr;}
    header.site .cta-group .btn-ghost{display:none;}
  }
  @media (max-width: 620px){
    section{padding:52px 0;}
    .value-grid{grid-template-columns:1fr;}
    .treat-grid{grid-template-columns:1fr;}
    .topbar .wrap{justify-content:center; text-align:center;}
    .hero h1{font-size:28px;}
    .final-cta{margin:0 16px; padding:40px 20px;}
    .sticky-mobile{display:flex;}
    body{padding-bottom:70px;}
  }
