
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap');

:root{
  --color-ink:#1B211E;
  --color-ink-soft: color-mix(in srgb, #1B211E 78%, transparent);
  --color-canvas:#F6F3EC;
  --color-surface:#FFFFFF;
  --color-surface-tint:#FBF8F2;
  --color-primary:#223E39;
  --color-primary-light:#3C6459;
  --color-primary-dark:#142621;
  --color-accent:#D97742;
  --color-accent-light:#E9A06D;
  --color-gold:#C9A15A;
  --color-line: color-mix(in srgb, var(--color-ink) 12%, transparent);
  --color-line-strong: color-mix(in srgb, var(--color-ink) 22%, transparent);

  --font-heading:'Outfit', sans-serif;
  --font-body:'Outfit', sans-serif;

  --radius-sm:10px;
  --radius-md:18px;
  --radius-lg:28px;
  --radius-xl:42px;
  --radius-pill:999px;

  --shadow-sm:0 1px 2px rgba(20,20,15,.06), 0 1px 1px rgba(20,20,15,.04);
  --shadow-md:0 10px 26px -10px rgba(20,30,25,.22), 0 3px 8px rgba(20,30,25,.08);
  --shadow-lg:0 30px 70px -24px rgba(20,30,25,.38), 0 10px 24px -8px rgba(20,30,25,.18);

  --space-1:.5rem;
  --space-2:1rem;
  --space-3:1.5rem;
  --space-4:2.5rem;
  --space-5:4rem;
  --space-6:6rem;
  --space-7:9rem;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--color-canvas);
  color:var(--color-ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none;margin:0;padding:0}
button{font-family:inherit;cursor:pointer;border:none;background:none}
h1,h2,h3,h4{margin:0;font-family:var(--font-heading)}
p{margin:0}


.text-display{
  font-weight:700;
  line-height:1.06;
  letter-spacing:-.02em;
  color:var(--color-primary-dark);
  font-size:clamp(2.2rem, 5vw, 3.8rem);
}
.text-heading{
  font-weight:600;
  font-size:clamp(1.3rem, 2.4vw, 1.7rem);
  color:var(--color-primary-dark);
  line-height:1.2;
}
.text-heading-sm{
  font-weight:600;
  font-size:1.15rem;
  color:var(--color-primary-dark);
}
.text-body{
  font-size:1.02rem;
  font-weight:400;
  color:var(--color-ink-soft);
  line-height:1.7;
}
.text-caption{
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--color-accent);
}
.section-heading{ margin-block-end:var(--space-2); max-width:44rem; }
.section-heading-sm{ font-size:clamp(1.4rem,3vw,2rem); font-weight:700; color:var(--color-primary-dark); margin-block-end:var(--space-2);}


.space-section{ padding-block: var(--space-6); padding-inline: clamp(1.25rem, 5vw, 5rem); max-width:1440px; margin-inline:auto; }
.space-card{ padding: var(--space-3); }

.surface{ background:var(--color-surface); }
.surface-raised{
  background:var(--color-surface);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);
  padding:var(--space-4);
  border:1px solid var(--color-line);
  transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease;
}
.surface-raised:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.surface-inset{
  background: color-mix(in srgb, var(--color-primary) 6%, var(--color-surface-tint));
  border-radius:var(--radius-md);
  padding:var(--space-3);
  border:1px solid var(--color-line);
  display:flex;
  gap:var(--space-2);
  align-items:flex-start;
}
.surface-inset i{ color:var(--color-accent); font-size:1.3rem; margin-top:.2rem; }


.action-primary{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:var(--color-accent);
  color:#fff;
  padding:.9rem 1.7rem;
  border-radius:var(--radius-pill);
  font-weight:600;
  font-size:.98rem;
  box-shadow:var(--shadow-sm);
  transition:background .35s ease, transform .35s ease, box-shadow .35s ease;
  min-height:44px;
}
.action-primary:hover{ background: color-mix(in srgb, var(--color-accent) 85%, black); transform:translateY(-2px); box-shadow:var(--shadow-md); }

