/* ================================================================
ARUSHA SAFARIS + AFCON 2027
AESTHETIC: Warm terracotta editorial — think Condé Nast Traveller
meets African sunset. Burnt sienna · Acacia gold · Dust ivory ·
Baobab bark · Savanna sky blue. Organic curves, editorial spacing,
large cinematic imagery, warm intimate type.
================================================================ */
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0
}

html {
font-size: 16px;
scroll-behavior: smooth;
-webkit-text-size-adjust: 100%;
-webkit-font-smoothing: antialiased
}

body {
font-family: 'Epilogue', sans-serif;
background: #FAF5EE;
color: #2A1F14;
line-height: 1.72;
overflow-x: hidden
}

img {
max-width: 100%;
height: auto;
display: block
}

a {
color: inherit;
text-decoration: none
}

ul,
ol {
list-style: none
}

button,
input,
select,
textarea {
font-family: inherit
}

a:focus-visible,
button:focus-visible {
outline: 3px solid #C4541A;
outline-offset: 3px
}

.sr {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap
}

:root {
/* Terracotta & savanna palette */
--terra: #C4541A;
/* burnt terracotta — primary */
--terra-dk: #8A3610;
/* dark terracotta */
--terra-lt: #E87640;
/* light terracotta */
--terra-pale: #FDF0E8;
/* pale blush */
--terra-dim: rgba(196, 84, 26, .12);

--gold: #D4920A;
/* acacia gold */
--gold-lt: #F0B830;
/* light gold */
--gold-pale: #FDF6E3;
--gold-dim: rgba(212, 146, 10, .12);

--sky: #2A7AB8;
/* savanna sky blue */
--sky-lt: #4A9AD4;
--sky-pale: #E8F3FB;
--sky-dim: rgba(42, 122, 184, .1);

--forest: #2A5C2A;
/* acacia forest green */
--forest-lt: #3A8A3A;
--forest-pale: #E8F3E8;

--ivory: #FAF5EE;
/* warm ivory background */
--cream: #F5EDE0;
/* card background */
--sand: #E8D8C0;
/* sand / border */
--dust: #B8A090;
/* text muted */
--bark: #6A4A30;
/* bark brown */
--ink: #2A1F14;
/* deep ink */
--smoke: #8A7060;

--fd: 'Fraunces', Georgia, serif;
--fb: 'Epilogue', sans-serif;

--sh-sm: 0 2px 16px rgba(42, 31, 20, .08);
--sh-md: 0 8px 36px rgba(42, 31, 20, .12);
--sh-lg: 0 20px 72px rgba(42, 31, 20, .18);

--r6: 6px;
--r10: 10px;
--r14: 14px;
--r18: 18px;
--r24: 24px;
--r32: 32px;
--rpill: 100px;
--t: .22s ease;

--s1: .25rem;
--s2: .5rem;
--s3: .75rem;
--s4: 1rem;
--s5: 1.25rem;
--s6: 1.5rem;
--s8: 2rem;
--s10: 2.5rem;
--s12: 3rem;
--s16: 4rem;
}

/* ── SKIP ── */
.skip {
position: absolute;
left: 1rem;
top: -100%;
background: var(--terra);
color: #fff;
padding: .5rem 1.25rem;
border-radius: var(--r6);
font-size: 14px;
z-index: 9999;
transition: top .2s;
font-weight: 700
}

.skip:focus {
top: .75rem
}

/* ================================================================
DECORATIVE ELEMENTS
================================================================ */
/* Organic blob decorations */
.blob {
position: absolute;
pointer-events: none;
z-index: 0;
opacity: .06
}

.blob-1 {
top: -80px;
right: -60px;
width: 400px;
height: 400px;
background: var(--terra);
border-radius: 60% 40% 70% 30%/50% 60% 40% 50%;
animation: blobFloat 12s ease-in-out infinite
}

.blob-2 {
bottom: -60px;
left: -80px;
width: 320px;
height: 320px;
background: var(--gold);
border-radius: 40% 60% 30% 70%/60% 40% 70% 30%;
animation: blobFloat 16s ease-in-out infinite reverse
}

@keyframes blobFloat {

0%,
100% {
transform: translate(0, 0) rotate(0deg)
}

33% {
transform: translate(15px, -10px) rotate(2deg)
}

66% {
transform: translate(-10px, 12px) rotate(-1.5deg)
}
}

/* Halftone dot pattern */
.halftone {
position: absolute;
inset: 0;
pointer-events: none;
opacity: .025;
background-image: radial-gradient(var(--bark) 1.5px, transparent 1.5px);
background-size: 24px 24px;
z-index: 0
}

/* ================================================================
HEADER
================================================================ */
.hdr {
position: sticky;
top: 0;
z-index: 400;
background: rgba(250, 245, 238, .96);
backdrop-filter: blur(14px);
border-bottom: 1px solid var(--sand)
}

.hdr-in {
max-width: 1340px;
margin: 0 auto;
padding: 0 1.25rem;
display: flex;
align-items: center;
justify-content: space-between;
height: 64px;
gap: 1rem
}

.logo {
display: flex;
align-items: center;
gap: .7rem;
flex-shrink: 0
}

.logo img {
width: 40px;
height: 40px;
border-radius: 8px;
object-fit: contain
}

.logo-t {
display: flex;
flex-direction: column;
line-height: 1.15
}

.logo-n {
font-family: var(--fd);
font-size: clamp(.8rem, 2vw, .95rem);
font-weight: 700;
color: var(--ink);
letter-spacing: -.01em
}

.logo-s {
font-size: 8.5px;
font-weight: 600;
color: var(--dust);
letter-spacing: .14em;
text-transform: uppercase
}

.hdr-nav {
display: none;
align-items: center;
gap: 2px
}

@media(min-width:840px) {
.hdr-nav {
display: flex
}
}

.hdr-nav a {
padding: .4rem .75rem;
font-size: 13px;
font-weight: 600;
color: var(--smoke);
border-radius: var(--r6);
transition: all var(--t)
}

.hdr-nav a:hover,
.hdr-nav a.cur {
background: var(--terra-dim);
color: var(--terra)
}

.hdr-cta {
padding: .48rem 1.2rem;
background: var(--terra);
color: #fff;
border-radius: var(--rpill);
font-size: 13px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--t);
white-space: nowrap
}

.hdr-cta:hover {
background: var(--terra-lt)
}

.ham {
display: flex;
flex-direction: column;
gap: 5px;
background: none;
border: none;
cursor: pointer;
padding: .5rem;
border-radius: var(--r6)
}

@media(min-width:840px) {
.ham {
display: none
}
}

.ham span {
display: block;
width: 22px;
height: 2px;
background: var(--bark);
border-radius: 2px;
transition: transform .2s, opacity .2s
}

.ham[aria-expanded=true] span:nth-child(1) {
transform: translateY(7px) rotate(45deg)
}

.ham[aria-expanded=true] span:nth-child(2) {
opacity: 0
}

.ham[aria-expanded=true] span:nth-child(3) {
transform: translateY(-7px) rotate(-45deg)
}

.mob-nav {
display: none;
flex-direction: column;
gap: 2px;
padding: .75rem 0 1rem;
border-top: 1px solid var(--sand)
}

.mob-nav.open {
display: flex
}

.mob-nav a {
padding: .65rem 1.25rem;
font-size: 15px;
font-weight: 600;
color: var(--smoke);
border-radius: var(--r10);
transition: all var(--t)
}

