/* ════════════════════════════════════════
BEST TIME TO VISIT TANZANIA
Resilience Expedition
Editorial Magazine aesthetic
Warm savanna palette · Merriweather serif
Full mobile-first responsive
════════════════════════════════════════ */

/* ── RESET & BASE ── */
*,
*::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-font);
background: var(--bg);
color: var(--ink);
line-height: 1.78;
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,
ol {
list-style: none
}

:focus-visible {
outline: 3px solid var(--amber);
outline-offset: 3px
}

/* ── DESIGN TOKENS ── */
:root {
/* Palette — warm safari earth */
--night: #0A0702;
--earth-900: #110A04;
--earth-800: #1E1208;
--earth-700: #2E1C0E;
--earth-600: #4A2E16;
--earth-500: #6A4422;
--earth-400: #9A6434;
--amber: #C88020;
--amber-lt: #E09C3A;
--gold: #D4A02A;
--gold-lt: #ECC050;
--gold-pale: #FBF3DC;
--savanna: #B07828;
--migration: #C04A18;
--dry: #C88020;
--green-s: #3A7030;
--blue-s: #1860A0;
--zanzibar: #1878A8;
--serengeti: #3A6B24;
--ngo: #8B4818;
--page-bg: #FAF6EE;
--sand-100: #FDF9F2;
--sand-200: #F5EFE2;
--sand-300: #EDE5D2;
--ink: #130E06;
--body-dark: #2A1E0E;
--body-mid: #3E2E18;
--body-lt: #6A5438;
--muted: #8A7252;
--border: rgba(180, 140, 70, .16);
--border-md: rgba(180, 140, 70, .3);
--shadow-sm: 0 2px 10px rgba(10, 7, 2, .08);
--shadow-md: 0 6px 30px rgba(10, 7, 2, .12);
--shadow-lg: 0 20px 64px rgba(10, 7, 2, .2);

/* Typography */
--display-font: 'Merriweather', Georgia, serif;
--body-font: 'Manrope', -apple-system, sans-serif;

/* Spacing */
--sp1: .25rem;
--sp2: .5rem;
--sp3: .75rem;
--sp4: 1rem;
--sp5: 1.25rem;
--sp6: 1.5rem;
--sp8: 2rem;
--sp10: 2.5rem;
--sp12: 3rem;
--sp16: 4rem;
--sp20: 5rem;

/* Radii */
--r-sm: 5px;
--r-md: 10px;
--r-lg: 16px;
--r-xl: 22px;
--r-pill: 100px;

/* Max widths */
--max-article: 780px;
--max-wide: 1200px;

/* Transition */
--ease: .22s cubic-bezier(.4, 0, .2, 1);
}

/* ── ACCESSIBILITY ── */
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0
}

.skip-to-content {
position: absolute;
top: -100%;
left: 1rem;
z-index: 9999;
background: var(--earth-800);
color: #fff;
padding: .5rem 1.5rem;
border-radius: 4px;
font-size: 14px;
transition: top var(--ease)
}

.skip-to-content:focus {
top: .75rem
}

/* ── READING PROGRESS ── */
#reading-progress {
position: fixed;
top: 0;
left: 0;
height: 3px;
width: 0%;
background: linear-gradient(90deg, var(--amber), var(--gold));
z-index: 600;
transition: width .1s linear;
pointer-events: none
}

/* ════════════ HEADER ════════════ */
.site-header {
position: sticky;
top: 0;
z-index: 500;
background: rgba(10, 7, 2, .96);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-bottom: 1px solid rgba(200, 128, 32, .22)
}

.nav-container {
max-width: var(--max-wide);
margin: 0 auto;
padding: 0 clamp(1rem, 4vw, 1.5rem);
display: flex;
align-items: center;
justify-content: space-between;
height: clamp(56px, 8vw, 64px);
gap: 1rem
}

.logo {
display: flex;
align-items: center;
gap: .65rem;
flex-shrink: 0;
text-decoration: none
}

.logo-img {
width: 36px;
height: 36px;
border-radius: 5px;
object-fit: contain;
flex-shrink: 0
}

.logo-text {
display: flex;
flex-direction: column;
line-height: 1.1
}

.logo-name {
font-family: var(--display-font);
font-size: clamp(.8rem, 2.5vw, .95rem);
font-weight: 700;
color: #fff;
white-space: nowrap
}

.logo-tagline {
font-size: 8px;
color: rgba(255, 255, 255, .32);
letter-spacing: .14em;
text-transform: uppercase;
white-space: nowrap
}

.nav-toggle {
display: flex;
flex-direction: column;
gap: 4.5px;
background: none;
border: none;
cursor: pointer;
padding: .5rem;
border-radius: 4px;
flex-shrink: 0
}

.nav-toggle span {
display: block;
width: 20px;
height: 2px;
background: rgba(255, 255, 255, .82);
border-radius: 2px;
transition: transform var(--ease), opacity var(--ease)
}

.nav-toggle[aria-expanded="true"] span:nth-child(1) {
transform: translateY(6.5px) rotate(45deg)
}

.nav-toggle[aria-expanded="true"] span:nth-child(2) {
opacity: 0;
transform: scaleX(0)
}

.nav-toggle[aria-expanded="true"] span:nth-child(3) {
transform: translateY(-6.5px) rotate(-45deg)
}

.nav-menu {
display: none;
flex-direction: column;
padding-bottom: 1rem;
border-top: 1px solid rgba(255, 255, 255, .06)
}

.nav-menu.is-open {
display: flex
}

.nav-links {
display: flex;
flex-direction: column;
gap: 1px;
padding: .5rem 0
}

.nav-links a {
display: block;
padding: .55rem .75rem;
font-size: 14px;
font-weight: 500;
color: rgba(255, 255, 255, .68);
border-radius: 5px;
transition: background var(--ease), color var(--ease)
}

.nav-links a:hover {
background: rgba(200, 128, 32, .18);
color: #fff
}

.nav-cta {
display: flex;
align-items: center;
justify-content: center;
margin-top: .5rem;
padding: .6rem 1.5rem;
background: var(--amber);
color: #fff;
border-radius: var(--r-pill);
font-size: 13.5px;
font-weight: 600;
border: none;
cursor: pointer;
transition: background var(--ease)
}