.action-ghost{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:transparent;
  color:var(--color-primary-dark);
  padding:.85rem 1.5rem;
  border-radius:var(--radius-pill);
  font-weight:600;
  font-size:.98rem;
  border:1.5px solid var(--color-line-strong);
  transition:border-color .35s ease, background .35s ease, transform .35s ease;
  min-height:44px;
}
.action-ghost:hover{ border-color:var(--color-accent); background: color-mix(in srgb, var(--color-accent) 8%, transparent); transform:translateY(-2px); }


.site-header{
  position:fixed;
  inset-inline:0;
  top:0;
  z-index:500;
  padding-block:1rem;
  transition:background .5s ease, backdrop-filter .5s ease, border-color .5s ease, box-shadow .5s ease;
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background: color-mix(in srgb, var(--color-canvas) 72%, transparent);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  border-bottom-color: var(--color-line);
  box-shadow:0 4px 24px -12px rgba(20,30,25,.18);
}
.header-inner{
  max-width:1440px;
  margin-inline:auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.brand{ display:flex; align-items:center; gap:.6rem; }
.brand-mark{ height:34px; width:auto; }
.brand-name{ font-weight:700; font-size:1.15rem; color:var(--color-primary-dark); }
.header-cta{ padding:.7rem 1.3rem; font-size:.9rem; }

.hamburger{
  width:44px;height:44px;
  display:flex; align-items:center; justify-content:center;
  gap:5px;
  flex-direction:column;
  border-radius:var(--radius-sm);
  transition:background .3s ease;
}
.hamburger:hover{ background: color-mix(in srgb, var(--color-primary) 8%, transparent); }
.hamburger span{
  display:block; width:22px; height:2px; background:var(--color-primary-dark); border-radius:2px;
  transition:transform .35s ease, opacity .35s ease;
}
.hamburger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.hamburger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.nav-backdrop{
  position:fixed; inset:0; background:rgba(20,30,25,.45);
  opacity:0; pointer-events:none; transition:opacity .4s ease;
  z-index:600;
  backdrop-filter: blur(2px);
}
.nav-backdrop.open{ opacity:1; pointer-events:auto; }

.nav-drawer{
  position:fixed;
  top:0; left:0;
  height:100vh;
  width:min(360px, 85vw);
  background:var(--color-surface);
  z-index:700;
  transform:translateX(-100%);
  transition:transform .45s cubic-bezier(.2,.8,.2,1);
  display:flex; flex-direction:column;
  padding: var(--space-3);
  box-shadow:var(--shadow-lg);
}
.nav-drawer.open{ transform:translateX(0); }
.drawer-handle{ display:none; }
.drawer-top{ display:flex; align-items:center; justify-content:space-between; padding-block-end:var(--space-3); border-bottom:1px solid var(--color-line); margin-block-end:var(--space-3); }
.drawer-close{ width:40px;height:40px; display:flex;align-items:center;justify-content:center; border-radius:var(--radius-sm); font-size:1.1rem; transition:background .3s ease; }
.drawer-close:hover{ background: color-mix(in srgb, var(--color-primary) 10%, transparent); }
.drawer-links{ display:flex; flex-direction:column; gap:.3rem; flex:1; }
.drawer-links a{
  display:flex; align-items:center; gap:.9rem;
  padding: .9rem 1rem;
  border-radius:var(--radius-md);
  font-weight:500; font-size:1.05rem;
  color:var(--color-primary-dark);
  transition:background .3s ease, padding-inline-start .3s ease, color .3s ease;
  min-height:44px;
}
.drawer-links a i{ color:var(--color-accent); width:20px; text-align:center; }
.drawer-links a:hover{ background: color-mix(in srgb, var(--color-accent) 10%, transparent); padding-inline-start:1.3rem; }
.drawer-bottom{ border-top:1px solid var(--color-line); padding-block-start:var(--space-3); display:flex; flex-direction:column; gap:.6rem; }
.drawer-phone{ display:flex; align-items:center; gap:.5rem; color:var(--color-primary); }

@media (max-width: 768px){
  .nav-drawer{
    top:auto; bottom:0; left:0; right:0;
    height:auto; max-height:86vh; width:100%;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    transform:translateY(100%);
    padding-block-start: .6rem;
  }
  .nav-drawer.open{ transform:translateY(0); }
  .drawer-handle{
    display:block; width:44px; height:5px; border-radius:3px;
    background:var(--color-line-strong);
    margin-inline:auto; margin-block-end:var(--space-2);
  }
}


.hero{
  padding-block: clamp(6.5rem, 12vw, 10rem) clamp(3rem, 6vw, 5rem);
  padding-inline: clamp(1.25rem, 5vw, 5rem);
  max-width:1440px;
  margin-inline:auto;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  align-items:center;
}
@container(min-width:900px){}
.hero-eyebrow{ display:block; margin-block-end:var(--space-2); }
.hero-title{ margin-block-end:var(--space-3); }
.hero-lead{ max-width:36rem; margin-block-end:var(--space-3); }
.hero-actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-block-end:var(--space-2); }
.hero-disclaimer{ display:flex; align-items:center; gap:.5rem; color:var(--color-ink-soft); text-transform:none; font-weight:500; letter-spacing:normal; font-size:.85rem; }
.hero-disclaimer i{ color:var(--color-accent); }

