:root {
  --color-ink: #201a15;
  --color-ink-soft: #453b32;
  --color-cream: #faf5ee;
  --color-paper: #f2e9db;
  --color-paper-dark: #e5d7c1;
  --color-accent: #c1602f;
  --color-accent-dark: #9c4a22;
  --color-gold: #d3a24a;
  --color-deep: #171310;
  --color-white: #fffaf3;
  --color-text: #2a231d;
  --color-text-light: #f4ece0;
  --color-text-muted: #6f6355;

  --gradient-warm: linear-gradient(135deg, var(--color-accent) 0%, var(--color-gold) 100%);
  --gradient-dark: linear-gradient(160deg, var(--color-ink) 0%, var(--color-deep) 100%);
  --gradient-overlay: linear-gradient(180deg, rgba(23,19,16,0) 0%, rgba(23,19,16,.9) 100%);

  --font-heading: 'Plus Jakarta Sans', sans-serif;
  --font-body: 'Inter', sans-serif;

  --radius-sm: 8px;
  --radius-md: 18px;
  --radius-lg: 30px;
  --radius-full: 999px;

  --shadow-sm: 0 1px 2px rgba(23,19,16,.10), 0 1px 1px rgba(23,19,16,.06);
  --shadow-md: 0 10px 26px -10px rgba(23,19,16,.28), 0 3px 8px rgba(23,19,16,.10);
  --shadow-lg: 0 26px 52px -18px rgba(23,19,16,.38), 0 10px 22px -8px rgba(23,19,16,.16);

  --space-3xs: .25rem;
  --space-2xs: .5rem;
  --space-xs: .75rem;
  --space-sm: 1.25rem;
  --space-md: 2rem;
  --space-lg: 3.25rem;
  --space-xl: 5rem;
  --space-2xl: 7.5rem;

  --transition: .35s cubic-bezier(.4,0,.2,1);
  --transition-slow: .6s cubic-bezier(.77,0,.18,1);

  --fs-display: clamp(2.6rem, 5vw + 1.4rem, 5.2rem);
  --fs-h1: clamp(2.2rem, 3.2vw + 1rem, 3.4rem);
  --fs-h2: clamp(1.7rem, 2vw + 1rem, 2.6rem);
  --fs-h3: clamp(1.2rem, .8vw + 1rem, 1.5rem);
  --fs-lead: clamp(1.05rem, .4vw + .95rem, 1.3rem);
  --fs-body: 1rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-text);
  background-color: var(--color-cream);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.no-scroll { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: 800; line-height: 1.15; margin: 0; color: var(--color-ink); }
p { margin: 0 0 var(--space-sm); }
ul { margin: 0; padding: 0; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
input, textarea { font-family: inherit; font-size: 1rem; }

.container { max-width: 1240px; margin-inline: auto; padding-inline: var(--space-sm); }
.container--narrow { max-width: 780px; }

.section { padding-block: var(--space-2xl); position: relative; }
.section--paper { background-color: var(--color-paper); }
.section--cream { background-color: var(--color-cream); }
.section--ink { background-color: var(--color-ink); color: var(--color-text-light); }
.section--ink .section__text { color: color-mix(in srgb, var(--color-text-light) 82%, transparent); }

.section__eyebrow {
  display: inline-block;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: .85rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-accent-dark);
  margin-block-end: var(--space-2xs);
}
.section__eyebrow--light { color: var(--color-gold); }
.section__title { font-size: var(--fs-h2); margin-block-end: var(--space-sm); max-width: 42ch; }
.section__title--light { color: var(--color-white); }
.section__text { max-width: 62ch; color: var(--color-text-muted); font-size: var(--fs-body); }
.section__text--light { color: color-mix(in srgb, var(--color-text-light) 85%, transparent); }