.nav-cta:hover {
background: var(--amber-lt)
}

@media(min-width:768px) {
.nav-toggle {
display: none
}

.nav-menu {
display: flex !important;
flex-direction: row;
align-items: center;
padding-bottom: 0;
border-top: none;
gap: .2rem
}

.nav-links {
flex-direction: row;
padding: 0
}

.nav-links a {
font-size: 13px;
padding: .38rem .65rem
}

.nav-cta {
margin-top: 0;
margin-left: .5rem;
padding: .42rem 1.2rem
}
}

/* ════════════ BREADCRUMB ════════════ */
.breadcrumb-bar {
background: var(--earth-800);
border-bottom: 1px solid rgba(200, 128, 32, .18)
}

.breadcrumb-inner {
max-width: var(--max-wide);
margin: 0 auto;
padding: .45rem clamp(1rem, 4vw, 1.5rem);
display: flex;
gap: .4rem;
align-items: center;
overflow-x: auto;
white-space: nowrap;
scrollbar-width: none;
font-size: 11.5px;
color: rgba(255, 255, 255, .38)
}

.breadcrumb-inner::-webkit-scrollbar {
display: none
}

.breadcrumb-inner a {
color: rgba(255, 255, 255, .55);
transition: color var(--ease)
}

.breadcrumb-inner a:hover {
color: var(--gold-lt)
}

.breadcrumb-inner .sep {
opacity: .35;
margin: 0 .1rem
}

.breadcrumb-inner .current {
color: rgba(255, 255, 255, .78);
font-weight: 500
}

/* ════════════ HERO ════════════ */
.article-hero {
position: relative;
min-height: clamp(420px, 60vw, 700px);
display: flex;
align-items: flex-end;
overflow: hidden;
background: var(--earth-900)
}

.hero-img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center 35%;
transform: scale(1.06);
transition: transform 14s ease-out;
filter: saturate(1.25) brightness(.52)
}

.article-hero.loaded .hero-img {
transform: scale(1)
}

.hero-gradient {
position: absolute;
inset: 0;
background: linear-gradient(175deg,
rgba(10, 7, 2, .0) 0%,
rgba(20, 12, 6, .22) 30%,
rgba(10, 7, 2, .72) 62%,
rgba(10, 7, 2, 1) 100%)
}

.hero-texture {
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.038'/%3E%3C/svg%3E");
pointer-events: none
}

.hero-ridge {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: clamp(60px, 10vw, 100px);
background: linear-gradient(to top, var(--page-bg) 0%, transparent 100%);
z-index: 1
}

.hero-content {
position: relative;
z-index: 2;
width: 100%;
max-width: var(--max-wide);
margin: 0 auto;
padding: 0 clamp(1rem, 4vw, 1.5rem) clamp(2.5rem, 6vw, 4rem)
}

.hero-category {
display: inline-flex;
align-items: center;
gap: .4rem;
background: rgba(200, 128, 32, .18);
border: 1px solid rgba(200, 128, 32, .36);
color: var(--gold-lt);
font-size: 10px;
font-weight: 700;
letter-spacing: .18em;
text-transform: uppercase;
padding: .25rem 1rem;
border-radius: var(--r-pill);
margin-bottom: 1.1rem
}

.article-headline {
font-family: var(--display-font);
font-size: clamp(1.85rem, 6.5vw, 4rem);
font-weight: 700;
color: #fff;
line-height: 1.12;
letter-spacing: -.025em;
max-width: 780px;
margin-bottom: .9rem
}

.article-headline em {
font-style: italic;
color: var(--gold-lt)
}

.article-deck {
font-size: clamp(14px, 2.2vw, 17px);
color: rgba(255, 255, 255, .65);
max-width: 580px;
line-height: 1.78;
margin-bottom: 1.5rem
}

.hero-meta-row {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 1rem
}

.meta-item {
display: flex;
align-items: center;
gap: .4rem;
font-size: 12px;
color: rgba(255, 255, 255, .5)
}

.meta-item svg {
width: 13px;
height: 13px;
color: var(--amber)
}

.hero-quick-answers {
display: flex;
flex-wrap: wrap;
gap: .5rem;
margin-top: 1.2rem
}

.quick-pill {
display: inline-flex;
align-items: center;
gap: .35rem;
background: rgba(255, 255, 255, .09);
border: 1px solid rgba(255, 255, 255, .16);
color: rgba(255, 255, 255, .78);
font-size: 11.5px;
font-weight: 500;
padding: .28rem .85rem;
border-radius: var(--r-pill);
backdrop-filter: blur(4px)
}

.quick-pill strong {
color: var(--gold-lt);
font-weight: 700
}

/* ════════════ PAGE LAYOUT ════════════ */
.page-wrap {
max-width: var(--max-wide);
margin: 0 auto;
padding: clamp(2rem, 5vw, 3rem) clamp(1rem, 4vw, 1.5rem);
display: grid;
grid-template-columns: 1fr;
gap: 2.5rem
}

@media(min-width:1060px) {
.page-wrap {
grid-template-columns: minmax(0, 1fr) 290px;
align-items: start;
gap: 3.5rem
}
}

.article-body {
min-width: 0
}

.article-sidebar {
display: none
}

@media(min-width:1060px) {
.article-sidebar {
display: block
}
}

/* ════════════ STICKY SIDEBAR ════════════ */
.sticky-sidebar {
position: sticky;
top: 80px
}

.toc-widget {
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: var(--r-lg);
padding: 1.4rem;
margin-bottom: 1.25rem;
box-shadow: var(--shadow-sm)
}

.toc-widget h3 {
font-family: var(--display-font);
font-size: .88rem;
font-weight: 700;
color: var(--ink);
margin-bottom: .9rem;
padding-bottom: .7rem;
border-bottom: 1px solid var(--border)
}

.toc-nav {
display: flex;
flex-direction: column;
gap: .18rem
}

