@charset "UTF-8";
/* =============================================================================
   IPTV GIRO  ·  folha de estilo da marca  ·  v4 polish (04/08/2026)
   Referencia real: pagina dupla de revista esportiva IMPRESSA.
   Papel off-white, tinta azul-preta, vermelhao de time, filete de 1px,
   numeral tabular. UM unico bloco escuro na pagina inteira: o placar/planos.
   Territorio: onde passa o jogo. Produto: assinatura de IPTV, R$ 24,90/mes.
   ============================================================================= */

/* ---------- 1. Tokens ------------------------------------------------------ */

:root {
  /* superficie de papel */
  --paper:#F0EEEA;
  --paper-2:#E5E3DD;
  --paper-3:#DCD9D2;
  /* tinta */
  --ink:#0F171F;
  --ink-2:#3A434E;
  --ink-3:#5B646F;
  /* cor de time */
  --team:#D72A1A;
  --team-d:#B91508;
  --team-band:#C71A0C;
  /* bloco escuro unico (o placar) */
  --slab:#101C28;
  --slab-2:#1D2A37;
  --on-slab:#EDEBE5;
  --on-slab-2:#A7AFB7;
  --on-slab-3:#8A939D;
  --team-slab:#F66754;
  --ink-deep:#0A121B;

  /* filetes tingidos, nunca cinza neutro */
  --rule:rgba(15,23,31,.16);
  --rule-2:rgba(15,23,31,.30);
  --rule-3:rgba(15,23,31,.52);
  --rule-slab:rgba(237,235,229,.18);
  --rule-slab-2:rgba(237,235,229,.34);

  --display:'Saira Condensed','Arial Narrow',Impact,sans-serif;
  --sans:'Barlow',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;

  --step--2:clamp(.75rem,.02vw + .745rem,.8125rem);
  --step--1:clamp(.875rem,.04vw + .865rem,.9375rem);
  --step-0:clamp(1.0625rem,.16vw + 1.025rem,1.1875rem);
  --step-1:clamp(1.1875rem,.35vw + 1.11rem,1.375rem);
  --step-2:clamp(1.375rem,.9vw + 1.17rem,1.875rem);
  --step-3:clamp(1.75rem,2.2vw + 1.24rem,2.625rem);
  --step-4:clamp(2.25rem,5vw + 1.1rem,4rem);
  --h1:clamp(3.25rem,8.6vw + .2rem,7.25rem);
  --mega:clamp(5rem,25vw,22rem);

  --gut:clamp(1.125rem,4vw,2.75rem);
  --max:1200px;
  --r:3px;
  --r-lg:6px;
  --ease:cubic-bezier(.16,1,.3,1);
  --hdr:60px;

  /* sombras em 2 camadas tingidas (nunca preto puro) */
  --sh-ink:0 1px 0 rgba(15,23,31,.08),0 14px 32px -18px rgba(15,23,31,.28);
  --sh-go:0 1px 0 rgba(120,20,10,.48),0 12px 26px -12px rgba(159,25,12,.62);
  --sh-lift:0 1px 0 rgba(15,23,31,.1),0 18px 36px -16px rgba(15,23,31,.34);

  /* grao fino: o detalhe que separa feito a mao de template */
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");

  /* aliases consumidos por iptvgiro-pages.css e pelo blog */
  --gr-navy:var(--paper-2);
  --gr-navy-2:var(--paper);
  --gr-navy-3:var(--paper-2);
  --gr-navy-4:var(--paper-3);
  --gr-white:var(--ink);
  --gr-grey-2:var(--ink-2);
  --gr-grey:var(--ink-3);
  --gr-mute:var(--ink-3);
  --gr-line:var(--rule);
  --gr-line-2:var(--rule-2);
  --gr-green:var(--team-d);
  --gr-red:var(--team);
  --gr-display:var(--display);
  --gr-sans:var(--sans);
  --gr-max:var(--max);
  --gr-gut:var(--gut);
  --gr-r:var(--r);
  --gr-r-lg:var(--r-lg);
}

@supports (color: oklch(0.5 0.1 260)) {
  :root {
    --paper:oklch(95% .006 95);
    --paper-2:oklch(91.5% .008 90);
    --paper-3:oklch(88.5% .010 88);
    --ink:oklch(20% .02 250);
    --ink-2:oklch(38% .022 250);
    --ink-3:oklch(50% .020 250);
    --team:oklch(57% .21 30);
    --team-d:oklch(50% .195 30);
    --team-band:oklch(53% .205 30);
    --slab:oklch(22% .03 250);
    --slab-2:oklch(28% .03 250);
    --on-slab:oklch(94% .008 90);
    --on-slab-2:oklch(75% .015 250);
    --on-slab-3:oklch(66% .018 250);
    --team-slab:oklch(69% .18 30);
    --ink-deep:oklch(18% .022 250);
    --rule:oklch(20% .02 250 / .16);
    --rule-2:oklch(20% .02 250 / .30);
    --rule-3:oklch(20% .02 250 / .52);
    --rule-slab:oklch(94% .008 90 / .18);
    --rule-slab-2:oklch(94% .008 90 / .34);
  }
}

/* ---------- 2. Base -------------------------------------------------------- */

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }

html {
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  scroll-padding-top:calc(var(--hdr) + 10px);
}

body {
  position:relative;
  font-family:var(--sans);
  font-size:var(--step-0);
  font-weight:400;
  line-height:1.6;
  background:var(--paper);
  color:var(--ink-2);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* grao do papel sobre a pagina inteira */
body::before {
  content:"";
  position:fixed;
  inset:0;
  background-image:var(--grain);
  opacity:.030;
  mix-blend-mode:multiply;
  pointer-events:none;
  z-index:60;
}

img,picture,svg,video { max-width:100%; display:block; }
img { height:auto; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; background:none; border:none; cursor:pointer; }
strong,b { font-weight:600; color:var(--ink); }
::selection { background:var(--team); color:var(--paper); }

h1,h2,h3,h4,h5,h6 {
  font-family:var(--display);
  color:var(--ink);
  text-transform:uppercase;
  font-weight:700;
  line-height:.98;
  letter-spacing:-.012em;
  text-wrap:balance;
}
h1 { font-weight:800; }

/* numeral tabular onde o numero e o argumento */
.gr-num,table,.gr-plan__price,.gr-mega,.gr-rating__n,.gr-acard__n,.gr-fig__n,.gr-min,
.gr-board__v,.gr-board__eq,.gr-err__code,.gr-stat__n {
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}

:focus-visible { outline:3px solid var(--team); outline-offset:3px; border-radius:2px; }
.gr-slab :focus-visible,.gr-ctab :focus-visible,.gr-marquee :focus-visible { outline-color:var(--paper); }

.gr-sr {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.gr-skip {
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--ink); color:var(--paper);
  padding:.75rem 1.25rem; font-weight:600;
}
.gr-skip:focus { left:.5rem; top:.5rem; }

.gr-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.gr-sprite symbol path,.gr-sprite symbol rect,.gr-sprite symbol circle,.gr-sprite g {
  fill:none; stroke:currentColor; stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round;
}

/* ---------- 3. Estrutura e ritmo ------------------------------------------ */

.gr-wrap {
  width:100%;
  max-width:var(--max);
  margin-inline:auto;
  padding-inline:var(--gut);
}

/* ritmo vertical VARIADO: respiros desiguais, ar antes de titulo */
.gr-section { padding-block:clamp(3.75rem,8.2vw,6.75rem); }
.gr-section--alt { background:var(--paper-2); }
.gr-section--tight { padding-block:clamp(2.35rem,4.2vw,3.5rem); }
.gr-section--air { padding-block:clamp(5.25rem,12vw,9.5rem); }
.gr-section + .gr-section:not(.gr-section--alt) { border-top:1px solid var(--rule); }
/* secao apos bloco escuro/vermelho: mais ar na entrada */
.gr-slab + .gr-section,
.gr-ctab + .gr-section { padding-top:clamp(4.25rem,9vw,7.5rem); }

/* rotulo de eixo: caixa-alta pequena com tracking aberto */
.gr-kicker {
  display:flex; align-items:center; gap:.6rem;
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.16em; text-transform:uppercase;
  color:var(--team-d); margin-bottom:1.15rem;
}
.gr-kicker::before {
  content:""; width:clamp(1.5rem,4vw,2.75rem); height:2px;
  background:var(--team); flex:none;
}

.gr-h2 {
  font-size:var(--step-4);
  line-height:.9;
  letter-spacing:-.022em;
  font-weight:800;
  text-wrap:balance;
}
.gr-h2 em,.gr-h2 i { font-style:normal; color:var(--team); }

.gr-lead {
  font-size:var(--step-1);
  color:var(--ink-2);
  max-width:56ch;
  margin-top:1.15rem;
  line-height:1.55;
  text-wrap:pretty;
}

.gr-p { margin-bottom:.95rem; text-wrap:pretty; }
.gr-note { font-size:var(--step--1); color:var(--ink-3); line-height:1.58; text-wrap:pretty; }
.gr-note a { color:var(--team-d); text-decoration:underline; text-underline-offset:2px; }

/* cabecalho de seccao com trilho numerado, como pagina de revista */
.gr-rail { display:grid; gap:.85rem 1.85rem; margin-bottom:clamp(2.25rem,4.6vw,3.5rem); }
.gr-min {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--1); letter-spacing:.14em;
  color:var(--ink-3);
  padding-bottom:.35rem;
  border-bottom:2px solid var(--team);
  width:max-content;
}
.gr-head { max-width:34ch; }
.gr-head--wide { max-width:48ch; }

