/*
Theme Name: Cultura West
Theme URI: https://culturawest.org
Author: Cultura West / Livlen Media
Description: Foundation-ready custom theme for Cultura West (formerly Midland Art Crawl) — arts, culture, and the creative economy of West Texas. Built to the Cultura West Website Build Specification v2.3 and Brand Guide v1.1.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: cultura-west
*/

/* =========================================================================
   Cultura West — cultura-west.css
   Design tokens + component styles. Source of truth: Brand Guide v1.1 / Spec v2.3 §2.4
   60·25·10·5 color-in-proportion rule. WCAG 2.2 AA target.
   ========================================================================= */


:root {
  /* --- Brand color tokens (spec §2.4) --- */
  --color-brown-adobe:   #5C4033;
  --color-cream-stone:   #F5F0E6;
  --color-bone-white:    #FAF7F1;
  --color-terracotta-mesa:#C26A4A;
  --color-terracotta-deep:#A8542F; /* darkened for AA on cream at small sizes */
  --color-sage-plateau:  #8B9D7E;
  --color-gold-sunset:   #D4A24C;
  --color-indigo-dusk:   #3E4A6B;
  --color-ink-black:     #1F1A14;

  /* --- Type tokens --- */
  --type-display: 'Cormorant Garamond', Georgia, serif;
  --type-body: 'Source Sans 3', system-ui, -apple-system, Segoe UI, sans-serif;
  --type-eyebrow: 'Montserrat', system-ui, sans-serif;

  /* --- Geometry --- */
  --radius: 6px;
  --shadow-card: 0 1px 2px rgba(31,26,20,0.08);
  --shadow-lift: 0 8px 28px rgba(31,26,20,0.12);
  --maxw: 1180px;
  --reading: 70ch;
  --space: clamp(1rem, 2.5vw, 2rem);

  --focus: var(--color-gold-sunset);
}

/* --- Reset / base --- */
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--type-body);
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--color-ink-black);
  background: var(--color-cream-stone);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--color-terracotta-deep); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--color-brown-adobe); }

/* --- Focus visibility (spec §13.2) --- */
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: 2px; }

/* --- Typography --- */
h1,h2,h3 { font-family: var(--type-display); font-weight: 600; color: var(--color-brown-adobe); line-height: 1.12; margin: 0 0 .5em; }
h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); letter-spacing: .2px; }
h2 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); }
h3 { font-size: clamp(1.3rem, 2.2vw, 1.6rem); }
h4 { font-family: var(--type-body); font-weight: 700; font-size: 1.05rem; margin: 0 0 .4em; color: var(--color-brown-adobe); }
p { margin: 0 0 1.1em; }
.lede { font-size: 1.2rem; line-height: 1.55; color: #4a4036; }

.eyebrow {
  font-family: var(--type-eyebrow);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  font-size: .78rem;
  color: var(--color-brown-adobe);
  margin: 0 0 .8rem;
  display: inline-block;
}

/* --- Layout --- */
.wrap { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--space); }
.section { padding-block: clamp(2.6rem, 6vw, 4.6rem); }
.section--cream { background: var(--color-cream-stone); }
.section--bone  { background: var(--color-bone-white); }
.section--sage  { background: var(--color-sage-plateau); }
.section--indigo{ background: var(--color-indigo-dusk); color: var(--color-cream-stone); }
.section--indigo h1,.section--indigo h2,.section--indigo h3 { color: var(--color-cream-stone); }
.section--brown { background: var(--color-brown-adobe); color: var(--color-cream-stone); }
.section--brown h2,.section--brown h3 { color: var(--color-cream-stone); }
.narrow { max-width: 820px; margin-inline: auto; }
.reading { max-width: var(--reading); }
.reading p, .reading li { font-size: 1.12rem; }
.center { text-align: center; }

.grid { display: grid; gap: 1.5rem; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px){ .grid-3,.grid-4 { grid-template-columns: repeat(2,1fr);} }
@media (max-width: 620px){ .grid-2,.grid-3,.grid-4 { grid-template-columns: 1fr;} }

