:root {
  --plum: #4B2068;
  --plum-dark: #2F1442;
  --plum-deeper: #1C0B28;
  --gold: #E8B43F;
  --gold-bright: #F2C653;
  --ink: #121212;
  --paper: #FAFAFA;
  --lilac: #EDE7F3;
  --muted: #6B6475;
  --hair: rgba(232, 180, 63, 0.35);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.55;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
.eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold); }
/* <picture> wrappers (added at build for WebP) must not affect layout — let the <img> size as a direct child. */
picture { display: contents; }
.nav { background: var(--ink); color: #fff; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,0.08); position: sticky; top: 0; z-index: 100; }
.nav-inner { max-width: 1180px; margin: 0 auto; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; }
.nav-brand { display: flex; align-items: center; text-decoration: none; color: #fff; }
.nav-logo { height: 40px; width: auto; }
.nav-links { display: flex; gap: 28px; list-style: none; font-size: 13px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; }
.nav-links a { color: #fff; text-decoration: none; opacity: 0.78; transition: opacity .15s, color .15s; }
.nav-links a:hover, .nav-links a.active { opacity: 1; color: var(--gold); }
.nav-cta { background: var(--gold); color: var(--ink); padding: 9px 18px; border-radius: 3px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; transition: background .15s; }
.nav-cta:hover { background: var(--gold-bright); }
.nav-ctas { display: flex; gap: 8px; align-items: center; }
.nav-cta-vendor { background: var(--plum); color: #fff; padding: 9px 18px; border-radius: 3px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; transition: background .15s; display: inline-block; }
.nav-cta-vendor:hover { background: var(--plum-dark); }
.breadcrumb { background: var(--plum-deeper); color: rgba(255,255,255,0.65); padding: 10px 0; font-size: 12px; letter-spacing: 0.08em; }
.breadcrumb-inner { max-width: 1180px; margin: 0 auto; padding: 0 32px; }
.breadcrumb a { color: rgba(255,255,255,0.65); text-decoration: none; }
.breadcrumb a:hover { color: var(--gold); }
.breadcrumb .sep { margin: 0 10px; color: var(--gold); }
.btn { display: inline-block; padding: 14px 28px; font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; border-radius: 3px; transition: transform .15s, background .15s, border-color .15s, color .15s; border: none; cursor: pointer; }
.btn-primary { background: var(--gold); color: var(--ink); }
.btn-primary:hover { background: var(--gold-bright); transform: translateY(-1px); }
.btn-secondary { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4); }
.btn-secondary:hover { border-color: var(--gold); color: var(--gold); }
.btn-ghost { background: transparent; color: var(--plum); border: 1px solid rgba(75,32,104,0.35); }
.btn-ghost:hover { background: var(--plum); color: #fff; border-color: var(--plum); }
section { padding: 80px 0; }
section.tinted { background: #fff; }
section.dark { background: var(--plum); color: #fff; }
.container { max-width: 1080px; margin: 0 auto; padding: 0 32px; }
.section-header { margin-bottom: 36px; padding-bottom: 18px; border-bottom: 2px solid var(--gold); }
.section-header.center { text-align: center; border-bottom: none; margin-bottom: 28px; padding-bottom: 0; }
.section-header.center::after { content: ""; display: block; width: 64px; height: 2px; background: var(--gold); margin: 18px auto 0; }
.section-header .eyebrow { display: block; margin-bottom: 10px; }
.section-header h2 { font-size: 38px; font-weight: 800; letter-spacing: -0.01em; color: var(--plum); line-height: 1.15; }
section.dark .section-header h2 { color: #fff; }
section.dark .section-header { border-bottom-color: var(--gold); }
p { margin-bottom: 16px; max-width: 820px; }
p.lead { font-size: 18px; color: var(--muted); max-width: 820px; }
section.dark p.lead { color: rgba(255,255,255,0.78); }
footer { background: var(--ink); color: rgba(255,255,255,0.7); padding: 56px 0 32px; font-size: 13px; }
.footer-inner { max-width: 1180px; margin: 0 auto; padding: 0 32px; }
.footer-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,0.12); margin-bottom: 24px; }
footer a { color: rgba(255,255,255,0.7); text-decoration: none; }
footer a:hover { color: var(--gold); }
footer ul { list-style: none; }
footer ul li { padding: 4px 0; }
footer .col-title { font-size: 11px; letter-spacing: 0.22em; color: var(--gold); text-transform: uppercase; margin-bottom: 14px; font-weight: 700; }
footer .legal { font-size: 12px; color: rgba(255,255,255,0.4); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
footer .tagline { color: rgba(255,255,255,0.55); line-height: 1.6; max-width: 360px; margin-top: 14px; }
footer .footer-logo { height: 36px; width: auto; }
@media (max-width: 860px) {
  .footer-top { grid-template-columns: 1fr; }
  .nav-links { display: none; }
  section { padding: 56px 0; }
  .section-header h2 { font-size: 28px; }
}
@media (max-width: 480px) { .nav-cta-vendor { display: none; } }


/* ==========================================================================
   PAGE TYPE: CONTENT / LEGAL  (body.page-doc)
   ========================================================================== */
.page-doc .page-hero {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%); color: #fff; padding: 64px 0 72px; position: relative; overflow: hidden;}
.page-doc .page-hero::after {content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 80% 30%, rgba(232,180,63,0.12) 0%, transparent 55%); pointer-events: none;}
.page-doc .page-hero-inner {max-width: 880px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1;}
.page-doc .page-hero h1 {font-family: 'Playfair Display', serif; font-size: 48px; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; margin: 18px 0 18px;}
.page-doc .page-hero .accent {color: var(--gold);}
.page-doc .page-hero .effective {display: inline-block; background: rgba(255,255,255,0.08); border: 1px solid rgba(232,180,63,0.4); border-left: 3px solid var(--gold); color: var(--gold); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 700; padding: 7px 14px; border-radius: 2px; margin-bottom: 8px;}
.page-doc .page-hero .lead {font-size: 17px; line-height: 1.6; color: rgba(255,255,255,0.84); max-width: 720px; margin-top: 18px;}
@media (max-width: 720px) {
  .page-doc .page-hero h1 {font-size: 34px;}
}
.page-doc .policy-section {padding: 64px 0 80px;}
.page-doc .policy-layout {max-width: 1180px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1fr 280px; gap: 56px; align-items: start;}
.page-doc .policy-content {min-width: 0;}
.page-doc .policy-content h2 {font-size: 22px; font-weight: 800; color: var(--plum); margin: 40px 0 14px; letter-spacing: -0.005em; line-height: 1.25; padding-bottom: 8px; border-bottom: 2px solid var(--gold); max-width: 640px;}
.page-doc .policy-content h2:first-child {margin-top: 0;}
.page-doc .policy-content h3 {font-size: 15px; font-weight: 700; color: var(--plum); margin: 24px 0 8px; letter-spacing: 0.02em;}
.page-doc .policy-content p {font-size: 15.5px; line-height: 1.75; color: var(--ink); margin-bottom: 14px; max-width: none;}
.page-doc .policy-content ul {margin: 8px 0 18px 0; list-style: none;}
.page-doc .policy-content ul li {position: relative; padding: 6px 0 6px 22px; font-size: 15.5px; line-height: 1.7; color: var(--ink);}
.page-doc .policy-content ul li::before {content: ""; position: absolute; left: 0; top: 15px; width: 10px; height: 2px; background: var(--gold);}
.page-doc .policy-content ol {margin: 8px 0 18px 22px; font-size: 15.5px; line-height: 1.7; color: var(--ink);}
.page-doc .policy-content ol li {padding: 4px 0; padding-left: 6px;}
.page-doc .policy-content ol li::marker {color: var(--gold); font-weight: 700;}
.page-doc .policy-content .uppercase-legal {text-transform: uppercase; font-weight: 700; letter-spacing: 0.02em; background: var(--lilac); border-left: 3px solid var(--gold); padding: 18px 22px; margin: 18px 0; font-size: 13px; line-height: 1.65; color: var(--ink);}
.page-doc .policy-content a {color: var(--plum); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; font-weight: 600;}
.page-doc .policy-content a:hover {color: var(--gold);}
.page-doc .policy-content strong {color: var(--plum); font-weight: 700;}
.page-doc .policy-content .contact-block {background: var(--lilac); border-left: 3px solid var(--gold); padding: 22px 26px; margin-top: 18px; border-radius: 2px;}
.page-doc .policy-content .contact-block strong {display: block; color: var(--plum); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; margin-bottom: 10px;}
.page-doc .policy-content .intro-note {background: #fff; border: 1px solid rgba(75,32,104,0.15); border-top: 3px solid var(--gold); padding: 20px 24px; margin-bottom: 36px; border-radius: 2px; font-size: 14.5px; line-height: 1.65; color: var(--muted); font-style: italic;}
.page-doc .policy-sidebar {position: sticky; top: 88px; background: #fff; border: 1px solid rgba(75,32,104,0.15); border-top: 3px solid var(--gold); padding: 22px 22px; border-radius: 2px;}
.page-doc .policy-sidebar h4 {font-size: 11px; letter-spacing: 0.22em; color: var(--plum); text-transform: uppercase; font-weight: 700; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(75,32,104,0.12);}
.page-doc .policy-sidebar ul {list-style: none;}
.page-doc .policy-sidebar li {padding: 8px 0; border-bottom: 1px solid rgba(75,32,104,0.08);}
.page-doc .policy-sidebar li:last-child {border-bottom: none;}
.page-doc .policy-sidebar a {display: block; font-size: 13px; color: var(--ink); text-decoration: none; font-weight: 600; transition: color .15s, padding-left .15s;}
.page-doc .policy-sidebar a:hover {color: var(--plum); padding-left: 4px;}
.page-doc .policy-sidebar a.current {color: var(--plum); padding-left: 8px; border-left: 2px solid var(--gold); position: relative;}
.page-doc .policy-sidebar .effective-tag {font-size: 11px; color: var(--muted); font-weight: 500; display: block; margin-top: 2px; letter-spacing: 0.04em;}
@media (max-width: 960px) {
  .page-doc .policy-layout {grid-template-columns: 1fr; gap: 32px;}
  .page-doc .policy-sidebar {position: static;}
}
@media (max-width: 720px) {
  .page-doc .policy-content h2 {font-size: 18px;}
}


/* ==========================================================================
   PAGE TYPE: VENDOR  (body.page-vendor)
   ========================================================================== */
.page-vendor .nav-links a:hover, .page-vendor .nav-links a.active {opacity: 1; color: var(--gold);}
.page-vendor .page-hero {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%); color: #fff; padding: 72px 0 80px; position: relative; overflow: hidden;}
.page-vendor .page-hero::after {content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 85% 40%, rgba(232,180,63,0.12) 0%, transparent 55%); pointer-events: none;}
.page-vendor .page-hero-inner {max-width: 1180px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1; display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px; align-items: center;}
.page-vendor .page-hero h1 {font-size: 48px; line-height: 1.08; font-weight: 800; letter-spacing: -0.02em; margin: 22px 0 20px;}
.page-vendor .page-hero h1 .accent {color: var(--gold);}
.page-vendor .page-hero .lead {font-size: 18px; line-height: 1.6; color: rgba(255,255,255,0.84); max-width: 600px; margin-bottom: 28px;}
.page-vendor .page-hero .ribbon {display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding-top: 22px; border-top: 2px solid var(--gold); max-width: 600px;}
.page-vendor .page-hero .ribbon .label {font-size: 11px; letter-spacing: 0.22em; font-weight: 600; color: rgba(255,255,255,0.6); text-transform: uppercase; margin-right: 6px;}
.page-vendor .cert-badge {display: inline-block; padding: 6px 12px; border: 1px solid var(--gold); border-radius: 2px; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); font-weight: 700; background: rgba(232,180,63,0.06);}
.page-vendor .vendor-card {background: rgba(255,255,255,0.05); border: 1px solid rgba(232,180,63,0.35); border-radius: 4px; padding: 36px 32px; box-shadow: 0 20px 60px rgba(0,0,0,0.28); position: relative; text-align: center;}
.page-vendor .vendor-card::before {content: ""; position: absolute; top: 0; left: 24px; right: 24px; height: 3px; background: var(--gold);}
.page-vendor .vendor-card .card-label {font-size: 11px; letter-spacing: 0.28em; color: var(--gold); text-transform: uppercase; font-weight: 700; margin-bottom: 22px;}
.page-vendor .vendor-card .logo-wrap {background: transparent; border-radius: 4px; padding: 0; margin-bottom: 18px; display: flex; align-items: center; justify-content: center; overflow: hidden;}
.page-vendor .vendor-card .logo-wrap img {width: 100%; height: auto; display: block; border-radius: 4px;}
.page-vendor .vendor-card .vendor-place {font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.7); font-weight: 600;}
.page-vendor .vendor-card .vendor-place strong {color: var(--gold); font-weight: 700;}
.page-vendor .about-grid {display: grid; grid-template-columns: 1.65fr 1fr; gap: 48px; align-items: start;}
.page-vendor .quick-facts {background: var(--lilac); border-left: 3px solid var(--gold); border-radius: 2px; padding: 28px 28px;}
.page-vendor .quick-facts h4 {font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--plum); font-weight: 700; margin-bottom: 18px;}
.page-vendor .quick-facts dl {display: grid; gap: 14px;}
.page-vendor .quick-facts dt {font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin-bottom: 2px;}
.page-vendor .quick-facts dd {font-size: 14px; color: var(--ink); font-weight: 500; line-height: 1.45;}
.page-vendor .standard-card {background: rgba(255,255,255,0.05); border-left: 3px solid var(--gold); padding: 26px 30px; border-radius: 2px; margin-bottom: 8px;}
.page-vendor .standard-card .tag {font-size: 11px; letter-spacing: 0.22em; color: var(--gold); font-weight: 700; text-transform: uppercase; margin-bottom: 8px; display: block;}
.page-vendor .standard-card h3 {font-size: 22px; font-weight: 700; color: #fff; line-height: 1.3; margin-bottom: 14px;}
.page-vendor .standard-card p {color: rgba(255,255,255,0.82); margin-bottom: 14px;}
.page-vendor .standard-card p:last-child {margin-bottom: 0;}
.page-vendor .reason-list {list-style: none; padding: 0; margin: 14px 0 0;}
.page-vendor .reason-list li {color: rgba(255,255,255,0.82); padding: 14px 0 14px 28px; border-bottom: 1px solid rgba(255,255,255,0.08); position: relative; font-size: 15px; line-height: 1.6;}
.page-vendor .reason-list li:last-child {border-bottom: none;}
.page-vendor .reason-list li::before {content: "›"; position: absolute; left: 0; color: var(--gold); font-weight: 700; font-size: 18px; top: 11px;}
.page-vendor .reason-list li strong {color: #fff; font-weight: 700;}
.page-vendor .where-we-stand {margin-top: 36px; padding: 24px 28px; background: rgba(255,255,255,0.04); border: 1px solid rgba(232,180,63,0.25); border-radius: 3px;}
.page-vendor .where-we-stand h4 {font-size: 12px; letter-spacing: 0.24em; color: var(--gold); text-transform: uppercase; font-weight: 700; margin-bottom: 12px;}
.page-vendor .where-we-stand p {color: rgba(255,255,255,0.82); margin-bottom: 0;}
.page-vendor .product {background: #fff; border: 1px solid rgba(75,32,104,0.12); border-radius: 3px; padding: 30px 32px; margin-bottom: 18px; box-shadow: 0 1px 0 rgba(0,0,0,0.02); overflow: hidden;}
.page-vendor .product .product-photo {float: left; width: 108px; height: 108px; object-fit: contain; margin: 2px 24px 14px 0; background: #fff; border: 1px solid rgba(75,32,104,0.12); border-radius: 6px; padding: 8px;}
@media (max-width: 560px) {
  .page-vendor .product .product-photo {width: 78px; height: 78px; margin: 0 16px 12px 0;}
}
.page-vendor .product-top {display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 14px; margin-bottom: 14px;}
.page-vendor .product h3 {font-size: 22px; color: var(--plum); font-weight: 800; letter-spacing: -0.005em;}
.page-vendor .product .product-tagline {font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); font-weight: 700;}
.page-vendor .product .pill-row {display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px;}
.page-vendor .cert-pill {display: inline-block; padding: 5px 11px; background: var(--plum); color: #fff; border-radius: 2px; font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700;}
.page-vendor .cert-pill.alt {background: var(--gold); color: var(--ink);}
.page-vendor .cert-pill.muted {background: var(--lilac); color: var(--plum);}
.page-vendor .product .product-specs {font-size: 14px; color: var(--ink); margin-bottom: 12px; line-height: 1.6;}
.page-vendor .product .product-specs strong {color: var(--plum); font-weight: 700;}
.page-vendor .product p {font-size: 15px; color: var(--ink); line-height: 1.65; margin-bottom: 12px;}
.page-vendor .product .best-for {font-size: 14px; color: var(--muted); line-height: 1.55; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(75,32,104,0.1);}
.page-vendor .product .best-for strong {color: var(--plum); font-weight: 700;}
.page-vendor .product-note {margin-top: 22px; padding: 18px 22px; background: var(--lilac); border-radius: 2px; font-size: 14px; color: var(--plum); line-height: 1.6;}
.page-vendor .quotes-grid {display: grid; gap: 22px;}
.page-vendor .quote {background: rgba(255,255,255,0.05); border-left: 3px solid var(--gold); border-radius: 2px; padding: 26px 30px;}
.page-vendor .quote p.q {font-family: 'Playfair Display', serif; font-size: 20px; line-height: 1.45; color: #fff; font-weight: 700; margin-bottom: 16px; font-style: italic;}
.page-vendor .quote .attrib {font-size: 13px; color: rgba(255,255,255,0.78); line-height: 1.5;}
.page-vendor .quote .attrib strong {color: var(--gold); font-weight: 700; display: block; font-size: 14px;}
.page-vendor .quote .attrib .title {color: rgba(255,255,255,0.65); font-size: 12px; letter-spacing: 0.08em;}
.page-vendor .end-cta {background: var(--plum); color: #fff; padding: 56px 0; text-align: center;}
.page-vendor .end-cta h3 {font-size: 30px; font-weight: 800; margin-bottom: 12px; color: #fff; letter-spacing: -0.01em;}
.page-vendor .end-cta h3 .accent {color: var(--gold);}
.page-vendor .end-cta p {color: rgba(255,255,255,0.8); max-width: 640px; margin: 0 auto 26px; font-size: 17px;}
.page-vendor .end-cta .btn-row {display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;}
@media (max-width: 860px) {
  .page-vendor .page-hero-inner, .page-vendor .about-grid, .page-vendor .footer-top {grid-template-columns: 1fr;}
  .page-vendor .page-hero h1 {font-size: 34px;}
  .page-vendor .page-hero {padding: 52px 0 60px;}
  .page-vendor .end-cta h3 {font-size: 24px;}
}
.page-vendor .quick-facts dd a {color: var(--plum); font-weight: 700; text-decoration: none;}
.page-vendor .quick-facts dd a:hover {color: var(--gold);}
.page-vendor .where-we-stand p:last-child {margin-bottom: 0;}
.page-vendor .pillar-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 28px 0 8px;}
.page-vendor .pillar {background: var(--lilac); border-top: 3px solid var(--gold); padding: 22px 22px 20px; border-radius: 2px;}
.page-vendor .pillar .pillar-num {font-size: 11px; letter-spacing: 0.28em; font-weight: 700; color: var(--plum); text-transform: uppercase; margin-bottom: 8px;}
.page-vendor .pillar h4 {font-size: 16px; color: var(--plum); font-weight: 800; margin-bottom: 10px;}
.page-vendor .pillar p {font-size: 13.5px; color: var(--ink); line-height: 1.6; margin-bottom: 0; max-width: none;}
@media (max-width: 860px) {
  .page-vendor .page-hero-inner, .page-vendor .about-grid, .page-vendor .footer-top, .page-vendor .pillar-grid {grid-template-columns: 1fr;}
  .page-vendor .page-hero h1 {font-size: 34px;}
  .page-vendor .page-hero {padding: 52px 0 60px;}
  .page-vendor .end-cta h3 {font-size: 24px;}
}
.page-vendor .product-gallery {display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 4px 0 22px;}
.page-vendor .product-gallery figure {background: #fff; border: 1px solid rgba(75,32,104,0.12); border-radius: 3px; overflow: hidden; margin: 0;}
.page-vendor .product-gallery a {display: block;}
.page-vendor .product-gallery img {width: 100%; height: auto; display: block; aspect-ratio: 10 / 7; object-fit: contain; background: #fff; transition: transform .2s ease;}
.page-vendor .product-gallery a:hover img {transform: scale(1.03);}
.page-vendor .product-gallery figcaption {font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-weight: 700; text-align: center; padding: 10px 8px; border-top: 1px solid rgba(75,32,104,0.08); background: rgba(75,32,104,0.02);}
@media (max-width: 640px) {
  .page-vendor .product-gallery {grid-template-columns: 1fr;}
}
.page-vendor .formula-table {width: 100%; border-collapse: collapse; margin: 18px 0 22px; background: #fff; border: 1px solid rgba(75,32,104,0.12); border-radius: 3px; overflow: hidden;}
.page-vendor .formula-table th {background: var(--plum); color: #fff; text-align: left; padding: 12px 18px; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 700;}
.page-vendor .formula-table td {padding: 12px 18px; font-size: 14px; color: var(--ink); border-top: 1px solid rgba(75,32,104,0.08);}
.page-vendor .formula-table td:first-child {font-weight: 700; color: var(--plum); width: 36%;}
.page-vendor .formula-table td:nth-child(2) {font-weight: 700; color: var(--ink); width: 18%;}
.page-vendor .formula-table tr:nth-child(even) td {background: rgba(75,32,104,0.02);}


/* ==========================================================================
   PAGE TYPE: page-home
   ========================================================================== */
.page-home .nav-links a:hover, .page-home .nav-links a.active {opacity: 1; color: var(--gold);}
.page-home .hero {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%);
    color: #fff;
    padding: 88px 0 96px;
    position: relative;
    overflow: hidden;}
.page-home .hero::after {content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 85% 40%, rgba(232,180,63,0.14) 0%, transparent 55%);
    pointer-events: none;}
.page-home .hero-inner {max-width: 1180px;
    margin: 0 auto;
    padding: 0 32px;
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 56px;
    align-items: center;}
.page-home .hero-eyebrow {margin-bottom: 22px;}
.page-home .hero h1 {font-size: 56px;
    line-height: 1.05;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 22px;}
.page-home .hero h1 .accent {color: var(--gold);}
.page-home .hero-sub {font-size: 19px;
    line-height: 1.55;
    color: rgba(255,255,255,0.84);
    max-width: 580px;
    margin-bottom: 32px;}
.page-home .hero-cta-row {display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 30px;}
.page-home .hero-ribbon {display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    padding-top: 22px;
    border-top: 2px solid var(--gold);
    max-width: 580px;}
.page-home .hero-ribbon .label {font-size: 11px;
    letter-spacing: 0.22em;
    font-weight: 600;
    color: rgba(255,255,255,0.6);
    text-transform: uppercase;
    margin-right: 6px;}
.page-home .cert-badge {display: inline-block;
    padding: 6px 12px;
    border: 1px solid var(--gold);
    border-radius: 2px;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--gold);
    font-weight: 700;
    background: rgba(232,180,63,0.06);}
.page-home .hero-plaque {background: #fff;
    border: 1px solid rgba(232,180,63,0.35);
    border-radius: 4px;
    padding: 56px 44px 36px;
    text-align: center;
    box-shadow: 0 24px 70px rgba(0,0,0,0.32);
    position: relative;}
.page-home .hero-plaque::before {content: "";
    position: absolute;
    top: 0;
    left: 24px;
    right: 24px;
    height: 3px;
    background: var(--gold);}
.page-home .hero-plaque .eyebrow {font-size: 10px;
    letter-spacing: 0.3em;
    color: var(--plum);
    display: block;
    margin-bottom: 22px;}
.page-home .hero-plaque .plaque-logo {width: 100%;
    max-width: 260px;
    height: auto;
    display: block;
    margin: 0 auto;}
.page-home .hero-plaque .plaque-caption {margin-top: 26px;
    padding-top: 18px;
    border-top: 1px solid rgba(75,32,104,0.12);
    font-size: 11px;
    letter-spacing: 0.18em;
    color: var(--muted);
    text-transform: uppercase;
    font-weight: 600;}
.page-home .problem-grid {display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-top: 28px;}
.page-home .problem-col h3 {font-size: 13px;
    letter-spacing: 0.22em;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(75,32,104,0.18);}
.page-home .problem-col.cold h3 {color: var(--muted);}
.page-home .problem-col.hot h3 {color: var(--plum);}
.page-home .problem-col ul {list-style: none;}
.page-home .problem-col li {padding: 10px 0 10px 22px;
    position: relative;
    font-size: 15px;
    color: var(--ink);
    line-height: 1.55;}
.page-home .problem-col.cold li::before {content: "✕";
    position: absolute;
    left: 0;
    top: 10px;
    color: var(--muted);
    font-weight: 700;
    font-size: 13px;}
.page-home .problem-col.hot li::before {content: "";
    position: absolute;
    left: 0;
    top: 18px;
    width: 14px;
    height: 2px;
    background: var(--gold);}
.page-home .problem-col.hot li strong {color: var(--plum);}
.page-home .standard-callout {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-dark) 100%);
    color: #fff;
    padding: 40px 44px;
    border-left: 4px solid var(--gold);
    border-radius: 2px;
    margin-bottom: 36px;}
.page-home .standard-callout .eyebrow {display: block;
    margin-bottom: 14px;
    font-size: 11px;
    letter-spacing: 0.28em;}
.page-home .standard-callout h3 {font-size: 24px;
    font-weight: 800;
    color: #fff;
    margin-bottom: 14px;
    letter-spacing: -0.005em;}
.page-home .standard-callout p {color: rgba(255,255,255,0.88);
    font-size: 15.5px;
    line-height: 1.7;
    max-width: none;
    margin-bottom: 12px;}
.page-home .standard-callout p:last-child {margin-bottom: 0;}
.page-home .standard-callout strong {color: var(--gold); font-weight: 700;}
.page-home .cert-row {display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-top: 28px;}
.page-home .cert-card {background: var(--lilac);
    border-top: 3px solid var(--gold);
    padding: 22px 22px 20px;
    border-radius: 2px;}
.page-home .cert-card .cert-name {font-size: 13px;
    color: var(--plum);
    font-weight: 800;
    letter-spacing: 0.04em;
    margin-bottom: 6px;}
.page-home .cert-card .cert-desc {font-size: 13px;
    color: var(--ink);
    line-height: 1.55;}
.page-home .vendor-grid {display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;}
.page-home .vendor-card {background: #fff;
    border: 1px solid rgba(75,32,104,0.15);
    border-top: 4px solid var(--gold);
    padding: 30px 28px 26px;
    border-radius: 2px;
    text-decoration: none;
    color: inherit;
    transition: box-shadow .2s, transform .2s;
    display: flex;
    flex-direction: column;}
.page-home .vendor-card:hover {box-shadow: 0 10px 32px rgba(75,32,104,0.12);
    transform: translateY(-2px);}
.page-home .vendor-card .vendor-name {font-size: 22px;
    color: var(--plum);
    font-weight: 800;
    margin-bottom: 4px;
    letter-spacing: -0.005em;}
.page-home .vendor-card .vendor-tagline {font-size: 12px;
    letter-spacing: 0.16em;
    color: var(--muted);
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 16px;}
.page-home .vendor-card .vendor-desc {font-size: 14px;
    color: var(--ink);
    line-height: 1.6;
    margin-bottom: 18px;
    flex-grow: 1;}
.page-home .vendor-card .vendor-certs {display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 18px;}
.page-home .cert-pill {background: var(--plum);
    color: #fff;
    font-size: 10px;
    letter-spacing: 0.12em;
    padding: 4px 10px;
    border-radius: 2px;
    text-transform: uppercase;
    font-weight: 700;}
.page-home .cert-pill.alt {background: var(--gold); color: var(--ink);}
.page-home .vendor-card .vendor-link {font-size: 12px;
    letter-spacing: 0.16em;
    color: var(--plum);
    font-weight: 700;
    text-transform: uppercase;
    padding-top: 14px;
    border-top: 1px dashed rgba(75,32,104,0.2);}
.page-home .vendor-card .vendor-link::after {content: " →";
    color: var(--gold);}
.page-home .vendors-cta {text-align: center;
    margin-top: 36px;}
.page-home .how-grid {display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 28px;}
.page-home .how-step {background: var(--lilac);
    border-top: 3px solid var(--gold);
    padding: 28px 26px;
    border-radius: 2px;
    position: relative;}
.page-home .how-step .step-num {font-family: 'Playfair Display', serif;
    font-size: 48px;
    font-weight: 800;
    color: var(--gold);
    line-height: 1;
    margin-bottom: 12px;}
.page-home .how-step h4 {font-size: 18px;
    color: var(--plum);
    font-weight: 800;
    margin-bottom: 10px;}
.page-home .how-step p {font-size: 14px;
    color: var(--ink);
    line-height: 1.6;
    margin-bottom: 0;
    max-width: none;}
.page-home .builtby-grid {display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 56px;
    align-items: center;}
.page-home .builtby-card {background: rgba(255,255,255,0.05);
    border-left: 3px solid var(--gold);
    padding: 32px 32px;
    border-radius: 2px;}
.page-home .builtby-card h4 {font-size: 11px;
    letter-spacing: 0.28em;
    color: var(--gold);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 16px;}
.page-home .builtby-card .role {font-family: 'Playfair Display', serif;
    font-size: 26px;
    color: #fff;
    line-height: 1.25;
    font-weight: 700;
    margin-bottom: 12px;}
.page-home .builtby-card .role .accent {color: var(--gold);}
.page-home .builtby-card p {color: rgba(255,255,255,0.78);
    font-size: 14px;
    line-height: 1.65;
    max-width: none;
    margin-bottom: 0;}
.page-home .cta-band {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-dark) 100%);
    color: #fff;
    padding: 68px 0;
    border-top: 3px solid var(--gold);
    text-align: center;}
.page-home .cta-band h3 {font-size: 34px;
    font-weight: 800;
    margin-bottom: 14px;
    letter-spacing: -0.01em;}
.page-home .cta-band h3 .accent {color: var(--gold);}
.page-home .cta-band .sub {color: rgba(255,255,255,0.7);
    margin-bottom: 30px;
    font-size: 16px;
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;}
.page-home .cta-buttons {display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;}
@media (max-width: 860px) {
  .page-home .hero-inner, .page-home .problem-grid, .page-home .builtby-grid, .page-home .footer-top {grid-template-columns: 1fr;}
  .page-home .vendor-grid, .page-home .how-grid, .page-home .cert-row {grid-template-columns: 1fr;}
  .page-home .hero h1 {font-size: 38px;}
  .page-home .hero {padding: 56px 0 64px;}
}
@media (max-width: 1040px) {
  .page-home .vendor-grid {grid-template-columns: 1fr 1fr;}
  .page-home .cert-row {grid-template-columns: 1fr 1fr;}
  .page-home .how-grid {grid-template-columns: 1fr;}
}


/* ==========================================================================
   PAGE TYPE: page-about
   ========================================================================== */
.page-about .nav-links a:hover, .page-about .nav-links a.active {opacity: 1; color: var(--gold);}
.page-about .page-hero {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%);
    color: #fff;
    padding: 80px 0 88px;
    position: relative;
    overflow: hidden;
    text-align: center;}
.page-about .page-hero::after {content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 0%, rgba(232,180,63,0.14) 0%, transparent 60%);
    pointer-events: none;}
.page-about .page-hero-inner {max-width: 880px;
    margin: 0 auto;
    padding: 0 32px;
    position: relative;
    z-index: 1;}
.page-about .page-hero h1 {font-family: 'Playfair Display', serif;
    font-size: 56px;
    line-height: 1.08;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 22px 0 22px;}
.page-about .page-hero h1 .accent {color: var(--gold);}
.page-about .page-hero .lead {font-size: 19px;
    line-height: 1.65;
    color: rgba(255,255,255,0.84);
    max-width: 720px;
    margin: 0 auto;}
.page-about .page-hero .divider {width: 64px;
    height: 2px;
    background: var(--gold);
    margin: 32px auto 0;}
.page-about .container.narrow {max-width: 820px;}
.page-about .container.narrow p {max-width: none;}
.page-about .container.narrow p.lead {max-width: none;}
.page-about .origin-block {margin-top: 12px;}
.page-about .origin-block h3 {font-family: 'Playfair Display', serif;
    font-size: 28px;
    color: var(--plum);
    font-weight: 700;
    line-height: 1.25;
    margin: 28px 0 14px;
    letter-spacing: -0.005em;}
.page-about .origin-block p {font-size: 16.5px; line-height: 1.7; color: var(--ink);}
.page-about .pull-quote {border-left: 3px solid var(--gold);
    padding: 8px 0 8px 28px;
    margin: 32px 0;
    font-family: 'Playfair Display', serif;
    font-size: 22px;
    line-height: 1.5;
    color: var(--plum);
    font-weight: 700;
    font-style: italic;}
.page-about .pull-quote .attr {display: block;
    margin-top: 12px;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    letter-spacing: 0.18em;
    color: var(--muted);
    font-weight: 600;
    font-style: normal;
    text-transform: uppercase;}
.page-about .mission-card {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-dark) 100%);
    color: #fff;
    padding: 56px 56px;
    border-left: 4px solid var(--gold);
    border-radius: 2px;
    text-align: center;}
.page-about .mission-card .eyebrow {display: block;
    margin-bottom: 18px;
    color: var(--gold);}
.page-about .mission-card h3 {font-family: 'Playfair Display', serif;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.3;
    color: #fff;
    margin-bottom: 16px;
    letter-spacing: -0.005em;}
.page-about .mission-card h3 .accent {color: var(--gold);}
.page-about .mission-card p {font-size: 16px;
    color: rgba(255,255,255,0.85);
    max-width: 640px;
    margin: 0 auto;
    line-height: 1.7;}
.page-about .team-grid {display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 28px;}
.page-about .team-card {background: #fff;
    border: 1px solid rgba(75,32,104,0.15);
    border-top: 4px solid var(--gold);
    padding: 32px 32px;
    border-radius: 2px;}
.page-about .team-card .role-tag {font-size: 11px;
    letter-spacing: 0.22em;
    color: var(--gold);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 14px;}
.page-about .team-card h3 {font-size: 22px;
    color: var(--plum);
    font-weight: 800;
    margin-bottom: 4px;
    letter-spacing: -0.005em;}
.page-about .team-card .credential {font-size: 13px;
    color: var(--muted);
    font-weight: 600;
    margin-bottom: 16px;
    letter-spacing: 0.04em;}
.page-about .team-card p {font-size: 14.5px;
    color: var(--ink);
    line-height: 1.65;
    margin-bottom: 0;
    max-width: none;}
.page-about .principles-grid {display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
    margin-top: 28px;}
.page-about .principle {background: rgba(255,255,255,0.05);
    border-top: 3px solid var(--gold);
    padding: 28px 28px;
    border-radius: 2px;}
.page-about .principle .num {font-family: 'Playfair Display', serif;
    font-size: 38px;
    font-weight: 800;
    color: var(--gold);
    line-height: 1;
    margin-bottom: 12px;}
.page-about .principle h4 {font-size: 18px;
    color: #fff;
    font-weight: 800;
    margin-bottom: 10px;
    letter-spacing: -0.005em;}
.page-about .principle p {font-size: 14.5px;
    color: rgba(255,255,255,0.78);
    line-height: 1.6;
    margin-bottom: 0;
    max-width: none;}
.page-about .roadmap {margin-top: 28px;
    list-style: none;}
.page-about .roadmap-item {display: grid;
    grid-template-columns: 140px 1fr;
    gap: 28px;
    padding: 22px 0;
    border-bottom: 1px solid rgba(75,32,104,0.12);}
.page-about .roadmap-item:last-child {border-bottom: none;}
.page-about .roadmap-item .marker {font-size: 11px;
    letter-spacing: 0.22em;
    color: var(--gold);
    text-transform: uppercase;
    font-weight: 700;
    padding-top: 4px;}
.page-about .roadmap-item h4 {font-size: 17px;
    color: var(--plum);
    font-weight: 800;
    margin-bottom: 6px;}
.page-about .roadmap-item p {font-size: 14.5px;
    color: var(--ink);
    line-height: 1.6;
    max-width: none;
    margin-bottom: 0;}
.page-about .cta-band {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-dark) 100%);
    color: #fff;
    padding: 64px 0;
    border-top: 3px solid var(--gold);
    text-align: center;}
