/* ======================================================================
   YUKI NO KUNI — SITE / PAGE-LEVEL STYLES
   Fixed overlays, masthead, nav, hero, magazine spread, manifesto,
   index grid, services, regions, journal, testimonial, closing, footer.
   Depends on tokens.css + components.css.
====================================================================== */

/* ============================================================
   LEGACY-OVERRIDE RESETS
   main.css ships .hero/.section/main rules from the old monolithic
   design that bleed into the new layout. These wins by load order +
   higher specificity (body main section.hero).
============================================================ */
body { background: var(--paper) !important; color: var(--ink); }
body > main { padding: 0; margin: 0; }
body main section.hero {
  background: var(--paper);
  color: var(--ink);
  display: block;
  min-height: 0;
  padding: 80px 0 100px;
  align-items: stretch;
}
body main section.hero h1,
body main section.hero h1.hero-title { color: var(--ink); }
body main section.hero p.hero-lede { color: var(--ink-2); }
body main section.section,
body main section.spread,
body main section.testi,
body main section.manifesto,
body main section.map-section,
body main section.closing,
body main section.listings-section,
body main section.region-hero,
body main section.region-brief,
body main section.region-listings,
body main section.article-body,
body main section.article-foot,
body main section.static-page,
body main section.journal-list-page,
body main section.contact-confirm,
body main header.page-head,
body main header.article-hero,
body main header.detail-hero {
  display: block;
  min-height: 0;
}
body main section.section-dark { background: var(--ink); color: var(--paper-0); }
body main section.section.paper-0-bg { background: var(--paper-0); }
body main section.section.paper-1-bg { background: var(--paper-1); }

/* ============================================================
   UNIFIED TYPE SCALE
   Discipline across the site — fewer distinct sizes, deliberate ratios.
   Display 1 (hero):      clamp(40, 4.6vw, 68)
   Display 2 (sec):       clamp(32, 3.6vw, 48)
   Display 3 (spread):    clamp(28, 3vw, 40)
   Title:                 22-24
   Lede:                  19  (italic)
   Body:                  17
   Caption / meta:        13.5-14 (italic)
   Eyebrow:               10.5-11 (tracked .22em uppercase)
============================================================ */
.sec-title { font-size: clamp(32px, 3.6vw, 48px) !important; line-height: 1.08 !important; letter-spacing: -0.018em; }
.sec-num .roman { font-size: 56px !important; }
.page-title { font-size: clamp(40px, 4.4vw, 64px) !important; line-height: 1.06 !important; }
.spread-h, h3.spread-h { font-size: clamp(28px, 3vw, 40px) !important; line-height: 1.08 !important; }
.region-card-name { font-size: 32px !important; }
.region-card-deck { font-size: 15.5px !important; }
.tier-name { font-size: 32px !important; }
.tier-price { font-size: 44px !important; }
.tier-price .currency { font-size: 22px !important; }
.entry-h { font-size: 21px !important; line-height: 1.22 !important; }
.entry-price { font-size: 23px !important; }
.j-h { font-size: 22px !important; line-height: 1.22 !important; }
.j-num { font-size: 36px !important; }
.testi-q { font-size: clamp(24px, 2.8vw, 34px) !important; line-height: 1.4 !important; }
.manifesto-q { font-size: clamp(22px, 2.6vw, 32px) !important; line-height: 1.45 !important; }
.manifesto-sig-text { font-size: 28px !important; }
.fact-v { font-size: 30px !important; }
.stat-v { font-size: 34px !important; }
.stat-v .currency { font-size: 18px !important; }
.detail-h1 { font-size: clamp(36px, 4.4vw, 60px) !important; line-height: 1.05 !important; }
.article-hero-h, h1.article-hero-h { font-size: clamp(36px, 4.4vw, 60px) !important; line-height: 1.05 !important; }
.article-hero-deck { font-size: 19px !important; line-height: 1.55 !important; }
.region-hero-h, h1.region-hero-h { font-size: clamp(44px, 6vw, 88px) !important; line-height: 0.98 !important; }
.region-hero-deck { font-size: 19px !important; }
.region-brief p.lede-p { font-size: 20px !important; }
.region-brief p { font-size: 17px !important; }
.region-brief h2 { font-size: 26px !important; }
.closing h2 { font-size: clamp(40px, 5vw, 72px) !important; line-height: 1.02 !important; }
.closing-sub { font-size: 19px !important; }
.services-head h2 { font-size: clamp(36px, 4.4vw, 56px) !important; }
.services-sub { font-size: 18px !important; }
.hero-lede { font-size: 19px !important; line-height: 1.55 !important; max-width: 480px !important; }
.guide-card-h { font-size: 21px !important; }

/* ============================================================
   FIXED OVERLAY LAYERS
============================================================ */

