:root {
    --ink: #27312c;
    --muted: #6f7973;
    --forest: #536b57;
    --clay: #a66f50;
    --pale: #f1f4ee;
    --sand: #f7f2e9;
    --line: #e6eae5;
}

body, input, select, textarea {
    font-family: "Source Sans Pro", sans-serif !important;
    color: var(--ink);
}

section, #header, hr, .major {
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

#sidebar {
    position: fixed !important;
    inset: 0 auto 0 0;
    height: 100vh !important;
    width: 18em !important;
    overflow: hidden !important;
    z-index: 10000;
    background: #fff;
    border-right: 1px solid #f2f2f2 !important;
}

#wrapper { padding-left: 18em !important; }

.inner {
    padding: 2.2em 4em 0 !important;
    max-width: 1600px !important;
    margin: auto;
    width: 100%;
    box-sizing: border-box;
}

.block {
    border-top: 1px solid var(--line);
    padding: 3.5em 0 !important;
}

.head {
    display: grid;
    grid-template-columns: 180px minmax(0, 870px);
    gap: 2em;
    margin-bottom: 2.5em;
}

.head h2 {
    font-family: Georgia, serif !important;
    font-size: clamp(2em, 3.2vw, 3em);
    line-height: 1.02;
    letter-spacing: -0.04em;
    margin: 0 0 0.35em;
    color: var(--ink);
}

.head p { margin: 0; color: var(--muted); line-height: 1.72; }

.eyebrow {
    display: block;
    font-size: 0.65em;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 4px;
    color: #98a19b;
    margin-bottom: 16px;
}

/* ── Cards grid ─────────────────────── */
.recursos-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2em;
}

.recurso-card {
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
    transition: transform 0.22s, border-color 0.22s;
    text-decoration: none;
    color: inherit;
}

.recurso-card:hover {
    transform: translateY(-4px);
    border-color: #b8c8b9;
}

.recurso-thumb {
    height: 170px;
    background: center/cover no-repeat var(--pale);
    position: relative;
    flex-shrink: 0;
}

.recurso-thumb::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(20,40,28,.08) 0%, rgba(20,40,28,.48) 100%);
}

.recurso-body {
    padding: 1.5em 1.6em 1.7em;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}

.recurso-name {
    font-family: Georgia, serif;
    font-size: 1.55em;
    font-weight: 700;
    letter-spacing: -0.035em;
    color: var(--ink);
    margin: 0;
}

.recurso-desc {
    font-size: 0.88em;
    color: var(--muted);
    line-height: 1.62;
    margin: 0 0 0.6em;
    flex: 1;
}

/* ── Scale links ────────────────────── */
.recurso-scales {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    margin-top: auto;
    padding-top: 1em;
    border-top: 1px solid var(--line);
}

.scale-link {
    display: flex;
    align-items: center;
    gap: 0.65em;
    padding: 0.6em 0.9em;
    border-radius: 10px;
    text-decoration: none;
    font-size: 0.82em;
    font-weight: 600;
    color: var(--ink);
    background: var(--pale);
    border: 1px solid var(--line);
    transition: 0.18s;
}

.scale-link:hover {
    border-color: var(--forest);
    color: var(--forest);
    background: #eaf0eb;
}

.scale-link.scale-link-pt {
    background: var(--sand);
}

.scale-link.scale-link-pt:hover {
    border-color: var(--clay);
    color: var(--clay);
    background: #f5ece0;
}

.scale-badge {
    display: inline-block;
    padding: 0.18em 0.55em;
    border-radius: 999px;
    font-size: 0.6em;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    flex-shrink: 0;
}