.toc-nav a {
display: flex;
align-items: flex-start;
gap: .5rem;
font-size: 12.5px;
color: var(--muted);
padding: .38rem .55rem;
border-radius: var(--r-sm);
transition: all var(--ease);
line-height: 1.38
}

.toc-nav a:hover,
.toc-nav a.toc-active {
background: var(--gold-pale);
color: var(--earth-700);
font-weight: 600
}

.toc-nav a .n {
font-size: 9.5px;
font-weight: 700;
color: var(--amber);
min-width: 16px;
margin-top: 1px;
flex-shrink: 0
}

.sidebar-cta-box {
background: var(--earth-800);
border-radius: var(--r-lg);
padding: 1.4rem;
color: #fff
}

.sidebar-cta-box h4 {
font-family: var(--display-font);
font-size: .95rem;
font-weight: 700;
color: var(--gold-lt);
margin-bottom: .6rem
}

.sidebar-cta-box p {
font-size: 12.5px;
color: rgba(255, 255, 255, .6);
line-height: 1.6;
margin-bottom: 1rem
}

.sidebar-cta-box .s-cta {
display: flex;
align-items: center;
justify-content: center;
gap: .4rem;
width: 100%;
padding: .75rem;
background: var(--amber);
color: #fff;
border: none;
border-radius: var(--r-sm);
font-size: 13.5px;
font-weight: 700;
cursor: pointer;
transition: background var(--ease)
}

.sidebar-cta-box .s-cta:hover {
background: var(--amber-lt)
}

.sidebar-trust {
margin-top: .75rem;
display: flex;
flex-direction: column;
gap: .38rem
}

.s-trust-item {
display: flex;
align-items: center;
gap: .4rem;
font-size: 11px;
color: rgba(255, 255, 255, .5)
}

.s-trust-item svg {
width: 12px;
height: 12px;
color: var(--gold-lt);
flex-shrink: 0
}

/* ════════════ ARTICLE TYPOGRAPHY ════════════ */
.article-section {
margin-bottom: clamp(2.5rem, 6vw, 4rem);
scroll-margin-top: 80px
}

.section-label {
display: block;
font-size: 10px;
font-weight: 700;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--amber);
margin-bottom: .5rem
}

.section-heading {
font-family: var(--display-font);
font-size: clamp(1.5rem, 4vw, 2.2rem);
font-weight: 700;
color: var(--ink);
line-height: 1.22;
margin-bottom: .75rem
}

.section-heading em {
font-style: italic
}

.section-heading .accent {
color: var(--amber)
}

.section-intro {
font-size: clamp(14.5px, 2vw, 16px);
color: var(--body-mid);
line-height: 1.82;
margin-bottom: 1.75rem;
max-width: var(--max-article)
}

/* Divider */
.divider {
height: 1px;
background: linear-gradient(90deg, transparent, var(--border-md), transparent);
margin: clamp(2rem, 5vw, 3rem) 0
}

/* ── PROSE ── */
.prose h3 {
font-family: var(--display-font);
font-size: clamp(1.15rem, 3vw, 1.5rem);
font-weight: 700;
color: var(--ink);
margin: 2rem 0 .7rem;
line-height: 1.3
}

.prose h4 {
font-family: var(--display-font);
font-size: clamp(1rem, 2.5vw, 1.2rem);
font-weight: 700;
color: var(--earth-600);
margin: 1.6rem 0 .5rem
}

.prose p {
font-size: clamp(14.5px, 2vw, 16px);
color: var(--body-mid);
line-height: 1.84;
margin-bottom: 1.2rem;
max-width: var(--max-article)
}

.prose strong {
color: var(--ink);
font-weight: 700
}

.prose em {
font-style: italic;
color: var(--earth-500)
}

.prose a {
color: var(--amber);
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 3px
}

.prose a:hover {
color: var(--amber-lt)
}

.prose ul,
.prose ol {
margin: .9rem 0 1.25rem;
display: flex;
flex-direction: column;
gap: .5rem;
max-width: var(--max-article)
}

.prose ul li {
display: flex;
align-items: flex-start;
gap: .6rem;
font-size: clamp(14px, 1.9vw, 15.5px);
color: var(--body-mid);
line-height: 1.7
}

.prose ul li::before {
content: '';
width: 6px;
height: 6px;
background: var(--amber);
border-radius: 50%;
flex-shrink: 0;
margin-top: .6rem
}

.prose ol {
list-style: decimal;
padding-left: 1.5rem
}

.prose ol li {
font-size: clamp(14px, 1.9vw, 15.5px);
color: var(--body-mid);
line-height: 1.7;
padding-left: .3rem
}

/* ════════════ CALLOUT BOXES ════════════ */
.callout {
display: flex;
gap: .9rem;
border-radius: var(--r-md);
padding: clamp(.9rem, 3vw, 1.3rem) clamp(1rem, 3vw, 1.5rem);
margin: 1.5rem 0;
border: 1px solid;
max-width: var(--max-article)
}

@media(max-width:480px) {
.callout {
flex-direction: column;
gap: .6rem
}
}

.callout-icon {
font-size: 1.3rem;
flex-shrink: 0;
line-height: 1;
margin-top: 2px
}

.callout-content strong {
display: block;
font-size: 14px;
font-weight: 700;
margin-bottom: 3px
}

.callout-content p {
font-size: 13.5px;
line-height: 1.65;
margin: 0;
max-width: none
}

.callout.tip {
background: rgba(200, 128, 32, .06);
border-color: rgba(200, 128, 32, .2);
border-left: 4px solid var(--amber)
}

.callout.tip .callout-content strong {
color: var(--earth-600)
}

.callout.tip .callout-content p {
color: var(--muted)
}

.callout.info {
background: rgba(24, 96, 160, .06);
border-color: rgba(24, 96, 160, .2);
border-left: 4px solid var(--blue-s)
}

.callout.info .callout-content strong {
color: var(--blue-s)
}

.callout.info .callout-content p {
color: var(--muted)
}

.callout.warn {
background: rgba(192, 74, 24, .06);
border-color: rgba(192, 74, 24, .2);
border-left: 4px solid var(--migration)
}

.callout.warn .callout-content strong {
color: var(--migration)
}

