/* =========================================================
   Mumbaixnights.com — Editorial Paper Theme
   Warm cream paper · deep ink · terracotta + indigo + mustard
   Magazine-style asymmetric layout with hand-drawn marks.
   Preserves the original site's functional sections
   (building/lift, tap-your-area towers, lit-window booking
   hours strip, 4-step flow, types, editorial prose, FAQ).
   ========================================================= */

:root {
  /* Palette — paper, ink, warm accents */
  --paper: #F2E8D1;          /* page background — warm cream */
  --paper-2: #EADFC2;        /* slightly darker surface */
  --paper-3: #E2D4B0;        /* elevated surface */
  --ink: #1A1410;            /* primary text — deep brown-black ink */
  --ink-2: #3A2F23;          /* secondary text */
  --ink-3: #6B5E48;          /* muted text */
  --line: #B8A988;           /* hairline rule */
  --line-2: #8A7C5E;         /* darker rule */
  --terra: #B43F1E;          /* primary accent — burnt terracotta */
  --terra-2: #8C2F12;       /* deep terracotta */
  --indigo: #2B3D5C;         /* secondary accent — deep indigo */
  --indigo-2: #1A2942;       /* deep indigo */
  --mustard: #C9981B;        /* highlight — mustard gold */
  --mustard-2: #A77E10;      /* deep mustard */
  --teal: #2E5F5A;           /* tertiary accent — deep teal */
  --rose: #C97062;           /* warm rose */
  --shadow: 0 2px 0 var(--line);
  --hd: 64px;
  --maxw: 1240px;

  /* Typography */
  --serif: "Playfair Display", "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans: "Inter", "Source Sans Pro", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
  --display: "Playfair Display", "Big Shoulders Display", Georgia, serif;
}

@media (min-width: 1000px) { :root { --hd: 76px; } }

*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--hd) + 18px);
}
html.lock { overflow: hidden; }
body {
  margin: 0;
  background:
    /* paper texture via subtle noise dots */
    radial-gradient(circle at 23% 17%, rgba(180,63,30,.04) 0, transparent 8%),
    radial-gradient(circle at 71% 89%, rgba(43,61,92,.04) 0, transparent 8%),
    radial-gradient(circle at 51% 51%, rgba(201,152,27,.025) 0, transparent 12%),
    var(--paper);
  color: var(--ink);
  font: 400 17px/1.62 var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--terra); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--terra-2); text-decoration-thickness: 2px; }
p { margin: 0 0 16px; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
table { border-collapse: collapse; width: 100%; }
:focus-visible { outline: 2px dashed var(--terra); outline-offset: 4px; }

/* ============= TOP BAR — newspaper masthead ============= */
.mn-top {
  background: var(--paper);
  border-bottom: 2px solid var(--ink);
  position: sticky;
  top: 0;
  z-index: 50;
  box-shadow: 0 1px 0 var(--line);
}
.mn-top-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  height: var(--hd);
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 0 18px;
  position: relative;
}
.mn-top::before {
  content: "";
  position: absolute;
  top: -2px; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--terra) 0 33%, var(--mustard) 33% 66%, var(--indigo) 66% 100%);
}
.mn-logo { display: flex; align-items: center; height: 50px; flex: 0 0 auto; }
.mn-logo img { height: 50px; width: auto; }
@media (max-width: 760px) { .mn-logo img { height: 38px; } }

.mn-nav {
  display: flex;
  gap: 2px;
  margin-left: auto;
  align-items: center;
}
.mn-nav a {
  padding: 9px 12px;
  font: 600 13px/1 var(--sans);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--ink-2);
  text-decoration: none;
  transition: color .18s, background .18s;
  position: relative;
}
.mn-nav a::after {
  content: "";
  position: absolute;
  left: 12px; right: 12px;
  bottom: 4px;
  height: 2px;
  background: var(--terra);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s;
}
.mn-nav a:hover, .mn-nav a.active { color: var(--terra); }
.mn-nav a:hover::after, .mn-nav a.active::after { transform: scaleX(1); }
.mn-nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--ink) !important;
  color: var(--paper) !important;
  padding: 11px 18px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
}
.mn-nav-cta:hover { background: var(--terra) !important; color: var(--paper) !important; }
.mn-nav-cta::after { display: none; }
.mn-burger {
  display: none;
  width: 42px; height: 42px;
  border: 1.5px solid var(--ink);
  border-radius: 8px;
  background: var(--paper);
  align-items: center;
  justify-content: center;
}
.mn-burger span, .mn-burger span::before, .mn-burger span::after {
  content: ""; display: block;
  width: 18px; height: 2px;
  background: var(--ink);
  position: relative;
}
.mn-burger span::before { position: absolute; top: -6px; }
.mn-burger span::after { position: absolute; top: 6px; }

@media (max-width: 1000px) {
  .mn-nav { display: none; }
  .mn-burger { display: inline-flex; }
  .mn-nav.open {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: var(--hd);
    left: 0; right: 0;
    background: var(--paper);
    padding: 14px 18px 24px;
    border-bottom: 2px solid var(--ink);
    gap: 4px;
    box-shadow: 0 12px 40px rgba(26,20,16,.18);
  }
  .mn-nav.open a { padding: 14px 16px; font-size: 14px; }
  .mn-nav.open a::after { display: none; }
}

/* ============= Eyebrow / Section marker ============= */
.mn-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font: 700 11px/1 var(--mono);
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--terra);
  margin-bottom: 14px;
}
.mn-eyebrow::before {
  content: "§";
  font-family: var(--serif);
  font-size: 22px;
  font-style: italic;
  color: var(--mustard);
  line-height: 1;
}
.mn-eyebrow::after {
  content: "";
  display: inline-block;
  width: 32px;
  height: 1.5px;
  background: var(--terra);
}

/* ============= HERO — newspaper masthead style ============= */
.mn-hero {
  position: relative;
  padding: 48px 18px 60px;
  border-bottom: 1.5px solid var(--ink);
  overflow: hidden;
}
.mn-hero-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 56px;
  align-items: center;
  position: relative;
  z-index: 2;
}
@media (max-width: 900px) {
  .mn-hero-inner { grid-template-columns: 1fr; gap: 36px; }
}
.mn-h1 {
  font: 700 clamp(40px, 6vw, 76px)/0.96 var(--serif);
  margin: 0 0 22px;
  color: var(--ink);
  letter-spacing: -1.5px;
}
.mn-h1 em {
  font-style: italic;
  color: var(--terra);
  font-weight: 700;
}
.mn-h1 .ink-under {
  position: relative;
  display: inline-block;
}
.mn-h1 .ink-under::after {
  content: "";
  position: absolute;
  left: -4px; right: -4px;
  bottom: 4px;
  height: 8px;
  background: var(--mustard);
  z-index: -1;
  opacity: 0.5;
  border-radius: 2px;
}
.mn-hero p.mn-lead {
  font-size: clamp(16px, 2vw, 19px);
  color: var(--ink-2);
  margin: 0 0 28px;
  max-width: 56ch;
  line-height: 1.65;
}
.mn-hero p.mn-lead::first-letter,
.mn-prose > p:first-of-type::first-letter {
  /* Drop-cap disabled on hero lead (it's a tagline) — kept for prose */
}
.mn-cta-row { display: flex; gap: 12px; flex-wrap: wrap; }

.mn-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 22px;
  border-radius: 0; /* sharp editorial corners */
  font: 700 14px/1 var(--sans);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform .15s, background .15s, color .15s;
  border: 2px solid var(--ink);
}
.mn-btn:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--ink); }
.mn-btn-ink { background: var(--ink); color: var(--paper); }
.mn-btn-ink:hover { background: var(--terra); border-color: var(--terra); color: var(--paper); box-shadow: 4px 4px 0 var(--ink); }
.mn-btn-terra { background: var(--terra); color: var(--paper); border-color: var(--terra); }
.mn-btn-terra:hover { background: var(--terra-2); border-color: var(--terra-2); }
.mn-btn-paper { background: var(--paper); color: var(--ink); }
.mn-btn-paper:hover { background: var(--paper-2); }

