/* ===================================================
   Niyaga Pizegi — Maximalist Color Design System
   =================================================== */

:root {
  --colorInk: #1e1b2e;
  --colorPaper: #faf5ec;
  --colorIndigo: #372c7d;
  --colorTeal: #0b6e6d;
  --colorPlum: #8c2a63;
  --colorCoral: #c1432b;
  --colorAmber: #f2b705;

  --colorIndigoL: color-mix(in oklch, var(--colorIndigo), white 20%);
  --colorIndigoD: color-mix(in oklch, var(--colorIndigo), black 18%);
  --colorIndigoSoft: color-mix(in oklch, var(--colorIndigo), white 88%);

  --colorTealL: color-mix(in oklch, var(--colorTeal), white 20%);
  --colorTealD: color-mix(in oklch, var(--colorTeal), black 18%);
  --colorTealSoft: color-mix(in oklch, var(--colorTeal), white 88%);

  --colorPlumL: color-mix(in oklch, var(--colorPlum), white 18%);
  --colorPlumD: color-mix(in oklch, var(--colorPlum), black 18%);
  --colorPlumSoft: color-mix(in oklch, var(--colorPlum), white 90%);

  --colorCoralL: color-mix(in oklch, var(--colorCoral), white 18%);
  --colorCoralD: color-mix(in oklch, var(--colorCoral), black 15%);
  --colorCoralSoft: color-mix(in oklch, var(--colorCoral), white 90%);

  --colorAmberL: color-mix(in oklch, var(--colorAmber), white 20%);
  --colorAmberD: color-mix(in oklch, var(--colorAmber), black 20%);
  --colorAmberSoft: color-mix(in oklch, var(--colorAmber), white 85%);

  --colorPaperD: color-mix(in oklch, var(--colorPaper), black 6%);
  --colorInkSoft: color-mix(in oklch, var(--colorInk), white 35%);

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --space-10: 8rem;

  --radiusSm: 10px;
  --radiusMd: 18px;
  --radiusLg: 28px;
  --radiusXl: 40px;

  --shadowSm: 0 1px 2px rgba(30,27,46,0.06), 0 1px 1px rgba(30,27,46,0.05);
  --shadowMd: 0 8px 20px rgba(30,27,46,0.10), 0 2px 6px rgba(30,27,46,0.08);
  --shadowLg: 0 24px 48px rgba(30,27,46,0.16), 0 8px 16px rgba(30,27,46,0.10);

  --fontHead: "Schibsted Grotesk", sans-serif;
  --fontBody: "Schibsted Grotesk", sans-serif;

  --transitionBase: all 0.3s cubic-bezier(.4,0,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--fontBody);
  color: var(--colorInk);
  background: linear-gradient(180deg, var(--colorPaper) 0%, var(--colorPaperD) 100%);
  line-height: 1.6;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1,h2,h3,h4 { font-family: var(--fontHead); margin: 0 0 var(--space-4); font-weight: 700; line-height: 1.15; color: var(--colorInk); }
p { margin: 0 0 var(--space-4); }
ul { margin: 0; padding: 0; list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
input, textarea { font-family: inherit; font-size: 1rem; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }


.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  padding: 0.9rem 1.7rem; border-radius: var(--radiusMd); font-weight: 600; font-size: 0.98rem;
  transition: var(--transitionBase); min-height: 48px; white-space: nowrap;
  box-shadow: var(--shadowSm);
}
.btn-primary { background: var(--colorIndigo); color: #fff; }
.btn-primary:hover { background: var(--colorIndigoD); transform: translateY(-2px); box-shadow: var(--shadowMd); }
.btn-primary-light { background: #fff; color: var(--colorIndigo); }
.btn-primary-light:hover { background: var(--colorIndigoSoft); transform: translateY(-2px); box-shadow: var(--shadowMd); }
.btn-ghost-light { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,0.55); }
.btn-ghost-light:hover { background: rgba(255,255,255,0.14); border-color: #fff; }
.btn-outline { background: transparent; border: 1.5px solid color-mix(in oklch, var(--colorInk), white 60%); color: var(--colorInk); }
.btn-outline:hover { background: var(--colorPaperD); }


.siteHeader {
  position: fixed; top: 0; left: 0; right: 0; z-index: 500;
  transition: background 0.4s ease, backdrop-filter 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
  border-bottom: 1px solid transparent;
}
.siteHeader.is-scrolled {
  background: rgba(250, 245, 236, 0.72);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border-bottom: 1px solid rgba(30,27,46,0.08);
  box-shadow: 0 4px 24px rgba(30,27,46,0.06);
}
.siteHeader_inner {
  max-width: 1320px; margin: 0 auto; padding: var(--space-4) var(--space-6);
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-5);
}
.siteHeader_logo { display: flex; align-items: center; gap: var(--space-3); font-weight: 800; font-size: 1.15rem; letter-spacing: -0.01em; }
.siteHeader_logoImg { width: 34px; height: 34px; }
.siteHeader_navList { display: flex; gap: var(--space-6); }
.siteHeader_navList a { font-weight: 600; font-size: 0.96rem; padding: var(--space-2) 0; position: relative; transition: var(--transitionBase); }
.siteHeader_navList a::after {
  content: ""; position: absolute; left: 0; bottom: -4px; width: 0; height: 2px; background: var(--colorCoral);
  transition: width 0.3s ease;
}
.siteHeader_navList a:hover::after, .siteHeader_navList a.is-active::after { width: 100%; }
.siteHeader_cta {
  padding: 0.7rem 1.4rem; background: var(--colorIndigo); color: #fff; border-radius: var(--radiusMd);
  font-weight: 600; font-size: 0.92rem; transition: var(--transitionBase); box-shadow: var(--shadowSm);
}
.siteHeader_cta:hover { background: var(--colorIndigoD); transform: translateY(-2px); }
.siteHeader_burger { display: none; flex-direction: column; gap: 5px; width: 44px; height: 44px; align-items: center; justify-content: center; z-index: 600; }
.siteHeader_burger span { display: block; width: 24px; height: 2.5px; background: var(--colorInk); border-radius: 2px; transition: var(--transitionBase); }


.breadcrumbBar { background: var(--colorPaperD); padding-top: 88px; }
.breadcrumbBar_inner {
  max-width: 1320px; margin: 0 auto; padding: var(--space-3) var(--space-6);
  font-size: 0.88rem; color: var(--colorInkSoft); display: flex; gap: var(--space-2); align-items: center;
}
.breadcrumbBar_inner a { color: var(--colorIndigo); font-weight: 600; }
.breadcrumbBar_inner span:last-child { color: var(--colorInk); font-weight: 600; }


.mobileMenu {
  position: fixed; inset: 0; z-index: 900;
  background: linear-gradient(160deg, var(--colorIndigo) 0%, var(--colorPlum) 60%, var(--colorCoral) 100%);
  display: flex; flex-direction: column; padding: var(--space-6);
  opacity: 0; visibility: hidden; transform: translateY(-16px);
  transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s;
}
.mobileMenu.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.mobileMenu_top { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-8); }
.mobileMenu_logo { color: #fff; font-weight: 800; font-size: 1.2rem; }
.mobileMenu_close { color: #fff; font-size: 2rem; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; }
.mobileMenu_grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); flex: 1; align-content: center; }
.mobileMenu_item {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-3);
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18); border-radius: var(--radiusLg);
  color: #fff; padding: var(--space-7) var(--space-3); font-weight: 600; text-align: center;
  transition: var(--transitionBase); min-height: 130px;
}
.mobileMenu_item i { font-size: 1.6rem; }
.mobileMenu_item:hover { background: rgba(255,255,255,0.22); transform: translateY(-4px); }


