/* ═══════════════════════════════════════════
ARUSHA SAFARIS — AFCON 2027
100% MOBILE-FIRST · Touch-optimised
Tested: 320px → 1440px
Palette: Night / Gold / Emerald / Africa Red
═══════════════════════════════════════════ */

/* ── BASE RESET ── */
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0
}

html {
font-size: 16px;
scroll-behavior: smooth;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%
}

body {
font-family: var(--body);
background: var(--bg);
color: var(--ink);
line-height: 1.68;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
min-width: 320px
}

img {
max-width: 100%;
height: auto;
display: block;
border: 0
}

a {
color: inherit;
text-decoration: none
}

button,
input,
select,
textarea {
font-family: inherit;
font-size: inherit;
border-radius: 0
}

ul {
list-style: none
}

/* Remove iOS button styling */
button {
-webkit-appearance: none;
appearance: none
}

/* Improve tap targets */
button,
a {
-webkit-tap-highlight-color: transparent;
touch-action: manipulation
}

:focus-visible {
outline: 3px solid var(--gold);
outline-offset: 3px;
border-radius: 3px
}

/* ── TOKENS ── */
:root {
--night: #06080A;
--d900: #0A0E14;
--d800: #111A24;
--d700: #1A2838;
--d600: #243448;
--gold: #E8A820;
--gold-lt: #F0C040;
--gold-dk: #B88018;
--gold-bg: #FBF4D8;
--green: #1A5A38;
--green-m: #247048;
--green-l: #38905A;
--red: #C82820;
--red-l: #E03830;
--blue: #1870C0;
--blue-l: #2890E0;
--bg: #F4F0E8;
--s100: #FDFAF4;
--s200: #F0EBE0;
--s300: #E4DDD0;
--ink: #100C04;
--bmd: #2E2010;
--blt: #504030;
--muted: #807060;
--bdr: rgba(150, 120, 50, .15);
--bdr-m: rgba(150, 120, 50, .28);
--sh-s: 0 2px 12px rgba(6, 8, 10, .1);
--sh-m: 0 6px 28px rgba(6, 8, 10, .16);
--sh-l: 0 18px 60px rgba(6, 8, 10, .22);
--display: 'Poppins', sans-serif;
--body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
--ease: .2s cubic-bezier(.4, 0, .2, 1);
--max: 1200px;
--px: clamp(1rem, 5vw, 1.5rem);
/* page horizontal padding */
--spy: clamp(2.5rem, 7vw, 4rem);
/* section padding-y */
}

/* ── UTILITIES ── */
.skip {
position: absolute;
top: -100%;
left: .5rem;
z-index: 9999;
background: var(--d900);
color: #fff;
padding: .5rem 1rem;
border-radius: 4px;
font-size: 14px;
transition: top var(--ease)
}

.skip:focus {
top: .5rem
}

#prog {
position: fixed;
top: 0;
left: 0;
height: 3px;
width: 0%;
background: linear-gradient(90deg, var(--gold), var(--green-l));
z-index: 700;
pointer-events: none;
transition: width .12s linear
}

.sr-only {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap
}

/* ═══════════ HEADER ═══════════ */
.hdr {
position: sticky;
top: 0;
z-index: 500;
background: rgba(6, 8, 10, .97);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border-bottom: 1px solid rgba(232, 168, 32, .2)
}

.hdr-in {
max-width: var(--max);
margin: 0 auto;
padding: 0 var(--px);
display: flex;
align-items: center;
justify-content: space-between;
height: 56px;
gap: .75rem
}

/* Logo */
.logo {
display: flex;
align-items: center;
gap: .55rem;
flex-shrink: 0;
min-width: 0;
text-decoration: none
}

.logo-img {
width: 32px;
height: 32px;
border-radius: 4px;
object-fit: contain;
flex-shrink: 0
}

.logo-t {
display: flex;
flex-direction: column;
line-height: 1.1;
overflow: hidden
}

.logo-n {
font-family: var(--display);
font-size: clamp(.75rem, 3.8vw, .9rem);
font-weight: 700;
color: #fff;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
letter-spacing: .01em
}

.logo-s {
font-size: 8px;
color: rgba(255, 255, 255, .28);
letter-spacing: .12em;
text-transform: uppercase;
white-space: nowrap
}

/* Hamburger */
.hbug {
display: flex;
flex-direction: column;
gap: 4px;
background: none;
border: none;
cursor: pointer;
padding: .5rem;
border-radius: 4px;
flex-shrink: 0;
min-width: 44px;
min-height: 44px;
align-items: center;
justify-content: center
}

.hbug span {
display: block;
width: 20px;
height: 2px;
background: rgba(255, 255, 255, .8);
border-radius: 2px;
transition: transform var(--ease), opacity var(--ease)
}

.hbug[aria-expanded="true"] span:nth-child(1) {
transform: translateY(6px) rotate(45deg)
}

.hbug[aria-expanded="true"] span:nth-child(2) {
opacity: 0;
transform: scaleX(0)
}

.hbug[aria-expanded="true"] span:nth-child(3) {
transform: translateY(-6px) rotate(-45deg)
}

/* Nav */
.hnav {
display: none;
position: absolute;
top: 56px;
left: 0;
right: 0;
background: rgba(6, 8, 10, .98);
border-bottom: 1px solid rgba(232, 168, 32, .16);
padding: .75rem var(--px) 1rem;
flex-direction: column;
gap: .2rem;
z-index: 490
}

.hnav.open {
display: flex
}

.hnav a {
display: block;
padding: .65rem .75rem;
font-size: 14px;
font-weight: 500;
color: rgba(255, 255, 255, .7);
border-radius: 6px;
min-height: 44px;
display: flex;
align-items: center;
transition: background var(--ease), color var(--ease)
}

.hnav a:hover {
background: rgba(232, 168, 32, .15);
color: #fff
}

.nav-cta-btn {
display: flex;
align-items: center;
justify-content: center;
margin-top: .5rem;
padding: .75rem;
background: var(--gold);
color: var(--d900);
border-radius: 8px;
font-weight: 700;
font-size: 14px;
min-height: 48px;
transition: background var(--ease);
border: none;
cursor: pointer;
width: 100%
}

.nav-cta-btn:hover {
background: var(--gold-lt)
}

@media(min-width:768px) {
.hbug {
display: none
}

.hnav {
display: flex !important;
position: static;
background: none;
border: none;
padding: 0;
flex-direction: row;
align-items: center;
gap: .15rem;
z-auto
}

.hnav a {
font-size: 12.5px;
padding: .38rem .6rem;
min-height: auto
}

.nav-cta-btn {
margin-top: 0;
padding: .4rem 1.1rem;
border-radius: 100px;
font-size: 13px;
width: auto;
min-height: auto;
margin-left: .5rem
}
}

/* ── BREADCRUMB ── */
.bc {
background: var(--d900);
border-bottom: 1px solid rgba(232, 168, 32, .14);
overflow: hidden
}

