:root {
  --paper: #ffffff;
  --paper-soft: #f8f6f2;
  --cream: #f4e9e8;
  --sand: #dcc2a6;
  --sage: #78937f;
  --sage-deep: #4e5b51;
  --forest: #2d3429;
  --charcoal: #2c2c2c;
  --ink: #020202;
  --muted: #6d6d69;
  --line: rgba(2, 2, 2, 0.12);
  --line-light: rgba(255, 255, 255, 0.22);
  --warm: #d99a6b;
  --brown: #9a5e35;
  --header-h: 88px;
  --announcement-h: 32px;
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --shadow-soft: 0 20px 70px rgba(34, 34, 30, 0.10);
  --shadow-float: 0 24px 80px rgba(23, 26, 22, 0.20);
  --content: 1440px;
  --gutter: clamp(24px, 6vw, 120px);
  --serif: "Arsenica", "Cormorant Garamond", Georgia, serif;
  --sans: "Poppins", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: #ece9e3; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
[hidden] { display: none !important; }

.site-page {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  background: var(--paper);
  overflow-x: clip;
  overflow-y: visible;
}
.container {
  width: min(100%, var(--content));
  margin: 0 auto;
  padding-inline: var(--gutter);
}
.section { padding-block: clamp(72px, 8vw, 128px); }
.section-compact { padding-block: clamp(52px, 6vw, 88px); }
.section-soft { background: var(--paper-soft); }
.section-cream { background: var(--cream); }
.section-dark { background: var(--forest); color: #fff; }
.section-heading { max-width: 820px; margin: 0 auto 48px; text-align: center; }
.section-heading.is-left { margin-inline: 0; text-align: left; }
.eyebrow {
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sage-deep);
}
.section-dark .eyebrow { color: rgba(255,255,255,.72); }
h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -0.025em;
}
h1 { font-size: clamp(48px, 6vw, 84px); }
h2 { font-size: clamp(38px, 4.8vw, 64px); }
h3 { font-size: clamp(27px, 3vw, 40px); }
p { margin: 0 0 1em; }
.lead { font-size: clamp(18px, 1.8vw, 22px); color: var(--charcoal); }
.section-dark .lead { color: rgba(255,255,255,.82); }
.muted { color: var(--muted); }

/* Sticky site chrome */
.site-chrome {
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
}
.announcement-bar {
  height: var(--announcement-h);
  display: grid;
  place-items: center;
  padding-inline: 20px;
  background: #ece9e3;
  border-bottom: 1px solid rgba(2,2,2,.07);
  font-size: 12px;
  letter-spacing: .02em;
}
.site-header {
  height: var(--header-h);
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(2,2,2,.08);
  backdrop-filter: saturate(1.2) blur(18px);
  -webkit-backdrop-filter: saturate(1.2) blur(18px);
}
.site-header-inner {
  position: relative;
  width: min(100%, var(--content));
  height: 100%;
  margin: 0 auto;
  padding-inline: var(--gutter);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
}
.brand-logo-link { grid-column: 2; display: inline-flex; align-items: center; justify-content: center; }
.logo { height: 55px; width: auto; }
.header-actions {
  grid-column: 3;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 14px;
}


