:root{
  --color-bg:#FBF6EE;
  --color-bg-alt:#F3EAD9;
  --color-bg-deep:#EDE1CB;
  --color-surface:#FFFFFF;
  --color-ink:#2B241E;
  --color-ink-soft:#5C5248;
  --color-ink-faint:#8A7F72;
  --color-primary:#2F6F5E;
  --color-primary-dark:#1E4A3D;
  --color-primary-light:#E4F0EA;
  --color-secondary:#E2703F;
  --color-secondary-dark:#C05A2E;
  --color-accent:#D9A441;
  --color-line:#E5D9C4;

  --radius-sm:0.6rem;
  --radius-md:1.1rem;
  --radius-lg:1.8rem;
  --radius-xl:2.6rem;
  --radius-blob:62% 38% 55% 45% / 45% 55% 40% 60%;
  --radius-blob-alt:38% 62% 45% 55% / 55% 40% 60% 45%;

  --space-1:0.5rem;
  --space-2:1rem;
  --space-3:1.5rem;
  --space-4:2rem;
  --space-5:3rem;
  --space-6:4.5rem;
  --space-7:6.5rem;

  --shadow-sm:0 1px 2px rgba(43,36,30,0.06), 0 1px 1px rgba(43,36,30,0.04);
  --shadow-md:0 8px 24px -8px rgba(43,36,30,0.18), 0 2px 6px rgba(43,36,30,0.08);
  --shadow-lg:0 24px 48px -16px rgba(43,36,30,0.22), 0 8px 20px -6px rgba(43,36,30,0.12);
  --shadow-glow-primary:0 12px 32px -10px color-mix(in srgb, var(--color-primary) 55%, transparent), 0 2px 8px rgba(43,36,30,0.08);
  --shadow-glow-secondary:0 12px 32px -10px color-mix(in srgb, var(--color-secondary) 55%, transparent), 0 2px 8px rgba(43,36,30,0.08);

  --font-heading:'Unbounded', sans-serif;
  --font-body:'Inter', sans-serif;
}

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

.eyebrow{
  display:inline-block;
  font-family:var(--font-heading);
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--color-primary-dark);
  background:var(--color-primary-light);
  padding:0.4em 1em;
  border-radius:100px;
  margin-block-end:var(--space-3);
  border:1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
}

.section-title{
  font-size:clamp(1.6rem, 1.1rem + 2vw, 2.4rem);
  font-weight:600;
  margin-block-end:var(--space-3);
}
.section-title.light{ color:#fff; }
.section-text{ font-size:1.02rem; max-width:62ch; }
.section-text.light{ color:rgba(255,255,255,0.86); }
.highlight-text{ color:var(--color-secondary); }

.content-block{ padding-inline:var(--space-4); }


.site-header{
  position:sticky; top:0; z-index:100;
  background:transparent;
  transition:background 0.35s ease, box-shadow 0.35s ease, padding-block 0.35s ease;
  padding-block:var(--space-2);
}
.site-header.scrolled{
  background:rgba(251,246,238,0.92);
  backdrop-filter:blur(10px);
  box-shadow:var(--shadow-md);
  padding-block:0.6rem;
}
.header-inner{
  max-width:1240px; margin-inline:auto; padding-inline:var(--space-4);
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-3);
}
.brand-mark{ display:flex; align-items:center; gap:0.6rem; }
.brand-logo{ inline-size:38px; block-size:38px; }
.brand-name{ font-family:var(--font-heading); font-weight:600; font-size:1.15rem; color:var(--color-ink); }

.main-nav{ flex:1; }
.nav-list{ display:flex; align-items:center; gap:var(--space-3); justify-content:flex-end; flex-wrap:wrap; }
.nav-link{
  font-weight:500; font-size:0.95rem; padding:0.5rem 0.2rem;
  border-block-end:2px solid transparent;
  transition:color 0.25s ease, border-color 0.25s ease;
}
.nav-link:hover, .nav-link.is-active{ color:var(--color-primary-dark); border-block-end-color:var(--color-secondary); }

