/* Type system — the single place for font choices.
   Two fonts: Cormorant Garamond for headlines, Poppins for everything else. */
:root{
  --serif:"Cormorant Garamond",Garamond,serif;
  --sans:Poppins,Arial,sans-serif;
  --size-section:clamp(3rem,5.5vw,6.5rem);
  --size-quote:clamp(1.3rem,1.9vw,1.85rem);
  --size-lead:clamp(1.1rem,1.4vw,1.3rem);
  --size-body:1.1rem;
  --size-small:.83rem;
  --size-label:.72rem;
  --size-nav:.75rem;
}

/* Hero title — the first headline on each page (original sizes kept) */
.hero h1,.page-hero h1{font-family:var(--serif);font-weight:400;letter-spacing:-.025em;text-transform:uppercase}
.hero h1{font-size:clamp(4.4rem,8vw,9rem);line-height:.86}
.page-hero h1{font-size:clamp(4rem,7vw,8rem);line-height:.9}
@media(max-width:800px){.hero h1{font-size:clamp(4.4rem,14vw,7rem)}.page-hero h1{font-size:4.4rem}}
@media(max-width:550px){.hero h1{font-size:clamp(4rem,16vw,5.5rem)}}

/* Section headline */
.intro h2,.section-heading h2,.testimonial-content h2,.contact h2,.quote-band p,
.page-section h2,.closing h2,.retreat-process h2,.legal h1{font-family:var(--serif);font-size:var(--size-section);font-weight:400;line-height:.92;letter-spacing:-.02em;text-transform:uppercase}

/* Card title */
.offering-info h3,.experience-card h3,.format-card h3,.event-card h3,.session-card h3,
.participant-story .participant-story-name,.osteothai-explainer h3,
.retreat-process .quote-list blockquote{font-family:var(--sans);font-size:var(--size-body);font-weight:600;line-height:1.4;letter-spacing:.08em;text-transform:uppercase}
.offering-info h3 br{display:none}

/* Quote */
.testimonial-slide blockquote p,.quote-list blockquote,.participant-story .participant-story-title{font-family:var(--sans);font-size:var(--size-quote);font-weight:400;line-height:1.4;letter-spacing:0;text-transform:none}

/* Body text — zero specificity, so labels, small print and buttons inside always win */
:where(.intro>p:last-child,.offering-info p,.contact-intro>p,.section-top p:last-child,.two-column p,
.closing p,.session-details .session-intro,.session-duration,.retreat-about-copy>p,
.legal-body p,.foundation-card li,.human-check,.experience-card p,.format-card p,.event-card p){font-family:var(--sans);font-size:var(--size-body);font-weight:400;line-height:1.65;letter-spacing:0;text-transform:none}

/* Lead — the short intro under a hero title */
:where(.hero-intro,.page-hero p:not(.page-kicker),.legal-lead){font-size:var(--size-lead);line-height:1.6}

/* Small print */
.booking-hint,.booking-email,.form-action p,.legal-updated,.copy-editor p{font-size:var(--size-small);line-height:1.5;letter-spacing:0;font-weight:400}

/* Label — small uppercase kickers, names, numbers */
.eyebrow,.section-label,.hero-scroll,.page-kicker,.offering-topline,.testimonial-slide blockquote cite,
.testimonial-controls p,.quote-list cite,.participant-story .participant-story-cite,.experience-card span,
.format-card span,.event-card span,.booking-label,.legal .legal-body h2,
.session-rate span,.session-rate strong,.enquiry-form label{font-family:var(--sans);font-size:var(--size-label);font-weight:600;line-height:1.4;letter-spacing:.18em;text-transform:uppercase;font-style:normal}
.session-rate strong{font-size:var(--size-body);letter-spacing:.04em}
.retreat-process .quote-list cite{font-size:var(--size-body);font-weight:400;line-height:1.65;letter-spacing:0;text-transform:none}

/* Button & text link */
.hero-cta,.offering-info a,.text-link,.page-button,.event-card a,.inline-link,.back-link,.booking-button,
.form-action button,.testimonial-controls button,.testimonial-add,.copy-editor button{font-family:var(--sans);font-size:var(--size-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase}

/* Navigation, logo & footer — identical on every page */
.brand,.subpage .brand{font-family:var(--sans);font-size:.85rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase}
.site-header nav,.subpage .site-header nav,.social-links a,.site-footer a{font-size:var(--size-nav);font-weight:400;letter-spacing:.14em;text-transform:uppercase}
.site-footer small{font-size:var(--size-nav);letter-spacing:.04em}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{font-size:1rem;text-transform:none;letter-spacing:normal}

@media(max-width:550px){.brand,.subpage .brand{font-size:.78rem;letter-spacing:.12em}}
.event-card .event-location{font-size:var(--size-label);font-weight:600;letter-spacing:.18em;text-transform:uppercase;line-height:1.4}
