/* Global Food Round — accessibility + responsive presentation layer.
   This file intentionally changes presentation only. Existing site data,
   country/basket content and application logic remain untouched. */

:root{
  --gfr-a11y-blue:#165dff;
  --gfr-a11y-cyan:#10a9c9;
  --gfr-a11y-violet:#7048e8;
  --gfr-a11y-gold:#f2b705;
  --gfr-a11y-ink:#0b2454;
  --gfr-a11y-paper:#ffffff;
  --gfr-a11y-focus:#ffd43b;
  --gfr-a11y-radius:18px;
}

/* Readability first: comfortable for older readers without changing copy. */
html{font-size:18px;text-size-adjust:100%;-webkit-text-size-adjust:100%;scroll-padding-top:104px}
body{font-family:"Nunito",Inter,Arial,sans-serif;line-height:1.55}
p,li,label,input,select,textarea,button{line-height:1.5}
p,li{font-size:clamp(1rem,.93rem + .18vw,1.12rem)}
small{line-height:1.45}
button,a,input,select,textarea{touch-action:manipulation}
button,input,select,textarea{min-height:44px}
input,select,textarea{font-size:16px}
img,svg{max-width:100%}

/* Strong, consistent keyboard focus. */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:4px solid var(--gfr-a11y-focus)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 2px #14213d!important;
}

/* Skip link is injected by accessibility.js. */
.gfr-skip-link{
  position:fixed;top:10px;left:10px;z-index:100000;
  transform:translateY(-160%);padding:12px 18px;border-radius:12px;
  background:#fff;color:#071a33!important;border:3px solid #071a33;
  font-weight:1000;text-decoration:underline!important;
}
.gfr-skip-link:focus{transform:none}

/* More deliberate, colorful visual hierarchy while preserving text/data. */
.site-header{
  gap:16px;
  box-shadow:0 7px 28px rgba(7,31,75,.16);
}
.brand{font-size:clamp(1.02rem,.94rem + .35vw,1.34rem);font-weight:1000}
.site-header nav a{font-size:clamp(.92rem,.86rem + .16vw,1.02rem);font-weight:900}
.section-heading h1,.section-heading h2,.section-heading h3,
.hero h1,.volunteer-hero h1,.thanks-card h1{
  text-wrap:balance;
}

/* A restrained rainbow system: blue/cyan/violet/gold rather than random colors. */
#country-allocation,
.gfr-procurement-backbone,
#method,
#transparency,
#funding-safeguards,
.volunteer-cta,
.cta-section,
.form-section,
.safeguards-section{
  position:relative;
}
#country-allocation::before,
.gfr-procurement-backbone::before,
#method::before,
#transparency::before,
#funding-safeguards::before,
.volunteer-cta::before,
.cta-section::before,
.form-section::before,
.safeguards-section::before{
  content:"";display:block;height:5px;width:min(180px,42vw);border-radius:999px;
  margin:0 0 18px;
  background:linear-gradient(90deg,var(--gfr-a11y-blue),var(--gfr-a11y-cyan),var(--gfr-a11y-violet),var(--gfr-a11y-gold));
}
.glass,.gfr-project-post,.allocation-country,.gfr-map-summary-card,.gfr-map-percent-payment-panel{
  backdrop-filter:blur(18px) saturate(115%);
  -webkit-backdrop-filter:blur(18px) saturate(115%);
}
.primary-btn,.form-submit,.gfr-map-payment-cta,.gfr-map-explicit-select-btn{
  min-height:52px;
  font-weight:1000;
}
.secondary-btn,.filter,.share-presets button,.gfr-region-controls button,.gfr-zoom-controls button,
.gfr-map-summary-actions button,.allocation-toolbar-actions button{
  min-height:48px;
  font-weight:900;
}

