*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;background:var(--offwhite);color:var(--text);overflow-x:hidden}
/* SR-ONLY - visually hidden but accessible */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
/* Logo color pulse animation - changes plane color through vibrant hues */
@keyframes logoColorPulse {
  0%   { fill: var(--yellow); }
  33%  { fill: var(--pink); }
  66%  { fill: var(--mint); }
  100% { fill: var(--yellow); }
}
.logo-badge svg path{animation:logoColorPulse 3s ease-in-out infinite;fill:var(--yellow)}
.logo-badge svg{filter:drop-shadow(0 0 6px rgba(255,230,109,0.6))}
.logo-badge::after{animation:none !important}
:root{
  --pink:#FF6B6B;--pink-light:#FF8E8E;--mint:#4ECDC4;--mint-light:#7EDDD6;
  --yellow:#FFE66D;--navy:#16213e;--offwhite:#F7FFF7;--cream:#FFFBF0;
  --shadow:6px 6px 0 var(--navy);--shadow-sm:3px 3px 0 var(--navy);--border:3px solid var(--navy);
  --text:#1a1a2e;--text-muted:#4a4a6a;
}
@media(prefers-reduced-motion:reduce){.logo-badge::after,*{animation-duration:0.01ms!important;transition-duration:0.01ms!important}}
a:focus-visible,button:focus-visible{outline:3px solid var(--pink);outline-offset:2px}

/* NAV */
nav{display:flex;align-items:center;justify-content:space-between;padding:18px 48px;background:linear-gradient(135deg,var(--pink)0%,var(--yellow)100%);border-bottom:var(--border);position:sticky;top:0;z-index:300;gap:12px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);flex-shrink:0}
.logo-badge{width:56px;height:56px;background:var(--navy);border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;flex-shrink:0}
.logo-badge svg{width:30px;height:30px;fill:var(--yellow);position:relative;z-index:1}
.logo-badge::after{content:'';position:absolute;inset:-3px;border-radius:50%;border:2px dashed var(--yellow);animation:none !important}
@keyframes spin{to{transform:rotate(360deg)}}
.logo-text{font-family:'Outfit',sans-serif;font-size:18px;font-weight:900;letter-spacing:-0.3px;line-height:1.1;color:var(--navy)}
.logo-text small{display:block;font-size:8px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;opacity:0.7}
.hamburger{display:none}
.nav-links{display:flex;align-items:center;gap:12px}
.nav-buy-btn{background:var(--navy);color:var(--yellow)!important;border:none;padding:8px 18px;border-radius:50px;font-family:Outfit,sans-serif;font-size:13px;font-weight:800;cursor:pointer;transition:all .2s}
.nav-buy-btn:hover{background:var(--mint);color:var(--navy)!important}

/* HERO */
.hero-banner{position:relative;padding:72px 48px 48px;background:linear-gradient(160deg,var(--pink) 0%,var(--pink-light) 15%,var(--yellow) 45%,var(--mint) 80%,var(--offwhite) 100%);overflow:hidden}
.hero-bg-stripe{position:absolute;inset:0;pointer-events:none}
.hero-bg-stripe::before{content:"";position:absolute;top:-15%;right:-10%;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,0.15)0%,transparent 70%)}
.hero-bg-stripe::after{content:"";position:absolute;bottom:-18%;left:-5%;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(78,205,196,0.2)0%,transparent 70%)}