.bc-w {
max-width: var(--max);
margin: 0 auto;
padding: .45rem var(--px);
display: flex;
gap: .38rem;
align-items: center;
overflow-x: auto;
scrollbar-width: none;
white-space: nowrap;
font-size: 11px;
color: rgba(255, 255, 255, .3)
}

.bc-w::-webkit-scrollbar {
display: none
}

.bc-w a {
color: rgba(255, 255, 255, .5);
transition: color var(--ease)
}

.bc-w a:hover {
color: var(--gold-lt)
}

.bc-sep {
opacity: .28
}

.bc-cur {
color: rgba(255, 255, 255, .75);
font-weight: 500
}

/* ═══════════ HERO ═══════════ */
.hero {
position: relative;
background: var(--d900);
overflow: hidden;
display: flex;
flex-direction: column
}

/* AFCON top strip */
.afcon-strip {
position: relative;
z-index: 4;
background: linear-gradient(90deg, var(--red) 0%, var(--d800) 30%, var(--d800) 70%, var(--green) 100%);
border-bottom: 1px solid rgba(232, 168, 32, .22);
padding: .5rem var(--px)
}

.afcon-strip-row {
max-width: var(--max);
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: .4rem;
min-width: 0
}

.afcon-live {
display: flex;
align-items: center;
gap: .45rem;
font-size: 10.5px;
font-weight: 700;
letter-spacing: .12em;
text-transform: uppercase;
color: var(--gold-lt);
min-width: 0;
flex-shrink: 1
}

.afcon-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--gold);
flex-shrink: 0;
animation: pdot 1.8s ease-in-out infinite
}

@keyframes pdot {

0%,
100% {
transform: scale(1);
opacity: 1
}

50% {
transform: scale(1.4);
opacity: .55
}
}

.host-flags {
display: flex;
gap: .4rem;
flex-shrink: 0
}

.flag-pill {
display: inline-flex;
align-items: center;
gap: .3rem;
background: rgba(255, 255, 255, .1);
border: 1px solid rgba(255, 255, 255, .16);
color: rgba(255, 255, 255, .78);
font-size: 10.5px;
font-weight: 600;
padding: .18rem .6rem;
border-radius: 100px
}

/* Hero image area */
/* Hero image area */
.hero-img-wrap {
  position: relative;
  width: 100%;
  height: clamp(260px, 55vw, 480px);
  overflow: hidden;
  flex-shrink: 0;
}

.hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 38%;
  filter: saturate(1.2) brightness(.45);
}

.hero-img-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(6, 8, 10, .1) 0%,
    rgba(6, 8, 10, .6) 65%,
    var(--d900) 100%
  );
}

/* Hero text */
.hero-body {
position: relative;
z-index: 2;
background: linear-gradient(to bottom, var(--d900) 0%, var(--d900) 100%);
padding: clamp(1.25rem, 4vw, 2rem) var(--px) clamp(1.75rem, 5vw, 2.5rem)
}

@media(min-width:560px) {
.hero-img-wrap {
height: clamp(320px, 45vw, 600px)
}

.hero-body {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: transparent;
padding-bottom: clamp(2rem, 5vw, 3rem)
}

.hero-img-ov {
background: linear-gradient(170deg, rgba(6, 8, 10, .05) 0%, rgba(6, 8, 10, .3) 30%, rgba(6, 8, 10, .8) 65%, rgba(6, 8, 10, 1) 100%)
}

.hero {
min-height: clamp(480px, 70vw, 680px)
}
}

.hw {
max-width: var(--max);
margin: 0 auto
}

.hero-eyebrow {
display: inline-flex;
align-items: center;
gap: .4rem;
background: rgba(232, 168, 32, .18);
border: 1px solid rgba(232, 168, 32, .36);
color: var(--gold-lt);
font-size: 9.5px;
font-weight: 700;
letter-spacing: .18em;
text-transform: uppercase;
padding: .22rem .85rem;
border-radius: 100px;
margin-bottom: .85rem;
width: fit-content
}

.hero-h1 {
font-family: var(--display);
font-size: clamp(1.65rem, 6vw, 3.6rem);
font-weight: 800;
color: #fff;
line-height: 1.08;
letter-spacing: -.025em;
margin-bottom: .75rem
}

.hero-h1 .g {
color: var(--gold-lt)
}

.hero-h1 .e {
color: #5ED090;
font-style: italic
}

.hero-sub {
font-size: clamp(13px, 2vw, 15.5px);
color: rgba(255, 255, 255, .62);
line-height: 1.75;
margin-bottom: 1.25rem;
max-width: 580px
}

/* Pills */
.hero-pills {
display: flex;
flex-wrap: wrap;
gap: .4rem;
margin-bottom: 1.25rem
}

.hpill {
display: inline-flex;
align-items: center;
gap: .3rem;
background: rgba(255, 255, 255, .09);
border: 1px solid rgba(255, 255, 255, .16);
color: rgba(255, 255, 255, .82);
font-size: 11px;
font-weight: 500;
padding: .22rem .7rem;
border-radius: 100px
}

.hpill strong {
color: var(--gold-lt);
font-weight: 700
}

/* CTA row */
.hero-ctas {
display: flex;
flex-direction: column;
gap: .6rem
}

@media(min-width:400px) {
.hero-ctas {
flex-direction: row;
flex-wrap: wrap
}
}

/* Stat grid under hero */
.hero-stats {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: .5rem;
margin-top: 1.25rem;
padding-top: 1.25rem;
border-top: 1px solid rgba(232, 168, 32, .2)
}

@media(min-width:480px) {
.hero-stats {
grid-template-columns: repeat(4, 1fr)
}
}

.hs {
text-align: center;
padding: .4rem .25rem
}

.hs-v {
font-family: var(--display);
font-size: 1.3rem;
font-weight: 800;
color: var(--gold-lt);
display: block;
line-height: 1
}

.hs-l {
font-size: 9px;
color: rgba(255, 255, 255, .38);
text-transform: uppercase;
letter-spacing: .09em;
margin-top: 3px;
display: block
}

/* ── BUTTONS (mobile-safe) ── */
.btn-gold {
display: inline-flex;
align-items: center;
justify-content: center;
gap: .4rem;
padding: .82rem 1.6rem;
background: var(--gold);
color: var(--d900);
border-radius: 100px;
font-size: 14.5px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease);
min-height: 48px;
white-space: nowrap;
width: 100%;
max-width: 260px
}

.btn-gold:hover {
background: var(--gold-lt)
}

.btn-ghost {
display: inline-flex;
align-items: center;
justify-content: center;
gap: .4rem;
padding: .82rem 1.35rem;
background: rgba(255, 255, 255, .1);
border: 1px solid rgba(255, 255, 255, .25);
color: rgba(255, 255, 255, .9);
border-radius: 100px;
font-size: 13.5px;
font-weight: 500;
cursor: pointer;
transition: background var(--ease);
min-height: 48px;
white-space: nowrap;
width: 100%;
max-width: 200px
}

.btn-ghost:hover {
background: rgba(255, 255, 255, .18)
}

@media(min-width:400px) {

.btn-gold,
.btn-ghost {
width: auto;
max-width: none
}
}