/* ===== falling snow (CSS-only) ===== */
.snowfall{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.snowfall span{
  position:absolute;top:-20px;
  background:var(--paper-0);border-radius:50%;
  opacity:0.6;
  animation:snowFall linear infinite;
}
@keyframes snowFall{
  0%{transform:translateY(-10vh) translateX(0)}
  100%{transform:translateY(110vh) translateX(40px)}
}

/* ===== vertical kanji signature (left edge) ===== */
.signature{
  position:fixed;left:28px;top:50%;transform:translateY(-50%);
  z-index:9;pointer-events:none;
  display:flex;flex-direction:column;gap:24px;align-items:center;
  writing-mode:vertical-rl;
  font-family:var(--jp);font-weight:300;
  font-size:13px;letter-spacing:.7em;
  color:var(--ink);opacity:0.34;
  mix-blend-mode:multiply;
}
.signature::before,.signature::after{content:"";width:1px;height:80px;background:var(--ink);opacity:0.5}
@media(max-width:1280px){.signature{display:none}}

/* ===== sticky chapter rail (right side) ===== */
.chapters{
  position:fixed;right:32px;top:50%;transform:translateY(-50%);
  z-index:9;display:flex;flex-direction:column;gap:18px;
  font-family:var(--serif);font-size:12px;font-style:italic;color:var(--ink-3);
  align-items:flex-end;
}
.chapter{
  display:flex;align-items:center;gap:14px;
  text-decoration:none;color:var(--ink-3);
  padding:6px 0;cursor:pointer;
  transition:color 300ms var(--ease);
  opacity:0.5;
}
.chapter:hover{color:var(--ink);opacity:1}
.chapter.active{color:var(--vermillion);opacity:1}
.chapter-label{font-family:var(--serif);font-size:12px;font-style:italic;letter-spacing:.04em;opacity:0;transform:translateX(8px);transition:all 350ms var(--ease)}
.chapter:hover .chapter-label,.chapter.active .chapter-label{opacity:1;transform:translateX(0)}
.chapter-mark{
  display:flex;align-items:center;justify-content:center;
  width:24px;height:24px;border:1px solid currentColor;border-radius:50%;
  font-family:var(--serif);font-style:italic;font-size:10px;font-weight:500;
  flex-shrink:0;
  transition:all 300ms var(--ease);
}
.chapter.active .chapter-mark{background:var(--vermillion);color:var(--paper-0);border-color:var(--vermillion)}
@media(max-width:1280px){.chapters{display:none}}

/* ===== live indexing widget ===== */
.indexing-widget{
  position:fixed;bottom:28px;right:28px;z-index:9;
  background:var(--paper-0);border:1px solid var(--rule);
  padding:14px 18px 14px 16px;
  display:flex;align-items:center;gap:14px;
  font-family:var(--sans);font-size:11px;letter-spacing:.08em;
  color:var(--ink-2);font-weight:500;
  box-shadow:0 8px 24px -12px rgba(19,18,14,0.18);
  max-width:340px;
}
.indexing-dot{
  width:8px;height:8px;background:var(--vermillion);border-radius:50%;
  animation:pulse 2s infinite;flex-shrink:0;position:relative;
}
.indexing-dot::after{
  content:"";position:absolute;inset:-4px;border:1px solid var(--vermillion);
  border-radius:50%;animation:ripple 2s infinite;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}
@keyframes ripple{0%{opacity:0.6;transform:scale(0.8)}100%{opacity:0;transform:scale(1.8)}}
.indexing-text{display:flex;flex-direction:column;gap:2px;line-height:1.3}
.indexing-text small{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.indexing-text .where{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink);letter-spacing:.01em;font-weight:500;transition:opacity 240ms ease}
@media(max-width:780px){.indexing-widget{display:none}}

/* ===== floating briefing pill ===== */
.briefing-pill{
  position:fixed;bottom:28px;left:50%;transform:translate(-50%,40px);
  z-index:9;background:var(--ink);color:var(--paper-0);
  padding:13px 22px 13px 18px;border-radius:999px;
  display:flex;align-items:center;gap:12px;
  font-family:var(--serif);font-size:14px;font-style:italic;font-weight:500;
  box-shadow:0 16px 40px -16px rgba(19,18,14,0.4);
  opacity:0;transition:opacity 400ms,transform 500ms var(--ease-out);
  cursor:pointer;text-decoration:none;
}
.briefing-pill.visible{opacity:1;transform:translate(-50%,0)}
.briefing-pill .dot{width:6px;height:6px;background:var(--vermillion-soft);border-radius:50%}
.briefing-pill:hover{background:var(--pine-deep)}
@media(max-width:780px){.briefing-pill{font-size:13px;padding:11px 18px}}

/* ============================================================
   MASTHEAD STRIP
============================================================ */
.masthead{
  background:var(--paper-0);border-bottom:1px solid var(--rule);
  font-family:var(--sans);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-3);font-weight:500;
  position:relative;z-index:5;
}
.masthead-inner{
  display:flex;justify-content:space-between;align-items:center;
  padding:11px var(--pad-x);max-width:var(--col-wide);margin:0 auto;gap:24px;flex-wrap:wrap;
}
.masthead .ml,.masthead .mr{display:flex;align-items:center;gap:22px}
.masthead b{color:var(--ink);font-weight:600;letter-spacing:.1em}
.masthead .accent{color:var(--vermillion);font-weight:600}
.masthead .sep{color:var(--ink-4);font-size:8px}
.snow-reading{display:inline-flex;align-items:center;gap:6px}
.snow-reading::before{content:"❄";color:var(--vermillion);font-size:11px;letter-spacing:0}
@media(max-width:980px){.masthead .mr{display:none}}

/* ============================================================
   NAV
============================================================ */
.site-nav{
  position:sticky;top:0;z-index:8;
  background:rgba(244,239,225,0.93);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--rule);
  padding:20px 0;
}
.site-nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--pad-x);max-width:var(--col-wide);margin:0 auto;gap:24px;
}
.nav-links{display:flex;gap:38px;font-size:14px;font-weight:500;color:var(--ink-2)}
.nav-links a{position:relative;padding:8px 0;transition:color 250ms}
.nav-links a::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:var(--ink);transform:scaleX(0);transform-origin:left;
  transition:transform 350ms var(--ease);
}
.nav-links a:hover,.nav-links a.active{color:var(--ink)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-right{display:flex;align-items:center;gap:28px}
.nav-signin{font-family:var(--serif);font-size:15px;font-style:italic;color:var(--ink-3);font-weight:400}
.nav-signin em{color:var(--ink);font-style:italic}
.nav-cta{
  font-family:var(--serif);font-size:15.5px;font-style:italic;font-weight:500;
  color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px;
  transition:all 250ms var(--ease);
}
.nav-cta:hover{color:var(--vermillion);border-color:var(--vermillion)}
.nav-signout{background:none;border:none;font-family:var(--serif);font-size:15px;font-style:italic;color:var(--ink-3);cursor:pointer;padding:0}
.nav-signout:hover{color:var(--ink)}
@media(max-width:1080px){.nav-links{display:none}}

/* ============================================================
   HERO
============================================================ */
.hero{position:relative;padding:80px 0 100px;overflow:hidden}
.hero-grid{
  display:grid;grid-template-columns:1.05fr 1fr;
  gap:84px;align-items:stretch;position:relative;
}
@media(max-width:1100px){.hero-grid{grid-template-columns:1fr;gap:56px}}
.hero-left{display:flex;flex-direction:column;justify-content:center;position:relative}
.hero-meta{
  display:flex;align-items:center;gap:14px;margin-bottom:40px;
  font-family:var(--sans);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ink-3);font-weight:500;
}
.hero-meta::before{content:"";width:48px;height:1px;background:var(--ink-3)}
.hero-meta b{font-weight:600;color:var(--ink)}
.hero-meta em{color:var(--vermillion);font-style:normal;font-weight:600}
h1.hero-title{
  font-family:var(--serif);
  font-size:clamp(40px, 4.6vw, 68px);
  line-height:1.06;font-weight:400;letter-spacing:-0.02em;
  color:var(--ink);margin-bottom:32px;
  max-width:100%;
}
h1.hero-title .ln{display:block;opacity:0;transform:translateY(24px);animation:rise 1.1s var(--ease-out) forwards}
h1.hero-title .ln1{font-weight:500;animation-delay:0.05s}
h1.hero-title .ln2{font-style:italic;font-weight:300;color:var(--ink-2);animation-delay:0.2s}
h1.hero-title .ln3{font-weight:500;animation-delay:0.35s}
h1.hero-title .amp{font-family:var(--serif);font-style:italic;color:var(--vermillion);font-weight:300}
@keyframes rise{to{opacity:1;transform:translateY(0)}}
.hero-lede{
  font-family:var(--serif);font-size:22px;line-height:1.55;
  color:var(--ink-2);max-width:520px;margin-bottom:48px;font-weight:400;
  opacity:0;animation:rise 1.1s var(--ease-out) 0.5s forwards;
}
.hero-actions{display:flex;align-items:center;gap:32px;flex-wrap:wrap;opacity:0;animation:rise 1.1s var(--ease-out) 0.65s forwards}