.has-submenu{ position:relative; }
.submenu-toggle{
  background:none; border:none; font-family:var(--font-body); font-weight:500; font-size:0.95rem;
  color:var(--color-ink); display:flex; align-items:center; gap:0.4rem; padding:0.5rem 0.2rem;
  border-block-end:2px solid transparent; transition:color 0.25s ease, border-color 0.25s ease;
}
.submenu-toggle:hover{ color:var(--color-primary-dark); border-block-end-color:var(--color-secondary); }
.submenu-toggle i{ font-size:0.65rem; transition:transform 0.3s ease; }
.has-submenu.is-open .submenu-toggle i{ transform:rotate(180deg); }

.submenu{
  display:flex; flex-direction:column; gap:0.2rem;
  max-height:0; overflow:hidden; transition:max-height 0.35s ease;
}
.has-submenu.is-open .submenu{ max-height:220px; }
.submenu li a{ display:block; padding:0.5rem 0.2rem; font-size:0.9rem; color:var(--color-ink-soft); transition:color 0.2s ease; }
.submenu li a:hover{ color:var(--color-secondary-dark); }

.menu-trigger{
  display:none; flex-direction:column; gap:5px; background:none; border:none; padding:0.5rem;
  min-width:44px; min-height:44px; align-items:center; justify-content:center;
}
.menu-trigger span{ width:24px; height:2px; background:var(--color-ink); border-radius:2px; transition:transform 0.3s ease, opacity 0.3s ease; }
.menu-trigger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-trigger.is-open span:nth-child(2){ opacity:0; }
.menu-trigger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width: 900px){
  .menu-trigger{ display:flex; }
  .main-nav{
    flex-basis:100%; order:3;
    max-height:0; overflow:hidden; transition:max-height 0.4s ease;
  }
  .main-nav.is-open{ max-height:600px; }
  .nav-list{ flex-direction:column; align-items:stretch; gap:0; padding-block:var(--space-2); }
  .nav-list > li{ border-block-end:1px solid var(--color-line); }
  .nav-link, .submenu-toggle{ padding-block:0.85rem; width:100%; justify-content:space-between; }
  .submenu li a{ padding-inline-start:1rem; }
}


.blob-decor{ position:absolute; z-index:0; filter:blur(2px); opacity:0.55; pointer-events:none; }
.blob-decor-1{
  inset-block-start:-60px; inset-inline-end:-80px; inline-size:340px; block-size:340px;
  background:radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--color-accent) 55%, transparent), transparent 70%);
  border-radius:var(--radius-blob);
}
.blob-decor-2{
  inset-block-end:-100px; inset-inline-start:-100px; inline-size:380px; block-size:380px;
  background:radial-gradient(circle at 60% 40%, color-mix(in srgb, var(--color-primary) 45%, transparent), transparent 70%);
  border-radius:var(--radius-blob-alt);
}


.hero-section{ padding-block-start:var(--space-5); padding-block-end:var(--space-7); position:relative; overflow:hidden; }
.hero-grid{
  max-width:1240px; margin-inline:auto; padding-inline:var(--space-4);
  display:grid; grid-template-columns:1.05fr 0.95fr; gap:var(--space-6); align-items:center;
  position:relative; z-index:1;
}
.hero-title{ font-size:clamp(2.1rem, 1.4rem + 3vw, 3.4rem); font-weight:700; margin-block-end:var(--space-3); }
.hero-text{ font-size:1.08rem; max-width:56ch; margin-block-end:var(--space-2); }
.hero-disclaimer{
  font-size:0.9rem; color:var(--color-ink-faint); display:flex; align-items:flex-start; gap:0.5rem;
  background:var(--color-bg-alt); padding:0.8rem 1rem; border-radius:var(--radius-md);
  border-inline-start:3px solid var(--color-accent); margin-block-end:var(--space-4); max-width:56ch;
}
.hero-actions{ display:flex; gap:var(--space-2); flex-wrap:wrap; }
.hero-actions.center{ justify-content:center; }

