/* Group class pages (build_classes.py). Uses the RHYTHM scale from modern.css:
   10 under a label, 12 headline to lead and list gaps, 26 heading block to content. */

/* ---------- schedule ---------- */
html body .c-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--r-block)}
html body .c-chip{background:#f3f2ec;border-radius:999px;padding:8px 14px;font-family:var(--font-h);font-weight:800;font-size:12px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal);line-height:1.2}
html body .c-sched{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:var(--r-lead)}
html body .c-class{background:#f3f2ec;border-radius:var(--m-r-lg);padding:20px 20px 18px;display:flex;flex-direction:column}
html body .c-when{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
html body .c-when b{font-family:var(--font-h);font-weight:800;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--sage)}
html body .c-when span{font-size:14px;color:#6b6f63}
html body .c-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-top:var(--r-label)}
html body .c-top h3{font-family:var(--font-h);font-weight:800;font-size:24px;line-height:1.05;text-transform:uppercase;color:var(--charcoal);margin:0;font-style:normal}
html body .c-price{font-family:var(--font-h);font-weight:800;font-size:26px;line-height:1;color:var(--charcoal);white-space:nowrap}
html body .c-class p{margin:var(--r-label) 0 0;font-size:15px;line-height:1.5;color:#45493f}
html body .c-class .c-meta{font-size:13.5px;color:#6b6f63}
html body .c-class .c-flag{margin-top:6px;font-size:13.5px;color:#6b6f63}
html body .c-btns{margin-top:auto;padding-top:16px;display:flex;align-items:center;gap:18px}
html body .c-btns .btn{flex:1;margin:0}
html body .c-more{font-family:var(--font-h);font-weight:800;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal);
  text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
html body .c-sched-sec .m-note a,html body .k-sec .m-note a{color:var(--sage);text-decoration:underline}

/* ---------- photo grids ---------- */
html body .c-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:var(--r-block)}
html body .k-tiles + .c-photos,html body .c-photos + .k-tiles{margin-top:var(--r-lead)}
html body .c-photos img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:16px;background:#e6e3d8}

/* ---------- class page: what it is ---------- */
html body .c-fit{margin-top:var(--r-block)}
html body .c-fit .m-type-label,html body .c-label-gap{display:block;margin-bottom:var(--r-label)!important}
html body .c-details{margin-top:var(--r-block);background:#f3f2ec;border-radius:var(--m-r-lg);padding:6px 20px 20px}
html body .k-alt .c-details{background:#fff}
html body .c-details dl{margin:0}
html body .c-row{display:grid;grid-template-columns:118px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid rgba(45,48,42,.1)}
html body .c-row dt{font-family:var(--font-h);font-weight:800;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);padding-top:3px}
html body .c-row dd{margin:0;font-size:15.5px;line-height:1.45;color:var(--charcoal)}
html body .c-row dd a{color:var(--sage);text-decoration:underline}
html body .c-details .btn{margin-top:20px;width:100%}

/* ---------- curriculum ---------- */
html body .c-weeks{list-style:none;margin:var(--r-block) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--r-lead)}
html body .c-weeks li{background:#fff;border-radius:18px;padding:16px 18px;display:grid;grid-template-columns:92px 1fr;column-gap:14px;row-gap:4px}
html body .c-wk{grid-row:span 2;font-family:var(--font-h);font-weight:800;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);padding-top:4px}
html body .c-weeks b{font-family:var(--font-h);font-weight:800;font-size:18px;line-height:1.1;text-transform:uppercase;color:var(--charcoal)}
html body .c-weeks p{margin:0;font-size:15px;line-height:1.5;color:#55594f}
html body .c-next{display:block;margin-top:var(--r-block);border-radius:18px;padding:18px;border:2px solid var(--sage);background:transparent;text-decoration:none}
html body .c-next .m-type-label{display:block;margin-bottom:var(--r-label)!important}
html body .c-next-t{display:block;font-size:15.5px;line-height:1.5;color:var(--charcoal)}
html body .c-next-l{display:inline-block;margin-top:var(--r-lead);font-family:var(--font-h);font-weight:800;font-size:13px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--sage)}
html body .c-next-l::after{content:" \2192"}

/* photo card sections sit tight against their neighbours */
html body .c-card-sec .m-nose-card{margin:0}
html body .c-card-sec .m-nose-text{padding:24px 22px 26px}

/* STAR requirements: lists inside tiles */
html body .c-req .k-checks{margin-top:4px}

/* ---------- canine conditioning: Remi ---------- */
html body .c-remi{display:flex;gap:12px;margin-top:var(--r-block)}
html body .c-remi img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--sage)}
html body .c-story{margin-top:var(--r-lead);max-width:680px}
html body .c-story p{margin:0 0 var(--r-lead);font-size:16px;line-height:1.6;color:#45493f}
html body .c-story p:last-child{margin-bottom:0}
html body .c-story + .c-label-gap{margin-top:var(--r-block)}
html body .t-steps + .c-fit{margin-top:var(--r-block)}

/* ---------- group class waitlist form (form markup unchanged, light restyle) ---------- */
html body .c-wl-card{margin-top:var(--r-block);max-width:760px;background:#fff;border-radius:var(--m-r-lg);padding:22px;box-shadow:var(--m-shadow)}
html body .sk9wl-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;opacity:1;transform:none}
html body .sk9wl-f{display:flex;flex-direction:column;gap:6px}
html body .sk9wl-f.full{grid-column:1/-1}
html body .sk9wl-f label{font-family:var(--font-h);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#55594f}
html body .sk9wl-f input,html body .sk9wl-f select,html body .sk9wl-f textarea{width:100%;background:#f7f6f1;border:1px solid rgba(45,48,42,.16);
  border-radius:12px;padding:12px 13px;color:var(--charcoal);font-size:16px;font-family:inherit}
html body .sk9wl-f textarea{min-height:88px;resize:vertical}
html body .sk9wl-f input:focus,html body .sk9wl-f select:focus,html body .sk9wl-f textarea:focus{outline:2px solid var(--sage);outline-offset:-1px;border-color:transparent}
html body .sk9wl-btn{grid-column:1/-1;margin-top:4px;cursor:pointer;border:0;background:var(--sage);color:#fff;font-family:var(--font-h);font-size:14px;
  font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:16px 34px;border-radius:999px;width:100%}
html body .sk9wl-btn[disabled]{opacity:.55;cursor:default}
html body .sk9wl-msg{grid-column:1/-1;font-size:14.5px;line-height:1.6;padding:12px 14px;border-radius:12px;display:none}
html body .sk9wl-msg.show{display:block}
html body .sk9wl-msg.err{background:#f8e8e5;border:1px solid #d9a59c;color:#8a3a2f}
html body .sk9wl-msg.ok{background:#eef1e8;border:1px solid #b9c2a9;color:#3f4a33}
html body .sk9wl-fine{grid-column:1/-1;font-size:12.5px;color:#6b6f63;line-height:1.6;margin:0}

/* ---------- obedience waitlist card (markup unchanged, rounded) ---------- */
html body .c-ow .wl-card{max-width:620px;border-radius:var(--m-r-lg);border-top:0;box-shadow:var(--m-shadow);padding:26px 22px}
html body .c-ow .wl-card h3{margin-top:0}
html body .c-ow .wl-input{border-radius:12px}
html body .c-ow .wl-submit{width:100%;border-radius:999px}

@media (max-width:760px){
  html body .c-sched{grid-template-columns:1fr}
  html body .c-photos.c-cols-3{gap:8px}
  html body .sk9wl-form{grid-template-columns:1fr}
  html body .c-row{grid-template-columns:100px 1fr}
  html body .c-weeks li{grid-template-columns:1fr}
  html body .c-wk{grid-row:auto;padding-top:0}
}

/* ---------- pages whose own head CSS predates the kit (single class pages) ---------- */
html body .k-sec .eyebrow{color:var(--sage)}
html body .k-sec .btn-primary{background:var(--sage);color:#fff;border:2px solid var(--sage)}
html body .k-sec .btn-outline-dark{background:transparent;color:var(--charcoal);border:1.5px solid rgba(45,48,42,.3);box-shadow:none}
html body .c-card-sec .m-nose-text h2{color:#fff}
html body .c-card-sec .m-nose-text h2 em{color:var(--sage);font-style:normal}
html body .c-card-sec .m-nose-text .eyebrow{color:var(--soft-sage,#a9b29a)}
html body .c-card-sec .m-nose-text p{color:rgba(254,254,254,.85)}
html body .c-card-sec .btn-outline-white{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55)}
html body .reviews-section{background:#fff}
html body .reviews-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
html body .reviews-grid{background:transparent}
/* a white section running straight into the white reviews block: one gap, not two */
html body .k-sec:not(.k-alt):has(+ .reviews-section){padding-bottom:0}
/* single class page hero and reviews: same scale as the kit */
html body .hero-content .hero-btns{margin-top:var(--r-block)!important}
html body .reviews-section .reviews-header{margin-bottom:0!important}
html body .hero-content .hero-sub{margin-bottom:0!important}
html body .reviews-section .reviews-summary{margin-bottom:0!important}
html body .c-ow .wl-row{row-gap:0;column-gap:14px}
html body .c-btns{padding-top:20px}