.btn-dark {
display: inline-flex;
align-items: center;
justify-content: center;
gap: .35rem;
padding: .55rem 1rem;
background: var(--d800);
color: #fff;
border-radius: 100px;
font-size: 12.5px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease);
min-height: 44px;
white-space: nowrap
}

.btn-dark:hover {
background: var(--gold-dk)
}

.btn-dark svg {
width: 11px;
height: 11px;
flex-shrink: 0
}

/* ═══════════ LAYOUT ═══════════ */
.pw {
max-width: var(--max);
margin: 0 auto;
padding: 0 var(--px)
}

.section {
padding: var(--spy) 0
}

.section-sm {
padding: clamp(2rem, 5vw, 3rem) 0
}

.divider {
height: 1px;
background: linear-gradient(90deg, transparent, var(--bdr-m), transparent)
}

/* ── SECTION LABELS ── */
.sec-lbl {
font-size: 9.5px;
font-weight: 700;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--gold-dk);
display: block;
margin-bottom: .4rem
}

.sec-h {
font-family: var(--display);
font-size: clamp(1.45rem, 4.5vw, 2.2rem);
font-weight: 800;
color: var(--ink);
line-height: 1.14;
margin-bottom: .65rem;
letter-spacing: -.02em
}

.sec-h .g {
color: var(--green)
}

.sec-h .gd {
color: var(--gold-dk)
}

.sec-h em {
font-style: italic
}

.sec-p {
font-size: clamp(13.5px, 2vw, 15px);
color: var(--bmd);
line-height: 1.8;
margin-bottom: 1.5rem;
max-width: 680px
}

/* ── CALLOUTS ── */
.callout {
display: flex;
gap: .8rem;
border-radius: 10px;
padding: 1rem 1.1rem;
margin: 1.1rem 0;
border: 1px solid
}

@media(max-width:380px) {
.callout {
flex-direction: column;
gap: .5rem
}
}

.cico {
font-size: 1.2rem;
flex-shrink: 0;
line-height: 1;
margin-top: 2px
}

.cbody strong {
display: block;
font-size: 13px;
font-weight: 700;
margin-bottom: 2px
}

.cbody p {
font-size: 12.5px;
line-height: 1.62;
margin: 0;
color: var(--muted)
}

.callout.gold {
background: rgba(184, 128, 24, .07);
border-color: rgba(184, 128, 24, .22);
border-left: 4px solid var(--gold-dk)
}

.callout.gold .cbody strong {
color: var(--gold-dk)
}

.callout.green {
background: rgba(26, 90, 56, .07);
border-color: rgba(26, 90, 56, .22);
border-left: 4px solid var(--green)
}

.callout.green .cbody strong {
color: var(--green)
}

.callout.red {
background: rgba(200, 40, 32, .07);
border-color: rgba(200, 40, 32, .22);
border-left: 4px solid var(--red)
}

.callout.red .cbody strong {
color: var(--red)
}

.callout.blue {
background: rgba(24, 112, 192, .07);
border-color: rgba(24, 112, 192, .22);
border-left: 4px solid var(--blue)
}

.callout.blue .cbody strong {
color: var(--blue)
}

/* ═══════════ AFCON INFO BOX ═══════════ */
.afcon-box {
background: linear-gradient(135deg, var(--d900), var(--d700) 60%, rgba(26, 90, 56, .35) 100%);
border-radius: 14px;
padding: clamp(1.25rem, 4vw, 2rem);
color: #fff;
position: relative;
overflow: hidden;
border: 1px solid rgba(232, 168, 32, .2);
margin: 1.25rem 0
}

.afcon-box::before {
content: '⚽';
position: absolute;
top: -10px;
right: -5px;
font-size: clamp(5rem, 16vw, 8rem);
opacity: .05;
line-height: 1;
pointer-events: none
}

.afcon-box::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, var(--red), var(--gold), var(--green))
}

.ab-lbl {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .14em;
color: rgba(255, 255, 255, .38);
display: block;
margin-bottom: .3rem
}

.ab-title {
font-family: var(--display);
font-size: clamp(1.2rem, 3.5vw, 1.7rem);
font-weight: 800;
color: #fff;
margin-bottom: .45rem;
letter-spacing: -.02em
}

.ab-title span {
color: var(--gold-lt)
}

.ab-desc {
font-size: 13px;
color: rgba(255, 255, 255, .58);
line-height: 1.65;
margin-bottom: 1.1rem;
max-width: 580px
}

.ab-facts {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: .55rem
}

@media(min-width:400px) {
.ab-facts {
grid-template-columns: repeat(4, 1fr)
}
}

.ab-fact {
background: rgba(255, 255, 255, .08);
border: 1px solid rgba(255, 255, 255, .1);
border-radius: 9px;
padding: .75rem .6rem;
text-align: center
}

.ab-v {
font-family: var(--display);
font-size: 1.1rem;
font-weight: 800;
color: var(--gold-lt);
display: block;
line-height: 1
}

.ab-l {
font-size: 10px;
color: rgba(255, 255, 255, .4);
margin-top: .22rem;
line-height: 1.3
}

/* ═══════════ PHASE CARDS ═══════════ */
.phase-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
margin: 1.25rem 0
}