/* hero visual — real photograph with editorial brand treatment */
.hero-vis{
  position:relative;aspect-ratio:5/7;background:var(--paper-1);overflow:hidden;
  box-shadow:0 32px 64px -24px rgba(19,18,14,0.4);
}
.hero-vis picture,.hero-vis picture img,.hero-vis-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(0.7) contrast(1.04) brightness(0.96);
}
/* duotone-style tint over the photograph */
.hero-vis::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(150deg,rgba(168,51,31,0.10) 0%,transparent 45%,rgba(19,18,14,0.18) 100%);
  mix-blend-mode:multiply;
}
.hero-vis::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,transparent 50%,rgba(19,18,14,0.6) 100%);
}
/* legacy SVG class — kept as no-op for safety if older templates still load */
.hero-vis-svg{position:absolute;inset:0;width:100%;height:100%;display:none}
.hero-vis-photo{display:none}
.hero-vis-tag{
  position:absolute;bottom:9%;left:13%;right:13%;
  background:var(--paper-0);padding:20px 24px;display:flex;align-items:center;
  justify-content:space-between;gap:16px;z-index:3;
  border-top:2px solid var(--vermillion);
  box-shadow:0 12px 32px -16px rgba(19,18,14,0.25);
}
.hero-vis-tag-l{display:flex;flex-direction:column;gap:2px}
.hero-vis-tag-num{font-family:var(--serif);font-size:11px;font-style:italic;color:var(--ink-3);letter-spacing:.04em;margin-bottom:2px}
.hero-vis-tag-loc{font-family:var(--serif);font-size:19px;font-weight:500;color:var(--ink);letter-spacing:-0.005em;line-height:1.1}
.hero-vis-tag-spec{font-family:var(--sans);font-size:10px;color:var(--ink-3);letter-spacing:.16em;text-transform:uppercase;margin-top:5px;font-weight:600}
.hero-vis-tag-price{font-family:var(--serif);font-size:32px;font-weight:500;color:var(--ink);letter-spacing:-0.02em;line-height:1;white-space:nowrap}
.hero-vis-tag-price small{font-size:13px;color:var(--ink-3);font-family:var(--sans);letter-spacing:.1em;font-weight:600;text-transform:uppercase;margin-left:2px}
.hero-vis-issue{
  position:absolute;top:20px;left:20px;z-index:3;
  font-family:var(--serif);font-size:11px;font-style:italic;
  color:var(--paper-0);letter-spacing:.04em;
  text-shadow:0 1px 6px rgba(0,0,0,0.5);
}
.hero-vis-credit{
  position:absolute;top:20px;right:20px;z-index:3;
  font-family:var(--serif);font-size:10px;font-style:italic;
  color:var(--paper-0);letter-spacing:.04em;
  writing-mode:vertical-rl;text-orientation:mixed;
  text-shadow:0 1px 6px rgba(0,0,0,0.5);
}

/* ============================================================
   STATBAR
============================================================ */
.statbar{
  background:var(--paper-0);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  padding:36px 0;position:relative;z-index:5;
}
.statbar-inner{
  display:grid;grid-template-columns:repeat(5,1fr);align-items:center;
  max-width:var(--col);margin:0 auto;padding:0 var(--pad-x);gap:32px;
}
@media(max-width:980px){.statbar-inner{grid-template-columns:repeat(2,1fr);gap:24px}}
.stat{display:flex;flex-direction:column;gap:6px;border-left:1px solid var(--rule);padding-left:24px}
.stat:first-child{border-left:none;padding-left:0}
@media(max-width:980px){.stat{border-left:none;padding-left:0}}
.stat-v{
  font-family:var(--serif);font-size:42px;font-weight:400;
  color:var(--ink);letter-spacing:-0.025em;line-height:1;
}
.stat-v em{font-style:italic;font-weight:300;color:var(--vermillion)}
.stat-v .currency{font-size:22px;vertical-align:top;color:var(--ink-3);margin-right:2px;font-weight:300}
.stat-l{font-family:var(--sans);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.stat-sub{font-family:var(--serif);font-size:12px;font-style:italic;color:var(--ink-4);margin-top:2px}

/* ============================================================
   MAGAZINE SPREAD (asymmetric feature)
============================================================ */
.spread{position:relative;background:var(--paper);overflow:hidden;padding:0;margin:140px 0 0}
.spread-grid{display:grid;grid-template-columns:1.15fr 1fr;min-height:760px;align-items:stretch}
@media(max-width:980px){.spread-grid{grid-template-columns:1fr;min-height:auto}}
.spread-photo{position:relative;background:#1a1d17;overflow:hidden;min-height:560px}
.spread-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(0.62) contrast(1.06)}
.spread-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(168,51,31,0.1) 0%,transparent 40%,rgba(19,18,14,0.4) 100%)}
.spread-photo-meta{position:absolute;bottom:32px;left:32px;right:32px;z-index:3;display:flex;justify-content:space-between;align-items:flex-end;color:var(--paper-0);font-family:var(--serif)}
.spread-photo-meta .pm-l{font-style:italic;font-size:13px;color:rgba(252,249,239,0.85)}
.spread-photo-meta .pm-r{font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:rgba(252,249,239,0.7)}
.spread-plate{position:absolute;top:32px;left:32px;z-index:3;background:var(--vermillion);color:var(--paper-0);padding:7px 14px;font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.spread-body{padding:96px 80px;display:flex;flex-direction:column;justify-content:center;gap:24px;background:var(--paper)}
@media(max-width:780px){.spread-body{padding:56px 28px}}
.spread-eyebrow{font-family:var(--sans);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--vermillion);font-weight:600;display:flex;align-items:center;gap:10px}
.spread-eyebrow::before{content:"";width:32px;height:1px;background:var(--vermillion)}
.spread-locale{font-family:var(--serif);font-size:14px;font-style:italic;color:var(--ink-3);letter-spacing:.02em}
.spread-locale b{color:var(--ink-2);font-weight:500;font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-right:10px;border-right:1px solid var(--rule);padding-right:10px}
h3.spread-h{font-family:var(--serif);font-size:clamp(36px,4.2vw,56px);line-height:1.04;font-weight:400;letter-spacing:-0.025em}
.spread-h em{font-style:italic;color:var(--ink-2)}
.spread-deck{font-family:var(--serif);font-size:19px;line-height:1.55;color:var(--ink-2);font-style:italic;font-weight:300;max-width:520px}
.spread-stats{display:grid;grid-template-columns:repeat(4,auto);gap:36px;padding:24px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:8px}
@media(max-width:560px){.spread-stats{grid-template-columns:repeat(2,1fr);gap:24px}}
.spread-stat{display:flex;flex-direction:column;gap:4px}
.spread-stat .v{font-family:var(--serif);font-size:30px;font-weight:500;color:var(--ink);letter-spacing:-0.02em;line-height:1}
.spread-stat .v em{font-style:italic;font-weight:300}
.spread-stat .v .currency{font-size:18px;color:var(--ink-3);vertical-align:top}
.spread-stat .l{font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);font-weight:500}
.spread-cta{display:flex;align-items:center;gap:32px;flex-wrap:wrap;margin-top:8px}

/* ============================================================
   MANIFESTO
============================================================ */
.manifesto{padding:160px 0;background:var(--paper-0);position:relative;overflow:hidden}
.manifesto::before,.manifesto::after{content:"";position:absolute;left:50%;transform:translateX(-50%);width:1px;height:80px;background:var(--ink);opacity:0.35}
.manifesto::before{top:48px}.manifesto::after{bottom:48px}
.manifesto-inner{max-width:780px;margin:0 auto;padding:0 var(--pad-x)}
.manifesto-tag{font-family:var(--sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--vermillion);font-weight:600;text-align:center;margin-bottom:48px}
.manifesto-tag::before,.manifesto-tag::after{content:"";display:inline-block;width:24px;height:1px;background:var(--vermillion);vertical-align:middle;margin:0 14px}
.manifesto-q{font-family:var(--serif);font-size:clamp(26px,3.4vw,40px);line-height:1.38;font-weight:400;color:var(--ink);letter-spacing:-0.01em;position:relative}
.manifesto-q::before{content:"\201C";position:absolute;left:-56px;top:-38px;font-size:130px;line-height:1;color:var(--vermillion);opacity:0.4;font-style:italic;font-weight:400}
@media(max-width:780px){.manifesto-q::before{left:0;top:-44px;font-size:80px}}
.manifesto-q em{font-style:italic;color:var(--ink-2)}
.manifesto-q .accent{color:var(--vermillion);font-style:italic}
.manifesto-q p{margin-bottom:28px}
.manifesto-sign{display:flex;align-items:center;gap:20px;margin-top:56px;padding-top:36px;border-top:1px solid var(--rule)}
.manifesto-sig-text{font-family:var(--serif);font-size:38px;font-style:italic;font-weight:400;color:var(--ink);letter-spacing:-0.005em;line-height:1}
.manifesto-sig-meta{flex:1;border-left:1px solid var(--rule);padding-left:20px;display:flex;flex-direction:column;gap:3px}
.manifesto-sig-name{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink);letter-spacing:.04em}
.manifesto-sig-role{font-family:var(--serif);font-size:14px;font-style:italic;color:var(--ink-3)}