.mob-nav a:hover {
background: var(--terra-dim);
color: var(--terra)
}

/* ── BREADCRUMB ── */
.bc {
background: var(--cream);
border-bottom: 1px solid var(--sand);
overflow-x: auto;
white-space: nowrap;
scrollbar-width: none
}

.bc::-webkit-scrollbar {
display: none
}

.bc-in {
max-width: 1340px;
margin: 0 auto;
padding: .5rem 1.25rem
}

.bc ol {
display: inline-flex;
align-items: center;
gap: .45rem;
font-size: 11.5px;
color: var(--dust);
font-weight: 500
}

.bc li+li::before {
content: "›"
}

.bc a {
color: var(--smoke);
transition: color var(--t)
}

.bc a:hover {
color: var(--terra)
}

.bc [aria-current] {
color: var(--ink);
font-weight: 600
}

/* ================================================================
HERO — Cinematic split editorial layout
================================================================ */
.hero {
position: relative;
overflow: hidden;
background: var(--ink);
min-height: clamp(600px, 72vw, 860px)
}

/* Background */
.hero-bg-full {
position: absolute;
inset: 0
}

.hero-bg-full img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center 30%;
filter: brightness(.42) saturate(1.2)
}

/* Warm orange gradient overlay — editorial warm tone */
.hero-warm {
position: absolute;
inset: 0;
background: linear-gradient(160deg, rgba(196, 84, 26, .18) 0%, rgba(42, 31, 20, .38) 40%, rgba(42, 31, 20, .92) 75%, rgba(42, 31, 20, 1) 100%)
}

/* Bottom fade to page background */
.hero-fade {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 120px;
background: linear-gradient(to top, var(--ivory), transparent);
z-index: 2;
pointer-events: none
}

/* Decorative terracotta arc — organic shape */
.hero-arc {
position: absolute;
bottom: -2px;
left: 0;
right: 0;
z-index: 3;
pointer-events: none
}

.hero-arc svg {
width: 100%;
height: 80px;
display: block
}

/* Stats strip */
.hero-strip {
position: absolute;
top: 0;
left: 0;
right: 0;
z-index: 5;
display: flex;
overflow-x: auto;
scrollbar-width: none
}

.hero-strip::-webkit-scrollbar {
display: none
}

.hs {
flex: 1;
min-width: 88px;
padding: .5rem .65rem;
text-align: center;
background: rgba(42, 31, 20, .6);
backdrop-filter: blur(8px);
border-bottom: 3px solid rgba(196, 84, 26, .7)
}

.hs-v {
font-family: var(--fd);
font-size: 13px;
font-weight: 700;
color: var(--gold-lt);
white-space: nowrap
}

.hs-l {
font-size: 8px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .1em;
color: rgba(255, 255, 255, .38);
white-space: nowrap
}

/* Hero content */
.hero-content {
position: relative;
z-index: 4;
width: 100%;
max-width: 1340px;
margin: 0 auto;
padding: clamp(3.5rem, 11vw, 6rem) 1.25rem clamp(4rem, 9vw, 6rem)
}

/* AFCON pill */
.afcon-pill {
display: inline-flex;
align-items: center;
gap: .6rem;
background: rgba(196, 84, 26, .18);
border: 1px solid rgba(196, 84, 26, .4);
color: #F8A878;
font-size: 10.5px;
font-weight: 700;
letter-spacing: .18em;
text-transform: uppercase;
padding: .35rem 1.1rem;
border-radius: var(--rpill);
margin-bottom: 1.75rem;
backdrop-filter: blur(4px)
}

.ap-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--terra-lt);
animation: pulseDot 2s infinite
}

@keyframes pulseDot {

0%,
100% {
opacity: 1;
transform: scale(1)
}

50% {
opacity: .5;
transform: scale(1.5)
}
}

.hero-h1 {
font-family: var(--fd);
font-size: clamp(2.2rem, 7vw, 5.8rem);
font-weight: 700;
color: #FDF5EE;
line-height: 1.03;
letter-spacing: -.03em;
margin-bottom: 1.35rem;
max-width: 820px
}

.hero-h1 em {
font-style: italic;
color: var(--terra-lt)
}

.hero-h1 .line-gold {
color: var(--gold-lt)
}

.hero-h1 .line-sky {
color: #80C8F0
}

.hero-sub {
font-family: var(--fd);
font-size: clamp(14px, 2vw, 18px);
color: rgba(253, 245, 238, .6);
max-width: 560px;
line-height: 1.82;
margin-bottom: 1.75rem;
font-weight: 300;
font-style: italic
}

.hero-pills {
display: flex;
flex-wrap: wrap;
gap: .4rem;
margin-bottom: 1.75rem
}

.h-pill {
display: inline-flex;
align-items: center;
gap: .32rem;
background: rgba(253, 245, 238, .08);
border: 1px solid rgba(253, 245, 238, .18);
color: rgba(253, 245, 238, .72);
font-size: 11.5px;
font-weight: 600;
padding: .3rem .9rem;
border-radius: var(--rpill)
}

.h-pill.terra {
border-color: rgba(196, 84, 26, .45);
color: #F8A878;
background: rgba(196, 84, 26, .1)
}

.h-pill.gold {
border-color: rgba(212, 146, 10, .42);
color: var(--gold-lt);
background: rgba(212, 146, 10, .08)
}

.h-pill.sky {
border-color: rgba(42, 122, 184, .4);
color: #80C8F0;
background: rgba(42, 122, 184, .08)
}

.hero-btns {
display: flex;
flex-wrap: wrap;
gap: .65rem
}

.btn-terra {
display: inline-flex;
align-items: center;
gap: .45rem;
background: var(--terra);
color: #fff;
padding: .82rem 1.85rem;
border-radius: var(--rpill);
font-size: 15px;
font-weight: 700;
border: none;
cursor: pointer;
transition: all var(--t);
white-space: nowrap;
box-shadow: 0 4px 24px rgba(196, 84, 26, .45)
}

.btn-terra:hover {
background: var(--terra-lt);
transform: translateY(-2px);
box-shadow: 0 8px 32px rgba(196, 84, 26, .55)
}

.btn-terra svg {
width: 14px;
height: 14px
}

.btn-outline-warm {
display: inline-flex;
align-items: center;
gap: .45rem;
background: rgba(253, 245, 238, .1);
border: 1px solid rgba(253, 245, 238, .28);
color: rgba(253, 245, 238, .85);
padding: .82rem 1.65rem;
border-radius: var(--rpill);
font-size: 14px;
font-weight: 600;
transition: all var(--t);
white-space: nowrap
}

.btn-outline-warm:hover {
background: rgba(253, 245, 238, .2)
}

/* ================================================================
DISTANCE BAND — Arusha proximity facts
================================================================ */
.dist-band {
background: var(--terra);
padding: 1rem 1.25rem
}

.dist-in {
max-width: 1340px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: .65rem
}

@media(min-width:580px) {
.dist-in {
grid-template-columns: repeat(3, 1fr)
}
}

@media(min-width:900px) {
.dist-in {
grid-template-columns: repeat(6, 1fr)
}
}

.dist-item {
display: flex;
align-items: center;
gap: .6rem;
padding: .6rem .85rem;
background: rgba(0, 0, 0, .15);
border-radius: var(--r10)
}

