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

:root{
  --color-bg: #FAF7F1;
  --color-bg-alt: #F3EEE4;
  --color-surface: #FFFFFF;
  --color-ink: #23293D;
  --color-ink-soft: #4B5164;
  --color-muted: #757C8C;
  --color-primary: #2B3F6B;
  --color-primary-dark: #1D2C4D;
  --color-secondary: #178068;
  --color-secondary-light: #2CA187;
  --color-accent: #E2A63A;
  --color-accent-light: #F0C169;
  --color-border: rgba(43,63,107,0.10);

  --shadow-sm: 0 1px 2px rgba(35,41,61,0.06), 0 2px 6px rgba(35,41,61,0.05);
  --shadow-md: 0 4px 10px rgba(35,41,61,0.08), 0 12px 24px rgba(35,41,61,0.08);
  --shadow-lg: 0 10px 24px rgba(35,41,61,0.12), 0 24px 48px rgba(35,41,61,0.10);
  --shadow-xl: 0 20px 40px rgba(35,41,61,0.16), 0 36px 70px rgba(35,41,61,0.14);
  --shadow-glow-accent: 0 10px 30px rgba(226,166,58,0.35), 0 2px 8px rgba(226,166,58,0.25);
  --shadow-glow-secondary: 0 10px 30px rgba(23,128,104,0.30), 0 2px 8px rgba(23,128,104,0.22);
  --shadow-glow-primary: 0 10px 34px rgba(43,63,107,0.30);

  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 32px;
  --radius-pill: 999px;

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

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

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family:'Epilogue', sans-serif;
  background:var(--color-bg);
  color:var(--color-ink);
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0; font-weight:700; letter-spacing:-0.01em; }
p{ margin:0; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
input, textarea{ font-family:inherit; }

.section{ padding: var(--space-7) var(--space-3); max-width:1280px; margin:0 auto; }
@media(max-width:768px){ .section{ padding: var(--space-6) var(--space-2); } }

.section-label{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:0.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:var(--color-secondary); margin-bottom:var(--space-2);
}
.section-label::before{
  content:''; width:20px; height:2px; background:var(--color-accent); border-radius:2px;
}
.section-title{
  font-size:clamp(1.7rem, 1.2rem + 2vw, 2.6rem);
  line-height:1.15;
  color:var(--color-primary-dark);
  max-width:44rem;
}
.section-subtitle{
  font-size:clamp(1rem, .95rem + .3vw, 1.15rem);
  color:var(--color-muted);
  max-width:38rem;
  margin-top:var(--space-2);
}


.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding: 0.95rem 1.7rem; border-radius:var(--radius-pill);
  font-weight:600; font-size:0.98rem; transition:all .3s var(--ease);
  min-height:48px;
}
.btn--primary{
  background:linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
  color:#fff; box-shadow: var(--shadow-md), var(--shadow-glow-primary);
}
.btn--primary:hover{ transform:translateY(-3px); box-shadow: var(--shadow-lg), var(--shadow-glow-primary); }
.btn--ghost{
  background:var(--color-surface); color:var(--color-primary-dark);
  border:1px solid var(--color-border); box-shadow:var(--shadow-sm);
}
.btn--ghost:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.btn--accent{
  background:linear-gradient(135deg, var(--color-accent), var(--color-accent-light));
  color:#2A2110; box-shadow:var(--shadow-md), var(--shadow-glow-accent);
}
.btn--accent:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg), var(--shadow-glow-accent); }


.elevated-card{
  background:var(--color-surface);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
  border:1px solid rgba(43,63,107,0.06);
}
.elevated-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }


