/* Main resource hub styles. Layout uses a centred .wrap, CSS Grid for page sections,
 * flex layouts for controls, and media queries for mobile navigation and card stacking.
 * Country colours live in country-theme.css; Avenir font definitions live in avenir-fonts.css.
 * Keep the @media blocks after the base rules so smaller-screen adjustments win.
 */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:#fcfcf7;color:var(--ink,#122a23);font:17px/1.65 Avenir,'Segoe UI',sans-serif}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button,a,input{ -webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b58600;outline-offset:5px}
.wrap{width:min(1280px,90%);margin:auto}
.topline{background:#eef1e8;font-size:12px}
.topline .wrap{display:flex;justify-content:space-between;align-items:center;padding:8px 0}
.topline button,footer button{background:none;border:0;color:inherit;padding:0}
.topline button{font-size:12px}
.topline button span{opacity:.65;margin-left:12px}
header{background:#fcfcf7ee;backdrop-filter:blur(16px);position:sticky;top:0;z-index:10;border-bottom:1px solid #dde3d7}
.nav{height:100px;display:flex;justify-content:space-between;align-items:center}
.brand{display:flex;align-items:center;gap:20px;line-height:1.3;font-size:13px}
.brand img{width:108px;height:47px;object-fit:contain}
.brand i{width:1px;height:38px;background:#d6dcd1}
.brand strong{display:block;font-size:19px;font-weight:600}
nav{display:flex;align-items:center;gap:30px;font-size:15px}
nav>a:not(.button):hover{color:var(--primary)}
.button{display:inline-flex;gap:24px;justify-content:space-between;align-items:center;background:var(--primary,#006b49);color:white;border-radius:6px;padding:16px 24px;font-size:15px;font-weight:600;transition:transform .2s,background .2s}
.button:hover{transform:translateY(-2px);background:#124c39}
.button.small{padding:12px 20px}
.menu{display:none}
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;padding:76px 0 64px;align-items:center}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;margin:0 0 24px;display:flex;align-items:center;gap:10px}
.dot{display:inline-block;width:7px;height:7px;background:var(--primary);border-radius:50%}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(45px,5.3vw,76px);line-height:1.1;letter-spacing:-3.8px;font-weight:500;margin-bottom:27px}
h1 em{font-style:normal;color:var(--primary);position:relative}
h1 em:after{content:'';display:block;position:absolute;bottom:0;left:0;right:0;height:8px;background:var(--accent);z-index:-1}
.lead{font-size:18px;color:#5b6861;max-width:520px;line-height:1.8}
.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:30px}
.text-link{font-size:14px;font-weight:600}
.text-link:hover{text-decoration:underline}
.hero-note{margin-top:43px;display:flex;gap:14px;align-items:center;border-top:1px solid #dde3d7;padding-top:20px;font-size:12px}
.hero-note span{font-size:9px;letter-spacing:1px;font-weight:700}
.hero-note p{margin:0;color:#68726b}
.island-art{min-height:500px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 10%,#258462 0,transparent 60%),#063f30;border-radius:120px 8px 8px 8px;color:white;display:flex;flex-direction:column;justify-content:space-between;padding:35px}
.art-top{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.5px;z-index:1;margin-left:28px}
.art-top span:last-child{text-align:right;opacity:.6;line-height:1.8;letter-spacing:1px}
.island-art svg{position:relative;z-index:1;width:115%;margin-left:-8%;transform:rotate(-8deg)}
.orbit{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%) rotate(-25deg);border:1px solid #ffffff16;border-radius:50%;width:330px;height:260px}
.o2{width:480px;height:390px}
.o3{width:640px;height:530px}
.art-bottom{display:flex;align-items:center;gap:14px;z-index:1;border-top:1px solid #ffffff30;padding-top:22px}
.art-bottom strong{display:block;font-size:17px;font-weight:500}
.art-bottom span:not(.flag):not(.art-arrow){font-size:11px;color:#c4dbce}
.art-arrow{margin-left:auto;font-size:25px}
.flag{width:40px;height:29px;background:linear-gradient(33deg,transparent 42%,#f7ce46 43% 55%,transparent 56%),linear-gradient(-33deg,transparent 42%,#f7ce46 43% 55%,transparent 56%),conic-gradient(from 60deg,#111 0 60deg,#078b51 0 180deg,#111 0 240deg,#078b51 0);border:1px solid #ffffff30}
.strip{border-top:1px solid #dde3d7;border-bottom:1px solid #dde3d7}
.strip .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:23px 0}
.strip span{font-size:9px;letter-spacing:1.5px}
.strip p{margin:0;font-size:13px;color:#637068}
.strip button{border:0;background:none;font-size:12px;font-weight:600;color:var(--primary)}
.section{padding:90px 0}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}
h2{font-size:clamp(32px,3.5vw,48px);font-weight:500;line-height:1.18;letter-spacing:-1.8px;margin-bottom:0}
.section-heading>p{font-size:15px;color:#647169;margin-bottom:3px}
.resource-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #dce3d9;padding-bottom:22px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.filters button{border:0;background:transparent;border-radius:4px;padding:9px 12px;font-size:12px;color:#5b6861}
.filters button.active{background:#e3ede2;color:var(--primary);font-weight:600}
.search{display:flex;align-items:center;gap:10px;border:1px solid #dce3d9;border-radius:4px;padding:7px 12px;background:white}
.search input{background:none;border:0;min-width:0;width:155px;font-size:12px;padding:4px;outline:none}
.count{font-size:11px;color:#68746d;margin:18px 0}
.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}
.resource-card{display:flex;flex-direction:column;padding:27px;background:#fff;border:1px solid #dce3d9;border-radius:7px;transition:transform .2s,border-color .2s}
.resource-card:hover{transform:translateY(-4px);border-color:var(--primary)}
.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
.card-number{width:37px;height:37px;display:grid;place-items:center;background:#f0f3e9;color:var(--primary);font-size:12px;border-radius:50%}
.card-category{font-size:10px;color:#69756e}
.resource-card h3{font-size:20px;letter-spacing:-.4px;line-height:1.35;margin-bottom:12px;font-weight:600}
.resource-card p{font-size:14px;color:#67736c;line-height:1.7;margin-bottom:26px}
.card-link{border-top:1px solid #edf0e8;padding-top:16px;margin-top:auto;font-size:11px;font-weight:600;color:var(--primary);display:flex;justify-content:space-between}
.source-note{font-size:11px;color:#7b847d;margin:23px 0 0}
.safety{background:#eef2e8;border-top:1px solid #e4e9de;border-bottom:1px solid #e4e9de;padding:75px 0}
.safety-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.safety h2{margin-bottom:24px}
.safety p:not(.eyebrow){font-size:15px;max-width:400px;color:#657269}
.tabs{display:inline-flex;background:#e0e7d9;padding:5px;border-radius:5px;margin-top:15px}
.tabs button{background:none;border:0;padding:10px 20px;font-size:13px;color:#59675e;border-radius:3px}
.tabs [aria-selected=true]{background:white;color:var(--primary);box-shadow:0 2px 5px #00000009}
.advice-row{display:flex;gap:22px;padding:20px 0;border-bottom:1px solid #d7dfd0}
.advice-row:first-child{padding-top:0}
.advice-row>span{font-size:12px;color:var(--primary);padding-top:5px}
.advice-row h3{font-size:18px;font-weight:600;margin:0 0 5px}
.advice-row p{margin:0}
.community{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;align-items:center}
.community h2{margin-bottom:25px}
.community p:not(.eyebrow){font-size:16px;max-width:480px;color:#657269}
.community .button{margin-top:15px}
.community-card{background:#f5f0db;padding:36px 42px;border-radius:7px;border:1px solid #e9e2c4}
.mini-label{font-size:10px;letter-spacing:1.5px}
.community-symbol{font-size:60px;letter-spacing:-12px;line-height:1.5;color:#c6b45d;margin:10px 0}
.community-symbol span{color:var(--primary)}
.community-card h3{font-size:29px;font-weight:500;line-height:1.25;letter-spacing:-1px;margin-bottom:14px}
.community-card p{font-size:14px!important}
.research{padding:35px 0;border-top:1px solid #dce3d9;border-bottom:1px solid #dce3d9;display:flex;justify-content:space-between;align-items:center;gap:40px}
.research .eyebrow{margin-bottom:15px}
.research h3{font-size:24px;font-weight:500;line-height:1.35;margin-bottom:12px}
.research p:not(.eyebrow){font-size:14px;color:#68746d;max-width:650px;margin:0}
.research a{white-space:nowrap}
.support-inner{background:var(--ink);color:white;border-radius:8px;padding:55px;display:grid;grid-template-columns:1.6fr 1fr;gap:80px}
.support h2{margin-bottom:20px}
.support p:not(.eyebrow){color:#b7c9be;font-size:15px;max-width:450px}
.support .eyebrow{color:#b8cdbd}
.gold{background:var(--accent);color:#182c22}
.gold:hover{background:#e6ba31}
.light-link{font-size:14px}
.support aside{border-left:1px solid #ffffff30;padding:25px 0 25px 40px;align-self:center}
.support aside .dot{background:var(--accent);margin-bottom:18px}
.support aside h3{font-size:25px;font-weight:500;line-height:1.3}
.support aside a{font-size:13px;color:var(--accent)}
footer{padding:0 0 26px}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px;padding:0 0 45px}
.footer-top p{font-size:12px;color:#737f76;margin-top:22px}
.footer-top h3{font-size:12px;font-weight:600;margin-bottom:20px}
.footer-top>div>a:not(.brand),.footer-top button{display:block;font-size:12px;color:#667269;margin-bottom:10px}
.footer-bottom{border-top:1px solid #dce3d9;padding-top:22px;display:flex;justify-content:space-between;font-size:10px;color:#7a847c;gap:20px}
dialog{border:1px solid #d7dfd0;border-radius:10px;background:#fcfcf7;color:var(--ink);width:min(900px,92vw);max-height:85vh;padding:35px}
dialog::backdrop{background:#0a281fc4;backdrop-filter:blur(5px)}
.dialog-head{display:flex;justify-content:space-between;gap:20px}
.dialog-head button{background:none;border:0;font-size:25px;align-self:start}
.dialog-head h2{font-size:35px;margin-bottom:20px}
dialog>p{font-size:14px}
#hub-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
#hub-list a{padding:12px;border:1px solid #dce3d9;border-radius:4px;font-size:12px}
#hub-list a:hover{background:#e3ede2}
.skip{position:fixed;top:-100px;left:10px;background:white;z-index:30;padding:10px}
.skip:focus{top:10px}
.p-2{padding:2px}
.p-4{padding:4px}
.p-6{padding:6px}
.p-8{padding:8px}
.p-10{padding:10px}
@media(min-width:1500px){.hero{padding-top:90px;padding-bottom:90px}
}
@media(max-width:1000px){.hero{gap:30px}
.island-art{min-height:440px;padding:25px}
nav{gap:18px;font-size:13px}
.safety-layout,.community{gap:45px}
.resource-controls{align-items:start;flex-direction:column}
.support-inner{gap:40px;padding:40px}
.strip span{display:none}
.hero-note{display:block}
.hero-note p{margin-top:5px}
}
@media(max-width:700px){body{font-size:16px}
.nav{height:82px}
.brand{gap:12px}
.brand img{width:84px}
.brand strong{font-size:17px}
.brand span{font-size:11px}
.menu{display:block;background:none;border:1px solid #d7dfd0;border-radius:4px;padding:7px 11px;font-size:12px}
nav{display:none;position:absolute;top:82px;left:0;right:0;background:#fcfcf7;padding:25px 5%;border-bottom:1px solid #d7dfd0}
nav.open{display:flex;flex-direction:column;align-items:stretch}
.hero{grid-template-columns:1fr;padding:45px 0;gap:35px}
h1{font-size:53px;letter-spacing:-2.5px}
.lead{font-size:16px}
.hero-note{margin-top:28px}
.island-art{min-height:390px;border-top-left-radius:85px}
.art-top{margin-left:20px}
.art-bottom strong{font-size:16px}
.strip .wrap{align-items:start;flex-direction:column;gap:10px;padding:18px 0}
.section{padding:55px 0}
.section-heading{display:block}
.section-heading>p{margin-top:20px;font-size:14px}
.resource-grid{grid-template-columns:1fr}
.resource-card{padding:24px}
.card-top{margin-bottom:17px}
.search{width:100%}
.search input{width:100%}
.safety{padding:50px 0}
.safety-layout,.community{grid-template-columns:1fr;gap:35px}
.community-card{padding:30px}
.research{align-items:start;flex-direction:column;gap:20px}
.support-inner{grid-template-columns:1fr;padding:30px;gap:35px}
.support aside{padding:25px 0 0;border-left:0;border-top:1px solid #ffffff30}
.support h2{font-size:38px}
.footer-top{grid-template-columns:1fr 1fr;gap:30px}
.footer-top>div:first-child{grid-column:1/-1}
.footer-bottom{flex-direction:column;gap:10px}
.topline{font-size:10px}
.topline button{font-size:10px}
.topline button span{margin-left:4px}
#hub-list{grid-template-columns:1fr 1fr}
.dialog-head h2{font-size:28px}
dialog{padding:22px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*{transition:none!important}
}

.topline button{display:flex;align-items:center;gap:7px}
.topline button img{width:20px;height:14px;object-fit:cover;border-radius:2px}
.flag-icon{width:27px;height:19px;object-fit:cover;box-shadow:0 0 0 1px #0001;border-radius:2px}
.brand strong{max-width:235px;font-size:17px}
h1{font-size:clamp(40px,4.4vw,65px);letter-spacing:-2.6px}
h1 em{overflow-wrap:anywhere}
nav{gap:22px;font-size:13px}
.nav-country{border:0;background:none;padding:0;color:inherit;font-size:13px}
.quote-menu{position:relative}
.quote-menu>.button{background:#0047ff;font-size:12px}
.quote-menu>.button:hover{background:#ed087a}
.quote-options{display:none;position:absolute;right:0;top:100%;width:240px;padding:13px;background:white;border:1px solid #dce3d9;border-radius:5px;box-shadow:0 12px 35px #0001}
.quote-options a{display:block;padding:9px;font-size:13px}
.quote-options a:hover{background:#f3f4ed}
.quote-menu:hover .quote-options,.quote-menu:focus-within .quote-options{display:block}
.country-art{background:radial-gradient(ellipse at 85% 10%,var(--primary),transparent 75%),var(--ink);min-height:490px}
.country-art .art-top{margin-left:16px;gap:16px}
.country-art .art-top span:last-child{max-width:160px}
.flag-stage{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:20px;padding:45px 10px}
.flag-frame{width:80%;max-width:330px;transform:rotate(-7deg);box-shadow:0 25px 65px #0005;border:7px solid #ffffff22;border-radius:6px;overflow:hidden}
.flag-frame img{width:100%;display:block;height:180px;object-fit:cover}
.flag-caption{font-size:10px;letter-spacing:1px;opacity:.75;text-align:center}
.art-bottom{margin-top:auto}
.strip a{font-size:12px;font-weight:600;color:var(--primary)}
.results-bar{display:flex;align-items:center;justify-content:space-between;gap:20px}
.results-bar button{border:0;background:none;font-size:11px;color:var(--primary)}
.resource-card .card-category{max-width:70%;text-align:right}
.card-description{font-size:13px!important}
.resource-card .source-label{font-size:10px;line-height:1.5;color:#7b847d;margin-bottom:20px;overflow-wrap:anywhere}
.card-category.local{color:var(--primary);font-weight:600}
.local-band{padding:75px 0;background:var(--ink);color:white}
.local-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:100px}
.local-intro{font-size:16px;color:#d1dcd5;max-width:460px;margin-top:25px}
.local-band .eyebrow{color:#d0ddd4}
.local-official{font-size:15px;color:var(--accent);font-weight:600;display:inline-block;margin-top:10px}
.local-band .source-note{color:#bccdc1;max-width:420px}
.help-stack article{border-bottom:1px solid #ffffff25;padding:0 0 24px;margin-bottom:24px}
.help-stack article:last-child{margin:0;border:0;padding-bottom:0}
.help-stack article>span{font-size:9px;letter-spacing:1.5px;color:var(--accent)}
.help-stack h3{font-size:20px;font-weight:500;margin:10px 0}
.help-stack p{font-size:14px;color:#c1d0c6;margin-bottom:8px}
.help-stack a{font-size:13px;color:var(--accent)}
.local-focus{display:grid;grid-template-columns:1.1fr 1fr;gap:40px 70px;align-items:center}
.focus-description{max-width:480px;color:#657269;font-size:16px;margin-top:23px}
.focus-card{padding:35px;background:color-mix(in srgb,var(--accent) 18%,#fff);border:1px solid color-mix(in srgb,var(--accent) 40%,#ddd);border-radius:7px}
.focus-card h3{font-size:29px;font-weight:500;letter-spacing:-1px;line-height:1.2;margin:20px 0}
.focus-card p{font-size:15px;color:#536257;margin:0}
.sector-row{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:30px}
.sector-row article{border-top:1px solid #dce3d9;padding-top:25px}
.sector-row article>span{font-size:11px;color:var(--primary)}
.sector-row h3{font-size:20px;font-weight:500;margin:12px 0}
.sector-row p{font-size:14px;color:#637068;margin-bottom:0;max-width:480px}
.faq-section{display:grid;grid-template-columns:1fr 1.4fr;gap:80px;padding-bottom:80px}
.faq-list details{border-bottom:1px solid #dce3d9;padding:19px 0}
.faq-list details:first-child{padding-top:0}
.faq-list summary{font-size:16px;font-weight:600;cursor:pointer;list-style:none;display:flex;gap:25px;justify-content:space-between}
.faq-list summary:after{content:'+';color:var(--primary)}
.faq-list details[open] summary:after{content:'−'}
.faq-list p{font-size:14px;color:#647068;margin:15px 0 0}
.network-section{padding:0 0 80px}
.network-search{max-width:420px;margin-bottom:25px}
.network-search input{width:100%}
.network-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.hub-card{display:flex;gap:12px;align-items:center;padding:17px;background:#fff;border:1px solid #dce3d9;border-radius:5px;font-size:12px;line-height:1.4;transition:transform .2s,border-color .2s}
.hub-card:hover{transform:translateY(-2px);border-color:var(--primary)}
.hub-card img{width:30px;height:21px;object-fit:cover;border:1px solid #0001;border-radius:2px}
.hub-card>span:last-child{margin-left:auto;color:var(--primary)}
.hub-card[aria-current=page]{background:color-mix(in srgb,var(--primary) 7%,white);border-color:var(--primary)}
#hub-list{margin:24px 0 12px}
#hub-list a{display:flex;align-items:center;gap:9px}
#hub-list img{width:25px;height:17px;object-fit:cover;border:1px solid #0001}
.empty-state{grid-column:1/-1;padding:35px;background:#eef2e8;border-radius:5px;font-size:15px}
[hidden]{display:none!important}
.region-hero h1{font-size:clamp(45px,5vw,70px)}
.region-card{background:var(--ink);padding:45px;color:white;border-radius:80px 8px 8px 8px;display:flex;flex-direction:column;min-height:480px;justify-content:center}
.region-flags{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.region-flags img{width:100%;height:40px;object-fit:cover;border:1px solid #ffffff25;border-radius:3px}
.region-card p{font-size:13px;color:#b9cbd7;margin:30px 0 0}
.region-number{font-size:65px;line-height:1.2;letter-spacing:-3px;color:var(--accent);margin:20px 0}
.region-card h2{font-size:25px;letter-spacing:-.6px}
.region-nav{margin-top:0}
.region-content{padding-top:30px}
@media(max-width:1100px){nav{gap:15px}
.brand strong{max-width:190px;font-size:15px}
.brand{gap:12px}
.brand img{width:90px}
.hero{gap:35px}
.country-art{min-height:460px}
.local-layout{gap:50px}
.network-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:800px){.brand strong{max-width:150px;font-size:14px}
nav{font-size:12px;gap:12px}
.quote-menu>.button{font-size:11px;padding:12px}
.local-layout{gap:35px}
.network-grid{grid-template-columns:repeat(2,1fr)}
.faq-section{gap:35px}
.topline button span{display:none}
}
@media(max-width:700px){.brand strong{max-width:210px;font-size:14px}
.brand img{width:80px}
.nav{height:85px}
nav{top:85px;font-size:15px;gap:20px}
.nav-country{text-align:left;font-size:15px}
.quote-options{position:static;width:100%;display:block;box-shadow:none;border:0;margin-top:8px;padding:0}
.quote-options a{padding-left:0}
.quote-menu>.button{width:100%;font-size:13px}
.hero .eyebrow{font-size:9px;letter-spacing:1.1px}
.hero h1{font-size:clamp(37px,9vw,54px);letter-spacing:-1.6px}
.country-art{min-height:390px}
.flag-stage{padding:30px 0}
.flag-frame{width:75%;max-width:290px}
.flag-frame img{height:155px}
.local-layout,.local-focus,.faq-section{grid-template-columns:1fr;gap:35px}
.local-band{padding:50px 0}
.sector-row{gap:20px}
.sector-row h3{font-size:18px}
.focus-card{padding:28px}
.faq-section{padding-bottom:50px}
.network-grid{gap:9px}
.hub-card{font-size:11px;padding:13px;gap:9px}
.hub-card img{width:25px;height:18px}
.network-section{padding-bottom:55px}
.region-card{min-height:380px;padding:35px}
.region-flags{gap:16px}
.region-flags img{height:30px}
.topline>.wrap>span{font-size:9px}
.topline button{max-width:50%;font-size:9px}
.flag-caption{font-size:9px}
.country-art .art-top span:last-child{max-width:145px}
.footer-top .brand strong{max-width:220px}
}
@media(max-width:370px){.brand strong{max-width:145px}
.network-grid{grid-template-columns:1fr}
.sector-row{grid-template-columns:1fr}
.topline>.wrap>span{max-width:46%}
}


/* Readable paragraph copy. Smaller source labels and controls remain separate. */
main p:not(.eyebrow):not(.source-note):not(.count):not(.card-category):not(.source-label){font-size:17px;line-height:1.7}
.clipboard-helper{position:fixed;left:-10000px;top:0}

/* Keep the G5 mark at its desktop width and scale it with the mobile viewport. */
.brand img{width:170px;height:auto;flex-shrink:0}
@media(max-width:900px){.brand img{width:clamp(80px,24vw,150px)}}
/* Paragraphs have a readable minimum; source labels use their own size. */
body p{font-size:max(17px,1em)!important}
.card-description{font-size:17px!important}
.resource-card .source-label{font-size:15px!important}
