/* ============================================================
   NEMIAS R. SANCHES — sanches.net.br (MARCA PESSOAL)
   Link-in-bio premium · mobile-first · ponte do Instagram
   Consome tokens.css VERBATIM. Aqui só composição/layout.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  overflow-x: hidden;
  min-height: 100dvh;
  background: var(--grad-bg-vignette);
  background-attachment: fixed;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
ul { margin: 0; padding: 0; list-style: none; }

::selection { background: var(--gold-300); color: var(--navy-900); }

/* Scrollbar ------------------------------------------------ */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--navy-900); }
::-webkit-scrollbar-thumb {
  background: var(--navy-600);
  border-radius: 999px;
  border: 2px solid var(--navy-900);
}
::-webkit-scrollbar-thumb:hover { background: var(--navy-500); }

/* Grain + cross watermark overlay -------------------------- */
.grain {
  position: fixed; inset: 0; z-index: 1; pointer-events: none;
  opacity: 0.035; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Scroll progress ------------------------------------------ */
.progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 0;
  z-index: 90; background: var(--grad-gold-rule);
  box-shadow: 0 0 10px rgba(201,162,39,0.6);
  transition: width 80ms linear;
}

/* Layout column ------------------------------------------- */
.shell { position: relative; z-index: 2; }
.col {
  width: 100%;
  max-width: 600px;
  margin-inline: auto;
  padding-inline: clamp(1.15rem, 5vw, 2rem);
}
.col--wide { max-width: 940px; }

.section { padding-block: clamp(3.25rem, 9vw, 6.5rem); position: relative; }
.section-head { margin-bottom: var(--sp-8); }

/* Reusable filete (SVG draw-in) --------------------------- */
.rule { display: block; width: 72px; height: 2px; overflow: visible; }
.rule line {
  stroke: url(#goldgrad); stroke-width: 2; stroke-linecap: round;
  stroke-dasharray: 72; stroke-dashoffset: 72;
  transition: stroke-dashoffset var(--dur-slow) var(--ease-entrance);
}
.rule.is-visible line { stroke-dashoffset: 0; }

.eyebrow {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  margin: 0 0 var(--sp-4);
}
.eyebrow .x { width: 13px; height: 13px; color: var(--accent); flex: none; }

.section-title {
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  font-size: clamp(1.75rem, 6vw, 2.6rem);
  line-height: var(--lh-heading);
  letter-spacing: var(--track-heading);
  text-transform: uppercase;
  color: var(--text-primary);
  margin: 0;
  text-wrap: balance;
}

/* Cross patté glyph --------------------------------------- */
.cross { display: inline-block; fill: currentColor; }

/* =========================================================
   HERO
   ========================================================= */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding-bottom: clamp(2rem, 7vw, 3.5rem);
  overflow: hidden;
  isolation: isolate;
}
.hero__media {
  position: absolute; inset: 0; z-index: -2;
  will-change: transform;
}
.hero__media img {
  width: 100%; height: 100%; object-fit: cover;
  object-position: 50% 22%;
  filter: saturate(0.92) contrast(1.02);
}
/* duotone navy+gold light wash — never over full face at strength */
.hero__media::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(115deg, rgba(14,27,51,0.30), transparent 45%),
    radial-gradient(90% 60% at 70% 20%, rgba(227,184,114,0.10), transparent 60%);
  mix-blend-mode: multiply;
}
.hero__scrim {
  position: absolute; inset: 0; z-index: -1;
  background: var(--grad-hero-scrim);
}
.hero__watermark {
  position: absolute; z-index: -1;
  top: 8%; right: -6%;
  width: min(58vw, 340px); color: var(--gold-500);
  opacity: 0.05; pointer-events: none;
}

.hero__inner { position: relative; }
.hero__handle {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-sm); font-weight: var(--fw-semibold);
  letter-spacing: var(--track-eyebrow); text-transform: uppercase;
  color: var(--accent-strong);
  padding: var(--sp-2) 0; margin-bottom: var(--sp-4);
}
.hero__handle .x { width: 14px; height: 14px; }