.site-header{
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding: 1.1rem 0;
  transition: background .35s var(--ease), box-shadow .35s var(--ease), padding .35s var(--ease);
}
.site-header__inner{
  max-width:1280px; margin:0 auto; padding:0 var(--space-3);
  display:flex; align-items:center; justify-content:space-between;
}
.site-header__logo{ display:flex; align-items:center; gap:.6rem; }
.site-header__logo-img{ width:36px; height:36px; }
.site-header__logo-text{ font-weight:800; font-size:1.25rem; color:var(--color-primary-dark); letter-spacing:-.02em; }
.site-header--scrolled{
  background:rgba(250,247,241,0.92);
  backdrop-filter:blur(10px);
  box-shadow:var(--shadow-md);
  padding:.7rem 0;
}
.nav__list{ display:flex; align-items:center; gap:var(--space-4); }
.nav__link{
  font-size:0.95rem; font-weight:500; color:var(--color-ink-soft);
  position:relative; padding:.3rem 0; transition:color .3s var(--ease);
}
.nav__link::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px;
  background:var(--color-accent); transition:width .3s var(--ease); border-radius:2px;
}
.nav__link:hover, .nav__link--active{ color:var(--color-primary-dark); }
.nav__link:hover::after, .nav__link--active::after{ width:100%; }
.nav__cta{
  padding:.7rem 1.3rem; border-radius:var(--radius-pill); background:var(--color-primary-dark);
  color:#fff !important; font-weight:600; box-shadow:var(--shadow-sm); transition:all .3s var(--ease);
}
.nav__cta:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.nav__toggle{ display:none; flex-direction:column; gap:5px; width:44px; height:44px; align-items:center; justify-content:center; }
.nav__toggle-bar{ width:24px; height:2px; background:var(--color-primary-dark); border-radius:2px; transition:all .3s var(--ease); }

@media(max-width:900px){
  .nav__list{ display:none; }
  .nav__toggle{ display:flex; }
}


.mobile-menu{
  position:fixed; inset:0; z-index:500;
  background:linear-gradient(160deg, var(--color-primary-dark), var(--color-primary) 55%, var(--color-secondary));
  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:1.5rem; right:1.5rem; width:48px; height:48px;
  border-radius:50%; background:rgba(255,255,255,0.12); color:#fff; font-size:1.3rem;
  display:flex; align-items:center; justify-content:center; transition:all .3s var(--ease);
}
.mobile-menu__close:hover{ background:rgba(255,255,255,0.25); transform:rotate(90deg); }
.mobile-menu__list{ display:flex; flex-direction:column; gap:1.8rem; text-align:center; }
.mobile-menu__link{
  font-size:clamp(1.6rem, 5vw, 2.4rem); font-weight:700; color:#fff; opacity:.9;
  transition:opacity .3s var(--ease), transform .3s var(--ease); display:inline-block;
}
.mobile-menu__link:hover{ opacity:1; transform:translateX(6px); color:var(--color-accent-light); }


.hero{ position:relative; padding: 9rem 1.5rem 6rem; overflow:hidden; }
.hero__bg-shape{
  position:absolute; top:-10%; right:-15%; width:60%; height:70%;
  background: radial-gradient(circle at 30% 30%, rgba(226,166,58,0.18), transparent 60%),
              radial-gradient(circle at 70% 60%, rgba(23,128,104,0.16), transparent 55%);
  filter: blur(10px); z-index:0;
}
.hero__inner{
  max-width:1280px; margin:0 auto; position:relative; z-index:1;
  display:grid; grid-template-columns:1.15fr .85fr; gap:var(--space-6); align-items:center;
}
.hero__eyebrow{
  display:inline-block; padding:.5rem 1rem; border-radius:var(--radius-pill);
  background:var(--color-surface); box-shadow:var(--shadow-sm); font-size:.82rem; font-weight:600;
  color:var(--color-secondary); margin-bottom:var(--space-3);
}
.hero__title{
  font-size:clamp(2.2rem, 1.4rem + 3.4vw, 4rem); line-height:1.08; color:var(--color-primary-dark);
  margin-bottom:var(--space-3);
}
.hero__title .char{ display:inline-block; opacity:0; transform:translateY(24px) rotate(2deg); animation:charIn .7s var(--ease) forwards; }
@keyframes charIn{ to{ opacity:1; transform:translateY(0) rotate(0); } }
.hero__subtitle{ font-size:clamp(1.02rem, .95rem + .3vw, 1.2rem); color:var(--color-ink-soft); max-width:36rem; margin-bottom:var(--space-4); }
.hero__actions{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:var(--space-4); }
.hero__meta{ display:flex; gap:var(--space-4); flex-wrap:wrap; }
.hero__meta-item{ display:flex; align-items:center; gap:.6rem; font-size:.92rem; color:var(--color-ink-soft); font-weight:500; }
.hero__meta-item i{ color:var(--color-accent); }