.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .9rem 1.7rem;
  border-radius: var(--radius-full);
  font-weight: 700;
  font-family: var(--font-heading);
  font-size: .95rem;
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition), color var(--transition);
  min-height: 44px;
}
.btn--primary { background: var(--gradient-warm); color: var(--color-white); box-shadow: var(--shadow-md); }
.btn--primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.btn--ghost { background: transparent; color: var(--color-ink); border: 2px solid color-mix(in srgb, var(--color-ink) 25%, transparent); }
.btn--ghost:hover { border-color: var(--color-accent); color: var(--color-accent-dark); }
.btn--light { background: var(--color-white); color: var(--color-ink); box-shadow: var(--shadow-md); }
.btn--light:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }


.header {
  position: fixed;
  inset-inline: 0;
  top: 0;
  z-index: 100;
  background: color-mix(in srgb, var(--color-cream) 88%, transparent);
  backdrop-filter: blur(10px);
  transition: transform var(--transition), opacity var(--transition);
  box-shadow: var(--shadow-sm);
}
.header--hidden { transform: translateY(-120%); opacity: 0; pointer-events: none; }
.header__inner { max-width: 1240px; margin-inline: auto; padding: .9rem var(--space-sm); display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); }
.header__logo { display: flex; align-items: center; gap: .6rem; }
.header__logo-text { font-family: var(--font-heading); font-weight: 800; font-size: 1.1rem; color: var(--color-ink); }
.nav { display: flex; align-items: center; gap: var(--space-md); }
.nav__list { display: flex; gap: var(--space-md); list-style: none; }
.nav__link { font-weight: 600; font-size: .95rem; color: var(--color-ink-soft); padding-block: .4rem; border-bottom: 2px solid transparent; transition: color var(--transition), border-color var(--transition); }
.nav__link:hover, .nav__link--active { color: var(--color-accent-dark); border-color: var(--color-accent); }
.nav__cta { background: var(--gradient-warm); color: var(--color-white); padding: .65rem 1.4rem; border-radius: var(--radius-full); font-weight: 700; font-size: .9rem; box-shadow: var(--shadow-sm); transition: transform var(--transition), box-shadow var(--transition); }
.nav__cta:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.header__burger { display: none; flex-direction: column; gap: 5px; width: 44px; height: 44px; align-items: center; justify-content: center; }
.header__burger-line { width: 22px; height: 2px; background: var(--color-ink); border-radius: 2px; transition: background var(--transition); }

.mininav { position: fixed; top: var(--space-sm); right: var(--space-sm); z-index: 101; opacity: 0; transform: scale(.75); pointer-events: none; transition: opacity var(--transition), transform var(--transition); }
.mininav--visible { opacity: 1; transform: scale(1); pointer-events: auto; }
.mininav__btn { width: 52px; height: 52px; border-radius: var(--radius-full); background: var(--gradient-warm); color: var(--color-white); display: flex; align-items: center; justify-content: center; font-size: 1.1rem; box-shadow: var(--shadow-lg); transition: transform var(--transition); }
.mininav__btn:hover { transform: scale(1.08); }

.mobilemenu {
  position: fixed; inset: 0; z-index: 200;
  background: var(--gradient-dark);
  clip-path: polygon(150% -50%, 150% -50%, 150% -50%);
  transition: clip-path var(--transition-slow);
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
  padding: var(--space-xl) var(--space-lg);
  pointer-events: none;
}
.mobilemenu--open { clip-path: polygon(150% -100%, 100% 100%, -100% 100%); pointer-events: auto; }
.mobilemenu__close { position: absolute; top: var(--space-md); right: var(--space-md); width: 48px; height: 48px; border-radius: var(--radius-full); background: rgba(255,255,255,.1); color: var(--color-white); font-size: 1.2rem; display: flex; align-items: center; justify-content: center; }
.mobilemenu__list { list-style: none; display: flex; flex-direction: column; gap: var(--space-sm); opacity: 0; transform: translateY(14px); transition: opacity var(--transition-slow), transform var(--transition-slow); }
.mobilemenu--revealed .mobilemenu__list { opacity: 1; transform: translateY(0); }
.mobilemenu__link { font-family: var(--font-heading); font-size: clamp(1.6rem, 5vw, 2.4rem); font-weight: 800; color: var(--color-text-light); }
.mobilemenu__link:hover, .mobilemenu__link--active { color: var(--color-gold); }
.mobilemenu__footer { margin-block-start: var(--space-lg); display: flex; flex-direction: column; gap: var(--space-2xs); opacity: 0; transition: opacity var(--transition-slow) .1s; }
.mobilemenu--revealed .mobilemenu__footer { opacity: 1; }
.mobilemenu__contact { color: color-mix(in srgb, var(--color-text-light) 75%, transparent); font-size: .95rem; }


