/* ══════════════════════════════════════════════
AFCON 2027 TANZANIA SAFARI — FULLY MOBILE-FIRST
Every breakpoint tested · Touch-optimized
Palette: Night / AFCON Gold / Safari Green / Red
Fonts: Syne (bold headlines) + Inter (body)
══════════════════════════════════════════════ */

/* ── 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.7;
overflow-x: hidden;
-webkit-font-smoothing: antialiased
}

img {
max-width: 100%;
height: auto;
display: block
}

a {
color: inherit;
text-decoration: none
}

button,
input,
select,
textarea {
font-family: inherit;
font-size: inherit
}

ul {
list-style: none
}

:focus-visible {
outline: 3px solid var(--gold);
outline-offset: 3px;
border-radius: 3px
}

/* ── TOKENS ── */
:root {
--night: #06080A;
--dark-900: #0A0E14;
--dark-800: #111A24;
--dark-700: #1A2840;
--dark-600: #263650;
--gold: #E8A820;
--gold-lt: #F0C040;
--gold-dk: #B88018;
--gold-pale: #FBF4D8;
--green: #1A5A38;
--green-md: #267048;
--green-lt: #3A9060;
--red: #C82820;
--red-lt: #E03830;
--blue: #1870C0;
--blue-lt: #2890E0;
--bg: #F4F0E8;
--sand-100: #FDFAF4;
--sand-200: #F0EBE0;
--sand-300: #E4DDD0;
--ink: #100C04;
--body-md: #2E2010;
--body-lt: #504030;
--muted: #807060;
--border: rgba(150, 120, 50, .15);
--border-md: rgba(150, 120, 50, .28);
--sh-sm: 0 2px 12px rgba(6, 8, 10, .1);
--sh-md: 0 8px 32px rgba(6, 8, 10, .16);
--sh-lg: 0 20px 64px rgba(6, 8, 10, .22);
--display: 'Poppins', sans-serif;
--body: 'Inter', -apple-system, sans-serif;
--ease: .2s cubic-bezier(.4, 0, .2, 1);
--max: 1200px;
/* Mobile-safe spacing */
--page-px: clamp(1rem, 5vw, 1.5rem);
--section-py: clamp(2.5rem, 6vw, 4rem);
}

/* ── ACCESSIBILITY ── */
.skip {
position: absolute;
top: -100%;
left: .5rem;
z-index: 9999;
background: var(--dark-900);
color: #fff;
padding: .5rem 1rem;
border-radius: 4px;
font-size: 14px;
transition: top var(--ease)
}

.skip:focus {
top: .5rem
}

/* ── PROGRESS BAR ── */
#prog {
position: fixed;
top: 0;
left: 0;
height: 3px;
width: 0%;
background: linear-gradient(90deg, var(--gold), var(--green-lt));
z-index: 700;
pointer-events: none;
transition: width .12s linear
}

/* ══════════ 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-wrap {
max-width: var(--max);
margin: 0 auto;
padding: 0 var(--page-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
}

.logo-img {
width: 32px;
height: 32px;
border-radius: 4px;
object-fit: contain;
flex-shrink: 0
}

.logo-text {
display: flex;
flex-direction: column;
line-height: 1.1;
min-width: 0
}

.logo-name {
font-family: var(--display);
font-size: clamp(.78rem, 3.5vw, .9rem);
font-weight: 700;
color: #fff;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis
}

.logo-tag {
font-size: 8px;
color: rgba(255, 255, 255, .3);
letter-spacing: .12em;
text-transform: uppercase
}

/* Hamburger */
.hbug {
display: flex;
flex-direction: column;
gap: 4px;
background: none;
border: none;
cursor: pointer;
padding: .5rem;
border-radius: 4px;
flex-shrink: 0;
touch-action: manipulation
}

.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
}

.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, .18);
padding: .75rem var(--page-px) 1rem;
flex-direction: column;
gap: .25rem
}

.hnav.open {
display: flex
}

.hnav a {
display: block;
padding: .6rem .75rem;
font-size: 14px;
font-weight: 500;
color: rgba(255, 255, 255, .68);
border-radius: 4px;
transition: background var(--ease), color var(--ease)
}

.hnav a:hover {
background: rgba(232, 168, 32, .15);
color: #fff
}

.hnav .nav-cta {
display: flex;
align-items: center;
justify-content: center;
margin-top: .5rem;
padding: .7rem;
background: var(--gold);
color: var(--dark-900);
border-radius: 6px;
font-weight: 700;
font-size: 14px;
transition: background var(--ease);
touch-action: manipulation
}

.hnav .nav-cta: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
}

.hnav a {
font-size: 13px;
padding: .35rem .6rem
}

.hnav .nav-cta {
margin-top: 0;
padding: .38rem 1.1rem;
border-radius: 100px;
font-size: 13px
}
}

/* ── BREADCRUMB ── */
.bc {
background: var(--dark-900);
border-bottom: 1px solid rgba(232, 168, 32, .15);
overflow: hidden
}

.bc-inner {
max-width: var(--max);
margin: 0 auto;
padding: .45rem var(--page-px);
display: flex;
gap: .4rem;
align-items: center;
overflow-x: auto;
scrollbar-width: none;
white-space: nowrap;
font-size: 11px;
color: rgba(255, 255, 255, .32)
}

.bc-inner::-webkit-scrollbar {
display: none
}

.bc-inner a {
color: rgba(255, 255, 255, .5);
transition: color var(--ease)
}

.bc-inner 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;
min-height: clamp(480px, 90vw, 760px);
display: flex;
flex-direction: column;
overflow: hidden;
background: var(--dark-900)
}

.hero-img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center 38%;
filter: saturate(1.2) brightness(.44)
}