.primary-action, .secondary-action{
  display:inline-flex; align-items:center; justify-content:center; gap:0.5rem;
  font-family:var(--font-heading); font-weight:600; font-size:0.92rem;
  padding:0.9rem 1.6rem; border-radius:100px; min-height:48px;
  transition:transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease;
  border:1.5px solid transparent;
}
.primary-action{
  background:var(--color-primary); color:#fff; box-shadow:var(--shadow-glow-primary);
}
.primary-action:hover{ background:var(--color-primary-dark); transform:translateY(-2px); box-shadow:0 18px 40px -12px color-mix(in srgb, var(--color-primary) 65%, transparent); }
.secondary-action{
  background:transparent; color:var(--color-primary-dark); border-color:var(--color-primary);
}
.secondary-action:hover{ background:var(--color-primary-light); transform:translateY(-2px); }
.secondary-action.light{ color:#fff; border-color:rgba(255,255,255,0.6); }
.secondary-action.light:hover{ background:rgba(255,255,255,0.12); }
.full-width{ width:100%; }

.hero-visual{ position:relative; }
.hero-card{
  background:var(--color-surface); border-radius:var(--radius-xl); overflow:hidden;
  box-shadow:var(--shadow-lg); border:1px solid var(--color-line);
}
.hero-card-image{ aspect-ratio:16/10; overflow:hidden; }
.hero-card-image img{ width:100%; height:100%; object-fit:cover; }
.hero-card-body{ padding:var(--space-4); }
.card-tag{
  display:inline-block; font-size:0.75rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase;
  color:var(--color-secondary-dark); background:color-mix(in srgb, var(--color-secondary) 14%, white);
  padding:0.3em 0.9em; border-radius:100px; margin-block-end:var(--space-2);
}
.hero-card-title{ font-size:1.3rem; margin-block-end:var(--space-3); }
.hero-card-list{ display:flex; flex-direction:column; gap:0.6rem; margin-block-end:var(--space-3); }
.hero-card-list li{ display:flex; gap:0.6rem; align-items:flex-start; font-size:0.94rem; color:var(--color-ink-soft); }
.hero-card-list i{ color:var(--color-primary); margin-block-start:0.2rem; }
.hero-card-price{ display:flex; align-items:baseline; gap:0.5rem; margin-block-end:var(--space-3); padding-block-start:var(--space-2); border-block-start:1px solid var(--color-line); }
.price-value{ font-family:var(--font-heading); font-size:1.4rem; font-weight:600; color:var(--color-primary-dark); }
.price-note{ font-size:0.85rem; color:var(--color-ink-faint); }

@media (max-width: 900px){
  .hero-grid{ grid-template-columns:1fr; gap:var(--space-4); }
}


.trust-strip{
  max-width:1240px; margin-inline:auto; display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-3);
  padding-block:var(--space-4);
}
.trust-item{
  background:var(--color-surface); border-radius:var(--radius-md); padding:var(--space-3);
  box-shadow:var(--shadow-sm); border-inline-start:3px solid var(--color-accent);
  display:flex; flex-direction:column; gap:0.6rem; align-items:flex-start;
}
.trust-item i{ font-size:1.3rem; color:var(--color-primary); }
.trust-item p{ margin:0; font-size:0.92rem; color:var(--color-ink-soft); }
@media (max-width:900px){ .trust-strip{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .trust-strip{ grid-template-columns:1fr; } }


.wave-divider{ line-height:0; margin-block:calc(var(--space-4) * -1) 0; position:relative; z-index:1; }
.wave-divider svg{ width:100%; height:70px; display:block; }
.wave-divider svg path{ fill:var(--color-bg-alt); }
.wave-divider-flip svg path{ fill:var(--color-bg); }


.about-section, .tools-section{ background:var(--color-bg-alt); }
.about-grid, .tools-grid{
  max-width:1240px; margin-inline:auto; padding-inline:var(--space-4);
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:var(--space-6); align-items:center;
}
.tools-grid{ grid-template-columns:1.1fr 0.9fr; }
.organic-frame{
  border-radius:var(--radius-blob); overflow:hidden; box-shadow:var(--shadow-lg);
  aspect-ratio:4/3.4; border:6px solid var(--color-surface);
}
.organic-frame-alt{ border-radius:var(--radius-blob-alt); }
.organic-frame img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:900px){
  .about-grid, .tools-grid{ grid-template-columns:1fr; }
  .tools-visual{ order:-1; }
}


