/* ==========================================================================
   Nômade Brasil — Tropical & Vibrant Stylesheet
   ========================================================================== */

:root {
  /* ──────────────────────────────────────────────────────────────────────
     Nômade brand-system tokens (semantic names from brand-colors.css)
     These are the canonical names. Each country lockup will define its own
     selva/verde/ouro etc. in its own brand file. The legacy aliases below
     point at the same hex values for backward compatibility with existing
     CSS.
     ────────────────────────────────────────────────────────────────────── */
  --brazil-selva:   #0E3B2E;   /* primary ink — selva (deep jungle) */
  --brazil-verde:   #009C3B;   /* flag green */
  --brazil-ouro:    #FFDF00;   /* flag yellow / ouro */
  --brazil-cobalto: #002776;   /* flag blue / cobalto */
  --brazil-areia:   #F4EFE6;   /* page tint / sand */
  --brazil-muted:   #5C6864;   /* secondary text */

  /* Legacy aliases — kept so existing rules keep working unchanged */
  --green-deep:   var(--brazil-selva);
  --green-mid:    var(--brazil-verde);
  --green-soft:   #DFF3E6;
  --yellow:       var(--brazil-ouro);
  --yellow-soft:  #FFF4D6;
  --yellow-deep:  #E0B500;     /* darker yellow for hover */
  --blue-deep:    var(--brazil-cobalto);
  --blue-soft:    #DCE5F0;
  --blue-mid:     #1F4D8C;
  --orange:       var(--brazil-ouro);
  --ocean:        #0099C2;
  --ocean-deep:   var(--brazil-cobalto);
  --sand:         var(--brazil-areia);
  --ink:          #1B1F1D;
  --muted:        var(--brazil-muted);
  --line:         #E6EAE6;
  --white:        #FFFFFF;

  --font-serif: 'Fraunces', 'Cormorant Garamond', Georgia, serif;
  --font-sans:  'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-display: 'Fraunces', 'Cormorant Garamond', Georgia, serif;

  --radius: 14px;
  --radius-sm: 8px;
  --shadow-sm: 0 2px 6px rgba(14,59,46,.06);
  --shadow-md: 0 8px 24px rgba(14,59,46,.10);
  --shadow-lg: 0 18px 48px rgba(14,59,46,.18);

  --maxw: 1120px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

/* Guard against horizontal scroll on mobile WITHOUT creating a scrolling
   context — `overflow-x: clip` doesn't break `position: sticky` the way
   `overflow-x: hidden` does. Older browsers fall back to hidden. */
html { overflow-x: hidden; overflow-x: clip; }
body {
  margin: 0;
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--white);
  line-height: 1.65;
  overflow-x: hidden;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "ss01", "cv11";
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--ocean-deep); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--green-deep);
  line-height: 1.15;
  margin: 0 0 .6em;
  letter-spacing: -0.02em;
  font-variation-settings: "SOFT" 50, "WONK" 0;
}
h1 { font-size: clamp(2.4rem, 4.8vw, 3.6rem); font-weight: 700; }
h2 { font-size: clamp(1.7rem, 2.9vw, 2.3rem); margin-top: 1.8em; font-weight: 600; }
h3 { font-size: 1.25rem; margin-top: 1.4em; font-weight: 600; }
h4 { margin-top: 1.2em; font-weight: 700; font-family: var(--font-sans); letter-spacing: .04em; text-transform: uppercase; font-size: .9rem; }
p  { margin: 0 0 1em; }

/* Reset top margin for headings that are the first child of a container */
:where(.hero, .hero__inner, .container, .article, .article > header, .card, .post-card__body, .text-center, .grid, .callout, .footer-grid > div) > :first-child:where(h1, h2, h3, h4) {
  margin-top: 0;
}

/* Tighten the gap when an eyebrow/pill is the first child and a heading follows it */
.hero__eyebrow + h1,
.hero__eyebrow + h2,
.hero__eyebrow + h3,
.hero__eyebrow + h4 { margin-top: 0; }

/* Compact spacing inside cards regardless of position */
.card h2, .card h3, .card h4 { margin-top: .4em; }
.post-card__body h3 { margin-top: .4em; }
.callout h2, .callout h3, .callout h4 { margin-top: .4em; }

/* Scroll offset so anchor jumps don't hide under sticky nav */
h1[id], h2[id], h3[id] { scroll-margin-top: 120px; }

/* ----- Layout ------------------------------------------------------------- */
.container { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.section { padding: 72px 0; }
.section--tight { padding: 48px 0; }
.section--sand { background: var(--sand); }
.section--green { background: var(--green-soft); }
.section--deep { background: var(--green-deep); color: var(--white); }
.section--deep h1, .section--deep h2, .section--deep h3 { color: var(--white); }

/* ----- Header / Nav ------------------------------------------------------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(160%) blur(8px);
  border-bottom: 1px solid var(--line);
}
.nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 24px; max-width: var(--maxw); margin: 0 auto;
  gap: 16px;
}
.nav__logo img { height: 68px; width: auto; }
.nav__links { display: flex; align-items: center; gap: 14px; flex-wrap: nowrap; }
.nav__links a {
  color: var(--green-deep); font-weight: 600; font-size: .9rem;
  text-decoration: none;
  white-space: nowrap;
}
.nav__links a:hover { color: var(--green-mid); }
.nav__cta {
  background: var(--yellow);
  color: var(--green-deep) !important;
  padding: 10px 20px; border-radius: 999px; font-weight: 700;
  box-shadow: var(--shadow-sm);
  border: 2px solid var(--yellow);
}
.nav__cta:hover {
  background: var(--yellow-deep);
  border-color: var(--yellow-deep);
  text-decoration: none !important;
}

.nav__toggle {
  display: none; background: none; border: 0; cursor: pointer;
  padding: 8px; width: 44px; height: 44px;
  position: relative; z-index: 60;
  -webkit-tap-highlight-color: transparent;
}
.nav__toggle span {
  display: block; width: 26px; height: 2.5px;
  background: var(--green-deep);
  margin: 5px auto; border-radius: 2px;
  transition: transform .35s cubic-bezier(.4,.01,.165,.99),
              opacity .25s ease,
              background-color .2s ease;
  transform-origin: center;
}
/* Animated hamburger → X */
.nav__toggle.is-active span:nth-child(1) {
  transform: translateY(7.5px) rotate(45deg);
}
.nav__toggle.is-active span:nth-child(2) {
  opacity: 0; transform: scaleX(0);
}
.nav__toggle.is-active span:nth-child(3) {
  transform: translateY(-7.5px) rotate(-45deg);
}

@media (max-width: 1180px) {
  .nav__links {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; gap: 0;
    background: var(--white); border-bottom: 1px solid var(--line);
    padding: 10px 0;
  }
  .nav__links.is-open { display: flex; }
  .nav__links a { padding: 14px 24px; width: 100%; border-bottom: 1px solid var(--line); }
  .nav__cta { margin: 12px 24px; text-align: center; }
  .nav__toggle { display: block; }
}
@media (max-width: 540px) {
  .nav__logo img { height: 60px; }
}

/* ----- Hero --------------------------------------------------------------- */
.hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(255,223,0,.30), transparent 60%),
    radial-gradient(900px 500px at 0% 100%, rgba(0,156,59,.25), transparent 60%),
    linear-gradient(180deg, #FFF7E8 0%, #DFF3E6 100%);
  padding: 110px 0 96px;
  min-height: 360px;
}
.hero__inner {
  max-width: 980px;
  position: relative;
  z-index: 2;
}
.hero__eyebrow {
  display: inline-block; background: var(--green-deep); color: var(--yellow);
  padding: 6px 14px; border-radius: 999px; font-size: .8rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; margin-bottom: 20px;
}
.hero h1 { margin-bottom: 18px; }
.hero__sub { font-size: 1.2rem; color: var(--muted); max-width: 620px; }
.hero__ctas { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 14px; }

/* ----- Buttons ------------------------------------------------------------ */
.btn {
  display: inline-block; padding: 14px 24px; border-radius: 999px;
  font-weight: 700; font-size: 1rem; cursor: pointer; border: 0;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.btn:hover { transform: translateY(-1px); text-decoration: none; }
.btn--primary { background: var(--yellow); color: var(--green-deep); box-shadow: var(--shadow-sm); border: 2px solid var(--yellow); }
.btn--primary:hover { background: var(--yellow-deep); border-color: var(--yellow-deep); box-shadow: var(--shadow-md); color: var(--green-deep); }
.btn--ghost { background: var(--white); color: var(--green-deep); border: 2px solid var(--green-deep); }
.btn--ghost:hover { background: var(--green-deep); color: var(--white); }
.btn--green { background: var(--green-deep); color: var(--white); border: 2px solid var(--green-deep); }
.btn--green:hover { background: var(--green-mid); border-color: var(--green-mid); color: var(--white); }
.btn--blue { background: var(--blue-deep); color: var(--white); border: 2px solid var(--blue-deep); }
.btn--blue:hover { background: var(--blue-mid); border-color: var(--blue-mid); color: var(--white); }

/* Mobile: ensure any adjacent .btn siblings (in flex or inline groups)
   stack with breathing room — never touch each other. */
@media (max-width: 540px) {
  .btn { width: 100%; max-width: 100%; text-align: center; }
  .btn + .btn { margin-top: 12px; }
}

/* ----- Cards & Grids ------------------------------------------------------ */
.grid { display: grid; gap: 24px; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .grid--3, .grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; } }

/* Keep 3 across at all useful widths — for tightly-related step trios */
.grid--keep-row.grid--3 { grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 540px) {
  .grid--keep-row.grid--3 { grid-template-columns: 1fr; gap: 16px; }
}

