/* SOLA design system applied to the existing page markup.
   site.css is compiled Tailwind with no source in this repo, so its utility
   classes are remapped here to the tokens in sola.css. Load order:
   sola.css, site.css, sola-theme.css. */

/* Fraunces is kept for the SOLA name and the numbers only. */
@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/fraunces-latin-wght-normal.ukD16Tqj.woff2) format("woff2-variations")}
:root{--font-accent:Fraunces Variable,var(--font-display);--sola-saffron:#C97B37;--sola-saffron-deep:#8F501C;--sola-butter:#F3E6CC}

/* ───────── Base ───────── */
html{scroll-padding-top:calc(var(--header-height) + var(--space-6))}
body{background:var(--surface-page);color:var(--sola-ink);font-family:var(--font-sans);font-size:var(--size-body);line-height:var(--leading-body)}
::selection{background:var(--sola-leaf);color:var(--sola-forest)}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ───────── Type ───────── */
.font-serif{font-family:var(--font-display);font-weight:var(--weight-regular);font-variation-settings:normal}
.font-sans{font-family:var(--font-sans)}
.text-display-xl{font-size:clamp(2.5rem,7vw,var(--text-display-xl));line-height:var(--leading-tight);letter-spacing:var(--tracking-display)}
.text-display-lg{font-size:clamp(2.25rem,5vw,var(--text-display-l));line-height:var(--leading-tight);letter-spacing:var(--tracking-display)}
.text-display-md{font-size:clamp(1.75rem,3.5vw,var(--text-display-m));line-height:var(--leading-title);letter-spacing:var(--tracking-title)}
.text-lg{font-size:var(--size-body);line-height:var(--leading-body)}
.text-xl{font-size:var(--text-lead);line-height:var(--leading-snug)}
.text-2xl,.text-3xl{font-size:var(--text-display-s);line-height:var(--leading-title)}
@media(min-width:768px){
  .md\:text-lg{font-size:var(--size-body);line-height:var(--leading-body)}
  .md\:text-xl,.md\:text-2xl{font-size:var(--text-lead);line-height:var(--leading-snug)}
  .md\:text-3xl{font-size:var(--text-display-s);line-height:var(--leading-title)}
  .md\:text-4xl{font-size:var(--text-display-m);line-height:var(--leading-title)}
}
.leading-relaxed{line-height:var(--leading-body)}
.font-serif.leading-relaxed,.leading-snug{line-height:var(--leading-snug)}
.leading-tight{line-height:var(--leading-title)}
.italic{font-style:normal}
.max-w-reading{max-width:var(--measure-prose)}
.font-serif.max-w-reading{max-width:var(--measure-lead)}

/* Same size and line height as body text, so labels never look smaller than the text beside them and first lines share a baseline. */
.eyebrow{font-family:var(--font-sans);font-size:var(--size-body);line-height:var(--leading-body);font-weight:var(--weight-regular);letter-spacing:.12em;color:var(--sola-signal)}
/* Team roles are captions, not labels. */
article.group .eyebrow{font-size:var(--text-small);letter-spacing:0;text-transform:none}

/* Numbers. Saffron reaches 3:1 at display sizes; small counters and oat bands use the deeper tone. */
.font-serif.text-saffron{font-family:var(--font-accent);line-height:1;color:var(--sola-saffron)}
.font-serif.text-saffron.text-sm,.bg-cream-warm .font-serif.text-saffron{color:var(--sola-saffron-deep)}
.bg-forest .font-serif.text-saffron,.bg-forest .font-serif.text-saffron.text-sm{color:var(--sola-saffron)}

/* ───────── Colour ───────── */
.text-forest{color:var(--sola-forest)}
.text-ink-soft{color:var(--sola-ink)}
.text-ink-muted{color:var(--sola-muted)}
.text-saffron{color:var(--sola-signal)}
.group:hover .group-hover\:text-saffron{color:var(--sola-signal)}
.accent-saffron{accent-color:var(--sola-signal)}
.text-cream{color:var(--sola-warm-white)}
.text-cream\/60{color:var(--text-on-inverse-muted)}
.text-cream\/85,.text-cream\/90{color:rgba(247,244,238,.88)}
.bg-cream{background:var(--sola-warm-white)}
.bg-cream-warm{background:var(--sola-oat)}
.bg-forest{background:var(--sola-deep-forest)}
.bg-forest\/5{background:var(--sola-oat)}
.bg-forest\/15,.bg-forest\/40{background:var(--sola-stone)}
.border-forest\/15,.border-forest\/30,.divide-forest\/15>*+*{border-color:var(--sola-stone)}
.border-saffron{border-color:var(--sola-signal)}
.focus\:border-saffron:focus{border-color:var(--sola-signal)}

/* Signal green drops below 4.5:1 on oat, so accents go forest there. */
.bg-cream-warm .eyebrow,.bg-cream-warm .text-saffron{color:var(--sola-forest)}
.bg-forest .eyebrow,.bg-forest .text-saffron{color:var(--sola-leaf)}
.bg-forest .text-forest{color:var(--sola-warm-white)}
.divide-cream\/15>*+*,.border-cream\/15{border-color:var(--border-inverse)}

/* ───────── Layout ───────── */
.container-editorial{max-width:var(--container-wide);padding-left:var(--gutter);padding-right:var(--gutter)}
.max-w-editorial{max-width:var(--container)}
.py-section{padding-top:var(--section-y-tight);padding-bottom:var(--section-y-tight)}
@media(min-width:768px){.py-section{padding-top:var(--section-y);padding-bottom:var(--section-y)}}
hr.container-editorial{box-sizing:border-box;width:calc(100% - 2 * var(--gutter));max-width:calc(var(--container-wide) - 2 * var(--gutter));padding:0;border:0;border-top:1px solid var(--sola-stone)}

/* The header now sits in the page flow, so page openers need less top space. */
.pt-36,.pt-32{padding-top:var(--space-16)}
.min-h-\[92svh\]{min-height:0}
@media(min-width:768px){.md\:pt-48,.md\:pt-40{padding-top:var(--space-24)}}
.sola-footer{margin-top:0}
/* Every label-and-text row shares one gap and one split, so right-hand text starts on the same line. */
@media(min-width:1024px){
  .lg\:grid-cols-12{column-gap:var(--space-16)}
  .lg\:grid-cols-12:has(>.lg\:col-start-6){grid-template-columns:minmax(0,29%) minmax(0,1fr)}
  .lg\:grid-cols-12:has(>.lg\:col-start-6)>*{grid-column:1}
  .lg\:grid-cols-12:has(>.lg\:col-start-6)>.lg\:col-start-6{grid-column:2}
  .md\:p-12 .lg\:grid-cols-12:has(>.lg\:col-start-6){grid-template-columns:minmax(0,26%) minmax(0,1fr)}
}
/* Home opener: links stack to one width, at the top right on large screens. */
.hero-actions{align-items:stretch;width:max-content;max-width:100%}
@media(min-width:1024px){.hero-actions{margin-left:auto}}
/* An opening rule already sits above these lists. */
hr+section>.border-y{border-top:0}
hr+section>.border-y>:first-child{padding-top:0}

/* ───────── Actions and links ───────── */
.btn-primary,.btn-secondary{justify-content:center;white-space:nowrap;gap:var(--space-2);border:1px solid var(--sola-forest);border-radius:var(--radius-sm);padding:.875rem 1.375rem;font-family:var(--font-sans);font-size:var(--text-small);line-height:1;text-transform:none;letter-spacing:.02em;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}
.btn-primary{background:var(--sola-forest);color:var(--sola-warm-white)}
.btn-primary:hover{gap:var(--space-2);background:#063d1b;transform:translateY(var(--lift-hover));box-shadow:var(--shadow-sm)}
.btn-secondary{background:transparent;color:var(--sola-forest)}
.btn-secondary:hover{gap:var(--space-2);background:var(--sola-leaf-15);color:var(--sola-forest);transform:translateY(var(--lift-hover))}
.btn-primary:active,.btn-secondary:active{transform:scale(var(--press-scale));box-shadow:none}
.bg-forest .btn-primary{background:var(--sola-leaf);border-color:var(--sola-leaf);color:var(--sola-forest)}
.bg-forest .btn-secondary{border-color:rgba(247,244,238,.55);color:var(--sola-warm-white)}
.bg-forest .btn-secondary:hover{background:rgba(247,244,238,.12)}
.sola-btn--inverse:hover{background:var(--sola-leaf-30);border-color:var(--sola-leaf-30)}

.link-editorial{border-color:var(--sola-signal);font-family:var(--font-sans);font-size:var(--text-small);text-transform:none;letter-spacing:.02em;color:var(--sola-signal);transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}
.link-editorial:hover{border-color:var(--sola-forest);color:var(--sola-forest)}
.bg-cream-warm .link-editorial{border-color:var(--sola-forest);color:var(--sola-forest)}
.bg-forest .link-editorial{border-color:var(--sola-leaf);color:var(--sola-leaf)}
.bg-forest .link-editorial:hover{color:var(--sola-warm-white)}

/* ───────── Blocks ───────── */
.grid.gap-px{gap:var(--space-6);background:transparent;border:0}
.grid.gap-px>.bg-cream{background:var(--sola-linen);border:1px solid var(--sola-stone);border-radius:var(--radius-md)}
.grid.gap-px>.bg-cream{min-width:0;overflow-wrap:break-word}
@media(min-width:768px) and (max-width:1023px){.grid.gap-px>.bg-cream{padding:var(--space-5)}.grid.gap-px .eyebrow{letter-spacing:.06em}}

/* Form messages */
#contact-success,#contact-error{border-left:0;border-radius:var(--radius-md);background:var(--sola-leaf-15);padding:var(--space-6)}
#contact-success .eyebrow,#contact-error .eyebrow{color:var(--sola-forest)}

/* Full-width quote bands */
.quote-band{--band-text:var(--sola-warm-white);background:var(--sola-deep-forest);color:var(--band-text);padding:var(--section-y-tight) 0}
.quote-band--leaf{--band-text:var(--sola-deep-forest);background:var(--sola-leaf)}
.quote-band--saffron{--band-text:var(--sola-deep-forest);background:var(--sola-saffron)}
.quote-band blockquote{max-width:30ch;font-family:var(--font-display);font-size:clamp(1.75rem,4vw,var(--text-display-l));line-height:var(--leading-title);letter-spacing:var(--tracking-title);color:var(--band-text)}
.quote-band figcaption{margin-top:var(--space-5);font-family:var(--font-sans);font-size:var(--size-body);letter-spacing:.02em;color:var(--band-text)}
@media(min-width:768px){.quote-band{padding:var(--section-y) 0}}

/* Home topic cards */
.topic-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-6)}
.topic-card{grid-column:span 3}
.topic-card{--card-text:var(--sola-ink);--card-title:var(--sola-forest);--card-link:var(--sola-forest);display:flex;flex-direction:column;gap:var(--space-5);border:1px solid transparent;border-radius:var(--radius-md);padding:var(--space-10);color:var(--card-text);transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard)}
.topic-card:hover{transform:translateY(var(--lift-hover));box-shadow:var(--shadow-md)}
.topic-card--wide{grid-column:1/-1}
@media(min-width:1024px){.topic-card--third{grid-column:span 2}}
@media(max-width:1023px){.topic-card--third:last-child{grid-column:1/-1}}
.topic-card--forest{--card-text:var(--sola-warm-white);--card-title:var(--sola-warm-white);--card-link:var(--sola-leaf);background:var(--sola-deep-forest)}
.topic-card--leaf{--card-text:var(--sola-deep-forest);background:var(--sola-leaf)}
.topic-card--saffron{--card-text:var(--sola-deep-forest);--card-title:var(--sola-deep-forest);--card-link:var(--sola-deep-forest);background:var(--sola-saffron)}
.topic-card--oat{background:var(--sola-oat)}
.topic-card--tint{background:var(--sola-leaf-30)}
.topic-card--linen{background:var(--sola-linen);border-color:var(--sola-stone)}
.topic-card h2,.topic-card h3,.topic-card .text-forest{color:var(--card-title)}
.topic-card .text-ink-soft{color:var(--card-text)}
.topic-card .space-y-6,.topic-card .space-y-8{display:contents}
.topic-card>:last-child,.topic-card>[class*=space-y]>:last-child{margin-top:auto}
.topic-card .link-editorial{border-color:currentColor;border-bottom-width:2px;padding-bottom:var(--space-1);font-size:var(--size-body);color:var(--card-link)}
.topic-card .link-editorial:hover{color:var(--card-link);gap:var(--space-3)}
.topic-card .max-w-editorial{margin-bottom:var(--space-6)}
@media(max-width:767px){.topic-card,.topic-card--third:last-child{grid-column:1/-1}.topic-card{padding:var(--space-6)}}

