/* ============================================================
   CLUB C EDUCATION — Design System
   Burgundy #720026 · Pink #FAD5E5 · Raspberry #DB2955 · Blush #F9E9EC
   Headings: Montserrat · Body: Open Sans
   ============================================================ */
:root {
  --burgundy: #720026;
  --burgundy-dark: #23000d;
  --burgundy-deep: #3a0014;
  --pink: #FAD5E5;
  --raspberry: #DB2955;
  --blush: #F9E9EC;
  --ink: #1D0F0F;
  --white: #ffffff;
  --radius-card: 20px;
  --shadow-card: 0 18px 45px rgba(114, 0, 38, .10);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Open Sans', sans-serif;
  color: var(--ink);
  background: var(--white);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .btn, .tag-pill, .nav-links a {
  font-family: 'Montserrat', sans-serif;
}
h1, h2 { text-transform: uppercase; font-weight: 800; line-height: 1.08; letter-spacing: .5px; }
h1 { font-size: clamp(2.4rem, 5vw, 4rem); }
h2 { font-size: clamp(1.9rem, 3.6vw, 2.9rem); }
h3 { font-weight: 700; font-size: 1.25rem; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
.accent { color: var(--raspberry); }
.accent-pink { color: var(--pink); }
.wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-block;
  padding: 15px 34px;
  border-radius: 999px;
  font-weight: 700;
  font-size: .8rem;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
  cursor: pointer;
  border: 2px solid transparent;
}
.btn:hover { transform: translateY(-2px); }
.btn-solid { background: var(--burgundy); color: #fff; box-shadow: 0 10px 25px rgba(114,0,38,.35); }
.btn-solid:hover { background: #fff; color: var(--burgundy); border-color: var(--burgundy); }
.btn-pink { background: var(--pink); color: var(--burgundy); box-shadow: 0 10px 25px rgba(0,0,0,.25); }
.btn-pink:hover { background: #fff; color: var(--burgundy); }
.btn-outline { border-color: currentColor; color: #fff; background: transparent; }
.btn-outline:hover { background: #fff; color: var(--burgundy); border-color: #fff; }
.btn-outline-dark { border-color: var(--burgundy); color: var(--burgundy); background: transparent; }
.btn-outline-dark:hover { background: var(--burgundy); color: #fff; }

/* ---------- Tag pill ---------- */
.tag-pill {
  display: inline-block;
  background: #fff;
  color: var(--raspberry);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  padding: 8px 20px;
  border-radius: 999px;
  margin-bottom: 22px;
}
.tag-pill.on-light { background: var(--white); box-shadow: 0 6px 18px rgba(114,0,38,.10); }
.tag-pill.outline { background: transparent; border: 1px solid rgba(219,41,85,.45); }

/* ---------- Top utility bar ---------- */
.topbar {
  background: var(--burgundy-dark);
  color: rgba(255,255,255,.85);
  font-size: .74rem;
  letter-spacing: .4px;
  padding: 9px 0;
}
.topbar .wrap { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.topbar b { color: var(--pink); font-weight: 600; }
.topbar a:hover { color: var(--pink); }

/* ---------- Header / floating pill nav ---------- */
header.site-header {
  position: sticky; top: 0; z-index: 60;
  padding: 14px 0;
  background: transparent;
}
.on-dark-page header.site-header { background: linear-gradient(var(--burgundy-dark), rgba(35,0,13,0)); }
.navpill {
  max-width: 1160px; margin: 0 auto;
  background: #fff;
  border-radius: 999px;
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px 8px 8px;
  box-shadow: 0 12px 35px rgba(0,0,0,.16);
}
.navpill .logo { display: flex; align-items: center; gap: 10px; padding-left: 6px; }
.navpill .logo img { width: 46px; height: 46px; object-fit: contain; }
.navpill .logo span { font-family: 'Montserrat'; font-weight: 800; font-size: .95rem; letter-spacing: 1px; color: var(--burgundy); white-space: nowrap; }
.nav-links { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.nav-links a {
  font-size: .74rem; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase;
  padding: 11px 15px; border-radius: 999px; color: var(--ink);
  transition: color .15s ease, background .15s ease;
  white-space: nowrap;
}
.nav-links a:hover { color: var(--raspberry); }
.nav-links a.active { color: var(--raspberry); }
.nav-links a.login { color: var(--burgundy); }
.nav-links .btn { padding: 13px 26px; margin-left: 6px; }
.nav-links a.btn-solid { color: #fff; }
.nav-links a.btn-solid:hover { color: var(--burgundy); background: #fff; border-color: var(--burgundy); }
.nav-toggle { display: none; }
.hamburger { display: none; }

/* ---------- Hero ---------- */
.hero {
  background: radial-gradient(120% 140% at 85% -20%, #a4204f 0%, var(--burgundy-deep) 45%, var(--burgundy-dark) 100%);
  color: #fff;
  padding: 70px 0 110px;
  position: relative;
  overflow: hidden;
}
.hero::after {  /* big soft circle motif */
  content: ""; position: absolute; right: -180px; bottom: -260px;
  width: 560px; height: 560px; border-radius: 50%;
  background: radial-gradient(circle, rgba(250,213,229,.16), rgba(250,213,229,0) 70%);
}
.hero .wrap { display: grid; grid-template-columns: 1.15fr .85fr; gap: 60px; align-items: center; position: relative; z-index: 1; }
.hero p.lead { color: rgba(255,255,255,.82); max-width: 480px; margin: 26px 0 34px; font-size: 1.02rem; }
.hero .cta-row { display: flex; gap: 14px; flex-wrap: wrap; }
.hero-img { position: relative; justify-self: end; }
.hero-img .arch {
  width: min(400px, 100%); aspect-ratio: 4 / 5.1; object-fit: cover;
  border-radius: 260px 260px 24px 24px;
  border: 1px solid rgba(250,213,229,.35);
}
.badge-card {
  position: absolute; left: -46px; bottom: 34px;
  background: #fff; color: var(--ink);
  border-radius: 16px; padding: 14px 22px;
  box-shadow: 0 16px 40px rgba(0,0,0,.35);
}
.badge-card strong { font-family: 'Montserrat'; font-size: 1.15rem; color: var(--burgundy); display: block; }
.badge-card span { font-size: .68rem; letter-spacing: 1.2px; text-transform: uppercase; color: #7c6a6e; }

/* ---------- Ticker ---------- */
.ticker { background: var(--burgundy); color: #fff; overflow: hidden; padding: 13px 0; }
.ticker-track { display: flex; gap: 0; width: max-content; animation: tickermove 55s linear infinite; }
.ticker-track span {
  font-family: 'Montserrat'; font-weight: 700; font-size: .76rem;
  letter-spacing: 2px; text-transform: uppercase; white-space: nowrap; padding: 0 18px;
}
.ticker-track span::after { content: "●"; color: var(--pink); font-size: .55rem; margin-left: 36px; vertical-align: 2px; }
@keyframes tickermove { to { transform: translateX(-50%); } }

/* ---------- Section scaffolding ---------- */
section.band { padding: 90px 0; position: relative; overflow: hidden; }
.band-blush { background: var(--blush); }
.band-pink-grad { background: linear-gradient(160deg, #fdeef5, var(--pink)); }
.band-dark { background: var(--burgundy-dark); color: #fff; }
.center { text-align: center; }
.section-intro { max-width: 640px; margin: 14px auto 50px; color: #5c4a4f; }
.band-dark .section-intro { color: rgba(255,255,255,.75); }

/* decorative circles (Circles motif in Club C colours) */
.deco-circle { position: absolute; border-radius: 50%; pointer-events: none; }
.deco-burg { background: var(--burgundy); }
.deco-pink { background: var(--pink); }
.deco-rasp { background: var(--raspberry); }

/* ---------- About / big white card ---------- */
.card-panel {
  background: #fff; border-radius: 28px; box-shadow: var(--shadow-card);
  padding: 64px; position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.05fr .95fr; gap: 54px; align-items: center;
}
.card-panel .img-round img { border-radius: 24px; width: 100%; object-fit: cover; }
.card-panel p { margin-bottom: 16px; color: #4a383d; }
.card-panel p strong { color: var(--burgundy); }

/* ---------- Offer cards (duotone, Circles-style) ---------- */
.offer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.offer-card {
  position: relative; border-radius: var(--radius-card); overflow: hidden;
  min-height: 320px; display: flex; align-items: flex-start;
  padding: 34px; color: #fff;
  background: var(--burgundy);
  transition: transform .25s ease, box-shadow .25s ease;
  box-shadow: var(--shadow-card);
}
.offer-card:hover { transform: translateY(-6px); box-shadow: 0 26px 60px rgba(114,0,38,.28); }
.offer-card .bg {
  position: absolute; inset: 0; object-fit: cover; width: 100%; height: 100%;
  mix-blend-mode: luminosity; opacity: .38; transition: opacity .25s ease;
}
.offer-card:hover .bg { opacity: .5; }
.offer-card .inner { position: relative; z-index: 1; margin-top: auto; }
.offer-card h3 { font-size: 1.55rem; font-weight: 800; margin-bottom: 6px; }
.offer-card p { font-size: .88rem; color: rgba(255,255,255,.85); margin-bottom: 14px; max-width: 30ch; }
.offer-card .more { font-family: 'Montserrat'; font-size: .68rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--pink); }
.offer-card .more::after { content: " →"; }

/* ---------- Mentoring feature (home) ---------- */
.mini-mentors { display: flex; flex-direction: column; gap: 12px; }
.mini-mentor {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(250,213,229,.18);
  border-radius: 16px; padding: 16px 22px;
  transition: background .18s ease, transform .18s ease, border-color .18s ease;
}
.mini-mentor:hover { background: rgba(250,213,229,.12); transform: translateX(4px); border-color: rgba(250,213,229,.4); }
.mini-mentor b { font-family: 'Montserrat'; font-size: .95rem; color: var(--pink); display: block; }
.mini-mentor span { font-size: .8rem; color: rgba(255,255,255,.7); }
.mini-mentor em { font-family: 'Montserrat'; font-style: normal; font-weight: 800; font-size: 1.05rem; color: #fff; white-space: nowrap; }
@media (max-width: 980px) {
  .mentor-feature { grid-template-columns: 1fr !important; }
}

/* ---------- Offer card watermark + gallery strip ---------- */
.offer-card .watermark {
  position: absolute; right: -30px; bottom: -40px; width: 190px; opacity: .16;
  filter: brightness(0) invert(1);
}
.gallery-strip {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; margin-top: 10px;
}
.gallery-strip img {
  width: 100%; aspect-ratio: 3 / 4; object-fit: cover;
  border-radius: 16px; box-shadow: var(--shadow-card);
  transition: transform .2s ease;
}
.gallery-strip img:nth-child(even) { transform: translateY(16px); }
.gallery-strip img:hover { transform: translateY(-4px); }
@media (max-width: 980px) {
  .gallery-strip { grid-template-columns: repeat(3, 1fr); }
  .gallery-strip img:nth-child(even) { transform: none; }
}
@media (max-width: 560px) { .gallery-strip { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Testimonials ---------- */
.quote-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; align-items: stretch; }
.quote-card {
  background: #fff; border-radius: var(--radius-card); padding: 34px;
  box-shadow: var(--shadow-card); display: flex; flex-direction: column; gap: 18px;
  border-top: 4px solid var(--pink);
}
.quote-card .stars { color: var(--raspberry); letter-spacing: 3px; font-size: .85rem; }
.quote-card blockquote { font-size: .93rem; color: #4a383d; flex: 1; }
.quote-who { display: flex; align-items: center; gap: 13px; }
.quote-who img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.quote-who b { font-family: 'Montserrat'; font-size: .88rem; color: var(--burgundy); display: block; line-height: 1.2; }
.quote-who span { font-size: .76rem; color: #8a767b; }

/* ---------- CTA band ---------- */
.cta-panel {
  background: var(--burgundy);
  border-radius: 28px; color: #fff; overflow: hidden;
  display: grid; grid-template-columns: 1.1fr .9fr; align-items: stretch;
  position: relative;
  box-shadow: 0 26px 70px rgba(114, 0, 38, .18);
  border: 1px solid rgba(114, 0, 38, .12);
}
.cta-panel .txt { display: flex; flex-direction: column; justify-content: center; }
/* tinted band so the card's white half always reads as part of the container */
section.band#join { background: linear-gradient(180deg, #fff 0%, #fdf3f6 55%); }
.cta-panel .txt { padding: 64px; position: relative; z-index: 1; }
.cta-panel .txt p { color: rgba(255,255,255,.82); margin: 18px 0 30px; max-width: 46ch; }
.cta-panel img { width: 100%; height: 100%; object-fit: contain; object-position: center; min-height: 320px; background: #fff; padding: 44px; box-sizing: border-box; align-self: stretch; }
.cta-panel::before {
  content: ""; position: absolute; left: -90px; top: -90px; width: 260px; height: 260px;
  border-radius: 50%; background: rgba(250,213,229,.12);
}

/* ---------- Page hero (inner pages) ---------- */
.page-hero {
  background: radial-gradient(120% 160% at 80% -30%, #a4204f 0%, var(--burgundy-deep) 45%, var(--burgundy-dark) 100%);
  color: #fff; padding: 64px 0 84px; text-align: center; position: relative; overflow: hidden;
}
.page-hero p { color: rgba(255,255,255,.8); max-width: 620px; margin: 20px auto 0; }
.page-hero .cta-row { margin-top: 30px; display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ---------- Pricing / mentor cards ---------- */
.price-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 24px; }
.price-card {
  background: #fff; border-radius: var(--radius-card); padding: 34px 30px;
  box-shadow: var(--shadow-card); display: flex; flex-direction: column; gap: 10px;
  border-top: 4px solid var(--burgundy);
}
.price-card.alt { border-top-color: var(--raspberry); }
.price-card .role { font-size: .72rem; letter-spacing: 1.8px; text-transform: uppercase; color: var(--raspberry); font-weight: 700; font-family: 'Montserrat'; }
.price-card h3 { color: var(--burgundy); font-size: 1.15rem; line-height: 1.35; }
.price-card .focus { font-size: .85rem; color: #6b585d; flex: 1; }
.price-card .amount { font-family: 'Montserrat'; font-weight: 800; font-size: 1.7rem; color: var(--ink); }
.price-card .amount small { font-size: .8rem; font-weight: 600; color: #8a767b; }
.price-card .btn { align-self: flex-start; margin-top: 6px; padding: 12px 26px; }

/* ---------- FAQ ---------- */
.faq { max-width: 780px; margin: 0 auto; }
.faq details {
  background: #fff; border-radius: 14px; box-shadow: var(--shadow-card);
  margin-bottom: 14px; overflow: hidden;
}
.faq summary {
  cursor: pointer; list-style: none; padding: 20px 26px;
  font-family: 'Montserrat'; font-weight: 700; font-size: .95rem; color: var(--burgundy);
  display: flex; justify-content: space-between; align-items: center; gap: 14px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 1.3rem; color: var(--raspberry); transition: transform .2s ease; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq .a { padding: 0 26px 22px; font-size: .92rem; color: #4a383d; }

/* ---------- Forms ---------- */
.form-panel { background: #fff; border-radius: 24px; box-shadow: var(--shadow-card); padding: 46px; max-width: 720px; margin: 0 auto; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-grid .full { grid-column: 1 / -1; }
.form-panel label { font-family: 'Montserrat'; font-weight: 700; font-size: .72rem; letter-spacing: 1.4px; text-transform: uppercase; color: var(--burgundy); display: block; margin-bottom: 7px; }
.form-panel input, .form-panel select, .form-panel textarea {
  width: 100%; padding: 13px 16px; border: 1.5px solid #eeD5de; border-radius: 12px;
  font-family: 'Open Sans'; font-size: .92rem; color: var(--ink); background: #fffbfd;
}
.form-panel input:focus, .form-panel select:focus, .form-panel textarea:focus { outline: 2px solid var(--raspberry); border-color: transparent; }

/* ---------- Footer ---------- */
footer.site-footer { background: var(--burgundy-dark); color: rgba(255,255,255,.75); padding: 74px 0 0; font-size: .9rem; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 54px; }
.footer-grid h4 { color: var(--pink); font-size: .78rem; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 18px; }
.footer-grid ul { list-style: none; }
.footer-grid li { margin-bottom: 10px; }
.footer-grid a:hover { color: var(--pink); }
.footer-brand img { width: 84px; margin-bottom: 16px; background: #fff; border-radius: 50%; padding: 6px; }
.footer-brand p { max-width: 30ch; font-size: .85rem; }
.footer-bottom {
  border-top: 1px solid rgba(250,213,229,.15);
  padding: 22px 0; font-size: .78rem;
  display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap;
}
.footer-bottom a { color: var(--pink); }

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
  .hero .wrap, .card-panel, .cta-panel { grid-template-columns: 1fr; }
  .hero-img { justify-self: center; }
  .badge-card { left: 8px; }
  .offer-grid, .quote-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .card-panel { padding: 36px; }
  .cta-panel .txt { padding: 44px 34px; }

  .nav-links {
    display: none;
    position: absolute; top: calc(100% + 8px); left: 16px; right: 16px;
    background: #fff; border-radius: 22px; box-shadow: 0 18px 45px rgba(0,0,0,.22);
    flex-direction: column; align-items: stretch; padding: 16px; gap: 4px;
  }
  .nav-links a { text-align: center; }
  .nav-toggle:checked ~ .nav-links { display: flex; }
  .hamburger {
    display: flex; flex-direction: column; gap: 5px; margin-left: auto;
    padding: 14px; cursor: pointer;
  }
  .hamburger span { width: 22px; height: 2.5px; background: var(--burgundy); border-radius: 2px; }
  .navpill { position: relative; }
}
@media (max-width: 560px) {
  .topbar .wrap div:first-child { display: none; }
  .topbar .wrap { justify-content: center; }
  .form-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  section.band { padding: 60px 0; }
}


/* ---------- WordPress integration ---------- */
body.admin-bar header.site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar header.site-header { top: 46px; } }
.generic-content { background: #fff; border-radius: 28px; box-shadow: var(--shadow-card); padding: 56px; max-width: 900px; margin: 0 auto; }
.generic-content h2, .generic-content h3 { color: var(--burgundy); margin: 1.2em 0 .5em; }
.generic-content p, .generic-content ul, .generic-content ol { margin-bottom: 1em; }
.generic-content a { color: var(--raspberry); text-decoration: underline; }
.generic-content input[type=submit], .generic-content button { background: var(--burgundy); color: #fff; border: 0; border-radius: 999px; padding: 13px 30px; font-family: 'Montserrat'; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; font-size: .78rem; cursor: pointer; }
.wl-thanks { background: #f2fdf5; border: 1.5px solid #0a875a; color: #0a875a; border-radius: 12px; padding: 14px 20px; margin-bottom: 20px; font-weight: 600; }


/* ---------- LearnDash / WooCommerce integration ---------- */
.generic-content .ld-item-list-item, .generic-content .ld-course-list-items .ld_course_grid { border-radius: 14px; }
.generic-content .ld-button, .generic-content a.button, .generic-content .woocommerce-button {
  background: var(--burgundy) !important; color: #fff !important; border-radius: 999px !important;
  font-family: 'Montserrat', sans-serif !important; text-transform: uppercase; letter-spacing: 1.2px; font-size: .78rem !important;
}
.generic-content .ld-progress-bar .ld-progress-bar-percentage { background: var(--raspberry) !important; }
.generic-content .ld-tabs .ld-tabs-navigation .ld-tab.ld-active { border-bottom-color: var(--burgundy); color: var(--burgundy); }
.learndash-wrapper .ld-focus-header { background: var(--burgundy-dark); }
body.woocommerce-page .generic-content { max-width: 1100px; }


/* ---------- Desktop dropdown menus ---------- */
.has-drop { position: relative; display: flex; }
.has-drop > a { position: relative; }
.drop { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); padding-top: 16px; display: none; z-index: 80; }
.has-drop:hover .drop, .has-drop:focus-within .drop { display: block; }
.drop-inner { background: #fff; border-radius: 18px; box-shadow: 0 24px 60px rgba(0,0,0,.20); padding: 12px; min-width: 300px; }
.drop-inner a { display: block; padding: 12px 16px; border-radius: 12px; text-transform: none; letter-spacing: 0; }
.drop-inner a b { display: block; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: .86rem; color: var(--burgundy); letter-spacing: .3px; }
.drop-inner a span { display: block; font-family: 'Open Sans', sans-serif; font-size: .76rem; color: #8a767b; margin-top: 2px; }
.drop-inner a:hover { background: var(--blush); }
.drop-inner a:hover b { color: var(--raspberry); }
@media (max-width: 980px) {
  .has-drop { flex-direction: column; }
  .drop { display: none !important; }
}


/* ---------- Mentor photos ---------- */
.price-card .mentor-photo {
  width: 86px; height: 86px; border-radius: 50%; object-fit: cover; object-position: center top;
  border: 3px solid var(--pink); margin-bottom: 6px;
}


/* ---------- Uniform video player ---------- */
.panel-video {
  width: 100%; max-width: 430px; aspect-ratio: 4 / 5; object-fit: cover;
  border-radius: 24px; display: block; margin: 0 auto; background: var(--burgundy-dark);
}



/* ---------- Wait-list application panel ---------- */
.apply-panel {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 370px 1fr;
  background: #fff;
  border-radius: 28px;
  box-shadow: 0 26px 70px rgba(114, 0, 38, .16);
  overflow: hidden;
}
.apply-side {
  background: radial-gradient(130% 120% at 15% 0%, #8d0730 0%, var(--burgundy) 45%, var(--burgundy-deep) 100%);
  color: #fff;
  padding: 54px 42px;
  position: relative;
  display: flex; flex-direction: column;
}
.apply-side::after {
  content: ""; position: absolute; right: -90px; bottom: -110px;
  width: 260px; height: 260px; border-radius: 50%;
  background: rgba(250, 213, 229, .10);
}
.apply-side > * { position: relative; z-index: 1; }
.apply-side h2 { font-size: clamp(1.7rem, 2.4vw, 2.2rem); margin-bottom: 18px; }
.apply-side p { color: rgba(255, 255, 255, .8); font-size: .93rem; }
.apply-points { list-style: none; margin: 26px 0 0; }
.apply-points li {
  position: relative; padding-left: 30px; margin-bottom: 14px;
  font-size: .89rem; color: rgba(255, 255, 255, .9); line-height: 1.5;
}
.apply-points li::before {
  content: ""; position: absolute; left: 0; top: 3px;
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--pink);
}
.apply-points li::after {
  content: ""; position: absolute; left: 6px; top: 8px;
  width: 6px; height: 3px;
  border-left: 2px solid var(--burgundy); border-bottom: 2px solid var(--burgundy);
  transform: rotate(-45deg);
}
.apply-contact {
  margin-top: auto; padding-top: 30px;
  font-size: .82rem; color: rgba(255, 255, 255, .65); line-height: 1.7;
}
.apply-contact a { color: var(--pink); font-weight: 600; }
.apply-contact a:hover { text-decoration: underline; }

.apply-form {
  padding: 46px 40px;
  display: flex; align-items: center; justify-content: center;
  background: #fff;
}
.waitlist-embed { width: 100%; max-width: 780px; margin: 0 auto; }
/* centre the form's own logo bar inside the white panel */
.waitlist-embed .csf-logobar { text-align: center; }

@media (max-width: 1080px) {
  .apply-panel { grid-template-columns: 1fr; }
  .apply-side { padding: 44px 34px; }
  .apply-contact { margin-top: 26px; padding-top: 0; }
  .apply-form { padding: 38px 26px; }
}
@media (max-width: 560px) {
  .apply-panel { border-radius: 22px; }
  .apply-side { padding: 36px 24px; }
  .apply-form { padding: 28px 14px; }
}


/* ---------- WooCommerce (product / cart / checkout) ---------- */
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce ul.products li.product .price {
  color: var(--burgundy) !important;
  font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 1.55rem;
}
.woocommerce div.product .product_title { color: var(--burgundy); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce div.product form.cart .button, .woocommerce #respond input#submit,
.woocommerce .widget_shopping_cart a.button, .wc-block-components-button {
  background: var(--burgundy) !important;
  color: #fff !important;
  border: 2px solid var(--burgundy) !important;
  border-radius: 999px !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  font-size: .78rem !important;
  letter-spacing: 1.4px !important;
  text-transform: uppercase !important;
  padding: 14px 32px !important;
  line-height: 1.2 !important;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover,
.woocommerce div.product form.cart .button:hover, .woocommerce #respond input#submit:hover,
.wc-block-components-button:hover {
  background: #fff !important; color: var(--burgundy) !important; transform: translateY(-2px);
}
.woocommerce .quantity .qty {
  border: 1.5px solid #eed5de; border-radius: 10px; padding: 12px 8px;
  font-family: 'Open Sans', sans-serif; background: #fffbfd; color: var(--ink);
}
.woocommerce div.product form.cart { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.woocommerce div.product .woocommerce-product-gallery img { border-radius: 18px; }
.woocommerce .product_meta { font-size: .85rem; color: #8a767b; }
.woocommerce .product_meta a { color: var(--raspberry); }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-top-color: var(--burgundy) !important; border-radius: 12px; background: var(--blush);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--burgundy) !important; }
.woocommerce table.shop_table { border-radius: 14px; }
.woocommerce table.shop_table th { font-family: 'Montserrat', sans-serif; color: var(--burgundy); }
.woocommerce-cart table.cart td.actions .coupon .input-text { border: 1.5px solid #eed5de; border-radius: 10px; padding: 12px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
  border: 1.5px solid #eed5de; border-radius: 10px; padding: 12px 14px; background: #fffbfd;
}
.woocommerce-checkout h3, .woocommerce-cart h2, .woocommerce-billing-fields h3 { color: var(--burgundy); font-family: 'Montserrat', sans-serif; }


/* ---------- WooCommerce Blocks: cart & checkout ---------- */
/* never underline buttons (the generic-content link rule was bleeding into them) */
.generic-content a.button,
.generic-content .wc-block-components-button,
.generic-content .wc-block-cart__submit-button,
.woocommerce a.button, .woocommerce button.button,
.wc-block-components-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button { text-decoration: none !important; }

.wc-block-components-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  background: var(--burgundy) !important;
  color: #fff !important;
  border: 2px solid var(--burgundy) !important;
  border-radius: 999px !important;
  padding: 15px 26px !important;
  min-height: 0 !important;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.wc-block-components-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  background: #fff !important; color: var(--burgundy) !important; transform: translateY(-2px);
}
.wc-block-components-button .wc-block-components-button__text,
.wc-block-cart__submit-button .wc-block-components-button__text,
.wc-block-components-checkout-place-order-button .wc-block-components-button__text {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  font-size: .76rem !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  white-space: nowrap;
  line-height: 1.2 !important;
}
/* product names in cart/checkout: brand colour, no underline */
.wc-block-components-product-name,
.wc-block-cart-item__product a {
  color: var(--burgundy) !important;
  text-decoration: none !important;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: .95rem;
}
.wc-block-components-product-name:hover { color: var(--raspberry) !important; }
.wc-block-components-totals-item__label { font-family: 'Montserrat', sans-serif; color: var(--burgundy); }
.wc-block-components-totals-item__value, .wc-block-components-formatted-money-amount { color: var(--ink); font-weight: 600; }
.wc-block-cart__totals-title, .wc-block-components-title { font-family: 'Montserrat', sans-serif !important; color: var(--burgundy) !important; }
.wc-block-components-quantity-selector { border-radius: 10px !important; border-color: #eed5de !important; }
.wc-block-components-panel__button { color: var(--burgundy) !important; font-family: 'Montserrat', sans-serif; }
.wc-block-components-text-input input, .wc-block-components-textarea {
  border: 1.5px solid #eed5de !important; border-radius: 10px !important; background: #fffbfd !important;
}
.wc-block-components-order-summary__button-text { color: var(--burgundy) !important; }

/* tighter card padding on small screens so the cart isn't floating in space */
@media (max-width: 782px) {
  .generic-content { padding: 30px 20px; border-radius: 20px; }
}
@media (max-width: 480px) {
  .wc-block-components-button .wc-block-components-button__text,
  .wc-block-cart__submit-button .wc-block-components-button__text {
    font-size: .7rem !important; letter-spacing: .8px !important;
  }
  .wc-block-components-button, .wc-block-cart__submit-button { padding: 15px 18px !important; }
}


/* ---------- Mobile comfort: reclaim horizontal space on phones ---------- */
@media (max-width: 560px) {
  .wrap { padding: 0 18px; }
  .card-panel { padding: 26px 22px; border-radius: 22px; gap: 28px; }
  .cta-panel .txt { padding: 34px 22px; }
  .cta-panel img { padding: 26px; min-height: 200px; }
  .quote-card, .price-card { padding: 26px 22px; }
  .offer-card { padding: 26px 22px; min-height: 260px; }
  .apply-form { padding: 26px 10px; }
  .waitlist-embed .csf-logobar { padding-bottom: 10px; }
  .topbar { font-size: .8rem; }
  .hero { padding: 40px 0 70px; }
  .page-hero { padding: 44px 0 56px; }
  .section-intro { margin-bottom: 34px; }
  .badge-card { padding: 12px 18px; }
}
@media (max-width: 380px) {
  .wrap { padding: 0 14px; }
  .card-panel { padding: 24px 18px; }
  .btn { padding: 14px 24px; font-size: .74rem; letter-spacing: 1.2px; }
}


/* ---------- Grid children must be allowed to shrink (min-width:auto fix) ---------- */
.apply-panel > *, .card-panel > *, .cta-panel > *, .hero .wrap > *,
.offer-grid > *, .quote-grid > *, .price-grid > *, .footer-grid > *,
.mentor-feature > * { min-width: 0; }
.waitlist-embed, .waitlist-embed > * { max-width: 100%; }
.waitlist-embed #clubc-shadow-form { margin-left: 0; margin-right: 0; }


/* heading break: let it wrap naturally on small screens (hiding the <br> ate the space) */
@media (max-width: 1080px) {
  .apply-side h2 { font-size: clamp(1.6rem, 6vw, 2rem); }
}
/* never let the panel clip its own copy */
.apply-panel { overflow: visible; }
.apply-side { border-radius: 28px 28px 0 0; }
.apply-form { border-radius: 0 0 28px 28px; }
@media (min-width: 1081px) {
  .apply-side { border-radius: 28px 0 0 28px; }
  .apply-form { border-radius: 0 28px 28px 0; }
}
@media (max-width: 560px) {
  .apply-side { border-radius: 22px 22px 0 0; }
  .apply-form { border-radius: 0 0 22px 22px; }
}


/* ---------- Header cart button ---------- */
.cart-link {
  position: relative; flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; margin-left: 4px; margin-right: 2px;
  border-radius: 50%; color: var(--burgundy);
  transition: background .18s ease, transform .18s ease, color .18s ease;
}
.cart-link:hover { background: var(--blush); color: var(--raspberry); transform: translateY(-1px); }
.cart-link svg { width: 21px; height: 21px; }
.cart-count {
  position: absolute; top: 1px; right: -1px;
  min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 999px; background: var(--raspberry); color: #fff;
  font-family: 'Montserrat', sans-serif; font-size: .62rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center; line-height: 1;
  box-shadow: 0 2px 6px rgba(219, 41, 85, .45);
}
.cart-count.is-empty { display: none; }

@media (max-width: 980px) {
  .navpill .logo { order: 1; }
  .cart-link { order: 2; margin-left: auto; }
  .hamburger { order: 3; margin-left: 2px; }
  .nav-links { order: 4; }
}


/* Cart & checkout live in the block below — see "Cart & checkout (mockup A)". */

/* ---------- WooCommerce notices as toasts ---------- */
.clubc-toasts {
  position: fixed; top: 92px; right: 20px; z-index: 9999;
  width: min(390px, calc(100vw - 32px));
  display: flex; flex-direction: column; gap: 10px;
  pointer-events: none;
}
body.admin-bar .clubc-toasts { top: 124px; }
.clubc-toasts > * {
  pointer-events: auto; position: relative;
  background: #fff !important;
  border: 1px solid rgba(114, 0, 38, .12) !important;
  border-left: 4px solid var(--burgundy) !important;
  border-radius: 14px !important;
  box-shadow: 0 18px 45px rgba(114, 0, 38, .20) !important;
  padding: 16px 42px 16px 18px !important;
  margin: 0 !important;
  font-family: 'Open Sans', sans-serif !important;
  font-size: .87rem !important; line-height: 1.5; color: var(--ink) !important;
  list-style: none;
  animation: clubcToastIn .32s cubic-bezier(.22,.9,.3,1) both;
}
.clubc-toasts > *::before { display: none !important; }
.clubc-toasts .woocommerce-error { border-left-color: var(--raspberry) !important; }
.clubc-toasts > *.is-out { animation: clubcToastOut .3s ease both; }
@keyframes clubcToastIn  { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
@keyframes clubcToastOut { to { opacity: 0; transform: translateX(24px); } }
.clubc-toasts a.button, .clubc-toasts a.wc-forward {
  display: inline-block; float: none !important; margin: 10px 0 0 !important;
  background: var(--burgundy) !important; color: #fff !important;
  border: 2px solid var(--burgundy) !important; border-radius: 999px !important;
  padding: 9px 20px !important;
  font-family: 'Montserrat', sans-serif !important; font-weight: 700 !important;
  font-size: .68rem !important; letter-spacing: 1.2px !important; text-transform: uppercase !important;
  text-decoration: none !important;
}
.clubc-toasts a.button:hover { background: #fff !important; color: var(--burgundy) !important; }
.clubc-toast-close {
  position: absolute; top: 9px; right: 10px;
  background: none; border: 0; padding: 2px 6px; cursor: pointer;
  font-size: 1.25rem; line-height: 1; color: #b09aa0; border-radius: 50%;
  transition: color .15s ease, background .15s ease;
}
.clubc-toast-close:hover { color: var(--burgundy); background: var(--blush); }
/* the in-page wrappers are now always empty — keep them from adding gaps */
.woocommerce-notices-wrapper:empty { display: none; }
@media (max-width: 560px) {
  .clubc-toasts { top: 80px; right: 12px; left: 12px; width: auto; }
  body.admin-bar .clubc-toasts { top: 126px; }
}


/* ---------- Survey pages (self-contained form markup in page content) ---------- */
.survey-band { padding: 56px 0 70px; }
.survey-embed { max-width: 860px; margin: 0 auto; }
.survey-embed > *:first-child { margin-top: 0; }
@media (max-width: 560px) {
  .survey-band { padding: 30px 0 44px; }
}





/* ---------- Home mentor rows: photos instead of prices ---------- */
.mini-mentor { gap: 16px; }
.mini-mentor-photo {
  width: 52px; height: 52px; flex: 0 0 auto;
  border-radius: 50%; object-fit: cover; object-position: center top;
  border: 2px solid rgba(250, 213, 229, .55);
}
.mini-mentor-stack { display: inline-flex; flex: 0 0 auto; align-items: center; }
.mini-mentor-stack img {
  width: 42px; height: 42px; border-radius: 50%;
  object-fit: cover; object-position: center top;
  border: 2px solid #4a0f22; margin-left: -14px;
}
.mini-mentor-stack img:first-child { margin-left: 0; }
@media (max-width: 560px) {
  .mini-mentor-photo { width: 44px; height: 44px; }
  .mini-mentor-stack img { width: 36px; height: 36px; }
}


/* rows lost their right-hand price, so stop pushing the text to the far edge */
.mini-mentor { justify-content: flex-start; }
.mini-mentor > div { flex: 1 1 auto; min-width: 0; }


/* one fixed-width media column so every mentor name starts at the same x */
.mini-mentor-media, .mini-mentor-stack {
  flex: 0 0 98px; display: inline-flex; align-items: center;
}
@media (max-width: 560px) {
  .mini-mentor-media, .mini-mentor-stack { flex-basis: 80px; }
}


/* ---------- Phones: home mentor rows ---------- */
/* The faces were the point of this section, so give them room and let each
   blurb settle on two lines instead of three. */
@media (max-width: 560px) {
  .mini-mentor { padding: 14px 16px; gap: 14px; }
  .mini-mentor-photo { width: 72px; height: 72px; }
  .mini-mentor-stack img { width: 42px; height: 42px; margin-left: -16px; }
  .mini-mentor-media, .mini-mentor-stack { flex-basis: 106px; }
  .mini-mentor-media { justify-content: center; }
  .mini-mentor b { font-size: 1rem; }
  /* .mini-mentor-stack is a <span> too — only the blurb should go block */
  .mini-mentor > div > span { display: block; line-height: 1.45; margin-top: 3px; }
}

/* ---------- Phones/tablets: drop the utility bar ---------- */
/* It repeats the footer's contact details and costs a strip of screen before
   the nav even appears. */
@media (max-width: 980px) {
  .topbar { display: none !important; }
}


/* ============================================================
   CART & CHECKOUT (mockup A) — Circles' layout, Club C's palette
   ------------------------------------------------------------
   The structure, spacing and components are a port of the Circles
   checkout mockup. Only the colour and type tokens change. Every
   rule below hangs off WooCommerce Blocks markup, so Woo keeps
   doing the actual work — this is skin, not plumbing.
   ============================================================ */
:root {
  --ck-ink: #1D0F0F;
  --ck-muted: #7C666C;
  --ck-line: #F1E4E8;
  --ck-line-2: #EED5DE;
  --ck-primary: #720026;
  --ck-primary-dk: #3A0014;
  --ck-accent: #DB2955;
  --ck-blush: #F9E9EC;
  --ck-blush-2: #F3DCE2;
  --ck-ok: #1B7F4B;
  --ck-pill: 999px;
  --ck-r: 14px;
  --ck-display: 'Montserrat', sans-serif;
  --ck-sans: 'Open Sans', sans-serif;
}

/* ---------- slim checkout chrome ---------- */
.ck-head { border-bottom: 1px solid var(--ck-line); background: #fff; }
.ck-head .in { max-width: 1140px; margin: 0 auto; padding: 20px; display: flex; align-items: center; }
.ck-head .back { font-size: 13px; color: var(--ck-muted); display: inline-flex; gap: 7px; align-items: center; flex: 1; }
.ck-head .back:hover { color: var(--ck-primary); }
.ck-head .logo { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--ck-blush-2); display: flex; align-items: center; justify-content: center; }
.ck-head .logo img { width: 100%; height: 100%; object-fit: contain; }
.ck-head .sec { flex: 1; text-align: right; font-size: 12px; color: var(--ck-muted); display: inline-flex; gap: 6px; align-items: center; justify-content: flex-end; }
.ck-foot { border-top: 1px solid var(--ck-line); background: #fff; }
.ck-foot .in { max-width: 1140px; margin: 0 auto; padding: 22px 20px 34px; display: flex; gap: 18px; font-size: 12.5px; color: var(--ck-muted); }
.ck-foot a:hover { color: var(--ck-primary); }
body.woocommerce-checkout header.site-header,
body.woocommerce-checkout .topbar { display: none; }

/* ---------- page shell ---------- */
body.woocommerce-cart .page-hero,
body.woocommerce-checkout .page-hero { display: none; }
body.woocommerce-cart .band.band-blush,
body.woocommerce-checkout .band.band-blush { background: #fff; padding: 0; }
body.woocommerce-cart .band .wrap,
body.woocommerce-checkout .band .wrap { max-width: none; padding: 0; }
body.woocommerce-cart .generic-content,
body.woocommerce-checkout .generic-content {
  max-width: 1140px; margin: 0 auto; padding: 34px 20px 90px; background: #fff; box-shadow: none; border-radius: 0;
}
body.woocommerce-cart .generic-content { padding-top: 26px; }

/* ---------- two-column grid ---------- */
.wc-block-checkout, .wc-block-cart { --clubc-gap: 56px; }
.wc-block-components-sidebar-layout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 56px; align-items: start; }
.wc-block-components-main { min-width: 0; float: none !important; width: auto !important; padding: 0 !important; }
.wc-block-components-sidebar { float: none !important; width: auto !important; padding: 0 !important; }
@media (max-width: 980px) {
  .wc-block-components-sidebar-layout { grid-template-columns: 1fr; gap: 0; }
}

/* ---------- numbered section blocks ---------- */
.wc-block-checkout__form { counter-reset: ckstep; display: block; }
.wc-block-components-checkout-step {
  margin: 0 0 34px !important; padding: 0 !important; border: 0 !important; background: none !important;
}
.wc-block-components-checkout-step__heading { display: flex; align-items: center; gap: 12px; margin: 0 0 14px !important; }
.wc-block-components-checkout-step__title {
  font-family: var(--ck-display) !important; font-weight: 700 !important;
  font-size: 15px !important; letter-spacing: 1.6px !important; text-transform: uppercase !important;
  color: var(--ck-ink) !important; margin: 0 !important; line-height: 1.2 !important;
}
.wc-block-components-checkout-step__title::before {
  counter-increment: ckstep; content: counter(ckstep);
  width: 24px; height: 24px; border-radius: 50%; background: var(--ck-ink); color: #fff;
  font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center;
  margin-right: 12px; vertical-align: 2px; letter-spacing: 0;
}
.wc-block-components-checkout-step__heading-content { color: var(--ck-accent) !important; font-size: 13px !important; }
.wc-block-components-checkout-step__description { color: var(--ck-muted) !important; font-size: 12.5px !important; margin: 0 0 14px !important; }
.wc-block-components-checkout-step__content { padding: 0 !important; margin: 0 !important; }
/* Woo prints these even with nothing to ship — an empty numbered step reads as a bug. */
.wp-block-woocommerce-checkout-shipping-method-block:empty,
.wp-block-woocommerce-checkout-pickup-options-block:empty,
.wp-block-woocommerce-checkout-shipping-method-block:not(:has(.wc-block-components-checkout-step__content *)),
.wp-block-woocommerce-checkout-pickup-options-block:not(:has(.wc-block-components-checkout-step__content *)) { display: none !important; }

/* ---------- form fields: floating labels ---------- */
.wc-block-components-text-input,
.wc-block-components-country-input,
.wc-block-components-state-input { margin-top: 12px !important; }
.wc-block-components-text-input input[type=text],
.wc-block-components-text-input input[type=email],
.wc-block-components-text-input input[type=tel],
.wc-block-components-text-input input[type=number],
.wc-block-components-form .wc-blocks-components-select .wc-blocks-components-select__select {
  height: 56px !important; border: 1px solid var(--ck-line) !important; border-radius: 12px !important;
  background: #fff !important; font-family: var(--ck-sans) !important; font-size: 15px !important;
  color: var(--ck-ink) !important; padding: 22px 14px 6px !important; box-shadow: none !important;
}
.wc-block-components-text-input input:focus,
.wc-blocks-components-select__select:focus {
  border-color: var(--ck-ink) !important; box-shadow: 0 0 0 3px var(--ck-blush-2) !important; outline: none !important;
}
.wc-block-components-text-input label,
.wc-blocks-components-select__label {
  font-family: var(--ck-sans) !important; font-size: 15px !important; color: #8C8385 !important;
  left: 14px !important; top: 18px !important;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus + label,
.wc-blocks-components-select__label {
  top: 9px !important; font-size: 11px !important; letter-spacing: .4px !important; color: var(--ck-muted) !important;
}
.wc-blocks-components-select .wc-blocks-components-select__container { border: 0 !important; }
.wc-block-components-address-form__address_2-toggle {
  font-family: var(--ck-sans) !important; font-size: 13px !important; color: var(--ck-ink) !important;
  text-decoration: underline !important; text-underline-offset: 3px !important;
}
.wc-block-components-address-form__address_2-toggle:hover { color: var(--ck-primary) !important; }
.wc-block-components-checkbox__label { font-size: 14px !important; color: var(--ck-muted) !important; line-height: 1.45 !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { accent-color: var(--ck-primary) !important; }
.wc-block-components-validation-error { color: var(--ck-accent) !important; font-size: 12.5px !important; }

/* ---------- radio option rows ---------- */
.wc-block-components-radio-control {
  border: 1px solid var(--ck-line) !important; border-radius: var(--ck-r) !important;
  overflow: hidden; background: #fff;
}
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option {
  border-bottom: 1px solid var(--ck-line) !important; margin: 0 !important; padding: 18px !important;
  transition: background .14s ease;
}
.wc-block-components-radio-control-accordion-option:last-child,
.wc-block-components-radio-control__option:last-child { border-bottom: 0 !important; }
.wc-block-components-radio-control__option:hover { background: #FCFAFB !important; }
.wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control-accordion-option:has(:checked) > .wc-block-components-radio-control__option { background: var(--ck-blush) !important; }
.wc-block-components-radio-control__input { accent-color: var(--ck-primary) !important; }
.wc-block-components-radio-control__label { font-size: 15px !important; color: var(--ck-ink) !important; }
.wc-block-components-radio-control__description,
.wc-block-components-radio-control__secondary-label { font-size: 13px !important; color: var(--ck-muted) !important; }
.wc-block-components-radio-control-accordion-content { padding: 0 18px 18px !important; background: var(--ck-blush) !important; }

/* ---------- order summary ---------- */
.wc-block-components-sidebar .wc-block-components-checkout-order-summary,
.wc-block-cart__sidebar > div {
  background: var(--ck-blush); border-radius: 18px; padding: 24px; position: sticky; top: 24px;
}
.wc-block-cart__sidebar, .wc-block-checkout__sidebar {
  background: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important;
}
.wc-block-components-checkout-order-summary__title,
.wc-block-cart__totals-title {
  font-family: var(--ck-display) !important; font-weight: 700 !important; font-size: 13px !important;
  letter-spacing: 2px !important; text-transform: uppercase !important; color: var(--ck-ink) !important;
  margin: 0 0 18px !important; padding: 0 !important; display: block !important;
}
.wc-block-components-checkout-order-summary__title-text { font-size: inherit !important; }
.wc-block-components-order-summary-item {
  display: flex; gap: 14px; align-items: center; padding: 10px 0 !important; border: 0 !important;
}
.wc-block-components-order-summary-item__image {
  width: 64px; height: 64px; border-radius: 12px; background: #fff; overflow: hidden; flex: 0 0 64px; position: relative;
}
.wc-block-components-order-summary-item__image img { width: 100%; height: 100%; object-fit: cover; }
.wc-block-components-order-summary-item__quantity {
  position: absolute; top: -7px; right: -7px; background: var(--ck-ink) !important; color: #fff !important;
  border: 0 !important; border-radius: var(--ck-pill) !important; min-width: 20px; height: 20px;
  font-size: 11px !important; display: flex; align-items: center; justify-content: center; padding: 0 6px;
}
.wc-block-components-order-summary-item__description { min-width: 0; }
.wc-block-components-order-summary-item__individual-prices { display: none; }
.wc-block-components-order-summary-item .wc-block-components-product-name {
  font-family: var(--ck-sans) !important; font-size: 14px !important; font-weight: 400 !important;
  line-height: 1.35 !important; color: var(--ck-ink) !important; text-transform: none !important; letter-spacing: 0 !important;
}
.wc-block-components-order-summary-item__total-price { margin-left: auto; font-size: 14px; font-weight: 600; white-space: nowrap; }
.wc-block-components-totals-item {
  display: flex; justify-content: space-between; font-size: 14.5px; padding: 7px 0 !important; color: var(--ck-muted);
}
.wc-block-components-totals-item__label { font-family: var(--ck-sans) !important; font-weight: 400 !important; color: var(--ck-muted) !important; letter-spacing: 0 !important; text-transform: none !important; font-size: 14.5px !important; }
.wc-block-components-totals-item__value { color: var(--ck-ink) !important; font-weight: 400 !important; }
.wc-block-components-totals-footer-item {
  display: flex; justify-content: space-between; align-items: baseline;
  padding-top: 14px !important; margin-top: 10px !important; border-top: 1px solid var(--ck-line-2) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  font-family: var(--ck-display) !important; font-weight: 700 !important; font-size: 13px !important;
  letter-spacing: 1.8px !important; text-transform: uppercase !important; color: var(--ck-ink) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
  font-family: var(--ck-sans) !important; font-size: 24px !important; font-weight: 600 !important; color: var(--ck-ink) !important;
}
.wc-block-components-totals-footer-item__description { text-align: right; font-size: 11.5px; color: var(--ck-muted); }
.wc-block-components-totals-wrapper { padding: 0 !important; border: 0 !important; }
.wc-block-components-totals-wrapper + .wc-block-components-totals-wrapper { border-top: 0 !important; }

/* coupon row inside the summary */
.wc-block-components-panel__button {
  font-family: var(--ck-sans) !important; font-size: 13.5px !important; color: var(--ck-ink) !important;
  text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; padding: 12px 0 !important;
}
.wc-block-components-panel__button:hover { color: var(--ck-primary) !important; }
.wc-block-components-totals-coupon__input input { border-radius: 12px !important; }

/* ---------- buttons ---------- */
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button {
  width: 100% !important; height: 60px !important; border-radius: var(--ck-pill) !important;
  background: var(--ck-primary) !important; color: #fff !important; border: 1px solid var(--ck-primary) !important;
  font-family: var(--ck-display) !important; font-weight: 700 !important; font-size: 13px !important;
  letter-spacing: 2px !important; text-transform: uppercase !important; transform: none !important;
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover {
  background: var(--ck-primary-dk) !important; border-color: var(--ck-primary-dk) !important;
  color: #fff !important; transform: none !important;
}
.wc-block-components-checkout-place-order-button:disabled { background: var(--ck-line) !important; border-color: var(--ck-line) !important; color: #A79FA0 !important; }
.wc-block-checkout__actions { margin-top: 6px !important; }
.wc-block-checkout__actions_row { display: block !important; }
.wc-block-checkout__actions_row a { display: none; }
.wc-block-checkout__terms { font-size: 12px !important; color: var(--ck-muted) !important; line-height: 1.5 !important; margin: 18px 0 0 !important; }

/* ---------- express checkout row (renders only if a wallet is enabled) ---------- */
.wc-block-components-express-payment { border: 0 !important; margin: 0 0 22px !important; }
.wc-block-components-express-payment__title-container { display: none; }
.wc-block-components-express-payment__event-buttons > li { border-radius: 12px !important; overflow: hidden; }
.wc-block-components-express-payment-continue-rule {
  font-family: var(--ck-display) !important; font-size: 12px !important; letter-spacing: 1.6px !important;
  text-transform: uppercase !important; font-weight: 700 !important; color: var(--ck-muted) !important; margin: 22px 0 !important;
}
.wc-block-components-express-payment-continue-rule::before,
.wc-block-components-express-payment-continue-rule::after { background: var(--ck-line) !important; }

/* ---------- trust row under the button ---------- */
.ck-trust { display: flex; justify-content: center; gap: 18px; flex-wrap: wrap; margin-top: 20px; font-size: 11.5px; color: var(--ck-muted); }
.ck-trust span { display: inline-flex; align-items: center; gap: 6px; }

/* ---------- mobile summary drawer ---------- */
@media (max-width: 980px) {
  .wc-block-components-sidebar .wc-block-components-checkout-order-summary,
  .wc-block-cart__sidebar > div { position: static; border-radius: 0; margin: 0 -20px; padding: 22px 20px; }
  .wc-block-components-sidebar { order: -1; }
}

/* ============================================================
   CART PAGE — same language, list on the left, totals card right
   ============================================================ */
.wc-block-cart-items { border: 0 !important; }
.wc-block-cart-items__header { display: none !important; }
.wc-block-cart-items__row { border-bottom: 1px solid var(--ck-line) !important; padding: 18px 0 !important; }
.wc-block-cart-item__image img { border-radius: 12px !important; border: 0 !important; width: 78px !important; height: 78px !important; object-fit: cover; }
.wc-block-cart-item__product .wc-block-components-product-name {
  font-family: var(--ck-sans) !important; font-size: 15px !important; font-weight: 400 !important;
  line-height: 1.35 !important; color: var(--ck-ink) !important; text-transform: none !important;
  letter-spacing: 0 !important; margin-bottom: 4px !important;
}
.wc-block-cart-item__product .wc-block-components-product-name:hover { color: var(--ck-primary) !important; }
.wc-block-components-product-metadata,
.wc-block-components-product-metadata__description p { font-size: 13px !important; color: var(--ck-muted) !important; line-height: 1.5; }
.wc-block-cart-item__prices .wc-block-components-product-price,
.wc-block-cart-item__prices .wc-block-components-product-price__value {
  font-family: var(--ck-sans) !important; font-size: 15px !important; font-weight: 600 !important; color: var(--ck-ink) !important;
}
.wc-block-cart-item__total .wc-block-components-product-price__value { font-size: 15px !important; font-weight: 600 !important; color: var(--ck-ink) !important; }
.wc-block-components-quantity-selector {
  border: 1px solid var(--ck-line) !important; border-radius: var(--ck-pill) !important; height: 34px !important; background: #fff !important;
}
.wc-block-components-quantity-selector::after { display: none !important; }
.wc-block-components-quantity-selector__input { font-size: 14px !important; color: var(--ck-ink) !important; min-width: 26px !important; }
.wc-block-components-quantity-selector__button { color: var(--ck-ink) !important; font-size: 16px !important; width: 32px !important; }
.wc-block-components-quantity-selector__button:hover { color: var(--ck-primary) !important; background: none !important; }
.wc-block-cart-item__remove-link, button.wc-block-cart-item__remove-link {
  color: #B9AFB1 !important; font-size: 0 !important; text-decoration: none !important;
}
.wc-block-cart-item__remove-link:hover { color: var(--ck-primary) !important; }
.wp-block-woocommerce-empty-cart-block { text-align: center; padding: 40px 0 60px; }
.wp-block-woocommerce-empty-cart-block h2 { color: var(--ck-primary) !important; }

@media (max-width: 782px) {
  .wc-block-cart-items__row { grid-template-columns: 92px minmax(0, 1fr) !important; column-gap: 16px !important; }
  .wc-block-cart-item__image { grid-column: 1 !important; grid-row: 1 / span 2 !important; width: 92px !important; padding-right: 0 !important; }
  .wc-block-cart-item__image img { width: 92px !important; height: 92px !important; }
  .wc-block-cart-item__product { grid-column: 2 !important; grid-row: 1 !important; }
  .wc-block-cart-item__total { display: none !important; }
  .wc-block-cart-item__prices { display: block !important; margin: 2px 0 6px !important; }
  .wc-block-cart-item__prices .wc-block-components-product-price__value {
    font-family: var(--ck-display) !important; font-size: 1.05rem !important; font-weight: 800 !important; color: var(--ck-primary) !important;
  }
}

/* ============================================================
   SLIDE-OUT CART
   ============================================================ */
#cc-sc-overlay {
  position: fixed; inset: 0; background: rgba(29, 15, 15, .45);
  opacity: 0; transition: opacity .3s ease; z-index: 2000;
}
#cc-sc-overlay.open { opacity: 1; }
#cc-sidecart {
  position: fixed; top: 0; right: 0; bottom: 0; width: 480px; max-width: 100%;
  background: #fff; z-index: 2001; transform: translateX(100%);
  transition: transform .38s cubic-bezier(.4, 0, .2, 1);
  display: flex; flex-direction: column; box-shadow: -20px 0 60px rgba(29, 15, 15, .14);
  font-family: var(--ck-sans); color: var(--ck-ink); line-height: 1.5;
}
#cc-sidecart.open { transform: none; }
#cc-sidecart.is-busy { opacity: .6; pointer-events: none; }
body.cc-sc-open { overflow: hidden; }

#cc-sidecart .sc-head { display: flex; align-items: center; gap: 12px; padding: 22px 24px 16px; }
#cc-sidecart .sc-head .ttl {
  font-family: var(--ck-display); font-weight: 700; font-size: 14px; letter-spacing: 2px;
  text-transform: uppercase; display: flex; align-items: center; gap: 9px;
}
#cc-sidecart .sc-head .cnt {
  background: var(--ck-ink); color: #fff; border-radius: var(--ck-pill); min-width: 20px; height: 20px;
  font-size: 11px; display: inline-flex; align-items: center; justify-content: center; padding: 0 6px; letter-spacing: 0;
}
#cc-sidecart .sc-head .x {
  margin-left: auto; background: none; border: 0; width: 34px; height: 34px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; color: var(--ck-ink); cursor: pointer;
}
#cc-sidecart .sc-head .x:hover { background: var(--ck-blush); }
#cc-sidecart .sc-scroll { flex: 1; overflow-y: auto; padding: 0 24px; }

#cc-sidecart .sc-item { display: flex; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--ck-line); }
#cc-sidecart .sc-item-main { flex: 1; min-width: 0; }
#cc-sidecart .thumb {
  width: 64px; height: 64px; border-radius: 12px; background: var(--ck-blush);
  display: flex; align-items: center; justify-content: center; flex: 0 0 64px; overflow: hidden;
}
#cc-sidecart .thumb img { width: 100%; height: 100%; object-fit: cover; }
#cc-sidecart .nm { font-size: 14.5px; line-height: 1.35; margin: 0 0 4px; padding-right: 20px; }
#cc-sidecart .var { font-size: 12.5px; color: var(--ck-muted); margin: 0 0 9px; }
#cc-sidecart .var.one { margin-bottom: 0; }
#cc-sidecart .right { margin-left: auto; text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
#cc-sidecart .rm { background: none; border: 0; color: #B9AFB1; padding: 2px; line-height: 0; cursor: pointer; }
#cc-sidecart .rm:hover { color: var(--ck-primary); }
#cc-sidecart .pr { font-size: 14.5px; font-weight: 600; }
#cc-sidecart .qty {
  display: inline-flex; align-items: center; border: 1px solid var(--ck-line);
  border-radius: var(--ck-pill); height: 34px; overflow: hidden; background: #fff;
}
#cc-sidecart .qty button {
  width: 32px; height: 32px; border: 0; background: none; font-size: 16px; color: var(--ck-ink);
  display: flex; align-items: center; justify-content: center; line-height: 1; cursor: pointer;
}
#cc-sidecart .qty button:hover:not(:disabled) { color: var(--ck-primary); }
#cc-sidecart .qty button:disabled { color: #C9C2C3; cursor: default; }
#cc-sidecart .qty span { min-width: 26px; text-align: center; font-size: 14px; font-variant-numeric: tabular-nums; }

#cc-sidecart .sc-foot { border-top: 1px solid var(--ck-line); padding: 16px 24px 22px; background: #fff; }
#cc-sidecart .promo-wrap { padding: 0 0 2px; }
#cc-sidecart .linkbtn {
  background: none; border: 0; padding: 0; font-family: var(--ck-sans); font-size: 13.5px;
  color: var(--ck-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
#cc-sidecart .linkbtn:hover { color: var(--ck-primary); }
#cc-sidecart .promo-form { display: none; gap: 8px; margin-top: 10px; }
#cc-sidecart .promo-form.show { display: flex; }
#cc-sidecart .promo-form .f { flex: 1; position: relative; }
#cc-sidecart .promo-form input {
  width: 100%; height: 48px; border: 1px solid var(--ck-line); border-radius: 12px; background: #fff;
  font-family: var(--ck-sans); font-size: 15px; color: var(--ck-ink); padding: 20px 14px 5px; outline: none;
}
#cc-sidecart .promo-form input:focus { border-color: var(--ck-ink); box-shadow: 0 0 0 3px var(--ck-blush-2); }
#cc-sidecart .promo-form label {
  position: absolute; left: 14px; top: 14px; font-size: 15px; color: #8C8385; pointer-events: none; transition: .14s ease;
}
#cc-sidecart .promo-form input:focus + label,
#cc-sidecart .promo-form input:not(:placeholder-shown) + label { top: 6px; font-size: 11px; color: var(--ck-muted); }
#cc-sidecart .promo-msg { font-size: 12.5px; color: var(--ck-ok); margin: 8px 0 0; }
#cc-sidecart .promo-msg.is-error { color: var(--ck-accent); }
#cc-sidecart .promo-chip {
  display: inline-flex; align-items: center; gap: 6px; background: var(--ck-blush); color: var(--ck-primary);
  border-radius: var(--ck-pill); padding: 5px 10px 5px 12px; margin: 10px 6px 0 0;
  font-family: var(--ck-display); font-size: 10px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase;
}
#cc-sidecart .promo-chip button { background: none; border: 0; color: inherit; font-size: 14px; line-height: 1; cursor: pointer; padding: 0; }

#cc-sidecart .sc-tot { display: flex; justify-content: space-between; align-items: baseline; margin: 14px 0 4px; }
#cc-sidecart .sc-tot .l { font-family: var(--ck-display); font-weight: 700; font-size: 13px; letter-spacing: 1.6px; text-transform: uppercase; }
#cc-sidecart .sc-tot .v { font-size: 20px; font-weight: 600; }
#cc-sidecart .sc-note { font-size: 12px; color: var(--ck-muted); text-align: right; margin: 0 0 16px; }
#cc-sidecart .btn-primary {
  display: flex; width: 100%; height: 58px; align-items: center; justify-content: center;
  border-radius: var(--ck-pill); background: var(--ck-primary); color: #fff; border: 1px solid var(--ck-primary);
  font-family: var(--ck-display); font-weight: 700; font-size: 13px; letter-spacing: 2px; text-transform: uppercase;
  transition: background .16s ease;
}
#cc-sidecart .btn-primary:hover { background: var(--ck-primary-dk); border-color: var(--ck-primary-dk); color: #fff; }
#cc-sidecart .btn-ghost {
  display: inline-flex; align-items: center; justify-content: center; background: transparent; color: var(--ck-ink);
  border: 1px solid var(--ck-ink); border-radius: var(--ck-pill); padding: 11px 20px;
  font-family: var(--ck-display); font-weight: 700; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; cursor: pointer;
}
#cc-sidecart .btn-ghost:hover { background: var(--ck-ink); color: #fff; }
#cc-sidecart .sc-cont { text-align: center; margin-top: 14px; }
#cc-sidecart .sugg { background: var(--ck-blush); border-radius: var(--ck-r); padding: 16px; margin: 18px 0 4px; }
#cc-sidecart .sugg h4 {
  font-family: var(--ck-display); font-weight: 700; font-size: 11px; letter-spacing: 1.8px;
  text-transform: uppercase; margin: 0 0 12px; color: var(--ck-muted);
}
#cc-sidecart .sugg .row { display: flex; align-items: center; gap: 12px; }
#cc-sidecart .sugg .thumb { background: #fff; }
#cc-sidecart .sugg-main { flex: 1; min-width: 0; }
#cc-sidecart .sugg .nm { font-size: 13.5px; line-height: 1.3; padding: 0; }
#cc-sidecart .sugg .pr { font-size: 13.5px; font-weight: 600; color: var(--ck-primary); margin-top: 2px; }
#cc-sidecart .sc-empty { text-align: center; padding: 70px 20px; }
#cc-sidecart .sc-empty .c {
  width: 96px; height: 96px; border-radius: 50%; background: var(--ck-blush); margin: 0 auto 20px;
  display: flex; align-items: center; justify-content: center; color: var(--ck-accent);
}
#cc-sidecart .sc-empty p { color: var(--ck-muted); font-size: 14.5px; margin: 0 0 22px; }
#cc-sidecart .trustrow {
  display: flex; justify-content: center; gap: 18px; flex-wrap: wrap; margin-top: 14px;
  font-size: 11.5px; color: var(--ck-muted);
}
#cc-sidecart .trustrow span { display: inline-flex; align-items: center; gap: 6px; }

/* Total lives in a custom property so React never has to re-render for it. */
.wc-block-components-checkout-place-order-button .wc-block-components-button__text::after {
  content: var(--ck-total, "");
  font-weight: 700;
}
#cc-sidecart[hidden], #cc-sc-overlay[hidden] { display: none; }
.ck-foot .ck-trust { max-width: 1140px; margin: 0 auto; padding: 26px 20px 0; }


/* ==========================================================================
   1.13.1 — cart/checkout fixes after the first live pass
   ========================================================================== */

/* Woo positions the payment radio absolutely at left:16px, so the row needs
   room for it — without this the "Card" label prints underneath the dot. */
.wc-block-components-radio-control__option { padding-left: 52px !important; }
.wc-block-components-radio-control-accordion-option { padding: 0 !important; }

/* On the block checkout the sidebar card is this block, not the class the
   cart page uses — it was missing the blush panel entirely. */
.wc-block-components-sidebar > .wp-block-woocommerce-checkout-order-summary-block {
  background: var(--ck-blush); border-radius: 18px; padding: 24px; position: sticky; top: 24px;
}

/* Cart line item: Woo caps the thumbnail at max-width:100% of an auto-width
   table cell, which squashed it to 55px. Give the cell a real width. */
.wc-block-cart-item__image { width: 94px !important; padding: 18px 16px 18px 0 !important; }
.wc-block-cart-item__image img { max-width: none !important; }
/* Sold individually, so the unit price and the line total are the same
   number — show it once, in the right-hand column. */
@media (min-width: 783px) { .wc-block-cart-item__prices { display: none !important; } }

/* The page hero is hidden on the cart, so the page needs its own heading. */
body.woocommerce-cart .generic-content::before {
  content: 'Your cart'; display: block;
  font-family: var(--ck-display); font-weight: 800; font-size: 30px;
  letter-spacing: -.3px; color: var(--ck-ink); margin: 0 0 24px;
}
@media (max-width: 782px) {
  body.woocommerce-cart .generic-content::before { font-size: 24px; margin-bottom: 18px; }
}

/* Keep "Complete order · $299.00 AUD" on one line. */
.wc-block-components-checkout-place-order-button,
.wc-block-components-checkout-place-order-button .wc-block-components-button__text,
.wc-block-cart__submit-button { white-space: nowrap !important; }
@media (max-width: 420px) {
  .wc-block-components-checkout-place-order-button { font-size: 12px !important; letter-spacing: 1.2px !important; }
}

/* Woo stacks the sidebar first on narrow screens. That's right for checkout
   (the order summary belongs at the top) but wrong for the cart, where you
   want to see what you're buying before the total. */
@media (max-width: 980px) {
  .wc-block-cart .wc-block-components-sidebar { order: 0 !important; margin-top: 8px; }
}

/* Woo caps the order-summary thumbnail at max-width:48px, so inside our 64px
   box the photo sat flush left with a white strip down the right. Let it fill
   the box and centre-crop instead. */
.wc-block-components-order-summary-item__image {
  display: block !important; flex: 0 0 64px;
}
.wc-block-components-order-summary-item__image img {
  max-width: none !important; width: 64px !important; height: 64px !important;
  object-fit: cover !important; object-position: center !important; display: block !important;
}

/* The quantity pill sits 7px outside the thumbnail, so the clipping has to
   live on the image itself — on the box it chopped the pill into a dark blob. */
.wc-block-components-order-summary-item__image { overflow: visible !important; }
.wc-block-components-order-summary-item__image img { border-radius: 12px !important; overflow: hidden; }
.wc-block-components-order-summary-item__quantity { z-index: 2; }