@media (min-width:900px) {
  .gr-rail { grid-template-columns:5.5rem 1fr; align-items:start; }
  .gr-min { margin-top:.55rem; }
}

/* ---------- 4. Masthead ---------------------------------------------------- */

.gr-header {
  position:sticky; top:0; z-index:50;
  background:color-mix(in oklab,var(--paper) 92%,transparent);
  -webkit-backdrop-filter:saturate(1.35) blur(12px);
  backdrop-filter:saturate(1.35) blur(12px);
  border-bottom:1px solid var(--rule-2);
}
@supports not (background:color-mix(in oklab,white 50%,black)) {
  .gr-header { background:rgba(240,238,234,.93); }
}
.gr-header__in {
  max-width:var(--max); margin-inline:auto;
  padding:0 var(--gut);
  height:var(--hdr);
  display:flex; align-items:center; gap:1.25rem;
}
.gr-brand { display:flex; align-items:center; gap:.55rem; flex:none; }
.gr-brand img { width:30px; height:30px; }
.gr-brand__w {
  font-family:var(--display); font-weight:800;
  font-size:1.375rem; letter-spacing:.005em;
  text-transform:uppercase; color:var(--ink); line-height:1;
}
.gr-brand__w b { color:var(--team); font-weight:800; }

.gr-nav { display:none; margin-left:auto; }
.gr-nav a {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--1); letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-2); padding:.4rem 0;
  border-bottom:2px solid transparent;
  transition:color .25s var(--ease),border-color .25s var(--ease);
}
.gr-nav a:hover { color:var(--ink); border-bottom-color:var(--team); }
.gr-nav a:focus-visible { border-bottom-color:var(--team); }
.gr-header__cta { margin-left:auto; flex:none; }

@media (min-width:940px) {
  .gr-nav { display:flex; gap:1.75rem; align-items:center; }
  .gr-header__cta { margin-left:1.75rem; }
}
/* com Assinar + Area do Cliente no menu, o respiro encolhe ate sobrar tela */
@media (min-width:940px) and (max-width:1179.98px) {
  .gr-nav { gap:1rem; }
  .gr-header__cta { margin-left:1rem; }
}

/* ---------- 5. Botoes (raio unico de 6px) --------------------------------- */

.gr-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--display); font-weight:700;
  font-size:var(--step-1); letter-spacing:.06em; text-transform:uppercase;
  line-height:1; text-align:center;
  padding:1.05rem 1.65rem;
  border-radius:var(--r-lg);
  border:1.5px solid transparent;
  transition:transform .3s var(--ease),background-color .25s var(--ease),
             color .25s var(--ease),border-color .25s var(--ease),box-shadow .3s var(--ease);
}
.gr-btn--go {
  background:var(--team-band); color:var(--paper);
  box-shadow:var(--sh-go);
}
.gr-btn--go:hover { background:var(--team-d); transform:translateY(-2px); box-shadow:var(--sh-lift); }
.gr-btn--go:active { transform:translateY(0); box-shadow:var(--sh-go); }
.gr-btn--ghost { background:transparent; color:var(--ink); border-color:var(--rule-3); }
.gr-btn--ghost:hover {
  border-color:var(--ink); background:var(--paper-2);
  transform:translateY(-2px); box-shadow:var(--sh-ink);
}
.gr-btn--ghost:active { transform:translateY(0); }
.gr-btn--sm { font-size:var(--step--1); padding:.65rem 1.05rem; letter-spacing:.1em; }
.gr-btn--block { width:100%; }
.gr-acts { display:flex; flex-wrap:wrap; gap:.75rem; }

.gr-slab .gr-btn--ghost,.gr-dark .gr-btn--ghost { color:var(--on-slab); border-color:var(--rule-slab-2); }
.gr-slab .gr-btn--ghost:hover,.gr-dark .gr-btn--ghost:hover {
  background:var(--slab-2); border-color:var(--on-slab-2);
  box-shadow:0 1px 0 rgba(8,14,22,.35),0 14px 28px -16px rgba(8,14,22,.7);
}

/* ---------- 6. Hero: a pagina dupla --------------------------------------- */

.gr-hero { position:relative; border-bottom:1px solid var(--rule-2); overflow:hidden; }

.gr-hero__grid {
  --pad:max(var(--gut),calc((100vw - var(--max)) / 2 + var(--gut)));
  display:grid;
  gap:clamp(1.75rem,4vw,3rem);
  padding:clamp(2.25rem,5vw,3.75rem) var(--gut) 0 var(--pad);
  align-items:center;
}
.gr-hero__in { position:relative; z-index:2; padding-bottom:clamp(2rem,4vw,3rem); }

.gr-hero__eyebrow {
  display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .9rem;
  margin-bottom:clamp(1.1rem,2.4vw,1.75rem);
  padding-bottom:.85rem;
  border-bottom:1px solid var(--rule-2);
}
.gr-live {
  display:inline-flex; align-items:center; gap:.45rem;
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.16em; text-transform:uppercase;
  color:var(--team-d);
}
.gr-live__dot {
  width:8px; height:8px; border-radius:50%; background:var(--team); flex:none;
  animation:gr-blink 2.4s var(--ease) infinite;
}
@keyframes gr-blink { 0%,100%{opacity:1} 50%{opacity:.22} }
.gr-hero__eyebrow .gr-note {
  font-family:var(--display); font-weight:600;
  font-size:var(--step--2); letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-3);
}

.gr-hero h1 {
  font-size:var(--h1);
  line-height:.855;
  letter-spacing:-.028em;
  font-weight:800;
  margin-left:-.035em; /* alinhamento optico: a manchete pende na margem */
}
.gr-hero h1 em { font-style:normal; color:var(--team); display:block; }

.gr-hero__sub {
  font-size:var(--step-1);
  color:var(--ink-2);
  max-width:44ch;
  margin-top:clamp(1.2rem,2.6vw,1.75rem);
  line-height:1.52;
  text-wrap:pretty;
}
.gr-hero__sub strong { color:var(--ink); font-weight:600; }

.gr-hero__acts { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:clamp(1.65rem,3.2vw,2.25rem); }
.gr-hero__acts .gr-btn { flex:1 1 15rem; }
@media (min-width:520px) { .gr-hero__acts .gr-btn { flex:0 0 auto; } }

.gr-hero__cap {
  margin-top:1.25rem; padding-top:1rem;
  border-top:1px solid var(--rule);
  font-size:var(--step--1); color:var(--ink-3); max-width:46ch;
  line-height:1.55; text-wrap:pretty;
}

/* a foto sangra a margem do container */
.gr-hero__media { position:relative; margin-inline:calc(var(--gut) * -1); }
.gr-hero__media img {
  width:100%; height:auto;
  aspect-ratio:1280 / 859; object-fit:cover;
  border-top:1px solid var(--rule-2);
}
.gr-hero__media::after {
  content:""; position:absolute; inset:0;
  background-image:var(--grain); opacity:.05; mix-blend-mode:multiply; pointer-events:none;
}
.gr-fig__n {
  position:absolute; left:var(--gut); top:.85rem; z-index:2;
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.18em; text-transform:uppercase;
  color:var(--paper);
  padding:.3rem .6rem;
  background:rgba(15,23,31,.72);
  border-left:2px solid var(--team);
}