.hero__name {
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  font-size: clamp(2rem, 10.5vw, 5.75rem);
  line-height: 0.94;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  color: var(--text-primary);
  margin: 0;
  overflow-wrap: break-word;
  text-shadow: 0 2px 30px rgba(8,16,32,0.5);
}
.hero__name span { display: block; }
.hero__name .surname { color: var(--text-primary); }
.hero__role {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: clamp(0.9rem, 3.6vw, 1.15rem);
  letter-spacing: var(--track-display);
  text-transform: uppercase;
  color: var(--accent-strong);
  margin: var(--sp-4) 0 0;
}

/* proof strip at top of value */
.proof {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: var(--sp-3) var(--sp-5);
  margin-top: var(--sp-6);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--border-gold);
}
.proof__item { display: flex; align-items: baseline; gap: var(--sp-2); }
.proof__num {
  font-family: var(--font-editorial);
  font-size: var(--fs-xl); font-weight: var(--fw-medium);
  color: var(--accent-strong); line-height: 1;
}
.proof__lbl {
  font-size: var(--fs-xs); letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--text-secondary);
}
.stars { color: var(--gold-300); letter-spacing: 0.1em; font-size: var(--fs-sm); }

.hero__cta { margin-top: var(--sp-8); display: flex; flex-direction: column; gap: var(--sp-3); }

.scrollhint {
  margin-top: var(--sp-8);
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--text-muted);
}
.scrollhint .dot {
  width: 20px; height: 32px; border: 1px solid var(--dim-on-dark);
  border-radius: 999px; position: relative; flex: none;
}
.scrollhint .dot::after {
  content: ""; position: absolute; top: 6px; left: 50%; translate: -50% 0;
  width: 3px; height: 6px; border-radius: 2px; background: var(--accent-strong);
  animation: scrolldot 1.8s var(--ease-standard) infinite;
}
@keyframes scrolldot { 0%{opacity:0;transform:translate(-50%,0)} 40%{opacity:1} 80%{opacity:0;transform:translate(-50%,10px)} 100%{opacity:0} }

/* =========================================================
   BUTTONS
   ========================================================= */
.btn {
  --pad-y: 1rem;
  display: inline-flex; align-items: center; justify-content: center;
  gap: var(--sp-3);
  font-family: var(--font-display); font-weight: var(--fw-semibold);
  letter-spacing: var(--track-heading);
  font-size: var(--fs-base);
  padding: var(--pad-y) var(--sp-6);
  border-radius: var(--radius-sm);
  transition: box-shadow var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard),
              background var(--dur-fast) var(--ease-standard);
}
.btn svg { width: 20px; height: 20px; flex: none; }
.btn--primary {
  background: var(--accent-strong); color: var(--accent-ink);
  border: 1px solid transparent;
}
.btn--primary:hover, .btn--primary:focus-visible {
  box-shadow: var(--shadow-gold-glow); transform: translateY(-2px);
}
.btn--ghost {
  background: rgba(20,40,77,0.5); color: var(--text-primary);
  border: 1px solid var(--accent);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.btn--ghost:hover, .btn--ghost:focus-visible {
  background: rgba(20,40,77,0.85); box-shadow: var(--shadow-hairline-gold);
  transform: translateY(-2px);
}
.btn--full { width: 100%; }

/* =========================================================
   LINK-IN-BIO BLOCKS
   ========================================================= */
.links { display: grid; gap: var(--sp-3); }
.linkcard {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--sp-4);
  padding: clamp(1.1rem, 4vw, 1.4rem) clamp(1.15rem, 4vw, 1.5rem);
  background: var(--bg-elevated);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md), var(--shadow-hairline-gold);
  overflow: hidden;
  transition: transform var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard);
}
.linkcard::before { /* gold sweep on hover */
  content: ""; position: absolute; inset: 0;
  background: var(--grad-gold-glow);
  opacity: 0; transition: opacity var(--dur-base) var(--ease-standard);
  pointer-events: none;
}
.linkcard:hover, .linkcard:focus-visible {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg), var(--shadow-gold-glow);
}
.linkcard:hover::before, .linkcard:focus-visible::before { opacity: 1; }
.linkcard__icon {
  width: 44px; height: 44px; flex: none;
  display: grid; place-items: center;
  border-radius: var(--radius-sm);
  background: var(--navy-800);
  box-shadow: inset 0 0 0 1px var(--border-gold);
  color: var(--accent-strong);
}
.linkcard__icon svg { width: 22px; height: 22px; }
.linkcard__body { min-width: 0; }
.linkcard__label {
  font-family: var(--font-display); font-weight: var(--fw-semibold);
  font-size: var(--fs-md); color: var(--text-primary);
  letter-spacing: var(--track-heading); line-height: 1.2;
}
.linkcard__meta {
  font-size: var(--fs-xs); letter-spacing: 0.05em;
  color: var(--text-secondary); margin-top: 3px;
  text-transform: uppercase;
}
.linkcard__arrow {
  color: var(--dim-on-dark); flex: none;
  transition: transform var(--dur-fast) var(--ease-standard), color var(--dur-fast);
}
.linkcard:hover .linkcard__arrow, .linkcard:focus-visible .linkcard__arrow {
  color: var(--accent-strong); transform: translateX(4px);
}
.linkcard--accent { background: var(--navy-600); }
.linkcard--accent .linkcard__icon { background: var(--accent-strong); color: var(--navy-900); box-shadow: none; }
.linkcard__pulse {
  width: 8px; height: 8px; border-radius: 999px; background: var(--success);
  box-shadow: 0 0 0 0 rgba(62,125,88,0.6);
  animation: pulse 2.2s infinite;
}
@keyframes pulse {
  0%{ box-shadow:0 0 0 0 rgba(62,125,88,0.5) }
  70%{ box-shadow:0 0 0 8px rgba(62,125,88,0) }
  100%{ box-shadow:0 0 0 0 rgba(62,125,88,0) }
}