.di-time {
font-family: var(--fd);
font-size: 1.05rem;
font-weight: 700;
color: #fff;
line-height: 1;
white-space: nowrap
}

.di-park {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .09em;
color: rgba(255, 255, 255, .6);
white-space: nowrap
}

.di-icon {
font-size: 18px;
line-height: 1;
flex-shrink: 0
}

/* ================================================================
MAIN LAYOUT
================================================================ */
.pw {
max-width: 1340px;
margin: 0 auto;
padding: var(--s10) 1.25rem
}

@media(min-width:768px) {
.pw {
padding: var(--s12) 1.5rem
}
}

.page-layout {
display: grid;
grid-template-columns: 1fr;
gap: var(--s8)
}

@media(min-width:1080px) {
.page-layout {
grid-template-columns: 1fr 296px;
gap: var(--s10);
align-items: start
}
}

/* ── SIDEBAR ── */
.sidebar {
position: sticky;
top: 80px;
display: flex;
flex-direction: column;
gap: var(--s4)
}

.toc-card {
background: #fff;
border: 1px solid var(--sand);
border-radius: var(--r24);
padding: var(--s5);
box-shadow: var(--sh-sm)
}

.toc-title {
font-family: var(--fd);
font-size: 1rem;
font-weight: 700;
color: var(--ink);
margin-bottom: var(--s4);
padding-bottom: var(--s3);
border-bottom: 1px solid var(--sand)
}

.toc-links {
display: flex;
flex-direction: column;
gap: 2px
}

.toc-links a {
display: flex;
align-items: center;
gap: .5rem;
padding: .42rem .65rem;
font-size: 12.5px;
font-weight: 600;
color: var(--dust);
border-radius: var(--r6);
transition: all var(--t)
}

.toc-links a:hover,
.toc-links a.act {
background: var(--terra-pale);
color: var(--terra)
}

.toc-links a.act {
font-weight: 700
}

.tl-pip {
width: 5px;
height: 5px;
border-radius: 50%;
background: var(--terra);
flex-shrink: 0;
opacity: .28
}

.toc-links a.act .tl-pip {
opacity: 1
}

.toc-divider {
height: 1px;
background: var(--sand);
margin: .75rem 0
}

.toc-cta-wrap {
display: flex;
flex-direction: column;
gap: .45rem
}

.toc-cta-lbl {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .12em;
color: var(--dust)
}

.toc-price-txt {
font-family: var(--fd);
font-size: 1.3rem;
font-weight: 700;
color: var(--terra);
line-height: 1
}

.toc-cta-btn {
display: flex;
align-items: center;
justify-content: center;
gap: .4rem;
padding: .68rem;
background: var(--terra);
color: #fff;
border-radius: var(--r10);
font-size: 13px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--t)
}

.toc-cta-btn:hover {
background: var(--terra-lt)
}

.toc-cta-btn svg {
width: 12px;
height: 12px
}

.toc-wa-link {
display: flex;
align-items: center;
justify-content: center;
gap: .4rem;
padding: .55rem;
background: rgba(37, 211, 102, .1);
border: 1px solid rgba(37, 211, 102, .25);
color: #1A8A40;
border-radius: var(--r10);
font-size: 12.5px;
font-weight: 700;
transition: all var(--t)
}

.toc-wa-link:hover {
background: rgba(37, 211, 102, .18)
}

.toc-wa-link svg {
width: 13px;
height: 13px
}

/* Arusha AFCON info card */
.arusha-card {
background: var(--cream);
border: 1px solid var(--sand);
border-radius: var(--r18);
padding: var(--s5);
border-top: 4px solid var(--terra);
overflow: hidden;
position: relative
}

.arusha-card::after {
content: 'ARUSHA';
position: absolute;
bottom: -8px;
right: -4px;
font-family: var(--fd);
font-size: 4rem;
font-weight: 700;
color: rgba(196, 84, 26, .06);
letter-spacing: .04em;
pointer-events: none;
white-space: nowrap;
line-height: 1
}

.ac-hd {
font-family: var(--fd);
font-size: .95rem;
font-weight: 700;
color: var(--terra);
margin-bottom: var(--s3)
}

.ac-list {
display: flex;
flex-direction: column;
gap: .5rem
}

.ac-item {
display: flex;
align-items: flex-start;
gap: .45rem;
font-size: 12px;
color: var(--smoke);
line-height: 1.48;
font-weight: 500
}

.ac-item::before {
content: '→';
color: var(--terra);
font-size: 11px;
flex-shrink: 0;
margin-top: .1em
}

/* ================================================================
SECTION STYLES
================================================================ */
.sec {
margin-bottom: var(--s12);
scroll-margin-top: 90px
}

.sec-tag {
display: inline-flex;
align-items: center;
gap: .5rem;
margin-bottom: .55rem
}

.sec-tag-bar {
height: 3px;
width: 24px;
border-radius: 2px;
background: var(--terra)
}

.sec-tag-bar.gold {
background: var(--gold)
}

.sec-tag-bar.sky {
background: var(--sky)
}

.sec-tag-bar.forest {
background: var(--forest)
}

.sec-tag-txt {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .22em;
color: var(--dust)
}

.sec-h2 {
font-family: var(--fd);
font-size: clamp(1.9rem, 4vw, 3rem);
font-weight: 700;
color: var(--ink);
line-height: 1.1;
margin-bottom: 1.1rem;
letter-spacing: -.02em
}

.sec-h2 em {
font-style: italic;
color: var(--terra)
}

.sec-h2 .gold {
color: var(--gold)
}

.sec-h2 .sky {
color: var(--sky)
}

.sec-h2 .forest {
color: var(--forest)
}

.sec-lead {
font-family: var(--fd);
font-size: clamp(15px, 2vw, 17px);
color: var(--smoke);
line-height: 1.85;
margin-bottom: 1.65rem;
max-width: 760px;
font-weight: 300;
font-style: italic
}

.sec-h3 {
font-family: var(--fd);
font-size: 1.3rem;
font-weight: 700;
color: var(--ink);
margin: var(--s6) 0 var(--s3);
letter-spacing: -.01em
}

.sec-h3:first-child {
margin-top: 0
}

.prose {
font-size: 15px;
color: var(--smoke);
line-height: 1.85;
margin-bottom: var(--s4);
font-weight: 400
}

.prose strong {
color: var(--ink);
font-weight: 700
}

.prose a {
color: var(--terra);
text-decoration: underline;
text-underline-offset: 3px
}

/* ================================================================
CALLOUTS
================================================================ */
.callout {
display: flex;
gap: var(--s4);
padding: var(--s5) var(--s6);
border-radius: var(--r18);
margin: var(--s5) 0;
border: 1px solid;
position: relative;
overflow: hidden
}

@media(max-width:479px) {
.callout {
flex-direction: column;
gap: var(--s3);
padding: var(--s4)
}
}

.callout.warm {
background: var(--terra-pale);
border-color: rgba(196, 84, 26, .2);
border-left: 4px solid var(--terra)
}

.callout.golden {
background: var(--gold-pale);
border-color: rgba(212, 146, 10, .2);
border-left: 4px solid var(--gold)
}

.callout.cool {
background: var(--sky-pale);
border-color: rgba(42, 122, 184, .18);
border-left: 4px solid var(--sky)
}

.callout.earthy {
background: var(--forest-pale);
border-color: rgba(42, 92, 42, .18);
border-left: 4px solid var(--forest)
}

