:root{
  --color-primary:#f7a826;
  --color-accent:#838383;
  --color-bg:#1a1a1a;
  --color-accent-pressed:#6f6e6e;
  --color-gradient-light:#c1c1c1;
  --color-gradient-mid:#989898;
  --color-text:#ffffff;
  --color-text-muted:#bfbdbd;
  --color-bg-elevated:#242424;
  --color-rg-banner:#dc2626;

  --font-display:'Outfit',system-ui,sans-serif;
  --font-body:'Montserrat',system-ui,sans-serif;

  --fs-h1:44px;--fs-h2:34px;--fs-h3:26px;--fs-h4:20px;--fs-h5:16px;--fs-h6:14px;
  --fs-body:16px;--fs-small:14px;--fs-micro:12px;
  --lh-tight:1.2;--lh-normal:1.55;--lh-loose:1.7;
  --ls-tight:-0.01em;--ls-normal:0;--ls-wide:0.02em;
  --fw-regular:400;--fw-medium:500;--fw-bold:700;

  --space-2xs:6px;--space-xs:14px;--space-sm:20px;--space-md:32px;
  --space-lg:48px;--space-xl:72px;--space-2xl:112px;--space-3xl:160px;
  --sec-y:48px;

  --container-site:1300px;
  --container-readable:720px;
  --container-padding-mobile:16px;
  --container-padding-tablet:32px;
  --container-padding-desktop:48px;

  --radius-xs:2px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-pill:9999px;--radius-circle:50%;
  --shadow-sm:0 4px 12px rgba(0,0,0,0.15),0 0 0 1px rgba(255,255,255,0.08) inset;
  --shadow-md:0 8px 24px rgba(0,0,0,0.20),0 0 0 1px rgba(255,255,255,0.10) inset;
  --shadow-lg:0 16px 48px rgba(0,0,0,0.30),0 0 0 1px rgba(255,255,255,0.12) inset;
  --border-thin:1px;

  --dur-fast:150ms;--dur-base:200ms;--dur-slow:300ms;
  --ease-out:cubic-bezier(0.22,0.61,0.36,1);--ease-in-out:cubic-bezier(0.65,0.05,0.36,1);

  --sidebar-width:280px;
  --header-h-mobile:64px;
}

/* reset / base */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-normal);font-weight:var(--fw-regular);padding-left:var(--sidebar-width)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,dt,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
button{font-family:inherit;cursor:pointer}

.skip-link{position:absolute;left:8px;z-index:200;background:var(--color-primary);color:var(--color-bg);padding:8px 14px;border-radius:var(--radius-sm);font-weight:var(--fw-bold)}
.skip-link:not(:focus){top:-200px !important}
.skip-link:focus{top:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.main{display:block;width:100%}

@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;scroll-behavior:auto !important}}

/* shared section inner (single width — literal calc for verify-widths) */
.arabesque-inner,.sigil-inner,.niche-inner,.atrium-inner,.parapet-inner,.trellis-inner,.balcony-inner,.slab-inner,.lattice-inner,.facet-inner,.arch-inner,.promenade-inner,.tile-inner,.page-media-inner,.keystone-inner,.hutch-inner{
  width:100%;max-width:calc(var(--container-site) + 2 * var(--container-padding-desktop));margin-inline:auto;padding-inline:var(--container-padding-desktop)
}

/* section vertical rhythm (A-09 safe: 48 → pairs 96) */
.arabesque,.niche,.atrium,.parapet,.trellis,.balcony,.slab,.lattice,.facet,.arch,.tile,.page-media{padding-block:var(--sec-y)}
.sigil{padding-block:var(--space-md)}
.promenade{padding-block:var(--space-xl)}