.drop-cap:first-letter{float:none;padding:0;font:inherit;color:inherit}

/* FAQ marker: + and −, no rotation. */
summary .font-serif.text-saffron{font-size:0;transition:none}
summary .text-saffron::before{content:"";display:block;width:1.75rem;height:1.75rem;background:url(/assets/effects/toggle-plus.svg) center/contain no-repeat}
details[open]>summary .font-serif.text-saffron{transform:none}
details[open]>summary .text-saffron::before{background-image:url(/assets/effects/toggle-sprout.svg)}
summary:hover h3{color:var(--sola-signal)}

/* Forms */
input[type=text].border-forest\/30,input[type=email].border-forest\/30,input[type=tel].border-forest\/30,textarea.border-forest\/30{border:1px solid var(--sola-forest);border-radius:var(--radius-sm);background:var(--sola-linen);padding:var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:var(--size-body);line-height:var(--leading-snug);color:var(--sola-ink)}
input.border-forest\/30:focus-visible,textarea.border-forest\/30:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}

/* ───────── Motion ───────── */
.duration-300,.duration-500,.duration-700{transition-duration:var(--dur-base)}
[data-reveal]{transform:translateY(2px);transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard)}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none}}

/* ───────── Site chrome (extends sola.css) ───────── */
.sola-logo img{transition:transform var(--dur-base) var(--ease-standard)}
.sola-logo:hover img{transform:rotate(8deg)}
.sola-header__inner>.sola-logo img{height:42px}
.sola-logo__name{font-family:var(--font-accent);font-weight:var(--weight-regular);letter-spacing:-.01em}
.sola-header .sola-logo__name{font-size:22px}
.sola-header .sola-logo__type small{font-size:10px}
.sola-header__link[aria-current="page"]{color:var(--sola-forest)}
.sola-header__lang a{color:var(--text-caption);padding:var(--space-1) 0;text-decoration:none;transition:color var(--dur-fast) var(--ease-standard)}
.sola-header__lang a:hover{color:var(--sola-forest)}
.sola-header__lang a[aria-current]{color:var(--sola-forest);font-weight:700}

