/*
Theme Name: dds_economicclubofmichiana.com
Author: Anjali Desai
Description: Analyst's desk theme for an Indian real estate intelligence site: graph-paper backgrounds, ledger cards, price map and investment breakdowns.
Version: 1.1
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ecmich
*/

/* ---------- Fonts ---------- */
@font-face {
    font-family: "Archivo";
    src: url("fonts/archivo-latin-wdth-normal.woff2") format("woff2-variations"), url("fonts/archivo-latin-wdth-normal.woff2") format("woff2");
    font-weight: 100 900;
    font-stretch: 62% 125%;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Archivo";
    src: url("fonts/archivo-latin-ext-wdth-normal.woff2") format("woff2-variations"), url("fonts/archivo-latin-ext-wdth-normal.woff2") format("woff2");
    font-weight: 100 900;
    font-stretch: 62% 125%;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face { font-family: "Roboto Condensed"; src: url("fonts/roboto-condensed-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Roboto Condensed"; src: url("fonts/roboto-condensed-latin-ext-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Roboto Condensed"; src: url("fonts/roboto-condensed-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Roboto Condensed"; src: url("fonts/roboto-condensed-latin-ext-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Roboto Condensed"; src: url("fonts/roboto-condensed-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Roboto Condensed"; src: url("fonts/roboto-condensed-latin-ext-700-normal.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/ibm-plex-mono-latin-ext-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/ibm-plex-mono-latin-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/ibm-plex-mono-latin-ext-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/ibm-plex-mono-latin-ext-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------- Tokens ---------- */
:root {
    --ink: #0E1B2A;
    --ink-2: #13263B;
    --ink-3: #0A1520;
    --grid-d: #1E3450;
    --paper: #F2EFE6;
    --paper-2: #F8F6F0;
    --grid-l: #D8D2C2;
    --tx-d: #F2EFE6;
    --mu-d: #8FA3B8;
    --tx-l: #12212F;
    --mu-l: #6C7A85;
    --saffron: #E8871E;
    --saffron-dk: #B86A12;
    --green: #2E7D5B;
    --red: #C0392B;
    --line: #2A4568;
    --f-display: "Archivo", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
    --f-ui: "Roboto Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
    --f-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    --grid-dark: linear-gradient(to right, rgba(30, 52, 80, .55) 1px, transparent 1px), linear-gradient(to bottom, rgba(30, 52, 80, .55) 1px, transparent 1px), linear-gradient(to right, rgba(30, 52, 80, .25) 1px, transparent 1px), linear-gradient(to bottom, rgba(30, 52, 80, .25) 1px, transparent 1px);
    --grid-light: linear-gradient(to right, rgba(216, 210, 194, .95) 1px, transparent 1px), linear-gradient(to bottom, rgba(216, 210, 194, .95) 1px, transparent 1px), linear-gradient(to right, rgba(216, 210, 194, .45) 1px, transparent 1px), linear-gradient(to bottom, rgba(216, 210, 194, .45) 1px, transparent 1px);
    --grid-size: 50px 50px, 50px 50px, 10px 10px, 10px 10px;
}

/* ---------- [hidden] guards (before component blocks) ---------- */
[hidden] { display: none !important; }
.cookie-banner[hidden] { display: none !important; }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
    margin: 0;
    overflow-x: hidden;
    background-color: var(--ink);
    background-image: var(--grid-dark);
    background-size: var(--grid-size);
    color: var(--tx-d);
    font-family: var(--f-mono);
    font-size: 0.9375rem;
    line-height: 1.7;
    overflow-wrap: break-word;
}
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--saffron); }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid var(--saffron); outline-offset: 2px; }
p { margin: 0 0 1em; }
h1, h2, h3, h4, h5, h6 { font-family: var(--f-display); font-stretch: 112%; line-height: 1.15; margin: 1.4em 0 .55em; hyphens: auto; overflow-wrap: break-word; }
p, li, dd, td, .card-excerpt, .drv-text { hyphens: auto; }
ul, ol { margin: 0 0 1em; padding-left: 1.4em; }
table { width: 100%; border-collapse: collapse; margin: 0 0 1.5em; font-size: .9em; }
th, td { border: 1px solid var(--line); padding: .55em .75em; text-align: left; vertical-align: top; }
th { font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .04em; font-weight: 500; }
code, pre, kbd { font-family: var(--f-mono); font-size: .9em; }
pre { overflow-x: auto; padding: 1em 1.2em; border: 1px solid var(--line); }
hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--saffron); color: var(--ink); padding: .6em 1em; font-family: var(--f-ui); text-transform: uppercase; text-decoration: none; }
.skip-link:focus { top: 12px; }

.shell { width: min(85%, 1240px); margin-inline: auto; }

/* ---------- Buttons ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5em;
    padding: .7em 1.4em;
    border: 1px solid var(--saffron-dk);
    border-radius: 2px;
    background: var(--saffron);
    color: var(--ink);
    font-family: var(--f-ui);
    font-weight: 500;
    font-size: .95rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-decoration: none;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    transition: background-color .15s, color .15s, transform .15s;
}
.btn:hover, .btn:focus-visible { background: var(--ink); color: var(--saffron); border-color: var(--saffron); transform: translate(-2px, -2px); box-shadow: 2px 2px 0 var(--saffron); }

/* ---------- Header ---------- */
.masthead { background: #0F1E30; border-bottom: 1px solid var(--line); position: relative; z-index: 20; }
.masthead-row { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.1rem 0; }
.brand { display: flex; align-items: center; gap: 1rem; text-decoration: none; min-width: 0; flex: 1 1 auto; }
.brand:hover { color: inherit; }
.brand-mark { flex: 0 0 auto; display: block; }
.brand-svg, .brand-logo { width: 56px; height: 56px; object-fit: contain; }
.brand-text { display: flex; flex-direction: column; min-width: 0; max-width: 70ch; }
.brand-name { font-family: var(--f-display); font-stretch: 118%; font-weight: 700; text-transform: uppercase; font-size: clamp(.85rem, 1.02vw, 1rem); line-height: 1.3; letter-spacing: .01em; color: var(--tx-d); }
.brand-desc { margin-top: .3rem; font-size: .74rem; line-height: 1.45; color: var(--mu-d); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.primary-nav { flex: 0 0 auto; }
.nav-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; }
.nav-list a { font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .06em; font-size: .95rem; color: var(--tx-d); text-decoration: none; padding: .3em 0; border-bottom: 1px solid transparent; }
.nav-list a:hover { color: var(--saffron); border-bottom-color: var(--saffron); }
.nav-list .current-menu-item > a, .nav-list .current_page_item > a { border-bottom-color: var(--tx-d); }
.nav-toggle { display: none; align-items: center; gap: .6rem; background: transparent; border: 1px solid var(--line); color: var(--tx-d); padding: .55rem .8rem; font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .08em; cursor: pointer; }
.nav-toggle-bars { position: relative; width: 18px; height: 2px; background: currentColor; display: block; }
.nav-toggle-bars::before, .nav-toggle-bars::after { content: ""; position: absolute; left: 0; width: 18px; height: 2px; background: currentColor; }
.nav-toggle-bars::before { top: -6px; }
.nav-toggle-bars::after { top: 6px; }

/* ---------- Section titles ---------- */
.sec-title {
    display: inline-block;
    margin: 0 0 1.6rem;
    padding-bottom: .35rem;
    border-bottom: 2px solid currentColor;
    font-family: var(--f-display);
    font-stretch: 110%;
    font-weight: 500;
    font-size: clamp(1.7rem, 3.2vw, 2.6rem);
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: .01em;
}
.sec-num { font-weight: 400; color: inherit; opacity: .9; margin-right: .2em; }
.fs-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem 2rem; flex-wrap: wrap; margin-bottom: .4rem; }
.fs-head .sec-title { margin-bottom: 1.4rem; }
.fs-head-link, .fs-head-note { font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .08em; font-size: .85rem; margin-bottom: 1.6rem; }
.fs-head-note { color: var(--mu-l); }
.fs-lead { font-size: .95rem; color: var(--mu-d); max-width: 46ch; }

/* ---------- Front sections ---------- */
.fs { padding: 4.5rem 0; position: relative; }
.fs-drivers { background-color: var(--paper); color: var(--tx-l); }
.fs-latest, .fs-districts {
    background-color: var(--paper);
    background-image: var(--grid-light);
    background-size: var(--grid-size);
    color: var(--tx-l);
    border-top: 1px solid var(--grid-l);
}
.fs-invest { background-color: #0F1D2D; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }

/* 01 Price map */
.fs-map { overflow: hidden; padding-bottom: 0; }
.fs-map-grid { display: grid; grid-template-columns: minmax(0, 34fr) minmax(0, 66fr); gap: 2rem; align-items: stretch; }
.fs-map-text { min-width: 0; display: flex; flex-direction: column; padding-bottom: 3rem; }
.pm-list { list-style: none; padding: 0; margin: 0 0 2rem; display: none; }
.pm-list li { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; gap: .1rem .6rem; padding: .55rem 0; border-top: 1px solid var(--line); font-size: .85rem; }
.pm-list li:last-child { border-bottom: 1px solid var(--line); }
.pm-list-num { grid-row: span 2; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--saffron); color: var(--ink); display: grid; place-items: center; font-weight: 600; font-size: .78rem; }
.pm-list strong { font-family: var(--f-ui); font-weight: 700; font-size: 1rem; }
.pm-list em { font-style: normal; color: var(--mu-d); grid-column: 2 / 4; }
.pm-tier { font-family: var(--f-ui); text-transform: uppercase; font-size: .75rem; letter-spacing: .08em; color: var(--saffron); justify-self: end; }
.pm-scale { margin-top: auto; display: flex; flex-direction: column; gap: .6rem; }
.pm-scale-title { font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; color: var(--mu-d); }
.pm-scale-body { display: flex; gap: .8rem; align-items: stretch; }
.pm-scale-bar { width: 14px; border: 1px solid var(--mu-d); background: linear-gradient(to bottom, #E8871E 0%, #8E5A2A 30%, #3C5675 60%, #24395A 85%, #1A2C44 100%); }
.pm-scale-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; justify-content: space-between; gap: .8rem; font-size: .8rem; color: var(--mu-d); }
.pm-figure { position: relative; margin: 0 -20% 0 0; min-width: 0; align-self: end; }
.pm-map { width: 100%; height: auto; }
.pm-pin { position: absolute; width: 0; height: 0; z-index: 2; }
.pm-dot {
    position: absolute;
    left: -12px;
    top: -12px;
    width: 24px;
    height: 24px;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    background: var(--saffron);
    box-shadow: 0 0 0 3px rgba(232, 135, 30, .25);
    color: transparent;
    font-size: 0;
}
.pm-dot::after { content: ""; position: absolute; left: 8px; top: 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--ink); }
.pm-label {
    position: absolute;
    top: 0;
    transform: translateY(-50%);
    width: 13.5rem;
    padding: .45rem .7rem;
    background: rgba(14, 27, 42, .88);
    border: 1px solid var(--line);
    font-size: .74rem;
    line-height: 1.4;
    color: var(--mu-d);
    display: flex;
    flex-direction: column;
}
.pm-label strong { font-family: var(--f-ui); font-size: 1rem; color: var(--tx-d); font-weight: 700; }
.pm-label-tier { color: var(--saffron); text-transform: uppercase; letter-spacing: .08em; font-family: var(--f-ui); font-size: .72rem; }
.pm-label::before { content: ""; position: absolute; top: 50%; height: 1px; background: var(--tx-d); width: 3.2rem; }
.pm-pin-left .pm-label, .pm-pin-left-up .pm-label, .pm-pin-left-low .pm-label { right: calc(100% + 4.6rem); left: auto; }
.pm-pin-left .pm-label::before, .pm-pin-left-up .pm-label::before, .pm-pin-left-low .pm-label::before { left: 100%; width: 4.2rem; }
.pm-pin-left-up .pm-label { top: -2.4rem; }
.pm-pin-left-up .pm-label::before { width: 4.6rem; transform-origin: left center; transform: rotate(20deg); }
.pm-pin-left-low .pm-label { top: 1.9rem; }
.pm-pin-left-low .pm-label::before { width: 4.6rem; transform-origin: left center; transform: rotate(-22deg); }
.pm-pin-right .pm-label { left: 4.4rem; top: 2.6rem; }
.pm-pin-right .pm-label::before { right: 100%; width: 4.6rem; transform-origin: right center; transform: rotate(32deg); }

/* 02 Drivers */
.stamp {
    display: inline-block;
    margin-bottom: 1.6rem;
    padding: .35rem 1rem;
    border: 3px double var(--red);
    color: var(--red);
    font-family: var(--f-display);
    font-stretch: 112%;
    font-weight: 800;
    font-size: 1.35rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    transform: rotate(-6deg);
    opacity: .9;
    background: repeating-linear-gradient(-45deg, rgba(192, 57, 43, .04) 0 3px, transparent 3px 6px);
}
.drv-table { border-top: 1.5px solid var(--tx-l); border-bottom: 1.5px solid var(--tx-l); }
.drv-row {
    display: grid;
    grid-template-columns: minmax(0, 13rem) minmax(0, 9.5rem) minmax(0, 1fr) minmax(0, 13rem);
    gap: 1.6rem;
    align-items: center;
    padding: .9rem 0;
    border-bottom: 1px solid #3B4F66;
}
.drv-row:last-child { border-bottom: 0; }
.drv-name { margin: 0; font-family: var(--f-ui); font-stretch: normal; font-weight: 700; font-size: 1.2rem; }
.drv-scheme { min-width: 0; }
.drv-scheme img { width: 100%; height: 4rem; object-fit: contain; object-position: left center; }
.drv-text { margin: 0; font-size: .84rem; line-height: 1.6; color: var(--tx-l); min-width: 0; }
.drv-effect { margin: 0; display: flex; align-items: center; gap: .6rem; font-family: var(--f-ui); font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; min-width: 0; }
.drv-effect svg { flex: 0 0 auto; }
.drv-up { color: var(--green); }
.drv-down { color: var(--red); }

/* 03 Latest + cards */
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1.25rem; }
.card-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    padding: 1.7rem 1rem 1rem;
    background: var(--paper-2);
    border: 1.5px solid var(--line);
    border-radius: 4px;
    color: var(--tx-l);
    transition: transform .15s, box-shadow .15s;
}
.card:hover { transform: translate(-3px, -3px); box-shadow: 3px 3px 0 var(--line); }
.card-no { position: absolute; top: .45rem; right: .7rem; font-size: .7rem; letter-spacing: .08em; color: var(--mu-l); }
.card::before { content: ""; position: absolute; top: 0; left: 1rem; width: 2.2rem; height: 3px; background: var(--saffron); }
.card-top { display: grid; grid-template-columns: minmax(0, 44%) minmax(0, 1fr); gap: .9rem; align-items: start; }
.card-thumb { min-width: 0; }
.card-thumb a { display: block; border: 1px solid var(--grid-l); background: var(--paper); }
.card-thumb img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.card-date { display: block; margin-top: .45rem; font-size: .75rem; color: var(--mu-l); }
.card-title { margin: 0; font-family: var(--f-ui); font-stretch: normal; font-weight: 700; font-size: 1.12rem; line-height: 1.22; min-width: 0; }
.card-title a { text-decoration: none; }
.card-title a:hover { color: var(--saffron-dk); text-decoration: underline; }
.card-body { flex: 1; display: flex; flex-direction: column; min-width: 0; margin-top: .7rem; }
.card-excerpt { font-size: .8rem; line-height: 1.6; color: #3A4A57; margin-bottom: .9rem; }
.card-excerpt p { margin: 0 0 0.5em; background: none; }
.card-excerpt a { color: inherit; }
.card-btn { margin-top: auto; width: 100%; }
.empty-note { font-size: .9rem; }

/* 04 Investment */
.fs-invest-grid { display: grid; grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); gap: 2rem; align-items: center; }
.fs-invest-text { min-width: 0; }
.ledger { margin: 1.6rem 0 1.8rem; padding: 1.1rem 1.3rem; border: 1px solid var(--line); background: rgba(19, 38, 59, .7); }
.ledger-cap { font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; color: var(--saffron); margin-bottom: .6rem; }
.ledger dl { margin: 0 0 .8rem; }
.ledger dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px dashed var(--line); font-size: .85rem; }
.ledger dt { color: var(--mu-d); }
.ledger dd { margin: 0; color: var(--tx-d); text-align: right; }
.ledger-note { margin: 0; font-size: .76rem; color: var(--mu-d); }
.tower { position: relative; margin: 0 auto; width: min(22rem, 52%); }
.tower-img { width: 100%; height: auto; }
.tw-tag { position: absolute; display: flex; flex-direction: column; width: 11rem; line-height: 1.2; transform: translateY(-1.1rem); }
.tw-tag em { font-style: normal; font-family: var(--f-ui); font-size: .9rem; color: var(--mu-d); }
.tw-tag strong { font-family: var(--f-display); font-stretch: 105%; font-weight: 400; font-size: 2rem; color: var(--tx-d); line-height: 1.15; }
.tw-tag small { font-size: .72rem; color: var(--mu-d); }
.tw-tag::before { content: ""; position: absolute; top: 1.1rem; height: 1px; width: 2.6rem; background: var(--mu-d); }
.tw-tag::after { content: ""; position: absolute; top: calc(1.1rem - 3px); width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--tx-d); background: var(--ink); }
.tw-r { left: calc(86% + 3.2rem); }
.tw-r::before { left: -3rem; }
.tw-r::after { left: -3.4rem; }
.tw-l { right: calc(86% + 3.2rem); text-align: right; align-items: flex-end; }
.tw-l::before { right: -3rem; }
.tw-l::after { right: -3.4rem; }
.tw-1 { top: 21%; }
.tw-2 { top: 45.5%; }
.tw-3 { top: 52%; }
.tw-4 { top: 70%; }
.tw-5 { top: 71%; }