/* ============ HEADER — HEAD-07 sidebar ============ */
.ridge{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--color-bg);z-index:100;border-right:var(--border-thin) solid rgba(255,255,255,0.06)}
.ridge-bar{display:flex;flex-direction:column;height:100%;padding:var(--space-lg) var(--space-sm)}
.ridge-logo{flex-shrink:0;display:block;margin-bottom:var(--space-xl)}
.ridge-logo-img{height:80px;width:auto;max-width:none;flex-shrink:0}
.ridge-toggle{display:none}
.ridge-nav{flex:1 1 auto}
.ridge-nav-list{display:flex;flex-direction:column;gap:2px}
.ridge-nav-item{display:block}
.ridge-nav-link{display:block;font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-small);color:var(--color-text-muted);padding:var(--space-sm) var(--space-xs);border-bottom:var(--border-thin) solid rgba(255,255,255,0.05);word-break:keep-all;transition:color var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out)}
.ridge-nav-link:hover{color:var(--color-text)}
.ridge-nav-link--active{background:var(--color-accent);color:var(--color-bg);border-radius:var(--radius-sm)}
.ridge-auth{flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-lg)}
.ridge-auth-btn{white-space:nowrap;flex-shrink:0;text-align:center;padding:var(--space-xs) var(--space-lg);border-radius:var(--radius-md);font-weight:var(--fw-bold);font-size:var(--fs-small);transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}
.ridge-auth-btn--login{background:var(--color-bg-elevated);color:var(--color-text);border:var(--border-thin) solid rgba(255,255,255,0.14)}
.ridge-auth-btn--login:hover{background:#333;color:var(--color-text)}
.ridge-auth-btn--register{background:var(--color-primary);color:var(--color-bg)}
.ridge-auth-btn--register:hover{background:#ffb84d;color:var(--color-bg)}
.ridge-drawer{display:none}
.ridge-drawer-auth{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}
.ridge-drawer-list{display:flex;flex-direction:column;gap:2px}
.ridge-drawer-item{display:block}
.ridge-drawer-link{display:block;font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-h5);color:var(--color-text);padding:var(--space-sm) 0;border-bottom:var(--border-thin) solid rgba(255,255,255,0.08)}
.ridge-drawer-link--active{color:var(--color-primary)}

/* ============ HERO — HERO-06 asymmetric tilted ============ */
.veranda{position:relative;min-height:600px;overflow:hidden;display:flex;align-items:center}
.veranda-content{position:relative;z-index:2;width:52%;padding:var(--space-xl) var(--container-padding-desktop)}
.veranda-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);margin-bottom:var(--space-md) overflow-wrap: anywhere; max-width: 100%; }
.veranda-subtitle{font-size:var(--fs-h5);color:var(--color-text-muted);line-height:var(--lh-normal);max-width:480px;margin-bottom:var(--space-lg)}
.veranda-cta{display:inline-block;background:var(--color-primary);color:var(--color-bg);font-weight:var(--fw-bold);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);transition:background var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}
.veranda-cta:hover{background:#ffb84d;color:var(--color-bg);transform:translateY(-1px)}
.veranda-figure{position:absolute;right:0;top:-40px;width:56%;height:calc(100% + 80px);overflow:visible;transform:rotate(2deg);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);transition:transform var(--dur-slow) var(--ease-out)}
.veranda-figure:hover{transform:rotate(0deg) scale(1.02)}
.veranda-figure-img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-lg)}

/* ============ PAGE HEADER — PHEAD-08 tag cluster ============ */
.arabesque-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-md)}
.arabesque-tag{background:var(--color-primary);color:var(--color-bg);border-radius:var(--radius-pill);padding:var(--space-2xs) var(--space-sm);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--ls-wide);font-weight:var(--fw-bold)}
.arabesque-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);margin-bottom:var(--space-sm) overflow-wrap: anywhere; max-width: 100%; }
.arabesque-desc{font-size:var(--fs-h5);color:var(--color-text-muted);max-width:820px}

/* ============ BREADCRUMBS — BREAD-03 chevron ============ */
.sigil-list{display:flex;flex-wrap:wrap;align-items:center;font-size:var(--fs-small)}
.sigil-item{display:inline-flex;align-items:center}
.sigil-link{color:var(--color-text-muted)}
.sigil-link:hover{color:var(--color-text)}
.sigil-sep{color:var(--color-primary);margin-inline:var(--space-xs)}
.sigil-current{color:var(--color-text)}

/* ============ INLINE CTA — INLINE-CTA-04 ============ */
.niche-inner{display:flex;align-items:center;gap:var(--space-xl)}
.niche-text-block{flex:1 1 auto}
.niche-heading{font-family:var(--font-display);font-size:var(--fs-h4);color:var(--color-text);margin-bottom:var(--space-2xs)}
.niche-subtext{font-size:var(--fs-body);color:var(--color-text-muted)}
.niche-btn{flex-shrink:0;background:var(--color-accent);color:var(--color-bg);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-wide);transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}
.niche-btn:hover{background:var(--color-accent-pressed);color:var(--color-bg)}