.menu-toggle {
  position: relative;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  border: 1px solid rgba(2,2,2,.13);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 10px 30px rgba(2,2,2,.06);
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.menu-toggle::before,
.menu-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 1.5px;
  border-radius: 999px;
  background: var(--ink);
  transform: translate(-50%,-50%);
  transition: transform .3s cubic-bezier(.2,.8,.2,1), background .25s ease;
}
.menu-toggle::after { transform: translate(-50%,-50%) rotate(90deg); }
.menu-toggle:hover { transform: rotate(8deg); box-shadow: 0 15px 38px rgba(2,2,2,.11); }
.menu-toggle[aria-expanded="true"] { background: var(--forest); }
.menu-toggle[aria-expanded="true"]::before { background: #fff; transform: translate(-50%,-50%) rotate(45deg); }
.menu-toggle[aria-expanded="true"]::after { background: #fff; transform: translate(-50%,-50%) rotate(-45deg); }

.menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 1100;
  background: rgba(20,22,19,.24);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
.menu-overlay.is-open { opacity: 1; visibility: visible; }
.menu-drawer {
  position: fixed;
  z-index: 1110;
  top: 0;
  right: 0;
  width: min(430px, 100vw);
  height: 100dvh;
  padding: 28px 28px 34px;
  display: flex;
  flex-direction: column;
  background: #fff;
  box-shadow: -30px 0 90px rgba(20,22,19,.22);
  transform: translateX(104%);
  transition: transform .42s cubic-bezier(.2,.8,.2,1);
  overflow-y: auto;
}
.menu-drawer.is-open { transform: translateX(0); }
.menu-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.menu-drawer-head img { height: 56px; width: auto; }
.menu-close {
  width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; background: #fff; cursor: pointer; font-size: 24px; line-height: 1;
}
.menu-links { display: grid; padding-block: 28px; }
.menu-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 56px;
  border-bottom: 1px solid var(--line);
  font-family: var(--serif);
  font-size: 30px;
  line-height: 1.1;
  transition: padding .25s ease, color .25s ease;
}
.menu-links a::after { content: "↗"; font-family: var(--sans); font-size: 14px; color: var(--muted); }
.menu-links a:hover { padding-left: 8px; color: var(--sage-deep); }
.menu-drawer-footer { margin-top: auto; padding-top: 20px; color: var(--muted); font-size: 13px; }
.menu-drawer-footer a { text-decoration: underline; text-underline-offset: 3px; }

/* Hero */
.hero {
  position: relative;
  min-height: clamp(610px, 74vh, 820px);
  display: grid;
  overflow: hidden;
  background: var(--charcoal);
  color: #fff;
}
.hero-media,
.hero-media::after { position: absolute; inset: 0; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-media::after {
  content: "";
  background: linear-gradient(180deg, rgba(0,0,0,.23), rgba(0,0,0,.43) 70%, rgba(0,0,0,.56));
}
.hero-content {
  position: relative;
  z-index: 1;
  width: min(100%, 980px);
  margin: auto;
  padding: 84px var(--gutter) 142px;
  text-align: center;
}
.hero-kicker { margin-bottom: 20px; font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.hero h1 { text-wrap: balance; text-shadow: 0 4px 30px rgba(0,0,0,.25); }
.hero-description { max-width: 760px; margin: 24px auto 0; font-size: clamp(17px, 1.7vw, 21px); color: rgba(255,255,255,.91); text-wrap: balance; }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 34px; }
.hero-nav {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 42px;
  width: min(100% - 48px, 980px);
  transform: translateX(-50%);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.hero-nav a {
  min-height: 42px;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(255,255,255,.68);
  border-radius: 999px;
  background: rgba(20,20,18,.18);
  color: #fff;
  font-family: var(--serif);
  font-size: 16px;
  backdrop-filter: blur(4px);
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.hero-nav a:hover { background: #fff; color: var(--ink); transform: translateY(-2px); }
.hero.hero-small { min-height: clamp(480px, 60vh, 650px); }
.hero.hero-small .hero-content { padding-bottom: 112px; }

/* Infinite text band — V63 seamless and edge-faded */
.program-strip {
  position: relative;
  height: 64px;
  min-height: 64px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #fff;
  border-top: 1px solid rgba(2,2,2,.08);
  border-bottom: 1px solid rgba(2,2,2,.08);
  isolation: isolate;
  -webkit-mask-image: linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
  mask-image: linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
}
.program-strip::before,
.program-strip::after { display: none; }
.marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  min-width: max-content;
  flex: 0 0 auto;
  transform: translate3d(0,0,0);
  animation: marqueeTextV63 40s linear infinite;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.marquee-group {
  flex: 0 0 auto;
  min-height: 64px;
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 0 30px 0 0;
  white-space: nowrap;
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1;
  color: var(--charcoal);
}
.marquee-group span,
.marquee-group i { display: inline-flex; align-items: center; min-height: 64px; }
.marquee-group i { font-style: normal; color: #aaa59d; }
@media (hover: hover) {
  .program-strip:hover .marquee-track,
  .image-marquee:hover .image-marquee-track { animation-play-state: paused; }
}
@keyframes marqueeTextV63 {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}

.booking-band {
  position: relative;
  min-height: 112px;
  display: grid;
  place-items: center;
  padding: 22px var(--gutter);
  background: linear-gradient(180deg,#fff,#faf8f4);
  border-bottom: 1px solid rgba(2,2,2,.08);
}
.booking-band::before {
  content: "";
  position: absolute;
  inset: 50% 0 auto;
  height: 1px;
  background: linear-gradient(90deg,transparent,rgba(120,147,127,.22),transparent);
}
.premium-cta {
  position: relative;
  z-index: 1;
  min-height: 54px;
  padding: 0 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgba(68,43,25,.24);
  border-radius: 999px;
  background: linear-gradient(135deg,#f4e4b5 0%,#e1c08c 38%,#dcc2a6 72%,#f4e9e8 100%);
  color: #2d3429;
  box-shadow: 0 16px 38px rgba(68,43,25,.22),0 6px 16px rgba(15,47,40,.1),inset 0 1px 0 rgba(255,255,255,.62),inset 0 -1px 0 rgba(68,43,25,.1);
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
  text-decoration: none;
  animation: aerialBookingBreath 3.8s ease-in-out infinite,aerialBookingGlow 5.6s ease-in-out infinite;
  transition: transform .28s ease,box-shadow .28s ease,filter .28s ease;
}
.premium-cta span { position: relative; z-index: 2; }
.premium-cta::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: -45%;
  bottom: -45%;
  left: -70%;
  width: 42%;
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);
  transform: skewX(-18deg);
  animation: aerialBookingShine 4.4s ease-in-out infinite;
}
.premium-cta::after {
  content: "→";
  position: relative;
  z-index: 2;
  color: #2d3429;
  font-size: 16px;
  line-height: 1;
  animation: aerialBookingArrow 1.8s ease-in-out infinite;
}
.premium-cta:hover { transform: translateY(-4px) scale(1.025); filter: saturate(1.04) contrast(1.02); }
@keyframes aerialBookingBreath { 0%,100%{transform:translateY(0) scale(1)} 50%{transform:translateY(-3px) scale(1.016)} }
@keyframes aerialBookingGlow { 0%,100%{box-shadow:0 16px 38px rgba(68,43,25,.22),0 6px 16px rgba(15,47,40,.1),inset 0 1px 0 rgba(255,255,255,.62),inset 0 -1px 0 rgba(68,43,25,.1)} 50%{box-shadow:0 22px 52px rgba(68,43,25,.3),0 8px 22px rgba(15,47,40,.14),inset 0 1px 0 rgba(255,255,255,.72),inset 0 -1px 0 rgba(68,43,25,.12)} }
@keyframes aerialBookingShine { 0%,58%{left:-70%} 78%,100%{left:135%} }
@keyframes aerialBookingArrow { 0%,100%{transform:translateX(0);opacity:.82} 50%{transform:translateX(4px);opacity:1} }

/* Buttons */
.btn {
  min-height: 48px;
  padding: 0 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .03em;
  transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-dark { background: var(--forest); color: #fff; box-shadow: 0 12px 30px rgba(45,52,41,.18); }
.btn-dark:hover { background: var(--sage-deep); }
.btn-light { background: #fff; color: var(--ink); }
.btn-outline { border-color: var(--line); background: transparent; }
.btn-outline-light { border-color: rgba(255,255,255,.55); color: #fff; background: transparent; }
.btn-sand { background: var(--sand); color: var(--ink); }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.button-row.center { justify-content: center; }

/* Cards and editorial blocks */
.card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.card {
  position: relative;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: 0 16px 48px rgba(2,2,2,.05);
}
.card-media { aspect-ratio: 4/5; overflow: hidden; background: #eceae5; }
.card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.card:hover .card-media img { transform: scale(1.035); }
.card-body { padding: 26px; }
.card-body h3 { margin-bottom: 12px; }
.card-body p:last-child { margin-bottom: 0; }
.image-card {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: flex-end;
  border-radius: var(--radius-md);
  overflow: hidden;
  color: #fff;
}
.image-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.8,.2,1); }
.image-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 32%,rgba(0,0,0,.7)); }
.image-card-content { position: relative; z-index: 1; padding: 30px; }
.image-card:hover > img { transform: scale(1.04); }
.image-card p { color: rgba(255,255,255,.82); }
.split-layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: clamp(40px,7vw,100px); align-items: center; }
.split-media { min-height: 600px; border-radius: var(--radius-md); overflow: hidden; }
.split-media img { width: 100%; height: 100%; object-fit: cover; }
.split-copy { max-width: 620px; }
.split-copy h2 { margin-bottom: 24px; }
.text-list { display: grid; gap: 12px; margin: 28px 0; padding: 0; list-style: none; }
.text-list li { position: relative; padding-left: 24px; color: var(--charcoal); }
.text-list li::before { content: ""; position: absolute; left: 0; top: .72em; width: 9px; height: 1px; background: var(--sage); }
.pill-row { display: flex; flex-wrap: wrap; gap: 10px; }
.pill { padding: 9px 14px; border-radius: 999px; border: 1px solid var(--line); background: rgba(255,255,255,.6); font-size: 12px; }

/* FAQ / accordions */
.accordion { border-top: 1px solid var(--line); }
.accordion-item { border-bottom: 1px solid var(--line); }
.accordion-trigger {
  width: 100%;
  min-height: 74px;
  padding: 16px 0;
  display: grid;
  grid-template-columns: 44px 1fr auto;
  align-items: center;
  gap: 14px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.accordion-number { font-size: 11px; letter-spacing: .12em; color: var(--muted); }
.accordion-title { font-family: var(--serif); font-size: clamp(24px,2.4vw,34px); line-height: 1.15; }
.accordion-icon { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-size: 20px; transition: transform .3s ease, background .3s ease, color .3s ease; }
.accordion-trigger[aria-expanded="true"] .accordion-icon { transform: rotate(45deg); background: var(--forest); color: #fff; }
.accordion-panel { height: 0; overflow: hidden; transition: height .38s cubic-bezier(.2,.8,.2,1); }
.accordion-panel-inner { padding: 0 0 30px 58px; max-width: 900px; color: var(--charcoal); }
.accordion-panel h4 { margin: 24px 0 8px; font-family: var(--sans); font-size: 15px; font-weight: 600; letter-spacing: .02em; }
.more-toggle { margin-top: 18px; border: 0; background: transparent; padding: 0; color: var(--sage-deep); font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.more-content { display: grid; gap: 12px; max-height: 0; overflow: hidden; opacity: 0; transition: max-height .4s ease, opacity .3s ease, margin .3s ease; }
.more-content.is-open { max-height: 700px; opacity: 1; margin-top: 18px; }

/* Studio slider */
.slider {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #e9e6e1;
  box-shadow: var(--shadow-soft);
}
.slider-viewport { position: relative; aspect-ratio: 16/8.4; min-height: 420px; }
.slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.015); transition: opacity .65s ease, transform 1s ease; pointer-events: none; }
.slide.is-active { opacity: 1; transform: scale(1); pointer-events: auto; }
.slide img { width: 100%; height: 100%; object-fit: cover; }
.slider-controls { position: absolute; z-index: 3; inset: 50% 22px auto; transform: translateY(-50%); display: flex; justify-content: space-between; pointer-events: none; }
.slider-button { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; background: rgba(20,20,18,.34); color: #fff; backdrop-filter: blur(8px); cursor: pointer; pointer-events: auto; font-size: 21px; }
.slider-dots { position: absolute; z-index: 4; left: 50%; bottom: 20px; transform: translateX(-50%); display: flex; gap: 8px; }
.slider-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.48); cursor: pointer; transition: width .3s ease, background .3s ease, border-radius .3s ease; }
.slider-dot.is-active { width: 28px; border-radius: 999px; background: #fff; }

/* Teachers */
.teacher-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.teacher-card { background: var(--forest); color: #fff; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-soft); }
.teacher-card-media { aspect-ratio: 4/5; overflow: hidden; }
.teacher-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.teacher-card:hover .teacher-card-media img { transform: scale(1.035); }
.teacher-card-body { padding: 26px; }
.teacher-card-body .eyebrow { color: rgba(255,255,255,.62); }
.teacher-card-body p { color: rgba(255,255,255,.76); }
.teacher-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 22px; }
.teacher-profile-grid { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: clamp(42px,7vw,96px); align-items: start; }
.teacher-profile-photo { position: sticky; top: calc(var(--announcement-h) + var(--header-h) + 28px); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-soft); }
.teacher-profile-photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.teacher-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 34px; }
.teacher-gallery img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--radius-md); }

/* Booking */
.booking-intro-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(36px,7vw,88px); align-items: center; }
.booking-summary { padding: 32px; border: 1px solid var(--line); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-soft); }
.booking-summary ul { margin: 22px 0 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.booking-summary li { display: flex; gap: 12px; align-items: flex-start; }
.booking-summary li::before { content: "✓"; color: var(--sage-deep); font-weight: 700; }
.service-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 16px; }
.service-card { border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; background: #fff; transition: transform .3s ease, box-shadow .3s ease; }
.service-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-soft); }
.service-card img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.service-card-copy { padding: 18px; text-align: center; }
.service-card-copy h3 { font-size: 27px; }
.booking-frame-shell { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: #fff; box-shadow: var(--shadow-soft); }
.booking-frame-shell iframe { width: 100%; min-height: 980px; display: block; border: 0; background: #fff; }
.booking-help { display: flex; justify-content: space-between; gap: 24px; align-items: center; margin-bottom: 24px; }

/* Rooms / map / contact */
.room-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.room-card { padding: 30px; border-radius: var(--radius-md); border: 1px solid var(--line); background: #fff; }
.room-card .room-size { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--sage-deep); }
.room-card h3 { margin: 12px 0; }
.map-shell { min-height: 480px; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-soft); border: 1px solid var(--line); }
.map-shell iframe { width: 100%; height: 480px; border: 0; display: block; }
.contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(40px,7vw,90px); align-items: start; }
.contact-card { padding: 34px; border-radius: var(--radius-md); background: var(--paper-soft); border: 1px solid var(--line); }
.contact-list { display: grid; gap: 18px; margin-top: 28px; }
.contact-item small { display: block; color: var(--muted); margin-bottom: 3px; }
.form-grid { display: grid; gap: 16px; }
.form-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.field { display: grid; gap: 7px; }
.field label { font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.field input, .field textarea {
  width: 100%;
  border: 1px solid rgba(2,2,2,.16);
  border-radius: 12px;
  background: #fff;
  color: var(--ink);
  padding: 14px 15px;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.field textarea { min-height: 170px; resize: vertical; }
.field input:focus, .field textarea:focus { border-color: var(--sage); box-shadow: 0 0 0 4px rgba(120,147,127,.11); }
.field-hint { font-size: 11px; color: var(--muted); }
.form-status { min-height: 24px; font-size: 13px; }
.honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* Moving image strip — V63 user-supplied movement/community photos */
.image-marquee {
  position: relative;
  overflow: hidden;
  padding: 18px 0;
  background: #fff;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  -webkit-mask-image: linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);
  mask-image: linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);
}
.image-marquee::before,
.image-marquee::after { display: none; }
.image-marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  min-width: max-content;
  transform: translate3d(0,0,0);
  animation: marqueeImagesV63 68s linear infinite;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.image-marquee-group {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 14px;
  padding-right: 14px;
}
.image-marquee-group img {
  width: clamp(190px,18vw,280px);
  height: 180px;
  flex: 0 0 auto;
  object-fit: cover;
  object-position: center;
  border-radius: 16px;
  filter: saturate(.94) contrast(.99);
  transition: transform .45s ease,filter .45s ease;
}
.image-marquee-group img:hover { transform: translateY(-4px); filter: saturate(1.02) contrast(1); }
@keyframes marqueeImagesV63 {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}

/* Reviews */
.reviews-live { padding: 64px var(--gutter); background: var(--paper-soft); }
.reviews-live[hidden] { display: none !important; }
.review-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(290px,420px); gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; }
.review-card { scroll-snap-align: start; padding: 24px; border-radius: var(--radius-md); border: 1px solid var(--line); background: #fff; }
.review-stars { letter-spacing: .15em; color: #9a5e35; }
.review-cta { background: var(--cream); }
.review-cta-inner { min-height: 280px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 36px; }
.review-cta-copy { max-width: 720px; }
.review-cta h2 { margin-bottom: 16px; }
.review-cta p { color: var(--charcoal); }

/* Footer */
.site-footer { padding: 56px 0 26px; background: var(--forest); color: #fff; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 40px; }
.footer-logo { height: 62px; width: auto; filter: invert(1) grayscale(1) brightness(2); opacity: .95; }
.footer-copy { max-width: 420px; margin-top: 16px; color: rgba(255,255,255,.7); font-size: 14px; }
.footer-title { margin-bottom: 12px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.58); }
.footer-links { display: grid; gap: 8px; font-size: 14px; }
.footer-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { margin-top: 44px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); display: flex; justify-content: space-between; gap: 20px; color: rgba(255,255,255,.56); font-size: 12px; }
.cookie-settings-link { padding: 0; border: 0; background: none; color: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* Floating wheel */
.wheel-widget { position: fixed; z-index: 1200; left: 18px; bottom: 18px; isolation: isolate; }
.wheel-launcher {
  position: relative;
  z-index: 2;
  touch-action: manipulation;
  width: 58px; height: 58px; padding: 5px; border: 1px solid rgba(2,2,2,.14); border-radius: 50%; background: #fff; box-shadow: 0 18px 48px rgba(2,2,2,.18); cursor: pointer; transition: transform .25s ease, box-shadow .25s ease;
}
.wheel-launcher img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }
.wheel-launcher:hover { transform: translateY(-3px) rotate(-5deg); box-shadow: 0 24px 58px rgba(2,2,2,.24); }
.wheel-panel {
  position: absolute;
  left: 0;
  bottom: 72px;
  width: min(390px, calc(100vw - 36px));
  max-height: calc(100dvh - 148px);
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(2,2,2,.1);
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--shadow-float);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(16px) scale(.97);
  transform-origin: bottom left;
  transition: opacity .28s ease, transform .34s cubic-bezier(.2,.8,.2,1), visibility .28s ease;
}
.wheel-panel.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.wheel-panel-head { position: sticky; top: 0; z-index: 3; display: flex; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.wheel-panel-head h2 { font-family: var(--sans); font-size: 16px; font-weight: 700; letter-spacing: 0; }
.wheel-panel-head p { margin: 2px 0 0; font-size: 11px; color: var(--muted); }
.wheel-close { width: 34px; height: 34px; flex: 0 0 34px; border: 1px solid var(--line); border-radius: 50%; background: #fff; cursor: pointer; font-size: 22px; line-height: 1; }
.wheel-panel-body { padding: 20px; }
.wheel-intro { text-align: center; color: var(--charcoal); font-size: 13px; margin-bottom: 14px; }
.wheel-stage { position: relative; width: 206px; height: 206px; margin: 0 auto 18px; display: grid; place-items: center; }
.wheel-canvas { width: 196px; height: 196px; border-radius: 50%; box-shadow: 0 16px 36px rgba(45,52,41,.18), inset 0 0 0 8px #fff; transition: transform 4.9s cubic-bezier(.12,.72,.12,1); }
.wheel-center { position: absolute; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: #fff; border: 1px solid var(--line); box-shadow: 0 8px 22px rgba(2,2,2,.12); font-family: var(--serif); font-size: 22px; }
.wheel-pointer { position: absolute; z-index: 2; top: -1px; left: 50%; width: 0; height: 0; transform: translateX(-50%); border-left: 13px solid transparent; border-right: 13px solid transparent; border-top: 24px solid var(--ink); filter: drop-shadow(0 4px 4px rgba(2,2,2,.18)); }
.wheel-note { margin: -4px 0 18px; text-align: center; font-size: 11px; color: var(--muted); }
.wheel-form { display: grid; gap: 11px; }
.wheel-form input[type="email"] { width: 100%; min-height: 46px; padding: 0 14px; border: 1px solid rgba(2,2,2,.16); border-radius: 11px; outline: none; }
.wheel-form input[type="email"]:focus { border-color: var(--sage); box-shadow: 0 0 0 4px rgba(120,147,127,.1); }
.wheel-consent { display: grid; grid-template-columns: 18px 1fr; gap: 9px; align-items: start; font-size: 10px; line-height: 1.45; color: var(--muted); }
.wheel-consent input { margin-top: 2px; }
.wheel-submit { min-height: 46px; border: 0; border-radius: 999px; background: var(--forest); color: #fff; font-weight: 700; font-size: 12px; cursor: pointer; transition: background .25s ease, transform .25s ease; }
.wheel-submit:hover { background: var(--sage-deep); transform: translateY(-1px); }
.wheel-submit:disabled { opacity: .55; cursor: wait; }
.wheel-result { margin-top: 14px; padding: 15px; border-radius: 14px; background: var(--paper-soft); border: 1px solid var(--line); text-align: center; }
.wheel-result.is-win { background: rgba(120,147,127,.12); border-color: rgba(120,147,127,.3); }
.wheel-result.is-error { background: rgba(217,154,107,.12); border-color: rgba(217,154,107,.3); }
.wheel-result strong { display: block; margin-bottom: 3px; font-family: var(--serif); font-size: 24px; }
.wheel-result p { margin: 0; font-size: 12px; color: var(--charcoal); }
.wheel-result code { display: inline-block; margin-top: 9px; padding: 6px 9px; border-radius: 8px; background: #fff; border: 1px dashed var(--sage); font-size: 13px; }
.wheel-rules { display: block; margin-top: 14px; text-align: center; font-size: 11px; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.inline-wheel-wrap { max-width: 440px; margin: 0 auto; }
.inline-wheel-wrap .wheel-panel { position: static; width: 100%; max-height: none; opacity: 1; visibility: visible; pointer-events: auto; transform: none; box-shadow: var(--shadow-soft); }

/* Chat */
.chat-widget { position: fixed; z-index: 1200; right: 18px; bottom: 18px; isolation: isolate; }
.chat-launcher { width: 60px; height: 60px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: var(--forest); box-shadow: 0 18px 48px rgba(2,2,2,.22); overflow: hidden; cursor: pointer; transition: transform .25s ease, box-shadow .25s ease; }
.chat-launcher img { width: 100%; height: 100%; object-fit: cover; }
.chat-launcher:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 24px 58px rgba(2,2,2,.28); }
.chat-panel {
  position: absolute;
  right: 0;
  bottom: 74px;
  width: min(390px, calc(100vw - 36px));
  height: min(570px, calc(100dvh - 150px));
  display: flex;
  flex-direction: column;
  border-radius: 24px;
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow-float);
  border: 1px solid rgba(2,2,2,.1);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(16px) scale(.97);
  transform-origin: bottom right;
  transition: opacity .28s ease, transform .34s cubic-bezier(.2,.8,.2,1), visibility .28s ease;
}
.chat-panel.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.chat-head { flex: 0 0 auto; display: flex; justify-content: space-between; gap: 16px; padding: 18px 20px; background: var(--forest); color: #fff; }
.chat-head h2 { font-family: var(--sans); font-size: 16px; font-weight: 700; letter-spacing: 0; }
.chat-head p { margin: 3px 0 0; color: rgba(255,255,255,.68); font-size: 11px; }
.chat-close { width: 34px; height: 34px; flex: 0 0 34px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background: transparent; color: #fff; font-size: 22px; cursor: pointer; }
.chat-messages { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: #fbfaf8; }
.chat-message { max-width: 88%; padding: 11px 13px; border-radius: 14px; font-size: 12px; line-height: 1.5; }
.chat-message.bot { align-self: flex-start; background: #fff; border: 1px solid var(--line); color: var(--charcoal); }
.chat-message.user { align-self: flex-end; background: var(--forest); color: #fff; }
.chat-message a { display: inline-block; margin-top: 7px; color: var(--sage-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.chat-quick { flex: 0 0 auto; padding: 12px 16px; display: flex; gap: 7px; flex-wrap: wrap; max-height: 125px; overflow-y: auto; border-top: 1px solid var(--line); }
.chat-quick button { padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: 10px; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.chat-quick button:hover { background: rgba(120,147,127,.1); transform: translateY(-1px); }
.chat-form { flex: 0 0 auto; padding: 12px 16px 16px; display: grid; grid-template-columns: 1fr auto; gap: 8px; border-top: 1px solid var(--line); background: #fff; }
.chat-form input { min-width: 0; border: 1px solid rgba(2,2,2,.15); border-radius: 11px; padding: 11px 12px; outline: none; font-size: 12px; }
.chat-form input:focus { border-color: var(--sage); box-shadow: 0 0 0 4px rgba(120,147,127,.1); }
.chat-form button { border: 0; border-radius: 11px; padding: 0 15px; background: var(--forest); color: #fff; font-size: 11px; font-weight: 600; cursor: pointer; }

/* Cookie consent */
.cookie-consent {
  position: fixed;
  z-index: 1300;
  left: 50%;
  bottom: 18px;
  width: min(760px, calc(100vw - 36px));
  transform: translateX(-50%);
  border: 1px solid rgba(2,2,2,.12);
  border-radius: 20px;
  background: rgba(255,255,255,.98);
  box-shadow: var(--shadow-float);
  padding: 20px;
}
.cookie-consent-grid { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; }
.cookie-consent h2 { font-family: var(--sans); font-size: 15px; font-weight: 700; letter-spacing: 0; }
.cookie-consent p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.cookie-actions button { min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 10px; font-weight: 600; cursor: pointer; }
.cookie-actions .accept { background: var(--forest); color: #fff; border-color: var(--forest); }
.cookie-options { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.cookie-option { display: flex; justify-content: space-between; align-items: center; gap: 18px; font-size: 11px; }
.cookie-option + .cookie-option { margin-top: 12px; }
.cookie-option input { width: 18px; height: 18px; }

/* Legal/status pages */
.simple-hero { padding: clamp(80px,10vw,140px) var(--gutter); text-align: center; background: var(--paper-soft); border-bottom: 1px solid var(--line); }
.simple-hero p { max-width: 700px; margin: 20px auto 0; color: var(--muted); }
.legal-content { max-width: 900px; margin: 0 auto; }
.legal-block { padding: 28px 0; border-bottom: 1px solid var(--line); }
.legal-block h2 { margin-bottom: 12px; font-size: clamp(28px,3vw,40px); }
.status-card { max-width: 720px; margin: 0 auto; padding: clamp(34px,5vw,58px); text-align: center; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-soft); }
.status-card h1 { font-size: clamp(42px,5vw,66px); }
.status-card p { max-width: 560px; margin: 20px auto 28px; color: var(--muted); }

/* Reveal motion */
.reveal { opacity: 1; transform: none; }
.reveal.is-visible { opacity: 1; transform: none; }

/* Confetti */
.confetti-layer { position: fixed; z-index: 2000; inset: 0; overflow: hidden; pointer-events: none; }
.confetti-piece { position: absolute; top: -24px; width: 9px; height: 15px; border-radius: 2px; animation: confettiFall var(--fall,2.5s) cubic-bezier(.15,.7,.2,1) forwards; }
@keyframes confettiFall { to { transform: translate3d(var(--drift,0),105vh,0) rotate(var(--spin,720deg)); opacity: .15; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .marquee-track, .image-marquee-track { animation: none !important; transform: none !important; }
  .program-strip, .image-marquee { overflow-x: auto; }
  .reveal { opacity: 1; transform: none; }
}

/* Instructor specialty mark */
.teacher-symbol {
  width: 54px;
  height: 54px;
  margin: 0 0 16px;
  padding: 6px;
  object-fit: contain;
  border-radius: 50%;
  background: rgba(255,255,255,.95);
  box-shadow: 0 10px 28px rgba(2,2,2,.16);
}
.teacher-symbol-profile {
  width: 66px;
  height: 66px;
  background: var(--paper-soft);
  border: 1px solid var(--line);
  box-shadow: none;
}


/* Responsive rules */
@media (max-width: 1120px) {
  :root { --gutter: clamp(32px,5vw,64px); }
  .card-grid, .teacher-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .footer-grid { grid-template-columns: 1.2fr 1fr; }
  .footer-grid > :last-child { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  :root { --header-h: 76px; --gutter: 24px; }
  .site-header-inner { grid-template-columns: auto 1fr auto; }
  .brand-logo-link { grid-column: 1; justify-content: flex-start; }
  .logo { height: 44px; }
  .header-actions { grid-column: 3; gap: 10px; }
  .menu-toggle { width: 44px; height: 44px; flex-basis: 44px; }
  .hero { min-height: 650px; }
  .hero-content { padding-top: 68px; padding-bottom: 170px; }
  .hero-nav { bottom: 28px; gap: 8px; }
  .hero-nav a { min-height: 38px; padding: 0 16px; font-size: 14px; }
  .split-layout, .teacher-profile-grid, .booking-intro-grid, .contact-grid { grid-template-columns: 1fr; }
  .split-media { min-height: 480px; order: -1; }
  .teacher-profile-photo { position: static; max-width: 620px; margin: 0 auto; }
  .room-grid { grid-template-columns: 1fr; }
  .slider-viewport { min-height: 360px; aspect-ratio: 4/3; }
  .review-cta-inner { grid-template-columns: 1fr; padding-block: 64px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > :first-child { grid-column: 1 / -1; }
  .booking-help { align-items: flex-start; flex-direction: column; }
  .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 620px) {
  :root { --announcement-h: 30px; }
  body { font-size: 15px; }
  .announcement-bar { font-size: 10px; }
  .site-header-inner { padding-inline: 16px; }
  .logo { height: 39px; }
  .header-actions { gap: 8px; }
  .menu-toggle { width: 40px; height: 40px; flex-basis: 40px; }
  .menu-drawer { padding: 22px 20px 28px; }
  .menu-links a { font-size: 27px; }
  .hero { min-height: 620px; }
  .hero h1 { font-size: clamp(42px,12vw,60px); }
  .hero-content { padding: 56px 22px 208px; }
  .hero-description { font-size: 16px; }
  .hero-nav { width: calc(100% - 28px); bottom: 24px; }
  .hero-nav a { flex: 1 1 calc(50% - 8px); justify-content: center; padding: 0 10px; font-size: 13px; }
  .program-strip { height: 58px; }
  .marquee-group { gap: 22px; padding-right: 22px; font-size: 17px; }
  .booking-band { min-height: 96px; }
  .premium-cta { width: min(100%,340px); min-height: 50px; padding: 0 24px; }
  .section { padding-block: 70px; }
  .section-compact { padding-block: 50px; }
  .section-heading { margin-bottom: 34px; }
  .card-grid, .teacher-grid, .service-grid { grid-template-columns: 1fr; }
  .image-card { min-height: 440px; }
  .split-media { min-height: 420px; }
  .accordion-trigger { grid-template-columns: 34px 1fr auto; gap: 9px; }
  .accordion-panel-inner { padding-left: 43px; }
  .slider { border-radius: 18px; }
  .slider-viewport { min-height: 430px; aspect-ratio: 3/4; }
  .slider-controls { inset-inline: 12px; }
  .slider-button { width: 42px; height: 42px; }
  .teacher-gallery { grid-template-columns: 1fr 1fr; }
  .booking-frame-shell { border-radius: 16px; margin-inline: -12px; }
  .booking-frame-shell iframe { min-height: 1100px; }
  .form-row { grid-template-columns: 1fr; }
  .image-marquee-group img { width: 200px; height: 140px; border-radius: 12px; }
  .review-cta-inner { min-height: 0; padding-block: 54px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-grid > * { grid-column: auto !important; }
  .footer-bottom { flex-direction: column; }
  .wheel-widget { left: 12px; bottom: 12px; }
  .wheel-launcher { width: 52px; height: 52px; }
  .wheel-panel { position: fixed; left: 12px; right: 12px; bottom: 74px; width: auto; max-height: calc(100dvh - 96px); transform-origin: bottom center; }
  .wheel-panel-body { padding: 18px; }
  .wheel-stage { width: 184px; height: 184px; }
  .wheel-canvas { width: 174px; height: 174px; }
  .chat-widget { right: 12px; bottom: 12px; }
  .chat-launcher { width: 54px; height: 54px; }
  .chat-panel { position: fixed; left: 12px; right: 12px; bottom: 76px; width: auto; height: min(590px,calc(100dvh - 98px)); transform-origin: bottom center; }
  .chat-form { grid-template-columns: 1fr; }
  .chat-form button { min-height: 40px; }
  .cookie-consent { bottom: 12px; width: calc(100vw - 24px); padding: 16px; }
  .cookie-consent-grid { grid-template-columns: 1fr; gap: 14px; }
  .cookie-actions { justify-content: flex-start; }
  .cookie-actions button { flex: 1 1 auto; }
}

@media (max-width: 420px) {
  .hero-nav a { font-size: 12px; }
  .teacher-gallery { grid-template-columns: 1fr; }
}


/* ===== V62 production refinements ===== */
.skip-link {
  position: fixed; z-index: 3000; left: 16px; top: 12px; padding: 10px 16px;
  border-radius: 999px; background: #fff; color: #020202; box-shadow: 0 12px 36px rgba(2,2,2,.22);
  transform: translateY(-160%); transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid #9a5e35; outline-offset: 3px; }
.site-header-inner { grid-template-columns: 1fr auto 1fr; }
.header-actions { min-width: 48px; }

/* Smoother menu on iOS and low-powered devices. */
.menu-drawer { height: 100vh; height: 100dvh; padding-top: max(28px,env(safe-area-inset-top)); padding-bottom: max(34px,env(safe-area-inset-bottom)); transform: translate3d(104%,0,0); will-change: transform; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.menu-drawer.is-open { transform: translate3d(0,0,0); }
.menu-overlay { will-change: opacity; }
html.scroll-locked, html.scroll-locked body { overflow: hidden !important; overscroll-behavior: none; }

/* Stable image/layout rendering. */
img { height: auto; }
.hero-media img,.slide img,.card-media img,.image-card img,.teacher-card-media img,.teacher-profile-photo img,.teacher-gallery img,.service-card img,.split-media img { height: 100%; }
.image-marquee-track,.marquee-track { backface-visibility: hidden; transform: translateZ(0); }

/* Favorite teachers */
.teacher-card-media { position: relative; }
.favorite-teacher {
  position: absolute; z-index: 3; top: 14px; right: 14px; min-width: 44px; min-height: 44px; padding: 0 12px;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid rgba(255,255,255,.7);
  border-radius: 999px; background: rgba(255,255,255,.92); color: #2d3429; box-shadow: 0 10px 28px rgba(2,2,2,.16);
  cursor: pointer; font-weight: 700; transition: transform .22s ease,background .22s ease,color .22s ease;
}
.favorite-teacher:hover { transform: translateY(-2px) scale(1.03); }
.favorite-teacher[aria-pressed="true"] { background: #2d3429; color: #fff; }
.favorite-teacher-profile { position: static; margin-bottom: 20px; border-color: rgba(45,52,41,.22); background: #f4e4b5; box-shadow: none; }
.favorite-toast { position: fixed; z-index: 2200; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); transform: translate(-50%,18px); opacity: 0; padding: 11px 16px; border-radius: 999px; background: #2d3429; color: #fff; box-shadow: 0 16px 44px rgba(2,2,2,.24); transition: opacity .2s ease,transform .2s ease; pointer-events: none; font-size: 13px; }
.favorite-toast.is-visible { opacity: 1; transform: translate(-50%,0); }

/* Consent-gated external embeds */
.booking-frame-shell,.map-shell { position: relative; }
.embed-consent-placeholder { min-height: inherit; height: 100%; padding: 48px 24px; display: grid; place-items: center; align-content: center; gap: 14px; text-align: center; background: linear-gradient(135deg,#f8f6f2,#f4e9e8); }
.embed-consent-placeholder h3 { font-size: clamp(28px,4vw,42px); }
.embed-consent-placeholder p { max-width: 520px; color: var(--muted); }
iframe[hidden] { display: none !important; }

/* Cookie panel: safe-area aware, never clipped by mobile browser chrome. */
.cookie-consent { bottom: max(14px,env(safe-area-inset-bottom)); max-height: calc(100dvh - 28px - env(safe-area-inset-top)); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.cookie-consent[aria-hidden="true"] { display: none; }
.cookie-consent a { text-decoration: underline; text-underline-offset: 3px; }
.cookie-option-copy { min-width: 0; }
.cookie-option small { display: block; color: var(--muted); }

/* Fixed widgets respect iPhone safe areas. */
.wheel-widget { bottom: max(18px,env(safe-area-inset-bottom)); left: max(18px,env(safe-area-inset-left)); }
.chat-widget { bottom: max(18px,env(safe-area-inset-bottom)); right: max(18px,env(safe-area-inset-right)); }
body.cookie-open .wheel-widget,body.cookie-open .chat-widget { opacity: 0; pointer-events: none; }
.wheel-widget,.chat-widget { transition: opacity .2s ease; }

.legal-updated { font-size: 13px; }
.legal-content a { color: var(--sage-deep); text-decoration: underline; text-underline-offset: 3px; }

@supports (-webkit-touch-callout: none) {
  body { -webkit-text-size-adjust: 100%; }
  input,textarea,select { font-size: 16px; }
  .hero { min-height: 620px; min-height: min(820px,calc(100svh - var(--announcement-h) - var(--header-h))); }
}

@media (max-width:620px) {
  .site-header-inner { grid-template-columns: 1fr auto 1fr; }
  .brand-logo-link { grid-column: 2; justify-content: center; }
  .header-actions { grid-column: 3; }
  .menu-drawer { width: 100%; padding-left: max(20px,env(safe-area-inset-left)); padding-right: max(20px,env(safe-area-inset-right)); }
  .menu-links a { font-size: clamp(22px,7vw,27px); }
  .cookie-consent { left: 12px; right: 12px; width: auto; transform: none; bottom: max(12px,env(safe-area-inset-bottom)); border-radius: 18px; }
  .cookie-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; }
  .cookie-actions .accept { grid-column: 1 / -1; }
  .cookie-actions button { min-height: 44px; }
  .favorite-teacher { top: 10px; right: 10px; }
}


/* ===== V63 targeted fixes: smooth menu, aligned cookie controls, stable bands ===== */
.menu-overlay {
  background: rgba(20,22,19,.30);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  -webkit-backdrop-filter: blur(0);
  backdrop-filter: blur(0);
  transition:
    opacity .48s cubic-bezier(.22,.8,.2,1),
    backdrop-filter .48s cubic-bezier(.22,.8,.2,1),
    -webkit-backdrop-filter .48s cubic-bezier(.22,.8,.2,1),
    visibility 0s linear .48s;
}
.menu-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  transition-delay: 0s;
}
.menu-drawer {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate3d(104%,0,0);
  transition:
    transform .56s cubic-bezier(.16,1,.3,1),
    opacity .36s ease,
    visibility 0s linear .56s;
  contain: layout paint style;
}
.menu-drawer.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate3d(0,0,0);
  transition-delay: 0s;
}
.menu-drawer-head,
.menu-links a,
.menu-drawer-footer {
  opacity: 0;
  transform: translate3d(22px,0,0);
  transition: opacity .34s ease,transform .48s cubic-bezier(.16,1,.3,1);
}
.menu-drawer.is-open .menu-drawer-head,
.menu-drawer.is-open .menu-links a,
.menu-drawer.is-open .menu-drawer-footer { opacity: 1; transform: translate3d(0,0,0); }
.menu-drawer.is-open .menu-drawer-head { transition-delay: .10s; }
.menu-drawer.is-open .menu-links a:nth-child(1) { transition-delay: .13s; }
.menu-drawer.is-open .menu-links a:nth-child(2) { transition-delay: .15s; }
.menu-drawer.is-open .menu-links a:nth-child(3) { transition-delay: .17s; }
.menu-drawer.is-open .menu-links a:nth-child(4) { transition-delay: .19s; }
.menu-drawer.is-open .menu-links a:nth-child(5) { transition-delay: .21s; }
.menu-drawer.is-open .menu-links a:nth-child(6) { transition-delay: .23s; }
.menu-drawer.is-open .menu-links a:nth-child(7) { transition-delay: .25s; }
.menu-drawer.is-open .menu-links a:nth-child(8) { transition-delay: .27s; }
.menu-drawer.is-open .menu-links a:nth-child(9) { transition-delay: .29s; }
.menu-drawer.is-open .menu-drawer-footer { transition-delay: .29s; }

.footer-links .cookie-settings-link {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  width: fit-content;
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  appearance: none;
  -webkit-appearance: none;
}
.cookie-consent {
  bottom: max(18px,env(safe-area-inset-bottom));
  max-height: calc(100dvh - 36px - env(safe-area-inset-top));
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 620px) {
  .program-strip { height: 58px; min-height: 58px; }
  .marquee-group { min-height: 58px; gap: 22px; padding-right: 22px; font-size: 17px; }
  .marquee-group span,.marquee-group i { min-height: 58px; }
  .image-marquee { padding-block: 14px; }
  .image-marquee-group img { width: 200px; height: 140px; border-radius: 12px; }
  .cookie-consent {
    bottom: max(12px,env(safe-area-inset-bottom));
    max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu-overlay,.menu-drawer,.menu-drawer-head,.menu-links a,.menu-drawer-footer { transition-duration: .01ms !important; transition-delay: 0s !important; }
}

/* Keep the navigation above the consent panel when both are opened quickly. */
.menu-overlay { z-index: 1400; }
.menu-drawer { z-index: 1410; }


/* ===== V64: seamless program strip + coral booking CTA ===== */
.program-strip {
  min-height: 66px;
  height: 66px;
  padding-inline: 0;
  overflow: hidden;
  -webkit-mask-image: none;
  mask-image: none;
}
.program-strip::before,
.program-strip::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 0;
  width: clamp(72px, 9vw, 150px);
  pointer-events: none;
}
.program-strip::before {
  left: 0;
  background: linear-gradient(90deg,#fff 0%,#fff 38%,rgba(255,255,255,.94) 58%,rgba(255,255,255,0) 100%);
}
.program-strip::after {
  right: 0;
  background: linear-gradient(270deg,#fff 0%,#fff 38%,rgba(255,255,255,.94) 58%,rgba(255,255,255,0) 100%);
}
.marquee-track {
  animation: none;
  transform: translate3d(0,0,0);
  padding-block: 1px;
}
.marquee-track.is-ready {
  animation: marqueeTextV64 var(--marquee-duration, 34s) linear infinite;
}
.marquee-group {
  min-height: 66px;
  gap: 34px;
  padding-right: 34px;
  line-height: 1.15;
}
.marquee-group span,
.marquee-group i {
  min-height: 66px;
  padding-block: 2px;
  white-space: nowrap;
}
@keyframes marqueeTextV64 {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(var(--marquee-distance, -50%),0,0); }
}

.premium-cta {
  min-height: 58px;
  padding-inline: 48px;
  border-color: rgba(121,68,59,.28);
  background: linear-gradient(125deg,#f7c9c0 0%,#f2aa9d 30%,#e98b7c 58%,#f5b9aa 82%,#f8d8d0 100%);
  color: #2d3429;
  box-shadow: 0 18px 46px rgba(217,112,98,.28),0 7px 18px rgba(68,43,37,.12),inset 0 1px 0 rgba(255,255,255,.72),inset 0 -1px 0 rgba(121,68,59,.13);
  animation: bookingFloatV64 2.65s cubic-bezier(.45,0,.25,1) infinite,bookingGlowV64 2.65s ease-in-out infinite;
}
.premium-cta::before {
  width: 36%;
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.82),transparent);
  animation: bookingShineV64 3.25s ease-in-out infinite;
}
.premium-cta::after {
  color: #2d3429;
  animation: bookingArrowV64 1.15s ease-in-out infinite;
}
.premium-cta:hover {
  filter: saturate(1.08) contrast(1.02);
}
@keyframes bookingFloatV64 {
  0%,100% { transform: translate3d(0,0,0) scale(1); }
  45% { transform: translate3d(0,-7px,0) scale(1.035); }
  60% { transform: translate3d(0,-5px,0) scale(1.024); }
}
@keyframes bookingGlowV64 {
  0%,100% { box-shadow:0 18px 46px rgba(217,112,98,.26),0 7px 18px rgba(68,43,37,.12),inset 0 1px 0 rgba(255,255,255,.72),inset 0 -1px 0 rgba(121,68,59,.13); }
  45% { box-shadow:0 27px 70px rgba(217,112,98,.42),0 11px 26px rgba(68,43,37,.16),0 0 0 8px rgba(242,170,157,.10),inset 0 1px 0 rgba(255,255,255,.82),inset 0 -1px 0 rgba(121,68,59,.13); }
}
@keyframes bookingShineV64 {
  0%,48% { left:-70%; }
  72%,100% { left:140%; }
}
@keyframes bookingArrowV64 {
  0%,100% { transform:translateX(0); opacity:.76; }
  50% { transform:translateX(7px); opacity:1; }
}

@media (max-width:620px) {
  .program-strip { min-height:60px; height:60px; }
  .program-strip::before,.program-strip::after { width:54px; }
  .marquee-group { min-height:60px; gap:24px; padding-right:24px; font-size:17px; }
  .marquee-group span,.marquee-group i { min-height:60px; }
  .premium-cta { min-height:54px; padding-inline:30px; }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track.is-ready { animation:none !important; }
  .program-strip { overflow-x:auto; scrollbar-width:none; }
  .program-strip::-webkit-scrollbar { display:none; }
  .program-strip::before,.program-strip::after { display:none; }
  .premium-cta,.premium-cta::before,.premium-cta::after { animation:none !important; }
}


/* ===== V65: Reservline green CTA, reliable motion, mobile wheel ===== */
html { scroll-behavior: smooth; }

/* JavaScript-enhanced reveal. Content remains visible when JS is unavailable. */
.js .reveal {
  opacity: 0;
  transform: translate3d(0,26px,0);
  transition: opacity .7s cubic-bezier(.22,.8,.2,1), transform .8s cubic-bezier(.16,1,.3,1);
  will-change: opacity, transform;
}
.js .reveal.is-visible { opacity: 1; transform: translate3d(0,0,0); }

.button-reservline {
  position: relative;
  z-index: 1;
  align-items: center;
  justify-content: center;
  display: inline-flex;
  box-sizing: border-box;
  min-width: 140px;
  max-width: 100%;
  min-height: 52px;
  padding: 13px 40px;
  overflow: hidden;
  border: 0;
  border-radius: 100px;
  background: #78937f;
  color: #fff;
  font-family: Poppins, sans-serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  box-shadow: 0 15px 34px rgba(74,104,82,.24), inset 0 1px 0 rgba(255,255,255,.22);
  transition: transform .28s cubic-bezier(.16,1,.3,1), background-color .25s ease, box-shadow .28s ease;
}
.button-reservline::after { content: "→"; margin-left: 12px; transition: transform .25s ease; }
.button-reservline:hover { background-color: #627b69; transform: translateY(-3px); box-shadow: 0 20px 42px rgba(74,104,82,.32); }
.button-reservline:hover::after { transform: translateX(5px); }
.button-reservline:active { transform: translateY(-1px) scale(.99); }
@media (min-width:768px) { .button-reservline { min-width: 191px; font-size: 18px; } }

/* Keep old CTA class safe if an older cached page references it. */
.premium-cta { background: #78937f !important; color:#fff !important; border-color:transparent !important; }
.premium-cta::after { color:#fff !important; }

/* CSS fallback starts immediately; JS later sets the exact pixel distance. */
.marquee-track {
  --marquee-distance: -33.333%;
  animation: marqueeTextV65 var(--marquee-duration,36s) linear infinite;
}
.marquee-track.is-ready { animation: marqueeTextV65 var(--marquee-duration,36s) linear infinite; }
@keyframes marqueeTextV65 {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(var(--marquee-distance),0,0); }
}

.reservline-direct-card {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: clamp(28px,5vw,70px);
  padding: clamp(30px,5vw,64px);
  border: 1px solid rgba(120,147,127,.24);
  border-radius: 28px;
  background: linear-gradient(135deg,rgba(120,147,127,.13),rgba(255,255,255,.96) 58%,rgba(231,221,210,.42));
  box-shadow: 0 24px 70px rgba(45,52,41,.10);
}
.reservline-direct-card h2 { max-width: 760px; }

.teacher-card-media img { object-position: center 24%; }
.teacher-card-body { min-height: 330px; }
.teacher-card-actions { margin-top: auto; }

/* More reachable and more compact wheel on mobile. */
.wheel-close {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display:grid;
  place-items:center;
  font-size: 28px;
  line-height:1;
  position:relative;
  z-index:4;
  touch-action:manipulation;
}
.wheel-panel-head { position: sticky; top: 0; z-index: 5; background:#fff; }
.wheel-panel { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }

@media (max-width: 620px) {
  .button-reservline { width:min(100%,340px); min-height:50px; padding:12px 24px; font-size:16px; }
  .reservline-direct-card { grid-template-columns:1fr; text-align:left; border-radius:20px; padding:26px 20px; }
  .reservline-direct-card .button-reservline { justify-self:stretch; width:100%; }
  .wheel-widget { left: max(8px,env(safe-area-inset-left)); bottom:max(8px,env(safe-area-inset-bottom)); }
  .wheel-launcher { width:46px; height:46px; }
  .wheel-panel {
    left:8px;
    right:8px;
    bottom:max(62px,calc(54px + env(safe-area-inset-bottom)));
    width:auto;
    max-height:calc(100dvh - 74px - env(safe-area-inset-top));
    border-radius:18px;
  }
  .wheel-panel-head { padding:10px 10px 10px 15px; }
  .wheel-panel-head h2 { font-size:22px; }
  .wheel-panel-head p { font-size:10px; }
  .wheel-panel-body { padding:12px 14px 16px; }
  .wheel-intro { font-size:11px; margin-bottom:10px; }
  .wheel-stage { width:154px; height:154px; margin-bottom:12px; }
  .wheel-canvas { width:146px; height:146px; }
  .wheel-center { width:46px; height:46px; font-size:18px; }
  .wheel-pointer { border-left-width:11px; border-right-width:11px; border-top-width:20px; }
  .wheel-note { margin-bottom:12px; }
  .wheel-form { gap:9px; }
  .wheel-form input[type="email"], .wheel-submit { min-height:42px; }
  .wheel-consent { font-size:9px; line-height:1.35; }
  .teacher-card-body { min-height:0; }
}

@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity:1; transform:none; }
  html { scroll-behavior:auto; }
}


/* ===== V66: JavaScript repair companion, teacher gallery, iPhone refinements ===== */
.site-page { overflow-x: hidden; }
@supports (overflow: clip) { .site-page { overflow-x: clip; } }
.hero-media.teacher-hero-noemi img { object-position: center 36%; }
.booking-teacher-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 18px;
}
.booking-teacher-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 112px minmax(0,1fr);
  align-items: stretch;
  overflow: hidden;
  border: 1px solid rgba(2,2,2,.10);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 42px rgba(45,52,41,.08);
  transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, border-color .35s ease;
}
.booking-teacher-card:hover { transform: translateY(-5px); border-color: rgba(120,147,127,.45); box-shadow: 0 24px 58px rgba(45,52,41,.14); }
.booking-teacher-card img { width: 112px; height: 100%; min-height: 152px; object-fit: cover; object-position: center 24%; }
.booking-teacher-copy { min-width: 0; padding: 20px 18px; display: flex; flex-direction: column; justify-content: center; gap: 7px; }
.booking-teacher-copy small { color: var(--sage-deep); font-size: 10px; line-height: 1.35; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.booking-teacher-copy strong { font-family: var(--serif); font-size: 27px; line-height: 1.05; font-weight: 500; }
.booking-teacher-copy > span { margin-top: 5px; color: var(--muted); font-size: 12px; }
.booking-teacher-cta { margin-top: 36px; }
/* Keep all continuously moving bands composited and smooth in Safari. */
.marquee-track,.image-marquee-track { -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.program-strip,.image-marquee { -webkit-transform: translateZ(0); transform: translateZ(0); }
body.menu-open .wheel-widget,body.menu-open .chat-widget { opacity: 0; pointer-events: none; }
@supports (-webkit-touch-callout:none) {
  html,body { min-height: -webkit-fill-available; }
  .menu-drawer { min-height: -webkit-fill-available; }
  .wheel-panel,.chat-panel { max-width: calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 16px); }
  .button-reservline,.btn,.menu-toggle,.menu-close,.wheel-close,.chat-close { -webkit-tap-highlight-color: transparent; }
}
@media (max-width: 980px) { .booking-teacher-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) {
  .section { padding-block: clamp(58px,15vw,82px); }
  .hero-content { padding-left: max(20px,env(safe-area-inset-left)); padding-right: max(20px,env(safe-area-inset-right)); }
  .booking-teacher-grid { grid-template-columns: 1fr; gap: 12px; }
  .booking-teacher-card { grid-template-columns: 92px minmax(0,1fr); border-radius: 16px; }
  .booking-teacher-card img { width: 92px; min-height: 126px; }
  .booking-teacher-copy { padding: 15px 14px; gap: 5px; }
  .booking-teacher-copy strong { font-size: 23px; }
  .booking-teacher-copy small { font-size: 9px; }
  .wheel-panel { max-height: calc(100vh - 82px); max-height: calc(100dvh - 74px - env(safe-area-inset-top)); }
  .chat-panel { max-height: calc(100vh - 92px); max-height: calc(100dvh - 92px - env(safe-area-inset-top)); }
}
@media (max-width: 390px) {
  .wheel-launcher { width: 42px; height: 42px; }
  .wheel-panel { left: 6px; right: 6px; bottom: max(54px,calc(48px + env(safe-area-inset-bottom))); }
  .wheel-stage { width: 138px; height: 138px; }
  .wheel-canvas { width: 130px; height: 130px; }
  .wheel-close { width: 42px; height: 42px; flex-basis: 42px; }
  .hero-nav { width: calc(100% - 24px); gap: 7px; bottom: 24px; }
  .hero-nav a { min-height: 38px; padding-inline: 14px; }
}


/* ===== V68: conversion-focused passes, mobile booking and stability ===== */
#berletek { scroll-margin-top: calc(var(--header-h) + var(--announcement-h) + 18px); }
.passes-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 10%, rgba(120,147,127,.14), transparent 34%),
    radial-gradient(circle at 92% 6%, rgba(220,194,166,.24), transparent 30%),
    linear-gradient(180deg, #fbfaf8 0%, #f6f3ee 100%);
}
.passes-section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(45,52,41,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(45,52,41,.025) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.5), transparent 74%);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,.5), transparent 74%);
}
.passes-section > .container { position: relative; z-index: 1; }
.passes-heading {
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(320px,.95fr);
  gap: clamp(34px,7vw,96px);
  align-items: end;
  margin-bottom: 34px;
}
.passes-heading h2 { max-width: 760px; text-wrap: balance; }
.passes-heading-copy { max-width: 650px; justify-self: end; }
.passes-heading-copy p:last-child { margin-bottom: 0; color: var(--muted); }
.pass-benefit-bar {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  margin-bottom: 22px;
  overflow: hidden;
  border: 1px solid rgba(120,147,127,.24);
  border-radius: 18px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 12px 38px rgba(45,52,41,.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.pass-benefit-bar span {
  min-height: 62px;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  font-weight: 500;
}
.pass-benefit-bar span + span { border-left: 1px solid rgba(120,147,127,.18); }
.pass-benefit-bar b {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(120,147,127,.14);
  color: var(--sage-deep);
  font-size: 10px;
  letter-spacing: .04em;
}
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 18px;
  align-items: stretch;
}
.price-card {
  min-width: 0;
  min-height: 100%;
  padding: clamp(24px,3.1vw,38px);
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(45,52,41,.11);
  border-radius: 24px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 16px 48px rgba(45,52,41,.07);
  transition: transform .32s cubic-bezier(.16,1,.3,1), box-shadow .32s ease, border-color .32s ease;
}
.price-card:hover { transform: translateY(-5px); border-color: rgba(120,147,127,.48); box-shadow: 0 24px 68px rgba(45,52,41,.13); }
.price-card-featured {
  grid-column: span 2;
  color: #fff;
  border-color: rgba(255,255,255,.14);
  background:
    radial-gradient(circle at 92% 12%, rgba(220,194,166,.27), transparent 36%),
    linear-gradient(135deg, #2d3429 0%, #435047 100%);
  box-shadow: 0 28px 84px rgba(45,52,41,.22);
}
.price-card-featured:hover { border-color: rgba(255,255,255,.28); box-shadow: 0 34px 92px rgba(45,52,41,.28); }
.price-card-head { margin-bottom: 22px; }
.price-kicker {
  margin: 0 0 8px;
  color: var(--sage-deep);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.price-card-featured .price-kicker { color: rgba(255,255,255,.7); }
.price-card h3 { font-size: clamp(31px,3vw,45px); }
.price-card > p { color: var(--muted); }
.price-card-featured > p { max-width: 720px; color: rgba(255,255,255,.78); }
.price-card-lead { font-size: clamp(17px,1.45vw,20px); }
.price-badge {
  display: inline-flex;
  width: max-content;
  margin-bottom: 24px;
  padding: 7px 12px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.price {
  margin: 16px 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
}
.price strong { font-family: var(--serif); font-size: clamp(34px,3vw,46px); line-height: 1; font-weight: 500; color: var(--forest); }
.price span { color: var(--muted); font-size: 12px; }
.price-features {
  margin: 8px 0 30px;
  padding: 0;
  display: grid;
  gap: 11px;
  list-style: none;
}
.price-features li { display: flex; gap: 10px; color: rgba(255,255,255,.82); }
.price-features li::before { content: "✓"; color: #dce8df; font-weight: 700; }
.price-card-featured .button-reservline { margin-top: auto; align-self: flex-start; background: #fff; color: var(--forest); box-shadow: 0 18px 44px rgba(0,0,0,.18); }
.price-card-featured .button-reservline:hover { background: #f4f0eb; }
.price-link {
  margin-top: auto;
  padding-top: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-top: 1px solid rgba(45,52,41,.1);
  color: var(--sage-deep);
  font-size: 13px;
  font-weight: 600;
}
.price-link span { transition: transform .25s ease; }
.price-link:hover span { transform: translateX(5px); }
.passes-choice {
  margin-top: 22px;
  padding: clamp(26px,4vw,48px);
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: clamp(26px,5vw,68px);
  align-items: center;
  border: 1px solid rgba(120,147,127,.24);
  border-radius: 24px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 18px 58px rgba(45,52,41,.08);
}
.passes-choice h3 { font-size: clamp(30px,3.2vw,48px); }
.passes-choice p:last-child { max-width: 760px; margin-bottom: 0; color: var(--muted); }
.passes-choice-actions { justify-content: flex-end; margin: 0; }
.price-disclaimer { max-width: 980px; margin: 24px auto 0; text-align: center; color: var(--muted); font-size: 11px; }
.home-passes-section { background: #fff; }
.home-passes-card {
  padding: clamp(30px,5vw,68px);
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: clamp(30px,6vw,86px);
  align-items: center;
  overflow: hidden;
  border: 1px solid rgba(120,147,127,.24);
  border-radius: 28px;
  background:
    radial-gradient(circle at 95% 5%, rgba(220,194,166,.34), transparent 31%),
    linear-gradient(135deg, rgba(120,147,127,.13), rgba(255,255,255,.98) 54%, rgba(244,233,232,.68));
  box-shadow: 0 24px 76px rgba(45,52,41,.1);
}
.home-passes-copy { max-width: 930px; }
.home-passes-copy h2 { max-width: 790px; }
.home-passes-copy .lead { max-width: 870px; }
.pass-mini-pills { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 26px; }
.pass-mini-pills span { padding: 9px 13px; border: 1px solid rgba(120,147,127,.22); border-radius: 999px; background: rgba(255,255,255,.72); color: var(--sage-deep); font-size: 11px; }
.pass-mini-pills b { color: var(--forest); font-weight: 600; }
.home-passes-actions { min-width: 230px; display: grid; gap: 12px; }
.mobile-booking-bar { display: none; }

/* Reliable keyboard focus for conversion links. */
.price-link:focus-visible,.mobile-booking-bar a:focus-visible,.button-reservline:focus-visible {
  outline: 3px solid rgba(120,147,127,.48);
  outline-offset: 4px;
}

@media (max-width: 1080px) {
  .pricing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .price-card-featured { grid-column: span 2; }
  .home-passes-card { grid-template-columns: 1fr; }
  .home-passes-actions { min-width: 0; display: flex; flex-wrap: wrap; }
}
@media (max-width: 820px) {
  .passes-heading { grid-template-columns: 1fr; gap: 24px; }
  .passes-heading-copy { justify-self: start; }
  .pass-benefit-bar { grid-template-columns: 1fr; }
  .pass-benefit-bar span + span { border-left: 0; border-top: 1px solid rgba(120,147,127,.18); }
  .passes-choice { grid-template-columns: 1fr; }
  .passes-choice-actions { justify-content: flex-start; }
}
@media (max-width: 620px) {
  .booking-page { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .pricing-grid { grid-template-columns: 1fr; gap: 13px; }
  .price-card-featured { grid-column: auto; }
  .price-card { padding: 25px 20px; border-radius: 19px; }
  .price-card:hover { transform: none; }
  .price-card-featured .button-reservline { align-self: stretch; width: 100%; }
  .passes-heading { margin-bottom: 24px; }
  .pass-benefit-bar { border-radius: 15px; }
  .pass-benefit-bar span { min-height: 56px; padding: 12px 15px; }
  .passes-choice { padding: 25px 20px; border-radius: 19px; }
  .passes-choice-actions { display: grid; width: 100%; }
  .passes-choice-actions .btn,.passes-choice-actions .button-reservline { width: 100%; }
  .home-passes-card { padding: 30px 20px; border-radius: 20px; }
  .home-passes-actions { display: grid; width: 100%; }
  .home-passes-actions .btn,.home-passes-actions .button-reservline { width: 100%; }
  .pass-mini-pills { gap: 7px; }
  .pass-mini-pills span { padding: 8px 10px; font-size: 10px; }
  .mobile-booking-bar {
    position: fixed;
    z-index: 960;
    left: max(10px,env(safe-area-inset-left));
    right: max(10px,env(safe-area-inset-right));
    bottom: max(8px,env(safe-area-inset-bottom));
    min-height: 58px;
    padding: 7px;
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    gap: 7px;
    border: 1px solid rgba(45,52,41,.12);
    border-radius: 18px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 18px 58px rgba(24,29,25,.22);
    backdrop-filter: blur(18px) saturate(1.25);
    -webkit-backdrop-filter: blur(18px) saturate(1.25);
  }
  .mobile-booking-bar a { min-width: 0; min-height: 44px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border-radius: 13px; font-size: 13px; font-weight: 600; text-align: center; }
  .mobile-booking-secondary { background: #f1f3ef; color: var(--forest); }
  .mobile-booking-primary { background: var(--sage); color: #fff; box-shadow: 0 10px 24px rgba(74,104,82,.23); }
  .booking-page .wheel-widget,.booking-page .chat-widget { bottom: max(82px,calc(74px + env(safe-area-inset-bottom))); }
  .booking-page .wheel-panel,.booking-page .chat-panel { bottom: max(138px,calc(130px + env(safe-area-inset-bottom))); }
}
@media (max-width: 380px) {
  .mobile-booking-bar { left: 6px; right: 6px; }
  .mobile-booking-bar a { padding-inline: 9px; font-size: 12px; }
  .price strong { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .price-card,.price-link span { transition: none; }
}


/* ===== V69: custom Brevo newsletter popup ===== */
.newsletter-widget {
  position: fixed;
  z-index: 1240;
  right: max(88px,calc(88px + env(safe-area-inset-right)));
  bottom: max(18px,env(safe-area-inset-bottom));
  isolation: isolate;
}
.newsletter-launcher {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 58px;
  height: 58px;
  padding: 0 17px;
  border: 1px solid rgba(45,52,41,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  color: var(--forest);
  box-shadow: 0 18px 48px rgba(2,2,2,.18);
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition: transform .28s ease,box-shadow .28s ease,background .28s ease;
  animation: newsletterFloatV69 3.6s ease-in-out infinite;
}
.newsletter-launcher::before {
  content: "";
  position: absolute;
  inset: -5px;
  z-index: -1;
  border: 1px solid rgba(120,147,127,.34);
  border-radius: inherit;
  opacity: 0;
  animation: newsletterRingV69 3.6s ease-out infinite;
}
.newsletter-launcher:hover { transform: translateY(-3px); box-shadow: 0 24px 58px rgba(2,2,2,.23); background:#fff; }
.newsletter-launcher-icon { width: 25px; height: 25px; display:grid; place-items:center; }
.newsletter-launcher-icon svg { width: 25px; height: 25px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.newsletter-launcher-label { font-size: 12px; font-weight: 700; letter-spacing:.02em; white-space:nowrap; }
@keyframes newsletterFloatV69 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
@keyframes newsletterRingV69 { 0%,45%{opacity:0;transform:scale(.92)} 60%{opacity:.65} 100%{opacity:0;transform:scale(1.16)} }

.newsletter-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1590;
  background: rgba(32,34,30,.44);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .28s ease,visibility .28s ease;
}
.newsletter-backdrop.is-open { opacity:1; visibility:visible; pointer-events:auto; }
.newsletter-panel {
  position: fixed;
  z-index: 1600;
  top: 50%;
  left: 50%;
  width: min(520px,calc(100vw - 32px));
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid rgba(2,2,2,.09);
  border-radius: 28px;
  background: var(--paper);
  box-shadow: 0 34px 100px rgba(2,2,2,.30);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%,-46%) scale(.965);
  transition: opacity .28s ease,transform .38s cubic-bezier(.2,.8,.2,1),visibility .28s ease;
}
.newsletter-panel.is-open { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,-50%) scale(1); }
.newsletter-panel-inner { position:relative; z-index:2; padding: 46px 44px 38px; }
.newsletter-close {
  position: sticky;
  float: right;
  top: 12px;
  right: 12px;
  z-index: 5;
  width: 38px;
  height: 38px;
  margin: 12px 12px -50px 0;
  border: 1px solid rgba(2,2,2,.11);
  border-radius: 50%;
  background: rgba(255,255,255,.9);
  color: var(--ink);
  box-shadow: 0 8px 24px rgba(2,2,2,.08);
  font-size: 24px;
  line-height:1;
  cursor:pointer;
}
.newsletter-close:hover { background:#fff; transform:rotate(4deg); }
.newsletter-decor { position:absolute; border-radius:50%; pointer-events:none; filter:blur(.2px); }
.newsletter-decor-one { width:180px; height:180px; right:-74px; top:-78px; background:rgba(220,194,166,.50); animation:newsletterDecorV69 8s ease-in-out infinite alternate; }
.newsletter-decor-two { width:120px; height:120px; left:-56px; bottom:-52px; background:rgba(120,147,127,.16); animation:newsletterDecorV69 10s ease-in-out infinite alternate-reverse; }
@keyframes newsletterDecorV69 { from{transform:translate3d(0,0,0) scale(1)} to{transform:translate3d(10px,8px,0) scale(1.08)} }
.newsletter-eyebrow { margin:0 0 10px; font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--sage-deep); }
.newsletter-panel h2 { max-width:390px; margin:0 0 13px; font-family:var(--serif); font-size:48px; line-height:.98; font-weight:500; letter-spacing:-.03em; color:var(--ink); }
.newsletter-intro { max-width:420px; margin:0 0 26px; color:var(--charcoal); font-size:14px; line-height:1.72; }
.newsletter-form { display:grid; gap:14px; }
.newsletter-field { display:grid; gap:7px; }
.newsletter-field > label:first-child { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--charcoal); }
.newsletter-field .entry__field { position:relative; }
.newsletter-field input[type="email"] {
  width:100%;
  height:54px;
  padding:0 18px;
  border:1px solid rgba(2,2,2,.16);
  border-radius:15px;
  background:rgba(255,255,255,.94);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  transition:border-color .22s ease,box-shadow .22s ease,background .22s ease;
}
.newsletter-field input[type="email"]::placeholder { color:#aaa59d; }
.newsletter-field input[type="email"]:focus { border-color:var(--sage); background:#fff; box-shadow:0 0 0 4px rgba(120,147,127,.12); }
.newsletter-field .entry__error { display:block; min-height:0; font-size:11px; line-height:1.45; color:#8f3434; }
.newsletter-field .entry__error:empty { display:none; }
.newsletter-consent { display:grid; grid-template-columns:18px 1fr; gap:10px; align-items:start; color:var(--muted); font-size:10px; line-height:1.55; cursor:pointer; }
.newsletter-consent input { width:17px; height:17px; margin:2px 0 0; accent-color:var(--sage); }
.newsletter-consent a { color:var(--sage-deep); text-decoration:underline; text-underline-offset:2px; }
.newsletter-confirm-note { margin:-3px 0 0 28px; color:#8d8981; font-size:10px; }
.newsletter-submit {
  position:relative;
  width:100%;
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:0;
  border-radius:999px;
  background:var(--sage);
  color:#fff;
  font-family:var(--sans);
  font-size:14px;
  font-weight:700;
  cursor:pointer;
  overflow:hidden;
  box-shadow:0 14px 32px rgba(45,52,41,.18);
  transition:transform .24s ease,background .24s ease,box-shadow .24s ease;
}
.newsletter-submit::before { content:""; position:absolute; inset:0; transform:translateX(-110%); background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent); transition:transform .65s ease; }
.newsletter-submit:hover { transform:translateY(-2px); background:var(--sage-deep); box-shadow:0 19px 40px rgba(45,52,41,.23); }
.newsletter-submit:hover::before { transform:translateX(110%); }
.newsletter-submit-arrow { font-size:19px; transition:transform .24s ease; }
.newsletter-submit:hover .newsletter-submit-arrow { transform:translateX(3px); }
.newsletter-loader { width:18px; height:18px; fill:currentColor; animation:newsletterSpinV69 1s linear infinite; }
.sib-hide-loader-icon { display:none; }
@keyframes newsletterSpinV69 { to{transform:rotate(360deg)} }
.newsletter-message { display:none; align-items:flex-start; gap:10px; margin:0 0 17px; padding:13px 14px; border-radius:14px; font-size:11px; line-height:1.5; }
.newsletter-message.sib-form-message-panel--active { display:flex !important; }
.newsletter-message[style*="display: block"],.newsletter-message[style*="display:block"] { display:flex !important; }
.newsletter-message-icon { flex:0 0 22px; width:22px; height:22px; display:grid; place-items:center; border-radius:50%; font-weight:800; }
.newsletter-message-error { color:#712b2b; background:#fff0ef; border:1px solid rgba(180,65,65,.20); }
.newsletter-message-error .newsletter-message-icon { background:#f3d4d1; }
.newsletter-message-success { color:#29533a; background:#edf7f0; border:1px solid rgba(55,135,83,.20); }
.newsletter-message-success .newsletter-message-icon { background:#d6eadc; }
.newsletter-message-success strong { display:block; }
.newsletter-privacy { margin:15px 0 0; text-align:center; color:#8a867f; font-size:9px; line-height:1.5; }
.newsletter-form .input--hidden { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; }
.newsletter-footer-link { padding:0; border:0; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.newsletter-footer-link:hover { text-decoration:underline; text-underline-offset:4px; }
.newsletter-scroll-locked { overflow:hidden; }
body.newsletter-open .newsletter-launcher { opacity:0; pointer-events:none; }
body.cookie-open .newsletter-widget,body.menu-open .newsletter-widget { opacity:0; pointer-events:none; }
.newsletter-widget { transition:opacity .2s ease; }

@media (max-width:760px) {
  .newsletter-widget { right:max(82px,calc(82px + env(safe-area-inset-right))); bottom:max(10px,env(safe-area-inset-bottom)); }
  .newsletter-launcher { width:46px; min-width:46px; height:46px; padding:0; }
  .newsletter-launcher-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .newsletter-launcher-icon,.newsletter-launcher-icon svg { width:22px; height:22px; }
  .newsletter-panel { top:auto; left:8px; right:8px; bottom:max(62px,calc(54px + env(safe-area-inset-bottom))); width:auto; max-height:calc(100dvh - 78px - env(safe-area-inset-top)); border-radius:23px; transform:translateY(18px) scale(.98); }
  .newsletter-panel.is-open { transform:translateY(0) scale(1); }
  .newsletter-panel-inner { padding:40px 22px 26px; }
  .newsletter-panel h2 { font-size:40px; }
  .newsletter-close { width:42px; height:42px; margin:8px 8px -48px 0; }
  .newsletter-decor-one { width:130px; height:130px; }
}
@media (max-width:390px) {
  .newsletter-panel-inner { padding-left:18px; padding-right:18px; }
  .newsletter-panel h2 { font-size:36px; }
  .newsletter-intro { font-size:13px; }
}
.booking-page .newsletter-widget { bottom:max(82px,calc(74px + env(safe-area-inset-bottom))); }
@media (max-width:760px) {
  .booking-page .newsletter-panel { bottom:max(132px,calc(124px + env(safe-area-inset-bottom))); max-height:calc(100dvh - 148px - env(safe-area-inset-top)); }
}
@media (prefers-reduced-motion:reduce) {
  .newsletter-launcher,.newsletter-launcher::before,.newsletter-decor,.newsletter-loader { animation:none !important; }
  .newsletter-panel,.newsletter-backdrop,.newsletter-submit { transition:none !important; }
}


/* ===== V70: hírlevélablak – csúszkamentes, stabil desktop/iPhone megjelenés ===== */
.newsletter-panel {
  overflow: hidden !important;
  overscroll-behavior: none;
  contain: layout paint;
}
.newsletter-panel-inner {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  max-height: calc(100dvh - 40px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  touch-action: pan-y;
}
.newsletter-panel-inner::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
.newsletter-close {
  position: absolute;
  top: 14px;
  right: 14px;
  float: none;
  margin: 0;
}
.newsletter-form,
.newsletter-field,
.newsletter-field .entry__field,
.newsletter-consent,
.newsletter-consent span,
.newsletter-submit {
  min-width: 0;
  max-width: 100%;
}
.newsletter-consent span,
.newsletter-message span,
.newsletter-intro,
.newsletter-privacy {
  overflow-wrap: anywhere;
  word-break: normal;
}
html.newsletter-scroll-locked,
html.newsletter-scroll-locked body,
body.newsletter-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}

@media (max-width: 760px) {
  .newsletter-panel,
  .booking-page .newsletter-panel {
    top: 50%;
    left: max(8px, env(safe-area-inset-left));
    right: max(8px, env(safe-area-inset-right));
    bottom: auto;
    width: auto;
    max-width: none;
    max-height: calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    transform: translateY(-46%) scale(.98);
  }
  .newsletter-panel.is-open,
  .booking-page .newsletter-panel.is-open {
    transform: translateY(-50%) scale(1);
  }
  .newsletter-panel-inner {
    max-height: calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    padding-top: 42px;
    padding-bottom: 24px;
  }
  .newsletter-field input[type="email"] {
    font-size: 16px; /* iPhone-on nem nagyít bele fókuszáláskor */
  }
  .newsletter-close {
    top: 10px;
    right: 10px;
    width: 42px;
    height: 42px;
  }
}

@media (max-height: 720px) and (min-width: 761px) {
  .newsletter-panel-inner { padding: 34px 38px 28px; }
  .newsletter-panel h2 { font-size: 41px; }
  .newsletter-intro { margin-bottom: 18px; line-height: 1.55; }
  .newsletter-form { gap: 11px; }
  .newsletter-field input[type="email"] { height: 50px; }
  .newsletter-submit { min-height: 48px; }
  .newsletter-privacy { margin-top: 10px; }
}

@media (max-height: 620px) {
  .newsletter-panel-inner { padding-top: 32px; padding-bottom: 20px; }
  .newsletter-panel h2 { font-size: 34px; }
  .newsletter-eyebrow { margin-bottom: 6px; }
  .newsletter-intro { margin-bottom: 14px; font-size: 12px; line-height: 1.5; }
  .newsletter-confirm-note,
  .newsletter-privacy { display: none; }
  .newsletter-field input[type="email"] { height: 48px; }
  .newsletter-submit { min-height: 47px; }
}

/* ===== V72: cleaner, conversion-focused booking / pass page ===== */
.booking-hero-v72 .hero-content { max-width: 850px; }
.booking-hero-v72 .hero-description { max-width: 720px; }
.booking-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:28px; }
.booking-hero-actions .button-reservline,
.booking-hero-actions .btn { min-width:190px; justify-content:center; }

.booking-jump-nav { position:relative; z-index:8; background:#fff; border-bottom:1px solid rgba(2,2,2,.08); box-shadow:0 14px 34px rgba(28,31,26,.05); }
.booking-jump-nav-inner { min-height:78px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; }
.booking-jump-nav a { min-width:0; display:flex; align-items:center; justify-content:center; gap:10px; padding:18px 12px; color:var(--forest); font-size:13px; font-weight:600; text-align:center; border-left:1px solid rgba(2,2,2,.07); transition:background .25s ease,color .25s ease; }
.booking-jump-nav a:last-child { border-right:1px solid rgba(2,2,2,.07); }
.booking-jump-nav a:hover { background:var(--paper-soft); color:var(--sage-deep); }
.booking-jump-nav a span { color:var(--sage); font-size:10px; letter-spacing:.08em; }

.booking-start-v72 { padding-block:clamp(72px,7vw,112px); }
.booking-start-grid-v72 { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr); gap:clamp(36px,6vw,92px); align-items:center; }
.booking-start-copy { max-width:780px; }
.booking-start-copy h2 { max-width:740px; }
.booking-checklist-v72 { display:grid; gap:1px; overflow:hidden; border:1px solid rgba(120,147,127,.18); border-radius:24px; background:rgba(120,147,127,.18); box-shadow:var(--shadow-soft); }
.booking-checklist-v72 > div { min-height:112px; display:grid; grid-template-columns:48px minmax(0,1fr); gap:18px; align-items:center; padding:22px 24px; background:#fff; }
.booking-checklist-v72 b { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--paper-soft); color:var(--sage-deep); font-size:12px; }
.booking-checklist-v72 span { display:grid; gap:4px; }
.booking-checklist-v72 strong { color:var(--forest); font-size:15px; }
.booking-checklist-v72 small { color:var(--muted); font-size:12px; line-height:1.55; }

.ticket-section-v72 { overflow:hidden; }
.ticket-section-v72 .section-heading { max-width:760px; }
.ticket-grid-v72 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.ticket-card-v72 { position:relative; min-height:430px; display:flex; flex-direction:column; padding:30px 26px 26px; border:1px solid rgba(120,147,127,.2); border-radius:24px; background:rgba(255,255,255,.9); box-shadow:0 16px 48px rgba(42,48,40,.07); overflow:hidden; transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease; }
.ticket-card-v72::after { content:""; position:absolute; right:-70px; top:-76px; width:150px; height:150px; border-radius:50%; background:rgba(120,147,127,.09); transition:transform .45s ease; }
.ticket-card-v72:hover { transform:translateY(-5px); border-color:rgba(120,147,127,.5); box-shadow:0 24px 65px rgba(42,48,40,.12); }
.ticket-card-v72:hover::after { transform:scale(1.18); }
.ticket-icon-v72 { position:relative; z-index:1; width:42px; height:42px; margin-bottom:22px; display:grid; place-items:center; border-radius:50%; background:var(--paper-soft); color:var(--sage-deep); font-size:11px; font-weight:700; }
.ticket-card-v72 h3 { min-height:76px; font-size:clamp(28px,2.2vw,37px); }
.ticket-card-v72 > p:not(.price-kicker):not(.ticket-price-v72) { color:var(--muted); font-size:13px; }
.ticket-price-v72 { margin:17px 0 18px; display:grid; gap:6px; }
.ticket-price-v72 strong { font-family:var(--serif); font-size:clamp(33px,2.9vw,45px); line-height:1; font-weight:500; color:var(--forest); }
.ticket-price-v72 span { color:var(--muted); font-size:11px; }
.ticket-card-v72 .price-link { margin-top:auto; }
.ticket-card-dark-v72 { background:var(--forest); border-color:var(--forest); color:#fff; }
.ticket-card-dark-v72::after { background:rgba(255,255,255,.07); }
.ticket-card-dark-v72 .ticket-icon-v72 { background:rgba(255,255,255,.1); color:#fff; }
.ticket-card-dark-v72 .price-kicker { color:rgba(255,255,255,.62); }
.ticket-card-dark-v72 h3,
.ticket-card-dark-v72 .ticket-price-v72 strong { color:#fff; }
.ticket-card-dark-v72 > p:not(.price-kicker):not(.ticket-price-v72),
.ticket-card-dark-v72 .ticket-price-v72 span { color:rgba(255,255,255,.7); }
.ticket-card-dark-v72 .price-link { color:#fff; border-color:rgba(255,255,255,.35); }

.passes-v72 { background:#fff; }
.passes-head-v72 { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr); gap:clamp(32px,6vw,88px); align-items:end; margin-bottom:42px; }
.passes-head-v72 > div:last-child { max-width:600px; justify-self:end; }
.passes-head-v72 .button-reservline { margin-top:18px; }
.pass-type-guide-v72 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-bottom:24px; }
.pass-type-guide-v72 article { min-height:190px; padding:28px 30px; border:1px solid rgba(120,147,127,.2); border-radius:22px; background:linear-gradient(135deg,#f9f7f3,#fff); }
.pass-type-guide-v72 article:nth-child(2) { background:linear-gradient(135deg,#eef3ef,#fff); }
.pass-type-guide-v72 span { display:inline-flex; margin-bottom:14px; padding:7px 10px; border-radius:999px; background:rgba(120,147,127,.11); color:var(--sage-deep); font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.pass-type-guide-v72 h3 { font-size:clamp(29px,3vw,42px); }
.pass-type-guide-v72 p { margin:12px 0 0; max-width:600px; color:var(--muted); font-size:13px; }
.pass-accordion-list-v72 { display:grid; gap:16px; }
.pass-accordion-v72 { overflow:hidden; border:1px solid rgba(2,2,2,.1); border-radius:24px; background:#fff; box-shadow:0 16px 48px rgba(42,48,40,.06); }
.pass-accordion-trigger-v72 { width:100%; min-height:112px; display:grid; grid-template-columns:minmax(250px,1fr) auto 42px; gap:20px; align-items:center; padding:24px 28px; border:0; background:#fff; text-align:left; cursor:pointer; }
.pass-accordion-trigger-v72:hover { background:#fbfaf8; }
.pass-accordion-trigger-v72 > span:first-child { display:grid; gap:5px; }
.pass-accordion-trigger-v72 small { color:var(--sage-deep); font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.pass-accordion-trigger-v72 strong { font-family:var(--serif); font-size:clamp(29px,3.1vw,43px); line-height:1; font-weight:500; }
.pass-payment-tags-v72 { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.pass-payment-tags-v72 i { padding:7px 10px; border:1px solid rgba(120,147,127,.21); border-radius:999px; color:var(--sage-deep); font-style:normal; font-size:9px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.pass-accordion-plus-v72 { position:relative; width:38px; height:38px; border:1px solid rgba(2,2,2,.12); border-radius:50%; }
.pass-accordion-plus-v72::before,
.pass-accordion-plus-v72::after { content:""; position:absolute; left:50%; top:50%; width:14px; height:1.5px; border-radius:999px; background:var(--forest); transform:translate(-50%,-50%); transition:transform .3s ease; }
.pass-accordion-plus-v72::after { transform:translate(-50%,-50%) rotate(90deg); }
.pass-accordion-trigger-v72[aria-expanded="true"] .pass-accordion-plus-v72::after { transform:translate(-50%,-50%) rotate(0deg); }
.pass-accordion-panel-v72 { height:0; overflow:hidden; border-top:1px solid transparent; transition:height .38s cubic-bezier(.2,.8,.2,1); }
.pass-accordion-trigger-v72[aria-expanded="true"] + .pass-accordion-panel-v72 { border-top-color:rgba(2,2,2,.08); }
.pass-accordion-panel-v72 { padding-inline:28px; }
.pass-accordion-panel-v72 > .button-reservline { margin:0 0 28px; }
.pass-table-v72 { margin:26px 0 20px; overflow:hidden; border:1px solid rgba(2,2,2,.09); border-radius:18px; }
.pass-row-v72 { min-height:86px; display:grid; grid-template-columns:minmax(180px,1.1fr) repeat(2,minmax(170px,1fr)); align-items:stretch; background:#fff; }
.pass-row-v72 + .pass-row-v72 { border-top:1px solid rgba(2,2,2,.08); }
.pass-row-v72 > * { min-width:0; display:flex; flex-direction:column; justify-content:center; gap:5px; padding:16px 20px; }
.pass-row-v72 > * + * { border-left:1px solid rgba(2,2,2,.08); }
.pass-row-v72 strong { color:var(--forest); font-family:var(--serif); font-size:27px; font-weight:500; }
.pass-row-v72 b { color:var(--forest); font-size:16px; }
.pass-row-v72 small { color:var(--muted); font-size:10px; }
.pass-row-head-v72 { min-height:52px; background:var(--paper-soft); }
.pass-row-head-v72 span { color:var(--sage-deep); font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.pass-note-v72 { margin:0 0 22px; padding:16px 18px; border-left:3px solid var(--sage); background:#f5f7f4; color:var(--muted); font-size:12px; }
.pass-note-v72 strong { color:var(--forest); }

.payment-section-v72 { overflow:hidden; }
.payment-grid-v72 { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.82fr); gap:clamp(28px,5vw,72px); align-items:stretch; }
.payment-copy-v72 { padding:clamp(12px,2vw,24px) 0; }
.payment-copy-v72 h2 { max-width:680px; }
.payment-copy-v72 .lead { max-width:720px; }
.payment-methods-v72 { display:grid; gap:10px; margin:30px 0; }
.payment-methods-v72 > div { display:grid; grid-template-columns:46px minmax(0,1fr); gap:15px; align-items:center; padding:14px 16px; border:1px solid rgba(120,147,127,.18); border-radius:16px; background:rgba(255,255,255,.82); }
.payment-methods-v72 > div > span { width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:rgba(120,147,127,.1); color:var(--sage-deep); font-size:19px; }
.payment-methods-v72 p { margin:0; display:grid; gap:2px; }
.payment-methods-v72 strong { font-size:14px; color:var(--forest); }
.payment-methods-v72 small { color:var(--muted); font-size:11px; }
.gift-card-v72 { position:relative; min-height:520px; display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(34px,4vw,58px); border-radius:30px; background:var(--forest); color:#fff; overflow:hidden; box-shadow:0 30px 82px rgba(35,42,33,.22); }
.gift-card-v72::before { content:"AS"; position:absolute; right:-18px; top:-50px; color:rgba(255,255,255,.035); font-family:var(--serif); font-size:230px; line-height:1; }
.gift-card-orbit-v72 { position:absolute; right:46px; top:42px; width:120px; height:120px; border:1px solid rgba(255,255,255,.16); border-radius:50%; animation:giftOrbitV72 9s linear infinite; }
.gift-card-orbit-v72::after { content:""; position:absolute; left:50%; top:-5px; width:10px; height:10px; border-radius:50%; background:var(--sand); transform:translateX(-50%); box-shadow:0 0 0 7px rgba(220,194,166,.09); }
@keyframes giftOrbitV72 { to { transform:rotate(360deg); } }
.gift-card-v72 .eyebrow { color:rgba(255,255,255,.64); }
.gift-card-v72 h3 { max-width:520px; color:#fff; font-size:clamp(40px,4vw,58px); }
.gift-card-v72 > p:not(.eyebrow) { max-width:560px; color:rgba(255,255,255,.74); }
.gift-card-meta-v72 { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 24px; }
.gift-card-meta-v72 span { padding:8px 11px; border:1px solid rgba(255,255,255,.18); border-radius:999px; color:rgba(255,255,255,.8); font-size:10px; }
.gift-card-v72 .button-row { margin-top:0; }

.teacher-booking-v72 { padding-block:clamp(70px,7vw,108px); }
.teacher-booking-head-v72 { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr); gap:clamp(28px,6vw,86px); align-items:end; margin-bottom:36px; }
.teacher-booking-head-v72 > div:last-child { max-width:600px; justify-self:end; }
.teacher-booking-head-v72 p { color:var(--muted); }
.teacher-booking-head-v72 .btn { margin-top:10px; }
.booking-teacher-grid-v72 { gap:12px; }
.booking-teacher-grid-v72 .booking-teacher-card { grid-template-columns:82px minmax(0,1fr); min-height:118px; border-radius:17px; }
.booking-teacher-grid-v72 .booking-teacher-card img { width:82px; min-height:118px; }
.booking-teacher-grid-v72 .booking-teacher-copy { padding:14px 13px; gap:4px; }
.booking-teacher-grid-v72 .booking-teacher-copy strong { font-size:22px; }
.booking-teacher-grid-v72 .booking-teacher-copy small { font-size:8px; }
.booking-teacher-grid-v72 .booking-teacher-copy > span { font-size:10px; }

.booking-final-v72 { padding-block:clamp(66px,7vw,105px); background:linear-gradient(135deg,#eaf0eb,#f7f3ed); }
.booking-final-inner-v72 { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:34px; align-items:center; padding-block:0; }
.booking-final-inner-v72 h2 { max-width:900px; }
.booking-final-inner-v72 p:last-child { max-width:760px; margin-bottom:0; color:var(--muted); }
.booking-final-inner-v72 .button-reservline { min-width:220px; justify-content:center; }

@media (max-width:1180px) {
  .ticket-grid-v72 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ticket-card-v72 { min-height:390px; }
}

@media (max-width:900px) {
  .booking-jump-nav-inner { padding-inline:12px; }
  .booking-jump-nav a { font-size:11px; }
  .booking-start-grid-v72,
  .passes-head-v72,
  .payment-grid-v72,
  .teacher-booking-head-v72 { grid-template-columns:1fr; }
  .passes-head-v72 > div:last-child,
  .teacher-booking-head-v72 > div:last-child { justify-self:start; }
  .pass-accordion-trigger-v72 { grid-template-columns:minmax(0,1fr) 42px; }
  .pass-payment-tags-v72 { grid-column:1 / -1; grid-row:2; justify-content:flex-start; }
  .pass-accordion-plus-v72 { grid-column:2; grid-row:1; }
  .booking-final-inner-v72 { grid-template-columns:1fr; }
  .booking-final-inner-v72 .button-reservline { justify-self:start; }
}

@media (max-width:680px) {
  .booking-hero-actions { display:grid; width:100%; }
  .booking-hero-actions .button-reservline,
  .booking-hero-actions .btn { width:100%; min-width:0; }
  .booking-jump-nav-inner { grid-template-columns:repeat(2,minmax(0,1fr)); padding-inline:0; }
  .booking-jump-nav a { min-height:54px; border-bottom:1px solid rgba(2,2,2,.07); }
  .booking-start-grid-v72 { gap:28px; }
  .booking-checklist-v72 > div { min-height:96px; padding:18px; }
  .ticket-grid-v72 { grid-template-columns:1fr; }
  .ticket-card-v72 { min-height:0; padding:24px 20px; border-radius:19px; }
  .ticket-card-v72 h3 { min-height:0; }
  .ticket-card-v72:hover { transform:none; }
  .pass-type-guide-v72 { grid-template-columns:1fr; }
  .pass-type-guide-v72 article { min-height:0; padding:22px 20px; border-radius:18px; }
  .pass-accordion-v72 { border-radius:19px; }
  .pass-accordion-trigger-v72 { min-height:0; padding:20px; gap:12px; }
  .pass-accordion-trigger-v72 strong { font-size:30px; }
  .pass-accordion-panel-v72 { padding-inline:14px; }
  .pass-table-v72 { margin-top:16px; border:0; border-radius:0; overflow:visible; display:grid; gap:10px; }
  .pass-row-head-v72 { display:none; }
  .pass-row-v72 { min-height:0; grid-template-columns:1fr 1fr; border:1px solid rgba(2,2,2,.09)!important; border-radius:15px; overflow:hidden; }
  .pass-row-v72 strong { grid-column:1 / -1; padding:14px 15px; background:var(--paper-soft); font-size:24px; }
  .pass-row-v72 > span { padding:14px 15px; }
  .pass-row-v72 > * + * { border-left:0; }
  .pass-row-v72 > span + span { border-left:1px solid rgba(2,2,2,.08); }
  .pass-row-v72 > span::before { display:block; margin-bottom:4px; color:var(--sage-deep); font-size:8px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
  .pass-row-v72 > span:nth-child(2)::before { content:"5 alkalom"; }
  .pass-row-v72 > span:nth-child(3)::before { content:"10 alkalom"; }
  .pass-row-v72 b { font-size:14px; }
  .pass-payment-tags-v72 i { font-size:8px; }
  .payment-methods-v72 > div { padding:12px; }
  .gift-card-v72 { min-height:470px; padding:30px 22px; border-radius:23px; }
  .gift-card-v72::before { font-size:170px; }
  .gift-card-orbit-v72 { width:88px; height:88px; right:24px; top:28px; }
  .gift-card-v72 .button-row { display:grid; width:100%; }
  .gift-card-v72 .btn { width:100%; }
  .teacher-booking-v72 { padding-block:64px; }
  .booking-teacher-grid-v72 .booking-teacher-card { grid-template-columns:74px minmax(0,1fr); }
  .booking-teacher-grid-v72 .booking-teacher-card img { width:74px; }
  .booking-final-inner-v72 .button-reservline { width:100%; justify-self:stretch; }
}

@media (prefers-reduced-motion:reduce) {
  .gift-card-orbit-v72 { animation:none; }
  .ticket-card-v72,
  .ticket-card-v72::after { transition:none; }
}

/* ===== V73 – Foglalás / bérletek finomhangolás ===== */
.teacher-booking-intro-v73 {
  max-width: 760px;
  margin: 0 0 22px;
  color: var(--muted);
}
.booking-teacher-grid-v73 {
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 16px;
}
.booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 {
  grid-template-columns: 146px minmax(0,1fr);
  align-items: stretch;
  min-height: 216px;
  border-radius: 24px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,246,241,.96));
  box-shadow: 0 18px 48px rgba(45,52,41,.08);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.booking-teacher-grid-v73 .booking-teacher-card-detailed-v73:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 58px rgba(45,52,41,.14);
}
.booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 img {
  width: 146px;
  min-height: 216px;
  object-fit: cover;
  object-position: center 24%;
}
.booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy {
  padding: 18px 18px 17px;
  gap: 8px;
}
.booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy small {
  font-size: 10px;
  letter-spacing: .09em;
}
.booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy strong {
  font-size: 28px;
  line-height: 1.02;
}
.booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy em {
  margin-top: 2px;
  color: #6b675f;
  font-size: 13px;
  line-height: 1.65;
  font-style: normal;
}
.booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy > span {
  margin-top: auto;
  color: var(--forest);
  font-weight: 600;
  font-size: 12px;
}
.booking-marquee-v73 {
  padding: 10px 0 54px;
  background: linear-gradient(180deg, rgba(250,247,243,0), rgba(250,247,243,.72) 16%, rgba(250,247,243,1) 100%);
}
.marquee-copy-v73 {
  max-width: 760px;
  margin-bottom: 10px;
}
.marquee-copy-v73 p:not(.eyebrow) {
  color: var(--muted);
}
.image-marquee-v73 {
  margin-top: 8px;
  padding-block: 18px 6px;
}
.image-marquee-v73 .image-marquee-group {
  gap: 14px;
}
.image-marquee-v73 .image-marquee-group img {
  width: 220px;
  height: 154px;
  border-radius: 18px;
  box-shadow: 0 16px 32px rgba(40,48,39,.10);
}
@media (max-width: 980px) {
  .booking-teacher-grid-v73 {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 760px) {
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 {
    grid-template-columns: 106px minmax(0,1fr);
    min-height: 188px;
    border-radius: 19px;
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 img {
    width: 106px;
    min-height: 188px;
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy {
    padding: 14px 13px 13px;
    gap: 6px;
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy strong {
    font-size: 22px;
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy em {
    font-size: 12px;
    line-height: 1.5;
  }
  .image-marquee-v73 .image-marquee-group img {
    width: 184px;
    height: 132px;
    border-radius: 14px;
  }
}

/* ===== V74 – emberibb szövegek, számozás nélkül, finomabb mozgás ===== */

/* Számozás nélküli navigációk és harmonikák */
.booking-jump-nav a {
  position: relative;
  gap: 0;
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .01em;
}
.booking-jump-nav a::after {
  content: "";
  position: absolute;
  left: 22%;
  right: 22%;
  bottom: 16px;
  height: 1px;
  background: var(--sage);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
}
.booking-jump-nav a:hover::after,
.booking-jump-nav a:focus-visible::after { transform: scaleX(1); }
.accordion-trigger { grid-template-columns: minmax(0,1fr) auto; }
.accordion-panel-inner { padding-left: 0; }

/* Foglalás bevezető */
.booking-start-v74 {
  position: relative;
  padding-block: clamp(76px,8vw,124px);
  overflow: hidden;
}
.booking-start-v74::before,
.booking-start-v74::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
  filter: blur(2px);
}
.booking-start-v74::before {
  width: 360px;
  height: 360px;
  right: -150px;
  top: 20px;
  background: radial-gradient(circle, rgba(120,147,127,.15), rgba(120,147,127,0) 70%);
  animation: ambientFloatV74 11s ease-in-out infinite alternate;
}
.booking-start-v74::after {
  width: 260px;
  height: 260px;
  left: -120px;
  bottom: -90px;
  background: radial-gradient(circle, rgba(197,168,139,.13), rgba(197,168,139,0) 72%);
  animation: ambientFloatV74 14s ease-in-out infinite alternate-reverse;
}
.booking-start-grid-v74 {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0,1.12fr) minmax(330px,.88fr);
  gap: clamp(40px,7vw,104px);
  align-items: center;
}
.booking-welcome-v74 {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(30px,4vw,48px);
  border: 1px solid rgba(120,147,127,.22);
  border-radius: 30px;
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(244,239,232,.94));
  box-shadow: 0 28px 80px rgba(48,54,45,.11);
}
.booking-welcome-v74::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(115deg, transparent 28%, rgba(255,255,255,.72) 48%, transparent 68%);
  transform: translateX(-120%);
  animation: softSweepV74 8s ease-in-out infinite;
}
.booking-welcome-v74 h3 {
  max-width: 420px;
  margin-bottom: 16px;
  font-size: clamp(35px,4vw,54px);
}
.booking-welcome-v74 > p:not(.eyebrow) {
  color: var(--muted);
  line-height: 1.8;
}
.booking-welcome-orbit-v74 {
  position: absolute;
  right: -45px;
  top: -58px;
  width: 180px;
  height: 180px;
  border: 1px solid rgba(120,147,127,.28);
  border-radius: 50%;
  animation: orbitTurnV74 18s linear infinite;
}
.booking-welcome-orbit-v74::before,
.booking-welcome-orbit-v74::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}
.booking-welcome-orbit-v74::before {
  width: 12px;
  height: 12px;
  left: 8px;
  top: 78px;
  background: var(--sage);
  box-shadow: 0 0 0 8px rgba(120,147,127,.10);
}
.booking-welcome-orbit-v74::after {
  inset: 25px;
  border: 1px dashed rgba(197,168,139,.35);
}
.text-link-v74 {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  color: var(--forest);
  font-weight: 600;
}
.text-link-v74 span { transition: transform .25s ease; }
.text-link-v74:hover span { transform: translateX(5px); }

/* Órajegyek – számok helyett organikus jel */
.ticket-orb-v74 {
  position: relative;
  z-index: 1;
  width: 48px;
  height: 48px;
  margin-bottom: 24px;
  border: 1px solid rgba(120,147,127,.30);
  border-radius: 50% 46% 52% 48%;
  background: radial-gradient(circle at 35% 32%, rgba(255,255,255,.95), rgba(120,147,127,.15));
  box-shadow: inset 0 0 0 8px rgba(255,255,255,.35);
  animation: organicTurnV74 9s ease-in-out infinite alternate;
}
.ticket-orb-v74::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  right: 5px;
  top: 6px;
  border-radius: 50%;
  background: var(--sage);
}
.ticket-card-dark-v72 .ticket-orb-v74 {
  border-color: rgba(255,255,255,.28);
  background: radial-gradient(circle at 35% 32%, rgba(255,255,255,.26), rgba(255,255,255,.05));
  box-shadow: inset 0 0 0 8px rgba(255,255,255,.04);
}
.ticket-card-dark-v72 .ticket-orb-v74::after { background: #f2e7da; }

/* Globális, visszafogottabb animációk */
.js .reveal {
  opacity: 0;
  filter: blur(5px);
  transform: translate3d(0,34px,0) scale(.985);
  transition:
    opacity .78s cubic-bezier(.22,.8,.2,1),
    transform .9s cubic-bezier(.16,1,.3,1),
    filter .78s ease;
  transition-delay: var(--reveal-delay,0ms);
}
.js .reveal.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0,0,0) scale(1);
}
.hero-media img {
  animation: heroBreathV74 18s ease-in-out infinite alternate;
  will-change: transform;
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--sage);
  box-shadow: 0 0 0 0 rgba(120,147,127,.28);
  animation: softPulseV74 3.6s ease-out infinite;
}
.button-reservline,
.btn,
.premium-cta {
  overflow: hidden;
}
.button-reservline::after,
.btn::after,
.premium-cta::after {
  content: "";
  position: absolute;
  inset: -40% auto -40% -45%;
  width: 34%;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-18deg) translateX(-220%);
  transition: transform .75s cubic-bezier(.2,.8,.2,1);
}
.button-reservline:hover::after,
.btn:hover::after,
.premium-cta:hover::after { transform: skewX(-18deg) translateX(520%); }
.ticket-card-v72,
.pass-type-guide-v72 article,
.booking-teacher-card,
.teacher-card,
.studio-card,
.service-card {
  will-change: transform;
}
.ticket-card-v72:hover,
.pass-type-guide-v72 article:hover,
.booking-teacher-card:hover,
.teacher-card:hover,
.studio-card:hover,
.service-card:hover {
  transform: translateY(-7px);
}
.booking-teacher-card img,
.teacher-card img,
.studio-card img,
.image-card img {
  transition: transform .8s cubic-bezier(.16,1,.3,1), filter .45s ease;
}
.booking-teacher-card:hover img,
.teacher-card:hover img,
.studio-card:hover img,
.image-card:hover img {
  transform: scale(1.045);
  filter: saturate(1.04) contrast(1.02);
}
.accordion-trigger .accordion-title,
.accordion-trigger > span:not(.accordion-icon) {
  transition: transform .3s ease, color .3s ease;
}
.accordion-trigger:hover .accordion-title,
.accordion-trigger:hover > span:not(.accordion-icon) {
  transform: translateX(5px);
  color: var(--sage-deep);
}

@keyframes ambientFloatV74 {
  from { transform: translate3d(0,0,0) scale(1); }
  to { transform: translate3d(18px,-20px,0) scale(1.08); }
}
@keyframes softSweepV74 {
  0%,62% { transform: translateX(-130%); }
  82%,100% { transform: translateX(130%); }
}
@keyframes orbitTurnV74 { to { transform: rotate(360deg); } }
@keyframes organicTurnV74 {
  from { transform: rotate(-5deg) translateY(0); border-radius: 50% 46% 52% 48%; }
  to { transform: rotate(8deg) translateY(-4px); border-radius: 43% 57% 46% 54%; }
}
@keyframes heroBreathV74 {
  from { transform: scale(1.005) translate3d(0,0,0); }
  to { transform: scale(1.055) translate3d(-.8%,.4%,0); }
}
@keyframes softPulseV74 {
  0% { box-shadow: 0 0 0 0 rgba(120,147,127,.30); }
  65%,100% { box-shadow: 0 0 0 9px rgba(120,147,127,0); }
}

@media (max-width: 980px) {
  .booking-start-grid-v74 { grid-template-columns: 1fr; gap: 34px; }
  .booking-welcome-v74 { max-width: 720px; }
}
@media (max-width: 760px) {
  .booking-jump-nav a { font-size: 17px; }
  .booking-jump-nav a::after { bottom: 9px; }
  .booking-start-v74 { padding-block: 66px; }
  .booking-welcome-v74 { padding: 28px 22px; border-radius: 22px; }
  .accordion-trigger { grid-template-columns: minmax(0,1fr) auto; gap: 12px; }
  .accordion-panel-inner { padding-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-media img,
  .eyebrow::before,
  .booking-start-v74::before,
  .booking-start-v74::after,
  .booking-welcome-v74::before,
  .booking-welcome-orbit-v74,
  .ticket-orb-v74 { animation: none !important; }
  .js .reveal { filter: none; transition-delay: 0ms; }
}

/* V74 pseudo-element compatibility: retain arrow CTAs */
.button-reservline { position: relative; }
.button-reservline::after {
  content: "→";
  position: static;
  inset: auto;
  width: auto;
  flex: 0 0 auto;
  margin-left: 12px;
  background: none;
  transform: none;
  transition: transform .25s ease;
}
.button-reservline:hover::after { transform: translateX(5px); }
.btn { position: relative; }
.premium-cta::after {
  content: "→";
  position: relative;
  inset: auto;
  width: auto;
  background: none;
  transform: none;
  color: #fff !important;
  animation: bookingArrowV64 1.15s ease-in-out infinite;
}
.premium-cta:hover::after { transform: none; }

/* ===== V75 – visszaállított szövegsáv és eszközfüggetlen stabilitás ===== */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}
body {
  min-width: 280px;
}
body,
.site-page,
main,
section,
.container {
  min-width: 0;
}
img,
picture,
video,
canvas,
svg {
  max-width: 100%;
}
button,
a,
input,
select,
textarea {
  touch-action: manipulation;
}
h1,
h2,
h3,
h4,
p,
a,
strong,
small,
em,
span {
  overflow-wrap: break-word;
}

/* A Bérletek / Foglalás oldal eredeti, folyamatosan mozgó óratípus-sávja. */
.booking-program-strip-v75 {
  z-index: 6;
  contain: paint;
  background: rgba(255,255,255,.985);
}
.booking-program-strip-v75 .marquee-track {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: translate3d(0,0,0);
}
.booking-program-strip-v75 .marquee-group {
  font-size: clamp(17px,1.55vw,21px);
}

/* A foglalási oldal szerkezete minden szélességen megtartja az arányait. */
.booking-page .hero-content,
.booking-start-grid-v74 > *,
.passes-head-v72 > *,
.payment-grid-v72 > *,
.teacher-booking-head-v72 > *,
.booking-final-inner-v72 > * {
  min-width: 0;
}
.booking-page .booking-hero-actions,
.booking-page .button-row {
  flex-wrap: wrap;
}
.booking-page .ticket-card-v72,
.booking-page .pass-accordion-v72,
.booking-page .booking-teacher-card-detailed-v73,
.booking-page .gift-card-v72,
.booking-page .booking-welcome-v74 {
  overflow: hidden;
}
.booking-page .pass-table-v72 {
  max-width: 100%;
}
.booking-page .booking-welcome-orbit-v74 {
  pointer-events: none;
}

/* Ne foglaljon feleslegesen GPU-memóriát sok kártya egyszerre mobilon. */
.ticket-card-v72,
.pass-type-guide-v72 article,
.booking-teacher-card,
.teacher-card,
.studio-card,
.service-card {
  will-change: auto;
}
@media (hover: hover) and (pointer: fine) {
  .ticket-card-v72:hover,
  .pass-type-guide-v72 article:hover,
  .booking-teacher-card:hover,
  .teacher-card:hover,
  .studio-card:hover,
  .service-card:hover {
    will-change: transform;
  }
}

/* iOS: ne nagyítson bele az űrlapokba, Androidon se essen szét a mező. */
@media (max-width: 760px) {
  input,
  select,
  textarea {
    font-size: 16px;
  }
  .booking-page .hero-nav {
    display: none;
  }
  .booking-program-strip-v75 {
    height: 58px;
    min-height: 58px;
  }
  .booking-program-strip-v75 .marquee-group,
  .booking-program-strip-v75 .marquee-group span,
  .booking-program-strip-v75 .marquee-group i {
    min-height: 58px;
  }
  .booking-jump-nav-inner {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .booking-jump-nav a {
    min-height: 56px;
    padding: 14px 10px;
    line-height: 1.2;
  }
  .booking-start-grid-v74,
  .payment-grid-v72,
  .teacher-booking-head-v72,
  .booking-final-inner-v72 {
    gap: 26px;
  }
  .booking-page .section-heading {
    margin-bottom: 34px;
  }
  .booking-page .ticket-card-v72,
  .booking-page .booking-welcome-v74,
  .booking-page .gift-card-v72 {
    box-shadow: 0 18px 48px rgba(38,45,37,.09);
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy em {
    hyphens: auto;
    -webkit-hyphens: auto;
  }
}

@media (max-width: 480px) {
  :root {
    --gutter: clamp(18px,5.5vw,24px);
  }
  h1 { font-size: clamp(42px,13vw,58px); }
  h2 { font-size: clamp(34px,10.5vw,46px); }
  h3 { font-size: clamp(25px,8vw,34px); }
  .lead { font-size: 17px; }
  .booking-page .booking-hero-actions,
  .booking-page .button-row {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .booking-page .booking-hero-actions > *,
  .booking-page .button-row > *,
  .booking-page .button-reservline,
  .booking-page .btn {
    width: 100%;
    min-width: 0;
    white-space: normal;
    text-align: center;
  }
  .booking-page .pass-accordion-trigger-v72 {
    grid-template-columns: minmax(0,1fr) 38px;
    padding: 18px 16px;
  }
  .booking-page .pass-payment-tags-v72 {
    grid-column: 1 / -1;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .booking-page .pass-row-v72 > * {
    min-width: 0;
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 {
    grid-template-columns: 96px minmax(0,1fr);
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 img {
    width: 96px;
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy strong {
    font-size: 21px;
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy em {
    font-size: 11px;
    line-height: 1.45;
  }
  .booking-program-strip-v75::before,
  .booking-program-strip-v75::after {
    width: 34px;
  }
}

@media (max-width: 340px) {
  :root { --gutter: 16px; }
  .announcement-bar { padding-inline: 12px; font-size: 10px; }
  .booking-jump-nav a { font-size: 15px; padding-inline: 7px; }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 {
    grid-template-columns: 84px minmax(0,1fr);
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 img { width: 84px; }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy {
    padding: 12px 10px;
  }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy strong { font-size: 19px; }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 .booking-teacher-copy em { font-size: 10.5px; }
}

/* Alacsony, fekvő telefonokon ne lógjon ki sem a fejléc, sem a felugró panel. */
@media (orientation: landscape) and (max-height: 520px) and (min-width: 560px) {
  .announcement-bar { height: 26px; }
  .site-header { height: 68px; }
  .site-header-inner { height: 68px; }
  .logo { max-height: 48px; width: auto; }
  .hero,
  .hero.hero-small,
  .booking-page .booking-hero-v72 {
    min-height: 500px;
  }
  .booking-page .hero-content {
    padding-top: 118px;
    padding-bottom: 54px;
  }
  .newsletter-panel,
  .wheel-panel,
  .chat-panel {
    max-height: calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }
}

/* Dinamikus viewport és notch kezelés iOS/Android böngészősávok mellett. */
.menu-drawer {
  height: 100svh;
  height: 100dvh;
}
.newsletter-panel,
.wheel-panel,
.chat-panel,
.cookie-consent {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* Érintőkijelzőn nincsenek beragadó hover-effektek, a mozgás mégis megmarad. */
@media (hover: none), (pointer: coarse) {
  .js .reveal { filter: none; }
  .ticket-card-v72:hover,
  .pass-type-guide-v72 article:hover,
  .booking-teacher-card:hover,
  .teacher-card:hover,
  .studio-card:hover,
  .service-card:hover,
  .booking-teacher-card:hover img,
  .teacher-card:hover img,
  .studio-card:hover img,
  .image-card:hover img {
    transform: none;
    filter: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .js .reveal,
  .js .reveal.is-visible {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ===== V75 – teljes foglalás/berletek finomjavítás ===== */

/* 1) A jobb alsó hírlevél gomb legyen egységesebb és ne csússzon el. */
.booking-page .newsletter-widget {
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
}
@media (max-width: 620px) {
  .booking-page .newsletter-widget {
    right: max(82px, calc(82px + env(safe-area-inset-right)));
    bottom: max(12px, env(safe-area-inset-bottom));
  }
}

/* 2) Jegykártyák – összkép tisztítása, jobb egységesség. */
.ticket-grid-v72 {
  gap: clamp(18px, 2vw, 26px);
}
.ticket-card-v72 {
  min-height: 446px;
  border-radius: 26px;
  border-color: rgba(120,147,127,.17);
  box-shadow: 0 20px 56px rgba(42,48,40,.08);
}
.ticket-card-v72:hover {
  box-shadow: 0 26px 72px rgba(42,48,40,.13);
}

/* Bal felső organikus kör – jobban látható mozgás, de elegáns marad. */
.ticket-orb-v74 {
  width: 46px;
  height: 46px;
  margin-bottom: 20px;
  animation: organicTurnV75 7.6s ease-in-out infinite alternate;
}
.ticket-orb-v74::after {
  animation: orbDotFloatV75 4.2s ease-in-out infinite;
}

/* Jobb felső díszkörök – egyértelműen animáltak. */
.ticket-card-v72::before {
  animation: ticketPearlFloatV75 4.6s ease-in-out infinite;
}
.ticket-card-v72::after {
  animation: ticketHaloDriftV75 8s ease-in-out infinite;
}

/* 3) Sötét kártya helyreállítása – a V74 felülírás miatt kifehéredett. */
.ticket-card-v72.ticket-card-dark-v72 {
  background: linear-gradient(180deg, rgba(58,68,56,.98), rgba(48,58,49,.99)) !important;
  border-color: rgba(58,68,56,.98) !important;
  color: #fff;
}
.ticket-card-v72.ticket-card-dark-v72::after {
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,.14), rgba(255,255,255,.06) 56%, rgba(255,255,255,.02) 76%);
}
.ticket-card-v72.ticket-card-dark-v72::before {
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,.92), rgba(242,231,218,.88));
  box-shadow: 0 0 0 8px rgba(255,255,255,.06);
}
.ticket-card-v72.ticket-card-dark-v72 .price-kicker {
  color: rgba(255,255,255,.68);
}
.ticket-card-v72.ticket-card-dark-v72 h3,
.ticket-card-v72.ticket-card-dark-v72 .ticket-price-v72 strong,
.ticket-card-v72.ticket-card-dark-v72 .price-link {
  color: #fff;
}
.ticket-card-v72.ticket-card-dark-v72 > p:not(.price-kicker):not(.ticket-price-v72),
.ticket-card-v72.ticket-card-dark-v72 .ticket-price-v72 span {
  color: rgba(255,255,255,.78);
}
.ticket-card-v72.ticket-card-dark-v72 .price-link {
  border-color: rgba(255,255,255,.22);
  background: rgba(255,255,255,.04);
}
.ticket-card-v72.ticket-card-dark-v72 .price-link:hover {
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.32);
}
.ticket-card-v72.ticket-card-dark-v72 .ticket-orb-v74 {
  border-color: rgba(255,255,255,.22);
  background: radial-gradient(circle at 35% 32%, rgba(255,255,255,.28), rgba(255,255,255,.06));
  box-shadow: inset 0 0 0 8px rgba(255,255,255,.04), 0 8px 18px rgba(0,0,0,.12);
}
.ticket-card-v72.ticket-card-dark-v72 .ticket-orb-v74::after {
  background: #f2e7da;
}

/* 4) Tipográfia / arányok – professzionálisabb vizuális ritmus. */
.ticket-card-v72 .price-kicker {
  letter-spacing: .18em;
  margin-bottom: 6px;
}
.ticket-card-v72 h3 {
  margin-bottom: 12px;
}
.ticket-price-v72 {
  margin: 14px 0 18px;
}
.ticket-card-v72 > p:not(.price-kicker):not(.ticket-price-v72) {
  max-width: 29ch;
}

/* 5) Mobil finomhangolás. */
@media (max-width: 1080px) {
  .ticket-card-v72 {
    min-height: 418px;
  }
}
@media (max-width: 620px) {
  .ticket-card-v72 {
    min-height: 0;
    padding: 24px 20px;
    border-radius: 22px;
  }
  .ticket-orb-v74 {
    width: 42px;
    height: 42px;
    margin-bottom: 16px;
  }
  .ticket-card-v72::before {
    right: 16px;
    top: 16px;
  }
  .ticket-card-v72::after {
    right: -38px;
    top: -38px;
    width: 100px;
    height: 100px;
  }
}

@keyframes organicTurnV75 {
  0% { transform: translate3d(0,0,0) rotate(-3deg) scale(1); border-radius:50% 46% 52% 48%; }
  50% { transform: translate3d(2px,-3px,0) rotate(7deg) scale(1.03); border-radius:46% 52% 48% 54%; }
  100% { transform: translate3d(-2px,2px,0) rotate(-7deg) scale(.98); border-radius:54% 48% 50% 46%; }
}
@keyframes orbDotFloatV75 {
  0%,100% { transform: translate3d(0,0,0); }
  50% { transform: translate3d(-2px,2px,0); }
}
@keyframes ticketPearlFloatV75 {
  0%,100% { transform: translate3d(0,0,0) scale(1); }
  50% { transform: translate3d(-3px,4px,0) scale(1.06); }
}
@keyframes ticketHaloDriftV75 {
  0%,100% { transform: translate3d(0,0,0) scale(1); }
  30% { transform: translate3d(-6px,6px,0) scale(1.05); }
  70% { transform: translate3d(4px,-2px,0) scale(.98); }
}

@media (prefers-reduced-motion: reduce) {
  .ticket-orb-v74,
  .ticket-orb-v74::after,
  .ticket-card-v72::before,
  .ticket-card-v72::after {
    animation: none !important;
  }
}


/* ===== V77 FINAL – egységes, prémium, reszponzív végső finomhangolás ===== */

/* Foglalás oldali lebegő elemek: desktopon egységes, mobilon ütközésmentes. */
.booking-page .newsletter-widget {
  right: max(88px, calc(88px + env(safe-area-inset-right)));
  bottom: max(18px, env(safe-area-inset-bottom));
}
@media (max-width: 620px) {
  .booking-page .newsletter-widget {
    right: max(82px, calc(82px + env(safe-area-inset-right)));
    bottom: max(82px, calc(74px + env(safe-area-inset-bottom)));
  }
}

/* Minden órajegy-kártya azonos, világos prémium stílust kap. */
.ticket-card-v72,
.ticket-card-v72.ticket-card-dark-v72 {
  background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(248,245,239,.98) 100%) !important;
  color: var(--forest) !important;
  border: 1px solid rgba(120,147,127,.18) !important;
  border-radius: 26px;
  box-shadow: 0 20px 56px rgba(42,48,40,.08);
}
.ticket-card-v72:hover,
.ticket-card-v72.ticket-card-dark-v72:hover {
  border-color: rgba(120,147,127,.42) !important;
  box-shadow: 0 26px 68px rgba(42,48,40,.13);
}
.ticket-card-v72 h3,
.ticket-card-v72.ticket-card-dark-v72 h3,
.ticket-card-v72 .ticket-price-v72 strong,
.ticket-card-v72.ticket-card-dark-v72 .ticket-price-v72 strong,
.ticket-card-v72 .price-link,
.ticket-card-v72.ticket-card-dark-v72 .price-link {
  color: var(--forest) !important;
}
.ticket-card-v72 .price-kicker,
.ticket-card-v72.ticket-card-dark-v72 .price-kicker {
  color: var(--sage-deep) !important;
}
.ticket-card-v72 > p:not(.price-kicker):not(.ticket-price-v72),
.ticket-card-v72.ticket-card-dark-v72 > p:not(.price-kicker):not(.ticket-price-v72),
.ticket-card-v72 .ticket-price-v72 span,
.ticket-card-v72.ticket-card-dark-v72 .ticket-price-v72 span {
  color: var(--muted) !important;
}
.ticket-card-v72 .price-link,
.ticket-card-v72.ticket-card-dark-v72 .price-link {
  border-color: rgba(120,147,127,.18) !important;
  background: transparent !important;
}
.ticket-card-v72 .ticket-orb-v74,
.ticket-card-v72.ticket-card-dark-v72 .ticket-orb-v74 {
  border-color: rgba(120,147,127,.28) !important;
  background: radial-gradient(circle at 35% 32%, rgba(255,255,255,.98), rgba(222,234,225,.74)) !important;
  box-shadow: inset 0 0 0 8px rgba(255,255,255,.42), 0 8px 18px rgba(120,147,127,.09) !important;
}
.ticket-card-v72 .ticket-orb-v74::after,
.ticket-card-v72.ticket-card-dark-v72 .ticket-orb-v74::after {
  background: var(--sage) !important;
}
.ticket-card-v72.ticket-card-dark-v72::after {
  background: radial-gradient(circle at 35% 35%, rgba(186,211,191,.48), rgba(120,147,127,.12) 58%, rgba(120,147,127,.04) 76%) !important;
}
.ticket-card-v72.ticket-card-dark-v72::before {
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,.72), rgba(220,194,166,.92)) !important;
  box-shadow: 0 0 0 8px rgba(220,194,166,.08) !important;
}

/* Letisztultabb bérletblokk és egységesebb vizuális ritmus. */
.pass-type-guide-v72 article,
.pass-accordion-v72,
.booking-teacher-card-detailed-v73,
.gift-card-v72 {
  transition: transform .32s ease, box-shadow .32s ease, border-color .32s ease;
}
.pass-type-guide-v72 article:hover,
.booking-teacher-card-detailed-v73:hover {
  transform: translateY(-4px);
}
.pass-accordion-trigger-v72 small {
  letter-spacing: .09em;
}
.pass-accordion-panel-v72 {
  background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(250,248,244,.88));
}

/* A mozgó képsáv ne legyen túl nagy, de maradjon látványos. */
.image-marquee-v73 .image-marquee-group img {
  aspect-ratio: 10 / 7;
  object-fit: cover;
}

/* Keskeny mobilon tisztább tipográfia és biztos vízszintes illeszkedés. */
@media (max-width: 620px) {
  .booking-jump-nav-inner {
    gap: 4px;
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .booking-jump-nav-inner::-webkit-scrollbar { display: none; }
  .booking-jump-nav a { white-space: nowrap; }
  .pass-accordion-trigger-v72 { padding-inline: 18px; }
  .pass-row-v72 { min-width: 0; }
  .booking-teacher-grid-v73 .booking-teacher-card-detailed-v73 {
    min-height: 176px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pass-type-guide-v72 article,
  .booking-teacher-card-detailed-v73,
  .ticket-card-v72 {
    transition: none !important;
  }
}

/* ===== V79 FINAL – booking hero exact sizing and cross-page consistency ===== */
.booking-hero-final-v79 {
  min-height: clamp(520px, 61vh, 650px);
}
.booking-hero-final-v79 .hero-content {
  max-width: 850px;
  padding-top: 62px;
  padding-bottom: 118px;
}
.booking-hero-final-v79 .hero-description {
  max-width: 680px;
}
.booking-hero-final-v79 .hero-nav {
  bottom: 28px;
}
@media (max-width: 980px) {
  .booking-hero-final-v79 {
    min-height: 610px;
  }
}
@media (max-width: 760px) {
  .booking-hero-final-v79 {
    min-height: 570px;
  }
  .booking-hero-final-v79 .hero-content {
    padding-top: 48px;
    padding-bottom: 124px;
  }
}
@media (max-width: 620px) {
  .booking-hero-final-v79 {
    min-height: 540px;
  }
}


/* ===== V81 FINAL – unified heroes, clean knowledge menu, Tudástár, occasional offer ===== */

/* Egységes subpage hero. A főoldal hero-ja szándékosan marad nagyobb. */
.hero.hero-unified {
  min-height: clamp(500px, 58vh, 620px) !important;
}
.hero.hero-unified .hero-content {
  max-width: 900px;
  padding-top: 62px;
  padding-bottom: 112px;
}
.hero.hero-unified .hero-nav { bottom: 26px; }
.hero.hero-unified h1 { font-size: clamp(46px, 6.3vw, 76px); line-height: .98; }
@media (max-width: 980px) {
  .hero.hero-unified { min-height: 560px !important; }
}
@media (max-width: 760px) {
  .hero.hero-unified { min-height: 520px !important; }
  .hero.hero-unified .hero-content { padding: 48px 22px 132px; }
  .hero.hero-unified h1 { font-size: clamp(40px, 11vw, 58px); }
}
@media (max-width: 460px) {
  .hero.hero-unified { min-height: 500px !important; }
}

/* Tudástár a jobb oldali menüben – látható címek, tiszta egyoszlopos hierarchia. */
.menu-knowledge {
  border-bottom: 1px solid var(--line);
  opacity: 0;
  transform: translate3d(22px,0,0);
  transition: opacity .34s ease, transform .48s cubic-bezier(.16,1,.3,1);
}
.menu-drawer.is-open .menu-knowledge { opacity: 1; transform: translate3d(0,0,0); transition-delay: .19s; }
.menu-knowledge summary {
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  list-style: none;
  cursor: pointer;
  font-family: var(--serif);
  font-size: 30px;
  line-height: 1.1;
  transition: color .25s ease, padding .25s ease;
}
.menu-knowledge summary::-webkit-details-marker { display: none; }
.menu-knowledge summary:hover { color: var(--sage-deep); padding-left: 8px; }
.menu-knowledge-symbol {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  font-family: var(--sans);
  font-size: 18px;
  color: var(--muted);
  transition: transform .28s ease, background .28s ease, color .28s ease;
}
.menu-knowledge[open] .menu-knowledge-symbol { transform: rotate(45deg); background: var(--forest); color: #fff; }
.menu-knowledge-content {
  display: grid;
  grid-template-columns: 1fr;
  padding: 2px 0 14px 16px;
}
.menu-links .menu-knowledge-content a {
  min-height: 38px;
  padding: 8px 0;
  border-bottom: 0;
  color: var(--muted);
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
}
.menu-links .menu-knowledge-content a::after { content: "→"; font-size: 12px; }
.menu-links .menu-knowledge-content a:first-child {
  color: var(--forest);
  font-weight: 700;
}
@media (max-width: 620px) {
  .menu-knowledge summary { font-size: clamp(22px,7vw,27px); }
  .menu-knowledge-content { padding-left: 8px; }
  .menu-links .menu-knowledge-content a { font-size: 12px; min-height: 36px; }
}

/* A felesleges dekoratív számozások nem jelennek meg. */
.accordion-number { display: none !important; }
.accordion-trigger { grid-template-columns: minmax(0,1fr) auto !important; }
.ticket-icon-v72 { font-size: 0 !important; color: transparent !important; }

/* Alkalmanként megjelenő kedvezmény. A Brevo hírlevélablak külön és változatlan marad. */
.welcome-offer[hidden] { display: none !important; }
.welcome-offer { position: fixed; inset: 0; z-index: 1510; }
.welcome-offer-backdrop {
  position: absolute; inset: 0;
  background: rgba(28,31,27,.45);
  opacity: 0; visibility: hidden;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  transition: opacity .28s ease, visibility .28s ease;
}
.welcome-offer-backdrop.is-open { opacity: 1; visibility: visible; }
.welcome-offer-panel {
  position: absolute;
  left: 50%; top: 50%;
  width: min(92vw, 520px);
  max-height: min(720px, calc(100dvh - 28px));
  overflow: hidden auto;
  border: 1px solid rgba(120,147,127,.18);
  border-radius: 30px;
  background: #fffdf9;
  box-shadow: 0 36px 110px rgba(20,24,20,.28);
  opacity: 0; visibility: hidden;
  transform: translate(-50%,-46%) scale(.96);
  transition: opacity .3s ease, visibility .3s ease, transform .4s cubic-bezier(.16,1,.3,1);
}
.welcome-offer-panel.is-open { opacity: 1; visibility: visible; transform: translate(-50%,-50%) scale(1); }
.welcome-offer-inner { position: relative; z-index: 2; padding: 48px 44px 38px; text-align: center; }
.welcome-offer-close {
  position: sticky; z-index: 4; top: 12px; float: right;
  width: 42px; height: 42px; margin: 12px 12px -54px 0;
  display: grid; place-items: center;
  border: 1px solid rgba(2,2,2,.09); border-radius: 50%;
  background: rgba(255,255,255,.9); color: var(--ink);
  font-size: 24px; line-height: 1; cursor: pointer;
  backdrop-filter: blur(10px);
}
.welcome-offer-shape { position: absolute; border-radius: 50%; pointer-events: none; }
.welcome-offer-shape-one { width: 190px; height: 190px; right: -72px; top: -92px; background: rgba(220,194,166,.43); animation: welcomeShapeV81 9s ease-in-out infinite alternate; }
.welcome-offer-shape-two { width: 130px; height: 130px; left: -62px; bottom: -64px; background: rgba(120,147,127,.14); animation: welcomeShapeV81 11s ease-in-out infinite alternate-reverse; }
.welcome-offer-eyebrow { margin: 0 0 12px; color: var(--sage-deep); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.welcome-offer-value { margin: 0 0 12px; font-family: var(--serif); color: var(--forest); font-size: 30px; line-height: 1; }
.welcome-offer-value span { font-size: 72px; letter-spacing: -.04em; }
.welcome-offer-panel h2 { max-width: 430px; margin: 0 auto 16px; font-size: clamp(38px,6vw,54px); line-height: .98; }
.welcome-offer-panel p:not(.welcome-offer-eyebrow):not(.welcome-offer-value) { max-width: 420px; margin: 0 auto 25px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.welcome-offer-cta {
  width: 100%; min-height: 56px; padding: 0 24px;
  display: flex; align-items: center; justify-content: center; gap: 12px;
  border: 0; border-radius: 999px;
  background: var(--sage); color: #fff;
  font: 700 14px var(--sans); cursor: pointer;
  box-shadow: 0 16px 36px rgba(74,104,82,.24);
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.welcome-offer-cta:hover { transform: translateY(-2px); background: var(--sage-deep); box-shadow: 0 20px 44px rgba(74,104,82,.30); }
.welcome-offer-later { margin: 13px auto 8px; padding: 5px; border: 0; background: transparent; color: var(--muted); font: 500 11px var(--sans); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.welcome-offer-panel small { display: block; color: #928d84; font-size: 9px; line-height: 1.5; }
html.welcome-offer-scroll-locked, body.welcome-offer-open { overflow: hidden !important; }
body.welcome-offer-open .newsletter-widget, body.welcome-offer-open .wheel-widget, body.welcome-offer-open .chat-widget { opacity: 0; pointer-events: none; }
@keyframes welcomeShapeV81 { from { transform: translate3d(0,0,0) scale(1); } to { transform: translate3d(10px,8px,0) scale(1.07); } }
@media (max-width: 620px) {
  .welcome-offer-panel { width: calc(100% - 18px); border-radius: 24px; }
  .welcome-offer-inner { padding: 42px 22px 26px; }
  .welcome-offer-value span { font-size: 62px; }
  .welcome-offer-panel h2 { font-size: 39px; }
}

/* Tudástár index és cikkoldalak. */
.knowledge-index-hero .hero-media img { object-position: center 46%; }
.knowledge-article-hero .hero-media::after,
.knowledge-index-hero .hero-media::after { background: linear-gradient(180deg,rgba(18,20,18,.30),rgba(18,20,18,.58)); }
.knowledge-article-hero .hero-content { max-width: 980px; }
.article-breadcrumb { display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 14px; color: rgba(255,255,255,.74); font-size: 11px; }
.article-breadcrumb a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.knowledge-index-section { background: #fffdf9; }
.knowledge-intro { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(300px,.9fr); gap: clamp(34px,6vw,90px); align-items: end; margin-bottom: 34px; }
.knowledge-intro > p { max-width: 580px; justify-self: end; color: var(--muted); font-size: 15px; line-height: 1.75; }
.knowledge-search { max-width: 760px; margin: 0 auto 42px; }
.knowledge-search > label { display: block; margin-bottom: 9px; color: var(--charcoal); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.knowledge-search > div { position: relative; }
.knowledge-search svg { position: absolute; left: 18px; top: 50%; width: 21px; height: 21px; transform: translateY(-50%); fill: none; stroke: var(--sage-deep); stroke-width: 1.7; stroke-linecap: round; }
.knowledge-search input { width: 100%; height: 58px; padding: 0 20px 0 52px; border: 1px solid rgba(120,147,127,.24); border-radius: 999px; background: #fff; color: var(--ink); font: 14px var(--sans); box-shadow: 0 14px 34px rgba(45,52,41,.06); outline: none; }
.knowledge-search input:focus { border-color: var(--sage); box-shadow: 0 0 0 4px rgba(120,147,127,.12), 0 14px 34px rgba(45,52,41,.06); }
.knowledge-search > p { margin: 12px 0 0; color: var(--muted); font-size: 12px; text-align: center; }
.knowledge-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.knowledge-grid-three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.knowledge-card { min-height: 250px; display: grid; grid-template-columns: minmax(170px,.72fr) minmax(0,1.28fr); overflow: hidden; border: 1px solid rgba(120,147,127,.16); border-radius: 25px; background: #fff; box-shadow: 0 18px 52px rgba(42,48,40,.07); transition: transform .32s ease, box-shadow .32s ease, border-color .32s ease; }
.knowledge-card:hover { transform: translateY(-5px); border-color: rgba(120,147,127,.38); box-shadow: 0 26px 68px rgba(42,48,40,.12); }
.knowledge-card > img { width: 100%; height: 100%; min-height: 250px; object-fit: cover; transition: transform .55s ease; }
.knowledge-card:hover > img { transform: scale(1.035); }
.knowledge-card-content, .knowledge-card > span { min-width: 0; padding: 27px 25px; display: flex; flex-direction: column; align-items: flex-start; }
.knowledge-card small { color: var(--sage-deep); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.knowledge-card strong { margin: 11px 0 10px; font-family: var(--serif); font-size: clamp(25px,2.7vw,35px); line-height: 1.02; font-weight: 500; }
.knowledge-card p { margin: 0 0 20px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.knowledge-card em { margin-top: auto; color: var(--forest); font-size: 11px; font-style: normal; font-weight: 700; }
.knowledge-card-small { min-height: 310px; grid-template-columns: 1fr; }
.knowledge-card-small > img { min-height: 150px; height: 150px; }
.knowledge-card-small > span { padding: 20px; }
.knowledge-card-small strong { font-size: 27px; }
.knowledge-cta-band { padding: clamp(50px,6vw,86px) 0; background: var(--forest); color: #fff; }
.knowledge-cta-inner { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 40px; }
.knowledge-cta-inner h2 { color: #fff; }
.knowledge-cta-inner p:not(.eyebrow) { color: rgba(255,255,255,.72); }
.article-page { padding: clamp(70px,8vw,118px) 0; background: #fffdf9; }
.article-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,340px); gap: clamp(48px,7vw,104px); align-items: start; }
.article-main { max-width: 790px; }
.article-lead { margin: 0 0 52px; font-family: var(--serif); font-size: clamp(27px,3vw,39px); line-height: 1.25; color: var(--forest); }
.article-main > section { margin: 0 0 48px; }
.article-main h2 { margin-bottom: 17px; font-size: clamp(31px,3.7vw,47px); }
.article-main p { color: #5f625b; font-size: 15px; line-height: 1.85; }
.article-main p + p { margin-top: 16px; }
.article-aside { position: sticky; top: calc(var(--announcement-h) + var(--header-h) + 24px); }
.article-aside-card { padding: 30px 26px; border: 1px solid rgba(120,147,127,.18); border-radius: 24px; background: linear-gradient(145deg,#f0eee7,#fffdf9); box-shadow: 0 20px 60px rgba(45,52,41,.09); }
.article-aside-card h2 { font-size: 35px; }
.article-aside-card p { color: var(--muted); font-size: 13px; line-height: 1.7; }
.article-aside-card .button-reservline, .article-aside-card .btn { width: 100%; margin-top: 12px; justify-content: center; }
.article-checklist { padding: clamp(28px,4vw,44px); border: 1px solid rgba(120,147,127,.18); border-radius: 25px; background: #f1f3ef; }
.article-checklist ul { display: grid; gap: 12px; margin: 23px 0 0; padding: 0; list-style: none; }
.article-checklist li { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: 12px; align-items: start; color: #4f554d; font-size: 13px; line-height: 1.6; }
.article-checklist li span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--sage); color: #fff; font-size: 11px; }
.article-faq-item { border-bottom: 1px solid var(--line); }
.article-faq-item summary { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 18px; cursor: pointer; list-style: none; font-family: var(--serif); font-size: 24px; }
.article-faq-item summary::-webkit-details-marker { display: none; }
.article-faq-item summary span { transition: transform .25s ease; }
.article-faq-item[open] summary span { transform: rotate(45deg); }
.article-faq-item p { padding: 0 0 22px; margin: 0; }
.article-note { margin-top: 52px !important; padding-top: 22px; border-top: 1px solid var(--line); color: #8c887f !important; font-size: 11px !important; }
.related-knowledge { padding-block: clamp(64px,7vw,100px); }
@media (max-width: 980px) {
  .knowledge-grid { grid-template-columns: 1fr; }
  .knowledge-grid-three { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .article-layout { grid-template-columns: 1fr; }
  .article-main { max-width: none; }
  .article-aside { position: static; }
  .article-aside-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px 22px; align-items: center; }
  .article-aside-card .eyebrow, .article-aside-card h2, .article-aside-card p { grid-column: 1; }
  .article-aside-card .button-reservline, .article-aside-card .btn { grid-column: 2; min-width: 200px; margin: 0; }
}
@media (max-width: 760px) {
  .knowledge-intro { grid-template-columns: 1fr; gap: 18px; }
  .knowledge-intro > p { justify-self: start; }
  .knowledge-card { grid-template-columns: 112px minmax(0,1fr); min-height: 205px; border-radius: 20px; }
  .knowledge-card > img { min-height: 205px; }
  .knowledge-card-content, .knowledge-card > span { padding: 19px 17px; }
  .knowledge-card strong { font-size: 25px; }
  .knowledge-card p { display: none; }
  .knowledge-grid-three { grid-template-columns: 1fr; }
  .knowledge-card-small { grid-template-columns: 100px minmax(0,1fr); min-height: 150px; }
  .knowledge-card-small > img { width: 100px; height: 100%; min-height: 150px; }
  .knowledge-cta-inner { grid-template-columns: 1fr; }
  .knowledge-cta-inner .button-reservline { width: 100%; justify-content: center; }
  .article-aside-card { display: block; }
  .article-aside-card .button-reservline, .article-aside-card .btn { width: 100%; margin-top: 12px; }
}
@media (max-width: 420px) {
  .knowledge-card { grid-template-columns: 96px minmax(0,1fr); }
  .knowledge-card > img { min-height: 190px; }
  .knowledge-card strong { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .welcome-offer-shape, .knowledge-card, .knowledge-card > img { animation: none !important; transition: none !important; }
}


/* ===== V82 Tudástár + popup polish ===== */
.welcome-offer-panel{max-height:calc(100dvh - 20px)!important;overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:none!important}.welcome-offer-panel::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.welcome-offer-inner{padding:38px 40px 28px!important}
.welcome-offer-close{position:absolute!important;right:12px;top:12px;float:none!important;margin:0!important}
.welcome-offer-value{margin-bottom:8px!important}.welcome-offer-value span{font-size:64px!important}
.welcome-offer-panel h2{font-size:clamp(34px,5vw,48px)!important;margin-bottom:12px!important}
.welcome-offer-panel p:not(.welcome-offer-eyebrow):not(.welcome-offer-value){margin-bottom:18px!important;line-height:1.58!important}
@media(max-height:680px){.welcome-offer-inner{padding:30px 34px 20px!important}.welcome-offer-value span{font-size:52px!important}.welcome-offer-panel h2{font-size:34px!important}.welcome-offer-later{margin-top:8px!important}.welcome-offer-panel small{display:none}}
@media(max-width:620px){.welcome-offer-panel{width:calc(100% - 22px)!important}.welcome-offer-inner{padding:38px 20px 23px!important}.welcome-offer-value span{font-size:54px!important}}
.knowledge-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.knowledge-card{min-height:100%;display:flex;flex-direction:column}.knowledge-card-body{flex:1}.knowledge-card-body>span:not(.knowledge-card-meta):not(.knowledge-card-link){line-height:1.62}
@media(max-width:980px){.knowledge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.knowledge-grid{grid-template-columns:1fr}}


/* ===== V83: popup, Tudástár és intelligens keresés ===== */
.welcome-offer-panel{
  overflow:hidden!important;
  max-height:calc(100dvh - 18px)!important;
  overscroll-behavior:contain;
}
.welcome-offer-inner{
  max-height:calc(100dvh - 18px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.welcome-offer-inner::-webkit-scrollbar{display:none;width:0;height:0}
@media(max-height:720px){
  .welcome-offer-inner{padding:28px 34px 20px!important}
  .welcome-offer-value span{font-size:50px!important}
  .welcome-offer-panel h2{font-size:32px!important;line-height:1.02!important}
  .welcome-offer-panel p:not(.welcome-offer-eyebrow):not(.welcome-offer-value){font-size:12px!important;line-height:1.5!important;margin-bottom:14px!important}
  .welcome-offer-cta{min-height:50px}
}
@media(max-width:620px){
  .welcome-offer-inner{max-height:calc(100dvh - 14px);padding-top:34px!important}
  .welcome-offer-close{right:9px!important;top:9px!important}
}
.knowledge-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;max-width:1040px;margin:-18px auto 20px}
.knowledge-filters button{min-height:40px;padding:0 17px;border:1px solid rgba(120,147,127,.22);border-radius:999px;background:#fff;color:var(--forest);font:600 11px var(--sans);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.knowledge-filters button:hover{transform:translateY(-1px);border-color:rgba(120,147,127,.5)}
.knowledge-filters button[aria-pressed="true"]{background:var(--forest);border-color:var(--forest);color:#fff}
.knowledge-result-count{margin:0 auto 24px;color:var(--muted);font-size:11px;text-align:center;min-height:18px}
.knowledge-card[hidden]{display:none!important}
.knowledge-card-body>span:not(.knowledge-card-meta):not(.knowledge-card-link){color:var(--muted);font-size:12px}
.chat-source-line{display:inline-block;margin-top:4px}
.chat-source-line a{font-weight:700;text-decoration:underline;text-underline-offset:3px}
@media(max-width:620px){
  .knowledge-filters{justify-content:flex-start;margin-top:-12px;gap:7px}
  .knowledge-filters button{min-height:38px;padding:0 13px;font-size:10px}
}


/* ===== V83 FINAL: scrollbar nélküli, kompakt üdvözlő ajánlat ===== */
.welcome-offer-panel{overflow:hidden!important}
.welcome-offer-inner{max-height:none!important;overflow:visible!important}
@media(max-height:560px){
 .welcome-offer-panel{width:min(94vw,480px)!important}
 .welcome-offer-inner{padding:22px 26px 16px!important}
 .welcome-offer-eyebrow{margin-bottom:5px!important}
 .welcome-offer-value{margin-bottom:4px!important}.welcome-offer-value span{font-size:42px!important}
 .welcome-offer-panel h2{font-size:27px!important;margin-bottom:8px!important}
 .welcome-offer-panel p:not(.welcome-offer-eyebrow):not(.welcome-offer-value){font-size:11px!important;line-height:1.42!important;margin-bottom:10px!important}
 .welcome-offer-cta{min-height:44px!important}
 .welcome-offer-later{margin:6px auto 3px!important}
 .welcome-offer-panel small{display:none!important}
}

/* ===== V83 FINAL: látható belső görgetősávok elrejtése ===== */
.review-track,
.program-strip,
.image-marquee,
.booking-jump-nav-inner,
.wheel-panel,
.chat-messages,
.chat-quick {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.review-track::-webkit-scrollbar,
.program-strip::-webkit-scrollbar,
.image-marquee::-webkit-scrollbar,
.booking-jump-nav-inner::-webkit-scrollbar,
.wheel-panel::-webkit-scrollbar,
.chat-messages::-webkit-scrollbar,
.chat-quick::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}


/* ===== Noémi / kapcsolat finomhangolás ===== */
.contact-location-link {
  color: inherit;
  text-decoration: none;
  display: inline-block;
  transition: opacity .22s ease, transform .22s ease;
}
.contact-location-link:hover { opacity: .72; transform: translateX(2px); }
.contact-location-link:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; border-radius: 4px; }
.teacher-card-media img[src="cighardt-noemi.webp"],
.teacher-profile-photo img[src="cighardt-noemi.webp"],
.hero-media.teacher-hero-noemi img { object-position: 42% 45%; }
@media (max-width: 620px) {
  .teacher-card-media img[src="cighardt-noemi.webp"],
  .teacher-profile-photo img[src="cighardt-noemi.webp"],
  .hero-media.teacher-hero-noemi img { object-position: 42% 43%; }
}
/* ===== END Noémi / kapcsolat finomhangolás ===== */

/* ===== V85 UX: hero only on homepage + clear subpage navigation ===== */
.section-nav-v85 {
  position: sticky;
  top: calc(var(--announcement-h) + var(--header-h));
  z-index: 930;
  width: 100%;
  padding: 10px max(var(--gutter), calc((100vw - var(--content)) / 2 + var(--gutter)));
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  background: rgba(248,247,244,.94);
  border-bottom: 1px solid rgba(45,52,41,.10);
  backdrop-filter: blur(14px) saturate(1.08);
  -webkit-backdrop-filter: blur(14px) saturate(1.08);
  box-shadow: 0 8px 24px rgba(45,52,41,.035);
}
.section-nav-v85 a {
  min-height: 38px;
  padding: 0 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(78,91,81,.16);
  border-radius: 11px;
  background: rgba(255,255,255,.72);
  color: #4e5b51;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .035em;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .22s ease, background .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.section-nav-v85 a:hover,
.section-nav-v85 a:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(120,147,127,.42);
  background: #fff;
  color: #2d3429;
}
.section-nav-v85 a.is-active,
.section-nav-v85 a[aria-current="page"] {
  border-color: #78937f;
  background: #78937f;
  color: #fff;
  box-shadow: 0 8px 18px rgba(120,147,127,.22);
}
.subpage-shell-v85 {
  position: relative;
  background:
    radial-gradient(circle at 15% 15%, rgba(244,233,232,.78), transparent 34%),
    linear-gradient(180deg,#fbfaf7 0%,#f5f1eb 100%);
  border-bottom: 1px solid rgba(45,52,41,.08);
}
.subpage-intro-v85 {
  padding-top: clamp(44px,6vw,82px);
  padding-bottom: clamp(42px,5.5vw,76px);
  text-align: center;
}
.subpage-kicker-v85 {
  margin: 0 0 14px;
  color: #78937f;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.subpage-intro-v85 h1 {
  max-width: 980px;
  margin: 0 auto;
  color: #2d3429;
  font-size: clamp(38px,5.1vw,68px);
  line-height: .98;
  text-wrap: balance;
}
.subpage-description-v85 {
  max-width: 760px;
  margin: 20px auto 0;
  color: #5f675f;
  font-size: clamp(15px,1.4vw,18px);
  line-height: 1.7;
  text-wrap: balance;
}
/* Make current location unmistakable in the + drawer as well. */
.menu-links > a.is-active,
.menu-links > a[aria-current="page"] {
  padding-left: 10px;
  color: #4e5b51;
  background: linear-gradient(90deg, rgba(120,147,127,.12), transparent 82%);
  box-shadow: inset 3px 0 0 #78937f;
}
.menu-knowledge.is-current-section > summary {
  color: #4e5b51;
  background: linear-gradient(90deg, rgba(120,147,127,.12), transparent 82%);
  box-shadow: inset 3px 0 0 #78937f;
}

/* Homepage: navigation remains obviously interactive; non-link labels must not imitate buttons. */
.hero-nav-home-v85 a {
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(0,0,0,.07);
}
.hero .hero-label,
.hero .hero-badge,
.hero .trust-pill,
.hero .proof-pill {
  border: 0 !important;
  border-radius: 6px !important;
  background: rgba(255,255,255,.10) !important;
  box-shadow: none !important;
  color: rgba(255,255,255,.82) !important;
  cursor: default !important;
  pointer-events: none !important;
}
@media (max-width: 900px) {
  .section-nav-v85 {
    position: relative;
    top: auto;
    padding: 10px 16px 12px;
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 6px;
    background: #f8f6f1;
  }
  .section-nav-v85 a {
    min-width: 0;
    min-height: 42px;
    padding: 7px 8px;
    white-space: normal;
    text-align: center;
    line-height: 1.2;
  }
  .subpage-intro-v85 { padding-top: 38px; padding-bottom: 44px; }
}
@media (max-width: 620px) {
  .section-nav-v85 {
    grid-template-columns: repeat(3,minmax(0,1fr));
    padding-inline: 10px;
  }
  .section-nav-v85 a { font-size: 10px; letter-spacing: .015em; }
  .section-nav-v85 a.is-active,
  .section-nav-v85 a[aria-current="page"] { box-shadow: 0 5px 12px rgba(120,147,127,.18); }
  .subpage-intro-v85 { padding: 32px 22px 38px; }
  .subpage-intro-v85 h1 { font-size: clamp(32px,10vw,46px); line-height: 1.02; }
  .subpage-description-v85 { margin-top: 15px; font-size: 14px; line-height: 1.6; }
  .subpage-kicker-v85 { margin-bottom: 10px; font-size: 10px; }
}
@media (max-width: 370px) {
  .section-nav-v85 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .section-nav-v85 a { transition: none !important; }
}
/* ===== END V85 UX ===== */

/* V87 – új oktatói profilok és kártyák */
.teacher-placeholder-photo img{object-fit:cover}.teacher-card-media img[src*="molnar-dora-petra"],.teacher-card-media img[src*="homoky-alexandra"],.teacher-card-media img[src*="kovacs-beatrix-edit"]{object-fit:cover}


/* ===== V89.1 PREMIUM TEACHER CARD ACTIONS ===== */
.teacher-card-body{display:flex;flex-direction:column;height:100%;}
.teacher-card-actions{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:9px;padding-top:22px;}
.teacher-card-actions .muted{flex:0 0 100%;margin:0 0 8px;color:rgba(255,255,255,.68);}
.teacher-card-actions .teacher-profile-cta,
.teacher-card-actions .btn.btn-light{
  flex:0 0 100%;width:100%;min-height:48px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;
  border:1px solid rgba(255,255,255,.18);border-radius:15px;background:linear-gradient(135deg,#f4e9e8 0%,#efd5ca 52%,#e7c6b7 100%);
  color:#2d3429;font-size:12px;font-weight:700;letter-spacing:.025em;box-shadow:0 12px 26px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.7);
  transition:transform .25s ease,box-shadow .25s ease,filter .25s ease;
}
.teacher-card-actions .teacher-profile-cta:hover,
.teacher-card-actions .btn.btn-light:hover{transform:translateY(-2px);box-shadow:0 17px 34px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.8);filter:saturate(1.04);}
.teacher-card-actions .teacher-profile-cta .cta-arrow,
.teacher-card-actions .btn.btn-light .cta-arrow{font-size:18px;font-weight:400;line-height:1;transition:transform .25s ease;}
.teacher-card-actions .teacher-profile-cta:hover .cta-arrow,
.teacher-card-actions .btn.btn-light:hover .cta-arrow{transform:translate(2px,-2px);}
.teacher-card-actions .teacher-social-link,
.teacher-card-actions>a:not(.btn):not(.teacher-profile-cta){
  display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border:1px solid rgba(255,255,255,.25);
  border-radius:999px;background:rgba(255,255,255,.055);color:rgba(255,255,255,.9);font-size:10.5px;font-weight:600;letter-spacing:.035em;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.teacher-card-actions .teacher-social-link:hover,
.teacher-card-actions>a:not(.btn):not(.teacher-profile-cta):hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.42);transform:translateY(-1px);}
@media(max-width:620px){
 .teacher-card-actions{gap:8px;padding-top:18px}.teacher-card-actions .teacher-profile-cta,.teacher-card-actions .btn.btn-light{min-height:50px;border-radius:14px;font-size:12.5px}
 .teacher-card-actions .teacher-social-link,.teacher-card-actions>a:not(.btn):not(.teacher-profile-cta){min-height:38px;padding-inline:13px;font-size:11px}
}
/* ===== END V89.1 ===== */


/* ===== SistersFlow MOM Park — Aerial Sisters visual parity layer ===== */

.brand-wordmark{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif);font-weight:400;color:var(--ink);font-size:28px;line-height:.72;letter-spacing:-.055em;white-space:nowrap}.brand-wordmark small{margin-top:8px;font-family:var(--sans);font-size:7px;line-height:1;letter-spacing:.22em;text-transform:uppercase;color:var(--sage-deep);font-weight:600}.site-header .brand-wordmark{min-width:118px}.menu-drawer-head .brand-wordmark{font-size:32px;align-items:flex-start}.menu-drawer-head .brand-wordmark small{font-size:8px}
.button-primary,.button-secondary,.button-dark{min-height:46px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:999px;font-family:var(--sans);font-size:13px;font-weight:600;line-height:1.2;transition:transform .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease}.button-primary,.button-dark{background:var(--forest);color:#fff;box-shadow:0 12px 30px rgba(45,52,41,.16)}.button-secondary{border-color:var(--line);background:#fff;color:var(--forest)}.button-primary:hover,.button-secondary:hover,.button-dark:hover{transform:translateY(-2px)}
.section-green{background:var(--forest);color:#fff}.section-green .lead,.section-green p{color:rgba(255,255,255,.82)}.section-green .eyebrow{color:rgba(255,255,255,.72)}.section-green h1,.section-green h2,.section-green h3{color:#fff}
.section-cta{margin-top:34px;text-align:center}.center{text-align:center}.full{width:100%}
.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:28px}.metric{padding:18px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.72);text-align:center}.metric strong{display:block;font-family:var(--serif);font-size:31px;font-weight:400;line-height:1;color:var(--forest)}.metric span{display:block;margin-top:8px;font-size:11px;color:var(--muted)}
.feature-grid,.benefit-grid,.audience-grid,.class-grid,.slot-grid,.schedule-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.feature-card,.benefit-card,.class-card,.slot,.schedule-card{padding:26px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-soft)}.feature-card .icon,.class-number{width:42px;height:42px;margin-bottom:18px;display:grid;place-items:center;border-radius:50%;background:var(--cream);font-size:12px;font-weight:700;color:var(--sage-deep)}.feature-list,.details-list,.profile-schedule{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}.feature-list li,.details-list li,.profile-schedule li{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:18px}.profile-schedule strong{color:var(--sage-deep)}
.teacher-toolbar{margin:0 0 28px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper-soft)}.teacher-filters{display:flex;flex-wrap:wrap;gap:8px}.teacher-filters button{min-height:40px;padding:0 15px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--forest);cursor:pointer;font-size:12px;font-weight:600}.teacher-filters button.is-active{background:var(--sage);border-color:var(--sage);color:#fff}.teacher-toolbar p{margin:12px 0 0;font-size:12px;color:var(--muted)}.teacher-favorite{position:absolute;z-index:3;top:14px;right:14px;width:42px;height:42px;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);cursor:pointer;font-size:20px;color:var(--forest);box-shadow:0 8px 24px rgba(0,0,0,.09)}.teacher-card{position:relative}.teacher-favorite.is-favorite{background:var(--sage);color:#fff;border-color:var(--sage)}.teacher-more{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--sage-deep)}.empty-state{padding:28px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius-md);color:var(--muted)}
.profile-section{padding-top:clamp(62px,7vw,104px)}.profile-layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);gap:clamp(34px,6vw,88px);align-items:center}.profile-portrait{overflow:hidden;border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);background:var(--paper-soft);aspect-ratio:4/5}.profile-portrait img{width:100%;height:100%;object-fit:cover}.profile-copy blockquote{margin:28px 0;padding:22px 24px;border-left:3px solid var(--sage);background:var(--paper-soft);font-family:var(--serif);font-size:clamp(23px,2.5vw,34px);line-height:1.18}.profile-gallery{width:min(100%,var(--content));margin:0 auto;padding:0 var(--gutter) clamp(60px,7vw,100px)}.profile-gallery img{width:100%;max-height:660px;object-fit:cover;border-radius:var(--radius-lg)}
.article-shell{padding:clamp(64px,8vw,120px) 0}.article-container{width:min(920px,100%);margin:0 auto;padding-inline:var(--gutter)}.article-container>p:first-of-type,.article-container .lead{font-size:clamp(18px,1.7vw,22px);color:var(--charcoal)}.article-block{padding:30px 0;border-top:1px solid var(--line)}.article-block h2{margin-bottom:18px}.article-back{display:inline-flex;margin-bottom:28px;font-size:12px;font-weight:600;color:var(--sage-deep)}.article-cta{margin-top:36px;padding:28px;border-radius:var(--radius-lg);background:var(--paper-soft);border:1px solid var(--line)}
.knowledge-list{display:grid;border-top:1px solid var(--line)}.knowledge-row,.knowledge-preview a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 4px;border-bottom:1px solid var(--line);transition:padding .2s ease,color .2s ease}.knowledge-row:hover,.knowledge-preview a:hover{padding-left:10px;color:var(--sage-deep)}.knowledge-preview{display:grid;max-width:900px;margin:0 auto;border-top:1px solid var(--line)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gallery-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-md)}
.schedule-days{display:grid;gap:18px}.schedule-day>h3{margin:0 0 12px}.schedule-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-card{display:flex;flex-direction:column;gap:8px}.schedule-time{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--sage-deep)}.schedule-card-actions{margin-top:auto;padding-top:14px}.schedule-note,.reservline-note{font-size:12px;color:var(--muted)}.schedule-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}.schedule-filter button{min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer}.schedule-filter button.is-active{background:var(--sage);color:#fff;border-color:var(--sage)}
.form-card{padding:clamp(24px,4vw,42px);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-soft)}.form-card label{display:block;margin:16px 0 6px;font-size:12px;font-weight:600}.form-card input,.form-card textarea,.form-card select{width:100%;padding:14px 15px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}.form-honeypot{position:absolute!important;left:-9999px!important}.contact-line{padding:16px 0;border-bottom:1px solid var(--line)}.map-frame{overflow:hidden;border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:var(--shadow-soft)}.map-frame iframe{display:block;width:100%;min-height:420px;border:0}
.price-shell{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.price-panel{padding:28px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-soft)}.price-highlight{font-family:var(--serif);font-size:38px;color:var(--forest)}.price-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.price-tabs button{padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:#fff}
.audience-pill{padding:18px;border-radius:999px;border:1px solid var(--line);background:#fff;text-align:center;font-size:13px}.details-content{max-width:900px;margin:0 auto}.booking-coming,.booking-live{padding:26px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-soft)}.booking-support-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.status-dot{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--sage)}
/* Aerial Sisters uses image-marquee. MOM uses exactly the same moving strip now. */
.image-marquee img{object-fit:cover}
/* Simple technical cookie modal until MOM receives its own analytics stack. */
.cookie-modal{position:fixed;z-index:1500;inset:0;display:none;place-items:end center;padding:20px;background:rgba(20,22,19,.28)}.cookie-modal.is-open{display:grid}.cookie-panel{width:min(620px,100%);padding:24px;border-radius:24px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.22)}.cookie-panel h2{font-size:32px}.cookie-panel p{color:var(--muted)}
.chat-notification{position:absolute;top:3px;right:3px;width:10px;height:10px;border-radius:50%;background:#d99a6b;border:2px solid #fff;opacity:0;transform:scale(.5);transition:.2s}.chat-notification.is-visible{opacity:1;transform:scale(1)}
@media(max-width:900px){.feature-grid,.benefit-grid,.audience-grid,.class-grid,.slot-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-layout{grid-template-columns:1fr}.profile-portrait{max-width:620px;margin-inline:auto;width:100%}.price-shell{grid-template-columns:1fr}.metric-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.brand-wordmark{font-size:24px}.site-header .brand-wordmark{min-width:104px}.feature-grid,.benefit-grid,.audience-grid,.class-grid,.slot-grid,.schedule-card-grid,.gallery-grid{grid-template-columns:1fr}.metric-row{grid-template-columns:1fr}.metric{padding:15px}.teacher-toolbar{padding:13px}.teacher-filters{display:grid;grid-template-columns:1fr 1fr}.teacher-filters button{width:100%;padding-inline:8px}.profile-gallery{padding-inline:16px}.profile-gallery img{border-radius:18px}.form-card{padding:20px}.article-cta{padding:22px}.cookie-modal{padding:10px;padding-bottom:max(10px,env(safe-area-inset-bottom))}}
/* ===== END MOM parity layer ===== */

.chat-launcher{position:relative}


/* ===== V9.2 — TEACHER CARDS + FAQ + PROFILE RESPONSIVE FINAL ===== */
.teacher-grid{align-items:stretch}
.teacher-card{
  display:grid;grid-template-rows:auto 1fr;position:relative;min-width:0;height:100%;
  cursor:pointer;isolation:isolate;transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s ease,border-color .28s ease;
}
.teacher-card:hover{transform:translateY(-4px);box-shadow:0 24px 58px rgba(22,29,22,.2)}
.teacher-card:focus-visible{outline:3px solid #f4e9e8;outline-offset:4px}
.teacher-card-body{display:flex;flex-direction:column;min-width:0;height:auto;padding:26px}
.teacher-card-body>p:not(.eyebrow){margin-bottom:0}
.teacher-card-actions{margin-top:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:11px;padding-top:24px;align-items:stretch}
.teacher-card-actions .teacher-profile-cta{
  width:100%;min-width:0;min-height:52px;padding:0 17px 0 19px;display:flex;align-items:center;justify-content:space-between;gap:14px;
  border:1px solid rgba(255,255,255,.28);border-radius:14px;background:#f4e9e8;color:#2d3429;
  font-size:12px;font-weight:700;letter-spacing:.035em;text-decoration:none;box-shadow:0 10px 24px rgba(0,0,0,.13);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.teacher-card-actions .teacher-profile-cta:hover{background:#fff;transform:translateY(-1px);box-shadow:0 14px 30px rgba(0,0,0,.16)}
.teacher-profile-cta .cta-arrow{font-size:18px;line-height:1;flex:0 0 auto;transition:transform .2s ease}
.teacher-profile-cta:hover .cta-arrow{transform:translate(2px,-2px)}
.teacher-card-socials{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.teacher-card-actions .teacher-social-link{
  flex:1 1 112px;min-width:0;min-height:44px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(255,255,255,.075);color:#fff;
  text-decoration:none;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.teacher-card-actions .teacher-social-link:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.42);transform:translateY(-1px)}
.teacher-social-icon{width:17px;height:17px;display:inline-flex;flex:0 0 17px}
.teacher-social-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.teacher-social-icon .social-dot{fill:currentColor;stroke:none}
.teacher-social-arrow{opacity:.75;font-size:12px;margin-left:1px}
.teacher-profile-grid > .teacher-favorite.favorite-teacher-profile{
  grid-column:1 / -1;justify-self:start;position:static!important;inset:auto!important;
  width:auto!important;max-width:100%;height:auto!important;min-height:44px;padding:0 16px;
  display:inline-flex;align-items:center;justify-content:center;border-radius:999px;white-space:normal;line-height:1.25;
}
.article-faq-item summary > span:first-child{transform:none!important}
.article-faq-item[open] summary > span:first-child{transform:none!important}
.article-faq-item summary > span:last-child{flex:0 0 auto;transform:rotate(0deg);transform-origin:center}
.article-faq-item[open] summary > span:last-child{transform:rotate(45deg)}
@media (max-width:1120px){.teacher-card-body{padding:24px}.teacher-card-actions{padding-top:21px}}
@media (max-width:620px){
 .teacher-card{border-radius:18px}.teacher-card:hover{transform:none}.teacher-card-body{padding:22px 20px 21px}
 .teacher-card-actions{gap:9px;padding-top:19px}.teacher-card-actions .teacher-profile-cta{min-height:52px;font-size:12.5px;border-radius:13px}
 .teacher-card-actions .teacher-social-link{min-height:46px;font-size:11.5px}
 .teacher-profile-grid > .teacher-favorite.favorite-teacher-profile{width:100%!important;justify-self:stretch}
}
@media (max-width:360px){.teacher-card-body{padding-inline:18px}.teacher-card-socials{display:grid;grid-template-columns:1fr}.teacher-card-actions .teacher-social-link{width:100%}}
@media (hover:none),(pointer:coarse){.teacher-card:hover{transform:none}.teacher-card-actions .teacher-profile-cta:hover,.teacher-card-actions .teacher-social-link:hover{transform:none}}
/* ===== END V9.2 ===== */
