/* ============================================
   Lahore Yatra Club — Design System
   ============================================ */

@import url('fonts.css');

:root {
  /* Colors */
  --deep-green: #17231D;
  --deep-green-soft: #1c2b22;
  --deep-green-softer: #1e2f24;
  --cream: #F5F0E7;
  --cream-dim: #EDE6D8;
  --gold: #B8793F;
  --gold-warm: #C7A35B;
  --text-main: #211c14;
  --text-light: #F8F5EE;
  --text-muted: #665f54;
  --text-light-muted: rgba(248,245,238,0.72);
  --line: rgba(23,35,29,0.12);
  --line-light: rgba(248,245,238,0.14);

  /* Type */
  --font-display: 'DM Serif Display', 'Cormorant Garamond', serif;
  --font-serif: 'Cormorant Garamond', serif;
  --font-body: 'Manrope', -apple-system, sans-serif;

  /* Spacing */
  --container: 74rem;
  --gutter: 2rem;

  /* Radius & elevation */
  --radius-btn: 8px;
  --radius-card: 6px;
  --shadow-sm: 0 2px 8px -2px rgba(23,35,29,0.12);
  --shadow-md: 0 10px 24px -10px rgba(23,35,29,0.22);
  --shadow-lg: 0 20px 36px -16px rgba(23,35,29,0.3);
  --ease-smooth: cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  background: var(--cream);
  color: var(--text-main);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.15;
  margin: 0;
}
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

.container {
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
@media (max-width: 767px) {
  .container { padding-inline: 1.25rem; }
}

.eyebrow {
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.95rem 2rem;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: var(--radius-btn);
  cursor: pointer;
  transition: transform 0.35s var(--ease-smooth), box-shadow 0.35s var(--ease-smooth), background 0.25s ease, border-color 0.25s ease;
  border: 1px solid transparent;
  will-change: transform;
}
.btn:active { transform: translateY(0) scale(0.97); transition-duration: 0.12s; }
.btn-gold {
  background: var(--gold-warm);
  color: var(--deep-green);
  box-shadow: var(--shadow-sm);
}
.btn-gold:hover { background: var(--gold); transform: translateY(-3px); box-shadow: var(--shadow-md); }
.btn-gold:active { box-shadow: var(--shadow-sm); }
.btn-outline {
  border-color: rgba(248,245,238,0.5);
  color: var(--text-light);
}
.btn-outline:hover {
  border-color: var(--text-light);
  background: rgba(248,245,238,0.08);
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.btn-outline-dark {
  border-color: rgba(23,35,29,0.3);
  color: var(--text-main);
}
.btn-outline-dark:hover {
  border-color: var(--deep-green);
  background: rgba(23,35,29,0.05);
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
@media (prefers-reduced-motion: reduce) {
  .btn, .btn-gold, .btn-outline, .btn-outline-dark { transition: background 0.2s ease, border-color 0.2s ease; }
  .btn:hover, .btn:active { transform: none; }
}

/* ============ Header ============ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(23,35,29,0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line-light);
}
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: 1.1rem;
}
.logo {
  font-family: var(--font-display);
  font-size: 1.3rem;
  color: var(--text-light);
  letter-spacing: 0.01em;
}
.nav-links {
  display: flex;
  gap: 2.2rem;
}
.nav-links a {
  font-size: 0.92rem;
  color: rgba(248,245,238,0.85);
  transition: color 0.25s ease;
  position: relative;
}
.nav-links a:hover { color: var(--gold-warm); }
.nav-links a.active { color: var(--gold-warm); }
.header-actions { display: flex; align-items: center; gap: 1.5rem; }
.header-cta { padding: 0.7rem 1.4rem; font-size: 0.85rem; }
.nav-toggle {
  display: none;
  background: none;
  border: none;
  color: var(--text-light);
  font-size: 1.5rem;
  cursor: pointer;
}
@media (max-width: 400px) {
  .site-header .container { gap: 0.6rem; padding-inline: 1rem; }
  .logo { font-size: 1.02rem; white-space: nowrap; }
  .header-actions { gap: 0.5rem; }
  .header-cta { padding: 0.5rem 0.7rem; font-size: 0.72rem; white-space: nowrap; }
}
@media (max-width: 300px) {
  .header-cta { display: none; }
}

/* ============ Hero ============ */
.hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
  color: var(--text-light);
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(23,35,29,0.35) 0%, rgba(23,35,29,0.15) 35%, rgba(23,35,29,0.85) 100%);
}
.hero-content {
  position: relative;
  z-index: 1;
  padding-block: 4rem 5rem;
  max-width: 42rem;
}
.hero-content .eyebrow { color: var(--gold-warm); margin-bottom: 1.2rem; display: block; }
.hero-content h1 {
  font-size: clamp(2.4rem, 5.5vw, 4rem);
  margin-bottom: 1.4rem;
}
.hero-content p {
  font-size: 1.15rem;
  color: var(--text-light-muted);
  max-width: 34rem;
  margin-bottom: 2.2rem;
  font-family: var(--font-serif);
}
.hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
.hero-meta {
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(248,245,238,0.55);
}

/* Page hero (interior pages) */
.page-hero {
  position: relative;
  min-height: 52vh;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
  color: var(--text-light);
}
.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(23,35,29,0.45) 0%, rgba(23,35,29,0.85) 100%);
}
.page-hero .hero-content { padding-block: 3rem 3.5rem; max-width: 46rem; }
.page-hero h1 { font-size: clamp(2.1rem, 4.5vw, 3.2rem); }