/* ============ ITEMS GRID — GRID-03 asymmetric ============ */
.atrium-head{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h2);margin-bottom:var(--space-lg);letter-spacing:var(--ls-tight) overflow-wrap: anywhere; max-width: 100%; }
.atrium-grid{display:grid;grid-template-columns:3fr 2fr;gap:var(--space-lg)}
.atrium-grid > .atrium-card:nth-child(4n+3){grid-column:auto}
.atrium-card{background:var(--color-bg-elevated);border:var(--border-thin) solid rgba(255,255,255,0.08);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm);backdrop-filter:blur(12px)}
.atrium-grid > .atrium-card:nth-child(4n+2),.atrium-grid > .atrium-card:nth-child(4n+3){}
.atrium-card-title{font-family:var(--font-display);font-size:var(--fs-h4);font-weight:var(--fw-bold);margin-bottom:var(--space-sm);color:var(--color-primary)}
.atrium-card-text{font-size:var(--fs-body);line-height:var(--lh-normal);color:var(--color-text-muted)}

/* ============ PROSE — PROSE-03 sidebar notes ============ */
.parapet-section{margin-bottom:var(--space-lg)}
.parapet-h2{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h2);margin-top:var(--space-lg);margin-bottom:var(--space-md);letter-spacing:var(--ls-tight) overflow-wrap: anywhere; max-width: 100%; }
.parapet-note{padding-left:var(--space-lg);border-left:3px solid rgba(191,189,189,0.15);margin-bottom:var(--space-md);color:var(--color-text);line-height:var(--lh-loose);max-width:900px}
.parapet-section--main .parapet-note{border-left-color:var(--color-primary)}
.parapet-section--alt .parapet-note{border-left-color:var(--color-accent)}
.parapet-list{padding-left:var(--space-lg);margin-bottom:var(--space-md);list-style:disc;color:var(--color-text-muted)}
.parapet-list li{margin-bottom:var(--space-2xs)}
.parapet-note a,.parapet-list a{color:var(--color-primary);text-decoration:underline}

/* ============ REVIEWS — REV-02 editorial quotes ============ */
.trellis-head{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h2);margin-bottom:var(--space-lg);letter-spacing:var(--ls-tight) overflow-wrap: anywhere; max-width: 100%; }
.trellis-item{position:relative;max-width:900px;margin-block:var(--space-lg);padding-block:var(--space-md);padding-left:var(--space-xl);border-bottom:var(--border-thin) solid rgba(255,255,255,0.08)}
.trellis-item::before{content:'\201C';position:absolute;left:0;top:-4px;font-family:var(--font-display);font-size:var(--fs-h1);line-height:1;color:var(--color-accent) overflow-wrap: anywhere; max-width: 100%; }
.trellis-item:last-child{border-bottom:none}
.trellis-quote p{font-family:var(--font-display);font-size:var(--fs-h4);font-style:italic;line-height:var(--lh-tight);color:var(--color-text)}
.trellis-attribution{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);font-size:var(--fs-small);color:var(--color-text-muted)}
.trellis-author{font-style:normal;font-weight:var(--fw-bold);color:var(--color-text)}
.trellis-rating-text{color:var(--color-primary);font-weight:var(--fw-bold)}
.trellis-time{color:var(--color-text-muted)}

/* ============ FAQ — FAQ-06 anchored list ============ */
.balcony-head{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h2);margin-bottom:var(--space-lg);letter-spacing:var(--ls-tight) overflow-wrap: anywhere; max-width: 100%; }
.balcony-toc{background:var(--color-bg-elevated);border:var(--border-thin) solid rgba(255,255,255,0.06);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-xl)}
.balcony-toc-list{list-style:decimal;padding-left:var(--space-md);display:flex;flex-direction:column;gap:var(--space-2xs)}
.balcony-toc-link{color:var(--color-text-muted);font-size:var(--fs-body)}
.balcony-toc-link:hover{color:var(--color-text)}
.balcony-list{display:block}
.balcony-q{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h4);color:var(--color-text);margin-top:var(--space-lg);scroll-margin-top:var(--space-xl)}
.balcony-a{color:var(--color-text-muted);line-height:var(--lh-loose);margin-top:var(--space-sm);max-width:900px}

