/* =====================================================================
   GO-ZEN.Paris — feuille de style unique
   Couleurs principales : violet #3e237d / #432486, orange #ec7628,
   texte #27203e. Police : Montserrat (chargée dans chaque page).
   Les ajouts du 29/09/2026 sont regroupés à la fin du fichier.
   ===================================================================== */

:root {
  color:#27203e;
  font-synthesis:none;
  --cream:#fff;
  --paper:#f7f5fc;
  --blue:#3e237d;
  --blue-soft:#f0edfa;
  --blue-pale:#f7f5fc;
  --card:#fff;
  --plum:#27203e;
  --cognac:#3e237d;
  --copper:#563e8d;
  --lavender:#d0c7e6;
  --section-label:#3e237d;
  --border:#d5cfe2;
  --muted:#27203e;
  --page-gutter:clamp(22px,5.5vw,88px);
  --section-space:clamp(52px,5.4vw,76px);
  --brand-violet:#3e237d;
  --title-blue:#3e237d;
  --brand-orange:#f47a1f;
  background:#fff;
  font-family:Montserrat,Arial,sans-serif;
}

.page-intro h1, .teacher-profile-intro h1, .teacher-approach h2, .pricing-intro h1, .planning-intro h1 {
  font-size:clamp(2rem,3vw,3.25rem);
}

.brand span, .footer-brand strong {
  font-family:Montserrat,Arial,sans-serif;
  font-weight:700;
}

.footer-brand {
  position:relative;
}