@media (min-width:900px) {
  .gr-hero__grid {
    grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);
    gap:clamp(2rem,4vw,4rem);
    padding:0 0 0 var(--pad);
    align-items:stretch;
  }
  .gr-hero__in {
    display:flex; flex-direction:column; justify-content:center;
    padding-block:clamp(3rem,6vw,4.5rem);
  }
  .gr-hero__media { margin-inline:0; }
  .gr-hero__media img { height:100%; min-height:33rem; border-top:none; }
  .gr-fig__n { left:1.5rem; top:1.5rem; }
}
@media (min-width:1220px) {
  .gr-hero__grid { grid-template-columns:minmax(0,1fr) minmax(0,1.18fr); }
}

/* ---------- 7. Ticker impresso -------------------------------------------- */

.gr-marquee {
  overflow:hidden;
  background:var(--ink);
  padding-block:.7rem;
}
.gr-marquee__track {
  display:flex; width:max-content;
  animation:gr-slide 46s linear infinite;
}
.gr-marquee__item {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--1); letter-spacing:.14em; text-transform:uppercase;
  color:var(--paper);
  padding-inline:1.15rem;
  display:inline-flex; align-items:center; gap:1.15rem; white-space:nowrap;
}
.gr-marquee__item::after {
  content:""; width:5px; height:5px; background:var(--team-slab);
  transform:rotate(45deg); flex:none;
}
@keyframes gr-slide { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ---------- 8. PROVA SOCIAL: o numero gigante ocupa a dobra --------------- */

.gr-stats { padding-block:clamp(4rem,10vw,8rem); overflow:hidden; }

.gr-mega {
  display:block;
  font-family:var(--display);
  font-weight:800;
  font-size:var(--mega);
  line-height:.78;
  letter-spacing:-.045em;
  color:var(--ink);
  margin-left:-.045em;
  white-space:nowrap;
}
.gr-mega sup {
  font-size:.32em; vertical-align:top; position:relative; top:.14em;
  color:var(--team); letter-spacing:0; margin-right:.03em;
}
.gr-mega__rule { height:2px; background:var(--ink); margin-top:clamp(.75rem,1.6vw,1.25rem); }

.gr-said {
  display:grid; gap:1.75rem 3rem;
  margin-top:clamp(1.1rem,2.2vw,1.75rem);
}
.gr-said__l {
  font-family:var(--display); font-weight:700;
  font-size:var(--step-2); line-height:1.05; letter-spacing:.005em;
  text-transform:uppercase; color:var(--ink);
  max-width:24ch;
}
.gr-said__l b { color:var(--team); font-weight:800; }
.gr-said__p { font-size:var(--step-0); color:var(--ink-2); max-width:46ch; margin-top:.6rem; }

.gr-rating { display:grid; gap:.5rem; align-content:start; }
.gr-rating__top { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.gr-rating__n {
  font-family:var(--display); font-weight:800; font-size:var(--step-3);
  line-height:1; color:var(--ink); letter-spacing:-.02em;
}
.gr-stars { display:inline-flex; gap:2px; }
.gr-stars svg { width:1.05rem; height:1.05rem; fill:var(--team); }
.gr-rating__l { font-size:var(--step--1); color:var(--ink-3); }
.gr-rating dl { display:grid; gap:0; margin-top:.5rem; min-width:15rem; }
.gr-rating dl > div {
  display:flex; justify-content:space-between; gap:1.25rem;
  padding-block:.5rem; border-top:1px solid var(--rule);
  font-size:var(--step--1);
}
.gr-rating dt { color:var(--ink-3); }
.gr-rating dd {
  font-family:var(--display); font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; color:var(--ink); white-space:nowrap;
}

.gr-stats__foot {
  display:flex; flex-wrap:wrap; gap:.55rem 1.5rem;
  margin-top:clamp(1.75rem,3.5vw,2.5rem);
  padding-top:1rem; border-top:1px solid var(--rule-2);
}
.gr-stats__foot span {
  display:inline-flex; align-items:center; gap:.45rem;
  font-size:var(--step--1); color:var(--ink-2);
}
.gr-stats__foot svg { width:1.05rem; height:1.05rem; color:var(--team-d); flex:none; }

@media (min-width:860px) {
  .gr-said { grid-template-columns:1fr 21rem; align-items:start; gap:0; }
  .gr-rating { padding-left:2.75rem; border-left:1px solid var(--rule); }
  .gr-said > div:first-child { padding-right:2.75rem; }
}

/* ---------- 9. Standfirst (answer box) ------------------------------------ */

.gr-answer { padding-block:clamp(3.25rem,6.5vw,5.25rem); background:var(--paper-2); }
.gr-answer__box { border-top:3px solid var(--ink); padding-top:1.65rem; }
.gr-answer__tag {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--1); letter-spacing:.16em; text-transform:uppercase;
  color:var(--team-d); margin-bottom:1.25rem;
}
.gr-answer__box p { font-size:var(--step-1); color:var(--ink-2); line-height:1.55; text-wrap:pretty; }
.gr-answer__box p + p { margin-top:1.05rem; }
.gr-answer__box p:first-of-type { color:var(--ink); }
@media (min-width:880px) {
  .gr-answer__box { display:grid; grid-template-columns:13rem 1fr; gap:0 3rem; }
  .gr-answer__tag { grid-column:1; grid-row:1; margin:0; }
  .gr-answer__box p { grid-column:2; }
}

/* ---------- 10. Depoimentos: parede de citacao impressa ------------------- */

.gr-tgrid { display:grid; gap:1px; background:var(--rule-2); border-block:1px solid var(--rule-2); }
.gr-tcard {
  background:var(--paper);
  padding:clamp(1.6rem,3.2vw,2.4rem) clamp(1.3rem,2.5vw,2.1rem);
  display:flex; flex-direction:column; gap:1rem;
}
.gr-section--alt .gr-tcard { background:var(--paper-2); }
.gr-tcard__stars { display:inline-flex; gap:2px; }
.gr-tcard__stars svg { width:.95rem; height:.95rem; fill:var(--team); }
.gr-tcard p { color:var(--ink-2); font-size:var(--step-0); line-height:1.58; text-wrap:pretty; }
.gr-tcard__big {
  font-family:var(--display); font-weight:700;
  font-size:var(--step-3); line-height:1.02; letter-spacing:-.014em;
  color:var(--ink); text-transform:none;
  text-indent:-.42em;
  text-wrap:balance;
}
.gr-tcard footer {
  display:flex; align-items:center; gap:.75rem;
  margin-top:auto; padding-top:1.1rem; border-top:1px solid var(--rule);
}
.gr-tcard cite {
  display:block; font-style:normal;
  font-family:var(--display); font-weight:700; font-size:1.0625rem;
  letter-spacing:.04em; text-transform:uppercase; color:var(--ink); line-height:1.15;
}
.gr-tcard small { display:block; font-size:var(--step--1); color:var(--ink-3); margin-top:.2rem; line-height:1.4; }

/* parede irregular: a citacao de destaque abre a grade em largura,
   e o ultimo depoimento fecha a linha de baixo. Nenhuma celula vazia. */
@media (min-width:760px) {
  .gr-tgrid { grid-template-columns:repeat(2,1fr); }
  .gr-tcard--tall { grid-column:1 / -1; }
  .gr-tgrid > .gr-tcard:last-child { grid-column:1 / -1; }
}
@media (min-width:1080px) {
  .gr-tgrid { grid-template-columns:repeat(3,1fr); }
  .gr-tcard--tall { grid-column:1 / 3; }
  .gr-tcard--tall .gr-tcard__big { font-size:clamp(1.9rem,2.9vw,3.05rem); line-height:.98; }
  .gr-tgrid > .gr-tcard:last-child { grid-column:2 / -1; }
}

/* ---------- 11. O PLACAR: o unico bloco escuro da pagina ------------------ */

.gr-slab,.gr-dark {
  position:relative;
  background:var(--slab);
  color:var(--on-slab-2);
  border-block:1px solid var(--ink);
}
.gr-slab { padding-block:clamp(3.5rem,8vw,6.5rem); }
.gr-slab::before,.gr-dark::before {
  content:""; position:absolute; inset:0;
  background-image:var(--grain); opacity:.055; pointer-events:none;
}
.gr-slab > *,.gr-dark > * { position:relative; z-index:1; }
.gr-slab h2,.gr-slab h3,.gr-slab h4,.gr-dark h2,.gr-dark h3 { color:var(--on-slab); }
.gr-slab .gr-h2 em,.gr-dark .gr-h2 em { color:var(--team-slab); }
.gr-slab .gr-lead,.gr-dark .gr-lead { color:var(--on-slab-2); }
.gr-slab .gr-kicker { color:var(--team-slab); }
.gr-slab .gr-kicker::before { background:var(--team-slab); }
.gr-slab .gr-min { color:var(--on-slab-2); border-bottom-color:var(--team-slab); }
.gr-slab .gr-note,.gr-dark .gr-note { color:var(--on-slab-3); }
.gr-slab strong,.gr-slab b,.gr-dark strong { color:var(--on-slab); }

/* faixa de competicoes */
.gr-league {
  display:flex; flex-wrap:wrap; gap:.45rem .35rem;
  margin-bottom:clamp(1.75rem,3.5vw,2.5rem);
  padding-bottom:1.25rem;
  border-bottom:1px solid var(--rule-slab);
}
.gr-league span {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--1); letter-spacing:.11em; text-transform:uppercase;
  color:var(--on-slab-2);
  padding:.3rem .7rem;
  border:1px solid var(--rule-slab-2);
  border-radius:var(--r);
}

