/* =====================================================================
   Lux Vidigal — lv2.css  (v2 "new format", 2026-09-25)
   Loaded AFTER styles.css on every page. Carries:
     1. the house standard: full-width layout, no italics, Archivo body
     2. the mega-menu header + mobile menu + sitemap footer (lv/site.py)
     3. the article layout (split hero, reading column + filled rails)
     4. components for the new pages (guide cards, place rows, photo grids)
   Source of truth for the markup: _v2/lv/site.py. Stamp before deploy.
   ===================================================================== */

:root {
  --f-ui: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gutter: clamp(16px, 2.4vw, 48px);
  --space-pad: var(--gutter);
  --max-content: none;
  --lvh-h: 84px;
  --lvh-h-s: 68px;
  --readw: 740px;
  --line: rgba(15, 15, 14, 0.12);
  --line-d: rgba(245, 239, 228, 0.16);
}
@media (max-width: 1199px) { :root { --lvh-h: 72px; --lvh-h-s: 64px; } }

/* ---------- 1. HOUSE STANDARD ---------- */
body { font-family: var(--f-ui); font-synthesis: none; font-weight: 400; }
em, i, cite, dfn, var, address, blockquote, q { font-style: normal; }
.lede, .display.italic, .post-body em, .post-hero h1 em, .site-header__logo em,
.site-footer__brand .lg em { font-style: normal; }
h1 em, h2 em, h3 em, .hero__title em, .sec-head h2 em, .cta-band h2 em { color: var(--c-terracotta); font-weight: inherit; }
.section--dark h2 em, .section--dark h3 em, .cta-band h2 em, .section--terra h2 em { color: var(--c-ember); }
.section--terra h2 em, .cta-band.is-terra h2 em { color: var(--c-ocean-deep); }
p em, li em, td em { font-weight: 600; color: inherit; }
.hero__sub em { color: var(--c-lime); font-weight: 600; }

.wrap { max-width: none; margin-inline: 0; padding-inline: var(--gutter); }
.post-hero .wrap { max-width: none; }
.section p, .info-row p, .tile p { max-width: 72ch; }
/* a lone lede in a 12-col grid becomes a statement band instead of a void */
.grid-12 > .span-8:only-child .lede,
.grid-12 > .span-8:first-child:last-child .lede { font-size: clamp(1.45rem, 0.95rem + 1.7vw, 2.7rem); line-height: 1.22; max-width: 34em; }
.grid-12 > .span-8:only-child { grid-column: 1 / -1; }

/* body copy weight: Archivo 400 is the floor, never lighter over photos */
.hero__sub, .hero__meta, .site-nav a { font-weight: 500; }