.hero-visual{ position:relative; }
.atropos{ width:100%; }
.atropos-inner{ position:relative; border-radius:var(--radius-xl); overflow:visible; }
.hero-image{ width:100%; border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); aspect-ratio:4/5; object-fit:cover; }
.hero-float-card{
  position:absolute; left:-8%; bottom:12%;
  max-width:230px; padding:1.1rem 1.3rem;
  display:flex; gap:.7rem; align-items:flex-start;
  font-size:.9rem; font-weight:500; color:var(--color-primary-dark);
  border-radius:var(--radius-md);
}
.hero-float-card i{ color:var(--color-accent); font-size:1.2rem; }
.hero-float-badge{
  position:absolute; top:-6%; right:-6%;
  width:110px; height:110px; border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:var(--color-primary); color:#fff;
  box-shadow:var(--shadow-lg);
}
.badge-num{ font-size:1.8rem; font-weight:800; }
.badge-label{ font-size:.65rem; text-align:center; letter-spacing:.04em; opacity:.9; }

@media (min-width:960px){
  .hero-grid{ grid-template-columns: 1.15fr .85fr; }
}


.intro-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-3); }
.intro-label{ }
.intro-note{ display:flex; gap:.8rem; align-items:flex-start; margin-block-start:var(--space-3); }
.intro-note i{ color:var(--color-accent); font-size:1.2rem; margin-top:.15rem; }
@media (min-width:900px){
  .intro-grid{ grid-template-columns: .8fr 2.2fr; }
}


.fields-section{ }
.fields-heading{ max-width:40rem; margin-block-end:var(--space-4); }
.fields-lead{ margin-block-start:var(--space-1); }
.fields-grid{
  display:grid; grid-template-columns:1fr; gap:var(--space-3);
  container-type:inline-size;
}
.field-card{ }
.field-icon{
  width:52px;height:52px; border-radius:var(--radius-md);
  background: color-mix(in srgb, var(--color-accent) 14%, transparent);
  display:flex; align-items:center; justify-content:center;
  color:var(--color-accent); font-size:1.3rem; margin-block-end:var(--space-2);
}
@media (min-width:720px){
  .fields-grid{ grid-template-columns: repeat(2, 1fr); }
  .field-card--wide{ grid-column: span 2; }
}