/* --- Buttons --- */
.btn {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--type-body); font-weight: 700; font-size: 1rem;
  padding: .8rem 1.5rem; border-radius: var(--radius);
  text-decoration: none; cursor: pointer; border: 2px solid transparent;
  transition: transform .08s ease, background .15s ease, color .15s ease;
}
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--color-terracotta-deep); color: var(--color-bone-white); }
.btn--primary:hover { background: #8f4626; color: #fff; }
.btn--secondary { background: transparent; color: var(--color-brown-adobe); border-color: var(--color-brown-adobe); }
.btn--secondary:hover { background: var(--color-brown-adobe); color: var(--color-cream-stone); }
.btn--on-dark { background: var(--color-cream-stone); color: var(--color-brown-adobe); }
.btn--on-dark:hover { background: #fff; }
.btn--gold { background: var(--color-gold-sunset); color: var(--color-ink-black); }
.btn--gold:hover { background: #c4912f; }
.btn-row { display: flex; gap: .9rem; flex-wrap: wrap; }

/* --- Tag chips (sub-program color tagging §2.3) --- */
.tag {
  font-family: var(--type-eyebrow); font-weight: 600; font-size: .68rem;
  text-transform: uppercase; letter-spacing: 1px;
  padding: .25rem .6rem; border-radius: 100px; color: #fff; display: inline-block;
}
.tag--mac { background: var(--color-terracotta-mesa); }
.tag--gallery { background: var(--color-sage-plateau); }
.tag--directory { background: var(--color-indigo-dusk); }
.tag--plein { background: var(--color-gold-sunset); color: var(--color-ink-black); }
.tag--dev { background: #8b8175; }
.tag--flagship { background: var(--color-terracotta-mesa); }

/* =======================  HEADER / NAV  ======================= */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--color-cream-stone);
  border-bottom: 1px solid rgba(92,64,51,.15);
}
.nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .7rem; }
.brand { display: flex; align-items: center; gap: .7rem; text-decoration: none; flex-shrink: 0; }
.brand svg { display: block; }
.brand-logo { height: 44px; width: auto; display: block; }
@media (max-width: 520px){ .brand-logo { height: 36px; } }
.brand-word { font-family: var(--type-display); line-height: .92; color: var(--color-brown-adobe); }
.brand-word b { display:block; font-weight: 600; font-size: 1.5rem; letter-spacing: .5px; }
.brand-word span { font-family: var(--type-eyebrow); font-weight: 600; font-size: .62rem; letter-spacing: 5px; text-transform: uppercase; color: var(--color-terracotta-deep); }

.nav-links { display: flex; align-items: center; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.nav-links > li { position: relative; }
.nav-links > li > a, .nav-toplink {
  font-family: var(--type-body); font-weight: 600; font-size: .98rem;
  color: var(--color-brown-adobe); text-decoration: none;
  padding: .55rem .7rem; border-radius: var(--radius); display: inline-block; background: none; border: 0; cursor: pointer;
}
.nav-links > li > a:hover, .nav-toplink:hover, .nav-links > li.open > .nav-toplink { background: rgba(92,64,51,.08); color: var(--color-brown-adobe); }
.nav-links a[aria-current="page"] { color: var(--color-terracotta-deep); }

.submenu {
  position: absolute; top: calc(100% + 6px); left: 0; min-width: 250px;
  background: var(--color-bone-white); border: 1px solid rgba(92,64,51,.15);
  border-radius: var(--radius); box-shadow: var(--shadow-lift);
  padding: .5rem; list-style: none; margin: 0; display: none;
}
.nav-links li.open .submenu { display: block; }
.submenu a { display: block; padding: .5rem .7rem; border-radius: var(--radius); text-decoration: none; color: var(--color-brown-adobe); font-weight: 600; font-size: .95rem; }
.submenu a:hover { background: var(--color-cream-stone); color: var(--color-terracotta-deep); }
.submenu small { display:block; font-weight:400; color:#6b6155; font-size:.8rem; }

.nav-cta { display: flex; align-items: center; gap: .6rem; }
.nav-signin { font-weight: 700; font-size: .92rem; color: var(--color-brown-adobe); text-decoration: none; padding: .55rem .4rem; white-space: nowrap; }
.nav-signin:hover { color: var(--color-terracotta-deep); text-decoration: underline; }
@media (max-width: 600px){ .nav-signin { display: none; } }
.nav-donate { background: var(--color-terracotta-deep); color: var(--color-bone-white); padding: .6rem 1.1rem; border-radius: var(--radius); font-weight: 700; text-decoration: none; }
.nav-donate:hover { background: #8f4626; color:#fff; }

.nav-toggle { display: none; background: none; border: 2px solid var(--color-brown-adobe); border-radius: var(--radius); padding: .4rem .6rem; cursor: pointer; color: var(--color-brown-adobe); font-size: 1.1rem; }

@media (max-width: 960px){
  .nav-toggle { display: inline-block; }
  .nav-links {
    position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch;
    background: var(--color-cream-stone); border-bottom: 1px solid rgba(92,64,51,.15);
    padding: .6rem var(--space); gap: 0; display: none;
  }
  .site-header.menu-open .nav-links { display: flex; }
  .nav-links > li > a, .nav-toplink { width: 100%; }
  .submenu { position: static; display: block; box-shadow: none; border: 0; background: transparent; padding: 0 0 .4rem .8rem; }
  .submenu a small { color:#6b6155; }
}

/* =======================  HERO  ======================= */
.hero { position: relative; background: var(--color-brown-adobe); color: var(--color-cream-stone); overflow: hidden; }
.hero--img { background-size: cover; background-position: center; }
.hero__overlay { background: linear-gradient(100deg, rgba(48,33,26,.86) 0%, rgba(48,33,26,.55) 60%, rgba(48,33,26,.25) 100%); }
.hero .wrap { position: relative; padding-block: clamp(3rem, 9vw, 6.5rem); }
.hero h1 { color: var(--color-cream-stone); max-width: 16ch; }
.hero .lede { color: #efe7d8; max-width: 52ch; }
.hero .eyebrow { color: var(--color-gold-sunset); }
.hero--light { background: var(--color-cream-stone); color: var(--color-ink-black); }
.hero--light h1 { color: var(--color-brown-adobe); }
.hero--light .lede { color: #4a4036; }

/* =======================  CARDS  ======================= */
.card { background: var(--color-bone-white); border: 1px solid rgba(92,64,51,.12); border-radius: var(--radius); box-shadow: var(--shadow-card); padding: 1.4rem; }
.card--pad0 { padding: 0; overflow: hidden; }
.card h3 { margin-bottom: .3rem; }
.card .meta { font-family: var(--type-eyebrow); text-transform: uppercase; letter-spacing: 1px; font-size: .7rem; color: #6b6155; }

.program-card { display: flex; flex-direction: column; background: var(--color-bone-white); border: 1px solid rgba(92,64,51,.12); border-radius: var(--radius); box-shadow: var(--shadow-card); overflow: hidden; transition: transform .12s ease, box-shadow .12s ease; }
.program-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.program-card .pc-band { height: 7px; }
.pc-band--mac { background: var(--color-terracotta-mesa); }
.pc-band--gallery { background: var(--color-sage-plateau); }
.pc-band--directory { background: var(--color-indigo-dusk); }
.pc-band--plein { background: var(--color-gold-sunset); }
.pc-band--dev { background: #8b8175; }
.program-card .pc-body { padding: 1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; flex:1; }
.program-card .tag { align-self: flex-start; margin-bottom: .7rem; }
.program-card h3 a { text-decoration: none; color: var(--color-brown-adobe); }
.program-card p { color: #4a4036; flex: 1; }
.program-card .pc-link { font-weight: 700; text-decoration: none; color: var(--color-terracotta-deep); }
.program-card .pc-link:hover { text-decoration: underline; }
.pc-updated { font-size:.75rem; color:#7a7064; margin-top:.8rem; }

/* =======================  METRIC STRIP  ======================= */
.metric-strip { display: grid; gap: 1.2rem; grid-template-columns: repeat(4,1fr); text-align:center; }
@media (max-width:760px){ .metric-strip { grid-template-columns: repeat(2,1fr);} }
.metric .value { font-family: var(--type-display); font-weight: 600; font-size: clamp(2.2rem,4.5vw,3.2rem); color: var(--color-terracotta-deep); line-height: 1; }
.section--indigo .metric .value, .section--brown .metric .value { color: var(--color-gold-sunset); }
.metric .label { font-family: var(--type-eyebrow); text-transform: uppercase; letter-spacing: 1px; font-size: .76rem; margin-top:.4rem; }
.metric .foot { font-size: .8rem; opacity:.8; }

/* =======================  PULL QUOTE  ======================= */
.pullquote { border-left: 4px solid var(--color-terracotta-mesa); padding: .4rem 0 .4rem 1.6rem; margin: 1.8rem 0; }
.pullquote p { font-family: var(--type-display); font-size: clamp(1.5rem,3vw,2rem); font-weight: 500; color: var(--color-brown-adobe); line-height: 1.25; margin-bottom:.4rem; }
.pullquote cite { font-style: normal; font-family: var(--type-eyebrow); text-transform: uppercase; letter-spacing: 1px; font-size: .75rem; color:#6b6155; }

/* =======================  MVV blocks  ======================= */
.mvv { text-align:center; padding-block: 1.6rem; border-bottom: 1px solid rgba(92,64,51,.12); }
.mvv:last-child { border-bottom: 0; }
.mvv .statement { font-family: var(--type-display); font-size: clamp(1.7rem,3.4vw,2.5rem); font-weight: 500; color: var(--color-brown-adobe); max-width: 22ch; margin-inline:auto; line-height:1.2; }

/* =======================  BOARD ROSTER  ======================= */
.roster { display: grid; gap: 1.4rem; grid-template-columns: repeat(4,1fr); }
@media (max-width:900px){ .roster { grid-template-columns: repeat(2,1fr);} }
@media (max-width:520px){ .roster { grid-template-columns: 1fr;} }
.person { text-align:center; }
.avatar { width: 130px; height: 130px; border-radius: 50%; margin: 0 auto .8rem; object-fit: cover; border: 3px solid var(--color-bone-white); box-shadow: var(--shadow-card); }
.avatar--mono { display:flex; align-items:center; justify-content:center; background: var(--color-brown-adobe); color: var(--color-cream-stone); font-family: var(--type-display); font-weight:600; font-size:2.6rem; }
.person h4 { margin-bottom:.1rem; font-family: var(--type-display); font-size:1.25rem; font-weight:600; }
.person .role { font-family: var(--type-eyebrow); text-transform: uppercase; letter-spacing:1px; font-size:.72rem; color: var(--color-terracotta-deep); }
.person .affil { font-size:.9rem; color:#6b6155; }
.person .term { font-size:.78rem; color:#8a8073; margin-top:.2rem; }
.officer-badge { display:inline-block; font-family:var(--type-eyebrow); font-size:.62rem; letter-spacing:1px; text-transform:uppercase; background:var(--color-gold-sunset); color:var(--color-ink-black); padding:.15rem .5rem; border-radius:100px; margin-top:.35rem; }

/* =======================  DONATE WIDGET  ======================= */
.donate-widget { background: var(--color-bone-white); border: 1px solid rgba(92,64,51,.15); border-radius: var(--radius); box-shadow: var(--shadow-lift); padding: 1.6rem; }
.amount-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:.6rem; margin:.8rem 0; }
.amount-btn { padding:.8rem; border:2px solid rgba(92,64,51,.25); background:#fff; border-radius:var(--radius); font-weight:700; font-size:1.05rem; cursor:pointer; color:var(--color-brown-adobe); }
.amount-btn[aria-pressed="true"], .amount-btn:hover { border-color: var(--color-terracotta-deep); background: var(--color-cream-stone); }
.field { margin-bottom: 1rem; }
.field label { display:block; font-weight:700; font-size:.92rem; margin-bottom:.35rem; color:var(--color-brown-adobe); }
.field input, .field select, .field textarea {
  width:100%; padding:.7rem .8rem; border:2px solid rgba(92,64,51,.25); border-radius:var(--radius);
  font-family:var(--type-body); font-size:1rem; background:#fff; color:var(--color-ink-black);
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--color-terracotta-deep); outline:none; }
.toggle-row { display:flex; align-items:center; gap:.6rem; background:var(--color-cream-stone); padding:.7rem .9rem; border-radius:var(--radius); margin:.6rem 0; }
.toggle-row input { width:1.2rem; height:1.2rem; accent-color: var(--color-terracotta-deep); }
.impact-line { font-size:.95rem; color:#4a4036; background:rgba(139,157,126,.18); border-radius:var(--radius); padding:.7rem .9rem; margin:.6rem 0; }
.trust-strip { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; font-size:.82rem; color:#6b6155; margin-top:1rem; padding-top:1rem; border-top:1px solid rgba(92,64,51,.12); }
.badge-501 { font-family:var(--type-eyebrow); font-weight:600; font-size:.7rem; letter-spacing:.5px; border:1.5px solid var(--color-sage-plateau); color:var(--color-brown-adobe); padding:.3rem .6rem; border-radius:100px; }

/* =======================  TIER TABLE  ======================= */
.tier-table { display:grid; gap:1rem; grid-template-columns: repeat(4,1fr); }
@media (max-width:900px){ .tier-table { grid-template-columns: repeat(2,1fr);} }
@media (max-width:560px){ .tier-table { grid-template-columns: 1fr;} }
.tier { background:var(--color-bone-white); border:1px solid rgba(92,64,51,.14); border-top:4px solid var(--color-gold-sunset); border-radius:var(--radius); padding:1.3rem; box-shadow:var(--shadow-card); }
.tier .price { font-family:var(--type-display); font-size:1.9rem; font-weight:600; color:var(--color-brown-adobe); }
.tier .tier-name { font-family:var(--type-eyebrow); text-transform:uppercase; letter-spacing:1px; font-size:.78rem; color:var(--color-terracotta-deep); }
.tier ul { padding-left:1.1rem; margin:.6rem 0 0; }
.tier li { margin-bottom:.3rem; font-size:.93rem; }

/* =======================  FAQ ACCORDION  ======================= */
.faq { border-top:1px solid rgba(92,64,51,.14); }
.faq details { border-bottom:1px solid rgba(92,64,51,.14); }
.faq summary { cursor:pointer; padding:1rem 0; font-weight:700; color:var(--color-brown-adobe); list-style:none; display:flex; justify-content:space-between; gap:1rem; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; font-size:1.4rem; line-height:1; color:var(--color-terracotta-deep); }
.faq details[open] summary::after { content:"–"; }
.faq details > p { padding-bottom:1rem; margin:0; color:#4a4036; }

/* =======================  DIRECTORY  ======================= */
.dir-search { display:flex; gap:.6rem; max-width:560px; }
.dir-search input { flex:1; padding:.8rem 1rem; border-radius:var(--radius); border:2px solid rgba(92,64,51,.25); font-size:1rem; }
.lane { background:var(--color-bone-white); border:1px solid rgba(92,64,51,.12); border-radius:var(--radius); padding:1.2rem; text-decoration:none; color:var(--color-brown-adobe); box-shadow:var(--shadow-card); display:block; transition:transform .12s ease; }
.lane:hover { transform:translateY(-3px); box-shadow:var(--shadow-lift); }
.lane .count { font-family:var(--type-display); font-size:1.8rem; font-weight:600; color:var(--color-terracotta-deep); }
.lane h4 { margin:.2rem 0 0; }
.dir-card { background:var(--color-bone-white); border:1px solid rgba(92,64,51,.12); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-card); }
.dir-card .dc-photo { aspect-ratio: 4/3; background:var(--color-sage-plateau); display:flex; align-items:center; justify-content:center; color:var(--color-cream-stone); font-family:var(--type-display); font-size:2.4rem; }
.dir-card .dc-body { padding:1rem 1.1rem 1.2rem; }
.dir-card .dc-tags { display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.5rem; }
.dc-tags span { font-size:.7rem; background:var(--color-cream-stone); border:1px solid rgba(92,64,51,.15); padding:.15rem .5rem; border-radius:100px; color:#6b6155; }

/* =======================  DIRECTORY FILTERS  ======================= */
.filter-bar { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:.4rem 0 1.4rem; }
.filter-bar .flabel { font-family:var(--type-eyebrow); text-transform:uppercase; letter-spacing:1px; font-size:.7rem; color:#6b6155; margin-right:.2rem; }
.chip { font-family:var(--type-body); font-weight:600; font-size:.85rem; padding:.4rem .85rem; border-radius:100px; border:1.5px solid rgba(92,64,51,.25); background:var(--color-bone-white); color:var(--color-brown-adobe); cursor:pointer; }
.chip:hover { border-color:var(--color-terracotta-deep); }
.chip[aria-pressed="true"] { background:var(--color-brown-adobe); color:var(--color-cream-stone); border-color:var(--color-brown-adobe); }
.dir-count { font-size:.85rem; color:#6b6155; margin-bottom:1rem; }
.dir-empty { padding:2rem; text-align:center; color:#6b6155; background:var(--color-bone-white); border:1px dashed rgba(92,64,51,.25); border-radius:var(--radius); }

/* =======================  PARTNERSHIP CREDIT  ======================= */
.partner-credit { display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap; justify-content:center; padding:1.4rem; background:var(--color-cream-stone); border-radius:var(--radius); }
.partner-credit .rule { width:1px; height:48px; background:rgba(92,64,51,.25); }
.partner-credit .endorse { font-style:italic; color:#4a4036; font-family:var(--type-display); font-size:1.2rem; }
.partner-logo { font-family:var(--type-display); font-weight:600; font-size:1.2rem; color:var(--color-brown-adobe); }

/* =======================  DOC LIBRARY  ======================= */
.doc-list { list-style:none; padding:0; margin:0; }
.doc-list li { display:flex; align-items:center; gap:1rem; justify-content:space-between; padding:.9rem 0; border-bottom:1px solid rgba(92,64,51,.12); flex-wrap:wrap; }
.doc-list .d-name { font-weight:700; color:var(--color-brown-adobe); }
.doc-list .d-meta { font-size:.82rem; color:#7a7064; }
.pill { font-size:.7rem; font-family:var(--type-eyebrow); letter-spacing:.5px; text-transform:uppercase; padding:.2rem .5rem; border-radius:100px; }
.pill--audited { background:rgba(139,157,126,.25); color:#4d5b40; }
.pill--pending { background:rgba(212,162,76,.22); color:#8a6a1f; }

/* =======================  ARTIST PORTAL  ======================= */
.auth-card { max-width: 440px; margin: 0 auto; background: var(--color-bone-white); border:1px solid rgba(92,64,51,.15); border-radius: var(--radius); box-shadow: var(--shadow-lift); padding: 2rem; }
.portal-shell { display:grid; grid-template-columns: 240px 1fr; gap: 1.6rem; align-items:start; }
@media (max-width: 820px){ .portal-shell { grid-template-columns: 1fr; } }
.portal-nav { background:var(--color-bone-white); border:1px solid rgba(92,64,51,.12); border-radius:var(--radius); padding:.6rem; box-shadow:var(--shadow-card); position:sticky; top:80px; }
.portal-nav button { display:block; width:100%; text-align:left; background:none; border:0; padding:.65rem .8rem; border-radius:var(--radius); font-family:var(--type-body); font-weight:600; font-size:.95rem; color:var(--color-brown-adobe); cursor:pointer; }
.portal-nav button:hover { background:var(--color-cream-stone); }
.portal-nav button[aria-current="true"] { background:var(--color-brown-adobe); color:var(--color-cream-stone); }
.portal-panel { display:none; }
.portal-panel.active { display:block; }
.msg-list { list-style:none; padding:0; margin:1rem 0 0; }
.msg { display:flex; gap:.9rem; padding:1rem 0; border-bottom:1px solid rgba(92,64,51,.12); }
.msg .msg-av { width:42px; height:42px; border-radius:50%; flex-shrink:0; background:var(--color-sage-plateau); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--type-display); font-weight:600; }
.msg .msg-meta { font-size:.78rem; color:#8a8073; }
.msg .msg-body { margin:.2rem 0 0; }
.composer { display:flex; gap:.6rem; margin-top:1rem; }
.composer input { flex:1; padding:.7rem .9rem; border:2px solid rgba(92,64,51,.25); border-radius:var(--radius); font-size:1rem; }
.member-badge { display:inline-block; font-family:var(--type-eyebrow); font-size:.66rem; letter-spacing:1px; text-transform:uppercase; background:var(--color-sage-plateau); color:#fff; padding:.2rem .55rem; border-radius:100px; }

/* =======================  JURY ROOM  ======================= */
.jury-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
@media (max-width:760px){ .jury-grid { grid-template-columns:1fr; } }
.jury-card { background:var(--color-bone-white); border:1px solid rgba(92,64,51,.14); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-card); }
.jury-card .jc-img { aspect-ratio:4/3; background:linear-gradient(135deg,#8B9D7E,#5C4033); display:flex; align-items:center; justify-content:center; color:var(--color-cream-stone); font-family:var(--type-display); font-size:1.1rem; }
.jury-card .jc-body { padding:1rem; }
.score-row { display:flex; gap:.3rem; margin-top:.6rem; }
.score-row button { width:30px; height:30px; border-radius:6px; border:1.5px solid rgba(92,64,51,.25); background:#fff; font-weight:700; cursor:pointer; color:var(--color-brown-adobe); }
.score-row button[aria-pressed="true"] { background:var(--color-gold-sunset); border-color:var(--color-gold-sunset); }
.blind-tag { font-size:.68rem; font-family:var(--type-eyebrow); letter-spacing:1px; text-transform:uppercase; color:#6b6155; }

/* =======================  CROSSLINK STRIP  ======================= */
.crosslinks { display:flex; gap:1rem; flex-wrap:wrap; }
.crosslinks a { background:var(--color-bone-white); border:1px solid rgba(92,64,51,.14); padding:.7rem 1.1rem; border-radius:var(--radius); text-decoration:none; font-weight:700; color:var(--color-brown-adobe); }
.crosslinks a:hover { border-color:var(--color-terracotta-deep); color:var(--color-terracotta-deep); }

/* =======================  BREADCRUMB  ======================= */
.breadcrumb { font-size:.82rem; color:#7a7064; padding-block:.8rem; }
.breadcrumb a { color:#7a7064; text-decoration:none; }
.breadcrumb a:hover { text-decoration:underline; }
.breadcrumb span { color:var(--color-brown-adobe); }

/* =======================  NEWSLETTER  ======================= */
.newsletter-inline { display:flex; gap:.6rem; flex-wrap:wrap; max-width:520px; }
.newsletter-inline input { flex:1; min-width:200px; padding:.75rem .9rem; border-radius:var(--radius); border:2px solid rgba(92,64,51,.25); }

/* =======================  FOOTER  ======================= */
.site-footer { background: var(--color-indigo-dusk); color: var(--color-cream-stone); padding-block: 3rem 2rem; }
.site-footer a { color: #d9d2c4; text-decoration: none; }
.site-footer a:hover { color:#fff; text-decoration: underline; }
.footer-grid { display:grid; grid-template-columns: 1.4fr repeat(4,1fr); gap:1.6rem; }
@media (max-width:900px){ .footer-grid { grid-template-columns: repeat(2,1fr);} }
@media (max-width:520px){ .footer-grid { grid-template-columns: 1fr;} }
.footer-grid h5 { font-family:var(--type-eyebrow); text-transform:uppercase; letter-spacing:1px; font-size:.74rem; color:var(--color-gold-sunset); margin:0 0 .8rem; }
.footer-grid ul { list-style:none; padding:0; margin:0; }
.footer-grid li { margin-bottom:.45rem; font-size:.92rem; }
.footer-brand p { font-size:.9rem; color:#c7c0b3; }
.footer-ein { font-size:.82rem; color:#b7b0a3; margin-top:1rem; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.15); margin-top:2rem; padding-top:1.2rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.82rem; color:#b7b0a3; }
.footer-bottom a { color:#b7b0a3; }

/* --- helpers --- */
.mt0{margin-top:0}.mb0{margin-bottom:0}.mt1{margin-top:1rem}.mt2{margin-top:2rem}
.skip-link { position:absolute; left:-999px; top:0; background:var(--color-brown-adobe); color:#fff; padding:.6rem 1rem; z-index:200; border-radius:0 0 var(--radius) 0; }
.skip-link:focus { left:0; }
.notice { background:rgba(212,162,76,.16); border:1px solid rgba(212,162,76,.4); border-radius:var(--radius); padding:.9rem 1.1rem; font-size:.9rem; color:#6e5a25; }

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