.page-about .cta-band h3 {font-size: 32px;
    font-weight: 800;
    margin-bottom: 14px;
    letter-spacing: -0.01em;}
.page-about .cta-band h3 .accent {color: var(--gold);}
.page-about .cta-band .sub {color: rgba(255,255,255,0.7);
    margin-bottom: 28px;
    font-size: 15px;
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;}
.page-about .cta-buttons {display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;}
@media (max-width: 860px) {
  .page-about .team-grid, .page-about .principles-grid, .page-about .footer-top {grid-template-columns: 1fr;}
  .page-about .roadmap-item {grid-template-columns: 1fr; gap: 8px;}
  .page-about .page-hero h1 {font-size: 36px;}
  .page-about .page-hero {padding: 56px 0 64px;}
  .page-about .mission-card {padding: 40px 28px;}
  .page-about .mission-card h3 {font-size: 24px;}
  .page-about .pull-quote {font-size: 18px; padding-left: 22px;}
}


/* ==========================================================================
   PAGE TYPE: page-support
   ========================================================================== */
.page-support .nav-links a:hover, .page-support .nav-links a.active {opacity: 1; color: var(--gold);}
.page-support .page-hero {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%);
    color: #fff;
    padding: 64px 0 72px;
    position: relative;
    overflow: hidden;}
