/* Shared visual rhythm for the public homepage. */
.site-page{
  --surface-sage:#e7e9df;
  --surface-sand:#ede6d8;
  --on-dark:#f6f3eb;
  --muted-on-dark:#d5dfcf;
  --accent-on-dark:#d9c6a2;
  --type-section:clamp(40px,4.4vw,64px);
  --type-title:clamp(32px,2.8vw,38px);
  --type-body:16px;
  --type-small:14px;
  --type-note:12px;
  --type-label:11px;
  --section-space:96px;
  --layout-gap:48px;
  --card-padding:32px;
  --card-gap:24px;
  font-family:var(--sans);
  font-size:var(--type-body);
  line-height:1.75;
}
.site-page :is(.eyebrow,.small-label){font-family:var(--sans);font-size:var(--type-label);font-weight:600;line-height:1.6;letter-spacing:.14em}
.site-page :is(.section,.resources-inner){padding-block:var(--section-space)}
.site-page .about.section{padding-top:0}
.site-page .section-heading{gap:var(--layout-gap);margin-bottom:40px}
.site-page .section-heading .eyebrow{margin-bottom:24px}
.site-page :is(.section h2,.resources-copy h2){font-family:var(--serif);font-size:var(--type-section);font-weight:500;line-height:1.08;letter-spacing:-.035em}
.site-page :is(.section h2,.resources-copy h2) em{font-size:1em}
.site-page :is(.offer h3,.method-grid h3,.resource-notebook h3){font-family:var(--serif);font-size:var(--type-title);font-weight:500;line-height:1.12;letter-spacing:-.025em}
.site-page :is(.section-heading>p,.offer>p:not(.offer-topics),.method-grid p,.about-copy>p:not(.eyebrow):not(.about-lead),.resources-copy>p:not(.eyebrow):not(.resource-help),.contact>p:not(.eyebrow):not(.contact-hint):not(.contact-location)){font-family:var(--sans);font-size:var(--type-body);line-height:1.75}
.site-page :is(.section-heading>p,.offer>p:not(.offer-topics),.method-grid p,.about-copy>p:not(.eyebrow):not(.about-lead)){color:var(--muted)}
.site-page .about-copy p.about-lead{font-family:var(--serif);font-size:26px;line-height:1.4;color:var(--ink)}
.site-page :is(.audience-grid p,.format-note p,.offer-detail,.offer-detail li,.cv-landmarks dd,.resource-path){font-size:var(--type-small);line-height:1.75}
.site-page .resource-path{font-family:var(--sans)}
.site-page :is(.offer-topics,.image-caption,.resource-help,.contact-hint,.contact-location,.site-footer small){font-size:var(--type-note);line-height:1.6}
.site-page :is(.text-link,.contact-email,.contact-phone){font-size:var(--type-small)}
.site-page main .button{font-family:var(--sans);font-size:var(--type-small);line-height:1.5;border-radius:3px}
.site-page .offer{padding-inline:32px}
.site-page .offer:first-child{padding-left:0}
.site-page .offer:last-child{padding-right:0}
.site-page .method-grid{gap:32px;margin-top:40px}
.site-page .method-grid article{padding-top:24px}
.site-page .method-number{margin-bottom:24px;color:var(--olive)}
.site-page .approach{background:var(--surface-sage);border-color:var(--line)}
.site-page .approach em{color:var(--olive)}
.site-page .resources{background:var(--ink);color:var(--on-dark)}
.site-page .resources-inner{gap:var(--layout-gap)}
.site-page .resources-copy h2 em{color:var(--accent-on-dark)}
.site-page .resources-copy>p:not(.eyebrow){color:var(--muted-on-dark)}
.site-page .resources-copy>.eyebrow{color:var(--accent-on-dark)}
.site-page .resource-folder{background:var(--surface-sage);border-color:var(--line)}
.site-page .resource-notebook h3>span{font-size:var(--type-note);line-height:1.6}
.site-page :is(.notebook-top,.resource-folder .small-label){font-size:var(--type-label);line-height:1.6}
.site-page .resource-formats{font-size:var(--type-small)}
.site-page .about{gap:var(--layout-gap)}
.site-page .portrait figcaption{font-size:var(--type-title);line-height:1.12;padding:24px}
.site-page .portrait figcaption span{font-size:var(--type-note);line-height:1.6}
.site-page .contact h2{margin-block:24px}
.site-page .site-footer{align-items:baseline;gap:24px;font-size:var(--type-note);line-height:1.6}