/* ============ CTA BLOCK — CTA-10 pull-quote ============ */
.slab{text-align:center}
.slab-statement{position:relative;max-width:900px;margin-inline:auto}
.slab-statement p{font-family:var(--font-display);font-weight:var(--fw-bold);font-style:italic;font-size:var(--fs-h1);line-height:var(--lh-tight);color:var(--color-text) overflow-wrap: anywhere; max-width: 100%; }
.slab-sub{max-width:580px;margin:var(--space-md) auto 0;color:var(--color-text-muted);line-height:var(--lh-loose)}
.slab-link{display:inline-block;margin-top:var(--space-lg);font-size:var(--fs-h5);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--color-primary);text-decoration:underline;transition:color var(--dur-base) var(--ease-out)}
.slab-link:hover{color:#ffb84d}

/* ============ DATA TABLE — TABLE-08 floating cards ============ */
.lattice-head{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h2);margin-bottom:var(--space-lg);letter-spacing:var(--ls-tight) overflow-wrap: anywhere; max-width: 100%; }
.lattice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-md)}
.lattice-card{background:var(--color-bg-elevated);border:var(--border-thin) solid rgba(255,255,255,0.08);border-radius:var(--radius-md);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm);box-shadow:var(--shadow-sm)}
.lattice-field{display:flex;flex-direction:column;gap:2px}
.lattice-label{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--color-text-muted)}
.lattice-value{font-size:var(--fs-body);font-weight:var(--fw-medium);color:var(--color-text)}

/* ============ LEGAL — LEGAL-04 bordered box ============ */
.facet-box{position:relative;background:var(--color-bg-elevated);border:var(--border-thin) solid rgba(255,255,255,0.08);border-radius:var(--radius-lg);padding:var(--space-2xl) var(--space-lg);box-shadow:var(--shadow-sm);max-width:var(--container-readable);margin-inline:auto}
.facet-updated{position:absolute;top:var(--space-md);right:var(--space-md);font-size:var(--fs-micro);color:var(--color-text-muted)}
.facet-intro{color:var(--color-text-muted);line-height:var(--lh-loose);margin-bottom:var(--space-lg)}
.facet-h3{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h3);margin-top:var(--space-lg);margin-bottom:var(--space-sm);color:var(--color-text) overflow-wrap: anywhere; max-width: 100%; }
.facet-p{color:var(--color-text-muted);line-height:var(--lh-loose);margin-bottom:var(--space-sm)}
.facet-support{margin-top:var(--space-lg)}
.facet-support-list{list-style:disc;padding-left:var(--space-lg);color:var(--color-text-muted);line-height:var(--lh-normal)}
.facet-support-list li{margin-bottom:var(--space-2xs)}
.facet-disclaimer{margin-top:var(--space-lg);font-size:var(--fs-small);color:var(--color-text-muted);font-style:italic}