/* ---------- 2. HEADER ---------- */
.site-header.lvh {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: stretch;
  gap: clamp(1rem, 2vw, 2.5rem);
  height: var(--lvh-h);
  padding: 0 var(--gutter);
  background: transparent;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  transition: background 260ms var(--ease-out), height 260ms var(--ease-out), border-color 260ms var(--ease-out);
}
.site-header.lvh::before { background: linear-gradient(180deg, rgba(7,40,49,0.72) 0%, rgba(7,40,49,0.35) 60%, rgba(7,40,49,0) 100%); height: 150%; }
.site-header.lvh.is-scrolled,
.site-header.lvh.is-panel,
.site-header.lvh.is-menu-open { background: #072831; height: var(--lvh-h-s); padding: 0 var(--gutter); -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom-color: var(--line-d); }
.site-header.lvh.is-panel::before, .site-header.lvh.is-menu-open::before { opacity: 0; }
.lvh-logo { align-self: center; font-size: clamp(1.55rem, 1.2rem + 0.9vw, 2.05rem); font-weight: 900; letter-spacing: -0.015em; white-space: nowrap; }
.lvh-logo span { font-weight: 400; }
.lvh-nav { align-self: stretch; display: flex; justify-content: center; min-width: 0; }
.lvh-list { display: flex; align-items: stretch; gap: clamp(0.35rem, 1.1vw, 1.6rem); margin: 0; padding: 0; }
.lvh-item { display: flex; align-items: stretch; }
.lvh-top {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-family: var(--f-ui); font-weight: 600; font-size: clamp(0.94rem, 0.84rem + 0.22vw, 1.06rem);
  letter-spacing: 0.005em; color: rgba(245, 239, 228, 0.94);
  padding: 0 0.3rem; position: relative; white-space: nowrap;
  transition: color 180ms var(--ease-out);
}
.lvh-top::after {
  content: ""; position: absolute; left: 0.3rem; right: 0.3rem; bottom: calc(50% - 1.05em);
  height: 2px; background: var(--c-lime); transform: scaleX(0); transform-origin: left;
  transition: transform 260ms var(--ease-out);
}
.lvh-item:hover .lvh-top::after, .lvh-item.is-open .lvh-top::after,
.lvh-top[aria-current]::after, .lvh-top:focus-visible::after { transform: scaleX(1); }
.lvh-item:hover .lvh-top, .lvh-item.is-open .lvh-top { color: #fff8ec; }
.lvh-top:focus-visible { outline: 2px solid var(--c-lime); outline-offset: 2px; }
.lvh-chev { width: 10px; height: 7px; opacity: 0.8; transition: transform 240ms var(--ease-out); }
.lvh-item.is-open .lvh-chev { transform: rotate(180deg); }
.lvh-top--pin { gap: 0.45rem; }
.lvh-top--pin span { border-bottom: 0; }
.lvh-pin { width: 13px; height: 17px; color: var(--c-terracotta); --lvh-pin-dot: #f5efe4; flex: none; }
.header-cta { font-weight: 700; font-size: 0.8rem; letter-spacing: 0.14em; padding: 0.8rem 1.35rem; align-self: center; }
.site-header.lvh .site-header__actions { align-self: center; }
.site-header.lvh .lang-switch { font-size: 0.74rem; }

/* burger (under 1200px) */
.lvh-burger { display: none; }
@media (max-width: 1199px) {
  .site-header.lvh { grid-template-columns: auto 1fr; }
  .lvh-nav { display: none; }
  .site-header.lvh .header-cta { display: none; }
  .lvh-burger {
    display: inline-flex; align-items: center; gap: 0.6rem; height: 44px; padding: 0 0.2rem 0 0.35rem;
    color: var(--c-cream); font-family: var(--f-ui); font-weight: 700; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase;
    width: auto;
  }
  .lvh-bars { position: relative; width: 26px; height: 18px; display: inline-block; }
  .lvh-bars i { position: absolute; left: 0; right: 0; height: 2px; background: currentColor; border-radius: 1px; transition: transform 320ms var(--ease-cine), opacity 160ms linear; }
  .lvh-bars i:nth-child(1) { top: 2px; } .lvh-bars i:nth-child(2) { top: 8px; } .lvh-bars i:nth-child(3) { top: 14px; }
  .lvh-burger[aria-expanded="true"] .lvh-bars i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .lvh-burger[aria-expanded="true"] .lvh-bars i:nth-child(2) { opacity: 0; }
  .lvh-burger[aria-expanded="true"] .lvh-bars i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .lvh-burger:focus-visible { outline: 2px solid var(--c-lime); outline-offset: 3px; }
}
@media (max-width: 540px) { .lvh-burger-t { display: none; } }
.lvh-burger .lvh-bars { position: relative; display: inline-block; width: 26px; height: 18px; }
.lvh-burger .lvh-burger-t { position: static; }

/* ---------- mega panels ---------- */
.lvp {
  position: fixed; left: 0; right: 0; top: var(--lvh-h-s);
  background: var(--c-cream); color: var(--c-ink);
  border-top: 1px solid rgba(7, 40, 49, 0.25);
  border-bottom: 1px solid var(--line);
  opacity: 0; visibility: hidden; transform: translateY(-6px); pointer-events: none;
  transition: opacity 200ms var(--ease-out), transform 240ms var(--ease-out), visibility 0s linear 240ms;
  max-height: calc(100vh - var(--lvh-h-s)); overflow-y: auto; overscroll-behavior: contain;
  z-index: 3;
}
.lvh-item.is-open > .lvp,
.lvh:not(.js-lvh) .lvh-item.has-panel:hover > .lvp,
.lvh:not(.js-lvh) .lvh-item.has-panel:focus-within > .lvp {
  opacity: 1; visibility: visible; transform: none; pointer-events: auto;
  transition: opacity 200ms var(--ease-out), transform 240ms var(--ease-out), visibility 0s;
}
.lvp-in {
  display: grid; gap: clamp(22px, 2.8vw, 60px);
  grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(300px, 0.95fr);
  padding: clamp(26px, 2.4vw, 42px) var(--gutter) clamp(30px, 2.8vw, 48px);
  align-items: start;
}
.lvp[data-cols="3"] .lvp-in { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(280px, 0.9fr); }
.lvp-h {
  font-family: var(--f-ui); font-weight: 700; font-size: 0.74rem; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--c-terracotta); padding-bottom: 0.7rem; margin-bottom: 0.5rem; border-bottom: 1px solid var(--line);
}
.lvp-col ul { display: grid; gap: 2px; }
.lvp-link {
  display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 14px; align-items: center;
  padding: 8px 10px 8px 8px; border-radius: 2px; transition: background 160ms var(--ease-out);
}
.lvp-link:hover, .lvp-link:focus-visible { background: var(--c-sand); }
.lvp-link:focus-visible { outline: 2px solid var(--c-terracotta); outline-offset: 1px; }
.lvp-link[aria-current] { background: rgba(212, 80, 42, 0.08); }
.lvp-th { width: 76px; height: 57px; overflow: hidden; border-radius: 2px; background: var(--c-sand); display: block; }
.lvp-th img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms var(--ease-out); }
.lvp-link:hover .lvp-th img { transform: scale(1.06); }
.lvp-tx { display: grid; gap: 2px; min-width: 0; }
.lvp-t { font-family: var(--f-display); font-weight: 700; font-size: clamp(1.02rem, 0.9rem + 0.3vw, 1.18rem); line-height: 1.15; letter-spacing: -0.005em; color: var(--c-ink); transition: color 160ms; }
.lvp-link:hover .lvp-t { color: var(--c-terracotta); }
.lvp-d { font-size: 0.84rem; color: #5f5a51; line-height: 1.35; }
.lvp-en { display: inline-block; margin-left: 0.45em; padding: 0.1em 0.4em; font-family: var(--f-ui); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.08em; color: var(--c-ocean); background: var(--c-sand); border-radius: 2px; vertical-align: 0.2em; }

.lvp-feat { display: grid; grid-template-rows: auto 1fr; background: var(--c-ocean); color: var(--c-cream); min-height: 100%; }
.lvp-feat-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--c-ocean-deep); }
.lvp-feat-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-out); }
.lvp-feat:hover .lvp-feat-img img { transform: scale(1.04); }
.lvp-feat-body { display: grid; gap: 0.45rem; align-content: start; padding: 1.1rem 1.25rem 1.3rem; }
.lvp-feat-e { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-lime); }
.lvp-feat-t { font-family: var(--f-display); font-weight: 800; font-size: clamp(1.25rem, 1rem + 0.6vw, 1.6rem); line-height: 1.1; letter-spacing: -0.01em; }
.lvp-feat-d { font-size: 0.9rem; color: rgba(245, 239, 228, 0.82); line-height: 1.45; }
.lvp-feat-c { margin-top: 0.35rem; font-weight: 700; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-cream); }
.lvx-arr { display: inline-block; transition: transform 240ms var(--ease-out); }
.lvp-feat:hover .lvx-arr, .lvm-feat:hover .lvx-arr { transform: translateX(4px); }
.lvp-feat:focus-visible { outline: 2px solid var(--c-terracotta); outline-offset: 2px; }