.formats-section{ background:var(--color-bg); }
.section-head{ max-width:760px; margin-inline:auto; text-align:center; padding-inline:var(--space-4); margin-block-end:var(--space-5); }
.section-head .section-text{ margin-inline:auto; }
.info-grid{ max-width:1240px; margin-inline:auto; padding-inline:var(--space-4); }
.formats-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-4); }
.format-card{
  background:var(--color-surface); border-radius:var(--radius-lg); padding:var(--space-4);
  box-shadow:var(--shadow-md); border:1px solid var(--color-line);
  display:flex; flex-direction:column; transition:transform 0.3s ease, box-shadow 0.3s ease;
  container-type:inline-size;
}
.format-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.format-icon{
  inline-size:56px; block-size:56px; border-radius:var(--radius-blob); display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; margin-block-end:var(--space-3); color:#fff;
}
.icon-primary{ background:var(--color-primary); box-shadow:var(--shadow-glow-primary); }
.icon-secondary{ background:var(--color-secondary); box-shadow:var(--shadow-glow-secondary); }
.icon-accent{ background:var(--color-accent); box-shadow:0 12px 32px -10px color-mix(in srgb, var(--color-accent) 55%, transparent); }
.format-title{ font-size:1.2rem; margin-block-end:var(--space-2); }
.format-text{ font-size:0.94rem; margin-block-end:var(--space-3); }
.format-list{ display:flex; flex-direction:column; gap:0.5rem; margin-block-end:var(--space-4); flex:1; }
.format-list li{ display:flex; gap:0.5rem; align-items:flex-start; font-size:0.9rem; color:var(--color-ink-soft); }
.format-list i{ color:var(--color-primary); margin-block-start:0.2rem; }
@media (max-width:1000px){ .formats-grid{ grid-template-columns:1fr; } }


.comparison-section{ background:var(--color-bg-deep); }
.comparison-columns{ max-width:1000px; margin-inline:auto; padding-inline:var(--space-4); display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }
.comparison-col{
  background:var(--color-surface); border-radius:var(--radius-lg); padding:var(--space-4);
  box-shadow:var(--shadow-md); border-block-start:4px solid var(--color-primary);
}
.comparison-col-alt{ border-block-start-color:var(--color-secondary); }
.comparison-col-head{ display:flex; align-items:center; gap:0.7rem; margin-block-end:var(--space-3); }
.comparison-col-head i{ font-size:1.3rem; color:var(--color-primary); }
.comparison-col-alt .comparison-col-head i{ color:var(--color-secondary); }
.comparison-col-head h3{ margin:0; font-size:1.1rem; }
.comparison-list{ display:flex; flex-direction:column; gap:0.75rem; }
.comparison-list li{ font-size:0.94rem; color:var(--color-ink-soft); padding-inline-start:1.2rem; position:relative; }
.comparison-list li::before{ content:"–"; position:absolute; inset-inline-start:0; color:var(--color-accent); font-weight:700; }
@media (max-width:800px){ .comparison-columns{ grid-template-columns:1fr; } }