/* ============ CONTACT FORM — FORM-03 ============ */
.arch-intro{text-align:center;color:var(--color-text-muted);max-width:540px;margin-inline:auto;margin-bottom:var(--space-lg)}
.arch-form{max-width:540px;margin-inline:auto;display:flex;flex-direction:column;gap:var(--space-md)}
.arch-field{display:flex;flex-direction:column;gap:var(--space-2xs)}
.arch-label{font-size:var(--fs-small);color:var(--color-text)}
.arch-input,.arch-textarea{width:100%;background:var(--color-bg-elevated);border:var(--border-thin) solid rgba(255,255,255,0.14);border-radius:var(--radius-sm);padding:var(--space-sm);color:var(--color-text);font-family:inherit;font-size:var(--fs-body)}
.arch-input:focus,.arch-textarea:focus{outline:2px solid var(--color-primary);border-color:var(--color-primary)}
.arch-textarea{resize:vertical}
.arch-submit{width:100%;min-height:52px;background:var(--color-primary);color:var(--color-bg);border:none;border-radius:var(--radius-md);font-weight:var(--fw-bold);font-size:var(--fs-body);transition:background var(--dur-base) var(--ease-out)}
.arch-submit:hover{background:#ffb84d;color:var(--color-bg)}
.arch-success{max-width:540px;margin:var(--space-md) auto 0;text-align:center;background:var(--color-bg-elevated);border:var(--border-thin) solid var(--color-primary);border-radius:var(--radius-md);padding:var(--space-md);color:var(--color-text)}

/* ============ ERROR — ERR-07 geometric ============ */
.promenade{background-color:var(--color-bg);background-image:linear-gradient(rgba(247,168,38,0.08) 1px,transparent 1px),linear-gradient(90deg,rgba(247,168,38,0.08) 1px,transparent 1px);background-size:40px 40px;text-align:center}
.promenade-inner{}
.promenade-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h1);line-height:var(--lh-tight);margin-bottom:var(--space-md) overflow-wrap: anywhere; max-width: 100%; }
.promenade-text{color:var(--color-text-muted);line-height:var(--lh-normal);margin-bottom:var(--space-lg)}
.promenade-btn{display:inline-block;background:var(--color-primary);color:var(--color-bg);font-weight:var(--fw-bold);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);transition:background var(--dur-base) var(--ease-out)}
.promenade-btn:hover{background:#ffb84d;color:var(--color-bg)}

/* ============ BYLINE — BYLINE-04 quote attribution ============ */
.barrow{max-width:600px;margin-inline:auto;text-align:center;padding-block:var(--space-lg)}
.barrow-quote{position:relative}
.barrow-quote > p{font-family:var(--font-display);font-size:var(--fs-h4);font-style:italic;color:var(--color-text);line-height:var(--lh-normal)}
.barrow-attribution{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-xs);margin-top:var(--space-md)}
.barrow-portrait{width:40px;height:40px;border-radius:var(--radius-circle);object-fit:cover;flex-shrink:0}
.barrow-name{font-style:normal;font-weight:var(--fw-bold)}
.barrow-name a{color:var(--color-primary)}
.barrow-name a:hover{color:#ffb84d}
.barrow-role{font-size:var(--fs-small);font-style:italic;color:var(--color-text-muted)}
.barrow-dates{margin-top:var(--space-sm);font-size:var(--fs-small);color:var(--color-text-muted)}
.barrow-dates time{color:var(--color-text-muted)}

/* ============ AUTHOR CARD — AUTH-06 full hero ============ */
.tile{background:var(--color-bg-elevated)}
.tile-inner{display:grid;grid-template-columns:280px 1fr;gap:var(--space-2xl);align-items:start}
.tile-portrait{width:280px;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}
.tile-body{display:block}
.tile-eyebrow{font-family:var(--font-body);font-size:var(--fs-small);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--color-primary);margin-bottom:var(--space-sm)}
.tile-name{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:clamp(32px,6vw,64px);line-height:var(--lh-tight);margin-bottom:var(--space-md) overflow-wrap: anywhere; max-width: 100%; }
.tile-bio{font-size:var(--fs-h5);line-height:var(--lh-normal);color:var(--color-text);max-width:640px;margin-bottom:var(--space-md)}
.tile-expertise{display:flex;flex-wrap:wrap;gap:var(--space-xs)}
.tile-expertise-item{background:var(--color-bg);border:var(--border-thin) solid rgba(255,255,255,0.12);border-radius:var(--radius-pill);padding:var(--space-2xs) var(--space-sm);font-size:var(--fs-small);color:var(--color-text-muted)}
.tile-articles{max-width:calc(var(--container-site) + 2 * var(--container-padding-desktop));margin-inline:auto;padding:var(--space-lg) var(--container-padding-desktop) 0}
.tile-articles-heading{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h4);margin-bottom:var(--space-md)}
.tile-articles-list{display:flex;flex-direction:column;gap:var(--space-xs)}
.tile-articles-item{font-size:var(--fs-body);line-height:var(--lh-normal)}
.tile-articles-item a{color:var(--color-primary);text-decoration:underline}
.tile-articles-item a:hover{color:#ffb84d}

/* ============ PAGE MEDIA ============ */
.page-media-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-lg)}
.page-media-figure{margin:0}
.page-media-img{width:100%;height:auto;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}