.hero__visual{ position:relative; min-height:420px; }
.hero__card--main{ position:relative; width:100%; border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--shadow-xl); }
.hero__card--main img{ width:100%; height:420px; object-fit:cover; }
.hero__card--float-1, .hero__card--float-2{
  position:absolute; display:flex; align-items:center; gap:.8rem; padding:1rem 1.2rem;
  border-radius:var(--radius-lg); font-size:.88rem; font-weight:600; color:var(--color-ink);
  max-width:230px; box-shadow:var(--shadow-lg);
}
.hero__card--float-1{ top:-8%; left:-12%; }
.hero__card--float-1 i{ color:var(--color-secondary); font-size:1.3rem; }
.hero__card--float-2{ bottom:-6%; right:-10%; }
.hero__card--float-2 i{ color:var(--color-accent); font-size:1.3rem; }

@media(max-width:1024px){
  .hero__inner{ grid-template-columns:1fr; }
  .hero__visual{ margin-top:var(--space-5); min-height:340px; }
  .hero__card--float-1, .hero__card--float-2{ max-width:180px; font-size:.8rem; }
}
@media(max-width:600px){
  .hero{ padding-top:7.5rem; }
  .hero__card--float-1{ left:2%; top:-6%; }
  .hero__card--float-2{ right:2%; }
}


.problem__inner{ display:grid; grid-template-columns:1.3fr .9fr; gap:var(--space-6); align-items:center; }
.problem__points{ margin-top:var(--space-3); display:flex; flex-direction:column; gap:.8rem; }
.problem__points li{ display:flex; gap:.7rem; align-items:flex-start; color:var(--color-ink-soft); font-size:.98rem; }
.problem__points li i{ color:var(--color-accent); margin-top:.3rem; }
.problem__text p{ margin-top:var(--space-2); color:var(--color-ink-soft); }
.problem__image-card{ overflow:hidden; border-radius:var(--radius-xl); }
.problem__image-card img{ width:100%; height:420px; object-fit:cover; }
@media(max-width:1000px){ .problem__inner{ grid-template-columns:1fr; } .problem__image-card img{ height:300px; } }


.divider{ display:flex; align-items:center; justify-content:center; padding:var(--space-4) 0; gap:.5rem; }
.divider__dot{ border-radius:50%; background:var(--color-secondary); opacity:.25; }
.divider--dots .divider__dot:nth-child(1){ width:6px;height:6px; }
.divider--dots .divider__dot:nth-child(2){ width:10px;height:10px; opacity:.4; }
.divider--dots .divider__dot:nth-child(3){ width:14px;height:14px; opacity:.6; background:var(--color-accent); }
.divider--dots .divider__dot:nth-child(4){ width:20px;height:20px; opacity:.85; background:var(--color-accent); box-shadow:var(--shadow-glow-accent); }
.divider--dots .divider__dot:nth-child(5){ width:14px;height:14px; opacity:.6; background:var(--color-accent); }
.divider--dots .divider__dot:nth-child(6){ width:10px;height:10px; opacity:.4; }
.divider--dots .divider__dot:nth-child(7){ width:6px;height:6px; opacity:.25; }

.divider--wave{ padding:0; height:90px; position:relative; overflow:hidden; }
.divider--wave svg{ width:100%; height:100%; }