.process-section{ background:var(--color-bg); }
.process-grid{ max-width:1240px; margin-inline:auto; padding-inline:var(--space-4); display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-4); }
.process-step{
  background:var(--color-surface); border-radius:var(--radius-lg); padding:var(--space-4);
  box-shadow:var(--shadow-sm); text-align:center; border:1px solid var(--color-line);
}
.process-number{ font-family:var(--font-heading); font-size:1.6rem; font-weight:700; color:var(--color-accent); display:block; margin-block-end:var(--space-2); }
.process-step h3{ font-size:1.05rem; margin-block-end:0.5rem; }
.process-step p{ font-size:0.9rem; margin:0; }
@media (max-width:900px){ .process-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .process-grid{ grid-template-columns:1fr; } }


.tools-list{ display:grid; grid-template-columns:1fr; gap:var(--space-3); padding-inline:0; margin-block-start:var(--space-3); }
.tool-item{ display:flex; gap:var(--space-3); align-items:flex-start; background:var(--color-surface); padding:var(--space-3); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.tool-item i{ font-size:1.5rem; color:var(--color-primary); margin-block-start:0.2rem; }
.tool-item h4{ margin:0 0 0.3rem; font-size:1rem; }
.tool-item p{ margin:0; font-size:0.88rem; }


.faq-section{ background:var(--color-bg-alt); }
.faq-list{ max-width:800px; margin-inline:auto; padding-inline:var(--space-4); display:flex; flex-direction:column; gap:var(--space-2); }
.faq-item{
  background:var(--color-surface); border-radius:var(--radius-md); padding:var(--space-3) var(--space-4);
  box-shadow:var(--shadow-sm); border-inline-start:3px solid var(--color-primary);
}
.faq-item summary{ font-family:var(--font-heading); font-weight:600; cursor:pointer; font-size:1rem; padding-block:0.3rem; }
.faq-item p{ margin-block-start:var(--space-2); font-size:0.94rem; }


.closing-cta{ background:linear-gradient(135deg, var(--color-primary-dark), var(--color-primary)); position:relative; overflow:hidden; }
.closing-cta::before{
  content:""; position:absolute; inset-block-start:-60px; inset-inline-start:-60px; inline-size:260px; block-size:260px;
  background:radial-gradient(circle, color-mix(in srgb, var(--color-accent) 45%, transparent), transparent 70%);
  border-radius:var(--radius-blob); pointer-events:none;
}
.closing-cta-inner{ max-width:700px; margin-inline:auto; text-align:center; padding-inline:var(--space-4); position:relative; z-index:1; }


.page-hero{ padding-block:var(--space-6); position:relative; overflow:hidden; }
.page-hero-grid{ max-width:1240px; margin-inline:auto; padding-inline:var(--space-4); display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); align-items:center; position:relative; z-index:1; }
.page-title{ font-size:clamp(1.9rem, 1.3rem + 2.4vw, 2.9rem); font-weight:700; margin-block-end:var(--space-3); }
@media (max-width:900px){ .page-hero-grid{ grid-template-columns:1fr; } }


.content-section{ background:var(--color-bg); }
.content-section-alt{ background:var(--color-bg-alt); }
.content-narrow{ max-width:760px; margin-inline:auto; padding-inline:var(--space-4); margin-block-end:var(--space-5); }
.content-narrow:last-child{ margin-block-end:0; }

.course-detail{ max-width:1240px; margin-inline:auto; padding-inline:var(--space-4); display:grid; grid-template-columns:1fr; gap:var(--space-4); }
.course-detail-reverse{ display:grid; grid-template-columns:0.9fr 1.1fr; }
.course-detail-visual{ display:flex; align-items:center; }
@media (min-width:900px){ .course-detail-reverse{ grid-template-columns:0.9fr 1.1fr; } }
@media (max-width:900px){ .course-detail-reverse{ grid-template-columns:1fr; } .course-detail-visual{ order:-1; } }
.course-detail-text h3{ font-size:1.05rem; margin-block:var(--space-3) var(--space-2); }


