/* ADOM brand tokens — no gradient buttons */
*,
*::before,
*::after {
  box-sizing: border-box;
}

:root {
  --adom-canvas: #f7f6f3;
  --adom-ink: #000000;
  --adom-violet: #7932e9;
  --adom-pink: #e34776;
  --adom-orange: #eb5c2c;
  --adom-gold: #eba84d;
  --adom-white: #ffffff;
  --adom-cream: #f3f1ec;
  --adom-mist: #f0eeea;
  --adom-body: rgba(0, 0, 0, 0.72);
  --adom-meta: rgba(0, 0, 0, 0.75);
  --adom-line: rgba(0, 0, 0, 0.12);
  --adom-line-soft: rgba(0, 0, 0, 0.08);
  --adom-max: 1200px;
  --adom-pad: clamp(20px, 4vw, 40px);
  --adom-radius: 20px;
  --adom-radius-lg: 28px;
  --adom-pill: 999px;
  --adom-font-display: "Cardo", Georgia, serif;
  --adom-font-body: "Jost", system-ui, sans-serif;
  /* Soft violet wash only — pink/gold reserved for small accents, not section shells */
  --adom-wash: linear-gradient(160deg, rgba(121, 50, 233, 0.07), transparent 58%);
  --adom-wash-strong: linear-gradient(160deg, rgba(121, 50, 233, 0.12), transparent 60%);
}

body.adom-chrome,
body.adom-home,
.adom-chrome,
.adom-home,
.adom-home-main {
  font-family: var(--adom-font-body);
  color: var(--adom-ink);
  background: var(--adom-canvas);
}

body.adom-chrome a,
.adom-chrome a,
.adom-home a,
.adom-site-header a,
.adom-site-footer a {
  text-decoration: none;
}

a.adom-btn,
a.adom-link-accent,
a.adom-chip,
a.adom-event-card,
a.adom-article-card,
a.adom-membership__card {
  text-decoration: none;
}

a.adom-btn--primary {
  color: var(--adom-white);
}

a.adom-btn--outline {
  color: var(--adom-ink);
}

a.adom-link-accent {
  color: var(--adom-violet);
}

.adom-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 32px;
  border-radius: var(--adom-pill);
  border: 1px solid transparent;
  font-family: var(--adom-font-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.3s ease, border-color 0.3s ease, transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
}

.adom-btn--primary {
  background: var(--adom-violet);
  color: var(--adom-white);
}

.adom-btn--primary:hover {
  background: #6420d4;
  color: var(--adom-white);
}

.adom-btn--ink {
  background: var(--adom-ink);
  color: var(--adom-white);
}

.adom-btn--outline {
  background: transparent;
  border-color: rgba(0, 0, 0, 0.25);
  color: var(--adom-ink);
}

.adom-btn--ghost-light {
  background: var(--adom-canvas);
  color: var(--adom-ink);
}

.adom-btn--outline-light {
  border-color: rgba(255, 255, 255, 0.45);
  color: var(--adom-white);
}

.adom-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  font-size: 12px;
  line-height: 1.35;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--adom-meta);
}

.adom-eyebrow i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
}

.adom-eyebrow b {
  font-weight: 500;
  margin-right: 6px;
  color: var(--adom-ink);
}

.adom-h1,
.adom-h2,
.adom-h3 {
  font-family: var(--adom-font-display);
  font-weight: 400;
  letter-spacing: -0.015em;
}

.adom-h1 {
  font-size: clamp(38px, 4.3vw, 60px);
  line-height: 1.1;
  margin: 0;
}

.adom-h2 {
  font-size: clamp(32px, 3.6vw, 46px);
  line-height: 1.12;
  margin: 0;
}

.adom-h3 {
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.16;
  margin: 0;
}

.adom-lead {
  margin: 0;
  font-size: 17px;
  line-height: 1.7;
  color: var(--adom-body);
  font-weight: 400;
}

/*
 * Global section intro: eyebrow + heading | lead (two columns)
 * Heading top and lead top share the same line; eyebrow sits above the heading only.
 * Uses display:contents so alignment does not depend on eyebrow height math.
 */