.hero-ov {
position: absolute;
inset: 0;
background: linear-gradient(170deg, rgba(6, 8, 10, .05) 0%, rgba(6, 8, 10, .3) 35%, rgba(6, 8, 10, .82) 68%, #06080A 100%)
}

.hero-ridge {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: clamp(50px, 10vw, 90px);
background: linear-gradient(to top, var(--bg), transparent);
z-index: 1
}

/* AFCON header strip */
.afcon-strip {
position: relative;
z-index: 4;
background: linear-gradient(90deg, var(--red) 0%, var(--dark-800) 30%, var(--dark-800) 70%, var(--green) 100%);
border-bottom: 1px solid rgba(232, 168, 32, .25);
padding: .5rem var(--page-px)
}

.afcon-strip-inner {
max-width: var(--max);
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: .5rem
}

.afcon-live {
display: flex;
align-items: center;
gap: .5rem;
font-size: 11px;
font-weight: 700;
letter-spacing: .12em;
text-transform: uppercase;
color: var(--gold-lt)
}

.afcon-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--gold);
animation: pulse-dot 1.8s ease-in-out infinite;
flex-shrink: 0
}

@keyframes pulse-dot {

0%,
100% {
transform: scale(1);
opacity: 1
}

50% {
transform: scale(1.4);
opacity: .6
}
}

.host-flags {
display: flex;
gap: .5rem
}

.flag-tag {
display: inline-flex;
align-items: center;
gap: .3rem;
background: rgba(255, 255, 255, .1);
border: 1px solid rgba(255, 255, 255, .18);
color: rgba(255, 255, 255, .75);
font-size: 11px;
font-weight: 600;
padding: .18rem .6rem;
border-radius: 100px
}

/* Hero content */
.hero-body {
position: relative;
z-index: 2;
flex: 1;
display: flex;
flex-direction: column;
justify-content: flex-end;
max-width: var(--max);
margin: 0 auto;
width: 100%;
padding: 0 var(--page-px) clamp(2rem, 6vw, 4rem)
}

.hero-tag {
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: 10px;
font-weight: 700;
letter-spacing: .18em;
text-transform: uppercase;
padding: .25rem .9rem;
border-radius: 100px;
margin-bottom: 1rem;
width: fit-content
}

.hero-h1 {
font-family: var(--display);
font-size: clamp(1.85rem, 6.5vw, 4rem);
font-weight: 800;
color: #fff;
line-height: 1.08;
letter-spacing: -.025em;
margin-bottom: .85rem;
max-width: 820px
}

.hero-h1 .gold-txt {
color: var(--gold-lt)
}

.hero-h1 .green-txt {
color: #5ED090;
font-style: italic
}

.hero-sub {
font-size: clamp(13.5px, 2vw, 16px);
color: rgba(255, 255, 255, .62);
max-width: 580px;
line-height: 1.78;
margin-bottom: 1.5rem
}

/* Pill tags */
.hero-pills {
display: flex;
flex-wrap: wrap;
gap: .45rem;
margin-bottom: 1.5rem
}

.hero-pill {
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, .8);
font-size: 11.5px;
font-weight: 500;
padding: .25rem .75rem;
border-radius: 100px
}

.hero-pill strong {
color: var(--gold-lt)
}

/* CTAs */
.hero-ctas {
display: flex;
flex-direction: column;
gap: .65rem
}

@media(min-width:380px) {
.hero-ctas {
flex-direction: row;
flex-wrap: wrap
}
}

.cta-gold {
display: inline-flex;
align-items: center;
justify-content: center;
gap: .45rem;
padding: .85rem 1.75rem;
background: var(--gold);
color: var(--dark-900);
border-radius: 100px;
font-size: 15px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease), transform var(--ease);
touch-action: manipulation;
-webkit-tap-highlight-color: transparent;
white-space: nowrap;
width: 100%;
max-width: 280px
}

.cta-gold:hover {
background: var(--gold-lt)
}

.cta-gold:active {
transform: scale(.97)
}

.cta-ghost {
display: inline-flex;
align-items: center;
justify-content: center;
gap: .45rem;
padding: .85rem 1.4rem;
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: 14px;
font-weight: 500;
cursor: pointer;
transition: background var(--ease);
touch-action: manipulation;
-webkit-tap-highlight-color: transparent;
white-space: nowrap;
width: 100%;
max-width: 240px
}

.cta-ghost:hover {
background: rgba(255, 255, 255, .18)
}

@media(min-width:380px) {

.cta-gold,
.cta-ghost {
width: auto;
max-width: none
}
}

/* Stats row */
.hero-stats {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: .6rem;
margin-top: 1.5rem;
padding-top: 1.5rem;
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: .5rem
}

.hs-num {
font-family: var(--display);
font-size: 1.4rem;
font-weight: 800;
color: var(--gold-lt);
display: block;
line-height: 1
}

.hs-lbl {
font-size: 9.5px;
color: rgba(255, 255, 255, .38);
text-transform: uppercase;
letter-spacing: .09em;
margin-top: 3px;
display: block
}

/* ══════════ LAYOUT ══════════ */
.page-wrap {
max-width: var(--max);
margin: 0 auto;
padding: 0 var(--page-px)
}

.section {
padding: var(--section-py) 0
}

.section-sm {
padding: clamp(1.5rem, 4vw, 2.5rem) 0
}

.divider {
height: 1px;
background: linear-gradient(90deg, transparent, var(--border-md), transparent);
margin: 0
}

/* ── SECTION LABELS ── */
.sec-label {
font-size: 10px;
font-weight: 700;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--gold-dk);
display: block;
margin-bottom: .45rem
}