.cl-ico {
font-size: 26px;
line-height: 1;
flex-shrink: 0;
margin-top: .1rem
}

.cl-hd {
font-family: var(--fd);
font-size: 1rem;
font-weight: 700;
margin-bottom: .35rem
}

.callout.warm .cl-hd {
color: var(--terra-dk)
}

.callout.golden .cl-hd {
color: var(--gold)
}

.callout.cool .cl-hd {
color: var(--sky)
}

.callout.earthy .cl-hd {
color: var(--forest)
}

.cl-bd {
font-size: 14px;
color: var(--smoke);
line-height: 1.72;
margin: 0
}

.cl-bd strong {
color: var(--ink);
font-weight: 700
}

/* ================================================================
PHASE TABS — Before / During / After
================================================================ */
.phase-tabs {
display: flex;
gap: .5rem;
margin-bottom: var(--s6);
background: #fff;
border: 1px solid var(--sand);
border-radius: var(--rpill);
padding: 5px;
width: fit-content
}

.ptab {
padding: .55rem 1.4rem;
border-radius: var(--rpill);
font-size: 14px;
font-weight: 700;
border: none;
cursor: pointer;
background: none;
color: var(--dust);
transition: all var(--t)
}

.ptab.act {
background: var(--terra);
color: #fff;
box-shadow: 0 2px 12px rgba(196, 84, 26, .3)
}

.ptab:hover:not(.act) {
background: var(--terra-dim);
color: var(--terra)
}

.phase-panel {
display: none
}

.phase-panel.show {
display: block
}

/* ================================================================
SAFARI ACTIVITY CARDS — Large editorial format
================================================================ */
.safari-grid {
display: grid;
grid-template-columns: 1fr;
gap: var(--s5);
margin: var(--s5) 0
}

@media(min-width:600px) {
.safari-grid {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:920px) {
.safari-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.safari-card {
background: #fff;
border: 1px solid var(--sand);
border-radius: var(--r24);
overflow: hidden;
transition: box-shadow var(--t), transform var(--t);
display: flex;
flex-direction: column
}

.safari-card:hover {
box-shadow: var(--sh-lg);
transform: translateY(-4px)
}

.safari-card.hero-card {
grid-column: 1 / -1
}

@media(min-width:600px) {
.safari-card.hero-card {
display: grid;
grid-template-columns: 1fr 1fr
}
}

.safari-card.featured {
border-color: rgba(196, 84, 26, .35);
box-shadow: 0 0 0 2px rgba(196, 84, 26, .12)
}

.sc-img {
height: 200px;
overflow: hidden;
position: relative;
flex-shrink: 0
}

.safari-card.hero-card .sc-img {
height: 100%;
min-height: 260px
}

.sc-img img {
width: 100%;
height: 100%;
object-fit: cover;
filter: saturate(1.15) brightness(.78);
transition: transform .6s ease, filter .4s
}

.safari-card:hover .sc-img img {
transform: scale(1.06);
filter: saturate(1.25) brightness(.82)
}

.sc-img-ov {
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(42, 31, 20, .72) 0%, transparent 55%)
}

/* Distance badge */
.sc-dist {
position: absolute;
top: .85rem;
right: .85rem;
background: rgba(42, 31, 20, .72);
backdrop-filter: blur(6px);
color: #fff;
font-size: 10.5px;
font-weight: 700;
padding: .25rem .75rem;
border-radius: var(--rpill);
border: 1px solid rgba(255, 255, 255, .18)
}

.sc-category {
position: absolute;
top: .85rem;
left: .85rem;
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .1em;
padding: 3px 9px;
border-radius: var(--rpill);
backdrop-filter: blur(4px)
}

.sc-cat-wild {
background: rgba(42, 92, 42, .82);
color: #C8F0C8
}

.sc-cat-mtn {
background: rgba(42, 31, 20, .82);
color: #F8E8D0
}

.sc-cat-cult {
background: rgba(196, 84, 26, .82);
color: #FFF0E0
}

.sc-cat-beach {
background: rgba(42, 122, 184, .82);
color: #C8E8FF
}

.sc-cat-city {
background: rgba(212, 146, 10, .82);
color: #FFF0C0
}

.sc-name {
position: absolute;
bottom: .9rem;
left: 1rem;
right: .85rem;
font-family: var(--fd);
font-size: clamp(1rem, 2.2vw, 1.25rem);
font-weight: 700;
color: #fff;
line-height: 1.2
}

.sc-body {
padding: var(--s4) var(--s5);
flex: 1;
display: flex;
flex-direction: column;
gap: .65rem
}

.sc-park-tag {
font-size: 10.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .12em;
color: var(--terra)
}

.sc-title {
font-family: var(--fd);
font-size: 1.05rem;
font-weight: 700;
color: var(--ink);
line-height: 1.28;
margin-bottom: .1rem
}

.safari-card.hero-card .sc-title {
font-size: 1.3rem
}

.sc-desc {
font-size: 13px;
color: var(--smoke);
line-height: 1.65;
flex: 1;
font-weight: 400
}

.sc-chips {
display: flex;
flex-wrap: wrap;
gap: .3rem;
padding-top: .5rem;
border-top: 1px solid var(--sand)
}

.sc-chip {
font-size: 10.5px;
font-weight: 600;
color: var(--smoke);
background: var(--cream);
padding: 2px 8px;
border-radius: var(--rpill);
border: 1px solid var(--sand)
}

.sc-foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: .75rem;
padding-top: .65rem;
border-top: 1px solid var(--sand);
flex-wrap: wrap
}

.sc-price-from {
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--dust)
}

.sc-price-val {
font-family: var(--fd);
font-size: 1.15rem;
font-weight: 700;
color: var(--terra);
line-height: 1
}

.sc-book-btn {
display: inline-flex;
align-items: center;
gap: .35rem;
padding: .5rem 1rem;
background: var(--terra);
color: #fff;
border-radius: var(--rpill);
font-size: 12.5px;
font-weight: 700;
border: none;
cursor: pointer;
transition: all var(--t);
white-space: nowrap
}

.sc-book-btn:hover {
background: var(--terra-lt);
transform: scale(1.03)
}

.sc-book-btn svg {
width: 11px;
height: 11px
}

/* ================================================================
DURING AFCON — Day trip cards (compact horizontal)
================================================================ */
.daytrip-list {
display: flex;
flex-direction: column;
gap: var(--s3);
margin: var(--s5) 0
}

.dt-card {
background: #fff;
border: 1px solid var(--sand);
border-radius: var(--r18);
overflow: hidden;
display: flex;
align-items: stretch;
transition: box-shadow var(--t), transform var(--t)
}

.dt-card:hover {
box-shadow: var(--sh-md);
transform: translateY(-2px)
}

.dt-img {
width: 130px;
min-width: 130px;
overflow: hidden;
position: relative;
flex-shrink: 0
}

@media(max-width:479px) {
.dt-img {
width: 100px;
min-width: 100px
}
}

.dt-img img {
width: 100%;
height: 100%;
object-fit: cover;
filter: saturate(1.1) brightness(.78);
transition: transform .5s
}

.dt-card:hover .dt-img img {
transform: scale(1.06)
}

.dt-img-ov {
position: absolute;
inset: 0;
background: rgba(42, 31, 20, .2)
}