.adom-section-head,
.adom-story-section__head,
.adom-story-hero__intro,
.adom-blog-hero__head,
.adom-cal-hero__head,
.adom-contact-hero__head,
.adom-contact-form-section__head,
.adom-legal-hero__head,
.adom-lecturer-archive-hero__head,
.adom-course-section__head,
.adom-stats__head {
  --adom-section-head-eyebrow-offset: calc(12px * 1.35 + 18px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto auto;
  column-gap: 48px;
  row-gap: 0;
  align-items: start;
}

.adom-section-head > div:first-child,
.adom-story-section__head:not(.adom-story-section__head--faculty) > div:first-child,
.adom-story-hero__intro > div:first-child,
.adom-blog-hero__head > div:first-child,
.adom-cal-hero__head > div:first-child,
.adom-contact-hero__head > div:first-child,
.adom-contact-form-section__head > div:first-child,
.adom-legal-hero__head > div:first-child,
.adom-lecturer-archive-hero__head > div:first-child,
.adom-course-section__head > div:first-child,
.adom-stats__head > div:first-child {
  display: contents;
}

/* Faculty head keeps left column (title + rail controls); offset lead to H2 top */
.adom-story-section__head--faculty {
  grid-template-rows: auto;
}

.adom-story-section__head--faculty > div:first-child {
  display: block;
  grid-column: 1;
  grid-row: 1;
}

.adom-story-section__head--faculty .adom-eyebrow,
.adom-story-section__head--faculty .adom-h2 {
  grid-column: unset;
  grid-row: unset;
}

.adom-story-section__head--faculty > .adom-lead {
  grid-column: 2;
  grid-row: 1;
  margin-top: var(--adom-section-head-eyebrow-offset);
}

.adom-section-head .adom-eyebrow,
.adom-story-section__head .adom-eyebrow,
.adom-story-hero__intro .adom-eyebrow,
.adom-blog-hero__head .adom-eyebrow,
.adom-cal-hero__head .adom-eyebrow,
.adom-contact-hero__head .adom-eyebrow,
.adom-contact-form-section__head .adom-eyebrow,
.adom-legal-hero__head .adom-eyebrow,
.adom-lecturer-archive-hero__head .adom-eyebrow,
.adom-course-section__head .adom-eyebrow,
.adom-stats__head .adom-eyebrow {
  grid-column: 1;
  grid-row: 1;
}

.adom-section-head .adom-h2,
.adom-section-head .adom-h1,
.adom-story-section__head .adom-h2,
.adom-story-hero__intro .adom-story-hero__title,
.adom-blog-hero__head .adom-blog-hero__title,
.adom-cal-hero__head .adom-cal-hero__title,
.adom-contact-hero__head .adom-contact-hero__title,
.adom-contact-form-section__head .adom-h2,
.adom-legal-hero__head .adom-legal-hero__title,
.adom-lecturer-archive-hero__head .adom-lecturer-archive-hero__title,
.adom-course-section__head .adom-h2,
.adom-stats__head .adom-h2 {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
  align-self: start;
}

.adom-section-head > .adom-lead,
.adom-section-head > .adom-section-head__aside,
.adom-story-section__head > .adom-lead,
.adom-story-section__head > .adom-story-section__aside,
.adom-story-hero__intro > .adom-lead,
.adom-blog-hero__head > .adom-blog-hero__lead,
.adom-cal-hero__head > .adom-cal-hero__lead,
.adom-contact-hero__head > .adom-contact-hero__lead,
.adom-contact-form-section__head > .adom-lead,
.adom-legal-hero__head > .adom-legal-hero__aside,
.adom-lecturer-archive-hero__head > .adom-lecturer-archive-hero__lead,
.adom-course-section__head > .adom-lead,
.adom-stats__head > .adom-lead {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  align-self: start;
}

@media (max-width: 820px) {
  .adom-section-head,
  .adom-story-section__head,
  .adom-story-hero__intro,
  .adom-blog-hero__head,
  .adom-cal-hero__head,
  .adom-contact-hero__head,
  .adom-contact-form-section__head,
  .adom-legal-hero__head,
  .adom-lecturer-archive-hero__head,
  .adom-course-section__head,
  .adom-stats__head {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .adom-section-head .adom-eyebrow,
  .adom-story-section__head .adom-eyebrow,
  .adom-story-hero__intro .adom-eyebrow,
  .adom-blog-hero__head .adom-eyebrow,
  .adom-cal-hero__head .adom-eyebrow,
  .adom-contact-hero__head .adom-eyebrow,
  .adom-contact-form-section__head .adom-eyebrow,
  .adom-legal-hero__head .adom-eyebrow,
  .adom-lecturer-archive-hero__head .adom-eyebrow,
  .adom-course-section__head .adom-eyebrow,
  .adom-stats__head .adom-eyebrow {
    grid-column: 1;
    grid-row: auto;
  }

  .adom-section-head .adom-h2,
  .adom-section-head .adom-h1,
  .adom-story-section__head .adom-h2,
  .adom-story-hero__intro .adom-story-hero__title,
  .adom-blog-hero__head .adom-blog-hero__title,
  .adom-cal-hero__head .adom-cal-hero__title,
  .adom-contact-hero__head .adom-contact-hero__title,
  .adom-contact-form-section__head .adom-h2,
  .adom-legal-hero__head .adom-legal-hero__title,
  .adom-lecturer-archive-hero__head .adom-lecturer-archive-hero__title,
  .adom-course-section__head .adom-h2,
  .adom-stats__head .adom-h2 {
    grid-column: 1;
    grid-row: auto;
  }

  .adom-section-head > .adom-lead,
  .adom-section-head > .adom-section-head__aside,
  .adom-story-section__head > .adom-lead,
  .adom-story-section__head > .adom-story-section__aside,
  .adom-story-hero__intro > .adom-lead,
  .adom-blog-hero__head > .adom-blog-hero__lead,
  .adom-cal-hero__head > .adom-cal-hero__lead,
  .adom-contact-hero__head > .adom-contact-hero__lead,
  .adom-contact-form-section__head > .adom-lead,
  .adom-legal-hero__head > .adom-legal-hero__aside,
  .adom-lecturer-archive-hero__head > .adom-lecturer-archive-hero__lead,
  .adom-course-section__head > .adom-lead,
  .adom-stats__head > .adom-lead {
    grid-column: 1;
    grid-row: auto;
    margin-top: 12px;
  }
}

.adom-wrap {
  max-width: var(--adom-max);
  margin: 0 auto;
  padding-left: var(--adom-pad);
  padding-right: var(--adom-pad);
}

.adom-section {
  padding: clamp(48px, 5.5vw, 72px) 0;
  border-top: 1px solid var(--adom-line-soft);
  position: relative;
}

/* Calm section shells — ivory / white / soft violet only */
.adom-section--panel {
  background: var(--adom-white);
}

.adom-section--mist {
  background: var(--adom-mist);
}

.adom-section--wash {
  background:
    var(--adom-wash),
    var(--adom-cream);
}

.adom-frame {
  border: 1px solid var(--adom-line-soft);
  border-radius: var(--adom-radius-lg);
  background: var(--adom-white);
  box-shadow: 0 18px 48px -36px rgba(0, 0, 0, 0.28);
}

.adom-frame--white {
  background: var(--adom-white);
}

.adom-frame--wash {
  border-color: var(--adom-line-soft);
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(121, 50, 233, 0.08), transparent 50%),
    var(--adom-white);
}

.adom-bubble {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: var(--adom-ink);
  color: var(--adom-white);
  flex: 0 0 auto;
}

.adom-bubble--violet {
  background: var(--adom-violet);
}

.adom-bubble--pink {
  background: var(--adom-pink);
}

.adom-bubble--gold {
  background: var(--adom-gold);
  color: var(--adom-ink);
}

.adom-tag {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 5px 10px;
  border: 1px solid rgba(0, 0, 0, 0.16);
  border-radius: var(--adom-pill);
  color: rgba(0, 0, 0, 0.42);
}

/* Form honeypot — never use left:-9999px (expands scrollWidth) */
.adom-hp {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