.lvh-scrim { position: fixed; inset: 0; background: rgba(7, 40, 49, 0.42); opacity: 0; visibility: hidden; transition: opacity 220ms var(--ease-out), visibility 0s linear 220ms; z-index: 98; }
.lvh-scrim.is-on { opacity: 1; visibility: visible; transition: opacity 220ms var(--ease-out), visibility 0s; }

@media (max-width: 1440px) {
  .lvp-in { grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(260px, 0.85fr); }
  .lvp[data-cols="3"] .lvp-in { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(240px, 0.8fr); }
  .lvp-link { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; }
  .lvp-th { width: 64px; height: 48px; }
}

/* ---------- mobile overlay ---------- */
.lvm { position: fixed; inset: 0; z-index: 99; background: var(--c-ocean); color: var(--c-cream); overflow-y: auto; overscroll-behavior: contain;
  opacity: 0; visibility: hidden; transform: translateY(-2%); transition: opacity 260ms var(--ease-out), transform 360ms var(--ease-cine), visibility 0s linear 360ms; }
.lvm[hidden] { display: block; }
.lvm.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity 260ms var(--ease-out), transform 360ms var(--ease-cine), visibility 0s; }
.lvm-in { padding: calc(var(--lvh-h-s) + 18px) var(--gutter) 48px; display: grid; gap: 22px; max-width: 760px; }
.lvm-feat { display: grid; grid-template-columns: 42% 1fr; background: var(--c-ocean-deep); border: 1px solid var(--line-d); }
.lvm-feat-img { display: block; overflow: hidden; min-height: 120px; }
.lvm-feat-img img { width: 100%; height: 100%; object-fit: cover; }
.lvm-feat-body { display: grid; gap: 4px; padding: 14px 16px; align-content: center; }
.lvm-feat-e { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-lime); }
.lvm-feat-t { font-family: var(--f-display); font-weight: 800; font-size: 1.25rem; line-height: 1.1; }
.lvm-feat-d { display: none; }
.lvm-feat-c { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.lvm-list { display: grid; }
.lvm-g { border-bottom: 1px solid var(--line-d); }
.lvm-gb, .lvm-gl { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 2px; font-family: var(--f-display); font-weight: 800; font-size: clamp(1.6rem, 6.6vw, 2.3rem); line-height: 1.05; color: var(--c-cream); text-align: left; }
.lvm-gl { justify-content: flex-start; }
.lvm-gl .lvh-pin { width: 18px; height: 23px; }
.lvm-gb .lvh-chev { width: 16px; height: 10px; transition: transform 240ms var(--ease-out); }
.lvm-gb[aria-expanded="true"] .lvh-chev { transform: rotate(180deg); }
.lvm-gb:focus-visible, .lvm-gl:focus-visible, .lvm-sub a:focus-visible { outline: 2px solid var(--c-lime); outline-offset: 2px; }
.lvm-sub { display: none; padding: 0 0 16px 2px; gap: 2px; }
.lvm-g.is-open .lvm-sub { display: grid; }
.lvm-sub a { display: block; padding: 9px 0; font-size: 1.06rem; font-weight: 500; color: rgba(245, 239, 228, 0.9); }
.lvm-sub a:hover { color: var(--c-lime); }
.lvm-sub .lvm-hub { font-weight: 700; color: var(--c-lime); }
.lvm-sub .lvp-en { background: rgba(245, 239, 228, 0.14); color: var(--c-cream); }
.lvm-cta { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 6px; }
.lvm-ghost { color: var(--c-cream) !important; border-color: rgba(245, 239, 228, 0.6) !important; }
html.lvm-lock, html.lvm-lock body { overflow: hidden; }
@media (min-width: 1200px) { .lvm { display: none !important; } }

/* ---------- 3. FOOTER ---------- */
.site-footer.lvf { padding: clamp(3.5rem, 6vw, 6rem) var(--gutter) 2rem; background: var(--c-ocean-deep); color: var(--c-cream); }
.lvf-top { display: grid; grid-template-columns: minmax(280px, 1.1fr) minmax(0, 3fr); gap: clamp(2rem, 4vw, 5rem); }
.lvf-logo { font-family: var(--f-display); font-weight: 900; font-size: clamp(2.4rem, 1.6rem + 2.4vw, 4rem); line-height: 0.95; letter-spacing: -0.02em; }
.lvf-logo span { font-weight: 400; }
.lvf-blurb { margin-top: 1rem; color: #a9c1c6; max-width: 34em; line-height: 1.55; }
.lvf-btns { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.6rem; }
.lvf-ghost { color: var(--c-cream) !important; border-color: rgba(245, 239, 228, 0.55) !important; }
.lvf-cols { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(1.25rem, 2vw, 2.25rem); }
.lvf-h { font-weight: 700; font-size: 0.76rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-lime); margin-bottom: 1rem; }
.lvf-h a { color: inherit; }
.lvf-col ul { display: grid; gap: 0.15rem; }
.lvf-col a { display: inline-block; padding: 0.3rem 0; color: rgba(245, 239, 228, 0.88); font-size: 0.95rem; line-height: 1.3; transition: color 160ms; }
.lvf-col a:hover { color: var(--c-lime); }
.lvf-col a:focus-visible, .lvf-meta a:focus-visible { outline: 2px solid var(--c-lime); outline-offset: 2px; }
.site-footer.lvf .cavband { max-width: none; margin: clamp(2.5rem, 5vw, 4rem) 0 0; }
.lvf-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--line-d); font-size: 0.84rem; color: #a9c1c6; }
.lvf-meta a { color: #cfdfe2; text-decoration: underline; text-decoration-color: rgba(207, 223, 226, 0.35); text-underline-offset: 3px; }
.lvf-tm { margin-top: 1rem; font-size: 0.74rem; line-height: 1.5; color: #8aaab2; max-width: 70ch; }
@media (max-width: 1320px) { .lvf-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .lvf-top { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .lvf-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- 4. ARTICLE LAYOUT (journal) ---------- */
.lvx-phero { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); align-items: stretch; padding: 0; background: var(--c-sand); }
.lvx-phero > .wrap { padding: calc(var(--lvh-h) + clamp(2rem, 4vw, 4.5rem)) var(--gutter) clamp(2.5rem, 5vw, 5rem); align-self: center; }
.lvx-phero .breadcrumb { padding-top: 0; }
.lvx-phero h1 { font-size: clamp(2.3rem, 1.4rem + 2.8vw, 4.6rem); max-width: 14em; }
.lvx-phero .lede { max-width: 34em !important; }
.lvx-phero-fig { margin: 0; position: relative; min-height: 420px; overflow: hidden; background: var(--c-ocean); }
.lvx-phero-fig picture, .lvx-phero-fig img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-height: none !important; object-fit: cover; }
.lvx-phero-fig figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 0.6rem var(--gutter); font-size: 0.72rem; color: rgba(245, 239, 228, 0.85); background: linear-gradient(0deg, rgba(7, 40, 49, 0.7), rgba(7, 40, 49, 0)); }
@media (max-width: 1000px) {
  .lvx-phero { grid-template-columns: 1fr; }
  .lvx-phero-fig { min-height: 0; aspect-ratio: 3 / 2; }
}

.lvx-read { display: grid; grid-template-columns: minmax(200px, 0.9fr) minmax(0, var(--readw)) minmax(280px, 1.15fr); gap: clamp(28px, 3.4vw, 72px); padding: clamp(2.5rem, 5vw, 5rem) var(--gutter); align-items: start; }
.lvx-read > .post-body { max-width: var(--readw); margin: 0; padding: 0; min-width: 0; grid-column: 2; grid-row: 1; }
.lvx-toc { grid-column: 1; grid-row: 1; position: sticky; top: calc(var(--lvh-h-s) + 24px); max-height: calc(100vh - var(--lvh-h-s) - 48px); overflow: auto; }
.lvx-aside { grid-column: 3; grid-row: 1; position: sticky; top: calc(var(--lvh-h-s) + 24px); display: grid; gap: 18px; }
.lvx-toc p { font-weight: 700; font-size: 0.74rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-terracotta); padding-bottom: 0.7rem; border-bottom: 1px solid var(--line); margin-bottom: 0.4rem; }
.lvx-toc ol { counter-reset: toc; display: grid; }
.lvx-toc li a { display: block; padding: 0.42rem 0 0.42rem 0.8rem; border-left: 2px solid transparent; font-size: 0.9rem; line-height: 1.3; color: #4d4940; transition: color 160ms, border-color 160ms; }
.lvx-toc li a:hover, .lvx-toc li a.is-on { color: var(--c-ink); border-left-color: var(--c-terracotta); }
.lvx-card { background: var(--c-cream); border: 1px solid var(--line); display: grid; }
.lvx-card--dark { background: var(--c-ocean); color: var(--c-cream); border-color: transparent; }
.lvx-card-img { aspect-ratio: 16 / 10; overflow: hidden; display: block; }
.lvx-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-out); }
.lvx-card:hover .lvx-card-img img { transform: scale(1.04); }
.lvx-card-b { padding: 1rem 1.1rem 1.15rem; display: grid; gap: 0.45rem; }
.lvx-card-e { font-weight: 700; font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-terracotta); }
.lvx-card--dark .lvx-card-e { color: var(--c-lime); }
.lvx-card-t { font-family: var(--f-display); font-weight: 800; font-size: 1.28rem; line-height: 1.12; }
.lvx-card-d { font-size: 0.9rem; line-height: 1.45; color: #5f5a51; }
.lvx-card--dark .lvx-card-d { color: rgba(245, 239, 228, 0.82); }
.lvx-card .btn { justify-self: start; padding: 0.8rem 1.2rem; font-size: 0.75rem; margin-top: 0.3rem; }
.lvx-rel { display: grid; gap: 2px; }
.lvx-rel a { display: grid; grid-template-columns: 64px 1fr; gap: 12px; align-items: center; padding: 6px; border-radius: 2px; }
.lvx-rel a:hover { background: var(--c-sand); }
.lvx-rel img { width: 64px; height: 48px; object-fit: cover; border-radius: 2px; }
.lvx-rel span { font-family: var(--f-display); font-weight: 700; font-size: 0.98rem; line-height: 1.2; }
.post-body { font-family: var(--f-ui); font-size: clamp(1.02rem, 0.97rem + 0.2vw, 1.12rem); line-height: 1.72; }
.post-body li { font-family: var(--f-ui); }
.post-body .lede { font-family: var(--f-display); font-style: normal !important; }
.post-body h2 { scroll-margin-top: calc(var(--lvh-h-s) + 20px); }
@media (max-width: 1280px) {
  .lvx-read { grid-template-columns: minmax(0, var(--readw)) minmax(270px, 1fr); }
  .lvx-toc { display: none; }
  .lvx-read > .post-body { grid-column: 1; }
  .lvx-aside { grid-column: 2; }
}
@media (max-width: 960px) {
  .lvx-read { display: block; }
  .lvx-aside { position: static; margin-top: 3rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}

/* ---------- 5. SHARED PAGE COMPONENTS (new pages) ---------- */
.lvx-hero { position: relative; min-height: min(88vh, 900px); display: grid; align-items: end; color: var(--c-cream); overflow: hidden; background: var(--c-ocean-deep); }
.lvx-hero-img { position: absolute; inset: 0; }
.lvx-hero-img img { width: 100%; height: 100%; object-fit: cover; }
.lvx-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,40,49,0.55) 0%, rgba(7,40,49,0.05) 30%, rgba(7,40,49,0.15) 55%, rgba(7,40,49,0.82) 100%); }
.lvx-hero-in { position: relative; z-index: 2; padding: calc(var(--lvh-h) + 3rem) var(--gutter) clamp(2.5rem, 5vw, 4.5rem); display: grid; gap: 1rem; }
.lvx-hero .breadcrumb { padding: 0; color: rgba(245, 239, 228, 0.75); }
.lvx-hero .breadcrumb a { color: var(--c-lime); }
.lvx-hero h1 { font-family: var(--f-display); font-weight: 900; font-size: clamp(2.8rem, 1.5rem + 5vw, 7rem); line-height: 0.92; letter-spacing: -0.025em; max-width: 13em; }
.lvx-hero p { max-width: 44em; font-size: var(--size-lede); line-height: 1.4; color: rgba(245, 239, 228, 0.92); }
.lvx-hero .kicker { color: var(--c-lime); }
.lvx-hero-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.4rem; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(245, 239, 228, 0.85); }
.lvx-hero-fig { position: absolute; right: var(--gutter); bottom: 1rem; z-index: 2; font-size: 0.7rem; color: rgba(245, 239, 228, 0.7); }