.callout.warn .callout-content p {
color: var(--muted)
}

.callout.success {
background: rgba(58, 112, 48, .06);
border-color: rgba(58, 112, 48, .2);
border-left: 4px solid var(--green-s)
}

.callout.success .callout-content strong {
color: var(--green-s)
}

.callout.success .callout-content p {
color: var(--muted)
}

/* ════════════ SEASON OVERVIEW CARDS ════════════ */
.season-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1.2rem;
margin: 1.5rem 0
}

@media(min-width:580px) {
.season-grid {
grid-template-columns: 1fr 1fr
}
}

.season-card {
border-radius: var(--r-xl);
overflow: hidden;
border: 1px solid var(--border);
background: var(--sand-100);
transition: box-shadow var(--ease), transform var(--ease)
}

.season-card:hover {
box-shadow: var(--shadow-lg);
transform: translateY(-4px)
}

.season-card-img {
height: clamp(140px, 22vw, 190px);
overflow: hidden;
position: relative
}

.season-card-img img {
width: 100%;
height: 100%;
object-fit: cover;
filter: saturate(1.15);
transition: transform .6s ease
}

.season-card:hover .season-card-img img {
transform: scale(1.08)
}

.season-card-img-ov {
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(10, 7, 2, .6) 0%, transparent 55%)
}

.season-card-label {
position: absolute;
bottom: .75rem;
left: 1rem;
font-family: var(--display-font);
font-size: 1.05rem;
font-weight: 700;
color: #fff
}

.season-card-months {
font-size: 11.5px;
color: rgba(255, 255, 255, .65);
display: block;
margin-top: 1px
}

.season-card-body {
padding: 1.1rem 1.25rem 1.4rem
}

.season-rating {
display: flex;
gap: 3px;
margin-bottom: .65rem
}

.star-f {
color: var(--gold);
font-size: 13px
}

.star-e {
color: var(--sand-300);
font-size: 13px
}

.season-summary {
font-size: 13px;
color: var(--body-mid);
line-height: 1.65;
margin-bottom: .85rem
}

.season-pros-cons {
display: grid;
grid-template-columns: 1fr 1fr;
gap: .6rem
}

.pros-col,
.cons-col {
display: flex;
flex-direction: column;
gap: .35rem
}

.pros-col h5,
.cons-col h5 {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .1em;
margin-bottom: .2rem
}

.pros-col h5 {
color: var(--green-s)
}

.cons-col h5 {
color: var(--migration)
}

.pro-item,
.con-item {
font-size: 12px;
color: var(--body-mid);
display: flex;
align-items: flex-start;
gap: .35rem;
line-height: 1.45
}

.pro-item::before {
content: '✓';
color: var(--green-s);
font-weight: 700;
flex-shrink: 0
}

.con-item::before {
content: '✗';
color: var(--migration);
font-weight: 700;
flex-shrink: 0
}

/* ════════════ MONTHLY TABLE (scrollable) ════════════ */
.monthly-scroll-wrap {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
margin: 1.5rem 0;
border-radius: var(--r-md);
box-shadow: var(--shadow-sm)
}

.monthly-table {
width: 100%;
min-width: 700px;
border-collapse: collapse;
font-size: 13px
}

.monthly-table th {
background: var(--earth-800);
color: rgba(255, 255, 255, .75);
padding: .65rem .75rem;
text-align: center;
font-size: 10.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
white-space: nowrap;
border-right: 1px solid rgba(255, 255, 255, .08)
}

.monthly-table th:first-child {
text-align: left;
min-width: 150px;
border-right: 1px solid rgba(255, 255, 255, .15)
}

.monthly-table td {
padding: .6rem .75rem;
border-bottom: 1px solid var(--border);
border-right: 1px solid var(--border);
text-align: center;
vertical-align: middle;
font-size: 12px;
font-weight: 700;
color: #fff
}

.monthly-table td:first-child {
text-align: left;
font-size: 13px;
font-weight: 600;
color: var(--ink);
background: var(--sand-200);
border-right: 1px solid var(--border-md);
white-space: nowrap
}

.monthly-table tr:last-child td {
border-bottom: none
}

.monthly-table tr:nth-child(even) td:first-child {
background: var(--sand-100)
}

.monthly-table tr:hover td {
filter: brightness(1.04)
}

/* Cell colors */
.c-ex {
background: #C84818;
color: #fff
}

/* Excellent */
.c-gr {
background: #3A7028;
color: #fff
}

/* Great */
.c-gd {
background: #5A9040;
color: #fff
}

/* Good */
.c-ok {
background: #7A9870;
color: #fff
}

/* OK */
.c-lw {
background: #B8A888;
color: var(--ink)
}

/* Low */
.c-no {
background: #D8D0C0;
color: var(--muted)
}

/* No */
.c-ra {
background: #7A8898;
color: #fff
}

/* Rain */
.c-mi {
background: #C04818;
animation: pulse-mig 2s ease-in-out infinite
}

/* Migration */
/* Legend */
.table-legend {
display: flex;
flex-wrap: wrap;
gap: .65rem;
padding: .75rem 1rem;
background: var(--sand-200);
border: 1px solid var(--border);
border-radius: 0 0 var(--r-md) var(--r-md);
margin-top: -1px
}

.leg-item {
display: flex;
align-items: center;
gap: .38rem;
font-size: 11.5px;
color: var(--body-mid)
}

.leg-dot {
width: 13px;
height: 13px;
border-radius: 3px;
flex-shrink: 0
}

@keyframes pulse-mig {

0%,
100% {
opacity: 1
}

50% {
opacity: .65
}
}

/* ════════════ MONTH DEEP-DIVE CARDS ════════════ */
.months-deep-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1.1rem;
margin: 1.5rem 0
}