.hero { position: relative; min-height: 92vh; display: flex; align-items: stretch; }
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__img { width: 100%; height: 100%; object-fit: cover; }
.hero__media-gradient { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(23,19,16,.92) 10%, rgba(23,19,16,.65) 45%, rgba(23,19,16,.15) 75%); }
.hero__content { position: relative; z-index: 1; max-width: 700px; margin-inline-start: clamp(1.25rem, 6vw, 6rem); padding-block: var(--space-2xl); display: flex; flex-direction: column; gap: var(--space-sm); justify-content: center; }
.hero__badge { display: inline-block; align-self: flex-start; padding: .5rem 1rem; border-radius: var(--radius-full); background: color-mix(in srgb, var(--color-gold) 20%, transparent); color: var(--color-gold); font-weight: 700; font-size: .8rem; letter-spacing: .05em; text-transform: uppercase; }
.hero__title { font-size: var(--fs-display); color: var(--color-white); }
.hero__typed { background: var(--gradient-warm); background-clip: text; -webkit-background-clip: text; color: transparent; }
.hero__subtitle { font-size: var(--fs-lead); color: color-mix(in srgb, var(--color-text-light) 88%, transparent); max-width: 52ch; }
.hero__actions { display: flex; gap: var(--space-sm); flex-wrap: wrap; margin-block-start: var(--space-2xs); }


.split { display: grid; grid-template-columns: 1fr; gap: var(--space-lg); align-items: center; }
.split__media { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); position: relative; }
.split__img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/3; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.split__media:hover .split__img { transform: scale(1.05); }


.cards-section__head, .values-section__head, .gallery-section__head, .timeline-section__head, .outcomes-section__head { max-width: 640px; margin-block-end: var(--space-lg); }
.cards { display: grid; grid-template-columns: 1fr; gap: var(--space-md); }
.card {
  position: relative;
  background: color-mix(in srgb, var(--color-white) 96%, transparent);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: transform var(--transition), box-shadow var(--transition);
  min-height: 230px;
}
.section--ink .card { background: color-mix(in srgb, var(--color-white) 8%, var(--color-ink)); }
.section--ink .card__title { color: var(--color-white); }
.section--ink .card__body { color: color-mix(in srgb, var(--color-text-light) 78%, transparent); }
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.card--featured { border: 2px solid color-mix(in srgb, var(--color-gold) 55%, transparent); }
.card__icon { width: 52px; height: 52px; border-radius: var(--radius-sm); background: var(--gradient-warm); color: var(--color-white); display: flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-block-end: var(--space-xs); transition: transform var(--transition); }
.card:hover .card__icon { transform: rotate(-8deg) scale(1.06); }
.card__title { font-size: var(--fs-h3); margin-block-end: var(--space-3xs); }
.card__body { color: var(--color-text-muted); font-size: .95rem; margin-block-end: 0; }
.card__reveal {
  position: absolute; inset-inline: 0; inset-block-end: 0;
  background: var(--gradient-dark);
  color: var(--color-text-light);
  padding: var(--space-sm) var(--space-md);
  transform: translateY(100%);
  transition: transform var(--transition-slow);
  font-size: .9rem;
}
.card:hover .card__reveal { transform: translateY(0); }
.card__reveal p { margin: 0; }