.badge-mundo { background: #ddeae2; color: #3a6449; }
.badge-pt    { background: #f0e4d4; color: #7a5235; }

/* ── Scale explainer ────────────────── */
.escalas-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.2em;
}

.escala-card {
    padding: 1.7em;
    border-radius: 16px;
    background: var(--pale);
}

.escala-card:last-child { background: var(--sand); }

.escala-card h3 { font-size: 1.05em; color: var(--ink); margin: 0 0 0.4em; }
.escala-card p  { font-size: 0.85em; color: var(--muted); line-height: 1.65; margin: 0; }

.escala-badge {
    display: inline-block;
    padding: 0.22em 0.7em;
    border-radius: 999px;
    font-size: 0.58em;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 0.75em;
}

.bio-impact-report {
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    overflow:hidden;
    background: var(--pale);
    border-radius: 24px;
    padding: 2.5rem !important;
    margin: 2rem 0;
    border: 1px solid var(--line);
}
.impact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(200px,100%), 1fr));
    gap: 2rem;
    margin: 2rem 0;
}
.impact-node {
    min-width:0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.node-value {
    font-family: Georgia, serif;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1;
}
.node-label {
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 0.65rem;
    color: var(--muted);
}
.impact-node p {
    font-size: 0.85rem;
    line-height: 1.5;
    margin: 0;
    color: var(--ink);
}
.impact-footer-note {
    border-top: 1px solid var(--line);
    padding-top: 1.5rem;
    font-size: 0.9rem;
    color: var(--muted);
}
.impact-header > p { max-width:760px; margin:.8rem 0 0; color:var(--muted); line-height:1.65; }

/* Footer */
.footer { padding: 4em 0 2em; border-top: 1px solid var(--line); opacity: 0.4; text-align: right; }
.footer-wordmark { display: flex; justify-content: flex-end; }
.bio-wordmark { display: inline-block; text-align: center; line-height: 1; font-family: "Georgia", serif; }
.bio-wordmark strong { display: block; font-size: 1.15em; font-weight: 400; letter-spacing: -0.4px; color: #81966e; font-family: inherit; }
.bio-wordmark small  { display: block; margin-top: 2px; font-size: 0.43em; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: #a66f50; font-family: inherit; }

/* Responsive */
@media (max-width: 1280px) {
    #sidebar { position: relative !important; width: 100% !important; height: auto !important; }
    #wrapper { padding-left: 0 !important; }
}
@media (max-width: 900px) {
    .recursos-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .inner { padding: 1.7em 1.4em 0 !important; }
    .head  { grid-template-columns: 1fr; gap: 0.7em; }
    .escalas-grid { grid-template-columns: 1fr; }
}

/* Hub editorial comum */
.hub-orientation,
.hub-section {
    display:grid;
    grid-template-columns:minmax(120px,180px) minmax(0,1fr);
    gap:clamp(1.5rem,4vw,4rem);
    padding:clamp(3.5rem,7vw,6rem) 0 !important;
    border-top:1px solid var(--line) !important;
}

/* As introduções dos hubs seguem a mesma linha editorial das secções abaixo. */
.hub-orientation {
    grid-template-columns:1fr;
    gap:.8rem;
    padding:clamp(2.5rem,4.5vw,4rem) 0 !important;
}

.hub-orientation h2,
.hub-section h2,
.hub-callout h2 {
    margin:0 0 .45em;
    color:var(--ink);
    font-family:Georgia,"Times New Roman",serif !important;
    font-size:clamp(2.25rem,4vw,4rem);
    line-height:.98;
    letter-spacing:-.045em;
}

.hub-orientation > div > p,
.hub-callout > p {
    max-width:58rem;
    margin:0;
    color:var(--muted);
    font-size:1.05rem;
    line-height:1.72;
}

.scale-overview {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1rem;
    margin-top:2rem;
}

.scale-overview article {
    padding:1.5rem;
    border:1px solid var(--line);
    border-radius:16px;
    background:var(--pale);
}

.scale-overview article:last-child { background:var(--sand); }
.scale-overview small,
.hub-card-body > small {
    display:block;
    margin-bottom:.55rem;
    color:var(--forest);
    font-size:.68rem;
    font-weight:900;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.scale-overview strong { display:block; margin-bottom:.35rem; font-size:1.05rem; color:var(--ink); }
.scale-overview p { margin:0; color:var(--muted); font-size:.88rem; line-height:1.55; }

.hub-section { grid-template-columns:1fr; gap:2.3rem; }
.hub-section-head { display:block; max-width:900px; }
.hub-section-head .eyebrow { margin-bottom:.55rem; }
.hub-section-head h2 { margin:0; text-align:left; }
.hub-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.hub-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }

.hub-card {
    display:grid;
    grid-template-columns:minmax(150px,38%) minmax(0,1fr);
    min-height:285px;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:22px;
    background:#fff;
    transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.hub-grid-two .hub-card-featured { grid-template-columns:minmax(220px,44%) minmax(0,1fr); }
.hub-grid-two .hub-card-featured .hub-thumb { width:100%; border-radius:0; background-size:auto 190%; background-position:center; }
.hub-card:hover { transform:translateY(-4px); border-color:#b7c7b9; box-shadow:0 18px 45px rgba(36,55,43,.08); }
.hub-thumb { min-height:100%; background-position:center; background-size:cover; }
.hub-card .hub-thumb { background-size:auto 150%; }
.hub-card .hub-thumb-instagram {
    background-color:#f5f1e8;
    background-position:center top;
    background-size:cover;
}
.hub-thumb[style*="water-global-hero"] { background-size:cover; }
.hub-thumb-tall { min-height:320px; }
.hub-card-body { display:flex; flex-direction:column; padding:clamp(1.4rem,3vw,2rem); }
.hub-card-body h3 { margin:0 0 .5rem; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.55rem,2.5vw,2.2rem); line-height:1.02; letter-spacing:-.035em; }
.hub-card-body p { flex:1; margin:0 0 1.2rem; color:var(--muted); line-height:1.62; }
.hub-actions { display:flex; flex-wrap:wrap; gap:.55rem; padding-top:1rem; border-top:1px solid var(--line); }
.hub-actions a,
.hub-primary-link { display:inline-flex; align-items:center; justify-content:center; padding:.62rem .95rem; border:1px solid #d8e2da!important; border-radius:999px; background:#f3f7f3; box-shadow:none!important; color:#365d43!important; font-size:.74rem; font-weight:800; text-decoration:none; transition:background .18s,border-color .18s,transform .18s; }
.hub-actions a:last-child { background:#faf4eb; border-color:#eadcca!important; color:#765137!important; }
.hub-actions a:hover,
.hub-primary-link:hover { border-color:#9eb3a2!important; background:#eaf1eb; color:#294c35!important; transform:translateY(-1px); }

.hub-callout {
    margin:clamp(2rem,5vw,5rem) 0;
    padding:clamp(2rem,5vw,4rem) !important;
    border:1px solid #dfe8df !important;
    border-radius:24px;
    background:#f3f7f2;
}
.hub-callout h2 { max-width:850px; font-size:clamp(2rem,3.4vw,3.25rem); }
.hub-callout-energy { background:#f7f3e7; border-color:#e9e0c8 !important; }
.hub-primary-link { margin-top:1.4rem; }

/* Relatório da Mongólia: cartões editoriais sem uma coluna vazia reservada a imagem. */
.mongolia-report .hub-card { display:block; min-height:0; background:#f7f9f5; }
.mongolia-report .hub-card:nth-child(even) { background:#faf6ef; }
.mongolia-report .hub-card-body { height:100%; box-sizing:border-box; }
.mongolia-report .hub-card-body p { flex:initial; margin-bottom:0; }
.mongolia-report .sources-callout h2 { font-size:clamp(1.8rem,3vw,2.7rem); }

/* Relatório do Douro: cartões editoriais sem uma coluna vazia reservada a imagem. */
.douro-report .hub-card { display:block; min-height:0; background:#f9f6f2; }
.douro-report .hub-card:nth-child(even) { background:#f7f0ee; }
.douro-report .hub-card-body { height:100%; box-sizing:border-box; }
.douro-report .hub-card-body p { flex:initial; margin-bottom:0; }
.douro-report .sources-callout h2 { font-size:clamp(1.8rem,3vw,2.7rem); }
html body.douro-report .bio-banner-hero .water-hero-image { background-image:url('/images/videira-tinta.jpg') !important; }

/* Relatório climático: cartões de texto ocupam toda a largura, sem coluna de imagem vazia. */
.climate-overshoot-report .hub-card {
    display:block;
    position:relative;
    min-height:0;
    background:linear-gradient(145deg,#f7f9f5 0%,#fff 72%);
}
.climate-overshoot-report .hub-card:nth-child(even) {
    background:linear-gradient(145deg,#faf4ec 0%,#fff 72%);
}
.climate-overshoot-report .hub-card::before {
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:5px;
    background:linear-gradient(90deg,#a75e47,#d4a36e 55%,#78917b);
}
.climate-overshoot-report .hub-card-body { height:100%; box-sizing:border-box; }
.climate-overshoot-report .hub-card-body p { flex:initial; max-width:42rem; margin-bottom:0; }
.climate-overshoot-report .hub-card-body h3 { max-width:34rem; }
.climate-overshoot-report .sources-callout h2 { font-size:clamp(1.8rem,3vw,2.7rem); }
.source-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-top:1.5rem; }
.source-list a { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-width:0; padding:.85rem 1rem; border:1px solid #d7e2d8!important; border-radius:14px; background:rgba(255,255,255,.72); box-shadow:none!important; color:#365d43!important; font-size:.78rem; font-weight:800; line-height:1.35; text-decoration:none; }
.source-list a::after { content:"↗"; flex:0 0 auto; color:#8a9c8d; }
.source-list a:hover { border-color:#9eb3a2!important; background:#fff; color:#294c35!important; }

/* Conteúdo editorial dos hubs: síntese antes do aprofundamento */
.hub-dashboard {
    padding:clamp(3.5rem,7vw,6rem) 0 !important;
    border-top:1px solid var(--line) !important;
}
.hub-dashboard-head {
    display:block;
    max-width:900px;
    margin-bottom:2.4rem;
}
.hub-dashboard-head .eyebrow { margin-bottom:.55rem; }
.hub-dashboard h2 {
    margin:0 0 .4em;
    color:var(--ink);
    font-family:Georgia,"Times New Roman",serif !important;
    font-size:clamp(2.2rem,4vw,3.8rem);
    line-height:1;
    letter-spacing:-.045em;
}
.hub-dashboard-head p { margin:0; color:var(--muted); line-height:1.7; }
.hub-dashboard-head h2,.hub-dashboard-head p { text-align:left; }
.hub-signal-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.hub-signal {
    min-height:210px;
    padding:1.4rem;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
}
.hub-signal small { color:var(--forest); font-size:.66rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.hub-signal h3 { margin:.65rem 0 .45rem; color:var(--ink); font-size:1.08rem; }
.hub-signal p { margin:0; color:var(--muted); font-size:.86rem; line-height:1.55; }
.hub-signal > a { display:inline-block; margin-top:1rem; color:var(--forest); font-size:.72rem; font-weight:900; text-decoration:none; }
.hub-signal-grid-editorial .hub-signal { min-height:260px; display:flex; flex-direction:column; }
.hub-signal-grid-editorial .hub-signal > a { margin-top:auto; padding-top:1rem; }
.hub-meter { display:flex; align-items:flex-end; gap:5px; height:54px; margin:1.15rem 0; }
.hub-meter i { flex:1; min-height:8px; border-radius:5px 5px 2px 2px; background:#cbd8cd; }
.hub-meter i:nth-child(2) { background:#aabfac; }
.hub-meter i:nth-child(3) { background:#809f85; }
.hub-meter i:nth-child(4) { background:#53765d; }
.hub-meter i:nth-child(5) { background:#315b41; }
.hub-report-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:1rem; margin-top:1rem; }
.hub-report,
.hub-news { padding:clamp(1.5rem,3vw,2.2rem); border-radius:20px; background:var(--pale); }
.hub-news { background:var(--sand); }
.hub-report h3,.hub-news h3 { margin:0 0 .7rem; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:1.45rem; }
.hub-report p,.hub-news p { margin:0 0 1rem; color:var(--muted); line-height:1.62; }
.hub-findings { display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; margin-top:1.2rem; }
.hub-findings span { padding:.9rem; border-radius:12px; background:rgba(255,255,255,.72); color:var(--ink); font-size:.78rem; font-weight:700; line-height:1.4; }
.hub-territory {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:2rem;
    align-items:center;
    margin-top:1rem;
    padding:clamp(1.6rem,4vw,2.8rem);
    border-radius:22px;
    background:#173f2d;
    color:#fff;
}
.hub-territory h3 { margin:0 0 .35rem; color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.6rem,3vw,2.35rem); }
.hub-territory p { max-width:760px; margin:0; color:#dce8df; line-height:1.62; }
.hub-territory a { display:inline-flex; padding:.8rem 1rem; border-radius:999px; background:#fff; color:#214c37; font-weight:900; text-decoration:none; white-space:nowrap; }

.hub-latest { padding:clamp(3.5rem,7vw,6rem) 0!important; border-top:1px solid var(--line)!important; }
.hub-latest-head { max-width:900px; margin-bottom:2rem; }
.hub-latest-head .eyebrow { margin-bottom:.55rem; }
.hub-latest-head h2 { margin:0 0 .45rem; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,3.5vw,3.25rem); line-height:1; letter-spacing:-.04em; }
.hub-latest-head p { margin:0; color:var(--muted); line-height:1.65; }
.hub-latest-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.hub-latest-grid a { display:flex; flex-direction:column; min-height:320px; padding:0; overflow:hidden; border:1px solid var(--line)!important; border-radius:18px; background:#fff; box-shadow:none!important; color:var(--ink)!important; text-decoration:none; transition:transform .2s,border-color .2s,box-shadow .2s; }
.hub-latest-grid a:hover { transform:translateY(-3px); border-color:#b7c7b9!important; box-shadow:0 16px 38px rgba(36,55,43,.07)!important; }
.hub-latest-thumb { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:var(--pale); }
.hub-latest-card-body { display:flex; flex:1; flex-direction:column; padding:1.35rem; }
.hub-latest-grid small { color:var(--forest); font-size:.62rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.hub-latest-grid h3 { margin:.8rem 0 .65rem; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:1.18rem; line-height:1.15; }
.hub-latest-grid p { margin:0; color:var(--muted); font-size:.82rem; line-height:1.55; }
.hub-latest-card-body span { margin-top:auto; padding-top:1rem; color:var(--forest); font-size:.68rem; font-weight:900; }

@media (max-width:1000px) {
    .hub-card { grid-template-columns:1fr; }
    .hub-thumb { min-height:210px; }
    .hub-signal-grid { grid-template-columns:repeat(2,1fr); }
    .hub-report-grid { grid-template-columns:1fr; }
}

@media (max-width:760px) {
    .hub-orientation,
    .hub-section-head { grid-template-columns:1fr; gap:.8rem; }
    .hub-grid,
    .hub-grid-two,
    .scale-overview { grid-template-columns:1fr; }
    .hub-orientation { padding:2.35rem 0 !important; }
    .hub-section { padding:3.2rem 0 !important; }
    .hub-actions { flex-direction:column; align-items:stretch; }
    .hub-actions a { justify-content:center; }
    .hub-dashboard-head,.hub-territory { grid-template-columns:1fr; gap:1rem; }
    .hub-signal-grid,.hub-findings { grid-template-columns:1fr; }
    .hub-latest-grid { grid-template-columns:1fr; }
    .source-list { grid-template-columns:1fr; }
    .hub-territory a { justify-content:center; white-space:normal; text-align:center; }
    .bio-impact-report { padding:1.3rem !important; }
    .impact-header h2 { overflow-wrap:anywhere; }
}
html[lang="en"] .hub-thumb[style*="calendario_regeneracao.jpg"]{background-image:url('/images/regeneration-calendar-en-v1.png')!important}
