:root {
  --ink: #251f1d;
  --ink-soft: #5f5752;
  --paper: #fbf8f3;
  --warm: #f1ebe2;
  --soft: #f7f2eb;
  --wine: #5f1205;
  --wine-dark: #451008;
  --gold: #b18b4c;
  --line: rgba(37, 31, 29, 0.18);
  --white: #fff;
  --display: "Playfair Display", Georgia, serif;
  --sans: "Poppins", "DM Sans", Inter, system-ui, sans-serif;
  --container: 1240px;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --section: clamp(5rem, 10vw, 9rem);
  --radius: 0.25rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }

.skip-link {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 9999;
  padding: .75rem 1rem;
  background: var(--white);
  transform: translateY(-200%);
}
.skip-link:focus { transform: none; }

.container { width: min(calc(100% - (2 * var(--gutter))), var(--container)); margin-inline: auto; }
.container--narrow { max-width: 960px; }
.section { padding-block: var(--section); }
.section--warm { background: var(--warm); }
.section--soft { background: var(--soft); }
.section--dark { color: var(--white); background: var(--wine-dark); }

.eyebrow {
  margin: 0 0 1.25rem;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .18em;
  line-height: 1.4;
  text-transform: uppercase;
}

h1, h2, h3 { margin: 0; font-family: var(--display); font-weight: 500; line-height: .98; letter-spacing: -.035em; }
h1 { font-size: clamp(3.5rem, 8vw, 8.5rem); }
h2 { font-size: clamp(2.7rem, 5.5vw, 5.5rem); }
h3 { font-size: clamp(1.75rem, 2.5vw, 2.6rem); line-height: 1.08; }
p { margin: 0 0 1.35rem; }
.lead { font-size: clamp(1.25rem, 2vw, 1.7rem); line-height: 1.55; }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 100;
  color: var(--white);
  transition: background .3s ease, color .3s ease, box-shadow .3s ease;
}
.site-header.is-scrolled {
  position: fixed;
  color: var(--ink);
  background: rgba(251, 248, 243, .94);
  box-shadow: 0 1px 0 var(--line);
  backdrop-filter: blur(14px);
}
.site-header__inner {
  min-height: 94px;
  width: min(calc(100% - (2 * var(--gutter))), 1440px);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.wordmark { display: inline-flex; align-items: center; gap: .72rem; text-decoration: none; line-height: 1; }
.wordmark__text { display: inline-flex; flex-direction: column; }
.wordmark__logo { position: relative; display: block; flex: 0 0 auto; height: 2.55rem; aspect-ratio: 319.61 / 303.89; }
/* astangaforeningen.dk pages load the wide combined AYS+AYF SVG instead of the
   near-square studio-only icon; it needs its own aspect ratio so it isn't
   squeezed by the studio-only box above (astangastudio.dk keeps that one
   untouched — this only matches when the combined logo's own filename is the
   loaded src). */
.wordmark:has(.wordmark__logo-image--light[src*="AYS%20plus%20AYF"]) .wordmark__logo {
  aspect-ratio: 631.42 / 286.68;
}
.wordmark__logo-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity .3s ease; }
.wordmark__logo-image--dark { opacity: 0; }
.site-header.is-scrolled .wordmark__logo-image--light,
.site-header--solid .wordmark__logo-image--light { opacity: 0; }
.site-header.is-scrolled .wordmark__logo-image--dark,
.site-header--solid .wordmark__logo-image--dark { opacity: 1; }
.wordmark__title { font-family: var(--display); font-size: 1.55rem; letter-spacing: -.03em; }
.wordmark__place { margin-top: .35rem; font-size: .62rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; }
.primary-nav { display: flex; align-items: center; gap: clamp(1.25rem, 2vw, 2.25rem); }
.primary-nav a { position: relative; font-size: .82rem; font-weight: 600; letter-spacing: .04em; text-decoration: none; }
.primary-nav a:not(.nav-book)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.35rem; height: 1px; background: currentColor; transition: right .25s ease; }
.primary-nav a:hover::after, .primary-nav a:focus-visible::after { right: 0; }
.nav-book { padding: .8rem 1.2rem; border: 1px solid currentColor; border-radius: 999px; }
.menu-toggle { display: none; color: inherit; background: none; border: 0; }

.hero { position: relative; min-height: 100svh; display: grid; align-items: end; color: var(--white); overflow: hidden; }

