/* =========================================================
   INTELLIGENT QUOTES — editorial author page
   System: brick red + warm cream + warm ink
   Type: Cormorant Garamond (display/reading) + Inter Tight (UI)
   Baked defaults: classic hero, ivory paper, outline tags, brick-red accent.
========================================================== */
:root{
  --red:        #BE2A1F;
  --red-deep:   #9E2017;
  --red-soft:   rgba(190, 42, 31, 0.10);
  --cream:      #F6EDDF;
  --paper:      #FBF7EE;   /* ivory */
  --panel:      #FFFBF3;   /* ivory */
  --ink:        #241C17;
  --ink-soft:   #6A5C51;
  --ink-faint:  #9A8B7D;
  --line:       rgba(36, 28, 23, 0.13);
  --line-soft:  rgba(36, 28, 23, 0.07);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans:  "Inter Tight", system-ui, sans-serif;
  --maxw: 1240px;
  --ease: cubic-bezier(.22,.61,.36,1);
}
*{ box-sizing: border-box; }
html,body{ margin:0; padding:0; }
body{
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a{ color: inherit; text-decoration: none; }

/* ---------- shared label / rule ---------- */
.eyebrow{
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.rule{ height:1px; background: var(--line); border:0; margin:0; }

/* =========================================================
   HEADER
========================================================== */
.site-header{
  background: var(--panel);
  color: var(--ink);
  border-bottom: 2px solid var(--red);
}
.site-header__inner{
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 22px 32px;
  display: flex;
  align-items: center;
  gap: 32px;
}
.brand{ display:inline-flex; align-items:center; gap:6px; min-width:0; }
.brand__lion{
  width:52px; height:52px; flex:0 0 auto;
  -webkit-mask:url("/assets/lion.png") center/contain no-repeat;
          mask:url("/assets/lion.png") center/contain no-repeat;
  background: var(--red);
}
.brand__words{ line-height:1; min-width:0; }
.brand__name{
  display:block; font-family:var(--serif); font-weight:600; font-size:34px;
  letter-spacing:-.005em; white-space:nowrap;
}
.brand__name em{ font-style:italic; color:var(--red); }
.brand__tag{
  display:block; margin-top:6px; font-family:var(--sans);
  font-size:9.5px; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-faint); white-space:nowrap;
}
.nav{
  display: flex;
  align-items: center;
  gap: 30px;
  margin-left: auto;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 15.5px;
}
.nav a{
  position: relative;
  color: var(--ink-soft);
  padding: 4px 0;
  transition: color .25s var(--ease);
}
.nav a::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-2px;
  height: 1.5px; background: var(--red);
  transform: scaleX(0); transform-origin: left;
  transition: transform .3s var(--ease);
}
.nav a:hover{ color: var(--red); }
.nav a:hover::after, .nav a[aria-current]::after{ transform: scaleX(1); }
.nav a[aria-current]{ color: var(--red); }

.search{
  position: relative;
  display: flex;
  align-items: center;
}
.search input{
  font-family: var(--sans);
  font-size: 14.5px;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 9px 16px 9px 38px;
  width: 200px;
  outline: none;
  transition: width .35s var(--ease), box-shadow .25s var(--ease), background .25s;
}
.search input::placeholder{ color: var(--ink-faint); }
.search input:focus{ width: 244px; box-shadow: 0 0 0 3px var(--red-soft); border-color: var(--red); }
.search__icon{
  position:absolute; left:14px; top:50%; transform: translateY(-50%);
  width:13px; height:13px; border:1.6px solid var(--ink-soft); border-radius:50%;
  pointer-events:none;
}
.search__icon::after{
  content:""; position:absolute; right:-5px; bottom:-4px; width:6px; height:1.6px;
  background: var(--ink-soft); transform: rotate(45deg); border-radius:1px;
}

@media (max-width: 1080px){
  .brand__tag{ display:none; }
}
@media (max-width: 820px){
  .brand__tag{ display:none; }
  .brand__lion{ width:44px; height:44px; }
  .brand__name{ font-size:29px; }
  .site-header__inner{ gap:16px; }
}