.sec-title {
font-family: var(--display);
font-size: clamp(1.5rem, 4.5vw, 2.2rem);
font-weight: 800;
color: var(--ink);
line-height: 1.15;
margin-bottom: .7rem;
letter-spacing: -.02em
}

.sec-title .green {
color: var(--green)
}

.sec-title .gold {
color: var(--gold-dk)
}

.sec-title em {
font-style: italic
}

.sec-intro {
font-size: clamp(14px, 2vw, 15.5px);
color: var(--body-md);
line-height: 1.82;
margin-bottom: 1.75rem;
max-width: 720px
}

/* ══════════ AFCON INFO BOX ══════════ */
.afcon-box {
background: linear-gradient(135deg, var(--dark-900) 0%, var(--dark-700) 60%, rgba(26, 90, 56, .4) 100%);
border-radius: 16px;
padding: clamp(1.4rem, 4vw, 2.25rem);
margin: 1.5rem 0;
color: #fff;
position: relative;
overflow: hidden;
border: 1px solid rgba(232, 168, 32, .22)
}

.afcon-box::before {
content: '⚽';
position: absolute;
top: -15px;
right: -10px;
font-size: clamp(5rem, 15vw, 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-label {
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .14em;
color: rgba(255, 255, 255, .4);
display: block;
margin-bottom: .35rem
}

.ab-title {
font-family: var(--display);
font-size: clamp(1.25rem, 3.5vw, 1.75rem);
font-weight: 800;
color: #fff;
margin-bottom: .5rem;
letter-spacing: -.02em
}

.ab-title span {
color: var(--gold-lt)
}

.ab-desc {
font-size: 13.5px;
color: rgba(255, 255, 255, .6);
line-height: 1.68;
margin-bottom: 1.25rem;
max-width: 600px
}

.ab-facts {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: .6rem
}

@media(min-width:480px) {
.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: 10px;
padding: .85rem .7rem;
text-align: center
}

.ab-fact-val {
font-family: var(--display);
font-size: 1.15rem;
font-weight: 800;
color: var(--gold-lt);
display: block;
line-height: 1
}

.ab-fact-lbl {
font-size: 10.5px;
color: rgba(255, 255, 255, .42);
margin-top: .25rem;
line-height: 1.35
}

/* ══════════ PHASE CARDS (Before / During / After) ══════════ */
.phase-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1.1rem;
margin: 1.5rem 0
}

@media(min-width:560px) {
.phase-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.phase-card {
border-radius: 16px;
overflow: hidden;
border: 1px solid var(--border);
transition: box-shadow var(--ease), transform var(--ease)
}

.phase-card:hover {
box-shadow: var(--sh-lg);
transform: translateY(-3px)
}

.pc-top {
padding: 1.25rem 1.25rem 1rem
}

.phase-card.before .pc-top {
background: linear-gradient(135deg, var(--blue) 0%, var(--dark-700) 100%)
}

.phase-card.during .pc-top {
background: linear-gradient(135deg, var(--red) 0%, var(--dark-800) 100%)
}

.phase-card.after .pc-top {
background: linear-gradient(135deg, var(--green) 0%, var(--dark-700) 100%)
}

.pc-icon {
font-size: 1.6rem;
margin-bottom: .5rem;
line-height: 1
}

.pc-phase {
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .12em;
color: rgba(255, 255, 255, .42);
display: block;
margin-bottom: .2rem
}

.pc-title {
font-family: var(--display);
font-size: 1.05rem;
font-weight: 800;
color: #fff;
line-height: 1.2;
margin-bottom: .3rem
}

.pc-dates {
font-size: 11px;
color: rgba(255, 255, 255, .5);
font-weight: 600
}

.pc-body {
background: var(--sand-100);
padding: 1rem 1.25rem 1.25rem
}

.pc-rec {
font-size: 12.5px;
font-weight: 600;
color: var(--ink);
margin-bottom: .6rem
}

.pc-list {
display: flex;
flex-direction: column;
gap: .4rem
}

.pc-list li {
font-size: 12px;
color: var(--body-lt);
display: flex;
align-items: flex-start;
gap: .4rem;
line-height: 1.45
}

.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: .75rem;
font-size: 10px;
font-weight: 700;
padding: 3px 9px;
border-radius: 100px;
color: #fff
}

.before .pc-badge {
background: var(--blue)
}

.during .pc-badge {
background: var(--red)
}

.after .pc-badge {
background: var(--green)
}

/* ══════════ CALLOUTS ══════════ */
.callout {
display: flex;
gap: .85rem;
border-radius: 10px;
padding: 1.1rem 1.25rem;
margin: 1.25rem 0;
border: 1px solid
}

@media(max-width:400px) {
.callout {
flex-direction: column;
gap: .5rem
}
}

.c-ico {
font-size: 1.25rem;
flex-shrink: 0;
line-height: 1;
margin-top: 2px
}

.c-body strong {
display: block;
font-size: 13.5px;
font-weight: 700;
margin-bottom: 3px
}

.c-body p {
font-size: 13px;
line-height: 1.65;
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 .c-body 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 .c-body 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 .c-body 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 .c-body strong {
color: var(--blue)
}

/* ══════════ FILTER + CONTROLS ══════════ */
.filter-wrap {
overflow-x: auto;
scrollbar-width: none;
margin-bottom: 1rem;
-webkit-overflow-scrolling: touch
}

.filter-wrap::-webkit-scrollbar {
display: none
}

.filter-pills {
display: inline-flex;
gap: .4rem;
padding: 3px;
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: 100px;
min-width: max-content
}

.fpill {
display: flex;
align-items: center;
gap: .35rem;
padding: .42rem .9rem;
border-radius: 100px;
font-size: 12.5px;
font-weight: 600;
color: var(--body-lt);
cursor: pointer;
background: none;
border: none;
transition: all var(--ease);
white-space: nowrap;
touch-action: manipulation;
-webkit-tap-highlight-color: transparent
}

.fpill:hover {
background: var(--gold-pale);
color: var(--green)
}

.fpill.active {
background: var(--dark-800);
color: #fff
}

.fpill-dot {
width: 7px;
height: 7px;
border-radius: 50%;
flex-shrink: 0
}

.fpill-n {
font-size: 10px;
font-weight: 700;
padding: 0 5px;
border-radius: 100px
}

.fpill.active .fpill-n {
background: rgba(255, 255, 255, .2)
}

.fpill:not(.active) .fpill-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: .6rem;
padding: .6rem .85rem;
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: 8px;
margin-bottom: 1.1rem
}

.lc-count {
font-size: 13px;
color: var(--body-lt)
}

.lc-count strong {
color: var(--ink);
font-weight: 700
}

.lc-right {
display: flex;
align-items: center;
gap: .5rem
}

.sort-sel {
font-size: 12.5px;
font-weight: 500;
color: var(--ink);
background: var(--sand-200);
border: 1px solid var(--border);
border-radius: 5px;
padding: .35rem 1.6rem .35rem .65rem;
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
}

.vbtns {
display: flex;
gap: 3px
}

.vb {
width: 28px;
height: 28px;
border: 1px solid var(--border);
border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
background: var(--sand-200);
color: var(--muted);
transition: all var(--ease);
touch-action: manipulation
}

.vb.active,
.vb:hover {
background: var(--dark-800);
color: #fff;
border-color: var(--dark-800)
}

.vb svg {
width: 12px;
height: 12px
}

/* ══════════ SAFARI PACKAGE CARDS ══════════ */
#pkg-grid {
display: grid;
gap: 1.1rem
}

