/* Regional cards: name -> real coverage -> plan -> price -> action. */
.gp-plan-card--regional .gp-region-map { height:144px; background:#f1f7f5; border:1px solid #e3ece8; }
.gp-plan-card--regional .gp-region-map::after { display:none; }
.gp-plan-card--regional .gp-region-map .gp-region-thumb { width:100%; height:100%; margin:0; object-fit:contain; object-position:right center; }
.gp-plan-card--regional .gp-region-map .gp-region-card-caption { top:18px; bottom:auto; left:15px; right:auto; width:40%; gap:8px; color:#102f45; text-shadow:none; }
.gp-plan-card--regional .gp-region-map .gp-region-card-caption strong { font-size:22px; line-height:1.12; overflow-wrap:normal; }
.gp-plan-card--regional .gp-region-map .gp-region-card-caption--long strong { font-size:18px; }
.gp-plan-card--regional .gp-region-map .gp-map-eyebrow { color:#718680; font-size:8px; letter-spacing:.12em; font-weight:700; }
.gp-plan-card--regional .gp-region-map .gp-map-legend { display:flex; align-items:center; gap:5px; margin-top:5px; color:#476c5e; font-size:10px; }
.gp-map-legend i { width:7px; height:7px; border-radius:50%; background:#159d6b; }
@media(max-width:600px) {
  .gp-catalog-hero--regional { padding:30px 20px; gap:20px; }
  .gp-catalog-hero--regional figure { height:112px; border-radius:16px; box-shadow:none; }
  .gp-catalog-hero--regional figcaption { left:16px; bottom:13px; }
  .gp-catalog-hero--regional figcaption strong { font-size:18px; }
  .gp-plan-card--regional .gp-region-map { height:136px; }
  .gp-plan-card--regional .gp-region-map .gp-region-card-caption { left:14px; }
  .gp-plan-card--regional .gp-region-map .gp-region-card-caption strong { font-size:20px; }
  .gp-plan-card--regional .gp-region-map .gp-region-card-caption--long strong { font-size:16px; }
}
.tax-product_cat ul.products li.gp-plan-card--regional { display:flex; flex-direction:column; min-width:0; max-width:100%; }
.gp-plan-card--regional .gp-plan-card-region { flex:none; }
.gp-plan-card--regional .gp-region-card-caption { bottom:14px; }
.gp-plan-card--regional .gp-region-card-caption strong { white-space:normal; }
.gp-plan-card--regional .gp-plan-card-link { height:auto; flex:1; }
.gp-region-coverage-preview { margin:0 0 10px; display:grid; gap:6px; }
.gp-region-coverage-preview > strong { color:#132d3d; font-size:14px; line-height:1.4; }
.gp-region-coverage-preview > p { min-height:36px; margin:0; color:#637780; font-size:12px; line-height:1.5; }
.gp-region-coverage-preview .gp-view-coverage { justify-self:start; min-height:36px; margin:0; padding:6px 0; border:0; border-radius:0; background:transparent; color:#08754b; font:inherit; font-size:13px; font-weight:750; text-align:left; }
.gp-region-coverage-preview .gp-view-coverage:hover,
.gp-region-coverage-preview .gp-view-coverage:focus { background:transparent; color:#075c3c; }
.gp-view-coverage:focus-visible { outline:3px solid #159d6655; outline-offset:3px; }
.gp-plan-card--regional .gp-plan-label { margin-top:2px; }
.gp-coverage-modal { padding:20px; }
.gp-coverage-modal .gp-coverage-backdrop,
.gp-coverage-modal .gp-coverage-backdrop:hover,
.gp-coverage-modal .gp-coverage-backdrop:focus { border:0; border-radius:0; background:rgba(7,18,28,.72); }
.gp-coverage-modal .gp-coverage-dialog { display:flex; flex-direction:column; width:min(700px,100%); max-height:calc(100dvh - 40px); overflow:hidden; }
.gp-coverage-head { flex:none; padding:26px 32px 18px; }
.gp-coverage-head > p { margin:0 0 9px; color:#08754b; font-size:11px; font-weight:800; letter-spacing:.14em; }
.gp-coverage-modal .gp-coverage-head h2 { padding-right:36px; color:#132d3d; font-size:30px; line-height:1.15; }
.gp-coverage-scroll { min-height:0; overflow:auto; overscroll-behavior:contain; padding:0 32px 24px; }
.gp-coverage-map { display:grid; place-items:center; width:100%; min-width:0; min-height:0; aspect-ratio:2.15; overflow:hidden; border-radius:13px; background:linear-gradient(130deg,#0d3047,#10555d); }
.gp-coverage-map > svg { display:block; width:100%; min-width:0; height:100%; max-height:270px; }
.gp-coverage-map-loading { padding:20px; color:#d7e8e8; font-size:13px; }
.gp-coverage-map[hidden] { display:none; }
.gp-coverage-summary { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin:18px 0 14px; }
.gp-coverage-summary strong { flex:none; color:#132d3d; font-size:15px; }
.gp-coverage-summary p { margin:0; color:#657982; font-size:12px; line-height:1.4; }
.gp-coverage-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.gp-coverage-grid span { padding:10px; font-size:13px; font-weight:500; overflow-wrap:anywhere; }
.gp-coverage-footer { flex:none; padding:14px 32px 20px; border-top:1px solid #e3ece7; background:#fff; }
.gp-coverage-footer .gp-coverage-done { width:100%; min-height:46px; padding:10px 18px; border:0; border-radius:9px; background:#159d66; color:#fff; font-size:15px; font-weight:750; }
.gp-coverage-modal .gp-coverage-close { top:20px; right:20px; width:36px; height:36px; min-width:0; min-height:0; padding:0; font-size:0; color:#132d3d; }
.gp-coverage-modal .gp-coverage-close::before,
.gp-coverage-modal .gp-coverage-close::after { content:""; position:absolute; top:50%; left:50%; width:16px; height:2px; border-radius:1px; background:currentColor; transform:translate(-50%,-50%) rotate(45deg); }
.gp-coverage-modal .gp-coverage-close::after { transform:translate(-50%,-50%) rotate(-45deg); }
.gp-coverage-modal .gp-coverage-close:hover,
.gp-coverage-modal .gp-coverage-close:focus { color:#132d3d; background:#f4f8f6; }
@media(max-width:600px) {
  .gp-coverage-modal { padding:14px; }
  .gp-coverage-modal .gp-coverage-dialog { max-height:calc(100dvh - 28px); border-radius:20px; }
  .gp-coverage-head { padding:24px 20px 16px; }
  .gp-coverage-modal .gp-coverage-head h2 { font-size:27px; }
  .gp-coverage-scroll { padding:0 20px 20px; }
  .gp-coverage-map { aspect-ratio:4/3; }
  .gp-coverage-summary { display:grid; gap:6px; }
  .gp-coverage-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gp-coverage-footer { padding:12px 20px max(16px,env(safe-area-inset-bottom)); }
  .gp-coverage-modal .gp-coverage-close { top:16px; right:16px; }
}
@media(prefers-reduced-motion:reduce) { .gp-coverage-modal,.gp-coverage-dialog { transition:none; } }

/* European coverage types are navigation labels, not destination counts. */
.gp-europe-types { align-self:end; }
.gp-europe-types a { min-height:44px; justify-content:center; line-height:1.35; text-align:center; text-decoration:none; }
.gp-europe-types a:focus-visible { outline:3px solid #159d6680; outline-offset:3px; }
@media(max-width:600px) {
  .gp-europe-types { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .gp-europe-types > span { grid-column:1 / -1; margin-bottom:1px; }
  .gp-europe-types a { padding:9px 8px; font-size:12px; border-radius:12px; }
}