.sola-footer__inner>div>.sola-logo img{height:44px}
.sola-footer .sola-logo__name{font-size:22px}
.sola-footer .sola-logo__type small{font-size:10px}
.sola-footer address{display:grid;gap:var(--space-3);font-style:normal;font-size:var(--text-small);line-height:var(--leading-snug)}
.sola-footer__legal>div{display:flex;gap:var(--space-6)}
.sola-footer .sola-btn--inverse,.sola-footer .sola-btn--inverse:hover{color:var(--sola-forest)}
.sola-footer__legal a{font-size:var(--size-caption)}
@media (max-width:560px){.sola-footer__inner{grid-template-columns:1fr}}

.sola-header__burger{display:none}
.sola-header__inner,.sola-header__nav{gap:var(--space-5)}
.sola-header__nav{display:flex}
.sola-header__link{white-space:nowrap}
/* Logo, menu and languages stay on one line. Narrower screens tighten, then use the menu button. */
@media (max-width:1359px){
  .sola-header__inner{gap:var(--space-4);padding-inline:var(--space-5)}
  .sola-header__nav{gap:14px}
  .sola-header__link{font-size:14px}
}
@media (max-width:1239px){
  .sola-header .sola-logo{gap:var(--space-3)}
  .sola-header .sola-logo__type small{display:none}
}
/* On phones the wrapped menu is too tall to follow the scroll. */
@media (max-width:768px){
  html{scroll-padding-top:var(--space-6)}
  .sola-header{position:static}
  .sola-header__nav{gap:0 var(--space-5)}
  .sola-header__link{font-size:var(--text-small)}
}
@media (max-width:560px){
  .sola-header .sola-logo{gap:var(--space-2)}
  .sola-header .sola-logo__type small{display:none}
  .sola-header__lang{gap:var(--space-1)}
}
/* Long German compounds and button labels on the narrowest phones. */
@media (max-width:400px){
  .btn-primary,.btn-secondary{white-space:normal;line-height:var(--leading-snug)}
  h1,h2,h3{overflow-wrap:break-word}
}