#pkg-grid.g-grid {
grid-template-columns: 1fr
}

@media(min-width:480px) {
#pkg-grid.g-grid {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:900px) {
#pkg-grid.g-grid {
grid-template-columns: repeat(3, 1fr)
}
}

#pkg-grid.g-list {
grid-template-columns: 1fr
}

.pcard[data-hidden="true"] {
display: none !important
}

.pcard {
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: 16px;
overflow: hidden;
display: flex;
flex-direction: column;
position: relative;
transition: box-shadow var(--ease), transform var(--ease);
animation: pkFade .4s ease both
}

@keyframes pkFade {
from {
opacity: 0;
transform: translateY(16px)
}

to {
opacity: 1;
transform: translateY(0)
}
}

.pcard:hover {
box-shadow: var(--sh-lg);
transform: translateY(-4px)
}

.pcard.featured {
border: 2px solid var(--gold)
}

/* Bar */
.pcard-bar {
height: 4px;
flex-shrink: 0
}

.pcard[data-phase="before"] .pcard-bar {
background: linear-gradient(90deg, var(--blue), var(--blue-lt))
}

.pcard[data-phase="during"] .pcard-bar {
background: linear-gradient(90deg, var(--gold-dk), var(--gold-lt))
}

.pcard[data-phase="after"] .pcard-bar {
background: linear-gradient(90deg, var(--green), var(--green-lt))
}

.pcard[data-phase="combo"] .pcard-bar {
background: linear-gradient(90deg, var(--red), var(--gold))
}

/* Badges */
.pcard-badges {
position: absolute;
top: calc(.65rem + 4px);
left: .65rem;
display: flex;
gap: .3rem;
z-index: 2;
flex-wrap: wrap
}

.pbadge {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .06em;
padding: 3px 8px;
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 */
.pcard-img {
height: clamp(160px, 40vw, 200px);
overflow: hidden;
position: relative;
flex-shrink: 0
}

.pcard-img img {
width: 100%;
height: 100%;
object-fit: cover;
filter: saturate(1.1);
transition: transform .6s ease
}

.pcard:hover .pcard-img img {
transform: scale(1.07)
}

.pcard-img::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(6, 8, 10, .55) 0%, transparent 50%)
}

.pcard-chips {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: .45rem .75rem;
display: flex;
flex-wrap: wrap;
gap: 3px;
z-index: 1
}

.pchip {
font-size: 9.5px;
font-weight: 700;
color: rgba(255, 255, 255, .92);
background: rgba(6, 8, 10, .55);
backdrop-filter: blur(4px);
padding: 2px 7px;
border-radius: 100px;
border: 1px solid rgba(255, 255, 255, .15)
}

/* Body */
.pcard-body {
padding: .9rem 1rem;
display: flex;
flex-direction: column;
gap: .55rem;
flex: 1
}

.pcard-cat {
display: flex;
align-items: center;
gap: 5px;
font-size: 9.5px;
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-phase="before"] .pcat-dot {
background: var(--blue)
}

.pcard[data-phase="during"] .pcat-dot {
background: var(--gold-dk)
}

.pcard[data-phase="after"] .pcat-dot {
background: var(--green)
}

.pcard[data-phase="combo"] .pcat-dot {
background: var(--red)
}

.pcard-title {
font-family: var(--display);
font-size: clamp(.95rem, 3vw, 1.15rem);
font-weight: 800;
color: var(--ink);
line-height: 1.2;
letter-spacing: -.015em
}

.pcard-desc {
font-size: 12.5px;
color: var(--body-lt);
line-height: 1.62
}

.pcard-specs {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: .4rem
}

.pspec {
display: flex;
flex-direction: column;
gap: 1px;
padding: .45rem .5rem;
background: var(--sand-200);
border-radius: 5px;
border: 1px solid var(--border);
text-align: center
}

.pspec-l {
font-size: 8.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .05em;
color: var(--muted)
}