.lvx-band { padding: clamp(3.5rem, 7vw, 7.5rem) var(--gutter); position: relative; z-index: 2; }
.lvx-band--sand { background: var(--c-sand); }
.lvx-band--dark { background: var(--c-ocean); color: var(--c-cream); }
.lvx-band--deep { background: var(--c-ocean-deep); color: var(--c-cream); }
.lvx-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 5rem); align-items: end; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.lvx-head h2 { font-family: var(--f-display); font-weight: 900; font-size: clamp(2.1rem, 1.3rem + 2.8vw, 4.4rem); line-height: 0.96; letter-spacing: -0.02em; }
.lvx-head p { font-size: var(--size-lede); line-height: 1.45; max-width: 36em; }
.lvx-eyebrow { display: block; font-weight: 700; font-size: 0.76rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-terracotta); margin-bottom: 0.9rem; }
.lvx-band--dark .lvx-eyebrow, .lvx-band--deep .lvx-eyebrow { color: var(--c-lime); }
@media (max-width: 900px) { .lvx-head { grid-template-columns: 1fr; align-items: start; } }

.lvx-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 5rem); align-items: center; }
.lvx-split--rev > :first-child { order: 2; }
.lvx-split-media { overflow: hidden; }
.lvx-split-media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.lvx-prose { max-width: 66ch; font-size: clamp(1.02rem, 0.97rem + 0.2vw, 1.12rem); line-height: 1.7; }
.lvx-prose p + p, .lvx-prose p + ul, .lvx-prose ul + p { margin-top: 1rem; }
.lvx-prose h3 { font-family: var(--f-display); font-weight: 800; font-size: var(--size-h3); line-height: 1.1; margin: 1.8rem 0 0.7rem; }
.lvx-prose ul { list-style: none; display: grid; gap: 0.45rem; }
.lvx-prose ul li { padding-left: 1.2rem; position: relative; }
.lvx-prose ul li::before { content: ""; position: absolute; left: 0; top: 0.7em; width: 7px; height: 7px; background: var(--c-terracotta); }
.lvx-prose a, .lvx-link { color: var(--c-terracotta); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.lvx-band--dark .lvx-prose a, .lvx-band--deep .lvx-prose a { color: var(--c-lime); }
@media (max-width: 900px) { .lvx-split { grid-template-columns: 1fr; } .lvx-split--rev > :first-child { order: 0; } }

/* card grid that always fills its last row (no dead cells) */
.lvx-cards { display: flex; flex-wrap: wrap; gap: 3px; }
.lvx-cards > * { flex: 1 1 clamp(260px, 23%, 440px); min-width: 0; }
.lvx-gcard { position: relative; display: grid; min-height: clamp(320px, 34vw, 520px); color: var(--c-cream); overflow: hidden; background: var(--c-ocean-deep); }
.lvx-gcard img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-out); }
.lvx-gcard::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,40,49,0) 35%, rgba(7,40,49,0.86) 100%); }
.lvx-gcard:hover img { transform: scale(1.05); }
.lvx-gcard-b { position: relative; z-index: 2; align-self: end; padding: 1.4rem 1.4rem 1.5rem; display: grid; gap: 0.4rem; }
.lvx-gcard-e { font-weight: 700; font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-lime); }
.lvx-gcard-t { font-family: var(--f-display); font-weight: 800; font-size: clamp(1.45rem, 1.1rem + 1vw, 2.1rem); line-height: 1.02; }
.lvx-gcard-d { font-size: 0.95rem; line-height: 1.45; color: rgba(245, 239, 228, 0.88); max-width: 34em; }
.lvx-gcard:focus-visible { outline: 3px solid var(--c-lime); outline-offset: -3px; }

