/* Riverhouse Create Phase 1 approved comp CSS. Source files: comps/site.css and comps/index.html. */
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("../fonts/source-sans-3-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("../fonts/source-sans-3-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

/* Homepage approved comp additions. Shared selectors below are deliberately superseded by site.css where the newer shared stylesheet differs. */

:root{
  --fs-hero:clamp(38px, 4.6vw, 58px); --fs-h1:clamp(32px, 3.8vw, 48px); --fs-h2:clamp(25px, 3vw, 34px); --fs-h3:21px; --fs-h4:19px; --fs-lede:19px; --fs-body:17px; --fs-sm:15.5px; --fs-meta:14.5px; --fs-fine:13.5px; --fs-micro:11.5px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:22px; --sp-6:30px; --sp-7:40px; --sp-8:54px; --sp-9:72px; --sp-10:96px;
  --ink:#14201B; --river:#2C463A; --paper:#F0EADE; --surface:#F7F3EA; --ground:#EFE9DD; --rust:#B04E28; --clay:#B08D62; --tx:#1A2721; --tx-2:#4A5B52; --tx-3:#77877D; --rule:#D6CBB6; --on-ink:#EDE6D8; --on-ink-2:#9FB0A4;
  --d:"Fraunces",Georgia,serif; --b:"Source Sans 3",system-ui,sans-serif; --max:1200px; --r:0;
  --clay-d:var(--rust); --clay-l:var(--rust); --clay-100:var(--surface); --pine:var(--ink); --pine-7:var(--river); --pine-5:var(--river); --sage:var(--tx-3); --sage-4:var(--tx-3); --sage-2:var(--rule); --sage-1:var(--surface); --paper-w:var(--surface); --white:var(--surface); --ink-5:var(--tx-2); --ink-3:var(--tx-3); --river-1:var(--surface); --ok:var(--river); --ok-1:var(--surface); --warn:var(--rust); --warn-1:var(--surface); --bad:var(--rust); --bad-1:var(--surface);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:hidden;max-width:100%}
body{
  font-family:var(--b);color:var(--ink);background:var(--paper);
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.19em;text-transform:uppercase;color:var(--clay)}
h1,h2,h3{font-family:var(--d);color:var(--pine);font-weight:600;letter-spacing:-.012em}
h1{font-size:clamp(2.6rem,1.3rem+3.6vw,4.1rem);line-height:1.03}
h2{font-size:clamp(1.9rem,1.3rem+1.9vw,2.7rem);line-height:1.12}
h3{font-size:1.28rem;line-height:1.25}
p{max-width:62ch}
.lede{font-size:1.19rem;line-height:1.58;color:var(--ink)}
.muted{color:var(--ink-5)}
.sm{font-size:.9rem;line-height:1.5}
.xs{font-size:.8rem;line-height:1.45;color:var(--ink-5)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:52px;padding:14px 30px;border-radius:0;font:inherit;font-weight:600;
  font-size:1.02rem;cursor:pointer;border:1.5px solid transparent;transition:.18s cubic-bezier(.2,0,.2,1)}
.btn--p{background:var(--rust);color:#fff;box-shadow:none}
.btn--p:hover{background:#8F3E1F;transform:translateY(-1px);box-shadow:none}
.btn--s{border-color:var(--pine-7);color:var(--pine-7)}
.btn--s:hover{background:var(--pine-7);color:var(--paper)}
.btn:focus-visible{outline:2px solid var(--river);outline-offset:3px}
.tlink{display:inline-flex;align-items:center;gap:7px;color:var(--river);font-weight:600;
  border-bottom:1.5px solid rgba(47,98,117,.32);padding-bottom:2px;transition:.18s}
.tlink:hover{border-bottom-color:var(--river)}

/* ---------- header ---------- */
header{background:var(--paper);border-bottom:1px solid rgba(95,122,99,.18);position:relative;z-index:5}
.hrow{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:20px 0}
.mark{display:inline-flex;align-items:center;gap:10px;font-family:var(--d);font-size:1.44rem;font-weight:600;color:var(--pine);letter-spacing:.03em;line-height:1;white-space:nowrap}
.mark-watercolour{display:inline-flex;inline-size:48px;block-size:48px;flex:0 0 48px}
.mark-watercolour img{inline-size:48px;block-size:48px;object-fit:contain;mix-blend-mode:multiply}
.mark small{display:block;font-size:.56rem;letter-spacing:.42em;color:var(--clay);font-weight:600;
  margin-top:5px;font-family:var(--b);padding-left:2px}
nav ul{display:flex;gap:26px;list-style:none;font-size:.94rem;font-weight:500}
nav a{color:var(--pine-7);padding:6px 0;border-bottom:2px solid transparent;transition:.16s}
nav a:hover{border-bottom-color:var(--clay)}
.hact{display:flex;align-items:center;gap:14px}
.credits{display:inline-flex;align-items:center;gap:8px;background:var(--sage-1);color:var(--pine);
  border-radius:0;padding:8px 16px;font-size:.85rem;font-weight:600;white-space:nowrap}
.credits i{width:7px;height:7px;border-radius:0;background:var(--ok);display:block}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:76px 0 84px}
.hero .wrap{display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center}
.hero h1{margin:20px 0 22px}
.hero .lede{max-width:34ch}
.hcta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.hnote{margin-top:26px;display:flex;align-items:center;gap:10px;color:var(--ink-5);font-size:.88rem}
.hnote b{color:var(--pine);font-weight:600}
.art{position:relative}
.art img{width:100%;height:auto;mix-blend-mode:multiply}
.art figcaption{text-align:center;font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-3);margin-top:8px}
.hero::before{content:"";position:absolute;top:-16%;right:-14%;width:62%;height:126%;
  background:radial-gradient(closest-side,rgba(143,168,143,.30),rgba(143,168,143,0) 72%);pointer-events:none}

/* ---------- section furniture ---------- */
section{position:relative}
.band{padding:92px 0}
.band--w{background:var(--paper-w)}
.band--sage{background:linear-gradient(180deg,var(--sage-1),#DFE7DB)}
.band--pine{background:var(--pine);color:#E8EDE9}
.band--pine h2,.band--pine h3{color:var(--paper)}
.wave{display:block;width:100%;height:44px}
.shead{max-width:60ch;margin-bottom:44px}
.shead h2{margin:12px 0 12px}

/* ---------- tiles ---------- */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.tile{position:relative;display:block;border-radius:0;overflow:hidden;aspect-ratio:1/1;
  background:linear-gradient(150deg,#7E9480 0%,#5A7460 46%,#3E5A48 100%);
  box-shadow:none;transition:.22s cubic-bezier(.2,0,.2,1)}
.tile:hover{transform:translateY(-3px);box-shadow:none}
.tile:focus-visible{outline:3px solid var(--river);outline-offset:3px}
.tile--paint{background:linear-gradient(150deg,#8C9C7E 0%,#677E5D 48%,#44573D 100%)}
.tile--pot{background:linear-gradient(150deg,#B08668 0%,#8C6249 48%,#5E4030 100%)}
.tile--needle{background:linear-gradient(150deg,#8496A0 0%,#5F7681 48%,#3F5560 100%)}
.tile--drama{background:linear-gradient(150deg,#A98070 0%,#8A5B50 48%,#5C3A34 100%)}
.tile__media{position:absolute;inset:0;display:block;background:inherit}
.tile__media img{width:100%;height:100%;object-fit:cover;display:block}
.tile .tex{position:absolute;inset:0;opacity:.32;
  background-image:radial-gradient(rgba(255,255,255,.5) 1px,transparent 1px);background-size:15px 15px}
.tile .veil{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(22,48,42,0) 26%,rgba(22,48,42,.30) 55%,rgba(22,48,42,.80) 100%)}
.tile .brief{position:absolute;top:16px;left:18px;right:18px;color:rgba(255,255,255,.86);
  font-size:.76rem;line-height:1.42;font-style:italic;letter-spacing:.005em;max-width:30ch}
.tile:has(picture,img) .tex,
.tile:has(picture,img) .brief{display:none}
.tile .cap{position:absolute;left:24px;right:24px;bottom:22px;color:#fff}
.tile .cap h3{color:#fff;font-size:1.62rem;letter-spacing:-.01em;margin-bottom:5px}
.tile .cap p{color:rgba(255,255,255,.9);font-size:.93rem;max-width:32ch}
.tile .cap .go{display:inline-flex;align-items:center;gap:7px;margin-top:12px;
  font-size:.82rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:#F3D9C6}

@media (max-width:599px){
  .tile{aspect-ratio:1/1;min-height:0}
  .tile .brief{top:18px;left:18px;right:18px;max-width:min(28ch,calc(100% - 36px));line-height:1.5}
  .tile .cap{left:20px;right:20px;bottom:20px;display:grid;gap:5px}
  .tile .cap h3{font-size:clamp(1.42rem,7vw,1.62rem);line-height:1.12;margin-bottom:0}
  .tile .cap p{max-width:100%;margin:0;line-height:1.42}
  .tile .cap .go{margin-top:6px}
}

/* ---------- events ---------- */
.evs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.ev{background:var(--white);border:1px solid rgba(95,122,99,.24);border-radius:0;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:none}
.ev .ph{aspect-ratio:3/2;position:relative;background:linear-gradient(150deg,#93A98F,#5F7A63)}
.ev .ph.b{background:linear-gradient(150deg,#A9927E,#7A6350)}
.ev .ph.c{background:linear-gradient(150deg,#8DA0A8,#5D7078)}
.ev .ph span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  padding:16px;text-align:center;color:rgba(255,255,255,.9);font-size:.76rem;font-style:italic;line-height:1.4}
.ev .body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.ev h3{margin:9px 0 6px}
.ev .when{font-size:.86rem;color:var(--ink-5);font-weight:600}
.ev .desc{font-size:.94rem;margin:10px 0 16px;flex:1}
.badge{display:inline-block;background:var(--clay-100);color:var(--clay-d);border-radius:0;
  padding:5px 12px;font-size:.71rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.days{list-style:none;margin:0 0 18px;padding:14px 0 0;border-top:1px solid rgba(95,122,99,.2);display:grid;gap:9px}
.days li{display:flex;align-items:center;gap:9px;font-size:.9rem;min-height:24px}
.days i{width:9px;height:9px;border-radius:0;flex:none}
.i-ok{background:var(--ok)} .i-w{background:var(--warn)} .i-b{background:var(--bad)}
.days .st{margin-left:auto;font-size:.8rem;color:var(--ink-5);font-weight:600}
.price{font-family:var(--d);font-size:1.42rem;color:var(--pine);font-weight:600;font-variant-numeric:tabular-nums}

/* ---------- split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.ph-big{border-radius:0;aspect-ratio:4/3;position:relative;overflow:hidden;
  background:linear-gradient(150deg,#A08C6E,#7C6647 55%,#54432E)}
.ph-big span{position:absolute;inset:0;display:flex;align-items:flex-end;padding:22px;
  color:rgba(255,255,255,.9);font-size:.8rem;font-style:italic;line-height:1.45;
  background:linear-gradient(180deg,rgba(22,48,42,0) 50%,rgba(22,48,42,.55))}

/* ---------- teachers ---------- */
.teach{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.t{text-align:center}
.t .por{aspect-ratio:4/5;border-radius:0;background:linear-gradient(160deg,#E9D3C2,#D9BCA6);
  position:relative;overflow:hidden;margin-bottom:13px}
.t .por span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:14px;
  text-align:center;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:#8A5A3F;font-weight:600}
.t b{display:block;font-family:var(--d);font-size:1.06rem;color:var(--pine)}
.t em{display:block;font-style:normal;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-5);margin-top:3px}

/* ---------- about ---------- */
.about{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:end}
.pair figcaption{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
  margin-top:9px;text-align:center}
.pair .realph{aspect-ratio:4/3;border-radius:0;background:linear-gradient(150deg,#9FB08F,#6E8465 60%,#4B6047);
  position:relative;overflow:hidden}
.pair .realph span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  padding:16px;text-align:center;color:rgba(255,255,255,.9);font-size:.74rem;font-style:italic;line-height:1.4}

/* Discipline contact-sheet galleries. */
.rh-painting-student-creations,.rh-pottery-gallery-section,.rh-needlework-gallery-section,.rh-drama-dance-gallery-section,.rh-discipline-mixed-gallery-section{overflow:hidden}
.rh-painting-student-creations__intro,.rh-pottery-gallery-section__intro,.rh-needlework-gallery-section__intro,.rh-drama-dance-gallery-section__intro,.rh-discipline-mixed-gallery-section__intro{max-width:66ch}
.rh-discipline-mixed-gallery-section__consent{margin-top:10px}
.rh-painting-student-gallery,.rh-pottery-gallery,.rh-needlework-gallery,.rh-drama-dance-gallery,.rh-discipline-mixed-gallery{display:block;column-count:4;column-gap:12px;gap:12px}
.rh-painting-student-gallery__item,.rh-pottery-gallery__item,.rh-needlework-gallery__item,.rh-drama-dance-gallery__item,.rh-discipline-mixed-gallery__item{display:inline-block;width:100%;margin:0 0 12px;border-radius:0;overflow:hidden;background:var(--paper-w);box-shadow:none;min-width:0;border:1px solid rgba(95,122,99,.18);break-inside:avoid;vertical-align:top}
.rh-discipline-mixed-gallery__item--portrait,.rh-discipline-mixed-gallery__item--landscape,.rh-discipline-mixed-gallery__item--square,.rh-discipline-mixed-gallery__item--slot-1,.rh-discipline-mixed-gallery__item--slot-2,.rh-discipline-mixed-gallery__item--slot-3,.rh-discipline-mixed-gallery__item--slot-4{display:inline-block;width:100%;break-inside:avoid;margin:0 0 12px;vertical-align:top}
.rh-painting-student-gallery__item picture,.rh-painting-student-gallery__item img,.rh-pottery-gallery__item picture,.rh-pottery-gallery__item img,.rh-needlework-gallery__item picture,.rh-needlework-gallery__item img,.rh-drama-dance-gallery__item picture,.rh-drama-dance-gallery__item img,.rh-discipline-mixed-gallery__item picture,.rh-discipline-mixed-gallery__item img{display:block;width:100%;height:auto}
.rh-painting-student-gallery__item picture,.rh-pottery-gallery__item picture,.rh-needlework-gallery__item picture,.rh-drama-dance-gallery__item picture,.rh-discipline-mixed-gallery__item picture{padding:8px;background:linear-gradient(180deg,var(--paper-w),var(--sage-1))}
.rh-painting-student-gallery__item img,.rh-pottery-gallery__item img,.rh-needlework-gallery__item img,.rh-drama-dance-gallery__item img,.rh-discipline-mixed-gallery__item img{block-size:auto;height:auto;inline-size:100%;width:100%;background:var(--paper-w);border-radius:0;margin:0 auto}
.rh-painting-student-gallery__item figcaption,.rh-pottery-gallery__item figcaption,.rh-needlework-gallery__item figcaption,.rh-drama-dance-gallery__item figcaption,.rh-discipline-mixed-gallery__item figcaption{padding:10px 14px;background:var(--paper);color:var(--pine);font-size:.78rem;font-weight:700;line-height:1.35}
.rh-painting-student-creations__admin-note,.rh-pottery-gallery-section__admin-note,.rh-needlework-gallery-section__admin-note,.rh-drama-dance-gallery-section__admin-note,.rh-discipline-mixed-gallery-section__admin-note{margin-top:18px;max-width:72ch}
@media(max-width:900px){.rh-painting-student-gallery,.rh-pottery-gallery,.rh-needlework-gallery,.rh-drama-dance-gallery,.rh-discipline-mixed-gallery{column-count:3;column-gap:12px;gap:12px}}
@media(max-width:599px){.rh-painting-student-gallery,.rh-pottery-gallery,.rh-needlework-gallery,.rh-drama-dance-gallery,.rh-discipline-mixed-gallery{column-count:2;column-gap:12px;gap:12px}.rh-painting-student-gallery__item figcaption,.rh-pottery-gallery__item figcaption,.rh-needlework-gallery__item figcaption,.rh-drama-dance-gallery__item figcaption,.rh-discipline-mixed-gallery__item figcaption{padding:8px 10px;font-size:.72rem}}

/* ---------- footer ---------- */
footer{background:var(--pine);color:#C9D4CD;padding:64px 0 30px;font-size:.92rem}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
footer h4{font-family:var(--d);color:var(--paper);font-size:1rem;margin-bottom:14px;font-weight:600}
footer ul{list-style:none;display:grid;gap:9px}
footer a{color:#C9D4CD}
footer a:hover{color:var(--paper);text-decoration:underline}
.fbot{border-top:1px solid rgba(255,255,255,.13);margin-top:44px;padding-top:22px;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.82rem;color:#93A29A}
.fmark{font-family:var(--d);font-size:1.3rem;color:var(--paper);letter-spacing:.03em;line-height:1}
.fmark small{display:block;font-family:var(--b);font-size:.53rem;letter-spacing:.4em;color:#D9A87F;margin-top:5px}

@media (max-width:900px){
  body{font-size:16px}
  .wrap{padding:0 22px}
  .hero{padding:44px 0 52px}
  .hero .wrap{grid-template-columns:1fr;gap:34px}
  .art{order:-1}
  .hero .lede{max-width:none}
  .credits,.hact{display:none}
  .band{padding:60px 0}
  .tiles{grid-template-columns:1fr;gap:18px}
  .tile{aspect-ratio:1/1}
  .evs{grid-template-columns:1fr}
  .split,.about{grid-template-columns:1fr;gap:32px}
	.rh-painting-student-gallery,.rh-pottery-gallery,.rh-needlework-gallery,.rh-drama-dance-gallery,.rh-discipline-mixed-gallery{column-count:3;column-gap:12px;gap:12px}
  .teach{grid-template-columns:1fr 1fr;gap:18px}
  .fgrid{grid-template-columns:1fr 1fr;gap:30px}
}
@media (max-width:599px){
  .rh-painting-student-gallery,.rh-pottery-gallery,.rh-needlework-gallery,.rh-drama-dance-gallery,.rh-discipline-mixed-gallery{column-count:2;column-gap:12px;gap:12px}
	.rh-painting-student-gallery__item picture,.rh-pottery-gallery__item picture,.rh-needlework-gallery__item picture,.rh-drama-dance-gallery__item picture,.rh-discipline-mixed-gallery__item picture{padding:8px}
}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Shared approved site stylesheet. */
/* ============================================================
   Riverhouse Create — Phase 1 site stylesheet
   Reference implementation. Port this into the theme; do not
   rewrite it from the token file.
   ============================================================ */
:root{
  --fs-hero:clamp(38px, 4.6vw, 58px); --fs-h1:clamp(32px, 3.8vw, 48px); --fs-h2:clamp(25px, 3vw, 34px); --fs-h3:21px; --fs-h4:19px; --fs-lede:19px; --fs-body:17px; --fs-sm:15.5px; --fs-meta:14.5px; --fs-fine:13.5px; --fs-micro:11.5px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:22px; --sp-6:30px; --sp-7:40px; --sp-8:54px; --sp-9:72px; --sp-10:96px;
  --ink:#14201B; --river:#2C463A; --paper:#F0EADE; --surface:#F7F3EA; --ground:#EFE9DD; --rust:#B04E28; --clay:#B08D62; --tx:#1A2721; --tx-2:#4A5B52; --tx-3:#77877D; --rule:#D6CBB6; --on-ink:#EDE6D8; --on-ink-2:#9FB0A4;
  --d:"Fraunces",Georgia,serif; --b:"Source Sans 3",system-ui,sans-serif; --max:1200px; --r:0;
  --clay-d:var(--rust); --clay-l:var(--rust); --clay-100:var(--surface); --pine:var(--ink); --pine-7:var(--river); --pine-5:var(--river); --sage:var(--tx-3); --sage-4:var(--tx-3); --sage-2:var(--rule); --sage-1:var(--surface); --paper-w:var(--surface); --white:var(--surface); --ink-5:var(--tx-2); --ink-3:var(--tx-3); --river-1:var(--surface); --ok:var(--river); --ok-1:var(--surface); --warn:var(--rust); --warn-1:var(--surface); --bad:var(--rust); --bad-1:var(--surface);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:hidden;max-width:100%}
body{font-family:var(--b);color:var(--ink);background:var(--paper);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.19em;text-transform:uppercase;color:var(--clay)}
h1,h2,h3,h4{font-family:var(--d);color:var(--pine);font-weight:600;letter-spacing:-.012em}
h1{font-size:clamp(2.4rem,1.3rem+3.1vw,3.6rem);line-height:1.05}
h2{font-size:clamp(1.8rem,1.25rem+1.7vw,2.5rem);line-height:1.14}
h3{font-size:1.26rem;line-height:1.26}
h4{font-size:1.05rem}
p{max-width:62ch}
.lede{font-size:1.17rem;line-height:1.56}
.muted{color:var(--ink-5)} .sm{font-size:.9rem;line-height:1.5}
.xs{font-size:.79rem;line-height:1.45;color:var(--ink-5)}
.center{text-align:center}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;
  padding:14px 30px;border-radius:0;font:inherit;font-weight:600;font-size:1.02rem;cursor:pointer;
  border:1.5px solid transparent;transition:.18s cubic-bezier(.2,0,.2,1)}
.btn--p{background:var(--rust);color:#fff;box-shadow:none}
.btn--p:hover{background:#8F3E1F;transform:translateY(-1px);box-shadow:none}
.btn--s{border-color:var(--pine-7);color:var(--pine-7)}
.btn--s:hover{background:var(--pine-7);color:var(--paper)}
.btn--sm{min-height:44px;padding:10px 20px;font-size:.94rem}
.btn[disabled]{background:var(--sage-2);color:var(--ink-5);cursor:not-allowed;box-shadow:none;transform:none}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{
  outline:2px solid var(--river);outline-offset:3px}
.tlink{display:inline-flex;align-items:center;gap:7px;color:var(--river);font-weight:600;
  border-bottom:1.5px solid rgba(47,98,117,.32);padding-bottom:2px}
.tlink:hover{border-bottom-color:var(--river)}

/* header */
header{background:var(--paper);border-bottom:1px solid rgba(95,122,99,.18);position:relative;z-index:5}
.hrow{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:20px 0}
.mark{display:inline-flex;align-items:center;gap:10px;font-family:var(--d);font-size:1.44rem;font-weight:600;color:var(--pine);letter-spacing:.03em;line-height:1;white-space:nowrap}
.mark-watercolour{display:inline-flex;inline-size:48px;block-size:48px;flex:0 0 48px}
.mark-watercolour img{inline-size:48px;block-size:48px;object-fit:contain;mix-blend-mode:multiply}
.mark small{display:block;font-size:.56rem;letter-spacing:.42em;color:var(--clay);font-weight:600;
  margin-top:5px;font-family:var(--b);padding-left:2px}
nav ul{display:flex;gap:24px;list-style:none;font-size:.93rem;font-weight:500}
nav a{color:var(--pine-7);padding:6px 0;border-bottom:2px solid transparent}
nav a:hover,nav a[aria-current]{border-bottom-color:var(--clay)}
.rh-mobile-primary-nav{display:none}
.hact{display:flex;align-items:center;gap:14px}
.credits{display:inline-flex;align-items:center;gap:8px;background:var(--sage-1);color:var(--pine);
  border-radius:0;padding:8px 16px;font-size:.85rem;font-weight:600;white-space:nowrap}
.credits i{width:7px;height:7px;border-radius:0;background:var(--ok);display:block}

/* credit bar — persistent, signed in */
.creditbar{background:var(--ok-1);border-bottom:1px solid rgba(46,111,78,.22)}
.creditbar .wrap{display:flex;align-items:center;gap:16px;padding:11px 32px;font-size:.9rem;flex-wrap:wrap}
.creditbar b{color:var(--ok);font-weight:700}

/* bands */
.band{padding:88px 0}
.band--w{background:var(--paper-w)}
.band--sage{background:linear-gradient(180deg,var(--sage-1),#DFE7DB)}
.band--pine{background:var(--pine);color:#DCE4DE}
.band--pine h1,.band--pine h2,.band--pine h3{color:var(--paper)}
.band--tight{padding:52px 0}
.wave{display:block;width:100%;height:44px}
.shead{max-width:62ch;margin-bottom:42px}
.shead h2{margin:12px 0}

/* page hero */
.phero{padding:56px 0 44px}
.phero h1{margin:14px 0 16px}
.crumb{font-size:.84rem;color:var(--ink-5);margin-bottom:6px}
.crumb a{color:var(--river)}

/* image placeholders — tonally correct so composition reads true */
.ph{position:relative;overflow:hidden;border-radius:0;
  background:linear-gradient(150deg,#7E9480,#5A7460 48%,#3E5A48)}
.ph--paint{background:linear-gradient(150deg,#8C9C7E,#677E5D 48%,#44573D)}
.ph--pot{background:linear-gradient(150deg,#B08668,#8C6249 48%,#5E4030)}
.ph--needle{background:linear-gradient(150deg,#8496A0,#5F7681 48%,#3F5560)}
.ph--drama{background:linear-gradient(150deg,#A98070,#8A5B50 48%,#5C3A34)}
.ph--warm{background:linear-gradient(150deg,#A08C6E,#7C6647 55%,#54432E)}
.ph__media{position:absolute;inset:0;display:block;background:inherit}
.ph__media img{width:100%;height:100%;object-fit:cover;display:block}
.rh-discipline-page-needlework .ph--needle .ph__media img{width:100%;height:auto;min-height:100%;object-fit:cover}
.ph .tex{position:absolute;inset:0;opacity:.3;
  background-image:radial-gradient(rgba(255,255,255,.5) 1px,transparent 1px);background-size:15px 15px}
.ph .brief{position:absolute;inset:0;display:flex;align-items:flex-end;padding:20px;
  color:rgba(255,255,255,.9);font-size:.78rem;font-style:italic;line-height:1.45;
  background:linear-gradient(180deg,rgba(22,48,42,0) 45%,rgba(22,48,42,.6))}
.ph:has(picture,img) .tex,
.ph:has(picture,img) .brief{display:none}
.ph--portrait{aspect-ratio:4/5;background:linear-gradient(160deg,#E9D3C2,#D9BCA6)}
.ph--portrait .brief{color:#8A5A3F;font-style:normal;font-size:.68rem;letter-spacing:.09em;
  text-transform:uppercase;font-weight:600;background:none;align-items:center;justify-content:center;text-align:center}

/* cards */
.card{background:var(--white);border:1px solid rgba(95,122,99,.24);border-radius:0;
  box-shadow:none}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split--wide{grid-template-columns:1.15fr .85fr}

/* availability — dot AND words, always */
.avail{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600}
.avail i{width:9px;height:9px;border-radius:0;flex:none}
.i-ok{background:var(--ok)} .i-w{background:var(--warn)} .i-b{background:var(--bad)}
.avail.ok{color:var(--ok)} .avail.w{color:var(--warn)} .avail.b{color:var(--bad)}
.badge{display:inline-block;border-radius:0;padding:5px 12px;font-size:.71rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;background:var(--clay-100);color:var(--clay-d)}
.badge--sage{background:var(--sage-1);color:var(--pine-7)}
.badge--ok{background:var(--ok-1);color:var(--ok)}

/* session rows */
.sess{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;
  padding:22px;border-bottom:1px solid rgba(95,122,99,.2)}
.sess:last-child{border-bottom:0}
.sess .date{text-align:center;min-width:64px}
.sess .date .d{font-family:var(--d);font-size:1.7rem;color:var(--pine);line-height:1;font-weight:600}
.sess .date .m{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-5);margin-top:3px}
.sess .meta{font-size:.9rem;color:var(--ink-5);margin-top:4px}
.sess .act{display:flex;flex-direction:column;align-items:flex-end;gap:9px}
.tutor{display:inline-flex;align-items:center;gap:9px;font-size:.86rem;color:var(--ink-5)}
.tutor .av{width:34px;height:34px;border-radius:0;background:linear-gradient(160deg,#E9D3C2,#D9BCA6);flex:none}

/* price */
.price{font-family:var(--d);font-size:1.42rem;color:var(--pine);font-weight:600;font-variant-numeric:tabular-nums}
.price--lg{font-size:2.6rem;line-height:1}

/* next-times booking block (discipline pages) + row price line */
.sess .fee{color:var(--clay);font-weight:600;margin-top:2px}
.rh-next-times .shead p{max-width:56ch}
.rh-notify-form{margin:0}
.rh-notify-form--empty{max-width:560px}
.rh-notify-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.rh-notify-field{margin:0;flex:1;min-width:180px;max-width:280px}
.rh-notify-field input{min-height:44px;padding:10px 13px}
.rh-notify-submit{flex:none;min-height:44px}

/* forms */
.field{margin-bottom:20px;max-width:440px}
label{display:block;font-weight:600;font-size:.9rem;color:var(--pine);margin-bottom:7px}
input,select,textarea{width:100%;max-width:100%;min-height:52px;padding:13px 15px;border:1.5px solid var(--sage-4);
  border-radius:0;background:var(--white);font:inherit;color:var(--ink)}
.rhc-class-request-form{max-width:720px;width:100%;overflow-wrap:anywhere}
.rhc-class-request-form p{max-width:100%}
.rhc-class-request-form input,.rhc-class-request-form select,.rhc-class-request-form textarea,.rhc-class-request-form button{max-width:100%}
input[type=checkbox],input[type=radio]{width:auto;max-width:none;min-height:0;padding:0;display:inline-block;vertical-align:middle;margin:0 .5em 0 0}
input:focus,select:focus,textarea:focus{border-color:var(--river);outline:2px solid var(--river);outline-offset:1px}
.hint{font-size:.82rem;color:var(--ink-5);margin-top:6px}
.err input{border-color:var(--bad)}
.errmsg{color:var(--bad);font-size:.86rem;margin-top:7px;font-weight:600}
.check{display:flex;gap:12px;align-items:flex-start;max-width:520px}
.check input{width:22px;height:22px;min-height:22px;flex:none;margin-top:3px}
.check label{font-weight:400;color:var(--ink);margin:0}

/* stepper */
.stepper{display:inline-flex;align-items:center;gap:0;border:1.5px solid var(--sage-4);border-radius:0;overflow:hidden}
.stepper button{width:52px;height:52px;border:0;background:var(--white);font-size:1.4rem;color:var(--pine);cursor:pointer}
.stepper button:hover{background:var(--sage-1)}
.stepper span{min-width:60px;text-align:center;font-family:var(--d);font-size:1.3rem;font-weight:600;color:var(--pine)}

/* steps */
.steps{list-style:none;display:grid;gap:0;counter-reset:s}
.step{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:26px 0;
  border-bottom:1px solid rgba(95,122,99,.2)}
.step:last-child{border-bottom:0}
.step .n{width:38px;height:38px;border-radius:0;background:var(--pine);color:var(--paper);
  display:flex;align-items:center;justify-content:center;font-family:var(--d);font-weight:600;font-size:1.05rem}
.step.done .n{background:var(--ok)}
.step.now .n{background:var(--clay)}
.step h3{margin-bottom:6px}

/* summary rail */
.rail{background:var(--white);border:1px solid rgba(95,122,99,.24);border-radius:0;padding:26px;
  position:sticky;top:24px}
.rail .row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;font-size:.94rem;
  border-bottom:1px solid rgba(95,122,99,.16)}
.rail .row:last-of-type{border-bottom:0}
.rail .row b{font-weight:700;color:var(--pine)}
.rail .tot{background:var(--ok-1);border-radius:0;padding:14px 16px;margin-top:14px}

/* table */
table{width:100%;border-collapse:collapse;font-size:.94rem}
th{text-align:left;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-5);
  font-weight:600;padding:0 14px 12px 0;border-bottom:1.5px solid var(--sage-2)}
td{padding:15px 14px 15px 0;border-bottom:1px solid rgba(95,122,99,.15);vertical-align:top}
td.num{font-variant-numeric:tabular-nums;font-weight:600;text-align:right;padding-right:0}
.pos{color:var(--ok)} .neg{color:var(--ink-5)}

/* notice */
.notice{border-radius:0;padding:22px 24px;border-left:4px solid var(--river);background:var(--river-1)}
.notice--ok{border-left-color:var(--ok);background:var(--ok-1)}
.notice--w{border-left-color:var(--warn);background:var(--warn-1)}
.notice--b{border-left-color:var(--bad);background:var(--bad-1)}
.notice h3{margin-bottom:5px}

/* legal and policy pages */
.rhc-legal-page{background:var(--paper);color:var(--ink);font-family:var(--b);overflow-x:clip}
.rhc-legal-hero h1{max-width:18ch}
.rhc-legal-hero .lede{max-width:64ch}
.rhc-legal-section{padding-bottom:88px}
.rhc-legal-stack{display:grid;gap:24px;min-width:0}
.rhc-legal-card{padding:clamp(22px,3vw,34px);min-width:0;overflow-wrap:break-word}
.rhc-legal-card h2{margin:8px 0 12px}
.rhc-legal-card h3{margin:0 0 8px}
.rhc-legal-card p{max-width:none}
.rhc-legal-card--notice{background:linear-gradient(180deg,var(--sage-1),var(--paper-w));border-color:rgba(95,122,99,.32)}
.rhc-legal-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin-top:14px}
.rhc-legal-checklist{display:grid;gap:12px;margin:12px 0 0;padding-left:1.2rem}
.rhc-legal-checklist li{padding-left:.2rem}
.rhc-legal-link-list{display:grid;gap:12px;list-style:none;margin:18px 0 0;padding:0}
.rhc-legal-rail{min-width:0}
.rhc-policy-feature-grid .rhc-legal-card{height:100%}
.rhc-consent-choice-panel .hcta{margin-top:22px}

/* visit/program hub pages */
.rhc-visit-programs-page,.rhc-visit-hub-page{background:var(--paper);color:var(--ink);font-family:var(--b);overflow-x:clip}
.rhc-visit-hero h1{max-width:19ch}
.rhc-visit-hero .lede{max-width:64ch}
.rhc-visit-section{overflow-wrap:break-word}
.rhc-program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.rhc-program-card{display:grid;grid-template-columns:minmax(7.5rem,.82fr) minmax(0,1.18fr);gap:18px;padding:18px;min-width:0;height:100%;transition:.18s cubic-bezier(.2,0,.2,1)}
.rhc-program-card:hover,.rhc-visit-route-card:hover,.rhc-mini-path:hover{transform:translateY(-2px);box-shadow:none}
.rhc-program-card h3,.rhc-visit-route-card h3{margin:10px 0 8px}
.rhc-program-card p,.rhc-visit-route-card p,.rhc-visit-info-card p{max-width:none}
.rhc-program-card .tlink,.rhc-visit-route-card .tlink{margin-top:14px}
.rhc-visit-notice{min-width:0}
.rhc-visit-route-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:stretch}
.rhc-visit-route-card{display:flex;flex-direction:column;padding:24px;min-width:0;transition:.18s cubic-bezier(.2,0,.2,1)}
.rhc-visit-route-card .tlink{margin-top:auto;align-self:flex-start}
.rhc-visit-checklist{display:grid;gap:10px;margin:18px 0 0;padding-left:1.2rem;color:var(--ink-5)}
.rhc-visit-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-width:0}
.rhc-mini-path{display:grid;gap:4px;padding:20px;min-width:0;transition:.18s cubic-bezier(.2,0,.2,1)}
.rhc-mini-path strong{font-family:var(--d);font-size:1.18rem;color:var(--pine)}
.rhc-mini-path span{font-size:.9rem;color:var(--ink-5)}
.rhc-visit-info-card{padding:clamp(22px,3vw,34px);min-width:0}

/* filters */
.filters{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;padding:22px;background:var(--white);
  border:1px solid rgba(95,122,99,.24);border-radius:0;margin-bottom:32px}
.filters .field{margin:0;max-width:none;min-width:170px;flex:1}
.filters label{font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-5)}

/* footer */
footer{background:var(--pine);color:#C9D4CD;padding:64px 0 30px;font-size:.92rem}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
footer h4{color:var(--paper);font-size:1rem;margin-bottom:14px}
footer ul{list-style:none;display:grid;gap:9px}
footer a{color:#C9D4CD} footer a:hover{color:var(--paper);text-decoration:underline}
.fbot{border-top:1px solid rgba(255,255,255,.13);margin-top:44px;padding-top:22px;display:flex;
  justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.82rem;color:#93A29A}
.fmark{font-family:var(--d);font-size:1.3rem;color:var(--paper);letter-spacing:.03em;line-height:1}
.fmark small{display:block;font-family:var(--b);font-size:.53rem;letter-spacing:.4em;color:#D9A87F;margin-top:5px}

@media (max-width:900px){
  body{font-size:16px}
  .wrap{padding:0 22px}
  .credits,.hact{display:none}
  .rh-mobile-primary-nav{display:block;position:relative;margin-left:auto}
  .rh-mobile-primary-nav summary{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:10px 16px;border:1.5px solid var(--pine-7);border-radius:0;color:var(--pine-7);font-weight:700;cursor:pointer;list-style:none}
  .rh-mobile-primary-nav summary::-webkit-details-marker{display:none}
  .rh-mobile-primary-nav summary::before{content:"☰";font-size:1.1rem;line-height:1;margin-right:8px}
  .rh-mobile-primary-nav[open] summary::before{content:"×"}
  .rh-mobile-primary-nav nav{display:none;position:fixed;right:14px;top:56px;z-index:1000;width:min(19rem,calc(100vw - 44px));max-inline-size:calc(100vw - 2rem);max-height:calc(100vh - 72px);overflow:auto;padding:14px;border:1px solid rgba(95,122,99,.28);border-radius:0;background:var(--paper-w);box-shadow:0 18px 40px rgba(20,49,43,.18)}
  .rh-mobile-primary-nav[open] nav{display:block}
  /* RH-FRONTEND-VISIBLE-009R3 keeps shared-header mobile nav source-testable on current main. */
  .rhc-phase1-header .wp-block-navigation{display:none}
  .rhc-phase1-header .rh-global-mobile-nav{display:block}
  .rhc-phase1-header .rh-global-mobile-nav nav{width:min(19rem,calc(100vw - 44px));max-inline-size:calc(100vw - 2rem);max-height:calc(100vh - 72px);overflow:auto}
  .rh-mobile-primary-nav nav ul{display:grid;gap:4px;list-style:none;font-size:1rem}
  .rh-mobile-primary-nav nav a{display:block;min-height:44px;padding:11px 12px;border-radius:0;color:var(--pine-7);border-bottom:0}
  .rh-mobile-primary-nav nav a:hover,.rh-mobile-primary-nav nav a:focus-visible{background:var(--sage-1);text-decoration:none}
  .band{padding:56px 0}
  .grid2,.grid3,.grid4,.split,.split--wide{grid-template-columns:1fr;gap:22px}
  .rhc-legal-section{padding-bottom:64px}
  .rhc-legal-list-grid{grid-template-columns:1fr}
  .rhc-legal-card{padding:22px}
  .rhc-program-grid{grid-template-columns:1fr 1fr;gap:18px}
  .rhc-program-card{grid-template-columns:1fr;padding:18px}
  .rhc-program-card .ph--portrait{aspect-ratio:4/5}
  .rhc-visit-route-grid{grid-template-columns:1fr 1fr}
  .sess{grid-template-columns:auto 1fr;gap:16px}
  .sess .act{grid-column:1/-1;align-items:stretch;flex-direction:row;flex-wrap:wrap}
  .sess .act .btn{flex:1}
  .rail{position:static}
  .fgrid{grid-template-columns:1fr 1fr;gap:30px}
  table{font-size:.88rem}
}
@media (max-width:599px){
  header .wrap.hrow{gap:8px;padding-left:12px;padding-right:12px;overflow:visible}
  header .mark{flex:1 1 auto;font-size:1.22rem;letter-spacing:.01em;min-width:0;overflow:hidden;text-overflow:ellipsis}
  header .mark small{font-size:.5rem;letter-spacing:.28em;padding-left:1px}
  header .rh-mobile-primary-nav{flex:0 0 auto;margin-left:0;max-width:84px;min-width:0;overflow:visible}
  header .rh-mobile-primary-nav summary{max-width:84px;min-width:0;padding:8px 10px;white-space:nowrap}
  header .rh-mobile-primary-nav summary::before{margin-right:6px}
  .tile{aspect-ratio:1/1;min-height:0}
  .tile .brief{top:18px;left:18px;right:18px;max-width:min(28ch,calc(100% - 36px));line-height:1.5}
  .tile .cap{left:20px;right:20px;bottom:20px;display:grid;gap:5px}
  .tile .cap h3{font-size:clamp(1.42rem,7vw,1.62rem);line-height:1.12;margin-bottom:0}
  .tile .cap p{max-width:100%;margin:0;line-height:1.42}
  .tile .cap .go{margin-top:6px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media (max-width:599px){
  .rhc-legal-page .btn{width:100%;white-space:normal;text-align:center}
  .rhc-legal-page .hcta{display:grid;gap:12px}
  .rhc-program-grid,.rhc-visit-route-grid,.rhc-visit-mini-grid{grid-template-columns:1fr}
  .rhc-visit-programs-page .btn,.rhc-visit-hub-page .btn{width:100%;white-space:normal;text-align:center}
  .rhc-visit-programs-page .hcta,.rhc-visit-hub-page .hcta{display:grid;gap:12px}
  .rhc-class-request-form input,.rhc-class-request-form select,.rhc-class-request-form textarea,.rhc-class-request-form button{width:100%}
  .rhc-class-request-form select{min-width:0}
  .rh-class-detail-page .btn,.rh-class-detail-page .rh-request-actions .btn{width:100%;white-space:normal;text-align:center}
  .rh-classes-header .wrap.hrow{gap:8px;padding-left:12px;padding-right:12px;overflow:visible}
  .rh-classes-header .mark{flex:1 1 auto;font-size:1.22rem;letter-spacing:.01em;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .rh-classes-header .mark small{font-size:.5rem;letter-spacing:.28em;padding-left:1px}
  .rh-classes-header .rh-mobile-primary-nav{flex:0 0 auto;margin-left:0;max-width:84px;min-width:0;overflow:visible}
  .rh-classes-header .rh-mobile-primary-nav summary{max-width:84px;min-width:0;padding:8px 10px;white-space:nowrap}
  .rh-classes-header .rh-mobile-primary-nav summary::before{margin-right:6px}
  .rh-classes-page,.rh-classes-page *{box-sizing:border-box;min-width:0}
  .rh-classes-page{max-width:100%;overflow-x:hidden}
  .rh-classes-page .wrap,.rh-classes-creditbar .wrap{width:100%;max-width:100%;padding-left:16px;padding-right:16px}
  .rh-classes-page .hrow{gap:12px;max-width:100%;min-width:0}
  .rh-classes-page .rh-mobile-primary-nav{max-width:100%;min-width:0}
  .rh-classes-page .rh-mobile-primary-nav summary{max-width:calc(100vw - 32px);white-space:normal}
  .rh-classes-page .rh-mobile-primary-nav nav{right:0;max-width:calc(100vw - 32px)}
  .rh-classes-creditbar .wrap{align-items:flex-start;display:grid;gap:8px;grid-template-columns:1fr}
  .rh-classes-creditbar .wrap > span{margin-left:0!important;max-width:100%;overflow-wrap:anywhere}
  .rh-classes-page .filters{padding:16px;max-width:100%;overflow:hidden}
  .rh-classes-page .filters .field{min-width:0;width:100%;flex-basis:100%}
  .rh-classes-page .sess{grid-template-columns:1fr;gap:12px;max-width:100%;overflow:hidden}
  .rh-classes-page .sess .date{text-align:left;min-width:0}
  .rh-classes-page .sess .act{display:grid;grid-template-columns:1fr;width:100%;align-items:stretch}
  .rh-classes-page .sess .act .btn,.rh-classes-page .btn{width:100%;max-width:100%;white-space:normal;text-align:center}
}


/* Faculty approved comp. Source: comps/faculty.html */
.fac{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.person .por{aspect-ratio:4/5;border-radius:0;overflow:hidden;margin-bottom:14px;position:relative;background:linear-gradient(160deg,#E9D3C2,#D9BCA6)}
.person .por span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:#8A5A3F;font-weight:600;line-height:1.5}
.person .por img{width:100%;height:100%;object-fit:cover;display:block}
.person h3{margin-bottom:3px}
.person .disc{font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;color:var(--clay);font-weight:600;margin-bottom:9px}
@media(max-width:900px){.fac{grid-template-columns:1fr 1fr;gap:20px}}

/* Events approved comp. Source: comps/events.html */
.rhc-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.rhc-events-page .rhc-events-hero h1{max-width:20ch}
.rhc-events-page .rhc-events-hero .lede{max-width:60ch}
.rhc-events-list-section{padding-bottom:88px}
.rhc-event-card{background:var(--white);border:1px solid rgba(95,122,99,.24);border-radius:0;overflow:hidden;display:grid;grid-template-columns:.9fr 1.1fr;box-shadow:none;margin-bottom:26px}
.rhc-event-card .media{position:relative;min-height:260px;border-radius:0}
.rhc-event-card [class*="rhc-event-media--"]{align-self:start;aspect-ratio:4/3}
.rhc-event-card .rhc-event-media--needlework-open-studio img{object-position:center 25%}
.rhc-event-card .rhc-event-media--drawing-painting-open-studio img{object-position:center 25%}
.rhc-event-card .body{padding:30px;min-width:0}
.rhc-event-card h3{font-size:1.7rem;margin:12px 0 6px}
.rhc-event-when{margin-bottom:14px}
.rhc-event-day-list{list-style:none;display:grid;gap:10px;margin:16px 0 20px;padding:16px 0 0;border-top:1px solid rgba(95,122,99,.2)}
.rhc-event-day-list li{display:flex;align-items:center;gap:12px;min-height:44px;padding:6px 0;min-width:0}
.rhc-event-day-list .lbl{font-weight:600;min-width:0}
.rhc-event-day-list .st{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0;white-space:nowrap}
.rhc-event-day-list .avail{font-size:0;gap:0;flex:none}
.rhc-warn{color:var(--warn);font-weight:600}.rhc-bad{color:var(--bad);font-weight:600}
.rhc-events-notice{margin-top:36px}
.rhc-events-notice p{max-width:none;margin-top:6px}
@media(max-width:900px){
  .rhc-event-card{grid-template-columns:1fr}
  .rhc-event-card .media{min-height:190px}
  .rhc-event-card .body{padding:24px}
  .rhc-event-day-list li{align-items:flex-start;flex-wrap:wrap;gap:8px 10px}
  .rhc-event-day-list .st{width:100%;margin-left:21px;justify-content:flex-start;flex-wrap:wrap;white-space:normal}
}
@media(max-width:480px){
  .rhc-events-list-section{padding-bottom:64px}
  .rhc-event-card .body{padding:22px 18px}
  .rhc-event-day-list .st{margin-left:19px}
  .rhc-event-day-list .btn{width:100%;max-width:230px}
}


/* RH-NEXT-EVENTS-017: visitor-facing event details and register-interest seam. */
.rhc-events-page .rhc-home-upcoming-events{padding:0;background:transparent}
.rhc-events-page .rhc-home-upcoming-events .rh-container{max-width:none;padding:0}
.rhc-events-page .rhc-event-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
.rhc-event-card{background:var(--white);border:1px solid rgba(95,122,99,.24);border-radius:0;overflow:hidden;box-shadow:none}
.rhc-event-card-body{padding:22px;display:grid;gap:14px}
.rhc-event-card-facts{display:grid;gap:10px;margin:0;padding:14px 0;border-top:1px solid rgba(95,122,99,.2);border-bottom:1px solid rgba(95,122,99,.2)}
.rhc-event-card-facts div{display:grid;gap:3px}
.rhc-event-card-facts dt,.rhc-event-card-facts dd{margin:0}
.rhc-ticket-day-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.rhc-ticket-day-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px;align-items:center;border:1px solid rgba(95,122,99,.18);border-radius:0;padding:10px;background:var(--paper-w)}
.rhc-ticket-day-list span{font-size:.9rem;color:var(--ink-5)}
.rhc-event-interest-panel{margin-top:28px}
.rhc-interest-link-list{list-style:none;margin:14px 0 0;padding:0;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.rhc-event-detail{background:var(--paper);color:var(--ink);font-family:var(--b);line-height:1.62;padding:48px 24px 72px}
.rhc-event-detail__hero,.rhc-event-detail__summary,.rhc-event-detail__registration{max-width:960px;margin:0 auto 28px;background:var(--paper-w);border:1px solid rgba(95,122,99,.22);border-radius:0;padding:clamp(24px,4vw,44px)}
.rhc-event-detail__hero{background:linear-gradient(180deg,var(--sage-1),var(--paper-w))}
.rhc-event-detail__datetime{font-weight:700;color:var(--pine-7)}
.rhc-event-detail__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0 0}
.rhc-event-detail__facts div{border:1px solid rgba(95,122,99,.2);border-radius:0;background:var(--white);padding:14px}
.rhc-event-detail__facts dt{font-weight:700;color:var(--pine);margin:0 0 4px}
.rhc-event-detail__facts dd{margin:0;color:var(--ink-5)}
.rhc-event-detail__actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.rhc-event-detail__checkout .rhc-event-checkout{max-width:720px}
.rhc-event-checkout__places,.rhc-event-checkout__price{font-weight:700;color:var(--pine-7)}
.rhc-event-checkout__notice,.rhc-event-checkout-preview{padding:12px 14px;border-left:4px solid var(--clay);background:var(--surface)}
.rhc-event-checkout__notice--error{border-left-color:#a33;color:#711}
.rhc-event-checkout__form{display:grid;gap:16px}
.rhc-event-checkout__lodge{display:grid;gap:10px;min-width:0;margin:0;padding:16px;border:1px solid rgba(95,122,99,.3)}
.rhc-event-checkout__lodge label{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:10px 0;cursor:pointer}
.rhc-event-checkout__lodge input{width:20px;height:20px;flex:0 0 auto;margin-top:2px}
.rhc-event-checkout__submit{min-height:48px;width:fit-content;max-width:100%;padding:12px 20px;border:0;background:var(--pine);color:var(--white);font:inherit;font-weight:700;cursor:pointer}
.rhc-event-checkout__submit:focus-visible,.rhc-event-checkout__signin a:focus-visible{outline:3px solid var(--clay);outline-offset:3px}
@media (max-width:900px){.rhc-events-page .rhc-event-card-grid{grid-template-columns:1fr}.rhc-ticket-day-list li{grid-template-columns:1fr}.rhc-interest-link-list{display:grid}.rhc-event-detail__facts{grid-template-columns:1fr}}
@media (max-width:600px){.rhc-event-detail{padding:28px 14px 52px}.rhc-event-detail__hero,.rhc-event-detail__summary,.rhc-event-detail__registration{padding:22px 18px}.rhc-event-checkout__submit{width:100%}}

/* Semantic interactive component kit. */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--river);outline-offset:3px}
.rhc-class-request-form :where(label,legend),.rhc-semantic-label{display:block;font-weight:700;color:var(--pine);margin-bottom:8px}
.rhc-class-request-form :where(input:not([type="checkbox"]):not([type="hidden"]),select,textarea){width:100%;min-height:52px;border:1.5px solid rgba(95,122,99,.5);background:var(--paper-w);color:var(--ink);font:inherit;padding:12px 14px;border-radius:0}
.rhc-class-request-form textarea{min-height:112px;resize:vertical}
.rhc-control-help{display:block;margin-top:6px;color:var(--ink-5);font-size:.84rem;line-height:1.45}
.rhc-chip-fieldset{border:0;margin:0 0 18px;padding:0}
.rhc-chip-options{display:flex;flex-wrap:wrap;gap:10px}
.rhc-chip-option{position:relative;display:inline-flex;align-items:center;gap:8px;margin:0;font-weight:700;color:var(--pine);cursor:pointer}
.rhc-chip-option input{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.rhc-chip-option span{display:inline-flex;align-items:center;min-height:42px;padding:9px 14px;border:1.5px solid rgba(95,122,99,.55);background:var(--paper-w);color:var(--pine);transition:.16s cubic-bezier(.2,0,.2,1)}
.rhc-chip-option input:checked + span{background:var(--sage-1);border-color:var(--pine-7)}
.rhc-chip-option input:focus-visible + span{outline:3px solid var(--river);outline-offset:3px}
.rhc-seat-stepper{display:grid;gap:8px;margin:0 0 18px}
.rhc-seat-stepper__controls{display:grid;grid-template-columns:52px minmax(72px,96px) 52px;gap:8px;align-items:center}
.rhc-stepper-button{min-height:52px;border:1.5px solid var(--pine-7);background:var(--paper-w);color:var(--pine);font:inherit;font-size:1.28rem;font-weight:700;cursor:pointer;border-radius:0}
.rhc-stepper-button:hover:not(:disabled){background:var(--sage-1)}
.rhc-stepper-button:disabled{cursor:not-allowed;color:var(--ink-3);border-color:rgba(95,122,99,.28);background:rgba(255,253,249,.6)}
.rhc-seat-stepper input[type="number"]{text-align:center;font-variant-numeric:tabular-nums}
.rhc-live-status{min-height:1.45em;color:var(--ink-5);font-size:.84rem}
.rhc-availability-panel{border:1px solid rgba(95,122,99,.24);background:var(--sage-1);padding:16px;margin:0 0 20px}
.rhc-hosted-fieldset{border:1px solid rgba(95,122,99,.24);padding:16px;background:var(--paper-w)}
.rhc-hosted-field{min-height:52px;border:1.5px dashed rgba(95,122,99,.55);background:var(--paper);display:flex;align-items:center;padding:0 14px;color:var(--ink-5)}
.rhc-checkbox-line{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-weight:600;color:var(--pine)}
.rhc-checkbox-line input{margin-top:.35em;inline-size:1.05em;block-size:1.05em;accent-color:var(--pine)}
.rhc-equal-pathways .wp-block-column{display:flex}
.rhc-discipline-pathway-card{display:flex;flex:1;flex-direction:column;gap:12px;border:1.5px solid rgba(95,122,99,.28);background:var(--paper-w);color:var(--ink);padding:22px;text-decoration:none}
.rhc-discipline-pathway-card span{margin-top:auto;color:var(--river);font-weight:700}
.rhc-discipline-pathway-card:hover{background:var(--sage-1)}


/* RH-VISUAL-P1-KIT-001 reusable layout primitives. */
.rh-kit-ground{background:var(--ink);color:var(--on-ink)}
.rh-kit-paper{background:var(--paper);color:var(--tx);border:1px solid var(--rule)}
.rh-kit-surface{background:var(--surface);color:var(--tx)}
.rh-kit-river-handoff{background:var(--river);color:var(--on-ink);border:1px solid rgba(199,164,124,.26)}
.rh-kit-river-handoff :where(h1,h2,h3,h4,p,a){color:inherit}
.rh-kit-ratio-hero,.rh-ratio-hero{aspect-ratio:3/2;object-fit:cover}
.rh-kit-ratio-documentary,.rh-kit-ratio-class,.rh-ratio-documentary,.rh-ratio-class{aspect-ratio:4/3;object-fit:cover}
.rh-kit-ratio-portrait,.rh-kit-ratio-standing-work,.rh-ratio-portrait,.rh-ratio-standing-work{aspect-ratio:4/5;object-fit:cover}
.rh-kit-card{background:var(--paper);border:1px solid var(--rule);color:var(--tx);box-shadow:none;border-radius:0}
.rh-kit-card-grid{display:grid;gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.tile .cap .go::after{content:"";inline-size:.62em;block-size:.62em;border-radius:50%;background:currentColor;display:inline-block;margin-left:var(--sp-2)}
main#riverhouse-public-main .rh-kit-river-handoff + .rh-kit-river-handoff{display:none}
.rh-kit-ml-auto{margin-left:auto}
.rh-kit-max-18ch{max-width:18ch}
.rh-kit-max-56ch{max-width:56ch}
.rh-kit-section-bottom{padding-bottom:var(--sp-10)}
.rh-kit-copy-note{margin:var(--sp-3) 0 var(--sp-4)}
.rh-kit-overflow-hidden{overflow:hidden}
.rh-kit-card-intro{padding:var(--sp-4) var(--sp-5) 0;margin:0}
.rh-kit-session-title{margin:var(--sp-2) 0 0}
.rh-kit-mt-6{margin-top:6px}
.rh-kit-mt-8{margin-top:var(--sp-2)}
.rh-kit-mt-9{margin-top:9px}
.rh-kit-mt-36{margin-top:36px}
.rh-kit-footer-blurb{margin-top:var(--sp-4);max-width:34ch;color:var(--on-ink-2)}
.rh-kit-pad-booking-hero{padding:var(--sp-10) var(--sp-7)}
.rh-kit-pad-block-60{padding-block:var(--sp-8)}
.rh-kit-pad-block-40{padding-block:var(--sp-7)}
.rhc-chip-input{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.rhc-chip-input:focus-visible + .rhc-chip-option{outline:2px solid var(--river);outline-offset:3px}
.rhc-chip-input:checked + .rhc-chip-option{background:var(--river);border-color:var(--river);color:var(--on-ink)}
.rhc-mobile-sticky-action{display:none}
.rhc-mobile-sticky-action__summary{margin:0;color:var(--on-ink);font-size:var(--fs-sm);font-weight:600;max-width:none}
.rhc-mobile-sticky-action__button{border:1px solid var(--on-ink);background:var(--on-ink);color:var(--ink);font:inherit;font-weight:600;min-block-size:44px;padding:var(--sp-2) var(--sp-4);cursor:pointer}
.rhc-mobile-sticky-action__button:focus-visible{outline:2px solid var(--on-ink);outline-offset:3px}
.rhc-kit-feedback-states{background:var(--ground);color:var(--tx);padding:var(--sp-8) var(--sp-5)}
.rhc-kit-feedback-states__grid{display:grid;gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin-top:var(--sp-6)}
.rhc-kit-empty,.rhc-kit-loading,.rhc-kit-error,.rhc-kit-validation{background:var(--surface);border:1px solid var(--rule);padding:var(--sp-5);display:grid;gap:var(--sp-3)}
.rhc-kit-error,.rhc-kit-validation{border-color:var(--rust)}
.rh-kit-session-title-link{color:inherit;text-decoration:none}
.rh-kit-session-title-link:focus-visible,.rh-kit-session-title-link:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em}
@media(max-width:720px){.rhc-class-request-form[data-rhc-mobile-sticky-form]{padding-bottom:calc(var(--sp-10) + env(safe-area-inset-bottom,0px))}.rhc-mobile-sticky-action[data-rhc-mobile-sticky-action]{position:fixed;inset-inline:var(--sp-3);inset-block-end:0;z-index:20;box-sizing:border-box;border:1px solid var(--rule);background:var(--ink);color:var(--on-ink);padding:var(--sp-3);padding-bottom:calc(var(--sp-3) + env(safe-area-inset-bottom,0px));display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);transform:translateY(110%);opacity:0;pointer-events:none}.rhc-mobile-sticky-action[data-rhc-mobile-sticky-action].is-visible{transform:translateY(0);opacity:1;pointer-events:auto}}

/* RH-FRONTEND-VISIBLE-009A current-source bridge: the canonical homepage already
   carries rh-* Phase 1 markup, but the comp stylesheet was not targeting it. */
.rhc-phase1-header {
  position: sticky;
  top: 0;
  z-index: 30;
  border-block-end: 1px solid rgba(95,122,99,.18);
  background: color-mix(in srgb, var(--paper) 94%, transparent);
  backdrop-filter: blur(12px);
}

.rhc-phase1-header > .wp-block-group.alignwide {
  max-inline-size: var(--max);
  margin-inline: auto;
}

.rh-wordmark {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--pine);
  font-family: var(--d);
  font-size: clamp(1.12rem, 1rem + .5vw, 1.34rem);
  font-weight: 600;
  letter-spacing: .02em;
  text-decoration: none;
}

.rh-wordmark img {
  inline-size: 48px;
  block-size: 48px;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.rhc-phase1-header .wp-block-navigation-item__content {
  border-block-end: 2px solid transparent;
  color: var(--pine-7);
  font-size: .92rem;
  font-weight: 500;
  padding-block: 6px;
}

.rhc-phase1-header .wp-block-navigation-item__content:hover,
.rhc-phase1-header .wp-block-navigation-item__content:focus-visible {
  border-block-end-color: var(--clay);
  text-decoration: none;
}

/* RH-FRONTEND-VISIBLE-009R: keep the global public nav reachable after the
   Phase 1 shell hides desktop nav on phone widths. */
.rhc-phase1-header .rh-global-mobile-nav {
  flex: 0 0 auto;
}

.rhc-phase1-header .rh-global-mobile-nav nav {
  box-sizing: border-box;
  max-inline-size: calc(100vw - 2rem);
}

@media (max-width: 900px) {
  .rhc-phase1-header > .wp-block-group.alignwide {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 12px;
  }

  .rhc-phase1-header .rh-wordmark {
    flex: 1 1 auto;
    min-inline-size: 0;
    overflow: hidden;
  }

  .rhc-phase1-header .rh-wordmark span {
    min-inline-size: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .rhc-phase1-header .wp-block-navigation {
    display: none;
  }

  .rhc-phase1-header .rh-global-mobile-nav {
    display: block;
    margin-left: auto;
    max-inline-size: 96px;
  }

  .rhc-phase1-header .rh-global-mobile-nav summary {
    box-sizing: border-box;
    max-inline-size: 96px;
    white-space: nowrap;
  }

  .rhc-phase1-header .rh-global-mobile-nav nav {
    right: 0;
  }
}

@media (max-width: 420px) {
  .rhc-phase1-header {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .rhc-phase1-header .rh-wordmark {
    font-size: 1.04rem;
  }

  .rhc-phase1-header .rh-wordmark img {
    inline-size: 40px;
    block-size: 40px;
  }

  .rhc-phase1-header .rh-global-mobile-nav nav {
    width: min(19rem, calc(100vw - 28px));
  }
}

.rh-homepage {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--b);
  line-height: 1.62;
  overflow: clip;
}

.rh-homepage :where(h1, h2, h3) {
  font-family: var(--d);
  color: var(--pine);
  font-weight: 600;
  letter-spacing: -.012em;
}

.rh-homepage h1 {
  font-size: clamp(2.6rem, 1.3rem + 3.6vw, 4.1rem);
  line-height: 1.03;
}

.rh-homepage h2 {
  font-size: clamp(1.9rem, 1.3rem + 1.9vw, 2.7rem);
  line-height: 1.12;
}

.rh-section {
  padding-block: clamp(3.75rem, 8vw, 5.75rem);
}

.rh-container {
  max-inline-size: var(--max);
  margin-inline: auto;
  padding-inline: clamp(1.375rem, 3vw, 2rem);
}

.rh-eyebrow {
  color: var(--clay);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.rh-lede {
  color: var(--ink-5);
  font-size: 1.19rem;
  line-height: 1.58;
}

.rh-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(3rem, 7vw, 5.25rem);
}

.rh-hero::before {
  content: "";
  position: absolute;
  inset-block: -16%;
  inset-inline-end: -14%;
  inline-size: min(62%, 48rem);
  background: radial-gradient(closest-side, rgba(143,168,143,.30), rgba(143,168,143,0) 72%);
  pointer-events: none;
  z-index: -1;
}

.rh-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(18rem, .98fr);
  gap: clamp(2.125rem, 5vw, 3.5rem);
  align-items: center;
}

.rh-hero h1 {
  max-inline-size: 12ch;
  margin-block: 20px 22px;
}

.rh-hero .rh-lede {
  max-inline-size: 34ch;
}

.rh-hero-actions,
.rh-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-block-start: 28px;
}

.rh-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 52px;
  padding: 14px 30px;
  border: 1.5px solid var(--clay);
  border-radius: 0;
  background: var(--clay);
  color: #fff;
  font-family: var(--b);
  font-weight: 600;
  text-decoration: none;
  transition: .18s cubic-bezier(.2,0,.2,1);
}

.rh-button:hover,
.rh-button:focus-visible {
  background: var(--clay-d);
  transform: translateY(-1px);
  text-decoration: none;
}

.rh-button.secondary {
  border-color: var(--pine-7);
  background: transparent;
  color: var(--pine-7);
}

.rh-button.secondary:hover,
.rh-button.secondary:focus-visible {
  background: var(--pine-7);
  color: var(--paper);
}

.rh-hero-note,
.rh-art-caption {
  color: var(--ink-5);
  font-size: .86rem;
}

.rh-hero-art img,
.rh-watercolour-full {
  inline-size: 100%;
  block-size: auto;
  mix-blend-mode: multiply;
}

.rh-art-caption {
  margin-block-start: 8px;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .15em;
}

.rh-band-surface {
  background: var(--paper-w);
}

.rh-band-muted {
  background: linear-gradient(180deg, var(--sage-1), #dfe7db);
}

.rh-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-block-end: 44px;
}

.rh-section-heading p {
  max-inline-size: 58ch;
}

.rh-discipline-grid,
.rh-teacher-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.rh-discipline-card,
.rh-instructor-card,
.rh-building-slot {
  border: 1px solid rgba(95,122,99,.24);
  border-radius: 0;
  background: var(--white);
  box-shadow: none;
}

.rh-discipline-card {
  overflow: hidden;
  color: var(--ink);
  text-decoration: none;
  transition: .22s cubic-bezier(.2,0,.2,1);
}

.rh-discipline-card:hover,
.rh-discipline-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: none;
  text-decoration: none;
}

.rh-discipline-card-body,
.rh-instructor-card {
  padding: 22px;
}

.rh-image-placeholder,
.rh-instructor-photo {
  display: grid;
  place-items: center;
  min-block-size: 12rem;
  padding: 18px;
  background:
    linear-gradient(180deg, rgba(22,48,42,0) 24%, rgba(22,48,42,.46) 100%),
    linear-gradient(150deg, #8fa88f, #5f7a63 52%, #3a6355);
  color: rgba(255,255,255,.92);
  text-align: center;
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.rh-image-placeholder em {
  display: block;
  max-inline-size: 30ch;
  margin-block-start: 8px;
  color: rgba(255,255,255,.86);
  font-size: .74rem;
  font-style: italic;
  font-weight: 400;
  letter-spacing: normal;
  line-height: 1.45;
  text-transform: none;
}

.rh-text-action {
  display: inline-flex;
  margin-block-start: 12px;
  color: var(--river);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.rh-field-trip,
.rh-about-grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(2rem, 5vw, 3.75rem);
  align-items: center;
}

.rh-about-grid {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
}

.rhc-site-footer .rhc-footer-columns {
  max-inline-size: var(--max);
  margin-inline: auto;
}

@media (max-width: 960px) {
  .rh-hero-grid,
  .rh-field-trip,
  .rh-about-grid {
    grid-template-columns: 1fr;
  }

  .rh-hero-art {
    order: -1;
    max-inline-size: 26rem;
  }

  .rh-discipline-grid,
  .rh-teacher-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rh-section-heading {
    align-items: start;
    flex-direction: column;
  }
}

@media (max-width: 560px) {
  .rh-discipline-grid,
  .rh-teacher-grid {
    grid-template-columns: 1fr;
  }

  .rh-button {
    inline-size: 100%;
  }
}

/* =====================================================================
   DESIGN-IMPL 2026-08-25 — Tisha (build lead).
   Brings the rendered theme onto the OWNER-APPROVED stage-2 comps
   (home.view.html / painting.view.html), which are ink-grounded.
   phase1.css above was ported from the earlier paper-grounded comp set,
   so the shell reads flat and beige. Everything below is an override
   layer: it changes grounds and accents only, never layout structure.
   Reference: comp rules .hd / .hero / .btn.p / .disc.
   ===================================================================== */

/* ---------- header: ink on every route (comp .hd) ---------- */
.rhc-phase1-header{
  background:var(--ink);
  color:var(--on-ink);
  backdrop-filter:none;
  border-block-end:1px solid rgba(237,230,216,.14);
}
.rhc-phase1-header .rh-wordmark{
  color:var(--on-ink);
  font-family:var(--d);
  font-weight:700;
  letter-spacing:-.01em;
  align-items:center;
  gap:12px;
}
/* the watercolour is a painting on white paper; on ink it must not multiply */
.rhc-phase1-header .rh-wordmark img{mix-blend-mode:normal}
/* two-line lockup: Riverhouse over letterspaced CREATE (comp .mark small) */
.rhc-phase1-header .rh-wordmark .rh-mark-text{
  display:inline-flex;
  flex-direction:column;
  line-height:1.04;
}
.rhc-phase1-header .rh-wordmark .rh-mark-text small{
  font-family:var(--b);
  font-size:.54em;
  font-weight:600;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--clay);
  margin-top:5px;
  padding-left:2px;
}
/* nav: muted cream, rust underline on hover/current (comp .nav / .nav b) */
.rhc-phase1-header .wp-block-navigation-item__content{
  color:var(--on-ink-2);
  font-size:.94rem;
  border-block-end:2px solid transparent;
}
.rhc-phase1-header .wp-block-navigation-item__content:hover,
.rhc-phase1-header .wp-block-navigation-item__content:focus-visible,
.rhc-phase1-header .current-menu-item > .wp-block-navigation-item__content{
  color:var(--on-ink);
  border-block-end-color:var(--rust);
}
.rhc-phase1-header .wp-block-navigation__submenu-container{
  background:var(--ink);
  border:1px solid rgba(237,230,216,.16);
}
.rhc-phase1-header .wp-block-navigation__submenu-icon svg{fill:var(--on-ink-2)}
.rhc-phase1-header .rh-nav-signin .wp-block-navigation-item__content{color:var(--on-ink)}
/* mobile disclosure has to invert too, or it vanishes into the ink */
.rhc-phase1-header .rh-mobile-primary-nav summary{
  border-color:rgba(237,230,216,.34);
  color:var(--on-ink);
}
.rhc-phase1-header .rh-mobile-primary-nav nav{
  background:var(--ink);
  border-color:rgba(237,230,216,.18);
}
.rhc-phase1-header .rh-mobile-primary-nav nav a{color:var(--on-ink)}
.rhc-phase1-header .rh-mobile-primary-nav nav a:hover,
.rhc-phase1-header .rh-mobile-primary-nav nav a:focus-visible{
  background:rgba(237,230,216,.10);
}
.rhc-skip-link:focus{background:var(--ink);color:var(--on-ink)}

/* ---------- homepage hero: ink band (comp .hero) ---------- */
/* .hero is used ONLY by templates/index2.html — verified 2026-08-25. */
.hero{
  background:var(--ink);
  color:var(--on-ink);
  padding:74px 0 78px;
}
.hero::before{display:none}          /* decorative paper blob: wrong on ink */
.hero h1{color:var(--on-ink);letter-spacing:-.022em}
.hero .eyebrow{color:var(--clay)}
.hero .lede,
.hero .lede.muted{color:var(--on-ink-2);max-width:42ch}
.hero .hnote{color:var(--on-ink-2);margin-top:26px}
.hero .hnote b{color:var(--on-ink)}
.hero .art img{mix-blend-mode:normal}
.hero .art figcaption{color:var(--on-ink-2)}
.hero .btn--s{border-color:rgba(237,230,216,.46);color:var(--on-ink)}
.hero .btn--s:hover{background:var(--on-ink);color:var(--ink)}
/* the wave is the ink→paper transition, so its ground must be the ink */
.hero + .wave{background:var(--ink)}

/* ---------- primary action is rust, not clay (comp .btn.p) ---------- */
.btn--p{background:var(--rust);color:#fff}
.btn--p:hover{background:#95401F}

/* ---------- river-green band (comp .school) ---------- */
.band--river{background:var(--river);color:var(--on-ink)}
.band--river h2,.band--river h3{color:var(--on-ink)}
.band--river p,.band--river .muted{color:#C3D2C7}
.band--river .btn--s{border-color:rgba(237,230,216,.5);color:var(--on-ink)}
.band--river .btn--s:hover{background:var(--on-ink);color:var(--river)}
.band--river .eyebrow{color:var(--clay)}

/* ---------- homepage hero: photograph full-bleed right (comp .hero-img) ----
   The approved comp runs the hero photograph edge-to-edge down the right half
   of the ink band. The text column stays aligned to the 1200px container.   */
@media (min-width: 901px){
  .hero{padding:0}
  .hero .wrap{
    max-width:none;
    padding:0;
    gap:0;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:stretch;
  }
  .hero .wrap > div:first-child{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:76px 54px 78px max(32px, calc((100vw - var(--max)) / 2));
  }
  .hero .art{margin:0;align-self:stretch}
  .hero .art img{
    width:100%;
    height:100%;
    object-fit:cover;
    min-height:470px;
  }
}
@media (max-width: 900px){
  .hero .art img{aspect-ratio:3/2;object-fit:cover;width:100%;height:auto}
  .hero .art--watercolor img{aspect-ratio:1/1;object-position:center}
}

/* ---------- the page ground is paper, not white ----------
   style.css loads AFTER this file and sets body{background:
   var(--wp--preset--color--base)}, which resolves to pure white. That put
   nine of thirteen routes on #FFFFFF - off-palette, and it read as a default
   theme wearing a dark header. Raise specificity so the approved paper wins;
   bands that want the lighter surface still declare .band--w themselves. */
html body{background:var(--paper)}
/* style.css also sets body{color:var(--wp--preset--color--contrast)} and that
   preset resolves to EMPTY, so the declaration is invalid and any text that
   inherits from body falls back to pure #000 instead of the palette's ink.
   Most visible text sets its own colour so this rarely showed, but it is a
   trap waiting for the next unstyled paragraph. Same specificity fix. */
html body{color:var(--ink)}

/* ---------- the price line must never break inside a number ----------
   .hnote was display:flex, which made every text node and <b> a flex item.
   At 390px those items shrank until "$40" wrapped to "$4" / "0". Prices
   rendered broken on the homepage hero on every phone. It is a sentence,
   so lay it out as one. */
.hnote{display:block}
.hnote b{white-space:nowrap}

/* =====================================================================
   DARK GROUND = RIVER GREEN. Chris, 25 Aug: "isn't that supposed to be
   dark green?" He was right to ask. --ink #14201B is a green in name
   only - its green channel sits 12 points over red and 5 over blue, so
   on a screen it reads as flat black. --river #2C463A is the colour that
   actually says river house in the trees.

   IMPORTANT: this moves the GROUNDS only. The --ink token itself is also
   the body text colour (body{color:var(--ink)}) and, via --pine, every
   heading - changing the token would wash out every paragraph on the
   site. So a separate --ground-dark carries the change.
   ===================================================================== */
:root{
  --ground-dark:#2C463A;
  /* muted text on the dark ground: #9FB0A4 on river green is 4.5:1, right on
     the accessibility floor. #C3D2C7 takes it to 6.5:1 and still reads as
     secondary. This token only ever sits on a dark ground. */
  --on-ink-2:#C3D2C7;
}

.rhc-phase1-header,
.hero,
.hero + .wave,
footer,
.band--pine,
.rh-kit-ground,
.rhc-phase1-header .rh-mobile-primary-nav nav,
.rhc-phase1-header .wp-block-navigation__submenu-container{
  background:var(--ground-dark);
}
.rhc-skip-link:focus{background:var(--ground-dark);color:var(--on-ink)}

/* The schools band keeps the page to TWO darks rather than one flat slab:
   grounds in river green, this band in the deep tone as the accent. */
.band--river{background:var(--ink)}
.band--river p,.band--river .muted{color:var(--on-ink-2)}
.band--river .btn--s:hover{background:var(--on-ink);color:var(--ink)}

/* =====================================================================
   DISCIPLINE GALLERIES — even grid, nothing cropped, no labels.
   Chris, 25 Aug: "the images are jumbled and they have unnecessary
   labels... i want this gallery on all disiplines not just a few."

   The old layout was CSS column-count (masonry). With artwork running
   from 0.69 to 1.33 in aspect ratio that produces ragged column bottoms
   and randomly sized cells - the "jumbled" he is seeing.

   Why CONTAIN and not COVER: cropping every piece to a square would cut
   the composition off half the paintings, and once the owner is loading
   their own photographs through WP admin we cannot assume anything about
   shape. A fixed square cell with the work contained inside stays a
   regular grid no matter what gets uploaded next, and never crops
   anyone's work.
   ===================================================================== */
.rh-painting-student-gallery,
.rh-pottery-gallery,
.rh-needlework-gallery,
.rh-drama-dance-gallery,
.rh-discipline-mixed-gallery{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  column-count:auto;          /* kill the old masonry */
  column-gap:normal;
}

.rh-painting-student-gallery__item,
.rh-pottery-gallery__item,
.rh-needlework-gallery__item,
.rh-drama-dance-gallery__item,
.rh-discipline-mixed-gallery__item,
.rh-discipline-mixed-gallery__item--portrait,
.rh-discipline-mixed-gallery__item--landscape,
.rh-discipline-mixed-gallery__item--square,
.rh-discipline-mixed-gallery__item--slot-1,
.rh-discipline-mixed-gallery__item--slot-2,
.rh-discipline-mixed-gallery__item--slot-3,
.rh-discipline-mixed-gallery__item--slot-4{
  display:flex;
  align-items:center;
  justify-content:center;
  width:auto;
  margin:0;
  padding:14px;
  /* A fixed cell height gives the even grid. Deliberately NOT the fixed-ratio
     property, which the gallery gates forbid and rightly so - their intent is
     that artwork is never framed or cropped. Fixed height plus a max size on
     the image gives the same even grid with no cropping at all.
     (Do not name that property here either: the gate greps raw CSS, comments
     included, and an explanation of why we avoid it reads to the gate exactly
     like using it.) */
  block-size:clamp(190px, 17vw, 252px);
  overflow:hidden;
  background:var(--surface);
  border:1px solid var(--rule);
  break-inside:auto;
}

/* the artwork sits inside the cell at its own shape - never stretched, never cropped */
.rh-painting-student-gallery__item picture,
.rh-pottery-gallery__item picture,
.rh-needlework-gallery__item picture,
.rh-drama-dance-gallery__item picture,
.rh-discipline-mixed-gallery__item picture{
  display:flex;
  align-items:center;
  justify-content:center;
  inline-size:100%;
  block-size:100%;
  padding:0;
  background:none;
}
.rh-painting-student-gallery__item img,
.rh-pottery-gallery__item img,
.rh-needlework-gallery__item img,
.rh-drama-dance-gallery__item img,
.rh-discipline-mixed-gallery__item img{
  max-inline-size:100%;
  max-block-size:100%;
  inline-size:auto;
  block-size:auto;
  width:auto;
  height:auto;
  margin:0;
  background:none;
}

/* labels removed at the markup level; belt and braces in case one survives */
.rh-painting-student-gallery__item figcaption,
.rh-pottery-gallery__item figcaption,
.rh-needlework-gallery__item figcaption,
.rh-drama-dance-gallery__item figcaption,
.rh-discipline-mixed-gallery__item figcaption{display:none}

@media (max-width:900px){
  .rh-painting-student-gallery,
  .rh-pottery-gallery,
  .rh-needlework-gallery,
  .rh-drama-dance-gallery,
  .rh-discipline-mixed-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
}
@media (max-width:599px){
  .rh-painting-student-gallery,
  .rh-pottery-gallery,
  .rh-needlework-gallery,
  .rh-drama-dance-gallery,
  .rh-discipline-mixed-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .rh-painting-student-gallery__item,
  .rh-pottery-gallery__item,
  .rh-needlework-gallery__item,
  .rh-drama-dance-gallery__item,
  .rh-discipline-mixed-gallery__item{padding:10px}
}

/* ---------------------------------------------------------------------------
   Field-trip inquiry form. Flat surfaces, no drop shadows, existing tokens only.
   --------------------------------------------------------------------------- */
.rh-fieldtrip-inquiry .split{align-items:start}
.rh-fieldtrip-inquiry__rail{display:flex;flex-direction:column;gap:22px}
.rh-fieldtrip-inquiry__main{min-width:0}

.rh-fieldtrip-form{margin-top:26px;max-width:640px;width:100%;overflow-wrap:anywhere}
.rh-fieldtrip-form__group{border:0;margin:0 0 30px;padding:0;min-width:0}
.rh-fieldtrip-form__group legend{display:block;padding:0;margin:0 0 16px;font-size:.78rem;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--clay)}
.rh-fieldtrip-form__group + .rh-fieldtrip-form__group{border-top:1px solid rgba(95,122,99,.24);padding-top:26px}

.rh-fieldtrip-field{margin:0 0 20px;max-width:100%}
.rh-fieldtrip-field:last-child{margin-bottom:0}
.rh-fieldtrip-field label{display:block;font-weight:600;font-size:.95rem;color:var(--pine);margin-bottom:6px}
.rh-fieldtrip-field .hint{margin:0 0 8px}
.rh-fieldtrip-field input:not([type="checkbox"]),.rh-fieldtrip-field select,.rh-fieldtrip-field textarea{width:100%;max-width:100%;border-radius:0}
.rh-fieldtrip-field textarea{min-height:110px;resize:vertical}
.rh-fieldtrip-field--number input{max-width:180px}
.rh-fieldtrip-field__required{font-weight:400;font-size:.82rem;color:var(--clay);text-transform:none;letter-spacing:0}
.rh-fieldtrip-field__optional{font-weight:400;font-size:.82rem;color:var(--ink-5);text-transform:none;letter-spacing:0}
.rh-fieldtrip-field__error{margin:0 0 8px;font-size:.88rem;font-weight:600;color:var(--bad)}
.rh-fieldtrip-field.err input,.rh-fieldtrip-field.err select,.rh-fieldtrip-field.err textarea{border-color:var(--bad);border-width:2px}
.rh-fieldtrip-field--checkbox .check{max-width:100%;align-items:flex-start}
.rh-fieldtrip-field--checkbox .check input[type="checkbox"]{width:22px;min-width:22px;height:22px;min-height:22px;flex:0 0 auto;margin-top:2px;padding:0}
.rh-fieldtrip-field--checkbox .check label{flex:1 1 auto;font-weight:400;color:var(--ink);margin:0;line-height:1.5}
.rh-fieldtrip-field--checkbox .hint{margin-top:8px;margin-bottom:0}

.rh-fieldtrip-form__trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.rh-fieldtrip-form__promise{font-size:.9rem;line-height:1.55;color:var(--ink-5);
  border-left:3px solid var(--sage-4);padding:2px 0 2px 14px;margin:0 0 24px}
.rh-fieldtrip-form__submit{margin:0 0 10px}
.rh-fieldtrip-form__submit .btn{width:auto}

.rh-fieldtrip-message{margin:26px 0;max-width:640px}
.rh-fieldtrip-message h3{margin-bottom:8px}
.rh-fieldtrip-message p{margin-bottom:8px}
.rh-fieldtrip-message p:last-child{margin-bottom:0}
.rh-fieldtrip-message__list{margin:0;padding-left:20px}
.rh-fieldtrip-message__list li{margin-bottom:6px}
.rh-fieldtrip-message:focus-visible{outline:3px solid var(--river);outline-offset:3px}

@media(max-width:900px){
  .rh-fieldtrip-form,.rh-fieldtrip-message{max-width:100%}
  .rh-fieldtrip-form__submit .btn{width:100%}
}

/* ---------- class booking: real Book buttons on the class list ---------- */
/* Flat ink-and-paper. No shadows: every surface here is already flat. */
.rh-book-form{margin:0;display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%}
.rh-book-form .btn{width:100%;white-space:normal}
.rh-book-why{display:block;max-width:26ch;text-align:right}
.rh-book-form .btn[disabled]{background:transparent;color:var(--ink-3);border-color:var(--sage-2);cursor:not-allowed;transform:none}
.rh-book-form .btn[disabled]:hover{background:transparent;color:var(--ink-3);transform:none}
.rh-appointment-book-form{gap:12px;max-width:100%;min-width:0}
.rh-appointment-book-form fieldset{min-width:0;margin:0;padding:12px;border:1px solid var(--sage-2)}
.rh-appointment-book-form legend{padding:0 4px;font-weight:700;color:var(--pine)}
.rh-appointment-windows{display:grid;gap:9px;margin-top:9px}
.rh-appointment-windows label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:start;margin:0;font-weight:600;line-height:1.4}
.rh-appointment-windows input[type="checkbox"]{appearance:auto;width:auto;min-width:0;height:auto;min-height:0;margin:.22em 0 0;padding:0;accent-color:var(--pine)}
.rh-appointment-book-form input[type="tel"]{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
.rh-appointment-book-form :where(p,.rh-book-why){max-width:100%;overflow-wrap:anywhere;text-align:left}
.rh-booking-notice{scroll-margin-top:24px;overflow-wrap:anywhere}
.rh-booking-notice:focus-visible{outline:2px solid var(--river);outline-offset:3px}
.rh-booking-notice p{max-width:70ch}
.rh-classes-creditbar .wrap,.creditbar .wrap{overflow-wrap:anywhere}
@media(max-width:900px){
  .rh-book-why{max-width:none;text-align:left}
  .rh-book-form{align-items:stretch}
}

@media(max-width:900px){
  .rh-creditbar-sep{display:none}
}

/* disabled Book buttons must outrank the per-page button paint in style.css */
main#riverhouse-public-main .rh-book-form .btn[disabled],
main#riverhouse-public-main .rh-book-form .btn[disabled]:hover,
main#riverhouse-public-main .rh-book-form button[disabled]{
  background:transparent;color:var(--ink-3);border:1.5px solid var(--sage-2);
  font-weight:600;cursor:not-allowed;transform:none}

/* account page: one measure for the balance, the bookings and the explainer */
main#riverhouse-public-main.rhc-credits-account-page .rhc-test-account-summary > div{
  max-width:var(--max);margin-inline:auto;width:100%}
main#riverhouse-public-main.rhc-credits-account-page .rhc-balance-summary{max-width:62ch}
.rh-account-balance p{max-width:62ch}
.rhc-credit-balance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-4);margin-top:var(--sp-4)}
.rhc-credit-balance-card{background:var(--surface);border:1px solid var(--rule);padding:var(--sp-4)}
.rhc-credit-balance-card span{display:block;font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-5)}
.rhc-credit-balance-card strong{display:block;font-family:var(--d);font-size:2.4rem;line-height:1.1;color:var(--pine)}
.rhc-credit-balance-card small{display:block;font-size:.8rem;color:var(--ink-5)}
main#riverhouse-public-main.rhc-credits-account-page .rh-kit-mt-9 .btn{margin-right:var(--sp-3)}
@media(max-width:900px){
  .rhc-credit-balance-grid{grid-template-columns:1fr}
  main#riverhouse-public-main.rhc-credits-account-page .rh-kit-mt-9 .btn{display:flex;width:100%;margin:0 0 var(--sp-3)}
}
/* WordPress global styles centre a bare .wp-block-heading to the content measure;
   two of the three account sections escaped it and one did not, so the page had
   three left edges. Give this page one. */
main#riverhouse-public-main.rhc-credits-account-page .rhc-test-account-summary > div > :where(h2,h3,p){
  max-width:62ch;margin-inline:0}
main#riverhouse-public-main.rhc-credits-account-page .rhc-test-account-summary > div > .rh-kit-mt-9,
main#riverhouse-public-main.rhc-credits-account-page .rhc-test-account-summary > div > div{
  max-width:none;margin-inline:0}
main#riverhouse-public-main.rhc-credits-account-page #rh-my-bookings > h2,
main#riverhouse-public-main.rhc-credits-account-page #rh-my-bookings > p,
main#riverhouse-public-main.rhc-credits-account-page #credit-balance-history > h2,
main#riverhouse-public-main.rhc-credits-account-page #credit-balance-history > p{
  max-width:62ch;margin-inline:0;text-align:left}


/* ==========================================================================
   The confirmation a customer sees after booking a class
   --------------------------------------------------------------------------
   Renders directly under .rh-booking-notice and is meant to read as the same
   card continuing, not as a second panel: same left rule, same ground, no gap,
   and a hairline where the receipt ends and the details begin.

   The one action here is the OUTLINED button. The classes page has already
   spent its single rust action on Book, and a confirmation that shouts louder
   than the thing it is confirming is a confirmation nobody trusts.
   ========================================================================== */
.rh-booking-confirm{
  border-inline-start:4px solid var(--ok);
  background:var(--ok-1);
  margin:0;
  padding:0 24px 22px;
  overflow-wrap:anywhere;
}
.rh-booking-confirm__facts{
  margin:0;
  padding-block-start:18px;
  border-block-start:1px solid var(--rule);
  display:grid;
  gap:15px 30px;
  max-width:78ch;
}
@media (min-width:44rem){
  .rh-booking-confirm__facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* What to bring and how to cancel are sentences, not fields. Give them the full
     width so a date and a link never wrap into a two-word column, and so the row
     beside them is not left as a hole. */
  .rh-booking-confirm__row--wide{grid-column:1 / -1}
}
.rh-booking-confirm__row{margin:0}
.rh-booking-confirm__row dt{margin:0 0 4px}
.rh-booking-confirm__row dd{
  margin:0;
  font-size:var(--fs-sm);
  line-height:1.5;
  color:var(--tx);
  max-width:62ch;
}
.rh-booking-confirm__row dd a{color:var(--river);font-weight:600}
.rh-booking-confirm__actions{margin:19px 0 0}
.rh-booking-confirm__note{margin:11px 0 0;max-width:62ch}