.module-heading{ max-width:40rem; margin-block-end:var(--space-4); }
.module-row{
  display:grid; grid-template-columns:1fr; gap:var(--space-3);
  padding-block: var(--space-3);
  border-block-start:1px solid var(--color-line);
  align-items:start;
}
.module-row:first-of-type{ border-block-start:none; }
.module-number{
  font-size:clamp(3rem,7vw,4.5rem); font-weight:800; color: color-mix(in srgb, var(--color-primary) 18%, transparent);
  line-height:1;
}
.module-exercise{ display:flex; gap:.5rem; align-items:flex-start; text-transform:none; letter-spacing:normal; font-weight:500; color:var(--color-primary); margin-block-start:var(--space-2); background:color-mix(in srgb, var(--color-accent) 8%, transparent); padding:.8rem 1rem; border-radius:var(--radius-md); }
.module-exercise i{ color:var(--color-accent); margin-top:.15rem; }
@media (min-width:760px){
  .module-row{ grid-template-columns: 140px 1fr; }
  .module-row--reverse{ grid-template-columns: 1fr 140px; }
  .module-row--reverse .module-number{ order:2; text-align:right; }
  .module-row--reverse .module-text{ order:1; }
}


.highlight-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-4); align-items:center; }
.highlight-image-wrap{ }
.highlight-image{ border-radius:var(--radius-xl); box-shadow:var(--shadow-md); width:100%; aspect-ratio:4/3; object-fit:cover; }
.highlight-icon{ font-size:1.8rem; color:var(--color-accent); margin-block-end:var(--space-2); }
@media (min-width:960px){
  .highlight-grid{ grid-template-columns: .9fr 1.1fr; }
}

.card-animated-border{
  position:relative;
  border-radius:var(--radius-lg);
  background:var(--color-surface);
  box-shadow:var(--shadow-md);
  padding: 2px;
  isolation:isolate;
}
.card-animated-border::before{
  content:'';
  position:absolute; inset:0;
  border-radius:inherit;
  padding:2px;
  background: conic-gradient(from 0deg, transparent 0%, transparent 75%, var(--color-accent) 88%, var(--color-gold) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity:0;
  transition:opacity .4s ease;
  z-index:1;
}
.card-animated-border:hover::before{
  opacity:1;
  animation: rotateBorder 2.6s linear infinite;
}
@keyframes rotateBorder{
  0%{ background: conic-gradient(from 0deg, transparent 0%, transparent 75%, var(--color-accent) 88%, var(--color-gold) 100%); }
  100%{ background: conic-gradient(from 360deg, transparent 0%, transparent 75%, var(--color-accent) 88%, var(--color-gold) 100%); }
}
.highlight-card-inner{ position:relative; z-index:2; padding: var(--space-4); }


.audience-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-4); align-items:center; }
.audience-image{ border-radius:var(--radius-xl); box-shadow:var(--shadow-md); width:100%; aspect-ratio:5/4; object-fit:cover; }
.audience-list{ display:flex; flex-direction:column; gap:.7rem; margin-block-start:var(--space-3); }
.audience-list li{ display:flex; gap:.7rem; align-items:flex-start; color:var(--color-ink-soft); }
.audience-list i{ color:var(--color-accent); margin-top:.2rem; }
@media (min-width:960px){
  .audience-grid{ grid-template-columns: 1fr 1.1fr; }
  .audience-media{ order:2; }
  .audience-copy{ order:1; }
}


.contact-heading{ max-width:40rem; margin-block-end:var(--space-4); }
.contact-cards{ display:grid; grid-template-columns:1fr; gap:var(--space-3); }
.contact-card{ text-align:center; }
.contact-icon{
  width:56px;height:56px; border-radius:50%;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color:var(--color-primary);
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem; margin-inline:auto; margin-block-end:var(--space-2);
}
.contact-card a{ color:var(--color-primary); font-weight:600; }
.contact-card a:hover{ color:var(--color-accent); }
@media (min-width:720px){
  .contact-cards{ grid-template-columns: repeat(3,1fr); }
}