/* tabela de planos como resultado de jornal: numeral tabular, regra fina */
.gr-boardwrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.gr-boardwrap:focus-visible { outline:3px solid var(--team-slab); outline-offset:2px; }
.gr-board { width:100%; min-width:34rem; border-collapse:collapse; }
.gr-board caption {
  caption-side:top; text-align:left; color:var(--on-slab-3);
  font-size:var(--step--1); padding-bottom:.9rem;
}
.gr-board th,.gr-board td {
  text-align:left; padding:1rem .8rem;
  border-bottom:1px solid var(--rule-slab);
  vertical-align:middle;
}
.gr-board thead th {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.16em; text-transform:uppercase;
  color:var(--on-slab-3);
  padding-block:.5rem;
  border-bottom:2px solid var(--rule-slab-2);
  white-space:nowrap;
}
.gr-board tbody th {
  font-family:var(--display); font-weight:700;
  font-size:var(--step-2); letter-spacing:.01em; text-transform:uppercase;
  color:var(--on-slab); line-height:1;
}
.gr-board__per {
  display:block; font-family:var(--sans); font-weight:400;
  font-size:var(--step--1); letter-spacing:0; text-transform:none;
  color:var(--on-slab-3); margin-top:.3rem;
}
.gr-board__v {
  font-family:var(--display); font-weight:800;
  font-size:var(--step-2); letter-spacing:-.01em; color:var(--on-slab);
  white-space:nowrap; line-height:1;
}
.gr-board__eq { font-size:var(--step--1); color:var(--on-slab-2); white-space:nowrap; }
.gr-board__go {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--1); letter-spacing:.1em; text-transform:uppercase;
  color:var(--team-slab); white-space:nowrap;
  border-bottom:1px solid transparent; padding-bottom:2px;
  transition:border-color .25s var(--ease),color .25s var(--ease);
}
.gr-board__go:hover { border-bottom-color:var(--team-slab); color:var(--on-slab); }
.gr-board__go::after { content:"\00A0\203A"; }
.gr-board tr.is-top th,.gr-board tr.is-top td { background:var(--slab-2); }
.gr-board tr.is-top th:first-child { box-shadow:inset 4px 0 0 var(--team-band); padding-left:1.25rem; }
.gr-board tr.is-top .gr-board__v { color:var(--team-slab); font-size:var(--step-3); }
.gr-board__flag {
  display:block; width:max-content;
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.14em; text-transform:uppercase;
  color:var(--paper); background:var(--team-band);
  padding:.16rem .45rem; border-radius:2px; margin-bottom:.5rem;
}

/* no celular a tabela vira lista empilhada: dinheiro nao pode exigir scroll lateral */
@media (max-width:679.98px) {
  .gr-board { min-width:0; }
  .gr-board caption { padding-bottom:.6rem; }
  .gr-board thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .gr-board tr {
    display:grid; grid-template-columns:1fr auto; gap:.3rem 1rem;
    padding:1.1rem 0; border-bottom:1px solid var(--rule-slab); align-items:baseline;
  }
  .gr-board th,.gr-board td { border:none; padding:0; }
  .gr-board tbody th { grid-column:1; grid-row:1; }
  .gr-board td:nth-of-type(1) { grid-column:2; grid-row:1; text-align:right; }
  .gr-board td:nth-of-type(2) { grid-column:2; grid-row:2; text-align:right; }
  .gr-board td:nth-of-type(3) { grid-column:1; grid-row:2; }
  .gr-board tr.is-top {
    background:var(--slab-2); padding:1.1rem .9rem;
    box-shadow:inset 4px 0 0 var(--team-band);
  }
  .gr-board tr.is-top th,.gr-board tr.is-top td { background:none; }
  .gr-board tr.is-top th:first-child { box-shadow:none; padding-left:0; }
}

.gr-slabfoot {
  display:grid; gap:2rem;
  margin-top:clamp(1.75rem,3.5vw,2.5rem);
  padding-top:1.75rem; border-top:1px solid var(--rule-slab);
}
.gr-slabfoot__h {
  font-size:var(--step--1); letter-spacing:.14em; font-weight:700;
  color:var(--on-slab-2); margin-bottom:1rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--rule-slab);
}
.gr-slabfoot__act { display:grid; gap:1.1rem; align-content:start; }
.gr-slab .gr-checks li { color:var(--on-slab-2); font-size:var(--step--1); }
.gr-slab svg.gr-check { color:var(--team-slab); }
@media (min-width:560px) { .gr-checks--2 { grid-template-columns:repeat(2,1fr); column-gap:1.75rem; } }
@media (min-width:860px) {
  .gr-slabfoot { grid-template-columns:1.15fr .85fr; align-items:start; gap:3.5rem; }
  .gr-checks--2 { grid-template-columns:repeat(2,1fr); }
}

.gr-trust { display:flex; flex-wrap:wrap; gap:.55rem 1.35rem; }
.gr-trust__i {
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:var(--step--1); color:var(--ink-2);
}
.gr-slab .gr-trust__i,.gr-dark .gr-trust__i { color:var(--on-slab-2); }
.gr-trust__ico { width:1.05rem; height:1.05rem; color:var(--team-d); flex:none; }
.gr-slab .gr-trust__ico,.gr-dark .gr-trust__ico { color:var(--team-slab); }
.gr-guarantee { font-size:var(--step--1); color:var(--ink-3); line-height:1.55; }
.gr-slab .gr-guarantee { color:var(--on-slab-3); }

/* fallback dos planos em cartao (usado por paginas internas) */
.gr-plans { display:grid; gap:1px; background:var(--rule-2); border-block:1px solid var(--rule-2); }
.gr-plan,.gr-plan--top { background:var(--paper); padding:1.35rem 1.25rem; display:grid; gap:.4rem; }
.gr-plan__name { font-family:var(--display); font-weight:700; font-size:var(--step-1); text-transform:uppercase; color:var(--ink); }
.gr-plan__price { font-family:var(--display); font-weight:800; font-size:var(--step-2); color:var(--ink); line-height:1; }
.gr-plan__per,.gr-plan__eq,.gr-plan__foot { font-size:var(--step--1); color:var(--ink-3); }
.gr-plan__flag {
  font-family:var(--display); font-weight:700; font-size:var(--step--2);
  letter-spacing:.14em; text-transform:uppercase; color:var(--team-d);
}
.gr-plans__side { display:grid; gap:1px; }

/* ---------- 12. Features: grid assimetrico -------------------------------- */

.gr-fgrid { display:grid; gap:1px; background:var(--rule-2); border-block:1px solid var(--rule-2); }
.gr-fcard {
  background:var(--paper-2);
  padding:clamp(1.5rem,3vw,2.25rem) clamp(1.25rem,2.5vw,1.9rem);
  display:flex; flex-direction:column; gap:.7rem;
}
.gr-section--alt .gr-fcard { background:var(--paper); }
.gr-fcard h3 {
  display:flex; align-items:flex-start; gap:.55rem;
  font-size:var(--step-2); line-height:1.02; letter-spacing:-.01em;
  text-wrap:balance;
}
.gr-fcard p { color:var(--ink-2); font-size:var(--step-0); line-height:1.58; text-wrap:pretty; }
.gr-fcard__ico { width:1.35rem; height:1.35rem; flex:none; color:var(--team-d); margin-top:.12em; }
.gr-fcard__ico--red { color:var(--ink); }
.gr-fcard--wide { display:grid; gap:1px; padding:0; }
.gr-fcard--wide > div {
  padding:clamp(1.4rem,2.8vw,2.1rem) clamp(1.2rem,2.4vw,1.8rem);
  display:flex; flex-direction:column; justify-content:center; gap:.6rem;
  background:var(--paper-2);
}
.gr-section--alt .gr-fcard--wide > div { background:var(--paper); }
.gr-fcard--wide figure { position:relative; margin:0; }
.gr-fcard--wide figure::after {
  content:""; position:absolute; inset:0;
  background-image:var(--grain); opacity:.05; mix-blend-mode:multiply; pointer-events:none;
}
.gr-fcard--wide img { width:100%; height:100%; object-fit:cover; aspect-ratio:16/9; }