.mn-hero-art {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  border: 2px solid var(--ink);
  box-shadow: 10px 10px 0 var(--mustard);
}
.mn-hero-art img, .mn-hero-art video { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.15) saturate(0.92); }
.mn-hero-art::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(26,20,16,.45));
}
.mn-hero-badge {
  position: absolute;
  bottom: 18px; left: 18px; right: 18px;
  display: flex; gap: 12px; align-items: baseline;
  z-index: 2;
  color: var(--paper);
}
.mn-hero-badge strong {
  font: 700 italic 26px/1 var(--serif);
  color: var(--mustard);
}

/* ============= SECTIONS ============= */
.mn-sec { padding: 64px 18px; position: relative; }
.mn-sec-inner { max-width: var(--maxw); margin: 0 auto; }
.mn-sec-h {
  font: 700 clamp(28px, 4vw, 44px)/1.1 var(--serif);
  margin: 0 0 14px;
  color: var(--ink);
  letter-spacing: -0.8px;
}
.mn-sec-h em { color: var(--terra); font-style: italic; }
.mn-sec-h .num {
  font: 400 italic 22px/1 var(--serif);
  color: var(--mustard);
  margin-right: 14px;
  letter-spacing: 0;
}
.mn-sec-sub {
  color: var(--ink-2);
  font-size: 17px;
  margin: 0 0 32px;
  max-width: 70ch;
  line-height: 1.65;
}

.mn-sec-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 32px;
  gap: 18px;
  flex-wrap: wrap;
  padding-bottom: 14px;
  border-bottom: 1.5px dashed var(--line-2);
}
.mn-sec-head .mn-sec-h { margin: 0; }
.mn-sec-head a { color: var(--terra); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; }

/* ============= GRIDS ============= */
.mn-grid { display: grid; gap: 24px; }
.mn-grid-2 { grid-template-columns: repeat(2, 1fr); }
.mn-grid-3 { grid-template-columns: repeat(3, 1fr); }
.mn-grid-4 { grid-template-columns: repeat(4, 1fr); }
.mn-grid-5 { grid-template-columns: repeat(5, 1fr); }
.mn-grid-6 { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 1100px) { .mn-grid-6 { grid-template-columns: repeat(4, 1fr); } .mn-grid-5 { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 900px) { .mn-grid-3, .mn-grid-4, .mn-grid-5, .mn-grid-6 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { .mn-grid-2, .mn-grid-3, .mn-grid-4, .mn-grid-5, .mn-grid-6 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .mn-grid-2, .mn-grid-3, .mn-grid-4, .mn-grid-5, .mn-grid-6 { grid-template-columns: 1fr; } }

/* ============= PROFILE CARD — magazine portrait ============= */
.mn-card {
  background: var(--paper-2);
  border: 1.5px solid var(--ink);
  overflow: hidden;
  position: relative;
  transition: transform .18s, box-shadow .18s;
  display: block;
  text-decoration: none;
  color: var(--ink);
}
.mn-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 6px 6px 0 var(--ink);
}
.mn-card-img {
  aspect-ratio: 2/3;
  overflow: hidden;
  position: relative;
  background: var(--paper-3);
  border-bottom: 1.5px solid var(--ink);
}
.mn-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; filter: sepia(0.05) saturate(0.95); }
.mn-card:hover .mn-card-img img { transform: scale(1.04); }
.mn-card-tag {
  position: absolute;
  top: 10px; left: 10px;
  background: var(--ink);
  color: var(--mustard);
  font: 700 10px/1 var(--mono);
  padding: 5px 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.mn-card-verified {
  position: absolute;
  top: 10px; right: 10px;
  background: var(--teal);
  color: var(--paper);
  font: 700 10px/1 var(--mono);
  padding: 5px 9px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.mn-card-body { padding: 14px 14px 18px; }
.mn-card-name {
  font: 700 italic 22px/1.1 var(--serif);
  color: var(--ink);
  margin: 0 0 4px;
}
.mn-card-meta {
  font: 400 12.5px/1.4 var(--mono);
  color: var(--ink-3);
  margin: 0 0 12px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}
.mn-card-rate {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-top: 10px;
  border-top: 1.5px dashed var(--line);
}
.mn-card-rate strong { color: var(--terra); font: 700 italic 20px/1 var(--serif); }
.mn-card-rate span { font: 400 11px/1 var(--mono); color: var(--ink-3); text-transform: uppercase; letter-spacing: 1px; }

/* ============= AREAS GRID — tap your area towers ============= */
.mn-areas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 14px;
}
.mn-area-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 18px;
  background: var(--paper-2);
  border: 1.5px solid var(--ink);
  transition: transform .18s, box-shadow .18s, background .18s;
  text-decoration: none;
  color: var(--ink);
}
.mn-area-link:hover {
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--terra);
  background: var(--paper-3);
}
.mn-area-link strong { font: 700 16px/1.2 var(--serif); }
.mn-area-link small { color: var(--ink-3); font: 400 11px/1.4 var(--mono); display: block; margin-top: 4px; text-transform: uppercase; letter-spacing: 0.5px; }
.mn-area-link .arr {
  font: 700 italic 22px/1 var(--serif);
  color: var(--terra);
}

/* ============= TAP YOUR AREA — TOWERS (preserved original feature) ============= */
.mn-towers {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-end;
  padding: 24px 0 12px;
  min-height: 220px;
}
.mn-tower {
  position: relative;
  width: 70px;
  background: var(--paper-2);
  border: 1.5px solid var(--ink);
  border-bottom: 3px solid var(--ink);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 8px 4px;
  cursor: pointer;
  transition: transform .15s, background .15s, box-shadow .15s;
  text-decoration: none;
  color: var(--ink);
  font: inherit;
}
.mn-tower:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 0 var(--ink);
  background: var(--paper-3);
}
.mn-tower.is-active {
  background: var(--mustard);
  transform: translateY(-6px);
  box-shadow: 0 6px 0 var(--ink);
}
.mn-tower-name {
  font: 700 11px/1.2 var(--mono);
  text-transform: uppercase;
  text-align: center;
  letter-spacing: 0.5px;
  color: var(--ink);
}
.mn-tower-h {
  font: 400 italic 18px/1 var(--serif);
  text-align: center;
  color: var(--terra);
  margin-top: 2px;
}
.mn-tower::before {
  content: "";
  position: absolute;
  top: 6px; left: 6px; right: 6px;
  height: 12px;
  background: repeating-linear-gradient(90deg, var(--ink) 0 3px, transparent 3px 6px);
  opacity: 0.4;
}
@media (max-width: 600px) { .mn-tower { width: 56px; } .mn-tower-name { font-size: 9px; } }

/* ============= BUILDING / LIGHT SWITCH (preserved original feature) ============= */
.mn-building {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 16px;
  position: relative;
}
.mn-window {
  position: relative;
  background: var(--paper-2);
  border: 1.5px solid var(--ink);
  padding: 12px;
  cursor: pointer;
  transition: transform .15s, background .15s;
  display: block;
  text-decoration: none;
  color: var(--ink);
}
.mn-window:hover, .mn-window.is-on {
  background: var(--mustard);
  transform: translateY(-4px);
  box-shadow: 0 4px 0 var(--ink);
}
.mn-window-img {
  aspect-ratio: 3/4;
  background: var(--paper-3);
  border: 1px solid var(--ink-2);
  margin-bottom: 10px;
  overflow: hidden;
}
.mn-window-img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.2) brightness(0.85); transition: filter .2s; }
.mn-window:hover .mn-window-img img, .mn-window.is-on .mn-window-img img { filter: grayscale(0) brightness(1.05); }
.mn-window-name { font: 700 italic 18px/1.1 var(--serif); color: var(--ink); }
.mn-window-meta { font: 400 11px/1 var(--mono); color: var(--ink-3); margin-top: 2px; text-transform: uppercase; letter-spacing: 0.5px; }