@media(min-width:540px) {
.phase-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.pc {
border-radius: 14px;
overflow: hidden;
border: 1px solid var(--bdr);
transition: box-shadow var(--ease), transform var(--ease)
}

.pc:hover {
box-shadow: var(--sh-l);
transform: translateY(-3px)
}

.pc-top {
padding: 1.1rem 1.1rem .9rem
}

.pc.before .pc-top {
background: linear-gradient(135deg, var(--blue) 0%, var(--d700) 100%)
}

.pc.during .pc-top {
background: linear-gradient(135deg, var(--red) 0%, var(--d800) 100%)
}

.pc.after .pc-top {
background: linear-gradient(135deg, var(--green) 0%, var(--d700) 100%)
}

.pc-ico {
font-size: 1.5rem;
margin-bottom: .45rem;
line-height: 1
}

.pc-ph {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .12em;
color: rgba(255, 255, 255, .4);
display: block;
margin-bottom: .18rem
}

.pc-title {
font-family: var(--display);
font-size: 1rem;
font-weight: 800;
color: #fff;
line-height: 1.2;
margin-bottom: .25rem
}

.pc-dates {
font-size: 10.5px;
color: rgba(255, 255, 255, .48);
font-weight: 600
}

.pc-body {
background: var(--s100);
padding: .9rem 1.1rem 1.1rem
}

.pc-rec {
font-size: 12px;
font-weight: 600;
color: var(--ink);
margin-bottom: .55rem
}

.pc-list {
display: flex;
flex-direction: column;
gap: .38rem
}

.pc-list li {
font-size: 11.5px;
color: var(--blt);
display: flex;
align-items: flex-start;
gap: .38rem;
line-height: 1.42
}

.pc-list li::before {
content: '→';
color: var(--gold-dk);
font-weight: 700;
flex-shrink: 0;
margin-top: 1px
}

.pc-badge {
display: inline-flex;
margin-top: .65rem;
font-size: 9.5px;
font-weight: 700;
padding: 3px 8px;
border-radius: 100px;
color: #fff
}

.before .pc-badge {
background: var(--blue)
}

.during .pc-badge {
background: var(--red)
}

.after .pc-badge {
background: var(--green)
}

/* ═══════════ FILTER + CONTROLS ═══════════ */
.filter-wrap {
overflow-x: auto;
scrollbar-width: none;
margin-bottom: .85rem;
-webkit-overflow-scrolling: touch;
padding-bottom: 2px
}

.filter-wrap::-webkit-scrollbar {
display: none
}

.fpills {
display: inline-flex;
gap: .38rem;
padding: 3px;
background: var(--s100);
border: 1px solid var(--bdr);
border-radius: 100px;
min-width: max-content
}

.fp {
display: flex;
align-items: center;
gap: .32rem;
padding: .42rem .85rem;
border-radius: 100px;
font-size: 12.5px;
font-weight: 600;
color: var(--blt);
cursor: pointer;
background: none;
border: none;
transition: all var(--ease);
white-space: nowrap;
min-height: 36px
}

.fp:hover {
background: var(--gold-bg);
color: var(--green)
}

.fp.active {
background: var(--d800);
color: #fff
}

.fp-dot {
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0
}

.fp-n {
font-size: 9.5px;
font-weight: 700;
padding: 0 5px;
border-radius: 100px
}

.fp.active .fp-n {
background: rgba(255, 255, 255, .2)
}

.fp:not(.active) .fp-n {
background: rgba(26, 90, 56, .1);
color: var(--green)
}

.list-ctrl {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: .55rem;
padding: .6rem .85rem;
background: var(--s100);
border: 1px solid var(--bdr);
border-radius: 8px;
margin-bottom: 1rem
}

.lc-c {
font-size: 12.5px;
color: var(--blt)
}

.lc-c strong {
color: var(--ink);
font-weight: 700
}

.lc-r {
display: flex;
align-items: center;
gap: .45rem;
flex-wrap: wrap
}

.sort-sel {
font-size: 12px;
font-weight: 500;
color: var(--ink);
background: var(--s200);
border: 1px solid var(--bdr);
border-radius: 5px;
padding: .35rem 1.55rem .35rem .6rem;
cursor: pointer;
appearance: none;
-webkit-appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23807060' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right .5rem center;
min-height: 36px
}

.vbs {
display: flex;
gap: 3px
}

.vb {
width: 30px;
height: 30px;
border: 1px solid var(--bdr);
border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
background: var(--s200);
color: var(--muted);
transition: all var(--ease);
min-width: 30px
}

.vb.active,
.vb:hover {
background: var(--d800);
color: #fff;
border-color: var(--d800)
}

.vb svg {
width: 13px;
height: 13px
}

/* ═══════════ SAFARI PACKAGE CARDS ═══════════ */
#pkg-grid {
display: grid;
gap: 1rem
}

#pkg-grid.gg {
grid-template-columns: 1fr
}

@media(min-width:480px) {
#pkg-grid.gg {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:900px) {
#pkg-grid.gg {
grid-template-columns: repeat(3, 1fr)
}
}

#pkg-grid.gl {
grid-template-columns: 1fr
}

.pcard[data-hidden="true"] {
display: none !important
}

.pcard {
background: var(--s100);
border: 1px solid var(--bdr);
border-radius: 14px;
overflow: hidden;
display: flex;
flex-direction: column;
position: relative;
transition: box-shadow var(--ease), transform var(--ease);
animation: pf .4s ease both
}

@keyframes pf {
from {
opacity: 0;
transform: translateY(14px)
}

to {
opacity: 1;
transform: translateY(0)
}
}

.pcard:hover {
box-shadow: var(--sh-l);
transform: translateY(-4px)
}

.pcard.star {
border: 2px solid var(--gold)
}

/* Bar */
.pbar {
height: 4px;
flex-shrink: 0
}

.pcard[data-ph="before"] .pbar {
background: linear-gradient(90deg, var(--blue), var(--blue-l))
}

.pcard[data-ph="during"] .pbar {
background: linear-gradient(90deg, var(--gold-dk), var(--gold-lt))
}

.pcard[data-ph="after"] .pbar {
background: linear-gradient(90deg, var(--green), var(--green-l))
}

.pcard[data-ph="combo"] .pbar {
background: linear-gradient(90deg, var(--red), var(--gold))
}

/* Badges */
.pbdgs {
position: absolute;
top: calc(.6rem + 4px);
left: .6rem;
display: flex;
gap: .3rem;
z-index: 2;
flex-wrap: wrap
}

.pbdg {
font-size: 8.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .06em;
padding: 3px 7px;
border-radius: 100px;
color: #fff
}

.pb-hot {
background: var(--red)
}

.pb-top {
background: var(--gold-dk)
}

.pb-new {
background: var(--green)
}

.pb-pop {
background: var(--blue)
}

/* Image */
.pimg {
height: clamp(155px, 38vw, 195px);
overflow: hidden;
position: relative;
flex-shrink: 0
}

.pimg img {
width: 100%;
height: 100%;
object-fit: cover;
filter: saturate(1.1);
transition: transform .6s ease
}

.pcard:hover .pimg img {
transform: scale(1.07)
}

.pimg::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(6, 8, 10, .55) 0%, transparent 52%)
}

.pchips {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: .4rem .7rem;
display: flex;
flex-wrap: wrap;
gap: 3px;
z-index: 1
}

.pchip {
font-size: 9px;
font-weight: 700;
color: rgba(255, 255, 255, .92);
background: rgba(6, 8, 10, .55);
backdrop-filter: blur(4px);
padding: 2px 6px;
border-radius: 100px;
border: 1px solid rgba(255, 255, 255, .14);
white-space: nowrap
}

/* Body */
.pbody {
padding: .85rem .95rem;
display: flex;
flex-direction: column;
gap: .5rem;
flex: 1
}

.pcat {
display: flex;
align-items: center;
gap: 5px;
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .09em;
color: var(--muted)
}

.pcat-dot {
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0
}

.pcard[data-ph="before"] .pcat-dot {
background: var(--blue)
}

.pcard[data-ph="during"] .pcat-dot {
background: var(--gold-dk)
}

.pcard[data-ph="after"] .pcat-dot {
background: var(--green)
}

.pcard[data-ph="combo"] .pcat-dot {
background: var(--red)
}

.ptitle {
font-family: var(--display);
font-size: clamp(.92rem, 2.8vw, 1.1rem);
font-weight: 800;
color: var(--ink);
line-height: 1.2;
letter-spacing: -.015em
}

.pdesc {
font-size: 12px;
color: var(--blt);
line-height: 1.6
}

.pspecs {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: .38rem
}

.psp {
display: flex;
flex-direction: column;
gap: 1px;
padding: .42rem .45rem;
background: var(--s200);
border-radius: 5px;
border: 1px solid var(--bdr);
text-align: center
}