.services__header{ margin-bottom:var(--space-5); }
.services__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3); }
.card--service{ padding:var(--space-3); display:flex; flex-direction:column; gap:.9rem; }
.card__icon{
  width:56px; height:56px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, rgba(43,63,107,0.10), rgba(23,128,104,0.10));
  color:var(--color-primary); font-size:1.4rem;
}
.card--service:hover .card__icon{ background:linear-gradient(135deg,var(--color-secondary),var(--color-primary)); color:#fff; }
.card__title{ font-size:1.15rem; color:var(--color-primary-dark); }
.card__body{ color:var(--color-muted); font-size:.95rem; }
@media(max-width:1000px){ .services__grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .services__grid{ grid-template-columns:1fr; } }


.process__inner{ display:grid; grid-template-columns:.8fr 1.2fr; gap:var(--space-6); align-items:start; }
.process__steps{ display:flex; flex-direction:column; gap:1rem; }
.card--step{ display:flex; gap:1.2rem; padding:1.4rem 1.6rem; align-items:flex-start; }
.card--step:nth-child(2){ margin-left:1.2rem; }
.card--step:nth-child(3){ margin-left:2.4rem; }
.card--step:nth-child(4){ margin-left:3.6rem; }
.card__step-number{
  width:44px; height:44px; flex-shrink:0; border-radius:50%; background:var(--color-primary-dark); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; box-shadow:var(--shadow-glow-primary);
}
.card--step h3{ font-size:1.05rem; color:var(--color-primary-dark); margin-bottom:.3rem; }
.card--step p{ color:var(--color-muted); font-size:.93rem; }
@media(max-width:1000px){
  .process__inner{ grid-template-columns:1fr; }
  .card--step:nth-child(2),.card--step:nth-child(3),.card--step:nth-child(4){ margin-left:0; }
}


.fit__inner{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }
.fit__col{ padding:var(--space-4); }
.fit__col-title{ font-size:1.05rem; margin-bottom:1rem; display:flex; align-items:center; gap:.6rem; }
.fit__col--yes .fit__col-title{ color:var(--color-secondary); }
.fit__col--consider .fit__col-title{ color:var(--color-accent); }
.fit__list{ display:flex; flex-direction:column; gap:.8rem; }
.fit__list li{ display:flex; gap:.6rem; color:var(--color-ink-soft); font-size:.94rem; }
.fit__list li i{ margin-top:.25rem; }
.fit__col--yes i{ color:var(--color-secondary); }
.fit__col--consider i{ color:var(--color-accent); }
@media(max-width:800px){ .fit__inner{ grid-template-columns:1fr; } }


.checklist__inner{ display:grid; grid-template-columns:.9fr 1.4fr; gap:var(--space-5); align-items:start; }
.checklist__columns{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); }
.checklist__list{ display:flex; flex-direction:column; gap:1rem; }
.checklist__item{ display:flex; gap:.8rem; align-items:flex-start; }
.checklist__item i{
  width:26px; height:26px; border-radius:50%; background:var(--color-secondary); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:.72rem; flex-shrink:0; margin-top:.1rem;
  box-shadow:var(--shadow-glow-secondary);
}
.checklist__item span{ color:var(--color-ink-soft); font-size:.95rem; }
@media(max-width:1000px){ .checklist__inner{ grid-template-columns:1fr; } }
@media(max-width:560px){ .checklist__columns{ grid-template-columns:1fr; } }

.checklist__media{ margin-top:var(--space-4); border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--shadow-lg); }
.checklist__media img{ width:100%; height:280px; object-fit:cover; }