/* =========================================================
   LAYOUT
========================================================== */
.layout{
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 40px 32px 64px;
  display: grid;
  grid-template-columns: 248px minmax(0,1fr) 280px;
  gap: 44px;
  align-items: start;
}
.col-center{ min-width: 0; }

/* sidebar shared */
.aside-block{ margin-bottom: 38px; }
.aside-head{
  display:flex; align-items:baseline; justify-content:space-between;
  margin-bottom: 14px;
}
.aside-head h2{
  font-family: var(--serif);
  font-weight: 600;
  font-size: 21px;
  margin: 0;
  letter-spacing: -0.005em;
}
.aside-head + .rule{ display:none; }

/* =========================================================
   YOUR TRAIL
========================================================== */
.trail{ display:flex; flex-direction:column; }
.trail__step{
  display:block;
  position: relative;
  padding: 9px 12px 9px 14px;
  border-left: 2px solid var(--line);
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.2;
  color: var(--ink-soft);
  transition: color .2s var(--ease), border-color .25s var(--ease), background .2s;
}
.trail__step .kind{
  font-family: var(--sans);
  font-size: 10.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color: var(--ink-faint);
  display:block; margin-top: 2px;
}
.trail a.trail__step:hover{
  color: var(--red); border-color: var(--red);
  background: linear-gradient(90deg, var(--red-soft), transparent);
}
.trail a.trail__step:hover .kind{ color: var(--red); }
.trail__step--here{
  border-left-color: var(--red);
  color: var(--ink);
  font-weight: 600;
}
.trail__step--here .kind{ color: var(--red); }
.trail__note{
  font-family: var(--sans);
  font-size: 11.5px;
  color: var(--ink-faint);
  margin-top: 12px;
  padding-left: 14px;
  line-height: 1.4;
}

/* =========================================================
   LINK LISTS (what links here / browse)
========================================================== */
.linklist{ list-style:none; margin:0; padding:0; }
.linklist li{ border-top: 1px solid var(--line-soft); }
.linklist li:first-child{ border-top: 0; }
.linklist a{
  display:flex; align-items:baseline; gap:10px;
  padding: 10px 0;
  font-family: var(--serif);
  font-size: 18px;
  color: var(--ink);
  transition: color .2s var(--ease), padding-left .25s var(--ease);
}
.linklist .tag{
  font-family: var(--sans);
  font-size: 10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color: var(--red);
  background: var(--red-soft);
  padding: 3px 7px; border-radius: 4px;
  flex-shrink:0; line-height:1.2;
  align-self:center;
}
.linklist a:hover{ color: var(--red); padding-left: 6px; }

.corpus a{
  justify-content: space-between;
}
.corpus .count{
  font-family: var(--sans);
  font-size: 13px; font-weight:600;
  color: var(--ink-faint);
  background: rgba(36,28,23,.05);
  border-radius: 999px;
  padding: 2px 10px;
  transition: background .2s, color .2s;
}
.corpus a:hover .count{ background: var(--red); color: var(--cream); }