.timeline { list-style: none; display: flex; flex-direction: column; gap: 0; position: relative; padding-inline-start: var(--space-lg); }
.timeline::before { content: ''; position: absolute; inset-inline-start: 22px; inset-block: 6px; width: 2px; background: linear-gradient(180deg, var(--color-accent), var(--color-gold)); }
.timeline__item { position: relative; padding-block-end: var(--space-lg); display: flex; gap: var(--space-md); }
.timeline__item:last-child { padding-block-end: 0; }
.timeline__marker { position: absolute; inset-inline-start: -46px; top: 0; width: 44px; height: 44px; border-radius: var(--radius-full); background: var(--gradient-warm); color: var(--color-white); display: flex; align-items: center; justify-content: center; font-weight: 800; font-family: var(--font-heading); box-shadow: var(--shadow-md); }
.timeline__content { background: var(--color-white); border-radius: var(--radius-md); padding: var(--space-sm) var(--space-md); box-shadow: var(--shadow-sm); flex: 1; transition: box-shadow var(--transition), transform var(--transition); }
.timeline__item:hover .timeline__content { box-shadow: var(--shadow-md); transform: translateX(4px); }
.timeline__date { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--color-accent-dark); font-weight: 700; }
.timeline__title { font-size: 1.15rem; margin-block: .3rem; }
.timeline__text { color: var(--color-text-muted); margin: 0; font-size: .95rem; }


.gradient-fade { height: clamp(60px, 10vw, 140px); width: 100%; }
.gradient-fade--ink-to-cream { background: linear-gradient(180deg, var(--color-ink), var(--color-cream)); }
.gradient-fade--ink-to-paper { background: linear-gradient(180deg, var(--color-ink), var(--color-paper)); }
.gradient-fade--paper-to-ink { background: linear-gradient(180deg, var(--color-paper), var(--color-ink)); }
.gradient-fade--paper-to-cream { background: linear-gradient(180deg, var(--color-paper), var(--color-cream)); }


.gallery { display: grid; grid-template-columns: 1fr; gap: var(--space-md); }
.gallery__item { position: relative; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); }
.gallery__img { width: 100%; aspect-ratio: 5/4; object-fit: cover; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.gallery__item:hover .gallery__img { transform: scale(1.06); }
.gallery__caption { position: absolute; inset-inline: 0; inset-block-end: 0; padding: var(--space-md); background: var(--gradient-overlay); color: var(--color-white); }
.gallery__caption span { font-weight: 700; font-family: var(--font-heading); display: block; margin-block-end: .2rem; color: var(--color-gold); }
.gallery__caption p { margin: 0; font-size: .9rem; }


.audience { display: grid; grid-template-columns: 1fr; gap: var(--space-md); }
.audience__col { background: var(--color-white); border-radius: var(--radius-md); padding: var(--space-md); box-shadow: var(--shadow-sm); }
.audience__heading { font-size: 1.2rem; display: flex; align-items: center; gap: .5rem; margin-block-end: var(--space-sm); }
.audience__heading i { color: var(--color-accent); }
.audience__list { list-style: none; display: flex; flex-direction: column; gap: var(--space-xs); }
.audience__list li { padding-inline-start: 1.4rem; position: relative; color: var(--color-text-muted); }
.audience__list li::before { content: '\2022'; position: absolute; inset-inline-start: 0; color: var(--color-accent); font-weight: 800; }


.cta-banner { position: relative; min-height: 60vh; display: flex; align-items: center; overflow: hidden; }
.cta-banner--compact { min-height: 40vh; }
.cta-banner__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cta-banner__overlay { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(23,19,16,.92), rgba(23,19,16,.4)); }
.cta-banner__content { position: relative; z-index: 1; max-width: 560px; margin-inline-start: clamp(1.25rem, 6vw, 6rem); color: var(--color-white); display: flex; flex-direction: column; gap: var(--space-sm); }
.cta-banner__title { font-size: var(--fs-h1); color: var(--color-white); }
.cta-banner__text { color: color-mix(in srgb, var(--color-text-light) 85%, transparent); }


.page-hero { padding-block: calc(var(--space-2xl) + 3rem) var(--space-xl); background: var(--gradient-dark); }
.page-hero__content { max-width: 740px; margin-inline: auto; padding-inline: var(--space-sm); text-align: left; }
.page-hero__title { font-size: var(--fs-h1); color: var(--color-white); margin-block-end: var(--space-sm); }
.page-hero__text { color: color-mix(in srgb, var(--color-text-light) 85%, transparent); font-size: var(--fs-lead); max-width: 58ch; }