.dt-body {
padding: .85rem 1.1rem;
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
gap: .4rem
}

.dt-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: .5rem;
flex-wrap: wrap
}

.dt-name {
font-family: var(--fd);
font-size: 1rem;
font-weight: 700;
color: var(--ink);
line-height: 1.2
}

.dt-time-badge {
display: inline-flex;
align-items: center;
gap: .32rem;
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
padding: 3px 9px;
border-radius: var(--rpill);
background: var(--terra-pale);
color: var(--terra);
border: 1px solid rgba(196, 84, 26, .2);
white-space: nowrap;
flex-shrink: 0
}

.dt-desc {
font-size: 12.5px;
color: var(--smoke);
line-height: 1.58;
font-weight: 400
}

.dt-tags {
display: flex;
flex-wrap: wrap;
gap: .3rem
}

.dt-tag {
font-size: 10.5px;
font-weight: 600;
color: var(--smoke);
background: var(--cream);
padding: 2px 7px;
border-radius: var(--rpill);
border: 1px solid var(--sand)
}

.dt-price {
font-family: var(--fd);
font-size: .95rem;
font-weight: 700;
color: var(--terra)
}

.dt-book {
display: flex;
align-items: center;
gap: .5rem;
justify-content: space-between;
flex-wrap: wrap;
padding-top: .4rem;
border-top: 1px solid var(--sand)
}

/* ================================================================
PACKAGE CARDS — full featured
================================================================ */
.pkg-grid {
display: grid;
grid-template-columns: 1fr;
gap: var(--s5);
margin: var(--s5) 0
}

@media(min-width:600px) {
.pkg-grid {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:1000px) {
.pkg-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.pkg-card {
background: #fff;
border: 1px solid var(--sand);
border-radius: var(--r24);
padding: var(--s5);
display: flex;
flex-direction: column;
gap: .85rem;
transition: box-shadow var(--t), transform var(--t);
position: relative;
overflow: hidden
}

.pkg-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
border-radius: var(--r24) var(--r24) 0 0
}

.pkg-card.terra-pkg::before {
background: linear-gradient(90deg, var(--terra), var(--terra-lt))
}

.pkg-card.gold-pkg::before {
background: linear-gradient(90deg, var(--gold), var(--gold-lt))
}

.pkg-card.sky-pkg::before {
background: linear-gradient(90deg, var(--sky), var(--sky-lt))
}

.pkg-card.forest-pkg::before {
background: linear-gradient(90deg, var(--forest), var(--forest-lt))
}

.pkg-card:hover {
box-shadow: var(--sh-lg);
transform: translateY(-4px)
}

.pkg-watermark {
position: absolute;
top: .5rem;
right: 1rem;
font-family: var(--fd);
font-size: 4.5rem;
font-weight: 700;
color: rgba(196, 84, 26, .04);
letter-spacing: .02em;
pointer-events: none;
line-height: 1
}

.pkg-dur {
font-size: 10.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .14em
}

.pkg-card.terra-pkg .pkg-dur {
color: var(--terra)
}

.pkg-card.gold-pkg .pkg-dur {
color: var(--gold)
}

.pkg-card.sky-pkg .pkg-dur {
color: var(--sky)
}

.pkg-card.forest-pkg .pkg-dur {
color: var(--forest)
}

.pkg-name {
font-family: var(--fd);
font-size: 1.2rem;
font-weight: 700;
color: var(--ink);
line-height: 1.22;
letter-spacing: -.01em
}

.pkg-desc {
font-size: 13px;
color: var(--smoke);
line-height: 1.65
}

.pkg-stops {
display: flex;
flex-direction: column;
gap: .32rem
}

.pkg-stop {
display: flex;
align-items: center;
gap: .5rem;
font-size: 12.5px;
color: var(--ink);
font-weight: 400
}

.ps-dot {
width: 7px;
height: 7px;
border-radius: 50%;
flex-shrink: 0
}

.pkg-card.terra-pkg .ps-dot {
background: var(--terra-lt)
}

.pkg-card.gold-pkg .ps-dot {
background: var(--gold-lt)
}

.pkg-card.sky-pkg .ps-dot {
background: var(--sky-lt)
}

.pkg-card.forest-pkg .ps-dot {
background: var(--forest-lt)
}

.pkg-tags {
display: flex;
flex-wrap: wrap;
gap: .3rem
}

.pkg-tag {
font-size: 10.5px;
font-weight: 500;
color: var(--smoke);
background: var(--cream);
padding: 2px 7px;
border-radius: var(--rpill);
border: 1px solid var(--sand)
}

.pkg-ft {
display: flex;
align-items: center;
justify-content: space-between;
gap: .75rem;
padding-top: .75rem;
border-top: 1px solid var(--sand);
flex-wrap: wrap;
margin-top: auto
}

.pf-from {
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--dust)
}

.pf-amt {
font-family: var(--fd);
font-size: 1.45rem;
font-weight: 700;
line-height: 1
}

.pkg-card.terra-pkg .pf-amt {
color: var(--terra)
}

.pkg-card.gold-pkg .pf-amt {
color: var(--gold)
}

.pkg-card.sky-pkg .pf-amt {
color: var(--sky)
}

.pkg-card.forest-pkg .pf-amt {
color: var(--forest)
}

.pf-per {
font-size: 10px;
color: var(--dust)
}

.pf-btn {
display: inline-flex;
align-items: center;
gap: .35rem;
padding: .55rem 1.1rem;
border-radius: var(--rpill);
font-size: 12.5px;
font-weight: 700;
border: none;
cursor: pointer;
transition: all var(--t);
white-space: nowrap
}

.pkg-card.terra-pkg .pf-btn {
background: var(--terra);
color: #fff
}

.pkg-card.gold-pkg .pf-btn {
background: var(--gold);
color: #fff
}

.pkg-card.sky-pkg .pf-btn {
background: var(--sky);
color: #fff
}

.pkg-card.forest-pkg .pf-btn {
background: var(--forest);
color: #fff
}

.pf-btn:hover {
opacity: .88;
transform: scale(.98)
}

.pf-btn svg {
width: 11px;
height: 11px
}

/* ================================================================
DISTANCE RING VISUAL — Arusha at centre
================================================================ */
.distance-map {
background: #fff;
border: 1px solid var(--sand);
border-radius: var(--r24);
padding: var(--s6);
margin: var(--s5) 0
}

.dm-title {
font-family: var(--fd);
font-size: 1.15rem;
font-weight: 700;
color: var(--ink);
margin-bottom: var(--s5);
text-align: center
}

.dm-grid {
display: grid;
grid-template-columns: 1fr;
gap: var(--s3)
}

@media(min-width:500px) {
.dm-grid {
grid-template-columns: repeat(2, 1fr)
}
}

@media(min-width:900px) {
.dm-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.dm-item {
display: flex;
align-items: center;
gap: .75rem;
padding: .75rem 1rem;
border-radius: var(--r14);
border: 1px solid var(--sand);
background: var(--cream);
transition: all var(--t)
}

.dm-item:hover {
border-color: rgba(196, 84, 26, .3);
background: var(--terra-pale)
}

.dm-icon {
font-size: 22px;
line-height: 1;
flex-shrink: 0
}

.dm-body {
flex: 1;
min-width: 0
}

.dm-park {
font-family: var(--fd);
font-size: .95rem;
font-weight: 700;
color: var(--ink);
margin-bottom: .1rem
}

.dm-time {
font-size: 11px;
font-weight: 700;
color: var(--terra);
text-transform: uppercase;
letter-spacing: .08em
}

.dm-note {
font-size: 11px;
color: var(--dust)
}

/* ================================================================
WILDLIFE GRID
================================================================ */
.wildlife-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: .65rem;
margin: var(--s5) 0
}

