@theme { --color-primary: #b95730; --color-secondary: #20382e; --color-background: #faf7f2; --font-sans: "Manrope", sans-serif; --font-serif: Georgia, serif; }

:root {
  --cream: #f5eddf;
  --paper: #fffaf1;
  --navy: #172a3a;
  --terracotta: #c85f3c;
  --ochre: #d6a24a;
  --ink-muted: #53606a;
  --line: rgba(23, 42, 58, .16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--navy);
  font-family: "Manrope", sans-serif;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.site-header {
  height: 94px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 34px;
  padding: 0 clamp(24px, 5vw, 76px);
  background: rgba(255,250,241,.94);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(12px);
}
.brand {
  width: max-content;
  display: inline-flex;
  align-items: center;
  gap: 13px;
  color: var(--navy);
}
.brand-seal {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: grid;
  place-items: center;
  color: #e5b44d;
  border: 1px solid rgba(229,180,77,.16);
  border-radius: 50%;
  background:
    radial-gradient(circle at 32% 24%, rgba(255,255,255,.08), transparent 36%),
    linear-gradient(145deg, #1c3030, #0e1d1d 72%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025);
  font: 600 23px/1 Georgia, serif;
}
.brand-name {
  white-space: nowrap;
  font: 600 29px/1 Georgia, serif;
  letter-spacing: -.035em;
}
.brand-footer { color: white; }
.brand-footer .brand-seal { border-color: rgba(229,180,77,.45); background: transparent; }
.brand-footer .brand-name { font-size: 25px; }
.nav { display: flex; align-items: center; gap: clamp(16px, 2vw, 28px); font-size: 13px; font-weight: 600; }
.nav a { padding: 10px 0; position: relative; white-space: nowrap; }
.nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 3px; height: 2px; background: var(--terracotta); transition: right .25s; }
.nav a:hover::after { right: 0; }
.header-cta { justify-self: end; border: 1px solid var(--terracotta); color: var(--terracotta); padding: 13px 19px; border-radius: 10px; font-size: 13px; font-weight: 700; transition: .2s; }
.header-cta:hover { background: var(--terracotta); color: white; }
.menu-toggle { display: none; background: none; border: 0; color: var(--navy); font-weight: 700; }

.hero {
  min-height: calc(100vh - 94px);
  display: grid;
  grid-template-columns: 49% 51%;
  position: relative;
  overflow: hidden;
  background: var(--cream);
}
.hero-copy {
  padding: clamp(70px, 9vh, 120px) 7vw 150px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.eyebrow {
  margin: 0 0 24px;
  color: var(--terracotta);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 600; letter-spacing: -.035em; }
h1 { max-width: 670px; margin-bottom: 24px; font-size: clamp(54px, 5.4vw, 88px); line-height: .98; }
h1 em { font-weight: 500; font-style: italic; color: var(--terracotta); }
.ornament { color: var(--ochre); display: flex; align-items: center; gap: 8px; font-size: 10px; margin: 0 0 25px; }
.ornament span { display: block; width: 46px; height: 2px; background: var(--ochre); }
.hero-lead { max-width: 550px; font-size: clamp(17px, 1.5vw, 22px); line-height: 1.55; color: #344956; margin-bottom: 32px; }
.hero-note { margin: 22px 0 0; color: var(--ink-muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.button { min-height: 58px; min-width: 195px; display: inline-flex; justify-content: space-between; align-items: center; gap: 20px; border-radius: 11px; padding: 0 24px; font-weight: 700; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.primary { color: white; background: var(--terracotta); box-shadow: 0 12px 30px rgba(170,70,40,.2); }
.primary:hover { background: #ae4a2d; }
.secondary { color: var(--terracotta); border: 1px solid var(--terracotta); }
.secondary:hover { background: #f1dfd3; }
.hero-visual { position: relative; min-height: 660px; overflow: hidden; }
.hero-visual::before { content: ""; position: absolute; inset: 0 auto 0 -2px; width: 70px; z-index: 1; background: linear-gradient(90deg, var(--cream), transparent); }
.hero-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.credentials {
  position: absolute;
  z-index: 4;
  bottom: 38px;
  left: 13%;
  right: 13%;
  min-height: 108px;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  background: rgba(255,253,248,.95);
  border: 1px solid rgba(214,162,74,.2);
  box-shadow: 0 18px 48px rgba(23,42,58,.14);
  border-radius: 18px;
  backdrop-filter: blur(10px);
}
.credentials div { display: flex; align-items: center; justify-content: center; gap: 17px; padding: 20px; }
.credentials div + div { border-left: 1px solid var(--line); }
.credential-icon { flex: 0 0 49px; height: 49px; display: grid; place-items: center; color: white; background: var(--ochre); border-radius: 50%; font: 700 16px Manrope; }
.credentials strong { font-size: 15px; }
.section { padding: clamp(80px, 10vw, 140px) clamp(24px, 7vw, 110px); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 60px; margin-bottom: 55px; }
.section-heading h2, .intro > .section-heading h2 { margin: 0; max-width: 700px; font-size: clamp(42px, 5vw, 68px); line-height: 1.05; }
.section-heading > p { max-width: 480px; color: var(--ink-muted); line-height: 1.7; }
.path-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.path-card { min-height: 410px; padding: 36px; display: flex; flex-direction: column; border: 1px solid var(--line); background: #fffdf8; border-radius: 4px 34px 4px 4px; transition: transform .25s, box-shadow .25s; }
.path-card:hover { transform: translateY(-7px); box-shadow: 0 20px 45px rgba(23,42,58,.09); }
.path-card.featured { background: var(--navy); color: white; }
.path-symbol { width: 52px; height: 52px; display: grid; place-items: center; color: var(--terracotta); border: 1px solid currentColor; border-radius: 50%; font: 600 19px Georgia; }
.path-card.featured .path-symbol { color: var(--ochre); }
.card-kicker { margin: auto 0 9px; color: var(--terracotta); font-size: 11px; text-transform: uppercase; letter-spacing: .13em; font-weight: 700; }
.path-card h3 { font: 600 31px Georgia; margin-bottom: 15px; }
.path-card p:not(.card-kicker) { color: var(--ink-muted); line-height: 1.65; }
.path-card.featured p:not(.card-kicker) { color: #ced7da; }
.path-card a { margin-top: 20px; color: var(--terracotta); font-weight: 700; }

.method { display: grid; grid-template-columns: 48% 52%; padding: 0; background: #efe3d2; }
.method-panel { padding: clamp(70px, 9vw, 130px); background: var(--navy); color: white; position: relative; overflow: hidden; }
.method-panel::after { content: "¿"; position: absolute; right: -15px; bottom: -110px; font: 500 340px Georgia; color: rgba(255,255,255,.035); }
.light { color: #e7b966 !important; }
.method-panel h2 { font-size: clamp(55px, 6vw, 88px); line-height: 1; margin-bottom: 32px; }
.method-panel > p:not(.eyebrow) { max-width: 560px; color: #d7dfe1; line-height: 1.8; font-size: 17px; }
.text-link { display: inline-flex; gap: 22px; align-items: center; color: var(--terracotta); font-weight: 700; margin-top: 20px; }
.method-points { padding: clamp(60px, 8vw, 120px); display: grid; align-content: center; }
.method-points div { display: grid; grid-template-columns: 50px 1fr; column-gap: 25px; padding: 28px 0; border-bottom: 1px solid rgba(23,42,58,.16); }
.method-points span { grid-row: 1 / 3; color: var(--terracotta); font: 600 13px Georgia; }
.method-points h3 { font: 600 27px Georgia; margin-bottom: 8px; }
.method-points p { margin-bottom: 0; color: var(--ink-muted); line-height: 1.6; }

.proof { background: #fffdf8; }
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
blockquote { margin: 0; padding: clamp(32px, 4vw, 55px); background: var(--cream); border-radius: 2px 34px 2px 2px; }
.stars { color: var(--ochre); letter-spacing: .2em; margin-bottom: 25px; }
blockquote > p { font: 500 clamp(22px, 2.2vw, 32px)/1.45 Georgia; }
blockquote footer { color: var(--ink-muted); font-size: 13px; font-weight: 700; }
.google-widget { display: grid; grid-template-columns: 270px 1fr; gap: 18px; }
.review-summary { padding: 31px; color: white; background: var(--navy); border-radius: 4px 28px 4px 4px; }
.google-lockup { display: flex; align-items: center; gap: 10px; color: white; font-weight: 700; }
.google-lockup b, .google-g { color: #4285f4; font: 700 18px Arial; }
.review-summary h3 { margin: 38px 0 15px; font: 600 30px/1.08 Georgia; }
.review-summary .stars { margin-bottom: 15px; }
.review-summary p { color: #ced8db; font-size: 12px; line-height: 1.65; }
.review-summary a { margin-top: 25px; display: flex; justify-content: space-between; color: #efc374; font-size: 12px; font-weight: 700; }
.review-track { min-width: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(290px, 1fr); gap: 18px; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; }
.review-track::-webkit-scrollbar { display: none; }
.review-card { min-height: 315px; padding: 30px; scroll-snap-align: start; display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); border-radius: 4px 28px 4px 4px; box-shadow: 0 12px 30px rgba(23,42,58,.045); }
.review-card header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; }
.review-card header div { display: flex; flex-direction: column; gap: 3px; }
.review-card header strong { font-size: 13px; }
.review-card header small { color: var(--ink-muted); font-size: 10px; }
.review-avatar { width: 43px; height: 43px; display: grid; place-items: center; color: white; background: var(--terracotta); border-radius: 50%; font-size: 11px; font-weight: 700; }
.review-avatar.alt { background: #73886d; }
.review-avatar.ochre { background: var(--ochre); }
.review-card .stars { margin: 24px 0 17px; font-size: 12px; }
.review-card p { margin: 0; color: #344956; font: 500 19px/1.55 Georgia; }
.review-controls { margin: 24px 0 0 auto; width: max-content; display: flex; align-items: center; gap: 10px; color: var(--ink-muted); font-size: 11px; }
.review-controls span { margin-right: 8px; letter-spacing: .08em; }
.review-controls i { width: 37px; height: 37px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-style: normal; }

.about { display: grid; grid-template-columns: 38% 1fr; gap: 9vw; align-items: center; background: var(--cream); }
.about-photo { min-height: 560px; margin: 0; position: relative; overflow: hidden; border-radius: 4px 44px 4px 4px; background: var(--terracotta); box-shadow: 24px 24px 0 rgba(214,162,74,.55); }
.about-photo img { width: 100%; height: 100%; min-height: 560px; display: block; object-fit: cover; object-position: 57% center; }
.about-photo figcaption { position: absolute; left: 22px; bottom: 22px; padding: 10px 14px; color: var(--navy); background: rgba(255,250,241,.92); border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(8px); }
.about h2 { font-size: clamp(52px, 6vw, 82px); margin-bottom: 22px; }
.about-lead { max-width: 700px; color: #334854; font: 500 clamp(19px, 2vw, 27px)/1.55 Georgia; }
.about ul { padding: 0; list-style: none; color: var(--ink-muted); }
.about li { padding: 11px 0 11px 28px; border-bottom: 1px solid var(--line); position: relative; }
.about li::before { content: "◆"; position: absolute; left: 0; color: var(--ochre); font-size: 10px; top: 15px; }
.connected { background: #fffdf8; }
.connected-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.connected-card { min-height: 250px; padding: 34px; display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 22px; border: 1px solid var(--line); border-radius: 4px 30px 4px 4px; background: var(--paper); transition: transform .2s, box-shadow .2s; }
.connected-card:hover { transform: translateY(-5px); box-shadow: 0 18px 38px rgba(23,42,58,.09); }
.connected-card > span:last-child { color: var(--terracotta); font-size: 24px; }
.ui-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--terracotta); font: 700 14px Manrope; }
.connected-card small { color: var(--terracotta); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.connected-card h3 { margin: 12px 0; font: 600 28px/1.12 Georgia; }
.connected-card p { color: var(--ink-muted); line-height: 1.6; }
.app-teaser { display: grid; grid-template-columns: 1fr .7fr; align-items: center; gap: 9vw; color: white; background: var(--navy); overflow: hidden; }
.app-teaser h2 { max-width: 780px; font-size: clamp(46px, 5vw, 72px); line-height: 1.03; }
.app-teaser > div:first-child > p:not(.eyebrow) { max-width: 650px; color: #d5dfe1; line-height: 1.75; font-size: 18px; }
.la-plaza-teaser {
  background:
    radial-gradient(circle at 78% 18%, rgba(214,162,74,.16), transparent 24%),
    linear-gradient(135deg, #173642, var(--navy) 62%);
}
.plaza-logo-crop {
  position: relative;
  width: 230px;
  aspect-ratio: .91;
  margin-bottom: 28px;
  overflow: hidden;
  border-radius: 3px;
}
.plaza-logo-crop img {
  position: absolute;
  inset: 0 auto auto 0;
  width: 300%;
  max-width: none;
  height: auto;
}
.plaza-logo-on-dark {
  box-shadow: 0 18px 42px rgba(0,0,0,.18);
}
.plaza-logo-on-paper {
  width: 190px;
  margin-bottom: 24px;
  box-shadow: 0 15px 36px rgba(23,42,58,.08);
}
.plaza-wordmark { align-items: baseline; }
.plaza-wordmark strong { color: var(--terracotta); font: 600 29px Georgia; }
.plaza-wordmark span { color: var(--ink-muted); }
.phone-shell { width: min(340px, 100%); min-height: 520px; justify-self: center; padding: 30px 24px; color: var(--navy); background: #fffaf1; border: 9px solid #0c1b26; border-radius: 42px; box-shadow: 34px 34px 0 rgba(214,162,74,.22); transform: rotate(2deg); }
.phone-top { display: flex; align-items: center; gap: 18px; font: 600 28px Georgia; }
.phone-top span { font: 600 13px Manrope; }
.streak { margin-top: 42px; padding: 24px; display: flex; flex-direction: column; border-radius: 4px 24px 4px 4px; color: white; background: var(--terracotta); }
.streak small { opacity: .8; text-transform: uppercase; letter-spacing: .12em; }
.streak strong { margin-top: 8px; font: 600 36px Georgia; }
.mini-lesson { margin-top: 18px; padding: 24px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 4px 24px 4px 4px; }
.mini-lesson span { color: var(--terracotta); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.mini-lesson strong { margin: 15px 0 35px; font: 600 27px Georgia; }
.mini-lesson i { color: var(--terracotta); font-style: normal; font-weight: 700; }
.progress-ring { width: 105px; height: 105px; margin: 28px auto 0; display: grid; place-items: center; border: 9px solid var(--ochre); border-right-color: #eadfcd; border-radius: 50%; font: 600 25px Georgia; }

.final-cta { text-align: center; background: var(--terracotta); color: white; }
.final-cta h2 { font-size: clamp(52px, 7vw, 96px); margin-bottom: 22px; }
.final-cta > p:not(.eyebrow) { max-width: 680px; margin: 0 auto 35px; font-size: 18px; line-height: 1.7; color: #fff2ec; }
.centered { justify-content: center; }
.cream { background: var(--paper); color: var(--terracotta); }
.ghost { border: 1px solid rgba(255,255,255,.65); color: white; }
.footer { min-height: 170px; padding: 45px 6vw; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; background: var(--navy); color: #dae1e3; font-size: 12px; }
.footer p { margin: 0; }
.footer p:last-child { text-align: right; }

.subhero {
  min-height: 610px;
  padding: clamp(90px, 11vw, 155px) clamp(24px, 9vw, 140px) 90px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 20%, rgba(214,162,74,.22), transparent 28%),
    linear-gradient(120deg, var(--cream), #fffaf1 65%);
  border-bottom: 1px solid var(--line);
}
.subhero::after {
  content: "żF";
  position: absolute;
  right: 5vw;
  bottom: -80px;
  color: rgba(200,95,60,.055);
  font: 600 clamp(220px, 28vw, 410px)/1 Georgia;
}
.subhero > * { position: relative; z-index: 2; }
.subhero h1 { max-width: 980px; font-size: clamp(58px, 7.5vw, 110px); }
.subhero-intro { max-width: 760px; color: #344956; font-size: clamp(19px, 2vw, 27px); line-height: 1.55; }
.subhero-note { width: max-content; max-width: 100%; margin-top: 28px; padding: 13px 18px; border: 1px solid rgba(200,95,60,.35); color: var(--terracotta); border-radius: 999px; font-size: 12px; font-weight: 700; }
.experience-subhero { padding-right: 54%; min-height: 720px; background: var(--cream); }
.experience-subhero::after { display: none; }
.experience-hero-photo {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: 0;
  width: 49%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
}
.experience-subhero::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0 47% 0 auto;
  width: 9%;
  background: linear-gradient(90deg, var(--cream), transparent);
}

.offer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.offer-grid.four { grid-template-columns: repeat(2, 1fr); }
.offer-card {
  min-height: 390px;
  padding: clamp(30px, 4vw, 48px);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 4px 36px 4px 4px;
  background: #fffdf8;
}
.offer-card.featured { background: var(--navy); color: white; }
.offer-card .card-kicker { margin: auto 0 10px; padding-top: 50px; }
.offer-card h2 { font-size: clamp(29px, 3vw, 42px); line-height: 1.08; margin-bottom: 18px; }
.offer-card > p:not(.card-kicker) { color: var(--ink-muted); line-height: 1.7; }
.offer-card.featured > p:not(.card-kicker) { color: #d4dcde; }
.offer-card a { margin-top: 20px; color: var(--terracotta); font-weight: 700; display: flex; justify-content: space-between; }

.story-band {
  min-height: 440px;
  padding: clamp(75px, 9vw, 130px) clamp(24px, 8vw, 125px);
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  align-items: center;
  gap: 9vw;
  background: var(--navy);
  color: white;
}
.story-band h2 { max-width: 720px; margin: 0; font-size: clamp(46px, 5.5vw, 78px); line-height: 1.02; }
.story-band > p { color: #d4dcde; font-size: clamp(18px, 2vw, 25px); line-height: 1.7; }
.process > h2, .faq > h2 { font-size: clamp(48px, 6vw, 78px); margin-bottom: 50px; }
.process-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.process-grid div { min-height: 210px; padding: 35px; }
.process-grid div + div { border-left: 1px solid var(--line); }
.process-grid span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--terracotta); border: 1px solid currentColor; border-radius: 50%; font: 600 16px Georgia; }
.process-grid h3 { margin: 48px 0 0; font: 600 clamp(24px, 2.4vw, 35px) Georgia; }

.faq { background: var(--cream); }
.faq-list { max-width: 950px; margin-left: auto; }
.faq details { border-top: 1px solid rgba(23,42,58,.22); }
.faq details:last-child { border-bottom: 1px solid rgba(23,42,58,.22); }
.faq summary { padding: 27px 0; cursor: pointer; display: flex; justify-content: space-between; gap: 25px; list-style: none; font: 600 clamp(20px, 2vw, 28px) Georgia; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary span { color: var(--terracotta); font: 400 28px Manrope; }
.faq details[open] summary span { transform: rotate(45deg); }
.faq details p { max-width: 760px; padding: 0 0 28px; color: var(--ink-muted); line-height: 1.75; }
.experience-gallery { background: #fffdf8; }
.trip-facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0 clamp(24px, 7vw, 110px);
  transform: translateY(-32px);
  position: relative;
  z-index: 4;
  background: var(--navy);
  color: white;
  border-radius: 4px 28px 4px 4px;
  box-shadow: 0 22px 55px rgba(23,42,58,.18);
}
.trip-facts div { min-height: 150px; padding: 28px; display: flex; flex-direction: column; justify-content: center; }
.trip-facts div + div { border-left: 1px solid rgba(255,255,255,.16); }
.trip-facts span { color: #e7b966; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.trip-facts strong { margin: 8px 0 6px; font: 600 clamp(22px, 2vw, 31px) Georgia; }
.trip-facts small { color: #cdd7da; line-height: 1.45; }
.photo-mosaic {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  grid-template-rows: 300px 300px;
  gap: 16px;
}
.photo-mosaic figure { margin: 0; position: relative; overflow: hidden; border-radius: 3px 28px 3px 3px; }
.photo-mosaic .photo-large { grid-row: 1 / 3; }
.photo-mosaic .photo-wide { display: none; }
.photo-mosaic img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.photo-mosaic figure:hover img { transform: scale(1.025); }
.photo-mosaic figcaption {
  position: absolute;
  inset: auto 14px 14px 14px;
  padding: 12px 15px;
  color: white;
  background: rgba(23,42,58,.78);
  border-radius: 6px;
  backdrop-filter: blur(8px);
  font-size: 12px;
  font-weight: 700;
}
.trip-program { background: var(--cream); }
.program-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.program-grid article { min-height: 320px; padding: 32px; background: #fffdf8; border: 1px solid var(--line); border-radius: 3px 28px 3px 3px; }
.program-grid span { color: var(--terracotta); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.program-grid h3 { margin: 58px 0 14px; font: 600 clamp(25px, 2.2vw, 34px) Georgia; }
.program-grid p { color: var(--ink-muted); line-height: 1.65; }
.trip-includes { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; color: white; background: var(--navy); }
.trip-includes > div:first-child h2 { font-size: clamp(44px, 5vw, 70px); line-height: 1.03; }
.trip-includes > div:first-child > p:last-child { color: #d4dcde; line-height: 1.75; font-size: 17px; }
.include-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: stretch; }
.include-columns article { padding: 34px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.15); border-radius: 3px 28px 3px 3px; }
.include-columns h3 { color: #e7b966; font: 600 27px Georgia; }
.include-columns ul { margin: 25px 0 0; padding: 0; list-style: none; }
.include-columns li { padding: 13px 0 13px 25px; border-top: 1px solid rgba(255,255,255,.12); position: relative; color: #dbe2e4; line-height: 1.5; }
.include-columns li::before { content: "◆"; position: absolute; left: 0; top: 17px; color: var(--terracotta); font-size: 8px; }
.partner-strip {
  padding: 65px clamp(24px, 8vw, 120px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 55px;
  background: white;
  border-top: 1px solid var(--line);
}
.partner-strip > p { margin: 0; color: var(--ink-muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .13em; }
.partner-logos { display: flex; align-items: center; gap: 45px; }
.partner-logos img:first-child { width: min(250px, 32vw); height: 82px; object-fit: contain; }
.partner-logos img:last-child { width: min(180px, 25vw); height: 95px; object-fit: contain; }

.catalogue-bar { display: flex; justify-content: space-between; align-items: end; gap: 35px; margin-bottom: 45px; }
.catalogue-bar h2 { margin: 0; font-size: clamp(48px, 6vw, 76px); }
.filter-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-pills button { padding: 10px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--navy); background: transparent; cursor: pointer; }
.filter-pills .active { color: white; border-color: var(--navy); background: var(--navy); }
.course-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.course-card { overflow: hidden; border: 1px solid var(--line); border-radius: 4px 28px 4px 4px; background: #fffdf8; }
.course-art { min-height: 245px; padding: 25px; display: flex; flex-direction: column; color: white; position: relative; overflow: hidden; }
.course-art::after { content: ""; position: absolute; width: 170px; height: 170px; right: -45px; bottom: -55px; border: 24px solid rgba(255,255,255,.13); border-radius: 50%; }
.course-art span { width: max-content; padding: 7px 10px; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.course-art strong { max-width: 85%; margin: auto 0 0; font: 600 clamp(29px, 3vw, 43px)/.98 Georgia; }
.course-art i { position: absolute; right: 22px; top: 21px; color: rgba(255,255,255,.72); font: 600 20px Georgia; }
.course-art.refranes { background: linear-gradient(135deg,#b85033,#d7824c); }
.course-art.clase { background: linear-gradient(135deg,#19394c,#39728a); }
.course-art.verbos { background: linear-gradient(135deg,#9b7440,#d6a24a); }
.course-art.alfabeto { background: linear-gradient(135deg,#6d3e51,#b76c76); }
.course-art.comida { background: linear-gradient(135deg,#395747,#6f8a5d); }
.course-info { padding: 28px; }
.course-info > small { color: var(--terracotta); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.course-info h3 { min-height: 64px; margin: 12px 0 20px; font: 600 27px/1.15 Georgia; }
.course-meta { display: flex; justify-content: space-between; gap: 12px; padding: 16px 0; color: var(--ink-muted); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 11px; }
.course-bottom { margin-top: 22px; display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.course-bottom a { color: var(--terracotta); font-weight: 700; }
.learning-flow { display: grid; grid-template-columns: .7fr 1.3fr; align-items: center; gap: 7vw; color: white; background: var(--navy); }
.learning-flow h2 { font-size: clamp(48px, 6vw, 78px); line-height: 1.03; }
.lesson-window { min-height: 480px; display: grid; grid-template-columns: 210px 1fr; overflow: hidden; color: var(--navy); background: white; border-radius: 5px 30px 5px 5px; box-shadow: 30px 30px 0 rgba(214,162,74,.17); }
.lesson-window aside { padding: 28px 20px; display: flex; flex-direction: column; gap: 6px; background: var(--cream); }
.lesson-window aside strong { margin-bottom: 20px; font: 600 20px Georgia; }
.lesson-window aside span { padding: 11px; color: var(--ink-muted); font-size: 11px; line-height: 1.4; border-radius: 6px; }
.lesson-window aside .done { color: #537059; }
.lesson-window aside .current { color: white; background: var(--terracotta); }
.lesson-window > div { padding: 34px; }
.lesson-window > div > small { color: var(--terracotta); font-weight: 700; }
.lesson-window h3 { margin: 10px 0 22px; font: 600 34px Georgia; }
.video-placeholder { min-height: 190px; display: grid; place-items: center; background: linear-gradient(135deg,#1b3444,#375b6b); border-radius: 3px 18px 3px 3px; }
.video-placeholder span { width: 62px; height: 62px; display: grid; place-items: center; padding-left: 4px; border-radius: 50%; color: var(--terracotta); background: white; font-size: 22px; }
.lesson-window > div > p { margin: 18px 0; color: var(--ink-muted); line-height: 1.6; font-size: 13px; }
.lesson-window > div > button { padding: 13px 17px; border: 0; border-radius: 7px; color: white; background: var(--terracotta); font-weight: 700; }

.booking-section { background: #fffdf8; }
.booking-shell { max-width: 1180px; margin: auto; overflow: hidden; border: 1px solid var(--line); border-radius: 5px 34px 5px 5px; background: white; box-shadow: 0 25px 70px rgba(23,42,58,.1); }
.booking-steps { min-height: 72px; display: grid; grid-template-columns: repeat(4,1fr); background: var(--navy); color: #aab8bd; }
.booking-steps span { display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
.booking-steps .active { color: white; background: var(--terracotta); }
.booking-layout { display: grid; grid-template-columns: .95fr 1.05fr; min-height: 530px; }
.service-list { padding: 42px; border-right: 1px solid var(--line); }
.service { width: 100%; margin: 0 0 12px; padding: 18px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; text-align: left; border: 1px solid var(--line); border-radius: 4px 17px 4px 4px; color: var(--navy); background: white; cursor: pointer; }
.service > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: var(--terracotta); background: #f7e7df; font-weight: 700; }
.service div { display: flex; flex-direction: column; gap: 5px; }
.service small { color: var(--ink-muted); }
.service b { color: var(--terracotta); font-size: 12px; }
.service.active { border: 2px solid var(--terracotta); background: #fff9f5; }
.calendar-demo { padding: 42px; }
.calendar-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 30px; }
.calendar-head button { width: 37px; height: 37px; border: 1px solid var(--line); border-radius: 50%; background: white; }
.calendar-head strong { font: 600 25px Georgia; }
.weekdays, .days { display: grid; grid-template-columns: repeat(7,1fr); gap: 7px; }
.weekdays span { padding: 8px; text-align: center; color: var(--ink-muted); font-size: 10px; font-weight: 700; }
.days button { aspect-ratio: 1; border: 0; border-radius: 50%; color: #9aa2a6; background: transparent; }
.days .available { color: var(--navy); background: var(--cream); }
.days .selected { color: white; background: var(--terracotta); }
.times { display: flex; gap: 8px; margin-top: 25px; }
.times button { padding: 11px 15px; border: 1px solid var(--line); border-radius: 7px; background: white; }
.times .active { color: white; border-color: var(--navy); background: var(--navy); }
.booking-footer { min-height: 82px; padding: 16px 28px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); }
.booking-footer span { font-weight: 700; }
.booking-footer button, .contact-demo button, .account-welcome button { padding: 14px 20px; border: 0; border-radius: 8px; color: white; background: var(--terracotta); font-weight: 700; }
.integration-note { max-width: 900px; margin: 30px auto 0; color: var(--ink-muted); text-align: center; line-height: 1.7; font-size: 13px; }

.app-showcase { display: grid; grid-template-columns: 1fr .75fr; align-items: center; gap: 8vw; background: #fffdf8; }
.app-copy > h2 { font-size: clamp(52px, 6vw, 82px); line-height: 1; }
.app-benefits { margin-top: 45px; }
.app-benefits article { display: grid; grid-template-columns: 45px 1fr; column-gap: 18px; padding: 20px 0; border-top: 1px solid var(--line); }
.app-benefits span { grid-row: 1/3; width: 34px; height: 34px; display: grid; place-items: center; color: var(--terracotta); border: 1px solid currentColor; border-radius: 50%; font: 600 13px Georgia; }
.app-benefits h3 { margin: 0 0 7px; font: 600 26px Georgia; }
.app-benefits p { color: var(--ink-muted); line-height: 1.6; }
.app-device { width: min(410px,100%); min-height: 680px; justify-self: center; padding: 32px 26px 22px; border: 11px solid var(--navy); border-radius: 48px; background: var(--cream); box-shadow: 35px 35px 0 var(--ochre); }
.app-device-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; }
.app-device-head b { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--terracotta); font: 600 17px Georgia; }
.app-brand-name { color: var(--terracotta); font: 600 18px Georgia; }
.app-device-head span { font-weight: 700; font-size: 12px; }
.app-device-head i { font-style: normal; font-size: 12px; }
.daily-goal { margin: 38px 0 20px; padding: 25px; display: flex; flex-direction: column; color: white; background: var(--navy); border-radius: 4px 24px 4px 4px; }
.daily-goal small { color: #e7b966; font-weight: 700; letter-spacing: .12em; }
.daily-goal strong { margin: 9px 0 20px; font: 600 28px Georgia; }
.daily-goal div { height: 7px; overflow: hidden; background: rgba(255,255,255,.2); border-radius: 7px; }
.daily-goal div i { display: block; width: 63%; height: 100%; background: var(--terracotta); }
.daily-goal > span { margin-top: 9px; text-align: right; font-size: 10px; color: #cbd5d8; }
.app-task { margin-top: 12px; padding: 18px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; background: white; border: 1px solid var(--line); border-radius: 4px 18px 4px 4px; }
.app-task > b { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: var(--terracotta); background: #f7e7df; }
.app-task div { display: flex; flex-direction: column; gap: 4px; }
.app-task small { color: var(--terracotta); font-size: 8px; font-weight: 700; }
.app-task strong { font: 600 18px Georgia; }
.app-task > span { color: var(--ink-muted); font-size: 10px; }
.app-task.active { border: 2px solid var(--terracotta); }
.app-nav { margin-top: 35px; padding-top: 20px; display: flex; justify-content: space-around; border-top: 1px solid var(--line); color: var(--ink-muted); font-size: 10px; font-weight: 700; }
.la-plaza-showcase {
  background:
    linear-gradient(90deg, rgba(39,83,104,.045) 1px, transparent 1px),
    linear-gradient(rgba(39,83,104,.045) 1px, transparent 1px),
    #fffdf8;
  background-size: 28px 28px;
}
.la-plaza-showcase .app-device { border-color: #173642; box-shadow: 35px 35px 0 #d7a349; }
.la-plaza-showcase .daily-goal { background: #275368; }

.account-section { background: var(--cream); }
.account-shell { max-width: 1220px; min-height: 720px; margin: auto; display: grid; grid-template-columns: 210px 1fr; overflow: hidden; background: #fffdf8; border: 1px solid var(--line); border-radius: 5px 34px 5px 5px; box-shadow: 0 24px 65px rgba(23,42,58,.11); }
.account-shell > aside { padding: 35px 20px; display: flex; flex-direction: column; gap: 8px; color: #c8d2d5; background: var(--navy); }
.account-shell > aside strong { margin: 0 0 32px 12px; color: white; font: 600 30px Georgia; }
.account-shell > aside span { padding: 12px; border-radius: 7px; font-size: 12px; }
.account-shell > aside .active { color: white; background: var(--terracotta); }
.account-main { padding: 48px; }
.account-welcome { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.account-welcome small, .account-columns article > small { color: var(--terracotta); font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.account-welcome h2 { margin: 6px 0; font-size: 52px; }
.account-welcome p { color: var(--ink-muted); }
.account-columns { margin-top: 35px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; }
.account-columns article { min-height: 245px; padding: 30px; border: 1px solid var(--line); border-radius: 4px 24px 4px 4px; }
.account-columns h3 { font: 600 30px Georgia; }
.progress-bar { height: 8px; margin: 38px 0 9px; overflow: hidden; border-radius: 6px; background: var(--cream); }
.progress-bar i { display: block; width: 68%; height: 100%; background: var(--terracotta); }
.active-course > span { color: var(--ink-muted); font-size: 11px; }
.active-course > a { margin-top: 25px; display: flex; justify-content: space-between; color: var(--terracotta); font-weight: 700; }
.next-class { color: white; background: var(--navy); }
.next-class > small { color: #e7b966 !important; }
.next-class > strong { display: block; margin-top: 25px; color: #e7b966; }
.next-class h3 { margin: 5px 0 10px; }
.next-class p { color: #d1dcde; }
.next-class a { color: #e7b966; font-size: 12px; font-weight: 700; }
.account-history { margin-top: 30px; }
.account-history > h3 { font: 600 27px Georgia; }
.account-history > div { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 15px 0; border-top: 1px solid var(--line); }
.account-history > div > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: var(--terracotta); background: #f7e7df; }
.account-history p { margin: 0; display: flex; flex-direction: column; gap: 3px; font-size: 12px; }
.account-history small, .account-history time { color: var(--ink-muted); font-size: 10px; }

.contact-form-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: 9vw; align-items: start; background: #fffdf8; }
.contact-form-section > div h2 { font-size: clamp(52px,6vw,82px); }
.contact-form-section > div > p:not(.eyebrow) { color: var(--ink-muted); line-height: 1.75; font-size: 17px; }
.contact-form-section ul { margin-top: 35px; padding: 0; list-style: none; }
.contact-form-section li { padding: 13px 0; border-top: 1px solid var(--line); }
.contact-form-section li::before { content: "◆"; margin-right: 14px; color: var(--terracotta); font-size: 8px; }
.contact-demo { padding: clamp(28px,4vw,48px); display: grid; grid-template-columns: 1fr 1fr; gap: 20px; background: var(--cream); border-radius: 4px 30px 4px 4px; }
.contact-demo label { display: flex; flex-direction: column; gap: 8px; font-size: 11px; font-weight: 700; }
.contact-demo label:nth-child(4) { grid-column: 1/-1; }
.contact-demo input, .contact-demo select, .contact-demo textarea { width: 100%; padding: 15px; border: 1px solid var(--line); border-radius: 7px; color: var(--navy); background: white; font: 13px Manrope; resize: vertical; }
.contact-demo button { width: max-content; grid-column: 1/-1; }
.fran-story { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 8vw; background: #fffdf8; }
.fran-story-photo { min-height: 680px; overflow: hidden; border-radius: 4px 42px 4px 4px; background: var(--cream); }
.fran-story-photo img { width: 100%; height: 100%; min-height: 680px; object-fit: cover; object-position: 58% center; }
.fran-story h2 { font-size: clamp(48px, 6vw, 78px); line-height: 1.02; }
.fran-story > div:last-child > p:not(.eyebrow) { color: var(--ink-muted); line-height: 1.8; font-size: 17px; }
.fran-credentials { margin-top: 35px; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fran-credentials span { padding: 24px 15px; display: flex; flex-direction: column; gap: 5px; color: var(--ink-muted); font-size: 11px; }
.fran-credentials span + span { border-left: 1px solid var(--line); }
.fran-credentials b { color: var(--terracotta); font: 600 24px Georgia; }

@media (max-width: 980px) {
  .site-header { grid-template-columns: 1fr auto; height: 78px; }
  .brand-seal { width: 46px; height: 46px; flex-basis: 46px; font-size: 20px; }
  .brand-name { font-size: 25px; }
  .menu-toggle { display: block; justify-self: end; }
  .header-cta { display: none; }
  .nav { display: none; position: absolute; top: 78px; left: 0; right: 0; padding: 25px; background: var(--paper); flex-direction: column; align-items: flex-start; border-bottom: 1px solid var(--line); }
  .nav.open { display: flex; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { padding: 65px 8vw 50px; }
  .hero-visual { min-height: 510px; }
  .credentials { position: relative; left: auto; right: auto; bottom: auto; margin: -42px 5vw 35px; }
  .path-grid { grid-template-columns: 1fr; }
  .connected-grid { grid-template-columns: 1fr; }
  .app-teaser { grid-template-columns: 1fr; }
  .offer-grid, .offer-grid.four { grid-template-columns: 1fr; }
  .experience-subhero { padding-right: 8vw; padding-bottom: 450px; }
  .experience-hero-photo { inset: auto 0 0; width: 100%; height: 400px; }
  .experience-subhero::before { inset: auto 0 360px; width: 100%; height: 70px; background: linear-gradient(var(--cream), transparent); }
  .path-card { min-height: 330px; }
  .method { grid-template-columns: 1fr; }
  .story-band { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns: 1fr; }
  .process-grid div + div { border-left: 0; border-top: 1px solid var(--line); }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 18px; }
  .google-widget { grid-template-columns: 230px 1fr; }
  .about { grid-template-columns: 1fr; }
  .about-photo { width: min(520px, calc(100% - 24px)); min-height: 520px; }
  .footer { grid-template-columns: 1fr; text-align: center; }
  .footer-wordmark { margin: auto; }
  .footer p:last-child { text-align: center; }
  .partner-strip { flex-direction: column; gap: 28px; text-align: center; }
  .trip-facts { grid-template-columns: 1fr 1fr; }
  .trip-facts div:nth-child(3) { border-left: 0; border-top: 1px solid rgba(255,255,255,.16); }
  .trip-facts div:nth-child(4) { border-top: 1px solid rgba(255,255,255,.16); }
  .program-grid { grid-template-columns: 1fr 1fr; }
  .trip-includes { grid-template-columns: 1fr; }
  .course-grid { grid-template-columns: 1fr 1fr; }
  .learning-flow, .app-showcase, .contact-form-section, .fran-story { grid-template-columns: 1fr; }
  .booking-layout { grid-template-columns: 1fr; }
  .service-list { border-right: 0; border-bottom: 1px solid var(--line); }
  .account-shell { grid-template-columns: 1fr; }
  .account-shell > aside { display: none; }
}

@media (max-width: 640px) {
  .site-header { gap: 12px; padding-left: 18px; padding-right: 18px; }
  .brand { gap: 9px; }
  .brand-seal { width: 39px; height: 39px; flex-basis: 39px; font-size: 17px; }
  .brand-name { font-size: 20px; }
  h1 { font-size: 48px; }
  .hero-actions { width: 100%; }
  .button { width: 100%; }
  .hero-visual { min-height: 390px; }
  .credentials { grid-template-columns: 1fr; margin-top: -25px; }
  .credentials div { justify-content: flex-start; }
  .credentials div + div { border-left: 0; border-top: 1px solid var(--line); }
  .quotes { grid-template-columns: 1fr; }
  .google-widget { grid-template-columns: 1fr; }
  .review-summary { min-height: 245px; }
  .review-summary h3 { margin-top: 28px; }
  .review-track { grid-auto-columns: 88%; }
  .about-photo, .about-photo img { min-height: 470px; }
  .method-panel, .method-points { padding: 65px 26px; }
  .subhero { min-height: 540px; padding-top: 80px; }
  .subhero h1 { font-size: 52px; }
  .offer-card { min-height: 330px; }
  .photo-mosaic { display: flex; flex-direction: column; }
  .photo-mosaic figure, .photo-mosaic .photo-wide { display: block; height: 310px; }
  .partner-logos { flex-direction: column; gap: 24px; }
  .partner-logos img:first-child, .partner-logos img:last-child { width: min(300px, 78vw); height: 90px; }
  .trip-facts { grid-template-columns: 1fr; margin-left: 18px; margin-right: 18px; transform: translateY(-20px); }
  .trip-facts div { min-height: 120px; }
  .trip-facts div + div, .trip-facts div:nth-child(3), .trip-facts div:nth-child(4) { border-left: 0; border-top: 1px solid rgba(255,255,255,.16); }
  .program-grid, .include-columns { grid-template-columns: 1fr; }
  .catalogue-bar { align-items: flex-start; flex-direction: column; }
  .course-grid { grid-template-columns: 1fr; }
  .learning-flow { padding-left: 18px; padding-right: 18px; }
  .lesson-window { grid-template-columns: 1fr; }
  .lesson-window aside { display: none; }
  .booking-section { padding-left: 14px; padding-right: 14px; }
  .booking-steps { grid-template-columns: 1fr 1fr; }
  .booking-steps span { min-height: 52px; }
  .service-list, .calendar-demo { padding: 25px 18px; }
  .booking-footer { align-items: stretch; flex-direction: column; }
  .app-device { box-shadow: 16px 16px 0 var(--ochre); }
  .account-section { padding-left: 12px; padding-right: 12px; }
  .account-main { padding: 26px 18px; }
  .account-welcome { align-items: flex-start; flex-direction: column; }
  .account-welcome h2 { font-size: 42px; }
  .account-columns { grid-template-columns: 1fr; }
  .contact-demo { grid-template-columns: 1fr; }
  .contact-demo label:nth-child(4) { grid-column: auto; }
  .contact-demo button { grid-column: auto; }
  .fran-story-photo, .fran-story-photo img { min-height: 500px; }
  .fran-credentials { grid-template-columns: 1fr; }
  .fran-credentials span + span { border-left: 0; border-top: 1px solid var(--line); }
}

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

/* La Plaza school identity */
:root { --navy: #20382e; --terracotta: #b95730; --ochre: #c49a56; }
.site-header { height: 132px; background: #faf7f2; grid-template-columns: 170px 1fr auto; gap: 24px; }
.school-logo { display:block; width:112px; height:124px; position:relative; overflow:hidden; }
.school-logo img { position:absolute; top:0; left:0; width:337.6px; max-width:none; height:auto; }
.brand { align-self:center; }
.nav { justify-content:center; font-size:14px; }
.footer { background:#faf7f2; color:var(--navy); }
.brand-footer .school-logo { width:145px; height:160px; }
.brand-footer .school-logo img { width:437px; }
.hero { min-height:720px; }
.hero h1 { font-size:clamp(56px,6.4vw,92px); line-height:1.05; max-width:680px; }
.hero-copy { padding-top:80px; }
.hero-note,.eyebrow,.card-kicker,.subhero-note { font-size:14px; }
.school-invitation { display:grid; grid-template-columns:1.1fr 1fr; gap:8vw; border-top:1px solid var(--line); }
.school-invitation h2 { font-size:clamp(36px,4vw,58px); }
.school-invitation p:not(.eyebrow) { font-size:19px; line-height:1.8; }
.path-card { position:relative; overflow:hidden; }
.path-photo { width:calc(100% + 80px); max-width:none; height:165px; margin:-40px -40px 26px; object-fit:cover; }
.path-card:has(.path-photo) .path-symbol { display:none; }
.plaza-logo-on-dark { box-shadow:none; }
@media(max-width:1100px) { .site-header { grid-template-columns:auto 1fr auto; gap:16px; padding:0 24px; } .nav { gap:16px; } }
@media(max-width:980px) { .site-header {height:112px;} .school-logo{width:96px;height:106px;} .school-logo img{width:289.4px;} .nav.open { top:112px; background:#faf7f2; } .school-invitation{grid-template-columns:1fr;gap:20px;} }
@media(max-width:600px) { .hero h1{font-size:56px;} .hero-copy{padding-top:48px;} .site-header{padding:0 20px;} .header-cta{font-size:14px;} .hero-visual{min-height:420px;} }
@media(max-width:980px) { .site-header {grid-template-columns:1fr auto;} }

/* Conventional letterforms, without decorative ligatures. */
h1, h2, h3, .review-card p { font-variant-ligatures: none; }
.review-card p { font-family: "Manrope", Arial, sans-serif; font-size: 17px; line-height: 1.65; font-weight: 400; }
.credentials { grid-template-columns: repeat(3, 1fr); }
.credentials strong { line-height: 1.5; }
@media(max-width:600px) { .credentials { grid-template-columns:1fr; } }

/* Group course schedule and individual course pages. */
.group-programme { padding-top:65px; scroll-margin-top:145px; }
.timetable-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:16px; background:#fffdf8; }
.group-timetable { width:100%; min-width:790px; border-collapse:collapse; text-align:left; }
.group-timetable caption { text-align:left; padding:20px; font-size:14px; color:var(--ink-muted); border-bottom:1px solid var(--line); }
.group-timetable th { padding:20px 16px; font-size:14px; font-weight:700; }
.group-timetable thead { background:#eee6d8; }
.group-timetable tbody th { white-space:nowrap; }
.group-timetable td { padding:9px; border-top:1px solid var(--line); width:17%; }
.schedule-course { display:flex; flex-direction:column; gap:9px; min-height:155px; padding:20px 15px; border-radius:9px; background:var(--course-bg); color:var(--course-ink); border-top:3px solid var(--course-ink); transition:transform .2s; }
.schedule-course:hover { transform:translateY(-3px); }
.schedule-course strong { font:700 25px Georgia,serif; }
.schedule-course span { font-size:14px; line-height:1.5; }
.schedule-course small { font-size:13px; margin-top:auto; }
.sprout { --course-bg:#e8eee4; --course-ink:#304c36; }
.clay { --course-bg:#f6e4d9; --course-ink:#963e26; }
.blue { --course-bg:#e4edf1; --course-ink:#285267; }
.gold { --course-bg:#f3ecd9; --course-ink:#735519; }
.no-group { display:block; text-align:center; color:var(--ink-muted); }
.schedule-hint { font-size:14px; color:var(--ink-muted); margin:16px 0 40px; }
.group-course-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.group-course-card { padding:32px; border:1px solid var(--line); border-top:4px solid var(--course-ink); border-radius:4px 35px 4px 4px; background:#fffdf8; }
.level-label { display:inline-block; padding:8px 14px; background:var(--course-bg); color:var(--course-ink); border-radius:5px; font-weight:700; margin-bottom:24px; }
.group-course-card h3 { font:600 30px Georgia,serif; }
.group-course-card p { line-height:1.7; }
.group-course-card dl,.course-enrol dl { margin:25px 0; }
.group-course-card dl div,.course-enrol dl div { display:grid; grid-template-columns:105px 1fr; gap:15px; padding:12px 0; border-bottom:1px solid var(--line); line-height:1.5; font-size:16px; }
.group-course-card dt,.course-enrol dt { color:var(--ink-muted); }
.group-course-card dd,.course-enrol dd { margin:0; font-weight:600; }
.group-card-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:15px; }
.group-card-bottom strong { display:block; font-size:23px; }
.group-card-bottom small { display:block; font-size:14px; margin-top:8px; }
.group-card-bottom a { margin:0; }
.group-detail { padding-top:40px; }
.back-to-groups { display:inline-block; margin-bottom:50px; font-size:16px; }
.group-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:6vw; align-items:start; }
.detail-level { display:inline-block; background:var(--course-bg); color:var(--course-ink); padding:15px 23px; border-radius:12px; font:600 45px Georgia,serif; margin-bottom:25px; }
.group-detail h1 { font-size:clamp(42px,5vw,72px); line-height:1.1; }
.course-enrol { background:#fffdf8; padding:35px; border:1px solid var(--line); border-top:5px solid var(--course-ink); border-radius:4px 35px 4px 4px; }
.course-enrol h2 { font-size:30px; }
.course-enrol dl div { grid-template-columns:115px 1fr; }
.enrol-price { margin:30px 0; }
.enrol-price strong { display:block; font:600 40px Georgia,serif; }
.enrol-price span,.enrol-note { font-size:14px; line-height:1.6; }
.enrol-note { margin:18px 0 0; color:var(--ink-muted); }
.course-enrol .button { width:100%; }
.level-help { margin-top:65px; padding-top:35px; border-top:1px solid var(--line); }
a:focus-visible, .timetable-scroll:focus-visible { outline:3px solid var(--terracotta); outline-offset:4px; }
@media(max-width:800px) { .group-detail-grid { grid-template-columns:1fr; gap:35px; } }
@media(max-width:600px) { .group-course-grid { grid-template-columns:1fr; } .group-course-card,.course-enrol { padding:24px; } .group-programme { scroll-margin-top:120px; } }

/* Balanced edition: retain the visual identity, shorten the decision path. */
.home-balanced .section { padding-top:80px; padding-bottom:80px; }
.home-balanced .hero-copy { padding-top:65px; }
.footer-links { display:flex; flex-wrap:wrap; gap:12px 20px; max-width:350px; font-size:14px; }
.footer-links a:hover { text-decoration:underline; }
.choice-subhero { min-height:0; padding-top:65px; padding-bottom:42px; }
.choice-subhero h1 { font-size:clamp(45px,5.5vw,76px); max-width:900px; }
.choice-subhero .subhero-intro { font-size:21px; max-width:760px; }
.class-choices { padding-top:25px; padding-bottom:55px; }
.class-choices .offer-grid.four { grid-template-columns:repeat(2,minmax(0,1fr)); }
.class-choices .offer-card { padding:32px; }
.class-choices .offer-card h2 { font-size:34px; }
.faq.section { padding-top:55px; padding-bottom:60px; }
@media(max-width:600px) { .home-balanced .section { padding-top:50px; padding-bottom:50px; } .choice-subhero { min-height:0; padding-top:40px; } .choice-subhero h1 { font-size:45px; } .class-choices .offer-grid.four {grid-template-columns:1fr;} .footer-links {max-width:none;} }

.nav .mobile-contact { display:none; }
@media(max-width:980px) { .nav .mobile-contact { display:block; } }

body { -webkit-font-smoothing: antialiased; }
#lp-placement { max-width:1000px; margin:auto; }
#lp-placement h1 { font-size:clamp(38px,5vw,66px); line-height:1.12; margin-bottom:24px; }
#lp-placement p { margin:18px 0; }
#lp-placement aside { background:#efe7d9; border-left:4px solid #b95730; padding:24px; margin:28px 0; }
.lp-test-panel { padding:clamp(22px,4vw,42px); background:#fffaf1; border:1px solid #dacebb; border-radius:4px 32px 4px 4px; margin:30px 0; }
.lp-test-panel fieldset { min-width:0; border:0; }
.lp-test-panel legend { font-weight:700; font-size:22px; margin-bottom:20px; }
.lp-test-panel label { display:block; margin:20px 0; }
.lp-test-panel input[type=email], .lp-test-panel textarea { display:block; width:100%; border:1px solid #958b7c; border-radius:8px; padding:14px; margin-top:8px; background:#fff; font:inherit; }
.lp-test-panel input[type=checkbox] { margin-right:8px; }
.lp-test-panel button:disabled { opacity:.55; cursor:not-allowed; }
.lp-test-panel [x-cloak] { display:none!important; }
.lp-test-message { padding:20px; margin:16px 0; border-left:3px solid #b95730; background:#f5eddf; white-space:pre-wrap; overflow-wrap:anywhere; }
.lp-test-panel :focus-visible { outline:3px solid #b95730; outline-offset:3px; }

/* La Plaza location and Google map. */
.location-section { display:grid; grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr); gap:clamp(28px,5vw,72px); align-items:center; background:#efe3d2; }
.location-copy h2 { font-size:clamp(42px,5vw,68px); margin-bottom:20px; }
.location-copy p { color:var(--ink-muted); line-height:1.8; }
.location-copy .button { margin-top:20px; }
.location-map { min-height:480px; overflow:hidden; border-radius:4px 38px 4px 4px; box-shadow:0 22px 50px rgba(23,42,58,.12); background:#fffdf8; }
.location-map iframe { display:block; width:100%; height:480px; border:0; }
@media(max-width:800px) { .location-section { grid-template-columns:1fr; } .location-map { min-height:380px; } .location-map iframe { height:380px; } }

/* Real contact form. */
.contact-form-real { padding:clamp(28px,4vw,48px); display:grid; grid-template-columns:1fr 1fr; gap:20px; background:var(--cream); border-radius:4px 30px 4px 4px; }
.contact-form-real label { display:flex; flex-direction:column; gap:9px; color:var(--navy); font-size:13px; font-weight:700; }
.contact-form-real label > span { color:var(--terracotta); }
.contact-form-real input[type=text], .contact-form-real input[type=email], .contact-form-real select, .contact-form-real textarea { width:100%; padding:15px; border:1px solid var(--line); border-radius:8px; color:var(--navy); background:#fffdf8; font:15px Manrope,Arial,sans-serif; }
.contact-form-real textarea { min-height:155px; resize:vertical; }
.contact-form-real input:focus, .contact-form-real select:focus, .contact-form-real textarea:focus { outline:3px solid rgba(185,87,48,.25); border-color:var(--terracotta); }
.contact-wide { grid-column:1/-1; }
.contact-consent { flex-direction:row !important; align-items:flex-start; font-weight:500 !important; line-height:1.55; }
.contact-consent input { flex:0 0 auto; margin-top:4px; }
.contact-consent span { color:var(--ink-muted) !important; }
.contact-form-real button { width:max-content; grid-column:1/-1; border:0; cursor:pointer; }
.contact-honeypot { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
.contact-notice { grid-column:1/-1; display:flex; flex-direction:column; gap:4px; padding:18px 22px; border-radius:8px; margin-bottom:18px; }
.contact-notice.success { color:#24452f; background:#e2eee3; border-left:4px solid #4f7659; }
.contact-notice.error { color:#7b2e1d; background:#f7e3dc; border-left:4px solid var(--terracotta); }
.contact-notice span { line-height:1.5; }

/* Pricing for classes for two people. */
.pair-pricing { background:#fffdf8; }
.price-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; max-width:1280px; margin:0 auto; }
.price-card { padding:clamp(30px,4vw,48px); display:flex; flex-direction:column; border:1px solid var(--line); border-radius:4px 36px 4px 4px; background:var(--paper); }
.price-card.featured { color:#fff; background:var(--navy); border-color:transparent; }
.price-card .card-kicker { margin:0 0 18px; }
.price-card h3 { margin:0 0 14px; font:600 clamp(30px,3vw,42px)/1.1 Georgia,serif; }
.price-card > strong { font:600 clamp(44px,5vw,68px)/1 Georgia,serif; color:var(--terracotta); }
.price-card.featured > strong { color:#e7b966; }
.price-card > span { margin:12px 0 25px; color:var(--ink-muted); line-height:1.55; }
.price-card.featured > span { color:#d4dcde; }
.price-card ul { margin:0 0 32px; padding:0; list-style:none; }
.price-card li { padding:12px 0; border-top:1px solid var(--line); }
.price-card.featured li { border-color:rgba(255,255,255,.16); }
.price-card li::before { content:"◆"; margin-right:12px; color:var(--ochre); font-size:9px; }
.price-card .button { margin-top:auto; }
@media(max-width:1000px) { .price-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .contact-form-real,.price-grid { grid-template-columns:1fr; } .contact-wide,.contact-form-real button { grid-column:auto; } .contact-form-real button { width:100%; } }

/* La Plaza editorial revision: useful content, quieter rhythm, accessible controls. */
:root { --editorial-space:clamp(48px,6vw,88px); }
main > .section { padding-top:var(--editorial-space); padding-bottom:var(--editorial-space); }
.home-balanced > .section { padding-top:var(--editorial-space); padding-bottom:var(--editorial-space); }
.subhero:not(.experience-subhero) { min-height:0; padding-top:clamp(52px,6vw,88px); padding-bottom:clamp(48px,6vw,80px); }
.subhero:not(.experience-subhero) h1 { font-size:clamp(42px,6.1vw,86px); max-width:1100px; text-wrap:balance; }
.subhero-intro { max-width:720px; }
.offer-card { min-height:0; padding:clamp(24px,3vw,40px); }
.offer-card .card-kicker { padding-top:0; margin:0 0 16px; }
.offer-card h2 { font-size:clamp(27px,2.8vw,40px); }
.offer-card > a { margin-top:auto; padding-top:24px; }
.story-band { min-height:0; padding-top:64px; padding-bottom:64px; gap:40px; }
.path-card { min-height:0; padding:30px; overflow:hidden; }
.path-card .card-kicker { padding-top:0; margin:0 0 12px; }
.path-card h3 { font-size:clamp(28px,2.8vw,40px); }
.path-card > a { margin-top:auto; padding-top:20px; }
.path-illustration,.path-card .path-photo { display:block; width:calc(100% + 60px); max-width:none; height:210px; margin:-30px -30px 28px; flex:none; }
.path-card .path-photo { object-fit:cover; object-position:center; }
.path-illustration { position:relative; color:#234534; background:#d9c7a4; }
.path-illustration.classroom { color:#d9b578; background:#234534; }
.path-illustration svg { display:block; width:100%; height:180px; }
.path-illustration > span { position:absolute; bottom:14px; left:0; width:100%; text-align:center; font:600 11px/1.4 Manrope,Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.home-balanced > .method.section { padding:0; }
.method-panel { padding:clamp(36px,5vw,70px); }
.method-panel h2 { font-size:clamp(42px,4.4vw,62px); line-height:1.06; }
.method-points { padding:clamp(28px,4vw,58px); }
.method-points::before { display:none; }
.about h2 { font-size:clamp(40px,4.7vw,66px); line-height:1.08; text-wrap:balance; }
.path-card.featured > a,.path-card.featured .card-kicker { color:#e7be7c; }

.review-scroll-hint { margin:16px 0 0; color:var(--ink-muted); font:500 13px/1.5 Manrope,Arial,sans-serif; text-align:right; }
.review-track { scroll-snap-type:x proximity; }
.review-card { scroll-snap-align:start; }
.founder-note { border-left:2px solid var(--ochre); padding-left:20px; margin-top:24px; }
.editorial-intro,.school-editorial { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,88px); align-items:start; }
.editorial-intro h2,.school-editorial h2 { font-size:clamp(34px,4.5vw,62px); text-wrap:balance; }
.editorial-intro p,.school-editorial p { line-height:1.8; color:var(--ink-muted); }
.editorial-intro .button { margin-top:20px; }
.editorial-detail { border-top:1px solid var(--line); padding-top:20px; font-size:14px; }
.editorial-lead { font-size:clamp(18px,2vw,22px); }
.editorial-facts { margin:28px 0; }
.editorial-facts > div { border-top:1px solid var(--line); padding:18px 0; display:grid; grid-template-columns:110px 1fr; gap:18px; }
.editorial-facts dt { font-weight:700; }
.editorial-facts dd { margin:0; color:var(--ink-muted); line-height:1.7; }
.founder-feature { margin:0; background:#efe4d4; border-radius:4px 48px 4px 4px; overflow:hidden; }
.founder-feature img { display:block; width:100%; height:420px; object-fit:cover; object-position:center 30%; }
.founder-feature figcaption { padding:28px 32px; }
.founder-feature h3 { font-size:34px; margin:10px 0; }
.editorial-hero { display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; text-align:left; }
.editorial-hero h1 { font-size:clamp(40px,5.4vw,76px) !important; }
.editorial-hero figure { margin:0; position:relative; overflow:hidden; border-radius:4px 60px 4px 4px; }
.editorial-hero figure img { width:100%; height:440px; display:block; object-fit:cover; object-position:70% center; }
.editorial-hero figcaption { padding:16px 20px; background:#eadcc7; font-size:13px; }
.group-detail-grid { align-items:start; }
.group-learning { border-top:1px solid var(--line); margin-top:32px; padding-top:28px; max-width:570px; }
.group-learning h2 { font-size:clamp(26px,3vw,38px); }
.group-learning h3 { font-size:24px; margin:28px 0 12px; }
.group-learning p { line-height:1.8; }
.contact-form-section > .integration-note { grid-column:1/-1; margin:0; }
.contact-form-section { align-items:start; row-gap:24px; }
h2 { line-height:1.08; }
.subhero::after,.method-panel::after { display:none; }
.contact-form-section h2,.location-copy h2,.faq > h2 { font-size:clamp(36px,4.4vw,60px); }
.contact-form-section > .integration-note { text-align:left; }
.review-card header small { font-size:11px; }
.contact-form-real label:not(.contact-consent) { display:block; line-height:1.5; }
.contact-form-real label > input,.contact-form-real label > select,.contact-form-real label > textarea { display:block; margin-top:9px; }
.contact-form-real label,.contact-form-real input,.contact-form-real select { min-width:0; }
.contact-form-real input[type=text],.contact-form-real input[type=email],.contact-form-real select,.contact-form-real textarea { font-size:16px; }
.contact-direct { border-top:1px solid var(--line); text-align:center; background:var(--cream); }
.contact-direct a { font-size:clamp(18px,3vw,32px); overflow-wrap:anywhere; }
.level-orientation { display:flex; align-items:center; justify-content:space-between; gap:32px; background:#eee3d1; }
.level-orientation h2 { font-size:clamp(32px,4vw,50px); }
.level-orientation p { max-width:650px; line-height:1.7; }
.level-orientation .button { flex:none; }
.course-art strong { font-size:clamp(30px,3vw,44px); line-height:1.1; overflow-wrap:normal; }
.filter-pills { flex-wrap:wrap; }
.filter-pills button { min-height:44px; cursor:pointer; }
.button,.header-cta,.menu-toggle,.footer-links a,.text-link { min-height:44px; }
.text-link,.footer-links a { display:inline-flex; align-items:center; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid #b75331; outline-offset:4px; }
summary { min-height:44px; }
section[id] { scroll-margin-top:120px; }
.section > div,.section article,.subhero > div { min-width:0; }
@media(max-width:800px) {
 .editorial-hero,.editorial-intro,.school-editorial { grid-template-columns:1fr; }
 .editorial-hero figure img { height:340px; }
 .editorial-hero-copy { max-width:650px; }
 .level-orientation { flex-direction:column; align-items:flex-start; }
 .founder-feature img { height:380px; }
 .story-band { padding-top:48px; padding-bottom:48px; }
 .path-illustration,.path-card .path-photo { height:195px; }
 .path-illustration svg { height:165px; }
}
@media(max-width:480px) {
 .subhero:not(.experience-subhero) { padding-left:22px; padding-right:22px; }
 .subhero:not(.experience-subhero) h1 { font-size:42px; }
 .editorial-hero figure img { height:290px; }
 .editorial-facts > div { grid-template-columns:1fr; gap:6px; }
 .contact-form-real { padding:24px 18px; }
 .contact-form-real button { white-space:normal; text-align:center; }
 .founder-feature img { height:320px; }
 .level-orientation .button { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
}
/* Language selector: named flags, keyboard focus and comfortable touch targets. */
.lp-brand-spaced { margin-inline-start:.18em; }
.lp-language-strip { background:#f5eddf; border-bottom:1px solid rgba(32,56,46,.12); padding:4px clamp(18px,5vw,76px); }
.lp-languages { display:flex; align-items:center; justify-content:flex-end; gap:16px; min-height:44px; font:600 12px/1.4 Manrope,Arial,sans-serif; color:#20382e; }
.lp-language-label { font-size:11px; letter-spacing:.04em; }
.lp-language-options { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.lp-language-options a.glink { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:6px 10px; border:1px solid transparent; border-radius:7px; text-decoration:none; color:#20382e; }
.lp-language-options a.glink img { width:24px; height:18px; object-fit:cover; margin:0; opacity:1; border-radius:2px; }
.lp-language-options a.glink:hover { background:#eadfcd; }
.lp-language-options a.gt-current-lang { border-color:#a44b2c; background:#fffaf1; }
.lp-language-options a:focus-visible { outline:3px solid #a44b2c; outline-offset:2px; }
.lp-language-status { font-size:11px; }
.lp-language-status[hidden] { display:none; }
@media(max-width:600px) {
 .lp-language-strip { padding:3px 12px; }
 .lp-languages { justify-content:center; gap:4px; }
 .lp-language-label { display:none; }
 .lp-language-options { gap:2px; }
 .lp-language-options a.glink { padding:6px 8px; }
}