.pspec-v {
font-size: 12px;
font-weight: 700;
color: var(--ink)
}

.pcard-tags {
display: flex;
flex-wrap: wrap;
gap: .3rem
}

.ptag {
font-size: 11px;
font-weight: 500;
color: var(--green);
background: rgba(26, 90, 56, .08);
border: 1px solid rgba(26, 90, 56, .16);
padding: 2px 8px;
border-radius: 100px
}

.pcard-foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: .6rem;
padding-top: .65rem;
border-top: 1px solid var(--border);
flex-wrap: wrap;
margin-top: auto
}

.price-col {
display: flex;
flex-direction: column;
gap: 1px
}

.p-from {
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .06em;
color: var(--muted)
}

.p-amt {
font-family: var(--display);
font-size: 1.25rem;
font-weight: 800;
color: var(--gold-dk);
line-height: 1
}

.p-pp {
font-size: 10px;
color: var(--muted)
}

.bk-btn {
display: inline-flex;
align-items: center;
gap: .35rem;
padding: .55rem 1rem;
background: var(--dark-800);
color: #fff;
border-radius: 100px;
font-size: 12.5px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease);
white-space: nowrap;
touch-action: manipulation
}

.bk-btn:hover {
background: var(--gold-dk)
}

.bk-btn svg {
width: 11px;
height: 11px
}

/* List view */
#pkg-grid.g-list .pcard {
flex-direction: row
}

#pkg-grid.g-list .pcard-bar {
width: 4px;
height: auto;
flex-shrink: 0
}

#pkg-grid.g-list .pcard-badges {
top: .65rem;
left: calc(4px + .65rem)
}

#pkg-grid.g-list .pcard-img {
width: clamp(140px, 35vw, 200px);
min-width: clamp(140px, 35vw, 200px);
height: auto;
flex-shrink: 0
}

@media(max-width:479px) {
#pkg-grid.g-list .pcard {
flex-direction: column
}

#pkg-grid.g-list .pcard-bar {
width: 100%;
height: 4px
}

#pkg-grid.g-list .pcard-img {
width: 100%;
min-width: 0;
height: 180px
}
}

/* ══════════ PARK CARDS ══════════ */
.parks-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
margin: 1.25rem 0
}

@media(min-width:480px) {
.parks-grid {
grid-template-columns: 1fr 1fr
}
}

.park-card {
border-radius: 14px;
overflow: hidden;
border: 1px solid var(--border);
background: var(--sand-100);
transition: box-shadow var(--ease), transform var(--ease)
}

.park-card:hover {
box-shadow: var(--sh-md);
transform: translateY(-3px)
}

.pk-img {
height: clamp(130px, 25vw, 160px);
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 50%)
}

.pk-name {
position: absolute;
bottom: .6rem;
left: .85rem;
font-family: var(--display);
font-size: .95rem;
font-weight: 800;
color: #fff;
z-index: 1;
letter-spacing: -.01em
}

.pk-dist {
font-size: 10px;
color: rgba(255, 255, 255, .6);
display: block;
margin-top: 1px
}

.pk-body {
padding: .85rem 1rem 1.1rem
}

.pk-tag {
display: inline-block;
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
padding: 2px 8px;
border-radius: 100px;
color: #fff;
margin-bottom: .55rem
}

.pk-best {
background: var(--gold-dk)
}

.pk-great {
background: var(--green)
}

.pk-good {
background: var(--blue)
}

.pk-body p {
font-size: 12.5px;
color: var(--body-lt);
line-height: 1.62;
margin-bottom: .65rem
}

.pk-highlights {
display: flex;
flex-wrap: wrap;
gap: .3rem
}

.pk-hl {
font-size: 11px;
font-weight: 500;
padding: 2px 7px;
border-radius: 100px;
background: var(--sand-300);
color: var(--body-md);
border: 1px solid var(--border)
}

/* ══════════ CULTURAL TOURS ══════════ */
.tours-grid {
display: grid;
grid-template-columns: 1fr;
gap: .9rem;
margin: 1.25rem 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: .85rem;
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: 14px;
padding: 1rem;
transition: box-shadow var(--ease), transform var(--ease)
}

.tour-card:hover {
box-shadow: var(--sh-md);
transform: translateY(-2px)
}

.tour-ico {
width: 42px;
height: 42px;
border-radius: 10px;
background: var(--sand-300);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.2rem;
flex-shrink: 0
}

.tour-body h4 {
font-family: var(--display);
font-size: .9rem;
font-weight: 800;
color: var(--ink);
margin-bottom: .2rem;
letter-spacing: -.01em
}

.tour-body p {
font-size: 12px;
color: var(--muted);
line-height: 1.55
}

.tour-price {
font-size: 12px;
font-weight: 700;
color: var(--gold-dk);
margin-top: .3rem
}

/* ══════════ ITINERARY SAMPLES ══════════ */
.itin-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
margin: 1.25rem 0
}

@media(min-width:560px) {
.itin-grid {
grid-template-columns: 1fr 1fr
}
}

.itin-card {
border: 1px solid var(--border);
border-radius: 16px;
overflow: hidden;
background: var(--sand-100);
transition: box-shadow var(--ease), transform var(--ease)
}

.itin-card:hover {
box-shadow: var(--sh-lg);
transform: translateY(-3px)
}

.itin-top {
padding: 1.1rem 1.25rem .85rem;
color: #fff
}

.itin-card.before-trip .itin-top {
background: linear-gradient(135deg, var(--blue), var(--dark-700))
}

.itin-card.during-trip .itin-top {
background: linear-gradient(135deg, var(--gold-dk), var(--dark-800))
}

.itin-card.after-trip .itin-top {
background: linear-gradient(135deg, var(--green), var(--dark-700))
}