.page-support .page-hero::after {content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 85% 40%, rgba(232,180,63,0.12) 0%, transparent 55%);
    pointer-events: none;}
.page-support .page-hero-inner {max-width: 1080px;
    margin: 0 auto;
    padding: 0 32px;
    position: relative;
    z-index: 1;}
.page-support .page-hero h1 {font-size: 46px;
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 18px 0 18px;}
.page-support .page-hero h1 .accent {color: var(--gold);}
.page-support .page-hero .lead {font-size: 18px;
    line-height: 1.6;
    color: rgba(255,255,255,0.84);
    max-width: 720px;}
.page-support .contact-grid {display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 22px;
    margin-top: -32px;
    position: relative;
    z-index: 5;}
.page-support .contact-card {background: #fff;
    border: 1px solid rgba(75,32,104,0.15);
    border-top: 4px solid var(--gold);
    padding: 28px 28px;
    border-radius: 2px;
    box-shadow: 0 12px 36px rgba(75,32,104,0.10);
    text-align: center;
    transition: transform .2s, box-shadow .2s;}
.page-support .contact-card:hover {transform: translateY(-2px);
    box-shadow: 0 16px 44px rgba(75,32,104,0.16);}
.page-support .contact-card .card-eyebrow {font-size: 11px;
    letter-spacing: 0.22em;
    color: var(--gold);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 14px;}
