@font-face {
  font-family: "Labour Grotesk Web";
  src: url("../fonts/grotesk-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Reckless Web";
  src: url("../fonts/editorial-300.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

/* metricas alinhadas ao fallback: sem isto o swap do webfont reflui o texto e o CLS dispara */
@font-face {
  font-family: "Grotesk Fallback";
  src: local("Arial"), local("Helvetica"), local("Liberation Sans");
  size-adjust: 104.4%;
  ascent-override: 95%;
  descent-override: 29.7%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Reckless Fallback";
  src: local("Times New Roman"), local("Times"), local("Liberation Serif");
  size-adjust: 95.1%;
  ascent-override: 97.2%;
  descent-override: 30.2%;
  line-gap-override: 0%;
}

:root {
  --ink: #000000;
  --carbon: #020202;
  --paper: #ffffff;
  --linen: #e4e9dc;
  --parch: #efefe7;
  --mint: #d3ffc3;
  --forest: #2d9b4c;
  --forest-deep: #1e6b34;
  --sand: #e7d5ba;
  --hush-dark: #b9bfae;
  --hush-light: #4a5543;

  --stack-ui: "Labour Grotesk Web", "Grotesk Fallback", Arial, sans-serif;
  --stack-editorial: "Reckless Web", "Reckless Fallback", "Times New Roman", serif;

  --frame: 1200px;
  --gutter: clamp(16px, 4vw, 40px);
  --band-pad: clamp(72px, 9.5vw, 150px);
  --rail-gap: 10px;

  --corner-panel: 15px;
  --corner-act: 2px 14px 2px 14px;
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

body {
  margin: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--stack-ui);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.55;
  letter-spacing: .01em;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3 { font-weight: 400; margin: 0; }
p { margin: 0; }
ul, ol { margin: 0; }
figure { margin: 0; }
table { border-collapse: collapse; }

:where(a, button, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--forest);
  outline-offset: 3px;
}

.qv-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--mint); color: var(--ink);
  padding: 12px 20px; z-index: 60; border-radius: var(--corner-act);
}
.qv-skip:focus { left: 12px; top: 12px; }

.qv-wrap {
  width: 100%;
  max-width: var(--frame);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ---- barra de navegacao (persistente, atravessa bandas claras e escuras) ---- */

.qv-rail {
  position: sticky;
  top: var(--rail-gap);
  z-index: 40;
  padding-inline: var(--gutter);
  margin-top: var(--rail-gap);
}
.qv-rail__pill {
  max-width: var(--frame);
  margin-inline: auto;
  background: var(--mint);
  color: var(--ink);
  border-radius: 9999px;
  padding: 11px 14px 11px 22px;
  display: flex;
  align-items: center;
  gap: 18px;
}
.qv-rail__mark {
  display: inline-flex; align-items: center; gap: 10px;
  text-decoration: none; font-size: 20px; letter-spacing: -.01em; white-space: nowrap;
}
.qv-rail__mark img { border-radius: 8px; }
.qv-rail__mark b { font-weight: 400; color: var(--forest-deep); }
.qv-rail__menu {
  list-style: none; padding: 0; display: flex; gap: 22px; margin-left: auto; align-items: center;
}
.qv-rail__menu a { text-decoration: none; font-size: 16px; padding: 6px 2px; }
.qv-rail__menu a:hover { text-decoration: underline; text-underline-offset: 5px; }
.qv-rail__toggle {
  display: none; margin-left: auto;
  background: var(--ink); color: var(--mint);
  border: 0; border-radius: var(--corner-act);
  font: inherit; font-size: 15px; padding: 9px 16px; cursor: pointer;
}

/* ---- rodape ---- */

.qv-foot {
  background: var(--linen);
  color: var(--ink);
  padding-block: clamp(56px, 7vw, 96px) 40px;
}
.qv-foot__top { display: grid; gap: clamp(36px, 5vw, 64px); grid-template-columns: 1fr; }
.qv-foot__say { max-width: 34em; }
.qv-foot__say h2 { font-family: var(--stack-editorial); font-weight: 300; font-size: clamp(30px, 4.4vw, 43px); line-height: 1.12; letter-spacing: -.01em; }
.qv-foot__say p { margin-top: 18px; color: var(--hush-light); }
.qv-foot__mail {
  display: inline-block; margin-top: 26px;
  background: var(--forest); color: var(--ink);
  border-radius: var(--corner-act);
  padding: 14px 24px; text-decoration: none; font-size: 18px;
  border: 1px solid var(--ink);
  transition: transform .18s ease, background-color .18s ease;
}
.qv-foot__mail:hover { transform: translateY(-3px); background: var(--mint); }
.qv-foot__cols { display: grid; gap: 32px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.qv-foot__cols h3 { font-size: 15px; letter-spacing: .09em; text-transform: uppercase; color: var(--hush-light); }
.qv-foot__cols ul { list-style: none; padding: 0; margin-top: 14px; display: grid; gap: 11px; }
.qv-foot__cols a { text-decoration: none; }
.qv-foot__cols a:hover { color: var(--forest-deep); text-decoration: underline; text-underline-offset: 4px; }
.qv-foot__base { margin-top: clamp(44px, 6vw, 76px); display: grid; gap: 10px; font-size: 15px; color: var(--hush-light); }
.qv-foot__base p:first-child { color: var(--ink); }

/* ---- accoes ---- */

.qv-go {
  display: inline-block;
  font: inherit; font-size: 17px;
  padding: 15px 28px;
  border-radius: var(--corner-act);
  text-decoration: none;
  cursor: pointer;
  transition: transform .18s ease, background-color .18s ease, color .18s ease;
}
.qv-go--lead { background: var(--forest); color: var(--ink); border: 1px solid var(--forest); }
.qv-go--lead:hover { transform: translateY(-3px); background: var(--mint); border-color: var(--mint); }
.qv-go--quiet { background: transparent; color: var(--paper); border: 1px solid var(--paper); padding-block: 14px; }
.qv-go--quiet:hover { transform: translateY(-3px); background: var(--paper); color: var(--ink); }
.qv-go--slim {
  padding: 10px 18px; font-size: 16px;
  background: transparent; color: var(--ink); border: 1px solid var(--ink);
}
.qv-go--slim:hover { background: var(--ink); color: var(--mint); transform: translateY(-2px); }

.qv-chip {
  display: inline-block;
  font-size: 14px; letter-spacing: .06em; text-transform: uppercase;
  padding: 6px 13px;
  border-radius: var(--corner-act);
  border: 1px solid currentColor;
}

/* ---- bandas ---- */

.qv-band { padding-block: var(--band-pad); }
.qv-band--dark { background: var(--ink); color: var(--paper); }
.qv-band--linen { background: var(--linen); color: var(--ink); }
.qv-band--parch { background: var(--parch); color: var(--ink); }

.qv-band__eye {
  font-size: 15px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--hush-dark);
}
.qv-band--linen .qv-band__eye, .qv-band--parch .qv-band__eye { color: var(--hush-light); }

.qv-band__head {
  margin-top: 16px;
  font-size: clamp(30px, 4.6vw, 53px);
  line-height: 1.1;
  letter-spacing: -.01em;
  max-width: 17em;
}
.qv-band--linen .qv-band__head, .qv-band--parch .qv-band__head {
  font-family: var(--stack-editorial); font-weight: 300;
}
.qv-band__lead { margin-top: 20px; max-width: 38em; font-size: 19px; color: var(--hush-dark); }
.qv-band--linen .qv-band__lead, .qv-band--parch .qv-band__lead { color: var(--hush-light); }

/* ---- abertura ---- */

.qv-open {
  position: relative;
  background: var(--ink);
  padding-block: clamp(64px, 8vw, 120px) clamp(56px, 7vw, 104px);
  overflow: hidden;
  isolation: isolate;
}
.qv-open__scene {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; object-fit: cover;
  opacity: .34;
}
.qv-open::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.56) 46%, rgba(0,0,0,.94) 100%);
}
.qv-open__ghost {
  position: absolute; left: 50%; top: 4%;
  transform: translateX(-50%);
  z-index: -1;
  font-size: clamp(120px, 30vw, 435px);
  line-height: .8;
  letter-spacing: -.072em;
  color: rgba(211, 255, 195, .055);
  pointer-events: none;
  user-select: none;
}
.qv-open__inner { position: relative; text-align: center; }
.qv-open__eye {
  font-size: 15px; letter-spacing: .1em; text-transform: uppercase; color: var(--sand);
}
.qv-open__head {
  margin-top: 22px;
  font-size: clamp(34px, 5.6vw, 64px);
  line-height: 1.04;
  letter-spacing: -.02em;
  max-width: 15em;
  margin-inline: auto;
}
.qv-open__head em { font-style: normal; color: var(--mint); }
.qv-open__lead {
  margin-top: 24px; margin-inline: auto;
  max-width: 34em;
  font-size: 19px;
  color: var(--hush-dark);
}
.qv-open__acts { margin-top: 36px; display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.qv-open__strip {
  margin-top: clamp(48px, 6vw, 82px);
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 1fr);
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  padding-bottom: 8px;
}
.qv-open__shot { position: relative; scroll-snap-align: start; border-radius: var(--corner-panel); overflow: hidden; }
.qv-open__shot img { width: 100%; height: auto; }
.qv-open__shot figcaption {
  position: absolute; left: 0; top: 0;
  padding: 14px 18px;
  font-size: 15px;
  color: var(--paper);
  background: linear-gradient(180deg, rgba(0,0,0,.72), rgba(0,0,0,0));
  width: 100%;
}