/* place rows (guide category pages) */
.lvx-places { display: grid; gap: 0; border-top: 1px solid var(--line); }
.lvx-place { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.3fr) minmax(220px, 0.7fr); gap: clamp(1.2rem, 3vw, 3.5rem); padding: clamp(1.6rem, 3vw, 2.8rem) 0; border-bottom: 1px solid var(--line); align-items: start; scroll-margin-top: calc(var(--lvh-h-s) + 16px); }
.lvx-place-img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--c-sand); }
.lvx-place-img img { width: 100%; height: 100%; object-fit: cover; }
.lvx-place-img--plate { display: grid; place-items: center; background: var(--c-ocean); color: var(--c-cream); text-align: center; padding: 1.5rem; }
.lvx-place-img--plate b { font-family: var(--f-display); font-weight: 900; font-size: clamp(1.4rem, 1rem + 1.4vw, 2.3rem); line-height: 1; display: block; }
.lvx-place-img--plate span { display: block; margin-top: 0.7rem; font-family: var(--f-hand); font-size: 1.35rem; color: var(--c-lime); transform: rotate(-2deg); }
.lvx-place h3 { font-family: var(--f-display); font-weight: 800; font-size: clamp(1.55rem, 1.1rem + 1.2vw, 2.3rem); line-height: 1.04; margin-bottom: 0.6rem; }
.lvx-place .lvx-kick { font-weight: 700; font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-terracotta); display: block; margin-bottom: 0.5rem; }
.lvx-place p { max-width: 62ch; line-height: 1.65; }
.lvx-place p + p { margin-top: 0.8rem; }
.lvx-facts { display: grid; gap: 0.7rem; font-size: 0.92rem; background: var(--c-cream); border: 1px solid var(--line); padding: 1.1rem 1.2rem; }
.lvx-band--sand .lvx-facts { background: #f3ead9; }
.lvx-facts dt { font-weight: 700; font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: #6c665b; }
.lvx-facts dd { margin: 0.15rem 0 0; line-height: 1.4; }
.lvx-facts a { color: var(--c-terracotta); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1100px) { .lvx-place { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); } .lvx-facts { grid-column: 1 / -1; } }
@media (max-width: 700px) { .lvx-place { grid-template-columns: 1fr; } }

/* photo grids — rectangular blocks only, so rows always close */
.lvx-photos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3px; }
.lvx-photos figure { margin: 0; position: relative; overflow: hidden; background: var(--c-ocean-deep); aspect-ratio: 4 / 3; }
.lvx-photos figure.is-wide { grid-column: span 2; aspect-ratio: auto; }
.lvx-photos figure.is-big { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.lvx-photos img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-out); }
.lvx-photos a:hover img { transform: scale(1.04); }
.lvx-photos figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 2rem 0.9rem 0.75rem; font-size: 0.82rem; line-height: 1.35; color: var(--c-cream); background: linear-gradient(0deg, rgba(7, 40, 49, 0.85), rgba(7, 40, 49, 0)); }
.lvx-photos figcaption small { display: block; font-size: 0.68rem; opacity: 0.75; margin-top: 0.2rem; }
@media (max-width: 900px) { .lvx-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lvx-photos figure.is-big { grid-row: span 1; aspect-ratio: 4 / 3; } }
@media (max-width: 520px) { .lvx-photos { grid-template-columns: 1fr; } .lvx-photos figure.is-wide, .lvx-photos figure.is-big { grid-column: auto; aspect-ratio: 4 / 3; } }