.page-support .contact-card .card-icon {width: 36px;
    height: 36px;
    margin: 0 auto 14px;
    color: var(--plum);}
.page-support .contact-card h3 {font-size: 17px;
    color: var(--plum);
    font-weight: 800;
    margin-bottom: 10px;}
.page-support .contact-card a.value {display: block;
    font-size: 22px;
    color: var(--ink);
    font-weight: 800;
    text-decoration: none;
    letter-spacing: -0.01em;
    word-break: break-word;
    transition: color .15s;}
.page-support .contact-card a.value:hover {color: var(--plum);}
.page-support .contact-card .value.plain {font-size: 22px;
    color: var(--ink);
    font-weight: 800;
    letter-spacing: -0.01em;}
.page-support .contact-card .sub {font-size: 13px;
    color: var(--muted);
    margin-top: 8px;
    line-height: 1.5;}
.page-support .faq-intro {color: var(--muted);
    font-size: 15px;
    margin-bottom: 28px;
    max-width: 720px;}
.page-support .faq-category {margin-bottom: 36px;}
.page-support .faq-category h3 {font-size: 13px;
    letter-spacing: 0.22em;
    color: var(--plum);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--gold);}
.page-support details.faq-item {border-bottom: 1px solid rgba(75,32,104,0.12);
    padding: 18px 0;}
.page-support details.faq-item summary {cursor: pointer;
    list-style: none;
    font-size: 16px;
    font-weight: 700;
    color: var(--plum);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    transition: color .15s;}
.page-support details.faq-item summary:hover {color: var(--ink);}
.page-support details.faq-item summary::-webkit-details-marker {display: none;}
.page-support details.faq-item summary::after {content: "+";
    color: var(--gold);
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
    transition: transform .15s;
    flex-shrink: 0;}
.page-support details.faq-item[open] summary::after {content: "−";}
.page-support details.faq-item .faq-answer {margin-top: 12px;
    padding-top: 4px;
    color: var(--ink);
    font-size: 15px;
    line-height: 1.65;}
.page-support details.faq-item .faq-answer p {max-width: 760px; margin-bottom: 10px;}
.page-support details.faq-item .faq-answer p:last-child {margin-bottom: 0;}
.page-support details.faq-item .faq-answer a {color: var(--plum);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: var(--gold);
    text-underline-offset: 3px;}
.page-support details.faq-item .faq-answer a:hover {color: var(--gold);}
.page-support .resource-grid {display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 28px;}
.page-support .resource-card {background: rgba(255,255,255,0.05);
    border-top: 3px solid var(--gold);
    padding: 26px 26px;
    border-radius: 2px;}
.page-support .resource-card .res-tag {font-size: 10px;
    letter-spacing: 0.22em;
    color: var(--gold);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 12px;}
.page-support .resource-card h4 {font-size: 17px;
    color: #fff;
    font-weight: 800;
    margin-bottom: 10px;}
.page-support .resource-card p {font-size: 14px;
    color: rgba(255,255,255,0.78);
    line-height: 1.6;
    margin-bottom: 14px;
    max-width: none;}
.page-support .resource-card a.res-link {color: var(--gold);
    font-size: 12px;
    letter-spacing: 0.16em;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;}
.page-support .resource-card a.res-link::after {content: " →";}
.page-support .cta-band {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-dark) 100%);
    color: #fff;
    padding: 56px 0;
    border-top: 3px solid var(--gold);
    text-align: center;}
.page-support .cta-band h3 {font-size: 30px;
    font-weight: 800;
    margin-bottom: 14px;
    letter-spacing: -0.01em;}
.page-support .cta-band h3 .accent {color: var(--gold);}
.page-support .cta-band .sub {color: rgba(255,255,255,0.7);
    margin-bottom: 28px;
    font-size: 15px;
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;}
.page-support .cta-buttons {display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;}
@media (max-width: 860px) {
  .page-support .contact-grid, .page-support .resource-grid, .page-support .footer-top {grid-template-columns: 1fr;}
  .page-support .page-hero h1 {font-size: 32px;}
  .page-support .page-hero {padding: 48px 0 64px;}
  .page-support .contact-grid {margin-top: -24px;}
}


/* ==========================================================================
   PAGE TYPE: page-access
   ========================================================================== */
