/* Brazil Travel Guide — light theme */
:root{
  --green-800:#0a5a32; --green-700:#0b6b3a; --green-600:#12844a; --green-100:#dcefe2; --green-50:#eef7f0;
  --sun-500:#f6c915; --sun-200:#fbe7a0; --sun-50:#fff9e6;
  --blue-700:#1d3f8f; --blue-50:#eef2fb;
  --ink:#1f2a24; --ink-soft:#4a5a50; --muted:#6c7a71;
  --bg:#fbfaf5; --paper:#ffffff; --sand:#f4f0e4; --line:#e4e0d2;
  --radius:16px; --radius-sm:10px;
  --shadow:0 1px 2px rgba(31,42,36,.06),0 8px 24px rgba(31,42,36,.07);
  --shadow-lg:0 2px 4px rgba(31,42,36,.06),0 18px 40px rgba(31,42,36,.12);
  --font-head:"Fraunces",Georgia,"Times New Roman",serif;
  --font-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --wrap:1200px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1.075rem;line-height:1.7}
img{max-width:100%;height:auto}
a{color:var(--green-700);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--blue-700)}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.2;color:var(--ink);letter-spacing:-.01em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}
.sr,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;left:12px;top:12px;width:auto;height:auto;clip:auto;background:var(--paper);padding:8px 14px;border-radius:8px;z-index:100;box-shadow:var(--shadow)}
:focus-visible{outline:3px solid var(--sun-500);outline-offset:2px}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.flag-stripe{height:4px;background:linear-gradient(90deg,var(--green-600) 0 45%,var(--sun-500) 45% 70%,var(--blue-700) 70% 100%)}
.header-inner{display:flex;align-items:center;gap:24px;min-height:70px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);flex-shrink:0}
.brand img{display:block;border-radius:11px}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-family:var(--font-head);font-weight:700;font-size:1.22rem;letter-spacing:-.01em}
.brand-sub{font-size:.78rem;color:var(--muted);letter-spacing:.02em}
.site-nav{margin-left:auto}
.nav-list{list-style:none;margin:0;padding:0;display:flex;gap:2px}
.nav-item{position:relative}
.nav-top{font:inherit;font-weight:600;font-size:.98rem;color:var(--ink);background:none;border:0;padding:10px 12px;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:6px}
.nav-top svg{width:12px;height:12px;transition:transform .2s}
.nav-top:hover,.nav-item.open .nav-top{background:var(--green-50);color:var(--green-800)}
.nav-item.open .nav-top svg{transform:rotate(180deg)}
.nav-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(520px,92vw);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:18px 20px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s ease}
.nav-item:first-child .nav-panel,.nav-item:nth-child(2) .nav-panel{right:auto;left:0}
.nav-item.open .nav-panel{opacity:1;visibility:visible;transform:none}
@media (hover:hover) and (min-width:1081px){.nav-item:hover .nav-panel{opacity:1;visibility:visible;transform:none}.nav-item:hover .nav-top{background:var(--green-50)}}
.nav-blurb{margin:0 0 10px;font-size:.9rem;color:var(--muted)}
.nav-panel ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px 14px}
.nav-panel a{display:block;padding:6px 8px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:.96rem;line-height:1.35}
.nav-panel a:hover{background:var(--sun-50);color:var(--green-800)}
.nav-toggle{display:none;margin-left:auto;width:44px;height:44px;border:1px solid var(--line);background:var(--paper);border-radius:12px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.nav-toggle span:not(.sr){display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:.2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:1080px){
  .nav-toggle{display:flex}
  .site-nav{position:fixed;inset:74px 0 0 0;background:var(--paper);overflow-y:auto;padding:12px 18px 40px;display:none;margin:0}
  .site-nav.open{display:block}
  .nav-list{flex-direction:column}
  .nav-top{width:100%;justify-content:space-between;font-size:1.08rem;padding:14px 10px;border-bottom:1px solid var(--line);border-radius:0}
  .nav-panel{position:static;width:auto;box-shadow:none;border:0;padding:6px 0 14px;display:none;opacity:1;visibility:visible;transform:none}
  .nav-item.open .nav-panel{display:block}
  body.nav-open{overflow:hidden}
}

/* Inner hero */
.hero{position:relative;background:
  radial-gradient(1200px 400px at 85% -10%,rgba(246,201,21,.22),transparent 60%),
  radial-gradient(900px 380px at -5% 110%,rgba(18,132,74,.14),transparent 60%),
  linear-gradient(180deg,var(--green-50),var(--bg));
  border-bottom:1px solid var(--line);overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M20 4 36 20 20 36 4 20Z' fill='none' stroke='%2312844a' stroke-opacity='.06'/%3E%3C/svg%3E");pointer-events:none}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;padding-top:40px;padding-bottom:48px}
.hero-plain .hero-grid{grid-template-columns:minmax(0,1fr);padding-bottom:40px}
.hero-plain .hero-text{max-width:860px}
.hero h1{font-size:clamp(2rem,1.3rem + 2.6vw,3.15rem);margin:.15em 0 .35em}
.eyebrow{display:inline-block;margin:0;font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green-800);background:var(--sun-200);padding:4px 10px;border-radius:999px}
.hero-meta{display:flex;gap:16px;margin:0;color:var(--muted);font-size:.95rem}
.hero-meta span+span::before{content:"•";margin-right:16px;color:var(--sun-500)}
.hero-lead{font-size:1.15rem;color:var(--ink-soft)}
.crumbs ol{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:4px;font-size:.9rem;color:var(--muted)}
.crumbs li+li::before{content:"›";margin:0 6px;color:var(--muted)}
.crumbs a{color:var(--ink-soft);text-decoration:none}
.crumbs a:hover{color:var(--green-700);text-decoration:underline}
.crumbs [aria-current]{color:var(--ink);max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* hero image: always shown in full, never cropped */
.hero-media{margin:0;background:var(--paper);padding:12px;display:flex;justify-content:center;border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-lg);justify-self:end;width:100%;max-width:560px}
.hero-media img{display:block;width:auto;max-width:100%;max-height:560px;height:auto;margin:0 auto;object-fit:contain;border-radius:var(--radius-sm);background:var(--sand)}

/* Layout */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;padding-top:44px;padding-bottom:56px;align-items:start}
.sidebar{display:flex;flex-direction:column;gap:18px}
.side-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}
.side-card h2{font-size:1.05rem;margin:0 0 10px;font-family:var(--font-body);font-weight:700;letter-spacing:.02em;color:var(--green-800)}
.side-card ol,.side-card ul{margin:0;padding:0;list-style:none}
.side-card li{border-top:1px dashed var(--line)}
.side-card li:first-child{border-top:0}
.side-card a{display:block;padding:7px 0;text-decoration:none;color:var(--ink);font-size:.95rem;line-height:1.4}
.side-card a:hover{color:var(--green-700)}
.toc ol{counter-reset:t}
.toc li a{display:flex;gap:10px}
.toc li a::before{counter-increment:t;content:counter(t);flex:0 0 22px;height:22px;border-radius:50%;background:var(--green-50);color:var(--green-800);font-size:.75rem;font-weight:700;display:grid;place-items:center;margin-top:1px}
.side-cat{max-height:520px;overflow:auto}
.toc{position:relative}
.toc ol{max-height:min(60vh,560px);overflow:auto;padding-right:4px}