.itin-card.mega-trip .itin-top {
background: linear-gradient(135deg, var(--red), var(--dark-800))
}

.it-label {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .12em;
color: rgba(255, 255, 255, .42);
display: block;
margin-bottom: .2rem
}

.it-title {
font-family: var(--display);
font-size: clamp(1rem, 3vw, 1.1rem);
font-weight: 800;
color: #fff;
line-height: 1.2;
margin-bottom: .4rem;
letter-spacing: -.02em
}

.it-price {
font-family: var(--display);
font-size: 1.35rem;
font-weight: 800;
color: var(--gold-lt)
}

.it-price span {
font-size: 10.5px;
color: rgba(255, 255, 255, .4);
font-weight: 400;
margin-left: .2rem
}

.itin-body {
padding: 1rem 1.25rem
}

.it-days {
display: flex;
flex-direction: column;
gap: .4rem
}

.it-day {
display: flex;
gap: .6rem;
align-items: flex-start
}

.it-n {
width: 22px;
height: 22px;
border-radius: 50%;
background: var(--gold);
color: var(--dark-900);
font-size: 9.5px;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
margin-top: 1px
}

.it-txt {
font-size: 12.5px;
color: var(--body-md);
line-height: 1.48
}

.it-txt strong {
color: var(--ink);
font-weight: 600
}

.itin-foot {
padding: .85rem 1.25rem;
border-top: 1px solid var(--border);
display: flex;
align-items: center;
justify-content: space-between;
gap: .5rem;
flex-wrap: wrap
}

.it-parks {
display: flex;
flex-wrap: wrap;
gap: .3rem
}

.it-pt {
font-size: 10px;
padding: 2px 7px;
border-radius: 100px;
background: var(--sand-300);
color: var(--body-md);
border: 1px solid var(--border);
font-weight: 500
}

.it-book {
padding: .52rem .95rem;
background: var(--gold-dk);
color: #fff;
border-radius: 100px;
font-size: 12.5px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease);
white-space: nowrap;
touch-action: manipulation
}

.it-book:hover {
background: var(--gold)
}

/* ══════════ TIMING TABLE ══════════ */
.tbl-wrap {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
border-radius: 10px;
border: 1px solid var(--border);
margin: 1.25rem 0
}

.tbl-wrap::-webkit-scrollbar {
height: 4px
}

.tbl-wrap::-webkit-scrollbar-thumb {
background: var(--border-md);
border-radius: 4px
}

.timing-tbl {
width: 100%;
min-width: 520px;
border-collapse: collapse;
font-size: 13px
}

.timing-tbl th {
padding: .6rem .85rem;
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
color: rgba(255, 255, 255, .7);
background: var(--dark-800);
text-align: left;
white-space: nowrap;
border-right: 1px solid rgba(255, 255, 255, .07)
}

.timing-tbl td {
padding: .6rem .85rem;
border-bottom: 1px solid var(--border);
border-right: 1px solid var(--border);
vertical-align: middle
}

.timing-tbl tr:last-child td {
border-bottom: none
}

.timing-tbl tr:nth-child(even) td {
background: var(--sand-200)
}

.timing-tbl tr:hover td {
background: var(--gold-pale)
}

.t-best {
display: inline-block;
background: rgba(26, 90, 56, .14);
color: var(--green);
font-size: 11px;
font-weight: 700;
padding: 2px 8px;
border-radius: 100px;
border: 1px solid rgba(26, 90, 56, .22)
}

.t-good {
display: inline-block;
background: rgba(184, 128, 24, .14);
color: var(--gold-dk);
font-size: 11px;
font-weight: 700;
padding: 2px 8px;
border-radius: 100px;
border: 1px solid rgba(184, 128, 24, .25)
}

.t-warn {
display: inline-block;
background: rgba(200, 40, 32, .1);
color: var(--red);
font-size: 11px;
font-weight: 700;
padding: 2px 8px;
border-radius: 100px;
border: 1px solid rgba(200, 40, 32, .2)
}

.t-info {
display: inline-block;
background: rgba(24, 112, 192, .1);
color: var(--blue);
font-size: 11px;
font-weight: 700;
padding: 2px 8px;
border-radius: 100px;
border: 1px solid rgba(24, 112, 192, .2)
}

/* ══════════ TIPS GRID ══════════ */
.tips-grid {
display: grid;
grid-template-columns: 1fr;
gap: .9rem;
margin: 1.25rem 0
}

@media(min-width:480px) {
.tips-grid {
grid-template-columns: 1fr 1fr
}
}

.tip-card {
display: flex;
gap: .85rem;
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: 14px;
padding: 1rem;
transition: box-shadow var(--ease), transform var(--ease)
}

.tip-card:hover {
box-shadow: var(--sh-md);
transform: translateY(-2px)
}

.tip-ico {
width: 42px;
height: 42px;
border-radius: 10px;
background: var(--sand-300);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.2rem;
flex-shrink: 0
}

.tip-body h4 {
font-family: var(--display);
font-size: .88rem;
font-weight: 800;
color: var(--ink);
margin-bottom: .2rem
}

.tip-body p {
font-size: 12px;
color: var(--muted);
line-height: 1.6
}

/* ══════════ TESTIMONIALS ══════════ */
.testi-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
margin: 1.25rem 0
}

