/*
Theme Name: SAA
Description: Custom theme for the Society of Artists Agents.
Version: 0.1.0
Text Domain: saa
*/

/* SAA — site stylesheet. Generated from per-page inline CSS. */
/* Base: rules shared by every page. Page-specific overrides are grouped below, scoped by the body class (page-home, page-about, …). */

/* ---------- roots & resets ---------- */
:root { --ink:#181818; --coral:#FF6F6F; --paper:#F2ECEB; --maroon:#6C3838; --pink:#F5BEBA; --measure: 42ch; --gutter:clamp(1.25rem,4vw,4rem); --ease:cubic-bezier(.16,1,.3,1); }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Archivo",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif; font-size:clamp(1rem,.9rem + .35vw,1.1rem); line-height:1.6; -webkit-font-smoothing:antialiased; }

/* ---------- shared base ---------- */
a { color:inherit; }
h2 { text-wrap:balance; }
.wrap { max-width:1200px;margin:0 auto;padding-inline:var(--gutter); }
.bar { display:flex;align-items:center;justify-content:space-between;gap:1rem; }
.brand-mark { display:block;height:26px;width:auto;fill:var(--ink); }
nav ul { display:flex;gap:1.6rem;list-style:none;margin:0;padding:0;align-items:center; }
nav a { text-decoration:none;font-weight:500;font-size:.95rem;padding-block:.25rem;position:relative; }
nav a::after { content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--coral);transition:right .35s var(--ease); }
nav a:hover::after { right:0; }
nav a:focus-visible::after { right:0; }
.join { background:var(--ink);color:var(--paper);padding:.6rem 1.15rem;border-radius:2px;font-weight:700;font-size:.9rem;letter-spacing:.02em;text-decoration:none;transition:background .3s var(--ease); }
.join:hover { background:var(--maroon); }
.kicker { display:flex;align-items:center;gap:.85rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon);margin:0 0 1.4rem; }
.site-foot { background:var(--ink);color:var(--paper);padding-block:clamp(3.5rem,7vw,5.5rem) 2rem; }
.foot-top { display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:2.5rem 2rem; }
.foot-brand .brand-mark { fill:var(--paper);height:30px;margin-bottom:1.1rem; }
.foot-brand p { max-width:34ch;color:color-mix(in srgb,var(--paper) 70%,var(--ink));font-size:.95rem;margin:0; }
.foot-col h4 { font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--coral);margin:0 0 1rem; }
.foot-col ul { list-style:none;margin:0;padding:0;display:grid;gap:.65rem; }
.foot-col a { color:color-mix(in srgb,var(--paper) 80%,var(--ink));text-decoration:none;font-size:.95rem;transition:color .3s var(--ease); }
.foot-col a:hover { color:var(--coral); }
.foot-news { margin-top:clamp(2.5rem,5vw,3.5rem);padding-top:clamp(1.75rem,3.5vw,2.5rem);border-top:1px solid color-mix(in srgb,var(--paper) 18%,transparent);display:flex;justify-content:space-between;align-items:center;gap:1.5rem 2rem;flex-wrap:wrap; }
.foot-news h4 { font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--coral);margin:0 0 .4rem; }
.foot-news p { margin:0;color:color-mix(in srgb,var(--paper) 70%,var(--ink));font-size:.95rem;max-width:42ch; }
.news-form { display:flex;gap:.6rem;flex-wrap:wrap; }
.news-form input { background:transparent;border:1px solid color-mix(in srgb,var(--paper) 28%,transparent);color:var(--paper);padding:.7rem .9rem;border-radius:2px;font:inherit;font-size:.9rem;min-width:220px; }
.news-form input::placeholder { color:color-mix(in srgb,var(--paper) 45%,var(--ink)); }
.news-form button { background:var(--coral);color:var(--ink);border:none;padding:.7rem 1.4rem;border-radius:2px;font:inherit;font-weight:700;font-size:.9rem;cursor:pointer;transition:background .3s var(--ease); }
.news-form button:hover { background:var(--paper); }
.foot-legal { margin-top:clamp(2.5rem,5vw,3.5rem);padding-top:1.5rem;border-top:1px solid color-mix(in srgb,var(--paper) 18%,transparent);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem;color:color-mix(in srgb,var(--paper) 60%,var(--ink)); }
.foot-legal a:hover { color:var(--coral); }
@media (max-width:520px) {
  .foot-top { grid-template-columns:1fr; }
}