/* =========================================================
   O MÉTODO
   ========================================================= */
.metodo__lede {
  font-size: var(--fs-lg); color: var(--text-secondary);
  line-height: var(--lh-body); margin: var(--sp-5) 0 var(--sp-8);
  max-width: 54ch;
}
.metodo__lede strong { color: var(--text-primary); font-weight: var(--fw-semibold); }
.pillars { display: grid; gap: var(--sp-4); }
.pillar {
  padding: var(--sp-6);
  background: var(--bg-elevated);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-hairline-gold);
  border-left: 2px solid var(--accent);
}
.pillar__k {
  font-family: var(--font-editorial); font-style: italic;
  font-size: var(--fs-2xl); color: var(--accent-strong); line-height: 1;
}
.pillar h3 {
  font-family: var(--font-display); font-weight: var(--fw-bold);
  font-size: var(--fs-lg); color: var(--text-primary);
  margin: var(--sp-3) 0 var(--sp-2); letter-spacing: var(--track-heading);
}
.pillar p { margin: 0; font-size: var(--fs-base); color: var(--text-secondary); line-height: var(--lh-body); }
.creds {
  display: flex; flex-wrap: wrap; gap: var(--sp-2);
  margin-top: var(--sp-8);
}
.cred {
  font-family: var(--font-display); font-size: var(--fs-xs); font-weight: var(--fw-semibold);
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--text-secondary);
  padding: var(--sp-2) var(--sp-4);
  border: 1px solid var(--border); border-radius: var(--radius-pill);
  background: var(--navy-900);
}
.cred b { color: var(--accent-strong); font-weight: var(--fw-bold); }

/* =========================================================
   ÁREAS
   ========================================================= */
.areas { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border); border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-hairline-gold); }
.area {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: clamp(1.05rem,4vw,1.35rem) var(--sp-5);
  background: var(--bg-elevated);
  transition: background var(--dur-fast) var(--ease-standard);
}
.area:hover { background: var(--navy-600); }
.area .cross { width: 16px; height: 16px; color: var(--accent); flex: none; }
.area span {
  font-family: var(--font-display); font-weight: var(--fw-semibold);
  font-size: var(--fs-base); color: var(--text-primary);
  letter-spacing: var(--track-heading);
}

/* =========================================================
   NA MÍDIA / AUTORIDADE
   ========================================================= */