@media (min-width:760px) {
  .gr-fgrid { grid-template-columns:repeat(2,1fr); }
  .gr-fcard--wide { grid-column:1 / -1; grid-template-columns:1fr 1fr; align-items:stretch; }
  .gr-fcard--wide img { aspect-ratio:auto; min-height:17rem; }
}
@media (min-width:1080px) {
  .gr-fgrid { grid-template-columns:repeat(4,1fr); }
  .gr-fcard--wide { grid-template-columns:1.05fr 1fr; }
}

/* ---------- 13. Split com foto ------------------------------------------- */

.gr-split { display:grid; gap:clamp(1.75rem,4vw,3.25rem); align-items:center; }
.gr-split figure { position:relative; margin:0; }
.gr-split figure::after {
  content:""; position:absolute; inset:0; border-radius:var(--r-lg);
  background-image:var(--grain); opacity:.05; mix-blend-mode:multiply; pointer-events:none;
}
.gr-split img { width:100%; border-radius:var(--r-lg); }
@media (min-width:900px) {
  .gr-split { grid-template-columns:1.02fr 1fr; align-items:stretch; }
  .gr-split--r figure { order:2; }
  .gr-split figure { display:flex; }
  .gr-split img { height:100%; object-fit:cover; min-height:24rem; }
}

.gr-dgrid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:var(--rule-2); margin-top:1.75rem;
  border:1px solid var(--rule-2); border-radius:var(--r-lg); overflow:hidden;
}
.gr-dcard {
  background:var(--paper); padding:.9rem .85rem;
  display:flex; flex-direction:column; gap:.1rem;
  font-family:var(--display); font-weight:700;
  font-size:1.0625rem; letter-spacing:.03em; text-transform:uppercase; color:var(--ink);
}
.gr-section--alt .gr-dcard { background:var(--paper-2); }
.gr-slab .gr-dcard,.gr-dark .gr-dcard { background:var(--slab-2); color:var(--on-slab); }
.gr-dcard small {
  font-family:var(--sans); font-weight:400; font-size:var(--step--1);
  letter-spacing:0; text-transform:none; color:var(--ink-3);
}
.gr-slab .gr-dcard small,.gr-dark .gr-dcard small { color:var(--on-slab-3); }
.gr-dcard__ico { width:1.2rem; height:1.2rem; color:var(--team-d); margin-bottom:.35rem; }
.gr-slab .gr-dcard__ico,.gr-dark .gr-dcard__ico { color:var(--team-slab); }
@media (min-width:520px) { .gr-dgrid { grid-template-columns:repeat(4,1fr); } }
@media (min-width:900px) { .gr-dgrid { grid-template-columns:repeat(2,1fr); } }

/* ---------- 14. Comparativo: tabela de jornal ---------------------------- */

.gr-compare { border-top:2px solid var(--ink); }
.gr-crow {
  display:grid; grid-template-columns:1fr; gap:.35rem;
  padding:1rem 0;
  border-bottom:1px solid var(--rule);
}
.gr-cfeat {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--1); letter-spacing:.13em; text-transform:uppercase;
  color:var(--ink-3);
}
.gr-cus,.gr-cthem { display:flex; align-items:flex-start; gap:.5rem; font-size:var(--step-0); line-height:1.45; }
.gr-cus { color:var(--ink); font-weight:500; }
.gr-cthem { color:var(--ink-3); }
.gr-td-yes,.gr-td-no { width:1.15rem; height:1.15rem; flex:none; margin-top:.2rem; }
.gr-td-yes { color:var(--team-d); }
.gr-td-no { color:var(--ink-3); }
.gr-crow--head { padding:.65rem 0; border-bottom:2px solid var(--rule-3); }
.gr-crow--head span {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--1); letter-spacing:.13em; text-transform:uppercase; color:var(--ink);
}
.gr-crow--head .gr-cthem { color:var(--ink-3); }
@media (min-width:820px) {
  .gr-crow { grid-template-columns:14rem 1fr 1fr; gap:1.5rem; align-items:center; }
}
.gr-swipe { font-size:var(--step--1); color:var(--ink-3); margin-top:1rem; }

/* ---------- 15. Educacional: colunas de revista -------------------------- */

.gr-about__grid { display:grid; gap:1.75rem 2.5rem; }
.gr-about__grid h3 {
  font-size:var(--step-1); letter-spacing:.02em;
  padding-bottom:.5rem; margin-bottom:.65rem;
  border-bottom:1px solid var(--rule-2);
}
.gr-about__grid p { color:var(--ink-2); font-size:var(--step-0); line-height:1.55; }
@media (min-width:680px) {
  .gr-about__grid { grid-template-columns:repeat(2,1fr); }
  /* grade com aside (texto + trilho): empilha ate haver folga real p/ 2 colunas */
  .gr-about__grid:has(> aside) { grid-template-columns:1fr; }
}
@media (min-width:1060px) {
  /* a trilha nasce do numero de filhos, nunca de um 4 fixo da home */
  .gr-about__grid { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); column-gap:0; }
  .gr-about__grid > * + * { padding-left:1.75rem; border-left:1px solid var(--rule); }
  .gr-about__grid > * { padding-right:1.75rem; }
  /* internas: coluna de leitura larga + trilho fixo; a tabela cabe inteira */
  .gr-about__grid:has(> aside) { grid-template-columns:minmax(0,1fr) 21rem; }
}

/* ---------- 16. Faixa de conversao em vermelhao -------------------------- */

.gr-ctab {
  position:relative;
  background:var(--team-band);
  color:var(--paper);
  padding-block:clamp(3rem,6vw,4.75rem);
  border-block:1px solid var(--team-d);
}
.gr-ctab::before {
  content:""; position:absolute; inset:0;
  background-image:var(--grain); opacity:.06; pointer-events:none;
}
.gr-ctab__in { position:relative; z-index:1; display:grid; gap:1.75rem; align-items:center; }
.gr-ctab h2 { color:var(--paper); font-size:var(--step-4); line-height:.92; letter-spacing:-.022em; font-weight:800; text-wrap:balance; }
.gr-ctab h2 em { font-style:normal; color:var(--ink-deep); }
.gr-ctab p { color:var(--paper); font-size:var(--step-1); max-width:46ch; margin-top:1rem; line-height:1.5; text-wrap:pretty; }
.gr-ctab__acts { display:grid; gap:.75rem; align-content:start; }
.gr-ctab__acts small { color:var(--paper); font-size:var(--step--1); line-height:1.5; }
.gr-ctab .gr-btn--go {
  background:var(--paper); color:var(--team-d);
  box-shadow:0 1px 0 rgba(15,23,31,.18),0 14px 28px -14px rgba(15,23,31,.55);
}
.gr-ctab .gr-btn--go:hover {
  background:var(--ink); color:var(--paper);
  box-shadow:0 1px 0 rgba(8,14,22,.4),0 16px 32px -14px rgba(8,14,22,.65);
}
.gr-ctab .gr-btn--ghost { color:var(--paper); border-color:rgba(240,238,234,.55); }
.gr-ctab .gr-btn--ghost:hover {
  background:rgba(15,23,31,.18); border-color:var(--paper);
  box-shadow:none;
}
@media (min-width:900px) { .gr-ctab__in { grid-template-columns:1.3fr .7fr; gap:3.5rem; } }

/* ---------- 17. Passos --------------------------------------------------- */

