.bs-landing{
    --mauve:#C385AE;
    --mauve-deep:#A8688F;
    --mauve-ink:#6E3F5C;
    --blush:#F8D7DA;
    --cream:#FFF8F3;
    --sky:#0094C9;
    --ink:#171213;
    --white:#FFFFFF;
    --rule: rgba(23,18,19,0.12);

    background:var(--white);
    color:var(--ink);
    font-family:'Bellota Text', Georgia, serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  .bs-landing *{box-sizing:border-box;}
  .bs-landing h1, .bs-landing h2, .bs-landing h3{
    font-family:'Bellota', 'Bellota Text', sans-serif;
    font-weight:700;
    text-wrap:balance;
    margin:0;
    color:var(--ink);
  }
  .bs-landing em{font-style:normal; color:var(--sky);}
  .bs-landing a{color:inherit;}
  .bs-landing img{max-width:100%;}

  .bs-eyebrow{
    font-family:'Bellota', sans-serif;
    font-size:12.48px;
    font-weight:700;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--mauve-ink);
  }

  /* ---------- Section shells ---------- */
  .bs-band{padding-block:clamp(44px, 6vw, 72px);}
  .bs-band-blush{background:var(--blush);}
  .bs-band-cream{background:var(--cream);}
  .bs-band-mauve{background:var(--mauve); color:var(--white);}
  .bs-band-mauve .bs-eyebrow{color:var(--white); opacity:0.85;}
  .bs-band-mauve h2{color:var(--white);}
  .bs-inner{
    max-width:880px;
    margin-inline:auto;
    padding-inline:20px;
  }
  .bs-inner-narrow{max-width:640px; margin-inline:auto; padding-inline:20px;}

  /* ---------- Hero ---------- */
  .bs-hero h1{
    font-size:clamp(33.6px, 5.2vw, 52.8px);
    line-height:1.12;
    margin-block:0.55em 0.5em;
  }
  .bs-hero-sub{
    font-size:17.28px;
    max-width:48ch;
    color:var(--ink);
    opacity:0.85;
  }
  .bs-hero-meta{
    margin-top:25.6px;
    display:flex;
    flex-wrap:wrap;
    gap:9.6px 11.2px;
    align-items:center;
  }
  .bs-pill{
    display:inline-flex;
    align-items:center;
    gap:0.4em;
    background:var(--white);
    border:1px solid var(--rule);
    border-radius:999px;
    padding:0.5em 1.1em;
    font-size:13.6px;
    font-weight:700;
    font-family:'Bellota', sans-serif;
    color:var(--mauve-ink);
  }
  .bs-hero-cta{
    margin-top:33.6px;
    display:flex;
    flex-wrap:wrap;
    gap:16px 22.4px;
    align-items:center;
  }
  .bs-btn{
    display:inline-flex;
    align-items:center;
    gap:0.55em;
    font-family:'Bellota', sans-serif;
    font-weight:700;
    font-size:15.2px;
    text-decoration:none;
    padding:0.9em 1.7em;
    border-radius:999px;
    border:1.5px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, background .15s ease, opacity .15s ease;
  }
  .bs-btn:hover{transform:translateY(-1px);}
  .bs-btn:focus-visible{outline:2px solid var(--sky); outline-offset:3px;}
  .bs-btn-mauve{background:var(--mauve); color:var(--white);}
  .bs-btn-mauve:hover{background:var(--mauve-deep);}
  .bs-btn-ghost-dark{border-color:var(--mauve); color:var(--mauve-ink);}
  .bs-btn-ghost-dark:hover{background:rgba(195,133,174,0.1);}
  .bs-btn-ghost-light{border-color:rgba(255,255,255,0.6); color:var(--white);}
  .bs-btn-ghost-light:hover{background:rgba(255,255,255,0.15);}

  .bs-scrolldown{
    margin-top:35.2px;
    font-size:13.6px;
    color:var(--mauve-ink);
    text-decoration:none;
    display:inline-block;
    font-weight:700;
  }

  /* ---------- Schedule strip ---------- */
  .bs-schedule-head{margin-bottom:28.8px;}
  .bs-schedule-head h2{font-size:clamp(24px,3vw,32px); margin-top:0.35em;}

  .bs-schedule-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:17.6px;
  }
  @media (max-width:700px){
    .bs-schedule-grid{grid-template-columns:1fr;}
  }
  .bs-sched-card{
    background:var(--white);
    border:1px solid var(--rule);
    border-radius:22px 0 22px 0;
    overflow:hidden;
    text-decoration:none;
    color:var(--ink);
    display:flex;
    flex-direction:column;
  }
  .bs-sched-tag{
    background:var(--mauve);
    color:var(--white);
    font-family:'Bellota', sans-serif;
    font-size:11.2px;
    font-weight:700;
    letter-spacing:0.1em;
    text-transform:uppercase;
    padding:0.55em 1.1em;
  }
  .bs-sched-body{padding:17.6px 20.8px 22.4px; display:flex; flex-direction:column; gap:7.2px;}
  .bs-sched-date{font-size:13.6px; opacity:0.6;}
  .bs-sched-title{
    font-family:'Bellota', sans-serif;
    font-weight:700;
    font-size:19.2px;
  }
  .bs-sched-desc{font-size:14.4px; opacity:0.8;}
  .bs-sched-arrow{margin-top:6.4px; font-size:13.12px; font-weight:700; color:var(--sky);}

  /* ---------- Instructor ---------- */
  .bs-instructor{
    display:flex;
    gap:25.6px;
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .bs-instructor-photo{
    flex:0 0 auto;
    width:132px; height:168px;
    object-fit:cover;
    border-radius:28px 0 28px 0;
    display:block;
  }
  .bs-instructor-text{flex:1 1 320px; padding-top:3.2px;}
  .bs-instructor-text h3{font-size:20.8px;}
  .bs-instructor-text p{margin:0.5em 0 0; opacity:0.85;}

  /* ---------- Course cards ---------- */
  .bs-courses{display:flex; flex-direction:column; gap:22.4px;}
  .bs-course{
    background:var(--white);
    border:1px solid var(--rule);
    border-radius:28px 0 28px 0;
    padding:clamp(24px, 4vw, 36.8px);
    scroll-margin-top:24px;
  }
  .bs-course-top{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    flex-wrap:wrap;
    gap:9.6px 16px;
    margin-bottom:4.8px;
  }
  .bs-course-date{font-size:13.6px; opacity:0.6;}
  .bs-course h3{font-size:clamp(22.4px,3vw,27.2px); margin-top:3.2px;}
  .bs-course-intro{margin:11.2px 0 17.6px; max-width:60ch; opacity:0.88;}

  .bs-course-grid{
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:25.6px;
    align-items:start;
  }
  @media (max-width:640px){
    .bs-course-grid{grid-template-columns:1fr;}
  }
  .bs-course-grid h4{
    font-family:'Bellota', sans-serif;
    font-size:12.48px;
    font-weight:700;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--mauve-ink);
    margin:0 0 0.6em;
  }
  .bs-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
  .bs-list li{
    padding-left:1.15em;
    position:relative;
    font-size:15.2px;
  }
  .bs-list li::before{
    content:"";
    position:absolute; left:0; top:0.6em;
    width:6px; height:6px;
    border-radius:50%;
    background:var(--sky);
  }
  .bs-included{
    background:var(--blush);
    border-radius:0 18px 0 18px;
    padding:17.6px 19.2px;
    display:flex;
    flex-direction:column;
    gap:8.8px;
    font-size:14.72px;
  }
  .bs-included-item{display:flex; gap:0.6em; align-items:baseline;}
  .bs-included-item span:first-child{color:var(--mauve-ink); font-weight:700;}

  .bs-course-footer{
    margin-top:24px;
    padding-top:20.8px;
    border-top:1px solid var(--rule);
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:16px;
  }
  .bs-price{font-family:'Bellota', sans-serif; font-weight:700; font-size:24px; font-variant-numeric:tabular-nums; color:var(--mauve-ink);}
  .bs-price small{font-family:'Bellota Text',sans-serif; font-size:11.2px; font-weight:700; opacity:0.55; text-transform:uppercase; letter-spacing:0.06em; display:block; color:var(--ink);}

  /* ---------- Terms ---------- */
  .bs-terms{
    background:var(--white);
    border:1px solid var(--rule);
    border-radius:28px 0 28px 0;
    padding:clamp(25.6px,4vw,35.2px);
  }
  .bs-terms h2{font-size:22.4px; margin-bottom:17.6px;}
  .bs-terms-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:17.6px 32px;
  }
  @media (max-width:600px){.bs-terms-grid{grid-template-columns:1fr;}}
  .bs-term dt{
    font-family:'Bellota', sans-serif;
    font-size:11.84px;
    font-weight:700;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--mauve-ink);
    margin-bottom:0.3em;
  }
  .bs-term dd{margin:0; font-size:15.36px;}

  /* ---------- Final CTA ---------- */
  .bs-final h2{font-size:clamp(27.2px,4vw,36.8px); margin-bottom:9.6px;}
  .bs-final p{max-width:52ch; opacity:0.92;}
  .bs-final-cta{
    margin-top:28.8px;
    display:flex;
    flex-wrap:wrap;
    gap:16px 22.4px;
    align-items:center;
  }
  .bs-final-phone{font-size:14.4px; opacity:0.85;}

  /* ---------- Footer ---------- */
  .bs-footer{
    padding-block:25.6px;
    text-align:center;
    font-size:13.12px;
    color:var(--ink);
    opacity:0.6;
  }

  /* ---------- Overrides for the surrounding theme ----------
     Two things this page has to defend against.

     `.bs-landing a{color:inherit}` above is specificity 0,1,1, which quietly
     outranks every component rule below it at 0,1,0 — so the mauve button's
     white text, the ghost button's mauve text and the schedule card's ink
     colour all lost to it, and the links rendered in the theme's link colour.
     Re-stating them as `a.<class>` (0,2,1) puts each component back in charge
     of its own colour.

     OceanWP also ships `a,a:visited{text-decoration:underline}`. The
     `a:visited` half is 0,1,1 and beats a bare `.bs-btn{text-decoration:none}`,
     which is why the buttons came out underlined. */
  .bs-landing a,
  .bs-landing a:link,
  .bs-landing a:visited,
  .bs-landing a:hover,
  .bs-landing a:focus{
    /* !important because this has to beat a theme rule we do not control, and
       a underline that survives is visible on every link on the page. Scoped to
       .bs-landing, so it cannot affect anything else on the site. */
    text-decoration:none !important;
  }
  .bs-landing a *{ text-decoration:inherit; }

  .bs-landing a.bs-btn-mauve{ color:var(--white); }
  .bs-landing a.bs-btn-ghost-dark{ color:var(--mauve-ink); }
  .bs-landing a.bs-btn-ghost-light{ color:var(--white); }
  .bs-landing a.bs-sched-card{ color:var(--ink); }
  .bs-landing a.bs-scrolldown{ color:var(--mauve-ink); }