.contact-section{ background:var(--color-bg-alt); }
.contact-grid{ max-width:1180px; margin-inline:auto; padding-inline:var(--space-4); display:grid; grid-template-columns:1.2fr 0.8fr; gap:var(--space-5); align-items:start; }
.contact-form-panel{ background:var(--color-surface); border-radius:var(--radius-xl); padding:var(--space-5); box-shadow:var(--shadow-lg); }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } .contact-form-panel{ padding:var(--space-4); } }

.form-accordion-item{ border-block-end:1px solid var(--color-line); }
.form-accordion-item:last-child{ border-block-end:none; }
.form-accordion-head{
  width:100%; display:flex; align-items:center; justify-content:space-between; background:none; border:none;
  font-family:var(--font-heading); font-weight:600; font-size:1rem; color:var(--color-ink); padding:var(--space-3) 0;
}
.form-accordion-head i:last-child{ transition:transform 0.3s ease; color:var(--color-ink-faint); }
.form-accordion-item.is-open .form-accordion-head i:last-child{ transform:rotate(180deg); }
.form-accordion-body{ max-height:0; overflow:hidden; transition:max-height 0.4s ease, padding-block-end 0.4s ease; }
.form-accordion-item.is-open .form-accordion-body{ max-height:600px; padding-block-end:var(--space-3); }

.form-field{ margin-block-end:var(--space-3); }
.form-field label{ display:block; font-size:0.88rem; font-weight:600; margin-block-end:0.4rem; color:var(--color-ink); }
.form-field input[type="text"], .form-field input[type="email"], .form-field textarea{
  width:100%; padding:0.85rem 1rem; border-radius:var(--radius-sm); border:1.5px solid var(--color-line);
  background:var(--color-bg); font-family:var(--font-body); font-size:0.96rem; color:var(--color-ink);
  transition:border-color 0.25s ease, box-shadow 0.25s ease;
}
.form-field input:focus, .form-field textarea:focus{ outline:none; border-color:var(--color-primary); box-shadow:0 0 0 4px color-mix(in srgb, var(--color-primary) 18%, transparent); }
.form-field-checkbox{ display:flex; align-items:flex-start; gap:0.6rem; }
.form-field-checkbox input{ min-width:20px; min-height:20px; margin-block-start:0.2rem; accent-color:var(--color-primary); }
.form-field-checkbox label{ font-weight:400; font-size:0.9rem; margin:0; }

.contact-info-panel{ display:flex; flex-direction:column; gap:var(--space-3); }
.info-card{ background:var(--color-surface); border-radius:var(--radius-lg); padding:var(--space-4); box-shadow:var(--shadow-sm); border-inline-start:3px solid var(--color-primary); }
.info-card h3{ font-size:1rem; display:flex; align-items:center; gap:0.5rem; margin-block-end:var(--space-2); }
.info-card h3 i{ color:var(--color-primary); }
.info-card-highlight{ border-inline-start-color:var(--color-secondary); background:color-mix(in srgb, var(--color-secondary) 6%, white); }
.info-card-highlight h3 i{ color:var(--color-secondary); }
.map-frame{ border-radius:var(--radius-md); overflow:hidden; margin-block-start:var(--space-2); }


.thanks-section{ min-height:60vh; display:flex; align-items:center; justify-content:center; padding-block:var(--space-7); }
.thanks-card{ text-align:center; max-width:520px; padding-inline:var(--space-4); }
.check-anim{ margin-block-end:var(--space-3); }
.check-circle{ stroke:var(--color-primary); stroke-dasharray:280; stroke-dashoffset:280; animation:draw-circle 0.7s ease forwards; }
.check-mark{ stroke:var(--color-secondary); stroke-dasharray:70; stroke-dashoffset:70; animation:draw-check 0.5s ease forwards 0.6s; stroke-linecap:round; stroke-linejoin:round; }
.thanks-title{ opacity:0; animation:fade-up-in 0.6s ease forwards 1.1s; }
@keyframes draw-circle{ to{ stroke-dashoffset:0; } }
@keyframes draw-check{ to{ stroke-dashoffset:0; } }
@keyframes fade-up-in{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:translateY(0); } }


