
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

  :root{
    --blue:#0553B8;
    --blue-deep:#03408F;
    --blue-tint:#EDF3FC;
    --blue-line:#D3E2F7;
    --ink:#1C1D1F;
    --grey:#525355;
    --grey-soft:#65666B;
    --line:#E6E7EA;
    --paper:#FFFFFF;
    --paper-2:#F7F8FA;
    --r:8px;
  }

  html{scroll-behavior:smooth}
  body{
    font-family:'Inter',-apple-system,'Segoe UI',Arial,sans-serif;
    color:var(--ink);background:var(--paper);
    line-height:1.65;-webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:1120px;margin:0 auto;padding:0 32px}

  /* NAV */
  nav{
    position:sticky;top:0;z-index:50;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-in{
    max-width:1120px;margin:0 auto;padding:0 32px;
    height:72px;display:flex;align-items:center;justify-content:space-between;
  }
  .brand{display:flex;align-items:center;gap:11px;text-decoration:none}
  .brand img{height:36px;width:auto;display:block}
  .brand-txt{font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.2px}
  .nav-links{display:flex;gap:30px;align-items:center}
  .nav-links a{color:var(--grey);text-decoration:none;font-size:14px;font-weight:500;transition:color .18s}
  .nav-links a:hover{color:var(--blue)}
  .nav-btn{
    background:var(--blue);color:#fff!important;
    padding:10px 20px;border-radius:var(--r);
    font-weight:600!important;font-size:14px!important;
    transition:background .18s;
  }
  .nav-btn:hover{background:var(--blue-deep)}

  /* HERO */
  .hero{padding:88px 0 76px;border-bottom:1px solid var(--line)}
  .hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center}
  .eyebrow{
    display:inline-flex;align-items:center;gap:8px;
    font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
    color:var(--blue);background:var(--blue-tint);
    border:1px solid var(--blue-line);
    padding:6px 14px;border-radius:100px;margin-bottom:24px;
  }
  h1{
    font-size:clamp(36px,4.4vw,54px);font-weight:800;
    letter-spacing:-1.6px;line-height:1.08;margin-bottom:20px;color:var(--ink);
  }
  h1 em{font-style:normal;color:var(--blue)}
  .lede{font-size:18px;color:var(--grey);max-width:520px;margin-bottom:32px;line-height:1.7}
  .hero-btns{display:flex;gap:12px;flex-wrap:wrap}
  .btn{
    display:inline-block;padding:14px 28px;border-radius:var(--r);
    font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;
    border:1.5px solid transparent;transition:all .18s;font-family:inherit;
  }
  .btn-solid{background:var(--blue);color:#fff}
  .btn-solid:hover{background:var(--blue-deep)}
  .btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
  .btn-ghost:hover{border-color:var(--blue);color:var(--blue)}
  .hero-mark{display:flex;justify-content:center;align-items:center}
  .hero-mark img{width:100%;max-width:300px;height:auto}

  /* STRIP */
  .strip{background:var(--paper-2);border-bottom:1px solid var(--line);padding:22px 0}
  .strip-in{
    max-width:1120px;margin:0 auto;padding:0 32px;
    display:flex;gap:40px;flex-wrap:wrap;justify-content:center;
  }
  .strip-item{
    display:flex;align-items:center;gap:9px;
    font-size:13px;font-weight:600;color:var(--grey);
  }
  .strip-item svg{width:16px;height:16px;stroke:var(--blue);fill:none;stroke-width:2.4;flex-shrink:0}

  /* SECTIONS */
  section{padding:88px 0}
  .lbl{
    font-size:12px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;
    color:var(--blue);margin-bottom:12px;
  }
  h2{
    font-size:clamp(28px,3.2vw,38px);font-weight:800;
    letter-spacing:-1px;line-height:1.15;color:var(--ink);margin-bottom:14px;
  }
  .sub{font-size:17px;color:var(--grey);max-width:560px;line-height:1.7;margin-bottom:52px}

  /* STEPS */
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
  .step{padding:32px 28px 32px 0;border-right:1px solid var(--line)}
  .step:last-child{border-right:none;padding-right:0}
  .step:not(:first-child){padding-left:28px}
  .step-n{
    font-size:13px;font-weight:800;color:var(--blue);
    letter-spacing:1px;margin-bottom:14px;
  }
  .step h3{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:8px;letter-spacing:-.2px}
  .step p{font-size:14px;color:var(--grey);line-height:1.65}

  /* SERVICES */
  .services{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .card{
    background:#fff;border:1px solid var(--line);border-radius:12px;
    padding:30px 28px;transition:border-color .18s,transform .18s;
  }
  .card:hover{border-color:var(--blue-line);transform:translateY(-2px)}
  .card-ico{
    width:42px;height:42px;border-radius:9px;background:var(--blue-tint);
    display:flex;align-items:center;justify-content:center;margin-bottom:18px;
  }
  .card-ico svg{width:20px;height:20px;stroke:var(--blue);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .card h3{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:8px;letter-spacing:-.2px}
  .card p{font-size:14px;color:var(--grey);line-height:1.7;margin-bottom:16px}
  .tag{
    display:inline-block;font-size:11px;font-weight:700;letter-spacing:.6px;
    text-transform:uppercase;color:var(--blue);background:var(--blue-tint);
    padding:4px 10px;border-radius:5px;
  }

  /* WHY */
  .why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px}
  .why-item{border-top:2px solid var(--blue);padding-top:20px}
  .why-num{
    font-size:38px;font-weight:800;color:var(--blue);
    letter-spacing:-1.6px;line-height:1;margin-bottom:10px;
  }
  .why-item h3{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:6px}
  .why-item p{font-size:14px;color:var(--grey);line-height:1.65}

  /* CLIENTS */
  .clients{
    background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    padding:52px 0;text-align:center;
  }
  .clients-lbl{
    font-size:12px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;
    color:var(--grey-soft);margin-bottom:26px;
  }
  .clients-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
  .pill{
    background:#fff;border:1px solid var(--line);border-radius:100px;
    padding:11px 26px;font-size:14px;font-weight:600;color:var(--ink);
  }
  .pill.next{border-style:dashed;color:var(--grey-soft);font-weight:500}

  /* BOOKING */
  .booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
  .checks{list-style:none;display:flex;flex-direction:column;gap:13px;margin-top:8px}
  .checks li{display:flex;gap:11px;font-size:15px;color:var(--ink);align-items:flex-start}
  .checks svg{width:18px;height:18px;stroke:var(--blue);fill:none;stroke-width:2.6;flex-shrink:0;margin-top:3px}

  .form{
    background:#fff;border:1px solid var(--line);border-radius:14px;
    padding:34px;box-shadow:0 1px 3px rgba(28,29,31,.04),0 8px 32px rgba(5,83,184,.06);
  }
  .form h3{font-size:19px;font-weight:700;color:var(--ink);margin-bottom:4px;letter-spacing:-.3px}
  .form-sub{font-size:13px;color:var(--grey-soft);margin-bottom:26px}
  .fg{margin-bottom:16px}
  .fr{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  label{
    display:block;font-size:12px;font-weight:600;color:var(--grey);
    margin-bottom:6px;letter-spacing:.2px;
  }
  input,select,textarea{
    width:100%;padding:11px 13px;border:1.5px solid var(--line);
    border-radius:7px;font-size:14px;color:var(--ink);background:#fff;
    outline:none;transition:border-color .18s,box-shadow .18s;font-family:inherit;
  }
  input:focus,select:focus,textarea:focus{
    border-color:var(--blue);box-shadow:0 0 0 3px rgba(5,83,184,.10);
  }
  textarea{resize:vertical;min-height:82px}
  select{cursor:pointer}
  .submit{
    width:100%;padding:14px;background:var(--blue);color:#fff;
    border:none;border-radius:7px;font-size:15px;font-weight:600;
    cursor:pointer;transition:background .18s;margin-top:6px;font-family:inherit;
  }
  .submit:hover{background:var(--blue-deep)}
  .fnote{font-size:12px;color:var(--grey-soft);text-align:center;margin-top:12px}
  .ok{
    display:none;text-align:center;padding:34px 20px;
  }
  .ok-ico{
    width:52px;height:52px;border-radius:50%;background:var(--blue-tint);
    display:flex;align-items:center;justify-content:center;margin:0 auto 16px;
  }
  .ok-ico svg{width:24px;height:24px;stroke:var(--blue);fill:none;stroke-width:3}
  .ok h4{font-size:18px;font-weight:700;color:var(--ink);margin-bottom:8px}
  .ok p{font-size:14px;color:var(--grey);line-height:1.65}

  /* FOOTER */
  footer{background:var(--ink);padding:52px 0 32px;color:#fff}
  .foot-top{
    display:flex;justify-content:space-between;align-items:center;
    flex-wrap:wrap;gap:24px;padding-bottom:32px;
    border-bottom:1px solid rgba(255,255,255,.10);
  }
  .foot-brand{display:flex;align-items:center;gap:11px}
  .foot-brand img{height:34px;width:auto}
  .foot-brand span{font-size:16px;font-weight:700;color:#fff}
  .foot-links{display:flex;gap:26px;flex-wrap:wrap}
  .foot-links a{color:#D0D3D8;font-size:14.5px;text-decoration:none;transition:color .18s}
  .foot-links a:hover{color:#fff}
  .foot-btm{
    padding-top:24px;display:flex;justify-content:space-between;
    flex-wrap:wrap;gap:12px;
    font-size:13.5px;color:#C4C7CC;
  }

  /* COURSE CARDS (two levels) */
  .course-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:48px}
  .course-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 28px;display:flex;flex-direction:column}
  .course-card-feature{border-color:var(--blue);box-shadow:0 8px 32px rgba(5,83,184,.10)}
  .course-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:12px}
  .course-card-top h3{font-size:19px;font-weight:700;color:var(--ink);letter-spacing:-.3px}
  .hours{font-size:13px;font-weight:700;color:var(--blue);background:var(--blue-tint);border:1px solid var(--blue-line);padding:4px 12px;border-radius:100px;white-space:nowrap;flex-shrink:0}
  .course-card p{font-size:14.5px;color:var(--grey);line-height:1.7;margin-bottom:18px;flex-grow:1}
  .tag-solid{background:var(--blue);color:#fff}

  /* GROUP SIZE NOTE */
  .group-note{display:flex;gap:14px;align-items:flex-start;background:var(--blue-tint);border:1px solid var(--blue-line);border-radius:12px;padding:20px 24px;margin-bottom:48px}
  .group-note svg{width:22px;height:22px;stroke:var(--blue);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-top:1px}
  .group-note span{font-size:14.5px;color:var(--grey);line-height:1.7}
  .group-note strong{color:var(--blue-deep);font-weight:700}

  /* COURSE LEAD */
  .course-lead{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;margin-bottom:48px}
  .course-lead-text h3{font-size:20px;font-weight:700;color:var(--ink);margin-bottom:12px;letter-spacing:-.3px}
  .course-lead-text p{font-size:15px;color:var(--grey);line-height:1.75}
  .learn-list{list-style:none;display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 28px}
  .learn-list li{display:flex;gap:11px;font-size:15px;color:var(--ink);align-items:flex-start;line-height:1.5}
  .learn-list svg{width:18px;height:18px;stroke:var(--blue);fill:none;stroke-width:2.6;flex-shrink:0;margin-top:3px}
  .offer-note{font-size:13px;font-weight:700;letter-spacing:.4px;color:var(--grey);text-transform:uppercase;margin-bottom:20px;padding-top:8px;border-top:1px solid var(--line);padding-top:28px}

  /* WHY 3-up */
  .why-grid-3{grid-template-columns:repeat(3,1fr)}
  .why-grid-3 .why-num{font-size:46px;letter-spacing:-2px;line-height:1}
  .why-grid-3 .why-num.txt{font-size:30px;letter-spacing:-.5px}
  .why-grid-3 .why-item{border-top-width:3px;padding-top:22px}
  .why-grid-3 .why-item h3{font-size:17px}
  .why-grid-3 .why-item p{font-size:14.5px}

  /* BRAND PILLS + fine */
  .pill-brand{background:var(--blue-tint);border-color:var(--blue-line);color:var(--blue-deep);font-weight:700}
  .clients-fine{margin-top:22px;font-size:13px;color:var(--grey-soft);line-height:1.7;max-width:620px;margin-left:auto;margin-right:auto}

  /* FOOTER CONTACT + FINE */
  .foot-contact{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:32px 0;border-bottom:1px solid rgba(255,255,255,.14)}
  .foot-contact-lbl{font-size:12px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#8FC2F9;margin-bottom:10px}
  .foot-contact-block p{font-size:14.5px;color:#D0D3D8;line-height:1.7;max-width:360px}
  .foot-email{font-size:20px;font-weight:700;color:#fff;text-decoration:none;transition:color .18s}
  .foot-email:hover{color:#8FC2F9}
  .foot-fine{padding-top:20px;font-size:12.5px;color:#B8BBC1;line-height:1.75;max-width:960px}

  /* RESPONSIVE */
  @media(max-width:900px){
    .hero-grid{grid-template-columns:1fr;gap:40px}
    .hero-mark{order:-1;justify-content:flex-start}
    .hero-mark img{max-width:180px}
    .steps{grid-template-columns:1fr 1fr}
    .step{border-right:none;border-bottom:1px solid var(--line);padding:26px 0!important}
    .step:nth-child(odd){padding-right:24px!important}
    .step:nth-child(even){padding-left:24px!important;border-left:1px solid var(--line)}
    .cards{grid-template-columns:1fr 1fr}
    .course-cards{grid-template-columns:1fr}
    .why-grid{grid-template-columns:1fr 1fr;gap:28px}
    .why-grid-3{grid-template-columns:1fr}
    .course-lead{grid-template-columns:1fr;gap:28px}
    .foot-contact{grid-template-columns:1fr;gap:28px}
    .booking-grid{grid-template-columns:1fr;gap:44px}
  }
  @media(max-width:640px){
    .wrap,.nav-in,.strip-in{padding:0 20px}
    .nav-links a:not(.nav-btn){display:none}
    section{padding:60px 0}
    .hero{padding:56px 0 52px}
    .steps,.cards,.why-grid{grid-template-columns:1fr}
    .step{padding:24px 0!important;border-left:none!important}
    .fr{grid-template-columns:1fr}
    .form{padding:26px}

    /* Larger, higher-contrast text on small screens */
    .lede{font-size:17px}
    .sub{font-size:16px}
    .lbl,.clients-lbl,.foot-contact-lbl{font-size:13px;letter-spacing:1.2px}
    .strip-item{font-size:14px}
    .step p,.card p,.why-item p,.course-card p{font-size:15px;color:var(--grey)}
    .learn-list li,.checks li,.group-note span{font-size:15px}
    .tag{font-size:12px}
    .hours{font-size:13.5px}
    label{font-size:13px}
    input,select,textarea{font-size:16px}
    .form-sub{font-size:14px}
    .fnote{font-size:13px}
    .clients-fine{font-size:13.5px}
    .foot-links a,.foot-contact-block p{font-size:15.5px;color:#DDE0E4}
    .foot-btm{font-size:14px;color:#D0D3D8}
    .foot-fine{font-size:13.5px;color:#C4C7CC}
    .foot-contact-lbl{font-size:13px;color:#A8CEF9}
  }
  @media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
    outline:2px solid var(--blue);outline-offset:2px;
  }


  /* CLIENT PHOTOS */
  .client-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:20px;
    max-width:820px;margin:0 auto;
  }
  .client-card{
    position:relative;display:block;overflow:hidden;
    border-radius:14px;border:1px solid var(--line);
    background:#fff;text-decoration:none;color:inherit;
    min-height:220px;
  }
  .client-card img.photo{
    width:100%;height:220px;object-fit:cover;display:block;
  }
  .client-card .overlay{
    position:absolute;inset:auto 0 0 0;
    padding:16px 16px 14px;
    background:linear-gradient(transparent,rgba(16,18,22,.72));
    display:flex;align-items:flex-end;gap:12px;
  }
  .client-card .logo-badge{
    background:#fff;border-radius:10px;padding:8px 10px;
    display:flex;align-items:center;justify-content:center;
    height:52px;flex-shrink:0;
    box-shadow:0 4px 16px rgba(0,0,0,.12);
  }
  .client-card .logo-badge img{height:34px;width:auto;max-width:120px;object-fit:contain}
  .client-card .logo-badge.dark{background:#111}
  .client-card .client-name{
    color:#fff;font-size:16px;font-weight:700;letter-spacing:-.2px;
    text-shadow:0 1px 8px rgba(0,0,0,.35);
  }

  /* WEEK CALENDAR */
  .cal{border:1.5px solid var(--line);border-radius:12px;padding:14px;background:#fff}
  .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  .cal-head button{
    width:34px;height:34px;border:1.5px solid var(--line);background:#fff;
    border-radius:8px;cursor:pointer;font-size:16px;color:var(--ink);
  }
  .cal-head strong{font-size:15px;font-weight:700}
  .cal-weekdays,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
  .cal-weekdays span,.cal-grid button{text-align:center;font-size:12px}
  .cal-weekdays span{color:var(--grey-soft);font-weight:700;padding:6px 0}
  .cal-grid button{
    border:0;background:transparent;min-height:38px;border-radius:8px;
    cursor:pointer;font:inherit;font-weight:600;color:var(--ink);
  }
  .cal-grid button:hover:not(:disabled){background:var(--blue-tint)}
  .cal-grid button:disabled{color:#c5c6ca;cursor:default}
  .cal-grid button.in-week{background:var(--blue-tint);color:var(--blue-deep)}
  .cal-grid button.selected{background:var(--blue);color:#fff}
  .cal-choice{margin-top:10px;font-size:13px;font-weight:600;color:var(--ink)}
  .check{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:14px;font-weight:600}
  .check input{width:auto}
  .form-error{display:none;background:#fde8e6;color:#b42318;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:600;margin-bottom:14px}
  .form-error.show{display:block}

  .ok.show{display:block}

  @media(max-width:640px){
    .client-grid{grid-template-columns:1fr}
    .client-card img.photo{height:200px}
    .cal-grid button{min-height:42px;font-size:14px}
    .nav-btn{padding:10px 16px}
  }