.mainHero {
  display: grid; grid-template-columns: 1.35fr 1fr; min-height: 92vh; background: var(--colorIndigo);
  position: relative; overflow: hidden;
}
.mainHero_media { position: relative; overflow: hidden; }
.mainHero_img { width: 100%; height: 100%; object-fit: cover; min-height: 480px; }
.mainHero_media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(55,44,125,0) 55%, rgba(55,44,125,0.55) 100%);
}
.mainHero_panel {
  background: var(--colorIndigoD); color: #fff; padding: calc(var(--space-10) + 24px) var(--space-7) var(--space-8);
  display: flex; flex-direction: column; justify-content: center; gap: var(--space-4);
  position: relative;
}
.mainHero_eyebrow { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.78rem; font-weight: 700; color: var(--colorAmberL); }
.mainHero_title { font-size: clamp(2.1rem, 3.4vw, 3.1rem); color: #fff; letter-spacing: -0.02em; }
.mainHero_text { color: rgba(255,255,255,0.86); font-size: 1.05rem; max-width: 46ch; }
.mainHero_facts { display: flex; flex-direction: column; gap: var(--space-3); margin: var(--space-2) 0 var(--space-3); }
.mainHero_fact { display: flex; align-items: center; gap: var(--space-3); font-size: 0.94rem; color: rgba(255,255,255,0.92); }
.mainHero_fact i { color: var(--colorAmberL); width: 20px; }
.mainHero_actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-2); }