.contact-cards__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3); }
.card--contact{ padding:var(--space-4); text-align:left; display:flex; flex-direction:column; gap:.8rem; }
.card--contact .card__icon{ background:linear-gradient(135deg, var(--color-accent), var(--color-secondary)); color:#fff; }
.card--contact a{ color:var(--color-primary); font-weight:600; transition:color .3s var(--ease); }
.card--contact a:hover{ color:var(--color-secondary); }
@media(max-width:900px){ .contact-cards__grid{ grid-template-columns:1fr; } }


.cta-banner{
  margin:var(--space-6) auto; max-width:1200px; padding:var(--space-6) var(--space-5);
  border-radius:var(--radius-xl); position:relative; overflow:hidden;
  background:linear-gradient(135deg, var(--color-primary-dark), var(--color-primary) 60%, var(--color-secondary));
  box-shadow:var(--shadow-xl);
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); flex-wrap:wrap;
}
.cta-banner::before{
  content:''; position:absolute; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(226,166,58,0.35), transparent 70%); top:-100px; right:-60px;
}
.cta-banner__title{ color:#fff; font-size:clamp(1.4rem,1.1rem + 1.4vw,2rem); max-width:30rem; position:relative; z-index:1; }
.cta-banner__text{ color:rgba(255,255,255,0.8); margin-top:.6rem; max-width:28rem; position:relative; z-index:1; }
.cta-banner__actions{ display:flex; gap:1rem; flex-wrap:wrap; position:relative; z-index:1; }


.footer{ background:var(--color-primary-dark); color:rgba(255,255,255,0.75); margin-top:var(--space-6); }
.footer__inner{
  max-width:1280px; margin:0 auto; padding:var(--space-6) var(--space-3) var(--space-4);
  display:grid; grid-template-columns:1.4fr .8fr .8fr 1fr; gap:var(--space-4);
}
.footer__logo{ font-weight:800; font-size:1.3rem; color:#fff; }
.footer__tagline{ margin-top:.8rem; font-size:.9rem; max-width:20rem; }
.footer h4{ color:#fff; font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:1rem; }
.footer__nav ul, .footer__legal ul{ display:flex; flex-direction:column; gap:.6rem; font-size:.92rem; }
.footer__nav a:hover, .footer__legal a:hover{ color:#fff; }
.footer__contact p{ display:flex; gap:.6rem; align-items:flex-start; font-size:.9rem; margin-bottom:.7rem; }
.footer__contact i{ color:var(--color-accent-light); margin-top:.2rem; }
.footer__bottom{ border-top:1px solid rgba(255,255,255,0.1); padding:1.2rem var(--space-3); text-align:center; font-size:.82rem; }
@media(max-width:900px){ .footer__inner{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .footer__inner{ grid-template-columns:1fr; } }


.form-compact{ display:flex; flex-direction:column; gap:1rem; }
.form-compact__row{ display:flex; gap:1rem; flex-wrap:wrap; }
.form-compact__field{ flex:1; min-width:220px; display:flex; flex-direction:column; gap:.4rem; }
.form-compact__field label{ font-size:.82rem; font-weight:600; color:var(--color-ink-soft); }
.form-compact__field input, .form-compact__field textarea{
  padding:.85rem 1rem; border-radius:var(--radius-md); border:1px solid var(--color-border);
  background:var(--color-bg-alt); color:var(--color-ink); font-size:.95rem; transition:all .3s var(--ease);
}
.form-compact__field input:focus, .form-compact__field textarea:focus{
  outline:none; border-color:var(--color-secondary); background:#fff; box-shadow:0 0 0 4px rgba(23,128,104,0.12);
}
.form-compact__bottom{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.form-compact__privacy{ display:flex; align-items:center; gap:.6rem; font-size:.85rem; color:var(--color-muted); }
.form-compact__privacy input{ width:20px; height:20px; accent-color:var(--color-secondary); }
.form-compact__note{ font-size:.8rem; color:var(--color-muted); }


.legal-page{ max-width:1280px; margin:0 auto; padding:8.5rem var(--space-3) var(--space-6); display:grid; grid-template-columns:260px 1fr; gap:var(--space-5); align-items:start; }
.legal-toc{ position:sticky; top:110px; background:var(--color-surface); border-radius:var(--radius-lg); padding:1.4rem; box-shadow:var(--shadow-sm); }
.legal-toc__title{ font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; color:var(--color-muted); margin-bottom:.9rem; font-weight:700; }
.legal-toc__list{ display:flex; flex-direction:column; gap:.6rem; }
.legal-toc__link{ font-size:.88rem; color:var(--color-ink-soft); padding:.4rem .6rem; border-radius:var(--radius-sm); transition:all .3s var(--ease); display:block; }
.legal-toc__link:hover{ background:var(--color-bg-alt); }
.legal-toc__link--active{ background:var(--color-primary-dark); color:#fff; }
.legal-content h1{ font-size:clamp(1.8rem,1.4rem + 1.6vw,2.6rem); color:var(--color-primary-dark); margin-bottom:.6rem; }
.legal-content__updated{ font-size:.85rem; color:var(--color-muted); margin-bottom:var(--space-4); }
.legal-content section{ margin-bottom:var(--space-5); scroll-margin-top:120px; }
.legal-content h2{ font-size:1.3rem; color:var(--color-primary-dark); margin-bottom:.8rem; }
.legal-content p{ color:var(--color-ink-soft); margin-bottom:.8rem; font-size:.96rem; }
.legal-content ul{ margin:0 0 .8rem 0; display:flex; flex-direction:column; gap:.5rem; }
.legal-content ul li{ color:var(--color-ink-soft); font-size:.94rem; padding-left:1.2rem; position:relative; }
.legal-content ul li::before{ content:'—'; position:absolute; left:0; color:var(--color-accent); }
.legal-content table{ width:100%; border-collapse:collapse; margin-bottom:1rem; font-size:.88rem; }
.legal-content table th, .legal-content table td{ text-align:left; padding:.7rem; border-bottom:1px solid var(--color-border); color:var(--color-ink-soft); }
.legal-content table th{ color:var(--color-primary-dark); font-weight:700; }
.legal-toc-mobile{ display:none; }
@media(max-width:900px){
  .legal-page{ grid-template-columns:1fr; padding-top:7.5rem; }
  .legal-toc{ display:none; }
  .legal-toc-mobile{ display:block; margin-bottom:var(--space-3); background:var(--color-surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:1rem 1.2rem; }
  .legal-toc-mobile summary{ font-weight:700; cursor:pointer; color:var(--color-primary-dark); }
  .legal-toc-mobile ul{ margin-top:1rem; display:flex; flex-direction:column; gap:.6rem; }
}


.glossary__search{ max-width:420px; margin:0 auto var(--space-5); position:relative; }
.glossary__search input{
  width:100%; padding:1rem 1.3rem 1rem 3rem; border-radius:var(--radius-pill); border:1px solid var(--color-border);
  background:var(--color-surface); box-shadow:var(--shadow-sm); font-size:.95rem;
}
.glossary__search i{ position:absolute; left:1.2rem; top:50%; transform:translateY(-50%); color:var(--color-muted); }
.glossary__group{ margin-bottom:var(--space-6); }
.glossary__group-title{ font-size:1.2rem; color:var(--color-primary-dark); margin-bottom:var(--space-3); display:flex; align-items:center; gap:.6rem; }
.glossary__group-title::before{ content:''; width:8px; height:8px; border-radius:50%; background:var(--color-accent); }
.glossary__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3); }
.card--term{ padding:1.4rem; }
.card--term h3{ font-size:1rem; color:var(--color-primary-dark); margin-bottom:.5rem; }
.card--term p{ font-size:.9rem; color:var(--color-muted); }
.card--term[hidden]{ display:none; }
@media(max-width:900px){ .glossary__grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .glossary__grid{ grid-template-columns:1fr; } }


.scenario__grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); }
.card--scenario{ padding:var(--space-4); }
.card--scenario span{ color:var(--color-secondary); font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.card--scenario h3{ margin:.6rem 0; color:var(--color-primary-dark); font-size:1.15rem; }
.card--scenario p{ color:var(--color-muted); font-size:.94rem; }
@media(max-width:800px){ .scenario__grid{ grid-template-columns:1fr; } }


.tips__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-3); }
.tips__item{ display:flex; gap:1rem; padding:1.3rem; }
.tips__item i{ font-size:1.2rem; color:var(--color-accent); margin-top:.2rem; }
.tips__item h3{ font-size:1rem; color:var(--color-primary-dark); margin-bottom:.4rem; }
.tips__item p{ font-size:.9rem; color:var(--color-muted); }
@media(max-width:700px){ .tips__grid{ grid-template-columns:1fr; } }

.map-frame{ border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--shadow-lg); border:none; width:100%; height:340px; }


.thanks{ min-height:60vh; display:flex; align-items:center; justify-content:center; padding:8.5rem 1.5rem 4rem; }
.thanks__card{ max-width:540px; padding:var(--space-6) var(--space-5); text-align:center; }
.thanks__icon{ width:70px; height:70px; border-radius:50%; background:linear-gradient(135deg,var(--color-secondary),var(--color-primary)); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.8rem; margin:0 auto var(--space-3); box-shadow:var(--shadow-glow-secondary); }
.thanks__count{ font-weight:800; color:var(--color-accent); font-size:1.4rem; }
.thanks__link{ display:inline-block; margin-top:var(--space-3); color:var(--color-primary); font-weight:600; border-bottom:2px solid var(--color-accent); }


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


.cookie-consent{
  position:fixed; right:1.3rem; bottom:1.3rem; z-index:800; width:320px; max-width:calc(100vw - 2rem);
  background:var(--color-surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-xl);
  padding:1.5rem; transform:translateY(140%); opacity:0; transition:transform .5s var(--ease), opacity .5s var(--ease);
}
.cookie-consent--visible{ transform:translateY(0); opacity:1; }
.cookie-consent__icon{
  width:46px; height:46px; border-radius:50%; background:linear-gradient(135deg,var(--color-accent),var(--color-secondary));
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom:.9rem; box-shadow:var(--shadow-glow-accent);
}
.cookie-consent__text{ font-size:.87rem; color:var(--color-ink-soft); margin-bottom:1.1rem; }
.cookie-consent__prefs{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease), margin .4s var(--ease); display:flex; flex-direction:column; gap:.6rem; }
.cookie-consent--expanded .cookie-consent__prefs{ max-height:220px; margin-bottom:1rem; }
.cookie-consent__toggle{ display:flex; align-items:center; justify-content:space-between; font-size:.85rem; color:var(--color-ink-soft); background:var(--color-bg-alt); padding:.6rem .8rem; border-radius:var(--radius-sm); }
.cookie-consent__toggle input{ width:18px; height:18px; accent-color:var(--color-secondary); }
.cookie-consent__actions{ display:flex; flex-direction:column; gap:.6rem; }
.cookie-consent__btn{ width:100%; padding:.75rem 1rem; border-radius:var(--radius-pill); font-size:.86rem; font-weight:600; transition:all .3s var(--ease); }
.cookie-consent__btn--primary{ background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark)); color:#fff; box-shadow:var(--shadow-sm); }
.cookie-consent__btn--primary:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.cookie-consent__btn--ghost{ background:var(--color-bg-alt); color:var(--color-ink-soft); }
.cookie-consent__btn--ghost:hover{ background:#eee6d8; }
.cookie-consent__btn--text{ background:none; color:var(--color-muted); text-decoration:underline; padding:.3rem; }
@media(max-width:480px){ .cookie-consent{ right:.7rem; bottom:.7rem; left:.7rem; width:auto; } }


.text-center{ text-align:center; margin-left:auto; margin-right:auto; }
.mx-auto{ margin-left:auto; margin-right:auto; }