/* TRIAL 1: deep green page openers. */
main>section:first-child{--opener:var(--sola-deep-forest);background:var(--opener);box-shadow:0 0 0 100vmax var(--opener);clip-path:inset(0 -100vmax)}
main>section:first-child h1,main>section:first-child .text-forest{color:var(--sola-warm-white)}
main>section:first-child h1{font-size:clamp(2.5rem,6vw,var(--text-display-xl));line-height:var(--leading-tight);letter-spacing:var(--tracking-display)}
main>section:first-child .text-ink-soft{color:rgba(247,244,238,.88)}
main>section:first-child .eyebrow{color:var(--sola-saffron)}
main>section:first-child .eyebrow>.h-px{background:var(--sola-saffron)}
main>section:first-child .btn-primary{background:var(--sola-leaf);border-color:var(--sola-leaf);color:var(--sola-forest)}
main>section:first-child .btn-primary:hover{background:var(--sola-leaf-30);border-color:var(--sola-leaf-30)}
main>section:first-child .link-editorial{border-color:var(--sola-leaf);color:var(--sola-leaf)}
main>section:first-child .link-editorial:hover{border-color:var(--sola-warm-white);color:var(--sola-warm-white)}
main>section:first-child+hr{display:none}

/* TRIAL 2: photo hero on the home page. */
main>section:first-child:has(.hero-photo) h1{text-wrap:balance}
.hero-photo{overflow:hidden}
.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero-line-mask{padding-bottom:.18em;margin-bottom:-.18em}
@media(min-width:768px){
  main>section:first-child:has(.hero-photo){isolation:isolate;min-height:clamp(560px,56.25vw,calc(100svh - 7rem))}
  main>section:first-child:has(.hero-photo) h1{font-size:clamp(2.5rem,5vw,var(--text-display-xl))}
  main>section:first-child:has(.hero-photo) h1+p{margin-top:var(--space-6)}
  main>section:first-child:has(.hero-photo) .eyebrow{margin-bottom:var(--space-6);color:var(--sola-warm-white)}
  main>section:first-child:has(.hero-photo) .link-editorial{border-color:var(--sola-warm-white);color:var(--sola-warm-white)}
  .hero-photo{position:absolute;inset:0;z-index:-2}
  .hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(3,47,20,.84),rgba(3,47,20,.66))}
}
@media(max-width:767px){
  main>section:first-child:has(.hero-photo){min-height:0;padding-top:0}
  main>section:first-child:has(.hero-photo)>.container-editorial{padding-top:var(--space-10)}
  .hero-photo{aspect-ratio:4/3}
}