.media-grid { display: grid; gap: var(--sp-4); }
.evidence {
  position: relative; border-radius: var(--radius-md); overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.evidence::after { /* gold cornices */
  content: ""; position: absolute; inset: 10px; pointer-events: none;
  border: 1px solid rgba(227,184,114,0.28);
  -webkit-mask:
    linear-gradient(#000 0 0) top left, linear-gradient(#000 0 0) top right,
    linear-gradient(#000 0 0) bottom left, linear-gradient(#000 0 0) bottom right;
  -webkit-mask-size: 22px 22px; -webkit-mask-repeat: no-repeat;
  mask:
    linear-gradient(#000 0 0) top left/22px 22px no-repeat,
    linear-gradient(#000 0 0) top right/22px 22px no-repeat,
    linear-gradient(#000 0 0) bottom left/22px 22px no-repeat,
    linear-gradient(#000 0 0) bottom right/22px 22px no-repeat;
}
.evidence img { width: 100%; height: 100%; object-fit: cover; }
.evidence--tv { aspect-ratio: 16/9; }
.evidence__tag {
  position: absolute; left: 12px; bottom: 12px; z-index: 2;
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-family: var(--font-display); font-size: var(--fs-xs); font-weight: var(--fw-semibold);
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--navy-900); background: var(--accent-strong);
  padding: var(--sp-1) var(--sp-3); border-radius: var(--radius-sm);
}
.media-pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
.media-pair .evidence { aspect-ratio: 3/4; }
.media-pair .evidence img { filter: saturate(0.9) contrast(1.03); }
.media-note {
  margin-top: var(--sp-5); font-size: var(--fs-sm); color: var(--text-muted);
  display: flex; align-items: center; gap: var(--sp-2);
}

/* =========================================================
   PROVA SOCIAL
   ========================================================= */
.rating {
  display: flex; align-items: center; gap: var(--sp-5);
  padding: var(--sp-6); margin-bottom: var(--sp-6);
  background: var(--navy-600); border-radius: var(--radius-md);
  box-shadow: var(--shadow-hairline-gold);
}
.rating__big {
  font-family: var(--font-editorial); font-weight: var(--fw-medium);
  font-size: var(--fs-5xl); color: var(--accent-strong); line-height: 0.9;
}
.rating__meta .stars { font-size: var(--fs-lg); }
.rating__meta p { margin: var(--sp-2) 0 0; font-size: var(--fs-sm); color: var(--text-secondary); }
.quotes { display: grid; gap: var(--sp-3); }
.qt {
  padding: var(--sp-6); background: var(--bg-elevated);
  border-radius: var(--radius-md); box-shadow: var(--shadow-hairline-gold);
  position: relative;
}
.qt__mark { color: var(--gold-500); font-family: var(--font-editorial); font-size: var(--fs-3xl); line-height: 0; position: absolute; top: 26px; left: 18px; opacity: 0.4; }
.qt p {
  margin: 0 0 var(--sp-3); padding-left: var(--sp-6);
  font-size: var(--fs-md); color: var(--text-primary); line-height: var(--lh-snug);
}
.qt__stars { padding-left: var(--sp-6); color: var(--gold-300); letter-spacing: 0.1em; font-size: var(--fs-sm); }

/* =========================================================
   CARROSSEL DE AVALIAÇÕES (auto-play, swipe, dots)
   ========================================================= */
.carousel { position: relative; }
.carousel__viewport { overflow: hidden; touch-action: pan-y; }
.carousel__track {
  display: flex; gap: var(--sp-4); margin: 0; padding: 0; list-style: none;
  transition: transform var(--dur-base) var(--ease-entrance);
  will-change: transform;
}
.carousel__slide { flex: 0 0 100%; min-width: 0; display: flex; }
.carousel__slide > .qt { margin: 0; width: 100%; }
.carousel__nav {
  display: flex; align-items: center; justify-content: center;
  gap: var(--sp-5); margin-top: var(--sp-6);
}
.carousel__arrow {
  width: 44px; height: 44px; flex: none;
  display: grid; place-items: center;
  border-radius: var(--radius-pill);
  background: var(--bg-elevated); color: var(--accent-strong);
  border: 1px solid var(--border-gold);
  box-shadow: var(--shadow-hairline-gold);
  transition: transform var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard),
              color var(--dur-fast) var(--ease-standard);
}
.carousel__arrow svg { width: 20px; height: 20px; }
.carousel__arrow:hover, .carousel__arrow:focus-visible {
  transform: translateY(-2px); color: var(--gold-200);
  box-shadow: var(--shadow-gold-glow);
}
.carousel__dots { display: flex; align-items: center; gap: var(--sp-3); }
.carousel__dot {
  width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px;
  background: var(--dim-on-dark); opacity: 0.5; cursor: pointer;
  transition: transform var(--dur-fast) var(--ease-standard),
              background var(--dur-fast), opacity var(--dur-fast);
}
.carousel__dot[aria-selected="true"] {
  background: var(--accent-strong); opacity: 1; transform: scale(1.35);
}
@media (min-width: 720px) {
  .carousel__slide { flex-basis: calc((100% - var(--sp-4)) / 2); }
}
@media (prefers-reduced-motion: reduce) {
  .carousel__track { transition: none; }
}

/* =========================================================
   FRASE DA CASA
   ========================================================= */
.casa { text-align: center; }
.casa .rule { margin: 0 auto var(--sp-8); }
.casa blockquote {
  margin: 0;
  font-family: var(--font-editorial); font-style: italic;
  font-weight: var(--fw-regular);
  font-size: clamp(2rem, 9vw, 3.5rem);
  line-height: 1.1; color: var(--text-primary);
  text-wrap: balance;
}
.casa blockquote b { color: var(--accent-strong); font-weight: var(--fw-regular); }
.casa cite {
  display: block; margin-top: var(--sp-6); font-style: normal;
  font-family: var(--font-display); font-size: var(--fs-xs);
  letter-spacing: var(--track-eyebrow); text-transform: uppercase; color: var(--text-muted);
}

/* =========================================================
   FOOTER
   ========================================================= */
.foot {
  background: var(--bg-sunken);
  border-top: 1px solid var(--border-gold);
  padding-block: clamp(3rem, 8vw, 5rem) 7.5rem;
  position: relative; z-index: 2;
}
.foot__crest { width: 64px; height: 64px; display: block; margin-bottom: var(--sp-5); }
.hero__crest { width: 72px; height: 72px; display: block; margin-bottom: var(--sp-6); filter: drop-shadow(0 2px 12px rgba(201,162,39,0.35)); }
.foot__name {
  font-family: var(--font-display); font-weight: var(--fw-bold);
  font-size: var(--fs-lg); letter-spacing: var(--track-heading);
  text-transform: uppercase; color: var(--text-primary); margin: 0 0 var(--sp-1);
}
.foot__oab { font-family: var(--font-display); font-size: var(--fs-sm); letter-spacing: 0.06em; color: var(--accent-strong); margin: 0 0 var(--sp-5); }
.foot__row { display: grid; gap: var(--sp-3); margin-bottom: var(--sp-6); }
.foot__row a, .foot__row p {
  margin: 0; font-size: var(--fs-sm); color: var(--text-secondary);
  display: flex; align-items: center; gap: var(--sp-3); line-height: var(--lh-snug);
}
.foot__row svg { width: 16px; height: 16px; color: var(--accent); flex: none; }
.foot__row a:hover { color: var(--accent-strong); }
.foot__disc {
  font-size: var(--fs-xs); color: var(--text-muted); line-height: var(--lh-body);
  border-top: 1px solid var(--border); padding-top: var(--sp-5); margin: 0;
  max-width: 60ch;
}
.foot__sign {
  margin-top: var(--sp-5); font-size: var(--fs-xs); color: var(--dim-on-dark);
  letter-spacing: 0.04em;
}
.foot__sign a { color: var(--text-secondary); }
.foot__sign a:hover { color: var(--accent-strong); }

/* =========================================================
   WHATSAPP STICKY
   ========================================================= */
.wa {
  position: fixed; z-index: 80;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, calc(env(safe-area-inset-bottom) + 0.5rem));
  display: inline-flex; align-items: center; gap: var(--sp-3);
  padding: 0.9rem 1.15rem 0.9rem 1rem;
  background: var(--accent-strong); color: var(--navy-900);
  border-radius: var(--radius-pill);
  font-family: var(--font-display); font-weight: var(--fw-bold);
  font-size: var(--fs-sm); letter-spacing: 0.02em;
  box-shadow: var(--shadow-lg), 0 0 0 1px rgba(201,162,39,0.4);
  transition: transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast);
}
.wa svg { width: 24px; height: 24px; flex: none; }
.wa:hover, .wa:focus-visible { transform: translateY(-2px) scale(1.02); box-shadow: var(--shadow-lg), var(--shadow-gold-glow); }
.wa__txt { white-space: nowrap; }
.wa::after {
  content: ""; position: absolute; inset: -3px; border-radius: 999px; z-index: -1;
  background: var(--accent-strong); opacity: 0.35;
  animation: waPulse 2.4s ease-out infinite;
}
@keyframes waPulse { 0%{transform:scale(1);opacity:0.35} 70%{transform:scale(1.35);opacity:0} 100%{opacity:0} }

/* =========================================================
   REVEAL + RESPONSIVE
   ========================================================= */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity var(--dur-slow) var(--ease-entrance), transform var(--dur-slow) var(--ease-entrance); }
.reveal.is-visible { opacity: 1; transform: none; }
[data-stagger] > * { transition-delay: var(--d, 0ms); }

@media (max-width: 380px) {
  .wa__txt { display: none; }
  .wa { padding: 0.85rem; }
  .areas { grid-template-columns: 1fr; }
}

@media (min-width: 720px) {
  .hero__cta { flex-direction: row; }
  .hero__cta .btn { flex: 1; }
  .media-grid--split { grid-template-columns: 1fr; }
  .pillars { grid-template-columns: repeat(3, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; }
  .rule line { stroke-dashoffset: 0; }
  .scrollhint .dot::after, .wa::after, .linkcard__pulse { animation: none; }
}

/* =========================================================
   LINKS PANEL — foto de plenário (oculto no mobile)
   ========================================================= */
.links__panel { display: none; position: relative; overflow: hidden; }
.links__panel-img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 12%;
  filter: saturate(0.78) contrast(1.04);
}
.links__panel::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(115deg, rgba(14,27,51,0.28), transparent 52%),
    linear-gradient(to top, rgba(8,16,32,0.93) 0%, rgba(14,27,51,0.40) 36%, transparent 62%),
    radial-gradient(75% 45% at 80% 18%, rgba(201,162,39,0.07), transparent 68%);
}
.links__panel-id {
  position: absolute; z-index: 2;
  bottom: 2.5rem; left: 2rem; right: 2rem;
}
.links__panel-id .p-handle {
  font-family: var(--font-display); font-size: var(--fs-xs); font-weight: var(--fw-semibold);
  letter-spacing: var(--track-eyebrow); text-transform: uppercase;
  color: var(--accent-strong); margin: 0 0 var(--sp-3);
  display: flex; align-items: center; gap: var(--sp-2);
}
.links__panel-id .p-handle svg { width: 13px; height: 13px; flex: none; }
.links__panel-id .p-name {
  font-family: var(--font-display); font-weight: var(--fw-black);
  font-size: clamp(1.6rem, 2.6vw, 2.1rem);
  letter-spacing: -0.02em; text-transform: uppercase;
  color: var(--text-primary); margin: 0 0 var(--sp-2); line-height: 0.98;
}
.links__panel-id .p-oab {
  font-family: var(--font-display); font-size: var(--fs-xs);
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--text-muted); margin: 0;
}