@media(min-width:480px) {
.months-deep-grid {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:900px) {
.months-deep-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.mdc {
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: var(--r-lg);
padding: 1.15rem;
position: relative;
overflow: hidden;
transition: box-shadow var(--ease), transform var(--ease)
}

.mdc:hover {
box-shadow: var(--shadow-md);
transform: translateY(-3px)
}

.mdc::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px
}

/* Accent by season */
.mdc.dry::before {
background: var(--amber)
}

.mdc.green::before {
background: var(--green-s)
}

.mdc.rain::before {
background: #7A8898
}

.mdc.peak::before {
background: var(--migration)
}

.mdc.trans::before {
background: var(--savanna)
}

.mdc-month {
font-family: var(--display-font);
font-size: 1rem;
font-weight: 700;
color: var(--ink);
margin-bottom: .2rem
}

.mdc-season {
display: inline-block;
font-size: .64rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
padding: 1px 8px;
border-radius: var(--r-pill);
margin-bottom: .65rem
}

.s-dry-badge {
background: #FBF0DC;
color: #7A5000
}

.s-peak-badge {
background: #FFE8DC;
color: #8A3010;
font-weight: 700
}

.s-rain-badge {
background: #EDE8F4;
color: #5A3AA0
}

.s-green-badge {
background: #E4F2E0;
color: #2A5A18
}

.s-trans-badge {
background: #FDF0E4;
color: #7A4A18
}

.mdc-highlight {
font-size: 13px;
font-weight: 600;
color: var(--ink);
margin-bottom: .4rem
}

.mdc-list {
display: flex;
flex-direction: column;
gap: 3px
}

.mdc-list li {
font-size: 12px;
color: var(--body-lt);
padding-left: .9rem;
position: relative;
line-height: 1.5
}

.mdc-list li::before {
content: '›';
position: absolute;
left: 0;
color: var(--amber)
}

.mdc-stars {
display: flex;
gap: 2px;
margin-top: .7rem;
font-size: 11px
}

.mdc-stars .sf {
color: var(--gold)
}

.mdc-stars .se {
color: var(--sand-300)
}

/* Overall score badge */
.mdc-score {
position: absolute;
top: calc(.75rem + 4px);
right: .85rem;
width: 34px;
height: 34px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 11.5px;
font-weight: 700;
color: #fff
}

.score-5 {
background: var(--migration)
}

.score-4 {
background: var(--amber)
}

.score-3 {
background: var(--savanna)
}

.score-2 {
background: #7A8898
}

/* ════════════ QUICK ANSWER BOXES ════════════ */
.qa-box {
background: var(--earth-800);
border-radius: var(--r-xl);
padding: clamp(1.5rem, 4vw, 2.5rem);
margin: 1.75rem 0;
color: #fff;
max-width: var(--max-article)
}

.qa-box h3 {
font-family: var(--display-font);
font-size: clamp(1.2rem, 3vw, 1.6rem);
font-weight: 700;
color: var(--gold-lt);
margin-bottom: 1rem
}

.qa-grid {
display: grid;
grid-template-columns: 1fr;
gap: .75rem
}

@media(min-width:480px) {
.qa-grid {
grid-template-columns: 1fr 1fr
}
}

.qa-item {
background: rgba(255, 255, 255, .07);
border: 1px solid rgba(255, 255, 255, .1);
border-radius: var(--r-md);
padding: .9rem 1rem
}

.qa-item .q {
font-size: 11.5px;
font-weight: 600;
color: rgba(255, 255, 255, .5);
margin-bottom: .3rem;
text-transform: uppercase;
letter-spacing: .06em
}

.qa-item .a {
font-size: 14px;
font-weight: 700;
color: var(--gold-lt);
line-height: 1.4
}

.qa-item .a-sub {
font-size: 12px;
color: rgba(255, 255, 255, .55);
margin-top: .15rem
}

/* ════════════ DESTINATION-SPECIFIC TIMING ════════════ */
.dest-timing-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1.2rem;
margin: 1.5rem 0
}

@media(min-width:580px) {
.dest-timing-grid {
grid-template-columns: 1fr 1fr
}
}

.dest-card {
border-radius: var(--r-xl);
overflow: hidden;
border: 1px solid var(--border);
background: var(--sand-100);
transition: box-shadow var(--ease), transform var(--ease)
}

.dest-card:hover {
box-shadow: var(--shadow-lg);
transform: translateY(-3px)
}

.dest-img-wrap {
height: clamp(120px, 18vw, 160px);
overflow: hidden;
position: relative
}

.dest-img-wrap img {
width: 100%;
height: 100%;
object-fit: cover;
filter: saturate(1.1);
transition: transform .55s ease
}

.dest-card:hover .dest-img-wrap img {
transform: scale(1.07)
}

.dest-img-wrap::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(10, 7, 2, .6) 0%, transparent 50%)
}

.dest-img-title {
position: absolute;
bottom: .65rem;
left: .9rem;
font-family: var(--display-font);
font-size: .95rem;
font-weight: 700;
color: #fff;
z-index: 1
}

.dest-card-body {
padding: 1rem 1.1rem 1.25rem
}

.dest-best {
display: flex;
align-items: center;
gap: .5rem;
margin-bottom: .65rem
}

.dest-best-label {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .09em;
color: var(--muted)
}

.dest-best-months {
font-size: 13px;
font-weight: 700;
color: var(--earth-600)
}

.dest-desc {
font-size: 12.5px;
color: var(--body-lt);
line-height: 1.62;
margin-bottom: .75rem
}

.dest-tags {
display: flex;
flex-wrap: wrap;
gap: .35rem
}

.dest-tag {
font-size: 11px;
font-weight: 500;
padding: 2px 8px;
border-radius: var(--r-pill);
background: var(--sand-300);
color: var(--body-mid);
border: 1px solid var(--border)
}

/* ════════════ MIGRATION TIMELINE ════════════ */
.migration-timeline {
position: relative;
margin: 1.5rem 0;
max-width: var(--max-article)
}

.mig-track {
display: flex;
flex-direction: column;
gap: .6rem;
padding: 1.25rem;
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: var(--r-xl)
}

.mig-zone {
display: grid;
grid-template-columns: clamp(110px, 25vw, 160px) 1fr;
gap: .75rem;
align-items: center
}

.mig-zone-name {
font-size: clamp(11.5px, 1.8vw, 13px);
font-weight: 700;
color: var(--ink);
text-align: right;
padding-right: .5rem;
line-height: 1.3
}