/* ============ FOOTER — FOOT-09 wide strip (gold) ============ */
.keystone{background:var(--color-primary);color:var(--color-bg)}
.keystone-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-md);padding-block:var(--space-md)}
.keystone-logo{flex-shrink:0}
.keystone-logo-img{height:36px;width:auto}
.keystone-main-nav{display:block}
.keystone-main-list{display:flex;flex-wrap:wrap;gap:var(--space-md)}
.keystone-main-item{display:inline-block}
.keystone-main-link{font-size:var(--fs-small);letter-spacing:var(--ls-wide);color:var(--color-bg)}
.keystone-main-link:hover{color:#000;text-decoration:underline}
.keystone-legal-nav{display:block}
.keystone-legal-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}
.keystone-legal-item{display:inline-block}
.keystone-legal-link{font-size:var(--fs-micro);color:var(--color-bg)}
.keystone-legal-link:hover{color:#000;text-decoration:underline}
.keystone-rg{flex-basis:100%;font-size:var(--fs-micro);color:#241100}
.keystone-copyright{flex-basis:100%;font-size:var(--fs-micro);color:#241100}

/* ============ COOKIE — COOK-02 bottom strip (gold) ============ */
.hutch{position:fixed;bottom:0;left:var(--sidebar-width);right:0;z-index:90;background:var(--color-primary);border-top:var(--border-thin) solid rgba(0,0,0,0.15)}
.hutch-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-md);padding-block:var(--space-md)}
.hutch-message{flex:1 1 320px;font-size:var(--fs-small);color:var(--color-bg)}
.hutch-actions{flex-shrink:0;display:flex;gap:var(--space-sm)}
.hutch-btn{padding:var(--space-2xs) var(--space-md);border:none;border-radius:var(--radius-sm);font-weight:var(--fw-bold);font-size:var(--fs-small);min-height:40px;transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}
.hutch-btn--accept{background:var(--color-bg);color:var(--color-primary)}
.hutch-btn--accept:hover{background:#000;color:var(--color-primary)}
.hutch-btn--decline{background:var(--color-bg-elevated);color:var(--color-text)}
.hutch-btn--decline:hover{background:#000;color:var(--color-text)}

/* ============ MOBILE / RESPONSIVE ============ */
@media (max-width:1280px){
  body{padding-left:0;padding-top:var(--header-h-mobile)}
  .ridge{width:100%;height:auto;border-right:none;border-bottom:var(--border-thin) solid rgba(255,255,255,0.06);transition:transform var(--dur-base) var(--ease-out)}
  .ridge.is-hidden{transform:translateY(-100%)}
  .ridge-bar{flex-direction:row;align-items:center;height:var(--header-h-mobile);padding:0 var(--container-padding-mobile)}
  .ridge-logo{margin-bottom:0}
  .ridge-logo-img{height:40px}
  .ridge-nav,.ridge-auth{display:none}
  .ridge-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;margin-left:auto !important;width:44px;height:44px;background:none;border:none;padding:8px}
  .ridge-toggle span{display:block;height:2px;width:100%;background:var(--color-text);border-radius:2px}
  .ridge-drawer{display:block;position:fixed;top:var(--header-h-mobile);left:0;bottom:0;width:min(320px,82vw);background:var(--color-bg);border-right:var(--border-thin) solid rgba(255,255,255,0.08);padding:var(--space-lg) var(--space-md);overflow-y:auto;transform:translateX(-100%);transition:transform var(--dur-base) var(--ease-out);z-index:99}
  .ridge-drawer.is-open{transform:translateX(0);}
  .hutch{left:0}
}

@media (max-width:880px){
  :root{
    --fs-h1:30px;--fs-h2:24px;--fs-h3:20px;--fs-h4:18px;--fs-h5:15px;--fs-h6:13px;
    --fs-body:15px;--fs-small:13px;--fs-micro:11px;
    --container-padding-desktop:32px;
  }
  .arabesque-inner,.sigil-inner,.niche-inner,.atrium-inner,.parapet-inner,.trellis-inner,.balcony-inner,.slab-inner,.lattice-inner,.facet-inner,.arch-inner,.promenade-inner,.tile-inner,.page-media-inner,.keystone-inner,.hutch-inner{padding-inline:var(--container-padding-tablet)}
  .veranda{min-height:auto;flex-direction:column;display:flex}
  .veranda-content{width:100%;padding:var(--space-xl) var(--container-padding-tablet) var(--space-lg)}
  .veranda-figure{position:relative;right:auto;top:auto;width:100%;height:auto;transform:none;margin-top:var(--space-md)}
  .veranda-figure-img{height:auto}
  .atrium-grid{grid-template-columns:1fr}
  .niche-inner{flex-direction:column;align-items:flex-start;gap:var(--space-md)}
  .niche-btn{width:100%;text-align:center}
  .tile-inner{grid-template-columns:1fr;gap:var(--space-lg)}
  .tile-portrait{width:200px}
  .trellis-item,.parapet-note,.balcony-a{max-width:none}
}

@media (max-width:540px){
  :root{--container-padding-tablet:16px}
  .keystone-inner{flex-direction:column;align-items:flex-start}
  .hutch-inner{flex-direction:column;align-items:stretch}
  .hutch-actions{width:100%}
  .hutch-btn{flex:1 1 auto}
}

[class*='-fig'] img, [class*='-media'] img, main figure img, article figure img { width: 100%; max-height: 58vh; object-fit: cover; object-position: center; }

@media (max-width: 480px) {
  .hutch-actions { flex-wrap: wrap; }
  .ridge-drawer-item, .hutch-actions { min-width: 0; max-width: 100%; }
  .ridge-auth-btn, .ridge-drawer-link, .hutch-btn { overflow-wrap: anywhere; }
}