/* facts strip, FAQ, CTA */
.lvx-stats { display: flex; flex-wrap: wrap; gap: 3px; }
.lvx-stats > div { flex: 1 1 200px; background: rgba(245, 239, 228, 0.06); border: 1px solid var(--line-d); padding: 1.2rem 1.3rem; }
.lvx-stats b { display: block; font-family: var(--f-display); font-weight: 900; font-size: clamp(1.8rem, 1.2rem + 1.6vw, 3rem); line-height: 1; color: var(--c-cream); }
.lvx-stats span { display: block; margin-top: 0.45rem; font-size: 0.86rem; color: rgba(245, 239, 228, 0.8); }
.lvx-faq { display: grid; gap: 0; border-top: 1px solid var(--line); max-width: 980px; }
.lvx-faq details { border-bottom: 1px solid var(--line); }
.lvx-faq summary { cursor: pointer; list-style: none; padding: 1.15rem 2.5rem 1.15rem 0; position: relative; font-family: var(--f-display); font-weight: 700; font-size: clamp(1.1rem, 0.95rem + 0.5vw, 1.4rem); line-height: 1.25; }
.lvx-faq summary::-webkit-details-marker { display: none; }
.lvx-faq summary::after { content: "+"; position: absolute; right: 0.3rem; top: 50%; transform: translateY(-50%); font-family: var(--f-ui); font-weight: 400; font-size: 1.6rem; color: var(--c-terracotta); transition: transform 200ms; }
.lvx-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.lvx-faq details > div { padding: 0 0 1.3rem; max-width: 72ch; line-height: 1.65; }
.lvx-faq summary:focus-visible { outline: 2px solid var(--c-terracotta); outline-offset: 2px; }
.lvx-cta { background: var(--c-terracotta); color: var(--c-cream); padding: clamp(3.5rem, 7vw, 7rem) var(--gutter); display: grid; grid-template-columns: minmax(0, 1.3fr) auto; gap: 2rem; align-items: end; position: relative; z-index: 2; }
.lvx-cta h2 { font-family: var(--f-display); font-weight: 900; font-size: clamp(2.2rem, 1.3rem + 3.2vw, 5rem); line-height: 0.95; letter-spacing: -0.02em; max-width: 14em; }
.lvx-cta p { margin-top: 1rem; max-width: 40em; font-size: 1.08rem; line-height: 1.5; }
.lvx-cta .btn { background: var(--c-ocean-deep); }
.lvx-cta .btn:hover { background: var(--c-ocean); }
.lvx-cta .btn--ghost { background: transparent; color: var(--c-cream); border-color: var(--c-cream); }
.lvx-cta-b { display: flex; flex-wrap: wrap; gap: 0.75rem; }
@media (max-width: 800px) { .lvx-cta { grid-template-columns: 1fr; align-items: start; } }
.lvx-note { font-family: var(--f-hand); font-size: 1.35rem; color: var(--c-terracotta); display: inline-block; transform: rotate(-2deg); }
.lvx-band--dark .lvx-note, .lvx-band--deep .lvx-note { color: var(--c-lime); }
.lvx-credit { font-size: 0.72rem; color: #6c665b; margin-top: 0.45rem; }
.lvx-band--dark .lvx-credit, .lvx-band--deep .lvx-credit { color: rgba(245, 239, 228, 0.6); }

/* amenities */
.lvx-amen { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 3px; }
.lvx-amen section { background: var(--c-cream); border: 1px solid var(--line); padding: 1.3rem 1.3rem 1.4rem; }
.lvx-band--sand .lvx-amen section { background: #f3ead9; }
.lvx-amen h3 { font-family: var(--f-display); font-weight: 800; font-size: 1.3rem; margin-bottom: 0.8rem; }
.lvx-amen li { padding: 0.35rem 0 0.35rem 1.4rem; position: relative; border-top: 1px dashed var(--line); font-size: 0.96rem; }
.lvx-amen li::before { content: ""; position: absolute; left: 0; top: 0.85em; width: 8px; height: 8px; background: var(--c-terracotta); }
.lvx-amen li.is-no { color: #6c665b; }
.lvx-amen li.is-no::before { background: transparent; border: 1.5px solid #8a8479; width: 7px; height: 7px; }

/* map teaser on other pages */
.lvx-mapteaser { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); background: var(--c-ocean-deep); color: var(--c-cream); min-height: clamp(420px, 44vw, 680px); z-index: 2; }
.lvx-mapteaser-img { position: relative; overflow: hidden; }
.lvx-mapteaser-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--ease-out); }
.lvx-mapteaser:hover .lvx-mapteaser-img img { transform: scale(1.03); }
.lvx-mapteaser-b { padding: clamp(2.5rem, 5vw, 5rem) var(--gutter); display: grid; gap: 1rem; align-content: center; }
.lvx-mapteaser-b h2 { font-family: var(--f-display); font-weight: 900; font-size: clamp(2.2rem, 1.3rem + 3vw, 4.6rem); line-height: 0.95; letter-spacing: -0.02em; }
.lvx-mapteaser-b ul { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.4rem; }
.lvx-mapteaser-b li { padding: 0.4rem 0.75rem; border: 1px solid var(--line-d); font-size: 0.85rem; font-weight: 600; }
@media (max-width: 900px) { .lvx-mapteaser { grid-template-columns: 1fr; } .lvx-mapteaser-img { min-height: 320px; } }


/* ---------- depth hero (home) under the v2 header ---------- */
/* the headline is composed against the photo: keep its frame and its two lines */
.hero--depth .dh-title { max-width: 1440px; margin: 0 auto; }
.hero--depth .hero__title .w { display: block; }
.hero--depth .hero__content { padding-inline: max(var(--gutter), calc((100vw - 1440px) / 2 + var(--gutter))); }
/* the hero opens light (lilac ceiling): the transparent bar reads in ink until it turns solid */
body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel) .lvh-top { color: var(--c-ink); }
body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel) .lvh-top::after { background: var(--c-terracotta); }
body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel) .lang-switch__btn { color: var(--c-ink); border-color: rgba(15,15,14,0.35); background: rgba(245,239,228,0.35); }
body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel) .lvh-burger { color: var(--c-ink); }
body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel) .lvh-pin { --lvh-pin-dot: #f5efe4; }
body:has(.hero--depth) .site-header.lvh.is-panel,
body:has(.hero--depth) .site-header.lvh.is-panel .site-header__logo,
body:has(.hero--depth) .site-header.lvh.is-menu-open .site-header__logo { color: var(--c-cream); }
.site-header.lvh.is-panel .site-header__logo, .site-header.lvh.is-menu-open .site-header__logo { color: var(--c-cream); }

/* the hero film (hero-film.css/js, a separate session) darkens the top band on some beats:
   while html.hero-film-on is set, the transparent bar goes back to cream over its scrim */
html.hero-film-on body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel),
html.hero-film-on body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel) .site-header__logo,
html.hero-film-on body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel) .lvh-top,
html.hero-film-on body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel) .lvh-burger { color: var(--c-cream); }
html.hero-film-on body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel) .lvh-top::after { background: var(--c-lime); }
html.hero-film-on body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel)::before { opacity: 1; }
html.hero-film-on body:has(.hero--depth) .site-header.lvh:not(.is-scrolled):not(.is-menu-open):not(.is-panel) .lang-switch__btn { color: rgba(245,239,228,.9); border-color: rgba(245,239,228,.35); background: rgba(245,239,228,.06); }