/* =========================================================
   ONDE NOS ENCONTRAR
   ========================================================= */
.location__address {
  display: flex; flex-direction: column; gap: var(--sp-2);
  margin-bottom: var(--sp-6);
}
.location__address p {
  display: flex; align-items: flex-start; gap: var(--sp-3);
  font-size: var(--fs-md); color: var(--text-secondary);
  margin: 0; line-height: var(--lh-snug);
}
.location__address svg { width: 18px; height: 18px; color: var(--accent); flex: none; margin-top: 3px; }
.location__actions {
  display: flex; flex-wrap: wrap; gap: var(--sp-3);
  margin-bottom: var(--sp-8);
}
.map-wrap {
  position: relative; width: 100%;
  aspect-ratio: 16/9;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid rgba(227,184,114,0.22);
  box-shadow: var(--shadow-md);
}
.map-wrap iframe {
  width: 100%; height: 100%;
  border: 0; display: block;
}

/* =========================================================
   DESKTOP ≥1024px — polish de layout
   ========================================================= */
@media (min-width: 1024px) {

  /* Fix 3: hero col mais largo + fonte ajustada
     → "R. SANCHES" cabe em 1 linha, sem "R." isolado */
  .hero .col { max-width: min(88vw, 920px); }
  .hero__name { font-size: clamp(3rem, 6vw, 4.75rem); }

  /* Fix 1+2: links section → dois painéis
     Imagem real (toga-sustentacao.jpg) como painel sticky esquerdo.
     Elimina os ~420px de vazio flanqueando a col de 600px. */
  .section--links {
    display: grid;
    grid-template-columns: minmax(340px, 420px) 1fr;
    align-items: start;
    max-width: 1440px;
    margin-inline: auto;
    padding-block: 0;
  }
  .links__panel {
    display: block;
    position: sticky;
    top: 0;
    height: 100vh;
  }
  .links__cards {
    max-width: none;
    margin-inline: 0;
    width: 100%;
    padding-block: clamp(3.5rem, 6vw, 5.5rem);
    padding-inline: clamp(2rem, 4vw, 3rem);
  }

  /* AJUSTE 1 — Respiro vertical no desktop */
  :root { --section-y: clamp(6rem, 9vw, 10rem); }
  .section-head { margin-bottom: var(--sp-12); }
  .metodo__lede { font-size: var(--fs-xl); margin-bottom: var(--sp-12); }
  .pillars { gap: var(--sp-6); }
  .pillar { padding: var(--sp-10); }
  .creds { margin-top: var(--sp-12); gap: var(--sp-3); }
  .rating { padding: var(--sp-10); margin-bottom: var(--sp-10); }
  .qt { padding: var(--sp-8); }

  /* =======================================================
     CORREÇÃO SISTÊMICA — fim da faixa estreita de 600px.
     Todas as seções (menos a de links, já em dois painéis)
     passam a distribuir o conteúdo pela largura real do
     container. Onde é texto corrido, mantém medida de leitura.
     ======================================================= */
  .section:not(.section--links) > .col {
    max-width: var(--container-max);
    padding-inline: var(--section-x);
  }
  .col--wide { max-width: var(--container-max); }

  /* Áreas: preenchem 3 colunas (6 itens → 2 fileiras) */
  .areas { grid-template-columns: repeat(3, 1fr); }

  /* Na mídia: destaque TV ao lado do par de plenário */
  .media-grid { grid-template-columns: 1.3fr 1fr; align-items: start; }

  /* Frase da casa: medida de leitura confortável, centralizada */
  .casa > .col { max-width: 72ch; }

  /* Endereço: informações à esquerda, mapa à direita preenchendo */
  #endereco > .col {
    display: grid;
    grid-template-columns: 0.82fr 1.18fr;
    grid-template-rows: auto auto auto 1fr;
    grid-template-areas: "head map" "addr map" "act map" "pad map";
    column-gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: start;
  }
  #endereco .section-head { grid-area: head; margin-bottom: var(--sp-6); }
  #endereco .location__address { grid-area: addr; margin-bottom: var(--sp-6); }
  #endereco .location__actions { grid-area: act; margin-bottom: 0; }
  #endereco .map-wrap { grid-area: map; aspect-ratio: 3/4; align-self: stretch; height: 100%; }

  /* Rodapé: identidade + contato à esquerda, aviso legal à direita */
  .foot__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(3rem, 6vw, 6rem);
    align-items: start;
  }
  .foot__legal-col { display: flex; flex-direction: column; justify-content: flex-end; height: 100%; }
  .foot__disc { max-width: none; }
}