/* =========================================================
   QUOTE CARD (from embed.html, themed)
========================================================== */
.qcard{
  width: 100%;
  min-height: 340px;
  background: var(--red);
  color: var(--cream);
  font-family: var(--serif);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  container-type: inline-size;
  container-name: qcard;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 56px 40px 44px;
  border-radius: 6px;
  box-shadow: 0 22px 46px -24px rgba(158,32,23,.6);
}
/* faint watermark quote mark, centred behind text */
.qcard__mark{
  position:absolute; z-index:0; top:50%; left:50%;
  transform: translate(-50%, -46%);
  font-family: var(--serif); font-weight:700; font-style:normal;
  font-size: 420px; line-height:1;
  color: rgba(246,237,223,.07);
  user-select:none; pointer-events:none;
}
/* visible decorative opening quote */
.qcard__glyph{
  position:relative; z-index:1;
  font-family: var(--serif); font-style:italic; font-weight:600;
  font-size: 74px; line-height:.5; height:.42em;
  color: rgba(246,237,223,.6);
  margin-bottom: 20px;
}
.qcard__quote{
  position:relative; z-index:1; margin:0;
  font-style:italic; font-weight:500;
  font-size: 34px; line-height:1.26; letter-spacing:-0.008em;
  max-width: 30ch;
  text-wrap: balance;
}
.qcard__foot{
  position:relative; z-index:1;
  margin-top: 30px;
  display:flex; flex-direction:column; align-items:center; gap:12px;
  font-family: var(--sans);
}
.qcard__foot::before{
  content:""; width:44px; height:1px;
  background: rgba(246,237,223,.5);
}
.qcard__author{
  font-size: 13px; letter-spacing:.26em; text-transform:uppercase; font-weight:600;
}
.qcard__source{
  font-size: 11px; letter-spacing:.2em; text-transform:uppercase; font-weight:400;
  color: rgba(246,237,223,.6);
}

/* ---------- author card variant (reuses .qcard shell) ---------- */
.qcard--author{ min-height: 300px; }
.qcard__name{
  position:relative; z-index:1; margin:0;
  font-family: var(--serif); font-weight:600;
  font-size: 52px; line-height:1.02; letter-spacing:-0.015em;
  text-wrap: balance;
}
.qcard__title{
  position:relative; z-index:1; margin:12px 0 0;
  font-family: var(--sans); font-size:12px; font-weight:600;
  letter-spacing:.26em; text-transform:uppercase;
  color: rgba(246,237,223,.72);
}
.qcard__bio{
  position:relative; z-index:1; margin:24px 0 0;
  font-family: var(--serif); font-style:italic; font-weight:500;
  font-size: 25px; line-height:1.34; letter-spacing:-0.006em;
  max-width: 34ch; text-wrap: balance;
}
.qcard--author .qcard__mark{
  top: -6px; right: auto; left: 34px; transform: none;
  font-size: 300px; color: rgba(246,237,223,.11);
}

/* =========================================================
   ACTION BAR
========================================================== */
.actionbar{
  display:flex; align-items:stretch;
  border:1px solid var(--line);
  border-radius: 6px;
  margin-top: 16px;
  background: var(--panel);
  overflow:hidden;
}
.action{
  flex:1;
  display:flex; align-items:center; justify-content:center; gap:9px;
  padding: 13px 14px;
  font-family: var(--sans); font-size:14px; font-weight:500;
  color: var(--ink); cursor:pointer;
  background: transparent; border:0; border-left:1px solid var(--line);
  transition: background .2s var(--ease), color .2s var(--ease);
}
.action:first-child{ border-left:0; }
.action .gl{ width:15px; height:15px; display:inline-block; position:relative; flex-shrink:0; }
.action:hover{ background: var(--red); color: var(--cream); }
.action:active{ background: var(--red-deep); }
/* glyphs */
.gl-share{ width:16px; height:16px; }