/* School photos. */
.site-photo{margin:0;width:100%}
.site-photo img{display:block;width:100%;height:auto;border-radius:var(--radius-lg)}
.site-photo--side{margin-top:var(--space-8)}

/* Contact: details card with the entrance photo, the form beside it. */
.contact-layout{display:grid;gap:var(--space-12)}
.contact-card{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-lg);background:var(--sola-butter);color:var(--sola-forest)}
.contact-card__details{padding:var(--space-3) var(--space-8)}
.contact-card__row{display:grid;gap:var(--space-2);padding-block:var(--space-6);font-family:var(--font-display);font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.35}
.contact-card__row+.contact-card__row{border-top:1px solid var(--sola-stone)}
.contact-card .eyebrow{margin:0;font-family:var(--font-sans);color:var(--sola-forest)}
.contact-card__links{display:grid;gap:var(--space-1)}
.contact-card a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;overflow-wrap:anywhere}
.contact-card__photo{margin:0;position:relative;aspect-ratio:16/9}
.contact-card__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.contact-write{display:grid;gap:var(--space-10);align-content:start;min-width:0}
@media(min-width:1024px){
  .contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--space-16)}
  .contact-card__photo{flex:1;min-height:14rem;aspect-ratio:auto}
}

/* Picture wall on Our School: taped prints, rows fill the width and every photo keeps its own shape. */
.photo-gallery{--row:120px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-6) var(--space-4)}
.photo-gallery::after{content:"";flex-grow:6}
.sfx-taped{position:relative;flex:var(--r) 1 calc(var(--r)*var(--row));min-width:0;margin:0;padding:6px 6px 18px;border-radius:var(--radius-sm);background:var(--sola-linen);box-shadow:0 1px 3px rgba(26,26,26,.12);transform:rotate(var(--sfx-tilt,-1deg))}
.sfx-taped img{display:block;width:100%;height:auto;border-radius:var(--radius-sm)}
.sfx-taped::before,.sfx-taped::after{content:"";position:absolute;top:-8px;width:40px;height:14px;opacity:.75}
.sfx-taped::before{left:-6px;background:var(--sola-clay);opacity:.5;transform:rotate(-24deg)}
.sfx-taped::after{right:-6px;background:var(--sola-leaf);transform:rotate(20deg)}
@media(min-width:900px){.photo-gallery{--row:210px;gap:var(--space-8) var(--space-6)}.sfx-taped{padding:8px 8px 26px}.sfx-taped::before,.sfx-taped::after{width:60px;height:18px;top:-10px}}