.gr-agrid { display:grid; gap:1px; background:var(--rule-2); border-top:2px solid var(--ink); border-bottom:1px solid var(--rule-2); }
.gr-acard {
  background:var(--paper); padding:clamp(1.45rem,2.8vw,2rem) clamp(1.15rem,2.3vw,1.6rem);
  display:flex; flex-direction:column; gap:.55rem;
}
.gr-section--alt .gr-acard { background:var(--paper-2); }
.gr-acard__n {
  font-family:var(--display); font-weight:800; font-size:clamp(2.85rem,5.2vw,3.9rem);
  line-height:.8; color:transparent;
  -webkit-text-stroke:1.5px var(--team);
  letter-spacing:-.03em;
}
.gr-acard h3 { font-size:var(--step-1); letter-spacing:.02em; text-wrap:balance; }
.gr-acard p { color:var(--ink-2); font-size:var(--step--1); line-height:1.58; text-wrap:pretty; }
@media (min-width:620px) and (max-width:999.98px) {
  .gr-agrid { grid-template-columns:repeat(2,1fr); }
  /* impar em 2 colunas: o ultimo passo fecha a linha, sem celula cinza */
  .gr-agrid > :last-child:nth-child(odd) { grid-column:1 / -1; }
}
/* auto-fit colapsa trilha vazia: 3 passos = 3 colunas, 4 passos = 4 colunas */
@media (min-width:1000px) { .gr-agrid { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); } }

/* ---------- 18. FAQ ------------------------------------------------------ */

.gr-faq { border-top:2px solid var(--ink); }
.gr-faqi { border-bottom:1px solid var(--rule); }
.gr-faqq {
  display:flex; align-items:flex-start; gap:1rem;
  padding:1.2rem 0; cursor:pointer; list-style:none;
  font-family:var(--display); font-weight:700;
  font-size:var(--step-1); letter-spacing:.015em; text-transform:uppercase;
  color:var(--ink); line-height:1.16;
  text-wrap:balance;
  transition:color .25s var(--ease);
}
.gr-faqq::-webkit-details-marker { display:none; }
.gr-faqq::after {
  content:""; margin-left:auto; flex:none;
  width:.95rem; height:.95rem; margin-top:.2rem;
  background:var(--team-d);
  clip-path:polygon(44% 0,56% 0,56% 44%,100% 44%,100% 56%,56% 56%,56% 100%,44% 100%,44% 56%,0 56%,0 44%,44% 44%);
  transition:transform .35s var(--ease);
}
.gr-faqi[open] .gr-faqq::after { transform:rotate(135deg); }
.gr-faqq:hover { color:var(--team-d); }
.gr-faqa { padding:0 0 1.35rem; max-width:70ch; }
.gr-faqa p { color:var(--ink-2); font-size:var(--step-0); line-height:1.65; text-wrap:pretty; }
.gr-faqa p + p { margin-top:.75rem; }

/* ---------- 19. Indice de links (explore) -------------------------------- */

.gr-explore__grid { display:grid; gap:0; margin-top:1.75rem; }
.gr-explore__grid a {
  display:flex; align-items:baseline; gap:.75rem;
  padding:.78rem 0;
  border-bottom:1px solid var(--rule);
  font-family:var(--display); font-weight:700;
  font-size:var(--step-1); letter-spacing:.02em; text-transform:uppercase;
  color:var(--ink);
  transition:color .25s var(--ease),padding-left .3s var(--ease);
}
.gr-explore__grid a::after { content:"\203A"; margin-left:auto; color:var(--team); font-size:1.15em; }
.gr-explore__grid a:hover { color:var(--team-d); padding-left:.45rem; }
@media (min-width:700px) { .gr-explore__grid { grid-template-columns:repeat(2,1fr); column-gap:3rem; } }
@media (min-width:1060px) { .gr-explore__grid { grid-template-columns:repeat(3,1fr); column-gap:2.5rem; } }

/* ---------- 20. Colofao (footer) ----------------------------------------- */

.gr-footer {
  background:var(--paper-2);
  border-top:3px solid var(--ink);
  padding-block:clamp(2.75rem,5vw,4rem) 1.75rem;
}
.gr-footer__grid { display:grid; gap:2rem; }
.gr-footer__brand p { font-size:var(--step--1); color:var(--ink-3); margin-top:.9rem; max-width:34ch; line-height:1.55; }
.gr-footer h4,.gr-footer h3 {
  font-size:var(--step--1); letter-spacing:.14em; font-weight:700;
  color:var(--ink); margin-bottom:.85rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--rule-2);
}
.gr-footer ul { list-style:none; display:grid; gap:.45rem; }
.gr-footer li a { font-size:var(--step--1); color:var(--ink-2); }
.gr-footer li a:hover { color:var(--team-d); text-decoration:underline; text-underline-offset:2px; }
.gr-footer .gr-note { margin-top:2.25rem; padding-top:1.25rem; border-top:1px solid var(--rule); font-size:var(--step--2); }
.gr-footer__bar {
  display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; justify-content:space-between;
  margin-top:1.25rem; padding-top:1.1rem; border-top:1px solid var(--rule);
  font-size:var(--step--2); color:var(--ink-3);
}
@media (min-width:640px) { .gr-footer__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px) { .gr-footer__grid { grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2.5rem; } }

/* ---------- 21. Pecas compartilhadas com paginas internas ---------------- */

.gr-badge {
  display:inline-block;
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.1em; text-transform:uppercase;
  padding:.2rem .5rem; border-radius:2px;
  border:1px solid var(--rule-2); color:var(--ink-2);
}
.gr-badge--aberta { border-color:var(--ink); color:var(--ink); }
.gr-badge--fechada { border-color:var(--team-d); color:var(--team-d); }

.gr-checks { list-style:none; display:grid; gap:.55rem; }
.gr-checks li { display:flex; align-items:flex-start; gap:.55rem; font-size:var(--step-0); color:var(--ink-2); }
.gr-checks--no li { color:var(--ink-3); }
svg.gr-check { width:1.15rem; height:1.15rem; flex:none; margin-top:.22rem; color:var(--team-d); }

.gr-figure { margin:1.75rem 0; position:relative; }
.gr-figure img { width:100%; border-radius:var(--r-lg); }
.gr-figure figcaption {
  margin-top:.6rem; font-size:var(--step--1); color:var(--ink-3);
  padding-left:.75rem; border-left:2px solid var(--team);
}

.gr-err { padding-block:clamp(4rem,10vw,8rem); }
.gr-err__code {
  font-family:var(--display); font-weight:800; font-size:var(--mega);
  line-height:.8; letter-spacing:-.045em; color:var(--ink); margin-left:-.045em;
}

.gr-stat { display:inline; }
.gr-stat__n { font-family:var(--display); font-weight:800; color:var(--ink); }
.gr-stat__n--field,.gr-stat__n--live { color:var(--team); }
.gr-stat__l { color:var(--ink-2); }

.gr-inline-cta { display:inline-flex; gap:.5rem; }
.gr-ico { width:1.15rem; height:1.15rem; flex:none; }

/* hero de pagina interna: mesma gramatica do hero da home, sem foto */
.gr-phero {
  position:relative; overflow:hidden;
  background:var(--paper-2);
  border-bottom:1px solid var(--rule-2);
}
.gr-phero::after {
  content:""; position:absolute; inset:0;
  background-image:var(--grain); opacity:.03; mix-blend-mode:multiply; pointer-events:none;
}
.gr-phero__in {
  position:relative; z-index:1;
  max-width:var(--max); margin-inline:auto;
  padding-inline:var(--gut);
  padding-block:clamp(1.85rem,3.8vw,2.9rem) clamp(2.5rem,5.4vw,4rem);
}
.gr-phero .gr-live { margin-top:1.35rem; }
.gr-phero h1 {
  font-size:clamp(2.65rem,6.4vw,4.75rem);
  line-height:.9; letter-spacing:-.028em; font-weight:800;
  margin:.85rem 0 0; max-width:22ch;
  text-wrap:balance;
}
.gr-phero h1 em { font-style:normal; color:var(--team); }
.gr-phero__sub {
  font-size:var(--step-1); color:var(--ink-2); max-width:58ch;
  margin-top:1.2rem; line-height:1.55; text-wrap:pretty;
}
.gr-phero__meta {
  display:flex; flex-wrap:wrap; gap:.55rem 1.35rem; align-items:center;
  margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--rule);
  font-size:var(--step--1); color:var(--ink-3); line-height:1.45;
}
.gr-phero__meta strong { color:var(--ink-2); font-weight:600; }

/* migalha: .gr-crumbs (home-like) e .gr-crumb (internas legadas) */
.gr-crumbs,.gr-crumb { font-size:var(--step--2); color:var(--ink-3); letter-spacing:.02em; }
.gr-crumbs ol,.gr-crumb ol { list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; padding:0; margin:0; }
.gr-crumbs li + li::before,.gr-crumb li + li::before { content:"\203A"; margin-right:.4rem; color:var(--rule-3); }
.gr-crumbs a,.gr-crumb a { color:var(--ink-2); transition:color .25s var(--ease); }
.gr-crumbs a:hover,.gr-crumb a:hover { color:var(--team-d); text-decoration:underline; text-underline-offset:2px; }
.gr-crumbs [aria-current],.gr-crumb [aria-current] { color:var(--ink); }