.sectionCard { padding: var(--space-9) var(--space-6); position: relative; }
.sectionCard_inner { max-width: 1200px; margin: 0 auto; }
.sectionCard-paper { background: var(--colorPaper); }
.sectionCard-amber { background: var(--colorAmber); color: var(--colorInk); }
.sectionCard-teal { background: var(--colorTeal); color: #fff; }
.sectionCard-plum { background: var(--colorPlum); color: #fff; }
.sectionCard-coral { background: var(--colorCoral); color: #fff; }
.sectionCard-indigo { background: var(--colorIndigo); color: #fff; }

.sectionCard-teal h2, .sectionCard-teal h3, .sectionCard-plum h2, .sectionCard-plum h3,
.sectionCard-coral h2, .sectionCard-coral h3, .sectionCard-indigo h2, .sectionCard-indigo h3 { color: #fff; }

.sectionCard_kicker { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.8rem; font-weight: 700; opacity: 0.75; margin-bottom: var(--space-3); }
.sectionCard_title { font-size: clamp(1.8rem, 2.6vw, 2.5rem); max-width: 24ch; margin-bottom: var(--space-5); letter-spacing: -0.01em; }
.sectionCard_lead { max-width: 62ch; font-size: 1.05rem; opacity: 0.92; margin-bottom: var(--space-6); }

.introBlock { max-width: 820px; }
.introBlock_kicker { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.8rem; font-weight: 700; color: var(--colorCoral); margin-bottom: var(--space-3); }
.introBlock_title { font-size: clamp(1.7rem, 2.4vw, 2.3rem); margin-bottom: var(--space-5); }
.introBlock_text { font-size: 1.06rem; color: var(--colorInkSoft); max-width: 68ch; }


.featureTabs { display: grid; grid-template-columns: 280px 1fr; gap: var(--space-6); margin-top: var(--space-6); }
.featureTabs_nav { display: flex; flex-direction: column; gap: var(--space-3); }
.featureTabs_tab {
  display: flex; align-items: center; gap: var(--space-3); padding: var(--space-4) var(--space-5);
  background: rgba(30,27,46,0.06); border-radius: var(--radiusMd); font-weight: 600; text-align: left;
  transition: var(--transitionBase); color: var(--colorInk);
}
.featureTabs_tab i { width: 20px; color: var(--colorIndigo); }
.featureTabs_tab:hover { background: rgba(30,27,46,0.1); }
.featureTabs_tab.is-active { background: var(--colorInk); color: #fff; }
.featureTabs_tab.is-active i { color: var(--colorAmberL); }
.featureTabs_panels { position: relative; background: #fff; border-radius: var(--radiusLg); padding: var(--space-7); box-shadow: var(--shadowMd); min-height: 260px; }
.featureTabs_panel { display: none; animation: fadeIn 0.4s ease; }
.featureTabs_panel.is-active { display: block; }
.featureTabs_icon { font-size: 2rem; color: var(--colorIndigo); margin-bottom: var(--space-4); }
.featureTabs_panel h3 { font-size: 1.4rem; margin-bottom: var(--space-3); }
.featureTabs_panel p { font-size: 1.02rem; color: var(--colorInkSoft); max-width: 60ch; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px);} to { opacity: 1; transform: translateY(0);} }


.serviceCards { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-5); margin-top: var(--space-6); }
.serviceCard { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.16); border-radius: var(--radiusLg); padding: var(--space-6); transition: var(--transitionBase); }
.serviceCard:hover { background: rgba(255,255,255,0.14); box-shadow: var(--shadowMd); }
.serviceCard_head { display: flex; align-items: center; gap: var(--space-4); cursor: pointer; }
.serviceCard_icon { width: 52px; height: 52px; border-radius: var(--radiusMd); background: rgba(255,255,255,0.18); display: flex; align-items: center; justify-content: center; font-size: 1.3rem; flex-shrink: 0; }
.serviceCard_title { flex: 1; font-size: 1.15rem; margin: 0; }
.serviceCard_toggle { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.18); display: flex; align-items: center; justify-content: center; transition: var(--transitionBase); flex-shrink: 0; }
.serviceCard.is-expanded .serviceCard_toggle { transform: rotate(45deg); background: var(--colorAmber); color: var(--colorInk); }
.serviceCard_body { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, margin 0.4s ease; margin-top: 0; }
.serviceCard.is-expanded .serviceCard_body { max-height: 260px; margin-top: var(--space-4); }
.serviceCard_body p { opacity: 0.92; font-size: 0.98rem; }


.programGrid { display: grid; grid-template-columns: 1fr 1.15fr; gap: var(--space-7); align-items: center; margin-top: var(--space-6); }
.programGrid_img { border-radius: var(--radiusLg); box-shadow: var(--shadowLg); width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.programGrid_col { display: flex; flex-direction: column; gap: var(--space-5); }
.programItem { background: rgba(255,255,255,0.08); border-radius: var(--radiusMd); padding: var(--space-5); border: 1px solid rgba(255,255,255,0.15); }
.programItem_tag { display: inline-block; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; color: var(--colorAmberL); margin-bottom: var(--space-2); }
.programItem h3 { font-size: 1.15rem; margin-bottom: var(--space-2); }
.programItem p { font-size: 0.96rem; opacity: 0.92; margin: 0; }


.galleryGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); margin-top: var(--space-6); }
.galleryGrid_item { position: relative; border-radius: var(--radiusMd); overflow: hidden; box-shadow: var(--shadowMd); aspect-ratio: 4/3; }
.galleryGrid_item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s cubic-bezier(.2,.8,.2,1); }
.galleryGrid_item:hover img { transform: scale(1.09); }
.galleryGrid_item figcaption {
  position: absolute; left: 0; right: 0; bottom: 0; padding: var(--space-4);
  background: linear-gradient(0deg, rgba(0,0,0,0.72), rgba(0,0,0,0));
  color: #fff; font-size: 0.9rem; opacity: 0; transform: translateY(10px);
  transition: var(--transitionBase);
}
.galleryGrid_item:hover figcaption { opacity: 1; transform: translateY(0); }
.galleryGrid_item figcaption span { display: block; font-weight: 700; color: var(--colorAmberL); margin-bottom: 2px; }