/* The notebook shares the same palette, type scale and spacing. */
.site-page #terrain .field-sessions{gap:var(--card-gap)}
.site-page #terrain .field-session{--card-bg:var(--surface-sage);--card-ink:var(--ink);--card-muted:var(--muted);--card-line:#193c3330;box-shadow:none}
.site-page #terrain .field-session--clay{--card-bg:var(--clay);--card-ink:var(--on-dark);--card-muted:var(--on-dark);--card-line:#f6f3eb45}
.site-page #terrain .field-session--linen{--card-bg:var(--surface-sand)}
.site-page #terrain .field-session--olive{--card-bg:var(--olive);--card-ink:var(--on-dark);--card-muted:var(--on-dark);--card-line:#f6f3eb45}
.site-page #terrain .field-session>summary{padding:var(--card-padding);min-height:360px}
.site-page #terrain .field-session-top{margin-bottom:24px;gap:16px}
.site-page #terrain .field-session-top .small-label{font-size:var(--type-label);line-height:1.6;letter-spacing:.1em}
.site-page #terrain .field-session-number{font-size:28px}
.site-page #terrain .field-session h3{font-family:var(--serif);font-size:var(--type-title);font-weight:500;line-height:1.12;letter-spacing:-.025em}
.site-page #terrain .field-session-intro{font-family:var(--sans);font-size:var(--type-body);line-height:1.75;margin:16px 0 24px}
.site-page #terrain .field-session-action{font-size:var(--type-note);line-height:1.6;padding-top:16px}
.site-page #terrain .field-session-content{padding:0 var(--card-padding) var(--card-padding);gap:24px}
.site-page #terrain .field-session-content .small-label{font-size:var(--type-label);line-height:1.6;letter-spacing:.1em}
.site-page #terrain .field-session-content p:not(.small-label){font-family:var(--sans);font-size:var(--type-body);line-height:1.75}
.site-page #terrain .field-session-content .text-link{font-size:var(--type-small);line-height:1.6}
.site-page #terrain .access-note{font-size:var(--type-note);line-height:1.6;margin-top:16px}
.site-page #terrain .field-jury{margin-top:48px;color:var(--on-dark)}
.site-page #terrain .field-jury-main{grid-template-columns:.88fr 1.35fr;gap:var(--layout-gap);padding:40px}
.site-page #terrain .field-jury-intro{padding:0}
.site-page #terrain .field-jury-intro>.eyebrow{font-size:var(--type-label);line-height:1.6;letter-spacing:.14em;color:var(--accent-on-dark);margin-bottom:24px}
.site-page #terrain .field-jury-intro h3{font-family:var(--serif);font-size:var(--type-title);font-weight:500;line-height:1.12;letter-spacing:-.025em}
.site-page #terrain .field-jury-intro h3 em{color:var(--accent-on-dark);margin-top:16px}
.site-page #terrain .field-jury-intro>p:last-child{font-size:var(--type-body);line-height:1.75;color:var(--muted-on-dark);margin-top:24px}
.site-page #terrain .field-qualifications{gap:16px;align-items:stretch}
.site-page #terrain .field-qualification{min-height:0;padding:24px;border-radius:3px}
.site-page #terrain .field-qualification>.small-label{font-size:var(--type-label);line-height:1.6;letter-spacing:.14em;color:var(--muted-on-dark)}
.site-page #terrain .field-qualification h4{font-family:var(--serif);font-size:40px;font-weight:500;line-height:1.1;letter-spacing:-.025em;margin:8px 0}
.site-page #terrain .field-qualification-name{font-family:var(--sans);font-size:var(--type-small);line-height:1.6;color:var(--muted-on-dark);min-height:44px}
.site-page #terrain .field-units{gap:8px;margin-top:16px}
.site-page #terrain .field-units>span{font-size:var(--type-note);line-height:1.4;color:var(--accent-on-dark);padding:5px 7px}
.site-page #terrain .field-qualification-note{font-size:var(--type-note);line-height:1.6;color:var(--muted-on-dark);margin-top:12px}
.site-page #terrain .field-certification-label{font-size:var(--type-note);line-height:1.6;color:var(--accent-on-dark);margin-top:16px}
.site-page #terrain .field-blocks{font-size:var(--type-small);line-height:1.6;margin-top:16px}
.site-page #terrain .field-blocks ul{color:var(--muted-on-dark);font-size:var(--type-small);line-height:1.75}
.site-page #terrain .field-rehearsals{grid-template-columns:.95fr 1fr 1fr;gap:32px;padding:32px 40px}
.site-page #terrain .field-rehearsals .eyebrow{font-size:var(--type-label);line-height:1.6;letter-spacing:.1em}
.site-page #terrain .field-rehearsals h4{font-size:28px;line-height:1.12;margin-top:8px}
.site-page #terrain .field-rehearsal strong{font-size:var(--type-small);line-height:1.6}
.site-page #terrain .field-rehearsal>summary>span:first-child>span{font-size:var(--type-note);line-height:1.6}
.site-page #terrain .field-rehearsal>p{font-size:var(--type-small);line-height:1.75;color:var(--muted-on-dark);margin-top:16px}