.lvp-feat-img { aspect-ratio: 16 / 10; }
.lvx-toc li a { overflow-wrap: anywhere; }


/* sub-navigation on the apartment pages, tables, multi-column lists */
.lvx-subnav { position: sticky; top: var(--lvh-h-s); z-index: 20; background: var(--c-cream); border-bottom: 1px solid var(--line); padding: 0 var(--gutter); overflow-x: auto; scrollbar-width: none; }
.lvx-subnav::-webkit-scrollbar { display: none; }
.lvx-subnav ul { display: flex; gap: clamp(1rem, 2.2vw, 2.4rem); white-space: nowrap; }
.lvx-subnav a { display: block; padding: 1rem 0 0.9rem; font-weight: 600; font-size: 0.92rem; color: #4d4940; border-bottom: 2px solid transparent; }
.lvx-subnav a:hover { color: var(--c-ink); border-bottom-color: var(--c-sand); }
.lvx-subnav a[aria-current] { color: var(--c-ink); border-bottom-color: var(--c-terracotta); }
.lvx-subnav a:focus-visible { outline: 2px solid var(--c-terracotta); outline-offset: -2px; }
.lvx-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.lvx-table th { text-align: left; font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: #6c665b; padding: 0.6rem 0.8rem 0.6rem 0; border-bottom: 2px solid var(--c-ink); }
.lvx-table td { padding: 0.55rem 0.8rem 0.55rem 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.lvx-table a { color: var(--c-terracotta); text-decoration: underline; text-underline-offset: 3px; }
.lvx-cols { columns: 4 200px; column-gap: 2rem; }
.lvx-cols li { break-inside: avoid; }
.lvx-photos { grid-auto-flow: dense; }
.lvx-photos figure a { display: block; height: 100%; }
.lvx-band[id] { scroll-margin-top: calc(var(--lvh-h-s) + 56px); }


/* photo grids: fixed 4:3 row unit from the wrapper's width, so every cell (1x1, 2x1, 2x2) is filled */
.lvx-photos-wrap { container-type: inline-size; }
.lvx-photos-wrap > .lvx-photos { grid-auto-rows: calc((100cqw - 9px) / 4 * 0.75); }
.lvx-photos-wrap .lvx-photos figure, .lvx-photos-wrap .lvx-photos figure.is-wide, .lvx-photos-wrap .lvx-photos figure.is-big { aspect-ratio: auto; height: 100%; }
.lvx-photos figure > a, .lvx-photos figure picture { position: absolute; inset: 0; display: block; }
.lvx-photos figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lvx-photos figcaption { z-index: 2; pointer-events: none; }
@media (max-width: 900px) { .lvx-photos-wrap > .lvx-photos { grid-auto-rows: calc((100cqw - 3px) / 2 * 0.75); } .lvx-photos-wrap .lvx-photos figure.is-big { grid-row: span 2; } }
@media (max-width: 520px) { .lvx-photos-wrap > .lvx-photos { grid-auto-rows: calc(100cqw * 0.75); } .lvx-photos-wrap .lvx-photos figure.is-big { grid-row: span 1; } }


/* homepage: the neighborhood photo strip and the map/guide block */
.wiki-strip .lvx-photos-wrap { margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.lvx-home-more { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem 1.4rem; margin-top: 1.4rem; }
.lvx-home-more .lvx-credit { margin: 0; }
.lvx-mapteaser + .lvx-band { margin-top: 0; }


/* balanced card rows: 5 -> one row, 6 -> 3+3, 4 -> one row; wraps naturally below */
.lvx-cards[data-n="5"] > * { flex-basis: clamp(240px, 18%, 440px); }
.lvx-cards[data-n="6"] > *, .lvx-cards[data-n="3"] > * { flex-basis: clamp(260px, 30%, 640px); }
.lvx-cards[data-n="4"] > * { flex-basis: clamp(240px, 23%, 520px); }


/* the full-width grid lets scaled reveal images reach the viewport edge: clip them to their frame,
   and clip the root on the x axis (clip, not hidden: it creates no scroll container, so sticky still works) */
.mask-reveal { overflow: hidden; }
html { overflow-x: clip; }

/* reduce the old sticky-blur cost everywhere */
.site-header.is-scrolled { -webkit-backdrop-filter: none; backdrop-filter: none; }