.closing-card{
  display:flex; flex-direction:column; gap:var(--space-3); align-items:flex-start;
}
@media (min-width:760px){
  .closing-card{ flex-direction:row; align-items:center; justify-content:space-between; }
}


.site-footer{
  background:var(--color-primary-dark);
  color: #F2EFE7;
  padding-block: var(--space-5) var(--space-3);
  margin-block-start: var(--space-6);
}
.footer-inner{
  max-width:1000px; margin-inline:auto; padding-inline: clamp(1.25rem,5vw,3rem);
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--space-3);
}
.footer-brand .brand-name{ color:#F2EFE7; }
.footer-tagline{ color: color-mix(in srgb, #F2EFE7 78%, transparent); max-width:34rem; }
.footer-links{ display:flex; flex-wrap:wrap; gap:1.4rem; justify-content:center; }
.footer-links a{ font-weight:500; color: color-mix(in srgb, #F2EFE7 85%, transparent); transition:color .3s ease; padding:.4rem; min-height:44px; display:flex;align-items:center; }
.footer-links a:hover{ color:var(--color-accent-light); }
.footer-contact{ display:flex; flex-wrap:wrap; gap:1.4rem; justify-content:center; font-size:.92rem; }
.footer-contact a, .footer-contact span{ display:flex; align-items:center; gap:.5rem; color: color-mix(in srgb, #F2EFE7 85%, transparent); }
.footer-contact a:hover{ color:var(--color-accent-light); }
.footer-bottom{ border-block-start:1px solid rgba(255,255,255,.14); padding-block-start:var(--space-3); width:100%; display:flex; flex-direction:column; align-items:center; gap:.6rem; }
.footer-bottom p{ font-size:.85rem; color: color-mix(in srgb, #F2EFE7 60%, transparent); }
.footer-legal{ display:flex; gap:1.2rem; flex-wrap:wrap; justify-content:center; }
.footer-legal a{ font-size:.85rem; color: color-mix(in srgb, #F2EFE7 65%, transparent); }
.footer-legal a:hover{ color:var(--color-accent-light); }


.page-hero{ padding-block: clamp(6.5rem,12vw,9.5rem) var(--space-5); padding-inline: clamp(1.25rem,5vw,5rem); max-width:1440px; margin-inline:auto; }
.page-hero-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-4); align-items:center; }
.page-hero-grid--reverse{ }
.page-title{ margin-block:var(--space-2) var(--space-3); }
.page-hero-image{ width:100%; border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); aspect-ratio:4/3; object-fit:cover; }
.page-hero-text--full{ max-width:46rem; }
@media (min-width:960px){
  .page-hero-grid{ grid-template-columns: 1.05fr .95fr; }
  .page-hero-grid--reverse{ grid-template-columns: .95fr 1.05fr; }
}


.person-story-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-4); }
.person-story-col--wide{ }
.person-fact-card{ display:flex; flex-direction:column; gap:.6rem; margin-block-end:var(--space-3); }
.person-fact-card i{ color:var(--color-accent); font-size:1.4rem; }
@media (min-width:900px){ .person-story-grid{ grid-template-columns: 1.4fr 1fr; } }

.person-motivation-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-4); align-items:center; }
.person-motivation-img{ width:100%; border-radius:var(--radius-xl); box-shadow:var(--shadow-md); aspect-ratio:4/3; object-fit:cover; }
@media (min-width:960px){ .person-motivation-grid{ grid-template-columns: .9fr 1.1fr; } }

.person-disclaimer-card{ max-width:56rem; margin-inline:auto; }


.method-steps-heading{ max-width:44rem; margin-block-end:var(--space-4); }
.method-steps-list{ display:grid; grid-template-columns:1fr; gap:var(--space-3); }
.method-step-icon{ display:inline-flex; width:48px;height:48px;border-radius:var(--radius-md); background:color-mix(in srgb, var(--color-accent) 14%, transparent); color:var(--color-accent); align-items:center; justify-content:center; font-size:1.2rem; margin-block-end:var(--space-2); }
@media (min-width:720px){ .method-steps-list{ grid-template-columns: repeat(2,1fr); } }
@media (min-width:1100px){ .method-steps-list{ grid-template-columns: repeat(4,1fr); } }

.method-principles-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-4); align-items:center; }
.method-principles-img{ width:100%; border-radius:var(--radius-xl); box-shadow:var(--shadow-md); aspect-ratio:4/3; object-fit:cover; }
.method-principles-list{ display:flex; flex-direction:column; gap:.8rem; margin-block-start:var(--space-2); }
.method-principles-list li{ color:var(--color-ink-soft); }
@media (min-width:960px){ .method-principles-grid{ grid-template-columns: 1.1fr .9fr; } }

.method-disclaimer-card{ max-width:56rem; margin-inline:auto; }


.probe-transcript-inner{ max-width:52rem; margin-inline:auto; }
.probe-transcript-inner h2{ margin-block:var(--space-1) var(--space-2); }
.probe-exercise-box{ margin-block-start:var(--space-3); display:block; }
.probe-exercise-box h3{ display:flex; gap:.5rem; align-items:center; margin-block-end:var(--space-2); }
.probe-exercise-list{ display:flex; flex-direction:column; gap:.6rem; padding-inline-start:1.2rem; color:var(--color-ink-soft); }
.probe-exercise-list li{ padding-inline-start:.3rem; }

.probe-structure-heading{ max-width:40rem; margin-block-end:var(--space-4); }
.probe-structure-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-3); }
.probe-structure-item{ display:flex; gap:var(--space-2); align-items:flex-start; }
.probe-structure-num{ font-size:1.6rem; font-weight:800; color:var(--color-accent); }
@media (min-width:720px){ .probe-structure-grid{ grid-template-columns: repeat(2,1fr); } }