/* 05 Directory */
.dir-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; align-items: stretch; }
.dir-col { min-width: 0; padding: .9rem 1.1rem 1rem; background: var(--paper-2); border: 1.5px solid var(--line); border-radius: 4px; }
.dir-col-title { margin: 0 0 .4rem; font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; color: var(--mu-l); }
.dir-item { border-bottom: 1px solid #9AA4AC; }
.dir-item:last-child { border-bottom: 0; }
.dir-item summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .45rem 0; cursor: pointer; }
.dir-item summary::-webkit-details-marker { display: none; }
.dir-name { font-family: var(--f-ui); font-weight: 500; font-size: 1.15rem; min-width: 0; }
.dir-item summary:hover .dir-name { color: var(--saffron-dk); }
.dir-spark { width: 46%; max-width: 8.5rem; height: 2.4rem; object-fit: cover; object-position: center bottom; flex: 0 0 auto; }
.dir-note { margin: 0 0 .7rem; font-size: .78rem; line-height: 1.55; color: #3A4A57; }
.dir-item-lead { border-bottom: 0; }
.dir-item-lead > summary { padding-top: 0; }
.dir-item-lead .dir-name { font-weight: 700; font-size: 1.3rem; }
.dir-item-lead .dir-name::after { content: "⌃"; display: inline-block; margin-left: .4rem; font-size: .9rem; transition: transform .2s; }
.dir-item-lead:not([open]) .dir-name::after { transform: rotate(180deg); }
.dir-state { font-size: .75rem; color: var(--mu-l); }
.dir-sub { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: .3rem .9rem; padding: .55rem 0; border-top: 1px solid #C9C2B0; }
.dir-sub-name { grid-column: 1 / -1; margin: 0; font-family: var(--f-ui); font-stretch: normal; font-weight: 700; font-size: .95rem; }
.dir-facts { margin: 0; display: grid; grid-template-columns: 1fr; gap: .1rem; font-size: .74rem; min-width: 0; }
.dir-facts div { display: flex; gap: .4rem; justify-content: space-between; }
.dir-facts dt { color: var(--mu-l); }
.dir-facts dd { margin: 0; text-align: right; }
.dir-spark-lg { width: 100%; max-width: none; height: 3.6rem; align-self: end; }

/* ---------- Inner pages ---------- */
.page-wrap { padding: 1.6rem 0 4.5rem; }
.crumbs { font-family: var(--f-ui); font-size: .85rem; letter-spacing: .04em; color: var(--mu-d); margin-bottom: 1.8rem; }
.crumbs a { color: var(--tx-d); text-decoration: none; border-bottom: 1px solid var(--line); }
.crumbs a:hover { color: var(--saffron); border-bottom-color: var(--saffron); }
.crumbs-sep { margin: 0 .35rem; color: var(--saffron); }
.crumbs-current { color: var(--mu-d); }
.layout-with-sidebar { display: grid; grid-template-columns: minmax(0, 67%) minmax(0, 27%); justify-content: space-between; align-items: start; }
.layout-single { display: block; }
.content-area { min-width: 0; }
.page-head { margin-bottom: 1.8rem; }
.page-kicker { margin: 0 0 .4rem; font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; color: var(--saffron); }
.page-kicker a { text-decoration: none; }
.page-title { margin: 0; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 700; font-stretch: 118%; text-transform: uppercase; padding-bottom: .4rem; border-bottom: 2px solid var(--tx-d); display: inline-block; }
.page-intro { margin-top: 1rem; color: var(--mu-d); max-width: 70ch; }
.page-intro p:last-child { margin-bottom: 0; }

.sheet {
    background-color: var(--paper);
    background-image: var(--grid-light);
    background-size: var(--grid-size);
    color: var(--tx-l);
    border: 1.5px solid var(--line);
    padding: 2.4rem 2.6rem;
    position: relative;
}
.sheet::before { content: ""; position: absolute; top: 0; left: 2.6rem; width: 3rem; height: 4px; background: var(--saffron); }
.entry-head { margin-bottom: 1.6rem; padding-bottom: 1rem; border-bottom: 1.5px solid var(--tx-l); }
.entry-head .page-kicker { color: var(--saffron-dk); }
.entry-title { margin: 0; font-size: clamp(1.7rem, 3.4vw, 2.6rem); font-weight: 700; font-stretch: 112%; color: var(--tx-l); }
.entry-meta { margin: .8rem 0 0; font-size: .8rem; color: var(--mu-l); }
.entry-meta-sep { margin: 0 .4rem; }
.entry-figure { margin: 0 0 1.8rem; border: 1px solid var(--grid-l); }
.entry-figure img { width: 100%; height: auto; }
.entry-content { font-size: .95rem; line-height: 1.8; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content h2 { font-size: 1.6rem; font-weight: 700; padding-bottom: .3rem; border-bottom: 1px solid var(--grid-l); }
.entry-content h3 { font-size: 1.25rem; font-weight: 700; }
.entry-content h4 { font-size: 1.05rem; }
.entry-content a { color: #1F4E79; }
.entry-content a:hover { color: var(--saffron-dk); }
.entry-content ul li::marker { color: var(--saffron-dk); }
.entry-content ol li::marker { color: var(--saffron-dk); font-weight: 600; }
.entry-content blockquote { margin: 1.6em 0; padding: 1.1em 1.4em; border-left: 4px solid var(--saffron); background: #E9E4D6; font-style: italic; }
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content table { background: var(--paper-2); }
.entry-content th { background: #E2DCCB; }
.entry-content th, .entry-content td { border-color: #8C97A1; }
.entry-content img { height: auto; }
.entry-content figure { margin: 1.6em 0; }
.entry-content figcaption, .wp-caption-text { font-size: .78rem; color: var(--mu-l); margin-top: .4rem; }
.alignleft { float: left; margin: .3em 1.4em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.4em; }
.aligncenter { margin-left: auto; margin-right: auto; }
.wp-caption { max-width: 100%; }
.sticky .card::after, .card.sticky::after { content: "Pinned"; position: absolute; top: .45rem; left: 3.6rem; font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; color: var(--red); }
.entry-tags { margin: 1.6rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.entry-tags a { font-size: .78rem; padding: .2em .6em; border: 1px solid var(--line); text-decoration: none; color: var(--tx-l); }
.entry-tags a:hover { background: var(--tx-l); color: var(--paper); }
.page-links { margin-top: 1.4rem; font-family: var(--f-ui); }
.entry-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.6rem 0; }
.entry-nav a { display: flex; flex-direction: column; gap: .25rem; padding: .9rem 1.1rem; border: 1px solid var(--line); text-decoration: none; font-size: .85rem; color: var(--tx-d); min-width: 0; }
.entry-nav a span { font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; color: var(--saffron); }
.entry-nav a:hover { background: var(--ink-2); }
.entry-nav-next { grid-column: 2; text-align: right; }

/* Pagination (type => plain) */
.pager { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin-top: 2.2rem; }
.pager .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 .8rem; border: 1px solid var(--line); color: var(--tx-d); text-decoration: none; font-family: var(--f-ui); font-size: .95rem; letter-spacing: .04em; }
.pager a.page-numbers:hover { border-color: var(--saffron); color: var(--saffron); }
.pager .page-numbers.current { background: var(--saffron); border-color: var(--saffron); color: var(--ink); font-weight: 700; }
.pager .page-numbers.dots { border: 0; min-width: auto; padding: 0 .3rem; }

/* Sidebar */
.sidebar { min-width: 0; background: var(--ink-2); border: 1px solid var(--line); padding: 1.5rem 1.4rem; color: var(--mu-d); }
.sidebar .widget { margin-bottom: 2rem; }
.sidebar .widget:last-child { margin-bottom: 0; }
.sidebar .widget-title { margin: 0 0 1rem; padding-bottom: .4rem; border-bottom: 1px solid var(--tx-d); font-family: var(--f-ui); font-stretch: normal; font-weight: 700; font-size: 1rem; text-transform: uppercase; letter-spacing: .1em; color: var(--tx-d); }
.sidebar ul { list-style: none; margin: 0; padding: 0; }
.sidebar li { padding: .55rem 0; border-bottom: 1px dashed var(--line); font-size: .85rem; line-height: 1.45; }
.sidebar li:last-child { border-bottom: 0; }
.sidebar a { color: var(--tx-d); text-decoration: none; }
.sidebar a:hover { color: var(--saffron); text-decoration: underline; }
.sidebar .post-date, .sidebar .rss-date { display: block; font-size: .72rem; color: var(--mu-d); }
.sidebar p, .sidebar .textwidget { color: var(--mu-d); font-size: .85rem; }
.sidebar .search-form { flex-direction: column; }

/* Forms */
.search-form { display: flex; gap: .5rem; flex-wrap: wrap; margin: 1rem 0; }
.search-field, .notes input[type="text"], .notes input[type="email"], .notes input[type="url"], .notes textarea {
    flex: 1 1 14rem;
    min-width: 0;
    width: 100%;
    padding: .7rem .85rem;
    border: 1px solid var(--line);
    border-radius: 0;
    background: #FBF9F3;
    color: var(--tx-l);
    font-family: var(--f-mono);
    font-size: .9rem;
}
.search-form .btn { flex: 0 0 auto; }

/* Comments */
.notes { margin-top: 1.6rem; background: var(--paper); color: var(--tx-l); border: 1.5px solid var(--line); padding: 2rem 2.4rem; }
.notes-title, .comment-reply-title { margin: 0 0 1.2rem; font-size: 1.4rem; font-weight: 700; font-stretch: 112%; color: var(--tx-l); }
.notes-count { font-family: var(--f-mono); font-size: .9rem; color: var(--saffron-dk); vertical-align: middle; }
.notes-list, .notes-list .children { list-style: none; margin: 0; padding: 0; }
.notes-list .children { padding-left: 1.6rem; border-left: 2px solid var(--grid-l); }
.note-body { padding: 1rem 0; border-bottom: 1px solid var(--grid-l); }
.note-meta { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; font-size: .8rem; color: var(--mu-l); }
.note-meta img { border-radius: 0; border: 1px solid var(--line); }
.note-author { font-family: var(--f-ui); font-weight: 700; font-size: 1rem; color: var(--tx-l); }
.note-pending { font-size: .8rem; color: var(--red); margin: .5rem 0 0; }
.note-text { font-size: .88rem; margin-top: .5rem; }
.note-reply a { font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; color: var(--saffron-dk); }
.notes-pager .page-numbers { color: var(--tx-l); }
.notes-closed { font-size: .85rem; color: var(--mu-l); }
.comment-form p { margin-bottom: 1rem; }
.comment-form label { display: block; font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; margin-bottom: .3rem; }
.comment-form .comment-form-cookies-consent { display: flex; gap: .5rem; align-items: flex-start; }
.comment-form .comment-form-cookies-consent label { text-transform: none; letter-spacing: 0; font-family: var(--f-mono); font-size: .78rem; }
.comment-notes, .logged-in-as { font-size: .8rem; color: var(--mu-l); }
.required { color: var(--red); }
#cancel-comment-reply-link { margin-left: .6rem; font-size: .8rem; color: var(--red); }

/* 404 */
.nf { text-align: left; }
.nf-code { margin: 0; font-family: var(--f-display); font-stretch: 125%; font-weight: 800; font-size: clamp(4.5rem, 14vw, 9rem); line-height: 1; color: transparent; -webkit-text-stroke: 2px var(--line); }
.nf .entry-title { margin: .6rem 0 1rem; }
.nf-text { max-width: 60ch; }
.nf-home { margin-top: 1.4rem; }
.empty-block .empty-note { color: var(--mu-d); }

/* ---------- Footer ---------- */
.colophon { position: relative; z-index: 1; background: var(--ink); color: var(--mu-d); margin-top: 0; padding: 2.6rem 0 1.6rem; }
.colophon-tab { position: absolute; left: 0; bottom: 100%; width: 50%; height: 2.2rem; background: var(--ink); border-top-right-radius: 10px; display: flex; align-items: center; }
.colophon-tab span { padding-left: 7.5%; font-family: var(--f-ui); text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; color: var(--tx-d); }
.colophon-cols { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr) minmax(0, 1.2fr); gap: 2.5rem; }
.colophon-col { min-width: 0; }
.colophon .widget { margin-bottom: 1.4rem; }
.colophon .widget-title { margin: 0 0 .7rem; font-family: var(--f-ui); font-stretch: normal; font-weight: 500; font-size: 1.25rem; color: var(--tx-d); }
.colophon .widget p, .colophon .textwidget { font-size: .82rem; line-height: 1.6; color: var(--mu-d); }
.colophon ul { list-style: none; margin: 0; padding: 0; }
.colophon li { margin-bottom: .45rem; font-family: var(--f-ui); font-size: .95rem; }
.colophon a { color: var(--tx-d); text-decoration: none; border-bottom: 1px solid transparent; }
.colophon a:hover { color: var(--saffron); border-bottom-color: var(--saffron); }
.colophon-copy { margin: 1.6rem 0 0; padding-top: 1.2rem; border-top: 1px solid var(--line); text-align: center; font-family: var(--f-ui); font-size: .9rem; color: var(--tx-d); }

/* ---------- Cookie banner ---------- */
.cookie-banner {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 90;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.6rem;
    max-width: 60rem;
    margin-inline: auto;
    padding: 1rem 1.4rem;
    background: var(--paper);
    color: var(--tx-l);
    border: 1.5px solid var(--line);
    box-shadow: 4px 4px 0 var(--saffron);
}
.cookie-text { margin: 0; font-size: .8rem; line-height: 1.5; }
.cookie-accept { flex: 0 0 auto; }

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
    .pm-label { width: 11.5rem; }
    .drv-row { grid-template-columns: minmax(0, 10rem) minmax(0, 8rem) minmax(0, 1fr) minmax(0, 11rem); gap: 1.2rem; }
}
@media (max-width: 960px) {
    .masthead-row { flex-wrap: wrap; }
    .nav-toggle { display: inline-flex; }
    .primary-nav { flex-basis: 100%; display: none; }
    .primary-nav.is-open { display: block; }
    .nav-list { flex-direction: column; gap: 0; border-top: 1px solid var(--line); }
    .nav-list li { border-bottom: 1px solid var(--line); }
    .nav-list a { display: block; padding: .8rem 0; border-bottom: 0; }
    .fs { padding: 3.5rem 0; }
    .fs-map { padding-bottom: 0; }
    .fs-map-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .fs-map-text { padding-bottom: 0; }
    .fs-lead { max-width: 60ch; }
    .pm-list { display: block; }
    .pm-scale { display: none; }
    .pm-figure { margin: 0 -6% 0 0; }
    .pm-label { display: none; }
    .pm-dot { color: var(--ink); font-size: .72rem; font-weight: 600; transform: none; border-radius: 50%; display: grid; place-items: center; }
    .pm-dot::after { display: none; }
    .drv-row { grid-template-columns: minmax(0, 9rem) minmax(0, 1fr); gap: .6rem 1.2rem; }
    .drv-name { grid-column: 1; }
    .drv-scheme { grid-column: 2; grid-row: 1; }
    .drv-text, .drv-effect { grid-column: 1 / -1; }
    .drv-scheme img { height: 3.4rem; }
    .card-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fs-invest-grid { grid-template-columns: minmax(0, 1fr); }
    .tower { width: min(20rem, 62%); margin-top: 1rem; }
    .dir-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dir-grid .dir-col:first-child { grid-column: 1 / -1; }
    .layout-with-sidebar { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .colophon-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .tower { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; }
    .tower-img { grid-column: 1 / -1; width: min(18rem, 80%); margin-inline: auto; }
    .tw-tag { position: static; transform: none; width: auto; text-align: left; align-items: flex-start; padding: .6rem .8rem; border: 1px solid var(--line); background: rgba(19, 38, 59, .7); }
    .tw-tag::before, .tw-tag::after { display: none; }
    .tw-tag strong { font-size: 1.5rem; }
}
@media (max-width: 600px) {
    .shell { width: 92%; }
    body { font-size: .9rem; }
    .brand-svg, .brand-logo { width: 44px; height: 44px; }
    .brand-desc { display: none; }
    .brand-name { font-size: .8rem; font-stretch: 105%; }
    .pm-dot { width: 18px; height: 18px; left: -9px; top: -9px; font-size: .6rem; }
    .fs { padding: 2.8rem 0; }
    .fs-map { padding-bottom: 0; }
    .sec-title { font-size: 1.55rem; }
    .stamp { font-size: 1.05rem; }
    .drv-row { grid-template-columns: minmax(0, 1fr); }
    .drv-scheme { grid-column: 1; grid-row: auto; }
    .card-grid-3 { grid-template-columns: minmax(0, 1fr); }
    .card-top { grid-template-columns: minmax(0, 40%) minmax(0, 1fr); }
    .dir-grid { grid-template-columns: minmax(0, 1fr); }
    .dir-sub { grid-template-columns: minmax(0, 1fr); }
    .ledger { padding: 1rem 1.1rem; }
    .sheet { padding: 1.6rem 1.25rem; }
    .sheet::before { left: 1.25rem; }
    .notes { padding: 1.5rem 1.25rem; }
    .entry-nav { grid-template-columns: minmax(0, 1fr); }
    .entry-nav-next { grid-column: 1; }
    .colophon-cols { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .colophon-tab { width: 70%; }
    .cookie-banner { flex-direction: column; align-items: stretch; padding: 1rem 1.1rem; }
    .alignleft, .alignright { float: none; margin: 1em 0; }
}