.mig-bar-wrap {
position: relative;
height: 28px;
background: var(--sand-300);
border-radius: var(--r-pill);
overflow: hidden
}

.mig-bar-seg {
position: absolute;
top: 0;
height: 100%;
border-radius: inherit;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
font-weight: 700;
color: #fff;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis
}

.mig-month-labels {
display: grid;
grid-template-columns: clamp(110px, 25vw, 160px) 1fr;
gap: .75rem
}

.mig-months-row {
display: grid;
grid-template-columns: repeat(12, 1fr);
font-size: 9px;
font-weight: 600;
color: var(--muted);
text-align: center;
padding-top: .35rem
}

.mig-legend-row {
display: flex;
flex-wrap: wrap;
gap: .6rem;
margin-top: .75rem;
padding-top: .75rem;
border-top: 1px solid var(--border)
}

.mig-leg-item {
display: flex;
align-items: center;
gap: .38rem;
font-size: 11.5px;
color: var(--body-mid)
}

.mig-leg-dot {
width: 12px;
height: 12px;
border-radius: 3px;
flex-shrink: 0
}

/* ════════════ PRICE COMPARISON ════════════ */
.price-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
margin: 1.5rem 0
}

@media(min-width:480px) {
.price-grid {
grid-template-columns: repeat(3, 1fr)
}
}

.price-card {
border-radius: var(--r-xl);
overflow: hidden;
border: 2px solid var(--border);
background: var(--sand-100);
transition: box-shadow var(--ease), transform var(--ease);
text-align: center
}

.price-card:hover {
box-shadow: var(--shadow-md);
transform: translateY(-3px)
}

.price-card.recommended {
border-color: var(--amber)
}

.price-card-top {
padding: 1.25rem 1rem .9rem
}

.price-card-top .badge {
display: inline-block;
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
padding: 2px 10px;
border-radius: var(--r-pill);
margin-bottom: .6rem;
color: #fff
}

.price-card h4 {
font-family: var(--display-font);
font-size: 1rem;
font-weight: 700;
color: var(--ink);
margin-bottom: .25rem
}

.price-months {
font-size: 12px;
color: var(--muted)
}

.price-card-price {
background: var(--sand-200);
padding: .9rem;
border-top: 1px solid var(--border)
}

.price-amt {
font-family: var(--display-font);
font-size: 1.6rem;
font-weight: 700;
color: var(--amber);
display: block;
line-height: 1
}

.price-pp {
font-size: 11px;
color: var(--muted);
margin-top: .2rem
}

.price-card-body {
padding: .85rem 1rem 1.1rem
}

.price-card-body ul {
display: flex;
flex-direction: column;
gap: .35rem;
text-align: left
}

.price-card-body ul li {
display: flex;
align-items: flex-start;
gap: .4rem;
font-size: 12.5px;
color: var(--body-mid);
line-height: 1.45
}

.price-card-body ul li::before {
content: '→';
color: var(--amber);
font-weight: 700;
flex-shrink: 0
}

/* ════════════ TIPS GRID ════════════ */
.tips-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1.1rem;
margin: 1.5rem 0
}

@media(min-width:580px) {
.tips-grid {
grid-template-columns: 1fr 1fr
}
}

.tip-card {
display: flex;
gap: .9rem;
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: var(--r-lg);
padding: 1.1rem;
transition: box-shadow var(--ease), transform var(--ease)
}

.tip-card:hover {
box-shadow: var(--shadow-md);
transform: translateY(-2px)
}

.tip-icon {
width: 44px;
height: 44px;
border-radius: var(--r-md);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.3rem;
flex-shrink: 0
}

.tip-body h4 {
font-family: var(--display-font);
font-size: .92rem;
font-weight: 700;
color: var(--ink);
margin-bottom: .3rem
}

.tip-body p {
font-size: 12.5px;
color: var(--body-lt);
line-height: 1.6
}

/* ════════════ FAQ ════════════ */
.faq-accordion {
border-radius: var(--r-xl);
overflow: hidden;
border: 1px solid var(--border);
margin: 1.5rem 0;
max-width: var(--max-article)
}

.faq-q {
width: 100%;
background: none;
border: none;
text-align: left;
padding: 1.1rem 1.25rem;
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 1rem;
font-size: clamp(14px, 2vw, 15.5px);
font-weight: 600;
color: var(--ink);
cursor: pointer;
transition: color var(--ease), background var(--ease);
line-height: 1.4;
border-bottom: 1px solid var(--border)
}

.faq-q:last-of-type {
border-bottom: none
}

.faq-q:hover {
background: var(--gold-pale);
color: var(--amber)
}

.faq-q[aria-expanded="true"] {
color: var(--earth-600);
background: var(--gold-pale)
}

.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(--amber)
}

.faq-a {
display: none;
padding: 1.1rem 1.25rem 1.3rem;
font-size: 14.5px;
color: var(--body-mid);
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
}

/* ════════════ TESTIMONIALS ════════════ */
.testi-row {
display: grid;
grid-template-columns: 1fr;
gap: 1.1rem;
margin: 1.5rem 0
}

@media(min-width:580px) {
.testi-row {
grid-template-columns: 1fr 1fr
}
}

@media(min-width:900px) {
.testi-row {
grid-template-columns: repeat(3, 1fr)
}
}

.testi {
background: var(--sand-100);
border: 1px solid var(--border);
border-radius: var(--r-lg);
padding: 1.25rem;
position: relative;
transition: box-shadow var(--ease)
}

.testi:hover {
box-shadow: var(--shadow-md)
}

.testi-qmark {
position: absolute;
top: .75rem;
right: 1rem;
font-family: var(--display-font);
font-size: 3.2rem;
font-weight: 700;
color: var(--sand-300);
line-height: 1;
pointer-events: none
}

.testi-stars {
color: var(--gold);
font-size: 13px;
display: flex;
gap: 2px;
margin-bottom: .65rem
}

.testi-text {
font-size: 13.5px;
color: var(--body-dark);
line-height: 1.75;
font-style: italic;
position: relative;
z-index: 1
}

.testi-author {
display: flex;
align-items: center;
gap: .7rem;
margin-top: .9rem;
padding-top: .9rem;
border-top: 1px solid var(--border)
}