/* ============= PRICE TABLE ============= */
.mn-table {
  border: 2px solid var(--ink);
  background: var(--paper-2);
  overflow: hidden;
}
.mn-table th, .mn-table td {
  padding: 14px 18px;
  text-align: left;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.mn-table thead th {
  background: var(--ink);
  color: var(--mustard);
  font: 700 12px/1.3 var(--mono);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  border-bottom: none;
}
.mn-table tbody tr:hover { background: var(--paper-3); }
.mn-table td strong { color: var(--ink); font-weight: 700; }
.mn-table .mn-price { color: var(--terra); font: 700 italic 20px/1 var(--serif); }

/* ============= BOOKING HOURS STRIP (preserved original feature) ============= */
.mn-hours-list { display: flex; flex-direction: column; gap: 16px; }
.mn-hours-row {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 18px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1.5px dashed var(--line-2);
}
.mn-hours-row:last-child { border-bottom: none; }
.mn-hours-day {
  font: 700 14px/1.2 var(--mono);
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 1px;
}
.mn-hours-time {
  font: 400 13px/1.4 var(--sans);
  color: var(--ink-2);
  margin-bottom: 8px;
}
.mn-hours-time b { color: var(--terra); font-weight: 700; }
.mn-hours-strip {
  display: flex;
  gap: 2px;
  height: 22px;
}
.mn-hours-strip i {
  display: block;
  flex: 1;
  background: var(--paper-3);
  border: 1px solid var(--line);
}
.mn-hours-strip i.lit {
  background: var(--mustard);
  border-color: var(--mustard-2);
}
.mn-hours-strip i.last {
  background: var(--terra);
  border-color: var(--terra-2);
}
.mn-hours-legend {
  display: flex;
  gap: 18px;
  margin-top: 16px;
  flex-wrap: wrap;
  font: 400 11px/1 var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--ink-3);
}
.mn-hours-legend span { display: inline-flex; align-items: center; gap: 6px; }
.mn-hours-legend span::before {
  content: "";
  display: inline-block;
  width: 14px; height: 14px;
  border: 1px solid var(--ink);
}
.mn-hours-legend .l1::before { background: var(--paper-3); }
.mn-hours-legend .l2::before { background: var(--mustard); border-color: var(--mustard-2); }
.mn-hours-legend .l3::before { background: var(--terra); border-color: var(--terra-2); }

/* ============= HOW IT WORKS (4-step flow with hand-drawn arrows) ============= */
.mn-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  counter-reset: step;
  position: relative;
}
.mn-steps::before {
  content: "";
  position: absolute;
  top: 28px;
  left: 8%; right: 8%;
  height: 2px;
  background: repeating-linear-gradient(90deg, var(--ink) 0 8px, transparent 8px 16px);
  z-index: 0;
}
.mn-step {
  text-align: center;
  padding: 0 12px;
  position: relative;
  z-index: 1;
}
.mn-step-num {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--paper);
  border: 2px solid var(--ink);
  font: 700 italic 26px/1 var(--serif);
  color: var(--terra);
  margin-bottom: 14px;
}
.mn-step h3 { font: 700 italic 19px/1.2 var(--serif); margin: 0 0 6px; color: var(--ink); }
.mn-step p { color: var(--ink-2); font-size: 14.5px; line-height: 1.55; margin: 0; }
@media (max-width: 900px) { .mn-steps { grid-template-columns: repeat(2, 1fr); gap: 24px; } .mn-steps::before { display: none; } }
@media (max-width: 540px) { .mn-steps { grid-template-columns: 1fr; } }

/* ============= PROSE — magazine article body ============= */
.mn-prose { max-width: 820px; margin: 0 auto; }
.mn-prose > p:first-of-type::first-letter {
  font: 700 italic 76px/0.85 var(--serif);
  color: var(--terra);
  float: left;
  margin: 4px 12px 0 0;
}
.mn-prose p { font-size: 17.5px; line-height: 1.78; color: var(--ink-2); margin: 0 0 18px; }
.mn-prose p:first-of-type { font-size: 18.5px; }
.mn-prose h2 { font: 700 30px/1.2 var(--serif); color: var(--ink); margin: 40px 0 14px; }
.mn-prose h3 { font: 700 italic 22px/1.3 var(--serif); color: var(--terra); margin: 28px 0 10px; }
.mn-prose h4 { font: 700 16px/1.4 var(--sans); color: var(--ink); margin: 22px 0 8px; text-transform: uppercase; letter-spacing: 0.5px; }
.mn-prose a { color: var(--terra); text-decoration: underline; text-decoration-color: var(--mustard); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.mn-prose a:hover { color: var(--terra-2); }
.mn-prose strong { color: var(--ink); font-weight: 700; }
.mn-prose ul { padding-left: 22px; margin: 0 0 18px; }
.mn-prose ul li { color: var(--ink-2); margin: 0 0 8px; list-style: square; }
.mn-prose ul li::marker { color: var(--terra); }

/* ============= TWO COLUMN ============= */
.mn-2col { display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px; align-items: start; }
@media (max-width: 900px) { .mn-2col { grid-template-columns: 1fr; } }

/* ============= PROFILE DETAIL ============= */
.mn-profile-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  padding: 36px 18px;
  max-width: var(--maxw);
  margin: 0 auto;
}
@media (max-width: 900px) { .mn-profile-head { grid-template-columns: 1fr; padding: 24px 18px; } }
.mn-profile-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mn-profile-gallery .mn-pg-main { grid-column: 1 / -1; }
.mn-profile-gallery img {
  width: 100%;
  border: 1.5px solid var(--ink);
  filter: sepia(0.05);
}
.mn-profile-info { padding: 4px 0; }
.mn-profile-info h1 {
  font: 700 clamp(30px, 4.4vw, 48px)/1.05 var(--serif);
  color: var(--ink);
  margin: 0 0 6px;
  letter-spacing: -1px;
}
.mn-profile-info h1 em { color: var(--terra); font-style: italic; }
.mn-profile-info .mn-p-meta {
  color: var(--terra);
  font: 400 13px/1 var(--mono);
  margin: 0 0 18px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.mn-spec-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 18px 0 24px;
}
.mn-spec {
  background: var(--paper-2);
  border: 1.5px solid var(--ink);
  padding: 12px 14px;
}
.mn-spec small { display: block; color: var(--ink-3); font: 400 10px/1 var(--mono); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 4px; }
.mn-spec strong { color: var(--ink); font: 700 italic 18px/1 var(--serif); }

/* ============= BLOG / ARTICLE LIST ============= */
.mn-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .mn-blog-grid { grid-template-columns: 1fr; } }
.mn-blog-card {
  border: 1.5px solid var(--ink);
  overflow: hidden;
  background: var(--paper-2);
  transition: transform .18s, box-shadow .18s;
  text-decoration: none;
  color: var(--ink);
  display: block;
}
.mn-blog-card:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--terra); }
.mn-blog-card-img { aspect-ratio: 16/9; overflow: hidden; border-bottom: 1.5px solid var(--ink); }
.mn-blog-card-img img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.05); }
.mn-blog-card-body { padding: 20px; }
.mn-blog-card-body h3 { font: 700 italic 22px/1.2 var(--serif); margin: 0 0 8px; color: var(--ink); }
.mn-blog-card-body p { font-size: 14.5px; color: var(--ink-2); margin: 0; line-height: 1.55; }
.mn-blog-card-tag {
  color: var(--terra);
  font: 700 11px/1 var(--mono);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 8px;
  display: block;
}

/* ============= VIDEO GRID ============= */
.mn-video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 900px) { .mn-video-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .mn-video-grid { grid-template-columns: 1fr; } }
.mn-video {
  aspect-ratio: 9/16;
  border: 1.5px solid var(--ink);
  overflow: hidden;
  background: var(--ink);
  position: relative;
}
.mn-video video { width: 100%; height: 100%; object-fit: cover; }
.mn-video-cap {
  position: absolute;
  bottom: 8px; left: 10px; right: 10px;
  color: var(--paper);
  font: 700 13px/1 var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-shadow: 0 1px 4px rgba(0,0,0,.6);
}