/* Overlay text color for hero images — add "text-white", "text-black", "text-dark-warm-brown", "text-deep-charcoal", "text-oxblood-red", or "text-ruby-red" to the section's class list to pick the readable option for that image. */
.hero.text-white, .rental-hero.text-white, .schedule-hero.text-white { color: var(--white); }
.hero.text-black, .rental-hero.text-black, .schedule-hero.text-black { color: var(--ink); }
.hero.text-dark-warm-brown, .rental-hero.text-dark-warm-brown, .schedule-hero.text-dark-warm-brown { color: #5d5246; }
.hero.text-deep-charcoal, .rental-hero.text-deep-charcoal, .schedule-hero.text-deep-charcoal { color: #1f1f1c; }
.hero.text-oxblood-red, .rental-hero.text-oxblood-red, .schedule-hero.text-oxblood-red { color: #50151e; }
.hero.text-ruby-red, .rental-hero.text-ruby-red, .schedule-hero.text-ruby-red { color: #8b0000; }
.hero__visual { position: absolute; inset: 0; border: 0; }
.hero__content { position: relative; z-index: 2; width: min(calc(100% - (2 * var(--gutter))), 1440px); margin-inline: auto; padding: 11rem 0 clamp(4rem, 9vh, 7rem); }
.hero h1 { max-width: 980px; font-size: clamp(3.75rem, 9vw, 9.5rem); font-weight: 600; }
.hero h1 em { font-weight: 500; }
.hero__intro { max-width: 580px; margin-top: 2rem; font-size: clamp(1.35rem, 2.3vw, 1.85rem); line-height: 1.55; }

/* Cream gradient hero toggle — shared by every hero on the site (rental, schedule, workshop,
   studio). Add "cream-gradient--on" to a hero's overlay element to reveal the cream gradient
   that fades left-to-right into the photo (the effect from the studio pages); leave it off to
   show the plain photo. */
.cream-gradient { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.cream-gradient--on {
  background: linear-gradient(90deg, rgba(251,248,243,.98) 0%, rgba(251,248,243,.94) 28%, rgba(251,248,243,.68) 46%, rgba(251,248,243,.18) 65%, rgba(251,248,243,0) 78%);
}
@media (max-width: 900px) {
  .cream-gradient--on {
    background: linear-gradient(90deg, rgba(251,248,243,.97) 0%, rgba(251,248,243,.90) 45%, rgba(251,248,243,.48) 72%, rgba(251,248,243,.08) 100%);
  }
}
@media (max-width: 600px) {
  .cream-gradient--on {
    background: linear-gradient(90deg, rgba(251,248,243,.99) 0%, rgba(251,248,243,.96) 43%, rgba(251,248,243,.50) 74%, rgba(251,248,243,.08) 100%);
  }
}
.rental-hero:has(.cream-gradient--on),
.schedule-hero:has(.cream-gradient--on),
.workshop-hero:has(.cream-gradient--on) { color: var(--ink); }
/* When a hero's cream gradient is on, the top-left of the hero (behind the logo) is light
   cream instead of photo, so swap in the dark logo there — the header itself stays
   transparent over the hero image until the normal scrolled/sticky state takes over. */
body:has(.cream-gradient--on) .site-header:not(.is-scrolled) .wordmark__logo-image--light { opacity: 0 !important; }
body:has(.cream-gradient--on) .site-header:not(.is-scrolled) .wordmark__logo-image--dark { opacity: 1 !important; }
/* Same reasoning for the wordmark text: white-with-shadow was tuned for sitting
   directly on a hero photo, but the cream gradient already makes this corner
   light, so it reads better as plain dark ink with no shadow, matching the
   scrolled state (see .site-header.is-scrolled .wordmark__title below). */
body:has(.cream-gradient--on) .site-header:not(.is-scrolled) .wordmark__title,
body:has(.cream-gradient--on) .site-header:not(.is-scrolled) .wordmark__place {
  color: var(--ink) !important;
  text-shadow: none !important;
}

.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; margin-top: 2.25rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .9rem 1.45rem; border: 1px solid transparent; border-radius: 999px; font-size: .82rem; font-weight: 600; letter-spacing: .04em; text-decoration: none; transition: transform .25s ease, background .25s ease, color .25s ease; }
.button:hover { transform: translateY(-2px); }
.button--primary { color: var(--white); background: var(--wine); }
.button--primary:hover { background: var(--wine-dark); }
.button--light { color: var(--ink); background: var(--white); }
.button--text { padding-inline: .25rem; border-radius: 0; }
.button--text span { margin-left: .65rem; }

.intro h2 { max-width: 850px; }
.intro__columns { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 7vw, 7rem); margin-top: clamp(3rem, 6vw, 5.5rem); }
.section-heading { margin-bottom: clamp(3rem, 6vw, 5rem); }
.section-heading--split { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .55fr); align-items: end; gap: 3rem; }
.section-heading--split > p { max-width: 420px; margin: 0 0 .5rem auto; }
.section-heading--center { max-width: 900px; margin-inline: auto; text-align: center; }

.card-grid { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.card-grid--three { grid-template-columns: repeat(3, 1fr); }
.path-card { min-height: 420px; padding: clamp(2rem, 4vw, 3.5rem); display: flex; flex-direction: column; background: var(--paper); }
.path-card--accent { background: var(--warm); }
.path-card__number { margin-bottom: auto; font-size: .72rem; font-weight: 600; letter-spacing: .16em; }
.path-card h3 { margin: 4rem 0 1.25rem; }
.path-card p { color: var(--ink-soft); }
.path-card a, .community-card a { margin-top: auto; font-size: .82rem; font-weight: 600; text-decoration: none; }

.feature__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.feature__content { max-width: 610px; }
.feature__content h2 { margin-bottom: 2.5rem; }
.feature__content p:not(.eyebrow) { color: rgba(255,255,255,.78); }

.community-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.community-card { display: flex; min-width: 0; flex-direction: column; background: var(--white); }
.community-card__visual { aspect-ratio: 4 / 3; }
.community-card__body { min-height: 330px; padding: clamp(1.5rem, 3vw, 2.5rem); display: flex; flex-direction: column; }
.community-card h3 { margin-bottom: 1.25rem; }
.community-card p:not(.eyebrow) { color: var(--ink-soft); }

.quote-section { padding: clamp(5rem, 11vw, 11rem) var(--gutter); color: var(--wine-dark); background: #d8c8b9; text-align: center; }
.quote-section blockquote { margin: 0; font-family: var(--display); font-size: clamp(2.6rem, 5.5vw, 5.4rem); font-weight: 500; line-height: 1.12; letter-spacing: -.035em; }

.event-list { border-top: 1px solid var(--line); }
.event-row { display: grid; grid-template-columns: 180px 1fr auto; align-items: center; gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--line); text-decoration: none; transition: padding .25s ease; }
.event-row:hover { padding-left: 1rem; }
.event-row__date { font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.event-row__date strong { display: block; font-family: var(--display); font-size: 1.5rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.event-row__title { font-family: var(--display); font-size: clamp(1.35rem, 2.5vw, 2.2rem); line-height: 1.2; }
.event-row__arrow { font-size: 1.5rem; }

.visit__grid { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.visit__content h2 { margin-bottom: 2rem; }
.visit__visual.gmap { min-height: 600px; background: #ded7cc; }
.visit address { margin: 2rem 0; font-style: normal; }
.rental-strip { padding: clamp(4rem, 7vw, 6rem) 0; color: var(--white); background: var(--wine); }
.rental-strip__inner { display: flex; align-items: end; justify-content: space-between; gap: 3rem; }
.rental-strip h2 { max-width: 850px; font-size: clamp(2.2rem, 4vw, 4.3rem); }

.site-footer { padding: clamp(4rem, 8vw, 7rem) 0 2rem; color: rgba(255,255,255,.78); background: #211a18; }
.site-footer__grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: clamp(2rem, 6vw, 6rem); }
.wordmark--footer { flex-direction: column; align-items: flex-start; gap: 0; color: var(--white); }
.site-footer__note { max-width: 300px; margin-top: 1.5rem; }
.site-footer h3 { margin-bottom: 1.3rem; color: var(--white); font-family: var(--sans); font-size: .72rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.site-footer__grid > div > a:not(.wordmark) { display: block; margin: .55rem 0; text-decoration: none; }
.site-footer__bottom { margin-top: 5rem; padding-top: 1.5rem; display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.14); font-size: .75rem; }

.image-placeholder { position: relative; overflow: hidden; display: grid; place-items: center; color: rgba(255,255,255,.9); background: linear-gradient(135deg, #988577, #5b443a); }
.image-placeholder::before { content: ""; position: absolute; inset: 0; opacity: .6; background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.24), transparent 35%), linear-gradient(155deg, transparent 45%, rgba(0,0,0,.25)); }
.image-placeholder span { position: relative; z-index: 1; padding: .6rem .85rem; border: 1px solid rgba(255,255,255,.45); font-size: .65rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.image-placeholder--hero { background: linear-gradient(135deg, #8d7768, #4b3932); }
.image-placeholder--portrait { min-height: 680px; }
.image-placeholder--landscape { min-height: 600px; }

@media (max-width: 980px) {
  .menu-toggle { display: inline-flex; align-items: center; gap: .75rem; cursor: pointer; }
  .menu-toggle__label { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; }
  .menu-toggle__lines, .menu-toggle__lines::before, .menu-toggle__lines::after { display: block; width: 24px; height: 1px; background: currentColor; }
  .menu-toggle__lines { position: relative; }
  .menu-toggle__lines::before, .menu-toggle__lines::after { content: ""; position: absolute; left: 0; }
  .menu-toggle__lines::before { top: -7px; }
  .menu-toggle__lines::after { top: 7px; }
  .primary-nav { position: fixed; inset: 94px 0 auto; padding: 2rem var(--gutter) 3rem; display: none; flex-direction: column; align-items: stretch; gap: 0; color: var(--ink); background: var(--paper); border-top: 1px solid var(--line); }
  .primary-nav.is-open { display: flex; }
  .primary-nav a { padding: 1rem 0; border-bottom: 1px solid var(--line); font-size: 1rem; }
  .nav-book { margin-top: 1rem; text-align: center; }
  .intro__columns, .section-heading--split, .feature__grid, .visit__grid { grid-template-columns: 1fr; }
  .section-heading--split > p { margin-left: 0; }
  .card-grid--three, .community-grid { grid-template-columns: 1fr; }
  .path-card { min-height: 330px; }
  .feature__visual { min-height: 540px; }
  .event-row { grid-template-columns: 120px 1fr auto; }
  .rental-strip__inner { align-items: flex-start; flex-direction: column; }
  .site-footer__grid { grid-template-columns: 1.6fr 1fr 1fr; }
  .site-footer__grid > div:last-child { grid-column: 2 / -1; }
}

@media (max-width: 640px) {
  :root { --gutter: 1.25rem; --section: 4.5rem; }
  .site-header__inner { min-height: 78px; }
  .wordmark__logo { height: 2.1rem; }
  .wordmark__title { font-size: 1.25rem; }
  .primary-nav { inset-block-start: 78px; }
  .hero__content { padding-top: 9rem; }
  .hero__intro { font-size: 1.25rem; }
  .button-row { align-items: flex-start; flex-direction: column; }
  .event-row { grid-template-columns: 1fr auto; gap: .75rem; }
  .event-row__date { grid-column: 1 / -1; }
  .image-placeholder--portrait, .image-placeholder--landscape { min-height: 420px; }
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .site-footer__grid > div:first-child, .site-footer__grid > div:last-child { grid-column: 1 / -1; }
  .site-footer__bottom { gap: 1rem; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}


.site-image { position: relative; overflow: hidden; background-position: center; background-repeat: no-repeat; background-size: cover; }
.site-image::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(64,40,28,.02), rgba(64,40,28,.08)); }
.site-image--hero { background-image: url("../images/photography/hero.jpg"); background-position: center 44%; }
.site-image--mysore { min-height: 680px; }
.site-image--studio { min-height: 600px; }
.site-image--therapy { background-image: url("../images/photography/therapy.jpg"); }
.site-image--feldenkrais { background-image: url("../images/photography/feldenkrais.jpg"); }


/* Shared V2 navigation */
.site-header--solid { position: fixed; color: var(--ink); background: rgba(251,248,243,.96); box-shadow: 0 1px 0 var(--line); backdrop-filter: blur(14px); }
.primary-nav a.is-active:not(.nav-book)::after { right: 0; }

/* Studio rental pages */
.rental-hero { position: relative; min-height: 88svh; display: grid; align-items: end; color: var(--white); }
.rental-hero__image, .rental-hero__overlay { position: absolute; inset: 0; }
.rental-hero__content { position: relative; z-index: 2; width: min(calc(100% - (2 * var(--gutter))), 1440px); margin-inline: auto; padding: 12rem 0 clamp(4.5rem,9vh,7rem); }
.rental-hero h1 { max-width: 900px; font-size: clamp(3.75rem, 9vw, 9.5rem); font-weight: 600; }
.rental-hero p:not(.eyebrow) { max-width: 620px; margin: 2rem 0; font-size: clamp(1.35rem, 2.3vw, 1.85rem); }
.rental-quicknav { padding-block: 1rem; background: var(--wine); color: var(--white); }
.rental-quicknav__inner { width: min(calc(100% - (2 * var(--gutter))), 1440px); margin-inline: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem 1.6rem; font-size: .82rem; font-weight: 600; letter-spacing: .04em; }
.rental-quicknav a { color: inherit; text-decoration: none; }
.rental-quicknav a:hover, .rental-quicknav a:focus-visible { text-decoration: underline; }
@media (max-width: 640px) {
  .rental-quicknav__inner { flex-wrap: nowrap; justify-content: center; overflow-x: auto; gap: .6rem; font-size: .68rem; letter-spacing: .02em; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .rental-quicknav__inner::-webkit-scrollbar { display: none; }
  .rental-quicknav__inner a { flex: 0 0 auto; }
}
.fit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.fit-panel { padding: clamp(2rem,5vw,4.5rem); background: var(--white); }
.fit-panel--quiet { color: var(--white); background: var(--wine-dark); }
.fit-panel h3 { margin-bottom: 2rem; }
.editorial-list { columns: 2; margin: 0; padding: 0; list-style: none; }
.editorial-list li { break-inside: avoid; padding: .9rem 0; border-bottom: 1px solid var(--line); }
.rental-room-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.rental-room-card { background: var(--white); }
.rental-room-card__image { aspect-ratio: 4/3; }
.rental-room-card__body { padding: clamp(1.5rem,3vw,2.5rem); }
.rental-room-card__body h3 { margin-bottom: 1rem; }
.rental-room-card__meta { font-size: .8rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.rental-room-card a { font-size: .82rem; font-weight: 600; text-decoration: none; }

/* Room photo carousels (rental pages) */
.room-carousel { position: relative; overflow: hidden; background: #ded7cc; }
.room-carousel::after { content: ""; position: absolute; z-index: 1; inset: auto 0 0 0; height: 70px; background: linear-gradient(180deg, rgba(20,14,10,0), rgba(20,14,10,.45)); pointer-events: none; }
.room-carousel__track { display: flex; width: 100%; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; cursor: grab; }
.room-carousel__track.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
.room-carousel__track::-webkit-scrollbar { display: none; }
.room-carousel__slide { position: relative; flex: 0 0 100%; scroll-snap-align: start; cursor: zoom-in; }
.room-carousel__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.room-carousel__dots { position: absolute; z-index: 2; right: 0; bottom: .9rem; left: 0; display: flex; align-items: center; justify-content: center; gap: .5rem; }
.room-carousel__dot { width: 7px; height: 7px; padding: 0; border: 1px solid rgba(255,255,255,.85); border-radius: 50%; background: rgba(255,255,255,.35); cursor: pointer; transition: width .25s ease, background .25s ease; }
.room-carousel__dot.is-active { width: 20px; border-radius: 999px; background: #fff; }
.room-carousel--panel { height: 600px; }
@media (max-width: 980px) { .room-carousel--panel { height: 420px; } }

/* Shared full-screen gallery viewer (js/workshop-gallery.js) */
.workshop-lightbox { position: fixed; inset: 0; z-index: 9999; display: none; align-items: center; justify-content: center; padding: 70px; background: rgba(18,14,12,.94); }
.workshop-lightbox.is-open { display: flex; }
.workshop-lightbox img { display: block; max-width: min(1200px,86vw); max-height: 84vh; object-fit: contain; }
.workshop-lightbox button { position: absolute; z-index: 2; border: 0; padding: .25rem; color: #fff; background: transparent; font: inherit; font-size: 2.8rem; line-height: 1; cursor: pointer; }
.workshop-lightbox__close { top: 20px; right: 28px; }
.workshop-lightbox__prev { left: 25px; }
.workshop-lightbox__next { right: 25px; }
.workshop-lightbox__count { position: absolute; bottom: 22px; color: #fff; font-size: .8rem; letter-spacing: .12em; }
@media (max-width: 900px) {
  .workshop-lightbox { padding: 55px 18px; }
  .workshop-lightbox__prev { left: 5px; }
  .workshop-lightbox__next { right: 5px; }
}

.rental-editorial { display: grid; grid-template-columns: 1fr .85fr 1fr; min-height: 650px; background: var(--wine-dark); color: var(--white); }
.rental-editorial > .site-image { min-height: 500px; }
.rental-editorial__content { padding: clamp(3rem,6vw,6rem); display: flex; justify-content: center; flex-direction: column; }
.site-image--rental-facility { min-height: 600px; }
.price-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.price-card { padding: clamp(2rem,4vw,3.5rem); background: var(--paper); }
.price-card--featured { background: var(--warm); }
.price-card h3 { margin-bottom: 1.5rem; }
.price-card__from { font-size: 1.1rem; }
.price-card__from strong { display: block; font-family: var(--display); font-size: clamp(2rem,4vw,3.4rem); font-weight: 500; }
.price-card ul { margin: 2rem 0 0; padding: 0; list-style: none; }
.price-card li { padding: .7rem 0; border-bottom: 1px solid var(--line); }
.price-note { max-width: 800px; margin: 2.5rem 0 0; color: var(--ink-soft); }
.faq-grid { border-top: 1px solid var(--line); }
.faq-grid details { border-bottom: 1px solid var(--line); }
.faq-grid summary { cursor: pointer; padding: 1.6rem 2.5rem 1.6rem 0; font-family: var(--display); font-size: clamp(1.25rem,2vw,1.7rem); list-style: none; position: relative; }
.faq-grid summary::after { content: "+"; position: absolute; right: .25rem; }
.faq-grid details[open] summary::after { content: "−"; }
.faq-grid details p { max-width: 720px; padding-bottom: 1.5rem; color: var(--ink-soft); }
@media(max-width:980px){.fit-grid,.rental-room-grid,.price-grid,.rental-editorial{grid-template-columns:1fr}.editorial-list{columns:1}.rental-editorial{min-height:0}.rental-editorial > .site-image{min-height:420px}}

/* Availability calendars */
.availability-section { background: var(--paper); }
.availability-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.availability-card { overflow: hidden; background: var(--white); border: 1px solid var(--line); }
.availability-card__heading { padding: 1.5rem clamp(1.25rem, 3vw, 2.25rem); display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid var(--line); }
.availability-card__heading h3 { margin: 0; }
.availability-card__heading a { flex: 0 0 auto; font-size: .82rem; font-weight: 600; text-decoration: none; }
.calendar-embed { position: relative; width: 100%; min-height: 600px; background: var(--warm); }
.calendar-embed iframe { display: block; width: 100%; height: 600px; border: 0; }
.large-studio-enquiry { margin-top: 1.5rem; padding: clamp(2rem, 5vw, 4rem); display: flex; align-items: center; justify-content: space-between; gap: 2rem; color: var(--white); background: var(--wine-dark); }
.large-studio-enquiry h3 { max-width: 760px; margin-bottom: .75rem; color: inherit; }
.large-studio-enquiry p:last-child { margin-bottom: 0; }
.large-studio-enquiry .button { flex: 0 0 auto; }

/* Studio location map */
.studio-map-section { padding-top: clamp(4rem, 8vw, 7rem); background: var(--warm); }
.studio-map-section__heading { padding-bottom: clamp(2rem, 4vw, 3rem); display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.studio-map-section__heading h2 { margin-bottom: 0; }
.studio-map-section__heading > a { flex: 0 0 auto; font-size: .82rem; font-weight: 600; text-decoration: none; }
.studio-map { width: 100%; height: 360px; margin-bottom: 0; background: #ded7cc; }

@media (max-width: 980px) {
  .availability-grid { grid-template-columns: 1fr; }
  .large-studio-enquiry, .studio-map-section__heading { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 640px) {
  .calendar-embed, .calendar-embed iframe { min-height: 520px; height: 520px; }
  .availability-card__heading { align-items: flex-start; flex-direction: column; }
  .studio-map { height: 320px; }
}

/* Homepage hero carousel */
.hero-carousel__slides,
.hero-carousel__slide,
.hero-carousel__slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-carousel__slides { z-index: 0; }
.hero-carousel__slide {
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.025);
  transition: opacity 1s ease, visibility 1s ease, transform 7s ease;
}
.hero-carousel__slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}
.hero-carousel__slide img {
  display: block;
  object-fit: cover;
  object-position: center center;
}
.hero-carousel__slide:nth-child(1) img { object-position: center 48%; }
.hero-carousel__slide:nth-child(2) img { object-position: center 48%; }
.hero-carousel__slide:nth-child(3) img { object-position: center 50%; }
.hero-carousel__slide:nth-child(4) img { object-position: center 52%; }

.hero-carousel__controls {
  position: absolute;
  z-index: 3;
  right: max(var(--gutter), calc((100vw - 1440px) / 2));
  bottom: clamp(2rem, 4vh, 3.25rem);
  display: flex;
  align-items: center;
  gap: .85rem;
}
.hero-carousel__dots { display: flex; align-items: center; gap: .55rem; }
.hero-carousel__dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: width .25s ease, background .25s ease, border-color .25s ease;
}
.hero-carousel__dot.is-active {
  width: 24px;
  border-radius: 999px;
  background: currentColor;
}

@media (max-width: 640px) {
  .hero-carousel__controls {
    right: var(--gutter);
    bottom: 1.4rem;
  }
  .hero-carousel__slide:nth-child(1) img { object-position: 49% center; }
  .hero-carousel__slide:nth-child(2) img { object-position: 58% center; }
  .hero-carousel__slide:nth-child(3) img { object-position: 68% center; }
  .hero-carousel__slide:nth-child(4) img { object-position: 52% center; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-carousel__slide { transform: none; transition: none; }
}

/* V7 editorial testimonial
   The content is allowed to speak for itself: no label, card, stars or decoration. */
.editorial-pause {
  padding: clamp(5.5rem, 11vw, 10rem) var(--gutter);
  background: var(--paper);
}

.editorial-testimonial {
  width: min(100%, 920px);
  margin: 0 auto;
}

.editorial-testimonial__text,
.editorial-testimonial__author {
  margin: 0;
}

.editorial-testimonial__text {
  color: var(--ink);
  font-family: var(--display);
  font-size: clamp(1.75rem, 3.2vw, 3.15rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: -.025em;
}

.editorial-testimonial__toggle {
  display: inline;
  margin: 0 0 0 .28em;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  font-family: var(--sans);
  font-size: .38em;
  font-style: normal;
  font-weight: 500;
  letter-spacing: .025em;
  opacity: .58;
  cursor: pointer;
  white-space: nowrap;
  vertical-align: .08em;
}

.editorial-testimonial__toggle:hover,
.editorial-testimonial__toggle:focus-visible { opacity: 1; }
.editorial-testimonial__toggle:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: .28em;
}

.editorial-testimonial__author {
  margin-top: 1rem;
  color: var(--ink-soft);
  font-family: var(--sans);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
}

@media (max-width: 640px) {
  .editorial-pause { padding-block: 4.75rem; }
  .editorial-testimonial__text { font-size: clamp(1.55rem, 7vw, 2rem); }
  .editorial-testimonial__toggle { font-size: .48em; }
}

@media (prefers-reduced-motion: no-preference) {
  .editorial-testimonial__full:not([hidden]) { animation: testimonial-reveal .18s ease-out; }
  @keyframes testimonial-reveal { from { opacity: 0; } to { opacity: 1; } }
}


/* Spacer utility — <div class="clear my-4"></div> drops in N * 0.25rem of vertical
   space wherever you need it. Change the number to change the amount of space. */
.clear { display: block; clear: both; }
.my-0 { margin-block: 0; }
.my-1 { margin-block: .25rem; }
.my-2 { margin-block: .5rem; }
.my-3 { margin-block: .75rem; }
.my-4 { margin-block: 1rem; }
.my-5 { margin-block: 1.25rem; }
.my-6 { margin-block: 1.5rem; }
.my-8 { margin-block: 2rem; }
.my-10 { margin-block: 2.5rem; }
.my-12 { margin-block: 3rem; }
.my-16 { margin-block: 4rem; }
.my-20 { margin-block: 5rem; }
.my-24 { margin-block: 6rem; }

/* V7.0.2: language flag and quieter testimonials */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.primary-nav .nav-language { display:inline-flex; align-items:center; justify-content:center; margin-left:.1rem; padding:.25rem; line-height:1; }
.primary-nav .nav-language::after { display:none!important; }
.primary-nav .nav-language img { display:block; width:auto; height:16px; object-fit:contain; transition:opacity .2s ease, transform .2s ease; }
.primary-nav .nav-language:hover img,.primary-nav .nav-language:focus-visible img { opacity:.78; transform:translateY(-1px); }
.editorial-pause { background:var(--warm)!important; border-block:1px solid var(--line); }
.editorial-testimonial { max-width:760px; }
.editorial-testimonial__text { font-size:clamp(1.12rem,1.55vw,1.42rem)!important; line-height:1.65!important; }
.editorial-testimonial__toggle { font-size:.72em!important; }

/* V7 editorial information pages */
.page-hero { position:relative; min-height:72svh; display:grid; align-items:end; color:var(--white); background:#45342d; overflow:hidden; }
.page-hero__image { position:absolute; inset:0; background-image:url('../images/photography/mysore.jpg'); background-size:cover; background-position:center; }
.page-hero__inner { position:relative; z-index:1; width:min(calc(100% - (2 * var(--gutter))),1120px); margin-inline:auto; padding:12rem 0 clamp(4rem,9vh,7rem); }
.page-hero h1 { max-width:900px; }
.page-hero__intro { max-width:690px; margin-top:1.75rem; color:rgba(255,255,255,.86); font-size:clamp(1.1rem,1.8vw,1.4rem); }
.editorial-prose { max-width:820px; margin-inline:auto; }
.editorial-prose > p { font-size:clamp(1.05rem,1.25vw,1.18rem); line-height:1.82; }
.editorial-prose > p + p { margin-top:1.4rem; }
.learning-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); background:var(--line); gap:1px; }
.learning-card { min-height:330px; padding:clamp(2rem,4vw,3.2rem); background:var(--paper); display:flex; flex-direction:column; }
.learning-card__number { font-size:.72rem; letter-spacing:.16em; font-weight:600; margin-bottom:auto; }
.learning-card h3 { margin:3rem 0 1rem; }
.timeline { max-width:960px; margin-inline:auto; }
.timeline-item { display:grid; grid-template-columns:90px 1fr; gap:clamp(1.5rem,4vw,4rem); padding:clamp(2.4rem,5vw,4.5rem) 0; border-top:1px solid var(--line); }
.timeline-item:last-child { border-bottom:1px solid var(--line); }
.timeline-item__number { font-family:var(--display); font-size:clamp(2rem,4vw,3.7rem); line-height:1; color:var(--wine); }
.timeline-item h3 { margin-bottom:1rem; }
.timeline-item p { max-width:740px; }
.video-wrap { margin-top:2rem; aspect-ratio:16/9; background:#e9e3dc; }
.video-wrap iframe { width:100%; height:100%; border:0; }
.advice-list { max-width:920px; margin:0 auto; padding:0; list-style:none; counter-reset:advice; }
.advice-list li { counter-increment:advice; display:grid; grid-template-columns:46px 1fr; gap:1.25rem; padding:1.35rem 0; border-bottom:1px solid var(--line); }
.advice-list li::before { content:counter(advice,decimal-leading-zero); color:var(--ink-soft); font-size:.72rem; letter-spacing:.1em; padding-top:.35rem; }
.page-cta { display:flex; align-items:center; justify-content:space-between; gap:3rem; padding:clamp(3rem,6vw,5rem); background:var(--wine); color:var(--white); }
.page-cta h2 { max-width:700px; font-size:clamp(2rem,4vw,4rem); }
@media(max-width:980px){.primary-nav .nav-language{margin:1rem 0 0;padding:1rem 0;border-bottom:1px solid var(--line);justify-content:flex-start}.primary-nav .nav-language img{height:18px}.learning-grid{grid-template-columns:1fr}.learning-card{min-height:260px}.timeline-item{grid-template-columns:60px 1fr}.page-cta{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.page-hero{min-height:66svh}.timeline-item{grid-template-columns:1fr;gap:1rem}.timeline-item__number{font-size:2rem}.advice-list li{grid-template-columns:36px 1fr}}

/* V7 editorial footer — corrected layout */
.site-footer.site-footer--editorial {
  padding: clamp(4rem, 7vw, 6.5rem) 0 1.75rem;
  color: var(--ink);
  background: var(--warm);
  border-top: 1px solid var(--line);
}

.site-footer--editorial .site-footer__main {
  display: grid;
  grid-template-columns: minmax(320px, 2.1fr) repeat(3, minmax(135px, .8fr));
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: start;
}

.site-footer--editorial .site-footer__newsletter {
  max-width: 690px;
}

.site-footer--editorial .wordmark--footer {
  display: inline-flex;
  flex-direction: column;
  margin-bottom: 1.6rem;
  color: var(--ink);
  text-decoration: none;
}

.site-footer--editorial .wordmark--footer .wordmark__title {
  font-family: var(--display);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.035em;
}

.site-footer--editorial .wordmark--footer .wordmark__place {
  margin-top: .32rem;
  font-family: var(--sans);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.site-footer--editorial .site-footer__newsletter > p {
  max-width: 620px;
  margin: 0 0 1.75rem;
  color: var(--ink-soft);
  font-size: .98rem;
  line-height: 1.65;
}

.site-footer--editorial .site-footer__newsletter > p strong {
  color: var(--ink);
  font-weight: 600;
}

.footer-newsletter-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .8rem;
  width: min(100%, 690px);
  margin: 0;
}

.footer-newsletter-form input {
  width: 100%;
  min-width: 0;
  height: 54px;
  padding: 0 1.25rem;
  border: 1px solid rgba(48, 35, 29, .55);
  border-radius: 999px;
  color: var(--ink);
  background: transparent;
  font: inherit;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.footer-newsletter-form input::placeholder { color: rgba(48, 35, 29, .58); }
.footer-newsletter-form input:focus {
  border-color: var(--wine);
  box-shadow: 0 0 0 3px rgba(95, 18, 5, .09);
}

.footer-newsletter-form button {
  min-width: 118px;
  height: 54px;
  padding: 0 1.5rem;
  border: 1px solid var(--wine);
  border-radius: 999px;
  color: var(--white);
  background: var(--wine);
  font: inherit;
  font-size: .86rem;
  font-weight: 600;
  cursor: pointer;
  transition: transform .2s ease, background-color .2s ease, opacity .2s ease;
}

.footer-newsletter-form button:hover,
.footer-newsletter-form button:focus-visible {
  background: var(--wine-dark);
  transform: translateY(-1px);
}
.footer-newsletter-form button:disabled { cursor: wait; opacity: .65; transform: none; }

.site-footer--editorial .widget-subscribe-form-result {
  min-height: 0;
  margin: 0 0 .75rem;
  font-size: .82rem;
  line-height: 1.5;
}
.site-footer--editorial .widget-subscribe-form-result:empty { display: none; }
.site-footer--editorial .widget-subscribe-form-result.is-success { color: #2f6647; }
.site-footer--editorial .widget-subscribe-form-result.is-error { color: #8b2f22; }

.site-footer--editorial .site-footer__column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .72rem;
}

.site-footer--editorial .site-footer__column h3 {
  margin: 0 0 .75rem;
  color: var(--ink);
  font-family: var(--sans);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.site-footer--editorial .site-footer__column > a {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  margin: 0;
  color: var(--ink-soft);
  font-size: .92rem;
  line-height: 1.4;
  text-decoration: none;
  transition: color .2s ease;
}
.site-footer--editorial .site-footer__column > a:hover,
.site-footer--editorial .site-footer__column > a:focus-visible { color: var(--wine); }

.site-footer--editorial .site-footer__social svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  overflow: visible;
  fill: currentColor;
}
.site-footer--editorial .site-footer__social svg rect,
.site-footer--editorial .site-footer__social svg circle {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
.site-footer--editorial .site-footer__social svg .icon-fill {
  fill: currentColor;
  stroke: none;
}
.site-footer--editorial .site-footer__social a:first-of-type svg path,
.site-footer--editorial .site-footer__social a:last-of-type svg path:first-child { fill: currentColor; }
.site-footer--editorial .site-footer__social a:last-of-type svg path:last-child { fill: var(--warm); }

.site-footer--editorial .site-footer__ayf-link { margin-top: .3rem; }
.site-footer--editorial .site-footer__ayf-link img { display: block; height: 34px; width: auto; transition: opacity .2s ease; }
.site-footer--editorial .site-footer__ayf-link:hover img,
.site-footer--editorial .site-footer__ayf-link:focus-visible img { opacity: .65; }

.site-footer--editorial .site-footer__bottom {
  margin-top: clamp(3.5rem, 7vw, 6rem);
  padding-top: 1.4rem;
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.5;
}
.site-footer--editorial .site-footer__address { flex: 1; text-align: center; }
.site-footer--editorial .site-footer__address a { color: inherit; text-decoration: none; }
.site-footer--editorial .site-footer__address a:hover,
.site-footer--editorial .site-footer__address a:focus-visible { color: var(--wine); text-decoration: underline; }

@media (max-width: 1100px) {
  .site-footer--editorial .site-footer__main {
    grid-template-columns: minmax(300px, 1.6fr) repeat(2, minmax(150px, 1fr));
  }
  .site-footer--editorial .site-footer__social { grid-column: 2 / -1; }
}

@media (max-width: 760px) {
  .site-footer.site-footer--editorial { padding-top: 3.75rem; }
  .site-footer--editorial .site-footer__main { grid-template-columns: 1fr 1fr; }
  .site-footer--editorial .site-footer__newsletter { grid-column: 1 / -1; }
  .site-footer--editorial .site-footer__social { grid-column: auto; }
  .footer-newsletter-form { grid-template-columns: 1fr; }
  .footer-newsletter-form button { width: fit-content; min-width: 130px; }
}

@media (max-width: 520px) {
  .site-footer--editorial .site-footer__main { grid-template-columns: 1fr; }
  .site-footer--editorial .site-footer__newsletter,
  .site-footer--editorial .site-footer__social { grid-column: auto; }
  .site-footer--editorial .site-footer__bottom { flex-direction: column; }
  .site-footer--editorial .site-footer__address { flex: none; }
}


/* Footer bottom language and back-to-top links — keeps the Phase 2.3 design. */
.site-footer--editorial .site-footer__meta { margin-left: auto; text-align: right; }
.site-footer--editorial .site-footer__meta a { color: inherit; text-decoration: none; }
.site-footer--editorial .site-footer__meta a:hover,
.site-footer--editorial .site-footer__meta a:focus-visible { color: var(--wine); }
.site-footer--editorial .site-footer__top { margin-left: .22rem; font-size: 1rem; line-height: 1; }
@media (max-width: 720px) {
  .site-footer--editorial .site-footer__meta { margin-left: 0; text-align: left; }
}

/* V7 Phase 2.8 content-page prototype */
.content-hero-v28 {
  position: relative;
  min-height: 760px;
  display: flex;
  align-items: center;
  background: #eee8df url('../images/photography/hero-carousel-2.jpg') center center / cover no-repeat;
  overflow: hidden;
}
.content-hero-v28__inner {
  position: relative;
  z-index: 1;
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding-top: 96px;
}
.content-hero-v28__copy { max-width: 570px; }
.content-hero-v28 h1 {
  margin: 0 0 24px;
  font-family: 'Playfair Display', serif;
  font-size: clamp(3.4rem, 6vw, 6.1rem);
  line-height: .98;
  font-weight: 500;
  letter-spacing: -.045em;
  color: #2d201a;
}
.content-hero-v28 p { max-width: 510px; font-size: 1.18rem; line-height: 1.65; color: #4d4038; }
.content-hero-v28 .button { margin-top: 18px; }

.story-panel-v28 { background: #6f170e; color: #fffaf2; padding: 110px 0; }
.story-panel-v28__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr);
  gap: 90px;
  align-items: center;
}
.story-panel-v28 h2 {
  margin: 0 0 28px;
  font-family: 'Playfair Display', serif;
  font-size: clamp(2.8rem, 4.8vw, 4.7rem);
  line-height: 1.04;
  font-weight: 500;
  letter-spacing: -.035em;
  color: #fffaf2;
}
.story-panel-v28 p { max-width: 650px; font-size: 1.08rem; line-height: 1.75; color: rgba(255,250,242,.92); }
.photo-stack-v28 { position: relative; min-height: 500px; }
.photo-stack-v28 figure {
  position: absolute;
  margin: 0;
  padding: 7px;
  background: #fff;
  box-shadow: none;
}
.photo-stack-v28 img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo-stack-v28 .photo-1 { width: 58%; height: 250px; top: 0; left: 2%; transform: rotate(-1deg); }
.photo-stack-v28 .photo-2 { width: 58%; height: 300px; top: 110px; right: 0; transform: rotate(4deg); }
.photo-stack-v28 .photo-3 { width: 48%; height: 220px; bottom: 0; left: 5%; transform: rotate(-4deg); }

@media (max-width: 900px) {
  .content-hero-v28 { min-height: 680px; background-position: 63% center; }
  .story-panel-v28__grid { grid-template-columns: 1fr; gap: 50px; }
  .photo-stack-v28 { min-height: 460px; max-width: 560px; width: 100%; margin: 0 auto; }
}
@media (max-width: 600px) {
  .content-hero-v28 { min-height: 650px; align-items: flex-end; background-position: 66% center; }
  .content-hero-v28__inner { width: calc(100% - 36px); padding: 130px 0 54px; }
  .content-hero-v28 h1 { font-size: clamp(3rem, 14vw, 4.2rem); }
  .story-panel-v28 { padding: 78px 0; }
  .photo-stack-v28 { min-height: 390px; }
  .photo-stack-v28 .photo-1 { height: 190px; }
  .photo-stack-v28 .photo-2 { height: 230px; top: 85px; }
  .photo-stack-v28 .photo-3 { height: 165px; }
}


/* Light content-page heroes: dark studio identity, light navigation over the image. */
.site-header--dark-on-hero { color: var(--ink); }
.site-header--dark-on-hero .wordmark__logo-image--light { opacity: 0; }
.site-header--dark-on-hero .wordmark__logo-image--dark { opacity: 1; }
.site-header--dark-on-hero .primary-nav,
.site-header--dark-on-hero .menu-toggle { color: var(--white); }
.site-header--dark-on-hero.is-scrolled,
.site-header--dark-on-hero.is-scrolled .primary-nav,
.site-header--dark-on-hero.is-scrolled .menu-toggle { color: var(--ink); }


/* =========================================================
   V7 PHASE 3.1 — EDITORIAL CONTENT PAGE SYSTEM
   ========================================================= */
body.v7-content-page { background:#f6f1e9; color:#2d2420; }
body.v7-content-page #wrapper { overflow:visible; }
body.v7-content-page .v7-editorial-hero { position:relative; display:flex; align-items:flex-end; isolation:isolate; background-position:center; background-size:cover; overflow:hidden; }
body.v7-content-page.v7-interior .v7-editorial-hero { min-height:38vh; padding:9rem 0 4.5rem; }
body.v7-content-page.v7-landing .v7-editorial-hero { min-height:min(82vh,850px); padding:10rem 0 6rem; align-items:center; }
.v7-editorial-hero__copy { width:min(640px,52vw); }
.v7-editorial-hero__copy .eyebrow { margin:0 0 1rem; color:#6f1508; letter-spacing:.14em; text-transform:uppercase; font-size:.72rem; font-weight:600; }
.v7-editorial-hero__copy h1 { margin:0; max-width:13ch; font-family:'Playfair Display',serif; font-size:clamp(3rem,6vw,6.3rem); font-weight:500; line-height:.96; letter-spacing:-.045em; color:#281d19; }
body.v7-content-page.v7-interior .v7-editorial-hero__copy h1 { font-size:clamp(2.8rem,5.2vw,5rem); max-width:15ch; }

/* Keep the logo dark over the pale left side, but the navigation light over the photograph. */
body.v7-content-page .site-header:not(.is-scrolled) .wordmark,
body.v7-content-page .site-header:not(.is-scrolled) .wordmark__title,
body.v7-content-page .site-header:not(.is-scrolled) .wordmark__place { color:#201915; }
body.v7-content-page .site-header:not(.is-scrolled) .wordmark__logo-image--light { opacity:0; }
body.v7-content-page .site-header:not(.is-scrolled) .wordmark__logo-image--dark { opacity:1; }
body.v7-content-page .site-header:not(.is-scrolled) .primary-nav > ul > li > a,
body.v7-content-page .site-header:not(.is-scrolled) .primary-nav a { color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.22); }
body.v7-content-page .site-header:not(.is-scrolled) .menu-toggle { color:#fff; }

/* Give legacy content a light editorial rhythm without changing its meaning. */
body.v7-content-page #content,
body.v7-content-page main { background:#f6f1e9; }
body.v7-content-page #content .content-wrap { padding:clamp(4.5rem,8vw,8.5rem) 0; }
body.v7-content-page #content .container,
body.v7-content-page #content .container-fluid { max-width:1180px; }
body.v7-content-page #content h1,
body.v7-content-page #content h2,
body.v7-content-page #content h3,
body.v7-content-page #content h4 { font-family:'Playfair Display',serif; color:#2d201b; letter-spacing:-.025em; }
body.v7-content-page #content h2 { font-size:clamp(2.2rem,4vw,4rem); line-height:1.03; }
body.v7-content-page #content h3 { font-size:clamp(1.55rem,2.6vw,2.35rem); }
body.v7-content-page #content p,
body.v7-content-page #content li { font-size:1.06rem; line-height:1.78; color:#514741; }
body.v7-content-page #content a { color:#6f1508; }
body.v7-content-page #content hr,
body.v7-content-page #content .divider { border-color:rgba(45,32,27,.16); }
body.v7-content-page #content .fancy-title { border:0; text-align:left!important; margin-bottom:2rem; }
body.v7-content-page #content .fancy-title::before,
body.v7-content-page #content .fancy-title::after { display:none!important; }
body.v7-content-page #content .fancy-title h3 { background:transparent; padding:0; }
body.v7-content-page #content .promo,
body.v7-content-page #content .feature-box,
body.v7-content-page #content .card,
body.v7-content-page #content .pricing-box { box-shadow:none!important; border-radius:0!important; }
body.v7-content-page #content .promo { background:#ede4d8!important; border:0!important; }
body.v7-content-page #content img:not(.no-frame),
body.v7-content-page #content iframe { max-width:100%; }
body.v7-content-page #content .v7-photo-frame,
body.v7-content-page #content figure img,
body.v7-content-page #content .entry-image img,
body.v7-content-page #content .portfolio-image img { border:7px solid #fff; box-shadow:none; }
body.v7-content-page #content .row { row-gap:2.5rem; }
body.v7-content-page .button,
body.v7-content-page .btn { border-radius:999px!important; box-shadow:none!important; }

/* Framed photographic accent used on content pages. */
.v7-photo-accent { padding:clamp(4.5rem,8vw,8rem) 0; background:#6f1508; color:#fff; }
.v7-photo-accent__grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); gap:clamp(3rem,7vw,7rem); align-items:center; }
.v7-photo-accent h2 { margin:0 0 1.5rem; color:#fff; font-family:'Playfair Display',serif; font-size:clamp(2.4rem,4.4vw,4.7rem); line-height:1.02; }
.v7-photo-accent p { color:rgba(255,255,255,.88); font-size:1.05rem; line-height:1.75; }
.v7-photo-stack { min-height:380px; position:relative; }
.v7-photo-stack figure { position:absolute; margin:0; width:58%; border:7px solid #fff; background:#fff; }
.v7-photo-stack figure:nth-child(1){top:0;left:4%;transform:rotate(-1deg)}
.v7-photo-stack figure:nth-child(2){top:24%;right:0;transform:rotate(4deg)}
.v7-photo-stack figure:nth-child(3){bottom:0;left:12%;width:46%;transform:rotate(-3deg)}
.v7-photo-stack img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }

@media (max-width: 991px){
  body.v7-content-page .site-header:not(.is-scrolled) .primary-nav a { color:#2d2420; text-shadow:none; }
  .v7-editorial-hero__copy{width:min(720px,82vw)}
  .v7-photo-accent__grid{grid-template-columns:1fr}
  .v7-photo-stack{max-width:580px;width:100%;margin:0 auto}
}
@media (max-width: 640px){
  body.v7-content-page.v7-landing .v7-editorial-hero{min-height:72vh;padding:8rem 0 4rem;background-position:62% center}
  body.v7-content-page.v7-interior .v7-editorial-hero{min-height:46vh;padding:8rem 0 3.5rem;background-position:62% center}
  .v7-editorial-hero__copy{width:88vw}
  .v7-photo-stack{min-height:320px}
}

/* =========================================================
   EDITORIAL EVENTS — merged from events-editorial.css
   ========================================================= */
/* Editorial event listing options */
.events-page-intro {
  max-width: 760px;
  margin: 0 auto 4.5rem;
  text-align: center;
}
.events-page-intro h2 { margin-bottom: 1rem; }
.events-page-intro p { font-size: 1.08rem; line-height: 1.75; }
.event-listing {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(3rem, 6vw, 5.75rem) clamp(2rem, 4vw, 4rem);
  padding-bottom: clamp(4rem, 8vw, 7rem);
}
.event-card { min-width: 0; }
.event-card__image-link { display: block; text-decoration: none; }
.event-card__media {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: visible;
  border-radius: 18px;
  background: #eee9df;
}
.event-card__media img,
.event-card__placeholder {
  width: 100%; height: 100%; display: block;
  border-radius: inherit;
  object-fit: cover;
}
.event-card__placeholder {
  border: 1px solid rgba(45, 42, 38, .16);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .25rem; color: rgba(45, 42, 38, .56); letter-spacing: .08em;
  font-size: .72rem; text-align: center;
}
.event-card__placeholder strong { font-size: .82rem; font-weight: 600; letter-spacing: .04em; }
.event-card__badge {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(0, 0);
  width: 58px;
  height: 58px;
  border-radius: 0 17px 0 10px;
  background: #f4efe5;
  border-left: 1px solid rgba(45, 42, 38, .14);
  border-bottom: 1px solid rgba(45, 42, 38, .14);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: #2f2b27; line-height: 1; z-index: 2;
}
.event-card__badge span { font-size: .62rem; letter-spacing: .13em; margin-left: .13em; }
.event-card__badge strong { margin-top: .32rem; font-size: .88rem; font-weight: 600; white-space: nowrap; }
.event-card__content { padding-top: 1.3rem; }
.event-card__date {
  margin: 0 0 .7rem;
  font-size: .78rem; letter-spacing: .08em; text-transform: uppercase;
  color: #6d665e;
}
.event-card__category {
  margin: 0 0 .45rem;
  font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: #5f1205;
}
.event-card h2 { margin: 0 0 .45rem; font-size: clamp(1.65rem, 2.5vw, 2.35rem); line-height: 1.08; }
.event-card h2 a { color: inherit; text-decoration: none; }
.event-card__subtitle { margin: 0 0 .75rem; font-size: 1rem; font-weight: 600; color: #3f3a34; }
.event-card__teaser { margin: 0; line-height: 1.7; color: #5e574f; }
.event-card__read-more { color: #5f1205; font-weight: 600; text-decoration: none; white-space: nowrap; }
.event-card__read-more:hover { text-decoration: underline; }
.event-card__button { margin-top: 1.2rem; }
.event-card__image-link:hover .event-card__placeholder { background: #e9e2d6; }

@media (max-width: 767.98px) {
  .event-listing { grid-template-columns: 1fr; gap: 3.75rem; }
  .events-page-intro { text-align: left; margin-bottom: 3rem; }
  .event-card__badge { width: 54px; height: 54px; }
}

/* =========================================================
   MASTER COMPONENTS — ABOUT YOGA HERO + EDITORIAL COLLAGE
   These definitions supersede the former page-level styles.
   ========================================================= */
.about-hero {
  position: relative;
  min-height: 72svh;
  display: flex;
  align-items: flex-end;
  padding: 11rem 0 clamp(4rem, 8vw, 6rem);
  color: var(--ink);
  background: #d8d1c7;
  overflow: hidden;
  isolation: isolate;
}
.about-hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.about-hero__media img,
.about-hero__media .image-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about-hero__media .image-placeholder {
  min-height: 72svh;
  color: rgba(46,40,34,.56);
  background: #d8d1c7;
  border: 1px dashed rgba(46,40,34,.25);
}
.about-hero__copy {
  max-width: 760px;
  padding: 0;
  background: transparent;
  border-radius: 0;
}
.about-hero h1 {
  max-width: 12ch;
  margin: .25rem 0 1.35rem;
  font-size: clamp(3rem, 7vw, 6.3rem);
  line-height: .95;
}
.about-hero p:last-child {
  max-width: 640px;
  margin-bottom: 0;
  font-size: 1.18rem;
}

.about-intro-section {
  color: #fffaf2;
  background: var(--wine-dark);
}
.about-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}
.about-intro__copy { max-width: 700px; }
.about-intro__copy .eyebrow { color: rgba(255,250,242,.82); }
.about-intro__copy h2 {
  margin-bottom: 1.5rem;
  color: #fffaf2;
  font-size: clamp(2.7rem, 5vw, 5rem);
  line-height: 1.03;
}
.about-intro__copy p { color: rgba(255,250,242,.9); }
.about-intro__copy .inline-expand__toggle { color: #fffaf2; }

.editorial-photo-stack {
  position: relative;
  min-height: 500px;
}
.editorial-photo-stack figure {
  position: absolute;
  margin: 0;
  padding: 7px;
  background: var(--white);
}
.editorial-photo-stack img,
.editorial-photo-stack .image-placeholder {
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0;
  border-radius: 0;
  object-fit: cover;
}
.editorial-photo-stack .image-placeholder {
  color: rgba(46,40,34,.58);
  background: #ddd5ca;
}
.editorial-photo-stack .photo-1 {
  width: 58%;
  height: 250px;
  top: 0;
  left: 2%;
  transform: rotate(-1deg);
}
.editorial-photo-stack .photo-2 {
  width: 58%;
  height: 300px;
  top: 110px;
  right: 0;
  transform: rotate(4deg);
}
.editorial-photo-stack .photo-3 {
  width: 48%;
  height: 220px;
  bottom: 0;
  left: 5%;
  transform: rotate(-4deg);
}

/* About Yoga topic components */
.inline-expand { margin: 0; }
.inline-expand__preview { margin: 0; color: var(--ink-soft); }
.inline-expand__toggle {
  display: inline;
  padding: 0;
  border: 0;
  color: var(--wine);
  background: none;
  font: 600 inherit;
  cursor: pointer;
}
.inline-expand__toggle:hover { text-decoration: underline; text-underline-offset: .18em; }
.inline-expand__content { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .3s ease, opacity .25s ease; }
.inline-expand__content-inner { overflow: hidden; }
.inline-expand.is-open .inline-expand__content { grid-template-rows: 1fr; opacity: 1; }
.inline-expand__content-inner > :first-child { margin-top: 1rem; }
.topic-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.5rem; }
.topic-card { min-height: 100%; display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; background: #f2ede5; }
.topic-card:nth-child(4n+2) { background: #e8eee8; }
.topic-card:nth-child(4n+3) { background: #ece7df; }
.topic-card:nth-child(4n) { background: #e7edf0; }
.topic-card__image { aspect-ratio: 16 / 9; overflow: hidden; }
.topic-card__image .image-placeholder { width: 100%; height: 100%; }
.topic-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.topic-card__body { padding: clamp(1.5rem, 3vw, 2.5rem); }
.topic-card h2 { margin: 0 0 .75rem; font-size: clamp(1.65rem, 2.5vw, 2.35rem); line-height: 1.12; }
.topic-card__full ol { padding-left: 1.25rem; }
.topic-card__full li { margin: .45rem 0; }
.topic-card__full iframe { width: 100%; aspect-ratio: 16/9; border: 0; border-radius: 12px; }
.topic-card__full img { max-width: 100%; height: auto; border-radius: 12px; }
.section-heading--about { max-width: 760px; margin-bottom: 3rem; }
.section-heading--about h2 { font-size: clamp(2.5rem, 5vw, 4.6rem); line-height: 1.02; }
.about-cta { display: grid; grid-template-columns: 1.25fr .75fr; align-items: center; gap: 2rem; }
.about-cta p { max-width: 600px; }
.about-cta__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .75rem; }
.button--outline-dark { color: var(--white); background: transparent; border: 1px solid currentColor; }
.button--outline-dark:hover { color: var(--wine); background: var(--white); }

@media (max-width: 900px) {
  .about-intro, .about-cta { grid-template-columns: 1fr; }
  .editorial-photo-stack { width: 100%; max-width: 560px; min-height: 460px; margin-inline: auto; }
  .topic-grid { grid-template-columns: 1fr; }
  .about-cta__actions { justify-content: flex-start; }
}
@media (max-width: 640px) {
  .about-hero { min-height: 66svh; padding: 8rem 0 4rem; }
  .about-hero__copy { margin: 0; }
  .editorial-photo-stack { min-height: 390px; }
  .editorial-photo-stack .photo-1 { height: 190px; }
  .editorial-photo-stack .photo-2 { top: 85px; height: 230px; }
  .editorial-photo-stack .photo-3 { height: 165px; }
  .topic-card__body { padding: 1.4rem; }
}

/* Root-ready event pages */
.events-editorial-main { padding-top: clamp(4rem, 8vw, 7rem); }
.events-editorial-main > .container { padding-bottom: clamp(4rem, 8vw, 7rem); }

/* =========================================================
   V7.1 — unified studio navigation and complete event cards
   ========================================================= */
.site-header,
.site-header.site-header--solid,
.site-header.is-scrolled {
  position: sticky;
  top: 0;
  color: var(--ink);
  background: #d8d0c4;
  box-shadow: none;
  backdrop-filter: none;
}

.site-header__inner {
  width: min(calc(100% - (2 * var(--gutter))), 1540px);
  min-height: 96px;
}

.site-header .wordmark,
.site-header .wordmark__title,
.site-header .wordmark__place,
.site-header .primary-nav,
.site-header .menu-toggle,
body.v7-content-page .site-header:not(.is-scrolled) .wordmark,
body.v7-content-page .site-header:not(.is-scrolled) .wordmark__title,
body.v7-content-page .site-header:not(.is-scrolled) .wordmark__place,
body.v7-content-page .site-header:not(.is-scrolled) .primary-nav a,
body.v7-content-page .site-header:not(.is-scrolled) .menu-toggle {
  color: var(--ink);
  text-shadow: none;
}

.site-header .wordmark__logo-image--light { opacity: 0; }
.site-header .wordmark__logo-image--dark { opacity: 1; }
.site-header .wordmark__logo { height: 3rem; }
.site-header .wordmark__title { font-size: clamp(1.45rem, 2vw, 2rem); }
.site-header .wordmark__place { margin-top: .28rem; font-size: .64rem; }

.primary-nav {
  gap: clamp(1.4rem, 2.15vw, 2.65rem);
}
.primary-nav a {
  position: static;
  padding: .35rem 0;
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .01em;
  text-decoration: none;
}
.primary-nav a::after,
.primary-nav a:hover::after,
.primary-nav a:focus-visible::after,
.primary-nav a.is-active::after,
.primary-nav a.is-active:not(.nav-book)::after {
  display: none !important;
  content: none !important;
}
.primary-nav a:hover,
.primary-nav a:focus-visible,
.primary-nav a.is-active {
  color: var(--wine);
}
.primary-nav .nav-language {
  margin: 0;
  padding: .25rem;
  font-size: 1.2rem;
  line-height: 1;
}
.nav-language__flag {
  display: block;
  line-height: 1;
  filter: saturate(.92);
}
.primary-nav .nav-book {
  min-height: 52px;
  padding: .78rem 1.55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  border: 1px solid rgba(255,255,255,.92);
  border-radius: 999px;
}
.primary-nav .nav-book:hover,
.primary-nav .nav-book:focus-visible {
  color: var(--ink);
  background: rgba(255,255,255,.32);
}

.event-listing {
  align-items: start;
  padding-bottom: clamp(6rem, 10vw, 10rem);
}
.event-card {
  min-width: 0;
  height: auto;
  overflow: visible;
}
.event-card__content {
  min-height: 0;
  padding: 1.3rem 0 2.25rem;
  overflow: visible;
}
.event-card__teaser {
  padding-bottom: .4rem;
}
.event-card__read-more,
.event-card__button {
  display: inline-flex;
  margin-top: 1.25rem;
}
.event-card__teaser .event-card__read-more {
  margin-top: 0;
  margin-left: .2rem;
}
.events-editorial-main > .container {
  padding-bottom: clamp(6rem, 10vw, 10rem);
}

@media (max-width: 980px) {
  .site-header__inner { min-height: 82px; }
  .menu-toggle { display: inline-flex; align-items: center; }
  .primary-nav {
    inset-block-start: 82px;
    background: #d8d0c4;
  }
  .primary-nav a {
    position: static;
    color: var(--ink) !important;
    text-shadow: none !important;
  }
  .primary-nav .nav-language { justify-content: flex-start; }
  .primary-nav .nav-book { margin-top: 1rem; }
}


/* Content-page hero image variants based on the New to Yoga template */
.content-hero-v28--about { background-image: url('../images/photography/hero-carousel-2.jpg'); }
.content-hero-v28--events { background-image: url('../images/photography/hero-carousel-1.jpg'); }
.events-editorial-main { padding-top: clamp(5rem, 9vw, 8rem); }
.events-editorial-main > .container { padding-bottom: 0; }
.events-editorial-main .section-heading { margin-bottom: clamp(3rem, 6vw, 5rem); }


/* Event page corrections: full hero image and approved primary CTA buttons. */
.content-hero-v28--events {
  background-color: #d9d0c4;
  background-image: url('../images/photography/hero-carousel-1.jpg');
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

.event-card__button {
  align-self: flex-start;
  display: inline-flex;
  margin-top: 1.5rem;
  min-height: 54px;
  padding: .95rem 2rem;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--wine);
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  transition: background-color .22s ease, transform .22s ease;
}
.event-card__button:hover,
.event-card__button:focus-visible {
  color: #fff;
  background: var(--wine-dark);
  transform: translateY(-1px);
  text-decoration: none;
}

/* =========================================================
   V7.2 — transparent hero header, dark logo, flag language icon
   ========================================================= */
.site-header,
.site-header.site-header--solid {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1000;
  color: var(--ink);
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  transition: background-color .28s ease, box-shadow .28s ease, color .28s ease;
}

.site-header.is-scrolled {
  position: fixed;
  color: var(--ink);
  background: #d8d0c4;
  box-shadow: 0 1px 0 rgba(35, 27, 22, .08);
}

.site-header__inner {
  min-height: 96px;
}

/* The same dark logo is shown over the hero and after scrolling. */
.site-header .wordmark,
.site-header .wordmark__title,
.site-header .wordmark__place,
.site-header:not(.is-scrolled) .wordmark,
.site-header:not(.is-scrolled) .wordmark__title,
.site-header:not(.is-scrolled) .wordmark__place {
  color: var(--ink);
  text-shadow: none;
}
.site-header .wordmark__logo-image--light { opacity: 0 !important; }
.site-header .wordmark__logo-image--dark { opacity: 1 !important; }

/* White navigation over the image; dark navigation on the solid header. */
.site-header:not(.is-scrolled) .primary-nav,
.site-header:not(.is-scrolled) .primary-nav a,
.site-header:not(.is-scrolled) .menu-toggle {
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, .28);
}
.site-header.is-scrolled .primary-nav,
.site-header.is-scrolled .primary-nav a,
.site-header.is-scrolled .menu-toggle {
  color: var(--ink);
  text-shadow: none;
}
.site-header:not(.is-scrolled) .primary-nav .nav-book {
  color: #fff;
  border-color: rgba(255,255,255,.88);
  background: transparent;
}
.site-header.is-scrolled .primary-nav .nav-book {
  color: var(--ink);
  border-color: rgba(32,25,21,.28);
  background: transparent;
}
.site-header .primary-nav a:hover,
.site-header .primary-nav a:focus-visible,
.site-header .primary-nav a.is-active {
  color: var(--wine);
}
.site-header:not(.is-scrolled) .primary-nav a:hover,
.site-header:not(.is-scrolled) .primary-nav a:focus-visible,
.site-header:not(.is-scrolled) .primary-nav a.is-active {
  color: #fff;
  opacity: .78;
}
.site-header .primary-nav a::after,
.site-header .primary-nav a.is-active::after { display: none !important; }

.primary-nav .nav-language {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  text-shadow: none !important;
}
.primary-nav .nav-language img {
  display: block;
  width: 24px;
  height: 16px;
  object-fit: cover;
  border-radius: 1px;
  box-shadow: 0 0 0 1px rgba(255,255,255,.22);
}
.site-header.is-scrolled .primary-nav .nav-language img {
  box-shadow: 0 0 0 1px rgba(32,25,21,.12);
}

/* Hero starts at the very top behind the transparent header. */
.content-hero-v28,
.content-hero-v28--about,
.content-hero-v28--events {
  margin-top: 0 !important;
}
main { padding-top: 0 !important; }

@media (max-width: 980px) {
  .site-header:not(.is-scrolled) .primary-nav.is-open,
  .site-header:not(.is-scrolled) .primary-nav.is-open a {
    color: var(--ink);
    text-shadow: none;
  }
  .site-header:not(.is-scrolled) .primary-nav.is-open {
    background: #d8d0c4;
  }
}


/* V7.0.4 — language selector is always a flag icon */
.primary-nav .nav-language {
  width: 28px;
  min-width: 28px;
  height: 24px;
  padding: 4px 2px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  overflow: visible;
  font-size: 0 !important;
}
.primary-nav .nav-language .nav-language__flag,
.primary-nav .nav-language img {
  display: block !important;
  width: 24px !important;
  height: 16px !important;
  max-width: none !important;
  object-fit: cover;
  border-radius: 1px;
}
.primary-nav .nav-language::before,
.primary-nav .nav-language::after { content: none !important; display: none !important; }
@media (max-width: 980px) {
  .primary-nav .nav-language { width: auto; min-width: 0; justify-content: flex-start; }
}


/* V7.0.6 — guaranteed image-only language selector */
.primary-nav a.nav-language {
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: 0 !important;
}
.primary-nav a.nav-language .nav-language__flag {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 24px !important;
  height: 16px !important;
}
.primary-nav a.nav-language .sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* =========================================================
   Start guide editorial pages
   Scoped to .start-guide-* components
   ========================================================= */
.start-guide-hero{position:relative;min-height:82svh;display:grid;align-items:end;color:var(--white);background-position:center;background-size:cover}
.start-guide-hero__inner{position:relative;z-index:1;padding:12rem 0 clamp(4.5rem,9vh,7rem)}
.start-guide-hero h1{max-width:940px}
.start-guide-hero__lead{max-width:650px;margin-top:2rem;font-size:clamp(1.15rem,1.9vw,1.5rem);line-height:1.55}
.start-guide-two-col{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:clamp(3rem,9vw,9rem);align-items:start}
.start-guide-prose{max-width:680px;font-size:1.06rem}
.start-path-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.start-path-card{min-height:620px;padding:clamp(2rem,5vw,4.5rem);display:flex;flex-direction:column;border-radius:2rem;background:var(--paper)}
.start-path-card--accent{background:#e5d8ca}
.start-path-card__number{margin-bottom:4rem;font-size:.72rem;font-weight:600;letter-spacing:.16em}
.start-path-card h3{margin-bottom:1.5rem}
.start-path-card ol,.start-path-card ul{margin:1.25rem 0 2rem;padding-left:1.25rem}
.start-path-card li{margin:.8rem 0}
.start-path-card .button-row,.start-path-card>.button{margin-top:auto}
.start-check-list{list-style:none!important;padding-left:0!important}
.start-check-list li{position:relative;padding-left:2rem}
.start-check-list li::before{content:"✓";position:absolute;left:0;top:0;font-weight:600}
.start-feature-row{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,7vw,7rem);align-items:center;margin-bottom:clamp(4rem,9vw,9rem)}
.start-feature-row--reverse .start-feature-image{order:2}
.start-feature-image{overflow:hidden;border-radius:2rem;min-height:560px}
.start-feature-image img{width:100%;height:100%;object-fit:cover}
.start-feature-copy{max-width:590px}
.start-feature-copy h3{margin-bottom:1.75rem}
.start-support-grid{display:grid;grid-template-columns:1fr .9fr;gap:clamp(3rem,9vw,9rem);align-items:center}
.start-editorial-checklist{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.start-editorial-checklist li{position:relative;padding:1.5rem 0 1.5rem 3rem;display:grid;grid-template-columns:140px 1fr;gap:1rem;border-bottom:1px solid var(--line)}
.start-editorial-checklist li::before{content:"✓";position:absolute;left:0;top:1.5rem;width:1.65rem;height:1.65rem;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:.75rem}
.start-editorial-checklist strong{font-family:var(--display);font-size:1.3rem;font-weight:500}
.start-editorial-checklist span{color:var(--ink-soft)}
@media(max-width:980px){.start-guide-two-col,.start-path-grid,.start-feature-row,.start-support-grid{grid-template-columns:1fr}.start-feature-row--reverse .start-feature-image{order:0}.start-path-card{min-height:auto}.start-feature-image{min-height:440px}}
@media(max-width:640px){.start-guide-hero{min-height:72svh}.start-guide-hero__inner{padding-top:9rem}.start-path-card{border-radius:1.25rem}.start-feature-image{min-height:360px;border-radius:1.25rem}.start-editorial-checklist li{grid-template-columns:1fr;padding-left:2.6rem}}
/* Schedule pages — editorial YOGO calendar and class descriptions */
.schedule-hero { position: relative; min-height: min(76svh, 760px); display: grid; align-items: end; overflow: hidden; color: var(--white); }
.schedule-hero__image, .schedule-hero__image.site-image { position: absolute; inset: 0; }
.site-image--schedule-hero { background-position: center 45%; }
.schedule-hero__inner { position: relative; z-index: 1; width: min(calc(100% - (2 * var(--gutter))), 1440px); margin-inline: auto; padding: 12rem 0 clamp(4.5rem,9vh,7rem); }
.schedule-hero h1 { max-width: 950px; font-size: clamp(3.75rem, 9vw, 9.5rem); font-weight: 600; }
.schedule-hero__inner > p:not(.eyebrow) { max-width: 620px; margin: 2rem 0 0; font-size: clamp(1.35rem, 2.3vw, 1.85rem); line-height: 1.55; }
.schedule-hero__inner > .button { margin-top: 1.75rem; }
.schedule-section-heading { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(280px,.6fr); align-items: end; gap: clamp(2rem,6vw,6rem); margin-bottom: clamp(2.5rem,5vw,4.5rem); }
.schedule-section-heading > p { max-width: 450px; margin: 0 0 .65rem auto; color: var(--ink-soft); }
.schedule-calendar-panel { position: relative; padding: clamp(1rem,3vw,2.5rem); overflow: hidden; border: 1px solid var(--line); border-radius: clamp(1.5rem,3vw,2.75rem); background: var(--white); box-shadow: 0 24px 70px rgba(62,42,33,.08); }
.schedule-calendar-panel .yogo-calendar { min-height: 360px; }
.schedule-class-list { border-top: 1px solid var(--line); }
.schedule-class { border-bottom: 1px solid var(--line); }
.schedule-class summary { position: relative; display: grid; grid-template-columns: 80px minmax(0,1fr) 46px; align-items: center; gap: 1rem; padding: clamp(1.6rem,3vw,2.5rem) 0; cursor: pointer; list-style: none; }
.schedule-class summary::-webkit-details-marker { display: none; }
.schedule-class__number { align-self: start; padding-top: .35rem; font-size: .72rem; font-weight: 600; letter-spacing: .18em; }
.schedule-class__title { font-family: var(--display); font-size: clamp(1.8rem,3.5vw,3.35rem); font-weight: 500; line-height: 1.05; letter-spacing: -.035em; }
.schedule-class__toggle { position: relative; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; }
.schedule-class__toggle::before, .schedule-class__toggle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1px; background: currentColor; transform: translate(-50%,-50%); transition: transform .25s ease; }
.schedule-class__toggle::after { transform: translate(-50%,-50%) rotate(90deg); }
.schedule-class[open] .schedule-class__toggle::after { transform: translate(-50%,-50%) rotate(0); }
.schedule-class__content { display: grid; grid-template-columns: 80px minmax(0,800px) 1fr; gap: 1rem; padding: 0 0 clamp(3rem,6vw,5rem); }
.schedule-class__content .editorial-prose { grid-column: 2; }
.schedule-class__image { grid-column: 2; margin-bottom: 1.75rem; border-radius: 16px; overflow: hidden; }
.schedule-class__image img { display: block; width: 100%; height: auto; }
.schedule-class__content h4 { margin: 0 0 1.35rem; font-family: var(--display); font-size: clamp(1.45rem,2.2vw,2rem); font-weight: 500; line-height: 1.2; }
.schedule-class__content p, .schedule-class__content li { color: var(--ink-soft); }
.schedule-class__content ul, .schedule-class__content ol { margin: 1.25rem 0 1.5rem; padding: 0; list-style: none; }
.schedule-class__content li { position: relative; padding: .6rem 0 .6rem 1.75rem; border-bottom: 1px solid rgba(37,31,29,.1); }
.schedule-class__content li::before { content: "✓"; position: absolute; left: 0; color: var(--wine); font-weight: 600; }
.schedule-class__content a { color: var(--wine); text-underline-offset: .18em; }
.cta-panel-maroon { color: var(--white); background: var(--wine-dark); padding-block: 50px; }
.cta-panel-maroon__grid { display: grid; grid-template-columns: minmax(0,1.5fr) auto; align-items: end; gap: 3rem; }
.cta-panel-maroon__grid h2 { max-width: 850px; font-size: clamp(2.6rem,5vw,5rem); }
.cta-panel-maroon__grid p:not(.eyebrow) { max-width: 650px; margin-top: 1.75rem; color: rgba(255,255,255,.74); }
.cta-panel-maroon__grid .button-row { justify-content: flex-end; }
.cta-panel-maroon__grid .button--text { color: var(--white); }
@media (max-width: 980px) {
  .schedule-section-heading, .cta-panel-maroon__grid { grid-template-columns: 1fr; align-items: start; }
  .schedule-section-heading > p { margin-left: 0; }
  .cta-panel-maroon__grid .button-row { justify-content: flex-start; }
}
@media (max-width: 640px) {
  .schedule-hero { min-height: 620px; }
  .schedule-class summary { grid-template-columns: 44px minmax(0,1fr) 38px; gap: .65rem; }
  .schedule-class__toggle { width: 36px; height: 36px; }
  .schedule-class__content { grid-template-columns: 44px minmax(0,1fr); gap: .65rem; }
  .schedule-class__content .editorial-prose { grid-column: 2; }
  .schedule-class__image { grid-column: 2; }
  .schedule-calendar-panel { margin-inline: calc(var(--gutter) * -.35); padding: .65rem; border-radius: 1.25rem; }
}


/* =========================================================
   Introduction course pages
   Scoped to .intro-course-* components
   ========================================================= */
.intro-course-hero{position:relative;min-height:min(82svh,820px);display:grid;align-items:end;overflow:hidden;color:var(--white);background-position:center 46%;background-size:cover}
.intro-course-hero__inner{position:relative;z-index:1;width:min(calc(100% - (2 * var(--gutter))),1440px);margin-inline:auto;padding:12rem 0 clamp(4.5rem,9vh,7rem)}
.intro-course-hero h1{max-width:980px}
.intro-course-hero__lead{max-width:690px;margin:1.8rem 0 0;font-size:clamp(1.12rem,1.8vw,1.48rem);line-height:1.55}
.intro-course-hero__meta{display:flex;flex-wrap:wrap;gap:.75rem 1.6rem;margin-top:2rem;font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.intro-course-hero__meta span{display:inline-flex;align-items:center;gap:.6rem}
.intro-course-overview{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:clamp(3rem,9vw,9rem);align-items:start}
.intro-course-overview__aside{position:sticky;top:8rem}
.intro-course-overview__aside h2{max-width:520px}
.intro-course-overview__facts{margin-top:2.5rem;border-top:1px solid var(--line)}
.intro-course-overview__fact{display:grid;grid-template-columns:110px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.intro-course-overview__fact dt{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.intro-course-overview__fact dd{margin:0;color:var(--ink-soft)}
.intro-benefits-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:2rem;overflow:hidden}
.intro-benefit{min-height:210px;padding:clamp(1.75rem,3vw,3rem);background:var(--paper)}
.intro-benefit__number{display:block;margin-bottom:2.3rem;font-size:.7rem;font-weight:600;letter-spacing:.16em}
.intro-benefit p{margin:0;color:var(--ink-soft)}
.intro-programme{display:grid;gap:0;border-top:1px solid var(--line)}
.intro-programme-item{display:grid;grid-template-columns:100px minmax(220px,.55fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,5rem);padding:clamp(2rem,5vw,4.5rem) 0;border-bottom:1px solid var(--line)}
.intro-programme-item__number{font-size:.72rem;font-weight:600;letter-spacing:.16em}
.intro-programme-item__meta h3{margin:0 0 1.25rem}
.intro-programme-item__meta p{margin:.35rem 0;color:var(--ink-soft)}
.intro-programme-item__copy p{color:var(--ink-soft)}
.intro-booking-panel{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:clamp(3rem,8vw,8rem);padding:clamp(3rem,7vw,6.5rem);border-radius:clamp(1.75rem,4vw,3.5rem);color:var(--white);background:var(--wine-dark)}
.intro-booking-panel h2{max-width:700px}
.intro-booking-panel p{color:rgba(255,255,255,.76)}
.intro-booking-panel__details{margin:0;border-top:1px solid rgba(255,255,255,.2)}
.intro-booking-panel__details div{display:grid;grid-template-columns:95px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.2)}
.intro-booking-panel__details dt{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.intro-booking-panel__details dd{margin:0}
.intro-booking-panel .button{margin-top:2rem;background:var(--white);color:var(--wine-dark)}
.intro-cta{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.intro-next-course{display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:center;padding:clamp(2rem,4vw,3.5rem) 0}

/* Pricing page components, aligned with astanga-v2 editorial system */
.pricing-intro { max-width: 900px; }
.pricing-intro p { max-width: 78ch; }
.pricing-section-v28 { padding: clamp(4.5rem, 8vw, 7.5rem) 0; }
.pricing-section-v28:nth-of-type(even) { background: var(--warm, #f6f1e9); }
.pricing-card-list { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); margin-top: clamp(2rem, 4vw, 3.25rem); }
.pricing-card { display:flex; flex-direction:column; padding:clamp(1.6rem,4vw,3rem); border:1px solid rgba(36,31,27,.12); border-radius:20px; background:#fbf8f2; }
.pricing-card:nth-child(4n+2) { background:#f4ede3; }
.pricing-card:nth-child(4n+3) { background:#eef2ec; }
.pricing-card:nth-child(4n+4) { background:#f1efec; }
.pricing-card--membership { background:#f6f1e9; }
.pricing-card__title { margin:0 0 .7rem; font-family:'Playfair Display', Georgia, serif; font-size:clamp(1.45rem,2.3vw,1.95rem); font-weight:500; }
.pricing-card__description { max-width:72ch; margin:0 0 1.35rem; color:#67615b; line-height:1.7; }
.pricing-card__features { display:grid; gap:.7rem; max-width:78ch; margin:0 0 clamp(1.75rem,4vw,2.5rem); padding:0; list-style:none; }
.pricing-card__features li { position:relative; padding-left:1.65rem; line-height:1.55; }
.pricing-card__features li::before { content:'✓'; position:absolute; left:0; color:#5f1205; font-weight:600; }
.pricing-card__features a { color:inherit; text-underline-offset:3px; }
.pricing-card__footer { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-top:auto; padding-top:1.4rem; border-top:1px solid rgba(36,31,27,.12); }
.pricing-card__price { display:flex; align-items:baseline; flex-wrap:wrap; gap:.4rem; margin:0; }
.pricing-card__price strong { font-family:'Playfair Display', Georgia, serif; font-size:clamp(1.8rem,3.4vw,2.7rem); font-weight:500; line-height:1; }
.pricing-card__price span { color:#67615b; font-size:.95rem; }
.pricing-card__actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.7rem; }
.pricing-card__button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:.72rem 1.35rem; border:1px solid #5f1205; border-radius:999px; background:#5f1205; color:#fff; font-size:.93rem; font-weight:600; line-height:1.2; }
.pricing-card__button[aria-disabled='true'] { cursor:default; opacity:.96; }
.terms-list { max-width:940px; margin:clamp(2rem,4vw,3rem) auto 0; border-top:1px solid rgba(36,31,27,.14); }
.terms-list details { border-bottom:1px solid rgba(36,31,27,.14); }
.terms-list summary { cursor:pointer; padding:1.35rem 2.5rem 1.35rem 0; font-family:'Playfair Display', Georgia, serif; font-size:1.25rem; list-style:none; position:relative; }
.terms-list summary::-webkit-details-marker { display:none; }
.terms-list summary::after { content:'+'; position:absolute; right:.25rem; top:1.2rem; font-family:'DM Sans', sans-serif; font-size:1.45rem; font-weight:400; }
.terms-list details[open] summary::after { content:'–'; }
.terms-list__body { padding:0 2.5rem 1.4rem 0; color:#5e5852; line-height:1.75; }
.terms-list__body p:last-child { margin-bottom:0; }
@media (max-width:700px) {
  .pricing-card__footer { align-items:flex-start; flex-direction:column; }
  .pricing-card__actions { width:100%; justify-content:flex-start; }
  .pricing-card__button { width:100%; }
}
.intro-next-course p{margin:.75rem 0 0;color:var(--ink-soft)}
@media(max-width:980px){.intro-course-overview,.intro-booking-panel{grid-template-columns:1fr}.intro-course-overview__aside{position:static}.intro-programme-item{grid-template-columns:70px 1fr}.intro-programme-item__copy{grid-column:2}.intro-next-course{grid-template-columns:1fr}}
@media(max-width:640px){.intro-course-hero{min-height:680px}.intro-course-hero__inner{padding-top:9rem}.intro-benefits-grid{grid-template-columns:1fr;border-radius:1.25rem}.intro-benefit{min-height:auto}.intro-programme-item{grid-template-columns:42px 1fr;gap:1rem}.intro-booking-panel{border-radius:1.5rem}.intro-booking-panel__details div{grid-template-columns:78px 1fr}}

/* =========================================================
   Header fix — correct default logo, solid header on narrow
   screens, always-visible Book button, redesigned menu
   ========================================================= */

/* Desktop default (not scrolled): the white/light mark and white wordmark text, over the hero photo. */
@media (min-width: 981px) {
  .site-header:not(.is-scrolled) .wordmark__logo-image--light { opacity: 1 !important; }
  .site-header:not(.is-scrolled) .wordmark__logo-image--dark { opacity: 0 !important; }
  .site-header:not(.is-scrolled) .wordmark,
  .site-header:not(.is-scrolled) .wordmark__title,
  .site-header:not(.is-scrolled) .wordmark__place { color: var(--white) !important; text-shadow: 0 1px 8px rgba(0, 0, 0, .28) !important; }
}

/* Narrow screens: always show the same solid header the site already shows on scroll,
   so the logo and menu button stay readable even before you've scrolled. */
@media (max-width: 980px) {
  .site-header:not(.is-scrolled) { background: rgba(251, 248, 243, .94) !important; }
  .site-header:not(.is-scrolled) .wordmark__logo-image--light { opacity: 0 !important; }
  .site-header:not(.is-scrolled) .wordmark__logo-image--dark { opacity: 1 !important; }
  .site-header:not(.is-scrolled) .wordmark,
  .site-header:not(.is-scrolled) .wordmark__title,
  .site-header:not(.is-scrolled) .wordmark__place { color: var(--ink) !important; text-shadow: none !important; }
  /* Solid cream background here, so the Book button needs a dark border to stay visible. */
  .site-header:not(.is-scrolled) .primary-nav .nav-book {
    color: var(--ink) !important;
    border-color: rgba(32, 25, 21, .28) !important;
    background: transparent !important;
  }
}

/* Definitive header treatment — the same on every page, regardless of legacy per-page
   classes (site-header--dark-on-hero, v7-content-page, etc). White text with a soft shadow
   over the hero photo; a solid cream bar with a thin bottom line once scrolled. Scoped to
   min-width:981px so it never fights the narrow-screen "always solid" rules above, which
   own the header at any width the page happens to be resized to. */
@media (min-width: 981px) {
  .site-header:not(.is-scrolled) { background: transparent !important; }
  .site-header:not(.is-scrolled) .wordmark,
  .site-header:not(.is-scrolled) .wordmark__title,
  .site-header:not(.is-scrolled) .wordmark__place,
  .site-header:not(.is-scrolled) .primary-nav a:not(.nav-book) {
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .16) !important;
  }
  /* Transparent header over the photo here, so the Book button reads as an outline: white
     border, dark text, no fill — matching how it already looks on studio-rental.html. */
  .site-header:not(.is-scrolled) .primary-nav .nav-book {
    color: var(--ink) !important;
    border-color: rgba(255, 255, 255, .92) !important;
    background: transparent !important;
  }
}
.site-header.is-scrolled {
  background: rgba(251, 248, 243, .94) !important;
  box-shadow: 0 1px 0 var(--line) !important;
  backdrop-filter: blur(14px) !important;
}
.site-header.is-scrolled .wordmark,
.site-header.is-scrolled .wordmark__title,
.site-header.is-scrolled .wordmark__place,
.site-header.is-scrolled .primary-nav a:not(.nav-book):not(:hover):not(:focus-visible):not(.is-active) {
  color: var(--ink) !important;
  text-shadow: none !important;
}
/* The menu button ("sandwich" icon) stays plain dark on a cream background at all times,
   independent of scroll position. */
.menu-toggle {
  color: var(--ink) !important;
  text-shadow: none !important;
}

/* Narrow screens: scale the wordmark and Book button down fluidly instead of
   letting them wrap to a second line as the header runs out of room. */
@media (max-width: 980px) {
  .site-header__inner { min-height: auto; padding-block: .7rem; gap: .4rem; }
  .wordmark { gap: .4rem; min-width: 0; flex-shrink: 1; }
  .wordmark__logo { flex-shrink: 0; height: clamp(1.3rem, 6vw, 2.3rem) !important; }
  .wordmark__text { min-width: 0; overflow: hidden; }
  .wordmark__title {
    font-size: clamp(.72rem, 3.6vw, 1.55rem) !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  .wordmark__place { font-size: clamp(.4rem, 1.5vw, .62rem) !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  /* The combined AYS+AYF logo already reads "Astanga Yoga Studio" on its own,
     so the separate title/place text is redundant there. On desktop it stays
     (paired with "Copenhagen", which isn't in the image); on narrow screens
     there's no room for both, so it drops. astangastudio.dk's own pages never
     match this (different logo src), so their text keeps shrinking as before. */
  .wordmark:has(.wordmark__logo-image--light[src*="AYS%20plus%20AYF"]) .wordmark__text { display: none; }
  .menu-toggle { flex-shrink: 0; }
  /* The language flag lives inside the dropdown menu on narrow screens; an earlier,
     higher-specificity rule (".primary-nav .nav-language { display: inline-flex !important }")
     otherwise keeps it visible in the bar too, so it needs an equally-forceful override here. */
  .primary-nav:not(.is-open) .nav-language { display: none !important; }
}

/* Book a class, pinned — a button--light-style pill next to the sandwich icon on
   narrow screens, independent of the dropdown menu. It stays in place whether the
   menu is open or closed (unlike the copy of this link inside the dropdown list,
   which is a plain text link like the others — see .primary-nav.is-open .nav-book).
   margin-left: auto pins it (and the hamburger right after it) to the right edge on
   its own, rather than relying on the empty .primary-nav's auto-margin next to it. */
.nav-book-pinned { display: none; }
@media (max-width: 980px) {
  .nav-book-pinned {
    display: inline-flex;
    order: 1;
    margin-left: auto;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    padding: .5rem clamp(.6rem, 2.2vw, 1.35rem);
    font-size: clamp(.62rem, 2vw, .82rem);
    font-weight: 600;
    white-space: nowrap;
    color: var(--ink);
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 999px;
    text-decoration: none;
  }
  .nav-book-pinned:hover,
  .nav-book-pinned:focus-visible { background: var(--paper); border-color: rgba(37, 31, 29, .32); }
}

/* Language switch, pinned — a same-height icon-only pill next to the Book a class
   button on narrow screens, so switching language doesn't require opening the menu.
   The original text link stays inside the dropdown (see .primary-nav.is-open .nav-language). */
.nav-language-pinned { display: none; }
@media (max-width: 980px) {
  .nav-language-pinned {
    display: inline-flex;
    order: 1;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1;
    padding: .5rem;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 999px;
  }
  .nav-language-pinned img {
    display: block;
    width: clamp(1rem, 3.6vw, 1.3rem);
    height: auto;
  }
  .nav-language-pinned:hover,
  .nav-language-pinned:focus-visible { background: var(--paper); border-color: rgba(37, 31, 29, .32); }
}

/* Hamburger — icon only, bolder bars */
.menu-toggle__label { display: none; }
.menu-toggle__lines,
.menu-toggle__lines::before,
.menu-toggle__lines::after { height: 2px; }

/* Mobile menu: the pinned Book a class button stays inline next to the hamburger;
   the dropdown menu itself opens as a compact white card instead of a full-width panel. */
@media (max-width: 980px) {
  .site-header__inner { position: relative; gap: .6rem; }

  .primary-nav {
    position: static;
    inset: auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    order: 3;
    padding: 0;
    background: none;
    border-top: none;
  }
  .menu-toggle { order: 2; margin-left: 0; }
  .primary-nav > a { display: none !important; }

  .primary-nav.is-open {
    position: absolute;
    top: calc(100% + .75rem);
    right: 0;
    left: auto;
    width: min(260px, calc(100vw - 2 * var(--gutter)));
    flex-direction: column;
    align-items: stretch;
    gap: .3rem;
    padding: 1.1rem;
    background: var(--white) !important;
    border-radius: 1.25rem;
    box-shadow: 0 20px 45px rgba(37, 31, 29, .18);
  }
  .primary-nav.is-open > a {
    display: block !important;
    padding: .55rem .25rem;
    border-bottom: none;
    color: var(--ink) !important;
    font-size: 1rem;
  }
  /* The in-list copy of Book a class reads exactly like its neighbours — no pill,
     no fill, no bold — since the pinned button next to the hamburger already
     covers the "call to action" role. */
  .primary-nav.is-open .nav-book {
    order: 1;
    display: block !important;
    min-height: auto;
    margin-top: 0 !important;
    padding: .55rem .25rem;
    justify-content: flex-start;
    color: var(--ink) !important;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    font-size: 1rem;
    font-weight: 600;
    text-align: left;
  }
  .primary-nav.is-open .nav-language { order: 2; }
}

/* Header nav dropdown submenus (Start her, Holdplan) — desktop dropdown reuses
   the same card design as the mobile hamburger menu (.primary-nav.is-open).
   Markup: .nav-item > .nav-item__row > (a, .nav-item__toggle), then .nav-dropdown.
   The toggle is a separate real button so the label link always navigates
   normally — only the toggle expands/collapses the submenu on mobile. */
.nav-item { position: relative; display: flex; align-items: center; }
.nav-item__row { display: flex; align-items: center; }
.nav-dropdown { display: flex; flex-direction: column; }
.nav-item__toggle {
  display: none;
  flex: 0 0 auto;
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  line-height: 1;
  cursor: pointer;
}
.nav-item__toggle::after { content: "+"; }
.nav-item__toggle[aria-expanded="true"]::after { content: "−"; }

@media (min-width: 981px) {
  .nav-dropdown {
    position: absolute;
    top: calc(100% + .75rem);
    left: 0;
    z-index: 20;
    width: min(230px, calc(100vw - 2 * var(--gutter)));
    gap: .3rem;
    padding: 1.1rem;
    background: var(--white) !important;
    border-radius: 1.25rem;
    box-shadow: 0 20px 45px rgba(37, 31, 29, .18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  }
  .nav-item:hover .nav-dropdown,
  .nav-item:focus-within .nav-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
  .nav-dropdown a,
  .site-header:not(.is-scrolled) .nav-item .nav-dropdown a {
    display: block;
    padding: .55rem .25rem;
    color: var(--ink) !important;
    text-shadow: none !important;
    font-size: 1rem;
    font-weight: 600;
  }
  .nav-dropdown a::after { display: none !important; }
  .nav-dropdown a.is-active { color: var(--wine) !important; }
}

@media (max-width: 980px) {
  .primary-nav > .nav-item { display: none !important; }
  .primary-nav.is-open > .nav-item {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
  }
  .primary-nav.is-open .nav-item__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .primary-nav.is-open .nav-item__row > a {
    flex: 1 1 auto;
    display: block !important;
    padding: .55rem .25rem;
    border-bottom: none;
    color: var(--ink) !important;
    font-size: 1rem;
  }
  .primary-nav.is-open .nav-item__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    color: var(--ink);
    font-size: 1.15rem;
    font-weight: 400;
  }
  .primary-nav.is-open .nav-dropdown {
    display: none;
    padding: 0 0 .3rem .9rem;
  }
  .primary-nav.is-open .nav-item.is-expanded > .nav-dropdown { display: flex; }
  .primary-nav.is-open .nav-dropdown a {
    display: block !important;
    padding: .4rem .25rem;
    color: var(--ink-soft) !important;
    font-size: .92rem;
    font-weight: 500;
  }
  .primary-nav.is-open .nav-dropdown a.is-active { color: var(--ink) !important; font-weight: 600; }
}