.testi-avatar {
width: 36px;
height: 36px;
border-radius: 50%;
object-fit: cover;
border: 2px solid var(--border);
flex-shrink: 0
}

.testi-name {
font-size: 13px;
font-weight: 700;
color: var(--ink)
}

.testi-trip {
font-size: 11px;
color: var(--muted)
}

/* ════════════ CTA SECTION ════════════ */
.article-cta {
background: var(--earth-800);
border-radius: var(--r-xl);
padding: clamp(1.75rem, 5vw, 3rem);
margin: 2rem 0;
color: #fff;
text-align: center
}

.article-cta h2 {
font-family: var(--display-font);
font-size: clamp(1.4rem, 4vw, 2rem);
font-weight: 700;
color: #fff;
margin-bottom: .7rem
}

.article-cta h2 em {
font-style: italic;
color: var(--gold-lt)
}

.article-cta p {
font-size: 15px;
color: rgba(255, 255, 255, .6);
max-width: 520px;
margin: 0 auto 1.5rem;
line-height: 1.75
}

.cta-buttons {
display: flex;
flex-direction: column;
gap: .75rem;
align-items: center
}

@media(min-width:420px) {
.cta-buttons {
flex-direction: row;
justify-content: center;
flex-wrap: wrap
}
}

.cta-btn-primary {
display: inline-flex;
align-items: center;
gap: .5rem;
padding: .85rem 2rem;
background: var(--amber);
color: #fff;
border-radius: var(--r-pill);
font-size: 15px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease), transform var(--ease);
white-space: nowrap
}

.cta-btn-primary:hover {
background: var(--amber-lt);
transform: translateY(-2px)
}

.cta-btn-wa {
display: inline-flex;
align-items: center;
gap: .5rem;
padding: .85rem 1.5rem;
background: rgba(37, 211, 102, .15);
border: 1px solid rgba(37, 211, 102, .3);
color: rgba(37, 211, 102, .9);
border-radius: var(--r-pill);
font-size: 14px;
font-weight: 600;
white-space: nowrap;
transition: background var(--ease)
}

.cta-btn-wa:hover {
background: rgba(37, 211, 102, .22)
}

.cta-btn-wa svg {
width: 16px;
height: 16px
}

.cta-trust {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: .85rem;
margin-top: 1.1rem
}

.cta-trust-item {
display: flex;
align-items: center;
gap: .35rem;
font-size: 12px;
color: rgba(255, 255, 255, .45)
}

.cta-trust-item svg {
width: 12px;
height: 12px;
color: var(--gold-lt)
}

/* ════════════ MODAL ════════════ */
.modal-ov {
position: fixed;
inset: 0;
background: rgba(10, 7, 2, .8);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
z-index: 10000;
display: flex;
align-items: center;
justify-content: center;
padding: 1rem;
opacity: 0;
pointer-events: none;
transition: opacity .25s ease
}

.modal-ov.open {
opacity: 1;
pointer-events: auto
}

.modal-panel {
background: var(--sand-100);
border-radius: var(--r-xl);
width: 100%;
max-width: 640px;
max-height: 90vh;
overflow-y: auto;
transform: translateY(18px) scale(.97);
transition: transform .3s cubic-bezier(.34, 1.44, .64, 1);
box-shadow: 0 30px 100px rgba(10, 7, 2, .5)
}

.modal-ov.open .modal-panel {
transform: translateY(0) scale(1)
}

.modal-head {
background: linear-gradient(135deg, var(--earth-900) 0%, var(--earth-700) 55%, rgba(200, 128, 32, .38) 100%);
padding: clamp(1.25rem, 4vw, 2rem);
position: relative
}

.modal-close {
position: absolute;
top: .9rem;
right: .9rem;
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)
}

.modal-close:hover {
background: rgba(255, 255, 255, .26)
}

.modal-close svg {
width: 14px;
height: 14px
}

.modal-tag {
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .14em;
color: rgba(255, 255, 255, .42);
display: block;
margin-bottom: .3rem
}

.modal-title {
font-family: var(--display-font);
font-size: clamp(1.2rem, 3vw, 1.6rem);
font-weight: 700;
color: #fff;
line-height: 1.2;
max-width: 440px;
position: relative;
z-index: 1
}

.modal-price-line {
display: flex;
align-items: baseline;
gap: .5rem;
margin-top: .7rem;
position: relative;
z-index: 1
}

.modal-from {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: rgba(255, 255, 255, .42)
}

.modal-price {
font-family: var(--display-font);
font-size: 1.45rem;
font-weight: 700;
color: var(--gold-lt)
}

.modal-pp {
font-size: 11px;
color: rgba(255, 255, 255, .38)
}

.modal-trust-badges {
display: flex;
flex-wrap: wrap;
gap: .6rem;
margin-top: .85rem;
position: relative;
z-index: 1
}

.modal-trust-badges span {
display: flex;
align-items: center;
gap: .35rem;
font-size: 11px;
color: rgba(255, 255, 255, .58)
}

.modal-trust-badges svg {
width: 11px;
height: 11px;
color: var(--gold-lt);
flex-shrink: 0
}

.modal-form {
padding: clamp(1.1rem, 4vw, 1.75rem)
}

.mf-stack {
display: flex;
flex-direction: column;
gap: 1rem
}

.mf-pair {
display: flex;
flex-direction: column;
gap: 1rem
}

@media(min-width:480px) {
.mf-pair {
flex-direction: row
}

.mf-pair .mf-field {
flex: 1
}
}

.mf-field {
display: flex;
flex-direction: column;
gap: .3rem
}

.mf-field label {
font-size: 10.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
color: var(--muted)
}

.mf-field label .req {
color: #C04818
}

.mf-field input,
.mf-field select,
.mf-field textarea {
width: 100%;
padding: .6rem .85rem;
border: 1.5px solid var(--border);
border-radius: var(--r-sm);
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
}

.mf-field input:focus,
.mf-field select:focus,
.mf-field textarea:focus {
border-color: var(--amber);
box-shadow: 0 0 0 3px rgba(200, 128, 32, .14)
}