/* ============= CATEGORIES ============= */
.mn-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.mn-cat-card {
  background: var(--paper-2);
  border: 1.5px solid var(--ink);
  padding: 20px;
  text-align: left;
  transition: transform .18s, box-shadow .18s, background .18s;
  text-decoration: none;
  color: var(--ink);
  display: block;
  position: relative;
}
.mn-cat-card:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--mustard); background: var(--paper-3); }
.mn-cat-card::before {
  content: "✦";
  position: absolute;
  top: 14px; right: 16px;
  font-family: var(--serif);
  font-size: 18px;
  color: var(--terra);
}
.mn-cat-card h3 { font: 700 italic 20px/1.2 var(--serif); color: var(--ink); margin: 0 0 6px; }
.mn-cat-card p { font-size: 13.5px; color: var(--ink-3); margin: 0 0 10px; line-height: 1.5; }
.mn-cat-card span { color: var(--terra); font: 700 12px/1 var(--mono); text-transform: uppercase; letter-spacing: 1px; }

/* ============= EEAT BLOCK — newspaper masthead trust page ============= */
.mn-eeat {
  background:
    repeating-linear-gradient(45deg, transparent 0 12px, rgba(180,63,30,.03) 12px 13px),
    var(--paper-2);
  border: 2px solid var(--ink);
  padding: 40px;
  margin: 64px auto;
  max-width: var(--maxw);
  position: relative;
}
.mn-eeat::before {
  content: "";
  position: absolute;
  top: -2px; bottom: -2px;
  left: 0; width: 6px;
  background: var(--terra);
}
.mn-eeat::after {
  content: "";
  position: absolute;
  top: -2px; bottom: -2px;
  right: 0; width: 6px;
  background: var(--indigo);
}
.mn-eeat h2 { font: 700 italic 32px/1.15 var(--serif); color: var(--ink); margin: 0 0 10px; text-align: center; }
.mn-eeat h2 em { color: var(--terra); font-style: italic; }
.mn-eeat p.lead { color: var(--ink-2); text-align: center; max-width: 70ch; margin: 0 auto 32px; font-size: 16px; line-height: 1.6; }
.mn-eeat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
@media (max-width: 900px) { .mn-eeat-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .mn-eeat-grid { grid-template-columns: 1fr; } }
.mn-eeat-card {
  background: var(--paper);
  border: 1.5px solid var(--ink);
  padding: 24px 18px;
  text-align: center;
  position: relative;
}
.mn-eeat-card .mn-eeat-ic {
  width: 60px; height: 60px;
  margin: 0 auto 14px;
  display: flex;
  align-items: center; justify-content: center;
  border: 2px solid var(--ink);
  border-radius: 50%;
  font: 700 italic 28px/1 var(--serif);
  color: var(--terra);
  background: var(--paper-2);
}
.mn-eeat-card h3 { font: 700 italic 19px/1.2 var(--serif); margin: 0 0 8px; color: var(--ink); }
.mn-eeat-card p { color: var(--ink-2); font-size: 14px; line-height: 1.55; margin: 0; }

/* ============= CONTACT ============= */
.mn-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
@media (max-width: 900px) { .mn-contact-grid { grid-template-columns: 1fr; } }
.mn-contact-card {
  background: var(--paper-2);
  border: 1.5px solid var(--ink);
  padding: 26px;
}
.mn-contact-card h3 { font: 700 italic 22px/1.2 var(--serif); margin: 0 0 8px; color: var(--ink); }
.mn-contact-card p { color: var(--ink-2); margin: 0 0 14px; font-size: 15px; line-height: 1.55; }
.mn-contact-card a.mn-tel { color: var(--terra); font: 700 italic 24px/1 var(--serif); }

/* ============= FOOTER — newspaper colophon ============= */
.mn-footer {
  background: var(--ink);
  color: var(--paper);
  padding: 56px 18px 28px;
  border-top: 4px solid var(--terra);
}
.mn-footer-inner { max-width: var(--maxw); margin: 0 auto; }
.mn-footer-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 32px;
  padding-bottom: 36px;
  border-bottom: 1px dashed var(--ink-3);
}
@media (max-width: 900px) { .mn-footer-top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .mn-footer-top { grid-template-columns: 1fr; } }
.mn-footer-brand p { color: var(--paper-2); opacity: 0.8; font-size: 14px; margin: 14px 0 0; line-height: 1.6; }
.mn-footer h4 {
  font: 700 12px/1.2 var(--mono);
  color: var(--mustard);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 0 0 14px;
}
.mn-footer ul li { margin: 0 0 8px; }
.mn-footer ul a { color: var(--paper); opacity: 0.8; font-size: 14px; text-decoration: none; transition: color .18s, opacity .18s; }
.mn-footer ul a:hover { color: var(--mustard); opacity: 1; }
.mn-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 22px;
  gap: 14px;
  flex-wrap: wrap;
}
.mn-footer-bottom p { color: var(--paper-2); opacity: 0.7; font-size: 13px; margin: 0; }
.mn-footer-watermark {
  color: var(--mustard);
  font: 700 13px/1 var(--mono);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

/* ============= FLOATING CTAs ============= */
.mn-float {
  position: fixed;
  right: 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 40;
}
.mn-float-call { bottom: 90px; }
.mn-float-wa { bottom: 18px; }
.mn-float a {
  width: 56px; height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  box-shadow: 0 4px 0 var(--ink);
  border: 2px solid var(--ink);
  transition: transform .2s, box-shadow .2s;
  text-decoration: none;
}
.mn-float a:hover { transform: translateY(-3px); box-shadow: 0 7px 0 var(--ink); }
.mn-float-call a { background: var(--terra); color: var(--paper); }
.mn-float-wa a { background: #25D366; color: var(--paper); border-color: #128C7E; }
.mn-float-label {
  position: absolute;
  right: 64px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--ink);
  color: var(--paper);
  font: 700 11px/1 var(--mono);
  padding: 6px 10px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.mn-float a:hover .mn-float-label { opacity: 1; }
@media (max-width: 540px) { .mn-float { right: 12px; } .mn-float a { width: 50px; height: 50px; font-size: 20px; } }

/* ============= BREADCRUMB ============= */
.mn-crumb {
  padding: 16px 18px;
  font: 400 11px/1.4 var(--mono);
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: 1px;
}
.mn-crumb-inner { max-width: var(--maxw); margin: 0 auto; display: flex; gap: 8px; flex-wrap: wrap; }
.mn-crumb a { color: var(--ink-3); text-decoration: none; }
.mn-crumb a:hover { color: var(--terra); }
.mn-crumb span { color: var(--terra); }

/* ============= PAGE HEAD ============= */
.mn-page-head {
  padding: 40px 18px 12px;
  text-align: center;
  border-bottom: 1.5px solid var(--ink);
}
.mn-page-head-inner { max-width: var(--maxw); margin: 0 auto; }
.mn-page-head h1 {
  font: 700 clamp(32px, 5vw, 52px)/1.05 var(--serif);
  margin: 0 0 14px;
  color: var(--ink);
  letter-spacing: -1.2px;
}
.mn-page-head h1 em { color: var(--terra); font-style: italic; }
.mn-page-head p { color: var(--ink-2); font-size: 17px; max-width: 70ch; margin: 0 auto; line-height: 1.65; }

/* ============= TYPES SECTION (preserved original feature) ============= */
.mn-types-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 24px;
}
.mn-types-list a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: var(--paper-2);
  border: 1.5px solid var(--ink);
  text-decoration: none;
  color: var(--ink);
  transition: transform .15s, box-shadow .15s, background .15s;
}
.mn-types-list a:hover {
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--indigo);
  background: var(--paper-3);
}
.mn-types-list a::before {
  content: "✦";
  font-family: var(--serif);
  font-size: 18px;
  color: var(--mustard);
}
.mn-types-list a span {
  font: 700 italic 17px/1.2 var(--serif);
  color: var(--ink);
}
.mn-types-list a small {
  margin-left: auto;
  font: 400 11px/1 var(--mono);
  color: var(--ink-3);
  text-transform: uppercase;
}

