/* ==========================================================================
   The Office of Ale-Conner: the office's own dress (adopted 5 Nov 2026)
   Source of truth: the "Liam Randall: brand system" design system, Ale-Conner
   section (conner-* tokens, the Ale-Conner type group, AleConner* components).
   Loaded LAST on every page, so it overrides each page's inline :root and the
   older Cormorant / Source Sans styling without touching every rule.
   ========================================================================== */

/* Libre Caslon Display: titles and figures at 28px and above, regular only.
   Libre Caslon Text: smaller serif lines and the one italic line.
   Libre Franklin: everything read. Self-hosted, latin + latin-ext. */
@font-face { font-family: 'Libre Caslon Display'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/libre-caslon-display-v18-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Libre Caslon Display'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/libre-caslon-display-v18-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Libre Franklin'; font-style: italic; font-weight: 100 900; font-display: swap; src: url('/fonts/libre-franklin-v20-latin-ext-italic.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Libre Franklin'; font-style: italic; font-weight: 100 900; font-display: swap; src: url('/fonts/libre-franklin-v20-latin-italic.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Libre Franklin'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/fonts/libre-franklin-v20-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Libre Franklin'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/fonts/libre-franklin-v20-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Libre Caslon Text'; font-style: italic; font-weight: 400; font-display: swap; src: url('/fonts/libre-caslon-text-v5-latin-ext-italic.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Libre Caslon Text'; font-style: italic; font-weight: 400; font-display: swap; src: url('/fonts/libre-caslon-text-v5-latin-italic.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Libre Caslon Text'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/libre-caslon-text-v5-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Libre Caslon Text'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/libre-caslon-text-v5-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Libre Caslon Text'; font-style: normal; font-weight: 700; font-display: swap; src: url('/fonts/libre-caslon-text-v5-latin-ext-700.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Libre Caslon Text'; font-style: normal; font-weight: 700; font-display: swap; src: url('/fonts/libre-caslon-text-v5-latin-700.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  /* conner-* tokens */
  --navy: #1b2a4a;
  --navy-deep: #111c33;
  --gold: #c9a84c;
  --gold-deep: #765d1c;
  --gold-muted: #765d1c;
  --gold-on-light: #765d1c;
  --parchment: #f8f4ea;
  --stone: #f8f4ea;
  --cream: #ffffff;
  --light-border: #d9cfb4;
  --on-navy: #f6f1e4;
  --on-navy-muted: #b9c1d3;
  --body: #1b2a4a;
  --mid: #4a5470;
  --grain: none;
  --font-title: 'Libre Caslon Display', Georgia, 'Times New Roman', serif;
  --font-display: 'Libre Caslon Text', Georgia, 'Times New Roman', serif;
  --font-body: 'Libre Franklin', 'Franklin Gothic', Arial, sans-serif;
}

body {
  background: var(--parchment);
  color: var(--navy);
  font-family: var(--font-body);
}

/* ---------- The sigil retires: the icon is never drawn below 48px ---------- */
.section__rule,
.hero__line,
.page-header__rule { display: none; }
.footer__divider {
  height: 1px;
  background: #3a4c78;
  border: 0;
}

/* ---------- Type: serif titles are regular, never synthesised bold ---------- */
.hero__name,
.section__heading,
.page-header__title,
.intro__title,
.directory__title,
.style-index__title,
.content h2,
.cta-band__text,
.stat__num,
.benefit__title,
.journal-card__title,
.entry-card__title,
.detail__name,
.style-index__clade-name {
  font-family: var(--font-title);
  font-weight: 400;
  letter-spacing: 0;
}
.nav__brand,
.footer__brand,
.faq__question,
.aside-box__title,
.sources__title,
.entry-signoff__name,
.directory__heading,
.style-index__family-name,
.style-index__name,
.content__lead {
  font-family: var(--font-display);
  font-weight: 400;
}
.section__heading { font-size: clamp(2rem, 3.6vw, 2.5rem); line-height: 1.12; color: var(--navy); }
.page-header__title { font-size: clamp(2.4rem, 4.6vw, 3.6rem); line-height: 1.08; }
.content h2 { font-size: 1.85rem; line-height: 1.2; }

/* Labels: Libre Franklin capitals; deep gold on light grounds, gold on navy */
.section__label,
.page-header__label {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
}
.section--cream .section__label,
.section--stone .section__label { color: var(--gold-deep); }

/* Links on light grounds: deep gold, underlined */
.content a,
.faq__answer a,
.section--cream p a,
.section--stone p a { color: var(--gold-deep); text-decoration: underline; text-underline-offset: 3px; }

/* The light grounds lose the paper grain */
body, .section--cream, .section--stone { background-image: none; }
.section--stone { background: var(--parchment); }
.section--cream {
  background: #ffffff;
  border-top: 1px solid var(--light-border);
  border-bottom: 1px solid var(--light-border);
}

/* ---------- Buttons: one gold, one outlined, sentence case ---------- */
.hero__cta,
.cta-band__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.6rem;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  border-radius: 2px;
  background: var(--gold);
  color: var(--navy);
  border: 1px solid var(--gold);
  box-shadow: none;
}
.hero__cta:hover,
.cta-band__btn:hover { background: #d4b862; color: var(--navy); transform: none; box-shadow: none; }
.cta-band__btn::after { display: none; }
.hero__cta--ghost {
  background: transparent;
  color: var(--on-navy);
  border: 1px solid var(--gold);
}
.hero__cta--ghost:hover { background: rgba(201, 168, 76, 0.12); color: var(--on-navy); }

/* ---------- Header: solid navy, gold hairline, the icon of office ---------- */
.nav,
.nav.scrolled {
  background: var(--navy);
  border-bottom: 1px solid var(--gold);
  box-shadow: none;
  backdrop-filter: none;
  padding: 0.65rem 0;
}
.nav__brand {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.35rem;
  letter-spacing: 0;
  color: var(--on-navy);
}
.nav__brand span { color: inherit; }
.nav__icon { display: block; width: auto; height: 48px; }
.nav__links a {
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--on-navy);
}
.nav__links a:hover,
.nav__links a[aria-current="page"] { color: var(--gold) !important; }
@media (max-width: 900px) {
  .nav__links a { font-family: var(--font-display); font-weight: 400; }
}

/* ---------- Footer: deep navy, the icon, the holder credited in words ---------- */
.footer {
  background: var(--navy-deep);
  color: var(--on-navy-muted);
  padding: 3.5rem 0 2.5rem;
}
.footer__top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem 2.5rem;
  margin-bottom: 1.75rem;
}
.footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  margin: 0;
  font-size: 1.4rem;
  color: var(--on-navy);
}
.footer__brand span { color: inherit; }
.footer__icon { display: block; width: auto; height: 56px; }
.footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer__nav a {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--on-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.footer__nav a:hover { color: var(--gold); }
.footer__credit {
  margin: 1.5rem 0 0;
  font-family: var(--font-body);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--on-navy-muted);
}
.footer__credit a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Page headers and the closing band on inner pages ---------- */
.page-header__title { color: var(--on-navy); }
.page-header__subtitle { font-family: var(--font-display); font-style: italic; color: var(--gold); }
.cta-band { background: var(--navy); }
.cta-band__text { color: var(--on-navy); font-size: clamp(1.75rem, 3vw, 2rem); }

/* ==========================================================================
   Home page (AleConnerSite)
   ========================================================================== */

/* Hero: plain navy, centred, led by the icon of office */
.hero {
  min-height: 0;
  background: var(--navy);
  text-align: center;
}
.hero__bg,
.hero__pattern,
.hero__frame,
.hero .scroll-cue { display: none; }
.hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.4rem;
  max-width: 960px;
  padding: calc(76px + 5rem) 2rem 6rem;
}
.hero__icon { display: block; width: auto; height: 200px; margin-bottom: 0.4rem; }
.hero__label {
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: var(--gold);
}
.hero__name {
  margin: 0;
  font-size: clamp(2.6rem, 6.4vw, 4.5rem);
  line-height: 1.02;
  color: var(--on-navy);
}
.hero__office {
  margin: 0;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  line-height: 1.3;
  color: var(--gold);
}
.hero__entries {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.9rem;
  margin: 0.6rem 0 0;
}
@media (max-width: 600px) {
  .hero__content { padding: calc(70px + 3rem) 1.25rem 4rem; gap: 1.1rem; }
  .hero__icon { height: 150px; }
  .hero__entries { flex-direction: column; align-self: stretch; }
}

/* Figures band: deep navy, gold hairline over each figure, worked-out numbers */
.stats { background: var(--navy-deep); border-top: 0; }
.stat {
  text-align: left;
  border-top: 1px solid var(--gold);
  padding-top: 1.1rem;
}
.stat__num {
  font-size: clamp(2.4rem, 3.2vw, 3rem);
  line-height: 1;
  margin-bottom: 0.4rem;
  color: var(--gold);
}
.stat__label {
  margin: 0;
  max-width: none;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.4;
  color: var(--on-navy-muted);
}

/* Cards in the office at work: white, framed by a fine gold line inside the edge */
.benefit__intro { color: var(--navy); font-size: 1.0625rem; line-height: 1.6; margin: 0 0 2.5rem; max-width: 40em; }
.benefit__card {
  background: #ffffff;
  border: 1px solid var(--light-border);
  box-shadow: inset 0 0 0 6px #ffffff, inset 0 0 0 7px var(--gold);
  padding: 2rem 1.9rem 1.9rem;
}
.benefit__kicker { display: none; }
.benefit__title { font-size: 1.75rem; line-height: 1.15; color: var(--navy); margin-bottom: 0.6rem; }
.benefit__text { color: var(--navy); font-size: 1.0625rem; line-height: 1.6; }
.benefit__link {
  color: var(--gold-deep);
  border: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
  font-size: 1rem;
}
.benefit__link:hover { color: var(--navy); }

/* What is an Ale-Conner: text beside the ancient cry, framed on navy */
.history__split {
  display: flex;
  flex-wrap: wrap;
  gap: 3.5rem;
  align-items: flex-start;
}
.history__split > .history__text { flex: 999 1 460px; min-width: 0; max-width: none; }
.history__standfirst {
  margin: 0 0 1.1rem;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.5rem;
  line-height: 1.33;
  color: var(--gold-deep);
}
.history__text p { color: var(--navy); font-size: 1.0625rem; line-height: 1.6; }
.history__more {
  display: inline-block;
  margin-top: 0.4rem;
  font-weight: 600;
  color: var(--gold-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.history__more:hover { color: var(--navy); }
.cry {
  flex: 1 1 320px;
  margin: 0;
  padding: 2.5rem;
  background: var(--navy);
  box-shadow: inset 0 0 0 6px var(--navy), inset 0 0 0 7px var(--gold);
}
.cry__quote {
  margin: 0 0 1.1rem;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.75rem;
  line-height: 1.25;
  color: var(--on-navy);
}
.cry__source {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
}

/* Journal and Explore cards: a thin gold rule tops each card */
.journal-card { border: 1px solid var(--light-border); border-top: 2px solid var(--gold); }
.journal-card__date { color: var(--gold-deep); letter-spacing: 0.12em; }
.journal-card__title { font-size: 1.75rem; line-height: 1.15; color: var(--navy); }
.journal-card__excerpt { color: var(--navy); font-size: 1rem; }
.explore-card { border-top: 0; }
.explore-card .journal-card__thumb { border-bottom: 2px solid var(--gold); }
.explore-card__go { color: var(--gold-deep); border: 0; text-decoration: underline; text-underline-offset: 3px; }

/* Explore: plain navy, like the hero, no photograph behind the text */
#pub-map, #pub-map.bg-loaded { background: var(--navy); }
.explore__intro { color: var(--on-navy-muted); }

/* Badge, about and FAQ pick up the type; their copy goes navy */
.badge__text p, .about__text p { color: var(--navy); }
.about__closing, .history__closing { font-family: var(--font-display); font-weight: 400; color: var(--gold-deep); }
.faq__question { font-size: 1.2rem; color: var(--navy); }
.faq__answer-inner { color: var(--navy); }
.about__caption {
  margin: 1.75rem 0 0;
  max-width: 320px;
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-style: italic;
  color: var(--mid);
}
a.footer__brand { text-decoration: none; }
.about__more {
  font-size: 1rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--gold-deep);
  border: 0;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.about__more:hover { color: var(--navy); }
.nav__brand, .footer__brand { white-space: nowrap; }
@media (max-width: 600px) {
  .nav__brand { font-size: 1.1rem; gap: 0.6rem; }
  .footer__brand { font-size: 1.2rem; }
  .footer__icon { height: 48px; }
}
.nowrap { white-space: nowrap; }
.cta-band__btn--ghost { background: transparent; color: var(--on-navy); border-color: var(--gold); }
.cta-band__btn--ghost:hover { background: rgba(201, 168, 76, 0.12); color: var(--on-navy); }
