/* ==========================================================
   Base: fontes, tokens, reset e componentes compartilhados
   ========================================================== */
@font-face {
  font-family: 'Urbanist';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/urbanist-latin.woff2') format('woff2');
}
@font-face {
  font-family: 'Allura';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/allura-latin.woff2') format('woff2');
}

:root {
  --bg: #E7EEEC;
  --surface: #F7F9F8;
  --white: #FFFFFF;
  --ink: #17211F;
  --ink-2: #2B3E3B;
  --sage: #4E6B67;
  --sage-d: #3F5754;
  --sage-l: #A9C2BD;
  --sage-stroke: #9FB6B2;
  --mint: #E1EBE9;
  --muted: #4A5856;
  --muted-2: #5C6866;
  --line: #D5DFDC;
  --line-2: #E3EAE8;
  --terra: #A3655A;
  --blush: #E7C4BB;

  --r-panel: 32px;
  --r-card: 22px;
  --page-pad: 10px;
  --panel-pad: 20px;
  --gap: 12px;

  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-soft: cubic-bezier(.4, 0, .2, 1);
  --font: 'Urbanist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --script: 'Allura', cursive;
}

@media (min-width: 768px) {
  :root { --page-pad: 20px; --panel-pad: 32px; --gap: 18px; }
}
@media (min-width: 1100px) {
  :root { --page-pad: 24px; --gap: 20px; }
}

*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: 84px;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
body.is-locked { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: var(--sage-d); text-decoration: none; }
h1, h2, h3, p { margin: 0; }
button { font: inherit; cursor: pointer; }
svg { flex: none; }
:focus-visible { outline: 2px solid var(--sage); outline-offset: 3px; border-radius: 8px; }

.skip-link {
  position: absolute; left: 12px; top: -60px; z-index: 100;
  background: var(--ink); color: #fff; padding: 10px 16px; border-radius: 999px;
  transition: top .2s;
}
.skip-link:focus { top: 12px; }

/* Layout */
.page {
  max-width: 1320px;
  margin: 0 auto;
  padding: max(var(--page-pad), env(safe-area-inset-top)) max(var(--page-pad), env(safe-area-inset-right)) 0 max(var(--page-pad), env(safe-area-inset-left));
}
.stack { display: flex; flex-direction: column; gap: var(--gap); }
.panel { border-radius: var(--r-panel); position: relative; }
.panel--surface { background: var(--surface); }
.panel--white { background: var(--white); }
.panel--ink { background: var(--ink); color: #fff; }

/* Marca */
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); }
.brand__mark {
  width: 40px; height: 40px; border-radius: 50%; background: var(--sage); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--script); font-size: 24px; line-height: 1;
  transition: transform .5s var(--ease-out);
}
.brand:hover .brand__mark { transform: rotate(-12deg) scale(1.06); }
.brand__name { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; }
.brand--sm .brand__mark { width: 34px; height: 34px; font-size: 20px; }
.brand--sm .brand__name { font-size: 15px; }

/* Botões */
.btn {
  --btn-bg: var(--sage); --btn-fg: #fff; --ico-bg: #fff; --ico-fg: var(--sage);
  display: inline-flex; align-items: center; justify-content: space-between; gap: 14px;
  min-height: 52px; padding: 6px 6px 6px 24px; border-radius: 999px;
  background: var(--btn-bg); color: var(--btn-fg);
  font-size: 15px; font-weight: 600; white-space: nowrap;
  position: relative; isolation: isolate; overflow: hidden;
  transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.btn::before {
  content: ''; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  background: rgba(255,255,255,.12); transform: translateX(-101%);
  transition: transform .6s var(--ease-out);
}
.btn:hover { color: var(--btn-fg); transform: translateY(-2px); box-shadow: 0 14px 30px -12px rgba(23,33,31,.45); }
.btn:hover::before { transform: translateX(0); }
.btn:active { transform: translateY(0) scale(.98); }
.btn__icon {
  width: 40px; height: 40px; border-radius: 50%; flex: none;
  background: var(--ico-bg); color: var(--ico-fg);
  display: flex; align-items: center; justify-content: center;
  transition: transform .5s var(--ease-out);
}
.btn:hover .btn__icon { transform: rotate(45deg); }
.btn--dark { --btn-bg: var(--ink); --ico-fg: var(--ink); }
.btn--light { --btn-bg: #fff; --btn-fg: var(--ink); --ico-bg: var(--sage); --ico-fg: #fff; }
.btn--light::before { background: rgba(78,107,103,.1); }
.btn--sage { --btn-bg: var(--sage); }
.btn--lg { min-height: 58px; font-size: 16px; font-weight: 700; padding-left: 26px; }
.btn--lg .btn__icon { width: 46px; height: 46px; }
.btn--block { display: flex; width: 100%; }

.icon-btn {
  width: 44px; height: 44px; border-radius: 50%; flex: none; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid transparent; color: #fff;
  transition: transform .35s var(--ease-out), background-color .3s;
}
.icon-btn:hover { transform: translateY(-2px) scale(1.05); color: #fff; }
.icon-btn--dark { background: var(--ink); }
.icon-btn--light { background: #fff; border-color: var(--line); color: var(--ink); }
.icon-btn--light:hover { color: var(--ink); background: var(--mint); }
.icon-btn--ghost { border-color: rgba(255,255,255,.45); background: transparent; }
.icon-btn--ghost:hover { background: rgba(255,255,255,.12); }
.icon-btn--glass { background: rgba(255,255,255,.18); }
.icon-btn--glass:hover { background: rgba(255,255,255,.28); }

.pill {
  padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px;
  font-size: 14px; font-weight: 600; color: var(--ink-2); background: #fff;
  transition: background-color .3s, color .3s, border-color .3s, transform .35s var(--ease-out);
}
.pill:hover { background: var(--sage); border-color: var(--sage); color: #fff; transform: translateY(-1px); }

.chip {
  position: absolute; display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px; border-radius: 999px;
  background: rgba(255,255,255,.92); color: var(--ink);
  font-size: 13px; font-weight: 600; white-space: nowrap;
  box-shadow: 0 8px 24px -12px rgba(23,33,31,.35);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.chip i { width: 8px; height: 8px; border-radius: 50%; background: var(--sage); }
.chip i.dot-terra { background: var(--terra); }
.chip i.dot-ink { background: var(--ink); }

.eyebrow { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-2); }
.tag { font-size: 14px; font-weight: 500; letter-spacing: 0; color: var(--muted-2); }
.link {
  font-size: 14px; font-weight: 700; color: var(--sage-d);
  background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
  transition: background-size .4s var(--ease-out);
}
.link:hover { background-size: 0 1px; background-position: 100% 100%; }