/* Accessibility launcher and panel. */
.gfr-a11y-launcher{
  position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));
  z-index:99990;display:flex;align-items:center;gap:9px;
  min-height:58px;padding:10px 17px;border:3px solid #fff;border-radius:999px;
  background:linear-gradient(135deg,#165dff,#7048e8);color:#fff;
  box-shadow:0 10px 30px rgba(17,44,100,.3);font-weight:1000;font-size:17px;cursor:pointer;
}
.gfr-a11y-launcher .gfr-a11y-icon{font-size:21px;line-height:1}
.gfr-a11y-panel{
  position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 72px);
  z-index:99989;width:min(390px,calc(100vw - 24px));max-height:min(76dvh,690px);overflow:auto;
  padding:18px;border:3px solid #183153;border-radius:22px;background:#fff;color:#0a2242;
  box-shadow:0 24px 70px rgba(0,0,0,.28);overscroll-behavior:contain;
}
.gfr-a11y-panel[hidden]{display:none!important}
.gfr-a11y-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.gfr-a11y-head strong{font-size:24px;line-height:1.15}
.gfr-a11y-close{width:48px;min-width:48px;height:48px;border:2px solid #ccd7e8;border-radius:14px;background:#f6f8fc;color:#0a2242;font-size:26px;cursor:pointer}
.gfr-a11y-intro{margin:0 0 14px;font-size:16px!important;color:#324a68}
.gfr-a11y-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.gfr-a11y-option{
  min-height:58px;padding:10px 12px;border:2px solid #b9cae0;border-radius:14px;background:#f7faff;color:#0a2242;
  font-size:16px;font-weight:900;text-align:left;cursor:pointer;
}
.gfr-a11y-option[aria-pressed="true"]{border-color:#0a4dcc;background:#e8f0ff;box-shadow:inset 0 0 0 2px #0a4dcc}
.gfr-a11y-wide{grid-column:1/-1}
.gfr-a11y-note{margin:13px 0 0;padding:11px 12px;border-radius:12px;background:#fff7d6;color:#3b2d00;font-size:14px!important;font-weight:800}
.gfr-a11y-statement-toggle{width:100%;margin-top:12px;min-height:48px;border:2px solid #183153;border-radius:13px;background:#fff;color:#0a2242;font-weight:1000;cursor:pointer}
.gfr-a11y-statement{margin-top:10px;padding:14px;border:2px solid #d7e0ec;border-radius:14px;background:#f9fbfd}
.gfr-a11y-statement[hidden]{display:none!important}
.gfr-a11y-statement h2{margin:0 0 8px;font-size:21px;color:#0a2242}
.gfr-a11y-statement p,.gfr-a11y-statement li{font-size:14.5px!important;line-height:1.55;color:#243b57}
.gfr-a11y-statement ul{padding-left:21px}
.gfr-a11y-reset{width:100%;margin-top:10px;min-height:48px;border:0;border-radius:13px;background:#183153;color:#fff;font-weight:1000;cursor:pointer}

/* User-selected accessibility modes. */
body.gfr-link-emphasis a:not(.gfr-a11y-launcher){text-decoration:underline!important;text-decoration-thickness:3px!important;text-underline-offset:4px!important}
body.gfr-reduce-motion *,
body.gfr-reduce-motion *::before,
body.gfr-reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body.gfr-big-cursor,
body.gfr-big-cursor :where(a,button,input,select,textarea,label,[role="button"]){cursor:default!important}
@media (pointer:fine){
  body.gfr-big-cursor{cursor:crosshair!important}
  body.gfr-big-cursor :where(a,button,[role="button"]){cursor:pointer!important}
}
body.gfr-color-safe{
  --green:#1a5fb4!important;--amber:#ffd43b!important;
}
body.gfr-color-safe :where(.active,[aria-pressed="true"],.is-selected,.selected){
  outline:3px solid #111!important;outline-offset:2px!important;
}
body.gfr-color-safe :where(.active,[aria-pressed="true"],.is-selected,.selected)::after{
  border-color:#111!important;
}
body.gfr-color-safe .gfr-map-line-key.is-selected,
body.gfr-color-safe .gfr-map-ready-key{filter:grayscale(1) contrast(1.4)}
body.gfr-reading-mode{
  --bg:#f7fbff!important;--surface:#fff!important;--text:#101820!important;--muted:#34495e!important;--line:rgba(16,24,32,.22)!important;
  background:#f7fbff!important;color:#101820!important;
}
body.gfr-reading-mode .ambient-bg{opacity:.08!important}
body.gfr-reading-mode :where(.glass,.gfr-project-post,.allocation-country,.gfr-map-summary-card,.gfr-map-percent-payment-panel,.gfr-procurement-status>div){
  background:#fff!important;color:#101820!important;border-color:#a9bdd3!important;box-shadow:0 8px 24px rgba(18,55,91,.12)!important;
}
body.gfr-reading-mode :where(.glass,.gfr-project-post,.allocation-country,.gfr-map-summary-card,.gfr-map-percent-payment-panel) :where(p,li,small,span,label,h1,h2,h3,h4,strong){color:inherit}
body.gfr-reading-mode .site-header{background:rgba(255,255,255,.96)!important;color:#0b2454!important}
body.gfr-reading-mode footer{color:#0b2454!important}

body.gfr-text-large main :where(p,li,label,input,select,textarea,button),
body.gfr-text-large footer,
body.gfr-text-large .site-header nav a{font-size:20px!important;line-height:1.62!important}
body.gfr-text-large main :where(h1){font-size:clamp(38px,5vw,66px)!important;line-height:1.08!important}
body.gfr-text-large main :where(h2){font-size:clamp(31px,4vw,48px)!important;line-height:1.12!important}
body.gfr-text-large main :where(h3){font-size:clamp(24px,3vw,34px)!important;line-height:1.16!important}
body.gfr-text-xlarge main :where(p,li,label,input,select,textarea,button),
body.gfr-text-xlarge footer,
body.gfr-text-xlarge .site-header nav a{font-size:23px!important;line-height:1.68!important}
body.gfr-text-xlarge main :where(h1){font-size:clamp(42px,6vw,72px)!important;line-height:1.08!important}
body.gfr-text-xlarge main :where(h2){font-size:clamp(34px,4.5vw,54px)!important;line-height:1.12!important}
body.gfr-text-xlarge main :where(h3){font-size:clamp(27px,3.2vw,38px)!important;line-height:1.16!important}
/* Keep geography overlays readable but compact even in text enlargement modes. */
body:is(.gfr-text-large,.gfr-text-xlarge) .gfr-map-stage :where(button,input,span,small,strong,em,b){line-height:1.18}

/* Tablet and smaller laptops. */
@media(max-width:1100px){
  .site-header{padding-left:22px!important;padding-right:22px!important}
  .site-header nav{gap:8px;flex-wrap:wrap;justify-content:flex-end}
  main>section:not(.top-process-banner){padding-left:clamp(18px,3vw,30px);padding-right:clamp(18px,3vw,30px)}
  .gfr-map-first-layout,.gfr-map-choice-layout{grid-template-columns:1fr!important}
  .gfr-map-support-row{grid-template-columns:1fr!important}
}

/* Smartphones: one clear reading flow, horizontal control strips, generous touch targets. */
@media(max-width:760px){
  html{font-size:17px;scroll-padding-top:86px}
  body{overflow-x:hidden!important}
  .site-header{
    padding:10px 12px!important;align-items:center!important;gap:8px!important;
    flex-wrap:wrap!important;backdrop-filter:blur(16px)!important;
  }
  .brand{min-width:0;gap:8px!important}
  .brand-logo-image,.brand-mark{flex:0 0 auto}
  .brand span:last-child{font-size:18px!important;white-space:nowrap}
  .site-header nav{
    order:2;width:100%;display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start!important;
    gap:7px!important;overflow-x:auto!important;padding:2px 0 5px!important;scrollbar-width:none;scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .site-header nav::-webkit-scrollbar{display:none}
  .site-header nav a{flex:0 0 auto!important;min-height:44px;display:flex;align-items:center;padding:8px 12px!important;border-radius:999px;scroll-snap-align:start}

  main>section:not(.top-process-banner),.gfr-procurement-backbone,.volunteer-hero,.safeguards-section,.form-section{
    padding-left:14px!important;padding-right:14px!important;
  }
  .section-heading{margin-bottom:20px!important}
  .section-heading h2,.volunteer-hero h1{font-size:clamp(30px,9vw,42px)!important;line-height:1.08!important}
  .section-heading p,.hero-text{font-size:18px!important;line-height:1.58!important}

  .top-process-banner{overflow-x:auto!important;scrollbar-width:none}
  .top-process-banner::-webkit-scrollbar{display:none}
  .process-banner-inner{min-width:max-content!important;padding:8px 10px!important;gap:8px!important}
  .process-banner-inner span{min-height:44px;display:flex;align-items:center;font-size:15px!important}

  /* Region and percentage choices remain horizontal instead of turning into tall button columns. */
  .gfr-map-controls{display:block!important}
  .gfr-region-controls,
  .share-presets,
  .gfr-map-share-presets,
  .filter-row{
    display:flex!important;grid-template-columns:none!important;flex-wrap:nowrap!important;gap:8px!important;
    overflow-x:auto!important;scroll-snap-type:x proximity;scrollbar-width:none;padding:3px 2px 8px!important;
    -webkit-overflow-scrolling:touch;
  }
  .gfr-region-controls::-webkit-scrollbar,.share-presets::-webkit-scrollbar,.gfr-map-share-presets::-webkit-scrollbar,.filter-row::-webkit-scrollbar{display:none}
  .gfr-region-controls button,.share-presets button,.gfr-map-share-presets button,.filter-row button{
    flex:0 0 auto!important;min-width:72px!important;min-height:50px!important;padding:10px 14px!important;scroll-snap-align:start;white-space:nowrap!important;
  }
  .gfr-zoom-controls{display:flex!important;gap:8px!important;margin-top:8px!important}
  .gfr-zoom-controls button{min-width:52px!important;min-height:50px!important}

  .gfr-map-stage{height:clamp(520px,72svh,660px)!important;min-height:520px!important;border-radius:18px!important}
  .gfr-map-left-toolrail{
    left:8px!important;right:58px!important;top:auto!important;bottom:8px!important;width:auto!important;max-width:none!important;
  }
  .gfr-map-left-toolrail .gfr-brush-top-cta{
    display:flex!important;flex-direction:row!important;align-items:stretch!important;gap:7px!important;width:100%!important;
  }
  .gfr-map-stage .gfr-map-left-toolrail .gfr-brush-top-cta #gfrMapBrushToggle{
    flex:1 1 auto!important;width:auto!important;min-height:60px!important;height:auto!important;padding:7px 10px!important;
    display:grid!important;grid-template-columns:auto 1fr auto!important;grid-template-rows:auto!important;grid-template-areas:"icon copy state"!important;
    gap:8px!important;border-radius:16px!important;
  }
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle .gfr-brush-top-icon{width:38px!important;height:38px!important;min-width:38px!important;font-size:22px!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle .gfr-brush-copy{align-items:flex-start!important;text-align:left!important;gap:1px!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle .gfr-brush-copy strong{font-size:16px!important;text-align:left!important;white-space:normal!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle .gfr-brush-copy small{font-size:11px!important;text-align:left!important;line-height:1.15!important}
  .gfr-map-stage .gfr-map-left-toolrail .gfr-brush-top-cta #gfrMapBrushState{font-size:12px!important;padding:7px 8px!important;min-width:46px!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrBrushClear{flex:0 0 auto!important;width:auto!important;min-width:76px!important;min-height:60px!important;padding:8px 12px!important;font-size:15px!important}
  .gfr-brush-live-message{position:absolute;left:0;bottom:66px;max-width:100%;font-size:13px!important}
  .gfr-map-fullscreen-btn{width:48px!important;height:48px!important;min-width:48px!important;right:8px!important;top:8px!important}

  .gfr-map-support-row,.gfr-map-first-layout,.gfr-map-choice-layout,.gfr-map-trust-ribbon,
  .verification-grid,.method-grid,.gfr-procurement-grid,.gfr-procurement-status,.form-grid,.safeguard-grid{
    grid-template-columns:1fr!important;
  }
  .gfr-map-summary-card,.gfr-map-hover-preview,.gfr-map-percent-payment-panel{min-width:0!important;width:100%!important}
  .gfr-map-summary-actions{display:flex!important;gap:8px!important}
  .gfr-map-summary-actions button{flex:1 1 0!important;min-height:52px!important}
  .gfr-map-percent-split{grid-template-columns:1fr!important}
  .allocation-toolbar-actions{display:flex!important;gap:8px!important}
  .allocation-toolbar-actions button{flex:1 1 0!important}
  .allocation-list,.country-grid,.selected-results-grid{grid-template-columns:1fr!important;overflow:visible!important}

  .impact-side-note{max-width:calc(100vw - 24px)!important;left:12px!important;right:12px!important;bottom:86px!important}
  .basket-dialog,.image-lightbox,#countryDialog{width:calc(100vw - 20px)!important;max-width:none!important;max-height:88dvh!important;margin:auto!important}
  .basket-dialog-gallery{grid-template-columns:1fr!important}
  .lightbox-toolbar{flex-wrap:wrap!important}
  .research-form{padding:18px!important}
  .hero-actions,.volunteer-cta-actions{display:flex!important;flex-direction:column!important;align-items:stretch!important}
  .hero-actions a,.volunteer-cta-actions a{width:100%!important;text-align:center!important}
  footer{padding:24px 14px 100px!important;gap:12px!important;flex-direction:column!important;align-items:flex-start!important}

  .gfr-a11y-launcher{right:12px;bottom:max(12px,env(safe-area-inset-bottom));min-height:56px;padding:9px 14px;font-size:16px}
  .gfr-a11y-panel{right:12px;bottom:78px;width:calc(100vw - 24px);max-height:calc(100dvh - 104px);padding:15px;border-radius:18px}
}

@media(max-width:430px){
  .gfr-a11y-grid{grid-template-columns:1fr}
  .gfr-a11y-wide{grid-column:auto}
  .gfr-map-stage{height:clamp(500px,70svh,610px)!important;min-height:500px!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle .gfr-brush-copy small{display:none!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle .gfr-brush-copy strong{font-size:15px!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrBrushClear{min-width:68px!important;padding-inline:9px!important}
}

@media(max-width:360px){
  .brand span:last-child{font-size:16px!important}
  .site-header nav a{font-size:14px!important;padding-inline:10px!important}
  main>section:not(.top-process-banner),.gfr-procurement-backbone,.volunteer-hero,.safeguards-section,.form-section{padding-left:10px!important;padding-right:10px!important}
  .gfr-map-stage{min-height:480px!important;height:68svh!important}
  .gfr-map-left-toolrail{left:6px!important;right:54px!important;bottom:6px!important}
  .gfr-map-stage .gfr-map-left-toolrail .gfr-brush-top-cta #gfrMapBrushToggle{padding-inline:7px!important;gap:5px!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle .gfr-brush-top-icon{width:32px!important;height:32px!important;min-width:32px!important;font-size:19px!important}
  .gfr-map-stage .gfr-map-left-toolrail .gfr-brush-top-cta #gfrMapBrushState{min-width:40px!important;padding-inline:5px!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrBrushClear{min-width:62px!important;font-size:14px!important}
}

/* Landscape phones: preserve map room without sacrificing controls. */
@media(max-height:520px) and (orientation:landscape){
  .site-header{position:relative!important}
  .gfr-map-stage{height:82svh!important;min-height:360px!important}
  .gfr-a11y-panel{max-height:calc(100dvh - 90px)}
}

/* Honor the operating-system preference even before the user opens our panel. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* QA refinement: the existing explanatory aside becomes part of the reading flow
   instead of covering the page. No wording is removed or rewritten. */
.impact-side-note{
  position:relative!important;inset:auto!important;transform:none!important;
  width:min(1120px,calc(100% - 40px))!important;max-width:none!important;
  margin:22px auto 14px!important;padding:22px 26px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)!important;
  grid-template-areas:
    "kicker paths"
    "lead split"
    "percent split"
    "caution action"!important;
  gap:10px 22px!important;z-index:3!important;
}
.impact-side-note>.eyebrow{grid-area:kicker!important;margin:0!important}
.impact-side-note>.impact-side-lead{grid-area:lead!important;margin:0!important;font-size:18px!important;line-height:1.48!important}
.impact-side-note>.impact-side-paths{grid-area:paths!important;margin:0!important;align-self:start!important}
.impact-side-note>.impact-side-percent{grid-area:percent!important;margin:0!important;font-size:17px!important}
.impact-side-note>.impact-side-split{grid-area:split!important;margin:0!important;align-self:start!important}
.impact-side-note>.impact-side-caution{grid-area:caution!important;margin:0!important;font-size:15px!important;line-height:1.45!important}
.impact-side-note>a{grid-area:action!important;align-self:end!important;justify-self:start!important;min-height:48px!important;display:inline-flex!important;align-items:center!important}
.impact-side-note>.impact-side-close{position:absolute!important;top:10px!important;right:10px!important;width:48px!important;height:48px!important;min-width:48px!important}

@media(max-width:760px){
  .impact-side-note{
    width:calc(100% - 24px)!important;margin:12px auto 10px!important;padding:18px 16px!important;
    display:block!important;max-width:none!important;
  }
  .impact-side-note>:not(.impact-side-close){margin-top:10px!important;margin-bottom:0!important}
  .impact-side-note>.eyebrow{padding-right:50px!important;font-size:14px!important}
  .impact-side-note>.impact-side-lead{font-size:17px!important;line-height:1.5!important}
  .impact-side-note>.impact-side-percent,.impact-side-note>.impact-side-caution{font-size:15px!important;line-height:1.5!important}
  .impact-side-note>.impact-side-paths,.impact-side-note>.impact-side-split{gap:8px!important}

  /* Keep the always-available accessibility control from covering map actions. */
  .gfr-a11y-launcher{width:58px!important;min-width:58px!important;height:58px!important;padding:0!important;justify-content:center!important;border-radius:50%!important}
  .gfr-a11y-launcher>span:last-child{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  .gfr-a11y-launcher .gfr-a11y-icon{font-size:20px!important}
}

@media(max-width:360px){
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle{position:relative!important;grid-template-columns:1fr!important;grid-template-areas:"copy"!important;padding:8px 38px 8px 8px!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle .gfr-brush-top-icon{display:none!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle .gfr-brush-copy{grid-area:copy!important;align-items:center!important}
  .gfr-map-stage .gfr-map-left-toolrail #gfrMapBrushToggle .gfr-brush-copy strong{font-size:14px!important;text-align:center!important;line-height:1.05!important}
  .gfr-map-stage .gfr-map-left-toolrail .gfr-brush-top-cta #gfrMapBrushState{position:absolute!important;right:5px!important;top:50%!important;transform:translateY(-50%)!important;min-width:34px!important;padding:6px 4px!important;font-size:10px!important}
}


/* Mobile map interaction QA: only Brush Mode changes the map gesture surface.
   Brush OFF preserves normal MapLibre pan/pinch behavior; Brush ON gives one-finger painting. */
@media(max-width:760px), (pointer:coarse){
  #gfrWorldMap.is-brush-mode #gfrMapCanvas,
  #gfrWorldMap.is-brush-mode #gfrMapCanvas .maplibregl-canvas{touch-action:none!important}
  #gfrMapBrushToggle,#gfrBrushClear,#gfrMapFullscreen,
  .gfr-region-controls button,.gfr-zoom-controls button,.gfr-map-summary-actions button,
  .allocation-toolbar-actions button,.gfr-map-open-basket-btn,.gfr-map-explicit-select-btn{
    touch-action:manipulation!important;pointer-events:auto!important;
  }
}

@media(max-width:760px){
  .gfr-map-choice-layout{
    display:grid!important;
    grid-template-columns:minmax(calc(100vw - 28px),calc(100vw - 28px)) 54px minmax(calc(100vw - 28px),calc(100vw - 28px))!important;
    gap:10px!important;
    align-items:start!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    scroll-snap-type:x proximity!important;
    overscroll-behavior-inline:contain!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .gfr-map-choice-layout::-webkit-scrollbar{display:none!important}
  .gfr-map-choice-left{
    grid-column:1!important;
    min-width:0!important;
    scroll-snap-align:start!important;
  }
  .gfr-map-or-divider{
    grid-column:2!important;
    align-self:start!important;
    width:54px!important;
    min-height:0!important;
    margin:18px 0 0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
  }
  .gfr-map-or-divider::before,.gfr-map-or-divider::after{display:none!important}
  .gfr-map-or-divider span{
    min-width:50px!important;
    min-height:44px!important;
    padding:7px 8px!important;
    font-size:22px!important;
  }
  .gfr-map-global-choice{
    grid-column:3!important;
    position:relative!important;
    top:auto!important;
    min-width:0!important;
    width:100%!important;
    scroll-snap-align:start!important;
  }
}

/* Mobile DoubleTap overview mode.
   This is intentionally presentation-only: no project data, legal wording,
   payment/verification logic, or desktop layout is changed. */
@media(max-width:760px){
  html,body{touch-action:manipulation}
  html.gfr-mobile-overview{
    overflow-x:hidden!important;
  }
  html.gfr-mobile-overview body{
    /* 44% is small enough to show the map + Or + World Round side-by-side
       as one visual overview, while remaining a reversible view mode. */
    zoom:.44;
    width:227.272727%!important;
    max-width:none!important;
    overflow-x:hidden!important;
  }
  /* In overview mode the paired choice is meant to be seen at once rather
     than one pane at a time. Normal swipe navigation returns on DoubleTap. */
  html.gfr-mobile-overview .gfr-map-choice-layout{
    overflow-x:visible!important;
    scroll-snap-type:none!important;
  }
}