/* Floating decorative elements in hero */
.hero-float-plane{position:absolute;font-size:24px;opacity:0.08;animation:hero-float 12s ease-in-out infinite;pointer-events:none}
.hero-dot-grid{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(22,33,62,0.06) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
@keyframes hero-float{0%,100%{transform:translateY(0)rotate(0deg)}25%{transform:translateY(-12px)rotate(3deg)}50%{transform:translateY(-6px)rotate(-2deg)}75%{transform:translateY(-18px)rotate(1deg)}}

.hero-content{position:relative;z-index:1;max-width:1200px;margin:0 auto}

/* Hero entrance animations */
@keyframes heroFadeUp{0%{opacity:0;transform:translateY(30px)}100%{opacity:1;transform:translateY(0)}}
.hero-left{flex:2;display:flex;flex-direction:column;min-width:0;animation:heroFadeUp 0.6s cubic-bezier(0.34,1.56,0.64,1) both}
.hero-right{flex:3;display:flex;flex-direction:column;gap:20px;min-width:0}
.hero-right .hero-card:first-child{animation:heroFadeUp 0.6s 0.15s cubic-bezier(0.34,1.56,0.64,1) both}
.hero-right .hero-card:last-child{animation:heroFadeUp 0.6s 0.3s cubic-bezier(0.34,1.56,0.64,1) both}

/* SIDE-BY-SIDE HERO LAYOUT */
.hero-split{display:flex;gap:28px;align-items:stretch}

/* MAP CARD (left side, 40%) */
.map-card{background:#fff;border:var(--border);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;height:100%;box-shadow:var(--shadow);position:relative;transition:transform 0.3s,box-shadow 0.3s}
.map-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--navy)}
.map-header{text-align:center;padding:16px 20px 10px;background:linear-gradient(180deg,var(--offwhite) 0%,rgba(247,255,247,0.9) 100%);border-bottom:var(--border);position:relative;overflow:hidden}
.map-header::before{content:'\2708';position:absolute;top:-10px;right:-5px;font-size:80px;opacity:0.06;transform:rotate(-15deg)}
.map-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--pink),var(--yellow),var(--mint))}
.map-header h2{font-family:'Outfit',sans-serif;font-size:clamp(14px,1.6vw,18px);font-weight:900;color:var(--navy);letter-spacing:-0.5px}
.map-header p{font-size:11px;color:var(--text-muted);margin-top:2px;font-weight:600}
#risk-map{width:100%;flex:1;min-height:200px;background:#e8f5e9;border-bottom:var(--border);position:relative;z-index:1}
.map-legend{display:flex;justify-content:center;align-items:center;gap:6px 12px;padding:8px 14px;background:var(--offwhite);flex-wrap:wrap;text-align:center;margin-top:auto}
.legend-item{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:var(--navy);white-space:nowrap;transition:transform 0.2s}
.legend-item:hover{transform:scale(1.05)}
.legend-sticker{font-family:'Outfit',sans-serif;font-size:9px;font-weight:800;padding:2px 8px;border-radius:50px;border:2px solid var(--navy);letter-spacing:0.5px;transition:all 0.2s}
.legend-item:hover .legend-sticker{filter:brightness(1.1);transform:scale(1.05)}
.legend-sticker-red{background:var(--pink);color:#fff}
.legend-sticker-orange{background:var(--yellow);color:var(--navy)}
.legend-desc{font-size:10px;color:var(--text-muted);font-weight:600}

/* HERO CTA CARDS (right side, 60%) */
.hero-card{background:#fff;border:var(--border);border-radius:20px;box-shadow:var(--shadow);padding:32px 30px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;overflow:hidden;transition:transform 0.25s,box-shadow 0.25s;flex:1}
.hero-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--navy)}
.hero-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--pink),var(--yellow),var(--mint));z-index:1}
.hero-card::after{display:none}
.hero-card h2{font-family:'Outfit',sans-serif;font-size:clamp(18px,2.2vw,24px);font-weight:900;color:var(--navy);margin-bottom:10px;letter-spacing:-0.3px;position:relative}
.hero-card p{font-size:14px;color:var(--text-muted);font-weight:600;margin-bottom:18px;line-height:1.75;max-width:360px}
.hero-card-features{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px;width:100%;max-width:360px}
.hcf-item{background:var(--cream);border:2px solid var(--navy);border-radius:12px;padding:10px 14px;font-size:13px;font-weight:700;color:var(--navy);text-align:center;display:flex;align-items:center;justify-content:center;gap:6px;transition:all 0.2s;position:relative;overflow:hidden}
.hcf-item::before{content:'\2726';color:var(--pink);font-size:10px;transition:transform 0.2s}
.hcf-item:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--navy)}
.hcf-item:hover::before{transform:scale(1.2)rotate(12deg)}
.hcf-item:nth-child(1){animation:heroFadeUp 0.5s 0.25s cubic-bezier(0.34,1.56,0.64,1) both}
.hcf-item:nth-child(2){animation:heroFadeUp 0.5s 0.35s cubic-bezier(0.34,1.56,0.64,1) both}
.hero-card-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 30px;background:var(--pink);color:#fff;border:var(--border);border-radius:50px;font-family:'Outfit',sans-serif;font-size:15px;font-weight:800;text-decoration:none;box-shadow:var(--shadow-sm);cursor:pointer;transition:all 0.15s;position:relative;overflow:hidden;margin-top:auto}
.hero-card-btn::after{display:none}
.hero-card-btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--navy);background:var(--pink-light)}
.hero-card-btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--navy)}
.hero-card-btn .price-tag{background:rgba(255,255,255,0.2);padding:2px 12px;border-radius:50px;font-size:12px;position:relative}
.hero-card:first-child .hero-card-btn .price-tag{animation:pricePulse 2s ease-in-out infinite}
@keyframes pricePulse{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,0.3)}50%{box-shadow:0 0 8px 2px rgba(255,255,255,0.1)}}

/* count badge (used in map cards etc) */
.count-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:11px;font-weight:900;font-family:'Outfit',sans-serif;border:2px solid var(--navy);line-height:1;flex-shrink:0}
.count-high{background:var(--pink);color:#fff}
.count-med{background:var(--yellow);color:var(--navy)}

/* CTA GRID */
.booking-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:16px 36px;background:var(--pink);color:#fff;border:var(--border);border-radius:50px;font-family:'Outfit',sans-serif;font-size:16px;font-weight:800;text-decoration:none;box-shadow:var(--shadow-sm);cursor:pointer;transition:all 0.15s;margin-top:auto}
.booking-cta-btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--navy);background:var(--pink-light)}
.booking-cta-btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--navy)}
.booking-cta-btn .price-tag{background:rgba(255,255,255,0.2);padding:2px 12px;border-radius:50px;font-size:14px}

/* TRUST BAR */
.trust{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:18px;padding:18px 48px;background:var(--cream);border-bottom:var(--border);color:var(--navy);margin:0;position:relative;animation:heroFadeUp 0.6s 0.4s cubic-bezier(0.34,1.56,0.64,1) both}
.trust-item{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;color:var(--navy);transition:transform 0.2s}
.trust-item:hover{transform:translateY(-1px)}
.ti-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--yellow);border-radius:50%;border:2px solid var(--navy);font-size:13px;flex-shrink:0;animation:tiPulse 2s ease-in-out infinite}
@keyframes tiPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}