/* ============= EDITORIAL WORDS SECTION ============= */
.mn-words {
  background: var(--ink);
  color: var(--paper);
  padding: 64px 18px;
}
.mn-words .mn-sec-h { color: var(--paper); }
.mn-words .mn-sec-h em { color: var(--mustard); }
.mn-words .mn-sec-sub { color: var(--paper-2); opacity: 0.85; }
.mn-words .mn-prose p { color: var(--paper-2); opacity: 0.92; }
.mn-words .mn-prose p:first-of-type::first-letter {
  color: var(--mustard);
}
.mn-words .mn-prose a {
  color: var(--mustard);
  text-decoration-color: var(--terra);
}
.mn-words .mn-prose strong { color: var(--paper); }

/* ============= SECTION DIVIDER ============= */
.mn-divider {
  max-width: var(--maxw);
  margin: 0 auto;
  height: 1.5px;
  background: linear-gradient(90deg, transparent, var(--line-2), transparent);
}

/* ============= WATERMARK CHIP ============= */
.mn-wm {
  display: inline-block;
  padding: 3px 10px;
  background: var(--ink);
  color: var(--mustard);
  font: 700 11px/1.4 var(--mono);
  letter-spacing: 1.2px;
  text-transform: uppercase;
}

/* ============= LOCATIONS PAGE STRIP ============= */
.mn-strip-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.mn-strip {
  display: flex; gap: 14px; align-items: center;
  padding: 16px 18px;
  background: var(--paper-2);
  border: 1.5px solid var(--ink);
  transition: transform .15s, box-shadow .15s, background .15s;
  text-decoration: none;
  color: var(--ink);
}
.mn-strip:hover { border-color: var(--ink); transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--terra); background: var(--paper-3); }
.mn-strip-img { width: 84px; height: 84px; border: 1px solid var(--ink); overflow: hidden; flex: 0 0 auto; }
.mn-strip-img img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.05); }
.mn-strip-body strong { display: block; font: 700 italic 19px/1.2 var(--serif); color: var(--ink); margin-bottom: 4px; }
.mn-strip-body span { color: var(--terra); font: 400 12px/1 var(--mono); text-transform: uppercase; letter-spacing: 0.5px; }
.mn-strip-body p { color: var(--ink-3); font: 400 12.5px/1.4 var(--sans); margin: 4px 0 0; }

/* ============= REVIEWS ============= */
.mn-rev-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 900px) { .mn-rev-grid { grid-template-columns: 1fr; } }
.mn-rev {
  background: var(--paper-2);
  border: 1.5px solid var(--ink);
  padding: 26px;
  position: relative;
}
.mn-rev::before {
  content: "“";
  position: absolute;
  top: -8px; left: 18px;
  font: 700 italic 64px/1 var(--serif);
  color: var(--mustard);
  background: var(--paper);
  padding: 0 6px;
}
.mn-rev-stars { color: var(--terra); font-size: 18px; margin-bottom: 12px; letter-spacing: 2px; }
.mn-rev p { color: var(--ink-2); font: 400 italic 15.5px/1.65 var(--serif); margin: 0 0 16px; }
.mn-rev-author { display: flex; align-items: center; gap: 10px; }
.mn-rev-author strong { color: var(--ink); font: 700 14px/1 var(--sans); }
.mn-rev-author span { color: var(--ink-3); font: 400 11px/1 var(--mono); text-transform: uppercase; letter-spacing: 0.5px; }
.mn-rev-author .avatar {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--terra);
  color: var(--paper);
  display: flex; align-items: center; justify-content: center;
  font: 700 italic 16px/1 var(--serif);
}

/* ============= FAQ — magazine Q&A ============= */
.mn-faq { display: flex; flex-direction: column; gap: 14px; max-width: 920px; }
.mn-faq-item {
  border: 1.5px solid var(--ink);
  background: var(--paper-2);
  overflow: hidden;
}
.mn-faq-q {
  width: 100%;
  display: flex;
  gap: 14px;
  align-items: baseline;
  padding: 18px 22px;
  text-align: left;
  font: 700 italic 18px/1.4 var(--serif);
  color: var(--ink);
  background: transparent;
}
.mn-faq-q::before {
  content: "Q.";
  font: 700 italic 18px/1 var(--serif);
  color: var(--terra);
  flex: 0 0 auto;
}
.mn-faq-q::after {
  content: "+";
  margin-left: auto;
  font: 700 22px/1 var(--serif);
  color: var(--mustard);
  transition: transform .25s;
}
.mn-faq-item.open .mn-faq-q::after { transform: rotate(45deg); }
.mn-faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}
.mn-faq-a-inner {
  padding: 0 22px 20px 56px;
  color: var(--ink-2);
  font-size: 16px;
  line-height: 1.65;
  position: relative;
}
.mn-faq-a-inner::before {
  content: "A.";
  position: absolute;
  left: 22px; top: 0;
  font: 700 italic 16px/1.65 var(--serif);
  color: var(--indigo);
}

/* ============= UTILITY ============= */
.mn-container { max-width: var(--maxw); margin: 0 auto; padding: 0 18px; }
.mn-text-center { text-align: center; }
.mn-mt-32 { margin-top: 32px; }
.mn-mb-0 { margin-bottom: 0; }
.mn-hide-mobile { display: initial; }
@media (max-width: 700px) { .mn-hide-mobile { display: none; } }

.mn-skip {
  position: absolute; left: -9999px; top: 8px;
  background: var(--ink); color: var(--paper);
  padding: 8px 14px; font-weight: 700; z-index: 100; text-decoration: none;
}
.mn-skip:focus { left: 8px; }

/* Decorative mark — hand-drawn ink underline */
.ink-mark { position: relative; display: inline-block; }
.ink-mark::after {
  content: "";
  position: absolute;
  left: -2px; right: -2px;
  bottom: -2px;
  height: 4px;
  background: var(--mustard);
  z-index: -1;
  transform: skewX(-15deg);
  opacity: 0.6;
}

/* ============= IMAGE BREAK — full-width editorial photo strip ============= */
.mn-imgbreak { padding: 32px 18px; background: var(--paper-2); border-top: 1.5px solid var(--ink); border-bottom: 1.5px solid var(--ink); }
.mn-imgbreak-single {
  margin: 0;
  position: relative;
  border: 2px solid var(--ink);
  box-shadow: 10px 10px 0 var(--mustard);
  aspect-ratio: 16/6;
  overflow: hidden;
}
.mn-imgbreak-single img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.08) saturate(0.95); }
.mn-imgbreak-single figcaption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(0deg, rgba(26,20,16,.85), transparent);
  color: var(--paper);
  padding: 14px 18px 12px;
  font: 400 italic 14px/1.4 var(--serif);
}
.mn-imgbreak-double {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.mn-imgbreak-double figure {
  margin: 0;
  border: 2px solid var(--ink);
  overflow: hidden;
  aspect-ratio: 4/3;
  position: relative;
}
.mn-imgbreak-double figure:nth-child(2) { box-shadow: 8px 8px 0 var(--terra); }
.mn-imgbreak-double img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.08) saturate(0.95); }
.mn-imgbreak-double figcaption {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: rgba(26,20,16,.7);
  color: var(--paper);
  padding: 8px 12px;
  font: 400 italic 12px/1.3 var(--serif);
}
.mn-imgbreak-triple {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.mn-imgbreak-triple figure {
  margin: 0;
  border: 2px solid var(--ink);
  overflow: hidden;
  aspect-ratio: 3/4;
}
.mn-imgbreak-triple img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.08) saturate(0.95); }
.mn-imgbreak-triple figure:nth-child(1) { transform: rotate(-1deg); }
.mn-imgbreak-triple figure:nth-child(3) { transform: rotate(1deg); }
.mn-imgbreak-cap { text-align: center; font: 400 italic 14px/1 var(--serif); color: var(--ink-3); margin: 14px 0 0; }
@media (max-width: 700px) {
  .mn-imgbreak-double { grid-template-columns: 1fr; }
  .mn-imgbreak-triple { grid-template-columns: 1fr; }
  .mn-imgbreak-single { aspect-ratio: 4/3; }
}