@media(max-width:1100px){
  .site-page{--layout-gap:32px;--card-padding:24px}
  .site-page #terrain .field-jury-main{grid-template-columns:1fr;padding:32px}
  .site-page #terrain .field-jury-intro h3{max-width:620px}
  .site-page #terrain .field-jury-intro>p:last-child{max-width:600px}
  .site-page #terrain .field-rehearsals{padding:32px}
}
@media(max-width:850px){
  .site-page{--section-space:64px}
  .site-page .section-heading{gap:24px;margin-bottom:32px}
  .site-page .offer{padding-inline:20px}
  .site-page .resources-inner{gap:32px}
  .site-page #terrain .field-rehearsals{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .site-page #terrain .field-rehearsals>div:first-child{grid-column:1/-1}
}
@media(max-width:600px){
  .site-page{--type-body:15px;--type-title:34px;--layout-gap:32px;--card-gap:16px;--card-padding:24px}
  .site-page .section-heading .eyebrow{margin-bottom:16px}
  .site-page :is(.offer,.offer:first-child,.offer:last-child){padding:24px 0}
  .site-page .method-grid{gap:24px;margin-top:32px}
  .site-page .method-grid article{padding:24px 0 0 48px}
  .site-page .about-copy p.about-lead{font-size:24px;line-height:1.4}
  .site-page .portrait{width:100%;max-width:400px}
  .site-page .portrait figcaption{padding:24px}
  .site-page .site-footer{align-items:flex-start;gap:16px}
  .site-page .resource-notebook{width:100%;transform:none;padding:24px}
  .site-page #terrain .field-session>summary{min-height:320px}
  .site-page #terrain .field-jury{margin-top:32px}
  .site-page #terrain .field-jury-main{padding:24px;gap:32px}
  .site-page #terrain .field-jury-intro h3 em{display:block}
  .site-page #terrain .field-qualifications{grid-template-columns:1fr;gap:16px}
  .site-page #terrain .field-qualification{padding:24px}
  .site-page #terrain .field-qualification-name{min-height:0}
  .site-page #terrain .field-rehearsals{grid-template-columns:1fr;padding:24px;gap:24px}
}
@media(max-width:360px){
  .site-page{--card-padding:20px;--type-title:32px}
  .site-page #terrain .field-jury-main,.site-page #terrain .field-rehearsals,.site-page #terrain .field-qualification{padding:20px}
}
@media(prefers-reduced-motion:no-preference) and (hover:hover){.site-page #terrain .field-session:hover{transform:translateY(-2px);box-shadow:0 6px 20px #193c3310}}