@media(min-width:500px) {
.wildlife-grid {
grid-template-columns: repeat(3, 1fr)
}
}

@media(min-width:900px) {
.wildlife-grid {
grid-template-columns: repeat(6, 1fr)
}
}

.wl-card {
background: #fff;
border: 1px solid var(--sand);
border-radius: var(--r14);
padding: .8rem .65rem;
text-align: center;
transition: all var(--t)
}

.wl-card:hover {
border-color: rgba(196, 84, 26, .3);
box-shadow: var(--sh-sm);
transform: translateY(-2px)
}

.wl-thumb {
width: 54px;
height: 54px;
border-radius: 50%;
overflow: hidden;
margin: 0 auto .5rem;
border: 2px solid var(--sand)
}

.wl-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
filter: saturate(1.2) brightness(.85)
}

.wl-name {
font-family: var(--fd);
font-size: .9rem;
font-weight: 700;
color: var(--ink);
margin-bottom: .2rem
}

.wl-loc {
font-size: 10px;
color: var(--dust);
line-height: 1.3
}

.wl-badge {
display: inline-block;
font-size: 9.5px;
font-weight: 700;
padding: 2px 7px;
border-radius: var(--rpill);
margin-top: .3rem;
border: 1px solid;
text-transform: uppercase;
letter-spacing: .06em
}

.wlb-always {
background: rgba(42, 92, 42, .08);
color: var(--forest);
border-color: rgba(42, 92, 42, .2)
}

.wlb-peak {
background: var(--terra-pale);
color: var(--terra);
border-color: rgba(196, 84, 26, .22)
}

.wlb-rare {
background: var(--gold-pale);
color: var(--gold);
border-color: rgba(212, 146, 10, .22)
}

/* ================================================================
MONTHLY CALENDAR
================================================================ */
.cal-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: .6rem;
margin: var(--s5) 0
}

@media(min-width:500px) {
.cal-grid {
grid-template-columns: repeat(3, 1fr)
}
}

@media(min-width:900px) {
.cal-grid {
grid-template-columns: repeat(6, 1fr)
}
}

.cal-cell {
background: #fff;
border: 1px solid var(--sand);
border-radius: var(--r14);
padding: .85rem .65rem;
text-align: center;
transition: all var(--t);
position: relative;
overflow: hidden
}

.cal-cell:hover {
box-shadow: var(--sh-sm);
transform: translateY(-2px)
}

.cal-cell.afcon {
border-color: rgba(196, 84, 26, .4);
background: var(--terra-pale)
}

.cal-cell.peak {
border-color: rgba(42, 92, 42, .3);
background: var(--forest-pale)
}

.cal-cell.good {
border-color: rgba(42, 122, 184, .25);
background: var(--sky-pale)
}

.cal-cell.value {
border-color: var(--sand)
}

.cal-cell.afcon::before {
content: '⚽';
position: absolute;
top: 0;
right: .3rem;
font-size: 1rem;
opacity: .25
}

.cal-month {
font-family: var(--fd);
font-size: 1.05rem;
font-weight: 700;
color: var(--ink);
margin-bottom: .3rem
}

.cal-yr {
font-size: 8.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .1em;
color: var(--dust);
margin-bottom: .35rem
}

.cal-dots {
display: flex;
justify-content: center;
gap: 3px;
margin-bottom: .35rem
}

.cd {
width: 7px;
height: 7px;
border-radius: 50%
}

.cd-t {
background: var(--terra)
}

.cd-g {
background: var(--forest)
}

.cd-b {
background: var(--sky)
}

.cd-e {
background: var(--sand)
}

.cal-label {
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em
}

.cal-cell.afcon .cal-label {
color: var(--terra)
}

.cal-cell.peak .cal-label {
color: var(--forest)
}

.cal-cell.good .cal-label {
color: var(--sky)
}

.cal-cell.value .cal-label {
color: var(--dust)
}

.cal-note {
font-size: 9.5px;
color: var(--dust);
margin-top: .2rem;
line-height: 1.3
}

/* ================================================================
CHECKLIST
================================================================ */
.checklist {
display: flex;
flex-direction: column;
gap: .7rem;
margin: var(--s4) 0
}

.cl-item {
display: flex;
align-items: flex-start;
gap: .7rem;
font-size: 14.5px;
color: var(--smoke);
line-height: 1.65
}

.cl-icon {
width: 20px;
height: 20px;
border-radius: 50%;
flex-shrink: 0;
margin-top: .1em;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
font-weight: 700
}

.cl-icon.check {
background: rgba(42, 92, 42, .1);
border: 1px solid rgba(42, 92, 42, .2);
color: var(--forest)
}

.cl-icon.warn {
background: rgba(212, 146, 10, .1);
border: 1px solid rgba(212, 146, 10, .22);
color: var(--gold)
}

.cl-item strong {
color: var(--ink);
font-weight: 700
}

/* ================================================================
FAQ
================================================================ */
.faq-grid {
display: flex;
flex-direction: column;
margin: var(--s5) 0
}

@media(min-width:780px) {
.faq-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0 var(--s8)
}
}

.faq-col {
display: flex;
flex-direction: column
}

.faq-item {
border-bottom: 1px solid var(--sand)
}

.faq-q {
width: 100%;
background: none;
border: none;
text-align: left;
padding: var(--s4) 0;
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: var(--s4);
font-size: 14px;
font-weight: 600;
color: var(--ink);
cursor: pointer;
transition: color var(--t);
line-height: 1.45
}

.faq-q:hover {
color: var(--terra)
}

.faq-q[aria-expanded=true] {
color: var(--terra-dk)
}

.faq-q svg {
width: 18px;
height: 18px;
flex-shrink: 0;
color: var(--dust);
margin-top: 2px;
transition: transform .2s
}

.faq-q[aria-expanded=true] svg {
transform: rotate(45deg);
color: var(--terra)
}

.faq-a {
display: none;
padding-bottom: var(--s5);
font-size: 14px;
color: var(--smoke);
line-height: 1.8
}

.faq-a.open {
display: block
}

.faq-a strong {
color: var(--ink);
font-weight: 700
}

/* ================================================================
TESTIMONIALS
================================================================ */
.testi-grid {
display: grid;
grid-template-columns: 1fr;
gap: var(--s4);
margin: var(--s5) 0
}