/* Rounded corners on team portraits. */
article.group img{border-radius:var(--radius-lg)}

/* Compact header with a menu button below 1100px. */
.sola-menu-toggle{display:none}
@media(max-width:1099px){
  .sola-header__inner{justify-content:space-between}
  .sola-header__lang{margin-left:auto}
  .sola-header__nav{order:3;flex:1 0 100%;flex-wrap:wrap;justify-content:flex-start}
  .sola-header__inner{flex-wrap:wrap;height:auto;gap:0;padding:var(--space-2) var(--space-5)}
  .sola-header__lang{gap:0}
  .sola-header__lang span{display:none}
  .sola-header__lang a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0}
  .sola-header__link{display:flex;align-items:center;min-height:44px;font-size:var(--size-body)}
  .js .sola-menu-toggle{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:44px;height:44px;padding:0;background:none;border:0;cursor:pointer}
  .sola-menu-toggle span{display:block;width:22px;height:2px;background:var(--sola-forest)}
  .sola-menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .sola-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .sola-menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .js .sola-header__nav{display:none}
  .js .sola-header__nav.is-open{display:flex;flex-direction:column;align-items:flex-start;order:3;flex:1 0 100%;gap:0;padding-block:var(--space-2)}
  .sola-menu-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
}
@media(max-width:385px){.sola-header .sola-logo__type{display:none}}