/* Prose */
.prose{min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);padding:clamp(22px,3.5vw,46px);box-shadow:var(--shadow);overflow-wrap:break-word}
.prose>:first-child{margin-top:0}
.prose p{margin:0 0 1.05em}
.prose h2{font-size:clamp(1.45rem,1.2rem + .9vw,1.9rem);margin:1.7em 0 .55em;padding-top:.2em;position:relative}
.prose h2::before{content:"";display:block;width:44px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--green-600),var(--sun-500));margin-bottom:.55em}
.prose h3{font-size:1.28rem;margin:1.5em 0 .45em;color:var(--green-800)}
.prose h4{font-size:1.1rem;margin:1.3em 0 .4em}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.1em}
.prose li{margin:.25em 0}
.prose li::marker{color:var(--green-600)}
.prose strong{font-weight:700;color:#18221d}
.prose hr{border:0;height:1px;background:var(--line);margin:2em 0}
.prose blockquote{margin:1.2em 0;padding:.6em 1.2em;border-left:4px solid var(--sun-500);background:var(--sun-50);border-radius:0 10px 10px 0}
.prose a{word-break:break-word}
/* content images: enlarged and fully visible */
.prose figure.fig-wide{margin:1.6em auto;text-align:center;clear:both}
.prose figure.fig-wide img,.prose img.img-wide{display:block;margin:0 auto;width:100%;max-width:720px;height:auto;object-fit:contain;border-radius:var(--radius-sm);background:var(--sand);box-shadow:var(--shadow)}
.prose img.img-mid{float:right;width:min(300px,45%);height:auto;object-fit:contain;margin:.3em 0 1em 1.4em;border-radius:var(--radius-sm);box-shadow:var(--shadow);background:var(--sand)}
.prose img.img-small{float:left;width:auto;max-width:160px;height:auto;margin:.3em 1.1em .6em 0;border-radius:8px;box-shadow:var(--shadow)}
.prose p::after,.prose li::after{content:"";display:table;clear:both}
.prose .table-wrap{overflow-x:auto;margin:1.4em 0;border:1px solid var(--line);border-radius:var(--radius-sm);-webkit-overflow-scrolling:touch}
.prose table.data-table{border-collapse:collapse;width:100%;font-size:.92rem;line-height:1.4}
.data-table td,.data-table th{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px 10px;vertical-align:top;text-align:left}
.data-table tr:first-child td,.data-table th{background:var(--green-50);font-weight:700;color:var(--green-800)}
.data-table tr:nth-child(even) td{background:#fcfbf6}
.data-table td:first-child{font-weight:600}
.data-table img{max-width:140px}
.embed{position:relative;margin:1.4em 0;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3;background:var(--sand)}
.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.search-box{display:flex;gap:8px;max-width:520px;margin:1em 0 1.4em;padding:8px;background:var(--green-50);border:1px solid var(--green-100);border-radius:14px}
.search-box input{flex:1;min-width:0;font:inherit;font-size:1rem;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--paper);color:var(--ink)}
.search-box button,.btn{font:inherit;font-weight:700;border:0;border-radius:10px;padding:10px 18px;cursor:pointer;background:var(--green-600);color:#fff;text-decoration:none;display:inline-flex;align-items:center}
.search-box button:hover,.btn-primary:hover{background:var(--green-800);color:#fff}
/* quiz */
.quiz .quiz-q{background:var(--green-50);border:1px solid var(--green-100);border-radius:var(--radius-sm);padding:16px 18px}
.quiz .quiz-q input{accent-color:var(--green-600);width:18px;height:18px;vertical-align:-3px;margin-right:8px}
.quiz-feedback{display:block;margin-top:8px;font-weight:700}
.quiz-feedback.ok{color:var(--green-700)}
.quiz-feedback.no{color:#b4321f}

/* Explore band */
.explore{background:var(--sand);border-top:1px solid var(--line);padding:48px 0 56px}
.section-title{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.3rem);margin:0 0 24px}
.explore-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.explore-card{display:flex;flex-direction:column;gap:6px;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.explore-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);color:var(--ink)}
.explore-label{font-family:var(--font-head);font-weight:700;font-size:1.2rem}
.explore-blurb{color:var(--muted);font-size:.95rem;line-height:1.45}

/* Home */
.home-hero{position:relative;background:
  radial-gradient(1000px 500px at 100% 0,rgba(246,201,21,.28),transparent 60%),
  radial-gradient(900px 500px at 0 100%,rgba(18,132,74,.16),transparent 60%),
  linear-gradient(180deg,var(--green-50),var(--bg));border-bottom:1px solid var(--line);overflow:hidden}
.home-hero::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M20 4 36 20 20 36 4 20Z' fill='none' stroke='%2312844a' stroke-opacity='.06'/%3E%3C/svg%3E");pointer-events:none}
.home-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:52px;align-items:center;padding-top:52px;padding-bottom:60px}
.home-hero h1{font-size:clamp(2.2rem,1.3rem + 3.2vw,3.7rem);margin:.25em 0 .4em}
.lead p{font-size:1.14rem;color:var(--ink-soft);margin:0 0 .8em}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.btn-ghost{background:var(--paper);color:var(--green-800);border:1px solid var(--green-100)}
.btn-ghost:hover{background:var(--sun-50);color:var(--green-800)}
.collage{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.collage-item{margin:0;background:var(--paper);padding:8px 8px 6px;border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.collage-item:nth-child(2){transform:translateY(22px)}
.collage-item:nth-child(4){transform:translateY(22px)}
.collage-item img{display:block;width:100%;height:auto;object-fit:contain;border-radius:10px;background:var(--sand)}
.collage-item figcaption{font-size:.85rem;font-weight:600;color:var(--ink-soft);padding:6px 4px 2px}
.featured{padding:64px 0 24px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.dest-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.dest-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);color:var(--ink)}
.dest-media{display:flex;align-items:center;justify-content:center;height:260px;background:var(--sand);padding:10px}
.dest-media img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:10px}
.dest-body{display:flex;flex-direction:column;gap:6px;padding:16px 20px 20px}
.dest-title{font-family:var(--font-head);font-size:1.3rem;font-weight:700}
.dest-desc{color:var(--ink-soft);font-size:.97rem;line-height:1.5}
.dest-more{margin-top:auto;padding-top:6px;color:var(--green-700);font-weight:700}
.home-layout{padding-top:40px;padding-bottom:56px}
.home-prose{max-width:900px;margin:0 auto}
.directory{background:var(--sand);border-top:1px solid var(--line);padding:56px 0}
.dir-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}
.sitemap-grid{padding:40px 0 64px}
.dir-col{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}
.dir-col h2,.dir-col h3{font-size:1.25rem;margin:0 0 4px}
.dir-col p{margin:0 0 10px;color:var(--muted);font-size:.93rem;line-height:1.45}
.dir-col ul{list-style:none;margin:0;padding:0}
.dir-col li{border-top:1px dashed var(--line)}
.dir-col a{display:block;padding:6px 0;text-decoration:none;color:var(--ink)}
.dir-col a:hover{color:var(--green-700)}