@media(min-width:560px) {
.testi-grid {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:900px) {
.testi-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.tcard {
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: 14px;
padding: 1.15rem;
display: flex;
flex-direction: column;
gap: .65rem;
position: relative;
transition: box-shadow var(--ease)
}

.tcard:hover {
box-shadow: var(--sh-md)
}

.tq {
position: absolute;
top: .5rem;
right: .85rem;
font-family: var(--display);
font-size: 2.75rem;
font-weight: 800;
color: var(--sand-300);
line-height: 1;
pointer-events: none
}

.t-stars {
color: var(--gold);
font-size: 13px;
display: flex;
gap: 2px
}

.t-text {
font-size: 13px;
color: var(--body-md);
line-height: 1.72;
font-style: italic;
position: relative;
z-index: 1;
flex: 1
}

.t-author {
display: flex;
align-items: center;
gap: .65rem;
padding-top: .75rem;
border-top: 1px solid var(--border)
}

.t-avatar {
width: 34px;
height: 34px;
border-radius: 50%;
object-fit: cover;
border: 2px solid var(--border);
flex-shrink: 0
}

.t-name {
font-size: 12.5px;
font-weight: 700;
color: var(--ink)
}

.t-trip {
font-size: 11px;
color: var(--muted)
}

/* ══════════ FAQ ══════════ */
.faq-wrap {
border: 1px solid var(--border);
border-radius: 14px;
overflow: hidden;
margin: 1.25rem 0
}

.faq-q {
width: 100%;
background: none;
border: none;
text-align: left;
padding: 1rem 1.1rem;
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: .85rem;
font-size: clamp(13.5px, 2vw, 15px);
font-weight: 600;
color: var(--ink);
cursor: pointer;
transition: color var(--ease), background var(--ease);
line-height: 1.38;
border-bottom: 1px solid var(--border);
font-family: var(--body);
touch-action: manipulation;
-webkit-tap-highlight-color: transparent
}

.faq-q:last-of-type {
border-bottom: none
}

.faq-q:hover,
.faq-q[aria-expanded="true"] {
background: var(--gold-pale);
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: 2px;
transition: transform var(--ease)
}

.faq-q[aria-expanded="true"] svg {
transform: rotate(45deg);
color: var(--gold-dk)
}

.faq-a {
display: none;
padding: .9rem 1.1rem 1.1rem;
font-size: 13.5px;
color: var(--body-md);
line-height: 1.8;
border-bottom: 1px solid var(--border);
background: var(--sand-100)
}

.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(--dark-900) 0%, var(--dark-700) 55%, rgba(26, 90, 56, .4) 100%);
border-radius: 16px;
padding: clamp(1.75rem, 5vw, 3rem);
text-align: center;
color: #fff;
position: relative;
overflow: hidden;
border: 1px solid rgba(232, 168, 32, .2)
}

.cta-block::before {
content: '⚽';
position: absolute;
right: -15px;
bottom: -15px;
font-size: clamp(5rem, 18vw, 9rem);
opacity: .05;
line-height: 1;
pointer-events: none
}

.cta-block::after {
content: '🦁';
position: absolute;
left: -10px;
top: -10px;
font-size: clamp(4rem, 14vw, 7rem);
opacity: .04;
line-height: 1;
pointer-events: none
}

.cta-block h2 {
font-family: var(--display);
font-size: clamp(1.35rem, 4vw, 2rem);
font-weight: 800;
color: #fff;
margin-bottom: .65rem;
letter-spacing: -.02em;
position: relative;
z-index: 1
}

.cta-block h2 em {
font-style: italic;
color: var(--gold-lt)
}

.cta-block p {
font-size: 14.5px;
color: rgba(255, 255, 255, .58);
max-width: 500px;
margin: 0 auto 1.5rem;
line-height: 1.75;
position: relative;
z-index: 1
}

.cta-btns {
display: flex;
flex-direction: column;
align-items: center;
gap: .65rem;
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;
gap: .45rem;
padding: .88rem 1.85rem;
background: var(--gold);
color: var(--dark-900);
border-radius: 100px;
font-size: 15px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease), transform var(--ease);
touch-action: manipulation;
white-space: nowrap;
width: 100%;
justify-content: center;
max-width: 280px
}

.cta-p:hover {
background: var(--gold-lt);
transform: translateY(-2px)
}

@media(min-width:400px) {
.cta-p {
width: auto;
max-width: none
}
}

.cta-wa {
display: inline-flex;
align-items: center;
gap: .45rem;
padding: .88rem 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: 14px;
font-weight: 600;
transition: background var(--ease);
touch-action: manipulation;
white-space: nowrap;
width: 100%;
justify-content: center;
max-width: 220px
}

.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: .65rem;
margin-top: 1rem;
position: relative;
z-index: 1
}

.cta-trust span {
display: flex;
align-items: center;
gap: .3rem;
font-size: 11.5px;
color: rgba(255, 255, 255, .4)
}

.cta-trust svg {
width: 12px;
height: 12px;
color: var(--gold-lt)
}

/* ══════════ MODAL ══════════ */
.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(--sand-100);
border-radius: 16px 16px 0 0;
width: 100%;
max-width: 660px;
max-height: 92vh;
overflow-y: auto;
transform: translateY(100%);
transition: transform .32s cubic-bezier(.34, 1.44, .64, 1);
box-shadow: 0 -8px 60px rgba(6, 8, 10, .4);
-webkit-overflow-scrolling: touch
}

@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 for mobile */
.m-drag {
display: flex;
justify-content: center;
padding: .75rem 0 0;
cursor: pointer
}

@media(min-width:560px) {
.m-drag {
display: none
}
}

.m-drag::before {
content: '';
display: block;
width: 36px;
height: 4px;
background: var(--border-md);
border-radius: 2px
}

.m-head {
background: linear-gradient(135deg, var(--dark-900) 0%, var(--dark-700) 55%, rgba(232, 168, 32, .32) 100%);
padding: clamp(1.1rem, 4vw, 1.75rem);
position: relative
}