/* ============= IMAGE SLIDER — auto-rotating carousel replaces single image break ============= */
.mn-slider {
  position: relative;
  border: 2px solid var(--ink);
  box-shadow: 10px 10px 0 var(--mustard);
  overflow: hidden;
  aspect-ratio: 16/7;
  background: var(--paper-3);
}
.mn-slider-track {
  display: flex;
  height: 100%;
  width: 100%;
}
/* 12-image slider — total cycle 60s (5s per image) */
.mn-slider[data-count="12"] .mn-slider-track { animation: mn-slide-12 60s linear infinite; }
.mn-slider:hover .mn-slider-track { animation-play-state: paused; }
.mn-slider-track figure {
  margin: 0;
  flex: 0 0 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.mn-slider-track img { width: 100%; height: 100%; object-fit: cover; }
.mn-slider-track figcaption {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(0deg, rgba(26,20,16,.85), transparent);
  color: var(--paper);
  padding: 14px 18px;
  font: 400 italic 14px/1.4 var(--serif);
}
/* 12-step keyframes for 12-image slider */
@keyframes mn-slide-12 {
  0%      { transform: translateX(0%); }
  8.33%   { transform: translateX(-100%); }
  16.66%  { transform: translateX(-200%); }
  25%     { transform: translateX(-300%); }
  33.33%  { transform: translateX(-400%); }
  41.66%  { transform: translateX(-500%); }
  50%     { transform: translateX(-600%); }
  58.33%  { transform: translateX(-700%); }
  66.66%  { transform: translateX(-800%); }
  75%     { transform: translateX(-900%); }
  83.33%  { transform: translateX(-1000%); }
  91.66%  { transform: translateX(-1100%); }
  100%    { transform: translateX(0%); }
}
.mn-slider-dots {
  position: absolute;
  bottom: 14px; right: 18px;
  display: flex; gap: 6px;
  z-index: 2;
}
.mn-slider-dots i {
  display: block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: rgba(246,238,223,.5);
  border: 1px solid var(--paper);
}
.mn-slider-dots i.on { background: var(--mustard); border-color: var(--mustard-2); }
@media (max-width: 600px) {
  .mn-slider-dots i { width: 6px; height: 6px; }
}

/* ============= TITLE CASE — apply to all H1-H6 ============= */
h1, h2, h3, h4, h5, h6 { text-transform: capitalize; }

/* ============= 404 PAGE ============= */
.mn-404 {
  min-height: 70vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 60px 18px;
  position: relative;
  overflow: hidden;
}
.mn-404::before {
  content: "";
  position: absolute;
  top: -50%; left: -10%;
  width: 60%; height: 200%;
  background: radial-gradient(circle, rgba(180,63,30,.08) 0, transparent 60%);
  animation: mn-float-bg 18s ease-in-out infinite;
}
.mn-404::after {
  content: "";
  position: absolute;
  bottom: -50%; right: -10%;
  width: 60%; height: 200%;
  background: radial-gradient(circle, rgba(43,61,92,.08) 0, transparent 60%);
  animation: mn-float-bg 22s ease-in-out infinite reverse;
}
@keyframes mn-float-bg {
  0%, 100% { transform: translate(0,0) rotate(0); }
  50% { transform: translate(20px,-30px) rotate(8deg); }
}
.mn-404-num {
  font: 700 italic clamp(120px, 24vw, 240px)/0.9 var(--serif);
  color: var(--terra);
  letter-spacing: -8px;
  position: relative;
  z-index: 2;
  display: inline-block;
  animation: mn-404-pulse 4s ease-in-out infinite;
}
.mn-404-num span {
  display: inline-block;
  animation: mn-404-bounce 3s ease-in-out infinite;
}
.mn-404-num span:nth-child(2) { animation-delay: .2s; }
.mn-404-num span:nth-child(3) { animation-delay: .4s; }
@keyframes mn-404-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}
@keyframes mn-404-pulse {
  0%, 100% { text-shadow: 4px 4px 0 var(--mustard); }
  50% { text-shadow: 8px 8px 0 var(--mustard); }
}
.mn-404-eyebrow {
  font: 700 12px/1 var(--mono);
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--terra);
  margin-bottom: 14px;
  position: relative; z-index: 2;
}
.mn-404-eyebrow::before { content: "§ "; color: var(--mustard); font-family: var(--serif); font-size: 22px; }
.mn-404 h1 {
  font: 700 italic clamp(28px, 5vw, 48px)/1.1 var(--serif);
  color: var(--ink);
  margin: 0 0 16px;
  position: relative; z-index: 2;
  text-transform: none;
}
.mn-404 h1 em { color: var(--terra); }
.mn-404 p {
  font: 400 17px/1.65 var(--sans);
  color: var(--ink-2);
  max-width: 56ch;
  margin: 0 auto 28px;
  position: relative; z-index: 2;
}
.mn-404-cta {
  display: flex; gap: 12px; flex-wrap: wrap; justify-content: center;
  position: relative; z-index: 2;
}
.mn-404-orbit {
  position: absolute;
  top: 50%; left: 50%;
  width: 320px; height: 320px;
  margin: -160px 0 0 -160px;
  border: 1.5px dashed var(--line-2);
  border-radius: 50%;
  animation: mn-orbit 30s linear infinite;
  z-index: 1;
}
.mn-404-orbit::before {
  content: "";
  position: absolute;
  top: -8px; left: 50%;
  width: 16px; height: 16px;
  margin-left: -8px;
  background: var(--mustard);
  border: 1.5px solid var(--ink);
  border-radius: 50%;
}
@keyframes mn-orbit { to { transform: rotate(360deg); } }
.mn-404-orbit-2 {
  position: absolute;
  top: 50%; left: 50%;
  width: 460px; height: 460px;
  margin: -230px 0 0 -230px;
  border: 1px dashed var(--line);
  border-radius: 50%;
  animation: mn-orbit 45s linear infinite reverse;
  z-index: 1;
}
.mn-404-orbit-2::before {
  content: "✦";
  position: absolute;
  top: -10px; left: 50%;
  margin-left: -8px;
  font-family: var(--serif);
  font-size: 18px;
  color: var(--terra);
  background: var(--paper);
  padding: 0 4px;
}
@media (max-width: 600px) {
  .mn-404-orbit { width: 240px; height: 240px; margin: -120px 0 0 -120px; }
  .mn-404-orbit-2 { width: 340px; height: 340px; margin: -170px 0 0 -170px; }
}