/* ============================================================
   SECTIONS
============================================================ */
.section{padding:140px 0;position:relative;z-index:2}
.section.paper-0-bg{background:var(--paper-0)}
.section.paper-1-bg{background:var(--paper-1)}

/* ============================================================
   THE INDEX (listings grid)
============================================================ */
.index-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px 36px}
@media(max-width:1080px){.index-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.index-grid{grid-template-columns:1fr}}
.index-more{display:flex;justify-content:center;margin-top:80px}

/* empty state */
.index-empty{grid-column:1/-1;text-align:center;padding:80px 32px;border:1px dashed var(--rule)}
.index-empty p{font-family:var(--serif);font-size:18px;font-style:italic;color:var(--ink-3);margin-bottom:16px}

/* ============================================================
   SERVICES (dark, pricing ladder)
============================================================ */
.services-head{text-align:center;max-width:840px;margin:0 auto 88px}
.services-eyebrow{font-family:var(--sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--vermillion-soft);margin-bottom:28px;display:inline-block}
.services-eyebrow::before,.services-eyebrow::after{content:"";display:inline-block;width:36px;height:1px;background:var(--vermillion-soft);vertical-align:middle;margin:0 16px}
.services-head h2{font-family:var(--serif);font-size:clamp(40px,5vw,64px);line-height:1.02;font-weight:400;letter-spacing:-0.022em;color:var(--paper);margin-bottom:24px}
.services-head h2 em{font-style:italic;color:#d4c89a;font-weight:300}
.services-sub{font-family:var(--serif);font-size:20px;line-height:1.6;color:rgba(244,239,225,0.72);font-weight:300;font-style:italic}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid rgba(244,239,225,0.18);border-bottom:1px solid rgba(244,239,225,0.18)}
@media(max-width:980px){.services-grid{grid-template-columns:1fr}}

/* ============================================================
   MAP (interactive)
============================================================ */
.map-section{padding:140px 0;background:var(--paper-0);position:relative;overflow:hidden}
.map-wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:center;margin-top:48px}
@media(max-width:1080px){.map-wrap{grid-template-columns:1fr;gap:48px}}
.map-info{display:flex;flex-direction:column;gap:24px}
.map-info-deck{font-family:var(--serif);font-size:20px;line-height:1.55;color:var(--ink-2);font-weight:300;font-style:italic;max-width:480px}
.map-info-list{display:flex;flex-direction:column;border-top:1px solid var(--rule);margin-top:12px}
.map-pref-item{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--rule);cursor:pointer;transition:all 300ms var(--ease)}
.map-pref-item:hover,.map-pref-item.active{padding-left:14px;background:linear-gradient(90deg,rgba(168,51,31,0.05) 0%,transparent 50%)}
.map-pref-item.active .map-pref-name{color:var(--vermillion)}
.map-pref-name{font-family:var(--serif);font-size:22px;font-weight:500;letter-spacing:-0.01em;color:var(--ink);display:flex;align-items:baseline;gap:14px;transition:color 300ms}
.map-pref-name .jp{font-family:var(--jp);font-size:14px;color:var(--ink-3);font-weight:300}
.map-pref-stats{font-family:var(--sans);font-size:12px;letter-spacing:.04em;color:var(--ink-3);font-weight:500;display:flex;gap:14px;align-items:center}
.map-pref-stats b{color:var(--ink);font-weight:600;font-family:var(--serif);font-size:16px}
.map-pref-stats .sep{color:var(--ink-4)}
.map-svg-wrap{position:relative;aspect-ratio:5/6;background:var(--paper);overflow:hidden}
.map-svg{position:absolute;inset:0;width:100%;height:100%}
.map-region{fill:var(--paper-1);stroke:var(--ink);stroke-width:0.8;transition:fill 350ms var(--ease);cursor:pointer}
.map-region:hover{fill:var(--vermillion-soft)}
.map-region.active{fill:var(--vermillion)}
.map-label{font-family:var(--serif);font-size:12px;font-style:italic;fill:var(--ink-3);pointer-events:none}
.map-label-active{fill:var(--vermillion);font-weight:500}
.map-pin{fill:var(--vermillion);stroke:var(--paper-0);stroke-width:2}
.map-pin-pulse{fill:var(--vermillion);opacity:0.3;animation:mapPulse 2.4s infinite}
@keyframes mapPulse{0%{r:4;opacity:0.5}100%{r:14;opacity:0}}
.map-legend{position:absolute;bottom:20px;left:20px;background:var(--paper-0);padding:12px 16px;font-family:var(--serif);font-size:13px;font-style:italic;color:var(--ink-2);border-left:2px solid var(--vermillion)}
.map-legend strong{font-style:normal;font-family:var(--sans);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--ink);font-weight:600;display:block;margin-bottom:4px}

/* ============================================================
   REGIONS GRID
============================================================ */
.regions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
@media(max-width:980px){.regions-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.regions-grid{grid-template-columns:1fr}}
.regions-grid .region-card:nth-child(3n){border-right:none}
.regions-grid .region-card:nth-last-child(-n+3){border-bottom:none}
@media(max-width:980px){
  .regions-grid .region-card:nth-child(3n){border-right:1px solid var(--rule)}
  .regions-grid .region-card:nth-child(2n){border-right:none}
  .regions-grid .region-card:nth-last-child(-n+2){border-bottom:none}
  .regions-grid .region-card:nth-last-child(3){border-bottom:1px solid var(--rule)}
}
@media(max-width:640px){
  .regions-grid .region-card{border-right:none}
  .regions-grid .region-card:not(:last-child){border-bottom:1px solid var(--rule)}
  .regions-grid .region-card:last-child{border-bottom:none}
}

/* ============================================================
   JOURNAL
============================================================ */
.j-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:56px}
@media(max-width:780px){.j-list{grid-template-columns:1fr}}
.j-list .j-item:nth-child(2n){padding-left:40px;padding-right:0;border-left:1px solid var(--rule)}
@media(max-width:780px){.j-list .j-item:nth-child(2n){padding-left:0;border-left:none}}