.card {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 24px;
  box-shadow: var(--shadow-sm);
  transition: transform .15s ease, box-shadow .15s ease;
}
.card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.card h3 { margin-top: 6px; }
.card__icon {
  width: 48px; height: 48px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--green-soft); color: var(--green-mid); font-size: 1.4rem;
  margin-bottom: 8px;
}
.card__icon--orange { background: var(--yellow-soft); color: #8a6d00; }
.card__icon--ocean { background: var(--blue-soft); color: var(--blue-deep); }
.card__icon--yellow { background: var(--yellow-soft); color: #8a6d00; }

.card-link {
  display: block; color: inherit;
}
.card-link:hover { text-decoration: none; }

/* ----- Steps ribbon ------------------------------------------------------- */
.steps { counter-reset: step; }
.step {
  position: relative; padding: 28px 28px 28px 92px;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius); margin-bottom: 16px;
  box-shadow: var(--shadow-sm);
}
.step::before {
  counter-increment: step;
  content: counter(step);
  position: absolute; left: 24px; top: 24px;
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--green-mid); color: var(--white);
  font-family: var(--font-display); font-weight: 700; font-size: 1.4rem;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-sm);
}
.step h3 { margin-top: 0; }

/* ----- Checklist ---------------------------------------------------------- */
.checklist { list-style: none; padding: 0; margin: 0; }
.checklist li {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius-sm);
  margin-bottom: 10px; background: var(--white);
  transition: background .15s ease;
}
.checklist li.is-checked { background: var(--green-soft); }
.checklist li.is-checked .checklist__label { text-decoration: line-through; color: var(--muted); }
.checklist input[type="checkbox"] {
  width: 22px; height: 22px; accent-color: var(--green-mid); margin-top: 2px;
  flex-shrink: 0; cursor: pointer;
}
.checklist__label { font-weight: 600; }
.checklist__desc { font-size: .95rem; color: var(--muted); margin-top: 4px; }

.progress {
  background: var(--green-soft); border-radius: 999px;
  height: 14px; overflow: hidden; margin-bottom: 14px;
}
.progress__bar {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--green-mid), var(--orange));
  transition: width .3s ease;
}

/* ----- Tables ------------------------------------------------------------- */
.table-wrap { overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--line); }
table.tbl { width: 100%; border-collapse: collapse; background: var(--white); }
.tbl th, .tbl td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--line); }
.tbl th { background: var(--green-soft); color: var(--green-deep); font-weight: 700; }
.tbl tr:last-child td { border-bottom: 0; }

/* ----- FAQ / Accordion --------------------------------------------------- */
details.faq {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius-sm); margin-bottom: 10px; padding: 0 18px;
}
details.faq summary {
  cursor: pointer; padding: 16px 0; font-weight: 700; color: var(--green-deep);
  list-style: none; display: flex; justify-content: space-between; align-items: center;
}
details.faq summary::after { content: "+"; font-size: 1.4rem; color: var(--green-mid); }
details.faq[open] summary::after { content: "–"; }
details.faq summary::-webkit-details-marker { display: none; }
details.faq > p { padding-bottom: 16px; margin: 0; color: var(--muted); }

/* ----- FAQ section (homepage) — card grid with numbered questions -------- */
.faq-section {
  background:
    radial-gradient(900px 420px at 100% 0%, rgba(0,156,59,.08), transparent 60%),
    radial-gradient(700px 360px at 0% 100%, rgba(255,223,0,.10), transparent 60%),
    var(--sand);
}
.faq-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
@media (max-width: 760px) {
  .faq-grid { grid-template-columns: 1fr; }
}

.faq-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}
.faq-card:hover {
  border-color: var(--green-mid);
  box-shadow: 0 6px 24px rgba(14, 59, 46, 0.08);
}
.faq-card[open] {
  border-color: var(--green-mid);
  box-shadow: 0 8px 28px rgba(14, 59, 46, 0.10);
}

.faq-card summary {
  cursor: pointer;
  list-style: none;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 14px;
  padding: 18px 22px;
  user-select: none;
}
.faq-card summary::-webkit-details-marker { display: none; }

.faq-card__num {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--green-mid);
  letter-spacing: .04em;
  min-width: 28px;
}
.faq-card__q {
  font-weight: 600;
  color: var(--green-deep);
  line-height: 1.35;
  font-size: 1rem;
}
.faq-card__icon {
  width: 28px; height: 28px;
  border-radius: 999px;
  background: var(--green-soft);
  position: relative;
  flex-shrink: 0;
  transition: background-color .2s ease, transform .25s ease;
}
.faq-card__icon::before,
.faq-card__icon::after {
  content: "";
  position: absolute;
  background: var(--green-deep);
  border-radius: 2px;
  left: 50%; top: 50%;
  transition: transform .25s ease, opacity .2s ease;
}
.faq-card__icon::before {  /* horizontal bar */
  width: 12px; height: 2.5px;
  transform: translate(-50%, -50%);
}
.faq-card__icon::after {  /* vertical bar */
  width: 2.5px; height: 12px;
  transform: translate(-50%, -50%);
}
.faq-card[open] .faq-card__icon {
  background: var(--yellow);
  transform: rotate(180deg);
}
.faq-card[open] .faq-card__icon::after {
  opacity: 0;
}

.faq-card__body {
  padding: 0 22px 20px 64px;  /* indent answer beneath question text */
  color: var(--muted);
  font-size: .98rem;
  line-height: 1.65;
}
.faq-card__body p { margin: 0; }
.faq-card__body a { color: var(--green-mid); font-weight: 600; }
.faq-card__body a:hover { color: var(--green-deep); }

@media (max-width: 540px) {
  .faq-card summary { padding: 16px 18px; gap: 12px; }
  .faq-card__num { font-size: 1rem; min-width: 24px; }
  .faq-card__q { font-size: .95rem; }
  .faq-card__body { padding: 0 18px 18px 54px; }
}

/* ----- Callouts ----------------------------------------------------------- */
.callout {
  padding: 18px 20px; border-radius: var(--radius-sm);
  border-left: 4px solid var(--yellow-deep); background: var(--yellow-soft);
  margin: 20px 0;
}
.callout--green { background: var(--green-soft); border-color: var(--green-mid); }
.callout--blue  { background: #E5F5FA; border-color: var(--ocean); }
.callout strong { color: var(--green-deep); }

/* ----- Blog --------------------------------------------------------------- */
.post-card {
  display: flex; flex-direction: column;
  background: var(--white); border-radius: var(--radius); overflow: hidden;
  border: 1px solid var(--line); box-shadow: var(--shadow-sm);
  transition: transform .15s ease, box-shadow .15s ease;
  align-self: start;          /* don't stretch to row height — no dead space */
  text-decoration: none;
  color: inherit;
}
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); text-decoration: none; }
.post-card:hover h3 { color: var(--green-mid); }
.post-card__media {
  position: relative;
  display: block;
  overflow: hidden;
  background: var(--brazil-areia);
  aspect-ratio: 5/4;
}
.post-card__media img {
  width: 100%; height: 100%; object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.post-card:hover .post-card__media img { transform: scale(1.04); }
.post-card, .post-card *,
.post-card:hover, .post-card:hover * { text-decoration: none !important; }
/* Editorial post-card — clean white card, no green cover, small-caps tag */
.post-card__body {
  padding: 22px 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.post-card__tag {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--green-mid);
  margin: 0 0 4px;
}
.post-card__body h3 {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--green-deep);
  margin: 0 0 6px;
}
.post-card__body p {
  margin: 0;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.5;
}
.post-card__readmore {
  display: inline-block;
  margin-top: 12px;
  font-family: var(--font-sans);
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--green-deep);
  transition: color .15s ease, transform .15s ease;
}
.post-card:hover .post-card__readmore {
  color: var(--green-mid);
  transform: translateX(2px);
}

.article { max-width: 880px; margin: 0 auto; padding: 56px 24px 80px; }
.article header { margin-bottom: 36px; }
.article header .meta { color: var(--muted); font-size: .9rem; margin-bottom: 8px; }
.article h2 { margin-top: 2em; }
.article ul, .article ol { padding-left: 1.4em; }
.article li { margin-bottom: .4em; }
.article .hero-img {
  height: 360px; border-radius: var(--radius);
  background-size: cover; background-position: center;
  margin-bottom: 24px;
}

/* Inline content image (single, full-width inside article column) */
.article figure {
  margin: 28px 0;
}
.article figure img {
  width: 100%; height: auto;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  display: block;
}
.article figure figcaption {
  margin-top: 8px;
  font-size: .9rem; color: var(--muted);
  font-style: italic;
}

/* Image gallery — masonry-ish 2 or 3 column */
.article .gallery {
  display: grid; gap: 12px;
  grid-template-columns: repeat(3, 1fr);
  margin: 28px 0;
}
.article .gallery--2 { grid-template-columns: repeat(2, 1fr); }
.article .gallery img {
  width: 100%; height: 100%; object-fit: cover;
  border-radius: var(--radius-sm);
  aspect-ratio: 4 / 3;
}
@media (max-width: 700px) {
  .article .gallery { grid-template-columns: repeat(2, 1fr); }
}