/* ---------- index.html ---------- */
body.page-home header { padding-block:1.35rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent);position:sticky;top:0;background:var(--paper);z-index:50; }
body.page-home .brand { line-height:1;text-decoration:none;display:block; }
body.page-home .brand-txt { font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon);display:block;margin-top:.4rem; }
body.page-home .hero { display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem);align-items:start;padding-block:clamp(2.5rem,6vw,5.5rem); }
body.page-home .hero-left { align-self:center; }
body.page-home .kicker::before { content:"";width:42px;height:1px;background:currentColor;display:inline-block; }
body.page-home h1 { font-weight:800; font-size:clamp(2.5rem,1.5rem + 3vw,4rem); line-height:1; letter-spacing:-.035em; text-wrap:balance; hyphens:none; margin:0; }
body.page-home h1 .serif { display:block; font-family:"Fraunces",Georgia,serif; font-style:italic; font-weight:400; font-size:.82em; letter-spacing:-.01em; color:var(--maroon); margin-top:.12em; }
body.page-home .hero-right { display:flex;flex-direction:column;gap:2rem; }
body.page-home .lede { max-width:48ch;margin:0;font-size:1.1rem; }
body.page-home .cta-row { display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap; }
body.page-home .btn { background:var(--ink);color:var(--paper);text-decoration:none;font-weight:700;font-size:.92rem;letter-spacing:.02em;padding:.85rem 1.5rem;border-radius:2px;transition:background .3s var(--ease); }
body.page-home .btn:hover { background:var(--maroon); }
body.page-home .link { text-decoration:none;font-weight:500;color:var(--ink);position:relative;padding-bottom:2px; }
body.page-home .link::after { content:"→";margin-left:.4rem;display:inline-block;transition:transform .3s var(--ease); }
body.page-home .link:hover::after { transform:translateX(4px); }
body.page-home body::before { content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;mix-blend-mode:multiply; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
body.page-home .roster-band { background:#fff;padding-block:clamp(3rem,6vw,5rem) clamp(4rem,7vw,5.5rem); }
body.page-home .roster { padding-block:0; }
body.page-home .roster-head { display:flex;justify-content:space-between;align-items:flex-end;gap:1.25rem 2rem;flex-wrap:wrap;margin:0 0 clamp(2.75rem,5vw,4rem);padding-bottom:1.3rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 15%,transparent); }
body.page-home .roster-head h2 { font-size:clamp(1.7rem,1.05rem + 1.9vw,2.4rem);font-weight:800;letter-spacing:-.03em;line-height:1.04;margin:0; }
body.page-home .roster-head p { margin:.55rem 0 0;color:var(--maroon);font-size:1.02rem; }
body.page-home .roster-head .link { color:var(--maroon);white-space:nowrap; }
body.page-home .agencies { list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(3.5rem,6.5vw,6rem) 1.5rem;align-items:center;justify-items:center; }
body.page-home .agencies li { display:flex;align-items:center;justify-content:center;min-height:112px;text-align:center;font-weight:700;font-size:1rem;color:var(--ink); }
body.page-home .agencies img { max-height:100px;max-width:100%;width:auto;height:auto;object-fit:contain; }
body.page-home .agencies img.wide { max-height:70px; }
body.page-home .roster-count { margin:clamp(3.5rem,6vw,5rem) 0 0;font-size:.9rem;color:var(--maroon); }
body.page-home .why { position:relative;background:var(--ink);color:var(--paper);margin-top:0;padding-block:clamp(4.5rem,7.5vw,7rem) clamp(3.5rem,7vw,5.5rem);overflow:hidden; }
body.page-home .why-mark { position:absolute;right:0;top:50%;transform:translate(30%,-50%);width:min(82%,880px);z-index:0;pointer-events:none; }
body.page-home .why-mark svg { width:100%;height:auto;display:block; }
body.page-home .why-inner { position:relative;z-index:1; }
body.page-home .why h2 { font-size:clamp(1.9rem,1.2rem + 2.4vw,3rem);font-weight:800;letter-spacing:-.03em;line-height:1.03;margin:0 0 1rem;max-width:16ch; }
body.page-home .why-lede { max-width:52ch;margin:0 0 1.25rem;color:color-mix(in srgb,var(--paper) 82%,var(--ink));font-size:1.1rem; }
body.page-home .why-cta { display:inline-block;margin-bottom:clamp(2.75rem,5vw,4rem); }
body.page-home .pillars { display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,3rem); }
body.page-home .pillar { border-top:1px solid var(--coral);padding-top:1.15rem; }
body.page-home .pillar h3 { font-size:1.15rem;font-weight:700;color:var(--coral);margin:0 0 .6rem; }
body.page-home .pillar p { margin:0 0 1rem;color:color-mix(in srgb,var(--paper) 78%,var(--ink));font-size:.98rem;line-height:1.55; }
body.page-home .link.light { color:var(--paper); }
body.page-home .link.light:hover { color:var(--coral); }
body.page-home .band { padding-block:clamp(3.5rem,7vw,6rem); }
body.page-home .masthead { display:flex;justify-content:space-between;align-items:flex-end;gap:1.25rem 2rem;flex-wrap:wrap;margin:0 0 clamp(2.5rem,5vw,3.5rem);padding-bottom:1.3rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 15%,transparent); }
body.page-home .masthead h2 { font-size:clamp(1.7rem,1.05rem + 1.9vw,2.4rem);font-weight:800;letter-spacing:-.03em;line-height:1.04;margin:0; }
body.page-home .masthead .link { color:var(--maroon);white-space:nowrap; }
body.page-home .articles { display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(1.25rem,2.5vw,2rem); }
body.page-home .article { display:flex;flex-direction:column;background:#fff;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:3px;padding:clamp(1.5rem,2.5vw,2.25rem);text-decoration:none;color:var(--ink);transition:box-shadow .35s var(--ease),transform .35s var(--ease); }
body.page-home .article:hover { box-shadow:0 18px 42px -20px rgba(24,24,24,.4);transform:translateY(-4px); }
body.page-home .article .cat { font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--maroon);margin:0 0 1rem; }
body.page-home .article h3 { font-weight:800;letter-spacing:-.02em;line-height:1.12;margin:0 0 .75rem; }
body.page-home .article p { margin:0;color:color-mix(in srgb,var(--ink) 70%,#fff);font-size:.98rem;line-height:1.5; }
body.page-home .article .byline { margin-top:auto;padding-top:1.25rem;font-family:"Fraunces",serif;font-style:italic;font-size:.92rem;color:var(--maroon); }
body.page-home .feature { grid-row:1 / span 2; }
body.page-home .feature h3 { font-size:clamp(1.4rem,1rem + 1.4vw,2rem); }
body.page-home .feature p { font-size:1.05rem; }
body.page-home .article.sm h3 { font-size:1.2rem; }
body.page-home .illustrators { border-block:1px solid color-mix(in srgb,var(--ink) 16%,transparent); }
body.page-home .illustrators .inner { display:flex;justify-content:space-between;align-items:center;gap:1.5rem 2.5rem;flex-wrap:wrap;padding-block:clamp(2.5rem,5vw,4rem); }
body.page-home .illustrators .txt { max-width:54ch; }
body.page-home .illustrators .eyebrow { font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--maroon);margin:0 0 .75rem; }
body.page-home .illustrators h2 { font-size:clamp(1.5rem,1rem + 1.6vw,2.1rem);font-weight:800;letter-spacing:-.02em;margin:0 0 .6rem;line-height:1.1; }
body.page-home .illustrators p { margin:0;color:color-mix(in srgb,var(--ink) 74%,var(--paper)); }
body.page-home .join-band { background:#fff; }
body.page-home .join-sec { position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start; }
body.page-home .join-sec h2 { font-size:clamp(1.9rem,1.2rem + 2.4vw,3rem);font-weight:800;letter-spacing:-.03em;line-height:1.03;margin:0 0 1.25rem; }
body.page-home .join-sec .intro { max-width:46ch;margin:0 0 2rem;font-size:1.1rem; }
body.page-home .underpin { margin:2rem 0 0;font-size:.9rem;color:var(--maroon);line-height:1.7; }
body.page-home .underpin strong { font-weight:700; }
body.page-home .underpin-list { display:block;margin-top:.4rem; }
body.page-home .underpin .sep { font-size:1.3em;margin:0 .5em;vertical-align:-.08em; }
body.page-home .includes { background:var(--ink);color:var(--paper);border-radius:4px;padding:clamp(1.75rem,3vw,2.5rem); }
body.page-home .includes h3 { font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--coral);margin:0 0 1.25rem; }
body.page-home .includes ul { list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:.85rem; }
body.page-home .includes li { position:relative;padding-left:1.5rem;font-size:.98rem;color:color-mix(in srgb,var(--paper) 84%,var(--ink));line-height:1.45; }
body.page-home .includes li::before { content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;background:var(--coral);border-radius:1px; }
body.page-home .includes .link.light { color:var(--coral); }
body.page-home .foot-legal a { color:inherit;text-decoration:none;transition:color .3s var(--ease); }
body.page-home .kicker { animation:rise .8s var(--ease) both; }
body.page-home h1 { animation:rise .8s var(--ease) both; }
body.page-home .hero-right>* { animation:rise .8s var(--ease) both; }
body.page-home h1 { animation-delay:.06s; }
body.page-home .hero-right .lede { animation-delay:.14s; }
body.page-home .hero-right .cta-row { animation-delay:.2s; }
body.page-home .mark { animation:rise 1s var(--ease) both; }
@keyframes rise { from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none} }
@media (prefers-reduced-motion:reduce) {
  body.page-home * { animation:none!important;transition:none!important; }
}
@media (max-width:820px) {
  body.page-home .hero { grid-template-columns:1fr;align-items:start; }
  body.page-home .mark { order:-1;justify-self:start;width:min(100%,340px); }
  body.page-home .pillars { grid-template-columns:1fr;gap:0; }
  body.page-home .pillar { border-top:none;padding-top:0; }
  body.page-home .pillar+.pillar { border-top:1px solid color-mix(in srgb,var(--paper) 20%,transparent);padding-top:1.5rem;margin-top:1.5rem; }
  body.page-home .why-mark { width:min(130%,560px);transform:translate(28%,-50%); }
  body.page-home .articles { grid-template-columns:1fr; }
  body.page-home .feature { grid-row:auto; }
  body.page-home .join-sec { grid-template-columns:1fr; }
  body.page-home .foot-top { grid-template-columns:1fr 1fr; }
  body.page-home .illustrators .inner { flex-direction:column;align-items:flex-start; }
}