.m-close {
position: absolute;
top: .85rem;
right: .85rem;
width: 32px;
height: 32px;
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);
touch-action: manipulation
}

.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: .3rem
}

.m-title {
font-family: var(--display);
font-size: clamp(1.1rem, 3vw, 1.5rem);
font-weight: 800;
color: #fff;
line-height: 1.2;
max-width: 420px;
letter-spacing: -.015em
}

.m-price-row {
display: flex;
align-items: baseline;
gap: .45rem;
margin-top: .6rem
}

.mpf {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: rgba(255, 255, 255, .38)
}

.mpa {
font-family: var(--display);
font-size: 1.35rem;
font-weight: 800;
color: var(--gold-lt)
}

.mpp {
font-size: 11px;
color: rgba(255, 255, 255, .32)
}

.m-trust {
display: flex;
flex-wrap: wrap;
gap: .5rem;
margin-top: .75rem
}

.m-trust span {
display: flex;
align-items: center;
gap: .3rem;
font-size: 11px;
color: rgba(255, 255, 255, .5)
}

.m-trust svg {
width: 11px;
height: 11px;
color: var(--gold-lt);
flex-shrink: 0
}

.mform {
padding: clamp(1rem, 4vw, 1.5rem)
}

.mstack {
display: flex;
flex-direction: column;
gap: .9rem
}

.mpair {
display: flex;
flex-direction: column;
gap: .9rem
}

@media(min-width:480px) {
.mpair {
flex-direction: row
}

.mpair .mf {
flex: 1
}
}

.mf {
display: flex;
flex-direction: column;
gap: .28rem
}

.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: .62rem .85rem;
border: 1.5px solid var(--border);
border-radius: 6px;
background: var(--sand-200);
color: var(--ink);
font-size: 14px;
outline: none;
transition: border-color var(--ease), box-shadow var(--ease);
appearance: none;
-webkit-appearance: none;
-webkit-tap-highlight-color: transparent
}

.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
}

.m-submit {
display: flex;
align-items: center;
justify-content: center;
gap: .5rem;
width: 100%;
padding: .95rem;
background: var(--dark-800);
color: #fff;
border: none;
border-radius: 6px;
font-size: 15px;
font-weight: 700;
cursor: pointer;
transition: background var(--ease), transform var(--ease);
font-family: var(--body);
touch-action: manipulation
}

.m-submit:hover {
background: var(--gold-dk)
}

.m-submit:active {
transform: scale(.98)
}

.m-note {
text-align: center;
font-size: 11px;
color: var(--muted);
margin-top: .65rem;
display: flex;
align-items: center;
justify-content: center;
gap: .4rem
}

.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-success-ico {
font-size: 2.5rem
}

.m-success h3 {
font-family: var(--display);
font-size: 1.3rem;
font-weight: 800;
color: var(--ink);
letter-spacing: -.01em
}

.m-success p {
font-size: 13.5px;
color: var(--muted);
line-height: 1.7;
max-width: 360px
}

.m-success-close {
padding: .6rem 1.75rem;
background: var(--dark-800);
color: #fff;
border-radius: 100px;
font-size: 14px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease);
touch-action: manipulation
}

.m-success-close: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(--page-px) clamp(1.5rem, 4vw, 2.5rem);
margin-top: 0;
color: rgba(255, 255, 255, .58)
}

.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-name {
font-family: var(--display);
font-size: 1.05rem;
font-weight: 800;
color: #fff;
margin-bottom: .55rem;
letter-spacing: -.01em
}

.f-brand p {
font-size: 13px;
line-height: 1.7;
max-width: 270px
}

.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, .6);
display: flex;
align-items: center;
justify-content: center;
transition: all var(--ease);
touch-action: manipulation
}

.f-soc:hover {
background: var(--gold-dk);
color: #fff
}

.f-soc svg {
width: 15px;
height: 15px
}

.f-col-title {
font-size: 9.5px;
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, .5);
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, .24)
}

@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(--page-px);
display: flex;
align-items: center;
gap: .75rem;
/* Safe area for iPhone X+ */
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, .35);
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.35rem;
background: var(--gold);
color: var(--dark-900);
border: none;
border-radius: 100px;
font-size: 14px;
font-weight: 700;
cursor: pointer;
transition: background var(--ease);
white-space: nowrap;
flex-shrink: 0;
touch-action: manipulation;
-webkit-tap-highlight-color: transparent
}

.ms-btn:hover {
background: var(--gold-lt)
}

/* ── PROSE ── */
.prose p {
font-size: clamp(14px, 2vw, 15.5px);
color: var(--body-md);
line-height: 1.85;
margin-bottom: 1.15rem;
max-width: 720px
}

.prose h3 {
font-family: var(--display);
font-size: clamp(1.05rem, 3vw, 1.4rem);
font-weight: 800;
color: var(--ink);
margin: 1.75rem 0 .55rem;
letter-spacing: -.015em
}

.prose strong {
color: var(--ink);
font-weight: 700
}

.prose ul {
margin: .85rem 0 1.1rem;
display: flex;
flex-direction: column;
gap: .45rem;
max-width: 720px
}

.prose ul li {
display: flex;
align-items: flex-start;
gap: .55rem;
font-size: clamp(13.5px, 2vw, 15px);
color: var(--body-md);
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: .58rem
}

/* ── RESPONSIVE POLISH ── */
@media(max-width:400px) {
.tbl-wrap {
margin: 0 calc(-1 * var(--page-px));
border-radius: 0
}

.afcon-strip-inner {
gap: .35rem
}

.host-flags {
display: none
}
}

@media(prefers-reduced-motion:reduce) {
* {
animation-duration: .01ms !important;
transition-duration: .01ms !important
}

.afcon-dot {
animation: none
}
}