/* tabela de agenda: mesma regra fina e numeral tabular do placar */
.gr-tablewrap { overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; margin:1.5rem 0 .75rem; }
.gr-tablewrap:focus-visible { outline:3px solid var(--team); outline-offset:2px; }
.gr-table { width:100%; min-width:34rem; border-collapse:collapse; font-size:var(--step--1); }
.gr-table caption { caption-side:top; text-align:left; padding-bottom:.75rem; color:var(--ink-3); font-size:var(--step--1); }
.gr-table th,.gr-table td { text-align:left; padding:.85rem .8rem; border-bottom:1px solid var(--rule); vertical-align:top; }
.gr-table thead th {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink); border-bottom:2px solid var(--rule-3); white-space:nowrap;
}
.gr-table tbody th { font-weight:600; color:var(--ink); }
.gr-table td { color:var(--ink-2); }
.gr-table td.gr-td-yes { color:var(--team-d); font-weight:600; }
.gr-table td.gr-td-no { color:var(--ink-3); }
.gr-table__hint { font-size:var(--step--1); color:var(--ink-3); margin-bottom:1.5rem; }

/* destaque no corpo do texto */
.gr-callout {
  background:var(--paper-2);
  border-left:3px solid var(--team);
  border-radius:0 var(--r) var(--r) 0;
  padding:1.25rem 1.35rem; margin:1.75rem 0;
}
.gr-section--alt .gr-callout { background:var(--paper); }
.gr-callout p { color:var(--ink); font-size:var(--step-0); line-height:1.55; }
.gr-callout p + p { margin-top:.7rem; color:var(--ink-2); }
.gr-callout--red { border-left-color:var(--ink); }
.gr-callout a { color:var(--team-d); text-decoration:underline; text-underline-offset:2px; }

/* ---------- 22. Movimento ------------------------------------------------ */

.gr-rise {
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}
.gr-rise.is-in { opacity:1; transform:none; }
.gr-rise-2 { transition-delay:.08s; }
.gr-rise-3 { transition-delay:.16s; }
.gr-fgrid > .gr-rise:nth-child(1),.gr-tgrid > .gr-rise:nth-child(1) { transition-delay:0s; }
.gr-fgrid > .gr-rise:nth-child(2),.gr-tgrid > .gr-rise:nth-child(2) { transition-delay:.04s; }
.gr-fgrid > .gr-rise:nth-child(3),.gr-tgrid > .gr-rise:nth-child(3) { transition-delay:.08s; }
.gr-fgrid > .gr-rise:nth-child(4),.gr-tgrid > .gr-rise:nth-child(4) { transition-delay:.12s; }
.gr-fgrid > .gr-rise:nth-child(5) { transition-delay:.16s; }

/* O clip fica no FILHO, nunca no elemento observado: um clip-path no proprio
   alvo zera a area de intersecao e o IntersectionObserver nunca dispara,
   deixando a peca invisivel para sempre. */
.gr-reveal > * { clip-path:inset(0 100% 0 0); transition:clip-path 1.05s var(--ease); }
.gr-reveal.is-in > * { clip-path:inset(0 0 0 0); }

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after {
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .gr-rise { opacity:1; transform:none; }
  .gr-reveal > * { clip-path:none; }
  .gr-marquee__track { animation:none; }
  .gr-live__dot { animation:none; }
}

/* =============================================================================
   23. CONTRATO coreplay.vc: pecas obrigatorias na home e nas internas
   Faixa de resposta · linha de confianca com rostos · barra de 4 numeros ·
   cartao de plano rico · tile de icone. Mesma estrutura do .vc, pele do Giro.
   ============================================================================= */

/* ---------- 23.1 Faixa de resposta citavel -------------------------------- */