.probe-cta-card{ display:flex; flex-direction:column; gap:var(--space-3); align-items:flex-start; }
@media (min-width:760px){ .probe-cta-card{ flex-direction:row; align-items:center; justify-content:space-between; } }


.contact-main-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-4); }
.contact-form-wrap h2{ margin-block-end:var(--space-3); }
.form-row{ display:grid; grid-template-columns:1fr; gap:var(--space-2); }
.form-group{ display:flex; flex-direction:column; gap:.4rem; margin-block-end:var(--space-2); }
.form-group label{ font-size:.88rem; font-weight:600; color:var(--color-primary-dark); }
.form-group input, .form-group select, .form-group textarea{
  padding:.85rem 1rem; border-radius:var(--radius-sm); border:1.5px solid var(--color-line-strong);
  font-family:inherit; font-size:1rem; background:var(--color-surface-tint);
  transition:border-color .3s ease, box-shadow .3s ease;
  min-height:44px;
}
.form-group input:focus, .form-group select:focus, .form-group 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-group:has(input:invalid:not(:placeholder-shown)) label{ color:var(--color-accent); }
.form-group--full{ grid-column:1/-1; }
.form-checkbox{ flex-direction:row; align-items:flex-start; gap:.7rem; }
.form-checkbox input{ width:20px;height:20px; min-height:auto; margin-top:.2rem; accent-color:var(--color-accent); }
.form-checkbox label{ font-weight:400; font-size:.92rem; color:var(--color-ink-soft); }
.form-checkbox label a{ color:var(--color-primary); text-decoration:underline; }
.form-submit{ width:100%; justify-content:center; margin-block-start:var(--space-2); }
@media (min-width:640px){ .form-row{ grid-template-columns:1fr 1fr; } }

.contact-side{ display:flex; flex-direction:column; gap:var(--space-3); }
.contact-map iframe{ border-radius:var(--radius-md); display:block; }
.contact-news{ }
.news-item{ padding-block:var(--space-2); border-block-start:1px solid var(--color-line); }
.news-item:first-of-type{ border-block-start:none; padding-block-start:0; }