.footer-brand:after {
  z-index:0;
  content:"";
  background:radial-gradient(#51495138,#51495100 72%);
  border-radius:50%;
  width:52px;
  height:10px;
  position:absolute;
  bottom:-2px;
  left:26px;
  transform:translate(-50%);
}

.footer-brand img {
  z-index:1;
  object-fit:contain;
  background:0 0;
  border-radius:0;
  padding:2px;
  position:relative;
}

@media (width<=900px) {
  .home-paths-heading {
    display:block;
  }
  .home-paths-heading h2, .home-programmes-copy h2, .teachers-section .section-heading h2, .booking-section h2 {
    white-space:normal;
  }
  .home-paths-grid {
    grid-template-columns:1fr;
  }
  .home-path-card {
    border-right:0;
    border-bottom:1px solid var(--border);
    min-height:190px;
  }
  .home-path-card:last-child {
    border-bottom:0;
  }
}

@media (width<=720px) {
  .home-paths-section {
    padding:52px 22px;
  }
  .home-paths-heading h2 {
    font-size:clamp(1.9rem,9vw,2.55rem);
  }
  .home-path-card {
    padding-inline:4px;
  }
  .home-path-card h3 {
    margin-top:26px;
  }
  .teachers-section .section-heading h2, .booking-section h2 {
    font-size:clamp(1.75rem,8vw,2.35rem);
  }
  .teacher-copy {
    min-height:140px;
  }
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:92px;
}

body {
  background:var(--paper);
  min-width:320px;
  color:var(--plum);
  margin:0;
  overflow-x:hidden;
}

body, button, input, textarea, select {
  font-family:Montserrat,Arial,sans-serif;
}

a {
  color:inherit;
}

img {
  max-width:100%;
  display:block;
}

h1, h2, h3, .brand, .button, .eyebrow {
  font-family:Montserrat,Arial,sans-serif;
}

h1, h2, h3, p {
  margin-top:0;
}

h1, h2, h3 {
  letter-spacing:-.025em;
}

p {
  line-height:1.72;
  color:var(--muted)!important;
}

:focus-visible {
  outline:3px solid var(--lavender);
  outline-offset:4px;
}

.site-header {
  z-index:20;
  min-height:84px;
  padding:12px var(--page-gutter);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
  background:#fbfaf7f5;
  border-bottom:1px solid #5149511f;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  display:flex;
  position:sticky;
  top:0;
}

.brand {
  letter-spacing:-.04em;
  align-items:center;
  gap:12px;
  font-size:clamp(1.08rem,1.7vw,1.45rem);
  font-weight:700;
  text-decoration:none;
  display:inline-flex;
}

.brand img {
  object-fit:contain;
  object-position:center;
  width:56px;
  height:56px;
  padding:2px 4px;
}

.main-nav {
  align-items:center;
  gap:clamp(18px,2.2vw,36px);
  font-size:.82rem;
  font-weight:600;
  display:flex;
}

.main-nav>a {
  padding:13px 0;
  text-decoration:none;
}

.main-nav>a:not(.nav-booking):hover {
  color:var(--cognac);
}

.nav-booking {
  color:#fff;
  background:var(--cognac);
  border-radius:999px;
  padding:13px 20px!important;
}

.menu-toggle {
  color:var(--plum);
  background:0 0;
  border:0;
  font-size:.85rem;
  font-weight:600;
  display:none;
}

.page-back-navigation {
  padding:14px var(--page-gutter);
  background:var(--cream);
  border-bottom:1px solid var(--border);
}

.page-back-navigation button {
  color:#171717;
  cursor:pointer;
  background:0 0;
  border:0;
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:8px 2px;
  font:600 .8rem/1 Montserrat,Arial,sans-serif;
  display:inline-flex;
}

.page-back-navigation button span {
  color:var(--section-label);
  font-size:1.25rem;
  transition:transform .18s;
}

.page-back-navigation button:hover span {
  transform:translate(-3px);
}

.page-back-navigation button:focus-visible {
  outline:3px solid var(--lavender);
  outline-offset:3px;
}

.button {
  border:1px solid #0000;
  border-radius:999px;
  justify-content:center;
  align-items:center;
  min-height:50px;
  padding:14px 24px;
  font-size:.82rem;
  font-weight:700;
  text-decoration:none;
  transition:transform .2s,background .2s;
  display:inline-flex;
}

.button:hover {
  transform:translateY(-2px);
}

.button.primary {
  color:#fff;
  background:var(--cognac);
}

.button.primary:hover {
  background:var(--brand-orange);
}

.button.secondary {
  background:#dce6e9d1;
  border-color:#51495133;
}

.eyebrow {
  color:var(--section-label);
  letter-spacing:.18em;
  margin-bottom:22px;
  font-size:.7rem;
  font-weight:700;
  display:inline-block;
}

.hero-section {
  min-height:clamp(590px,100vh - 124px,700px);
  margin:clamp(20px,2.2vw,32px) var(--page-gutter) 0;
  background:linear-gradient(90deg,#3e237d 0 49%,#f0edfa 49% 100%);
  border:1px solid #3e237d17;
  border-radius:30px;
  grid-template-columns:minmax(350px,1fr) minmax(500px,1fr);
  align-items:center;
  gap:clamp(34px,4.5vw,70px);
  padding:clamp(40px,5vw,70px);
  display:grid;
  overflow:hidden;
  box-shadow:0 28px 80px #3e237d1a;
}

.hero-copy {
  z-index:2;
  min-width:0;
  position:relative;
}

.hero-copy h1 {
  color:#fff;
  letter-spacing:-.055em;
  text-wrap:balance;
  max-width:720px;
  margin-bottom:24px;
  font-family:Montserrat,Arial,sans-serif;
  font-size:clamp(3.1rem,4.25vw,5.2rem);
  font-weight:600;
  line-height:.98;
}

.hero-copy>p {
  margin-bottom:34px;
  font-size:clamp(1rem,1.3vw,1.2rem);
}

.hero-copy .eyebrow {
  color:var(--brand-orange)!important;
}

.hero-copy .hero-lead {
  max-width:590px;
  font-size:clamp(1.08rem,1.45vw,1.32rem);
  line-height:1.62;
  color:#fff!important;
}

.hero-copy .button.primary {
  color:var(--plum);
  background:#fff;
}

.hero-copy .button.secondary {
  color:#fff;
  background:0 0;
  border-color:#ffffff94;
}

.hero-actions {
  flex-wrap:wrap;
  gap:12px;
  display:flex;
}

.hero-emblem {
  isolation:isolate;
  height:clamp(430px,46vw,610px);
  box-shadow:none;
  background:0 0;
  border:0;
  border-radius:0;
  position:relative;
  overflow:hidden;
}

.hero-emblem:before {
  z-index:-1;
  content:"";
  border:1px solid #ffffff85;
  border-radius:50%;
  position:absolute;
  inset:clamp(28px,4vw,58px);
}

.hero-emblem:after {
  z-index:-2;
  aspect-ratio:1;
  content:"";
  background:#f3efe885;
  border-radius:50%;
  width:72%;
  position:absolute;
  bottom:-20%;
  right:-14%;
}

.community-motif span {
  z-index:-1;
  aspect-ratio:1;
  border-radius:50%;
  position:absolute;
}

.community-motif span:first-child {
  background:#fbfaf775;
  width:22%;
  top:11%;
  left:8%;
}

.community-motif span:nth-child(2) {
  background:#3e237d29;
  width:13%;
  top:19%;
  left:21%;
}

.community-motif span:nth-child(3) {
  background:#fbfaf7b8;
  width:8%;
  top:10%;
  left:30%;
}

.bear-ground-halo {
  z-index:0;
  filter:blur(2px);
  background:radial-gradient(#5149513d 0%,#5149511c 42%,#51495100 74%);
  border-radius:50%;
  width:min(58%,390px);
  height:8%;
  position:absolute;
  bottom:4.5%;
  left:50%;
  transform:translate(-50%);
}

.hero-emblem>img {
  z-index:1;
  filter:drop-shadow(0 20px 18px #51495124);
  width:min(68%,460px);
  position:absolute;
  bottom:2%;
  right:50%;
  transform:translate(50%);
}

.home-intro-section {
  padding:var(--section-space) var(--page-gutter) clamp(38px,4.2vw,58px);
  background:var(--cream);
  border-bottom:1px solid #51495113;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:start;
  gap:clamp(38px,5vw,76px);
  display:grid;
}

.home-intro-section h2 {
  white-space:nowrap;
  max-width:none;
  margin:0;
  font-size:clamp(2.35rem,3.55vw,4rem);
  font-weight:500;
  line-height:1;
}

.home-intro-copy {
  max-width:720px;
}

.home-intro-copy p {
  color:var(--plum);
  margin:0;
  font-size:clamp(1rem,1.18vw,1.1rem);
  line-height:1.72;
}

.home-intro-copy p+p {
  margin-top:14px;
}

.home-practice-options-section {
  padding:0 var(--page-gutter) var(--section-space);
  background:var(--cream);
  scroll-margin-top:100px;
}

.home-practice-options-section>.eyebrow {
  margin-bottom:clamp(22px,2.6vw,34px);
}

.home-practice-options-grid {
  grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);
  display:grid;
}

.home-practice-option {
  min-width:0;
  padding-right:clamp(36px,5vw,74px);
}

.home-practice-option+.home-practice-option {
  border-left:1px solid var(--border);
  padding-left:clamp(36px,5vw,74px);
  padding-right:0;
}

.home-practice-option h2 {
  text-wrap:balance;
  max-width:16ch;
  margin:0 0 clamp(24px,2.5vw,34px);
  font-size:clamp(2.35rem,3.05vw,3.35rem);
  font-weight:500;
  line-height:.98;
}

.home-practice-option-detail+.home-practice-option-detail {
  margin-top:clamp(22px,2.4vw,30px);
}

.home-practice-option-detail h3 {
  color:var(--section-label);
  letter-spacing:.02em;
  margin:0 0 8px;
  font-family:Montserrat,Arial,sans-serif;
  font-size:clamp(.88rem,1vw,1rem);
  font-weight:700;
  line-height:1.35;
}

.home-practice-option-detail p {
  max-width:48ch;
  color:var(--muted);
  margin:0;
  font-size:clamp(.98rem,1.12vw,1.06rem);
  line-height:1.68;
}

.text-link {
  color:var(--cognac);
  margin-top:34px;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.8rem;
  font-weight:700;
  text-decoration:none;
  display:inline-flex;
}

.home-programmes-teaser {
  isolation:isolate;
  background:linear-gradient(115deg,var(--cream) 0 43%,var(--blue-pale) 43% 100%);
  border-top:1px solid #5149510f;
  align-items:center;
  min-height:clamp(470px,39vw,610px);
  display:flex;
  position:relative;
  overflow:hidden;
}

.home-programmes-teaser:before {
  z-index:0;
  aspect-ratio:1;
  content:"";
  background:radial-gradient(circle,#0000 0 31%,#ffffffa3 31.2% 31.45%,#0000 31.7%),radial-gradient(circle at 28% 42%,#f3eee6e6 0 17%,#0000 17.3%),radial-gradient(circle at 76% 31%,#f3e8dadb 0 25%,#0000 25.3%),radial-gradient(circle at 82% 66%,#b19ab457 0 28%,#0000 28.3%);
  border-radius:50%;
  width:min(74vw,1100px);
  position:absolute;
  top:-30%;
  right:-7%;
}

.home-programmes-teaser:after {
  z-index:0;
  background:linear-gradient(90deg,var(--cream) 0%,#f0ece5fa 35%,#f0ece5b8 44%,#f0ece500 52%);
  content:"";
  pointer-events:none;
  position:absolute;
  inset:0;
}

.home-programmes-background {
  z-index:1;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 20px 28px #5149511c);
  width:min(53%,940px);
  height:80%;
  position:absolute;
  bottom:6%;
  right:2.5%;
}

.home-programmes-copy {
  z-index:2;
  width:min(44%,650px);
  padding:var(--section-space) 0 var(--section-space) var(--page-gutter);
  color:var(--plum);
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  display:flex;
  position:relative;
}

.home-programmes-copy .eyebrow {
  color:var(--section-label);
}

.home-programmes-copy h2 {
  max-width:650px;
  color:var(--plum);
  margin:0 0 28px;
  font-size:clamp(2.1rem,2.9vw,3.2rem);
  font-weight:500;
  line-height:1.05;
}

.section {
  padding:var(--section-space) var(--page-gutter);
}

.courses-section {
  background:var(--blue-pale);
}

.section-heading {
  grid-template-columns:.82fr 1.18fr;
  align-items:start;
  gap:clamp(28px,5vw,72px);
  margin-bottom:clamp(30px,3vw,42px);
  display:grid;
}

.section-heading h2, .philosophy-section h2, .planning-section h2, .values-section h2, .booking-section h2, .pricing-cta h2 {
  max-width:720px;
  margin:0;
  font-size:clamp(2.35rem,3.35vw,3.75rem);
  font-weight:500;
  line-height:1.03;
}

.section-heading-copy {
  min-width:0;
}

.section-intro {
  max-width:760px;
  color:var(--muted);
  margin:24px 0 0;
  font-size:clamp(.98rem,1.15vw,1.08rem);
  line-height:1.7;
}

.course-grid {
  background:#efeae27a;
  border:1px solid #5149511f;
  border-radius:18px;
  grid-template-columns:repeat(2,1fr);
  display:grid;
  overflow:hidden;
}

.course-card {
  border-right:1px solid var(--border);
  min-height:245px;
  padding:28px clamp(25px,3vw,42px);
}

.course-card:last-child {
  border-right:0;
}

.course-card>span {
  color:var(--cognac);
  font-size:.75rem;
}

.course-card h3 {
  margin:44px 0 14px;
  font-size:clamp(1.7rem,2.1vw,2.25rem);
  font-weight:600;
}

.course-card p {
  max-width:340px;
}

.practice-formats {
  margin-top:clamp(64px,8vw,112px);
}

.practice-formats-heading {
  grid-template-columns:.72fr 1.28fr;
  align-items:end;
  gap:clamp(28px,5vw,72px);
  margin-bottom:clamp(28px,4vw,48px);
  display:grid;
}

.practice-formats-heading h3 {
  max-width:760px;
  margin:0;
  font-size:clamp(2.35rem,3.5vw,3.8rem);
  font-weight:500;
  line-height:1.04;
}

.practice-format-grid {
  background:#fbfaf7b3;
  border:1px solid #51495121;
  border-radius:20px;
  grid-template-columns:1.2fr .9fr .9fr;
  display:grid;
  overflow:hidden;
}

.practice-format-card {
  border-right:1px solid var(--border);
  flex-direction:column;
  min-height:390px;
  padding:clamp(28px,3vw,42px);
  display:flex;
}

.practice-format-card:last-child {
  border-right:0;
}

.practice-format-number {
  color:var(--cognac);
  letter-spacing:.08em;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.72rem;
}

.practice-format-card h4 {
  margin:42px 0 30px;
  font-size:clamp(1.75rem,2.25vw,2.45rem);
  font-weight:600;
  line-height:1.08;
}

.practice-format-options {
  gap:0;
  display:grid;
}

.practice-format-options>div {
  border-top:1px solid var(--border);
  padding:18px 0;
}

.practice-format-options h5 {
  color:var(--plum);
  margin:0 0 8px;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.78rem;
  font-weight:700;
  line-height:1.35;
}

.practice-format-options p, .practice-format-copy p {
  color:var(--muted);
  margin:0;
  font-size:.92rem;
  line-height:1.65;
}

.practice-format-copy {
  flex-direction:column;
  flex:1;
  display:flex;
}

.practice-format-copy .eyebrow {
  color:var(--section-label);
  margin-bottom:16px;
}

.practice-format-copy a {
  margin-top:auto;
  padding-top:28px;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.78rem;
  font-weight:700;
  text-decoration:none;
}

.teachers-section {
  background:linear-gradient(#f1f6f7 0%,#eaf1f2 100%);
  border-top:1px solid #5149510f;
}

.teacher-grid {
  grid-template-columns:repeat(3,1fr);
  gap:clamp(18px,1.8vw,24px);
  display:grid;
}

.teacher-card {
  background:var(--card);
  border:1px solid #51495117;
  border-radius:12px;
  flex-direction:column;
  display:flex;
  overflow:hidden;
  box-shadow:0 18px 44px #5149510d;
}

.teacher-photo {
  isolation:isolate;
  aspect-ratio:1;
  background:var(--blue);
  position:relative;
  overflow:hidden;
}

.teacher-photo:after {
  z-index:1;
  content:"";
  pointer-events:none;
  background:linear-gradient(135deg,#ffffff06,#51495109);
  position:absolute;
  inset:0;
  box-shadow:inset 0 0 0 1px #ffffff1c;
}

.teacher-photo img {
  object-fit:cover;
  object-position:50% 50%;
  width:100%;
  height:100%;
}

.teacher-tone-1 .teacher-photo img, .teacher-tone-3 .teacher-photo img {
  filter:saturate(.84)contrast(.94)brightness(.985);
}

.teacher-tone-2 .teacher-photo img {
  filter:saturate(.94)contrast(.98)brightness(.99);
}

.teacher-copy {
  flex-direction:column;
  flex:1;
  min-height:240px;
  padding:25px 27px 28px;
  display:flex;
}

.teacher-copy h3 {
  margin-bottom:6px;
  font-size:1.95rem;
  font-weight:600;
}

.teacher-practice {
  min-height:44px;
  color:var(--cognac);
  letter-spacing:.04em;
  font-size:.78rem;
  font-weight:600;
}

.teacher-credentials {
  gap:8px;
  margin:2px 0 22px;
  padding:0;
  list-style:none;
  display:grid;
}

.teacher-credentials li {
  color:#171717;
  padding-left:16px;
  font-size:.82rem;
  line-height:1.48;
  position:relative;
}

.teacher-credentials li:before {
  background:var(--section-label);
  content:"";
  border-radius:50%;
  width:5px;
  height:5px;
  position:absolute;
  top:.64em;
  left:0;
}

.teacher-copy a {
  margin-top:auto;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.78rem;
  font-weight:600;
  text-decoration:none;
}

.teacher-links {
  flex-wrap:wrap;
  gap:14px 20px;
  margin-top:auto;
  display:flex;
}

.teacher-links a {
  margin-top:0;
}

.teacher-profile-page {
  background:var(--blue-pale);
}

.teacher-profile-hero {
  background:var(--cream);
  grid-template-columns:minmax(340px,.8fr) minmax(440px,1.2fr);
  align-items:center;
  gap:clamp(42px,8vw,130px);
  min-height:650px;
  padding:clamp(58px,7vw,104px) clamp(22px,7vw,112px);
  display:grid;
}

.teacher-profile-photo {
  aspect-ratio:1;
  background:var(--blue);
  border-radius:28px;
  max-width:560px;
  overflow:hidden;
  box-shadow:0 22px 55px #51495114;
}

.teacher-profile-photo img {
  object-fit:cover;
  filter:saturate(.84)contrast(.94)brightness(.985);
  width:100%;
  height:100%;
}

.teacher-profile-intro h1 {
  max-width:760px;
  margin-bottom:28px;
  font-size:clamp(3rem,5vw,5.6rem);
  font-weight:500;
  line-height:.98;
}

.teacher-profile-intro p {
  max-width:690px;
  color:var(--plum);
  font-size:clamp(1rem,1.3vw,1.18rem);
  line-height:1.72;
}

.teacher-approach {
  background:var(--blue-pale);
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(50px,9vw,150px);
  padding:clamp(72px,9vw,132px) clamp(22px,7vw,112px);
  display:grid;
}

.teacher-approach h2 {
  max-width:650px;
  margin:0;
  font-size:clamp(2.5rem,4vw,4.5rem);
  font-weight:500;
  line-height:1.02;
}

#approach-title {
  font-size:clamp(1.65rem,2.8vw,2.6rem);
  line-height:1.22;
}

.teacher-approach-copy {
  max-width:740px;
}

.teacher-approach-copy p {
  font-size:clamp(1rem,1.18vw,1.12rem);
  line-height:1.8;
}

.teacher-approach-copy h3 {
  color:var(--plum);
  margin:30px 0 8px;
  font-size:clamp(1.65rem,2.2vw,2.15rem);
  font-weight:600;
}

.teacher-approach-points {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 30px;
  margin:30px 0;
  padding:0;
  list-style:none;
  display:grid;
}

.teacher-approach-points li {
  color:var(--plum);
  border-bottom:1px solid #51495129;
  padding:15px 0 15px 25px;
  font-size:.98rem;
  line-height:1.5;
  position:relative;
}

.teacher-approach-points li:before {
  background:var(--cognac);
  content:"";
  border-radius:50%;
  width:7px;
  height:7px;
  position:absolute;
  top:21px;
  left:2px;
}

.teacher-approach-closing {
  color:var(--plum);
  letter-spacing:-.025em;
  font-family:Montserrat,Arial,sans-serif;
  font-weight:500;
  font-size:clamp(1.18rem,1.55vw,1.5rem)!important;
  line-height:1.5!important;
}

.teacher-availability {
  color:var(--plum);
  border-top:1px solid #51495129;
  margin-top:30px;
  padding-top:20px;
}

.teacher-profile-actions {
  flex-wrap:wrap;
  gap:12px;
  margin-top:34px;
  display:flex;
}

.planning-section {
  background:var(--cream);
  grid-template-columns:1.15fr .85fr;
  align-items:end;
  gap:clamp(45px,8vw,140px);
  padding:clamp(70px,9vw,130px) clamp(22px,7vw,112px);
  display:grid;
}

.planning-copy p {
  max-width:580px;
  margin-bottom:28px;
  font-size:1.05rem;
}

.philosophy-section {
  background:var(--blue-pale);
  border-top:1px solid var(--border);
  grid-template-columns:1fr 1fr;
  gap:clamp(50px,10vw,180px);
  display:grid;
}

.philosophy-details {
  padding-top:42px;
  font-size:clamp(1rem,1.25vw,1.18rem);
}

.values-section {
  background:var(--plum);
  color:var(--paper);
  grid-template-columns:1.2fr .8fr;
  gap:clamp(50px,8vw,130px);
  padding:clamp(75px,9vw,132px) clamp(22px,7vw,112px);
  display:grid;
}

.eyebrow-light {
  color:var(--blue);
}

.values-section ul {
  margin:50px 0 0;
  padding:0;
  list-style:none;
}

.values-section li {
  color:#efe8f0;
  border-bottom:1px solid #fcfaf62b;
  padding:20px 0;
}

.booking-section {
  padding:clamp(58px,5.7vw,82px) var(--page-gutter);
  text-align:center;
  background:#fff;
  border-top:1px solid #51495112;
}

.booking-section h2 {
  margin-bottom:22px;
}

.booking-section p {
  max-width:650px;
  color:var(--plum);
  margin:0 auto 26px;
}

.booking-section p a {
  text-underline-offset:4px;
  font-weight:700;
}

.page {
  min-height:70vh;
}

.page-intro {
  background:var(--cream);
  padding:clamp(80px,10vw,150px) clamp(22px,8vw,130px);
}

.page-intro h1 {
  max-width:980px;
  margin-bottom:28px;
  font-size:clamp(3rem,5.4vw,6rem);
  font-weight:500;
  line-height:.98;
}

.page-intro p {
  max-width:680px;
  font-size:1.08rem;
}

.contact-page {
  background:var(--cream);
  min-height:calc(100svh - 84px);
}

.contact-form-section {
  grid-template-columns:minmax(0,.62fr) minmax(0,1fr);
  align-items:start;
  gap:clamp(62px,7vw,108px);
  max-width:1380px;
  margin:0 auto;
  padding:clamp(68px,7vw,108px) clamp(22px,7vw,112px) clamp(78px,9vw,132px);
  display:grid;
}

.contact-editorial {
  min-width:0;
  position:sticky;
  top:122px;
}

.contact-form-header {
  max-width:480px;
}

.contact-form-header .eyebrow {
  margin-bottom:14px;
}

.contact-form-header h1, .contact-success h1 {
  margin-bottom:24px;
  font-size:clamp(2.85rem,4.6vw,5rem);
  font-weight:500;
  line-height:.98;
}

.contact-form-header p {
  max-width:560px;
  color:var(--plum);
  margin:0;
  font-size:clamp(1rem,1.18vw,1.12rem);
  line-height:1.68;
}

.contact-paris-note {
  background:#c8d5da94;
  border:1px solid #51495121;
  border-radius:14px;
  gap:5px;
  max-width:500px;
  margin-top:clamp(32px,4vw,50px);
  padding:18px 20px;
  display:grid;
}

.contact-paris-note strong {
  letter-spacing:.08em;
  font-size:.76rem;
}

.contact-paris-note span {
  color:var(--muted);
  font-size:.82rem;
  line-height:1.55;
}

.contact-direct {
  border-top:1px solid var(--border);
  max-width:500px;
  margin-top:clamp(30px,4vw,48px);
  padding-top:20px;
}

.contact-direct p {
  margin:0 0 7px;
  font-size:.85rem;
}

.contact-direct a, .form-error a {
  color:var(--cognac);
  text-underline-offset:4px;
  font-size:.84rem;
  font-weight:600;
}

.contact-direct-links {
  flex-wrap:wrap;
  gap:8px 18px;
  display:flex;
}

.contact-direct-links a {
  position:relative;
}

.contact-direct-links a:not(:last-child):after {
  content:",";
  color:var(--muted);
  text-decoration:none;
  position:absolute;
  left:calc(100% + 4px);
}

.guided-contact-form {
  min-width:0;
}

.form-honeypot {
  width:1px;
  height:1px;
  position:absolute;
  left:-10000px;
  overflow:hidden;
}

.form-group {
  min-width:0;
}

.form-group+.form-group {
  border-top:1px solid var(--border);
  margin-top:clamp(34px,3.5vw,46px);
  padding-top:clamp(30px,3vw,40px);
}

.form-fieldset {
  border:0;
  min-width:0;
  margin:0;
  padding:0;
}

.form-fieldset-spaced {
  margin-top:clamp(28px,3vw,38px);
}

.form-fieldset legend, .form-field>label {
  color:var(--plum);
  margin-bottom:11px;
  font-size:.82rem;
  font-weight:700;
  line-height:1.45;
  display:block;
}

.form-fieldset legend>span, .form-field>label>span[aria-hidden=true], .form-consent span>span {
  color:var(--copper);
}

.form-optional {
  color:var(--muted);
  letter-spacing:.02em;
  margin-left:7px;
  font-size:.64rem;
  font-weight:400;
}

.form-options {
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:28px;
  display:grid;
}

.form-option {
  min-width:0;
  min-height:52px;
  color:var(--muted);
  border-bottom:1px solid var(--border);
  cursor:pointer;
  align-items:center;
  gap:12px;
  padding:9px 2px;
  transition:color .18s,border-color .18s;
  display:flex;
}

.form-option:hover {
  color:var(--plum);
  border-color:var(--cognac);
}

.form-option:has(input:checked) {
  color:var(--plum);
  border-color:var(--cognac);
}

.form-option input {
  appearance:none;
  background:0 0;
  border:1px solid #51495194;
  border-radius:50%;
  flex:none;
  width:17px;
  height:17px;
  margin:0;
}

.form-option input:checked {
  background:var(--cognac);
  border-color:var(--cognac);
  box-shadow:inset 0 0 0 4px var(--cream);
}

.form-option input:focus-visible {
  outline:3px solid var(--lavender);
  outline-offset:3px;
}

.form-option span {
  min-width:0;
  font-size:.83rem;
  line-height:1.38;
}

.orientation-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  margin-top:clamp(28px,3vw,38px);
  display:grid;
}

.form-fields-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px 28px;
  display:grid;
}

.form-field {
  min-width:0;
}

.form-field-full+.form-field-full {
  margin-top:28px;
}

.form-field input, .form-field select, .form-field textarea {
  width:100%;
  min-height:50px;
  color:var(--plum);
  border:0;
  border-bottom:1px solid var(--border);
  font:inherit;
  background:0 0;
  border-radius:0;
  padding:11px 3px;
  font-size:.85rem;
  line-height:1.5;
}

.form-field select {
  color:var(--muted);
  padding-right:28px;
}

.form-field textarea {
  resize:vertical;
  background:#dce6e957;
  border:1px solid #5149511f;
  border-radius:12px;
  min-height:100px;
  padding:13px 12px;
}

.form-field input:focus-visible, .form-field select:focus-visible, .form-field textarea:focus-visible {
  border-color:var(--cognac);
  outline:0;
}

.form-field textarea::placeholder {
  color:#6c646bd1;
  opacity:1;
}

.form-consent {
  max-width:650px;
  color:var(--muted);
  cursor:pointer;
  align-items:flex-start;
  gap:12px;
  margin-top:26px;
  font-size:.78rem;
  line-height:1.55;
  display:flex;
}

.form-consent input {
  width:18px;
  height:18px;
  accent-color:var(--cognac);
  flex:none;
  margin:2px 0 0;
}

.form-submit {
  cursor:pointer;
  border:0;
  width:auto;
  margin-top:26px;
}

.form-submit:disabled {
  cursor:wait;
  opacity:.65;
}

.form-error {
  color:var(--plum);
  margin:24px 0 0;
  font-size:.84rem;
}

.contact-success {
  text-align:center;
  max-width:840px;
  margin:0 auto;
  padding:clamp(90px,12vw,170px) 22px;
}

.contact-success p {
  max-width:590px;
  margin:0 auto;
  font-size:1.05rem;
}

.contact-success .button {
  margin-top:30px;
}

.programmes-page {
  background:var(--blue-pale);
}

.programmes-intro {
  padding-bottom:clamp(70px,9vw,130px);
  position:relative;
  overflow:hidden;
}

.programmes-intro h1 {
  max-width:980px;
  font-size:clamp(2rem,3.4vw,3.8rem);
  line-height:1.04;
}

.programmes-intro h1>span {
  letter-spacing:-.02em;
  font-size:.58em;
}

.programmes-intro:after {
  opacity:.65;
  content:"";
  pointer-events:none;
  background:repeating-radial-gradient(at 50% 100%,#0000 0 18px,#51495117 19px 20px,#0000 21px 37px);
  width:min(44vw,620px);
  height:210px;
  position:absolute;
  bottom:-62px;
  right:clamp(22px,7vw,112px);
}

.programmes-list {
  isolation:isolate;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(42px,5.5vw,78px) clamp(24px,3.5vw,54px);
  padding:clamp(52px,6vw,86px) clamp(22px,7vw,112px) clamp(80px,11vw,160px);
  display:grid;
  position:relative;
  overflow:hidden;
}

.programmes-list:before {
  z-index:0;
  opacity:.56;
  content:"";
  pointer-events:none;
  background:repeating-linear-gradient(8deg,#0000 0 18px,#51495113 19px 20px,#0000 21px 38px);
  position:absolute;
  inset:0;
}

.programmes-list:after {
  z-index:0;
  opacity:.68;
  content:"";
  pointer-events:none;
  background:repeating-radial-gradient(at 45%,#0000 0 25px,#5149511a 26px 28px,#0000 29px 47px);
  border-radius:50%;
  width:52%;
  height:460px;
  position:absolute;
  top:-90px;
  left:-8%;
}

.programme-card {
  z-index:1;
  background:var(--card);
  border:1px solid #51495124;
  border-radius:28px;
  min-width:0;
  position:relative;
  overflow:hidden;
  box-shadow:0 20px 55px #28172f12;
}

.programme-media {
  aspect-ratio:4/4.5;
  background:#e8ddd2;
  margin:0;
  position:relative;
  overflow:hidden;
}

.programme-media img {
  object-fit:cover;
  width:100%;
  height:100%;
  transition:transform .7s;
}

.programme-card:hover .programme-media img {
  transform:scale(1.025);
}

.programme-number {
  width:54px;
  height:46px;
  color:var(--paper);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  background:linear-gradient(145deg,#563e8d,#3e237d);
  border:1px solid #fff3;
  border-radius:58% 42% 52% 48%/46% 56% 44% 54%;
  place-items:center;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.7rem;
  display:grid;
  position:absolute;
  top:22px;
  left:22px;
  transform:rotate(-4deg);
  box-shadow:inset 0 1px 5px #ffffff29,0 7px 16px #3e237d29;
}

.programme-card:nth-child(2n) .programme-number {
  transform:rotate(4deg);
}

.programme-copy {
  min-height:285px;
  padding:clamp(28px,3.4vw,48px);
}

.programme-copy .eyebrow {
  margin-bottom:15px;
}

.programme-copy h2 {
  margin-bottom:18px;
  font-size:clamp(2.2rem,3vw,3.45rem);
  font-weight:500;
}

.programme-copy p {
  max-width:570px;
  margin:0;
}

.programme-card-wide {
  grid-column:1/-1;
  grid-template-columns:1.2fr .8fr;
  display:grid;
}

.programme-card-wide .programme-media {
  aspect-ratio:16/9;
}

.programme-card-wide .programme-copy {
  flex-direction:column;
  justify-content:center;
  display:flex;
}

.programmes-cta {
  background:var(--blue-soft);
  justify-content:space-between;
  align-items:end;
  gap:40px;
  padding:clamp(70px,9vw,130px) clamp(22px,7vw,112px);
  display:flex;
}

.programmes-cta h2 {
  margin:0;
  font-size:clamp(2.4rem,3.7vw,4.15rem);
  font-weight:500;
  line-height:1.02;
}

.planning-page {
  background:var(--blue-pale);
}

.planning-intro {
  position:relative;
}

.planning-status {
  color:var(--plum);
  background:var(--blue-soft);
  letter-spacing:.08em;
  text-transform:uppercase;
  border:1px solid #5149511f;
  border-radius:999px;
  margin-top:22px;
  padding:10px 15px;
  font-size:.7rem;
  font-weight:700;
  display:inline-flex;
}

.weekly-schedule, .year-overview {
  padding:clamp(70px,8vw,120px) clamp(22px,7vw,112px);
}

.weekly-schedule {
  background:var(--blue-pale);
}

.year-overview {
  background:var(--cream);
}

.planning-heading {
  grid-template-columns:1.1fr .9fr;
  align-items:end;
  gap:clamp(35px,7vw,110px);
  margin-bottom:clamp(38px,5vw,68px);
  display:grid;
}

.planning-heading h2, .planning-page-cta h2 {
  margin:0;
  font-size:clamp(2.5rem,3.8vw,4.35rem);
  font-weight:500;
  line-height:1.02;
}

.planning-heading>p {
  max-width:560px;
  margin:0;
}

.schedule-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  display:grid;
}

.schedule-card {
  background:var(--card);
  border:1px solid #51495124;
  border-radius:18px;
  min-width:0;
  padding:27px;
  box-shadow:0 14px 34px #5149510e;
}

.schedule-card-top {
  color:var(--cognac);
  letter-spacing:.035em;
  justify-content:space-between;
  gap:18px;
  font-size:.74rem;
  font-weight:700;
  display:flex;
}

.schedule-card h3 {
  min-height:58px;
  margin:42px 0 23px;
  font-size:clamp(1.65rem,2.2vw,2.25rem);
  font-weight:600;
}

.schedule-card dl {
  border-top:1px solid var(--border);
  margin:0;
  padding-top:17px;
}

.schedule-card dl>div {
  grid-template-columns:92px 1fr;
  gap:12px;
  padding:6px 0;
  display:grid;
}

.schedule-card dt {
  color:var(--muted);
  font-size:.7rem;
}

.schedule-card dd {
  margin:0;
  font-size:.76rem;
  font-weight:600;
}

.month-grid {
  border:1px solid #51495124;
  border-radius:20px;
  grid-template-columns:repeat(4,minmax(0,1fr));
  display:grid;
  overflow:hidden;
}

.month-card {
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
  background:#f3efe89e;
  min-height:190px;
  padding:25px;
}

.month-card:nth-child(4n) {
  border-right:0;
}

.month-card:nth-last-child(-n+4) {
  border-bottom:0;
}

.month-card>span {
  color:var(--cognac);
  font-size:.68rem;
  font-weight:700;
}

.month-card h3 {
  margin:34px 0 10px;
  font-size:1.42rem;
  font-weight:600;
}

.month-card p {
  margin:0;
  font-size:.78rem;
  line-height:1.55;
}

.month-active {
  background:var(--blue-soft);
}

.month-pause {
  background:#a7bac575;
}

.month-summer {
  background:#c8d5dab8;
}

.planning-page-cta {
  background:var(--blue-soft);
  justify-content:space-between;
  align-items:end;
  gap:50px;
  padding:clamp(75px,9vw,132px) clamp(22px,7vw,112px);
  display:flex;
}

.planning-page-cta p {
  max-width:620px;
  margin:22px 0 0;
}

.planning-page-cta .button {
  flex:none;
}

.pricing-intro p {
  margin:0;
}

.pricing-intro p+p {
  margin-top:6px;
}

.pricing-family {
  background:var(--cream);
  padding:clamp(65px,8vw,115px) clamp(22px,8vw,130px);
}

.pricing-family-blue {
  background:var(--blue-pale);
}

.pricing-family>header {
  margin-bottom:42px;
}

.pricing-family h2 {
  margin:0;
  font-size:clamp(2.5rem,3.8vw,4.35rem);
  font-weight:500;
}

.pricing-family>header>p {
  max-width:760px;
  margin:24px 0 0;
  line-height:1.7;
}

.pricing-table-wrap {
  border-top:1px solid var(--border);
  overflow-x:auto;
}

.pricing-table-compact {
  max-width:760px;
}

.pricing-table {
  border-collapse:collapse;
  width:100%;
  color:var(--plum);
}

.pricing-table caption {
  clip:rect(0,0,0,0);
  white-space:nowrap;
  width:1px;
  height:1px;
  position:absolute;
  overflow:hidden;
}

.pricing-table th, .pricing-table td {
  text-align:left;
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:22px 24px;
}

.pricing-table th:last-child, .pricing-table td:last-child {
  border-right:0;
}

.pricing-table thead th {
  color:var(--cognac);
  letter-spacing:.055em;
  text-transform:uppercase;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.72rem;
}

.pricing-table tbody th {
  font-family:Montserrat,Arial,sans-serif;
  font-size:.88rem;
  font-weight:600;
}

.pricing-table tbody td {
  font-size:1rem;
}

.pricing-table tbody td:nth-last-child(-n+2) {
  font-family:Montserrat,Arial,sans-serif;
  font-size:clamp(1.15rem,1.5vw,1.55rem);
  font-weight:600;
}

.pricing-note {
  margin:24px 0 0;
  font-size:.88rem;
}

.pricing-cta {
  background:var(--blue-soft);
  justify-content:space-between;
  align-items:end;
  gap:40px;
  padding:clamp(70px,9vw,130px) clamp(22px,8vw,130px);
  display:flex;
}

.pricing-cta p {
  max-width:560px;
  margin:22px 0 0;
}

.footer {
  padding:44px var(--page-gutter) 24px;
  background:var(--cream);
  border-top:1px solid var(--border);
  grid-template-columns:1fr 1fr auto;
  align-items:center;
  gap:24px 52px;
  display:grid;
}

.footer-brand {
  align-items:center;
  gap:12px;
  text-decoration:none;
  display:inline-flex;
}

.footer-brand img {
  object-fit:cover;
  border-radius:16px;
  width:52px;
  height:52px;
}

.footer-brand strong {
  font-family:Montserrat,Arial,sans-serif;
  font-size:1.15rem;
}

.footer>p {
  margin:0;
  font-size:.82rem;
}

.footer-links {
  gap:24px;
  font-size:.78rem;
  font-weight:600;
  display:flex;
}

.footer-links a {
  text-decoration:none;
}

.footer-booking {
  color:var(--cognac);
}

.footer-legal {
  border-top:1px solid var(--border);
  grid-column:1/-1;
  padding-top:22px;
  color:#5f585f!important;
  font-size:.72rem!important;
}

@media (width<=1050px) {
  .site-header {
    min-height:74px;
  }
  .menu-toggle {
    cursor:pointer;
    align-items:center;
    min-height:44px;
    display:inline-flex;
  }
  .main-nav {
    background:var(--cream);
    border-bottom:1px solid var(--border);
    flex-direction:column;
    align-items:stretch;
    gap:2px;
    padding:24px;
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    box-shadow:0 20px 40px #28172f14;
  }
  .menu-open .main-nav {
    display:flex;
  }
  .main-nav>a {
    padding:14px 10px;
  }
  .nav-booking {
    text-align:center;
    margin-top:8px;
  }
  .hero-section {
    grid-template-columns:1fr 1fr;
    min-height:auto;
    padding-top:55px;
  }
  .hero-copy h1 {
    font-size:clamp(2.9rem,5.8vw,4.6rem);
  }
  .home-intro-section {
    grid-template-columns:1fr 1fr;
  }
  .home-programmes-teaser {
    min-height:560px;
  }
  .home-programmes-background {
    width:55%;
    height:82%;
    bottom:5%;
    right:1%;
  }
  .home-programmes-copy {
    width:min(45%,620px);
    padding-left:clamp(32px,6vw,72px);
  }
  .teacher-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .teacher-card:last-child {
    grid-column:1/-1;
    grid-template-columns:1fr 1fr;
    display:grid;
  }
  .course-grid {
    grid-template-columns:1fr;
  }
  .course-card {
    border-right:0;
    border-bottom:1px solid var(--border);
    min-height:190px;
  }
  .course-card:last-child {
    border-bottom:0;
  }
  .course-card h3 {
    margin-top:34px;
  }
  .practice-format-grid {
    grid-template-columns:1fr 1fr;
  }
  .practice-format-card {
    min-height:350px;
  }
  .practice-format-card:nth-child(2) {
    border-right:0;
  }
  .practice-format-card:last-child {
    border-top:1px solid var(--border);
    grid-column:1/-1;
    min-height:280px;
  }
  .schedule-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .month-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .month-card:nth-child(4n) {
    border-right:1px solid var(--border);
  }
  .month-card:nth-last-child(-n+4) {
    border-bottom:1px solid var(--border);
  }
  .month-card:nth-child(3n) {
    border-right:0;
  }
  .month-card:nth-last-child(-n+3) {
    border-bottom:0;
  }
  .contact-form-section {
    grid-template-columns:minmax(0,.72fr) minmax(0,1fr);
    gap:52px;
  }
  .footer {
    grid-template-columns:1fr 1fr;
  }
  .footer-links {
    grid-column:1/-1;
  }
}

@media (width<=720px) {
  html {
    scroll-padding-top:72px;
  }
  .site-header {
    padding-inline:16px;
  }
  .page-back-navigation {
    padding:8px 18px;
  }
  .brand img {
    width:48px;
    height:48px;
    padding:2px 4px;
  }
  .hero-section {
    background:#3e237d;
    border-radius:24px;
    flex-direction:column;
    gap:30px;
    margin:14px 12px 0;
    padding:42px 18px 28px;
    display:flex;
  }
  .hero-copy {
    width:100%;
  }
  .hero-copy h1 {
    text-wrap:balance;
    max-width:100%;
    font-size:clamp(2.45rem,10.8vw,3.35rem);
    line-height:1;
  }
  .hero-copy p, .home-intro-copy p, .home-practice-option p, .teacher-copy p, .booking-section p {
    overflow-wrap:break-word;
    max-width:100%;
  }
  .hero-copy>p br {
    content:"";
    margin-top:.18em;
    display:block;
  }
  .hero-actions {
    flex-direction:column;
  }
  .hero-actions .button {
    width:100%;
  }
  .hero-emblem {
    background:#f0edfa;
    border:1px solid #3e237d1a;
    border-radius:22px;
    width:100%;
    height:min(96vw,430px);
  }
  .hero-emblem>img {
    width:min(76%,320px);
    bottom:1%;
  }
  .home-intro-section {
    padding:52px 22px 44px;
    display:block;
  }
  .home-intro-section .eyebrow {
    margin-bottom:20px;
  }
  .home-intro-section h2 {
    white-space:normal;
    text-wrap:balance;
    max-width:100%;
    font-size:clamp(2.4rem,10.2vw,3.35rem);
  }
  .home-intro-copy {
    margin-top:30px;
  }
  .home-practice-options-section {
    padding:0 22px 52px;
  }
  .home-practice-options-grid {
    display:block;
  }
  .home-practice-option, .home-practice-option+.home-practice-option {
    border-left:0;
    padding:0;
  }
  .home-practice-option+.home-practice-option {
    border-top:1px solid var(--border);
    margin-top:38px;
    padding-top:38px;
  }
  .home-practice-option h2 {
    text-wrap:balance;
    max-width:100%;
    font-size:clamp(2.35rem,9.7vw,3.1rem);
  }
  .home-programmes-teaser {
    background:linear-gradient(180deg,var(--blue-pale) 0 48%,var(--cream) 48% 100%);
    flex-direction:column;
    align-items:stretch;
    min-height:0;
    display:flex;
  }
  .home-programmes-teaser:before {
    opacity:.82;
    width:145%;
    top:-18%;
    right:-45%;
  }
  .home-programmes-background {
    z-index:1;
    aspect-ratio:16/10;
    object-fit:contain;
    object-position:center bottom;
    filter:drop-shadow(0 15px 20px #5149511a);
    width:112%;
    max-width:none;
    height:auto;
    margin:12px -6% -2px;
    position:relative;
    inset:auto;
  }
  .home-programmes-teaser:after {
    display:none;
  }
  .home-programmes-copy {
    background:var(--cream);
    width:100%;
    padding:38px 22px 46px;
  }
  .home-programmes-copy h2 {
    text-wrap:balance;
    max-width:100%;
    font-size:clamp(2.15rem,9.5vw,2.85rem);
  }
  .home-programmes-copy .button {
    width:100%;
  }
  .section-heading {
    display:block;
  }
  .section-heading .eyebrow {
    margin-bottom:26px;
  }
  .section-heading h2, .booking-section h2 {
    text-wrap:balance;
    max-width:100%;
  }
  .practice-formats-heading {
    display:block;
  }
  .practice-formats-heading .eyebrow {
    margin-bottom:22px;
    display:block;
  }
  .practice-format-grid {
    grid-template-columns:1fr;
  }
  .practice-format-card, .practice-format-card:last-child {
    border-right:0;
    border-bottom:1px solid var(--border);
    border-top:0;
    grid-column:auto;
    min-height:0;
  }
  .practice-format-card:last-child {
    border-bottom:0;
  }
  .practice-format-card h4 {
    margin:32px 0 24px;
  }
  .practice-format-copy a {
    margin-top:30px;
    padding-top:0;
  }
  .teacher-grid {
    grid-template-columns:1fr;
  }
  .teacher-card:last-child {
    grid-column:auto;
    display:block;
  }
  .teacher-photo {
    aspect-ratio:1;
  }
  .teacher-copy {
    min-height:235px;
  }
  .teacher-profile-hero {
    grid-template-columns:1fr;
    gap:36px;
    min-height:auto;
  }
  .teacher-profile-photo {
    width:100%;
  }
  .teacher-profile-intro h1 {
    font-size:clamp(2.8rem,12vw,4.4rem);
  }
  .teacher-approach {
    grid-template-columns:1fr;
    gap:38px;
  }
  .teacher-approach-points {
    grid-template-columns:1fr;
  }
  .teacher-profile-actions {
    flex-direction:column;
  }
  .teacher-profile-actions .button {
    width:100%;
  }
  .planning-section, .philosophy-section, .values-section {
    grid-template-columns:1fr;
  }
  .planning-section {
    align-items:start;
  }
  .values-section ul {
    margin-top:8px;
  }
  .planning-heading {
    grid-template-columns:1fr;
    align-items:start;
  }
  .schedule-grid {
    grid-template-columns:1fr;
  }
  .schedule-card h3 {
    min-height:0;
    margin-top:32px;
  }
  .month-grid {
    grid-template-columns:1fr;
  }
  .month-card, .month-card:nth-child(3n), .month-card:nth-child(4n), .month-card:nth-last-child(-n+3), .month-card:nth-last-child(-n+4) {
    border-right:0;
    border-bottom:1px solid var(--border);
    min-height:155px;
  }
  .month-card:last-child {
    border-bottom:0;
  }
  .planning-page-cta {
    flex-direction:column;
    align-items:flex-start;
  }
  .planning-page-cta .button {
    width:100%;
  }
  .page-intro {
    padding-top:75px;
  }
  .page-intro h1 {
    font-size:clamp(2.8rem,13vw,4.5rem);
  }
  .contact-form-section {
    padding:48px 22px 66px;
    display:block;
  }
  .contact-editorial {
    position:static;
  }
  .contact-form-header h1, .contact-success h1 {
    font-size:clamp(2.5rem,10.5vw,3.3rem);
  }
  .contact-paris-note, .contact-direct {
    margin-top:28px;
  }
  .guided-contact-form {
    border-top:1px solid var(--border);
    margin-top:38px;
    padding-top:32px;
  }
  .form-options, .orientation-grid, .form-fields-grid {
    grid-template-columns:1fr;
  }
  .orientation-grid, .form-fields-grid {
    gap:24px;
  }
  .form-group+.form-group {
    margin-top:32px;
    padding-top:28px;
  }
  .form-option {
    min-height:52px;
  }
  .form-submit {
    width:100%;
  }
  .programmes-list {
    grid-template-columns:1fr;
  }
  .programme-card-wide {
    grid-column:auto;
    display:block;
  }
  .programme-card-wide .programme-media {
    aspect-ratio:4/3;
  }
  .programme-copy {
    min-height:0;
  }
  .programmes-intro:after {
    opacity:.42;
    width:92%;
    right:-24%;
  }
  .programmes-list {
    row-gap:38px;
    padding-top:48px;
  }
  .programmes-list:before {
    opacity:.4;
  }
  .programmes-list:after {
    opacity:.48;
    width:115%;
    height:360px;
    top:-80px;
    left:-46%;
  }
  .programmes-cta {
    flex-direction:column;
    align-items:flex-start;
  }
  .programmes-cta .button {
    width:100%;
  }
  .pricing-family {
    padding-inline:22px;
  }
  .pricing-table {
    min-width:650px;
  }
  .pricing-table th, .pricing-table td {
    padding:18px 16px;
  }
  .pricing-cta {
    flex-direction:column;
    align-items:flex-start;
  }
  .pricing-cta .button {
    width:100%;
  }
  .footer {
    grid-template-columns:1fr;
  }
  .footer-links {
    flex-wrap:wrap;
    grid-column:auto;
  }
  .footer-legal {
    grid-column:auto;
  }
}

.site-header {
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  background:#fbfaf7;
}

.eyebrow {
  color:var(--brand-violet)!important;
}

h1, h2, h3 {
  font-family:Montserrat,Arial,sans-serif;
  font-weight:700!important;
}

.home-paths-section {
  padding:clamp(70px,7vw,104px) var(--page-gutter);
  background:#fff;
}

.home-paths-heading {
  justify-content:space-between;
  align-items:flex-end;
  gap:32px;
  margin-bottom:clamp(34px,4vw,54px);
  display:flex;
}

.home-paths-heading h2 {
  color:var(--title-blue);
  white-space:nowrap;
  margin:0;
  font-size:clamp(2rem,3vw,3.25rem);
  line-height:1;
}

.home-paths-grid {
  border-block:1px solid var(--border);
  grid-template-columns:repeat(3,1fr);
  display:grid;
}

.home-path-card {
  border-right:1px solid var(--border);
  flex-direction:column;
  min-height:245px;
  padding:30px clamp(24px,3vw,44px);
  display:flex;
}

.home-path-card:last-child {
  border-right:0;
}

.home-path-card>span {
  color:var(--brand-violet);
  letter-spacing:.14em;
  font-size:.72rem;
  font-weight:700;
}

.home-path-card h3 {
  color:var(--title-blue);
  white-space:nowrap;
  margin:42px 0 10px;
  font-size:clamp(1.65rem,2vw,2.15rem);
  line-height:1;
}

.home-path-card p {
  margin:0;
  font-size:.96rem;
}

.home-path-card a {
  color:var(--plum);
  margin-top:auto;
  padding-top:24px;
  font-size:.78rem;
  font-weight:700;
  text-decoration:none;
}

.home-programmes-teaser {
  min-height:clamp(430px,35vw,550px);
}

.home-programmes-copy h2 {
  color:var(--title-blue);
  white-space:nowrap;
  font-size:clamp(1.85rem,2.25vw,2.7rem);
  line-height:1;
}

.teachers-section .section-heading {
  text-align:center;
  display:block;
}

.teachers-section .section-heading>.eyebrow {
  display:block;
}

.teachers-section .section-heading h2 {
  max-width:none;
  color:var(--plum);
  white-space:nowrap;
  margin-inline:auto;
  font-size:clamp(1.9rem,2.75vw,3rem);
  line-height:1;
}

.teachers-section .section-intro {
  max-width:920px;
  margin:20px auto 0;
}

.teacher-photo {
  aspect-ratio:4/4.25;
}

.teacher-copy {
  min-height:150px;
  padding:23px 27px 25px;
}

.teacher-copy h3 {
  color:var(--title-blue);
}

.booking-section h2 {
  max-width:none;
  color:var(--plum);
  white-space:nowrap;
  font-size:clamp(1.9rem,3vw,3.25rem);
}

.footer-brand img {
  object-fit:contain;
  background:0 0;
  border-radius:0;
  padding:2px;
}

@media (width<=900px) {
  .home-paths-heading {
    display:block;
  }
  .home-paths-heading h2, .home-programmes-copy h2, .teachers-section .section-heading h2, .booking-section h2 {
    white-space:normal;
  }
  .home-paths-grid {
    grid-template-columns:1fr;
  }
  .home-path-card {
    border-right:0;
    border-bottom:1px solid var(--border);
    min-height:190px;
  }
  .home-path-card:last-child {
    border-bottom:0;
  }
}

@media (width<=720px) {
  .home-paths-section {
    padding:52px 22px;
  }
  .home-paths-heading h2 {
    font-size:clamp(1.9rem,9vw,2.55rem);
  }
  .home-path-card {
    padding-inline:4px;
  }
  .home-path-card h3 {
    margin-top:26px;
  }
  .teachers-section .section-heading h2, .booking-section h2 {
    font-size:clamp(1.75rem,8vw,2.35rem);
  }
  .teacher-photo {
    aspect-ratio:4/4.25;
  }
  .teacher-copy {
    min-height:140px;
  }
}

@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *, :before, :after {
    transition-duration:.01ms!important;
  }
}

.premium-home {
  color:#211936;
  background:#f8f5ef;
}

.premium-home .premium-kicker {
  color:#ec7628;
  letter-spacing:.18em;
  font-size:.72rem;
  font-weight:800;
  line-height:1.2;
  display:block;
}

.premium-home .premium-hero-copy .premium-kicker {
  font-size:.84rem;
  letter-spacing:.16em;
}

.premium-hero {
  background:#f8f5ef;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  min-height:calc(100svh - 112px);
  display:grid;
  overflow:hidden;
}

.premium-hero-copy {
  z-index:2;
  flex-direction:column;
  justify-content:center;
  padding:clamp(72px,8vw,130px) clamp(38px,8vw,140px);
  display:flex;
  position:relative;
}

.premium-hero-copy h1 {
  color:#241745;
  letter-spacing:-.06em;
  margin:28px 0 24px;
  font-size:clamp(4.2rem,6.4vw,7.4rem);
  line-height:1.1;
  font-weight:700!important;
}

.premium-hero-copy>p {
  color:#4a4354;
  margin:0;
  font-size:clamp(1.25rem,1.7vw,1.75rem);
  font-weight:500;
  line-height:1.45;
}

.premium-hero-actions {
  align-items:center;
  gap:28px;
  margin-top:48px;
  display:flex;
}

.premium-hero-actions .button {
  background:#432486;
  border-color:#432486;
  min-height:58px;
  padding-inline:29px;
}

.premium-hero-actions>a:not(.button) {
  color:#241745;
  font-size:.84rem;
  font-weight:700;
  text-decoration:none;
}

.premium-hero-actions>a:not(.button) span {
  color:#ec7628;
  margin-left:8px;
  display:inline-block;
}

.premium-hero-note {
  color:#6b6277;
  letter-spacing:.1em;
  text-transform:uppercase;
  gap:28px;
  margin-top:auto;
  padding-top:64px;
  font-size:.69rem;
  font-weight:700;
  display:flex;
}

.premium-hero-visual {
  background:linear-gradient(145deg,#efeaf8 0%,#f7f3ed 64%,#f2e3d1 100%);
  border-bottom-left-radius:120px;
  place-items:center;
  min-height:680px;
  display:grid;
  position:relative;
  overflow:hidden;
}

.premium-hero-word {
  color:#4324860e;
  letter-spacing:-.12em;
  font-size:clamp(12rem,27vw,31rem);
  font-weight:800;
  line-height:.8;
  position:absolute;
  top:3%;
  right:-3%;
}

.premium-orbit {
  aspect-ratio:1;
  border:1px solid #43248629;
  border-radius:50%;
  width:min(72%,690px);
  position:absolute;
}

.premium-halo {
  filter:blur(5px);
  background:radial-gradient(#ec76284d,#ec762800 70%);
  width:48%;
  height:11%;
  position:absolute;
  bottom:9%;
  left:50%;
  translate:-50%;
}

.premium-hero-visual img {
  z-index:1;
  object-fit:contain;
  filter:drop-shadow(0 22px 24px #25154624);
  width:min(60%,550px);
  max-height:74%;
  position:relative;
}

.premium-practice {
  padding:clamp(62px,5.5vw,88px) var(--page-gutter);
  background:#fff;
}

.premium-section-heading {
  grid-template-columns:.72fr 1.28fr;
  align-items:end;
  gap:40px;
  margin-bottom:55px;
  display:grid;
}

.premium-section-heading h2 {
  color:#241745;
  letter-spacing:-.045em;
  max-width:760px;
  margin:0;
  font-size:clamp(2.6rem,4.2vw,5rem);
  line-height:1.04;
}

.premium-practice-grid {
  border-block:1px solid #d9d2e5;
  grid-template-columns:repeat(3,1fr);
  display:grid;
}

.premium-practice-grid>a {
  color:#241745;
  border-right:1px solid #d9d2e5;
  grid-template-columns:auto 1fr auto;
  align-items:start;
  gap:25px;
  min-height:235px;
  padding:30px 35px;
  text-decoration:none;
  transition:background .25s,color .25s;
  display:grid;
  position:relative;
}

.premium-practice-grid>a:last-child {
  border-right:0;
}

.premium-practice-grid>a>span {
  color:#ec7628;
  letter-spacing:.14em;
  font-size:.7rem;
  font-weight:800;
}

.premium-practice-grid>a>div {
  align-self:center;
}

.premium-practice-grid h3 {
  letter-spacing:-.035em;
  margin:0 0 10px;
  font-size:clamp(1.55rem,2vw,2.1rem);
}

.premium-practice-grid p {
  color:#686071;
  margin:0;
  font-size:.92rem;
}

.premium-practice-grid b {
  color:#ec7628;
  align-self:end;
  font-size:1.15rem;
}

.premium-practice-grid>a:hover {
  color:#fff;
  background:#432486;
}

.premium-practice-grid>a:hover p, .premium-practice-grid>a:focus-visible p {
  color:#ffffffd1!important;
}

.premium-programmes {
  min-height:400px;
  padding:clamp(75px,8vw,130px) var(--page-gutter);
  color:#fff;
  background:#241745;
  grid-template-columns:.65fr 1.35fr auto;
  align-items:center;
  gap:44px;
  display:grid;
  position:relative;
  overflow:hidden;
}

.premium-programmes:after {
  content:"";
  aspect-ratio:1;
  border:1px solid #ffffff26;
  border-radius:50%;
  width:46%;
  position:absolute;
  top:-60%;
  right:-10%;
}

.premium-programmes-number {
  color:#ffffff1a;
  letter-spacing:-.11em;
  font-size:clamp(8rem,17vw,18rem);
  font-weight:800;
  line-height:.7;
}

.premium-programmes h2 {
  color:#fff;
  letter-spacing:-.045em;
  max-width:760px;
  margin:25px 0 0;
  font-size:clamp(2.7rem,4.2vw,5rem);
  line-height:1.03;
}

.premium-programmes>a {
  z-index:1;
  color:#fff;
  white-space:nowrap;
  align-self:end;
  font-size:.82rem;
  font-weight:700;
  text-decoration:none;
  position:relative;
}

.premium-programmes>a span {
  color:#ec7628;
  margin-left:10px;
}

.premium-teachers {
  padding:clamp(66px,6vw,96px) var(--page-gutter);
  background:#f2ede5;
}

.premium-teachers-heading {
  grid-template-columns:.45fr 1.25fr .7fr;
  align-items:end;
  gap:40px;
  max-width:1320px;
  margin:0 auto clamp(48px,5vw,70px);
  display:grid;
}

.premium-teachers-heading h2 {
  color:#241745;
  letter-spacing:-.045em;
  margin:0;
  font-size:clamp(2.5rem,4vw,4.7rem);
  line-height:1.02;
}

.premium-teachers-heading p {
  grid-column:1/-1;
  max-width:none;
  color:#62596b;
  margin:clamp(20px,2.4vw,32px) 0 0;
  padding:clamp(14px,1.8vw,22px) clamp(16px,2vw,26px);
  border:.5pt solid #ec7628;
  border-radius:3px;
  font-size:clamp(1.06rem,1.3vw,1.2rem);
  line-height:1.75;
}

.premium-teachers-heading p strong {
  font-weight:700;
  color:#241745;
}

.premium-teacher-grid {
  grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,2.2vw,34px);
  max-width:1320px;
  margin-inline:auto;
  display:grid;
}

.premium-teacher-grid article a {
  color:inherit;
  text-decoration:none;
  display:block;
}

.premium-teacher-grid figure {
  aspect-ratio:.88;
  background:#e7dff0;
  margin:0;
  position:relative;
  overflow:hidden;
}

.premium-teacher-grid figure img {
  object-fit:cover;
  width:100%;
  height:100%;
  transition:transform .6s cubic-bezier(.2,.8,.2,1);
}

.premium-teacher-grid figure span {
  color:#fff;
  letter-spacing:.08em;
  background:#432486;
  border-radius:50%;
  place-items:center;
  width:38px;
  height:38px;
  font-size:.67rem;
  font-weight:800;
  display:grid;
  position:absolute;
  top:19px;
  left:21px;
}

.premium-teacher-grid article a:hover img {
  transform:scale(1.025);
}

.premium-teacher-grid article a>div {
  border-bottom:1px solid #bdb3c8;
  min-height:128px;
  padding:25px 42px 20px 2px;
  position:relative;
}

.premium-teacher-grid h3 {
  color:#432486;
  letter-spacing:-.04em;
  margin:0 0 8px;
  font-size:clamp(1.6rem,2.2vw,2.35rem);
}

.premium-teacher-grid p {
  color:#5f5668;
  margin:0;
  font-size:.84rem;
  line-height:1.5;
}

.premium-teacher-grid b {
  color:#ec7628;
  font-size:1.1rem;
  position:absolute;
  top:28px;
  right:3px;
}

.premium-booking {
  padding:clamp(68px,6vw,92px) var(--page-gutter);
  color:#fff;
  background:#432486;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:60px;
  display:grid;
}

.premium-booking h2 {
  color:#fff;
  letter-spacing:-.045em;
  margin:22px 0 16px;
  font-size:clamp(2.4rem,3.8vw,4.5rem);
  line-height:1.04;
}

.premium-home .premium-booking p {
  margin:0;
  font-size:1rem;
  color:#ffffffd1!important;
}

.premium-booking .button {
  color:#241745;
  background:#fff;
  border-color:#fff;
}

.premium-home+.footer {
  background:#f8f5ef;
  padding-top:52px;
  padding-bottom:28px;
}

@media (width<=1050px) {
  .premium-hero {
    grid-template-columns:1fr 1fr;
  }
  .premium-hero-copy {
    padding-inline:6vw;
  }
  .premium-hero-copy h1 {
    font-size:clamp(3.8rem,7vw,5.7rem);
  }
  .premium-section-heading {
    grid-template-columns:.5fr 1.5fr;
  }
  .premium-programmes {
    grid-template-columns:auto 1fr;
  }
  .premium-programmes>a {
    grid-column:2;
    justify-self:start;
  }
  .premium-teachers-heading {
    grid-template-columns:1fr 2fr;
  }
  .premium-teachers-heading p {
    grid-column:1/-1;
  }
}

@media (width<=820px) {
  .premium-hero {
    flex-direction:column;
    min-height:auto;
    display:flex;
  }
  .premium-hero-copy {
    min-height:500px;
    padding:58px 24px 38px;
    overflow:hidden;
  }
  .premium-hero-copy h1 {
    letter-spacing:-.05em;
    overflow-wrap:normal;
    max-width:100%;
    margin-top:20px;
    font-size:clamp(3.05rem,13.8vw,4.25rem);
    line-height:1.08;
    white-space:normal!important;
  }
  .premium-hero-copy>p {
    font-size:1.2rem;
  }
  .premium-hero-actions {
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
    margin-top:36px;
  }
  .premium-hero-actions .button {
    box-sizing:border-box;
    width:100%;
  }
  .premium-hero-note {
    justify-content:space-between;
    gap:12px;
    margin-top:38px;
    padding-top:0;
    font-size:.6rem;
  }
  .premium-hero-note span {
    white-space:nowrap;
  }
  .premium-hero-visual {
    border-top-left-radius:56px;
    border-bottom-left-radius:0;
    min-height:360px;
  }
  .premium-hero-visual img {
    width:min(70%,390px);
  }
  .premium-hero-word {
    max-width:100%;
    font-size:clamp(9rem,42vw,15rem);
    top:8%;
    right:0;
  }
  .premium-section-heading {
    margin-bottom:34px;
    display:block;
  }
  .premium-section-heading h2 {
    margin-top:20px;
    font-size:clamp(2.45rem,12vw,3.4rem);
  }
  .premium-practice {
    padding:50px 22px;
  }
  .premium-practice-grid {
    grid-template-columns:1fr;
  }
  .premium-practice-grid>a {
    border-bottom:1px solid #d9d2e5;
    border-right:0;
    min-height:160px;
    padding:25px 4px;
  }
  .premium-practice-grid>a:last-child {
    border-bottom:0;
  }
  .premium-programmes {
    grid-template-columns:1fr;
    gap:26px;
    min-height:430px;
    padding:70px 22px;
  }
  .premium-programmes-number {
    font-size:clamp(8rem,38vw,11rem);
    position:absolute;
    top:12%;
    right:4%;
  }
  .premium-programmes h2 {
    font-size:clamp(2.5rem,12vw,3.6rem);
    position:relative;
  }
  .premium-programmes>a {
    grid-column:auto;
    align-self:auto;
  }
  .premium-teachers {
    padding:52px 22px;
  }
  .premium-teachers-heading {
    display:block;
  }
  .premium-teachers-heading h2 {
    margin:20px 0;
    font-size:clamp(2.25rem,10.2vw,3.1rem);
  }
  .premium-teacher-grid {
    grid-template-columns:1fr;
    gap:28px;
  }
  .premium-teacher-grid figure {
    aspect-ratio:1.12;
  }
  .premium-teacher-grid article a>div {
    min-height:102px;
    padding-top:20px;
    padding-bottom:16px;
  }
  .premium-booking {
    grid-template-columns:1fr;
    gap:30px;
    padding:62px 22px;
  }
  .premium-booking h2 {
    font-size:clamp(2.35rem,11vw,3.3rem);
  }
  .premium-booking .button {
    width:100%;
  }
}

.home-seo-services {
  padding:clamp(62px,5.5vw,88px) var(--page-gutter);
  background:#f8f5ef;
}

.home-seo-services>header {
  max-width:920px;
}

.home-seo-services h2, .programmes-guide h2, .service-related h2, .seo-editorial-section h2, .seo-faq h2 {
  color:#241745;
  letter-spacing:-.045em;
  margin:18px 0 22px;
  font-size:clamp(2.1rem,3.5vw,4rem);
  line-height:1;
}

.home-seo-services>header p {
  color:#62596b;
  max-width:820px;
  font-size:1.05rem;
  line-height:1.75;
}

.home-seo-links {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:45px;
  display:grid;
}

.home-seo-links a {
  color:#241745;
  background:#fff;
  border:1px solid #ded6e5;
  flex-direction:column;
  justify-content:space-between;
  min-height:150px;
  padding:28px;
  text-decoration:none;
  transition:transform .2s,border-color .2s;
  display:flex;
}

.home-seo-links a:hover {
  border-color:#432486;
  transform:translateY(-3px);
}

.home-seo-links strong {
  font-size:clamp(1.35rem,2vw,1.9rem);
}

.home-seo-links span {
  color:#62596b;
  font-size:.86rem;
}

.programmes-guide, .seo-editorial-section {
  padding:clamp(70px,7vw,110px) var(--page-gutter);
  background:#f8f5ef;
  grid-template-columns:.8fr 1.2fr;
  gap:clamp(42px,8vw,120px);
  display:grid;
}

.programmes-guide>div:last-child, .seo-editorial-section>div:last-child {
  max-width:760px;
}

.programmes-guide p, .seo-editorial-section p {
  color:#554b55;
  font-size:1.02rem;
  line-height:1.78;
}

.programmes-guide .button {
  margin-top:18px;
}

.seo-editorial-section a {
  color:#432486;
  text-underline-offset:4px;
  font-weight:700;
}

.service-intro p {
  max-width:850px;
  font-size:clamp(1rem,1.25vw,1.16rem);
  line-height:1.75;
}

.service-intro .button {
  margin-top:28px;
}

.service-sections {
  background:#fff;
}

.service-section {
  padding:clamp(70px,7vw,110px) var(--page-gutter);
  grid-template-columns:.75fr 1.25fr;
  gap:clamp(42px,8vw,120px);
  display:grid;
}

.service-section-tint {
  background:#f2ede5;
}

.service-section h2 {
  color:#241745;
  letter-spacing:-.045em;
  max-width:620px;
  margin:18px 0 0;
  font-size:clamp(2.1rem,3.4vw,3.8rem);
  line-height:1;
}

.service-section>div:last-child {
  max-width:760px;
}

.service-section p {
  color:#554b55;
  font-size:1.04rem;
  line-height:1.8;
}

.service-section ul {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 28px;
  margin:28px 0 0;
  padding:0;
  list-style:none;
  display:grid;
}

.service-section li {
  color:#241745;
  border-bottom:1px solid #ded6e5;
  padding:15px 0;
  font-weight:600;
}

.seo-faq {
  padding:clamp(70px,7vw,110px) var(--page-gutter);
  background:#fff;
}

.seo-content-inner {
  max-width:980px;
  margin-inline:auto;
}

.seo-faq-list {
  border-top:1px solid #ded6e5;
  margin-top:36px;
}

.seo-faq details {
  border-bottom:1px solid #ded6e5;
}

.seo-faq summary {
  cursor:pointer;
  color:#241745;
  padding:22px 42px 22px 0;
  font-size:clamp(1.05rem,1.4vw,1.25rem);
  font-weight:700;
}

.seo-faq details p {
  color:#554b55;
  max-width:800px;
  margin:-5px 0 24px;
  line-height:1.7;
}

.service-related {
  padding:clamp(68px,6vw,95px) var(--page-gutter);
  color:#fff;
  background:#241745;
  grid-template-columns:.8fr 1.2fr;
  gap:50px;
  display:grid;
}

.service-related h2, .service-related .eyebrow {
  color:#fff!important;
}

.service-related-links {
  align-content:center;
  display:grid;
}

.service-related-links a {
  color:#fff;
  border-bottom:1px solid #ffffff3d;
  justify-content:space-between;
  padding:18px 0;
  font-weight:700;
  text-decoration:none;
  display:flex;
}

.service-related-links span {
  color:#ec7628;
}

@media (width<=820px) {
  .home-seo-services {
    padding:50px 22px;
  }
  .home-seo-links {
    grid-template-columns:1fr;
    gap:12px;
    margin-top:32px;
  }
  .home-seo-links a {
    min-height:120px;
    padding:22px;
  }
  .programmes-guide, .seo-editorial-section, .service-section, .service-related {
    grid-template-columns:1fr;
    gap:30px;
    padding:62px 22px;
  }
  .service-section ul {
    grid-template-columns:1fr;
  }
  .seo-faq {
    padding:62px 22px;
  }
}

@media (width>=600px) and (width<=820px) {
  .premium-teacher-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px;
  }
  .premium-teacher-grid article:last-child {
    grid-column:1/-1;
    justify-self:center;
    width:calc(50% - 15px);
  }
}

@media (width<=500px) {
  .premium-hero-copy {
    min-height:480px;
  }
  .premium-hero-visual {
    height:340px;
    min-height:340px;
  }
  .premium-hero-visual img {
    width:min(64%,300px);
    max-height:82%;
  }
  .premium-practice-grid>a {
    min-height:148px;
  }
  .premium-booking {
    padding-block:52px;
  }
}

/* pages professeurs: prenom mis en avant, descriptif en sous-titre (3 sept.) */

.teacher-profile-hero .teacher-profile-intro .eyebrow {
  margin-bottom:4px;
  font-size:clamp(1.9rem,4.5vw,3.5rem);
  letter-spacing:.02em;
  line-height:1.05;
}

.teacher-profile-intro .teacher-langs {
  display:block;
  margin:0 0 16px;
  color:var(--brand-violet);
  font-size:clamp(.82rem,1vw,.98rem);
  font-weight:600;
  letter-spacing:.01em;
}

.teacher-profile-hero .teacher-profile-intro h1 {
  max-width:760px;
  margin-bottom:28px;
  font-size:clamp(1.35rem,2.2vw,1.95rem);
  font-weight:600;
  line-height:1.3;
}

@media (max-width:900px) {
  .teacher-profile-hero .teacher-profile-intro .eyebrow {
    font-size:clamp(1.8rem,7vw,2.9rem);
  }
  .teacher-profile-hero .teacher-profile-intro h1 {
    font-size:clamp(1.3rem,3.8vw,1.72rem);
  }
}

/* =====================================================================
   AJOUTS DU 29/09/2026 (bandeau accueil, page Tarifs)
   ===================================================================== */

/* Bandeau « cours en présentiel » au-dessus de « Choisir sa pratique » */

.gz-announce {
  background:#432486;
  color:#fff;
  padding:clamp(34px,4vw,52px) var(--page-gutter);
  text-align:center;
}

.gz-announce-inner {
  max-width:760px;
  margin:0 auto;
}

.gz-announce p {
  color:#fff!important;
  margin:0 0 10px;
  font-size:clamp(.95rem,1.4vw,1.05rem);
  line-height:1.6;
}

.gz-announce p:last-child {
  margin-bottom:0;
}

.gz-announce-title {
  font-size:clamp(1.25rem,2.4vw,1.7rem)!important;
  letter-spacing:-.02em;
  line-height:1.25!important;
  margin-bottom:6px!important;
}

.gz-announce .gz-announce-open {
  font-size:clamp(1.05rem,1.8vw,1.25rem);
  font-weight:600;
  margin:0 0 10px;
}

.gz-announce-hours {
  font-weight:600;
}

.gz-announce .gz-announce-note {
  font-size:.85rem;
  opacity:.85;
  margin-top:-4px;
}

.gz-announce .gz-announce-offer {
  color:#f7b07a!important;
  font-weight:700;
}

/* Tarifs : réduire l'espace entre l'intro et « En visioconférence » */

.pricing-intro {
  padding-bottom:0!important;
}

.pricing-intro+.pricing-family {
  padding-top:clamp(44px,5vw,64px)!important;
}

/* Tarifs mobile : aligner l'intro sur les sections tarifaires */

@media (width<=720px) {
  .pricing-intro {
    padding-inline:22px!important;
  }
}

/* Tarifs : section présentiel collée à la section visio */

.pricing-family-inperson {
  padding-top:0!important;
}

.pricing-footnote {
  margin:14px 0 0!important;
  font-size:.8rem!important;
  color:#686071!important;
}

.pricing-family-inperson .pricing-table tbody td:nth-last-child(-n+3) {
  font-family:Montserrat,Arial,sans-serif;
  font-size:clamp(1.15rem,1.5vw,1.55rem);
  font-weight:600;
}

/* Tarifs : titre plus proche du tableau (toutes les sections tarifaires) */

.pricing-family>header {
  margin-bottom:18px!important;
}

.pricing-family>header>p {
  margin-top:16px!important;
}

.pricing-footnote.pricing-student {
  color:var(--cognac)!important;
  font-weight:700;
}

.pricing-footnote-last {
  margin-top:4px!important;
}