/* Team: logo in place of a missing portrait, short bios on phones. */
article.group figure{border-radius:var(--radius-lg)}
.team-placeholder{width:60%;height:auto;border-radius:0}
.team-bio>p:first-child{margin-top:0}
article .team-bio{margin-top:var(--space-4)}
.team-bio__toggle{display:none}
@media(max-width:767px){
  .team-bio.is-collapsed{max-height:calc(var(--bio-line,1.5em)*5);overflow:hidden}
  .team-bio__toggle{display:inline-flex;align-items:center;min-height:44px;padding:0;background:none;border:0;font-family:var(--font-sans);font-size:var(--size-body);color:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
  .team-bio__toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
}

/* Sample day on A Day at SOLA. */
.sample-day__time{min-width:3.2em}
.sample-day__row{padding-block:var(--space-3)}

/* Button and link side by side. */
.cta-row{align-items:flex-start}
@media(min-width:640px){.cta-row{align-items:center}}

/* Our Approach: the practical part of each text. */
.approach-practice{margin-top:var(--space-5)}
.at-sola{font-weight:700;color:var(--sola-forest)}
.fee-amount{font-size:1.25em;font-weight:700;color:var(--sola-forest);white-space:nowrap}

/* Work with us: all text in the right column runs to the same width. */
.bg-cream-warm.md\:p-12 .lg\:col-start-6,.bg-cream-warm.md\:p-12 .lg\:col-start-6 p{max-width:none;text-wrap:wrap}

/* Motifs and effects. Tokens map the packs onto the site's approved palette. */
:root{--sola-clay:var(--sola-saffron);--sola-paper:var(--sola-warm-white);--sola-deep:var(--sola-deep-forest);--sola-divider-fill:var(--sola-oat)}
.sola-motif{display:inline-block;width:var(--sola-motif-size,96px);max-width:100%;height:auto;flex:none;vertical-align:middle;overflow:visible}
.sola-motif--s{--sola-motif-size:40px}
.sola-motif--m{--sola-motif-size:72px}
.sola-motif--l{--sola-motif-size:120px}
.sola-motif--wide{--sola-motif-size:112px}
.sola-on-dark{--sola-forest:var(--sola-paper);--sola-signal:var(--sola-leaf);--sola-leaf-15:transparent;--sola-leaf-30:rgba(247,244,238,.12)}
.section-motif{display:block;margin-top:var(--space-6)}
.corner-motif{position:absolute;top:var(--space-5);right:var(--space-5);width:auto;height:52px}
div:has(>.corner-motif){position:relative}
.opener-motif{margin-top:var(--space-8)}
.opener-motif .sola-motif{--sola-motif-size:96px}
.footer-motif{display:block;margin-top:var(--space-4)}
@media(min-width:1100px){
  main>section:first-child:has(>.opener-motif){position:relative}
  .opener-motif{position:absolute;right:var(--gutter);bottom:var(--space-16);margin:0}
  .opener-motif .sola-motif{--sola-motif-size:120px}
}

/* Book-page divider. */
.sola-divider-wrap{position:relative;height:clamp(40px,5vw,80px);margin-block:-1px}
.sola-divider-wrap>.sola-divider{position:absolute;inset:0;width:100%;height:100%}
.sola-divider-wrap>.sola-divider-sprout{position:absolute;left:50%;top:50%;width:56px;transform:translate(-50%,-92%)}

/* Marker highlight. */
.sfx-highlight{background:url(/assets/effects/highlight.svg) center/100% 100% no-repeat;color:var(--sola-forest);padding:.2em .5em;line-height:2;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* Button arrow becomes a leaf. */
.btn-primary svg{background:center/contain no-repeat}
.btn-primary:is(:hover,:focus-visible) svg{background-image:url(/assets/effects/leaf-small.svg)}
.btn-primary:is(:hover,:focus-visible) svg path{opacity:0}
.btn-primary:is(:hover,:focus-visible)>span.inline-block{color:transparent;background:url(/assets/effects/leaf-small.svg) center/1em auto no-repeat}

/* Dotted trail through the sample day. */
.sample-day__row{position:relative;padding-left:var(--space-8)}
.sample-day__row::after{content:"";position:absolute;left:0;top:calc(var(--space-3) + .35em);width:.8rem;height:.8rem;border:1.5px solid var(--sola-forest);border-radius:50%;background:var(--sola-leaf)}
.sample-day__row::before{content:"";position:absolute;left:calc(.4rem - 1px);top:calc(var(--space-3) + .35em + .8rem + 2px);bottom:calc(-1*(var(--space-3) + .35em) + 2px);border-left:2px dotted var(--sola-signal)}
.sample-day__row:last-child::before{display:none}
.sample-day__row:last-child::after{background:var(--sola-clay)}
.sample-day__motif{align-self:center;margin-block:-.5rem;margin-left:auto}

/* Motif beside a heading. */
.heading-with-motif{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.heading-with-motif h2{min-width:0}
.heading-with-motif h2.mt-6{margin-top:0}
.max-w-editorial>.heading-with-motif{margin-top:var(--space-6);justify-content:flex-start;gap:var(--space-6)}

/* Hand-drawn quote marks. */
.quote-marks{display:block;width:3.2rem;height:2rem;margin-bottom:var(--space-4)}
.quote-band--forest .quote-marks{--sola-forest:var(--sola-warm-white)}
.quote-band--leaf .quote-marks{--sola-leaf:var(--sola-leaf-30)}