.legal-hero{ max-width:900px; margin-inline:auto; padding-inline:var(--space-4); text-align:center; padding-block-end:var(--space-3); }
.legal-timeline{ max-width:840px; margin-inline:auto; padding-inline:var(--space-4); position:relative; }
.legal-timeline::before{ content:""; position:absolute; inset-inline-start:calc(var(--space-4) + 27px); inset-block:0; width:2px; background:var(--color-line); }
.timeline-item{ position:relative; padding-inline-start:70px; padding-block-end:var(--space-5); }
.timeline-item:last-child{ padding-block-end:0; }
.timeline-marker{
  position:absolute; inset-inline-start:0; inset-block-start:0; display:flex; flex-direction:column; align-items:center; gap:0.3rem;
}
.timeline-marker span{
  display:flex; align-items:center; justify-content:center; inline-size:54px; block-size:54px; border-radius:50%;
  background:var(--color-primary); color:#fff; font-family:var(--font-heading); font-weight:600; font-size:1rem;
  box-shadow:var(--shadow-glow-primary); z-index:1; position:relative;
}
.timeline-marker time{ font-size:0.7rem; color:var(--color-ink-faint); white-space:nowrap; }
.timeline-content h2{ font-size:1.2rem; margin-block-end:var(--space-2); }
.legal-timeline-compact .timeline-marker span{ inline-size:44px; block-size:44px; font-size:0.85rem; background:var(--color-secondary); box-shadow:var(--shadow-glow-secondary); }
.legal-timeline-compact .timeline-item{ padding-block-end:var(--space-4); padding-inline-start:64px; }
.legal-timeline-compact::before{ inset-inline-start:calc(var(--space-4) + 22px); }
.legal-timeline-medium .timeline-marker span{ background:var(--color-accent); box-shadow:0 12px 32px -10px color-mix(in srgb, var(--color-accent) 55%, transparent); }

.legal-block-title{ font-size:1.15rem; margin-block:var(--space-4) var(--space-2); }
.legal-block-title:first-child{ margin-block-start:0; }