/* ---------- about.html ---------- */
body.page-about .measure { max-width:68ch; }
body.page-about body::before { content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
body.page-about .link { color:var(--maroon);text-decoration:none;font-weight:600; }
body.page-about .link::after { content:"→";margin-left:.4rem;display:inline-block;transition:transform .3s var(--ease); }
body.page-about .link:hover::after { transform:translateX(4px); }
body.page-about .btn { display:inline-block;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:700;font-size:.92rem;letter-spacing:.02em;padding:.85rem 1.5rem;border-radius:2px;transition:background .3s var(--ease); }
body.page-about .btn:hover { background:var(--maroon); }
body.page-about header { padding-block:1.35rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent);position:sticky;top:0;background:var(--paper);z-index:50; }
body.page-about .brand { line-height:1;text-decoration:none;display:block; }
body.page-about .brand-txt { font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon);display:block;margin-top:.4rem; }
body.page-about nav a.active::after { right:0; }
body.page-about nav a.active { color:var(--maroon); }
body.page-about .join::after { display:none; }
body.page-about .page-head { padding-block:clamp(3rem,6vw,5rem) clamp(4rem,8vw,8rem); }
body.page-about .kicker::before { content:"";width:42px;height:1px;background:currentColor; }
body.page-about .page-head h1 { font-weight:800;font-size:clamp(2.5rem,1.5rem + 3.4vw,4.25rem);line-height:1.02;letter-spacing:-.035em;margin:0 0 1.5rem;max-width:18ch;text-wrap:balance; }
body.page-about .page-head h1 em { font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;color:var(--maroon); }
body.page-about .page-head .intro { max-width:60ch;margin:0;font-size:1.2rem;color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }
body.page-about .story { position:relative;overflow:visible;background:#fff;padding-block:clamp(3rem,6vw,5rem); }
body.page-about .story-holder { position:absolute;left:0;right:0;top:0;z-index:2;pointer-events:none; }
body.page-about .story-holder>.wrap { position:relative; }
body.page-about .story-mark { position:absolute;right:0;top:0;transform:translateY(-48%);width:min(40%,440px); }
body.page-about .story-mark svg { width:100%;height:auto;display:block; }
body.page-about .story h2 { font-size:clamp(1.5rem,1rem + 1.5vw,2.1rem);font-weight:800;letter-spacing:-.025em;margin:0 0 1.5rem; }
body.page-about .story p { margin:0 0 1.4rem;font-size:1.08rem;line-height:1.7;color:color-mix(in srgb,var(--ink) 84%,var(--paper)); }
body.page-about .story .lead { font-size:1.3rem;line-height:1.55;color:var(--ink); }
body.page-about .story em { font-style:italic; }
body.page-about .whatwedo { background:var(--paper);padding-block:clamp(3.5rem,7vw,6rem); }
body.page-about .area-head { margin:0 0 clamp(2.25rem,4vw,3rem); }
body.page-about .area-head h2 { font-size:clamp(1.6rem,1rem + 1.9vw,2.4rem);font-weight:800;letter-spacing:-.03em;margin:0; }
body.page-about .area-head p { margin:.5rem 0 0;color:var(--maroon);max-width:52ch; }
body.page-about .pillars { display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,3rem); }
body.page-about .pillar { border-top:1px solid var(--coral);padding-top:1.15rem; }
body.page-about .pillar h3 { font-size:1.2rem;font-weight:700;color:var(--maroon);margin:0 0 .6rem; }
body.page-about .pillar p { margin:0 0 1rem;color:color-mix(in srgb,var(--ink) 74%,#fff);font-size:.98rem;line-height:1.55; }
body.page-about .govern { background:var(--ink);color:var(--paper);padding-block:clamp(3.5rem,7vw,5.5rem); }
body.page-about .govern h2 { font-size:clamp(1.6rem,1rem + 1.9vw,2.4rem);font-weight:800;letter-spacing:-.03em;margin:0 0 1rem;max-width:20ch; }
body.page-about .govern p { max-width:56ch;margin:0 0 2rem;color:color-mix(in srgb,var(--paper) 82%,var(--ink));font-size:1.05rem; }
body.page-about .doc-links { display:flex;flex-wrap:wrap;gap:1rem; }
body.page-about .doc-link { display:inline-flex;align-items:center;gap:.5rem;border:1px solid color-mix(in srgb,var(--paper) 28%,transparent);border-radius:2px;padding:.85rem 1.35rem;text-decoration:none;color:var(--paper);font-weight:600;font-size:.95rem;transition:background .3s var(--ease),border-color .3s var(--ease); }
body.page-about .doc-link:hover { background:color-mix(in srgb,var(--paper) 10%,transparent);border-color:var(--coral); }
body.page-about .doc-link .arw { color:var(--coral); }
body.page-about .join-cta { padding-block:clamp(3.5rem,7vw,6rem);text-align:center; }
body.page-about .join-cta h2 { font-size:clamp(1.9rem,1.2rem + 2.4vw,3rem);font-weight:800;letter-spacing:-.03em;margin:0 0 1rem; }
body.page-about .join-cta p { max-width:48ch;margin:0 auto 2rem;font-size:1.1rem;color:color-mix(in srgb,var(--ink) 78%,var(--paper)); }
body.page-about .foot-legal a { color:inherit;text-decoration:none; }
body.page-about .page-head>* { animation:rise .8s var(--ease) both; }
@keyframes rise { from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none} }
@media (prefers-reduced-motion:reduce) {
  body.page-about * { animation:none!important;transition:none!important; }
}
@media (max-width:820px) {
  body.page-about .story-holder { position:static; }
  body.page-about .story-mark { position:relative;right:auto;top:auto;transform:none;width:min(60%,260px);margin-bottom:1.25rem; }
  body.page-about .pillars { grid-template-columns:1fr;gap:0; }
  body.page-about .pillar { border-top:none;padding-top:0; }
  body.page-about .pillar+.pillar { border-top:1px solid color-mix(in srgb,var(--ink) 14%,transparent);padding-top:1.5rem;margin-top:1.5rem; }
  body.page-about .foot-top { grid-template-columns:1fr 1fr; }
}

/* ---------- join.html ---------- */
body.page-join body::before { content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
body.page-join .link { color:var(--maroon);text-decoration:none;font-weight:600; }
body.page-join .link::after { content:"→";margin-left:.4rem;display:inline-block;transition:transform .3s var(--ease); }
body.page-join .link:hover::after { transform:translateX(4px); }
body.page-join .btn { display:inline-block;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:700;font-size:.92rem;letter-spacing:.02em;padding:.9rem 1.6rem;border-radius:2px;transition:background .3s var(--ease); }
body.page-join .btn:hover { background:var(--maroon); }
body.page-join .btn.coral { background:var(--coral);color:var(--ink); }
body.page-join .btn.coral:hover { background:var(--paper); }
body.page-join header { padding-block:1.35rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent);position:sticky;top:0;background:var(--paper);z-index:50; }
body.page-join .brand { line-height:1;text-decoration:none;display:block; }
body.page-join .brand-txt { font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon);display:block;margin-top:.4rem; }
body.page-join .join::after { display:none; }
body.page-join .page-head { padding-block:clamp(3rem,6vw,5rem) clamp(2rem,4vw,3rem); }
body.page-join .kicker::before { content:"";width:42px;height:1px;background:currentColor; }
body.page-join .page-head h1 { font-weight:800;font-size:clamp(2.6rem,1.6rem + 3.6vw,4.5rem);line-height:1;letter-spacing:-.035em;margin:0 0 1.5rem;text-wrap:balance; }
body.page-join .page-head .intro { max-width:56ch;margin:0;font-size:1.2rem;color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }
body.page-join .benefits { background:#fff;padding-block:clamp(3.5rem,7vw,6rem); }
body.page-join .benefits h2 { font-size:clamp(1.6rem,1rem + 1.9vw,2.4rem);font-weight:800;letter-spacing:-.03em;margin:0 0 .5rem; }
body.page-join .benefits .sub { margin:0 0 clamp(2rem,4vw,3rem);color:var(--maroon);max-width:52ch; }
body.page-join .blist { list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.1rem 2.5rem; }
body.page-join .blist li { position:relative;padding-left:1.75rem;font-size:1rem;line-height:1.5;color:color-mix(in srgb,var(--ink) 82%,#fff); }
body.page-join .blist li::before { content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;background:var(--coral);border-radius:1px; }
body.page-join .closing { margin-top:clamp(2.5rem,5vw,3.5rem);max-width:60ch;font-size:1.15rem;line-height:1.55;font-family:"Fraunces",Georgia,serif;font-style:italic;color:var(--maroon); }
body.page-join .eligibility { padding-block:clamp(3.5rem,7vw,5.5rem); }
body.page-join .two { display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem); }
body.page-join .two h3 { font-size:1.3rem;font-weight:800;letter-spacing:-.02em;margin:0 0 1rem; }
body.page-join .two p { margin:0 0 1rem;color:color-mix(in srgb,var(--ink) 80%,var(--paper));line-height:1.6; }
body.page-join .two ol { margin:0;padding-left:1.2rem;color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }
body.page-join .two ol li { margin-bottom:.6rem;padding-left:.3rem; }
body.page-join .agree { background:var(--ink);color:var(--paper);padding-block:clamp(3.5rem,7vw,5.5rem); }
body.page-join .agree h2 { font-size:clamp(1.5rem,1rem + 1.6vw,2.1rem);font-weight:800;letter-spacing:-.03em;margin:0 0 1rem;max-width:24ch; }
body.page-join .agree p { max-width:56ch;margin:0 0 2rem;color:color-mix(in srgb,var(--paper) 82%,var(--ink)); }
body.page-join .doc-links { display:flex;flex-wrap:wrap;gap:1rem; }
body.page-join .doc-link { display:inline-flex;align-items:center;gap:.6rem;border:1px solid color-mix(in srgb,var(--paper) 28%,transparent);border-radius:2px;padding:.85rem 1.35rem;text-decoration:none;color:var(--paper);font-weight:600;font-size:.95rem;transition:background .3s var(--ease),border-color .3s var(--ease); }
body.page-join .doc-link:hover { background:color-mix(in srgb,var(--paper) 10%,transparent);border-color:var(--coral); }
body.page-join .doc-link .arw { color:var(--coral); }
body.page-join .apply { padding-block:clamp(3.5rem,7vw,6rem);text-align:center; }
body.page-join .apply h2 { font-size:clamp(1.9rem,1.2rem + 2.4vw,3rem);font-weight:800;letter-spacing:-.03em;margin:0 0 1rem; }
body.page-join .apply p { max-width:50ch;margin:0 auto 2rem;font-size:1.1rem;color:color-mix(in srgb,var(--ink) 78%,var(--paper)); }
body.page-join .apply .row { display:flex;gap:1.25rem;justify-content:center;align-items:center;flex-wrap:wrap; }
body.page-join .foot-legal a { color:inherit;text-decoration:none; }
body.page-join .page-head>* { animation:rise .8s var(--ease) both; }
@keyframes rise { from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none} }
@media (prefers-reduced-motion:reduce) {
  body.page-join * { animation:none!important;transition:none!important; }
}
@media (max-width:820px) {
  body.page-join .two { grid-template-columns:1fr; }
  body.page-join .foot-top { grid-template-columns:1fr 1fr; }
}

/* ---------- thinking.html ---------- */
body.page-thinking body::before { content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
body.page-thinking .link { color:var(--maroon);text-decoration:none;font-weight:600;white-space:nowrap; }
body.page-thinking .link::after { content:"→";margin-left:.4rem;display:inline-block;transition:transform .3s var(--ease); }
body.page-thinking .link:hover::after { transform:translateX(4px); }
/* header/brand/nav-active/join rules removed here — thinking.html and
   news.html now use the shared .page-post header (ink ground, SVG
   brand, hamburger), not this legacy paper-header/.brand-txt/.active
   set. Left in place: it was matching the header tag regardless of
   class and adding a border-bottom the .page-post header doesn't have
   — the one real, measurable difference between archive and post
   headers (confirmed via computed styles). */
body.page-thinking .page-head { padding-block:clamp(3rem,6vw,5rem) clamp(2rem,4vw,3rem); }
body.page-thinking .kicker::before { content:"";width:42px;height:1px;background:currentColor; }
body.page-thinking .page-head h1 { font-weight:800;font-size:clamp(2.6rem,1.6rem + 3.6vw,4.5rem);line-height:1;letter-spacing:-.035em;margin:0 0 1.25rem;text-wrap:balance; }
body.page-thinking .page-head h1 em { font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;color:var(--maroon); }
body.page-thinking .page-head .intro { max-width:58ch;margin:0;font-size:1.15rem;color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }
body.page-thinking .title-hero { position:relative;background:var(--ink);color:var(--paper);overflow:hidden;padding-block:clamp(2.5rem,6vw,4.5rem) clamp(2.5rem,5vw,4rem); }
body.page-thinking .th-block { position:relative;display:inline-block;margin-bottom:clamp(1.75rem,3.5vw,2.75rem); }
body.page-thinking .th-mark { width:min(520px,80vw); }
body.page-thinking .th-mark svg { width:100%;height:auto;display:block; }
body.page-thinking .th-title { position:absolute;left:-2%;bottom:5%;margin:0;font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;color:var(--paper);font-size:clamp(2.75rem,11vw,6rem);line-height:.85;letter-spacing:-.01em; }
body.page-thinking .th-intro { max-width:58ch;margin:0;color:color-mix(in srgb,var(--paper) 82%,var(--ink));font-size:1.15rem; }
body.page-thinking .area-head { display:flex;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;flex-wrap:wrap;margin:0 0 clamp(2rem,4vw,3rem);padding-bottom:1.2rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 15%,transparent); }
body.page-thinking .area-head h2 { font-size:clamp(1.6rem,1rem + 1.9vw,2.4rem);font-weight:800;letter-spacing:-.03em;line-height:1.04;margin:0; }
body.page-thinking .area-head .area-sub { margin:.5rem 0 0;color:var(--maroon);max-width:46ch;font-size:1rem; }
body.page-thinking .thinking { padding-block:clamp(2rem,4vw,3.5rem) clamp(3rem,6vw,5rem); }
body.page-thinking .featured { display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(1.5rem,3vw,3rem);align-items:stretch;margin-bottom:clamp(2rem,4vw,3rem); }
body.page-thinking .featured .txt { display:flex;flex-direction:column;justify-content:center; }
body.page-thinking .cat { font-size:.75rem!important;letter-spacing:.14em;text-transform:uppercase;color:var(--maroon);margin:0 0 1rem; }
body.page-thinking .featured h3 { font-weight:800;font-size:clamp(1.6rem,1.1rem + 1.8vw,2.4rem);line-height:1.1;letter-spacing:-.025em;margin:0 0 1rem;text-wrap:balance; }
body.page-thinking .featured>.txt>p { margin:0 0 1.4rem;max-width:48ch;color:color-mix(in srgb,var(--ink) 72%,var(--paper));font-size:1.05rem; }
body.page-thinking .featured .visual { background:var(--ink);color:var(--paper);border-radius:4px;min-height:260px;padding:clamp(1.75rem,3.5vw,3rem);display:flex;flex-direction:column;justify-content:center;text-decoration:none;transition:transform .35s var(--ease),box-shadow .35s var(--ease); }
body.page-thinking .featured .visual:hover { transform:translateY(-4px);box-shadow:0 18px 42px -20px rgba(24,24,24,.5); }
body.page-thinking .featured .visual .qmark { font-family:"Fraunces",Georgia,serif;font-size:4.5rem;line-height:.35;color:var(--coral);margin-bottom:1rem; }
body.page-thinking .featured .visual blockquote { margin:0;font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;font-size:clamp(1.35rem,1rem + 1.3vw,1.9rem);line-height:1.28;color:var(--paper); }
body.page-thinking .featured .visual cite { margin-top:1.5rem;font-style:normal;font-size:.82rem;letter-spacing:.02em;color:color-mix(in srgb,var(--paper) 62%,var(--ink)); }
body.page-thinking .meta { font-family:"Fraunces",serif;font-style:italic;font-size:.95rem;color:var(--maroon); }
body.page-thinking .meta .sep { font-style:normal;margin:0 .5em;opacity:.5; }
body.page-thinking .read { display:inline-flex;align-items:center;gap:.4rem;font-weight:700;text-decoration:none;color:var(--ink);margin-top:1.4rem; }
body.page-thinking .read::after { content:"→";transition:transform .3s var(--ease); }
body.page-thinking .read:hover::after { transform:translateX(4px); }
body.page-thinking .think-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(1.25rem,2.5vw,1.75rem); }
body.page-thinking .card { display:flex;flex-direction:column;background:#fff;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:3px;text-decoration:none;color:var(--ink);overflow:hidden;transition:box-shadow .35s var(--ease),transform .35s var(--ease); }
body.page-thinking .card:hover { box-shadow:0 18px 42px -20px rgba(24,24,24,.4);transform:translateY(-4px); }
body.page-thinking .card-body { display:flex;flex-direction:column;flex:1;padding:clamp(1.25rem,2vw,1.6rem); }
body.page-thinking .card h4 { font-weight:800;letter-spacing:-.015em;line-height:1.18;margin:0 0 .6rem;font-size:1.12rem; }
body.page-thinking .card p { margin:0 0 0.75rem;color:color-mix(in srgb,var(--ink) 68%,#fff);font-size:.92rem;line-height:1.5; }
body.page-thinking .card .meta { margin-top:auto;font-size:.85rem; }
body.page-thinking .showcase { background:#fff;padding-block:clamp(3.5rem,7vw,6rem); }
body.page-thinking .filters { display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:clamp(1.75rem,3.5vw,2.75rem); }
body.page-thinking .filter-label { font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--maroon);margin-right:.5rem; }
body.page-thinking .chip { font:inherit;font-size:.85rem;font-weight:500;color:var(--ink);background:none;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);border-radius:2px;padding:.4rem 1rem;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease); }
body.page-thinking .chip:hover { border-color:var(--ink); }
body.page-thinking .chip.active { background:var(--ink);color:#fff;border-color:var(--ink); }
body.page-thinking .show-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(1.5rem,3vw,2.25rem); }
body.page-thinking .show-card { display:flex;flex-direction:column;text-decoration:none;color:var(--ink); }
body.page-thinking .show-card .thumb { aspect-ratio:4/3;background:var(--pink);border-radius:3px;overflow:hidden;margin-bottom:1rem;position:relative;display:flex;align-items:flex-end;padding:.75rem;transition:transform .35s var(--ease); }
body.page-thinking .show-card:hover .thumb { transform:translateY(-4px); }
body.page-thinking .show-card .thumb img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
body.page-thinking .show-card .thumb.b { background:#EBE4DE; }
body.page-thinking .show-card .thumb.c { background:color-mix(in srgb,var(--coral) 42%,#fff); }
body.page-thinking .show-card .thumb.d { background:color-mix(in srgb,var(--maroon) 20%,var(--pink)); }
body.page-thinking .show-card .thumb span { position:relative;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--maroon); }
body.page-thinking .show-card .cat { margin:0 0 .5rem; }
body.page-thinking .show-card h3 { font-weight:700;font-size:1.05rem;line-height:1.22;letter-spacing:-.01em;margin:0 0 .5rem; }
body.page-thinking .show-card:hover h3 { color:var(--maroon); }
body.page-thinking .show-card .meta { font-size:.85rem; }
body.page-thinking .load { display:flex;justify-content:center;margin-top:clamp(2.5rem,5vw,3.5rem); }
body.page-thinking .btn-ghost { font:inherit;font-weight:700;font-size:.9rem;letter-spacing:.02em;color:var(--ink);background:none;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);border-radius:2px;padding:.85rem 2.25rem;cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease); }
body.page-thinking .btn-ghost:hover { background:var(--ink);color:#fff;border-color:var(--ink); }
body.page-thinking .foot-legal a { color:inherit;text-decoration:none; }
body.page-thinking .page-head>* { animation:rise .8s var(--ease) both; }
body.page-thinking .featured>* { animation:rise .8s var(--ease) both; }
@keyframes rise { from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none} }
@media (prefers-reduced-motion:reduce) {
  body.page-thinking * { animation:none!important;transition:none!important; }
}
@media (max-width:820px) {
  body.page-thinking .featured { grid-template-columns:1fr; }
  body.page-thinking .featured .visual { min-height:200px;order:-1; }
  body.page-thinking .foot-top { grid-template-columns:1fr 1fr; }
}

/* ---------- code-of-ethics.html ---------- */
body.page-ethics body::before { content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
body.page-ethics .btn { display:inline-flex;align-items:center;gap:.55rem;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:700;font-size:.92rem;letter-spacing:.02em;padding:.85rem 1.5rem;border-radius:2px;transition:background .3s var(--ease); }
body.page-ethics .btn:hover { background:var(--maroon); }
body.page-ethics .btn .tag { color:var(--coral);font-size:.7rem;letter-spacing:.08em; }
body.page-ethics header { padding-block:1.35rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent);position:sticky;top:0;background:var(--paper);z-index:50; }
body.page-ethics .brand { line-height:1;text-decoration:none;display:block; }
body.page-ethics .brand-txt { font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon);display:block;margin-top:.4rem; }
body.page-ethics .join::after { display:none; }
body.page-ethics .page-head { padding-block:clamp(3rem,6vw,4.5rem) clamp(1.5rem,3vw,2.5rem);border-bottom:1px solid color-mix(in srgb,var(--ink) 14%,transparent); }
body.page-ethics .kicker::before { content:"";width:42px;height:1px;background:currentColor; }
body.page-ethics .page-head h1 { font-weight:800;font-size:clamp(2.4rem,1.5rem + 3vw,4rem);line-height:1.02;letter-spacing:-.035em;margin:0 0 1.25rem; }
body.page-ethics .page-head .intro { max-width:58ch;margin:0 0 1.75rem;font-size:1.15rem;color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }
body.page-ethics .legal { display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:clamp(2rem,5vw,5rem);align-items:start;padding-block:clamp(2rem,4vw,3.5rem) clamp(4rem,8vw,7rem); }
body.page-ethics .clause { padding-block:clamp(1.75rem,3vw,2.5rem);border-top:1px solid color-mix(in srgb,var(--ink) 14%,transparent);scroll-margin-top:90px; }
body.page-ethics .clause:first-child { border-top:none;padding-top:0; }
body.page-ethics .clause .num { font-size:.8rem;font-weight:700;letter-spacing:.06em;color:var(--coral);margin:0 0 .5rem; }
body.page-ethics .clause h2 { font-size:clamp(1.25rem,1rem + .7vw,1.55rem);font-weight:800;letter-spacing:-.02em;margin:0 0 .9rem;line-height:1.2; }
body.page-ethics .clause p { max-width:68ch;margin:0 0 1rem;line-height:1.7;color:color-mix(in srgb,var(--ink) 86%,var(--paper)); }
body.page-ethics .clause p:last-child { margin-bottom:0; }
body.page-ethics .toc { position:sticky;top:92px; }
body.page-ethics .toc h4 { font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--maroon);margin:0 0 1rem; }
body.page-ethics .toc ol { list-style:none;margin:0;padding:0;display:grid;gap:.5rem; }
body.page-ethics .toc a { display:flex;gap:.55rem;text-decoration:none;font-size:.85rem;line-height:1.35;color:color-mix(in srgb,var(--ink) 58%,var(--paper));transition:color .2s var(--ease); }
body.page-ethics .toc a .n { color:var(--coral);font-weight:700;font-variant-numeric:tabular-nums;min-width:1.1em; }
body.page-ethics .toc a:hover { color:var(--ink); }
body.page-ethics .toc a.active { color:var(--ink);font-weight:600; }
body.page-ethics .foot-legal a { color:inherit;text-decoration:none; }
@media (max-width:900px) {
  body.page-ethics .legal { grid-template-columns:1fr; }
  body.page-ethics .toc { display:none; }
  body.page-ethics .foot-top { grid-template-columns:1fr 1fr; }
}
@media (max-width:820px) {
}
@media (prefers-reduced-motion:reduce) {
  body.page-ethics html { scroll-behavior:auto; }
  body.page-ethics * { transition:none!important; }
}

