
:root{
  --color-bg:#FBFAF6;
  --color-bg-alt:#F2EFE7;
  --color-surface:#FFFFFF;
  --color-ink:#171E1C;
  --color-ink-soft:#4B564F;
  --color-ink-faint:#7C8681;

  --color-teal-900:#0B3D3E;
  --color-teal-700:#145C57;
  --color-teal-500:#1F8A7D;
  --color-teal-300:#7FC4B8;

  --color-violet-600:#6C5CE7;
  --color-violet-400:#9C90F0;

  --color-amber-500:#F2994A;
  --color-amber-300:#F6C387;

  --gradient-hero: linear-gradient(120deg, #0B3D3E 0%, #145C57 22%, #1F8A7D 42%, #6C5CE7 72%, #F2994A 100%);
  --gradient-band: linear-gradient(115deg, #145C57 0%, #1F8A7D 45%, #6C5CE7 100%);
  --gradient-thanks: linear-gradient(125deg, #0B3D3E 0%, #1F8A7D 50%, #F2994A 100%);

  --shadow-sm: 0 1px 2px color-mix(in srgb, var(--color-ink) 8%, transparent);
  --shadow-md: 0 6px 16px -4px color-mix(in srgb, var(--color-teal-900) 18%, transparent), 0 2px 4px color-mix(in srgb, var(--color-ink) 6%, transparent);
  --shadow-lg: 0 24px 48px -12px color-mix(in srgb, var(--color-teal-900) 28%, transparent), 0 8px 16px -8px color-mix(in srgb, var(--color-ink) 12%, transparent);
  --shadow-violet: 0 16px 32px -10px color-mix(in srgb, var(--color-violet-600) 35%, transparent);

  --radius-xs: 6px;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 32px;
  --radius-full: 999px;

  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem; --space-4: 1rem;
  --space-5: 1.5rem; --space-6: 2rem; --space-8: 3rem; --space-10: 4rem;
  --space-12: 5rem; --space-16: 7rem;

  --font-heading: 'Familjen Grotesk', sans-serif;
  --font-body: 'DM Sans', sans-serif;

  --fs-hero: clamp(2.6rem, 5vw + 1.2rem, 4.6rem);
  --fs-h2: clamp(1.9rem, 2.6vw + 1rem, 2.85rem);
  --fs-h3: clamp(1.3rem, 1vw + 1rem, 1.65rem);
  --fs-body: 1.0625rem;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--color-ink);
  background: var(--color-bg);
  font-size: var(--fs-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family: var(--font-heading); margin:0; line-height:1.1; font-weight:600; }
p{ margin:0 0 var(--space-4); color: var(--color-ink-soft); }
ul{ margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }

.container{ max-width: 1200px; margin-inline:auto; padding-inline: var(--space-5); }


.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding-block: .85rem; padding-inline: 1.6rem;
  border-radius: var(--radius-full);
  font-weight:600; font-size:.95rem;
  border: 1px solid transparent;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
  min-height:44px;
}
.btn--primary{
  background: var(--gradient-band);
  color:#fff;
  box-shadow: var(--shadow-violet);
}
.btn--primary:hover{ transform: translateY(-2px); box-shadow: 0 20px 40px -8px color-mix(in srgb, var(--color-violet-600) 45%, transparent); }
.btn--ghost{
  background: color-mix(in srgb, var(--color-surface) 88%, transparent);
  color: var(--color-teal-900);
  border-color: color-mix(in srgb, var(--color-teal-900) 18%, transparent);
}
.btn--ghost:hover{ background: var(--color-surface); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn--outline{
  background:transparent;
  border-color: color-mix(in srgb, var(--color-ink) 25%, transparent);
  color: var(--color-ink);
}
.btn--outline:hover{ border-color: var(--color-teal-700); color: var(--color-teal-700); }
.btn--nav{ display:none; }


.site-header{ position: fixed; inset-inline:0; top:0; z-index:100; padding-block-start: var(--space-4); }
.nav__floating{
  margin-inline:auto; max-width: 1160px;
  padding-inline: var(--space-4);
}
.nav__inner{
  display:flex; align-items:center; justify-content:space-between; gap: var(--space-4);
  background: color-mix(in srgb, var(--color-surface) 90%, transparent);
  border-radius: var(--radius-full);
  padding: .55rem .6rem .55rem 1.1rem;
  box-shadow: var(--shadow-md);
  border:1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
  transition: background .3s var(--ease), box-shadow .3s var(--ease);
}
.site-header--scrolled .nav__inner{
  background: var(--color-surface);
  box-shadow: var(--shadow-lg);
}
.nav__brand{ display:flex; align-items:center; gap:.6rem; font-family: var(--font-heading); font-weight:700; font-size:1.1rem; color: var(--color-teal-900); }
.nav__brand-mark{ width:30px; height:30px; }
.nav__list{ display:flex; align-items:center; gap: var(--space-6); list-style:none; }
.nav__link{ font-size:.94rem; font-weight:500; color: var(--color-ink-soft); position:relative; padding-block:.3rem; transition: color .25s var(--ease); }
.nav__link::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background: var(--gradient-band); transform: scaleX(0); transition: transform .3s var(--ease); border-radius: var(--radius-full); }
.nav__link:hover{ color: var(--color-teal-900); }
.nav__link:hover::after, .nav__link--active::after{ transform: scaleX(1); }
.nav__link--active{ color: var(--color-teal-900); }
.nav__burger{ display:flex; flex-direction:column; gap:5px; width:44px; height:44px; align-items:center; justify-content:center; background:transparent; border:none; border-radius: var(--radius-full); }
.nav__burger span{ width:20px; height:2px; background: var(--color-teal-900); border-radius: var(--radius-full); transition: transform .3s var(--ease), opacity .3s var(--ease); }


.mobile-menu{
  position: fixed; inset:0; z-index:200;
  background: var(--gradient-hero);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition: opacity .4s var(--ease), visibility .4s var(--ease);
}
.mobile-menu--open{ opacity:1; visibility:visible; }
.mobile-menu__close{
  position:absolute; top: var(--space-6); right: var(--space-6);
  width:48px; height:48px; border-radius: var(--radius-full);
  background: color-mix(in srgb, #fff 20%, transparent); color:#fff; border:none;
  display:flex; align-items:center; justify-content:center; font-size:1.3rem;
  transition: background .3s var(--ease), transform .3s var(--ease);
}
.mobile-menu__close:hover{ background: color-mix(in srgb, #fff 32%, transparent); transform: rotate(90deg); }
.mobile-menu__list{ list-style:none; text-align:center; display:flex; flex-direction:column; gap: var(--space-6); }
.mobile-menu__link{ font-family: var(--font-heading); font-size: clamp(1.8rem, 6vw, 2.6rem); font-weight:600; color:#fff; opacity:.92; transition: opacity .3s var(--ease), letter-spacing .3s var(--ease); }
.mobile-menu__link:hover{ opacity:1; letter-spacing:.02em; }


.hero{ position:relative; min-height: 100vh; display:flex; align-items:center; justify-content:center; overflow:hidden; padding-block: var(--space-16) var(--space-12); }
.hero__gradient{
  position:absolute; inset:0;
  background: var(--gradient-hero);
  background-size: 200% 200%;
  animation: heroShift 16s ease-in-out infinite;
}
@keyframes heroShift{
  0%{ background-position: 0% 30%; }
  50%{ background-position: 100% 70%; }
  100%{ background-position: 0% 30%; }
}
.hero__panel{
  position:relative; z-index:2;
  max-width: 780px; margin-inline:auto; text-align:center;
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  border-radius: var(--radius-xl);
  padding: clamp(2.5rem, 5vw, 4rem);
  box-shadow: var(--shadow-lg);
}
.hero__eyebrow{ display:inline-block; font-size:.82rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color: var(--color-teal-700); margin-bottom: var(--space-4); }
.hero__title{ font-size: var(--fs-hero); margin-bottom: var(--space-5); color: var(--color-ink); }
.hero__title-gradient{
  background: var(--gradient-band);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero__subtitle{ font-size:1.1rem; color: var(--color-ink-soft); margin-bottom: var(--space-6); }
.hero__actions{ display:flex; gap: var(--space-4); justify-content:center; flex-wrap:wrap; margin-bottom: var(--space-4); }
.hero__note{ font-size:.85rem; color: var(--color-ink-faint); margin:0; }


.page-hero{ position:relative; padding-block: calc(var(--space-16) + 2rem) var(--space-12); overflow:hidden; }
.page-hero__gradient{ position:absolute; inset:0; background: var(--gradient-band); }
.page-hero__content{ position:relative; z-index:2; max-width:700px; }
.page-hero__title{ font-size: clamp(2.2rem, 4vw, 3.4rem); color:#fff; margin-block: var(--space-3); }
.page-hero__subtitle{ color: color-mix(in srgb, #fff 88%, transparent); font-size:1.05rem; }
.hero__eyebrow{ color: color-mix(in srgb, #fff 90%, transparent); font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:.82rem; }


section{ padding-block: var(--space-12); }
.section__head{ max-width: 680px; margin-bottom: var(--space-8); }
.section__eyebrow{ display:block; font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color: var(--color-teal-700); margin-bottom: var(--space-3); }
.section__heading{ font-size: var(--fs-h2); margin-bottom: var(--space-4); }
.section__intro{ color: var(--color-ink-soft); font-size:1.05rem; }


.intro{ background: var(--color-bg-alt); }
.intro__grid{ display:grid; grid-template-columns: 1fr; gap: var(--space-8); }
@container (min-width: 700px){ .intro__grid{ grid-template-columns: 1fr; } }
@media (min-width: 860px){ .intro__grid{ grid-template-columns: .9fr 1.1fr; align-items:start; } }
.intro__lead .section__heading{ font-size: var(--fs-h2); }


.stats-strip{ padding-block: var(--space-8); }
.stats-strip__grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: var(--space-6); text-align:center; }
@media (min-width: 760px){ .stats-strip__grid{ grid-template-columns: repeat(4,1fr); } }
.stats-strip__item{ display:flex; flex-direction:column; gap:.4rem; padding: var(--space-5); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.stats-strip__number{ font-family: var(--font-heading); font-size: clamp(2rem, 3vw, 2.8rem); font-weight:700; background: var(--gradient-band); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stats-strip__label{ font-size:.88rem; color: var(--color-ink-soft); }


.accordion{ container-type: inline-size; display:flex; flex-direction:column; gap: var(--space-4); }
.accordion__item{
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow:hidden;
  border: 1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);
  transition: box-shadow .3s var(--ease);
}
.accordion__item:has(.accordion__trigger[aria-expanded="true"]){ box-shadow: var(--shadow-md); }
.accordion__trigger{
  width:100%; display:flex; align-items:center; gap: var(--space-4);
  background:none; border:none; padding: var(--space-5); text-align:left;
  min-height:44px;
}
.accordion__number{ font-family: var(--font-heading); font-weight:700; color: var(--color-violet-600); font-size:1.1rem; flex-shrink:0; }
.accordion__title-group{ display:flex; flex-direction:column; gap:.2rem; flex:1; }
.accordion__title{ font-family: var(--font-heading); font-weight:600; font-size:1.05rem; color: var(--color-ink); }
.accordion__meta{ font-size:.82rem; color: var(--color-ink-faint); }
.accordion__icon{ width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; background: var(--color-bg-alt); color: var(--color-teal-700); transition: transform .35s var(--ease), background .3s var(--ease); flex-shrink:0; }
.accordion__trigger[aria-expanded="true"] .accordion__icon{ transform: rotate(135deg); background: var(--gradient-band); color:#fff; }
.accordion__panel{ display:grid; grid-template-rows: 0fr; transition: grid-template-rows .4s var(--ease); }
.accordion__panel-inner{ min-height:0; overflow:hidden; padding-inline: var(--space-5); }
.accordion__item:has(.accordion__trigger[aria-expanded="true"]) .accordion__panel{ grid-template-rows: 1fr; }
.accordion__item:has(.accordion__trigger[aria-expanded="true"]) .accordion__panel-inner{ padding-block-end: var(--space-5); }
.accordion__panel-icon{ font-size:1.4rem; color: var(--color-violet-600); margin-bottom: var(--space-2); }
.accordion__body{ margin:0; color: var(--color-ink-soft); }
@container (min-width: 620px){
  .accordion__panel-inner{ display:flex; gap: var(--space-4); align-items:flex-start; }
  .accordion__panel-icon{ margin-block-start:.2rem; }
}


.measures{ background: var(--color-bg-alt); }
.measures__grid{ display:grid; gap: var(--space-8); }
@media (min-width: 900px){ .measures__grid{ grid-template-columns: .8fr 1.2fr; } }
.measures__list{ display:flex; flex-direction:column; gap: var(--space-5); }
.measures__item{ display:flex; gap: var(--space-4); align-items:flex-start; background: var(--color-surface); padding: var(--space-5); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.measures__item:hover{ transform: translateY(-3px); box-shadow: var(--shadow-md); }
.measures__icon{ font-size:1.5rem; color: var(--color-amber-500); flex-shrink:0; margin-block-start:.15rem; }
.measures__title{ font-size:1.1rem; margin-bottom: var(--space-2); }
.measures__text{ margin:0; }


.carousel-section{ padding-block-end: var(--space-6); }
.carousel{ position:relative; }
.carousel__track{
  display:flex; gap: var(--space-5);
  overflow-x:auto; scroll-snap-type: x mandatory;
  padding-inline: var(--space-5); padding-block: var(--space-4) var(--space-6);
  scrollbar-width:none;
}
.carousel__track::-webkit-scrollbar{ display:none; }
.carousel__card{
  scroll-snap-align:start; flex: 0 0 min(84%, 340px);
  background: var(--color-surface); border-radius: var(--radius-lg);
  padding: var(--space-6); box-shadow: var(--shadow-md);
  border-top: 4px solid transparent;
  border-image: var(--gradient-band); border-image-slice:1;
  display:flex; flex-direction:column; gap: var(--space-3);
}
.carousel__card-tag{ display:inline-block; font-size:.75rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color: var(--color-violet-600); }
.carousel__card-title{ font-size:1.2rem; }
.carousel__card-text{ margin:0; font-size:.95rem; }
.carousel__controls{ display:flex; gap: var(--space-3); justify-content:center; padding-inline: var(--space-5); }
.carousel__btn{ width:46px; height:46px; border-radius:50%; background: var(--color-surface); border:1px solid color-mix(in srgb, var(--color-ink) 12%, transparent); color: var(--color-teal-900); display:flex; align-items:center; justify-content:center; box-shadow: var(--shadow-sm); transition: background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease); }
.carousel__btn:hover{ background: var(--gradient-band); color:#fff; transform: translateY(-2px); }


.photo-grid__layout{ display:grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-5); }
.photo-grid__item{ width:100%; height:100%; object-fit:cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); aspect-ratio: 4/3; }
.photo-grid__item--tall{ grid-row: span 2; aspect-ratio: 3/4; }
.photo-grid__item--wide{ grid-column: span 2; aspect-ratio: 16/7; }
@media (max-width: 640px){
  .photo-grid__layout{ grid-template-columns: 1fr; }
  .photo-grid__item--tall, .photo-grid__item--wide{ grid-column:auto; grid-row:auto; aspect-ratio:4/3; }
}


.process{ background: var(--color-bg-alt); }
.process__grid{ display:grid; gap: var(--space-8); }
@media (min-width: 900px){ .process__grid{ grid-template-columns: .8fr 1.2fr; } }
.process__list{ list-style:none; display:flex; flex-direction:column; gap: var(--space-5); }
.process__item{ display:flex; gap: var(--space-5); align-items:flex-start; padding: var(--space-5); background: var(--color-surface); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.process__index{ font-family: var(--font-heading); font-size:1.4rem; font-weight:700; color: transparent; background: var(--gradient-band); -webkit-background-clip:text; background-clip:text; flex-shrink:0; }
.process__title{ font-size:1.1rem; margin-bottom: var(--space-2); }
.process__text{ margin:0; }


.tenants__grid{ display:grid; gap: var(--space-8); align-items:center; }
@media (min-width: 900px){ .tenants__grid{ grid-template-columns: .9fr 1.1fr; } }
.tenants__image{ border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); aspect-ratio: 4/3; object-fit:cover; }


.contact-cards__grid{ display:grid; grid-template-columns:1fr; gap: var(--space-5); }
@media (min-width: 760px){ .contact-cards__grid{ grid-template-columns: repeat(3,1fr); } }
.contact-cards__item{ background: var(--color-surface); border-radius: var(--radius-lg); padding: var(--space-6); box-shadow: var(--shadow-sm); text-align:center; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.contact-cards__item:hover{ transform: translateY(-4px); box-shadow: var(--shadow-md); }
.contact-cards__icon{ font-size:1.8rem; color: var(--color-violet-600); margin-bottom: var(--space-3); }
.contact-cards__title{ font-size:1.1rem; margin-bottom: var(--space-2); }
.contact-cards__text{ font-size:.9rem; margin-bottom: var(--space-2); }
.contact-cards__link{ font-weight:600; color: var(--color-teal-700); }


.cta-band{ background: var(--gradient-band); }
.cta-band__inner{ text-align:center; max-width:640px; margin-inline:auto; }
.cta-band__title{ font-size: var(--fs-h2); color:#fff; margin-bottom: var(--space-3); }
.cta-band__text{ color: color-mix(in srgb, #fff 88%, transparent); margin-bottom: var(--space-6); }
.cta-band .btn--primary{ background: var(--color-surface); color: var(--color-teal-900); box-shadow: var(--shadow-lg); }
.cta-band .btn--primary:hover{ transform: translateY(-2px); }


.trainers__grid{ display:grid; grid-template-columns:1fr; gap: var(--space-8); }
@media (min-width: 760px){ .trainers__grid{ grid-template-columns: repeat(2,1fr); } }
.trainers__card{ background: var(--color-surface); border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-md); }
.trainers__photo{ width:100%; aspect-ratio: 4/3; object-fit:cover; }
.trainers__info{ padding: var(--space-6); }
.trainers__name{ font-size:1.4rem; margin-bottom: var(--space-1); }
.trainers__role{ color: var(--color-violet-600); font-weight:600; font-size:.92rem; margin-bottom: var(--space-3); }
.trainers__bio{ margin-bottom: var(--space-3); }
.trainers__note{ font-size:.85rem; color: var(--color-ink-faint); font-style:italic; }

.approach{ background: var(--color-bg-alt); }
.approach__grid{ display:grid; gap: var(--space-8); align-items:center; }
@media (min-width: 900px){ .approach__grid{ grid-template-columns: 1fr 1fr; } }
.approach__grid--reverse{ direction:rtl; }
.approach__grid--reverse > *{ direction:ltr; }
.approach__image{ border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); aspect-ratio: 4/3; object-fit:cover; width:100%; }


.trial__grid{ display:grid; gap: var(--space-8); align-items:center; }
@media (min-width: 900px){ .trial__grid{ grid-template-columns: 1fr 1fr; } }
.trial__image{ border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); aspect-ratio: 4/3; object-fit:cover; width:100%; }
.trial-request{ background: var(--color-bg-alt); }
.trial-request__inner{ max-width: 900px; margin-inline:auto; }


.form--compact{ background: var(--color-surface); border-radius: var(--radius-lg); padding: var(--space-6); box-shadow: var(--shadow-md); }
.form__row{ display:flex; gap: var(--space-4); flex-wrap:wrap; margin-bottom: var(--space-4); }
.form__field{ flex:1 1 180px; display:flex; flex-direction:column; gap:.4rem; }
.form__field--message{ flex:2 1 260px; }
.form__field label{ font-size:.82rem; font-weight:600; color: var(--color-ink-soft); }
.form__field input, .form__field textarea{
  font-family: var(--font-body); font-size:.95rem; padding: .7rem .9rem;
  border-radius: var(--radius-sm); border:1px solid color-mix(in srgb, var(--color-ink) 16%, transparent);
  background: var(--color-bg); resize:none; min-height:44px;
  transition: border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.form__field input:focus, .form__field textarea:focus{ outline:none; border-color: var(--color-violet-600); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-violet-600) 18%, transparent); }
.form__row--consent{ display:flex; justify-content:space-between; align-items:center; gap: var(--space-4); flex-wrap:wrap; margin-bottom:0; }
.form__checkbox{ display:flex; align-items:flex-start; gap:.6rem; font-size:.85rem; color: var(--color-ink-soft); cursor:pointer; }
.form__checkbox input{ margin-block-start:.2rem; width:18px; height:18px; accent-color: var(--color-violet-600); }
.form__checkbox:has(input:checked){ color: var(--color-teal-700); }
.form__checkbox a{ color: var(--color-teal-700); text-decoration:underline; }
@media (max-width: 640px){ .form__row--consent{ flex-direction:column; align-items:stretch; } .form__row--consent .btn{ width:100%; } }


.contact-form-section__grid{ display:grid; gap: var(--space-8); }
@media (min-width: 900px){ .contact-form-section__grid{ grid-template-columns: .9fr 1.1fr; align-items:stretch; } }
.contact-form-section__map{ min-height: 320px; border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-md); }
.faq--compact{ background: var(--color-bg-alt); }
.faq__grid{ display:grid; gap: var(--space-8); }
@media (min-width: 900px){ .faq__grid{ grid-template-columns: .8fr 1.2fr; } }
.faq__grid--single{ grid-template-columns: 1fr; max-width: 780px; margin-inline:auto; }
.faq__image{ border-radius: var(--radius-lg); box-shadow: var(--shadow-md); margin-block-start: var(--space-5); aspect-ratio: 4/3; object-fit:cover; }


.thanks-hero{ position:relative; padding-block: calc(var(--space-16) + 2rem) var(--space-12); text-align:center; overflow:hidden; }
.thanks-hero__gradient{ position:absolute; inset:0; background: var(--gradient-thanks); }
.thanks-hero__content{ position:relative; z-index:2; max-width:600px; margin-inline:auto; }
.thanks-hero__icon{ font-size:3rem; color:#fff; margin-bottom: var(--space-4); }
.thanks-hero__title{ font-size: clamp(2rem, 4vw, 3rem); color:#fff; margin-bottom: var(--space-3); }
.thanks-hero__subtitle{ color: color-mix(in srgb, #fff 90%, transparent); }
.thanks-next{ text-align:center; }
.thanks-next__inner{ max-width:560px; margin-inline:auto; }
.thanks-next__inner .btn{ margin-block-start: var(--space-4); }


.legal-hero{ padding-block: calc(var(--space-16)) var(--space-6); background: var(--color-bg-alt); }
.legal-hero__title{ font-size: clamp(2rem, 4vw, 2.8rem); margin-block: var(--space-3); }
.legal-hero__meta{ color: var(--color-ink-faint); font-size:.9rem; }
.legal-content__inner{ max-width: 820px; }
.legal-content__inner h2{ font-size:1.3rem; margin-block: var(--space-8) var(--space-3); }
.legal-content__inner p{ margin-bottom: var(--space-4); }
.legal-content__inner--narrative h2{ margin-block-start: var(--space-10); }
.legal-table{ width:100%; border-collapse: collapse; margin-block: var(--space-4) var(--space-6); }
.legal-table th, .legal-table td{ text-align:left; padding: .6rem .8rem; border-bottom:1px solid color-mix(in srgb, var(--color-ink) 10%, transparent); font-size:.92rem; }
.legal-table th{ width: 220px; color: var(--color-ink-soft); font-weight:600; }


.footer{ background: var(--color-teal-900); color: color-mix(in srgb, #fff 90%, transparent); margin-block-start: auto; }
.footer__stats{ background: color-mix(in srgb, #000 15%, var(--color-teal-900)); padding-block: var(--space-4); }
.footer__stats-inner{ display:flex; gap: var(--space-6); flex-wrap:wrap; justify-content:center; font-size:.88rem; font-weight:600; }
.footer__stats-inner span{ display:flex; align-items:center; gap:.5rem; color: color-mix(in srgb, #fff 92%, transparent); }
.footer__stats-inner i{ color: var(--color-amber-300); }
.footer__grid{ display:grid; grid-template-columns:1fr; gap: var(--space-8); padding-block: var(--space-10); }
@media (min-width: 760px){ .footer__grid{ grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.footer__brand{ display:flex; align-items:center; gap:.6rem; font-family: var(--font-heading); font-weight:700; font-size:1.2rem; color:#fff; margin-bottom: var(--space-3); }
.footer__brand-mark{ width:30px; height:30px; }
.footer__tagline{ color: color-mix(in srgb, #fff 72%, transparent); font-size:.9rem; }
.footer__heading{ font-size:.85rem; text-transform:uppercase; letter-spacing:.06em; color: color-mix(in srgb, #fff 60%, transparent); margin-bottom: var(--space-4); }
.footer__list{ list-style:none; display:flex; flex-direction:column; gap: var(--space-3); font-size:.92rem; }
.footer__list a{ color: color-mix(in srgb, #fff 85%, transparent); transition: color .3s var(--ease); }
.footer__list a:hover{ color: var(--color-amber-300); }
.footer__bottom{ border-top:1px solid color-mix(in srgb, #fff 12%, transparent); padding-block: var(--space-5); font-size:.82rem; color: color-mix(in srgb, #fff 60%, transparent); }
main{ display:block; }
html, body{ min-height:100%; }
body{ display:flex; flex-direction:column; }
main{ flex:1; }


.cookie-link{
  position: fixed; inset-block-end: var(--space-4); inset-inline-start: var(--space-4);
  z-index:150; display:inline-flex; align-items:center; gap:.4rem;
  background: var(--color-surface); border:1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);
  border-radius: var(--radius-full); padding: .5rem .9rem; font-size:.78rem; font-weight:600;
  color: var(--color-ink-soft); box-shadow: var(--shadow-sm); transition: box-shadow .3s var(--ease), transform .3s var(--ease);
}
.cookie-link:hover{ box-shadow: var(--shadow-md); transform: translateY(-2px); }
.cookie-link--pulse{ animation: cookiePulse 1.4s ease-in-out 3; }
@keyframes cookiePulse{ 0%,100%{ box-shadow: var(--shadow-sm); } 50%{ box-shadow: 0 0 0 8px color-mix(in srgb, var(--color-violet-600) 18%, transparent); } }

.cookie-modal{
  position: fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center;
  background: color-mix(in srgb, #000 45%, transparent); padding: var(--space-4);
  opacity:0; visibility:hidden; transition: opacity .3s var(--ease), visibility .3s var(--ease);
}
.cookie-modal--open{ opacity:1; visibility:visible; }
.cookie-modal__dialog{
  background: var(--color-surface); border-radius: var(--radius-lg); padding: var(--space-6);
  max-width: 520px; width:100%; max-height: 86vh; overflow-y:auto; box-shadow: var(--shadow-lg); position:relative;
}
.cookie-modal__close{ position:absolute; top: var(--space-4); right: var(--space-4); width:36px; height:36px; border-radius:50%; border:none; background: var(--color-bg-alt); font-size:1.2rem; color: var(--color-ink-soft); }
.cookie-modal__title{ font-size:1.3rem; margin-bottom: var(--space-3); }
.cookie-modal__text{ font-size:.92rem; margin-bottom: var(--space-5); }
.cookie-modal__category{ padding-block: var(--space-3); border-top:1px solid color-mix(in srgb, var(--color-ink) 8%, transparent); }
.cookie-modal__category-head{ display:flex; justify-content:space-between; align-items:center; font-weight:600; margin-bottom: var(--space-2); }
.cookie-modal__category p{ font-size:.85rem; margin:0; }
.cookie-modal__actions{ display:flex; gap: var(--space-3); flex-wrap:wrap; margin-block-start: var(--space-5); }
.cookie-modal__actions .btn{ flex:1 1 140px; }

.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 srgb, var(--color-ink) 20%, transparent); border-radius: var(--radius-full); transition: background .3s var(--ease); }
.switch__slider::before{ content:""; position:absolute; width:18px; height:18px; left:3px; top:3px; background:#fff; border-radius:50%; transition: transform .3s var(--ease); }
.switch input:checked + .switch__slider{ background: var(--color-violet-600); }
.switch input:checked + .switch__slider::before{ transform: translateX(18px); }
.switch input:disabled + .switch__slider{ opacity:.6; }


@media (min-width: 981px){
  .btn--nav{ display:inline-flex; }
  .nav__burger{ display:none; }
}
@media (max-width: 980px){
  .nav__list-wrap{ display:none; }
  .nav__inner{ padding-inline-end: .4rem; }
}
</style>