.pricing { display: grid; grid-template-columns: 1fr; gap: var(--space-md); }
.pricing__card { position: relative; background: var(--color-white); border-radius: var(--radius-md); padding: var(--space-md); box-shadow: var(--shadow-sm); transition: transform var(--transition), box-shadow var(--transition); overflow: hidden; padding-block-end: calc(var(--space-md) + 3rem); }
.pricing__card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.pricing__card--featured { border: 2px solid var(--color-accent); }
.pricing__tag { position: absolute; top: var(--space-sm); right: var(--space-sm); background: var(--gradient-warm); color: var(--color-white); font-size: .72rem; font-weight: 700; padding: .3rem .7rem; border-radius: var(--radius-full); }
.pricing__name { font-size: 1.25rem; margin-block-end: .3rem; }
.pricing__desc { color: var(--color-text-muted); font-size: .92rem; }
.pricing__price { font-family: var(--font-heading); font-size: 2rem; font-weight: 800; color: var(--color-accent-dark); margin-block: var(--space-2xs) var(--space-sm); }
.pricing__list { list-style: none; display: flex; flex-direction: column; gap: .5rem; font-size: .9rem; color: var(--color-text-muted); }
.pricing__list i { color: var(--color-accent); margin-inline-end: .4rem; }
.pricing__reveal { position: absolute; inset-inline: 0; inset-block-end: 0; background: var(--gradient-dark); color: var(--color-text-light); padding: var(--space-sm) var(--space-md); transform: translateY(100%); transition: transform var(--transition-slow); font-size: .85rem; }
.pricing__card:hover .pricing__reveal { transform: translateY(0); }
.pricing__reveal p { margin: 0; }


.faq { display: flex; flex-direction: column; gap: var(--space-xs); margin-block-start: var(--space-md); }
.faq__item { background: var(--color-white); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); overflow: hidden; }
.faq__question { width: 100%; text-align: left; padding: var(--space-sm) var(--space-md); font-family: var(--font-heading); font-weight: 700; font-size: 1rem; display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); color: var(--color-ink); min-height: 44px; }
.faq__question-icon { transition: transform var(--transition); color: var(--color-accent); }
.faq__item--open .faq__question-icon { transform: rotate(45deg); }
.faq__answer { max-height: 0; overflow: hidden; transition: max-height var(--transition-slow); padding-inline: var(--space-md); }
.faq__item--open .faq__answer { max-height: 220px; }
.faq__answer p { color: var(--color-text-muted); padding-block-end: var(--space-sm); margin: 0; }


.contact-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-lg); }
.contact-grid__heading { font-size: var(--fs-h2); margin-block-end: var(--space-sm); }
.contact-grid__img { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); aspect-ratio: 4/3; object-fit: cover; margin-block-end: var(--space-sm); }
.contact-grid__card { background: var(--color-white); border-radius: var(--radius-md); padding: var(--space-md); box-shadow: var(--shadow-sm); }
.contact-grid__card-title { font-size: 1.1rem; margin-block-end: var(--space-xs); }
.contact-grid__card p { margin-block-end: .5rem; color: var(--color-text-muted); font-size: .95rem; }
.contact-grid__card i { color: var(--color-accent); margin-inline-end: .4rem; width: 16px; }

.form { display: flex; flex-direction: column; gap: var(--space-sm); }
.form__row { display: grid; grid-template-columns: 1fr; gap: var(--space-sm); }
.form__group { display: flex; flex-direction: column; gap: .4rem; }
.form__label { font-weight: 600; font-size: .9rem; color: var(--color-ink-soft); }
.form__required { color: var(--color-accent); }
.form__input, .form__textarea {
  padding: .8rem 1rem; border-radius: var(--radius-sm); border: 1.5px solid var(--color-paper-dark);
  background: var(--color-white); transition: border-color var(--transition), box-shadow var(--transition);
  min-height: 44px;
}
.form__textarea { resize: vertical; min-height: 120px; }
.form__input:focus, .form__textarea:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 20%, transparent); }
.form__input--error { border-color: #b03434; }
.form__checkbox-group { display: flex; align-items: flex-start; gap: .6rem; }
.form__checkbox { width: 20px; height: 20px; margin-block-start: 2px; accent-color: var(--color-accent); }
.form__checkbox-label { font-size: .88rem; color: var(--color-text-muted); }
.form__checkbox-label a { color: var(--color-accent-dark); font-weight: 600; }
.form__submit { align-self: flex-start; margin-block-start: var(--space-2xs); }

.map { width: 100%; height: 100%; min-height: 320px; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); }


