/* ============ inner-page styles ============ */
.page-hero{padding:7rem 0 3rem;background:
  radial-gradient(50% 60% at 88% 10%,rgba(201,138,99,.22),transparent 70%),
  linear-gradient(160deg,var(--sand),var(--sand-deep));text-align:center}
.page-hero .eyebrow{margin-bottom:1rem}
.page-hero h1{font-family:var(--serif);font-weight:380;font-size:clamp(2.4rem,6vw,4rem);color:var(--moss);letter-spacing:-.02em;line-height:1.05}
.page-hero p{max-width:52ch;margin:1.2rem auto 0;color:var(--stone);font-size:1.08rem}

/* ----- classes ----- */
.weekly{margin-bottom:3.5rem}
.weekly-h{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,3.5vw,2.4rem);color:var(--moss);margin-bottom:.5rem}
.weekly-sub{color:var(--stone);font-size:.98rem;max-width:60ch;margin-bottom:1.8rem}
.week-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.day{background:var(--sand);border:1px solid rgba(125,138,106,.16);border-radius:14px;padding:1.1rem 1.3rem;display:flex;flex-direction:column;gap:.15rem}
.day .dow{font-family:var(--serif);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--clay-deep);font-weight:600}
.day .dtime{font-family:var(--serif);font-size:1.3rem;color:var(--moss)}
.day .dclass{font-weight:500;color:var(--ink);font-size:1.02rem}
.day .dloc{font-size:.85rem;color:var(--stone)}
.seasonal-dot{display:inline-block;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;background:var(--sand-deep);color:var(--clay-deep);padding:.1rem .45rem;border-radius:100px;margin-left:.3rem;vertical-align:middle}
.class-list{padding:clamp(3.5rem,8vw,6rem) 0;background:var(--cream)}
.class-row{display:grid;grid-template-columns:1fr 1.3fr auto;gap:2rem;align-items:center;padding:2rem 0;border-bottom:1px solid rgba(125,138,106,.18)}
.class-row:first-of-type{border-top:1px solid rgba(125,138,106,.18)}
.class-name{font-family:var(--serif);font-weight:500;font-size:1.6rem;color:var(--moss);line-height:1.1}
.class-name .tag{display:inline-block;font-family:var(--sans);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;background:var(--sand-deep);color:var(--clay-deep);padding:.25rem .6rem;border-radius:100px;margin-top:.6rem;font-weight:500}
.class-desc{color:var(--stone);font-size:1rem}
.class-loc{display:flex;align-items:flex-start;gap:.5rem;margin-top:.7rem;font-size:.88rem;color:var(--sage-deep)}
.class-loc svg{flex:none;margin-top:3px}
.class-row .btn{white-space:nowrap}
.note-banner{background:var(--sand-deep);border-radius:var(--radius);padding:1.5rem 1.8rem;margin-top:3rem;display:flex;gap:1rem;align-items:center;color:var(--sage-deep);font-size:.95rem}
.note-banner strong{color:var(--moss)}

/* ----- team ----- */
.team-section{padding:clamp(3.5rem,8vw,6rem) 0;background:var(--cream)}
.person{display:grid;grid-template-columns:200px 1fr;gap:2.5rem;align-items:start;padding:2.8rem 0;border-bottom:1px solid rgba(125,138,106,.16)}
.person:last-child{border-bottom:0}
.person-photo{width:200px;height:200px;border-radius:50%;overflow:hidden;background:linear-gradient(150deg,var(--sage),var(--clay));display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:3.5rem;color:var(--cream);box-shadow:var(--shadow)}
.person-photo img{width:100%;height:100%;object-fit:cover}
.person h3{font-family:var(--serif);font-weight:500;font-size:1.8rem;color:var(--moss);margin-bottom:.2rem}
.person .role{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--clay-deep);font-weight:600;margin-bottom:1rem}
.person p{color:var(--stone);font-size:1rem;margin-bottom:.9rem}