/* ---- catalogo ---- */

.qv-shelf { margin-top: clamp(40px, 5vw, 64px); display: grid; gap: 20px; grid-template-columns: 1fr; }

.qv-sheet {
  background: var(--parch);
  border: 1px solid var(--ink);
  border-radius: var(--corner-panel);
  padding: clamp(22px, 2.6vw, 30px);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.qv-sheet--lead { background: var(--paper); grid-column: 1 / -1; }
.qv-sheet--wide { grid-column: 1 / -1; }
.qv-sheet--lead .qv-sheet__frame { border-radius: var(--corner-panel); overflow: hidden; }
.qv-sheet--lead > div:last-child { display: flex; flex-direction: column; gap: 16px; }
.qv-sheet--wide .qv-sheet__text { max-width: 58em; }
.qv-sheet__top { display: flex; gap: 16px; align-items: flex-start; }
.qv-sheet__icon { border-radius: 14px; flex: none; }
.qv-sheet__name { font-size: 24px; line-height: 1.2; letter-spacing: -.01em; }
.qv-sheet__by { margin-top: 5px; font-size: 15px; color: var(--hush-light); }
.qv-sheet__scores { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 15px; color: var(--hush-light); }
.qv-sheet__scores b { font-weight: 400; color: var(--ink); }
.qv-sheet__grade {
  display: inline-flex; align-items: baseline; gap: 6px;
  color: var(--forest-deep);
}
.qv-sheet__grade span { font-size: 27px; letter-spacing: -.01em; }
.qv-sheet__text { font-size: 16px; }
.qv-sheet__foot { margin-top: auto; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.qv-sheet__stars { display: inline-flex; align-items: center; gap: 7px; font-size: 15px; color: var(--hush-light); }
.qv-sheet__stars svg { display: block; }

/* ---- comparativo ---- */

.qv-board { margin-top: clamp(36px, 4.4vw, 56px); width: 100%; }
.qv-board__scroll { width: 100%; overflow-x: auto; }
.qv-board table { width: 100%; border-collapse: collapse; font-size: 16px; min-width: 760px; }
.qv-board caption { text-align: left; font-size: 15px; color: var(--hush-dark); padding-bottom: 16px; }
.qv-board th, .qv-board td { text-align: left; padding: 15px 18px; vertical-align: top; }
.qv-board thead th {
  font-size: 14px; letter-spacing: .07em; text-transform: uppercase;
  color: var(--mint); border-bottom: 1px solid var(--mint);
}
.qv-board tbody tr:nth-child(odd) { background: rgba(255, 255, 255, .055); }
.qv-board tbody th { font-weight: 400; color: var(--paper); min-width: 9em; }
.qv-board td:last-child, .qv-board th:last-child { text-align: right; }
.qv-board tbody td { color: var(--hush-dark); }
.qv-board tbody td:last-child { color: var(--forest); }
.qv-board__sign { margin-top: 22px; max-width: 44em; font-size: 16px; color: var(--hush-dark); }

/* ---- metodo e apontamentos ---- */

.qv-note__pair {
  margin-top: clamp(38px, 4.6vw, 60px);
  display: grid; gap: clamp(28px, 4vw, 52px);
  grid-template-columns: 1fr;
  align-items: start;
}
.qv-note__shot { border-radius: var(--corner-panel); overflow: hidden; }
.qv-note__list { list-style: none; padding: 0; display: grid; gap: 26px; counter-reset: passo; }
.qv-note__list li { counter-increment: passo; display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: baseline; }
.qv-note__list li::before {
  content: counter(passo, decimal-leading-zero);
  font-family: var(--stack-editorial); font-weight: 300;
  font-size: 34px; color: var(--forest-deep); line-height: 1;
}
.qv-note__list h3 { font-size: 19px; letter-spacing: -.005em; }
.qv-note__list p { margin-top: 7px; font-size: 16px; color: var(--hush-light); }

.qv-log { margin-top: clamp(48px, 6vw, 84px); display: grid; gap: 20px; grid-template-columns: 1fr; }
.qv-log__item {
  background: var(--paper);
  border-radius: var(--corner-panel);
  padding: clamp(22px, 2.6vw, 32px);
  display: flex; flex-direction: column; gap: 14px;
}
.qv-log__item--tall { grid-row: span 2; }
.qv-log__meta { font-size: 14px; letter-spacing: .07em; text-transform: uppercase; color: var(--hush-light); }
.qv-log__body { font-family: var(--stack-editorial); font-weight: 300; font-size: 22px; line-height: 1.32; letter-spacing: -.01em; }
.qv-log__by { margin-top: auto; font-size: 15px; color: var(--hush-light); }

/* ---- perguntas ---- */

.qv-ask { margin-top: clamp(36px, 4.4vw, 56px); width: 100%; }
.qv-ask__item { border-bottom: 1px solid rgba(255, 255, 255, .17); }
.qv-ask__item:last-child { border-bottom: 0; }
.qv-ask__item summary {
  list-style: none; cursor: pointer;
  padding: 24px 46px 24px 0;
  position: relative;
  font-size: clamp(19px, 2.1vw, 24px);
  line-height: 1.3; letter-spacing: -.01em;
}
.qv-ask__item summary::-webkit-details-marker { display: none; }
.qv-ask__item summary::after {
  content: ""; position: absolute; right: 6px; top: 50%;
  width: 14px; height: 2px; background: var(--forest);
  box-shadow: 0 0 0 0 transparent;
  transition: transform .2s ease;
}
.qv-ask__item summary::before {
  content: ""; position: absolute; right: 12px; top: 50%;
  width: 2px; height: 14px; margin-top: -7px; background: var(--forest);
  transition: opacity .2s ease, transform .2s ease;
}
.qv-ask__item[open] summary::before { opacity: 0; transform: rotate(90deg); }
.qv-ask__item p { padding-bottom: 26px; max-width: 46em; color: var(--hush-dark); }
.qv-ask__item p + p { margin-top: 14px; }

/* ---- aviso e subir ---- */

.qv-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  background: var(--mint); color: var(--ink);
  padding: 18px var(--gutter);
  display: none;
}
.qv-bar[data-open="1"] { display: block; }
.qv-bar__inner {
  max-width: var(--frame); margin-inline: auto;
  display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center;
}
.qv-bar__text { flex: 1 1 22em; font-size: 16px; }
.qv-bar__text a { color: var(--forest-deep); }
.qv-bar__acts { display: flex; gap: 10px; }

.qv-up {
  position: fixed; right: 18px; bottom: 18px; z-index: 45;
  width: 52px; height: 52px;
  display: none; place-items: center;
  background: var(--forest); color: var(--ink);
  border: 1px solid var(--ink); border-radius: var(--corner-act);
  cursor: pointer;
  transition: transform .18s ease, background-color .18s ease;
}
.qv-up[data-on="1"] { display: grid; }
.qv-up:hover { transform: translateY(-3px); background: var(--mint); }

/* ---- paginas de texto ---- */

.qv-doc { background: var(--linen); color: var(--ink); padding-block: clamp(56px, 7vw, 104px); }
.qv-doc__head { max-width: 30em; }
.qv-doc__head h1 { font-family: var(--stack-editorial); font-weight: 300; font-size: clamp(32px, 5vw, 53px); line-height: 1.1; letter-spacing: -.01em; }
.qv-doc__stamp { margin-top: 16px; font-size: 15px; color: var(--hush-light); }
.qv-doc__body { margin-top: clamp(38px, 4.6vw, 60px); max-width: 46em; }
.qv-doc__body h2 {
  margin-top: 44px; font-size: 24px; line-height: 1.25; letter-spacing: -.01em;
  display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: baseline;
}
.qv-doc__body h2 i { font-style: normal; color: var(--forest-deep); font-size: 18px; }
.qv-doc__body h3 { margin-top: 26px; font-size: 19px; }
.qv-doc__body p { margin-top: 14px; }
.qv-doc__body ul { margin-top: 14px; padding-left: 0; list-style: none; display: grid; gap: 10px; }
.qv-doc__body ul li { padding-left: 22px; position: relative; }
.qv-doc__body ul li::before {
  content: ""; position: absolute; left: 2px; top: .62em;
  width: 9px; height: 2px; background: var(--forest-deep);
}
.qv-doc__body a { color: var(--forest-deep); }
.qv-doc__tab { margin-top: 20px; width: 100%; overflow-x: auto; }
.qv-doc__tab table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 640px; }
.qv-doc__tab caption { text-align: left; font-size: 15px; color: var(--hush-light); padding-bottom: 12px; }
.qv-doc__tab th, .qv-doc__tab td { text-align: left; padding: 12px 14px; vertical-align: top; }
.qv-doc__tab thead th { font-size: 14px; letter-spacing: .06em; text-transform: uppercase; border-bottom: 1px solid var(--ink); }
.qv-doc__tab tbody tr:nth-child(odd) { background: rgba(0, 0, 0, .045); }
.qv-doc__tab tbody th { font-weight: 400; }

