/* ── Reset & base ─────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }

/* ── Tokens ───────────────────────────────────────── */
:root {
  --ink:        #1a1a2e;
  --ink-mid:    #3d3d5c;
  --ink-light:  #6b6b8a;
  --paper:      #fafaf8;
  --surface:    #ffffff;
  --surface-alt:#f4f4f0;
  --border:     #e2e2da;
  --accent:     #1b5e37;
  --accent-2:   #2e7d52;
  --accent-light:#e8f5ee;
  --amber:      #c8760a;
  --amber-light:#fef3e2;
  --radius:     10px;
  --shadow:     0 2px 12px rgba(26,26,46,0.08);
  --shadow-lg:  0 4px 24px rgba(26,26,46,0.12);
  --font-display: 'Fraunces', Georgia, serif;
  --font-body:    'Inter', system-ui, sans-serif;
}

body { font-family:var(--font-body); background:var(--paper); color:var(--ink); line-height:1.65; -webkit-font-smoothing:antialiased; }

/* ── Header ───────────────────────────────────────── */
.site-header { background:var(--accent); position:sticky; top:0; z-index:100; box-shadow:0 2px 8px rgba(0,0,0,0.15); }
.header-inner { max-width:1200px; margin:0 auto; padding:0 1.5rem; display:flex; align-items:center; justify-content:space-between; height:60px; }
.logo { text-decoration:none; display:flex; align-items:center; gap:0.25rem; }
.logo-247 { font-family:var(--font-display); font-weight:600; font-size:1.5rem; color:#ffffff; letter-spacing:-0.5px; }
.logo-pack { font-family:var(--font-body); font-weight:600; font-size:1rem; color:rgba(255,255,255,0.85); }
.logo-flag { font-size:1.1rem; margin-left:4px; }
.main-nav { display:flex; gap:0.25rem; }
.main-nav a { color:rgba(255,255,255,0.85); text-decoration:none; font-size:0.85rem; font-weight:500; padding:0.4rem 0.75rem; border-radius:6px; transition:background 0.15s,color 0.15s; }
.main-nav a:hover { background:rgba(255,255,255,0.15); color:#fff; }

/* ── Breadcrumb ───────────────────────────────────── */
.breadcrumb { max-width:1200px; margin:0 auto; padding:0.75rem 1.5rem 0; font-size:0.8rem; color:var(--ink-light); }
.breadcrumb a { color:var(--accent); text-decoration:none; }
.breadcrumb a:hover { text-decoration:underline; }
.breadcrumb span { margin:0 0.3rem; }

/* ── Last updated ─────────────────────────────────── */
.last-updated { font-size:0.75rem; color:var(--ink-light); padding:0.4rem 1.5rem 0; max-width:1200px; margin:0 auto; }

/* ── Layout ───────────────────────────────────────── */
.page-layout { max-width:1200px; margin:0 auto; padding:2rem 1.5rem; display:grid; grid-template-columns:1fr 320px; gap:2.5rem; align-items:start; }
.page-main { min-width:0; }

/* ── Hero ─────────────────────────────────────────── */
.page-hero { background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%); color:white; padding:3rem 1.5rem 2.5rem; text-align:center; }
.page-hero .hero-emoji { font-size:3rem; display:block; margin-bottom:0.75rem; }
.page-hero h1 { font-family:var(--font-display); font-size:clamp(1.8rem,4vw,2.8rem); font-weight:600; line-height:1.2; margin-bottom:0.75rem; }
.page-hero .hero-intro { font-size:1.1rem; line-height:1.6; max-width:680px; margin:0 auto; opacity:0.92; }

/* ── Checklist ────────────────────────────────────── */
.checklist-block { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1.75rem; margin-bottom:1.5rem; }
.checklist-block h2 { font-family:var(--font-display); font-size:1.3rem; color:var(--accent); margin-bottom:1rem; padding-bottom:0.75rem; border-bottom:2px solid var(--accent-light); }
.checklist { list-style:none; display:flex; flex-direction:column; gap:0.5rem; }
.checklist li { display:flex; align-items:flex-start; gap:0.6rem; font-size:0.95rem; line-height:1.5; padding:0.4rem 0; border-bottom:1px solid var(--border); }
.checklist li:last-child { border-bottom:none; }
.check-icon { color:var(--accent); font-weight:700; font-size:0.85rem; margin-top:0.1rem; flex-shrink:0; width:1.2rem; }

/* ── FAQ ──────────────────────────────────────────── */
.faq-block { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1.75rem; margin-bottom:1.5rem; }
.faq-block h2 { font-family:var(--font-display); font-size:1.3rem; color:var(--accent); margin-bottom:1.25rem; padding-bottom:0.75rem; border-bottom:2px solid var(--accent-light); }
.faq-item { padding:1rem 0; border-bottom:1px solid var(--border); }
.faq-item:last-child { border-bottom:none; }
.faq-q { font-size:0.95rem; font-weight:600; color:var(--ink); margin-bottom:0.5rem; line-height:1.4; }
.faq-a { font-size:0.9rem; color:var(--ink-mid); line-height:1.6; }

/* ── Related links ────────────────────────────────── */
.related-block { background:var(--accent-light); border:1px solid var(--border); border-radius:var(--radius); padding:1.5rem; margin-bottom:1.5rem; }
.related-block h2 { font-family:var(--font-display); font-size:1.1rem; color:var(--accent); margin-bottom:1rem; }
.related-links { display:flex; flex-wrap:wrap; gap:0.5rem; }
.related-links a { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:0.4rem 0.85rem; font-size:0.85rem; text-decoration:none; color:var(--ink); font-weight:500; transition:border-color 0.15s,background 0.15s; }
.related-links a:hover { border-color:var(--accent); background:white; }

/* ── Product Rail ─────────────────────────────────── */
.product-rail { position:sticky; top:76px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.rail-header { background:var(--amber); padding:1rem 1.25rem; display:flex; flex-direction:column; gap:0.1rem; }
.rail-icon { font-size:1.2rem; }
.rail-title { font-weight:700; font-size:1rem; color:#fff; }
.rail-sub { font-size:0.78rem; color:rgba(255,255,255,0.85); }
.rail-items { max-height:calc(100vh - 180px); overflow-y:auto; padding:0.5rem; display:flex; flex-direction:column; gap:0.4rem; }
.rail-items::-webkit-scrollbar { width:4px; }
.rail-items::-webkit-scrollbar-track { background:var(--surface-alt); }
.rail-items::-webkit-scrollbar-thumb { background:var(--border); border-radius:2px; }
.product-card { display:grid; grid-template-columns:2rem 1fr auto; align-items:center; gap:0.6rem; padding:0.7rem 0.75rem; background:var(--surface-alt); border:1px solid var(--border); border-radius:8px; text-decoration:none; color:var(--ink); transition:background 0.15s,border-color 0.15s,transform 0.1s; }
.product-card:hover { background:var(--accent-light); border-color:var(--accent); transform:translateX(2px); }
.product-icon { font-size:1.3rem; text-align:center; }
.product-info { display:flex; flex-direction:column; gap:0.1rem; min-width:0; }
.product-label { font-size:0.82rem; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.product-desc { font-size:0.72rem; color:var(--ink-light); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.3; }
.product-cta { font-size:0.7rem; font-weight:600; color:var(--amber); white-space:nowrap; flex-shrink:0; }
.rail-disclaimer { font-size:0.65rem; color:var(--ink-light); padding:0.6rem 0.75rem; border-top:1px solid var(--border); background:var(--surface-alt); line-height:1.4; }

/* ── Homepage ─────────────────────────────────────── */
.home-hero { background:linear-gradient(160deg,var(--accent) 0%,#0f3d22 100%); padding:4rem 1.5rem; text-align:center; color:white; }
.home-hero h1 { font-family:var(--font-display); font-size:clamp(2rem,5vw,3.5rem); font-weight:600; line-height:1.15; margin-bottom:1rem; }
.home-hero h1 em { font-style:italic; color:#a8e6c0; }
.home-hero p { font-size:1.15rem; opacity:0.9; max-width:600px; margin:0 auto 2rem; line-height:1.6; }

/* ── Hub / trip grids ─────────────────────────────── */
.hub-section { max-width:1200px; margin:0 auto; padding:3rem 1.5rem; }
.hub-section h2 { font-family:var(--font-display); font-size:1.6rem; color:var(--ink); margin-bottom:1.5rem; }
.hub-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1rem; }
.hub-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1.5rem; text-decoration:none; color:var(--ink); display:flex; flex-direction:column; gap:0.5rem; transition:box-shadow 0.15s,transform 0.15s,border-color 0.15s; }
.hub-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-2px); border-color:var(--accent); }
.hub-card-emoji { font-size:2rem; }
.hub-card-label { font-weight:700; font-size:1.1rem; }
.hub-card-desc { font-size:0.875rem; color:var(--ink-mid); line-height:1.5; }
.hub-card-cta { font-size:0.82rem; font-weight:600; color:var(--accent); margin-top:auto; padding-top:0.5rem; }
.trip-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1rem; margin-bottom:2.5rem; }
.trip-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1.25rem; text-decoration:none; color:var(--ink); display:flex; flex-direction:column; gap:0.4rem; transition:box-shadow 0.15s,transform 0.15s,border-color 0.15s; }
.trip-card:hover { box-shadow:var(--shadow); transform:translateY(-2px); border-color:var(--accent); }
.trip-card-emoji { font-size:1.6rem; }
.trip-card-label { font-weight:600; font-size:1rem; }
.trip-card-desc { font-size:0.82rem; color:var(--ink-mid); }
.trip-card-arrow { font-size:0.8rem; color:var(--accent); font-weight:600; margin-top:auto; padding-top:0.5rem; }

/* ── Prose pages ──────────────────────────────────── */
.prose-page { max-width:740px; margin:0 auto; padding:3rem 1.5rem; }
.prose-page h1 { font-family:var(--font-display); font-size:2rem; color:var(--accent); margin-bottom:1.25rem; }
.prose-page h2 { font-family:var(--font-display); font-size:1.3rem; color:var(--ink); margin:1.75rem 0 0.75rem; }
.prose-page p, .prose-page li { font-size:0.95rem; line-height:1.7; color:var(--ink-mid); margin-bottom:0.75rem; }

/* ── Affiliate disclosure ─────────────────────────── */
.affiliate-disclosure { font-size:0.78rem; color:var(--ink-light); line-height:1.5; }
.affiliate-disclosure a { color:var(--accent); }

/* ── Footer ───────────────────────────────────────── */
.site-footer { background:var(--ink); color:rgba(255,255,255,0.7); padding:2.5rem 1.5rem; margin-top:4rem; text-align:center; }
.footer-inner { max-width:1200px; margin:0 auto; display:flex; flex-direction:column; gap:1rem; align-items:center; }
.footer-logo .logo-247 { color:#a8e6c0; font-size:1.1rem; }
.footer-logo .logo-pack { color:rgba(255,255,255,0.7); font-size:0.9rem; }
.footer-related { text-align:center; }
.footer-related h3 { font-size:0.8rem; font-weight:600; color:rgba(255,255,255,0.5); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:0.5rem; }
.footer-related-links { display:flex; flex-wrap:wrap; gap:0.75rem; justify-content:center; }
.footer-related-links a { color:rgba(255,255,255,0.6); text-decoration:none; font-size:0.8rem; }
.footer-related-links a:hover { color:white; text-decoration:underline; }
.footer-nav { display:flex; gap:1.5rem; flex-wrap:wrap; justify-content:center; }
.footer-nav a { color:rgba(255,255,255,0.6); text-decoration:none; font-size:0.82rem; }
.footer-nav a:hover { color:white; }
.footer-copy { font-size:0.75rem; color:rgba(255,255,255,0.4); }
.footer-copy a { color:rgba(255,255,255,0.4); }

/* ── Responsive ───────────────────────────────────── */
@media (max-width:900px) { .page-layout { grid-template-columns:1fr; } .product-rail { position:static; } .rail-items { max-height:none; } }
@media (max-width:640px) { .main-nav { display:none; } .page-hero { padding:2rem 1rem 1.5rem; } .hub-grid { grid-template-columns:1fr; } }

/* ── Ad slot ──────────────────────────────────────────────────────────────── */
.ad-slot { min-height: 0; margin: 1rem 0; }

/* ── Travel insurance CTA ─────────────────────────────────────────────────── */
.insurance-cta {
  background: var(--accent-light);
  border: 1px solid var(--accent);
  border-left: 4px solid var(--accent);
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}
.adventure-cta {
  background: #fff8e6;
  border-color: var(--amber);
  border-left-color: var(--amber);
}
.insurance-cta-inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.insurance-icon { font-size: 1.75rem; flex-shrink: 0; }
.insurance-text { flex: 1; min-width: 200px; }
.insurance-text h3 { font-size: 0.95rem; font-weight: 700; color: var(--ink); margin-bottom: 0.25rem; }
.insurance-text p { font-size: 0.82rem; color: var(--ink-mid); line-height: 1.4; margin: 0; }
.insurance-links { display: flex; gap: 0.5rem; flex-wrap: wrap; flex-shrink: 0; }
.insurance-btn {
  display: inline-block;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.insurance-btn:hover { opacity: 0.85; }
.insurance-btn.primary { background: var(--accent); color: white; }
.adventure-cta .insurance-btn.primary { background: var(--amber); }
.insurance-btn.secondary { background: white; color: var(--ink); border: 1px solid var(--border); }

/* ── Booking CTA ──────────────────────────────────────────────────────────── */
.booking-cta {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem 1.5rem;
  margin-bottom: 1.5rem;
}
.booking-cta-inner {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.booking-col {
  flex: 1;
  min-width: 180px;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.booking-icon { font-size: 1.2rem; }
.booking-link {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
}
.booking-link:hover { text-decoration: underline; }