.legal { padding-block: calc(var(--space-2xl) + 2rem) var(--space-2xl); background: var(--color-cream); }
.legal__title { font-size: var(--fs-h1); margin-block: var(--space-xs) var(--space-md); }
.legal__intro { font-size: var(--fs-lead); color: var(--color-text-muted); }
.legal__heading { font-size: var(--fs-h3); margin-block: var(--space-lg) var(--space-sm); }
.legal p { color: var(--color-text-muted); }
.legal__term { color: var(--color-accent-dark); font-weight: 700; }
.legal__aside {
  display: block; background: var(--color-paper); border-inline-start: 4px solid var(--color-accent);
  border-radius: var(--radius-sm); padding: var(--space-xs) var(--space-sm); margin-block: var(--space-xs);
  font-size: .88rem; color: var(--color-ink-soft);
}
.legal__aside strong { color: var(--color-accent-dark); }


.thanks { min-height: 70vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: var(--space-sm); padding-block: var(--space-2xl); }
.thanks__dot { width: 20px; height: 20px; border-radius: var(--radius-full); background: var(--gradient-warm); transform: scale(0); animation: thanksDot .6s cubic-bezier(.34,1.56,.64,1) forwards; box-shadow: var(--shadow-lg); }
.thanks__heading { font-size: var(--fs-h1); opacity: 0; animation: thanksFade .6s ease forwards .55s; }
.thanks__text { color: var(--color-text-muted); opacity: 0; animation: thanksFade .6s ease forwards .8s; }
.thanks__link { opacity: 0; animation: thanksFade .6s ease forwards 1.15s; color: var(--color-accent-dark); font-weight: 700; border-bottom: 2px solid var(--color-accent); padding-block-end: 2px; }
@keyframes thanksDot { to { transform: scale(1); } }
@keyframes thanksFade { to { opacity: 1; } }


.footer { position: relative; background: var(--gradient-dark); color: var(--color-text-light); padding-block-start: var(--space-2xl); overflow: hidden; margin-block-start: auto; }
.footer__illustration { position: absolute; inset: 0; opacity: .5; background:
  radial-gradient(circle at 15% 20%, color-mix(in srgb, var(--color-accent) 35%, transparent) 0%, transparent 40%),
  radial-gradient(circle at 85% 70%, color-mix(in srgb, var(--color-gold) 30%, transparent) 0%, transparent 45%);
}
.footer__inner { position: relative; display: grid; grid-template-columns: 1fr; gap: var(--space-lg); padding-block-end: var(--space-xl); }
.footer__brand { display: flex; flex-direction: column; gap: var(--space-xs); }
.footer__logo { display: flex; align-items: center; gap: .6rem; font-family: var(--font-heading); font-weight: 800; color: var(--color-white); }
.footer__tagline { color: color-mix(in srgb, var(--color-text-light) 70%, transparent); max-width: 34ch; font-size: .9rem; }
.footer__heading { font-size: .95rem; letter-spacing: .05em; text-transform: uppercase; color: var(--color-gold); margin-block-end: var(--space-sm); }
.footer__list { list-style: none; display: flex; flex-direction: column; gap: .6rem; }
.footer__list a { color: color-mix(in srgb, var(--color-text-light) 82%, transparent); font-size: .92rem; transition: color var(--transition); }
.footer__list a:hover { color: var(--color-gold); }
.footer__address { color: color-mix(in srgb, var(--color-text-light) 82%, transparent); font-size: .92rem; line-height: 1.7; }
.footer__address a { color: color-mix(in srgb, var(--color-text-light) 82%, transparent); }
.footer__address a:hover { color: var(--color-gold); }
.footer__bottom { position: relative; border-top: 1px solid rgba(255,255,255,.1); padding-block: var(--space-sm); text-align: center; font-size: .82rem; color: color-mix(in srgb, var(--color-text-light) 60%, transparent); }