/* ============= CITY BUILDING — in-place swap styles ============= */
.mn-building[data-active-city] { transition: opacity .15s; }
.mn-building.is-swapping { opacity: 0.4; }
.mn-building-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1.5px dashed var(--line-2);
  flex-wrap: wrap;
  gap: 12px;
}
.mn-building-foot .mn-now {
  font: 400 13px/1.4 var(--mono);
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.mn-building-foot .mn-now b { color: var(--terra); font-weight: 700; font-style: italic; font-family: var(--serif); text-transform: none; font-size: 17px; letter-spacing: 0; }
.mn-building-foot .mn-now b::before { content: "· "; color: var(--ink-3); }





/* =========================================================
   MOBILE RESPONSIVE FIXES (appended)
   Targets ONLY two issues — does NOT alter any content,
   titles, meta, images, videos, or visual design.
   1) Eliminates mobile horizontal overflow / scroll.
   2) Makes every .mn-table fit mobile viewports so all data
      is visible (scrollable wrapper + tightened padding).
   ========================================================= */

/* --- 1. HARD CEILING on horizontal overflow -----------------
   Body already has overflow-x:hidden, but iOS Safari and
   several sticky/fixed elements can still cause horizontal
   scroll. We enforce it on <html> too, and lock every
   top-level section wrapper so no child (box-shadow, fixed
   widths, long words) can push the page wider than viewport.
----------------------------------------------------------- */
html { overflow-x: hidden; max-width: 100vw; }
body { overflow-x: hidden; max-width: 100vw; position: relative; }

/* Section containers — clip any box-shadow / decorative
   pseudo-element that would otherwise bleed past the
   right edge of the viewport on small screens. */
.mn-sec,
.mn-sec-inner,
.mn-container,
.mn-hero,
.mn-hero-inner,
.mn-page-head,
.mn-page-head-inner,
.mn-crumb,
.mn-crumb-inner,
.mn-footer,
.mn-footer-inner,
.mn-words,
.mn-eeat,
.mn-divider,
.mn-imgbreak,
.mn-profile-head,
.mn-strip-grid,
.mn-cat-grid,
.mn-types-list,
.mn-areas-grid,
.mn-grid,
.mn-blog-grid,
.mn-video-grid,
.mn-rev-grid,
.mn-eeat-grid,
.mn-contact-grid,
.mn-hours-list,
.mn-hours-row,
.mn-towers,
.mn-steps,
.mn-faq,
.mn-2col,
.mn-top,
.mn-top-inner { max-width: 100%; box-sizing: border-box; }

/* Long unbroken words (URLs, long brand names) must wrap
   instead of forcing the layout wider. */
.mn-h1, .mn-sec-h, .mn-page-head h1, .mn-profile-info h1,
.mn-prose p, .mn-prose li, .mn-prose a, .mn-lead, .mn-sec-sub,
.mn-card-name, .mn-blog-card-body h3, .mn-cat-card h3,
.mn-faq-q, .mn-faq-a-inner, .mn-window-name, .mn-strip-body strong,
.mn-rev p, .mn-rev-author strong, .mn-footer ul a, .mn-crumb a {
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: auto;
}

/* --- 2. GRID blowout guard ---------------------------------
   CSS grid items default to min-width:auto, which lets a
   piece of long content (image, table, pre, wide card)
   blow the track out past the viewport. Forcing min-width:0
   on every grid child lets the track shrink to fit.
----------------------------------------------------------- */
.mn-grid > *,
.mn-grid-2 > *, .mn-grid-3 > *, .mn-grid-4 > *,
.mn-grid-5 > *, .mn-grid-6 > *,
.mn-hero-inner > *,
.mn-2col > *,
.mn-profile-head > *,
.mn-blog-grid > *,
.mn-video-grid > *,
.mn-cat-grid > *,
.mn-types-list > *,
.mn-areas-grid > *,
.mn-strip-grid > *,
.mn-rev-grid > *,
.mn-eeat-grid > *,
.mn-contact-grid > *,
.mn-footer-top > *,
.mn-profile-gallery > *,
.mn-spec-grid > *,
.mn-steps > * { min-width: 0; }

/* --- 3. SAFE minmax() for auto-fill grids ------------------
   Original minmax(220px / 280px / 170px, 1fr) overflows
   on viewports narrower than the min. We re-declare with
   min() so the floor scales down with the viewport.
----------------------------------------------------------- */
.mn-cat-grid    { grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); }
.mn-types-list  { grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); }
.mn-strip-grid  { grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); }
.mn-areas-grid  { grid-template-columns: repeat(auto-fill, minmax(min(170px, 100%), 1fr)); }

/* --- 4. Eliminate box-shadow bleed past viewport -----------
   Large 10px / 8px / 6px hard-offset shadows on .mn-slider,
   .mn-imgbreak-single, .mn-hero-art, .mn-card:hover, etc.
   extend past their parent on small screens. We wrap the
   PARENT in overflow-x:clip so the shadow can never push
   the document wider than the viewport.
   (overflow-x:clip is preferred — it doesn't create a
   scroll container, so position:sticky children still work.)
----------------------------------------------------------- */
.mn-sec,
.mn-hero,
.mn-imgbreak,
.mn-words,
.mn-footer,
.mn-page-head,
.mn-crumb,
.mn-eeat {
  overflow-x: clip;
}
/* Fallback for browsers without overflow:clip — use hidden.
   We scope it inside a max-width media query so desktop
   layout (where shadows are part of the design) is untouched. */
@supports not (overflow: clip) {
  @media (max-width: 900px) {
    .mn-sec, .mn-hero, .mn-imgbreak, .mn-words,
    .mn-footer, .mn-page-head, .mn-crumb, .mn-eeat {
      overflow-x: hidden;
    }
  }
}

/* On very small screens, shrink the large hard-offset
   shadows so they don't crowd the layout. Visual identity
   (terracotta / mustard ink-stamp shadow) is preserved. */
@media (max-width: 600px) {
  .mn-hero-art        { box-shadow: 6px 6px 0 var(--mustard); }
  .mn-imgbreak-single { box-shadow: 6px 6px 0 var(--mustard); }
  .mn-slider          { box-shadow: 6px 6px 0 var(--mustard); }
  .mn-imgbreak-double figure:nth-child(2) { box-shadow: 5px 5px 0 var(--terra); }
  .mn-card:hover      { box-shadow: 4px 4px 0 var(--ink); }
  .mn-blog-card:hover { box-shadow: 4px 4px 0 var(--terra); }
  .mn-cat-card:hover  { box-shadow: 4px 4px 0 var(--mustard); }
}

/* --- 5. EEAT block — reduce padding on mobile --------------
   .mn-eeat has 40px padding which is too much under 480px.
----------------------------------------------------------- */
@media (max-width: 700px) {
  .mn-eeat { padding: 26px 18px; margin: 40px auto; }
}
@media (max-width: 480px) {
  .mn-eeat { padding: 20px 14px; margin: 28px auto; }
}

/* --- 6. 404 page — shrink the large fixed-width orbits ----
   Original: 460px / 320px. Reduce further on tiny screens
   so they never overflow the viewport.
----------------------------------------------------------- */
@media (max-width: 420px) {
  .mn-404-orbit   { width: 200px; height: 200px; margin: -100px 0 0 -100px; }
  .mn-404-orbit-2 { width: 280px; height: 280px; margin: -140px 0 0 -140px; }
}
@media (max-width: 320px) {
  .mn-404-orbit   { width: 160px; height: 160px; margin: -80px 0 0 -80px; }
  .mn-404-orbit-2 { width: 220px; height: 220px; margin: -110px 0 0 -110px; }
}

/* --- 7. Pre / code / iframe / video safety ----------------
   Any raw <pre>, code block, iframe or video that wasn't
   given an explicit max-width should still never push the
   page wider than the viewport.
----------------------------------------------------------- */
pre, code, iframe, video, embed, object {
  max-width: 100%;
}
pre {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  white-space: pre;
  word-wrap: normal;
}

/* --- 8. TABLES — make every .mn-table fit on mobile --------
   Two-pronged fix:
   (a) JS wraps each <table class="mn-table"> in
       <div class="mn-table-wrap"> at runtime. The wrapper
       is the scroll container, so the table itself keeps
       its real table layout (column widths, thead alignment,
       row hover, etc.) instead of being deformed.
   (b) On small screens we also tighten cell padding and
       font-size so the table actually shrinks to fit, and
       only falls back to horizontal scroll when the content
       genuinely cannot fit (e.g. 4 narrow numeric columns).
----------------------------------------------------------- */

/* Wrapper around every .mn-table — created by app.js */
.mn-table-wrap {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  margin: 0 0 16px;
  /* visible scrollbar hint on touch devices */
  border-bottom: 2px solid var(--line);
}
.mn-table-wrap::-webkit-scrollbar { height: 8px; }
.mn-table-wrap::-webkit-scrollbar-track { background: var(--paper-3); }
.mn-table-wrap::-webkit-scrollbar-thumb { background: var(--ink-3); border-radius: 4px; }

/* The table itself: remove the original overflow:hidden
   (which clipped data on mobile) and let it size to its
   natural content. The wrapper handles overflow. */
.mn-table {
  overflow: visible;
  table-layout: auto;
}
/* Use overflow-wrap (breaks ONLY at word boundaries) instead
   of word-break:break-word (which can split "₹15,000" into
   "₹15,0" + "00"). With overflow-wrap, prices and short
   numbers stay intact; the wrapper scrolls horizontally if
   a column genuinely cannot fit. */