@media (min-width:960px){
  .contact-main-grid{ grid-template-columns: 1.3fr .9fr; }
}

.contact-office-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-4); align-items:center; }
.contact-office-img{ width:100%; border-radius:var(--radius-xl); box-shadow:var(--shadow-md); aspect-ratio:16/9; object-fit:cover; }
@media (min-width:900px){ .contact-office-grid{ grid-template-columns: 1.2fr .8fr; } }


.legal-main{ padding-block-start: clamp(5rem,10vw,7rem); }
.legal-section{ max-width:900px; }
.legal-title{ margin-block-end:.4rem; }
.legal-updated{ display:block; margin-block-end:var(--space-4); }
.legal-section h2{ margin-block:var(--space-4) var(--space-2); }
.legal-section p{ margin-block-end:var(--space-2); }
.legal-table{ width:100%; border-collapse:collapse; margin-block:var(--space-3); background:var(--color-surface); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); }
.legal-table th, .legal-table td{ padding:.9rem 1.1rem; text-align:left; border-block-end:1px solid var(--color-line); font-size:.94rem; color:var(--color-ink-soft); }
.legal-table thead th{ background: color-mix(in srgb, var(--color-primary) 8%, transparent); color:var(--color-primary-dark); font-weight:700; }
.legal-table tbody tr:last-child td{ border-block-end:none; }
.legal-table tbody th{ background: color-mix(in srgb, var(--color-primary) 4%, transparent); font-weight:600; color:var(--color-primary-dark); width:220px; }
.legal-deflist dt{ font-weight:700; color:var(--color-primary-dark); margin-block-start:var(--space-2); }
.legal-deflist dd{ margin-inline-start:0; color:var(--color-ink-soft); margin-block-end:var(--space-1); }


.thanks-main{ display:flex; align-items:center; justify-content:center; min-height:80vh; padding-block: clamp(7rem,12vw,9rem) var(--space-6); padding-inline:1.5rem; }
.thanks-section{ text-align:center; max-width:32rem; display:flex; flex-direction:column; align-items:center; gap:var(--space-2); }
.thanks-title{ margin-block-start:var(--space-3); }
.thanks-text{ margin-block-end:var(--space-2); }

.envelope-scene{ width:160px; height:120px; position:relative; margin-block-end:var(--space-2); }
.envelope{ position:relative; width:160px; height:110px; }
.envelope-back{
  position:absolute; inset:0; background:var(--color-primary); border-radius:10px;
}
.envelope-front-left, .envelope-front-right{
  position:absolute; bottom:0; width:0; height:0;
  border-style:solid;
}
.envelope-front-left{
  left:0; border-width:0 0 70px 80px; border-color:transparent transparent var(--color-primary-light) transparent;
  border-radius: 0 0 0 10px;
}
.envelope-front-right{
  right:0; border-width:0 80px 70px 0; border-color:transparent transparent var(--color-primary-light) transparent;
  border-radius: 0 0 10px 0;
}
.envelope-letter{
  position:absolute; left:20px; right:20px; top:20px;
  background:var(--color-surface);
  border-radius:6px; box-shadow:var(--shadow-sm);
  padding:.8rem; text-align:left;
  transform:translateY(0);
  animation: letterSlide 2.4s ease-in-out infinite;
  z-index:1;
}
.envelope-letter p{ font-weight:700; color:var(--color-primary-dark); margin-block-start:.3rem; }
.envelope-flap{
  position:absolute; top:0; left:0; width:0; height:0;
  border-style:solid; border-width:55px 80px 0 80px;
  border-color:var(--color-primary-dark) transparent transparent transparent;
  transform-origin:top;
  animation: flapOpen 2.4s ease-in-out infinite;
  z-index:2;
}
@keyframes flapOpen{
  0%{ transform:rotateX(0deg); }
  30%{ transform:rotateX(180deg); }
  100%{ transform:rotateX(180deg); }
}
@keyframes letterSlide{
  0%{ transform:translateY(20px); opacity:0; }
  35%{ transform:translateY(20px); opacity:0; }
  60%{ transform:translateY(-18px); opacity:1; }
  100%{ transform:translateY(-18px); opacity:1; }
}