.psp-l {
font-size: 8px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .05em;
color: var(--muted)
}

.psp-v {
font-size: 11.5px;
font-weight: 700;
color: var(--ink)
}

.ptags {
display: flex;
flex-wrap: wrap;
gap: .28rem
}

.ptag {
font-size: 10.5px;
font-weight: 500;
color: var(--green);
background: rgba(26, 90, 56, .08);
border: 1px solid rgba(26, 90, 56, .16);
padding: 2px 7px;
border-radius: 100px
}

.pfoot {
display: flex;
align-items: center;
justify-content: space-between;
gap: .55rem;
padding-top: .6rem;
border-top: 1px solid var(--bdr);
flex-wrap: wrap;
margin-top: auto
}

.price-c {
display: flex;
flex-direction: column;
gap: 1px
}

.p-fr {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .06em;
color: var(--muted)
}

.p-am {
font-family: var(--display);
font-size: 1.2rem;
font-weight: 800;
color: var(--gold-dk);
line-height: 1
}

.p-pp {
font-size: 9.5px;
color: var(--muted)
}

/* List view */
#pkg-grid.gl .pcard {
flex-direction: row
}

#pkg-grid.gl .pbar {
width: 4px;
height: auto;
flex-shrink: 0
}

#pkg-grid.gl .pbdgs {
top: .6rem;
left: calc(4px + .6rem)
}

#pkg-grid.gl .pimg {
width: clamp(130px, 32vw, 190px);
min-width: clamp(130px, 32vw, 190px);
height: auto;
flex-shrink: 0
}

@media(max-width:479px) {
#pkg-grid.gl .pcard {
flex-direction: column
}

#pkg-grid.gl .pbar {
width: 100%;
height: 4px
}

#pkg-grid.gl .pimg {
width: 100%;
min-width: 0;
height: 170px
}
}

/* ═══════════ PARK CARDS ═══════════ */
.parks-grid {
display: grid;
grid-template-columns: 1fr;
gap: .9rem;
margin: 1.1rem 0
}

@media(min-width:480px) {
.parks-grid {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:900px) {
.parks-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.park-card {
border-radius: 13px;
overflow: hidden;
border: 1px solid var(--bdr);
background: var(--s100);
transition: box-shadow var(--ease), transform var(--ease)
}

.park-card:hover {
box-shadow: var(--sh-m);
transform: translateY(-3px)
}

.pk-img {
height: clamp(120px, 22vw, 150px);
overflow: hidden;
position: relative
}

.pk-img img {
width: 100%;
height: 100%;
object-fit: cover;
filter: saturate(1.1);
transition: transform .55s ease
}

.park-card:hover .pk-img img {
transform: scale(1.07)
}

.pk-img::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(6, 8, 10, .6) 0%, transparent 52%)
}

.pk-name {
position: absolute;
bottom: .55rem;
left: .8rem;
font-family: var(--display);
font-size: .9rem;
font-weight: 800;
color: #fff;
z-index: 1;
line-height: 1.2;
letter-spacing: -.01em
}

.pk-dist {
font-size: 9.5px;
color: rgba(255, 255, 255, .6);
display: block;
margin-top: 1px
}

.pk-body {
padding: .8rem .9rem 1rem
}

.pk-tag {
display: inline-block;
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
padding: 2px 8px;
border-radius: 100px;
color: #fff;
margin-bottom: .5rem
}

.pk-best {
background: var(--gold-dk)
}

.pk-great {
background: var(--green)
}

.pk-good {
background: var(--blue)
}

.pk-body p {
font-size: 12px;
color: var(--blt);
line-height: 1.6;
margin-bottom: .55rem
}

.pk-hls {
display: flex;
flex-wrap: wrap;
gap: .28rem
}

.pk-hl {
font-size: 10.5px;
font-weight: 500;
padding: 2px 7px;
border-radius: 100px;
background: var(--s300);
color: var(--bmd);
border: 1px solid var(--bdr)
}

/* ═══════════ CULTURAL TOURS ═══════════ */
.tours-grid {
display: grid;
grid-template-columns: 1fr;
gap: .8rem;
margin: 1.1rem 0
}