/* =========================================================
   META ROWS
========================================================== */
.meta{ margin-top: 30px; display:flex; flex-direction:column; gap:0; }
.meta__row{
  display:flex; align-items:flex-start; gap:18px;
  padding: 15px 0;
  border-top: 1px solid var(--line-soft);
}
.meta__row:first-child{ border-top:0; }
.meta__label{
  flex: 0 0 118px;
  font-family: var(--sans); font-size:11px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color: var(--ink-faint);
  padding-top: 5px;
}
.meta__val{ font-family: var(--serif); font-size:20px; }
.verified{
  display:inline-flex; align-items:center; gap:9px;
  font-family: var(--sans); font-size:14px; font-weight:500; color: var(--ink);
}
.verified .check{
  width:18px; height:18px; border-radius:50%;
  background: var(--red); color: var(--cream);
  display:inline-flex; align-items:center; justify-content:center;
  font-size:11px; flex-shrink:0;
}
.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{
  font-family: var(--sans); font-size:13.5px; font-weight:500;
  padding: 6px 15px; border-radius: 999px;
  border: 1px solid var(--red);
  color: var(--red);
  background: transparent;
  cursor:pointer;
  transition: background .22s var(--ease), color .22s var(--ease), transform .22s var(--ease);
}
.chip:hover{ background: var(--red); color: var(--cream); transform: translateY(-1px); }
.meta__source{ color: var(--ink); transition: color .2s; position:relative; }
.meta__source:hover{ color: var(--red); }
/* category heading above quote card */
.crumb{
  margin: 0 0 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.crumb__label{
  display:block;
  font-family: var(--sans); font-size:11.5px; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color: var(--red);
  margin-bottom: 7px;
}
.crumb__path{
  font-family: var(--serif); font-weight:600; font-size:30px;
  letter-spacing:-0.01em; color: var(--ink);
  display:inline-flex; align-items:center; gap:.5em;
}
.crumb__path a{ transition: color .2s var(--ease); }
.crumb__path a:hover{ color: var(--red); }
.crumb__path .arr{ color: var(--red); font-family: var(--sans); font-weight:400; font-size:.7em; position:relative; top:1px; }
/* meta plain-text value + breadcrumb value */
.meta__val--text{ font-family: var(--serif); font-size:19px; line-height:1.4; color:#2D241D; }
.meta__breadcrumb{ font-family: var(--serif); font-size:20px; display:inline-flex; align-items:baseline; gap:.4em; }
.meta__breadcrumb .arr{ color: var(--red); font-family: var(--sans); font-size:.8em; }
/* meta phrase list (themes / applications) — one link per line */
.phrases{ display:flex; flex-direction:column; gap:7px; }
.phrases a{
  font-family: var(--serif); font-size:19px; line-height:1.3;
  color: var(--ink); width:fit-content;
  box-shadow: inset 0 -1px 0 rgba(190,42,31,.28);
  transition: color .2s var(--ease), box-shadow .2s var(--ease);
}
.phrases a:hover{ color: var(--red); box-shadow: inset 0 -2px 0 var(--red); }

/* =========================================================
   ESSAY
========================================================== */
.essay{
  margin-top: 30px;
  font-family: var(--serif);
  font-size: 21px;
  line-height: 1.62;
  color: #2D241D;
  text-wrap: pretty;
}
.essay p{ margin: 0 0 1em; }
.essay p:last-child{ margin-bottom: 0; }
.essay p:first-of-type::first-letter{
  font-weight: 600; font-size: 3.1em; line-height: .82;
  float: left; padding: 6px 12px 0 0; color: var(--red);
}
.essay__link{
  color: var(--red);
  box-shadow: inset 0 -1px 0 rgba(190,42,31,.4);
  transition: box-shadow .2s var(--ease);
}
.essay__link:hover{ box-shadow: inset 0 -2px 0 var(--red); }
.essay__link--ext{ white-space: nowrap; }
.ext-ico{
  display: inline-block;
  width: 0.66em; height: 0.66em;
  margin-left: 0.22em;
  vertical-align: 0.02em;
  opacity: 0.85;
}

/* =========================================================
   CENTER SECTIONS (selected works / quotes)
========================================================== */
.sec-head{
  font-family: var(--sans); font-size:12px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color: var(--ink);
  margin: 40px 0 0; padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}
/* selected works — form + major/minor tiers */
.works{ margin-top: 0; }
.work{ position:relative; padding: 18px 0; border-top: 1px solid var(--line-soft); }
.work:first-child{ border-top: 0; }
.work--major{ padding-left: 20px; }
.work--major::before{
  content:""; position:absolute; left:0; top:18px; bottom:18px;
  width:3px; background: var(--red); border-radius:2px;
}
.work__meta{
  display:flex; align-items:center; gap:9px; flex-wrap:wrap;
  font-family: var(--sans); font-size:11px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color: var(--ink-faint);
  margin-bottom: 6px;
}
.work__badge{
  font-family: var(--sans); font-size:10px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color: var(--red);
  background: var(--red-soft); padding:2px 8px; border-radius:4px;
}
.work__title{
  font-family: var(--serif); font-weight:600; font-size:23px; letter-spacing:-0.005em;
  color: var(--ink); display:inline-block;
  transition: color .2s var(--ease);
}
a.work__title:hover{ color: var(--red); }
.work__desc{
  font-family: var(--serif); font-size:19px; line-height:1.45;
  color: var(--ink-soft); margin: 4px 0 0; text-wrap: pretty;
}

/* quotes — with provenance badges */
.quotelist{ display:flex; flex-direction:column; gap:0; }
.quote{ padding: 16px 0; border-top: 1px solid var(--line-soft); }
.quote:first-child{ border-top: 0; }
.quote__text{
  display:block;
  font-family: var(--serif); font-style:italic; font-size:21px; line-height: 1.4;
  color: var(--ink);
  transition: color .2s var(--ease), padding-left .25s var(--ease);
}

/* New */
.quote__text p { display:inline; padding: 0; }

.quote__text:hover{ color: var(--red); padding-left: 6px; }
.prov{
  display:inline-flex; align-items:center; gap: 8px;
  margin-top: 0px; /* was: 10px */
  font-family: var(--sans); font-size:12px; font-weight:600; letter-spacing:.03em;
}
.prov__ic{
  width:15px; height:15px; border-radius:50%; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:9px; font-weight:700; line-height:1;
}
.prov__note{ color: var(--ink-faint); font-weight:500; letter-spacing:0; }
.prov--primary{ color: var(--red); }
.prov--primary .prov__ic{ background: var(--red); color: var(--cream); }
.prov--secondary{ color: var(--ink-soft); }
.prov--secondary .prov__ic{ background: transparent; border:1.5px solid var(--ink-faint); }
.prov--disputed{ color: #A8731C; }
.prov--disputed .prov__ic{ background: transparent; border:1.5px solid #C08A2E; color:#A8731C; }

/* =========================================================
   EXPLORE TOPIC CARD
========================================================== */
.explore{
  margin-top: 34px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 26px 28px 8px;
  background: var(--panel);
  display:block;
  transition: box-shadow .3s var(--ease), border-color .3s;
}
.explore:hover{ border-color: var(--red); }
.explore__hd{ padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.explore__eyebrow{
  font-family: var(--sans); font-size:11.5px; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color: var(--red);
  margin: 0 0 7px;
}
.explore__name{
  font-family: var(--serif); font-weight:600; font-size:30px; letter-spacing:-0.01em;
  margin: 0; display:inline-flex; align-items:center; gap:.4em;
}
.explore__name a{ transition: color .2s var(--ease); }
.explore__name a:hover{ color: var(--red); }
.explore__name .arr{ color: var(--red); font-family: var(--sans); font-weight:400; font-size:.62em; position:relative; top:1px; transition: transform .3s var(--ease); }
.explore:hover .explore__name .arr{ transform: translateX(5px); }
.explore__stats{
  font-family: var(--sans); font-size:14px; color: var(--ink-soft);
  margin: 12px 0 0;
}
.explore__stats b{ color: var(--ink); font-weight:600; }
.explore__row{
  display:flex; align-items:flex-start; gap:18px;
  padding: 16px 0;
  border-top: 1px solid var(--line-soft);
}
.explore__hd + .explore__row{ border-top:0; }
.explore__label{
  flex: 0 0 92px;
  font-family: var(--sans); font-size:11px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color: var(--ink-faint);
  padding-top: 5px;
}
.explore__list{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.explore__list a{
  font-family: var(--serif); font-size:19px; line-height:1.3; color: var(--ink);
  width:fit-content; max-width:100%;
  transition: color .2s var(--ease);
}
.explore__list a:hover{ color: var(--red); }
.explore__list .yr{ color: var(--ink-faint); font-style:italic; }
.explore__inline{
  font-family: var(--serif); font-size:19px; line-height:1.4; color: var(--ink);
  min-width:0;
}
.explore__inline a{
  transition: color .2s var(--ease);
}
.explore__inline a:hover{ color: var(--red); }
.explore__inline .sep{ color: var(--ink-faint); }

/* =========================================================
   RIGHT SIDEBAR CARDS
========================================================== */
.card{
  border:1px solid var(--line);
  border-radius: 8px;
  padding: 20px;
  background: var(--panel);
}
.profile{ display:flex; gap:14px; align-items:flex-start; }
.avatar{
  width:46px; height:46px; border-radius:50%; flex-shrink:0;
  background: var(--red); color: var(--cream);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--serif); font-weight:600; font-size:19px; font-style:italic;
}
.profile__name{ font-family: var(--serif); font-weight:600; font-size:21px; margin:0; line-height:1.1; }
.card__kicker{ display:block; width:26px; height:2px; background: var(--red); margin-bottom:12px; border-radius:2px; }
.profile__role{ font-family: var(--sans); font-size:12.5px; color: var(--ink-faint); margin:3px 0 0; }
.card__bio{ font-family: var(--serif); font-size:17px; line-height:1.5; color: var(--ink-soft); margin: 14px 0 0; }
.card__foot{
  margin-top: 16px; padding-top:14px; border-top:1px solid var(--line-soft);
  font-family: var(--sans); font-size:13px; display:flex; gap:8px; flex-wrap:wrap; align-items:center;
}
.card__foot a{ color: var(--red); font-weight:500; transition: color .2s; }
.card__foot a:hover{ color: var(--red-deep); text-decoration: underline; text-underline-offset:3px; }
.card__foot .dot{ color: var(--ink-faint); }

.cover{
  width:54px; height:74px; flex-shrink:0; border-radius:3px;
  background:
    repeating-linear-gradient(135deg, rgba(36,28,23,.05) 0 7px, rgba(36,28,23,.10) 7px 14px),
    var(--cream);
  border:1px solid var(--line);
  display:flex; align-items:flex-end; padding:6px;
  font-family: var(--sans); font-size:8px; letter-spacing:.08em; text-transform:uppercase; color: var(--ink-faint);
}
.verified-line{
  display:inline-flex; align-items:center; gap:8px; margin-top:12px;
  font-family: var(--sans); font-size:13px; color: var(--ink);
}
.verified-line .check{
  width:16px; height:16px; border-radius:50%; background:var(--red); color:var(--cream);
  display:inline-flex; align-items:center; justify-content:center; font-size:10px; flex-shrink:0;
}

/* take a leap */
.leap{ list-style:none; margin:0; padding:0; }
.leap li{ border-top:1px solid var(--line-soft); }
.leap li:first-child{ border-top:0; }
.leap a{
  display:flex; align-items:center; gap:11px;
  padding: 12px 0;
  font-family: var(--serif); font-size:18px; color: var(--ink);
  transition: color .2s var(--ease), padding-left .25s var(--ease);
}
.leap .arr{
  font-family: var(--sans); color: var(--red); font-size:16px; flex-shrink:0;
  transition: transform .25s var(--ease);
}
.leap a:hover{ color: var(--red); padding-left:6px; }
.leap a:hover .arr{ transform: translateX(4px); }

/* =========================================================
   FOOTER
========================================================== */
.site-footer{
  background: var(--red);
  color: var(--cream);
  margin-top: 20px;
}
.site-footer__inner{
  max-width: var(--maxw); margin:0 auto; padding: 44px 32px 30px;
}
.footer-cols{
  display:grid; grid-template-columns: repeat(3, 1fr); gap:40px;
  padding-bottom: 34px;
  border-bottom: 1px solid rgba(246,237,223,.22);
}
.footer-col h3{
  font-family: var(--sans); font-size:11px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color: var(--cream); margin:0 0 16px;
}
.footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.footer-col a{
  font-family: var(--sans); font-size:14.5px; color: rgba(246,237,223,.82);
  position:relative; transition: color .2s var(--ease);
}
.footer-col a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px;
  background: var(--cream); transform:scaleX(0); transform-origin:left;
  transition: transform .25s var(--ease);
}
.footer-col a:hover{ color:#fff; }
.footer-col a:hover::after{ transform:scaleX(1); }
.footer-bottom{
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  padding-top: 22px;
  font-family: var(--sans); font-size:14px;
}
.footer-bottom__brand{ font-family: var(--serif); font-weight:600; font-size:20px; }
.footer-bottom__since{ color: rgba(246,237,223,.7); }
.footer-bottom__legal{ display:flex; gap:8px; align-items:center; color: rgba(246,237,223,.82); }
.footer-bottom__legal a{ color: rgba(246,237,223,.82); transition: color .2s; }
.footer-bottom__legal a:hover{ color:#fff; }
.footer-bottom__legal .sep{ color: rgba(246,237,223,.4); }
@media (max-width: 720px){ .footer-cols{ grid-template-columns:1fr; gap:26px; } }

/* =========================================================
   TOAST
========================================================== */
.toast{
  position: fixed; left:50%; bottom:34px; transform: translate(-50%, 20px);
  background: var(--ink); color: var(--cream);
  font-family: var(--sans); font-size:14px; font-weight:500;
  padding: 12px 20px; border-radius: 999px;
  box-shadow: 0 12px 30px -12px rgba(0,0,0,.5);
  opacity:0; pointer-events:none;
  transition: opacity .3s var(--ease), transform .3s var(--ease);
  z-index: 200;
  display:flex; align-items:center; gap:9px;
}
.toast.show{ opacity:1; transform: translate(-50%, 0); }
.toast .check{ width:17px; height:17px; border-radius:50%; background:var(--red); display:inline-flex; align-items:center; justify-content:center; font-size:10px; }

/* =========================================================
   REVEAL ANIMATION
========================================================== */
[data-reveal]{ opacity:0; transform: translateY(10px); }
[data-reveal].in{ opacity:1; transform:none; transition: opacity .7s var(--ease), transform .7s var(--ease); }
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1 !important; transform:none !important; }
  *{ transition: none !important; }
}

/* =========================================================
   RESPONSIVE
========================================================== */
@media (max-width: 1080px){
  .layout{ grid-template-columns: 220px minmax(0,1fr); }
  .col-right{ grid-column: 1 / -1; display:grid; grid-template-columns: repeat(3,1fr); gap:28px; }
}
@media (max-width: 820px){
  .layout{ grid-template-columns: 1fr; gap:34px; }
  .col-right{ grid-template-columns: 1fr; }
  .nav{ display:none; }
  .site-header__inner{ gap:16px; }
  .search input{ width:160px; }
}


/* =========================================================
   SEARCH
========================================================== */



/* result groups */
.resgroup{ margin-bottom:46px; }
.resgroup__head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:0 0 4px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.resgroup__head h2{ font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); margin:0; }
.resgroup__all{ font-family:var(--sans); font-size:12.5px; font-weight:500; color:var(--red); transition:color .2s var(--ease); }
.resgroup__all:hover{ color:var(--red-deep); text-decoration:underline; text-underline-offset:3px; }

/* quote results */
.qres{ padding:20px 0; border-top:1px solid var(--line-soft); }
.qres:first-child{ border-top:0; }
.resgroup__head + .qres{ border-top:0; }
.qres__text{ font-family:var(--serif); font-style:italic; font-weight:500; font-size:23px; line-height:1.34; letter-spacing:-0.006em; color:var(--ink); margin:0; text-wrap:pretty; }
.qres__text a{ transition:color .2s var(--ease); }
.qres__text a:hover{ color:var(--red); }
.qres__meta{ margin-top:9px; font-family:var(--sans); font-size:12.5px; color:var(--ink-faint); }
.qres__meta a{ color:var(--red); font-weight:500; transition:color .2s; }
.qres__meta a.qres__src{ color:var(--ink-faint); font-weight:400; }
.qres__meta a.qres__src:hover{ color:var(--red); text-decoration:underline; text-underline-offset:3px; }
.qres__meta a:hover{ color:var(--red-deep); text-decoration:underline; text-underline-offset:3px; }
.qres__meta .dot{ color:var(--ink-faint); }