/* ============================================================
   TESTIMONIAL
============================================================ */
.testi{padding:140px 0;background:var(--paper-0);text-align:center;position:relative}
.testi-inner{max-width:920px;margin:0 auto;padding:0 var(--pad-x);position:relative}
.testi-mark{font-family:var(--serif);font-size:180px;line-height:0.6;color:var(--vermillion);opacity:0.45;font-style:italic;font-weight:300;height:90px;display:block}
.testi-q{font-family:var(--serif);font-size:clamp(28px,3.5vw,42px);line-height:1.38;font-weight:400;color:var(--ink);letter-spacing:-0.012em;margin-bottom:48px}
.testi-q em{font-style:italic;color:var(--ink-2)}
.testi-author{display:inline-flex;align-items:center;gap:16px;padding-top:28px;border-top:1px solid var(--rule)}
.testi-author-name{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink);letter-spacing:.04em}
.testi-author-role{font-family:var(--serif);font-size:14px;font-style:italic;color:var(--ink-3)}
.testi-author-sep{color:var(--ink-4);font-size:10px}

/* ============================================================
   CLOSING CTA
============================================================ */
.closing{position:relative;padding:180px 0;color:var(--paper);overflow:hidden}
.closing-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(0.45) brightness(0.5) contrast(1.1);transform:scale(1.05);animation:kenburns 18s alternate infinite ease-in-out}
@keyframes kenburns{from{transform:scale(1.05) translate(0,0)}to{transform:scale(1.12) translate(-2%,1%)}}
.closing-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,29,20,0.5) 0%,rgba(19,18,14,0.85) 100%)}
.closing-inner{position:relative;z-index:2;max-width:920px;margin:0 auto;padding:0 var(--pad-x);text-align:center}
.closing-eyebrow{font-family:var(--sans);font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:rgba(244,239,225,0.7);font-weight:600;margin-bottom:28px;display:inline-block}
.closing-eyebrow::before,.closing-eyebrow::after{content:"";display:inline-block;width:36px;height:1px;background:rgba(244,239,225,0.55);vertical-align:middle;margin:0 16px}
.closing h2{font-family:var(--serif);font-size:clamp(52px,6.5vw,92px);line-height:1.0;font-weight:400;letter-spacing:-0.028em;margin-bottom:28px}
.closing h2 em{font-style:italic;font-weight:300;color:rgba(244,239,225,0.85)}
.closing-sub{font-family:var(--serif);font-size:22px;line-height:1.55;color:rgba(244,239,225,0.78);font-weight:300;font-style:italic;max-width:620px;margin:0 auto 52px}
.closing-actions{display:flex;align-items:center;gap:36px;flex-wrap:wrap;justify-content:center}

/* ============================================================
   FOOTER
============================================================ */
.site-footer{background:var(--ink);color:rgba(244,239,225,0.65);padding:104px 0 36px;position:relative;overflow:hidden}
.site-footer .vertical-kanji{position:absolute;top:80px;right:48px;writing-mode:vertical-rl;font-family:var(--jp);font-size:180px;font-weight:300;color:rgba(244,239,225,0.05);letter-spacing:.4em}
.ft-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:56px;margin-bottom:72px;position:relative;z-index:2;max-width:var(--col-wide);padding:0 var(--pad-x);margin-left:auto;margin-right:auto}
@media(max-width:980px){.ft-grid{grid-template-columns:1fr 1fr;gap:32px}}
.ft-tag{font-family:var(--serif);font-size:16px;line-height:1.55;font-style:italic;color:rgba(244,239,225,0.7);font-weight:300;max-width:340px;margin-top:24px}
.ft-newsletter{margin-top:36px}
.ft-col h4{font-family:var(--sans);font-size:10px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:#d4c89a;margin-bottom:24px}
.ft-col ul{list-style:none}
.ft-col li{padding:8px 0;font-family:var(--serif);font-size:16px;color:rgba(244,239,225,0.7);transition:color 200ms;cursor:pointer}
.ft-col li a{color:inherit}
.ft-col li:hover{color:var(--paper)}
.ft-bottom{border-top:1px solid rgba(244,239,225,0.12);padding-top:32px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-family:var(--sans);font-size:11.5px;letter-spacing:.04em;color:rgba(244,239,225,0.45);position:relative;z-index:2;max-width:var(--col-wide);padding-left:var(--pad-x);padding-right:var(--pad-x);margin:0 auto}
.ft-bottom .ft-sig{font-family:var(--serif);font-style:italic;font-size:13px;color:rgba(244,239,225,0.6)}

/* ============================================================
   SCROLL REVEAL
============================================================ */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}

/* ============================================================
   PAGE: LISTINGS INDEX
============================================================ */
.page-head{padding:80px 0 48px;border-bottom:1px solid var(--rule);background:var(--paper-0);position:relative;z-index:2}
.page-head-inner{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:end;max-width:var(--col);margin:0 auto;padding:0 var(--pad-x)}
@media(max-width:780px){.page-head-inner{grid-template-columns:1fr;gap:24px}}
.page-eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:18px;display:flex;align-items:center;gap:14px}
.page-eyebrow::before{content:"";width:36px;height:1px;background:var(--ink-3)}
.page-eyebrow b{color:var(--vermillion);font-weight:600}
h1.page-title{font-family:var(--serif);font-size:clamp(44px,5.8vw,82px);line-height:0.98;font-weight:400;letter-spacing:-0.028em;max-width:920px}
h1.page-title em{font-style:italic;font-weight:300;color:var(--ink-2)}
h1.page-title .accent{color:var(--vermillion);font-style:italic;font-weight:400}
.page-lede{font-family:var(--serif);font-size:18px;font-style:italic;color:var(--ink-2);font-weight:300;line-height:1.55;max-width:560px;margin-top:18px}
.page-stat-block{font-family:var(--serif);font-size:14px;font-style:italic;color:var(--ink-3);text-align:right;line-height:1.5;min-width:180px}
.page-stat-block b{display:block;font-family:var(--serif);font-size:40px;font-weight:400;color:var(--ink);letter-spacing:-0.02em;line-height:1;margin-bottom:6px;font-style:normal}

/* filter form (editorial) */
.filter-form{padding:32px 0;background:var(--paper);border-bottom:1px solid var(--rule);position:sticky;top:78px;z-index:7;backdrop-filter:saturate(180%) blur(8px)}
.filter-form-inner{display:flex;align-items:center;gap:18px;flex-wrap:wrap;max-width:var(--col);margin:0 auto;padding:0 var(--pad-x)}
.filter-form input[type="search"],.filter-form select{background:transparent;border:none;border-bottom:1px solid var(--rule);font-family:var(--serif);font-size:16px;color:var(--ink);padding:8px 4px;outline:none;font-style:italic;min-width:180px;transition:border-color 250ms}
.filter-form input[type="search"]::placeholder{color:var(--ink-3);font-style:italic}
.filter-form input[type="search"]:focus,.filter-form select:focus{border-bottom-color:var(--vermillion)}
.filter-form select{cursor:pointer}
.filter-form label{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:15px;font-style:italic;color:var(--ink-2);cursor:pointer}
.filter-form input[type="checkbox"]{accent-color:var(--vermillion);width:14px;height:14px}
.filter-form-submit{margin-left:auto;display:flex;align-items:center;gap:18px}
.filter-form-count{font-family:var(--serif);font-size:14px;font-style:italic;color:var(--ink-3)}
.filter-form-count b{color:var(--vermillion);font-style:normal;font-weight:600;font-family:var(--sans);font-size:13px;letter-spacing:.04em}
.filter-form button{font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--ink);background:transparent;border:1px solid var(--ink);padding:9px 18px;cursor:pointer;transition:all 250ms var(--ease)}
.filter-form button:hover{background:var(--ink);color:var(--paper-0)}