@media(min-width:600px) {
.testi-grid {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:900px) {
.testi-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.testi-card {
background: #fff;
border: 1px solid var(--sand);
border-radius: var(--r18);
padding: var(--s5);
position: relative;
transition: box-shadow var(--t)
}

.testi-card:hover {
box-shadow: var(--sh-md)
}

.tq {
position: absolute;
top: .75rem;
right: 1rem;
font-family: var(--fd);
font-size: 3.5rem;
font-weight: 700;
color: rgba(196, 84, 26, .08);
line-height: 1;
pointer-events: none
}

.ts {
color: var(--gold);
font-size: 14px;
letter-spacing: 1.5px;
margin-bottom: .75rem
}

.tt {
font-family: var(--fd);
font-size: 13.5px;
color: var(--ink);
line-height: 1.78;
font-style: italic;
position: relative;
z-index: 1;
font-weight: 300
}

.ta {
display: flex;
align-items: center;
gap: .7rem;
margin-top: var(--s4);
padding-top: var(--s3);
border-top: 1px solid var(--sand)
}

.ta-av {
width: 38px;
height: 38px;
border-radius: 50%;
background: var(--terra-pale);
display: flex;
align-items: center;
justify-content: center;
font-family: var(--fd);
font-size: .9rem;
font-weight: 700;
color: var(--terra);
flex-shrink: 0;
border: 1px solid rgba(196, 84, 26, .2)
}

.ta-name {
font-family: var(--fd);
font-size: .9rem;
font-weight: 700;
color: var(--ink)
}

.ta-pkg {
font-size: 11px;
color: var(--dust)
}

/* ================================================================
DATA TABLE
================================================================ */
.tbl-wrap {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
border-radius: var(--r14);
border: 1px solid var(--sand);
margin: var(--s5) 0;
box-shadow: var(--sh-sm)
}

.dtbl {
width: 100%;
min-width: 540px;
border-collapse: collapse;
font-size: 13px
}

.dtbl th {
padding: .75rem 1rem;
text-align: left;
font-size: 10.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--dust);
background: var(--cream);
border-bottom: 1px solid var(--sand);
white-space: nowrap
}

.dtbl td {
padding: .75rem 1rem;
border-bottom: 1px solid var(--sand);
vertical-align: middle;
color: var(--smoke);
line-height: 1.5
}

.dtbl td strong {
color: var(--ink);
font-weight: 700
}

.dtbl tr:last-child td {
border-bottom: none
}

.dtbl tr:hover td {
background: var(--terra-pale)
}

.b-best {
display: inline-block;
background: var(--terra-pale);
color: var(--terra);
font-size: 11px;
font-weight: 700;
padding: 2px 8px;
border-radius: var(--rpill);
border: 1px solid rgba(196, 84, 26, .22)
}

.b-good {
display: inline-block;
background: var(--forest-pale);
color: var(--forest);
font-size: 11px;
font-weight: 700;
padding: 2px 8px;
border-radius: var(--rpill);
border: 1px solid rgba(42, 92, 42, .2)
}

.b-ok {
display: inline-block;
background: var(--gold-pale);
color: var(--gold);
font-size: 11px;
font-weight: 700;
padding: 2px 8px;
border-radius: var(--rpill);
border: 1px solid rgba(212, 146, 10, .22)
}

.b-close {
display: inline-block;
background: var(--sky-pale);
color: var(--sky);
font-size: 11px;
font-weight: 700;
padding: 2px 8px;
border-radius: var(--rpill);
border: 1px solid rgba(42, 122, 184, .2)
}

/* ================================================================
CTA SECTION — warm editorial full bleed
================================================================ */
.cta-section {
position: relative;
overflow: hidden;
border-radius: var(--r32);
margin: var(--s12) 0;
background: var(--ink)
}

.cta-img {
position: absolute;
inset: 0
}

.cta-img img {
width: 100%;
height: 100%;
object-fit: cover;
filter: brightness(.32) saturate(1.3)
}

.cta-warm-ov {
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(196, 84, 26, .25) 0%, rgba(42, 31, 20, .7) 60%, rgba(42, 31, 20, .95) 100%)
}

.cta-content {
position: relative;
z-index: 2;
padding: clamp(3rem, 6vw, 5rem) clamp(2rem, 5vw, 4rem);
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: var(--s4);
max-width: 640px;
margin: 0 auto
}

.cta-eyebrow {
display: inline-flex;
align-items: center;
gap: .5rem;
background: rgba(196, 84, 26, .18);
border: 1px solid rgba(196, 84, 26, .38);
color: #F8A878;
font-size: 10.5px;
font-weight: 700;
letter-spacing: .2em;
text-transform: uppercase;
padding: .32rem 1.1rem;
border-radius: var(--rpill)
}

.cta-h {
font-family: var(--fd);
font-size: clamp(1.8rem, 5vw, 3.2rem);
font-weight: 700;
color: #FDF5EE;
line-height: 1.15;
letter-spacing: -.02em
}

.cta-h em {
font-style: italic;
color: var(--terra-lt)
}

.cta-sub {
font-family: var(--fd);
font-size: 16px;
color: rgba(253, 245, 238, .55);
line-height: 1.75;
font-style: italic;
font-weight: 300;
max-width: 460px
}

.cta-btns {
display: flex;
flex-wrap: wrap;
gap: .65rem;
justify-content: center
}

.cta-trust {
display: flex;
flex-wrap: wrap;
gap: .75rem 1.75rem;
justify-content: center
}

.ctt {
display: flex;
align-items: center;
gap: .4rem;
font-size: 12.5px;
color: rgba(253, 245, 238, .45);
font-weight: 500
}

.ctt svg {
width: 12px;
height: 12px;
color: var(--terra-lt);
flex-shrink: 0
}

/* ================================================================
FOOTER
================================================================ */
.ftr {
background: var(--ink);
color: var(--dust);
padding: var(--s10) 1.25rem var(--s8);
margin-top: var(--s12)
}

.ftr-grid {
max-width: 1340px;
margin: 0 auto;
display: flex;
flex-direction: column;
gap: var(--s8)
}

@media(min-width:600px) {
.ftr-grid {
flex-direction: row;
flex-wrap: wrap;
gap: var(--s8)
}
}

.ftr-brand {
flex: 2;
min-width: 0
}

.ftr-logo-row {
display: flex;
align-items: center;
gap: .75rem;
margin-bottom: var(--s4)
}

.ftr-logo-row img {
height: 40px;
width: 40px;
object-fit: contain;
border-radius: 6px
}

.ftr-bn {
font-family: var(--fd);
font-size: 1.1rem;
font-weight: 700;
color: var(--cream)
}

.ftr-brand p {
font-size: 13px;
line-height: 1.7;
max-width: 270px;
color: var(--dust)
}

.ftr-col {
flex: 1;
min-width: 130px
}

.ftr-col h4 {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .14em;
color: var(--terra-lt);
margin-bottom: var(--s4)
}

.ftr-col ul {
display: flex;
flex-direction: column;
gap: .45rem
}

.ftr-col a {
font-size: 13px;
color: var(--dust);
transition: color var(--t)
}

.ftr-col a:hover {
color: var(--cream)
}

.ftr-bottom {
max-width: 1340px;
margin: var(--s8) auto 0;
padding-top: var(--s5);
border-top: 1px solid rgba(255, 255, 255, .08);
display: flex;
flex-direction: column;
gap: .5rem;
font-size: 12px;
color: rgba(255, 255, 255, .28)
}

@media(min-width:520px) {
.ftr-bottom {
flex-direction: row;
justify-content: space-between;
align-items: center
}
}

.ftr-bottom a {
color: inherit;
transition: color var(--t)
}

.ftr-bottom a:hover {
color: rgba(255, 255, 255, .55)
}

/* ── MOBILE STICKY ── */
.mob-stick {
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 200;
background: rgba(250, 245, 238, .97);
border-top: 2px solid var(--terra);
padding: .7rem 1.25rem;
display: flex;
align-items: center;
gap: 1rem;
box-shadow: 0 -4px 24px rgba(42, 31, 20, .12)
}