/* ============ Section basics ============ */
.section { padding-block: 5.5rem; }
.section-tight { padding-block: 3.5rem; }
.section-dark { background: var(--deep-green); color: var(--text-light); }
.section-cream { background: var(--cream); }
.section-cream-dim { background: var(--cream-dim); }
.section-header {
  max-width: 40rem;
  margin-bottom: 3rem;
}
.section-header h2 {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  margin-block: 0.8rem 1rem;
  color: var(--text-main);
}
.section-dark .section-header h2 { color: var(--text-light); }
.section-header p {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  color: var(--text-muted);
}
.section-dark .section-header p { color: var(--text-light-muted); }
.section-header.center { text-align: center; margin-inline: auto; }

/* ============ One Trip Steps ============ */
.steps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
  gap: 2.5rem;
}
.step-card { display: flex; flex-direction: column; gap: 1rem; }
.step-media {
  aspect-ratio: 3/4;
  border-radius: var(--radius-card);
  background-size: cover;
  background-position: center;
  overflow: hidden;
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.step-card:hover .step-media { transform: translateY(-6px); box-shadow: 0 22px 40px -18px rgba(23,35,29,0.35); }
.step-num { font-family: var(--font-display); font-size: 2rem; color: var(--gold); opacity: 0.55; line-height: 1; }
.step-card h3 { font-size: 1.3rem; margin-top: 0.2rem; }
.step-card p { color: var(--text-muted); font-size: 0.95rem; }

/* ============ Discover / Explore grid ============ */
.discover-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}
.discover-tile {
  position: relative;
  min-height: 26rem;
  flex: 1 1 22rem;
  border-radius: var(--radius-card);
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.discover-tile:hover { transform: translateY(-4px); box-shadow: 0 24px 44px -20px rgba(23,35,29,0.45); }
.discover-tile.wide { flex-basis: 100%; min-height: 30rem; }
.discover-tile-overlay {
  width: 100%;
  padding: 2rem;
  background-image: linear-gradient(180deg, rgba(23,35,29,0) 0%, rgba(23,35,29,0.78) 100%);
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.discover-tile-overlay h3 { font-size: 1.7rem; color: var(--text-light); }
.discover-tile.placeholder {
  background: linear-gradient(135deg, rgba(199,163,91,0.10) 0%, transparent 55%), var(--deep-green-soft);
  border: 1px solid rgba(199,163,91,0.15);
}
.discover-tile.placeholder .discover-tile-overlay { background: none; padding: 2rem; }
.discover-tile.placeholder h3 { font-size: 1.5rem; }
.pending-badge {
  display: inline-flex;
  width: fit-content;
  padding: 0.32rem 0.75rem;
  border: 1px solid rgba(199,163,91,0.35);
  border-radius: 999px;
  background: rgba(199,163,91,0.08);
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(248,245,238,0.75);
  margin-bottom: 0.4rem;
}

/* ============ Curated cards ============ */
.curated-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(17rem, 100%), 1fr));
  gap: 2rem;
}
.curated-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  overflow: hidden;
  transition: transform 0.35s var(--ease-smooth), box-shadow 0.35s var(--ease-smooth);
}
.curated-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.curated-card-img {
  aspect-ratio: 4/3;
  background-size: cover;
  background-position: center;
  transition: transform 0.4s ease;
}
.curated-card:hover .curated-card-img { transform: scale(1.03); }
.curated-card-body { padding: 1.5rem; }
.curated-card-body h3 { font-size: 1.2rem; margin-bottom: 0.5rem; }
.curated-card-body p { color: var(--text-muted); font-size: 0.92rem; }

/* ============ Journey / itinerary (asymmetric editorial) ============ */
.journey-wrap { display: flex; flex-direction: column; gap: 3.5rem; }
.journey-intro { max-width: 34rem; }
.journey-intro p { color: var(--text-light-muted); font-family: var(--font-serif); font-size: 1.05rem; margin-top: 1rem; }
.journey-timeline { display: flex; flex-direction: column; gap: 5rem; }
.journey-day {
  display: flex;
  gap: 3rem;
  flex-wrap: wrap;
  align-items: center;
}
.journey-day.reverse { flex-direction: row-reverse; }
.journey-media {
  flex: 1 1 26rem;
  aspect-ratio: 4/5;
  min-height: 24rem;
  border-radius: var(--radius-card);
  background-size: cover;
  background-position: center;
  position: relative;
  transition: transform 0.5s ease;
}
.journey-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, rgba(23,35,29,0.05) 0%, rgba(23,35,29,0.3) 100%);
}
.journey-day:hover .journey-media { transform: scale(1.02); }
.journey-text { flex: 1 1 20rem; position: relative; padding-inline-start: 0.5rem; }
.journey-ghost {
  position: absolute;
  top: -3.2rem;
  left: -0.3rem;
  font-family: var(--font-display);
  font-size: 7rem;
  color: var(--gold-warm);
  opacity: 0.15;
  line-height: 1;
  z-index: 0;
}
.journey-text > * { position: relative; z-index: 1; }
.journey-label { font-size: 0.75rem; letter-spacing: 0.12em; color: var(--gold-warm); text-transform: uppercase; }
.journey-text h3 { font-size: 2.1rem; color: var(--text-light); margin-block: 0.5rem 0.75rem; }
.journey-text p { font-size: 1.02rem; color: var(--text-light-muted); max-width: 26rem; }