/* listings page grid */
.listings-section{padding:80px 0 120px;position:relative;z-index:2}
.listings-section .index-grid{margin-top:0}

/* empty state for filtered results */
.listings-empty{
  text-align:center;padding:120px 32px;border:1px dashed var(--rule);
  max-width:780px;margin:0 auto;background:var(--paper-0);
}
.listings-empty h3{font-family:var(--serif);font-size:32px;font-weight:400;letter-spacing:-0.02em;margin-bottom:14px;font-style:italic;color:var(--ink-2)}
.listings-empty p{font-family:var(--serif);font-size:17px;font-style:italic;color:var(--ink-3);margin-bottom:24px;font-weight:300}

/* Folio pagination — editorial style */
.folio{
  display:flex;justify-content:space-between;align-items:center;
  max-width:var(--col);margin:80px auto 0;padding:32px var(--pad-x) 0;
  border-top:1px solid var(--rule);font-family:var(--serif);
}
.folio a,.folio span{font-family:var(--serif);font-size:18px;font-style:italic;color:var(--ink);text-decoration:none;transition:color 250ms}
.folio a:hover{color:var(--vermillion)}
.folio .current{color:var(--ink-3);font-size:14px;letter-spacing:.06em}
.folio .current b{font-family:var(--serif);font-style:italic;color:var(--ink);font-size:20px;font-weight:400;letter-spacing:-0.02em;margin:0 6px}
.folio .nav-prev::before,.folio .nav-next::after{content:"";display:inline-block;width:24px;height:1px;background:currentColor;vertical-align:middle;margin:0 8px}

/* ============================================================
   PAGE: LISTING DETAIL (editorial spread)
============================================================ */
.detail-breadcrumb{padding:24px 0;font-family:var(--serif);font-size:13px;font-style:italic;color:var(--ink-3);background:var(--paper-0);border-bottom:1px solid var(--rule);position:relative;z-index:2}
.detail-breadcrumb-inner{max-width:var(--col);margin:0 auto;padding:0 var(--pad-x);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.detail-breadcrumb a{color:var(--ink-2);transition:color 250ms}
.detail-breadcrumb a:hover{color:var(--vermillion)}
.detail-breadcrumb .sep{color:var(--ink-4);font-family:var(--sans)}
.detail-breadcrumb b{color:var(--ink);font-weight:500;font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-style:normal}

.detail-hero{
  position:relative;min-height:540px;
  background:var(--ink);color:var(--paper-0);
  overflow:hidden;display:flex;align-items:flex-end;
}
.detail-hero-img{
  position:absolute;inset:0;background-size:cover;background-position:center;
  filter:saturate(0.62) contrast(1.06) brightness(0.65);
}
.detail-hero-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(19,18,14,0.2) 0%,rgba(19,18,14,0.85) 100%);
}
.detail-hero-plate{
  position:absolute;top:32px;left:32px;z-index:2;
  background:var(--vermillion);color:var(--paper-0);
  padding:7px 14px;font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;font-weight:600;
}
.detail-hero-inner{position:relative;z-index:2;max-width:var(--col);margin:0 auto;padding:80px var(--pad-x);width:100%}
.detail-locale{font-family:var(--serif);font-size:15px;font-style:italic;color:rgba(244,239,225,0.85);letter-spacing:.02em;margin-bottom:14px;display:flex;align-items:center;gap:14px}
.detail-locale b{color:var(--paper-0);font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-style:normal;border-right:1px solid rgba(244,239,225,0.3);padding-right:14px}
.detail-h1{font-family:var(--serif);font-size:clamp(40px,5.5vw,72px);line-height:1.02;font-weight:400;letter-spacing:-0.025em;color:var(--paper-0);max-width:920px;margin-bottom:20px}
.detail-h1 em{font-style:italic;font-weight:300;color:rgba(244,239,225,0.85)}
.detail-hero-tags{display:flex;gap:14px;margin-top:8px;flex-wrap:wrap}
.detail-hero-tag{font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;padding:5px 10px;background:rgba(252,249,239,0.12);color:var(--paper-0);border:1px solid rgba(252,249,239,0.2)}

.detail-body{padding:80px 0 120px;background:var(--paper)}
.detail-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:80px;max-width:var(--col);margin:0 auto;padding:0 var(--pad-x)}
@media(max-width:980px){.detail-grid{grid-template-columns:1fr;gap:48px}}

/* key facts table */
.detail-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:48px}
@media(max-width:640px){.detail-facts{grid-template-columns:repeat(2,1fr)}}
.fact{padding:24px 24px 24px 0;border-right:1px solid var(--rule)}
.fact:nth-child(4n),.fact:last-child{border-right:none}
@media(max-width:640px){.fact:nth-child(2n){border-right:none}.fact:nth-child(2n+1){border-right:1px solid var(--rule)}}
.fact-v{font-family:var(--serif);font-size:36px;font-weight:400;color:var(--ink);letter-spacing:-0.022em;line-height:1;margin-bottom:8px}
.fact-v em{font-style:italic;font-weight:300}
.fact-v .currency{font-size:20px;vertical-align:top;color:var(--ink-3);margin-right:2px;font-weight:300}
.fact-v .pos{font-family:var(--serif);font-size:18px;color:var(--ink-3);font-style:italic;margin-left:4px}
.fact-l{font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);font-weight:600}

.detail-deck{font-family:var(--serif);font-size:19px;line-height:1.65;color:var(--ink-2);font-weight:400;margin-bottom:32px;max-width:680px}

.detail-section-h{font-family:var(--serif);font-size:28px;font-weight:500;letter-spacing:-0.012em;line-height:1.15;margin:48px 0 20px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.detail-section-h em{font-style:italic;color:var(--ink-2)}

.detail-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:20px 0 40px}
.detail-photo{aspect-ratio:4/3;overflow:hidden;background:var(--paper-2);position:relative;display:block}
.detail-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(0.6) contrast(1.06);transition:transform 800ms var(--ease)}
.detail-photo:hover img{transform:scale(1.04);filter:saturate(0.8) contrast(1.08)}

.detail-source-text{
  background:var(--paper-0);border-left:2px solid var(--vermillion);
  padding:24px 28px;font-family:var(--serif);font-size:16px;line-height:1.65;
  color:var(--ink-2);margin:24px 0 40px;font-weight:300;
}
.detail-source-text-head{font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--vermillion);font-weight:600;margin-bottom:14px}

.detail-disclaimer{
  font-family:var(--serif);font-size:14px;line-height:1.6;color:var(--ink-3);
  font-style:italic;font-weight:300;padding:20px 0;border-top:1px solid var(--rule);
  margin-top:32px;max-width:680px;
}

/* detail aside (sticky) */
.detail-aside{position:sticky;top:120px;align-self:flex-start;display:flex;flex-direction:column;gap:20px}
.aside-card{background:var(--paper-0);border:1px solid var(--rule);padding:28px}
.aside-card h4{font-family:var(--serif);font-size:22px;font-weight:500;letter-spacing:-0.005em;margin-bottom:10px;line-height:1.2}
.aside-card h4 em{font-style:italic;color:var(--ink-2)}
.aside-card p{font-family:var(--serif);font-size:15px;font-style:italic;line-height:1.55;color:var(--ink-2);margin-bottom:20px;font-weight:300}
.aside-card .btn-prime{width:100%;justify-content:center}
.aside-source-meta{font-family:var(--serif);font-size:13px;font-style:italic;color:var(--ink-3);margin-top:14px;padding-top:14px;border-top:1px solid var(--rule)}
.aside-source-meta b{color:var(--ink-2);font-family:var(--sans);font-style:normal;font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;display:block;margin-bottom:4px}