/* Footer (light) */
.site-footer{background:linear-gradient(180deg,var(--green-50),#e3f1e7);border-top:4px solid var(--sun-500);color:var(--ink)}
.footer-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:28px;padding-top:48px;padding-bottom:36px}
.footer-about p{color:var(--ink-soft);font-size:.95rem;margin:12px 0 0;max-width:34ch}
.footer-col h2{font-family:var(--font-body);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green-800);margin:6px 0 10px}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col a{display:block;padding:4px 0;color:var(--ink);text-decoration:none;font-size:.95rem}
.footer-col a:hover{color:var(--green-700);text-decoration:underline}
.footer-bottom{border-top:1px solid var(--green-100);font-size:.9rem;color:var(--ink-soft)}
.footer-bottom .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:16px;padding-bottom:18px}
.footer-bottom p{margin:0}

/* Responsive */
@media (max-width:1080px){
  .layout{grid-template-columns:minmax(0,1fr)}
  .sidebar{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-about{grid-column:1/-1}
}
@media (max-width:860px){
  .hero-grid,.home-hero-grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .hero-media{justify-self:center;max-width:620px}
  .collage-item:nth-child(2),.collage-item:nth-child(4){transform:none}
}
@media (max-width:560px){
  body{font-size:1.03rem}
  .wrap{padding-left:16px;padding-right:16px}
  .prose{border-radius:var(--radius);padding:20px 18px}
  .prose img.img-mid{float:none;display:block;width:100%;max-width:340px;margin:1em auto}
  .footer-grid{grid-template-columns:1fr}
  .brand-sub{display:none}
  .search-box{flex-direction:column}
  .crumbs [aria-current]{max-width:22ch}
}
.to-top{position:fixed;right:18px;bottom:18px;width:46px;height:46px;border-radius:50%;background:var(--green-600);color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s;z-index:40}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top svg{width:22px;height:22px}
.to-top:hover{background:var(--green-800);color:#fff}
@media print{.to-top,.site-header,.sidebar,.explore,.site-footer,.search-box{display:none}.prose{border:0;box-shadow:none}}