.cookiepill {
  position: fixed; bottom: var(--space-sm); left: 50%; transform: translateX(-50%) translateY(140%);
  z-index: 300; background: var(--color-ink); color: var(--color-text-light);
  border-radius: var(--radius-full); box-shadow: var(--shadow-lg);
  max-width: min(92vw, 560px); width: max-content;
  opacity: 0; transition: opacity var(--transition), transform var(--transition-slow), border-radius var(--transition-slow), max-width var(--transition-slow), width var(--transition-slow);
  overflow: hidden;
}
.cookiepill--visible { opacity: 1; transform: translateX(-50%) translateY(0); }
.cookiepill--expanded { border-radius: var(--radius-lg); max-width: min(92vw, 480px); width: 100%; }
.cookiepill__compact { display: flex; align-items: center; gap: var(--space-sm); padding: .7rem 1.4rem; flex-wrap: wrap; }
.cookiepill--expanded .cookiepill__compact { display: none; }
.cookiepill__text { font-size: .85rem; margin: 0; color: color-mix(in srgb, var(--color-text-light) 85%, transparent); }
.cookiepill__actions { display: flex; gap: .5rem; margin-inline-start: auto; }
.cookiepill__btn { padding: .5rem 1rem; border-radius: var(--radius-full); font-size: .82rem; font-weight: 700; min-height: 38px; transition: transform var(--transition), background var(--transition); }
.cookiepill__btn--ghost { background: rgba(255,255,255,.08); color: var(--color-text-light); }
.cookiepill__btn--ghost:hover { background: rgba(255,255,255,.16); }
.cookiepill__btn--solid { background: var(--gradient-warm); color: var(--color-white); }
.cookiepill__btn--solid:hover { transform: translateY(-1px); }
.cookiepill__modal { display: none; padding: var(--space-md); flex-direction: column; gap: var(--space-xs); }
.cookiepill--expanded .cookiepill__modal { display: flex; }
.cookiepill__modal-title { font-size: 1.2rem; color: var(--color-white); margin: 0; }
.cookiepill__modal-text { font-size: .85rem; color: color-mix(in srgb, var(--color-text-light) 75%, transparent); margin: 0 0 var(--space-2xs); }
.cookiepill__category { border-top: 1px solid rgba(255,255,255,.1); padding-block: var(--space-2xs); }
.cookiepill__category-label { display: flex; align-items: center; justify-content: space-between; font-weight: 700; font-size: .92rem; }
.cookiepill__category-label input { width: 20px; height: 20px; accent-color: var(--color-accent); }
.cookiepill__category-desc { font-size: .8rem; color: color-mix(in srgb, var(--color-text-light) 65%, transparent); margin: .2rem 0 0; }
.cookiepill__modal-actions { display: flex; gap: .6rem; margin-block-start: var(--space-xs); flex-wrap: wrap; }


@media (min-width: 700px) {
  .form__row { grid-template-columns: 1fr 1fr; }
  .gallery { grid-template-columns: 1fr 1fr; }
  .audience { grid-template-columns: 1fr 1fr; }
  .cards { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
  .header__burger { display: none; }
  .split { grid-template-columns: 6fr 5fr; }
  .split--reverse { grid-template-columns: 5fr 6fr; }
  .split--reverse .split__media { order: 2; }
  .cards { grid-template-columns: repeat(4, 1fr); }
  .pricing { grid-template-columns: repeat(4, 1fr); }
  .contact-grid { grid-template-columns: 6fr 4fr; }
}
@media (max-width: 899px) {
  .nav__list, .nav__cta { display: none; }
  .header__burger { display: flex; }
}
@media (max-width: 599px) {
  .cookiepill__actions { width: 100%; margin-inline-start: 0; justify-content: flex-end; }
  .cta-banner__content, .hero__content { margin-inline: var(--space-sm); }
}