.aside-save-form button{
  width:100%;padding:14px;font-family:var(--sans);font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:600;color:var(--ink);
  background:transparent;border:1px solid var(--ink);cursor:pointer;
  transition:all 250ms var(--ease);
}
.aside-save-form button.saved{background:var(--vermillion);border-color:var(--vermillion);color:var(--paper-0)}
.aside-save-form button:hover{background:var(--ink);color:var(--paper-0)}
.aside-save-form button.saved:hover{background:var(--pine-deep);border-color:var(--pine-deep)}

/* ============================================================
   PAGE: REGION (single prefecture)
============================================================ */
.region-hero{position:relative;padding:120px 0 80px;background:var(--paper-0);overflow:hidden;border-bottom:1px solid var(--rule)}
.region-hero-bg-kanji{
  position:absolute;top:-60px;right:-40px;
  font-family:var(--jp);font-size:520px;line-height:0.85;
  color:var(--ink);opacity:0.05;font-weight:300;pointer-events:none;
}
@media(max-width:780px){.region-hero-bg-kanji{font-size:320px}}
.region-hero-inner{position:relative;z-index:2;max-width:var(--col);margin:0 auto;padding:0 var(--pad-x)}
.region-hero-meta{font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:24px;display:flex;align-items:center;gap:14px}
.region-hero-meta::before{content:"";width:40px;height:1px;background:var(--ink-3)}
.region-hero-meta b{color:var(--ink);font-weight:600}
h1.region-hero-h{font-family:var(--serif);font-size:clamp(56px,8vw,128px);line-height:0.92;font-weight:400;letter-spacing:-0.03em;margin-bottom:24px;display:flex;align-items:baseline;gap:24px;flex-wrap:wrap}
h1.region-hero-h em{font-family:var(--jp);font-style:normal;font-weight:400;color:var(--ink-3);font-size:0.4em;letter-spacing:0.05em}
.region-hero-deck{font-family:var(--serif);font-size:22px;line-height:1.55;color:var(--ink-2);font-style:italic;font-weight:300;max-width:680px;margin-bottom:48px}
.region-stats-band{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding:32px 0;border-top:1px solid var(--rule);max-width:880px}
@media(max-width:640px){.region-stats-band{grid-template-columns:repeat(2,1fr);gap:24px}}
.region-stats-band .stat-v{font-size:36px}
.region-stats-band .stat-l{margin-top:4px}

.region-brief{padding:120px 0;background:var(--paper)}
.region-brief-inner{max-width:780px;margin:0 auto;padding:0 var(--pad-x)}
.region-brief h2{font-family:var(--serif);font-size:32px;font-weight:500;letter-spacing:-0.015em;line-height:1.15;margin:48px 0 20px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.region-brief h2 em{font-style:italic;color:var(--ink-2)}
.region-brief h2:first-child{margin-top:0}
.region-brief p{font-family:var(--serif);font-size:18px;line-height:1.7;color:var(--ink-2);margin-bottom:24px;font-weight:400}
.region-brief p.lede-p{font-family:var(--serif);font-size:22px;line-height:1.55;font-style:italic;color:var(--ink);font-weight:300;margin-bottom:32px}
.region-brief ul{list-style:none;margin:24px 0}
.region-brief ul li{padding:10px 0 10px 24px;position:relative;font-family:var(--serif);font-size:17px;line-height:1.6;color:var(--ink-2)}
.region-brief ul li::before{content:"";position:absolute;left:0;top:18px;width:12px;height:1px;background:var(--vermillion)}
.region-brief blockquote{border-left:2px solid var(--vermillion);padding:8px 0 8px 24px;margin:32px 0;font-family:var(--serif);font-size:20px;line-height:1.5;font-style:italic;color:var(--ink);font-weight:300}

.region-facts-table{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:32px 0}
@media(max-width:600px){.region-facts-table{grid-template-columns:1fr}}
.region-fact-row{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--rule-2);padding-right:24px}
.region-fact-row:nth-child(2n){padding-left:24px;padding-right:0;border-left:1px solid var(--rule)}
@media(max-width:600px){.region-fact-row:nth-child(2n){padding-left:0;border-left:none}}
.region-fact-row:last-child,.region-fact-row:nth-last-child(2){border-bottom:none}
.region-fact-l{font-family:var(--serif);font-size:14px;font-style:italic;color:var(--ink-3)}
.region-fact-v{font-family:var(--serif);font-size:18px;font-weight:500;color:var(--ink);letter-spacing:-0.005em}

.region-listings{padding:120px 0;background:var(--paper-0);position:relative;z-index:2}

/* ============================================================
   PAGE: GUIDE HUB + ARTICLE
============================================================ */
.guide-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
@media(max-width:980px){.guide-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.guide-cards{grid-template-columns:1fr}}
.guide-card{padding:40px 36px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transition:background 400ms var(--ease);display:flex;flex-direction:column;gap:14px;text-decoration:none;color:inherit;position:relative}
.guide-card:hover{background:var(--paper-1)}
.guide-card:nth-child(3n){border-right:none}
@media(max-width:980px){.guide-card:nth-child(3n){border-right:1px solid var(--rule)}.guide-card:nth-child(2n){border-right:none}}
@media(max-width:640px){.guide-card{border-right:none}}
.guide-card-num{font-family:var(--serif);font-size:14px;font-style:italic;color:var(--ink-3)}
.guide-card-cat{font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--vermillion);font-weight:600}
.guide-card-h{font-family:var(--serif);font-size:24px;font-weight:500;line-height:1.18;letter-spacing:-0.01em;color:var(--ink);transition:color 300ms}
.guide-card-h em{font-style:italic;color:var(--ink-2)}
.guide-card:hover .guide-card-h{color:var(--vermillion)}
.guide-card-deck{font-family:var(--serif);font-size:15px;line-height:1.55;color:var(--ink-2);font-weight:300;font-style:italic;flex:1}
.guide-card-meta{font-family:var(--sans);font-size:11px;letter-spacing:.04em;color:var(--ink-3);font-weight:500;padding-top:14px;border-top:1px solid var(--rule-2);display:flex;justify-content:space-between;gap:10px}