/* ---------- constitution.html ---------- */
body.page-constitution body::before { content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
body.page-constitution .btn { display:inline-flex;align-items:center;gap:.55rem;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:700;font-size:.92rem;letter-spacing:.02em;padding:.85rem 1.5rem;border-radius:2px;transition:background .3s var(--ease); }
body.page-constitution .btn:hover { background:var(--maroon); }
body.page-constitution .btn .tag { color:var(--coral);font-size:.7rem;letter-spacing:.08em; }
body.page-constitution header { padding-block:1.35rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent);position:sticky;top:0;background:var(--paper);z-index:50; }
body.page-constitution .brand { line-height:1;text-decoration:none;display:block; }
body.page-constitution .brand-txt { font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon);display:block;margin-top:.4rem; }
body.page-constitution .join::after { display:none; }
body.page-constitution .page-head { padding-block:clamp(3rem,6vw,4.5rem) clamp(1.5rem,3vw,2.5rem);border-bottom:1px solid color-mix(in srgb,var(--ink) 14%,transparent); }
body.page-constitution .kicker::before { content:"";width:42px;height:1px;background:currentColor; }
body.page-constitution .page-head h1 { font-weight:800;font-size:clamp(2.4rem,1.5rem + 3vw,4rem);line-height:1.02;letter-spacing:-.035em;margin:0 0 1.25rem; }
body.page-constitution .page-head .intro { max-width:58ch;margin:0 0 1.75rem;font-size:1.15rem;color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }
body.page-constitution .legal { display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:clamp(2rem,5vw,5rem);align-items:start;padding-block:clamp(2rem,4vw,3.5rem) clamp(4rem,8vw,7rem); }
body.page-constitution .clause { padding-block:clamp(1.75rem,3vw,2.5rem);border-top:1px solid color-mix(in srgb,var(--ink) 14%,transparent);scroll-margin-top:90px; }
body.page-constitution .clause:first-child { border-top:none;padding-top:0; }
body.page-constitution .clause .num { font-size:.8rem;font-weight:700;letter-spacing:.06em;color:var(--coral);margin:0 0 .5rem; }
body.page-constitution .clause h2 { font-size:clamp(1.25rem,1rem + .7vw,1.55rem);font-weight:800;letter-spacing:-.02em;margin:0 0 .9rem;line-height:1.2; }
body.page-constitution .clause p { max-width:68ch;margin:0 0 1rem;line-height:1.7;color:color-mix(in srgb,var(--ink) 86%,var(--paper)); }
body.page-constitution .clause p:last-child { margin-bottom:0; }
body.page-constitution .clause ol.sub { margin:.4rem 0 0;padding-left:1.6rem;max-width:68ch;list-style:lower-alpha; }
body.page-constitution .clause ol.sub li { margin-bottom:.75rem;line-height:1.7;color:color-mix(in srgb,var(--ink) 86%,var(--paper));padding-left:.35rem; }
body.page-constitution .clause ol.sub li::marker { color:var(--maroon);font-weight:700; }
body.page-constitution .toc { position:sticky;top:92px; }
body.page-constitution .toc h4 { font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--maroon);margin:0 0 1rem; }
body.page-constitution .toc ol { list-style:none;margin:0;padding:0;display:grid;gap:.5rem; }
body.page-constitution .toc a { display:flex;gap:.55rem;text-decoration:none;font-size:.85rem;line-height:1.35;color:color-mix(in srgb,var(--ink) 58%,var(--paper));transition:color .2s var(--ease); }
body.page-constitution .toc a .n { color:var(--coral);font-weight:700;font-variant-numeric:tabular-nums;min-width:1.1em; }
body.page-constitution .toc a:hover { color:var(--ink); }
body.page-constitution .toc a.active { color:var(--ink);font-weight:600; }
body.page-constitution .foot-legal a { color:inherit;text-decoration:none; }
@media (max-width:900px) {
  body.page-constitution .legal { grid-template-columns:1fr; }
  body.page-constitution .toc { display:none; }
  body.page-constitution .foot-top { grid-template-columns:1fr 1fr; }
}
@media (max-width:820px) {
}
@media (prefers-reduced-motion:reduce) {
  body.page-constitution html { scroll-behavior:auto; }
  body.page-constitution * { transition:none!important; }
}