.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='%238A7252' 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-field textarea {
min-height: 75px;
resize: vertical
}

.modal-submit {
display: flex;
align-items: center;
justify-content: center;
gap: .5rem;
width: 100%;
padding: .95rem;
background: var(--earth-700);
color: #fff;
border: none;
border-radius: var(--r-sm);
font-size: 15px;
font-weight: 700;
cursor: pointer;
transition: background var(--ease), transform var(--ease)
}

.modal-submit:hover {
background: var(--amber)
}

.modal-submit:active {
transform: scale(.98)
}

.modal-note {
text-align: center;
font-size: 11.5px;
color: var(--muted);
margin-top: .7rem;
display: flex;
align-items: center;
justify-content: center;
gap: .4rem
}

.modal-note svg {
width: 12px;
height: 12px;
color: var(--amber)
}

.modal-success {
display: none;
flex-direction: column;
align-items: center;
text-align: center;
gap: .9rem;
padding: 3rem 2rem
}

.modal-success.show {
display: flex
}

.success-emoji {
font-size: 2.5rem;
line-height: 1
}

.modal-success h3 {
font-family: var(--display-font);
font-size: 1.4rem;
font-weight: 700;
color: var(--ink)
}

.modal-success p {
font-size: 14px;
color: var(--muted);
line-height: 1.72;
max-width: 380px
}

.modal-success-close {
padding: .6rem 2rem;
background: var(--earth-700);
color: #fff;
border-radius: var(--r-pill);
font-size: 14px;
font-weight: 700;
border: none;
cursor: pointer;
transition: background var(--ease)
}

.modal-success-close:hover {
background: var(--amber)
}

/* ════════════ FOOTER ════════════ */
.site-footer {
background: var(--earth-900);
border-top: 1px solid rgba(200, 128, 32, .14);
padding: clamp(2.5rem, 6vw, 4rem) clamp(1rem, 4vw, 1.5rem) clamp(1.5rem, 4vw, 2.5rem);
margin-top: clamp(3rem, 7vw, 5rem)
}

.footer-grid {
max-width: var(--max-wide);
margin: 0 auto;
display: grid;
grid-template-columns: 1fr;
gap: 2rem
}

@media(min-width:580px) {
.footer-grid {
grid-template-columns: 1fr 1fr;
gap: 2.5rem
}
}

@media(min-width:900px) {
.footer-grid {
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 3rem
}
}

.f-brand-name {
font-family: var(--display-font);
font-size: 1.05rem;
font-weight: 700;
color: #fff;
margin-bottom: .6rem
}

.f-brand-desc {
font-size: 13.5px;
color: rgba(255, 255, 255, .5);
line-height: 1.7;
max-width: 270px
}

.f-social {
display: flex;
gap: .5rem;
margin-top: .9rem
}

.f-social-btn {
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)
}

.f-social-btn:hover {
background: var(--amber);
color: #fff
}

.f-social-btn svg {
width: 15px;
height: 15px
}

.f-col-title {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .13em;
color: var(--amber-lt);
margin-bottom: .9rem
}

.f-col ul {
display: flex;
flex-direction: column;
gap: .45rem
}

.f-col a {
font-size: 13.5px;
color: rgba(255, 255, 255, .52);
transition: color var(--ease)
}

.f-col a:hover {
color: #fff
}

.footer-bottom {
max-width: var(--max-wide);
margin: 2rem auto 0;
padding-top: 1.5rem;
border-top: 1px solid rgba(255, 255, 255, .07);
display: flex;
flex-direction: column;
gap: .4rem;
font-size: 11.5px;
color: rgba(255, 255, 255, .28)
}

@media(min-width:520px) {
.footer-bottom {
flex-direction: row;
justify-content: space-between;
align-items: center
}
}

.footer-bottom a {
color: inherit;
transition: color var(--ease)
}

.footer-bottom a:hover {
color: rgba(255, 255, 255, .6)
}

/* ════════════ MOBILE STICKY CTA ════════════ */
.mob-cta {
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 400;
background: var(--earth-900);
border-top: 2px solid rgba(200, 128, 32, .32);
padding: .7rem clamp(1rem, 4vw, 1.5rem);
display: flex;
align-items: center;
gap: .9rem
}

@media(min-width:1060px) {
.mob-cta {
display: none
}
}

.mob-cta-info {
flex: 1;
min-width: 0
}

.mob-cta-lbl {
font-size: 9.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
color: rgba(255, 255, 255, .38);
display: block
}

.mob-cta-price {
font-family: var(--display-font);
font-size: 1.15rem;
font-weight: 700;
color: var(--gold-lt);
line-height: 1.1
}

.mob-cta-btn {
padding: .65rem 1.4rem;
background: var(--amber);
color: #fff;
border: none;
border-radius: var(--r-pill);
font-size: 14px;
font-weight: 700;
cursor: pointer;
transition: background var(--ease);
white-space: nowrap;
flex-shrink: 0
}

.mob-cta-btn:hover {
background: var(--amber-lt)
}

/* ════════════ RESPONSIVE UTILITIES ════════════ */
@media(max-width:479px) {
.monthly-scroll-wrap {
margin-left: -1rem;
margin-right: -1rem;
border-radius: 0
}

.faq-q {
padding: .9rem 1rem
}

.faq-a {
padding: .9rem 1rem 1.1rem
}
}

/* ── PRINT STYLES ── */
@media print {

.site-header,
.mob-cta,
.modal-ov,
.article-sidebar,
.nav-menu,
.breadcrumb-bar,
.article-cta {
display: none !important
}

body {
background: #fff;
color: #000
}

.article-hero {
min-height: auto;
background: var(--sand-200)
}

.hero-img,
.hero-gradient,
.hero-texture,
.hero-ridge {
display: none
}

.article-headline {
color: #000;
font-size: 24pt
}
}

/* ── ANIMATE ON SCROLL (CSS-only) ── */
.fade-in {
opacity: 0;
transform: translateY(20px);
transition: opacity .6s ease, transform .6s ease
}

.fade-in.visible {
opacity: 1;
transform: translateY(0)
}