/* article body */
.article-body{padding:120px 0;background:var(--paper)}
.article-body .col-narrow{max-width:780px}
.article-body p{font-family:var(--serif);font-size:18px;line-height:1.7;color:var(--ink-2);margin-bottom:24px;font-weight:400}
.article-body p.lede-p{font-family:var(--serif);font-size:22px;line-height:1.55;font-style:italic;color:var(--ink);font-weight:300;margin-bottom:36px}
.article-body h2{font-family:var(--serif);font-size:34px;font-weight:500;letter-spacing:-0.018em;line-height:1.12;margin:56px 0 20px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.article-body h2 em{font-style:italic;color:var(--ink-2)}
.article-body h2:first-child{margin-top:0}
.article-body h3{font-family:var(--serif);font-size:24px;font-weight:500;letter-spacing:-0.012em;line-height:1.2;margin:32px 0 12px}
.article-body h3 em{font-style:italic;color:var(--ink-2)}
.article-body ul,.article-body ol{margin:20px 0 28px}
.article-body ul{list-style:none}
.article-body ul li{padding:10px 0 10px 24px;position:relative;font-family:var(--serif);font-size:17px;line-height:1.6;color:var(--ink-2)}
.article-body ul li::before{content:"";position:absolute;left:0;top:18px;width:12px;height:1px;background:var(--vermillion)}
.article-body ol{padding-left:0;counter-reset:list}
.article-body ol li{padding:10px 0 10px 36px;position:relative;font-family:var(--serif);font-size:17px;line-height:1.6;color:var(--ink-2);counter-increment:list}
.article-body ol li::before{content:counter(list,upper-roman);position:absolute;left:0;top:10px;color:var(--vermillion);font-family:var(--serif);font-style:italic;font-weight:500;width:24px;text-align:right}
.article-body blockquote{border-left:2px solid var(--vermillion);padding:8px 0 8px 28px;margin:32px 0;font-family:var(--serif);font-size:22px;line-height:1.5;font-style:italic;color:var(--ink);font-weight:300}
.article-body a{color:var(--vermillion);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:rgba(168,51,31,0.4);transition:text-decoration-color 250ms}
.article-body a:hover{text-decoration-color:var(--vermillion)}
.article-body div[id]{scroll-margin-top:120px}

/* article hero (used by guide article + journal article) */
.article-hero{padding:96px 0 56px;background:var(--paper-0);border-bottom:1px solid var(--rule);position:relative;z-index:2}
.article-hero-inner{max-width:880px;margin:0 auto;padding:0 var(--pad-x)}
.article-hero-meta{display:flex;align-items:center;gap:18px;margin-bottom:24px;font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.article-hero-cat{color:var(--vermillion);font-weight:600}
.article-hero-meta .sep{color:var(--ink-4);font-size:8px}
h1.article-hero-h{font-family:var(--serif);font-size:clamp(44px,5.6vw,76px);line-height:1.0;font-weight:400;letter-spacing:-0.026em;margin-bottom:24px}
h1.article-hero-h em{font-style:italic;font-weight:300;color:var(--ink-2)}
.article-hero-deck{font-family:var(--serif);font-size:22px;line-height:1.5;color:var(--ink-2);font-style:italic;font-weight:300;max-width:680px;margin-bottom:32px}
.article-hero-byline{font-family:var(--serif);font-size:14px;font-style:italic;color:var(--ink-3);display:flex;align-items:center;gap:14px;padding-top:24px;border-top:1px solid var(--rule);flex-wrap:wrap}
.article-hero-byline b{color:var(--ink);font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.16em;tex

/* ============================================================
   TYPOGRAPHY OVERRIDES (user feedback)
   - No drop caps
   - Small text bumped for legibility
   - Roman numerals demoted
============================================================ */

/* Eyebrows: was 10-11px, now 12px with stronger color */
.page-eyebrow,
.spread-eyebrow,
.sh-eyebrow,
.services-eyebrow,
.closing-eyebrow,
.article-hero-meta,
.region-hero-meta,
.hero-meta { font-size: 12px !important; color: var(--ink-2) !important; letter-spacing: .18em !important; }

/* Captions and meta */
.entry-locale,
.spread-locale,
.j-deck,
.entry-note,
.feat-deck,
.article-hero-deck,
.region-card-deck { font-size: 16px !important; color: var(--ink-2) !important; line-height: 1.55 !important; }

.entry-foot,
.j-meta,
.feat-byline,
.testi-author-role,
.feat-stat .l,
.spread-stat .l,
.stat-l,
.fact-l,
.region-card-stat-l,
.region-stat-l,
.token-var,
.cmp-tag,
.ticker-item,
.indexing-text small,
.hero-vis-tag-num,
.hero-vis-tag-spec { font-size: 13px !important; color: var(--ink-3) !important; }

/* Italic captions / credits — was hard to read */
.entry-locale,
.hero-vis-credit,
.hero-vis-issue,
.spread-photo-meta .pm-l,
.feat-hero-overlay,
.entry-overlay,
.article-hero-meta,
.j-meta { font-size: 13.5px !important; }

/* Page lede and editorial body text — keep generous */
.page-lede,
.region-hero-deck,
.hero-lede { font-size: 19px !important; line-height: 1.6 !important; color: var(--ink-2) !important; }

/* Section sec-num roman numerals — much smaller, less prominent */
.sec-num .roman { font-size: 28px !important; opacity: 0.5; line-height: 1; margin-bottom: 6px !important; }

/* Hero meta — replace bold "I." with a plain hairline marker */
.hero-meta b { font-weight: 600; color: var(--ink-2); }

/* Plate labels — drop to small, less attention */
.entry-plate,
.spread-plate,
.feat-hero-label { font-size: 10px !important; letter-spacing: .16em !important; }

/* Region card refinements */
.region-card-name { font-size: 36px !important; }
.region-card-stats { gap: 22px !important; }
.region-card-stat-v { font-size: 22px !important; }

/* Page title — tighten further on listings index etc. */
.page-title { line-height: 1.04 !important; }

/* Body prose — bump for readability */
.article-body p,
.region-brief p { font-size: 18px !important; line-height: 1.7 !important; color: var(--ink-2) !important; }
.article-body p.lede-p,
.region-brief p.lede-p { font-size: 21px !important; font-style: italic; font-weight: 300; color: var(--ink) !important; }

/* Manifesto — no drop cap, full italic */
.manifesto-q p:first-child { padding-left: 0 !important; }
.manifesto-q { font-style: italic; font-weight: 300; }

/* Indexing widget — bigger so it's legible at a glance */
.indexing-widget { font-size: 12px !important; }
.indexing-text .where { font-size: 15px !important; }

/* Region card photo background (NEW) */
.region-card { position: relative; }
.region-card-photo {
  position: absolute !important; inset: 0 !important; z-index: 0 !important;
  background-size: cover; background-position: center;
  opacity: 0.55; transition: opacity 500ms var(--ease);
  filter: saturate(0.45) contrast(1.02) brightness(0.95);
}
.region-card-photo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(244,239,225,0.78) 0%, rgba(244,239,225,0.66) 50%, rgba(244,239,225,0.86) 100%);
}
.region-card:hover .region-card-photo { opacity: 0.95; }
.region-card:hover .region-card-photo::after { background: linear-gradient(180deg, rgba(244,239,225,0.55) 0%, rgba(244,239,225,0.45) 50%, rgba(244,239,225,0.78) 100%); }
.region-card-photo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(244,239,225,0.95) 0%, rgba(244,239,225,0.80) 50%, rgba(244,239,225,0.92) 100%);
}
.region-card:hover .region-card-photo { opacity: 1; }
.region-card-kanji,
.region-card-num,
.region-card-head,
.region-card-deck,
.region-card-stats,
.region-card-link { position: relative; z-index: 2; }

/* Region page hero — add the photo treatment behind the kanji */
.region-hero-bg-photo {
  position: absolute !important; inset: 0 !important; z-index: 0 !important;
  background-size: cover !important; background-position: center !important;
  filter: saturate(0.55) contrast(1.05) brightness(0.95);
}
.region-hero-bg-photo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(252,249,239,0.92) 0%, rgba(252,249,239,0.80) 60%, rgba(252,249,239,0.95) 100%);
}
.region-hero-inner { position: relative; z-index: 2; }