/* ==================================================================
   Shared mobile navigation — slide-in panel (added 2026-09)
   Markup per page: .menu-btn + nav#primary-nav + .nav-backdrop inside .bar
   ================================================================== */
.menu-btn { display:none; }
.nav-backdrop { display:none; }
@media (max-width:820px) {
  .menu-btn {
    display:inline-flex; align-items:center; justify-content:center;
    width:44px; height:44px; margin:-8px -8px -8px 0; padding:0;
    background:none; border:0; cursor:pointer; position:relative; z-index:250;
    color:var(--ink); flex:0 0 auto;
  }
  .menu-btn .mb-lines, .menu-btn .mb-lines::before, .menu-btn .mb-lines::after {
    content:""; display:block; width:22px; height:2px; background:currentColor;
    border-radius:2px; transition:transform .3s var(--ease), opacity .2s var(--ease), background .2s var(--ease);
  }
  .menu-btn .mb-lines { position:relative; }
  .menu-btn .mb-lines::before { position:absolute; left:0; top:-7px; }
  .menu-btn .mb-lines::after  { position:absolute; left:0; top:7px; }
  body.nav-open .menu-btn { position:fixed; top:1.35rem; right:var(--gutter); color:var(--paper); }
  body.nav-open .menu-btn .mb-lines { background:transparent; }
  body.nav-open .menu-btn .mb-lines::before { transform:translateY(7px) rotate(45deg); }
  body.nav-open .menu-btn .mb-lines::after  { transform:translateY(-7px) rotate(-45deg); }

  header nav#primary-nav {
    position:fixed; top:0; right:0; height:100dvh; width:min(82vw,320px);
    background:var(--ink); color:var(--paper);
    transform:translateX(100%); transition:transform .35s var(--ease);
    z-index:200; display:flex; flex-direction:column; justify-content:center;
    padding:clamp(4rem,12vh,6rem) var(--gutter) 2rem;
    box-shadow:-24px 0 60px -30px rgba(0,0,0,.6); will-change:transform;
  }
  body.nav-open header nav#primary-nav { transform:translateX(0); }
  header nav#primary-nav ul { flex-direction:column; align-items:flex-start; gap:1.5rem; width:100%; }
  header nav#primary-nav a { color:var(--paper); font-size:1.25rem; font-weight:600; }
  header nav#primary-nav a::after { background:var(--coral); }
  header nav#primary-nav .join { background:var(--coral); color:var(--ink); margin-top:.5rem; font-size:1rem; }
  header nav#primary-nav .join:hover { background:var(--paper); }

  .nav-backdrop {
    display:block; position:fixed; inset:0; z-index:150;
    background:rgba(12,12,12,.55); opacity:0; visibility:hidden;
    transition:opacity .3s var(--ease), visibility .3s;
  }
  body.nav-open .nav-backdrop { opacity:1; visibility:visible; }
  body.nav-open { overflow:hidden; }
}

/* ==================================================================
   Nav dropdowns — sub-menu support (added 2026-09)
   Markup: WP's default Walker_Nav_Menu::start_lvl() wraps children in
   <ul class="sub-menu"> inside the parent <li>; SAA_Nav_Walker
   (functions.php) adds .has-submenu + aria-haspopup to the parent <a>.
   Desktop: absolute-positioned flyout on hover/focus-within, no JS.
   Mobile (<=820px, inside the slide-in panel): always expanded inline,
   since hover doesn't apply on touch.
   ================================================================== */
nav#primary-nav .sub-menu { list-style:none; margin:0; padding:0; }
nav#primary-nav a.has-submenu {
  display:inline-flex; align-items:center; gap:calc(.5em + 5px);
}
nav#primary-nav a.has-submenu::before {
  content:""; display:inline-block; order:1; width:5px; height:5px; margin-bottom:1px;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(45deg); transition:transform .2s var(--ease);
}
@media (min-width:821px) {
  nav#primary-nav > ul > li { position:relative; }
  nav#primary-nav .sub-menu {
    display:none; position:absolute; top:100%; left:0;
    min-width:200px; background:var(--paper); background-clip:padding-box; color:var(--ink);
    border:1px solid color-mix(in srgb,var(--ink) 12%,transparent); border-top:.6rem solid transparent; border-radius:2px;
    padding:.4rem 0; box-shadow:0 18px 42px -20px rgba(24,24,24,.35); z-index:60;
  }
  nav#primary-nav .sub-menu a { display:block; padding:.55rem 1.1rem; font-size:.9rem; }
  nav#primary-nav > ul > li:hover > .sub-menu,
  nav#primary-nav > ul > li:focus-within > .sub-menu { display:block; }
  nav#primary-nav > ul > li:hover > a.has-submenu::before,
  nav#primary-nav > ul > li:focus-within > a.has-submenu::before { transform:rotate(225deg); }
}
@media (max-width:820px) {
  header nav#primary-nav .sub-menu { gap:1rem; margin:.25rem 0 0 1rem; }
  header nav#primary-nav .sub-menu a { font-size:1rem; font-weight:500; }
}