.page-access .nav-links a:hover, .page-access .nav-links a.active {opacity:1;color:var(--gold)}
.page-access .page-hero {background:linear-gradient(140deg,var(--ink) 0%,var(--plum-dark) 60%,var(--plum) 100%);color:#fff;padding:64px 0 72px;position:relative;overflow:hidden}
.page-access .page-hero::after {content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 30%,rgba(232,180,63,0.12) 0%,transparent 55%);pointer-events:none}
.page-access .page-hero-inner {max-width:880px;margin:0 auto;padding:0 32px;position:relative;z-index:1}
.page-access .page-hero h1 {font-size:46px;line-height:1.1;font-weight:800;letter-spacing:-0.02em;margin:18px 0 18px}
.page-access .page-hero h1 .accent {color:var(--gold)}
.page-access .page-hero .lead {font-size:18px;line-height:1.6;color:rgba(255,255,255,0.84);max-width:720px;margin-bottom:20px}
.page-access .pillrow {display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.page-access .pill {display:inline-block;padding:6px 12px;border:1px solid var(--gold);border-radius:2px;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);font-weight:700;background:rgba(232,180,63,0.06)}
.page-access .request-section {padding:64px 0 80px}
.page-access .request-layout {max-width:1180px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1fr 320px;gap:48px;align-items:start}
.page-access .form-card {background:#fff;border:1px solid rgba(75,32,104,0.15);border-top:4px solid var(--gold);padding:36px 40px;border-radius:2px;box-shadow:0 8px 28px rgba(75,32,104,0.06)}
.page-access .form-card h2 {font-size:24px;color:var(--plum);font-weight:800;margin-bottom:8px;letter-spacing:-0.005em}
.page-access .form-card .form-intro {color:var(--muted);font-size:14.5px;margin-bottom:28px;line-height:1.6}
.page-access .form-section {margin-bottom:32px;padding-bottom:28px;border-bottom:1px dashed rgba(75,32,104,0.18)}
.page-access .form-section:last-of-type {border-bottom:none;padding-bottom:0;margin-bottom:24px}
.page-access .form-section h3 {font-size:11px;letter-spacing:0.22em;color:var(--plum);text-transform:uppercase;font-weight:700;margin-bottom:18px;display:flex;align-items:center;gap:10px}
.page-access .form-section h3 .num {display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--gold);color:var(--ink);border-radius:50%;font-size:11px;font-weight:800;letter-spacing:0}
.page-access .field-row {display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
.page-access .field-row.single {grid-template-columns:1fr}
.page-access .field-row.thirds {grid-template-columns:1fr 1fr 1fr}
.page-access .field {display:flex;flex-direction:column}
.page-access .field label {font-size:12px;font-weight:700;color:var(--plum);letter-spacing:0.04em;margin-bottom:6px;display:flex;align-items:center;gap:4px}
.page-access .field label .req {color:var(--gold);font-weight:800}
.page-access .field label .opt {color:var(--muted);font-weight:500;font-size:11px;margin-left:4px;letter-spacing:0.04em}
.page-access .field input, .page-access .field select, .page-access .field textarea {font-family:inherit;font-size:14.5px;color:var(--ink);background:#fff;border:1px solid rgba(75,32,104,0.25);border-radius:2px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;width:100%}
.page-access .field input:focus, .page-access .field select:focus, .page-access .field textarea:focus {outline:none;border-color:var(--plum);box-shadow:0 0 0 3px rgba(75,32,104,0.1)}
.page-access .field textarea {resize:vertical;min-height:90px;line-height:1.55}
.page-access .field select {cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%234B2068' stroke-width='2'><path d='M1 1l5 5 5-5'/></svg>");background-repeat:no-repeat;background-position:right 12px center;background-size:12px;padding-right:36px;appearance:none;-webkit-appearance:none}
.page-access .field-help {font-size:12px;color:var(--muted);margin-top:6px;line-height:1.5}
.page-access .checkbox-row {display:flex;gap:12px;align-items:flex-start;background:var(--lilac);padding:18px 20px;border-radius:2px;border-left:3px solid var(--gold);margin-bottom:24px}
.page-access .checkbox-row input[type="checkbox"] {margin-top:3px;width:18px;height:18px;accent-color:var(--plum);flex-shrink:0;cursor:pointer}
.page-access .checkbox-row label {font-size:13px;line-height:1.6;color:var(--ink);cursor:pointer}
.page-access .checkbox-row label strong {color:var(--plum);font-weight:700}
.page-access .submit-row {display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.page-access button.submit-btn {font-family:inherit;background:var(--gold);color:var(--ink);padding:15px 32px;font-size:13px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;border:none;border-radius:3px;cursor:pointer;transition:background .15s,transform .15s}
.page-access button.submit-btn:hover {background:var(--gold-bright);transform:translateY(-1px)}
.page-access .submit-note {font-size:12px;color:var(--muted);line-height:1.5}
.page-access .success-state {display:none;text-align:center;padding:56px 32px}
.page-access .success-state.show {display:block}
.page-access .success-state .icon {width:64px;height:64px;background:var(--gold);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-bottom:22px;color:var(--ink)}
.page-access .success-state h2 {font-family:'Playfair Display',serif;font-size:28px;color:var(--plum);font-weight:800;margin-bottom:14px}
.page-access .success-state p {color:var(--ink);font-size:15.5px;line-height:1.65;margin-bottom:14px;max-width:560px;margin-left:auto;margin-right:auto}
.page-access .success-state p.muted {color:var(--muted);font-size:13.5px}
.page-access .success-state .copy-block {background:var(--lilac);border-left:3px solid var(--gold);padding:18px 22px;margin:24px auto;max-width:560px;text-align:left;font-size:13px;line-height:1.65;color:var(--ink);border-radius:2px}
.page-access .success-state .copy-block strong {color:var(--plum);display:block;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;margin-bottom:8px}
.page-access .success-state .actions {display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.page-access .success-state .btn {display:inline-block;padding:13px 26px;font-size:12px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;text-decoration:none;border-radius:3px;transition:background .15s,border-color .15s,color .15s}
.page-access .success-state .btn-primary {background:var(--plum);color:#fff}
.page-access .success-state .btn-primary:hover {background:var(--plum-dark)}
.page-access .success-state .btn-ghost {background:transparent;color:var(--plum);border:1px solid rgba(75,32,104,0.3)}
.page-access .success-state .btn-ghost:hover {background:var(--plum);color:#fff}
.page-access .sidebar {position:sticky;top:88px;display:flex;flex-direction:column;gap:18px}
.page-access .sidebar-card {background:#fff;border:1px solid rgba(75,32,104,0.15);border-top:3px solid var(--gold);padding:22px 22px;border-radius:2px}
.page-access .sidebar-card h4 {font-size:11px;letter-spacing:0.22em;color:var(--plum);text-transform:uppercase;font-weight:700;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(75,32,104,0.12)}
.page-access .sidebar-card .step {padding:10px 0;display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start;border-bottom:1px solid rgba(75,32,104,0.08)}
.page-access .sidebar-card .step:last-child {border-bottom:none}
.page-access .sidebar-card .step .stepnum {font-family:'Playfair Display',serif;font-size:22px;font-weight:800;color:var(--gold);line-height:1;padding-top:2px}
.page-access .sidebar-card .step .steptext strong {color:var(--plum);font-size:13.5px;font-weight:700;display:block;margin-bottom:2px}
.page-access .sidebar-card .step .steptext p {font-size:12.5px;color:var(--muted);line-height:1.55;margin:0;max-width:none}
.page-access .sidebar-card ul {list-style:none}
.page-access .sidebar-card ul li {padding:8px 0 8px 18px;position:relative;font-size:13px;line-height:1.55;color:var(--ink);border-bottom:1px solid rgba(75,32,104,0.06)}
.page-access .sidebar-card ul li:last-child {border-bottom:none}
.page-access .sidebar-card ul li::before {content:"";position:absolute;left:0;top:14px;width:10px;height:2px;background:var(--gold)}
.page-access .sidebar-card .help-block {font-size:13px;color:var(--ink);line-height:1.6}
.page-access .sidebar-card .help-block a {color:var(--plum);font-weight:700;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.page-access .sidebar-card .help-block a:hover {color:var(--gold)}
@media (max-width:960px) {
  .page-access .request-layout {grid-template-columns:1fr}
  .page-access .sidebar {position:static}
}
@media (max-width:680px) {
  .page-access .field-row, .page-access .field-row.thirds {grid-template-columns:1fr}
  .page-access .page-hero h1 {font-size:32px}
  .page-access .form-card {padding:28px 22px}
}


/* ==========================================================================
   PAGE TYPE: page-program
   ========================================================================== */
.page-program .nav-links a:hover, .page-program .nav-links a.active {opacity:1;color:var(--gold)}
.page-program .page-hero {background:linear-gradient(140deg,var(--ink) 0%,var(--plum-dark) 60%,var(--plum) 100%);color:#fff;padding:80px 0 88px;position:relative;overflow:hidden}
.page-program .page-hero::after {content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 30%,rgba(232,180,63,0.12) 0%,transparent 55%);pointer-events:none}
.page-program .page-hero-inner {max-width:1180px;margin:0 auto;padding:0 32px;position:relative;z-index:1;display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center}
.page-program .page-hero h1 {font-size:50px;line-height:1.08;font-weight:800;letter-spacing:-0.02em;margin:18px 0 18px}
.page-program .page-hero h1 .accent {color:var(--gold)}
.page-program .page-hero .lead {font-size:18px;line-height:1.6;color:rgba(255,255,255,0.84);max-width:600px;margin-bottom:28px}
.page-program .pillrow {display:flex;gap:10px;flex-wrap:wrap;padding-top:22px;border-top:2px solid var(--gold);max-width:600px}
.page-program .pill {display:inline-block;padding:6px 12px;border:1px solid var(--gold);border-radius:2px;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);font-weight:700;background:rgba(232,180,63,0.06)}
.page-program .hero-stats {background:rgba(255,255,255,0.05);border:1px solid rgba(232,180,63,0.35);border-radius:4px;padding:32px 32px;box-shadow:0 20px 60px rgba(0,0,0,0.28);position:relative}
.page-program .hero-stats::before {content:"";position:absolute;top:0;left:24px;right:24px;height:3px;background:var(--gold)}
.page-program .hero-stats h4 {font-size:11px;letter-spacing:0.28em;color:var(--gold);text-transform:uppercase;font-weight:700;margin-bottom:18px;text-align:center}
.page-program .stat-grid {display:grid;grid-template-columns:1fr 1fr;gap:14px}
.page-program .stat {text-align:center;padding:10px 0}
.page-program .stat .num {font-family:'Playfair Display',serif;font-size:30px;font-weight:800;color:var(--gold);line-height:1;margin-bottom:6px}
.page-program .stat .label {font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.7);font-weight:600;line-height:1.3}
.page-program .hero-cta-row {display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
.page-program .buyers-grid {display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:28px}
.page-program .buyer-card {background:#fff;border:1px solid rgba(75,32,104,0.15);border-top:3px solid var(--gold);padding:22px 22px;border-radius:2px}
.page-program .buyer-card h4 {font-size:14px;color:var(--plum);font-weight:800;margin-bottom:8px;letter-spacing:-0.005em;line-height:1.25}
.page-program .buyer-card p {font-size:13px;color:var(--ink);line-height:1.55;margin-bottom:0;max-width:none}
.page-program .criteria-grid {display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:28px}
.page-program .criterion {background:rgba(255,255,255,0.05);border-top:3px solid var(--gold);padding:24px 26px;border-radius:2px}
.page-program .criterion h4 {font-size:17px;color:#fff;font-weight:800;margin-bottom:10px;letter-spacing:-0.005em}
.page-program .criterion p {font-size:14.5px;color:rgba(255,255,255,0.78);line-height:1.65;margin-bottom:0;max-width:none}
.page-program .how-list {list-style:none;margin-top:28px;counter-reset:step}
.page-program .how-step {display:grid;grid-template-columns:80px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid rgba(75,32,104,0.12);align-items:start}
.page-program .how-step:last-child {border-bottom:none}
.page-program .how-step .step-num {font-family:'Playfair Display',serif;font-size:48px;font-weight:800;color:var(--gold);line-height:1}
.page-program .how-step h4 {font-size:20px;color:var(--plum);font-weight:800;margin-bottom:8px;letter-spacing:-0.005em}
.page-program .how-step p {font-size:15.5px;color:var(--ink);line-height:1.65;margin-bottom:0;max-width:none}
.page-program .how-step p strong {color:var(--plum);font-weight:700}
.page-program .apply-section {padding:72px 0;background:var(--lilac);scroll-margin-top:80px}
.page-program .apply-grid {max-width:1180px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1fr 320px;gap:48px;align-items:start}
.page-program .form-card {background:#fff;border:1px solid rgba(75,32,104,0.15);border-top:4px solid var(--gold);padding:36px 40px;border-radius:2px;box-shadow:0 8px 28px rgba(75,32,104,0.06)}
.page-program .form-card h2 {font-size:24px;color:var(--plum);font-weight:800;margin-bottom:8px;letter-spacing:-0.005em}
.page-program .form-card .form-intro {color:var(--muted);font-size:14.5px;margin-bottom:28px;line-height:1.6}
.page-program .form-section {margin-bottom:32px;padding-bottom:28px;border-bottom:1px dashed rgba(75,32,104,0.18)}
.page-program .form-section:last-of-type {border-bottom:none;padding-bottom:0;margin-bottom:24px}
.page-program .form-section h3 {font-size:11px;letter-spacing:0.22em;color:var(--plum);text-transform:uppercase;font-weight:700;margin-bottom:18px;display:flex;align-items:center;gap:10px}
.page-program .form-section h3 .num {display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--gold);color:var(--ink);border-radius:50%;font-size:11px;font-weight:800;letter-spacing:0}
.page-program .field-row {display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
.page-program .field-row.single {grid-template-columns:1fr}
.page-program .field {display:flex;flex-direction:column}
.page-program .field label {font-size:12px;font-weight:700;color:var(--plum);letter-spacing:0.04em;margin-bottom:6px;display:flex;align-items:center;gap:4px}
.page-program .field label .req {color:var(--gold);font-weight:800}
.page-program .field label .opt {color:var(--muted);font-weight:500;font-size:11px;margin-left:4px;letter-spacing:0.04em}
.page-program .field input, .page-program .field select, .page-program .field textarea {font-family:inherit;font-size:14.5px;color:var(--ink);background:#fff;border:1px solid rgba(75,32,104,0.25);border-radius:2px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;width:100%}
.page-program .field input:focus, .page-program .field select:focus, .page-program .field textarea:focus {outline:none;border-color:var(--plum);box-shadow:0 0 0 3px rgba(75,32,104,0.1)}
.page-program .field textarea {resize:vertical;min-height:90px;line-height:1.55}
.page-program .field select {cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%234B2068' stroke-width='2'><path d='M1 1l5 5 5-5'/></svg>");background-repeat:no-repeat;background-position:right 12px center;background-size:12px;padding-right:36px;appearance:none;-webkit-appearance:none}
.page-program .field-help {font-size:12px;color:var(--muted);margin-top:6px;line-height:1.5}
.page-program .checkbox-row {display:flex;gap:12px;align-items:flex-start;background:var(--lilac);padding:18px 20px;border-radius:2px;border-left:3px solid var(--gold);margin-bottom:24px}
.page-program .checkbox-row input[type="checkbox"] {margin-top:3px;width:18px;height:18px;accent-color:var(--plum);flex-shrink:0;cursor:pointer}
.page-program .checkbox-row label {font-size:13px;line-height:1.6;color:var(--ink);cursor:pointer}
.page-program .checkbox-row label strong {color:var(--plum);font-weight:700}
.page-program .submit-row {display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.page-program button.submit-btn {font-family:inherit;background:var(--gold);color:var(--ink);padding:15px 32px;font-size:13px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;border:none;border-radius:3px;cursor:pointer;transition:background .15s,transform .15s}
.page-program button.submit-btn:hover {background:var(--gold-bright);transform:translateY(-1px)}
.page-program .submit-note {font-size:12px;color:var(--muted);line-height:1.5}
.page-program .success-state {display:none;text-align:center;padding:56px 32px}
.page-program .success-state.show {display:block}
.page-program .success-state .icon {width:64px;height:64px;background:var(--gold);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-bottom:22px;color:var(--ink)}
.page-program .success-state h2 {font-family:'Playfair Display',serif;font-size:28px;color:var(--plum);font-weight:800;margin-bottom:14px}
.page-program .success-state p {color:var(--ink);font-size:15.5px;line-height:1.65;margin-bottom:14px;max-width:560px;margin-left:auto;margin-right:auto}
.page-program .success-state p.muted {color:var(--muted);font-size:13.5px}
.page-program .success-state .copy-block {background:var(--lilac);border-left:3px solid var(--gold);padding:18px 22px;margin:24px auto;max-width:560px;text-align:left;font-size:13px;line-height:1.65;color:var(--ink);border-radius:2px}
.page-program .success-state .copy-block strong {color:var(--plum);display:block;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;margin-bottom:8px}
.page-program .success-state .actions {display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.page-program .success-state .btn-success {background:var(--plum);color:#fff;padding:13px 26px;font-size:12px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;text-decoration:none;border-radius:3px;display:inline-block;transition:background .15s}
.page-program .success-state .btn-success:hover {background:var(--plum-dark)}
.page-program .success-state .btn-ghost {background:transparent;color:var(--plum);border:1px solid rgba(75,32,104,0.3);padding:13px 26px;font-size:12px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;text-decoration:none;border-radius:3px;display:inline-block;transition:background .15s,color .15s}
.page-program .success-state .btn-ghost:hover {background:var(--plum);color:#fff}
.page-program .apply-sidebar {position:sticky;top:88px;display:flex;flex-direction:column;gap:18px}
.page-program .sidebar-card {background:#fff;border:1px solid rgba(75,32,104,0.15);border-top:3px solid var(--gold);padding:22px 22px;border-radius:2px}
.page-program .sidebar-card h4 {font-size:11px;letter-spacing:0.22em;color:var(--plum);text-transform:uppercase;font-weight:700;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(75,32,104,0.12)}
.page-program .sidebar-card ul {list-style:none}
.page-program .sidebar-card ul li {padding:8px 0 8px 18px;position:relative;font-size:13px;line-height:1.55;color:var(--ink);border-bottom:1px solid rgba(75,32,104,0.06)}
.page-program .sidebar-card ul li:last-child {border-bottom:none}
.page-program .sidebar-card ul li::before {content:"";position:absolute;left:0;top:14px;width:10px;height:2px;background:var(--gold)}
.page-program .sidebar-card .help-block {font-size:13px;color:var(--ink);line-height:1.6}
.page-program .sidebar-card .help-block a {color:var(--plum);font-weight:700;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.page-program .sidebar-card .help-block a:hover {color:var(--gold)}
@media (max-width:960px) {
  .page-program .page-hero-inner, .page-program .apply-grid {grid-template-columns:1fr}
  .page-program .apply-sidebar {position:static}
  .page-program .buyers-grid {grid-template-columns:1fr 1fr}
  .page-program .criteria-grid {grid-template-columns:1fr}
}
@media (max-width:680px) {
  .page-program .field-row {grid-template-columns:1fr}
  .page-program .page-hero h1 {font-size:34px}
  .page-program .form-card {padding:28px 22px}
  .page-program .buyers-grid {grid-template-columns:1fr}
  .page-program .how-step {grid-template-columns:1fr;gap:8px}
  .page-program .how-step .step-num {font-size:36px}
}


/* ==========================================================================
   PAGE TYPE: page-directory
   ========================================================================== */
.page-directory .nav-links a:hover, .page-directory .nav-links a.active {opacity: 1; color: var(--gold);}
.page-directory .page-hero {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%);
    color: #fff;
    padding: 72px 0 80px;
    position: relative;
    overflow: hidden;}
.page-directory .page-hero::after {content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 85% 40%, rgba(232,180,63,0.12) 0%, transparent 55%);
    pointer-events: none;}
.page-directory .page-hero-inner {max-width: 1180px;
    margin: 0 auto;
    padding: 0 32px;
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 48px;
    align-items: center;}
.page-directory .page-hero h1 {font-size: 48px;
    line-height: 1.08;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 22px 0 20px;}
.page-directory .page-hero h1 .accent {color: var(--gold);}
.page-directory .page-hero .lead {font-size: 18px;
    line-height: 1.6;
    color: rgba(255,255,255,0.84);
    max-width: 600px;
    margin-bottom: 28px;}
.page-directory .page-hero .ribbon {display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    padding-top: 22px;
    border-top: 2px solid var(--gold);
    max-width: 600px;}
.page-directory .page-hero .ribbon .label {font-size: 11px;
    letter-spacing: 0.22em;
    font-weight: 600;
    color: rgba(255,255,255,0.6);
    text-transform: uppercase;
    margin-right: 6px;}
.page-directory .cert-badge {display: inline-block;
    padding: 6px 12px;
    border: 1px solid var(--gold);
    border-radius: 2px;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--gold);
    font-weight: 700;
    background: rgba(232,180,63,0.06);}
.page-directory .hero-stats {background: rgba(255,255,255,0.05);
    border: 1px solid rgba(232,180,63,0.35);
    border-radius: 4px;
    padding: 36px 32px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.28);
    position: relative;}
.page-directory .hero-stats::before {content: "";
    position: absolute;
    top: 0; left: 24px; right: 24px;
    height: 3px;
    background: var(--gold);}
.page-directory .hero-stats h4 {font-size: 11px;
    letter-spacing: 0.28em;
    color: var(--gold);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 22px;
    text-align: center;}
.page-directory .stat-row {display: grid; grid-template-columns: 1fr 1fr; gap: 18px;}
.page-directory .stat {text-align: center;
    padding: 14px 0;}
.page-directory .stat .num {font-family: 'Playfair Display', serif;
    font-size: 36px;
    font-weight: 800;
    color: var(--gold);
    line-height: 1;
    margin-bottom: 6px;}
.page-directory .stat .label {font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.7);
    font-weight: 600;}
.page-directory .filter-row {display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 36px;
    padding: 18px 22px;
    background: var(--lilac);
    border-radius: 2px;
    border-left: 3px solid var(--gold);}
.page-directory .filter-label {font-size: 11px;
    letter-spacing: 0.22em;
    color: var(--plum);
    text-transform: uppercase;
    font-weight: 700;
    margin-right: 8px;
    align-self: center;}
.page-directory .filter-chip {background: #fff;
    border: 1px solid rgba(75,32,104,0.2);
    color: var(--plum);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: background .15s, color .15s, border-color .15s;}
.page-directory .filter-chip:hover, .page-directory .filter-chip.active {background: var(--plum);
    color: #fff;
    border-color: var(--plum);}
.page-directory .directory-grid {display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;}
.page-directory .vendor-row {background: #fff;
    border: 1px solid rgba(75,32,104,0.15);
    border-top: 4px solid var(--gold);
    border-radius: 2px;
    padding: 30px 32px;
    text-decoration: none;
    color: inherit;
    transition: box-shadow .2s, transform .2s;
    display: flex;
    flex-direction: column;}
.page-directory .vendor-row:hover {box-shadow: 0 12px 36px rgba(75,32,104,0.12);
    transform: translateY(-2px);}
.page-directory .vendor-row .row-top {display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 4px;}
.page-directory .vendor-row .vendor-status {background: var(--lilac);
    color: var(--plum);
    font-size: 10px;
    letter-spacing: 0.16em;
    font-weight: 700;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 2px;
    white-space: nowrap;}
.page-directory .vendor-row .vendor-status.featured {background: var(--gold);
    color: var(--ink);}
.page-directory .vendor-row .vendor-name {font-size: 26px;
    color: var(--plum);
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.1;}
.page-directory .vendor-row .vendor-tagline {font-size: 12px;
    letter-spacing: 0.16em;
    color: var(--muted);
    text-transform: uppercase;
    font-weight: 600;
    margin: 6px 0 18px;}
.page-directory .vendor-row .vendor-certs {display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 18px;}
.page-directory .vendor-row .vendor-logo {height: 46px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;}
.page-directory .vendor-row .vendor-logo img {max-height: 100%;
    max-width: 220px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;}
.page-directory .vendor-row .vendor-logo.on-dark {height: auto;
    align-self: flex-start;
    background: var(--plum);
    border-radius: 3px;
    padding: 10px 16px;}
.page-directory .vendor-row .vendor-logo.on-dark img {max-height: 28px;}
.page-directory .vendor-row .vendor-thumbs {display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 18px;}
.page-directory .vendor-row .vendor-thumbs img {width: 100%;
    height: auto;
    aspect-ratio: 10 / 7;
    object-fit: contain;
    background: #fff;
    border: 1px solid rgba(75,32,104,0.12);
    border-radius: 2px;
    display: block;}
.page-directory .cert-pill {background: var(--plum);
    color: #fff;
    font-size: 10px;
    letter-spacing: 0.12em;
    padding: 4px 10px;
    border-radius: 2px;
    text-transform: uppercase;
    font-weight: 700;}
.page-directory .cert-pill.alt {background: var(--gold); color: var(--ink);}
.page-directory .vendor-row .vendor-desc {font-size: 14.5px;
    color: var(--ink);
    line-height: 1.65;
    margin-bottom: 18px;
    flex-grow: 1;}
.page-directory .vendor-row .vendor-meta {font-size: 12.5px;
    color: var(--muted);
    line-height: 1.6;
    padding: 14px 0;
    border-top: 1px dashed rgba(75,32,104,0.2);
    border-bottom: 1px dashed rgba(75,32,104,0.2);
    margin-bottom: 16px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;}
.page-directory .vendor-row .vendor-meta strong {color: var(--plum); display: block; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 2px;}
.page-directory .vendor-row .vendor-link {font-size: 12px;
    letter-spacing: 0.16em;
    color: var(--plum);
    font-weight: 700;
    text-transform: uppercase;
    margin-top: auto;}
.page-directory .vendor-row .vendor-link::after {content: " →";
    color: var(--gold);}
.page-directory .coming-soon {margin-top: 42px;
    padding: 28px 32px;
    background: var(--lilac);
    border-left: 4px solid var(--gold);
    border-radius: 2px;}
.page-directory .coming-soon h4 {font-size: 12px;
    letter-spacing: 0.24em;
    color: var(--plum);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 12px;}
.page-directory .coming-soon p {font-size: 14px;
    color: var(--ink);
    line-height: 1.6;
    margin-bottom: 0;
    max-width: none;}
.page-directory .coming-soon p strong {color: var(--plum);}
.page-directory .criteria-grid {display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 28px;}
.page-directory .criterion {background: rgba(255,255,255,0.05);
    border-top: 3px solid var(--gold);
    padding: 24px 24px;
    border-radius: 2px;}
.page-directory .criterion .step-num {font-family: 'Playfair Display', serif;
    font-size: 38px;
    font-weight: 800;
    color: var(--gold);
    line-height: 1;
    margin-bottom: 10px;}
.page-directory .criterion h4 {font-size: 17px;
    color: #fff;
    font-weight: 800;
    margin-bottom: 10px;}
.page-directory .criterion p {font-size: 14px;
    color: rgba(255,255,255,0.78);
    line-height: 1.6;
    margin-bottom: 0;
    max-width: none;}
.page-directory .partner-cta {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-dark) 100%);
    color: #fff;
    padding: 48px 48px;
    border-left: 4px solid var(--gold);
    border-radius: 2px;
    margin-top: 40px;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 36px;
    align-items: center;}
.page-directory .partner-cta h3 {font-size: 26px;
    font-weight: 800;
    color: #fff;
    margin-bottom: 12px;
    letter-spacing: -0.005em;}
.page-directory .partner-cta h3 .accent {color: var(--gold);}
.page-directory .partner-cta p {color: rgba(255,255,255,0.85);
    font-size: 15px;
    line-height: 1.65;
    max-width: none;
    margin-bottom: 0;}
.page-directory .partner-cta .actions {display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;}
.page-directory .cta-band {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-dark) 100%);
    color: #fff;
    padding: 64px 0;
    border-top: 3px solid var(--gold);
    text-align: center;}
.page-directory .cta-band h3 {font-size: 32px;
    font-weight: 800;
    margin-bottom: 14px;
    letter-spacing: -0.01em;}
.page-directory .cta-band h3 .accent {color: var(--gold);}
.page-directory .cta-band .sub {color: rgba(255,255,255,0.7);
    margin-bottom: 28px;
    font-size: 15px;
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;}
.page-directory .cta-buttons {display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;}
@media (max-width: 860px) {
  .page-directory .page-hero-inner, .page-directory .directory-grid, .page-directory .partner-cta, .page-directory .footer-top {grid-template-columns: 1fr;}
  .page-directory .criteria-grid {grid-template-columns: 1fr;}
  .page-directory .page-hero h1 {font-size: 34px;}
  .page-directory .page-hero {padding: 52px 0 60px;}
  .page-directory .partner-cta .actions {justify-content: flex-start;}
}
.page-directory .vendor-row.is-hidden {display: none !important;}


/* ==========================================================================
   PAGE TYPE: page-catalog
   ========================================================================== */
.page-catalog .nav-links a:hover, .page-catalog .nav-links a.active {opacity: 1; color: var(--gold);}
.page-catalog .page-hero {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%); color: #fff; padding: 56px 0 64px; position: relative; overflow: hidden;}
.page-catalog .page-hero::after {content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 85% 40%, rgba(232,180,63,0.12) 0%, transparent 55%); pointer-events: none;}
.page-catalog .page-hero-inner {max-width: 1180px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1; display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px; align-items: end;}
.page-catalog .page-hero h1 {font-size: 44px; line-height: 1.08; font-weight: 800; letter-spacing: -0.02em; margin: 18px 0 16px;}
.page-catalog .page-hero h1 .accent {color: var(--gold);}
.page-catalog .page-hero .lead {font-size: 17px; line-height: 1.6; color: rgba(255,255,255,0.84); max-width: 600px; margin-bottom: 16px;}
.page-catalog .signin-cue {background: rgba(255,255,255,0.05); border: 1px solid rgba(232,180,63,0.4); border-left: 3px solid var(--gold); padding: 18px 22px; border-radius: 2px;}
.page-catalog .signin-cue .row {display: flex; gap: 14px; align-items: center; flex-wrap: wrap;}
.page-catalog .signin-cue .ico {width: 28px; height: 28px; color: var(--gold); flex-shrink: 0;}
.page-catalog .signin-cue .text {font-size: 13.5px; color: rgba(255,255,255,0.85); line-height: 1.5; flex: 1; min-width: 200px;}
.page-catalog .signin-cue .text strong {color: var(--gold); font-weight: 700;}
.page-catalog .signin-cue .actions {display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px;}
.page-catalog .filter-bar {background: #fff; border-bottom: 1px solid rgba(75,32,104,0.12); padding: 22px 0; position: sticky; top: 68px; z-index: 50; box-shadow: 0 2px 12px rgba(75,32,104,0.05);}
.page-catalog .filter-inner {max-width: 1180px; margin: 0 auto; padding: 0 32px;}
.page-catalog .filter-group {display: flex; align-items: center; gap: 12px; padding: 6px 0; flex-wrap: wrap;}
.page-catalog .filter-group + .filter-group {border-top: 1px dashed rgba(75,32,104,0.1); margin-top: 10px; padding-top: 14px;}
.page-catalog .filter-label {font-size: 11px; letter-spacing: 0.22em; color: var(--plum); text-transform: uppercase; font-weight: 700; min-width: 100px;}
.page-catalog .filter-chips {display: flex; gap: 6px; flex-wrap: wrap;}
.page-catalog .filter-chip {background: #fff; border: 1px solid rgba(75,32,104,0.2); color: var(--plum); padding: 5px 12px; border-radius: 999px; font-size: 12px; font-weight: 600; letter-spacing: 0.04em; cursor: pointer; transition: background .15s, color .15s, border-color .15s; font-family: inherit;}
.page-catalog .filter-chip:hover {border-color: var(--plum);}
.page-catalog .filter-chip.active {background: var(--plum); color: #fff; border-color: var(--plum);}
.page-catalog .results-header {max-width: 1180px; margin: 0 auto; padding: 32px 32px 8px; display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 16px;}
.page-catalog .results-count {font-size: 14px; color: var(--muted);}
.page-catalog .results-count strong {color: var(--plum); font-weight: 800;}
.page-catalog .reset-link {background: none; border: none; color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; font-family: inherit; padding: 4px 0;}
.page-catalog .reset-link:hover {color: var(--plum);}
.page-catalog .catalog-section {padding: 24px 0 80px;}
.page-catalog .catalog-grid {max-width: 1180px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;}
.page-catalog .product-card {background: #fff;
    border: 1px solid rgba(75,32,104,0.15);
    border-radius: 2px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s, transform .2s;}
.page-catalog .product-card:hover {box-shadow: 0 12px 32px rgba(75,32,104,0.10); transform: translateY(-2px);}
.page-catalog .product-visual {background: #fff; height: 168px; position: relative; display: flex; align-items: center; justify-content: center; border-bottom: 3px solid var(--gold); padding: 14px;}
.page-catalog .product-visual .product-photo {max-width: 100%; max-height: 100%; object-fit: contain;}
.page-catalog .product-visual .brand-tag {position: absolute;
    top: 12px;
    left: 12px;
    background: rgba(0,0,0,0.4);
    backdrop-filter: blur(6px);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 2px;
    z-index: 2;}
.page-catalog .product-visual .category-tag {position: absolute;
    bottom: 12px;
    right: 12px;
    background: var(--gold);
    color: var(--ink);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 2px;
    z-index: 2;}
.page-catalog .product-body {padding: 22px 22px 18px; flex-grow: 1; display: flex; flex-direction: column;}
.page-catalog .product-card h3 {font-size: 17px;
    color: var(--plum);
    font-weight: 800;
    margin-bottom: 6px;
    letter-spacing: -0.005em;
    line-height: 1.25;}
.page-catalog .product-card .product-cat {font-size: 11px;
    letter-spacing: 0.14em;
    color: var(--muted);
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 12px;}
.page-catalog .product-card .cert-row {display: flex;
    gap: 5px;
    flex-wrap: wrap;
    margin-bottom: 12px;}
.page-catalog .cert-pill {background: var(--plum);
    color: #fff;
    font-size: 9.5px;
    letter-spacing: 0.1em;
    padding: 3px 8px;
    border-radius: 2px;
    text-transform: uppercase;
    font-weight: 700;}
.page-catalog .cert-pill.alt {background: var(--gold); color: var(--ink);}
.page-catalog .cert-pill.lite {background: var(--lilac); color: var(--plum);}
.page-catalog .product-card .desc {font-size: 13.5px;
    color: var(--ink);
    line-height: 1.55;
    margin-bottom: 14px;
    flex-grow: 1;}
.page-catalog .product-card .meta {font-size: 12px;
    color: var(--muted);
    line-height: 1.55;
    padding-top: 12px;
    border-top: 1px dashed rgba(75,32,104,0.18);
    margin-bottom: 14px;}
.page-catalog .product-card .meta strong {color: var(--ink); font-weight: 600;}
.page-catalog .product-card .signin-link {font-size: 11.5px;
    letter-spacing: 0.16em;
    color: var(--plum);
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    margin-top: auto;
    display: inline-block;}
.page-catalog .product-card .signin-link::after {content: " →"; color: var(--gold);}
.page-catalog .product-card .signin-link:hover {color: var(--gold);}
.page-catalog .empty-state {grid-column: 1 / -1;
    background: var(--lilac);
    padding: 56px 32px;
    text-align: center;
    border-radius: 2px;
    border-left: 3px solid var(--gold);
    display: none;}
.page-catalog .empty-state.show {display: block;}
.page-catalog .empty-state h3 {font-size: 20px; color: var(--plum); font-weight: 800; margin-bottom: 8px;}
.page-catalog .empty-state p {font-size: 14px; color: var(--ink); margin-bottom: 16px; max-width: 480px; margin-left: auto; margin-right: auto;}
.page-catalog .catalog-note {max-width: 1180px;
    margin: 32px auto 0;
    padding: 18px 24px;
    border: 1px dashed rgba(75,32,104,0.3);
    border-radius: 2px;
    font-size: 13px;
    color: var(--muted);
    font-style: italic;
    margin-left: 32px;
    margin-right: 32px;}
.page-catalog .cta-band {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-dark) 100%); color: #fff; padding: 56px 0; border-top: 3px solid var(--gold); text-align: center;}
.page-catalog .cta-band h3 {font-size: 30px; font-weight: 800; margin-bottom: 14px; letter-spacing: -0.01em;}
.page-catalog .cta-band h3 .accent {color: var(--gold);}
.page-catalog .cta-band .sub {color: rgba(255,255,255,0.7); margin-bottom: 28px; font-size: 15px; max-width: 620px; margin-left: auto; margin-right: auto;}
.page-catalog .cta-buttons {display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;}
.page-catalog .cta-band .btn {padding: 14px 28px; font-size: 13px;}
@media (max-width: 1040px) {
  .page-catalog .catalog-grid {grid-template-columns: repeat(2, 1fr);}
  .page-catalog .page-hero-inner {grid-template-columns: 1fr;}
}
@media (max-width: 720px) {
  .page-catalog .catalog-grid {grid-template-columns: 1fr;}
  .page-catalog .page-hero h1 {font-size: 32px;}
  .page-catalog .filter-label {min-width: auto; width: 100%; margin-bottom: 4px;}
  .page-catalog .filter-bar {position: static;}
  .page-catalog .filter-group + .filter-group {padding-top: 12px;}
}
.page-catalog .product-card.is-hidden, .page-catalog .filter-chip.is-hidden {display: none !important;}


/* PAGE TYPE: page-blog */
.page-blog .nav-links a:hover, .page-blog .nav-links a.active {opacity: 1; color: var(--gold);}
.page-blog .container-narrow {max-width: 760px; margin: 0 auto; padding: 0 32px;}
.page-blog .blog-hero {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%); color: #fff; padding: 72px 0 64px; position: relative; overflow: hidden;}
.page-blog .blog-hero::after {content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 85% 40%, rgba(232,180,63,0.14) 0%, transparent 55%); pointer-events: none;}
.page-blog .blog-hero-inner {max-width: 1080px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1;}
.page-blog .blog-hero .eyebrow {display: block; margin-bottom: 18px;}
.page-blog .blog-hero h1 {font-size: 48px; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 16px; max-width: 760px;}
.page-blog .blog-hero h1 .accent {color: var(--gold);}
.page-blog .blog-hero .sub {font-size: 18px; color: rgba(255,255,255,0.82); max-width: 640px;}
.page-blog .blog-hero .gold-rule {width: 64px; height: 3px; background: var(--gold); margin-top: 28px;}
.page-blog .cat-bar {background: #fff; border-bottom: 1px solid rgba(75,32,104,0.1); padding: 22px 0;}
.page-blog .cat-pills {max-width: 1080px; margin: 0 auto; padding: 0 32px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center;}
.page-blog .cat-pills .label {font-size: 11px; letter-spacing: 0.22em; font-weight: 700; color: var(--muted); text-transform: uppercase; margin-right: 6px;}
.page-blog .cat-pill {display: inline-block; padding: 7px 14px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; border: 1px solid rgba(75,32,104,0.2); border-radius: 999px; color: var(--plum); text-decoration: none; transition: background .15s, color .15s, border-color .15s;}
.page-blog .cat-pill:hover {background: var(--plum); color: #fff; border-color: var(--plum);}
.page-blog .cat-pill.active {background: var(--plum); color: #fff; border-color: var(--plum);}
.page-blog section.blog-section {padding: 64px 0;}
.page-blog .featured-card {display: grid; grid-template-columns: 1.2fr 1fr; gap: 0; background: #fff; border: 1px solid rgba(75,32,104,0.12); border-top: 4px solid var(--gold); border-radius: 2px; overflow: hidden; text-decoration: none; color: inherit; transition: box-shadow .2s;}
.page-blog .featured-card:hover {box-shadow: 0 14px 38px rgba(75,32,104,0.14);}
.page-blog .featured-img {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-deeper) 100%); position: relative; min-height: 360px; display: flex; align-items: center; justify-content: center;}
.page-blog .featured-img .badge {position: absolute; top: 22px; left: 22px; background: var(--gold); color: var(--ink); padding: 6px 12px; font-size: 10px; letter-spacing: 0.22em; font-weight: 800; text-transform: uppercase; border-radius: 2px;}
.page-blog .featured-img .glyph {font-family: 'Playfair Display', serif; font-size: 140px; font-weight: 800; color: rgba(232,180,63,0.18); line-height: 1;}
.page-blog .featured-body {padding: 44px 44px 36px; display: flex; flex-direction: column; justify-content: center;}
.page-blog .featured-body .cat-tag {font-size: 11px; letter-spacing: 0.22em; color: var(--gold); font-weight: 800; text-transform: uppercase; margin-bottom: 14px;}
.page-blog .featured-body h2 {font-size: 30px; font-weight: 800; color: var(--plum); letter-spacing: -0.01em; line-height: 1.2; margin-bottom: 14px;}
.page-blog .featured-body p {font-size: 15.5px; color: var(--ink); line-height: 1.65; margin-bottom: 22px;}
.page-blog .featured-body .meta {font-size: 12px; color: var(--muted); letter-spacing: 0.06em; display: flex; gap: 10px; align-items: center;}
.page-blog .featured-body .meta .dot {width: 3px; height: 3px; background: var(--gold); border-radius: 50%;}
.page-blog .section-header-bar {display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 18px; margin-bottom: 28px; border-bottom: 2px solid var(--gold);}
.page-blog .section-header-bar h3 {font-size: 22px; font-weight: 800; color: var(--plum); letter-spacing: -0.005em;}
.page-blog .section-header-bar .right {font-size: 11px; letter-spacing: 0.22em; color: var(--muted); text-transform: uppercase; font-weight: 700;}
.page-blog .post-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;}
.page-blog .post-card {background: #fff; border: 1px solid rgba(75,32,104,0.12); border-top: 4px solid var(--gold); border-radius: 2px; text-decoration: none; color: inherit; transition: box-shadow .2s, transform .2s; display: flex; flex-direction: column; overflow: hidden;}
.page-blog .post-card:hover {box-shadow: 0 10px 32px rgba(75,32,104,0.12); transform: translateY(-2px);}
.page-blog .post-card .img {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-deeper) 100%); min-height: 180px; position: relative; display: flex; align-items: center; justify-content: center;}
.page-blog .post-card .img .glyph {font-family: 'Playfair Display', serif; font-size: 80px; color: rgba(232,180,63,0.22); font-weight: 800; line-height: 1;}
.page-blog .post-card .body {padding: 24px 26px 22px; display: flex; flex-direction: column; flex-grow: 1;}
.page-blog .post-card .cat-tag {font-size: 10px; letter-spacing: 0.22em; color: var(--gold); font-weight: 800; text-transform: uppercase; margin-bottom: 10px;}
.page-blog .post-card h4 {font-size: 18px; font-weight: 800; color: var(--plum); letter-spacing: -0.005em; line-height: 1.25; margin-bottom: 10px;}
.page-blog .post-card .excerpt {font-size: 14px; color: var(--ink); line-height: 1.6; margin-bottom: 16px; flex-grow: 1;}
.page-blog .post-card .meta {font-size: 11px; color: var(--muted); letter-spacing: 0.06em; padding-top: 14px; border-top: 1px dashed rgba(75,32,104,0.18); display: flex; gap: 8px; align-items: center;}
.page-blog .post-card .meta .dot {width: 3px; height: 3px; background: var(--gold); border-radius: 50%;}
.page-blog .newsletter-band {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-dark) 100%); color: #fff; padding: 64px 0; border-top: 3px solid var(--gold); text-align: center;}
.page-blog .newsletter-band h3 {font-size: 30px; font-weight: 800; margin-bottom: 12px; letter-spacing: -0.01em;}
.page-blog .newsletter-band h3 .accent {color: var(--gold);}
.page-blog .newsletter-band .sub {color: rgba(255,255,255,0.72); margin-bottom: 28px; font-size: 15.5px; max-width: 560px; margin-left: auto; margin-right: auto;}
.page-blog .newsletter-form {display: flex; gap: 10px; max-width: 480px; margin: 0 auto; flex-wrap: wrap; justify-content: center;}
.page-blog .newsletter-form input[type="email"] {flex: 1; min-width: 220px; padding: 13px 16px; border-radius: 3px; border: 1px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.06); color: #fff; font-size: 14px; font-family: inherit;}
.page-blog .newsletter-form input[type="email"]::placeholder {color: rgba(255,255,255,0.5);}
.page-blog .newsletter-form input[type="email"]:focus {outline: none; border-color: var(--gold); background: rgba(255,255,255,0.09);}
.page-blog .post-header {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%); color: #fff; padding: 64px 0 56px; position: relative; overflow: hidden;}
.page-blog .post-header::after {content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 85% 30%, rgba(232,180,63,0.14) 0%, transparent 55%); pointer-events: none;}
.page-blog .post-header-inner {max-width: 760px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1;}
.page-blog .post-breadcrumb {font-size: 11px; letter-spacing: 0.22em; color: rgba(255,255,255,0.65); text-transform: uppercase; margin-bottom: 22px;}
.page-blog .post-breadcrumb a {color: var(--gold); text-decoration: none;}
.page-blog .post-breadcrumb a:hover {text-decoration: underline;}
.page-blog .post-header .cat-tag {display: inline-block; font-size: 11px; letter-spacing: 0.22em; color: var(--ink); background: var(--gold); padding: 5px 12px; border-radius: 2px; font-weight: 800; text-transform: uppercase; margin-bottom: 18px;}
.page-blog .post-header h1 {font-size: 42px; line-height: 1.15; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 18px;}
.page-blog .post-header .dek {font-size: 19px; color: rgba(255,255,255,0.84); line-height: 1.5; margin-bottom: 26px;}
.page-blog .post-header .meta {font-size: 13px; color: rgba(255,255,255,0.65); letter-spacing: 0.06em; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding-top: 20px; border-top: 2px solid var(--gold); max-width: 480px;}
.page-blog .post-header .meta .dot {width: 3px; height: 3px; background: var(--gold); border-radius: 50%;}
.page-blog .post-body {padding: 64px 0 72px;}
.page-blog .post-body .container-narrow {color: var(--ink);}
.page-blog .post-body p {font-size: 17px; line-height: 1.75; margin-bottom: 22px; max-width: none;}
.page-blog .post-body p.lead {font-size: 20px; color: var(--plum); font-weight: 500; line-height: 1.55; margin-bottom: 28px;}
.page-blog .post-body h2 {font-size: 26px; font-weight: 800; color: var(--plum); letter-spacing: -0.01em; margin-top: 44px; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid var(--gold);}
.page-blog .post-body h3 {font-size: 19px; font-weight: 800; color: var(--plum); margin-top: 32px; margin-bottom: 12px; letter-spacing: -0.005em;}
.page-blog .post-body ul, .page-blog .post-body ol {padding-left: 22px; margin-bottom: 22px;}
.page-blog .post-body li {font-size: 17px; line-height: 1.7; margin-bottom: 10px; padding-left: 6px;}
.page-blog .post-body li::marker {color: var(--gold); font-weight: 800;}
.page-blog .post-body blockquote {border-left: 4px solid var(--gold); background: var(--lilac); padding: 22px 26px; margin: 28px 0; font-size: 18px; font-style: italic; color: var(--plum); line-height: 1.55; border-radius: 0 2px 2px 0;}
.page-blog .post-body strong {color: var(--plum); font-weight: 700;}
.page-blog .post-body a {color: var(--plum); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px;}
.page-blog .post-body a:hover {color: var(--plum-dark);}
.page-blog .post-footer-card {margin-top: 56px; background: var(--lilac); border-left: 4px solid var(--gold); padding: 26px 28px; border-radius: 0 2px 2px 0;}
.page-blog .post-footer-card .eyebrow {display: block; margin-bottom: 8px; color: var(--plum);}
.page-blog .post-footer-card h4 {font-size: 18px; color: var(--plum); font-weight: 800; margin-bottom: 6px;}
.page-blog .post-footer-card p {font-size: 14.5px; line-height: 1.6; color: var(--ink); margin-bottom: 14px;}
.page-blog .post-nav {display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 40px; padding-top: 32px; border-top: 1px solid rgba(75,32,104,0.18);}
.page-blog .post-nav a {display: block; padding: 18px 20px; background: #fff; border: 1px solid rgba(75,32,104,0.14); border-radius: 2px; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s;}
.page-blog .post-nav a:hover {border-color: var(--gold); box-shadow: 0 4px 14px rgba(75,32,104,0.08);}
.page-blog .post-nav .label {font-size: 10px; letter-spacing: 0.22em; color: var(--muted); text-transform: uppercase; font-weight: 700; margin-bottom: 6px;}
.page-blog .post-nav .title {font-size: 14px; color: var(--plum); font-weight: 700; line-height: 1.35;}
.page-blog .post-nav .next {text-align: right;}
@media (max-width: 860px) {
  .page-blog .featured-card {grid-template-columns: 1fr;}
  .page-blog .featured-img {min-height: 220px;}
  .page-blog .featured-body {padding: 28px 26px;}
  .page-blog .post-grid {grid-template-columns: 1fr;}
  .page-blog .blog-hero h1 {font-size: 32px;}
  .page-blog .post-header h1 {font-size: 30px;}
  .page-blog .post-nav {grid-template-columns: 1fr;}
}


/* PAGE TYPE: page-post */
.page-post .nav-links a:hover, .page-post .nav-links a.active {opacity: 1; color: var(--gold);}
.page-post .container-narrow {max-width: 760px; margin: 0 auto; padding: 0 32px;}
.page-post .blog-hero {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%); color: #fff; padding: 72px 0 64px; position: relative; overflow: hidden;}
.page-post .blog-hero::after {content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 85% 40%, rgba(232,180,63,0.14) 0%, transparent 55%); pointer-events: none;}
.page-post .blog-hero-inner {max-width: 1080px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1;}
.page-post .blog-hero .eyebrow {display: block; margin-bottom: 18px;}
.page-post .blog-hero h1 {font-size: 48px; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 16px; max-width: 760px;}
.page-post .blog-hero h1 .accent {color: var(--gold);}
.page-post .blog-hero .sub {font-size: 18px; color: rgba(255,255,255,0.82); max-width: 640px;}
.page-post .blog-hero .gold-rule {width: 64px; height: 3px; background: var(--gold); margin-top: 28px;}
.page-post .cat-bar {background: #fff; border-bottom: 1px solid rgba(75,32,104,0.1); padding: 22px 0;}
.page-post .cat-pills {max-width: 1080px; margin: 0 auto; padding: 0 32px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center;}
.page-post .cat-pills .label {font-size: 11px; letter-spacing: 0.22em; font-weight: 700; color: var(--muted); text-transform: uppercase; margin-right: 6px;}
.page-post .cat-pill {display: inline-block; padding: 7px 14px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; border: 1px solid rgba(75,32,104,0.2); border-radius: 999px; color: var(--plum); text-decoration: none; transition: background .15s, color .15s, border-color .15s;}
.page-post .cat-pill:hover {background: var(--plum); color: #fff; border-color: var(--plum);}
.page-post .cat-pill.active {background: var(--plum); color: #fff; border-color: var(--plum);}
.page-post section.blog-section {padding: 64px 0;}
.page-post .featured-card {display: grid; grid-template-columns: 1.2fr 1fr; gap: 0; background: #fff; border: 1px solid rgba(75,32,104,0.12); border-top: 4px solid var(--gold); border-radius: 2px; overflow: hidden; text-decoration: none; color: inherit; transition: box-shadow .2s;}
.page-post .featured-card:hover {box-shadow: 0 14px 38px rgba(75,32,104,0.14);}
.page-post .featured-img {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-deeper) 100%); position: relative; min-height: 360px; display: flex; align-items: center; justify-content: center;}
.page-post .featured-img .badge {position: absolute; top: 22px; left: 22px; background: var(--gold); color: var(--ink); padding: 6px 12px; font-size: 10px; letter-spacing: 0.22em; font-weight: 800; text-transform: uppercase; border-radius: 2px;}
.page-post .featured-img .glyph {font-family: 'Playfair Display', serif; font-size: 140px; font-weight: 800; color: rgba(232,180,63,0.18); line-height: 1;}
.page-post .featured-body {padding: 44px 44px 36px; display: flex; flex-direction: column; justify-content: center;}
.page-post .featured-body .cat-tag {font-size: 11px; letter-spacing: 0.22em; color: var(--gold); font-weight: 800; text-transform: uppercase; margin-bottom: 14px;}
.page-post .featured-body h2 {font-size: 30px; font-weight: 800; color: var(--plum); letter-spacing: -0.01em; line-height: 1.2; margin-bottom: 14px;}
.page-post .featured-body p {font-size: 15.5px; color: var(--ink); line-height: 1.65; margin-bottom: 22px;}
.page-post .featured-body .meta {font-size: 12px; color: var(--muted); letter-spacing: 0.06em; display: flex; gap: 10px; align-items: center;}
.page-post .featured-body .meta .dot {width: 3px; height: 3px; background: var(--gold); border-radius: 50%;}
.page-post .section-header-bar {display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 18px; margin-bottom: 28px; border-bottom: 2px solid var(--gold);}
.page-post .section-header-bar h3 {font-size: 22px; font-weight: 800; color: var(--plum); letter-spacing: -0.005em;}
.page-post .section-header-bar .right {font-size: 11px; letter-spacing: 0.22em; color: var(--muted); text-transform: uppercase; font-weight: 700;}
.page-post .post-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;}
.page-post .post-card {background: #fff; border: 1px solid rgba(75,32,104,0.12); border-top: 4px solid var(--gold); border-radius: 2px; text-decoration: none; color: inherit; transition: box-shadow .2s, transform .2s; display: flex; flex-direction: column; overflow: hidden;}
.page-post .post-card:hover {box-shadow: 0 10px 32px rgba(75,32,104,0.12); transform: translateY(-2px);}
.page-post .post-card .img {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-deeper) 100%); min-height: 180px; position: relative; display: flex; align-items: center; justify-content: center;}
.page-post .post-card .img .glyph {font-family: 'Playfair Display', serif; font-size: 80px; color: rgba(232,180,63,0.22); font-weight: 800; line-height: 1;}
.page-post .post-card .body {padding: 24px 26px 22px; display: flex; flex-direction: column; flex-grow: 1;}
.page-post .post-card .cat-tag {font-size: 10px; letter-spacing: 0.22em; color: var(--gold); font-weight: 800; text-transform: uppercase; margin-bottom: 10px;}
.page-post .post-card h4 {font-size: 18px; font-weight: 800; color: var(--plum); letter-spacing: -0.005em; line-height: 1.25; margin-bottom: 10px;}
.page-post .post-card .excerpt {font-size: 14px; color: var(--ink); line-height: 1.6; margin-bottom: 16px; flex-grow: 1;}
.page-post .post-card .meta {font-size: 11px; color: var(--muted); letter-spacing: 0.06em; padding-top: 14px; border-top: 1px dashed rgba(75,32,104,0.18); display: flex; gap: 8px; align-items: center;}
.page-post .post-card .meta .dot {width: 3px; height: 3px; background: var(--gold); border-radius: 50%;}
.page-post .newsletter-band {background: linear-gradient(135deg, var(--plum) 0%, var(--plum-dark) 100%); color: #fff; padding: 64px 0; border-top: 3px solid var(--gold); text-align: center;}
.page-post .newsletter-band h3 {font-size: 30px; font-weight: 800; margin-bottom: 12px; letter-spacing: -0.01em;}
.page-post .newsletter-band h3 .accent {color: var(--gold);}
.page-post .newsletter-band .sub {color: rgba(255,255,255,0.72); margin-bottom: 28px; font-size: 15.5px; max-width: 560px; margin-left: auto; margin-right: auto;}
.page-post .newsletter-form {display: flex; gap: 10px; max-width: 480px; margin: 0 auto; flex-wrap: wrap; justify-content: center;}
.page-post .newsletter-form input[type="email"] {flex: 1; min-width: 220px; padding: 13px 16px; border-radius: 3px; border: 1px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.06); color: #fff; font-size: 14px; font-family: inherit;}
.page-post .newsletter-form input[type="email"]::placeholder {color: rgba(255,255,255,0.5);}
.page-post .newsletter-form input[type="email"]:focus {outline: none; border-color: var(--gold); background: rgba(255,255,255,0.09);}
.page-post .post-header {background: linear-gradient(140deg, var(--ink) 0%, var(--plum-dark) 60%, var(--plum) 100%); color: #fff; padding: 64px 0 56px; position: relative; overflow: hidden;}
.page-post .post-header::after {content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 85% 30%, rgba(232,180,63,0.14) 0%, transparent 55%); pointer-events: none;}
.page-post .post-header-inner {max-width: 760px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1;}
.page-post .post-breadcrumb {font-size: 11px; letter-spacing: 0.22em; color: rgba(255,255,255,0.65); text-transform: uppercase; margin-bottom: 22px;}
.page-post .post-breadcrumb a {color: var(--gold); text-decoration: none;}
.page-post .post-breadcrumb a:hover {text-decoration: underline;}
.page-post .post-header .cat-tag {display: inline-block; font-size: 11px; letter-spacing: 0.22em; color: var(--ink); background: var(--gold); padding: 5px 12px; border-radius: 2px; font-weight: 800; text-transform: uppercase; margin-bottom: 18px;}
.page-post .post-header h1 {font-size: 42px; line-height: 1.15; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 18px;}
.page-post .post-header .dek {font-size: 19px; color: rgba(255,255,255,0.84); line-height: 1.5; margin-bottom: 26px;}
.page-post .post-header .meta {font-size: 13px; color: rgba(255,255,255,0.65); letter-spacing: 0.06em; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding-top: 20px; border-top: 2px solid var(--gold); max-width: 480px;}
.page-post .post-header .meta .dot {width: 3px; height: 3px; background: var(--gold); border-radius: 50%;}
.page-post .post-body {padding: 64px 0 72px;}
.page-post .post-body .container-narrow {color: var(--ink);}
.page-post .post-body p {font-size: 17px; line-height: 1.75; margin-bottom: 22px; max-width: none;}
.page-post .post-body p.lead {font-size: 20px; color: var(--plum); font-weight: 500; line-height: 1.55; margin-bottom: 28px;}
.page-post .post-body h2 {font-size: 26px; font-weight: 800; color: var(--plum); letter-spacing: -0.01em; margin-top: 44px; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid var(--gold);}
.page-post .post-body h3 {font-size: 19px; font-weight: 800; color: var(--plum); margin-top: 32px; margin-bottom: 12px; letter-spacing: -0.005em;}
.page-post .post-body ul, .page-post .post-body ol {padding-left: 22px; margin-bottom: 22px;}
.page-post .post-body li {font-size: 17px; line-height: 1.7; margin-bottom: 10px; padding-left: 6px;}
.page-post .post-body li::marker {color: var(--gold); font-weight: 800;}
.page-post .post-body blockquote {border-left: 4px solid var(--gold); background: var(--lilac); padding: 22px 26px; margin: 28px 0; font-size: 18px; font-style: italic; color: var(--plum); line-height: 1.55; border-radius: 0 2px 2px 0;}
.page-post .post-body strong {color: var(--plum); font-weight: 700;}
.page-post .post-body a {color: var(--plum); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px;}
.page-post .post-body a:hover {color: var(--plum-dark);}
.page-post .post-footer-card {margin-top: 56px; background: var(--lilac); border-left: 4px solid var(--gold); padding: 26px 28px; border-radius: 0 2px 2px 0;}
.page-post .post-footer-card .eyebrow {display: block; margin-bottom: 8px; color: var(--plum);}
.page-post .post-footer-card h4 {font-size: 18px; color: var(--plum); font-weight: 800; margin-bottom: 6px;}
.page-post .post-footer-card p {font-size: 14.5px; line-height: 1.6; color: var(--ink); margin-bottom: 14px;}
.page-post .post-nav {display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 40px; padding-top: 32px; border-top: 1px solid rgba(75,32,104,0.18);}
.page-post .post-nav a {display: block; padding: 18px 20px; background: #fff; border: 1px solid rgba(75,32,104,0.14); border-radius: 2px; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s;}
.page-post .post-nav a:hover {border-color: var(--gold); box-shadow: 0 4px 14px rgba(75,32,104,0.08);}
.page-post .post-nav .label {font-size: 10px; letter-spacing: 0.22em; color: var(--muted); text-transform: uppercase; font-weight: 700; margin-bottom: 6px;}
.page-post .post-nav .title {font-size: 14px; color: var(--plum); font-weight: 700; line-height: 1.35;}
.page-post .post-nav .next {text-align: right;}
@media (max-width: 860px) {
  .page-post .featured-card {grid-template-columns: 1fr;}
  .page-post .featured-img {min-height: 220px;}
  .page-post .featured-body {padding: 28px 26px;}
  .page-post .post-grid {grid-template-columns: 1fr;}
  .page-post .blog-hero h1 {font-size: 32px;}
  .page-post .post-header h1 {font-size: 30px;}
  .page-post .post-nav {grid-template-columns: 1fr;}
}