.site-footer{ background:var(--color-primary-dark); color:#F1EEE6; margin-block-start:auto; }
.footer-quote{
  max-width:900px; margin-inline:auto; text-align:center; padding-block:var(--space-6) var(--space-4);
}
.footer-quote blockquote{ font-family:var(--font-heading); font-size:clamp(1.2rem, 1rem + 1.2vw, 1.7rem); font-weight:500; line-height:1.4; margin:0 0 var(--space-3); color:#fff; }
.quote-attribution{ color:color-mix(in srgb, #fff 65%, transparent); font-size:0.9rem; margin:0; }
.footer-grid{
  max-width:1240px; margin-inline:auto; padding:var(--space-5) var(--space-4);
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:var(--space-4);
  border-block-start:1px solid rgba(255,255,255,0.15);
}
.footer-brand p{ color:rgba(255,255,255,0.7); font-size:0.9rem; margin-block-start:var(--space-2); }
.footer-links h4, .footer-contact h4{ font-family:var(--font-heading); font-size:0.95rem; margin-block-end:var(--space-2); color:#fff; }
.footer-links ul{ display:flex; flex-direction:column; gap:0.55rem; }
.footer-links a{ color:rgba(255,255,255,0.72); font-size:0.9rem; transition:color 0.25s ease; }
.footer-links a:hover{ color:var(--color-accent); }
.footer-contact p{ color:rgba(255,255,255,0.78); font-size:0.9rem; display:flex; gap:0.5rem; align-items:flex-start; margin-block-end:0.6rem; }
.footer-contact a{ color:rgba(255,255,255,0.9); }
.footer-contact a:hover{ color:var(--color-accent); }
.footer-bottom{
  max-width:1240px; margin-inline:auto; padding:var(--space-3) var(--space-4) var(--space-4);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.5rem;
  font-size:0.8rem; color:rgba(255,255,255,0.55); border-block-start:1px solid rgba(255,255,255,0.1);
}
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }


.cookie-pill{
  position:fixed; inset-block-end:20px; inset-inline-start:50%; transform:translateX(-50%);
  z-index:999; background:var(--color-ink); color:#fff; border-radius:100px;
  padding:0.7rem 0.7rem 0.7rem 1.3rem; display:none; align-items:center; gap:0.8rem;
  box-shadow:var(--shadow-lg); max-width:min(92vw, 560px); transition:border-radius 0.4s ease, padding 0.4s ease, max-width 0.4s ease, background 0.4s ease;
}
.cookie-pill.is-visible{ display:flex; }
.cookie-pill.is-expanded{
  flex-direction:column; align-items:stretch; border-radius:var(--radius-xl);
  padding:var(--space-4); max-width:min(92vw, 480px); inset-block-end:20px; background:var(--color-surface); color:var(--color-ink);
}
.cookie-pill-text{ font-size:0.86rem; line-height:1.4; flex:1; }
.cookie-pill.is-expanded .cookie-pill-text{ margin-block-end:var(--space-3); color:var(--color-ink-soft); }
.cookie-pill-actions{ display:flex; gap:0.5rem; flex-shrink:0; }
.cookie-pill.is-expanded .cookie-pill-actions{ flex-wrap:wrap; }
.cookie-btn{
  border-radius:100px; border:none; padding:0.55rem 1.1rem; font-size:0.82rem; font-weight:600;
  min-height:38px; transition:background 0.25s ease, color 0.25s ease, transform 0.2s ease;
}
.cookie-btn-accept{ background:var(--color-accent); color:var(--color-ink); }
.cookie-btn-accept:hover{ transform:translateY(-2px); }
.cookie-btn-reject{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.4); }
.cookie-pill.is-expanded .cookie-btn-reject{ color:var(--color-ink); border-color:var(--color-line); }
.cookie-btn-customize{ background:transparent; color:rgba(255,255,255,0.75); text-decoration:underline; padding-inline:0.4rem; }
.cookie-pill.is-expanded .cookie-btn-customize{ display:none; }

.cookie-modal-title{ font-family:var(--font-heading); font-size:1.1rem; margin-block-end:var(--space-3); display:flex; align-items:center; gap:0.5rem; }
.cookie-category{ display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-3); padding-block:0.7rem; border-block-end:1px solid var(--color-line); }
.cookie-category:last-of-type{ border-block-end:none; }
.cookie-category-info h5{ margin:0 0 0.2rem; font-size:0.92rem; font-family:var(--font-heading); }
.cookie-category-info p{ margin:0; font-size:0.8rem; color:var(--color-ink-faint); }
.cookie-switch{ position:relative; display:inline-block; width:42px; height:24px; flex-shrink:0; }
.cookie-switch input{ opacity:0; width:0; height:0; }
.cookie-switch-track{ position:absolute; inset:0; background:var(--color-line); border-radius:100px; transition:background 0.25s ease; cursor:pointer; }
.cookie-switch-track::before{ content:""; position:absolute; width:18px; height:18px; border-radius:50%; background:#fff; inset-block-start:3px; inset-inline-start:3px; transition:transform 0.25s ease; box-shadow:var(--shadow-sm); }
.cookie-switch input:checked + .cookie-switch-track{ background:var(--color-primary); }
.cookie-switch input:checked + .cookie-switch-track::before{ transform:translateX(18px); }
.cookie-switch input:disabled + .cookie-switch-track{ background:var(--color-primary); opacity:0.6; cursor:not-allowed; }

@media (max-width:560px){
  .cookie-pill{ inset-inline:16px; transform:none; inset-block-end:16px; }
  .cookie-pill.is-expanded{ inset-inline:12px; }
}