/* ============ Testimonial / quote ============ */
.pull-quote {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  color: var(--text-main);
  max-width: 42rem;
  line-height: 1.4;
}
.pull-quote-attr { margin-top: 1.5rem; font-family: var(--font-body); font-style: normal; font-size: 0.9rem; color: var(--text-muted); letter-spacing: 0.02em; }

/* ============ Two-column feature ============ */
.feature-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: center;
}
@media (max-width: 900px) { .feature-split { grid-template-columns: 1fr; } }
.feature-split img, .feature-split .feature-media {
  border-radius: var(--radius-card);
  aspect-ratio: 4/5;
  background-size: cover;
  background-position: center;
}
.feature-split.reverse { direction: rtl; }
.feature-split.reverse > * { direction: ltr; }

/* ============ Simple list / check-style ============ */
.detail-list { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.5rem; }
.detail-list li { display: flex; gap: 0.85rem; align-items: flex-start; font-size: 0.98rem; }
.detail-list li::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--gold);
  margin-top: 0.55rem;
  flex-shrink: 0;
}

/* ============ Form ============ */
.contact-form { display: flex; flex-direction: column; gap: 1.4rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
@media (max-width: 700px) { .form-row { grid-template-columns: 1fr; } }
.field label {
  display: block;
  font-size: 0.8rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 0.5rem;
}
.field input, .field select, .field textarea {
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: #fff;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--text-main);
  transition: border-color 0.25s ease;
}
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none;
  border-color: var(--gold);
}
.field textarea { resize: vertical; min-height: 8rem; }

/* Honeypot (spam trap) — visually hidden, still reachable by bots that fill everything */
.hp-field {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* Booking type selector */
.booking-type-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.75rem;
}
.pill {
  position: relative;
  cursor: pointer;
}
.pill input {
  position: absolute;
  opacity: 0;
  width: 100%; height: 100%;
  margin: 0;
  cursor: pointer;
}
.pill span {
  display: inline-flex;
  padding: 0.7rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-muted);
  background: #fff;
  transition: all 0.25s ease;
}
.pill input:checked + span {
  background: var(--deep-green);
  border-color: var(--deep-green);
  color: var(--text-light);
}
.pill input:focus-visible + span {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

/* Conditional field groups */
.field-group {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  pointer-events: none;
  margin: 0 !important;
  transition: max-height 0.35s ease, opacity 0.3s ease, margin 0.35s ease;
}
.field-group.is-visible {
  max-height: 40rem;
  opacity: 1;
  pointer-events: auto;
  margin-bottom: 1.4rem !important;
}

/* Checkbox grid (experiences of interest) */
.checkbox-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
  gap: 0.7rem;
  margin-top: 0.5rem;
}
.checkbox-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.92rem;
  color: var(--text-main);
  padding: 0.6rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: #fff;
  cursor: pointer;
  transition: border-color 0.25s ease;
}
.checkbox-item:has(input:checked) {
  border-color: var(--gold);
  background: rgba(184,121,63,0.06);
}
.checkbox-item input { accent-color: var(--gold); width: 1rem; height: 1rem; flex-shrink: 0; }

/* Form status + submit state */
.form-status {
  font-size: 0.92rem;
  margin-top: 0.5rem;
  min-height: 1.2rem;
}
.form-status.success { color: #3f6b4a; }
.form-status.error { color: #a13d3d; }
.btn[disabled] { opacity: 0.6; cursor: not-allowed; pointer-events: none; }

/* ============ Contact info cards ============ */
.info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)); gap: 2rem; }
.info-card { padding: 1.75rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); }
.info-card .eyebrow { display: block; margin-bottom: 0.6rem; }
.info-card p { color: var(--text-muted); font-size: 0.95rem; }

/* ============ Footer ============ */
.site-footer { background: var(--deep-green); color: var(--text-light-muted); padding-block: 4rem 2rem; }
.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--line-light);
}
.footer-grid > * { min-width: 0; }
@media (max-width: 800px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem 1.5rem; } }
@media (max-width: 540px) { .footer-grid { grid-template-columns: 1fr; gap: 2.25rem; } }
.footer-brand .logo { margin-bottom: 1rem; display: block; }
.footer-brand p { font-size: 0.92rem; max-width: 22rem; }
.footer-col h3 {
  font-family: var(--font-body);
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold-warm);
  margin-bottom: 1rem;
  font-weight: 600;
}
.footer-col ul { display: flex; flex-direction: column; gap: 0.7rem; }
.footer-col a { font-size: 0.92rem; transition: color 0.25s ease; overflow-wrap: anywhere; }
.footer-col a:hover { color: var(--text-light); }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 1.75rem;
  font-size: 0.82rem;
  color: rgba(248,245,238,0.5);
  flex-wrap: wrap;
  gap: 1rem;
}

/* ============ Utility ============ */
.text-center { text-align: center; }
.mt-2 { margin-top: 2rem; }
.divider { height: 1px; background: var(--line); margin-block: 4rem; }
.section-dark .divider { background: var(--line-light); }

/* ============ Long-form article / prose content ============ */
.prose { max-width: 42rem; }
.prose + .prose { margin-top: 2.5rem; }
.prose h2 {
  font-size: 1.6rem;
  color: var(--text-main);
  margin-bottom: 1rem;
}
.section-dark .prose h2 { color: var(--text-light); }
.prose h3 {
  font-size: 1.25rem;
  color: var(--text-main);
  margin-block: 1.75rem 0.75rem;
}
.section-dark .prose h3 { color: var(--text-light); }
.prose p {
  font-family: var(--font-serif);
  font-size: 1.08rem;
  line-height: 1.75;
  color: var(--text-muted);
  margin-bottom: 1.25rem;
}
.section-dark .prose p { color: var(--text-light-muted); }
.prose p:last-child { margin-bottom: 0; }
.prose strong { color: var(--text-main); font-weight: 600; }
.section-dark .prose strong { color: var(--text-light); }