.cookie-pill{
  position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%);
  background:var(--color-primary-dark); color:#F2EFE7;
  border-radius:var(--radius-pill);
  padding:.8rem 1rem .8rem 1.4rem;
  display:flex; align-items:center; gap:1rem;
  box-shadow:var(--shadow-lg);
  z-index:900;
  max-width:min(92vw, 480px);
  transition:border-radius .5s ease, max-width .5s ease, padding .5s ease, background .5s ease;
}
.cookie-pill p{ font-size:.85rem; margin:0; flex:1; }
.cookie-pill-actions{ display:flex; gap:.5rem; flex-shrink:0; }
.cookie-btn{ padding:.5rem .9rem; border-radius:var(--radius-pill); font-size:.82rem; font-weight:600; min-height:36px; }
.cookie-btn-accept{ background:var(--color-accent); color:#fff; }
.cookie-btn-accept:hover{ background: color-mix(in srgb, var(--color-accent) 85%, black); }
.cookie-btn-manage{ background:transparent; color:#F2EFE7; border:1px solid rgba(255,255,255,.3); }
.cookie-btn-manage:hover{ border-color:#fff; }

.cookie-modal-overlay{
  position:fixed; inset:0; background:rgba(15,20,18,.55); z-index:950;
  opacity:0; pointer-events:none; transition:opacity .4s ease;
}
.cookie-modal-overlay.open{ opacity:1; pointer-events:auto; }
.cookie-modal{
  position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%) scale(.92);
  width:min(92vw, 560px);
  background:var(--color-surface); color:var(--color-ink);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  padding:var(--space-4);
  z-index:960;
  opacity:0; pointer-events:none;
  transition:opacity .45s ease, transform .45s cubic-bezier(.2,.8,.2,1);
  max-height:82vh; overflow-y:auto;
}
.cookie-modal.open{ opacity:1; pointer-events:auto; transform:translateX(-50%) scale(1); }
.cookie-modal h3{ font-size:1.2rem; margin-block-end:.6rem; color:var(--color-primary-dark); }
.cookie-modal p{ font-size:.92rem; color:var(--color-ink-soft); margin-block-end:var(--space-2); }
.cookie-category{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding-block:.8rem; border-block-end:1px solid var(--color-line); }
.cookie-category:last-of-type{ border-block-end:none; }
.cookie-category-text strong{ display:block; margin-block-end:.2rem; color:var(--color-primary-dark); }
.cookie-category-text span{ font-size:.85rem; color:var(--color-ink-soft); }
.switch{ position:relative; width:46px; height:26px; flex-shrink:0; }
.switch input{ opacity:0; width:0; height:0; }
.switch-track{ position:absolute; inset:0; background:var(--color-line-strong); border-radius:var(--radius-pill); transition:background .3s ease; }
.switch-thumb{ position:absolute; top:3px; left:3px; width:20px; height:20px; background:#fff; border-radius:50%; transition:transform .3s ease; box-shadow:var(--shadow-sm); }
.switch input:checked + .switch-track{ background:var(--color-accent); }
.switch input:checked + .switch-track .switch-thumb{ transform:translateX(20px); }
.switch input:disabled + .switch-track{ opacity:.5; }
.cookie-modal-actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-block-start:var(--space-3); }

@media (max-width:520px){
  .cookie-pill{ flex-direction:column; align-items:stretch; text-align:center; border-radius:var(--radius-md); padding:1rem; }
  .cookie-pill-actions{ justify-content:center; }
}