.qv-lost { min-height: 58vh; display: grid; place-items: center; text-align: center; background: var(--ink); padding-block: clamp(64px, 9vw, 130px); }
.qv-lost h1 { font-size: clamp(34px, 6vw, 64px); line-height: 1.05; letter-spacing: -.02em; }
.qv-lost p { margin-top: 20px; max-width: 30em; margin-inline: auto; color: var(--hush-dark); }
.qv-lost .qv-go { margin-top: 30px; }

@media (min-width: 620px) {
  .qv-foot__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qv-shelf { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qv-log { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qv-sheet--lead { display: grid; grid-template-columns: 1fr; gap: 22px; }
}

@media (min-width: 900px) {
  body { font-size: 18px; }
  .qv-foot__top { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
  .qv-shelf { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qv-sheet--lead { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; }
  .qv-sheet--wide {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    column-gap: 44px; row-gap: 14px;
    align-items: start;
  }
  .qv-sheet--wide .qv-sheet__top { grid-column: 1; grid-row: 1; }
  .qv-sheet--wide .qv-sheet__text { grid-column: 1; grid-row: 2; max-width: none; }
  .qv-sheet--wide .qv-sheet__scores { grid-column: 2; grid-row: 1; justify-content: flex-end; text-align: right; }
  .qv-sheet--wide .qv-sheet__foot { grid-column: 2; grid-row: 2; margin-top: 0; align-self: start; justify-content: flex-end; }
  .qv-note__pair { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); }
  .qv-log { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qv-board table { min-width: 0; }
}

@media (max-width: 899px) {
  .qv-rail__menu {
    display: none;
    position: absolute; left: var(--gutter); right: var(--gutter); top: calc(100% + 8px);
    background: var(--mint);
    border-radius: var(--corner-panel);
    padding: 18px 22px;
    flex-direction: column; gap: 4px; align-items: stretch;
  }
  .qv-rail__menu a { display: block; padding: 11px 2px; font-size: 18px; }
  .qv-rail { position: sticky; }
  .qv-rail__pill { position: relative; }
  .qv-rail__pill[data-open="1"] .qv-rail__menu { display: flex; }
  .qv-rail__toggle { display: inline-block; }
}