/* ==================================================================
   Contact / Portfolios / Members pages (added 2026-09)
   ================================================================== */
/* shared interior chrome */
body.page-contact header, body.page-portfolios header, body.page-members header { padding-block:1.35rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent);position:sticky;top:0;background:var(--paper);z-index:50; }
body.page-contact .brand, body.page-portfolios .brand, body.page-members .brand { line-height:1;text-decoration:none;display:block; }
body.page-contact .brand-txt, body.page-portfolios .brand-txt, body.page-members .brand-txt { font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon);display:block;margin-top:.4rem; }
body.page-contact .join::after, body.page-portfolios .join::after, body.page-members .join::after { display:none; }
body.page-contact nav a.active, body.page-portfolios nav a.active, body.page-members nav a.active { color:var(--maroon); }
body.page-contact nav a.active::after, body.page-portfolios nav a.active::after, body.page-members nav a.active::after { right:0; }
body.page-contact .foot-legal a, body.page-portfolios .foot-legal a, body.page-members .foot-legal a { color:inherit;text-decoration:none; }
body.page-contact .foot-legal a:hover, body.page-portfolios .foot-legal a:hover, body.page-members .foot-legal a:hover { color:var(--coral); }

/* page-head (contact + portfolios) */
body.page-contact .page-head, body.page-portfolios .page-head { padding-block:clamp(3rem,6vw,5rem) clamp(1.5rem,3vw,2.5rem); }
body.page-contact .kicker::before, body.page-portfolios .kicker::before { content:"";width:42px;height:1px;background:currentColor; }
body.page-contact .page-head h1, body.page-portfolios .page-head h1 { font-weight:800;font-size:clamp(2.4rem,1.5rem + 3vw,4rem);line-height:1.02;letter-spacing:-.035em;margin:0 0 1.25rem; }
body.page-contact .page-head .intro, body.page-portfolios .page-head .intro { max-width:60ch;margin:0;font-size:1.15rem;color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }

/* contact */
body.page-contact .contact-body { padding-block:clamp(1.5rem,3vw,2.5rem) clamp(4rem,8vw,7rem); }
body.page-contact .contact-grid { display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start; }
body.page-contact .cf-head { font-size:clamp(1.2rem,1rem + .8vw,1.5rem);font-weight:800;letter-spacing:-.02em;margin:0 0 1.5rem; }
body.page-contact .contact-form { display:grid;gap:1.2rem; }
body.page-contact .field { display:grid;gap:.4rem; }
body.page-contact .field label { font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--maroon);font-weight:700; }
body.page-contact .field input, body.page-contact .field textarea { font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);border-radius:2px;padding:.8rem .9rem;width:100%; }
body.page-contact .field input:focus, body.page-contact .field textarea:focus { outline:2px solid var(--coral);outline-offset:1px;border-color:var(--coral); }
body.page-contact .field textarea { resize:vertical;min-height:120px; }
body.page-contact .contact-form .btn { justify-self:start;background:var(--ink);color:var(--paper);font:inherit;font-weight:700;font-size:.92rem;letter-spacing:.02em;padding:.85rem 1.6rem;border:0;border-radius:2px;cursor:pointer;transition:background .3s var(--ease); }
body.page-contact .contact-form .btn:hover { background:var(--maroon); }
body.page-contact .form-note { margin:.25rem 0 0;font-size:.82rem;color:var(--maroon); }
body.page-contact .contact-aside { border-top:2px solid var(--coral);padding-top:1.25rem; }
body.page-contact .contact-aside h2 { font-size:1.15rem;font-weight:800;letter-spacing:-.02em;margin:0 0 .75rem; }
body.page-contact .contact-aside p { margin:0;line-height:1.7;color:color-mix(in srgb,var(--ink) 82%,var(--paper)); }
body.page-contact .contact-aside a { color:var(--maroon);font-weight:700; }

/* portfolios placeholder */
body.page-portfolios .portfolios-body { padding-block:clamp(1.5rem,3vw,2.5rem) clamp(4rem,8vw,7rem); }
body.page-portfolios .placeholder-block { display:flex;align-items:center;justify-content:center;min-height:340px;border:2px dashed color-mix(in srgb,var(--ink) 28%,transparent);border-radius:4px;color:var(--maroon);font-family:"Fraunces",Georgia,serif;font-style:italic;font-size:clamp(1.1rem,1rem + .8vw,1.6rem);text-align:center;padding:2rem;background:color-mix(in srgb,#fff 55%,transparent); }


@media (max-width:820px) {
  body.page-contact .contact-grid { grid-template-columns:1fr; }
  body.page-contact .foot-top, body.page-portfolios .foot-top, body.page-members .foot-top { grid-template-columns:1fr 1fr; }
}

/* ==================================================================
   Generic simple page (added 2026-09) — page.php's fallback scope for
   any WP Page without its own dedicated template (Contact, News,
   Members, Terms, Privacy, … until each gets a bespoke one). page-head
   chrome matches the static reference's own precedent: terms.html and
   privacy.html both reuse the page-ethics page-head/kicker values
   verbatim (see assets/css/style.css) rather than defining their own —
   same values, copied here rather than coupling unrelated pages to the
   `page-ethics` name.
   ================================================================== */
body.page-simple header { padding-block:1.35rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent);position:sticky;top:0;background:var(--paper);z-index:50; }
body.page-simple .brand { line-height:1;text-decoration:none;display:block; }
body.page-simple .brand-txt { font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon);display:block;margin-top:.4rem; }
body.page-simple .join::after { display:none; }
body.page-simple nav a.active { color:var(--maroon); }
body.page-simple nav a.active::after { right:0; }
body.page-simple .kicker::before { content:"";width:42px;height:1px;background:currentColor; }
body.page-simple .page-head { padding-block:clamp(3rem,6vw,4.5rem) clamp(1.5rem,3vw,2.5rem);border-bottom:1px solid color-mix(in srgb,var(--ink) 14%,transparent); }
body.page-simple .page-head h1 { font-weight:800;font-size:clamp(2.4rem,1.5rem + 3vw,4rem);line-height:1.02;letter-spacing:-.035em;margin:0 0 1.25rem; }
body.page-simple .page-head .intro { max-width:58ch;margin:0;font-size:1.15rem;color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }
body.page-simple .page-content { padding-block:clamp(2.5rem,5vw,4rem) clamp(4rem,8vw,7rem); }
body.page-simple .page-content .measure { max-width:68ch; }
body.page-simple .page-content p { margin:0 0 1.4rem;line-height:1.7;color:color-mix(in srgb,var(--ink) 86%,var(--paper)); }
body.page-simple .page-content h2 { font-size:clamp(1.5rem,1rem + 1.5vw,2.1rem);font-weight:800;letter-spacing:-.025em;margin:2rem 0 1rem; }
body.page-simple .page-content a { color:var(--maroon);font-weight:600; }
body.page-simple .foot-legal a { color:inherit;text-decoration:none; }
body.page-simple .foot-legal a:hover { color:var(--coral); }
@media (max-width:820px) {
  body.page-simple .foot-top { grid-template-columns:1fr 1fr; }
}

/* ==================================================================
   Category archive (added 2026-10) — category.php's scope. Header/nav
   chrome comes from .page-post (the ink header, shared with News/
   Thinking/single posts — saa_body_classes() adds it alongside this
   scope); the card grid itself is .page-thinking's .think-grid/.card,
   also added alongside. Only the title/description header needs its
   own rule here, and it's the exact page-simple .page-head values
   above — copied rather than coupling this to the `page-simple` name.
   ================================================================== */
body.page-category .page-head { padding-block:clamp(3rem,6vw,4.5rem) clamp(1.5rem,3vw,2.5rem);border-bottom:1px solid color-mix(in srgb,var(--ink) 14%,transparent); }
body.page-category .page-head h1 { font-weight:800;font-size:clamp(2.4rem,1.5rem + 3vw,4rem);line-height:1.02;letter-spacing:-.035em;margin:0 0 1.25rem; }
body.page-category .page-head .intro { max-width:58ch;margin:0;font-size:1.15rem;color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }
body.page-category .page-head .intro p { margin:0 0 .75rem; }
body.page-category .page-head .intro p:last-child { margin-bottom:0; }