.gr-ansband {
  position:relative;
  background:var(--slab);
  border-bottom:1px solid var(--ink-deep);
  padding-block:clamp(1rem,2.2vw,1.5rem);
}
.gr-ansband::before {
  content:""; position:absolute; inset:0;
  background-image:var(--grain); opacity:.045; pointer-events:none;
}
.gr-ansband .gr-wrap { position:relative; z-index:1; }
.gr-ansband__p {
  border-left:4px solid var(--team-slab);
  padding:.2rem 0 .2rem 1.15rem;
  color:var(--on-slab-2);
  font-size:var(--step-0); line-height:1.6;
  max-width:90ch;
}
.gr-ansband__p strong { color:var(--on-slab); font-weight:600; }
.gr-ansband__p a {
  color:var(--team-slab);
  text-decoration:underline; text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.gr-ansband__p a:hover { color:var(--on-slab); }
.gr-ansband--mid { border-top:1px solid var(--ink-deep); }

/* ---------- 23.2 Linha de confianca com rostos ---------------------------- */

.gr-htrust {
  display:flex; align-items:center; flex-wrap:wrap; gap:.75rem 1rem;
  margin-top:1.15rem; padding-top:1.15rem;
  border-top:1px solid var(--rule);
}
.gr-avs { display:flex; flex:none; }
.gr-avs img {
  width:2.5rem; height:2.5rem; border-radius:50%;
  object-fit:cover; display:block;
  border:2px solid var(--paper);
  box-shadow:0 0 0 1px var(--rule-2);
}
.gr-avs img + img { margin-left:-.72rem; }
.gr-htrust__stars { display:inline-flex; align-items:center; gap:.4rem; }
.gr-htrust__stars svg { width:1rem; height:1rem; fill:var(--team); }
.gr-htrust__n {
  font-family:var(--display); font-weight:800;
  font-size:1.0625rem; letter-spacing:.03em; color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.gr-htrust__c { display:grid; gap:.2rem; }
.gr-htrust__t { display:block; font-size:var(--step--1); color:var(--ink-3); line-height:1.4; }
.gr-htrust__t strong {
  font-family:var(--display); font-weight:800;
  letter-spacing:.02em; font-size:1.06em; color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.gr-slab .gr-htrust,.gr-dark .gr-htrust { border-top-color:var(--rule-slab); }
.gr-slab .gr-avs img,.gr-dark .gr-avs img { border-color:var(--slab); box-shadow:0 0 0 1px var(--rule-slab-2); }
.gr-slab .gr-htrust__n,.gr-slab .gr-htrust__t strong { color:var(--on-slab); }
.gr-slab .gr-htrust__t { color:var(--on-slab-3); }
.gr-slab .gr-htrust__stars svg { fill:var(--team-slab); }

/* ---------- 23.3 Barra de 4 numeros com contador -------------------------- */

.gr-statsbar {
  background:var(--paper-2);
  padding-block:clamp(1.9rem,4vw,3rem);
  border-bottom:1px solid var(--rule);
}
.gr-statsbar__grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1px; background:var(--rule-2);
  border-block:1px solid var(--rule-2);
}
.gr-sblock {
  background:var(--paper-2);
  padding:clamp(1.05rem,2.2vw,1.6rem) clamp(.85rem,1.8vw,1.35rem);
}
.gr-sblock__n {
  font-family:var(--display); font-weight:800;
  font-size:clamp(2.6rem,6.2vw,4.5rem); line-height:.88;
  letter-spacing:-.025em; color:var(--team);
  font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1;
  display:flex; align-items:flex-start; gap:.06em;
}
.gr-sblock__n sup { font-size:.36em; line-height:1.35; font-weight:700; }
.gr-sblock__l {
  margin-top:.55rem; max-width:24ch;
  font-size:var(--step--1); color:var(--ink-3);
  line-height:1.4; letter-spacing:.02em;
}
@media (min-width:560px) { .gr-statsbar__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:900px) { .gr-statsbar__grid { grid-template-columns:repeat(4,1fr); } }

/* ---------- 23.4 Depoimento com rosto e selo ------------------------------ */

.gr-tcard footer { flex-wrap:wrap; }
.gr-tcard__av {
  width:2.9rem; height:2.9rem; flex:none;
  border-radius:50%; object-fit:cover;
  box-shadow:0 0 0 1px var(--rule-2);
}
.gr-tcard__ver {
  margin-left:auto; align-self:center;
  display:inline-flex; align-items:center; gap:.32rem;
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.13em; text-transform:uppercase;
  color:var(--team-d);
  border:1px solid var(--rule-2);
  padding:.24rem .5rem;
  white-space:nowrap;
}
.gr-tcard__ver svg { width:.85rem; height:.85rem; }
@media (min-width:760px) {
  .gr-tgrid--3 { grid-template-columns:repeat(2,1fr); }
  .gr-tgrid--3 > .gr-tcard:last-child { grid-column:1 / -1; }
}
@media (min-width:1080px) {
  .gr-tgrid--3 { grid-template-columns:repeat(3,1fr); }
  .gr-tgrid--3 > .gr-tcard:last-child { grid-column:auto; }
}

/* ---------- 23.5 Cartao de plano rico ------------------------------------- */

.gr-pgrid {
  display:grid; gap:1px;
  background:var(--rule-slab-2);
  border:1px solid var(--rule-slab-2);
  margin-top:clamp(1.5rem,3vw,2.25rem);
}
.gr-pcard {
  position:relative; background:var(--slab);
  display:flex; flex-direction:column;
}
.gr-pcard--top { background:var(--slab-2); }
.gr-pcard__ribbon {
  display:flex; align-items:center; justify-content:center; gap:.45rem;
  background:var(--team-band); color:var(--paper);
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.12em; text-transform:uppercase;
  padding:.5rem .75rem; text-align:center; line-height:1.2;
}
.gr-pcard__ribbon svg { width:.9rem; height:.9rem; flex:none; }
.gr-pcard__in {
  flex:1; display:flex; flex-direction:column; gap:.55rem;
  padding:clamp(1.4rem,2.6vw,1.85rem) clamp(1.1rem,2.1vw,1.5rem);
}
.gr-pcard__head { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; }
.gr-pcard__name {
  font-family:var(--display); font-weight:700;
  font-size:var(--step-1); letter-spacing:.08em; text-transform:uppercase;
  color:var(--on-slab); line-height:1;
}
.gr-pcard__save {
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.1em; text-transform:uppercase;
  color:var(--team-slab);
  border:1px solid rgba(246,103,84,.42);
  padding:.2rem .45rem; line-height:1.1;
}
.gr-pcard__price {
  display:flex; align-items:flex-start; gap:.05em;
  font-family:var(--display); color:var(--on-slab);
  line-height:1; margin-top:.4rem;
  font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1;
}
.gr-pcard__cur { font-size:1.05rem; font-weight:700; color:var(--on-slab-2); margin-top:.55rem; }
.gr-pcard__int { font-size:clamp(3.05rem,5.2vw,4rem); font-weight:800; letter-spacing:-.038em; }
.gr-pcard__cents { font-size:1.4rem; font-weight:700; margin-top:.45rem; }
.gr-pcard--top .gr-pcard__int,.gr-pcard--top .gr-pcard__cents { color:var(--team-slab); }
.gr-pcard__per { font-size:var(--step--1); color:var(--on-slab-2); line-height:1.45; }
.gr-pcard__per strong { color:var(--on-slab); font-weight:600; }
.gr-pcard__day {
  margin-top:.45rem;
  border:1px solid var(--rule-slab); border-left:3px solid var(--team-slab);
  background:rgba(246,103,84,.07);
  padding:.6rem .75rem;
  font-size:var(--step--1); color:var(--on-slab-2); line-height:1.4;
}
.gr-pcard__day strong {
  font-family:var(--display); font-weight:800; letter-spacing:.02em;
  font-size:1.12em; color:var(--on-slab);
  font-variant-numeric:tabular-nums;
}
.gr-pcard__perks {
  list-style:none; display:grid; gap:.48rem;
  margin-top:.95rem; padding-top:.95rem;
  border-top:1px solid var(--rule-slab);
}
.gr-pcard__perks li {
  display:flex; align-items:flex-start; gap:.5rem;
  font-size:var(--step--1); color:var(--on-slab-2); line-height:1.4;
}
.gr-pcard__perks li svg { width:1rem; height:1rem; flex:none; margin-top:.16rem; color:var(--team-slab); }
.gr-pcard__perks .is-no { color:var(--on-slab-3); }
.gr-pcard__perks .is-no svg { color:var(--on-slab-3); }
.gr-pcard__perks strong { color:var(--on-slab); font-weight:600; }
.gr-pcard__act { margin-top:auto; padding-top:1.2rem; display:grid; gap:.6rem; }
.gr-pcard__foot {
  display:flex; align-items:center; gap:.4rem;
  font-size:var(--step--2); color:var(--on-slab-3); line-height:1.35;
}
.gr-pcard__foot svg { width:.95rem; height:.95rem; flex:none; color:var(--team-slab); }
.gr-pcard .gr-btn--go { background:var(--team); }
.gr-pcard .gr-btn--go:hover { background:var(--team-d); }
.gr-pcard--top .gr-btn--go { background:var(--team-band); }

@media (min-width:620px) { .gr-pgrid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px) { .gr-pgrid { grid-template-columns:repeat(4,1fr); } }

/* variante clara, para as paginas internas em papel */
.gr-pgrid--paper { background:var(--rule-2); border-color:var(--rule-2); }
.gr-pgrid--paper .gr-pcard { background:var(--paper); }
.gr-pgrid--paper .gr-pcard--top { background:var(--paper-2); }
.gr-pgrid--paper .gr-pcard__name,.gr-pgrid--paper .gr-pcard__int,
.gr-pgrid--paper .gr-pcard__cents,.gr-pgrid--paper .gr-pcard__per strong,
.gr-pgrid--paper .gr-pcard__day strong,.gr-pgrid--paper .gr-pcard__perks strong { color:var(--ink); }
.gr-pgrid--paper .gr-pcard__cur,.gr-pgrid--paper .gr-pcard__per,
.gr-pgrid--paper .gr-pcard__perks li,.gr-pgrid--paper .gr-pcard__day { color:var(--ink-2); }
.gr-pgrid--paper .gr-pcard__foot,.gr-pgrid--paper .gr-pcard__perks .is-no { color:var(--ink-3); }
.gr-pgrid--paper .gr-pcard__perks .is-no svg { color:var(--ink-3); }
.gr-pgrid--paper .gr-pcard__perks li svg,.gr-pgrid--paper .gr-pcard__foot svg,
.gr-pgrid--paper .gr-pcard__save { color:var(--team-d); }
.gr-pgrid--paper .gr-pcard__save { border-color:rgba(185,21,8,.35); }
.gr-pgrid--paper .gr-pcard--top .gr-pcard__int,
.gr-pgrid--paper .gr-pcard--top .gr-pcard__cents { color:var(--team-d); }
.gr-pgrid--paper .gr-pcard__day { border-color:var(--rule); border-left-color:var(--team); background:rgba(215,42,26,.05); }
.gr-pgrid--paper .gr-pcard__perks { border-top-color:var(--rule); }

/* ---------- 23.6 Tile de icone ------------------------------------------- */

.gr-tile {
  width:2.65rem; height:2.65rem; flex:none;
  display:grid; place-items:center;
  border-radius:var(--r);
  background:rgba(215,42,26,.10);
  border:1px solid rgba(215,42,26,.26);
  color:var(--team-d);
  margin-bottom:.6rem;
}
.gr-tile svg { width:1.3rem; height:1.3rem; }
.gr-tile--ink { background:rgba(15,23,31,.06); border-color:var(--rule-2); color:var(--ink); }
.gr-fcard .gr-tile { margin-bottom:0; }
.gr-fcard--wide > div .gr-tile { margin-bottom:0; }

/* estrela e selo sao solidos: a regra geral do sprite forca fill:none */
.gr-sprite symbol#i-star path { fill:currentColor; stroke:none; }
.gr-slab .gr-tile,.gr-dark .gr-tile {
  background:rgba(246,103,84,.12); border-color:rgba(246,103,84,.3); color:var(--team-slab);
}

/* ---------- 23.7 Selo de nota de rodape (usado nas internas) -------------- */
/* Era um quadrado de 2,2rem herdado da inicial de depoimento; nas internas
   ele carrega TEXTO, entao vira etiqueta em linha com icone SVG. */
.gr-tcard__seal {
  width:auto; height:auto;
  display:inline-flex; align-items:center; gap:.42rem;
  place-items:initial;
  border:1px solid var(--rule-2);
  padding:.32rem .6rem;
  font-family:var(--display); font-weight:700;
  font-size:var(--step--2); letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-2); line-height:1.25;
  align-self:flex-start;
}
.gr-tcard__seal svg { width:.9rem; height:.9rem; flex:none; color:var(--team-d); }
.gr-tcard__stars svg { width:.95rem; height:.95rem; color:var(--team); }