/* Journal */
.journal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(17rem, 100%), 1fr));
  gap: 2rem;
}
.journal-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  color: var(--text-main);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  overflow: hidden;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.journal-card:hover { transform: translateY(-4px); box-shadow: 0 20px 36px -18px rgba(23,35,29,0.3); }
.journal-card-img {
  aspect-ratio: 3/2;
  background-size: cover;
  background-position: center;
}
.journal-card-body { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.6rem; flex: 1; }
.journal-card-body .eyebrow { font-size: 0.68rem; }
.journal-card-body h3 { color:var(--text-main); font-size: 1.3rem; line-height: 1.35; }
.journal-card-body p { color: var(--text-muted); font-size: 0.92rem; flex: 1; }
.journal-card-body .read-more { font-size: 0.85rem; font-weight: 600; color: var(--gold); margin-top: 0.4rem; }

/* Journal article page */
.article-hero {
  padding-block: 3rem 2rem;
  max-width: 44rem;
  margin-inline: auto;
  text-align: center;
}
.article-hero .eyebrow { display: block; margin-bottom: 1rem; }
.article-hero h1 { font-size: clamp(1.9rem, 4vw, 2.6rem); margin-bottom: 1rem; }
.article-hero .article-meta { font-size: 0.85rem; color: var(--text-muted); letter-spacing: 0.04em; }
.article-cover {
  max-width: 64rem;
  margin: 0 auto 3rem;
  aspect-ratio: 16/8;
  background-size: cover;
  background-position: center;
  border-radius: var(--radius-card);
}
.article-body { max-width: 42rem; margin-inline: auto; }
.article-body .prose p { color: var(--text-main); opacity: 0.82; }
.article-nav {
  max-width: 42rem;
  margin: 3rem auto 0;
  padding-top: 2rem;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.article-nav a { font-size: 0.9rem; font-weight: 600; color: var(--gold); }

.fact-box {
  background: var(--cream-dim);
  border-left: 3px solid var(--gold);
  padding: 1.25rem 1.5rem;
  margin: 2rem 0;
  max-width: 42rem;
}
.fact-box h3 {
  font-family: var(--font-body);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.6rem;
  font-weight: 700;
}
.fact-box p { font-family: var(--font-body); font-size: 0.92rem; color: var(--text-main); line-height: 1.6; margin: 0; }

/* Mobile nav drawer */
.mobile-nav {
  display: none;
  position: fixed;
  inset: 0;
  background: var(--deep-green);
  z-index: 200;
  padding: 2rem;
  flex-direction: column;
  gap: 1.5rem;
}
.mobile-nav.open { display: flex; }
.mobile-nav a { font-size: 1.2rem; color: var(--text-light); }
.mobile-nav-close { align-self: flex-end; background: none; border: none; color: var(--text-light); font-size: 1.8rem; cursor: pointer; }

@media (max-width: 767px) {
  .journey-day, .journey-day.reverse { flex-direction: column; }
  .journey-media { flex-basis: auto; min-height: 0; width: 100%; }
  .journey-text { flex-basis: auto; width: 100%; }
  .journey-ghost { font-size: 5rem; top: -2.2rem; }
  .journey-text h3 { font-size: 1.6rem; }
  .hero { min-height: 100vh; }
}

/* Services and the complete destination menu */
.nav-links { gap:1.3rem; align-items:center; }
.nav-dropdown { position:relative; color:var(--text-light); font-size:.92rem; }
.nav-dropdown summary,.mobile-discover summary { cursor:pointer; padding:.4rem 0; }
.dropdown-panel { position:absolute; top:100%; right:0; width:260px; padding:1rem; background:var(--deep-green); border:1px solid var(--line-light); box-shadow:var(--shadow-lg); max-height:70vh; overflow:auto; }
.dropdown-panel a { display:block; padding:.6rem .5rem; }
.nav-links a:focus-visible,summary:focus-visible,button:focus-visible,.btn:focus-visible { outline:2px solid var(--gold-warm); outline-offset:5px; }
.mobile-nav { overflow-y:auto; }
.mobile-discover { width:100%; color:var(--text-light); }
.mobile-discover a { display:block; padding:.55rem 1rem; font-size:1rem; }
.footer-grid { grid-template-columns:1.5fr repeat(2,1fr); gap:3rem; }
.service-hero h1 { max-width:850px; }
.service-hero .btn { margin-top:1.5rem; }
.service-back { display:block; margin-bottom:1.4rem; font-size:.8rem; color:var(--text-light-muted); }
.service-copy { margin-top:1.5rem; color:var(--text-muted); font-size:1.05rem; line-height:1.85; }
.service-feature-image { width:100%; height:440px; object-fit:cover; border-radius:var(--radius-card); }
.services-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem; }
.service-card { border:1px solid var(--line); background:#faf7f1; border-radius:var(--radius-card); overflow:hidden; }
.service-card img { width:100%; height:320px; object-fit:cover; transition:transform .4s; }
.service-card:hover img { transform:scale(1.025); }
.service-card-body { padding:2rem; }
.service-card h2 { font-size:2.4rem; margin:.65rem 0 1rem; }
.service-card p { color:var(--text-muted); margin-bottom:1.5rem; }
.service-benefits,.service-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.service-benefits article { padding:1.5rem 0; border-top:1px solid var(--line); }
.service-benefits h3 { font-size:1.65rem; margin:.9rem 0; }
.service-benefits p { color:var(--text-muted); }
.service-gallery figure { margin:0; }
.service-gallery img { width:100%; height:300px; object-fit:cover; border-radius:var(--radius-card); }
.service-gallery figcaption { padding-top:1rem; color:var(--text-muted); font-size:.85rem; }
.service-faq { max-width:850px; }
.service-faq h2 { margin:.75rem 0 2rem; }
.service-faq details { border-top:1px solid var(--line); padding:1.3rem 0; }
.service-faq summary { cursor:pointer; font-weight:600; }
.service-faq details p { padding-top:1rem; color:var(--text-muted); }
.service-cta { background:var(--deep-green); color:var(--text-light); text-align:center; }
.service-cta h2 { font-size:clamp(2rem,4vw,3.5rem); margin:1rem 0; }
.service-cta p { max-width:620px; margin:0 auto 2rem; color:var(--text-light-muted); }
.service-cta .btn { margin:.4rem; }
@media(max-width:800px) { .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .service-benefits,.service-gallery { grid-template-columns:1fr; } .service-gallery img { height:360px; } }
@media(max-width:600px) { .services-grid,.footer-grid { grid-template-columns:1fr; } .service-card img { height:250px; } .service-card-body { padding:1.5rem; } .service-feature-image { height:300px; } .service-gallery img { height:280px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .service-card img { transition:none; } .service-card:hover img { transform:none; } }

/* Refined travel navigation and editorial utility pages */
.skip-link { position:fixed; top:8px; left:8px; z-index:400; background:var(--cream); padding:.8rem 1rem; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.header-utility { border-bottom:1px solid var(--line-light); color:var(--text-light-muted); font-size:.72rem; letter-spacing:.02em; }
.header-utility .container { padding-block:.45rem; display:flex; justify-content:space-between; gap:1rem; }
.header-utility .container>div { display:flex; gap:1.5rem; }
.header-utility a:hover { color:var(--gold-warm); }
.site-header { background:var(--deep-green); backdrop-filter:none; }
.site-header .header-main { gap:1.5rem; padding-block:1rem; }
.logo { display:flex; align-items:center; gap:.7rem; white-space:nowrap; }
.logo small { display:block; font-family:var(--font-body); text-transform:uppercase; font-size:.52rem; letter-spacing:.13em; margin-top:.2rem; color:var(--text-light-muted); }
.brand-mark { border:1px solid var(--gold-warm); color:var(--gold-warm); width:42px; height:42px; border-radius:50%; display:grid; place-items:center; font-family:var(--font-serif); font-size:1rem; }
.nav-links { gap:1.1rem; }
.nav-dropdown summary { white-space:nowrap; }
.dropdown-panel { width:290px; padding:.8rem; border-top:2px solid var(--gold-warm); }
.dropdown-panel a { font-size:.84rem; border-radius:3px; }
.dropdown-panel a:hover,.dropdown-panel a:focus-visible { background:var(--deep-green-softer); }
.nav-links .active,.mobile-nav [aria-current=page] { color:var(--gold-warm); }
.footer-intro { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding-bottom:2.5rem; margin-bottom:2.5rem; border-bottom:1px solid var(--line-light); }
.footer-intro .logo { font-size:1.8rem; margin-bottom:.8rem; }
.footer-intro p { max-width:490px; font-size:.95rem; }
.footer-grid { grid-template-columns:1fr 1.2fr 1fr 1.25fr; gap:2.2rem; }
.footer-col h3 { font-family:var(--font-body); font-size:.85rem; font-weight:600; letter-spacing:.035em; }
.company-name { font-size:.78rem; line-height:1.7; margin-bottom:1rem; color:var(--text-light); }
.footer-time { font-size:.78rem; }
.footer-highlights { display:flex; flex-wrap:wrap; gap:.7rem 1.5rem; padding-top:2.5rem; margin-top:2.5rem; border-top:1px solid var(--line-light); font-size:.78rem; }
.footer-highlights>span { color:var(--gold-warm); }
.footer-journal { margin-top:1.2rem; font-size:.8rem; }
.footer-journal summary { cursor:pointer; }
.footer-journal>div { display:flex; flex-wrap:wrap; gap:1rem; padding-top:.8rem; }
.footer-bottom { align-items:flex-start; gap:1rem; }
.footer-bottom nav { display:flex; flex-wrap:wrap; gap:.6rem 1.1rem; }
.service-hero { min-height:65vh; }
.service-hero .hero-content { margin-left:max(0px,calc((100% - var(--container))/2)); margin-right:0; max-width:790px; }
.service-hero .hero-content h1 { font-size:clamp(2.7rem,5vw,4.3rem); }
.service-feature-image { aspect-ratio:4/3!important; height:auto; object-fit:cover; }
.services-grid .service-card:last-child:nth-child(odd) { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; }
.services-grid .service-card:last-child:nth-child(odd)>a { height:100%; }
.services-grid .service-card:last-child:nth-child(odd) img { height:100%; min-height:300px; }
.service-card h2 { font-size:clamp(1.8rem,3vw,2.4rem); }
.service-gallery img { height:300px; transition:opacity .2s; }
.gallery-link { display:block; cursor:zoom-in; }
.gallery-link:hover img { opacity:.9; }
.photography-note { font-size:.76rem; margin-top:1.4rem; color:var(--text-muted); }
.photography-note a,.form-privacy a,.policy-content a,.visitor-card>a { text-decoration:underline; text-underline-offset:3px; }
.experience-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; }
.experience-link { border:1px solid var(--line); }
.experience-link img { width:100%; height:210px; object-fit:cover; }
.experience-link span { display:block; padding:1.2rem; font-family:var(--font-display); font-size:1.25rem; }
.home-service-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 2.5rem; }
.home-service-links a { display:flex; justify-content:space-between; gap:1rem; border-top:1px solid var(--line); padding:1.5rem 0; font-family:var(--font-display); font-size:1.45rem; }
.home-service-links a>span:last-child { color:var(--gold); }
.home-service-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem; margin-top:1.5rem; }
.text-link { color:var(--gold); font-size:.85rem; font-weight:600; }
.visitor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.visitor-card { padding:2rem; border:1px solid var(--line); background:#faf7f1; }
.visitor-card h2 { font-size:1.9rem; margin:.8rem 0 1rem; }
.visitor-card p { color:var(--text-muted); margin-bottom:1rem; }
.visitor-card>a { color:var(--gold); font-size:.85rem; font-weight:600; }
.policy-content { max-width:850px; }
.policy-content h1,.service-faq>h1 { font-size:clamp(2.5rem,5vw,3.7rem); margin:1rem 0; }
.policy-intro { font-family:var(--font-serif); font-size:1.35rem; color:var(--text-muted); margin-bottom:3rem; }
.policy-content>section { border-top:1px solid var(--line); padding:1.7rem 0; }
.policy-content h2 { font-size:1.65rem; margin-bottom:.9rem; }
.policy-content p { color:var(--text-muted); line-height:1.85; }
.policy-contact { margin-top:1.5rem; }
.service-faq>.service-copy { margin-bottom:2rem; }
.form-privacy { font-size:.78rem; color:var(--text-muted); }
.tile-more { display:block; font-size:.75rem; color:var(--text-light-muted); padding-top:.6rem; }
[id] { scroll-margin-top:150px; }
.photo-viewer { padding:1rem; border:1px solid var(--line-light); background:var(--deep-green); color:var(--text-light); width:min(1100px,95vw); max-height:95vh; }
.photo-viewer::backdrop { background:rgba(0,0,0,.85); }
.photo-viewer img { max-height:75vh; width:100%; object-fit:contain; }
.photo-viewer button { background:transparent; color:var(--text-light); border:1px solid var(--line-light); font:inherit; padding:.5rem 1rem; margin-bottom:.8rem; cursor:pointer; }
.photo-viewer p { font-size:.8rem; margin-top:.8rem; }
/* Use the full navigation on laptops and desktops; collapse only when it cannot fit. */
@media(min-width:1024px) {
  .nav-links { display:flex; align-items:center; flex-shrink:0; }
  .nav-toggle { display:none; }
  .mobile-nav.open { display:none; }
}
@media(min-width:1024px) and (max-width:1199px) {
  .site-header .header-main { gap:.8rem; }
  .site-header .logo { font-size:1.1rem; gap:.5rem; }
  .site-header .brand-mark { width:34px; height:34px; }
  .nav-links { gap:.75rem; }
  .nav-links>a,.nav-dropdown summary { font-size:.8rem; }
  .header-cta { padding:.7rem .9rem; font-size:.78rem; white-space:nowrap; }
}
@media(max-width:1023px) {
  .nav-links { display:none; }
  .nav-toggle { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; line-height:1; }
}
@media(max-width:900px) { .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .experience-links { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .header-utility .container>span { display:none; } .header-utility .container>div { width:100%; justify-content:space-between; gap:.5rem; } .brand-mark { display:none; } .logo { font-size:1.08rem; } .logo small { font-size:.45rem; } .site-header .header-main { gap:.65rem; } .header-cta { font-size:.7rem; padding:.65rem .75rem; } .header-actions { gap:.65rem; } .footer-intro { flex-direction:column; align-items:flex-start; } .footer-grid { gap:2rem 1rem; } .footer-bottom { flex-direction:column; } .visitor-grid,.home-service-links { grid-template-columns:1fr; } .visitor-card { padding:1.5rem; } .services-grid .service-card:last-child:nth-child(odd) { display:block; } .services-grid .service-card:last-child:nth-child(odd) img { min-height:0; height:250px; } .experience-link img { height:150px; } .experience-link span { font-size:1rem; padding:1rem; } .mobile-nav { padding:1.25rem; gap:1rem; } .mobile-discover summary { font-size:1.2rem; } }
@media(max-width:380px) { .logo small { display:none; } .footer-grid { grid-template-columns:1fr; } }
/* Keep native image dimensions proportional as cards become narrower. */
img { height:auto; }
.curated-card>img { width:100%; height:240px; object-fit:cover; }
.section-header h1 { font-size:clamp(1.8rem,3.5vw,2.6rem); margin-block:.8rem 1rem; }
.hero { min-height:78vh; background-position:center 62%; }
.hero::before { background:linear-gradient(90deg,rgba(12,24,18,.78) 0%,rgba(12,24,18,.55) 48%,rgba(12,24,18,.1) 100%); }
.hero>.hero-content { margin-left:max(0px,calc((100% - var(--container))/2)); margin-right:0; max-width:780px; }
.hero-content p { color:rgba(255,255,255,.93); }
.hero-content .hero-meta { font-family:var(--font-body); font-size:.72rem; line-height:1.8; letter-spacing:.06em; }
@media(max-width:600px) { .hero { min-height:76svh; align-items:center; } .hero>.hero-content { padding-block:3.5rem; } .hero::before { background:linear-gradient(90deg,rgba(12,24,18,.82),rgba(12,24,18,.48)); } .hero-content .hero-meta { font-size:.65rem; } }

.service-gallery figure,.service-benefits article,.services-grid article { min-width:0; }

/* Evening editorial and a calmer, more useful footer. */
.evening-section { background:#eae4d9; }
.evening-heading { display:grid; grid-template-columns:1.1fr 1fr; gap:4rem; align-items:end; margin-bottom:2.5rem; }
.evening-heading h2 { font-size:clamp(2.2rem,4vw,3.5rem); margin:.8rem 0 0; }
.evening-heading p { color:var(--text-muted); margin-bottom:1.4rem; }
.evening-gallery { display:grid; grid-template-columns:1.35fr 1fr; gap:1.5rem; }
.evening-gallery figure { margin:0; min-width:0; }
.evening-gallery img { width:100%; height:340px; object-fit:cover; }
.evening-gallery figcaption { font-size:.82rem; padding-top:.85rem; color:var(--text-muted); }
.evening-note { font-size:.75rem; color:var(--text-muted); margin-top:1.7rem; max-width:760px; }
.site-footer { padding-top:0; overflow-x:clip; }
.footer-intro { position:relative; isolation:isolate; padding:3.5rem 0; margin-bottom:3rem; gap:2rem; }
.footer-intro::before { content:''; position:absolute; z-index:-1; inset:0 calc(-1 * var(--gutter)); background:linear-gradient(90deg,#17231d 0%,rgba(23,35,29,.94) 50%,rgba(23,35,29,.55)),url('/images/optimized/badshahi-night-real-2000-a8ad2eae04.webp') center 48%/cover; }
.footer-invitation h2 { color:var(--text-light); font-size:clamp(2.4rem,4vw,3.8rem); line-height:1.1; margin:.9rem 0 1rem; }
.footer-invitation p { max-width:470px; }
.footer-invitation-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.4rem; margin-top:1.7rem; }
.footer-whatsapp { color:var(--text-light); font-size:.85rem; border-bottom:1px solid var(--gold-warm); padding-bottom:.35rem; }
.footer-signature { display:flex; gap:1rem; align-items:center; font-family:var(--font-display); font-size:1.6rem; flex-shrink:0; color:var(--text-light); }
.footer-signature .brand-mark { width:60px; height:60px; }
.footer-signature small { display:block; font-family:var(--font-body); font-size:.55rem; letter-spacing:.1em; text-transform:uppercase; margin-top:.45rem; color:var(--text-light-muted); }
.footer-grid { grid-template-columns:1fr 1.2fr 1fr 1.35fr; gap:2rem; border-bottom:0; padding-bottom:2rem; }
.footer-col h3 { text-transform:none; letter-spacing:.02em; font-size:.85rem; }
.footer-col a { font-size:.82rem; line-height:1.6; }
.footer-contact { padding:1.5rem; border:1px solid rgba(199,163,91,.25); background:rgba(255,255,255,.025); }
.footer-contact .company-name { font-size:.7rem; }
.footer-contact li { font-size:.82rem; }
.footer-contact .footer-time { font-size:.69rem; margin-top:.6rem; }
.footer-highlights { margin-top:0; padding-top:1.5rem; gap:.65rem 1.25rem; font-size:.75rem; }
.footer-bottom { margin-top:1.5rem; border-top:1px solid var(--line-light); font-size:.72rem; }
@media(max-width:1100px) { .footer-signature { font-size:1.25rem; } .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem; } }
@media(max-width:700px) { .evening-heading { grid-template-columns:1fr; gap:1.5rem; } .evening-gallery { grid-template-columns:1fr; gap:2rem; } .evening-gallery img { height:280px; } .footer-intro { align-items:flex-start; flex-direction:column; padding-block:3rem; } .footer-signature { margin-top:1.5rem; } }
@media(max-width:540px) { .footer-grid { grid-template-columns:1fr 1fr; gap:2rem 1.25rem; } .footer-contact { grid-column:1/-1; } .footer-invitation-actions { gap:1rem; } .footer-invitation-actions .btn { padding:.85rem 1rem; font-size:.8rem; } .footer-col a { font-size:.78rem; } .footer-highlights { line-height:1.9; } }
@media(max-width:350px) { .footer-grid { grid-template-columns:1fr; } }

/* Destination-inspired navigation: deliberate disclosure, quiet movement. */
.nav-dropdown summary,.mobile-discover summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:.55rem; }
.nav-dropdown summary::-webkit-details-marker,.mobile-discover summary::-webkit-details-marker { display:none; }
.nav-dropdown summary::after,.mobile-discover summary::after { content:''; width:6px; height:6px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg); transition:transform .22s ease; margin-top:-3px; flex-shrink:0; }
.nav-dropdown[open] summary::after,.mobile-discover[open] summary::after { transform:rotate(225deg); margin-top:3px; }
.nav-dropdown summary { padding:.8rem 0; color:rgba(248,245,238,.85); }
.nav-dropdown[open]>summary { color:var(--gold-warm); }
.dropdown-panel { top:calc(100% + 9px); right:auto; left:-1rem; width:310px; max-width:calc(100vw - 3rem); background:#f5f0e7; border:1px solid rgba(23,35,29,.12); border-top:2px solid var(--gold-warm); border-radius:0 0 10px 10px; padding:.85rem; box-shadow:0 18px 45px rgba(0,0,0,.22); }
.dropdown-panel::before { content:''; position:absolute; left:0; right:0; top:-12px; height:12px; }
.dropdown-panel .dropdown-kicker { display:block; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:#75614c; padding:.6rem .65rem .8rem; border-bottom:1px solid var(--line); margin-bottom:.45rem; }
.dropdown-panel a { color:var(--deep-green); padding:.7rem .65rem; font-size:.82rem; transition:background .18s,color .18s,transform .18s; }
.dropdown-panel a:hover,.dropdown-panel a:focus-visible { color:var(--deep-green); background:#e8dfd0; transform:translateX(3px); }
.dropdown-panel a[aria-current=page] { color:#80502a; background:#e8dfd0; }
.nav-links>a { white-space:nowrap; }
.mobile-discover { border-bottom:1px solid var(--line-light); padding-bottom:.6rem; }
.mobile-discover summary { min-height:44px; }
.mobile-submenu { padding:.5rem 0; }
.mobile-submenu a { border-left:1px solid var(--gold-warm); margin-left:.3rem; }
.evening-gallery .gallery-link,.service-gallery .gallery-link { display:block; overflow:hidden; }
.evening-gallery img,.service-gallery img { transition:transform .8s cubic-bezier(.22,1,.36,1); }
@media(hover:hover) and (pointer:fine) {
 .evening-gallery .gallery-link:hover img,.service-gallery .gallery-link:hover img { transform:scale(1.035); }
}
@keyframes travel-drawer { from { opacity:1; transform:translateX(16px); } to { opacity:1; transform:translateX(0); } }
.mobile-nav.open { animation:travel-drawer .24s cubic-bezier(.22,1,.36,1); }
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
 .gallery-link:hover img,.dropdown-panel a:hover,.dropdown-panel a:focus-visible { transform:none; }
}

/* Readable text on cream, dark sections and photographic backgrounds. */
:root { --gold-ink:#865326; }
.eyebrow,.text-link,.visitor-card>a,.journal-card-body .read-more,.article-nav a,.fact-box h3 { color:var(--gold-ink); }
.section-dark .eyebrow,.service-cta .eyebrow,.site-footer .eyebrow { color:var(--gold-warm); }
.hero-content .eyebrow { color:#f1d694; }
.hero-content .service-back,.hero-content .hero-meta { color:var(--text-light); }
.hero-content h1,.hero-content p,.hero-content .eyebrow,.hero-content .service-back { text-shadow:0 1px 3px rgba(0,0,0,.35); }
.hero::before { background:linear-gradient(90deg,rgba(12,24,18,.85),rgba(12,24,18,.76) 60%,rgba(12,24,18,.38)); }
.page-hero::before { background:linear-gradient(180deg,rgba(12,24,18,.76),rgba(12,24,18,.88)); }
.discover-tile-overlay { background-image:linear-gradient(180deg,rgba(12,24,18,.72),rgba(12,24,18,.92)); }
.step-num { color:var(--gold-ink); opacity:1; }
.article-body .prose p { opacity:1; }
.footer-bottom { color:var(--text-light-muted); }
.btn-gold:hover { background:#d1ae6a; }

/* Inline editorial links use the same accessible ink as other cream-page links. */
.prose a[style*="var(--gold)"] { color:var(--gold-ink) !important; }
.section-dark .prose a[style*="var(--gold)"] { color:var(--gold-warm) !important; }

/* Cream cards own their palette even when placed inside a dark section. */
.journal-card .eyebrow { color:var(--gold-ink); }
.journal-card:focus-visible { outline:3px solid var(--gold-warm); outline-offset:4px; }
.journal-card-img { width:100%; object-fit:cover; }
.journal-card-body { padding:1.65rem; }
.journal-card-body h3 { text-wrap:balance; }
.hero-content h1,.section-header h2 { text-wrap:balance; }
.journal-card-body p { line-height:1.75; }
.contact-form [aria-invalid=true] { border-color:#a13d3d; outline:1px solid #a13d3d; }
@media(prefers-reduced-motion:reduce) { .journal-card:hover { transform:none; } }

/* Match mobile hero preloads and avoid oversized background downloads. */
@media(max-width:700px) {
 .hero { background-image:url('/images/optimized/badshahi-panorama-real-800-9046f1f0e4.webp'); }
 [style*="--photo-small"] { background-image:var(--photo-small) !important; }
}

/* Final accessibility review: distinct keyboard focus and usable form controls. */
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible { outline:2px solid var(--deep-green); outline-offset:3px; }
a:focus-visible { outline:2px solid var(--gold-ink); outline-offset:4px; }
.site-header a:focus-visible,.mobile-nav a:focus-visible,.site-footer a:focus-visible,.section-dark a:focus-visible,.hero a:focus-visible,.page-hero a:focus-visible,.service-cta a:focus-visible { outline-color:var(--gold-warm); }
.journal-card:focus-visible { outline-color:var(--gold-ink); }
.section-dark .journal-card:focus-visible { outline-color:var(--gold-warm); }
.footer-col a { display:inline-block; min-height:24px; padding-block:3px; }
@media(max-width:700px) { .field input,.field select,.field textarea { font-size:1rem; } }