/* ----- booking ----- */
.book-wrap{padding:clamp(3rem,7vw,5rem) 0;background:var(--cream)}
.book-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:3.5rem;align-items:start}
.book-info h2{font-family:var(--serif);font-weight:400;font-size:2rem;color:var(--moss);margin-bottom:1rem}
.book-info p{color:var(--stone);margin-bottom:1.4rem}
.book-info ul{list-style:none;display:flex;flex-direction:column;gap:.9rem}
.book-info li{display:flex;gap:.7rem;align-items:flex-start;color:var(--sage-deep)}
.book-info li svg{flex:none;margin-top:3px;color:var(--clay)}
form{background:var(--white);border:1px solid rgba(125,138,106,.18);border-radius:var(--radius);padding:clamp(1.6rem,4vw,2.6rem);box-shadow:var(--shadow)}
.field{margin-bottom:1.3rem}
.field label{display:block;font-size:.9rem;font-weight:500;color:var(--moss);margin-bottom:.45rem}
.field input,.field select,.field textarea{width:100%;font-family:var(--sans);font-size:1rem;padding:.8rem 1rem;border:1.5px solid rgba(125,138,106,.3);border-radius:12px;background:var(--cream);color:var(--ink);transition:border .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(125,138,106,.18)}
.field textarea{resize:vertical;min-height:96px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
form .btn{width:100%;margin-top:.4rem}
.form-note{font-size:.82rem;color:var(--stone);text-align:center;margin-top:1rem}
.success{background:var(--sand-deep);border-radius:var(--radius);padding:2.5rem;text-align:center}
.success h2{font-family:var(--serif);color:var(--moss);font-size:1.8rem;margin-bottom:.6rem}
.success p{color:var(--stone)}

@media(max-width:860px){
  .week-grid{grid-template-columns:1fr 1fr}
  .class-row{grid-template-columns:1fr;gap:.8rem}
  .class-row .btn{justify-self:start}
  .person{grid-template-columns:1fr;gap:1.4rem;justify-items:center;text-align:center}
  .person .role,.person h3{text-align:center}
  .book-grid{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr}
}

/* ---------- dated class calendar ---------- */
.cal-intro{margin-bottom:1.2rem}
.cal-legend{display:flex;gap:1.6rem;flex-wrap:wrap;margin-bottom:2rem;font-size:.9rem;color:var(--stone)}
.cal-legend span{display:inline-flex;align-items:center;gap:.5rem}
.lg{width:14px;height:14px;border-radius:4px;display:inline-block}
.lg-week{background:var(--sage)}
.lg-month{background:var(--clay)}
.cal{margin-bottom:2.5rem}
.cal-title{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,3.5vw,2.2rem);color:var(--moss);margin-bottom:1rem;letter-spacing:.02em}
.cal-title span{color:var(--clay-deep)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-dow{font-family:var(--serif);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage-deep);font-weight:600;text-align:center;padding:.4rem 0}
.cal-cell{background:var(--sand);border:1px solid rgba(125,138,106,.14);border-radius:10px;min-height:92px;padding:.4rem;position:relative}
.cal-empty{background:transparent;border:0}
.cal-num{font-family:var(--serif);font-size:.95rem;color:var(--stone);font-weight:500}
.cal-cell.has-class{background:var(--cream);border-color:rgba(125,138,106,.28)}
.cal-ev{margin-top:.25rem;padding:.3rem .4rem;border-radius:7px;background:rgba(125,138,106,.12);border-left:3px solid var(--sage);display:flex;flex-direction:column;line-height:1.15}
.cal-ev+.cal-ev{margin-top:.25rem}
.cal-ev-month{background:rgba(201,138,99,.14);border-left-color:var(--clay)}
.ev-t{font-size:.65rem;font-weight:700;color:var(--moss);letter-spacing:.02em}
.ev-c{font-size:.7rem;font-weight:600;color:var(--ink);margin-top:1px}
.ev-l{font-size:.6rem;color:var(--stone);margin-top:1px}

@media(max-width:760px){
  .cal-grid{grid-template-columns:1fr;gap:5px}
  .cal-dow{display:none}
  .cal-empty{display:none}
  .cal-cell{min-height:0;display:flex;align-items:flex-start;gap:.6rem;padding:.6rem .8rem}
  .cal-cell:not(.has-class){display:none}
  .cal-num{min-width:auto;font-size:1.05rem;display:flex;flex-direction:column;align-items:flex-start}
  .cal-num::before{content:attr(data-dow);font-family:var(--sans);font-size:.62rem;color:var(--sage-deep);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
  .cal-ev{flex:1}
}

/* booking session hint */
.field-hint{font-size:.8rem;color:var(--stone);margin-top:.4rem;font-style:italic}
select:disabled{opacity:.55;cursor:not-allowed}