@media(min-width:1080px) {
.mob-stick {
display: none
}
}

.ms-left {
flex: 1
}

.ms-lbl {
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--dust);
display: block
}

.ms-price {
font-family: var(--fd);
font-size: 1.25rem;
font-weight: 700;
color: var(--terra);
line-height: 1.1
}

.ms-cta {
padding: .6rem 1.25rem;
background: var(--terra);
color: #fff;
border: none;
border-radius: var(--rpill);
font-size: 14px;
font-weight: 700;
cursor: pointer;
transition: background var(--t);
white-space: nowrap
}

.ms-cta:hover {
background: var(--terra-lt)
}

/* ── MODAL ── */
.modal-bd {
position: fixed;
inset: 0;
background: rgba(42, 31, 20, .82);
backdrop-filter: blur(10px);
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
padding: 1rem;
opacity: 0;
pointer-events: none;
transition: opacity .25s
}

.modal-bd.open {
opacity: 1;
pointer-events: auto
}

.modal-box {
background: var(--ivory);
border-radius: var(--r24);
width: 100%;
max-width: 640px;
max-height: 92vh;
overflow-y: auto;
position: relative;
transform: translateY(24px) scale(.97);
transition: transform .32s cubic-bezier(.34, 1.44, .64, 1);
box-shadow: var(--sh-lg)
}

.modal-bd.open .modal-box {
transform: translateY(0) scale(1)
}

.modal-hd {
background: linear-gradient(135deg, var(--terra-dk), var(--terra));
padding: var(--s6);
position: relative;
overflow: hidden;
border-radius: var(--r24) var(--r24) 0 0
}

.modal-hd::before {
content: '';
position: absolute;
top: -50px;
right: -50px;
width: 200px;
height: 200px;
border-radius: 50%;
background: rgba(255, 255, 255, .06)
}

.modal-hd::after {
content: '';
position: absolute;
bottom: -60px;
left: -30px;
width: 180px;
height: 180px;
border-radius: 50%;
background: rgba(255, 255, 255, .04)
}

.modal-close {
position: absolute;
top: var(--s4);
right: var(--s4);
width: 32px;
height: 32px;
border-radius: 50%;
background: rgba(255, 255, 255, .18);
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
color: rgba(255, 255, 255, .8);
transition: background var(--t);
z-index: 1
}

.modal-close:hover {
background: rgba(255, 255, 255, .28)
}

.modal-close svg {
width: 14px;
height: 14px
}

.modal-tag {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .14em;
color: rgba(255, 255, 255, .48);
margin-bottom: .45rem;
display: block;
position: relative;
z-index: 1
}

.modal-title {
font-family: var(--fd);
font-size: clamp(1.2rem, 3vw, 1.65rem);
font-weight: 700;
color: #fff;
line-height: 1.2;
max-width: 460px;
position: relative;
z-index: 1
}

.modal-price-row {
display: flex;
align-items: baseline;
gap: .45rem;
margin-top: .75rem;
position: relative;
z-index: 1
}

.mpr-from {
font-size: 10.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: rgba(255, 255, 255, .45)
}

.mpr-amt {
font-family: var(--fd);
font-size: 1.55rem;
font-weight: 700;
color: #FFD8B0;
line-height: 1
}

.mpr-per {
font-size: 11.5px;
color: rgba(255, 255, 255, .4)
}

.modal-trust {
display: flex;
flex-wrap: wrap;
gap: .5rem;
margin-top: .75rem;
position: relative;
z-index: 1
}

.mt-item {
display: flex;
align-items: center;
gap: .35rem;
font-size: 11px;
color: rgba(255, 255, 255, .55)
}

.mt-item svg {
width: 12px;
height: 12px;
color: #FFD8B0;
flex-shrink: 0
}

.modal-form {
padding: var(--s5) var(--s6)
}

@media(max-width:479px) {
.modal-form {
padding: var(--s4)
}
}

.mf-gap {
display: flex;
flex-direction: column;
gap: var(--s4)
}

.mf-row {
display: flex;
flex-direction: column;
gap: var(--s4)
}

@media(min-width:480px) {
.mf-row {
flex-direction: row
}

.mf-row .mf-field {
flex: 1
}
}

.mf-field {
display: flex;
flex-direction: column;
gap: .35rem
}

.mf-field label {
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--smoke)
}

.req {
color: var(--terra)
}

.mf-field input,
.mf-field select,
.mf-field textarea {
width: 100%;
padding: .65rem .9rem;
border: 1px solid var(--sand);
border-radius: var(--r10);
background: var(--cream);
color: var(--ink);
font-size: 14px;
outline: none;
transition: border-color .2s, box-shadow .2s;
appearance: none
}

.mf-field input:focus,
.mf-field select:focus,
.mf-field textarea:focus {
border-color: var(--terra);
box-shadow: 0 0 0 3px rgba(196, 84, 26, .12)
}

.mf-field select {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23B8A090' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right .75rem center;
padding-right: 2.2rem
}

.mf-field textarea {
resize: vertical;
min-height: 80px
}

.modal-submit {
display: flex;
align-items: center;
justify-content: center;
gap: .5rem;
width: 100%;
padding: var(--s4);
background: var(--terra);
color: #fff;
border: none;
border-radius: var(--r10);
font-size: 15px;
font-weight: 700;
cursor: pointer;
transition: background var(--t)
}

.modal-submit:hover {
background: var(--terra-lt)
}

.modal-submit svg {
width: 16px;
height: 16px
}

.modal-note {
text-align: center;
font-size: 11.5px;
color: var(--dust);
margin-top: var(--s3)
}

.modal-ok {
display: none;
flex-direction: column;
align-items: center;
text-align: center;
gap: var(--s4);
padding: var(--s10) var(--s6)
}

.modal-ok.show {
display: flex
}

.mok-ico {
width: 68px;
height: 68px;
border-radius: 50%;
background: var(--terra-pale);
display: flex;
align-items: center;
justify-content: center;
font-size: 30px;
border: 2px solid rgba(196, 84, 26, .2)
}

.mok-title {
font-family: var(--fd);
font-size: 1.5rem;
font-weight: 700;
color: var(--ink)
}

.mok-sub {
font-size: 14px;
color: var(--smoke);
line-height: 1.7;
max-width: 380px;
font-style: italic
}

.mok-close {
display: inline-flex;
align-items: center;
gap: .45rem;
padding: .72rem 1.75rem;
background: var(--terra);
color: #fff;
border-radius: var(--rpill);
font-size: 14px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--t)
}

.mok-close:hover {
background: var(--terra-lt)
}

/* Animations */
@keyframes fadeUp {
from {
opacity: 0;
transform: translateY(20px)
}

to {
opacity: 1;
transform: translateY(0)
}
}

.hero-content>* {
animation: fadeUp .65s ease both
}

.hero-content>*:nth-child(1) {
animation-delay: .05s
}

.hero-content>*:nth-child(2) {
animation-delay: .12s
}

.hero-content>*:nth-child(3) {
animation-delay: .19s
}

.hero-content>*:nth-child(4) {
animation-delay: .26s
}

.hero-content>*:nth-child(5) {
animation-delay: .33s
}

.hero-content>*:nth-child(6) {
animation-delay: .4s
}

@media(prefers-reduced-motion:reduce) {
* {
animation: none !important;
transition: none !important
}
}