/* ==================================================================
   Post templates (opinion-post.html, event-news-post.html,
   showcase-post.html) — folded in from each file's own inline <style>
   block, which duplicated the site's tokens/fonts instead of using
   this stylesheet. All three now link assets/css/style.css like every
   other page.

   Deliberately DIFFERENT colouring, preserved on purpose: post pages
   use an ink-ground header (not the paper-ground header every other
   page uses), so the brand mark is paper-fill (not ink-fill) and the
   tagline is coral (not maroon — maroon-on-ink fails contrast, coral
   passes at 6.56:1). Do not "fix" these to match the rest of the site;
   this is the same ink/paper-fill swap the footer already does
   everywhere else (see .foot-brand .brand-mark above).

   Brand mark + tagline sized to match the main header exactly (26px
   mark, .6rem tagline) so there's no visual jump navigating from a
   normal page onto a post page.

   `.page-post` = shared chrome (header/footer/meta/title/dek/byline).
   `.page-article` = opinion-post.html + event-news-post.html (byte-
   identical layouts). `.page-showcase` = showcase-post.html's gallery
   layout. Typographic floor applied throughout: image captions/credits
   (figcaption, .masonry-caption, .lightbox-caption, .gallery-caption)
   are the only sub-1rem-eligible exceptions; everything else bumped to
   1rem from the original inline values (full list in the chat diff for
   this change). Footer copyright text now comes from the shared
   .foot-legal rule (site-wide, already within the exception band).
   ================================================================== */

.page-post { background:var(--paper); color:var(--ink); }
.page-post img { max-width:100%;display:block; }

.page-post header.site-header { background:var(--ink); color:var(--paper); padding-block:1.25rem; position:sticky; top:0; z-index:50; }
.page-post .header-inner { max-width:1200px;margin:0 auto;padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:2rem; }
.page-post .menu-btn { color:var(--paper); }
.page-post .header-inner .brand { display:block;line-height:1;text-decoration:none; }
.page-post .header-inner .brand-mark { display:block;height:26px;width:auto;fill:var(--paper); }
.page-post .brand-tagline { display:block;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--coral);font-weight:600;margin-top:.4rem; }
.page-post nav.primary-nav { display:flex;align-items:center;gap:1.75rem;font-size:1rem;font-weight:600; }
.page-post nav.primary-nav a { text-decoration:none; }
.page-post nav.primary-nav a:hover { color:var(--coral); }
.page-post nav#primary-nav .nav-join { display:none; }
.page-post .header-actions { display:flex;align-items:center;gap:1rem; }
.page-post .search-toggle { display:flex;align-items:center;background:rgba(242,236,235,.08);border:1px solid rgba(242,236,235,.25);border-radius:4px;padding:.45rem .75rem;gap:.5rem; }
.page-post .search-toggle input { background:transparent;border:none;outline:none;color:var(--paper);font-family:"Archivo",system-ui,sans-serif;font-size:1rem;font-weight:500;width:140px; }
.page-post .search-toggle input::placeholder { color:rgba(242,236,235,.55); }
.page-post .search-btn { display:flex;align-items:center;justify-content:center;flex-shrink:0;background:none;border:none;padding:0;color:var(--paper);opacity:.8;cursor:pointer; }
.page-post .search-btn:hover { opacity:1;color:var(--coral); }
.page-post .join-btn { background:var(--coral);color:var(--ink);font-weight:700;text-decoration:none;padding: .2rem 1.5rem; border-radius: 2px; }

.page-post main { max-width:720px;margin:0 auto;padding:3.5rem 1.5rem 5rem; }
/* Thinking/News reuse .page-post for header+footer only — their <main> is
   full-width, multi-section content (not a single 720px article column),
   so the rule above is neutralised here. */
body.page-thinking.page-post main, body.page-news.page-post main { max-width:none;margin:0;padding:0; }
.page-post .post-meta-top { display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;font-size:1rem; }
.page-post .kicker { display:inline;margin:0;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--maroon);text-decoration:none; }
.page-post .meta-dot { color:var(--maroon);opacity:.5;  font-size: 2rem;}
.page-post .post-date { color:var(--maroon);font-weight:600; }

.page-post h1.post-title { font-family:"Archivo",system-ui,sans-serif;font-weight:700;font-size:clamp(2.1rem,5vw,3.2rem);line-height:1.08;letter-spacing:-.03em;text-wrap:balance;margin-bottom:1rem; }
.page-post p.post-dek { font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;font-size:1.35rem;color:var(--maroon);line-height:1.4;margin-bottom:2rem;max-width:60ch; }

.page-post .byline-row { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;border-top:1px solid rgba(24,24,24,.12);border-bottom:1px solid rgba(24,24,24,.12);padding:1rem 0;margin-bottom:2rem; }
.page-post .byline { font-size:1rem;font-weight:600; }
.page-post .byline span { display:block;font-weight:500;font-size:1rem;color:var(--maroon);margin-top:.15rem; }
.page-post .agent-badge { display:inline-flex;align-items:center;gap:.4rem;background:var(--pink);color:var(--maroon);font-size:1rem;font-weight:600;padding:.4rem .8rem;border-radius:4px;text-decoration:none; }
.page-post .agent-badge svg { flex-shrink:0; }

.page-post .post-body { font-size:1.15rem;line-height:1.7; }
.page-post .post-body p { margin-bottom:1.5rem;max-width:70ch; }

/* Footer: post pages now use the real site footer (.site-foot, shared
   unscoped rules above) instead of a custom minimal one — see chat. */

@media (max-width:820px) {
  /* Hamburger reveals nav#primary-nav as the shared slide-in panel
     (see "Shared mobile navigation" above) — Join stays visible in the
     top bar as the primary CTA; search drops to its own full-width row
     beneath, rather than living inside the slide-in panel. */
  .page-post .header-inner { flex-wrap:wrap; }
  .page-post .header-actions { display:contents; }
  .page-post .header-inner .brand { order:1; }
  .page-post .join-btn { display:none; }
  .page-post .menu-btn { order:2; }
  .page-post .search-toggle { order:3; flex-basis:100%; }
  .page-post nav#primary-nav .nav-join {
    display:inline-block; background:var(--coral); color:var(--ink);
    margin-top:.5rem; padding:.6rem 1.15rem; border-radius:2px;
    font-size:1rem; font-weight:700; text-decoration:none;
  }
  .page-post nav#primary-nav .nav-join:hover { background:var(--paper); }
  .page-post nav#primary-nav .nav-join::after { display:none; }
  .page-post .search-toggle input { flex:1; width:auto; }
}
@media (max-width:720px) {
  .page-post main { padding:2.5rem 1.25rem 3.5rem; }
}

/* ---------- .page-article: opinion-post.html + event-news-post.html ---------- */
.page-article figure.post-image { margin:2.5rem 0; }
.page-article figure.post-image img { border-radius:2px; }
.page-article figcaption { font-size:.9rem;color:var(--maroon);margin-top:.6rem;font-weight:500; }

/* Parity fix: legacy imported posts embed images as classic-editor
   bare <img class="aligncenter|alignleft|alignright size-full …">
   directly in post_body, not figure.post-image — give them the same
   visual treatment (radius, spacing) plus real support for WP's
   alignment classes, which this stylesheet never styled before
   (single.php only ever rendered figure.post-image itself). CSS-only,
   doesn't touch stored content. */
.page-article .post-body img.size-full,
.page-article .post-body img.size-large,
.page-article .post-body img.aligncenter,
.page-article .post-body img.alignnone { display:block;max-width:100%;height:auto;border-radius:2px;margin:2.5rem auto; }
.page-article .post-body img.alignleft { float:left;margin:.4rem 1.75rem 1.25rem 0;max-width:50%; }
.page-article .post-body img.alignright { float:right;margin:.4rem 0 1.25rem 1.75rem;max-width:50%; }
.page-article .post-body::after { content:"";display:table;clear:both; }

.page-article .post-body a { color:var(--maroon);text-decoration:underline; }
.page-article .post-body h2 { font-family:"Archivo",system-ui,sans-serif;font-weight:700;font-size:1.6rem;letter-spacing:-.02em;margin:2.5rem 0 1rem; }
.page-article blockquote { font-family:"Fraunces",Georgia,serif;font-style:italic;font-size:1.5rem;line-height:1.45;color:var(--ink);border-left:3px solid var(--coral);padding-left:1.5rem;margin:2.5rem 0;max-width:55ch; }
.page-article .blockquote-attribution { margin-top:-1rem;font-size:1rem;color:var(--maroon); }

.page-article .post-footer-meta, .page-showcase .post-footer-meta { margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(24,24,24,.12);display:flex;flex-wrap:wrap;gap:.6rem;align-items:center; }
.page-article .cat-pill, .page-showcase .cat-pill { font-size:1rem;font-weight:600;color:var(--maroon);background:var(--white);border:1px solid rgba(108,56,56,.25);padding:.35rem .85rem;border-radius:20px;text-decoration:none; }
.page-article .cat-pill:hover, .page-showcase .cat-pill:hover { background:var(--pink); }
.page-showcase .post-footer-meta { max-width:1200px;margin-left:auto;margin-right:auto; }
.post-footer-label { flex-basis:100%;margin:0 0 .35rem;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--maroon); }

.page-article section.related { background:var(--white);padding:4rem 2rem; }
.page-article .related-inner { max-width:1080px;margin:0 auto; }
.page-article .related-head { display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid rgba(24,24,24,.12);padding-bottom:.85rem;margin-bottom:2rem; }
.page-article .related-head h2 { font-weight:700;font-size:1.9rem;letter-spacing:-.02em; }
.page-article .related-head a { font-size:1rem;font-weight:600;color:var(--maroon);text-decoration:none; }
.page-article .related-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.75rem; }
.page-article .related-card { background:var(--paper);border-radius:4px;overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s var(--ease); }
.page-article .related-card:hover { transform:translateY(-4px);box-shadow:0 18px 42px -20px rgba(24,24,24,.4); }
.page-article .related-card img { aspect-ratio:4/3;object-fit:cover; }
.page-article .related-card-body { padding:1.25rem; }
.page-article .related-cat { font-size:1rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--maroon);margin-bottom:.5rem;display:block; }
.page-article .related-card-body h3 { font-size:1.1rem;font-weight:700;line-height:1.3;letter-spacing:-.01em; }