/* BUTTON PRIMARY (used in modals) */
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--pink);color:#fff;border:var(--border);border-radius:12px;font-family:'Outfit',sans-serif;font-size:16px;font-weight:800;text-decoration:none;box-shadow:var(--shadow-sm);cursor:pointer;transition:all 0.15s}
.btn-primary:hover{background:var(--pink-light);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--navy)}
.btn-primary:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--navy)}
.btn-secondary{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--navy);border:var(--border);border-radius:12px;font-family:'Outfit',sans-serif;font-size:16px;font-weight:800;text-decoration:none;cursor:pointer;transition:all 0.15s}
.btn-secondary:hover{background:var(--cream);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--navy)}
.btn-secondary:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--navy)}

/* BOOKING CONFIRMATION STEPS */
.booking-step{padding:32px 36px 40px;animation:modalStepIn .4s cubic-bezier(0.34,1.56,0.64,1) both}
@keyframes modalStepIn{0%{opacity:0;transform:translateY(20px)scale(0.97)}100%{opacity:1;transform:translateY(0)scale(1)}}
.booking-step-inner{max-width:480px;margin:0 auto;text-align:center}
.booking-step-icon{font-size:42px;margin-bottom:8px}
.booking-step-title{font-family:'Outfit',sans-serif;font-size:26px;font-weight:900;color:var(--navy);margin-bottom:4px}
.booking-step-sub{font-size:14px;color:var(--text-muted);font-weight:600;margin-bottom:24px;line-height:1.5}
.booking-summary{background:#fff;border:2px solid var(--navy);border-radius:14px;overflow:hidden;margin-bottom:20px;text-align:left}
.booking-summary-row{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid rgba(22,33,62,0.08)}
.booking-summary-row:last-child{border-bottom:none}
.booking-summary-label{font-size:13px;font-weight:600;color:var(--text-muted)}
.booking-summary-value{font-size:15px;font-weight:800;color:var(--navy);text-align:right;max-width:60%;word-break:break-word}
.booking-summary-total{border-top:2px solid var(--navy);padding:14px 18px;background:var(--cream)}
.booking-summary-total .booking-summary-label{font-size:14px;color:var(--navy)}
.booking-summary-total .booking-summary-value{font-size:20px;color:var(--pink)}
.booking-pay-section{margin-bottom:20px}
.booking-pay-label{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:10px;text-align:center}
.booking-pay-options{display:flex;gap:10px}
.booking-pay-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px 10px;border:2px solid var(--navy);border-radius:12px;background:#fff;cursor:pointer;transition:all .25s cubic-bezier(0.34,1.56,0.64,1);font-family:'Outfit','DM Sans',sans-serif;position:relative;overflow:hidden}
.booking-pay-btn::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--pink),var(--pink-light));opacity:0;transition:opacity .25s;pointer-events:none}
.booking-pay-btn:hover{border-color:var(--pink);transform:translateY(-2px);box-shadow:0 8px 20px rgba(124,58,237,0.1)}
.booking-pay-btn:hover .bpb-icon{transform:scale(1.15)}
.booking-pay-btn.active{border-color:var(--pink);background:rgba(124,58,237,0.06);box-shadow:0 0 0 3px rgba(124,58,237,0.15);transform:translateY(-2px)}
.booking-pay-btn.active .bpb-icon{animation:btnPop .4s cubic-bezier(0.34,1.56,0.64,1)}
@keyframes btnPop{0%{transform:scale(1)}50%{transform:scale(1.2)}100%{transform:scale(1)}}
.bpb-icon{display:inline-block;transition:transform .25s cubic-bezier(0.34,1.56,0.64,1);font-size:22px;line-height:1}
.bpb-text{font-size:14px;font-weight:800;color:var(--navy)}
.bpb-desc{font-size:11px;color:var(--text-muted);font-weight:600}
.booking-step-actions{display:flex;gap:10px}
.booking-success-check{font-size:48px;margin-bottom:8px;animation:successPop .5s cubic-bezier(0.34,1.56,0.64,1) both}
@keyframes successPop{0%{opacity:0;transform:scale(0.3)rotate(-15deg)}100%{opacity:1;transform:scale(1)rotate(0deg)}}
.booking-pnr-box{background:var(--navy);border:3px solid var(--yellow);border-radius:16px;padding:20px 16px;margin:20px 0;text-align:center}
.booking-pnr-code{font-family:'Outfit',sans-serif;font-size:32px;font-weight:900;color:var(--yellow);letter-spacing:6px;word-break:break-all}
.booking-pnr-label{font-size:12px;font-weight:700;color:rgba(255,255,255,0.6);text-transform:uppercase;letter-spacing:1.5px;margin-top:6px}
.booking-success-email{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:var(--cream);border:2px solid var(--navy);border-radius:12px;font-size:14px;font-weight:600;color:var(--navy);margin-bottom:16px}
.booking-success-tips{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;text-align:left}
.booking-tip{padding:10px 14px;background:#fff;border:1px solid rgba(22,33,62,0.12);border-radius:10px;font-size:13px;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:8px}

/* COUNTRY GUIDE */
.country-section{padding:60px 48px;background:linear-gradient(180deg,var(--offwhite)0%,#fff 100%);border-bottom:var(--border)}
.country-section-inner{max-width:1100px;margin:0 auto}
.section-label{font-family:'Outfit',sans-serif;font-size:13px;font-weight:800;color:var(--pink);text-transform:uppercase;letter-spacing:1.5px;text-align:center;margin-bottom:8px}
.section-title{font-family:'Outfit',sans-serif;font-size:clamp(26px,4vw,38px);font-weight:900;color:var(--navy);letter-spacing:-1px;text-align:center}
.section-desc{font-size:16px;color:var(--text-muted);font-weight:600;text-align:center;margin-top:8px;margin-bottom:32px}
.country-search{width:100%;padding:14px 20px;border:var(--border);border-radius:50px;font-family:'Outfit','DM Sans',sans-serif;font-size:15px;font-weight:600;color:var(--navy);background:#fff;transition:box-shadow 0.2s;margin-bottom:32px}
.country-search:focus{outline:none;box-shadow:var(--shadow-sm)}
#country-guide{transition:box-shadow 0.6s, border-color 0.6s;scroll-margin-top:80px}
#country-guide.highlight-target{animation:highlight-pulse 1.2s ease-in-out 2;border-radius:12px}
@keyframes highlight-pulse{0%,100%{box-shadow:inset 0 0 0 4px var(--pink),0 0 30px rgba(255,107,107,0.2)}50%{box-shadow:inset 0 0 0 4px var(--mint),0 0 30px rgba(78,205,196,0.2)}}
#country-grids{display:flex;flex-direction:column;gap:24px}

/* Group collapsible sections */
.country-group{border:var(--border);border-radius:20px;overflow:hidden;background:#fff;box-shadow:var(--shadow);margin-bottom:20px}
.country-group:hover{box-shadow:8px 8px 0 var(--navy)}
.country-group-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;cursor:pointer;font-family:'Outfit',sans-serif;font-weight:900;font-size:16px;user-select:none;transition:background 0.2s}
.country-group-header:hover{filter:brightness(0.95)}
.country-group-title{display:flex;align-items:center;gap:10px}
.risk-count{font-size:12px;font-weight:700;opacity:0.8;background:rgba(255,255,255,0.3);padding:2px 10px;border-radius:50px;border:1px solid rgba(255,255,255,0.4)}
.country-group:first-child .country-group-header{background:var(--pink);color:#fff}
.country-group:last-child .country-group-header{background:var(--yellow);color:var(--navy)}
.country-group-body{background:var(--cream);border-top:2px solid var(--navy);padding:16px 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.country-group.section-collapsed .country-group-body{display:none}
.country-group-arrow{font-size:12px;transition:transform 0.3s}
.country-group.section-collapsed .country-group-arrow{transform:rotate(0deg)}
.country-group:not(.section-collapsed) .country-group-arrow{transform:rotate(180deg)}

/* Country cards inside groups */
.country-card{background:#fff;border:2px solid var(--navy);border-radius:14px;padding:16px 18px;transition:transform 0.15s,box-shadow 0.15s}
.country-card:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--navy)}
.country-card-header{margin-bottom:8px}
.country-card-header h3{font-family:'Outfit',sans-serif;font-size:16px;font-weight:800;color:var(--navy)}
.country-card-rule{font-size:13px;font-weight:700;color:var(--pink);margin-bottom:8px;padding:6px 10px;background:rgba(255,107,107,0.08);border-radius:8px;border-left:3px solid var(--pink)}
.country-card-desc{font-size:14px;color:var(--text-muted);line-height:1.7;font-weight:500}
.country-card-footer{margin-top:10px;padding-top:8px;border-top:1px dashed rgba(22,33,62,0.15)}
.country-buy-btn{font-size:13px;font-weight:700;color:var(--pink);text-decoration:none;transition:color 0.2s;cursor:pointer;display:inline-block}
.country-buy-btn:hover{color:var(--navy)}

/* NEWS SECTION — Full-width single column list */
#news-grid{display:none;flex-direction:column;gap:12px}
#news-grid.show{display:flex}
.news-card{background:#fff;border:var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);transition:all .2s;cursor:pointer;text-decoration:none;color:inherit;display:flex;align-items:center;gap:14px;padding:14px 20px;width:100%}
.news-card:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--navy)}
.news-card-num{font-family:Outfit,sans-serif;font-size:14px;font-weight:900;color:var(--pink);min-width:28px;text-align:center;flex-shrink:0}
.news-card-inner{flex:1;min-width:0;padding:0}
.news-card-tag{display:inline-block;font-family:Outfit,sans-serif;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:0.8px;padding:2px 7px;border-radius:5px;background:var(--yellow);color:var(--navy);border:1px solid var(--navy);margin-bottom:5px}
.news-card-icon{font-size:20px;margin-right:4px}
.news-card-title{font-family:Outfit,sans-serif;font-size:15px;font-weight:900;color:var(--navy);margin-bottom:3px;line-height:1.4}
.news-card-source{font-size:12px;color:var(--text-muted);font-weight:600}
.news-card-source strong{color:var(--pink)}
.news-card-date{font-size:11px;color:var(--text-muted)}
.news-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.news-skeleton{background:#fff;border:var(--border);border-radius:16px;padding:14px 20px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:14px}
.news-skeleton-num{width:28px;height:16px;background:linear-gradient(90deg,#e8e8e8 25%,#f0f0f0 50%,#e8e8e8 75%);background-size:200% 100%;animation:news-shimmer 1.5s ease-in-out infinite;border-radius:4px;flex-shrink:0}
.news-skeleton-body{flex:1;display:flex;flex-direction:column;gap:6px}
.news-skeleton-block{background:linear-gradient(90deg,#e8e8e8 25%,#f0f0f0 50%,#e8e8e8 75%);background-size:200% 100%;animation:news-shimmer 1.5s ease-in-out infinite;border-radius:6px;height:16px}
@keyframes news-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}

/* THINGS TO DO BANNER */
.trip-banner{background:linear-gradient(135deg,#003580 0%,#0071c2 60%,#00a8e8 100%);padding:24px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;border:3px solid var(--navy);border-radius:20px;margin:0 auto;max-width:1100px;transition:all .2s;text-decoration:none;cursor:pointer;position:relative;overflow:hidden}
.trip-banner::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,0.06) 0%,transparent 60%);animation:trip-shimmer 8s ease-in-out infinite}
@keyframes trip-shimmer{0%,100%{transform:translate(0,0)}50%{transform:translate(10%,10%)}}
.trip-banner:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--navy)}
.trip-tag{font-size:11px;font-weight:900;color:var(--yellow);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}
.trip-heading{font-family:'Outfit',sans-serif;font-size:clamp(18px,2.5vw,24px);font-weight:900;color:#fff;margin-bottom:4px}
.trip-sub{font-size:14px;color:rgba(255,255,255,0.75);font-weight:600}
.trip-powered{font-size:12px;color:rgba(255,255,255,0.5);margin-top:6px}
.trip-powered strong{color:rgba(255,255,255,0.8)}
.trip-cta{background:#fff;color:#003580;padding:12px 28px;border-radius:50px;font-family:'Outfit',sans-serif;font-size:15px;font-weight:800;border:2px solid var(--navy);flex-shrink:0;transition:all .2s}
.trip-banner:hover .trip-cta{background:var(--yellow);transform:scale(1.05)}
@media(max-width:600px){.trip-banner{padding:20px 24px;flex-direction:column;align-items:flex-start;text-align:left;gap:16px}.trip-cta{width:100%;text-align:center}}

/* FLIGHT CONNECTIONS */
.flightmap-section{padding:60px 48px;background:linear-gradient(180deg,#fff,var(--offwhite));border-bottom:var(--border)}
.flightmap-body{display:none;margin-top:24px}
.flightmap-body.open{display:block}
#fmMap{width:100%;height:clamp(300px,55vw,500px);background:#e8e8e8;border:var(--border);border-radius:20px;z-index:1}
.fm-search{position:relative;margin-bottom:20px}
.fm-search input{width:100%;padding:16px 20px;border:var(--border);border-radius:50px;font-family:'Outfit','DM Sans',sans-serif;font-size:16px;font-weight:600;color:var(--navy);background:#fff;transition:box-shadow 0.2s}
.fm-search input:focus{outline:none;box-shadow:var(--shadow-sm)}
#fmSugg{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border:var(--border);border-top:none;border-radius:0 0 20px 20px;z-index:10;max-height:280px;overflow-y:auto}
.fmsugg-item{padding:12px 20px;cursor:pointer;display:flex;align-items:center;gap:12px;transition:background 0.15s;border-bottom:1px solid rgba(22,33,62,0.08)}
.fmsugg-item:last-child{border-bottom:none}
.fmsugg-item:hover{background:var(--cream)}
.fmsugg-iata{font-family:'Outfit',sans-serif;font-weight:800;font-size:14px;background:var(--yellow);padding:3px 8px;border-radius:6px;color:var(--navy);border:1px solid var(--navy);flex-shrink:0}
.fmsugg-country{font-size:12px;color:#9CA3AF;margin-left:auto}
#fmPlaceholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}
.fmph-icon{font-size:48px;margin-bottom:12px}
.fmph-text{font-size:16px;color:var(--text-muted);font-weight:600}
#fmStats{display:none;text-align:center;padding:12px 20px;background:var(--yellow);border:2px solid var(--navy);border-radius:12px;font-size:14px;font-weight:700;color:var(--navy);margin-top:16px}
.fm-toggle-btn{background:var(--mint);color:#fff;border:var(--border);border-radius:50px;padding:14px 28px;font-family:'Outfit',sans-serif;font-size:16px;font-weight:800;cursor:pointer;transition:all 0.2s;display:inline-flex;align-items:center;gap:10px}
.fm-toggle-btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--navy)}
#fmArrow{display:inline-block;transition:transform 0.3s}

/* FOOTER */
footer{padding:48px 48px 32px;background:var(--navy);color:rgba(255,255,255,0.7);text-align:center;border-top:4px solid var(--yellow);position:relative;overflow:hidden}
footer::before{content:'\2708 \2708 \2708';position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font-size:40px;opacity:0.04;letter-spacing:30px}
.footer-logo{font-family:'Outfit',sans-serif;font-size:24px;font-weight:900;color:#fff;margin-bottom:4px}
.footer-tagline{font-size:14px;margin-bottom:24px;opacity:0.6}
.footer-links{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-bottom:24px}
.footer-links a{color:rgba(255,255,255,0.6);text-decoration:none;font-size:13px;font-weight:600;transition:color 0.2s}
.footer-links a:hover{color:var(--yellow)}
.footer-divider{width:80px;height:3px;background:linear-gradient(90deg,var(--pink),var(--yellow),var(--mint));margin:0 auto 20px;border-radius:2px}
.footer-copy{font-size:12px;opacity:0.4}
.section-divider{height:6px;background:repeating-linear-gradient(90deg,var(--pink)0px,var(--pink)20px,transparent 20px,transparent 24px,var(--yellow)24px,var(--yellow)44px,transparent 44px,transparent 48px,var(--mint)48px,var(--mint)68px,transparent 68px,transparent 72px)}

/* BOOKING MODAL */
.modal-overlay{visibility:hidden;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px);opacity:0;transition:opacity .3s ease,visibility .3s ease}
.modal-overlay.open{visibility:visible;opacity:1}
.modal-content{position:relative;background:var(--offwhite);border-radius:20px;max-width:820px;width:100%;max-height:90vh;overflow-y:auto;border:var(--border);box-shadow:8px 8px 0 var(--navy);padding:0}
.modal-content-sm{max-width:520px}
.modal-close{position:absolute;top:16px;right:16px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--pink);color:#fff;border:2px solid var(--navy);border-radius:50%;font-size:18px;font-weight:900;cursor:pointer;z-index:100;transition:all .2s;line-height:1}
.modal-close:hover{transform:scale(1.1)}
@keyframes modalPopIn{0%{opacity:0;transform:scale(0.92)translateY(24px)}100%{opacity:1;transform:scale(1)translateY(0)}}
@keyframes modalPopOut{0%{opacity:1;transform:scale(1)translateY(0)}100%{opacity:0;transform:scale(0.92)translateY(24px)}}
.modal-overlay.open .modal-content{animation:modalPopIn .3s cubic-bezier(0.34,1.56,0.64,1) both}
.modal-overlay .modal-content{animation:modalPopOut .2s ease both}

.modal-form{padding:40px 36px}
.modal-header{text-align:center;margin-bottom:24px}
.modal-header h2{font-family:'Outfit',sans-serif;font-size:28px;font-weight:900;color:var(--navy)}
.modal-header p{font-size:14px;color:var(--text-muted);font-weight:600}
.modal-sub-header{text-align:center;font-size:14px;font-weight:600;color:var(--pink);margin-bottom:24px;padding:10px;background:rgba(255,107,107,0.08);border-radius:10px;border-left:3px solid var(--pink)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.form-group{display:flex;flex-direction:column;gap:6px;position:relative}
.form-group label{font-size:14px;font-weight:700;color:var(--navy)}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 14px;border:2px solid var(--navy);border-radius:10px;font-family:'Outfit','DM Sans',sans-serif;font-size:15px;font-weight:600;color:var(--navy);background:#fff;transition:all .25s cubic-bezier(0.34,1.56,0.64,1)}
.form-group input:hover,.form-group select:hover{background:var(--cream);border-color:var(--pink-light)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 4px rgba(124,58,237,0.12);background:#fff;transform:translateY(-1px)}
.form-group input:focus::placeholder,.form-group textarea:focus::placeholder{color:transparent}
.form-group label{transition:color .2s}
.form-group:focus-within label{color:var(--pink)}
.form-group input.error,.form-group select.error{border-color:var(--pink);animation:shake .4s ease}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}

/* IMPROVED BOOKING FORM RESPONSIVENESS */
.booking-modal .modal-content{max-width:700px!important}
.booking-modal .modal-form{max-width:560px;margin:0 auto}
.booking-modal .form-group input,.booking-modal .form-group select{transition:all .25s cubic-bezier(0.34,1.56,0.64,1),box-shadow .3s!important}
.booking-modal .form-group input:focus,.booking-modal .form-group select:focus{transform:translateY(-2px);box-shadow:0 0 0 4px rgba(255,107,107,0.15),4px 4px 0 var(--navy)!important}
.booking-modal .btn-primary{transition:all .25s cubic-bezier(0.34,1.56,0.64,1)!important}
.booking-modal .btn-primary:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--navy)!important}
@media(max-width:600px){
  .booking-modal .modal-content{border-radius:14px!important}
  .booking-modal .modal-form{padding:16px 14px!important}
  .booking-modal .form-group input,.booking-modal .form-group select{padding:10px 12px!important;font-size:14px!important}
  .booking-modal .booking-pay-options{flex-direction:column!important}
  .booking-modal .booking-step-actions{flex-direction:column!important}
  .booking-modal .booking-pnr-code{font-size:20px!important}
}
@media(max-width:480px){
  .booking-modal .form-row{grid-template-columns:1fr!important;gap:10px!important}
  .booking-modal .modal-header h2{font-size:18px!important}
  .booking-modal .btn-primary{padding:12px!important;font-size:14px!important}
  .booking-modal .booking-summary-row{padding:8px 12px!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important}
  .booking-modal .booking-summary-value{text-align:left!important;max-width:100%!important}
}

/* FORM FIELD HINTS */
.form-hint{font-size:12px;font-weight:600;line-height:1.4;padding:6px 10px 8px 10px;border-radius:8px;display:none;animation:hintFadeIn .3s ease;margin-top:2px}
.form-hint.show{display:flex;align-items:flex-start;gap:6px}
.form-hint-warning{background:rgba(255,107,107,0.1);color:#d32f2f;border-left:3px solid var(--pink)}
.form-hint-info{background:rgba(78,205,196,0.1);color:#00897b;border-left:3px solid var(--mint)}
.form-hint-advice{background:rgba(255,230,109,0.2);color:var(--navy);border-left:3px solid var(--yellow)}
@keyframes hintFadeIn{0%{opacity:0;transform:translateY(-4px)}100%{opacity:1;transform:translateY(0)}}

.apt-wrapper{position:relative}
.apt-dropdown{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid var(--navy);border-top:none;border-radius:0 0 10px 10px;z-index:10;max-height:200px;overflow-y:auto}
.airport-suggestions{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid var(--navy);border-top:none;border-radius:0 0 10px 10px;z-index:10;max-height:200px;overflow-y:auto;box-shadow:4px 4px 0 var(--navy)}
.apt-option{padding:10px 14px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background 0.15s}
.autocomplete-suggestions{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid var(--navy);border-top:none;border-radius:0 0 10px 10px;z-index:10;max-height:200px;overflow-y:auto;box-shadow:4px 4px 0 var(--navy)}
.apt-option:hover{background:var(--cream)}
.apt-opt-code{font-family:'Outfit',sans-serif;font-weight:800;font-size:13px;background:var(--yellow);padding:2px 8px;border-radius:4px;border:1px solid var(--navy)}
.apt-opt-name{font-size:14px;color:var(--text-muted)}
.pay-methods{display:flex;gap:12px;margin-bottom:16px}
.pay-btn{flex:1;padding:14px;border:2px solid var(--navy);border-radius:12px;background:#fff;font-family:'Outfit',sans-serif;font-size:15px;font-weight:800;cursor:pointer;transition:all .2s;text-align:center}
.pay-btn.active{border-color:var(--pink);background:rgba(255,107,107,0.08);box-shadow:0 0 0 3px rgba(255,107,107,0.15)}
.pay-btn:hover{transform:translateY(-1px)}
.submit-btn{width:100%;padding:16px;background:var(--pink);color:#fff;border:var(--border);border-radius:12px;font-family:'Outfit',sans-serif;font-size:18px;font-weight:900;cursor:pointer;transition:all .2s}
.submit-btn:hover{background:var(--pink-light);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--navy)}
.submit-btn:disabled{background:#ccc;border-color:#999;cursor:not-allowed;transform:none;box-shadow:none}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 0.6s linear infinite;margin-right:8px;vertical-align:middle}

/* CRYPTO MODAL */
#modalError{padding:12px;border-radius:10px;font-size:14px;font-weight:600;display:none;background:#fee;color:#c33;margin-bottom:16px}
#modalError.show{display:block}

/* CONFIRMATION */
#confirmation{display:none;padding:40px 36px;text-align:center}
.conf-header{font-family:'Outfit',sans-serif;font-size:32px;font-weight:900;color:var(--navy);margin-bottom:4px}
.conf-sub{font-size:15px;color:var(--text-muted);margin-bottom:24px}
.conf-card{background:#fff;border:2px solid var(--navy);border-radius:14px;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:16px;text-align:left;box-shadow:4px 4px 0 var(--navy)}
.conf-field{display:flex;flex-direction:column;gap:2px}
.conf-field-label{font-size:11px;font-weight:700;color:#9CA3AF;text-transform:uppercase;letter-spacing:0.5px}
.conf-field-value{font-size:16px;font-weight:800;color:var(--navy)}
.conf-pnr{font-size:28px;font-weight:900;color:var(--pink);letter-spacing:3px}

/* LEAFLET POPUP */
.leaflet-popup-content-wrapper{border-radius:14px!important;border:3px solid var(--navy)!important;box-shadow:6px 6px 0 var(--navy)!important}
.leaflet-popup-tip{border:2px solid var(--navy)!important;box-shadow:none!important}
.popup-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.popup-flag{font-size:22px}
.popup-title{font-family:'Outfit',sans-serif;font-size:16px;font-weight:800;color:var(--navy)}
.popup-inner{display:flex;flex-direction:column;gap:6px}
.popup-risk{font-family:'Outfit',sans-serif;font-size:11px;font-weight:800;padding:4px 10px;border-radius:50px;display:inline-block;align-self:flex-start;border:2px solid var(--navy)}
.popup-risk-high{background:var(--pink);color:#fff}
.popup-risk-med{background:var(--yellow);color:var(--navy)}
.popup-airports{font-size:12px;color:#9CA3AF;font-weight:600}
.popup-desc{font-size:13px;color:var(--text-muted);line-height:1.5}
.popup-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.popup-cta{font-family:'Outfit',sans-serif;font-size:12px;font-weight:800;padding:8px 16px;border-radius:8px;border:2px solid var(--navy);text-decoration:none;transition:all .15s;background:var(--pink);color:#fff;box-shadow:3px 3px 0 var(--navy);cursor:pointer}
.popup-cta:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--navy)}

@media(max-width:1024px){
  .hero-split{flex-direction:column;gap:24px}
  .hero-left,.hero-right{flex:none;width:100%}
  .hero-card{padding:24px 20px}
  .hero-card h2{font-size:18px}
  .hero-card p{font-size:12px;margin-bottom:12px}
  .map-card{min-height:auto}
  #risk-map{min-height:220px}
}
@media(max-width:900px){
  nav{padding:12px 24px;gap:8px}
  .hamburger{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;flex-shrink:0}
  .hamburger span{display:block;width:22px;height:2.5px;background:var(--navy);border-radius:2px}
  .nav-links{display:none}
  .nav-links.is-open{display:flex!important;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:linear-gradient(135deg,var(--pink)0%,var(--yellow)100%);padding:16px 24px;border-bottom:3px solid var(--navy);z-index:999;gap:12px;align-items:stretch}
  .nav-links.is-open .nav-buy-btn{text-align:center}

  .hero-banner{padding:32px 24px 24px}
  .map-legend{padding:10px 16px;gap:8px}
  .trust{padding:12px 24px}
  .country-section{padding:40px 24px}
  .country-group-header{padding:14px 20px;font-size:16px}
  .country-group-body{padding:16px 20px}
  .flightmap-section{padding:40px 24px}
  .section-divider{height:3px}
  .form-row{grid-template-columns:1fr}
  .modal-form{padding:24px 20px}
  .booking-step{padding:24px 20px 32px}
  .booking-pay-options{flex-direction:column}
  .booking-step-actions{flex-direction:column}
  .booking-pnr-code{font-size:24px;letter-spacing:4px}
  footer{padding:36px 24px 24px}
}
@media(max-width:600px){
  .hero-card-features{grid-template-columns:1fr}
  .hcf-item{padding:6px 10px;font-size:11px}
  .hero-card-btn{padding:10px 20px;font-size:13px}
  .hero-card{padding:20px 16px}
  .map-legend{flex-direction:column;align-items:center;gap:4px}
  .legend-item{font-size:10px}
  .trust{flex-direction:column;align-items:center}
  .conf-card{grid-template-columns:1fr}
  #risk-map{min-height:180px}
}
@media(max-width:480px){
  .hero-split{gap:14px}
  .hero-left{gap:12px}
  .hero-card{padding:16px 12px;border-radius:14px}
  .hero-card h2{font-size:15px;margin-bottom:4px;letter-spacing:0}
  .hero-card p{font-size:11px;margin-bottom:10px;line-height:1.4;max-width:100%}
  .hero-card-features{gap:4px;margin-bottom:12px}
  .hcf-item{padding:4px 8px;font-size:10px;border-radius:8px}
  .hcf-item::before{font-size:7px}
  .hero-card-btn{padding:8px 16px;font-size:12px;gap:4px;border-radius:40px}
  .hero-card-btn .price-tag{padding:1px 8px;font-size:11px}
  .map-header{padding:12px 14px 8px}
  .map-header h2{font-size:13px}
  .map-header p{font-size:9px}
  #risk-map{min-height:140px}
  .map-legend{padding:4px 8px;gap:3px 6px}
  .legend-item{font-size:8px}
  .legend-sticker{font-size:7px;padding:1px 5px}
  .legend-desc{font-size:8px}
}

/* MOBILE MAP POPUP: make scrollable on small screens with visible scrollbar */
@media(max-width:768px){
  .leaflet-popup-content-wrapper{max-height:200px!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}
  .leaflet-popup-content-wrapper::-webkit-scrollbar{width:6px}
  .leaflet-popup-content-wrapper::-webkit-scrollbar-track{background:rgba(0,0,0,0.05);border-radius:3px}
  .leaflet-popup-content-wrapper::-webkit-scrollbar-thumb{background:var(--navy);border-radius:3px}
  .leaflet-popup-content{max-height:180px;overflow-y:auto;margin:10px 16px!important;-webkit-overflow-scrolling:touch!important}
  .leaflet-popup-content::-webkit-scrollbar{width:6px}
  .leaflet-popup-content::-webkit-scrollbar-thumb{background:var(--navy);border-radius:3px}
  .leaflet-popup-content-wrapper .popup-inner{gap:8px}
  .leaflet-popup-content-wrapper .popup-risk{font-size:10px;padding:3px 8px}
  .leaflet-popup-content-wrapper .popup-desc{font-size:12px}
  .leaflet-popup-content-wrapper .popup-cta{font-size:11px;padding:6px 14px}
  .leaflet-popup-content-wrapper .popup-actions{margin-top:6px}
}

/* PLANE ANIMATION now in index.html inline <style> for immediate loading */
/* Vibrate animation removed as requested */
  /* COOKIE CONSENT BANNER */
  .cookie-bar{position:fixed;bottom:0;left:0;right:0;z-index:999999;background:var(--navy);color:#fff;padding:16px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;border-top:3px solid var(--yellow);box-shadow:0 -6px 20px rgba(0,0,0,0.3);transform:translateY(100%);transition:transform .4s cubic-bezier(0.34,1.56,0.64,1)}
  .cookie-bar.show{transform:translateY(0)}
  .cookie-bar p{font-size:13px;font-weight:600;color:rgba(255,255,255,0.9);line-height:1.5;flex:1;min-width:200px}
  .cookie-bar a{color:var(--yellow);text-decoration:none;font-weight:800}
  .cookie-bar a:hover{text-decoration:underline}
  .cookie-btns{display:flex;gap:8px;flex-shrink:0}
  .cookie-btn{padding:10px 20px;border-radius:8px;font-family:'Outfit',sans-serif;font-size:13px;font-weight:800;cursor:pointer;border:2px solid transparent;transition:all .2s}
  .cookie-btn-accept{background:var(--mint);color:var(--navy);border-color:var(--mint)}
  .cookie-btn-accept:hover{background:var(--mint-light);transform:translate(-1px,-1px)}
  .cookie-btn-decline{background:transparent;color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.3)}
  .cookie-btn-decline:hover{background:rgba(255,255,255,0.1);color:#fff}
  @media(max-width:600px){
    .cookie-bar{flex-direction:column;align-items:stretch;gap:10px;padding:14px 16px}
    .cookie-bar p{font-size:12px}
    .cookie-btns{flex-wrap:wrap;width:100%}
    .cookie-btn{flex:1;text-align:center;padding:8px 12px;font-size:12px}
  }