.mn-table th, .mn-table td {
  white-space: normal;
  overflow-wrap: break-word;
  word-break: keep-all;
}
/* Long descriptive cells (the colspan row in pricing tables,
   etc.) should still wrap normally — no nowrap on them. */
.mn-table td[colspan],
.mn-table td:only-child {
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
}

/* Tighten padding/font on small screens so the table
   shrinks first, scrolls only as a last resort. */
@media (max-width: 760px) {
  .mn-table th, .mn-table td { padding: 10px 12px; }
  .mn-table thead th { font-size: 11px; letter-spacing: 1px; }
  .mn-table td strong { font-size: 14px; }
  .mn-table .mn-price { font-size: 17px; }
}
@media (max-width: 480px) {
  .mn-table th, .mn-table td { padding: 8px 9px; font-size: 13px; line-height: 1.4; }
  .mn-table thead th { font-size: 10px; letter-spacing: 0.5px; }
  .mn-table td strong { font-size: 13px; }
  .mn-table .mn-price { font-size: 15px; }
}

/* --- 9. Float CTAs — keep clear of viewport edge -----------
   On very small phones the floating CALL / WhatsApp
   buttons sat flush to the edge; the 2px border could
   cause a 1px horizontal scroll on some browsers.
----------------------------------------------------------- */
@media (max-width: 360px) {
  .mn-float { right: 10px; }
  .mn-float a { width: 46px; height: 46px; font-size: 18px; }
}

/* --- 10. Hero CTA row — wrap properly on narrow phones ----
   .mn-cta-row already has flex-wrap:wrap, but on very
   narrow viewports the buttons themselves could push out.
   Force shrink on the button content.
----------------------------------------------------------- */
.mn-cta-row { max-width: 100%; }
.mn-cta-row .mn-btn {
  max-width: 100%;
  flex: 0 1 auto;
  min-width: 0;
}
.mn-cta-row .mn-btn > * { min-width: 0; }

/* --- 11. Profile spec grid — collapse to single column
   earlier so it never overflows on small phones --------- */
@media (max-width: 480px) {
  .mn-spec-grid { grid-template-columns: 1fr; }
}

/* --- 12. Crumb — never let long breadcrumb overflow --------
   .mn-crumb-inner already has flex-wrap:wrap, but ensure
   long last-segment names don't force horizontal scroll. */
.mn-crumb-inner > * { min-width: 0; max-width: 100%; }

/* --- 13. Building foot — allow proper wrapping -------------
   .mn-building-foot already has flex-wrap:wrap; reinforce
   that the children can shrink. */
.mn-building-foot > * { min-width: 0; max-width: 100%; }

/* --- 14. Top bar — logo + burger layout on tiny phones -----
   Original: .mn-logo is `flex: 0 0 auto` with an <img>
   carrying HTML width=220 attribute. At viewports narrower
   than 220+padding, the logo refused to shrink and pushed
   the burger button past the right edge of the screen.
   Fix: allow the logo to shrink (flex: 0 1 auto), cap the
   image width to its container, and pin the burger to the
   right edge of the top bar so it never overflows.
   NOTE: We do NOT touch the original height:50px / 38px
   rules — only add max-width constraints.
----------------------------------------------------------- */
.mn-logo {
  flex: 0 1 auto;
  min-width: 0;
  max-width: calc(100% - 60px);  /* leave room for burger */
}
.mn-logo img { max-width: 100%; }
@media (max-width: 760px) {
  .mn-logo { max-width: calc(100% - 52px); }
}
@media (max-width: 360px) {
  .mn-logo { max-width: calc(100% - 48px); }
}
/* Push the burger to the right edge — the original CSS
   relied on .mn-nav's margin-left:auto, but .mn-nav is
   display:none on mobile so the auto margin vanishes. */
@media (max-width: 1000px) {
  .mn-burger { margin-left: auto; flex: 0 0 auto; }
}


/* =========================================================
   DATE / TIME STRIP — sits ABOVE the sticky header on
   every page. Shows live date + time + IST zone + a static
   "Page last updated" stamp rendered from the file's mtime.
   Goal: every page always shows a fresh timestamp so users
   (and search-engine crawlers) see the page is current.
   ========================================================= */

.mn-datetime {
  background: var(--ink);
  color: var(--paper);
  border-bottom: 1.5px solid var(--terra);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.4px;
  line-height: 1;
  position: relative;
  z-index: 60; /* sits above the sticky header (which is z:50) */
  /* NOTE: NOT sticky. It scrolls away with the page so it
     doesn't permanently eat vertical space on mobile. */
}

.mn-datetime-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 7px 18px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}

/* Pill markers for the live values */
.mn-dt-date,
.mn-dt-time,
.mn-dt-zone {
  display: inline-flex;
  align-items: center;
  font-weight: 700;
  color: var(--mustard);
  letter-spacing: 0.6px;
}

/* Tiny "LIVE" indicator dot — pulses so visitors notice
   the time is actually live. */
.mn-dt-time::before {
  content: "";
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #25D366;
  margin-right: 6px;
  box-shadow: 0 0 0 0 rgba(37,211,102,.7);
  animation: mn-dt-pulse 2s infinite;
  vertical-align: middle;
}
@keyframes mn-dt-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(37,211,102,.7); }
  70%  { box-shadow: 0 0 0 6px rgba(37,211,102,0); }
  100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); }
}

/* Separator dot */
.mn-dt-sep {
  color: var(--ink-3);
  opacity: 0.7;
  font-weight: 400;
}

/* Zone badge */
.mn-dt-zone {
  color: var(--paper-2);
  font-weight: 400;
  background: rgba(255,255,255,.07);
  padding: 3px 7px;
  border-radius: 3px;
  font-size: 10.5px;
  letter-spacing: 1px;
}

/* The "last updated" line — pushed to the right on desktop,
   wraps to its own line on mobile. */
.mn-dt-updated {
  margin-left: auto;
  color: var(--paper-2);
  opacity: 0.78;
  font-size: 11px;
  letter-spacing: 0.5px;
}
.mn-dt-updated strong {
  color: var(--mustard);
  font-weight: 700;
  font-family: var(--mono);
}

/* -------- Responsive -------- */
@media (max-width: 760px) {
  .mn-datetime-inner {
    padding: 6px 14px;
    gap: 6px;
    font-size: 11px;
  }
  .mn-dt-zone { font-size: 9.5px; padding: 2px 6px; }
  .mn-dt-updated { font-size: 10px; }
}

@media (max-width: 480px) {
  /* On very small phones: drop the IST badge (saves space)
     and let "last updated" wrap below the live time. */
  .mn-datetime-inner {
    flex-wrap: wrap;
    gap: 5px 8px;
    padding: 6px 12px;
  }
  .mn-dt-zone { display: none; }
  .mn-dt-updated {
    margin-left: 0;
    width: 100%;
    border-top: 1px dashed rgba(255,255,255,.12);
    padding-top: 5px;
    margin-top: 2px;
  }
}

@media (max-width: 360px) {
  .mn-datetime-inner { padding: 5px 10px; font-size: 10.5px; }
  .mn-dt-date, .mn-dt-time { font-size: 10.5px; }
  .mn-dt-updated { font-size: 9.5px; }
}

/* Respect reduced-motion users — stop the pulsing dot */
@media (prefers-reduced-motion: reduce) {
  .mn-dt-time::before { animation: none; }
}

/* Hidden state — if JS is disabled, the bar still shows
   meaningful static text via <noscript> fallback (the
   em-dash placeholders become real text via the JS below;
   if JS doesn't run, we hide the empty placeholders so the
   bar looks clean, not "— · — · IST". */
.mn-datetime.no-js .mn-dt-date,
.mn-datetime.no-js .mn-dt-time,
.mn-datetime.no-js .mn-dt-sep:first-of-type,
.mn-datetime.no-js .mn-dt-sep:last-of-type,
.mn-datetime.no-js .mn-dt-zone {
  display: none;
}

/* Ensure the strip never causes horizontal overflow */
.mn-datetime,
.mn-datetime-inner { max-width: 100%; box-sizing: border-box; }
.mn-datetime-inner > * { min-width: 0; max-width: 100%; }