/* ---------- .page-showcase: showcase-post.html ---------- */
.page-showcase main { padding-bottom:3rem; }
.page-showcase section.gallery { background:var(--white);padding:3rem 1.5rem 4rem; }
.page-showcase .gallery-head { max-width:720px;margin:0 auto 2rem; }
.page-showcase .gallery-head h2 { font-weight:700;font-size:1.5rem;letter-spacing:-.02em; }
.page-showcase .gallery-head p { color:var(--maroon);font-size:1rem;margin-top:.4rem; }

.page-showcase .masonry { max-width:1200px;margin:0 auto;column-count:2;column-gap:1.25rem; }
.page-showcase .masonry-item { break-inside:avoid;margin-bottom:1.25rem;cursor:zoom-in;border-radius:3px;overflow:hidden;position:relative; }
.page-showcase .masonry-item img { width:100%;display:block;transition:transform .5s var(--ease); }
.page-showcase .masonry-item:hover img { transform:scale(1.02); }
.page-showcase .masonry-caption { font-size:.85rem;color:var(--maroon);font-weight:500;margin-top:.5rem;line-height:1.4; }
.page-showcase .gallery-caption { max-width:1200px;margin:1.5rem auto 0;text-align:center;font-size:.85rem;color:var(--maroon); }
@media (max-width:640px) { .page-showcase .masonry { column-count:1; } }

.page-showcase .lightbox { display:none;position:fixed;inset:0;background:rgba(24,24,24,.94);z-index:100;align-items:center;justify-content:center;padding:2rem; }
.page-showcase .lightbox.open { display:flex; }
.page-showcase .lightbox img { max-width:90vw;max-height:82vh;object-fit:contain;border-radius:3px;background:#fff;padding:1rem;box-sizing:border-box; }
.page-showcase .lightbox-caption { color:var(--paper);text-align:center;margin-top:1rem;font-size:1rem;max-width:60ch; }
.page-showcase .lightbox-close, .page-showcase .lightbox-prev, .page-showcase .lightbox-next { position:absolute;background:rgba(242,236,235,.1);border:1px solid rgba(242,236,235,.3);color:var(--paper);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer; }
.page-showcase .lightbox-close:hover, .page-showcase .lightbox-prev:hover, .page-showcase .lightbox-next:hover { background:var(--coral);color:var(--ink);border-color:var(--coral); }
.page-showcase .lightbox-close { top:1.5rem;right:1.5rem; }
.page-showcase .lightbox-prev { left:1.5rem;top:50%;transform:translateY(-50%); }
.page-showcase .lightbox-next { right:1.5rem;top:50%;transform:translateY(-50%); }
@media (max-width:640px) {
  .page-showcase .lightbox-prev, .page-showcase .lightbox-next { display:none; }
}

/* ---------- Members directory (page-members.php) ---------- */
.page-members .directory-head { padding-block: clamp(3rem,6vw,5rem) clamp(1.5rem,3vw,2.5rem); }
.page-members .directory-head h1 { font-weight:800; font-size:clamp(2.4rem,1.5rem + 3vw,4rem); line-height:1.02; letter-spacing:-.035em; margin:0 0 1.25rem; text-wrap:balance; }
.page-members .directory-head .intro { max-width:62ch; margin:0; font-size:1.2rem; color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }
.page-members .directory-wrap { padding-bottom:clamp(4rem,8vw,6rem); }
.page-members .directory { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr)); gap:1.5rem; }
.page-members .agency-card { display:flex; flex-direction:column; background:#fff; border-radius:4px; overflow:hidden; text-decoration:none; color:var(--ink); transition:transform .35s var(--ease),box-shadow .35s var(--ease); }
.page-members .agency-card:hover { transform:translateY(-4px); box-shadow:0 18px 42px -20px rgba(24,24,24,.4); }
.page-members .agency-logo { display:flex; align-items:center; justify-content:center; height:120px; padding:1.5rem; border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent); }
.page-members .agency-logo img { max-height:56px; max-width:82%; width:auto; object-fit:contain; }
.page-members .agency-logo-ph { font:700 1.05rem/1.2 "Archivo",system-ui,sans-serif; letter-spacing:-.01em; color:color-mix(in srgb,var(--ink) 45%,var(--paper)); text-align:center; }
.page-members .agency-body { padding:1.4rem 1.5rem 1.6rem; display:flex; flex-direction:column; gap:.7rem; flex:1; }
.page-members .agency-body h2 { font-size:1.15rem; font-weight:800; letter-spacing:-.02em; margin:0; }
.page-members .agency-desc { margin:0; font-size:.95rem; line-height:1.5; color:color-mix(in srgb,var(--ink) 74%,#fff); }
.page-members .agency-tags { display:flex; flex-wrap:wrap; gap:.4rem; }
.page-members .agency-tags span { font-size:.72rem; letter-spacing:.03em; text-transform:uppercase; color:var(--maroon); background:var(--paper); border:1px solid color-mix(in srgb,var(--maroon) 20%,transparent); border-radius:20px; padding:.2rem .6rem; }
.page-members .agency-link { margin-top:auto; color:var(--maroon); font-weight:600; font-size:.9rem; }
.page-members .agency-card:hover .agency-link { text-decoration:underline; }
.page-members .agency-links { margin-top:auto; display:flex; flex-direction:column; gap:.3rem; padding-top:.2rem; }
.page-members .agency-links a { margin-top:0; color:var(--maroon); font-weight:600; font-size:.9rem; text-decoration:none; }
.page-members .agency-links a:hover { text-decoration:underline; }

/* ---------- Agency profile (category.php, body.page-agency) ---------- */
.page-agency .agency-top { padding-block:1.5rem 0; }
.page-agency .back-link { color:var(--maroon); font-weight:600; font-size:.9rem; text-decoration:none; }
.page-agency .back-link:hover { text-decoration:underline; }
.page-agency .agency-profile { display:grid; grid-template-columns:300px 1fr; gap:clamp(2rem,5vw,4rem); align-items:start; padding-block:clamp(2rem,4vw,3rem) clamp(3rem,6vw,4.5rem); }
.page-agency .agency-id { display:flex; flex-direction:column; gap:1rem; position:sticky; top:6rem; }
.page-agency .agency-logo-lg { background:#fff; border-radius:4px; height:180px; display:flex; align-items:center; justify-content:center; padding:2rem; border:1px solid color-mix(in srgb,var(--ink) 8%,transparent); }
.page-agency .agency-logo-lg img { max-height:80px; max-width:80%; width:auto; object-fit:contain; }
.page-agency .agency-logo-ph { font:700 1.2rem/1.2 "Archivo",system-ui,sans-serif; letter-spacing:-.01em; color:color-mix(in srgb,var(--ink) 45%,var(--paper)); text-align:center; }
.page-agency .member-badge { align-self:flex-start; display:inline-flex; align-items:center; gap:.4rem; background:var(--ink); color:var(--paper); font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:.4rem .75rem; border-radius:2px; }
.page-agency .member-badge::before { content:""; width:8px; height:8px; border-radius:1px; background:var(--coral); }
.page-agency .agency-intro h1 { font-weight:800; font-size:clamp(2.4rem,1.6rem + 2.6vw,3.6rem); line-height:1.02; letter-spacing:-.035em; margin:.4rem 0 1rem; }
.page-agency .agency-intro .lead { max-width:60ch; margin:0 0 1.4rem; font-size:1.2rem; line-height:1.55; color:color-mix(in srgb,var(--ink) 82%,var(--paper)); }
.page-agency .agency-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.75rem; }
.page-agency .agency-tags span { font-size:.72rem; letter-spacing:.03em; text-transform:uppercase; color:var(--maroon); background:#fff; border:1px solid color-mix(in srgb,var(--maroon) 20%,transparent); border-radius:20px; padding:.25rem .7rem; }
.page-agency .agency-meta { list-style:none; margin:0 0 1.75rem; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.9rem 2rem; max-width:640px; }
.page-agency .agency-meta li { display:flex; flex-direction:column; gap:.15rem; font-size:1rem; }
.page-agency .agency-meta > li > span { font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--maroon); }
.page-agency .agency-meta a { color:var(--ink); text-decoration:none; font-weight:600; }
.page-agency .agency-meta a:hover { color:var(--maroon); }
.page-agency .agency-work-h { font-weight:800; font-size:clamp(1.6rem,1rem + 1.9vw,2.2rem); letter-spacing:-.03em; margin:0 0 2rem; border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent); padding-bottom:.85rem; }
@media (max-width:760px){ .page-agency .agency-profile { grid-template-columns:1fr; } .page-agency .agency-id { position:static; flex-direction:row; align-items:center; } .page-agency .agency-logo-lg { height:120px; flex:1; } }

/* Newsletter signup confirmation (footer) */
.news-msg { margin:14px 0 0; font-size:18px; line-height:1.4; font-weight:600; color:#F2ECEB; animation:saa-fade-up .55s var(--ease,ease) both; }
@keyframes saa-fade-up { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { .news-msg { animation:none; } }

/* Home "From the membership" — images on the article cards (image-first) */
body.page-home .article-thumb { display:block; margin:.35rem 0 1.1rem; border-radius:3px; overflow:hidden; }
body.page-home .article-thumb img { display:block; width:100%; height:auto; }
body.page-home .article.sm .article-thumb img { aspect-ratio:16 / 9; object-fit:cover; }
/* Clamp excerpts to even up variable lengths */
body.page-home .article p { display:-webkit-box; -webkit-line-clamp:3; line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