.fitGrid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); margin-top: var(--space-6); }
.fitGrid_col { background: #fff; border-radius: var(--radiusLg); padding: var(--space-6); box-shadow: var(--shadowMd); }
.fitGrid_col h3 { display: flex; align-items: center; gap: var(--space-3); font-size: 1.2rem; margin-bottom: var(--space-4); }
.fitGrid_col-yes h3 i { color: var(--colorTeal); }
.fitGrid_col-no h3 i { color: var(--colorCoral); }
.fitGrid_col li { padding: var(--space-3) 0; border-top: 1px solid var(--colorPaperD); font-size: 0.98rem; color: var(--colorInkSoft); }
.fitGrid_col li:first-child { border-top: none; }


.ctaSection_inner { text-align: center; max-width: 720px; margin: 0 auto; }
.ctaSection_title { font-size: clamp(1.8rem, 2.8vw, 2.6rem); color: #fff; margin-bottom: var(--space-4); }
.ctaSection_text { color: rgba(255,255,255,0.86); font-size: 1.05rem; margin-bottom: var(--space-6); }


.innerHero { padding: calc(88px + var(--space-8)) var(--space-6) var(--space-8); }
.innerHero_inner { max-width: 780px; margin: 0 auto; text-align: center; }
.innerHero-plum { background: var(--colorPlum); color: #fff; }
.innerHero-teal { background: var(--colorTeal); color: #fff; }
.innerHero-coral { background: var(--colorCoral); color: #fff; }
.innerHero-indigo { background: var(--colorIndigo); color: #fff; }
.innerHero_eyebrow { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.8rem; font-weight: 700; color: var(--colorAmberL); }
.innerHero_title { font-size: clamp(2rem, 4vw, 3rem); color: #fff; margin: var(--space-3) 0; letter-spacing: -0.02em; }
.innerHero_text { color: rgba(255,255,255,0.88); font-size: 1.05rem; max-width: 60ch; margin: 0 auto; }


.valuesGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.valueCard { background: #fff; border-radius: var(--radiusLg); padding: var(--space-6); box-shadow: var(--shadowMd); transition: var(--transitionBase); }
.valueCard:hover { transform: translateY(-4px); box-shadow: var(--shadowLg); }
.valueCard_icon { width: 52px; height: 52px; border-radius: var(--radiusMd); background: var(--colorIndigoSoft); color: var(--colorIndigo); display: flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: var(--space-4); }
.valueCard h3 { font-size: 1.18rem; margin-bottom: var(--space-3); }
.valueCard p { color: var(--colorInkSoft); font-size: 0.98rem; margin: 0; }

.storyBlock { display: grid; grid-template-columns: 1fr 1.2fr; gap: var(--space-7); align-items: center; }
.storyBlock_img { border-radius: var(--radiusLg); box-shadow: var(--shadowLg); width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.storyBlock_content p { opacity: 0.94; }

.rulesList { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-5); margin-top: var(--space-6); }
.rulesList_item { display: flex; gap: var(--space-4); background: rgba(30,27,46,0.05); border-radius: var(--radiusMd); padding: var(--space-5); }
.rulesList_num { font-size: 1.6rem; font-weight: 800; color: var(--colorIndigo); flex-shrink: 0; }
.rulesList_item p { margin: 0; font-size: 0.98rem; color: var(--colorInkSoft); }


.scheduleGrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); margin-top: var(--space-6); }
.scheduleCard { background: #fff; border-radius: var(--radiusLg); padding: var(--space-5); box-shadow: var(--shadowMd); }
.scheduleCard_icon { width: 48px; height: 48px; border-radius: var(--radiusMd); background: var(--colorTealSoft); color: var(--colorTeal); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; margin-bottom: var(--space-4); }
.scheduleCard h3 { font-size: 1.05rem; margin-bottom: var(--space-2); }
.scheduleCard p { font-size: 0.92rem; color: var(--colorInkSoft); margin: 0; }

.weekTable { margin-top: var(--space-6); border-radius: var(--radiusLg); overflow: hidden; box-shadow: var(--shadowMd); }
.weekTable_row { display: grid; grid-template-columns: 70px 1.6fr 1.2fr; gap: var(--space-4); padding: var(--space-4) var(--space-5); background: rgba(255,255,255,0.08); border-bottom: 1px solid rgba(255,255,255,0.12); font-size: 0.95rem; }
.weekTable_row:last-child { border-bottom: none; }
.weekTable_row-head { background: rgba(255,255,255,0.18); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.78rem; }
.weekTable_row span:first-child { font-weight: 700; }


.blueprintList { display: flex; flex-direction: column; gap: var(--space-5); }
.blueprintList_item { display: flex; gap: var(--space-5); background: rgba(255,255,255,0.08); border-radius: var(--radiusLg); padding: var(--space-6); border: 1px solid rgba(255,255,255,0.14); }
.blueprintList_num { width: 52px; height: 52px; border-radius: 50%; background: var(--colorAmber); color: var(--colorInk); font-weight: 800; font-size: 1.3rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.blueprintList_content h3 { font-size: 1.2rem; margin-bottom: var(--space-2); }
.blueprintList_content p { margin: 0; opacity: 0.94; }


.contactGrid { display: grid; grid-template-columns: 0.95fr 1.1fr; gap: var(--space-8); }
.contactInfo_item { display: flex; gap: var(--space-4); margin-bottom: var(--space-5); }
.contactInfo_item i { width: 44px; height: 44px; border-radius: var(--radiusMd); background: var(--colorIndigoSoft); color: var(--colorIndigo); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contactInfo_item strong { display: block; margin-bottom: 2px; }
.contactInfo_item p { margin: 0; color: var(--colorInkSoft); }
.contactInfo_item a { color: var(--colorIndigo); font-weight: 600; }

.consultationBox { margin-top: var(--space-6); background: var(--colorAmberSoft); border-radius: var(--radiusLg); padding: var(--space-6); }
.consultationBox h3 { display: flex; align-items: center; gap: var(--space-3); font-size: 1.15rem; margin-bottom: var(--space-3); }
.consultationBox h3 i { color: var(--colorCoral); }
.consultationBox p { color: var(--colorInkSoft); font-size: 0.96rem; }

.accordionForm { background: #fff; border-radius: var(--radiusLg); box-shadow: var(--shadowLg); overflow: hidden; }
.accordionForm_section { border-bottom: 1px solid var(--colorPaperD); }
.accordionForm_section:last-of-type { border-bottom: none; }
.accordionForm_head { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: var(--space-5) var(--space-6); font-weight: 700; font-size: 1rem; }
.accordionForm_head i.accordionForm_chev { transition: transform 0.3s ease; color: var(--colorInkSoft); }
.accordionForm_section.is-open .accordionForm_chev { transform: rotate(180deg); }
.accordionForm_body { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.4s ease; padding: 0 var(--space-6); display: flex; flex-direction: column; gap: var(--space-2); }
.accordionForm_section.is-open .accordionForm_body { max-height: 500px; padding: 0 var(--space-6) var(--space-6); }
.accordionForm_body label { font-size: 0.88rem; font-weight: 600; color: var(--colorInkSoft); margin-top: var(--space-3); }
.accordionForm_body input, .accordionForm_body textarea {
  padding: var(--space-3) var(--space-4); border-radius: var(--radiusSm); border: 1.5px solid var(--colorPaperD);
  background: var(--colorPaper); transition: var(--transitionBase); resize: vertical;
}
.accordionForm_body input:focus, .accordionForm_body textarea:focus { outline: none; border-color: var(--colorIndigo); background: #fff; }
.checkboxLabel { display: flex; align-items: flex-start; gap: var(--space-3); font-size: 0.92rem; color: var(--colorInkSoft); font-weight: 400; }
.checkboxLabel input { width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; }
.checkboxLabel a { color: var(--colorIndigo); font-weight: 600; }
.accordionForm_submit { width: calc(100% - 3rem); margin: 0 var(--space-6) var(--space-6); }

.mapWrap { border-radius: var(--radiusLg); overflow: hidden; box-shadow: var(--shadowMd); margin-top: var(--space-6); }


.legalSection { padding: calc(88px + var(--space-8)) var(--space-6) var(--space-9); }
.legalSection_inner { max-width: 900px; margin: 0 auto; }
.legalSection_updated { color: var(--colorInkSoft); font-size: 0.9rem; font-weight: 600; margin-bottom: var(--space-3); }
.legalSection_title { font-size: clamp(2rem, 3.5vw, 2.8rem); margin-bottom: var(--space-7); }
.legalLayout_content h2 { font-size: 1.35rem; margin-top: var(--space-7); margin-bottom: var(--space-3); }
.legalLayout_content p { color: var(--colorInkSoft); font-size: 1rem; }
.legalLayout_content strong { color: var(--colorIndigo); }
.legalAside {
  background: var(--colorAmberSoft); border-left: 4px solid var(--colorAmber); border-radius: var(--radiusMd);
  padding: var(--space-4) var(--space-5); margin: var(--space-4) 0 var(--space-6);
}
.legalAside strong { display: block; margin-bottom: var(--space-1); color: var(--colorInk); font-size: 0.95rem; }
.legalAside p { margin: 0; font-size: 0.92rem; color: var(--colorInkSoft); }


.thanksSection { min-height: 78vh; display: flex; align-items: center; justify-content: center; padding: calc(88px + var(--space-6)) var(--space-6) var(--space-9); }
.thanksSection_inner { text-align: center; max-width: 640px; }
.thanksSection_title { font-size: clamp(2.4rem, 5vw, 4rem); margin-bottom: var(--space-5); letter-spacing: -0.02em; }
.thanksSection_text { color: var(--colorInkSoft); font-size: 1.1rem; margin-bottom: var(--space-7); }


.pageFooter { border-top: 1px solid color-mix(in oklch, var(--colorInk), white 82%); padding: var(--space-5) var(--space-6); }
.pageFooter_inner { max-width: 1320px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); flex-wrap: wrap; }
.pageFooter_logo { font-weight: 800; font-size: 1rem; }
.pageFooter_links { display: flex; gap: var(--space-5); font-size: 0.9rem; }
.pageFooter_links a { color: var(--colorInkSoft); transition: var(--transitionBase); }
.pageFooter_links a:hover { color: var(--colorIndigo); }
.pageFooter_copy { font-size: 0.85rem; color: var(--colorInkSoft); }


.cookiePanel_overlay {
  position: fixed; inset: 0; background: rgba(30,27,46,0.4); z-index: 990; opacity: 0; visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s;
}
.cookiePanel_overlay.is-open { opacity: 1; visibility: visible; }
.cookiePanel {
  position: fixed; top: 0; right: 0; height: 100%; width: 320px; max-width: 88vw; background: #fff; z-index: 995;
  box-shadow: -12px 0 40px rgba(30,27,46,0.25); transform: translateX(100%); transition: transform 0.45s cubic-bezier(.4,0,.2,1);
  display: flex; flex-direction: column; padding: var(--space-6);
}
.cookiePanel.is-open { transform: translateX(0); }
.cookiePanel_header { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-4); }
.cookiePanel_header i { font-size: 1.4rem; color: var(--colorIndigo); }
.cookiePanel_header h2 { font-size: 1.15rem; margin: 0; }
.cookiePanel_text { font-size: 0.9rem; color: var(--colorInkSoft); }
.cookiePanel_categories { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: var(--space-4); margin: var(--space-3) 0; }
.cookiePanel_row { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); border-bottom: 1px solid var(--colorPaperD); padding-bottom: var(--space-3); }
.cookiePanel_row strong { display: block; font-size: 0.92rem; margin-bottom: 2px; }
.cookiePanel_row p { font-size: 0.82rem; color: var(--colorInkSoft); margin: 0; }
.switch { position: relative; display: inline-block; width: 42px; height: 24px; flex-shrink: 0; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch_slider { position: absolute; inset: 0; background: color-mix(in oklch, var(--colorInk), white 75%); border-radius: 20px; transition: var(--transitionBase); }
.switch_slider::before { content: ""; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: var(--transitionBase); }
.switch input:checked + .switch_slider { background: var(--colorTeal); }
.switch input:checked + .switch_slider::before { transform: translateX(18px); }
.cookiePanel_actions { display: flex; flex-direction: column; gap: var(--space-3); padding-top: var(--space-3); }
.cookiePanel_save { font-size: 0.85rem; font-weight: 600; color: var(--colorIndigo); text-align: center; padding: var(--space-2); }
.cookieReopen {
  position: fixed; bottom: var(--space-5); right: var(--space-5); width: 52px; height: 52px; border-radius: 50%;
  background: var(--colorIndigo); color: #fff; display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadowMd); z-index: 400; font-size: 1.2rem; transition: var(--transitionBase);
}
.cookieReopen:hover { background: var(--colorIndigoD); transform: translateY(-3px); }

/* ===================================================
   Responsive
   =================================================== */
@media (max-width: 1080px) {
  .mainHero { grid-template-columns: 1fr; }
  .mainHero_media { min-height: 320px; }
  .mainHero_img { min-height: 320px; }
  .featureTabs { grid-template-columns: 1fr; }
  .featureTabs_nav { flex-direction: row; flex-wrap: wrap; }
  .serviceCards { grid-template-columns: 1fr; }
  .programGrid { grid-template-columns: 1fr; }
  .galleryGrid { grid-template-columns: repeat(2, 1fr); }
  .fitGrid { grid-template-columns: 1fr; }
  .valuesGrid { grid-template-columns: repeat(2, 1fr); }
  .storyBlock { grid-template-columns: 1fr; }
  .rulesList { grid-template-columns: 1fr; }
  .scheduleGrid { grid-template-columns: repeat(2, 1fr); }
  .contactGrid { grid-template-columns: 1fr; }
}

@media (max-width: 780px) {
  .siteHeader_nav, .siteHeader_cta { display: none; }
  .siteHeader_burger { display: flex; }
  .sectionCard { padding: var(--space-8) var(--space-5); }
  .galleryGrid { grid-template-columns: 1fr; }
  .valuesGrid { grid-template-columns: 1fr; }
  .scheduleGrid { grid-template-columns: 1fr; }
  .weekTable_row { grid-template-columns: 50px 1fr; }
  .weekTable_row span:last-child { grid-column: 1 / -1; padding-top: var(--space-2); color: var(--colorInkSoft); }
  .weekTable_row-head span:last-child { display: none; }
  .accordionForm_submit { width: calc(100% - 2.5rem); margin: 0 var(--space-4) var(--space-5); }
  .mainHero_panel { padding: calc(88px + var(--space-6)) var(--space-5) var(--space-7); }
  .mobileMenu_item { min-height: 110px; padding: var(--space-5) var(--space-2); }
}

@media (max-width: 480px) {
  .mobileMenu_grid { grid-template-columns: 1fr 1fr; gap: var(--space-3); }
  .cookiePanel { width: 100%; max-width: 100vw; }
}