@media(min-width:480px) {
.tours-grid {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:760px) {
.tours-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.tour-card {
display: flex;
gap: .75rem;
background: var(--s100);
border: 1px solid var(--bdr);
border-radius: 12px;
padding: .9rem;
transition: box-shadow var(--ease), transform var(--ease)
}

.tour-card:hover {
box-shadow: var(--sh-m);
transform: translateY(-2px)
}

.tour-ico {
width: 40px;
height: 40px;
border-radius: 9px;
background: var(--s300);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.15rem;
flex-shrink: 0
}

.tour-body h4 {
font-family: var(--display);
font-size: .88rem;
font-weight: 800;
color: var(--ink);
margin-bottom: .18rem;
line-height: 1.25
}

.tour-body p {
font-size: 11.5px;
color: var(--muted);
line-height: 1.52
}

.tour-price {
font-size: 11.5px;
font-weight: 700;
color: var(--gold-dk);
margin-top: .28rem
}

/* ═══════════ ITINERARY CARDS ═══════════ */
.itin-grid {
display: grid;
grid-template-columns: 1fr;
gap: .9rem;
margin: 1.1rem 0
}

@media(min-width:560px) {
.itin-grid {
grid-template-columns: 1fr 1fr
}
}

.icard {
border: 1px solid var(--bdr);
border-radius: 14px;
overflow: hidden;
background: var(--s100);
transition: box-shadow var(--ease), transform var(--ease)
}

.icard:hover {
box-shadow: var(--sh-l);
transform: translateY(-3px)
}

.icard-top {
padding: 1rem 1.1rem .85rem;
color: #fff
}

.icard.bef .icard-top {
background: linear-gradient(135deg, var(--blue), var(--d700))
}

.icard.dur .icard-top {
background: linear-gradient(135deg, var(--gold-dk), var(--d800))
}

.icard.aft .icard-top {
background: linear-gradient(135deg, var(--green), var(--d700))
}

.icard.meg .icard-top {
background: linear-gradient(135deg, var(--red), var(--d800))
}

.it-lbl {
font-size: 8.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .12em;
color: rgba(255, 255, 255, .4);
display: block;
margin-bottom: .18rem
}

.it-title {
font-family: var(--display);
font-size: clamp(.95rem, 3vw, 1.05rem);
font-weight: 800;
color: #fff;
line-height: 1.2;
margin-bottom: .38rem;
letter-spacing: -.015em
}

.it-price {
font-family: var(--display);
font-size: 1.25rem;
font-weight: 800;
color: var(--gold-lt)
}

.it-price span {
font-size: 10px;
color: rgba(255, 255, 255, .38);
font-weight: 400;
margin-left: .2rem
}

.icard-body {
padding: .9rem 1.1rem
}

.it-days {
display: flex;
flex-direction: column;
gap: .38rem
}

.it-day {
display: flex;
gap: .55rem;
align-items: flex-start
}

.it-n {
width: 20px;
height: 20px;
border-radius: 50%;
background: var(--gold);
color: var(--d900);
font-size: 9px;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
margin-top: 1px
}

.it-txt {
font-size: 12px;
color: var(--bmd);
line-height: 1.45
}

.it-txt strong {
color: var(--ink);
font-weight: 600
}

.icard-foot {
padding: .8rem 1.1rem;
border-top: 1px solid var(--bdr);
display: flex;
align-items: center;
justify-content: space-between;
gap: .45rem;
flex-wrap: wrap
}

.it-parks {
display: flex;
flex-wrap: wrap;
gap: .28rem
}

.it-pt {
font-size: 9.5px;
padding: 2px 7px;
border-radius: 100px;
background: var(--s300);
color: var(--bmd);
border: 1px solid var(--bdr);
font-weight: 500
}

.it-book {
padding: .52rem .9rem;
background: var(--gold-dk);
color: #fff;
border-radius: 100px;
font-size: 12px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease);
white-space: nowrap;
min-height: 36px
}

.it-book:hover {
background: var(--gold)
}

/* ═══════════ TIMING TABLE ═══════════ */
.tbl-wrap {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
border-radius: 10px;
border: 1px solid var(--bdr);
margin: 1.1rem 0
}

.tbl-wrap::-webkit-scrollbar {
height: 4px
}

.tbl-wrap::-webkit-scrollbar-thumb {
background: var(--bdr-m);
border-radius: 4px
}

.tbl {
width: 100%;
min-width: 480px;
border-collapse: collapse;
font-size: 12.5px
}

.tbl th {
padding: .55rem .8rem;
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
color: rgba(255, 255, 255, .7);
background: var(--d800);
text-align: left;
white-space: nowrap;
border-right: 1px solid rgba(255, 255, 255, .07)
}

.tbl td {
padding: .55rem .8rem;
border-bottom: 1px solid var(--bdr);
border-right: 1px solid var(--bdr);
vertical-align: middle
}

.tbl tr:last-child td {
border-bottom: none
}

.tbl tr:nth-child(even) td {
background: var(--s200)
}

.tbl tr:hover td {
background: var(--gold-bg)
}

.t-best {
display: inline-block;
background: rgba(26, 90, 56, .14);
color: var(--green);
font-size: 10.5px;
font-weight: 700;
padding: 2px 7px;
border-radius: 100px;
border: 1px solid rgba(26, 90, 56, .22);
white-space: nowrap
}

.t-good {
display: inline-block;
background: rgba(184, 128, 24, .14);
color: var(--gold-dk);
font-size: 10.5px;
font-weight: 700;
padding: 2px 7px;
border-radius: 100px;
border: 1px solid rgba(184, 128, 24, .25);
white-space: nowrap
}

.t-warn {
display: inline-block;
background: rgba(200, 40, 32, .1);
color: var(--red);
font-size: 10.5px;
font-weight: 700;
padding: 2px 7px;
border-radius: 100px;
border: 1px solid rgba(200, 40, 32, .2);
white-space: nowrap
}

.t-info {
display: inline-block;
background: rgba(24, 112, 192, .1);
color: var(--blue);
font-size: 10.5px;
font-weight: 700;
padding: 2px 7px;
border-radius: 100px;
border: 1px solid rgba(24, 112, 192, .2);
white-space: nowrap
}

/* ═══════════ TIPS ═══════════ */
.tips-grid {
display: grid;
grid-template-columns: 1fr;
gap: .8rem;
margin: 1.1rem 0
}

@media(min-width:480px) {
.tips-grid {
grid-template-columns: 1fr 1fr
}
}

.tip {
display: flex;
gap: .75rem;
background: var(--s100);
border: 1px solid var(--bdr);
border-radius: 12px;
padding: .9rem;
transition: box-shadow var(--ease), transform var(--ease)
}

.tip:hover {
box-shadow: var(--sh-m);
transform: translateY(-2px)
}

.tip-ico {
width: 40px;
height: 40px;
border-radius: 9px;
background: var(--s300);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.15rem;
flex-shrink: 0
}

.tip-body h4 {
font-family: var(--display);
font-size: .86rem;
font-weight: 800;
color: var(--ink);
margin-bottom: .18rem;
line-height: 1.25
}

.tip-body p {
font-size: 11.5px;
color: var(--muted);
line-height: 1.55
}

/* ═══════════ TESTIMONIALS ═══════════ */
.testi-grid {
display: grid;
grid-template-columns: 1fr;
gap: .9rem;
margin: 1.1rem 0
}

@media(min-width:560px) {
.testi-grid {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:900px) {
.testi-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.tc {
background: var(--s100);
border: 1px solid var(--bdr);
border-radius: 13px;
padding: 1.1rem;
display: flex;
flex-direction: column;
gap: .6rem;
position: relative;
transition: box-shadow var(--ease)
}

.tc:hover {
box-shadow: var(--sh-m)
}

.tq {
position: absolute;
top: .4rem;
right: .8rem;
font-family: var(--display);
font-size: 2.6rem;
font-weight: 800;
color: var(--s300);
line-height: 1;
pointer-events: none
}

.t-stars {
color: var(--gold);
font-size: 12px;
display: flex;
gap: 2px
}

.t-text {
font-size: 12.5px;
color: var(--bmd);
line-height: 1.72;
font-style: italic;
position: relative;
z-index: 1;
flex: 1
}

.t-author {
display: flex;
align-items: center;
gap: .6rem;
padding-top: .7rem;
border-top: 1px solid var(--bdr)
}

.t-avatar {
width: 32px;
height: 32px;
border-radius: 50%;
object-fit: cover;
border: 2px solid var(--bdr);
flex-shrink: 0
}

.t-name {
font-size: 12px;
font-weight: 700;
color: var(--ink)
}

.t-trip {
font-size: 10.5px;
color: var(--muted)
}

/* ═══════════ FAQ ═══════════ */
.faq-wrap {
border: 1px solid var(--bdr);
border-radius: 13px;
overflow: hidden;
margin: 1.1rem 0
}

.faq-q {
width: 100%;
background: none;
border: none;
text-align: left;
padding: .95rem 1.1rem;
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: .75rem;
font-size: clamp(13px, 2vw, 14.5px);
font-weight: 600;
color: var(--ink);
cursor: pointer;
transition: color var(--ease), background var(--ease);
line-height: 1.38;
border-bottom: 1px solid var(--bdr);
font-family: var(--body);
min-height: 52px
}

.faq-q:last-of-type {
border-bottom: none
}

.faq-q:hover,
.faq-q[aria-expanded="true"] {
background: var(--gold-bg);
color: var(--green)
}

.faq-q[aria-expanded="true"]+.faq-a {
display: block
}

.faq-q svg {
width: 18px;
height: 18px;
flex-shrink: 0;
color: var(--muted);
margin-top: 1px;
transition: transform var(--ease)
}

.faq-q[aria-expanded="true"] svg {
transform: rotate(45deg);
color: var(--gold-dk)
}

.faq-a {
display: none;
padding: .85rem 1.1rem 1.1rem;
font-size: 13px;
color: var(--bmd);
line-height: 1.78;
border-bottom: 1px solid var(--bdr);
background: var(--s100)
}

.faq-a:last-child {
border-bottom: none
}

.faq-a strong {
color: var(--ink);
font-weight: 600
}

/* ═══════════ CTA BLOCK ═══════════ */
.cta-block {
background: linear-gradient(135deg, var(--d900) 0%, var(--d700) 55%, rgba(26, 90, 56, .38) 100%);
border-radius: 14px;
padding: clamp(1.6rem, 5vw, 2.75rem);
text-align: center;
color: #fff;
position: relative;
overflow: hidden;
border: 1px solid rgba(232, 168, 32, .2)
}

.cta-block::before {
content: '⚽';
position: absolute;
right: -12px;
bottom: -12px;
font-size: clamp(5rem, 18vw, 9rem);
opacity: .05;
line-height: 1;
pointer-events: none
}

.cta-block h2 {
font-family: var(--display);
font-size: clamp(1.25rem, 4vw, 1.9rem);
font-weight: 800;
color: #fff;
margin-bottom: .6rem;
letter-spacing: -.02em;
position: relative;
z-index: 1
}

.cta-block h2 em {
font-style: italic;
color: var(--gold-lt)
}

.cta-block p {
font-size: 14px;
color: rgba(255, 255, 255, .56);
max-width: 480px;
margin: 0 auto 1.4rem;
line-height: 1.72;
position: relative;
z-index: 1
}

.cta-btns {
display: flex;
flex-direction: column;
align-items: center;
gap: .6rem;
position: relative;
z-index: 1
}

@media(min-width:400px) {
.cta-btns {
flex-direction: row;
justify-content: center;
flex-wrap: wrap
}
}

.cta-p {
display: inline-flex;
align-items: center;
justify-content: center;
gap: .42rem;
padding: .82rem 1.6rem;
background: var(--gold);
color: var(--d900);
border-radius: 100px;
font-size: 14.5px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease);
min-height: 48px;
white-space: nowrap;
width: 100%;
max-width: 260px
}

.cta-p:hover {
background: var(--gold-lt)
}

@media(min-width:400px) {
.cta-p {
width: auto;
max-width: none
}
}

.cta-wa {
display: inline-flex;
align-items: center;
justify-content: center;
gap: .42rem;
padding: .82rem 1.4rem;
background: rgba(37, 211, 102, .14);
border: 1px solid rgba(37, 211, 102, .3);
color: rgba(37, 211, 102, .92);
border-radius: 100px;
font-size: 13.5px;
font-weight: 600;
min-height: 48px;
white-space: nowrap;
width: 100%;
max-width: 200px;
transition: background var(--ease)
}

.cta-wa:hover {
background: rgba(37, 211, 102, .22)
}

@media(min-width:400px) {
.cta-wa {
width: auto;
max-width: none
}
}

.cta-trust {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: .6rem;
margin-top: .95rem;
position: relative;
z-index: 1
}

.cta-trust span {
display: flex;
align-items: center;
gap: .3rem;
font-size: 11px;
color: rgba(255, 255, 255, .38)
}

.cta-trust svg {
width: 11px;
height: 11px;
color: var(--gold-lt)
}

/* ═══════════ MODAL — MOBILE SHEET ═══════════ */
.m-ov {
position: fixed;
inset: 0;
background: rgba(6, 8, 10, .82);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
z-index: 10000;
display: flex;
align-items: flex-end;
justify-content: center;
padding: 0;
opacity: 0;
pointer-events: none;
transition: opacity .25s ease
}

@media(min-width:560px) {
.m-ov {
align-items: center;
padding: 1rem
}
}

.m-ov.open {
opacity: 1;
pointer-events: auto
}

.m-panel {
background: var(--s100);
border-radius: 16px 16px 0 0;
width: 100%;
max-width: 660px;
max-height: 94vh;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
transform: translateY(100%);
transition: transform .3s cubic-bezier(.34, 1.44, .64, 1);
box-shadow: 0 -8px 60px rgba(6, 8, 10, .4)
}

@media(min-width:560px) {
.m-panel {
border-radius: 16px;
transform: translateY(20px) scale(.97);
max-height: 90vh
}
}

.m-ov.open .m-panel {
transform: translateY(0)
}

@media(min-width:560px) {
.m-ov.open .m-panel {
transform: translateY(0) scale(1)
}
}

/* Drag handle */
.m-drag {
display: flex;
justify-content: center;
padding: .7rem 0 0;
cursor: pointer
}

@media(min-width:560px) {
.m-drag {
display: none
}
}

.m-drag::before {
content: '';
display: block;
width: 36px;
height: 4px;
background: var(--bdr-m);
border-radius: 2px
}

.m-head {
background: linear-gradient(135deg, var(--d900) 0%, var(--d700) 55%, rgba(232, 168, 32, .3) 100%);
padding: clamp(1rem, 4vw, 1.6rem);
position: relative
}

.m-close {
position: absolute;
top: .85rem;
right: .85rem;
width: 36px;
height: 36px;
border-radius: 50%;
background: rgba(255, 255, 255, .14);
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
color: rgba(255, 255, 255, .78);
transition: background var(--ease)
}

.m-close:hover {
background: rgba(255, 255, 255, .26)
}

.m-close svg {
width: 14px;
height: 14px
}

.m-tag {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .14em;
color: rgba(255, 255, 255, .35);
display: block;
margin-bottom: .28rem
}

.m-title {
font-family: var(--display);
font-size: clamp(1.05rem, 3vw, 1.45rem);
font-weight: 800;
color: #fff;
line-height: 1.2;
max-width: 420px;
letter-spacing: -.015em
}

.m-price-row {
display: flex;
align-items: baseline;
gap: .42rem;
margin-top: .55rem
}

.mpf {
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: rgba(255, 255, 255, .35)
}

.mpa {
font-family: var(--display);
font-size: 1.3rem;
font-weight: 800;
color: var(--gold-lt)
}

.mpp {
font-size: 10.5px;
color: rgba(255, 255, 255, .3)
}

.m-trust {
display: flex;
flex-wrap: wrap;
gap: .45rem;
margin-top: .7rem
}

.m-trust span {
display: flex;
align-items: center;
gap: .3rem;
font-size: 10.5px;
color: rgba(255, 255, 255, .48)
}

.m-trust svg {
width: 11px;
height: 11px;
color: var(--gold-lt);
flex-shrink: 0
}

/* Form */
.mf-area {
padding: clamp(.95rem, 4vw, 1.5rem)
}

.mstack {
display: flex;
flex-direction: column;
gap: .85rem
}

.mpair {
display: flex;
flex-direction: column;
gap: .85rem
}

@media(min-width:480px) {
.mpair {
flex-direction: row
}

.mpair .mf {
flex: 1
}
}

.mf {
display: flex;
flex-direction: column;
gap: .26rem
}

.mf label {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
color: var(--muted)
}

.mf label .req {
color: var(--red)
}

.mf input,
.mf select,
.mf textarea {
width: 100%;
padding: .65rem .85rem;
border: 1.5px solid var(--bdr);
border-radius: 7px;
background: var(--s200);
color: var(--ink);
font-size: 16px;
/* 16px prevents iOS zoom */
outline: none;
transition: border-color var(--ease), box-shadow var(--ease);
appearance: none;
-webkit-appearance: none
}

.mf input:focus,
.mf select:focus,
.mf textarea:focus {
border-color: var(--gold-dk);
box-shadow: 0 0 0 3px rgba(184, 128, 24, .13)
}

.mf select {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23807060' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right .7rem center;
padding-right: 2rem
}

.mf textarea {
min-height: 70px;
resize: vertical;
font-size: 16px
}

.m-submit {
display: flex;
align-items: center;
justify-content: center;
gap: .5rem;
width: 100%;
padding: 1rem;
background: var(--d800);
color: #fff;
border: none;
border-radius: 7px;
font-size: 15px;
font-weight: 700;
cursor: pointer;
transition: background var(--ease);
font-family: var(--body);
min-height: 52px
}

.m-submit:hover {
background: var(--gold-dk)
}

.m-note {
text-align: center;
font-size: 11px;
color: var(--muted);
margin-top: .65rem;
display: flex;
align-items: center;
justify-content: center;
gap: .38rem
}

.m-note svg {
width: 12px;
height: 12px;
color: var(--gold-dk)
}

.m-success {
display: none;
flex-direction: column;
align-items: center;
text-align: center;
gap: .85rem;
padding: 2.5rem 1.5rem
}

.m-success.show {
display: flex
}

.m-sico {
font-size: 2.5rem
}

.m-success h3 {
font-family: var(--display);
font-size: 1.25rem;
font-weight: 800;
color: var(--ink);
letter-spacing: -.01em
}

.m-success p {
font-size: 13px;
color: var(--muted);
line-height: 1.7;
max-width: 340px
}

.m-sclose {
padding: .65rem 1.75rem;
background: var(--d800);
color: #fff;
border-radius: 100px;
font-size: 14px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease);
min-height: 44px
}

.m-sclose:hover {
background: var(--gold-dk)
}

/* ═══════════ FOOTER ═══════════ */
.site-footer {
background: var(--night);
border-top: 1px solid rgba(232, 168, 32, .12);
padding: clamp(2.5rem, 6vw, 4rem) var(--px) clamp(1.5rem, 4vw, 2.5rem);
color: rgba(255, 255, 255, .56)
}

.f-wrap {
max-width: var(--max);
margin: 0 auto
}

.f-grid {
display: grid;
grid-template-columns: 1fr;
gap: 2rem
}

@media(min-width:560px) {
.f-grid {
grid-template-columns: 1fr 1fr;
gap: 2.5rem
}
}

@media(min-width:900px) {
.f-grid {
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 3rem
}
}

.f-brand-n {
font-family: var(--display);
font-size: 1rem;
font-weight: 800;
color: #fff;
margin-bottom: .5rem
}

.f-brand p {
font-size: 13px;
line-height: 1.7;
max-width: 260px
}

.f-social {
display: flex;
gap: .45rem;
margin-top: .85rem
}

.f-soc {
width: 34px;
height: 34px;
border-radius: 50%;
background: rgba(255, 255, 255, .07);
color: rgba(255, 255, 255, .58);
display: flex;
align-items: center;
justify-content: center;
transition: all var(--ease)
}

.f-soc:hover {
background: var(--gold-dk);
color: #fff
}

.f-soc svg {
width: 15px;
height: 15px
}

.f-col-t {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .13em;
color: var(--gold-lt);
margin-bottom: .85rem
}

.f-col ul {
display: flex;
flex-direction: column;
gap: .42rem
}

.f-col a {
font-size: 13px;
color: rgba(255, 255, 255, .48);
transition: color var(--ease)
}

.f-col a:hover {
color: #fff
}

.f-btm {
margin-top: 1.75rem;
padding-top: 1.25rem;
border-top: 1px solid rgba(255, 255, 255, .07);
display: flex;
flex-direction: column;
gap: .38rem;
font-size: 11px;
color: rgba(255, 255, 255, .22)
}

@media(min-width:520px) {
.f-btm {
flex-direction: row;
justify-content: space-between;
align-items: center
}
}

.f-btm a {
color: inherit;
transition: color var(--ease)
}

.f-btm a:hover {
color: rgba(255, 255, 255, .6)
}

/* ═══════════ MOBILE STICKY CTA ═══════════ */
.mob-sticky {
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 400;
background: rgba(6, 8, 10, .97);
border-top: 2px solid rgba(232, 168, 32, .32);
padding: .65rem var(--px);
display: flex;
align-items: center;
gap: .75rem;
padding-bottom: calc(.65rem + env(safe-area-inset-bottom, 0px))
}

@media(min-width:900px) {
.mob-sticky {
display: none
}
}

.ms-info {
flex: 1;
min-width: 0
}

.ms-lbl {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
color: rgba(255, 255, 255, .32);
display: block
}

.ms-price {
font-family: var(--display);
font-size: 1.05rem;
font-weight: 800;
color: var(--gold-lt);
line-height: 1.15
}

.ms-btn {
padding: .65rem 1.3rem;
background: var(--gold);
color: var(--d900);
border: none;
border-radius: 100px;
font-size: 14px;
font-weight: 700;
cursor: pointer;
transition: background var(--ease);
white-space: nowrap;
flex-shrink: 0;
min-height: 46px
}

.ms-btn:hover {
background: var(--gold-lt)
}

/* ── PROSE ── */
.prose p {
font-size: clamp(13.5px, 2vw, 15px);
color: var(--bmd);
line-height: 1.84;
margin-bottom: 1.1rem;
max-width: 700px
}

.prose h3 {
font-family: var(--display);
font-size: clamp(1rem, 3vw, 1.35rem);
font-weight: 800;
color: var(--ink);
margin: 1.6rem 0 .5rem;
letter-spacing: -.015em
}

.prose strong {
color: var(--ink);
font-weight: 700
}

.prose ul {
margin: .8rem 0 1.1rem;
display: flex;
flex-direction: column;
gap: .42rem;
max-width: 700px
}

.prose ul li {
display: flex;
align-items: flex-start;
gap: .55rem;
font-size: clamp(13px, 2vw, 14.5px);
color: var(--bmd);
line-height: 1.65
}

.prose ul li::before {
content: '';
width: 6px;
height: 6px;
background: var(--gold-dk);
border-radius: 50%;
flex-shrink: 0;
margin-top: .55rem
}

/* ── RESPONSIVE EDGE ── */
@media(max-width:380px) {
:root {
--px: .85rem
}

.host-flags {
display: none
}
}

@media(max-width:320px) {
.hero-h1 {
font-size: 1.5rem
}

.sec-h {
font-size: 1.3rem
}
}

/* Reduce motion */
@media(prefers-reduced-motion:reduce) {
* {
animation-duration: .01ms !important;
transition-duration: .01ms !important
}

.afcon-dot {
animation: none
}
}