/* Hero with background photo — photo IS the primary visual; light Brazilian-green tint overlay */
/* IMPORTANT: background-image is set via inline style on the element so URLs resolve relative to the HTML file. */
.hero--photo {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--green-deep);
  background-image: var(--bg, none);
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  min-height: 460px;
  color: #fff;
}
/* Dark-green gradient — keeps the photo visible while giving headlines the contrast they need */
.hero--photo::after {
  content: "";
  position: absolute; inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg,
      rgba(14, 59, 46, 0.32) 0%,
      rgba(14, 59, 46, 0.45) 55%,
      rgba(14, 59, 46, 0.62) 100%);
  pointer-events: none;
}
/* Content sits above the overlay */
.hero--photo .hero__inner,
.hero--photo > .container,
.hero--photo .container { position: relative; z-index: 2; }
.hero--photo h1,
.hero--photo h2,
.hero--photo h3 {
  color: #ffffff;
  text-shadow: 0 2px 14px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.35);
}
.hero--photo .hero__sub {
  color: #F4FFF7;
  text-shadow: 0 2px 10px rgba(0,0,0,.55), 0 1px 2px rgba(0,0,0,.3);
}
.hero--photo .hero__eyebrow {
  background: var(--green-deep);
  color: #ffffff;
  box-shadow: 0 4px 14px rgba(0,0,0,.45);
  margin-bottom: 10px;
}
/* Darker variant — full overlay used on the homepage final CTA */
.hero--photo.hero--dark::after {
  background: linear-gradient(180deg, rgba(14,59,46,.78), rgba(14,59,46,.55) 60%, rgba(14,59,46,.85));
}
.hero--photo.hero--dark .hero__sub { color: #DFF3E6; }

/* ----- Stat grid (replaces the old orange "At a glance" table) ---------- */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  background: var(--white);
  border-radius: var(--radius);
  padding: 22px;
  box-shadow: var(--shadow-md);
  border: 1px solid var(--line);
}
.stat-grid__title {
  grid-column: 1 / -1;
  display: flex; justify-content: space-between; align-items: baseline;
  padding-bottom: 10px;
  margin: 0 0 6px;
  border-bottom: 2px solid var(--green-soft);
}
.stat-grid__title h3 {
  margin: 0; font-size: 1.1rem; color: var(--green-deep);
}
.stat-grid__title .pill {
  background: var(--yellow); color: var(--green-deep);
  font-size: .7rem; font-weight: 700;
  padding: 3px 10px; border-radius: 999px;
  letter-spacing: .08em; text-transform: uppercase;
}
.stat-tile {
  background: var(--green-soft);
  border-radius: var(--radius-sm);
  padding: 14px 14px 16px;
  border-left: 4px solid var(--green-mid);
}
.stat-tile__label {
  display: block;
  font-size: .72rem; font-weight: 800;
  color: var(--green-deep);
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.stat-tile__value {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.2rem; font-weight: 700;
  color: var(--ink);
  line-height: 1.25;
}
.stat-tile__sub {
  display: block;
  font-size: .85rem; color: var(--muted);
  margin-top: 4px;
}
.stat-tile--accent {
  background: linear-gradient(135deg, var(--green-mid), var(--green-deep));
  border-left-color: var(--yellow);
  color: #fff;
}
.stat-tile--accent .stat-tile__label { color: var(--yellow); }
.stat-tile--accent .stat-tile__value { color: #fff; }
.stat-tile--accent .stat-tile__sub { color: var(--green-soft); }

@media (max-width: 480px) {
  .stat-grid { grid-template-columns: 1fr; }
}

/* ----- Photo strip (homepage feature) ----------------------------------- */
.photo-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 36px 0;
}
/* Auto-balanced 6-cell layout: first cell taller and spans 2 rows */
.photo-strip > :nth-child(1) {
  grid-row: span 2;
}
.photo-strip__item {
  background-size: cover; background-position: center;
  border-radius: var(--radius);
  aspect-ratio: 4/3;
  position: relative; overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}
.photo-strip__item:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.photo-strip > :nth-child(1) { aspect-ratio: auto; }
.photo-strip__item--tall { aspect-ratio: auto; min-height: 320px; }
.photo-strip__item .caption {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 14px 16px;
  background: linear-gradient(180deg, transparent, rgba(14,59,46,.88));
  color: #fff;
  font-weight: 700;
  font-size: .95rem;
}
@media (max-width: 900px) {
  .photo-strip { grid-template-columns: repeat(2, 1fr); }
  .photo-strip > :nth-child(1) { grid-row: auto; aspect-ratio: 16/10; }
}
@media (max-width: 520px) {
  .photo-strip { grid-template-columns: 1fr; }
  .photo-strip__item { aspect-ratio: 16/10; min-height: 0; }
}

/* ----- Footer ------------------------------------------------------------- */
.site-footer {
  background: var(--green-deep); color: #C9D8D1;
  padding: 56px 0 32px;
  margin-top: 0;
}
/* Footer uses logo-footer.svg directly (white text, colored mark) — no filter needed */
.site-footer img[src*="logo-footer.svg"] {
  height: 56px !important;
  width: auto;
}
.site-footer h4 { color: var(--yellow); margin-bottom: 14px; font-family: var(--font-sans); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.site-footer a { color: #C9D8D1; }
.site-footer a:hover { color: var(--yellow); }
.footer-grid { display: grid; gap: 32px; grid-template-columns: 2fr 1fr 1fr 1fr; }
@media (max-width: 800px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-bottom {
  margin-top: 36px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12);
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  font-size: .85rem; color: #8FA39A;
}

/* ----- Utilities ---------------------------------------------------------- */
.text-center { text-align: center; }
.mt-2 { margin-top: .5rem; } .mt-4 { margin-top: 1rem; } .mt-6 { margin-top: 2rem; }
.mb-0 { margin-bottom: 0; } .mb-1 { margin-bottom: .5rem; } .mb-2 { margin-bottom: 1rem; } .mb-3 { margin-bottom: 1.5rem; }
.tag {
  display: inline-block; padding: 4px 10px; border-radius: 999px;
  background: var(--green-soft); color: var(--green-deep);
  font-size: .8rem; font-weight: 700; letter-spacing: .03em;
}
.tag--orange { background: var(--yellow-soft); color: #8a6d00; }
.tag--ocean  { background: #D6F0F7; color: var(--ocean-deep); }
.disclaimer {
  font-size: .85rem; color: var(--muted); padding: 14px;
  background: #F7F8F7; border-radius: var(--radius-sm); border: 1px dashed var(--line);
}

/* Lead paragraph */
.lead { font-size: 1.15rem; color: var(--muted); }

/* ----- Contact form ----------------------------------------------------- */
.form { max-width: 640px; margin: 0 auto; }
.form-field { margin-bottom: 18px; }
.form-field label {
  display: block; font-weight: 700; font-size: .85rem;
  margin-bottom: 8px; color: var(--green-deep);
  letter-spacing: .04em; text-transform: uppercase;
}
.form-field input, .form-field textarea, .form-field select {
  width: 100%; padding: 12px 14px;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  font-family: var(--font-sans);
  font-size: 1rem;
  background: var(--white);
  color: var(--ink);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus {
  outline: none;
  border-color: var(--green-mid);
  box-shadow: 0 0 0 3px rgba(0, 156, 59, 0.18);
}
.form-field textarea { resize: vertical; min-height: 160px; line-height: 1.5; }
.form-honeypot { position: absolute; left: -9999px; opacity: 0; pointer-events: none; }
.form-status {
  padding: 14px 18px; border-radius: 10px; margin-bottom: 20px;
  display: none;
}
.form-status.is-success {
  display: block; background: var(--green-soft);
  border-left: 4px solid var(--green-mid); color: var(--green-deep);
}
.form-status.is-error {
  display: block; background: #FEE2E2;
  border-left: 4px solid #DC2626; color: #991B1B;
}
.form-actions { margin-top: 8px; }
.form-actions .btn { padding: 14px 28px; }

/* ----- Email signup block -------------------------------------------------
   Inline newsletter capture used on the visa guide, checklist, and homepage.
   The form posts to Web3Forms by default — swap action/access_key when you
   migrate to a real ESP (ConvertKit, Beehiiv, Mailchimp, etc.).            */
.signup {
  background: linear-gradient(135deg, var(--green-soft) 0%, #FFF7E8 100%);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px 28px;
  margin: 36px 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-items: center;
}
@media (min-width: 720px) {
  .signup { grid-template-columns: 1.2fr 1fr; padding: 32px 36px; gap: 32px; }
}
.signup__copy h3 {
  margin: 0 0 6px;
  font-family: var(--font-serif);
  font-size: 1.45rem;
  color: var(--green-deep);
}
.signup__copy p { margin: 0; color: var(--ink); font-size: .95rem; line-height: 1.55; }
.signup__copy small { display: block; margin-top: 8px; color: var(--muted); font-size: .82rem; }

.signup__form { display: grid; grid-template-columns: 1fr; gap: 10px; }
@media (min-width: 480px) {
  .signup__form { grid-template-columns: 1fr auto; }
}
.signup__form input[type="email"] {
  padding: 12px 16px;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  font-size: 1rem;
  font-family: inherit;
  background: var(--white);
  color: var(--ink);
}
.signup__form input[type="email"]:focus {
  outline: none;
  border-color: var(--green-mid);
  box-shadow: 0 0 0 3px rgba(0,156,59,.15);
}
.signup__form button {
  padding: 12px 22px;
  border: 0;
  background: var(--green-deep);
  color: var(--white);
  font-weight: 700;
  font-size: .95rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background-color .15s ease, transform .15s ease;
}
.signup__form button:hover { background: var(--green-mid); transform: translateY(-1px); }
.signup__form .signup__status { grid-column: 1 / -1; font-size: .9rem; min-height: 1.2em; color: var(--green-deep); }
.signup__status.is-error { color: #B91C1C; }

/* ----- Tools-we-use section (homepage) — clean, accented ------------------ */
.section--tools {
  background:
    radial-gradient(900px 420px at 100% 0%, rgba(0, 156, 59, .06), transparent 60%),
    radial-gradient(700px 360px at 0% 100%, rgba(14, 59, 46, .05), transparent 60%),
    linear-gradient(180deg, #FAFAF7 0%, #F2EFE8 100%);
  position: relative;
  border-top: 3px solid var(--green-deep);
  border-bottom: 3px solid var(--green-deep);
}
.section--tools .card {
  background: var(--white);
  border: 1px solid rgba(14, 59, 46, .08);
  box-shadow: 0 6px 22px rgba(14, 59, 46, .10);
  transition: transform .15s ease, box-shadow .2s ease, border-color .15s ease;
}
.section--tools .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(14, 59, 46, .16);
  border-color: var(--green-mid);
}
/* Larger card headings — applies to every .card h3 across the site */
.card h3 {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: .4em 0 10px;
  color: var(--green-deep);
  line-height: 1.2;
}
@media (max-width: 540px) {
  .card h3 { font-size: 1.5rem; }
}

/* ----- SafetyWing affiliate promo (brand bar + banner + widget) ---------- */
.safetywing-promo {
  background: var(--green-soft);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  margin: 24px 0;
  overflow: hidden;
}
.safetywing-promo__brand {
  background: #000;
  padding: 14px 22px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.safetywing-promo__brand img {
  display: block;
  height: 28px;
  width: auto;
  max-width: 100%;
}
.safetywing-promo__cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  padding: 22px;
}
@media (min-width: 760px) {
  .safetywing-promo__cols {
    grid-template-columns: 280px 1fr;
    gap: 28px;
    padding: 28px;
  }
  .safetywing-promo__brand img { height: 32px; }
}
.safetywing-promo__banner {
  display: block;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(14, 59, 46, .12);
  transition: transform .15s ease, box-shadow .15s ease;
}
.safetywing-promo__banner:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(14, 59, 46, .18);
}
.safetywing-promo__banner img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  object-fit: cover;
}
.safetywing-promo__body { display: flex; flex-direction: column; justify-content: center; }

/* ----- Brazil regional map (per-city highlight) -------------------------- */
.brazil-map-wrap {
  display: flex; gap: 28px; align-items: center;
  background: var(--green-soft); border-radius: var(--radius);
  padding: 24px; margin: 24px 0 32px;
}
.brazil-map-wrap svg { flex-shrink: 0; max-width: 320px; height: auto; }
.brazil-map-wrap .legend h3 { margin: 0 0 8px; }
.brazil-map-wrap .legend p { margin: 0 0 10px; color: var(--muted); }
.brazil-map-wrap .legend .pill {
  display: inline-block; background: var(--green-mid); color: #fff;
  padding: 4px 12px; border-radius: 999px; font-size: .85rem; font-weight: 700;
}
@media (max-width: 700px) {
  .brazil-map-wrap { flex-direction: column; align-items: flex-start; }
  .brazil-map-wrap svg { max-width: 280px; }
}

.brazil-map .state {
  fill: #fff;
  stroke: #cfd9d3;
  stroke-width: 1.2;
  transition: fill .15s ease;
}
.brazil-map .state-label {
  font-family: var(--font-sans);
  font-size: 10px; font-weight: 700;
  fill: #5C6864; pointer-events: none;
  text-anchor: middle; dominant-baseline: central;
}
/* Region tints (soft) */
.brazil-map .region-N  { fill: #E8F4EC; }
.brazil-map .region-NE { fill: #FFF4D6; }
.brazil-map .region-CW { fill: #F2EBDC; }
.brazil-map .region-SE { fill: #DFEEF7; }
.brazil-map .region-S  { fill: #ECE4F0; }
/* Active state — bright Brazilian yellow with deep-green border */
.brazil-map .state.active {
  fill: var(--yellow);
  stroke: var(--green-deep);
  stroke-width: 2;
}
.brazil-map .state.active + .state-label,
.brazil-map .state-label.active { fill: #fff; }

/* The print header is hidden on screen */
.checklist-print-header { display: none; }

/* ============================================================================
   On-screen rendering for the new editorial phase headings + references —
   sensible defaults so the live page still looks polished while the print
   stylesheet handles the editorial PDF layout.
   ============================================================================ */
h2.phase {
  display: flex; flex-direction: column; gap: 4px;
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  color: var(--brazil-selva); line-height: 1.1;
  letter-spacing: -.015em;
}
h2.phase .phase__kicker {
  display: inline-block;
  font-family: var(--font-sans); font-weight: 700;
  font-size: .72rem; letter-spacing: .22em;
  color: var(--brazil-verde); text-transform: uppercase;
}
h2.phase .phase__title em {
  font-style: italic; color: var(--brazil-verde); font-weight: 500;
}
h3.ref-h3 {
  font-family: var(--font-serif); font-weight: 600;
  font-size: 1.4rem; color: var(--brazil-selva);
  line-height: 1.25; letter-spacing: -.005em;
  margin: 32px 0 12px;
}
h3.ref-h3 em { font-style: italic; color: var(--brazil-verde); font-weight: 500; }
h3.ref-h3 .ref-h3__num {
  display: inline-block; margin-right: 6px;
  font-family: var(--font-serif); font-style: italic;
  color: var(--brazil-verde); font-weight: 500;
}

/* The print-only cover page is hidden on screen */
.checklist-cover { display: none; }

/* ============================================================================
   Checklist — sticky progress bar + print cover page
   The bar pins itself just below the site nav once the user scrolls past
   the postcard hero. The cover page is hidden on screen and becomes p.1
   of the saved PDF.
   ============================================================================ */
.nb-progress {
  /* Sticks just below the site-header — which is also position:sticky / top:0.
     We use top:97px (logo 68 + 14 top + 14 bottom + 1 border ≈ 97). On mobile,
     the nav collapses but stays around the same vertical footprint. */
  position: sticky; top: 97px; z-index: 30;
  background: #fff;
  border-bottom: 1px solid rgba(11,46,32,.10);
  box-shadow: 0 4px 16px rgba(11,46,32,.06);
  margin-top: -1px; /* fold into the header's bottom border */
}
@media (max-width: 720px) {
  .nb-progress { top: 88px; }
}

/* Tighten the gap between the sticky progress bar and the first phase title.
   The default .section { padding: 72px 0 } was creating ~120px of dead space
   above "Week 1" because the inline H2 also has margin-top:48px. */
.nb-progress + .section { padding-top: 28px; }
.nb-progress + .section .container > h2.phase:first-of-type { margin-top: 0 !important; }
.nb-progress::before {
  content: ""; display: block; height: 3px;
  background: linear-gradient(90deg,
    var(--brazil-ouro) 33%,
    var(--brazil-verde) 33% 66%,
    var(--brazil-cobalto) 66%);
}
.nb-progress__inner {
  max-width: 880px; margin: 0 auto;
  padding: 14px 24px 16px;
}
.nb-progress__track {
  height: 8px; background: var(--brazil-areia);
  border-radius: 999px; overflow: hidden; margin-bottom: 10px;
}
.nb-progress__fill {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--brazil-verde), var(--brazil-ouro));
  border-radius: 999px;
  transition: width .25s ease;
}
.nb-progress__meta {
  display: flex; justify-content: space-between;
  align-items: center; gap: 12px; flex-wrap: wrap;
  font-family: var(--font-sans); font-size: .9rem;
  color: var(--brazil-selva);
}
.nb-progress__actions {
  display: flex; gap: 8px; flex-wrap: wrap;
}
.nb-progress__btn {
  padding: 7px 14px !important;
  font-size: .82rem !important;
  border-radius: 999px;
}
@media (max-width: 720px) {
  .nb-progress__inner { padding: 12px 16px 14px; }
  .nb-progress__meta { font-size: .82rem; }
  .nb-progress__btn { padding: 6px 12px !important; font-size: .75rem !important; }
}

/* ============================================================================
   Editorial print mode — modeled on Nomade Italia's printable PDF.
   Branded cover page, big serif numerals on phase pages, kicker + accented
   italic title pattern. Uses Brazilian palette for accents.
   ============================================================================ */
@media print {
  /* Reset: counters for phases (CSS counter renders "01", "02"…) and
     references ("i.", "ii."…). */
  body { counter-reset: phase ref; }

  /* Running header + footer on every page except the cover */
  @page {
    margin: 0.85in 0.7in 0.85in;
    @top-center {
      content: "Brazilian Digital Nomad Visa Checklist — 30 Steps";
      font-family: 'Inter', sans-serif;
      font-size: 8.5pt;
      color: #6B7570;
      margin-top: 0.4in;
    }
    @bottom-left {
      content: "BRAZILSDIGITALNOMADVISA.COM/CHECKLIST";
      font-family: 'Inter', sans-serif;
      font-size: 7.5pt;
      letter-spacing: .12em;
      color: #6B7570;
    }
    @bottom-right {
      content: counter(page) "/" counter(pages);
      font-family: 'Inter', sans-serif;
      font-size: 7.5pt;
      color: #6B7570;
    }
  }
  /* The cover is its own page — no header/footer there. */
  @page :first {
    margin: 0.6in 0.7in;
    @top-center { content: ""; }
    @bottom-left { content: ""; }
    @bottom-right { content: ""; }
  }

  /* Hide the on-screen sticky bar + postcard hero in print */
  .nb-progress,
  .nb-pageHero,
  .nb-flag { display: none !important; }

  /* ========== Cover page ========== */
  .checklist-cover {
    display: block !important;
    page-break-after: always; break-after: page;
    color: #0E3B2E;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .checklist-cover__inner {
    padding: 0.4in 0;
    max-width: 6.4in;
  }

  /* Site logo at the top of the cover */
  .checklist-cover__logo {
    display: block;
    width: 3.4in; height: auto;
    margin: 0 0 1.1in;
  }

  /* Big editorial title with italic accent */
  .checklist-cover__title {
    font-family: 'Fraunces', serif; font-weight: 600;
    font-size: 32pt; line-height: 1.1; letter-spacing: -.015em;
    color: #0E3B2E; margin: 0 0 0.45in;
    max-width: 5.6in;
  }
  .checklist-cover__title em {
    font-style: italic; font-weight: 500;
    color: #009C3B; /* brazilian flag green */
  }

  /* Body paragraphs */
  .checklist-cover__body p {
    font-family: 'Inter', sans-serif;
    font-size: 10.5pt; line-height: 1.65; color: #1F2925;
    margin: 0 0 14pt;
    max-width: 5.4in;
  }
  .checklist-cover__body p em {
    font-style: italic; color: #0E3B2E; font-weight: 500;
  }
  .checklist-cover__body p strong { color: #0E3B2E; font-weight: 700; }

  /* Footer rule line */
  .checklist-cover__foot {
    margin-top: 0.7in; padding-top: 14pt;
    border-top: 0.5pt solid #C9D2CC;
    display: flex; justify-content: space-between; gap: 24pt;
    font-family: 'Inter', sans-serif;
    font-size: 7.5pt; letter-spacing: .12em;
    color: #6B7570;
  }

  /* ========== Phase pages ========== */
  /* Hide the on-screen container chrome */
  body { background: #fff !important; color: #0E3B2E !important;
    font-family: 'Inter', sans-serif; }
  .site-header, .site-footer, .signup, .disclaimer,
  .safetywing-price-widget, .no-print, iframe, script {
    display: none !important;
  }
  .section { padding: 0 !important; }
  .container { max-width: 100% !important; padding: 0 !important; }
  .checklist-pagebreak { display: block; }

  /* Phase H2 — kicker + big accented serif title with auto-numbering on the left */
  h2.phase {
    counter-increment: phase;
    page-break-before: always; break-before: page;
    page-break-after: avoid;
    margin: 0 0 24pt; padding: 0;
    display: grid;
    grid-template-columns: 1.1in 1fr;
    grid-template-areas:
      "num kicker"
      "num title";
    column-gap: 18pt; row-gap: 4pt;
    align-items: start;
  }
  h2.phase:first-of-type { page-break-before: avoid; break-before: avoid; }
  /* Skip auto-numbering on the references heading; use single-col layout */
  h2.phase--ref {
    counter-increment: none;
    grid-template-columns: 1fr;
    grid-template-areas: "kicker" "title";
  }
  /* References kicker takes the brazilian-green accent so it pops against body text */
  h2.phase--ref .phase__kicker { color: #009C3B; }
  h2.phase::before {
    grid-area: num;
    content: counter(phase, decimal-leading-zero) ".";
    font-family: 'Fraunces', serif; font-weight: 600;
    font-size: 56pt; line-height: .85; color: #0E3B2E;
    letter-spacing: -.03em;
    align-self: end;
  }
  h2.phase--ref::before { content: ""; }
  h2.phase .phase__kicker {
    grid-area: kicker;
    display: block; align-self: end;
    font-family: 'Inter', sans-serif; font-weight: 700;
    font-size: 8.5pt; letter-spacing: .22em;
    color: #4A5650; text-transform: uppercase;
  }
  h2.phase .phase__title {
    grid-area: title;
    display: block;
    font-family: 'Fraunces', serif; font-weight: 600;
    font-size: 26pt; line-height: 1.05; letter-spacing: -.015em;
    color: #0E3B2E;
    margin-top: 6pt;
  }
  h2.phase .phase__title em {
    font-style: italic; font-weight: 500;
    color: #009C3B; /* brazilian flag green */
  }

  /* ========== Reference H3 — italic numeral marker + accented title ========== */
  h3.ref-h3 {
    counter-increment: ref;
    page-break-after: avoid;
    margin: 24pt 0 10pt;
    font-family: 'Fraunces', serif; font-weight: 600;
    font-size: 18pt; color: #0E3B2E;
    line-height: 1.2; letter-spacing: -.005em;
  }
  h3.ref-h3 em { font-style: italic; font-weight: 500; color: #009C3B; }
  h3.ref-h3 .ref-h3__num {
    display: block;
    font-family: 'Fraunces', serif; font-style: italic;
    font-size: 14pt; color: #009C3B; font-weight: 500;
    margin: 0 0 4pt;
  }

  /* ========== Checklist items ========== */
  .checklist {
    list-style: none; padding: 0 !important; margin: 0;
  }
  .checklist li {
    page-break-inside: avoid; break-inside: avoid;
    margin: 0 0 14pt; padding: 0 0 0 26pt;
    position: relative;
    border: 0 !important; background: transparent !important;
  }
  .checklist input[type="checkbox"] {
    -webkit-appearance: none; appearance: none;
    position: absolute; left: 0; top: 1.5pt;
    width: 13pt; height: 13pt;
    border: 1pt solid #0E3B2E !important;
    border-radius: 2pt;
    background: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .checklist input[type="checkbox"]:checked {
    background: #009C3B !important;
    border-color: #009C3B !important;
  }
  .checklist input[type="checkbox"]:checked::after {
    content: ""; position: absolute;
    left: 3.5pt; top: 0.5pt;
    width: 4pt; height: 8pt;
    border: solid #fff;
    border-width: 0 1.5pt 1.5pt 0;
    transform: rotate(45deg);
  }
  /* Strike-through label on checked items so the printout reflects progress */
  .checklist li:has(input:checked) .checklist__label,
  .checklist li:has(input:checked) .checklist__desc {
    text-decoration: line-through;
    color: #6B7570;
  }
  .checklist label { display: block; cursor: default; }
  .checklist__label {
    display: block; font-family: 'Inter', sans-serif;
    font-weight: 700; font-size: 11pt;
    color: #0E3B2E; margin-bottom: 3pt;
  }
  .checklist__desc {
    display: block; font-family: 'Inter', sans-serif;
    font-size: 10pt; line-height: 1.55; color: #1F2925;
  }
  .checklist__desc em { font-style: italic; }
  .checklist__desc strong { color: #0E3B2E; }

  /* Hide the inline "Open …" buttons inside checklist items */
  .checklist .btn { display: none !important; }
  /* Hide the inline tag pill in print */
  .checklist .tag { display: none !important; }

  /* ========== References (background check / apostille / translation) ========== */
  .callout {
    background: transparent !important; border: 0 !important;
    padding: 0 !important; margin: 0 0 14pt !important;
    page-break-inside: avoid; break-inside: avoid;
  }
  .callout > p:first-child {
    font-family: 'Inter', sans-serif; font-size: 9.5pt;
    color: #4A5650; line-height: 1.55; margin: 0 0 10pt;
  }
  .grid--2 {
    display: grid !important;
    grid-template-columns: 1fr 1fr; gap: 18pt 28pt;
  }
  .grid--2 > div {
    page-break-inside: avoid; break-inside: avoid;
    font-family: 'Inter', sans-serif;
  }
  .grid--2 > div > p:first-child strong {
    font-family: 'Inter', sans-serif; font-weight: 700;
    font-size: 10.5pt; color: #0E3B2E;
  }
  .grid--2 > div p {
    font-family: 'Inter', sans-serif;
    font-size: 9.5pt; line-height: 1.55; color: #1F2925;
    margin: 0 0 6pt;
  }
  .grid--2 > div ul {
    font-family: 'Inter', sans-serif;
    font-size: 9pt; line-height: 1.55; color: #1F2925;
    padding-left: 1.1em; margin: 4pt 0 0;
  }

  /* "Done!" callout becomes a small italic note */
  .container > .callout--green:not(.no-print) {
    margin: 18pt 0 !important;
    padding: 12pt 16pt !important;
    border-left: 2pt solid #009C3B !important;
    background: #F4EFE6 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    font-family: 'Inter', sans-serif; font-size: 10pt;
    color: #0E3B2E !important;
  }

  /* Show URLs after external links so the printed copy is useful offline */
  .checklist a[href^="http"]::after,
  .callout a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 8pt; color: #6B7570;
    word-break: break-all;
    font-family: 'Inter', sans-serif; font-weight: 400;
  }
  /* Suppress URL print-out for in-page anchors */
  .checklist a[href^="#"]::after { content: ""; }

  /* Link styling */
  a, a:visited {
    color: #002776 !important;
    text-decoration: underline;
    text-decoration-color: rgba(0,39,118,.4);
  }

  /* The on-screen "Reference — official authorities" intro paragraph */
  .container > p {
    font-family: 'Inter', sans-serif; font-size: 10pt;
    color: #4A5650; line-height: 1.55;
    max-width: 5.4in; margin: 0 0 18pt;
  }

  /* Remove the dotted divider used between reference and main checklist */
  .checklist-pagebreak { page-break-before: always; break-before: page; }
}

/* ============================================================================
   Nômade Brasil — postcard / diary component layer (reusable across pages)
   Use any .nb-* class on any page. They share the brand color tokens.
   ============================================================================ */

/* Bring in handwriting font family + paper tints */
:root {
  --hand:    'Caveat', cursive;
  --paper:   var(--brazil-areia);              /* #F4EFE6 */
  --paper-2: #EAE2CF;
  --paper-3: #FFF9EE;
}

/* Tri-color flag ribbon (top + bottom of pages) */
.nb-flag { display: flex; height: 4px; }
.nb-flag span:nth-child(1) { flex: 1; background: var(--brazil-ouro); }
.nb-flag span:nth-child(2) { flex: 1; background: var(--brazil-verde); }
.nb-flag span:nth-child(3) { flex: 1; background: var(--brazil-cobalto); }

/* Section heading w/ handwritten kicker + serif title + muted sub */
.nb-shead {
  max-width: 1240px; margin: 0 auto;
  padding: 0 32px 32px; text-align: center;
}
.nb-shead--top { padding-top: 80px; }
.nb-shead__hand {
  font-family: var(--hand); font-size: 2rem; color: var(--brazil-verde);
  margin: 0; transform: rotate(-1deg); display: inline-block; font-weight: 500;
}
.nb-shead__title {
  font-family: var(--font-serif); font-size: clamp(2.2rem, 4vw, 3.4rem);
  font-weight: 500; color: var(--brazil-selva); margin: 6px 0 14px;
  letter-spacing: -.02em; line-height: 1.05;
  font-variation-settings: "SOFT" 50;
}
.nb-shead__title em { color: var(--brazil-verde); font-style: italic; }
.nb-shead__sub { color: var(--brazil-muted); max-width: 580px; margin: 0 auto; font-size: 1.05rem; }

/* Postcard-style hero (no big background photo) — kicker + h1 + sub + CTAs */
.nb-pageHero {
  background: var(--paper);
  background-image:
    radial-gradient(circle at 12% 18%, rgba(11,46,32,.04), transparent 20%),
    radial-gradient(circle at 88% 70%, rgba(255,223,0,.06), transparent 25%);
  padding: 64px 0 64px;
}
/* Variant with a real photo background — dark overlay + white text so the
   image stays visible while the headline + lead read cleanly on top. */
.nb-pageHero--photo {
  position: relative; isolation: isolate;
  background-color: var(--brazil-selva);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 96px 0 88px;
}
.nb-pageHero--photo::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: rgba(0, 0, 0, 0.7);
}
.nb-pageHero--photo .nb-pageHero__hand {
  color: var(--brazil-verde);
  font-size: 2rem;
}
.nb-pageHero--photo .nb-pageHero__h1 { color: #ffffff; }
.nb-pageHero--photo .nb-pageHero__h1 em { color: var(--brazil-verde); }
.nb-pageHero--photo .nb-pageHero__h1 .underline::after { background: var(--brazil-verde); }
.nb-pageHero--photo .nb-pageHero__sub { color: rgba(255, 255, 255, 0.92); }
/* The colon span on city H1s was inline-styled to selva — override to white */
.nb-pageHero--photo .nb-pageHero__h1 span[style] { color: #ffffff !important; }
/* Buttons need a touch more contrast against dark backgrounds */
.nb-pageHero--photo .btn--ghost {
  background: transparent; color: #ffffff; border-color: #ffffff;
}
.nb-pageHero--photo .btn--ghost:hover {
  background: #ffffff; color: var(--brazil-selva);
}
.nb-pageHero__inner {
  max-width: 1080px; margin: 0 auto; padding: 0 32px;
  text-align: center;
}
.nb-pageHero__hand {
  font-family: var(--hand); font-size: 1.7rem; color: var(--brazil-verde);
  display: inline-block; margin: 0 0 10px; transform: rotate(-1deg);
  font-weight: 500;
}
.nb-pageHero__h1 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(2.6rem, 5.5vw, 4.6rem);
  line-height: 1; letter-spacing: -.02em;
  margin: 0 0 22px; color: var(--brazil-selva);
  font-variation-settings: "SOFT" 50;
}
.nb-pageHero__h1 em { color: var(--brazil-verde); font-style: italic; }
.nb-pageHero__h1 .underline { position: relative; display: inline-block; }
.nb-pageHero__h1 .underline::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -4px;
  height: 8px; background: var(--brazil-ouro);
  border-radius: 6px; z-index: -1; opacity: .8;
}
.nb-pageHero__sub {
  font-size: 1.18rem; line-height: 1.55; color: var(--ink);
  margin: 0 auto; max-width: 680px;
}
.nb-pageHero__ctas {
  display: flex; gap: 14px; flex-wrap: wrap; justify-content: center;
  margin-top: 28px;
}

/* Diary-style FAQ accordion */
.nb-faq {
  max-width: 920px; margin: 0 auto;
  padding: 80px 32px;
}
.nb-faq__list { display: flex; flex-direction: column; gap: 16px; }
.nb-faq__item {
  background: var(--paper-3); border-radius: 4px;
  box-shadow: 0 6px 20px rgba(11,46,32,.06);
  border-left: 4px solid var(--brazil-ouro);
  overflow: hidden;
  transition: box-shadow .2s ease;
}
.nb-faq__item[open] {
  box-shadow: 0 10px 28px rgba(11,46,32,.10);
  border-left-color: var(--brazil-verde);
}
.nb-faq__item summary {
  padding: 24px 28px; cursor: pointer;
  display: flex; align-items: center; gap: 18px;
  list-style: none;
  font-family: var(--font-serif); font-size: 1.18rem; font-weight: 600;
  color: var(--brazil-selva); line-height: 1.3;
}
.nb-faq__item summary::-webkit-details-marker { display: none; }
.nb-faq__num {
  font-family: var(--hand); font-size: 1.5rem; color: var(--brazil-verde);
  flex-shrink: 0; min-width: 36px; text-align: left; font-weight: 500;
}
.nb-faq__q { flex: 1; }
.nb-faq__caret {
  flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%;
  background: var(--brazil-areia);
  display: flex; align-items: center; justify-content: center;
  transition: transform .25s ease, background .2s ease;
  color: var(--brazil-selva); font-weight: 700;
}
.nb-faq__caret::before { content: "+"; font-size: 1.2rem; }
.nb-faq__item[open] .nb-faq__caret { transform: rotate(45deg); background: var(--brazil-ouro); }
.nb-faq__body {
  padding: 0 28px 24px 82px;
  color: var(--ink); line-height: 1.7; font-size: 1rem;
}
.nb-faq__body p { margin: 0 0 12px; }
.nb-faq__body p:last-child { margin-bottom: 0; }
.nb-faq__body a {
  color: var(--brazil-selva); font-weight: 600;
  border-bottom: 2px solid var(--brazil-ouro);
}
.nb-faq__footer {
  text-align: center; margin-top: 36px; color: var(--brazil-muted);
  font-family: var(--font-serif); font-style: italic;
}
.nb-faq__footer a {
  color: var(--brazil-selva); font-weight: 700; font-style: normal;
  border-bottom: 2px solid var(--brazil-ouro);
}

/* Vendor card (lawyers, agents, accountants) */
.nb-vendors-section { background: var(--paper); padding: 80px 0; position: relative; }
.nb-vendors-section::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--brazil-ouro) 33%, var(--brazil-verde) 33% 66%, var(--brazil-cobalto) 66%);
}
.nb-vendors {
  max-width: 1240px; margin: 0 auto; padding: 0 32px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
}
.nb-vendor {
  background: #fff; padding: 32px 28px;
  border-radius: 6px; position: relative;
  box-shadow: 0 10px 28px rgba(11,46,32,.08);
  transition: transform .25s ease, box-shadow .25s ease;
}
.nb-vendor:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(11,46,32,.14);
}
.nb-vendor__tag {
  display: inline-block;
  font-family: var(--font-sans); font-weight: 700; font-size: .7rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--brazil-verde); padding-bottom: 4px;
  border-bottom: 2px solid var(--brazil-ouro);
  margin-bottom: 16px;
}
.nb-vendor__name {
  font-family: var(--font-serif); font-size: 1.7rem; font-weight: 600;
  color: var(--brazil-selva); margin: 0 0 14px; line-height: 1;
  letter-spacing: -.01em;
}
.nb-vendor__body { color: var(--ink); margin: 0 0 18px; line-height: 1.6; font-size: .96rem; }
.nb-vendor__more {
  font-family: var(--font-sans); font-weight: 700; font-size: .85rem;
  color: var(--brazil-selva); letter-spacing: .04em;
  border-bottom: 2px solid var(--brazil-selva);
  padding-bottom: 2px; text-decoration: none;
  display: inline-flex; align-items: center; gap: 6px;
}
.nb-vendor__more::after { content: "→"; transition: transform .2s; }
.nb-vendor__more:hover::after { transform: translateX(4px); }

/* Polaroid card for city listings */
.nb-polaroid {
  background: #fff; padding: 14px 14px 56px;
  box-shadow: 0 14px 32px rgba(11,46,32,.12), 0 4px 10px rgba(11,46,32,.06);
  transition: transform .3s ease, box-shadow .3s ease;
  text-decoration: none; color: var(--ink); display: block;
}
.nb-polaroid:nth-child(3n+1) { transform: rotate(-1.2deg); }
.nb-polaroid:nth-child(3n+2) { transform: rotate(.8deg); }
.nb-polaroid:nth-child(3n+3) { transform: rotate(-.6deg); }
.nb-polaroid:hover {
  transform: rotate(0) translateY(-6px);
  box-shadow: 0 22px 48px rgba(11,46,32,.18);
  text-decoration: none;
}
.nb-polaroid img {
  width: 100%; aspect-ratio: 1; object-fit: cover; margin-bottom: 14px;
}
.nb-polaroid__name {
  font-family: var(--hand); font-size: 1.8rem; color: var(--brazil-selva);
  line-height: 1; margin: 0 0 4px;
}
.nb-polaroid__sub {
  font-family: var(--font-sans); font-size: .85rem; color: var(--brazil-muted);
  margin: 0;
}

/* Diary entry card (used for "field notes" sections) */
.nb-entry {
  background: var(--paper-3); padding: 36px;
  border-radius: 4px; position: relative;
  box-shadow: 0 8px 24px rgba(11,46,32,.06);
  border-left: 4px solid var(--brazil-ouro);
}
.nb-entry::before {
  content: "✦"; position: absolute; top: 14px; right: 18px;
  color: var(--brazil-ouro); font-size: 1.2rem;
}
.nb-entry__date { font-family: var(--hand); font-size: 1.3rem; color: var(--brazil-verde); margin: 0 0 4px; }
.nb-entry__title { font-family: var(--font-serif); font-size: 1.6rem; font-weight: 600; color: var(--brazil-selva); margin: 0 0 14px; line-height: 1.2; }
.nb-entry__body { color: var(--ink); margin: 0 0 14px; line-height: 1.65; }
.nb-entry__quote {
  font-family: var(--font-serif); font-style: italic; font-size: 1.1rem;
  color: var(--brazil-selva); margin: 18px 0 0;
  padding: 10px 16px; background: var(--paper-2); border-radius: 4px;
}

/* Confession stripe banner (deep green w/ flag-color borders) */
.nb-stripe {
  background: var(--brazil-selva); color: #fff;
  padding: 80px 32px; position: relative; overflow: hidden;
}
.nb-stripe::before, .nb-stripe::after {
  content: ""; position: absolute; left: -10%; right: -10%; height: 20px;
}
.nb-stripe::before { top: 0; background: linear-gradient(90deg, var(--brazil-ouro) 33%, var(--brazil-verde) 33% 66%, var(--brazil-cobalto) 66%); }
.nb-stripe::after  { bottom: 0; background: linear-gradient(90deg, var(--brazil-cobalto) 33%, var(--brazil-verde) 33% 66%, var(--brazil-ouro) 66%); }
.nb-stripe__inner { max-width: 1000px; margin: 0 auto; text-align: center; }
.nb-stripe__hand {
  font-family: var(--hand); font-size: 2rem; color: var(--brazil-ouro);
  margin: 0; transform: rotate(-1deg); display: inline-block; font-weight: 500;
}
.nb-stripe__title {
  font-family: var(--font-serif); font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 500; color: #fff; margin: 8px 0 24px;
  line-height: 1.1; letter-spacing: -.02em;
}
.nb-stripe__title em { color: var(--brazil-ouro); font-style: italic; }
.nb-stripe__body {
  font-size: 1.1rem; color: rgba(255,255,255,.85);
  margin: 0 auto 32px; max-width: 600px;
}

/* Final cream-paper CTA */
.nb-final { background: var(--paper-2); padding: 100px 32px; text-align: center; }
.nb-final__inner { max-width: 700px; margin: 0 auto; }
.nb-final__hand {
  font-family: var(--hand); font-size: 2.2rem; color: var(--brazil-verde);
  margin: 0; transform: rotate(-1deg); display: inline-block; font-weight: 500;
}
.nb-final__title {
  font-family: var(--font-serif); font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 500; color: var(--brazil-selva); line-height: 1.05;
  margin: 12px 0 20px; letter-spacing: -.02em;
}
.nb-final__title em { color: var(--brazil-verde); font-style: italic; }
.nb-final__sub { font-size: 1.15rem; color: var(--brazil-muted); margin: 0 0 36px; }

/* Long-form essay (sticky photo + drop-cap + pull quote + stat grid) */
.nb-longform {
  max-width: 1240px; margin: 0 auto;
  padding: 80px 32px;
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 64px;
  align-items: start;
}
.nb-longform__media { position: sticky; top: 32px; }
.nb-longform__media img {
  width: 100%; aspect-ratio: 4/5; object-fit: cover;
  border-radius: 4px; box-shadow: 0 14px 32px rgba(11,46,32,.12);
}
.nb-longform__media figcaption {
  font-family: var(--font-sans); font-size: .8rem;
  color: var(--brazil-muted); margin-top: 12px;
  letter-spacing: .04em; line-height: 1.5; font-style: italic;
}
.nb-longform__kicker {
  font-family: var(--font-sans); font-size: .78rem;
  letter-spacing: .25em; text-transform: uppercase;
  color: var(--brazil-verde); font-weight: 700;
  margin-bottom: 18px; display: inline-block;
  padding-bottom: 4px; border-bottom: 2px solid var(--brazil-ouro);
}
.nb-longform__title {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.05; letter-spacing: -.02em;
  color: var(--brazil-selva); margin: 0 0 24px;
  font-variation-settings: "SOFT" 50;
}
.nb-longform__body p {
  font-family: var(--font-serif); font-weight: 400;
  font-size: 1.14rem; line-height: 1.75; color: var(--ink);
  margin: 0 0 22px;
}
.nb-longform__body p strong { color: var(--brazil-selva); }
.nb-longform__pull {
  font-family: var(--font-serif); font-style: italic; font-weight: 500;
  font-size: 1.6rem; line-height: 1.35; color: var(--brazil-selva);
  border-left: 3px solid var(--brazil-ouro);
  padding: 8px 0 8px 24px; margin: 32px 0;
}

/* City / culture article — sidebar layout with sticky "At a glance" panel */
.nb-city {
  max-width: 1180px; margin: 0 auto;
  padding: 64px 32px 48px;
  display: grid; grid-template-columns: minmax(0, 1fr) 320px;
  gap: 56px; align-items: start;
}
.nb-city__main { min-width: 0; }
.nb-city__main > h2 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.7rem, 2.6vw, 2.2rem);
  color: var(--brazil-selva); letter-spacing: -.01em;
  margin: 2.2em 0 .6em; line-height: 1.15;
}
.nb-city__main > h2:first-child { margin-top: 0; }
.nb-city__main > h2 em { color: var(--brazil-verde); font-style: italic; }
.nb-city__main p {
  font-family: var(--font-serif); font-weight: 400;
  font-size: 1.1rem; line-height: 1.75; color: var(--ink);
  margin: 0 0 18px;
}
.nb-city__main p strong { color: var(--brazil-selva); }
.nb-city__main ul, .nb-city__main ol { padding-left: 1.3em; margin: 0 0 22px; }
.nb-city__main li {
  font-family: var(--font-serif); font-size: 1.05rem;
  line-height: 1.7; color: var(--ink); margin-bottom: 8px;
}
.nb-city__main li strong { color: var(--brazil-selva); }
.nb-city__main a {
  color: var(--brazil-selva); font-weight: 600;
  border-bottom: 2px solid var(--brazil-ouro);
  text-decoration: none;
  transition: background .2s ease;
}
.nb-city__main a:hover { background: rgba(255,223,0,.18); }
.nb-city__main figure { margin: 32px 0; }
.nb-city__main figure img {
  width: 100%; border-radius: 4px;
  box-shadow: 0 14px 32px rgba(11,46,32,.10);
}
.nb-city__main figure figcaption {
  font-family: var(--font-sans); font-size: .85rem;
  color: var(--brazil-muted); margin-top: 10px;
  font-style: italic; line-height: 1.55;
}
.nb-city__aside { position: sticky; top: 24px; }

/* "At a glance" stat panel (city sidebar) */
.nb-glance {
  background: var(--paper-3); padding: 28px 26px;
  border-radius: 4px; border-left: 4px solid var(--brazil-ouro);
  box-shadow: 0 8px 24px rgba(11,46,32,.06);
  position: relative;
}
.nb-glance::before {
  content: "✦"; position: absolute; top: 12px; right: 16px;
  color: var(--brazil-ouro); font-size: 1.1rem;
}
.nb-glance__hand {
  font-family: var(--hand); font-size: 1.5rem; color: var(--brazil-verde);
  margin: 0 0 4px; transform: rotate(-1deg); display: inline-block;
  font-weight: 500;
}
.nb-glance__title {
  font-family: var(--font-serif); font-weight: 600; font-size: 1.4rem;
  color: var(--brazil-selva); margin: 0 0 18px;
  border-bottom: 2px solid var(--brazil-ouro);
  padding-bottom: 10px; display: inline-block;
}
.nb-glance dl { margin: 0; display: grid; gap: 12px; }
.nb-glance dt {
  font-family: var(--font-sans); font-weight: 700; font-size: .72rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--brazil-verde); margin: 0;
}
.nb-glance dd {
  margin: 2px 0 0; font-family: var(--font-serif);
  font-size: 1.02rem; color: var(--brazil-selva); line-height: 1.4;
}
.nb-glance dd strong { font-weight: 600; }
.nb-glance__cta {
  display: block; margin-top: 22px; padding-top: 18px;
  border-top: 1px dashed rgba(11,46,32,.18);
  font-family: var(--font-sans); font-weight: 700; font-size: .82rem;
  letter-spacing: .04em; color: var(--brazil-selva);
  text-decoration: none;
}
.nb-glance__cta::after { content: " →"; transition: transform .2s; display: inline-block; }
.nb-glance__cta:hover::after { transform: translateX(4px); }

/* Culture / essay article — single column longform */
.nb-essay {
  max-width: 760px; margin: 0 auto; padding: 64px 24px 48px;
}
.nb-essay h2 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.7rem, 2.6vw, 2.2rem);
  color: var(--brazil-selva); letter-spacing: -.01em;
  margin: 2.4em 0 .6em; line-height: 1.15;
}
.nb-essay h2:first-child { margin-top: 0; }
.nb-essay h2 em { color: var(--brazil-verde); font-style: italic; }
.nb-essay h3 {
  font-family: var(--font-serif); font-weight: 600;
  font-size: 1.3rem; color: var(--brazil-selva);
  margin: 2em 0 .4em;
}
.nb-essay p {
  font-family: var(--font-serif); font-weight: 400;
  font-size: 1.12rem; line-height: 1.8; color: var(--ink);
  margin: 0 0 22px;
}
.nb-essay p strong { color: var(--brazil-selva); }
.nb-essay ul, .nb-essay ol { padding-left: 1.3em; margin: 0 0 22px; }
.nb-essay li {
  font-family: var(--font-serif); font-size: 1.05rem;
  line-height: 1.75; color: var(--ink); margin-bottom: 8px;
}
.nb-essay li strong { color: var(--brazil-selva); }
.nb-essay a {
  color: var(--brazil-selva); font-weight: 600;
  border-bottom: 2px solid var(--brazil-ouro);
  text-decoration: none;
  transition: background .2s ease;
}
.nb-essay a:hover { background: rgba(255,223,0,.18); }
.nb-essay figure { margin: 32px 0; }
.nb-essay figure img {
  width: 100%; border-radius: 4px;
  box-shadow: 0 14px 32px rgba(11,46,32,.10);
}
.nb-essay figure figcaption {
  font-family: var(--font-sans); font-size: .85rem;
  color: var(--brazil-muted); margin-top: 10px;
  font-style: italic; line-height: 1.55;
}
.nb-essay .grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
  margin: 24px 0;
}
.nb-essay .grid--2 { grid-template-columns: 1fr 1fr; }

/* "Up next" / further reading callout (city + culture pages) */
.nb-upnext {
  margin: 48px 0 0; padding: 28px 32px;
  background: var(--paper); border-radius: 4px;
  border-left: 4px solid var(--brazil-verde);
  font-family: var(--font-serif); font-size: 1.05rem;
  color: var(--brazil-selva); line-height: 1.6;
}
.nb-upnext strong {
  font-family: var(--hand); font-weight: 500; font-size: 1.4rem;
  color: var(--brazil-verde); display: inline-block; margin-right: 8px;
}
.nb-upnext a {
  color: var(--brazil-selva); font-weight: 600;
  border-bottom: 2px solid var(--brazil-ouro); text-decoration: none;
}

/* Mobile breakpoint */
@media (max-width: 880px) {
  .nb-shead { padding: 0 20px 24px; }
  .nb-shead--top { padding-top: 56px; }
  .nb-pageHero { padding: 48px 0; }
  .nb-pageHero__inner { padding: 0 20px; }
  .nb-faq { padding: 56px 20px; }
  .nb-faq__item summary { padding: 18px 20px; gap: 14px; font-size: 1.05rem; }
  .nb-faq__body { padding: 0 20px 20px 64px; }
  .nb-vendors-section { padding: 56px 0; }
  .nb-vendors { grid-template-columns: 1fr; gap: 18px; padding: 0 20px; }
  .nb-stripe { padding: 56px 20px; }
  .nb-final { padding: 64px 20px; }
  .nb-longform { grid-template-columns: 1fr; gap: 36px; padding: 56px 20px; }
  .nb-longform__media { position: static; }
  .nb-polaroid:nth-child(n) { transform: rotate(0); }
  .nb-city { grid-template-columns: 1fr; gap: 32px; padding: 40px 20px; }
  .nb-city__aside { position: static; order: -1; }
}

/* ============================================================================
   GDPR / ePrivacy / LGPD cookie consent banner
   Brazilian flag green Accept button; navy panel; gold underline links.
   Wires up to the script in assets/script.js — no per-page wiring needed.
   ============================================================================ */
#nm-cookie-banner {
  position: fixed;
  left: 16px; right: 16px; bottom: 16px;
  max-width: 1080px;
  margin: 0 auto;
  background: var(--brazil-selva, #0E3B2E);
  color: #F7F4E8;
  border-radius: 6px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
  padding: 18px 22px;
  z-index: 9999;
  animation: nm-cookie-rise .35s ease-out;
  font-family: var(--font-sans, 'Inter'), sans-serif;
}
@keyframes nm-cookie-rise {
  from { transform: translateY(24px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
#nm-cookie-banner.is-dismissed {
  transform: translateY(24px); opacity: 0;
  transition: transform .25s ease-in, opacity .25s ease-in;
}
.nm-cookie-banner__inner {
  display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
}
.nm-cookie-banner__copy {
  margin: 0; flex: 1 1 380px;
  font-size: .92rem; line-height: 1.55; color: #E7EDF3;
}
.nm-cookie-banner__copy a {
  color: var(--brazil-ouro, #FFDF00);
  text-decoration: underline; text-underline-offset: 2px;
}
.nm-cookie-banner__copy a:hover { color: #fff; }
.nm-cookie-banner__buttons { display: flex; gap: 10px; flex: none; }
.nm-cookie-banner__btn {
  display: inline-block; padding: 10px 18px;
  font-family: inherit;
  font-size: .76rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  border-radius: 3px; cursor: pointer;
  border: 1.5px solid transparent;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
  text-decoration: none !important;
}
.nm-cookie-banner__btn--decline {
  background: transparent; color: #E7EDF3;
  border-color: rgba(231, 237, 243, 0.45);
}
.nm-cookie-banner__btn--decline:hover {
  border-color: #E7EDF3; background: rgba(255, 255, 255, 0.06);
}
.nm-cookie-banner__btn--accept {
  background: var(--brazil-verde, #009C3B); color: #fff;
  border-color: var(--brazil-verde, #009C3B);
}
.nm-cookie-banner__btn--accept:hover {
  background: #007A2E; border-color: #007A2E;
}
@media (max-width: 720px) {
  #nm-cookie-banner { left: 8px; right: 8px; bottom: 8px; padding: 16px 18px; }
  .nm-cookie-banner__inner { gap: 14px; }
  .nm-cookie-banner__copy { font-size: .88rem; flex-basis: 100%; }
  .nm-cookie-banner__buttons { width: 100%; }
  .nm-cookie-banner__btn { flex: 1; text-align: center; padding: 12px 14px; }
}
@media print {
  #nm-cookie-banner { display: none !important; }
}

/* ============================================================================
   Spain-style checklist PDF cover — overrides earlier .checklist-cover print
   rules so page 1 matches the Spain reference. Phase pages keep the existing
   Wave 6 editorial design.
   ============================================================================ */
@media print {
  .checklist-cover {
    display: block !important;
    text-align: center !important;
    page-break-after: always !important;
    break-after: page !important;
    background: #fff !important;
    color: #000 !important;
  }
  .checklist-cover::before { display: none !important; }
  .checklist-cover__inner {
    padding: 2.6in 0 0 !important;
    max-width: 6.2in !important;
    margin: 0 auto !important;
  }
  .checklist-cover__logo {
    height: 78px !important; width: auto !important;
    margin: 0 auto 44px !important; display: block !important;
  }
  .checklist-cover__headline {
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: 2.4rem !important;
    font-weight: 700 !important;
    color: #000 !important;
    line-height: 1.12 !important;
    letter-spacing: -0.015em !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
  }
  .checklist-cover__headline em {
    display: block !important;
    font-style: italic !important;
    font-weight: 700 !important;
    color: #009C3B !important;   /* Brazilian flag verde — accent on "Application Checklist" */
    margin-top: 2px !important;
  }
  .checklist-cover__tagline {
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
    font-size: 1rem !important;
    color: #4a4a4a !important;
    margin: 0 0 70px !important;
    line-height: 1.5 !important;
  }
  .checklist-cover__stamp {
    font-family: 'Inter', sans-serif !important;
    font-size: .72rem !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    color: #5C6470 !important;
    font-weight: 700 !important;
    margin: 0 0 22px !important;
    line-height: 1.6 !important;
  }
  .checklist-cover__stamp span { display: inline-block !important; }
  .checklist-cover__disclaimer {
    font-family: 'Inter', sans-serif !important;
    font-size: .82rem !important;
    color: #4a4a4a !important;
    line-height: 1.55 !important;
    margin: 0 auto !important;
    max-width: 5in !important;
  }
}

/* ============================================================================
   FEATURED LISTING CARD — gold ribbon + navy logo + green CTA
   Used at the top of the Immigration Lawyers category on resources.html.
   ============================================================================ */
.feat-card {
  background: #fff;
  border: 1px solid #E8E0CC;
  border-radius: 6px;
  box-shadow: 0 16px 40px rgba(11, 37, 69, 0.10);
  overflow: hidden;
  margin-bottom: 36px;
}
.feat-card__ribbon {
  background: linear-gradient(95deg, #FFDF00 0%, #FFE94D 50%, #FFDF00 100%);
  color: #0B2545;
  padding: 11px 22px;
  font-family: 'Inter', sans-serif;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .26em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 2px solid #D4B800;
}
.feat-card__ribbon::before {
  content: '★';
  color: #009C3B;
  font-size: 1.1rem;
  line-height: 1;
}
.feat-card__inner {
  padding: 28px 30px 26px;
  border-left: 4px solid #FFDF00;
}
.feat-card__brand {
  display: flex;
  align-items: center;
  gap: 18px;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid #EFE9DA;
}
.feat-card__logo {
  width: 80px; height: 80px;
  flex: none;
  border-radius: 4px;
  background: linear-gradient(135deg, #0B2545 0%, #1A3B6E 100%);
  color: #FFDF00;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-size: 2rem;
  letter-spacing: -0.02em;
  box-shadow: 0 2px 6px rgba(11,37,69,0.15);
  border: 1px solid rgba(255,223,0,0.4);
}
.feat-card__brand-text { flex: 1; min-width: 0; }
.feat-card__brand-text h3 {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-size: 1.6rem;
  color: #0B2545;
  margin: 0 0 6px;
  font-weight: 600;
  line-height: 1.2;
}
.feat-card__tag-row { display: flex; gap: 8px; flex-wrap: wrap; }
.feat-card__tag {
  background: #F7F4E8;
  color: #0B2545;
  border: 1px solid #E8E0CC;
  padding: 3px 10px;
  font-family: 'Inter', sans-serif;
  font-size: .66rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  border-radius: 999px;
}
.feat-card__body p {
  color: #2c3540;
  line-height: 1.6;
  font-size: .98rem;
  margin: 0 0 10px;
}
.feat-card__body strong { color: #0B2545; font-weight: 600; }
.feat-card__cta {
  display: inline-block;
  margin-top: 8px;
  background: #009C3B;
  color: #fff;
  padding: 11px 22px;
  font-family: 'Inter', sans-serif;
  font-size: .82rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  text-decoration: none !important;
  border-radius: 3px;
  transition: background .15s ease;
}
.feat-card__cta:hover,
.feat-card__cta:focus,
.feat-card__cta:active { background: #007A2E; text-decoration: none !important; }

/* Embedded case study — sits INSIDE the Featured Listing card after the CTA */
.feat-card__case-study {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px dashed #E8E0CC;
}
.feat-card__case-study-eyebrow {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: .68rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 700;
  color: #009C3B;
  margin-bottom: 10px;
}
.feat-card__case-study-eyebrow em {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 500;
  color: #0B2545;
  font-size: 1rem;
  margin-right: 6px;
  letter-spacing: 0;
  text-transform: none;
}
.feat-card__case-study-title {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-size: 1.15rem;
  line-height: 1.3;
  color: #0B2545;
  margin: 0 0 8px;
  font-weight: 600;
}
.feat-card__case-study-title em {
  color: #009C3B;
  font-style: italic;
  font-weight: 500;
}
.feat-card__case-study-quote {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-size: .92rem;
  color: #0B2545;
  border-left: 3px solid #009C3B;
  padding: 2px 0 2px 12px;
  margin: 0 0 10px;
  line-height: 1.45;
}
.feat-card__case-study-readmore { margin: 0; }
.feat-card__case-study-readmore a {
  font-family: 'Inter', sans-serif;
  font-size: .82rem;
  font-weight: 700;
  color: #009C3B;
  text-decoration: none;
  letter-spacing: .04em;
  border-bottom: 1px solid #009C3B;
  padding-bottom: 1px;
  transition: color .15s ease, border-color .15s ease;
}
.feat-card__case-study-readmore a:hover {
  color: #007A2E;
  border-bottom-color: #007A2E;
  text-decoration: none;
}

/* Mobile polish */
@media (max-width: 720px) {
  .feat-card__inner { padding: 22px 22px 20px; }
  .feat-card__brand { gap: 14px; }
  .feat-card__logo { width: 64px; height: 64px; font-size: 1.6rem; }
  .feat-card__brand-text h3 { font-size: 1.3rem; }
  .feat-card__ribbon { font-size: .68rem; letter-spacing: .18em; padding: 9px 16px; }
}
@media (max-width: 540px) {
  .feat-card__brand { flex-direction: column; align-items: flex-start; }
}
