/* ===== Regions & Blog ===== */

/* ---- CSS flag infographics (recognisable approximations) ---- */
.flag{ width:100%; aspect-ratio:3/2; border-radius:7px; overflow:hidden; position:relative; border:1px solid rgba(8,39,57,.1); box-shadow:0 4px 14px -4px rgba(8,39,57,.3); background-size:cover; }
.flag.ie{ background:linear-gradient(90deg,#169B62 0 33.33%,#fff 0 66.66%,#FF883E 0); }
.flag.fr{ background:linear-gradient(90deg,#0055A4 0 33.33%,#fff 0 66.66%,#EF4135 0); }
.flag.it{ background:linear-gradient(90deg,#008C45 0 33.33%,#fff 0 66.66%,#CD212A 0); }
.flag.de{ background:linear-gradient(180deg,#000 0 33.33%,#DD0000 0 66.66%,#FFCE00 0); }
.flag.nl{ background:linear-gradient(180deg,#AE1C28 0 33.33%,#fff 0 66.66%,#21468B 0); }
.flag.es{ background:linear-gradient(180deg,#AA151B 0 25%,#F1BF00 0 75%,#AA151B 0); }
.flag.jp{ background:#fff; }
.flag.jp::before{ content:""; position:absolute; inset:0; margin:auto; width:42%; aspect-ratio:1; border-radius:50%; background:#BC002D; }
.flag.in{ background:linear-gradient(180deg,#FF9933 0 33.33%,#fff 0 66.66%,#138808 0); }
.flag.in::before{ content:""; position:absolute; inset:0; margin:auto; width:15%; aspect-ratio:1; border-radius:50%; border:2px solid #0A3D91; box-sizing:border-box; }
.flag.sg{ background:linear-gradient(180deg,#EF3340 0 50%,#fff 0); }
.flag.sg::before{ content:""; position:absolute; top:12%; left:7%; width:26%; aspect-ratio:1; border-radius:50%; background:#EF3340; box-shadow:inset 7px -1px 0 #fff; }
.flag.us{ background:repeating-linear-gradient(180deg,#B22234 0 7.69%,#fff 7.69% 15.38%); }
.flag.us::before{ content:""; position:absolute; top:0; left:0; width:40%; height:53.8%; background:#3C3B6E; }
.flag.ca{ background:linear-gradient(90deg,#D52B1E 0 25%,#fff 0 75%,#D52B1E 0); }
.flag.ca::before{ content:""; position:absolute; inset:0; margin:auto; width:15%; aspect-ratio:1; background:#D52B1E; clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 100%,50% 75%,21% 100%,32% 57%,2% 35%,39% 35%); }
.flag.au{ background:#00247D; }
.flag.au::before{ content:""; position:absolute; top:0; left:0; width:40%; height:50%; background:
  linear-gradient(45deg,transparent 44%,#fff 44% 56%,transparent 56%),
  linear-gradient(-45deg,transparent 44%,#fff 44% 56%,transparent 56%),
  linear-gradient(0deg,transparent 40%,#fff 40% 60%,transparent 60%),
  linear-gradient(90deg,transparent 40%,#fff 40% 60%,transparent 60%),
  linear-gradient(0deg,transparent 44%,#CF142B 44% 56%,transparent 56%),
  linear-gradient(90deg,transparent 44%,#CF142B 44% 56%,transparent 56%); background-color:#00247D; }
.flag.au::after{ content:""; position:absolute; right:14%; bottom:22%; width:11%; aspect-ratio:1; background:#fff; clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 100%,50% 75%,21% 100%,32% 57%,2% 35%,39% 35%); }
.flag.gb{ background-color:#012169; background-image:
  linear-gradient(45deg,transparent 42%,#fff 42% 58%,transparent 58%),
  linear-gradient(-45deg,transparent 42%,#fff 42% 58%,transparent 58%),
  linear-gradient(45deg,transparent 46%,#C8102E 46% 54%,transparent 54%),
  linear-gradient(-45deg,transparent 46%,#C8102E 46% 54%,transparent 54%),
  linear-gradient(0deg,transparent 37%,#fff 37% 63%,transparent 63%),
  linear-gradient(90deg,transparent 37%,#fff 37% 63%,transparent 63%),
  linear-gradient(0deg,transparent 42%,#C8102E 42% 58%,transparent 58%),
  linear-gradient(90deg,transparent 42%,#C8102E 42% 58%,transparent 58%); }
.flag.eu{ background:#003399; }
.flag.eu::before{ content:""; position:absolute; inset:0; margin:auto; width:42%; aspect-ratio:1; border-radius:50%; border:3px dashed #FFCC00; box-sizing:border-box; }
/* Nordic crosses */
.flag.dk{ background:#C8102E; }
.flag.dk::before{ content:""; position:absolute; inset:0; background:
  linear-gradient(90deg,transparent 30%,#fff 30% 44%,transparent 44%),
  linear-gradient(180deg,transparent 38%,#fff 38% 62%,transparent 62%); }
.flag.se{ background:#006AA7; }
.flag.se::before{ content:""; position:absolute; inset:0; background:
  linear-gradient(90deg,transparent 30%,#FECC00 30% 44%,transparent 44%),
  linear-gradient(180deg,transparent 38%,#FECC00 38% 62%,transparent 62%); }
.flag.fi{ background:#fff; }
.flag.fi::before{ content:""; position:absolute; inset:0; background:
  linear-gradient(90deg,transparent 30%,#003580 30% 44%,transparent 44%),
  linear-gradient(180deg,transparent 38%,#003580 38% 62%,transparent 62%); }
.flag.no{ background:#BA0C2F; }
.flag.no::before{ content:""; position:absolute; inset:0; background:
  linear-gradient(90deg,transparent 28%,#fff 28% 46%,transparent 46%),
  linear-gradient(180deg,transparent 36%,#fff 36% 64%,transparent 64%); }
.flag.no::after{ content:""; position:absolute; inset:0; background:
  linear-gradient(90deg,transparent 33%,#00205B 33% 41%,transparent 41%),
  linear-gradient(180deg,transparent 41%,#00205B 41% 59%,transparent 59%); }
/* Benelux + DACH */
.flag.be{ background:linear-gradient(90deg,#2D2926 0 33.33%,#FAE042 0 66.66%,#ED2939 0); }
.flag.lu{ background:linear-gradient(180deg,#ED2939 0 33.33%,#fff 0 66.66%,#00A1DE 0); }
.flag.at{ background:linear-gradient(180deg,#ED2939 0 33.33%,#fff 0 66.66%,#ED2939 0); }
.flag.ch{ background:#D52B1E; }
.flag.ch::before{ content:""; position:absolute; inset:0; background:
  linear-gradient(#fff,#fff) center/52% 18% no-repeat,
  linear-gradient(#fff,#fff) center/18% 52% no-repeat; }

/* ---- Regions we operate in (interactive flag cards) ---- */
.region-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(212px,1fr)); gap:18px; margin-top:46px; }
.region-card{ position:relative; overflow:hidden; text-align:left; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:22px 22px 20px; cursor:pointer; font:inherit; color:inherit; transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .3s; }
.region-card::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--grad-bright); transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.2,.8,.2,1); }
.region-card:hover, .region-card:focus-visible, .region-card.active{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:#CFE6D7; outline:none; }
.region-card:hover::after, .region-card:focus-visible::after, .region-card.active::after{ transform:scaleX(1); }
.rc-flags{ display:flex; gap:7px; margin-bottom:16px; min-height:26px; }
img.flag{ object-fit:cover; height:auto; display:block; background:#fff; }
.rc-flags .flag{ width:38px; box-shadow:0 3px 10px -3px rgba(8,39,57,.35); transition:transform .32s cubic-bezier(.2,.8,.2,1); }
.region-card:hover .rc-flags .flag, .region-card.active .rc-flags .flag{ transform:translateY(-3px); }
.region-card:hover .rc-flags .flag:nth-child(2), .region-card.active .rc-flags .flag:nth-child(2){ transform:translateY(-3px) rotate(4deg); }
.region-card:hover .rc-flags .flag:nth-child(3), .region-card.active .rc-flags .flag:nth-child(3){ transform:translateY(-3px) rotate(-4deg); }
.region-card:hover .rc-flags .flag:nth-child(4), .region-card.active .rc-flags .flag:nth-child(4){ transform:translateY(-3px) rotate(6deg); }
.rc-name{ display:block; font-family:var(--font-display),'Space Grotesk',sans-serif; font-weight:700; font-size:1.18rem; letter-spacing:-.02em; color:var(--ink); margin-bottom:7px; }
.rc-countries{ display:block; font-size:.9rem; color:var(--ink-soft); line-height:1.5; }

/* ---- Markets grid (flag cards) ---- */
.markets-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:20px; }
.market-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:22px; transition:transform .25s, box-shadow .25s, border-color .25s; }
.market-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:#CFE6D7; }
.market-card .flag-wrap{ width:84px; margin-bottom:16px; }
.market-card h3{ font-size:1.18rem; margin:0 0 6px; }
.market-card .mc-meta{ display:block; font-size:.82rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--green-deep); margin-bottom:10px; }
.market-card p{ margin:0; color:var(--ink-soft); font-size:.95rem; line-height:1.55; }

/* ---- Local expertise ---- */
.exp-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
@media(max-width:760px){ .exp-grid{ grid-template-columns:1fr; } }
.exp{ display:flex; gap:16px; align-items:flex-start; background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; }
.exp .exp-ic{ flex:none; width:48px; height:48px; border-radius:13px; background:#fff; border:1px solid var(--line); color:var(--green-deep); display:grid; place-items:center; }
.exp .exp-ic svg{ width:23px; height:23px; }
.exp h4{ margin:0 0 5px; font-size:1.06rem; }
.exp p{ margin:0; color:var(--ink-soft); font-size:.95rem; line-height:1.55; }

/* ---- Region stat band ---- */
.region-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
@media(max-width:720px){ .region-stats{ grid-template-columns:repeat(2,1fr); } }
.region-stat{ text-align:center; }
.region-stat .rs-big{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(2.2rem,4vw,3rem); line-height:1; background:var(--grad-bright); -webkit-background-clip:text; background-clip:text; color:transparent; }
.region-stat .rs-lbl{ margin-top:10px; color:var(--ink-soft); font-size:.92rem; }

/* ---- Region contact form (compact) ---- */
.region-form{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,4vw,56px); align-items:start; }
@media(max-width:860px){ .region-form{ grid-template-columns:1fr; } }
.region-form .form-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); padding:clamp(26px,3.5vw,40px); box-shadow:var(--shadow); }

/* ---- Blog ---- */
.post-cat svg{ width:14px; height:14px; }

/* Featured post */
.feature-card{ display:grid; grid-template-columns:1.05fr .95fr; gap:0; background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s, border-color .28s; }
.feature-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:#CFE6D7; }
@media(max-width:760px){ .feature-card{ grid-template-columns:1fr; } }
.feature-card .feature-body{ padding:clamp(28px,4vw,46px); display:flex; flex-direction:column; align-items:flex-start; }
.feature-card .post-cat{ display:inline-flex; align-items:center; gap:7px; font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--green-deep); background:var(--bg-soft); border:1px solid var(--line); padding:6px 12px; border-radius:999px; }
.feature-card h2{ font-size:clamp(1.6rem,2.6vw,2.1rem); line-height:1.12; margin:18px 0 12px; }
.feature-card p{ color:var(--ink-soft); line-height:1.6; margin:0 0 20px; max-width:46ch; }
.feature-card .post-meta{ display:flex; align-items:center; gap:10px; font-size:.85rem; color:var(--ink-faint); }
.feature-card .post-meta strong{ color:var(--ink); }
.feature-card .post-meta .dot{ width:4px; height:4px; border-radius:50%; background:var(--ink-faint); }
.feature-card .read{ display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--green-deep); margin-top:22px; }
.feature-card .read svg{ width:17px; height:17px; transition:transform .2s; }
.feature-card:hover .read svg{ transform:translateX(4px); }
.feature-art{ position:relative; background:var(--grad); overflow:hidden; min-height:300px; }
.feature-art .fa-globe{ position:absolute; inset:0; margin:auto; width:62%; aspect-ratio:1; border-radius:50%; border:1px solid rgba(255,255,255,.22); background:
  radial-gradient(circle at 32% 30%, rgba(255,255,255,.22), transparent 55%),
  repeating-linear-gradient(0deg, rgba(255,255,255,.13) 0 1px, transparent 1px 11%),
  repeating-linear-gradient(90deg, rgba(255,255,255,.13) 0 1px, transparent 1px 11%);
  box-shadow:inset 0 0 60px rgba(5,25,19,.4); }
.feature-art .fa-flag{ position:absolute; width:52px; border-radius:6px; box-shadow:0 8px 22px -6px rgba(5,25,19,.6); }
.feature-art .fa-flag.gb{ top:16%; left:18%; transform:rotate(-9deg); }
.feature-art .fa-flag.de{ top:24%; right:14%; transform:rotate(7deg); }
.feature-art .fa-flag.us{ bottom:20%; left:14%; transform:rotate(8deg); }
.feature-art .fa-flag.jp{ bottom:16%; right:18%; transform:rotate(-7deg); }
@media(max-width:760px){ .feature-art{ min-height:180px; } }

.blog-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:26px; }
.post-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); overflow:hidden; transition:transform .25s, box-shadow .25s, border-color .25s; }
.post-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:#CFE6D7; }
.post-card .post-top{ position:relative; padding:26px 26px 0; }
.post-card .post-cat{ display:inline-flex; align-items:center; gap:7px; font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--green-deep); background:var(--bg-soft); border:1px solid var(--line); padding:6px 12px; border-radius:999px; }
.post-card .post-body{ padding:18px 26px 26px; display:flex; flex-direction:column; flex:1; }
.post-card h3{ font-size:1.24rem; line-height:1.4; margin:0 0 16px; }
.post-card p{ margin:0 0 18px; color:var(--ink-soft); font-size:.96rem; line-height:1.75; }
.post-card .post-meta{ margin-top:auto; display:flex; align-items:center; gap:10px; font-size:.85rem; color:var(--ink-faint); }
.post-card .post-meta .dot{ width:4px; height:4px; border-radius:50%; background:var(--ink-faint); }
.post-card .read{ display:inline-flex; align-items:center; gap:7px; font-weight:700; color:var(--green-deep); margin-top:16px; }
.post-card .read svg{ width:16px; height:16px; }

/* Article body reuses .legal-doc prose; byline + featured strip */
.article-byline{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:30px; color:var(--ink-soft); font-size:.92rem; }
.article-byline .pill-tag{ background:var(--bg-soft); border:1px solid var(--line); color:var(--green-deep); padding:6px 13px; border-radius:999px; font-weight:700; font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; }
.article-byline .dot{ width:4px; height:4px; border-radius:50%; background:var(--ink-faint); }
.article-doc{ max-width:72ch; margin-inline:auto; }
.article-doc h2{ font-size:1.5rem; margin:40px 0 12px; }
.article-doc h3{ font-size:1.16rem; margin:28px 0 8px; }
.article-doc p{ color:var(--ink-soft); line-height:1.75; margin:0 0 1.1em; }
.article-doc ul{ color:var(--ink-soft); line-height:1.7; margin:0 0 1.2em; padding-left:1.3em; display:flex; flex-direction:column; gap:9px; }
.article-doc strong{ color:var(--ink); }
.article-doc .lead-intro{ font-size:1.14rem; color:var(--ink); line-height:1.65; margin-bottom:28px; }
.article-pull{ border-left:3px solid var(--green); background:var(--bg-soft); padding:18px 24px; border-radius:0 var(--r) var(--r) 0; margin:26px 0; font-family:'Space Grotesk',sans-serif; font-size:1.2rem; line-height:1.4; color:var(--ink); letter-spacing:-.01em; }