/* ==========================================================================
   Apex Spec Golf — stylesheet
   Stone greys with a deep orange accent. Georgia for headings, the operating
   system UI face for running text. Written for this site only.
   ========================================================================== */

:root {
  --ink:        #26251f;
  --ink-soft:   #4c4a42;
  --ink-faint:  #78756a;
  --stone-000:  #ffffff;
  --stone-050:  #f7f5f1;
  --stone-100:  #efece6;
  --stone-200:  #e0dcd3;
  --stone-300:  #cbc6ba;
  --stone-700:  #3d3b35;
  --stone-800:  #33322f;
  --stone-900:  #232220;
  --flame:      #c2410c;
  --flame-lit:  #ea580c;
  --flame-deep: #7c2d12;
  --serif: Georgia, 'Times New Roman', Times, serif;
  --sans: system-ui, -apple-system, 'Segoe UI', Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
  --mono: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --hold: 1180px;
  --gutter: 26px;
  --edge: 3px;
  --lift: 0 1px 0 var(--stone-200), 0 10px 26px -18px rgba(35, 34, 32, .55);
  --lift-tall: 0 1px 0 var(--stone-200), 0 22px 48px -26px rgba(35, 34, 32, .6);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.axg-locked { overflow: hidden; }

body.axg-shell {
  margin: 0;
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.68;
  color: var(--ink-soft);
  background: var(--stone-050);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--serif);
  color: var(--ink);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -.012em;
  margin: 0 0 .5em;
}

h1 { font-size: clamp(2.05rem, 4.4vw, 3.2rem); }
h2 { font-size: clamp(1.6rem, 2.9vw, 2.25rem); }
h3 { font-size: 1.22rem; }
h4 { font-size: 1.04rem; }

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

a { color: var(--flame); text-decoration: none; }
a:hover { color: var(--flame-deep); text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--flame-lit);
  outline-offset: 2px;
}

img { max-width: 100%; height: auto; }

.axg-hold {
  width: 100%;
  max-width: var(--hold);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.axg-visually-hidden {
  position: absolute; width: 1px; height: 1px;
  clip: rect(0 0 0 0); clip-path: inset(50%);
  overflow: hidden; white-space: nowrap;
}

.axg-jump {
  position: absolute; left: -9999px; top: 0; z-index: 90;
  background: var(--flame); color: #fff; padding: 10px 16px; font-size: .9rem;
}
.axg-jump:focus { left: 8px; top: 8px; }

/* --------------------------------------------------------------- ticker */

.axg-ticker {
  background: var(--stone-900);
  color: var(--stone-300);
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.axg-ticker .axg-hold {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  min-height: 38px; justify-content: center;
}
.axg-ticker__sep { color: var(--flame-lit); }
.axg-ticker__call { color: #fff; margin-left: auto; font-weight: 600; }
.axg-ticker__call:hover { color: var(--flame-lit); text-decoration: none; }

/* ------------------------------------------------------------- masthead */

.axg-mast {
  position: sticky; top: 0; z-index: 60;
  background: var(--stone-000);
  border-bottom: 1px solid var(--stone-200);
  transition: box-shadow .22s ease, padding .22s ease;
  padding: 20px 0 14px;
}
.axg-mast.is-condensed { padding: 8px 0 6px; box-shadow: 0 8px 22px -18px rgba(35, 34, 32, .8); }

.axg-mast__row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: 22px;
}

.axg-wordmark { display: block; text-align: center; color: var(--ink); line-height: 1; }
.axg-wordmark:hover { text-decoration: none; }
.axg-wordmark__apex,
.axg-wordmark__spec {
  font-family: var(--serif);
  font-size: clamp(1.28rem, 2.4vw, 1.75rem);
  letter-spacing: .06em;
  text-transform: uppercase;
  display: inline-block;
}
.axg-wordmark__apex { color: var(--flame); }
.axg-wordmark__rule {
  display: inline-block; width: 9px; height: 9px; margin: 0 8px;
  border: 2px solid var(--stone-300); transform: rotate(45deg); vertical-align: middle;
}
.axg-wordmark__sub {
  display: block; margin-top: 7px;
  font-family: var(--mono); font-size: .62rem; letter-spacing: .26em;
  text-transform: uppercase; color: var(--ink-faint);
}
.axg-mast.is-condensed .axg-wordmark__sub { display: none; }

.axg-mast__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: 22px; align-items: center;
}
.axg-mast__list--left { justify-content: flex-start; }
.axg-mast__list--right { justify-content: flex-end; }
.axg-mast__item a {
  font-size: .82rem; letter-spacing: .09em; text-transform: uppercase;
  font-weight: 600; color: var(--stone-700); padding-bottom: 4px;
  border-bottom: 2px solid transparent; display: inline-block;
}
.axg-mast__item a:hover { color: var(--flame); text-decoration: none; border-bottom-color: var(--stone-300); }
.axg-mast__item.is-here a { color: var(--flame); border-bottom-color: var(--flame); }

.axg-mast__book {
  display: none;
  grid-column: 3; justify-self: end;
  font-family: var(--mono); font-size: .68rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--ink-faint);
}

.axg-burger {
  display: none;
  width: 44px; height: 40px; border: 1px solid var(--stone-300);
  background: var(--stone-000); cursor: pointer; padding: 0;
  align-items: center; justify-content: center; flex-direction: column; gap: 6px;
}
.axg-burger__bar { display: block; width: 20px; height: 2px; background: var(--stone-700); transition: transform .2s ease; }
.axg-burger.is-open .axg-burger__bar:first-child { transform: translateY(4px) rotate(45deg); }
.axg-burger.is-open .axg-burger__bar:last-child { transform: translateY(-4px) rotate(-45deg); }

.axg-drop { border-top: 1px solid var(--stone-200); background: var(--stone-000); }
.axg-drop[hidden] { display: none; }
.axg-drop__list { list-style: none; margin: 0; padding: 8px 0 18px; }
.axg-drop__list a {
  display: block; padding: 13px var(--gutter);
  font-size: .95rem; font-weight: 600; color: var(--stone-700);
  border-bottom: 1px solid var(--stone-100);
}
.axg-drop__list a:hover { background: var(--stone-050); color: var(--flame); text-decoration: none; }
.axg-drop__cta a { background: var(--flame); color: #fff; margin: 12px var(--gutter) 0; text-align: center; border: 0; }
.axg-drop__cta a:hover { background: var(--flame-deep); color: #fff; }

/* --------------------------------------------------------------- buttons */

.axg-act {
  display: inline-block; padding: 13px 26px;
  font-family: var(--sans); font-size: .82rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  border: 2px solid transparent; cursor: pointer;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.axg-act--fill { background: var(--flame); color: #fff; border-color: var(--flame); }
.axg-act--fill:hover { background: var(--flame-deep); border-color: var(--flame-deep); color: #fff; text-decoration: none; }
.axg-act--line { background: transparent; color: var(--ink); border-color: var(--stone-300); }
.axg-act--line:hover { border-color: var(--flame); color: var(--flame); text-decoration: none; }
.axg-act--dark { background: var(--stone-900); color: #fff; border-color: var(--stone-900); }
.axg-act--dark:hover { background: var(--flame); border-color: var(--flame); color: #fff; text-decoration: none; }
.axg-act--wide { display: block; width: 100%; text-align: center; }

.axg-acts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

/* ------------------------------------------------------------- typography */

.axg-tag {
  display: inline-block; margin-bottom: 14px;
  font-family: var(--mono); font-size: .68rem; letter-spacing: .22em;
  text-transform: uppercase; color: var(--flame);
}
.axg-tag::before { content: '/ '; color: var(--stone-300); }

.axg-lede { font-size: 1.13rem; color: var(--ink-soft); max-width: 62ch; }
.axg-mid { text-align: center; }
.axg-mid .axg-lede { margin-left: auto; margin-right: auto; }

/* --------------------------------------------------------------- banners */

.axg-cover {
  background: linear-gradient(160deg, var(--stone-900) 0%, var(--stone-700) 62%, #4a3428 100%);
  color: var(--stone-100);
  padding: 74px 0 84px;
  position: relative;
  overflow: hidden;
}
.axg-cover::after {
  content: ''; position: absolute; right: -120px; bottom: -160px;
  width: 420px; height: 420px; border: 44px solid rgba(234, 88, 12, .13);
  border-radius: 50%; pointer-events: none;
}
.axg-cover h1 { color: #fff; max-width: 20ch; }
.axg-cover .axg-tag { color: var(--flame-lit); }
.axg-cover .axg-tag::before { color: rgba(255, 255, 255, .3); }
.axg-cover__lede { font-size: 1.16rem; color: rgba(255, 255, 255, .82); max-width: 60ch; margin: 0; }

.axg-cover__grid {
  display: grid; grid-template-columns: 1.15fr .85fr; gap: 46px; align-items: center;
  position: relative; z-index: 1;
}

.axg-crumb {
  font-family: var(--mono); font-size: .68rem; letter-spacing: .2em;
  text-transform: uppercase; color: rgba(255, 255, 255, .55); display: block; margin-bottom: 16px;
}

.axg-topper {
  background: var(--stone-100);
  border-bottom: 1px solid var(--stone-200);
  padding: 56px 0 52px;
}
.axg-topper h1 { max-width: 22ch; }
.axg-topper .axg-crumb { color: var(--ink-faint); }

/* ------------------------------------------------------------ spec plate */

.axg-plate {
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .17);
  padding: 26px 24px;
  backdrop-filter: blur(2px);
}
.axg-plate__cap {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: var(--mono); font-size: .66rem; letter-spacing: .18em;
  text-transform: uppercase; color: rgba(255, 255, 255, .6);
  padding-bottom: 12px; border-bottom: 1px solid rgba(255, 255, 255, .17); margin-bottom: 14px;
}
.axg-plate__cap b { color: var(--flame-lit); font-weight: 600; }
.axg-plate__row {
  display: flex; justify-content: space-between; gap: 14px;
  padding: 9px 0; border-bottom: 1px dotted rgba(255, 255, 255, .16);
  font-size: .9rem; color: rgba(255, 255, 255, .78);
}
.axg-plate__row:last-child { border-bottom: 0; }
.axg-plate__row b { color: #fff; font-family: var(--mono); font-weight: 600; font-size: .86rem; }
.axg-plate__foot {
  margin-top: 16px; padding-top: 13px; border-top: 1px solid rgba(255, 255, 255, .17);
  font-family: var(--mono); font-size: .64rem; letter-spacing: .12em;
  text-transform: uppercase; color: rgba(255, 255, 255, .48);
}

/* -------------------------------------------------------------- sections */

.axg-band { padding: 72px 0; }
.axg-band--tight { padding: 52px 0; }
.axg-band--tone { background: var(--stone-100); }
.axg-band--deep { background: var(--stone-900); color: var(--stone-300); }
.axg-band--deep h2, .axg-band--deep h3 { color: #fff; }
.axg-band--deep .axg-tag { color: var(--flame-lit); }
.axg-band--deep .axg-tag::before { color: rgba(255, 255, 255, .3); }

.axg-band__head { max-width: 66ch; margin-bottom: 40px; }
.axg-band__head.axg-mid { margin-left: auto; margin-right: auto; }

.axg-split { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: start; }
.axg-split--lean { grid-template-columns: 1.25fr .75fr; }
.axg-split--flip { grid-template-columns: .8fr 1.2fr; }

/* ----------------------------------------------------------- card stacks */

.axg-stack { display: grid; gap: 22px; }
.axg-stack--2 { grid-template-columns: repeat(2, 1fr); }
.axg-stack--3 { grid-template-columns: repeat(3, 1fr); }
.axg-stack--4 { grid-template-columns: repeat(4, 1fr); }

.axg-slab {
  background: var(--stone-000);
  border: 1px solid var(--stone-200);
  border-top: var(--edge) solid var(--flame);
  padding: 28px 26px;
  box-shadow: var(--lift);
  display: flex; flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease;
}
.axg-slab:hover { transform: translateY(-3px); box-shadow: var(--lift-tall); }
.axg-slab h3 { margin-bottom: .45em; }
.axg-slab p { color: var(--ink-soft); font-size: .96rem; }
.axg-slab__no {
  font-family: var(--mono); font-size: .68rem; letter-spacing: .2em;
  text-transform: uppercase; color: var(--ink-faint); display: block; margin-bottom: 12px;
}
.axg-slab__go { margin-top: auto; padding-top: 16px; font-weight: 700; font-size: .84rem; letter-spacing: .06em; }
.axg-slab--quiet { border-top-color: var(--stone-300); }
.axg-slab--dark { background: var(--stone-800); border-color: var(--stone-700); color: var(--stone-300); }
.axg-slab--dark h3 { color: #fff; }
.axg-slab--dark p { color: rgba(255, 255, 255, .74); }

/* Offset stack: every second card drops a little on wide screens. */
.axg-stack--offset > *:nth-child(even) { margin-top: 30px; }

/* ------------------------------------------------------------ step chain */

.axg-chain { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.axg-chain > li {
  background: var(--stone-000);
  border: 1px solid var(--stone-200);
  padding: 26px 28px 26px 84px;
  position: relative;
}
.axg-chain > li::before {
  content: attr(data-step);
  position: absolute; left: 26px; top: 26px;
  font-family: var(--serif); font-size: 1.5rem; color: var(--flame);
  line-height: 1;
}
.axg-chain > li::after {
  content: ''; position: absolute; left: 38px; top: 58px; bottom: -2px;
  width: 1px; background: var(--stone-200);
}
.axg-chain > li:last-child::after { display: none; }
.axg-chain h3 { margin-bottom: .4em; }
.axg-chain p { font-size: .96rem; }

/* --------------------------------------------------------------- tables */

.axg-sheet { width: 100%; border-collapse: collapse; background: var(--stone-000); font-size: .95rem; }
.axg-sheet caption {
  text-align: left; font-family: var(--mono); font-size: .68rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--ink-faint); padding-bottom: 12px;
}
.axg-sheet th, .axg-sheet td {
  border: 1px solid var(--stone-200); padding: 13px 16px; text-align: left; vertical-align: top;
}
.axg-sheet thead th {
  background: var(--stone-800); color: #fff; font-family: var(--sans);
  font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700;
}
.axg-sheet tbody th { font-weight: 700; color: var(--ink); background: var(--stone-050); }
.axg-sheet tbody tr:hover td { background: var(--stone-050); }
.axg-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ----------------------------------------------------------- rate blocks */

.axg-rate {
  background: var(--stone-000); border: 1px solid var(--stone-200);
  padding: 30px 26px 26px; display: flex; flex-direction: column;
}
.axg-rate--pick { border-color: var(--flame); box-shadow: var(--lift-tall); }
.axg-rate__flag {
  font-family: var(--mono); font-size: .62rem; letter-spacing: .2em; text-transform: uppercase;
  color: #fff; background: var(--flame); padding: 4px 10px; align-self: flex-start; margin-bottom: 14px;
}
.axg-rate__fee {
  font-family: var(--serif); font-size: 2.3rem; color: var(--ink); line-height: 1; margin: 6px 0 4px;
}
.axg-rate__unit { font-family: var(--mono); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-faint); }
.axg-rate__list { list-style: none; margin: 20px 0 24px; padding: 0; }
.axg-rate__list li { position: relative; padding: 7px 0 7px 24px; font-size: .94rem; border-bottom: 1px dotted var(--stone-200); }
.axg-rate__list li:last-child { border-bottom: 0; }
.axg-rate__list li::before { content: '+'; position: absolute; left: 0; top: 7px; color: var(--flame); font-weight: 700; }
.axg-rate__act { margin-top: auto; }

/* ---------------------------------------------------------------- lists */

.axg-ticks { list-style: none; margin: 0 0 20px; padding: 0; }
.axg-ticks li { position: relative; padding: 8px 0 8px 30px; font-size: .97rem; }
.axg-ticks li::before {
  content: ''; position: absolute; left: 3px; top: 17px;
  width: 12px; height: 6px; border-left: 2px solid var(--flame); border-bottom: 2px solid var(--flame);
  transform: rotate(-45deg);
}

.axg-dashes { list-style: none; margin: 0 0 20px; padding: 0; }
.axg-dashes li { position: relative; padding: 6px 0 6px 22px; font-size: .96rem; }
.axg-dashes li::before { content: ''; position: absolute; left: 0; top: 17px; width: 12px; height: 2px; background: var(--stone-300); }

/* ---------------------------------------------------------------- folds */

.axg-fold { border-bottom: 1px solid var(--stone-200); }
.axg-fold:first-of-type { border-top: 1px solid var(--stone-200); }
.axg-fold__q {
  width: 100%; text-align: left; background: none; border: 0; cursor: pointer;
  padding: 20px 44px 20px 0; position: relative;
  font-family: var(--serif); font-size: 1.08rem; font-weight: 700; color: var(--ink);
}
.axg-fold__q::after {
  content: ''; position: absolute; right: 10px; top: 50%;
  width: 10px; height: 10px; margin-top: -7px;
  border-right: 2px solid var(--flame); border-bottom: 2px solid var(--flame);
  transform: rotate(45deg); transition: transform .2s ease;
}
.axg-fold__q[aria-expanded="true"]::after { transform: rotate(-135deg); }
.axg-fold__q:hover { color: var(--flame); }
.axg-fold__a { padding: 0 44px 22px 0; font-size: .97rem; }
.axg-fold__a[hidden] { display: none; }

/* --------------------------------------------------------------- quotes */

.axg-word {
  background: var(--stone-000); border: 1px solid var(--stone-200);
  border-left: var(--edge) solid var(--flame); padding: 26px 26px 22px;
  display: flex; flex-direction: column;
}
.axg-word blockquote { margin: 0 0 18px; font-size: 1rem; color: var(--ink-soft); }
.axg-word blockquote::before { content: '\201C'; font-family: var(--serif); font-size: 2.6rem; color: var(--stone-300); line-height: 0; vertical-align: -.35em; margin-right: 4px; }
.axg-word__who { margin-top: auto; border-top: 1px dotted var(--stone-200); padding-top: 14px; }
.axg-word__name { display: block; font-family: var(--serif); font-weight: 700; color: var(--ink); }
.axg-word__meta { display: block; font-family: var(--mono); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-faint); margin-top: 4px; }

/* --------------------------------------------------------------- people */

.axg-person { background: var(--stone-000); border: 1px solid var(--stone-200); padding: 26px; }
.axg-person__badge {
  width: 60px; height: 60px; display: flex; align-items: center; justify-content: center;
  background: var(--stone-100); border: 1px solid var(--stone-200);
  font-family: var(--serif); font-size: 1.28rem; color: var(--flame); margin-bottom: 18px;
}
.axg-person__role { font-family: var(--mono); font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-faint); display: block; margin-bottom: 12px; }
.axg-person p { font-size: .95rem; }

/* ---------------------------------------------------------------- forms */

.axg-form { background: var(--stone-000); border: 1px solid var(--stone-200); padding: 32px 30px; box-shadow: var(--lift); }
.axg-form__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.axg-field { margin-bottom: 18px; }
.axg-field label {
  display: block; margin-bottom: 7px;
  font-family: var(--mono); font-size: .68rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--stone-700); font-weight: 600;
}
.axg-field input, .axg-field select, .axg-field textarea {
  width: 100%; padding: 12px 14px; font-family: var(--sans); font-size: .97rem;
  color: var(--ink); background: var(--stone-050);
  border: 1px solid var(--stone-300); border-radius: 0;
}
.axg-field input:focus, .axg-field select:focus, .axg-field textarea:focus {
  background: var(--stone-000); border-color: var(--flame);
}
.axg-field textarea { resize: vertical; min-height: 110px; }
.axg-form__note { font-size: .84rem; color: var(--ink-faint); margin-top: 14px; }

/* --------------------------------------------------------------- callout */

.axg-callout { background: var(--stone-800); color: rgba(255, 255, 255, .8); padding: 58px 0; }
.axg-callout h2 { color: #fff; }
.axg-callout__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.axg-callout .axg-acts { justify-content: center; }

/* ------------------------------------------------------------ blog cards */

.axg-note { background: var(--stone-000); border: 1px solid var(--stone-200); padding: 26px; display: flex; flex-direction: column; }
.axg-note__kind { font-family: var(--mono); font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--flame); margin-bottom: 12px; }
.axg-note h3 { font-size: 1.14rem; }
.axg-note p { font-size: .95rem; }
.axg-note__go { margin-top: auto; padding-top: 16px; font-weight: 700; font-size: .84rem; }

.axg-article { max-width: 74ch; }
.axg-article h2 { margin-top: 1.6em; font-size: 1.5rem; }
.axg-article h3 { margin-top: 1.4em; }
.axg-article blockquote {
  margin: 1.6em 0; padding: 4px 0 4px 22px; border-left: var(--edge) solid var(--flame);
  font-family: var(--serif); font-size: 1.1rem; color: var(--ink);
}
.axg-article__stamp {
  font-family: var(--mono); font-size: .66rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--ink-faint);
  border-top: 1px solid var(--stone-200); padding-top: 16px; margin-top: 40px;
}

/* -------------------------------------------------------------- contact */

.axg-locmap {
  position: relative; height: 250px; background: var(--stone-100);
  border: 1px solid var(--stone-200); overflow: hidden;
}
.axg-locmap::before {
  content: ''; position: absolute; inset: 0;
  background-image: linear-gradient(var(--stone-200) 1px, transparent 1px),
                    linear-gradient(90deg, var(--stone-200) 1px, transparent 1px);
  background-size: 34px 34px;
}
.axg-locmap__road {
  position: absolute; left: -10%; top: 58%; width: 120%; height: 14px;
  background: var(--stone-300); transform: rotate(-7deg);
}
.axg-locmap__dot {
  position: absolute; left: 47%; top: 41%; width: 18px; height: 18px;
  background: var(--flame); border: 4px solid var(--stone-000); border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(194, 65, 12, .18);
}
.axg-locmap__cap {
  position: absolute; left: 16px; bottom: 14px;
  font-family: var(--mono); font-size: .64rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--ink-faint); background: rgba(255, 255, 255, .88); padding: 5px 10px;
}

.axg-info { border: 1px solid var(--stone-200); background: var(--stone-000); padding: 26px; }
.axg-info dl { margin: 0; }
.axg-info dt {
  font-family: var(--mono); font-size: .66rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--ink-faint); margin-top: 16px;
}
.axg-info dt:first-child { margin-top: 0; }
.axg-info dd { margin: 4px 0 0; color: var(--ink); }

/* --------------------------------------------------------------- footer */

.axg-base { background: var(--stone-900); color: rgba(255, 255, 255, .68); padding: 62px 0 0; font-size: .94rem; }
.axg-base__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 52px; }
.axg-base__mark {
  font-family: var(--serif); font-size: 1.35rem; color: #fff;
  letter-spacing: .05em; text-transform: uppercase; display: block; margin-bottom: 14px;
}
.axg-base__head {
  font-family: var(--sans); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--flame-lit); margin-bottom: 16px;
}
.axg-base a { color: rgba(255, 255, 255, .78); }
.axg-base a:hover { color: var(--flame-lit); }
.axg-base__links { list-style: none; margin: 0; padding: 0; }
.axg-base__links li { padding: 5px 0; }
.axg-base__addr { font-style: normal; color: rgba(255, 255, 255, .78); margin-bottom: 12px; }
.axg-base__line { margin: 0 0 6px; }
.axg-base__hours { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: .84rem; }
.axg-base__hours th { text-align: left; font-weight: 400; color: rgba(255, 255, 255, .55); padding: 4px 0; }
.axg-base__hours td { text-align: right; color: rgba(255, 255, 255, .82); padding: 4px 0; }
.axg-base__facts { margin: 20px 0 0; }
.axg-base__facts > div { display: flex; gap: 10px; padding: 6px 0; border-top: 1px dotted rgba(255, 255, 255, .14); }
.axg-base__facts dt { font-family: var(--mono); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; color: var(--flame-lit); min-width: 110px; padding-top: 3px; }
.axg-base__facts dd { margin: 0; color: rgba(255, 255, 255, .78); font-size: .88rem; }
.axg-base__strip { border-top: 1px solid rgba(255, 255, 255, .12); padding: 20px 0; }
.axg-base__strip-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font-size: .8rem; color: rgba(255, 255, 255, .5); }
.axg-base__strip-row p { margin: 0; }

/* ------------------------------------------------------------ error page */

.axg-lost { text-align: center; padding: 96px 0 104px; }
.axg-lost__code {
  font-family: var(--serif); font-size: clamp(4rem, 13vw, 8rem); color: var(--stone-200);
  line-height: .9; display: block; margin-bottom: 12px;
}
.axg-lost .axg-acts { justify-content: center; }

/* ---------------------------------------------------- scripted entrance */

.js-on .axg-rise { opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; }
.js-on .axg-rise.is-shown { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js-on .axg-rise { opacity: 1; transform: none; transition: none; }
  .axg-slab:hover { transform: none; }
}

/* --------------------------------------------------------------- widths */

@media (max-width: 1080px) {
  .axg-mast__list { gap: 15px; }
  .axg-mast__item a { font-size: .74rem; letter-spacing: .06em; }
  .axg-stack--4 { grid-template-columns: repeat(2, 1fr); }
  .axg-base__grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .axg-base__block:last-child { grid-column: 1 / -1; }
  .axg-base__block:last-child .axg-base__links { columns: 2; }
}

@media (max-width: 1023px) {
  .axg-mast { padding: 12px 0; }
  .axg-mast__row { grid-template-columns: 44px 1fr auto; column-gap: 14px; }
  .axg-mast__nav { display: none; }
  .axg-burger { display: flex; grid-column: 1; justify-self: start; }
  .axg-wordmark { grid-column: 2; }
  .axg-mast__book { display: block; }
  .axg-cover__grid { grid-template-columns: 1fr; gap: 34px; }
  .axg-split, .axg-split--lean, .axg-split--flip { grid-template-columns: 1fr; gap: 34px; }
  .axg-stack--3 { grid-template-columns: repeat(2, 1fr); }
  .axg-stack--offset > *:nth-child(even) { margin-top: 0; }
}

@media (max-width: 880px) {
  .axg-stack--3 { grid-template-columns: 1fr; }
  .axg-rate__fee { font-size: 2rem; }
  .axg-fold__q { font-size: 1rem; padding-right: 38px; }
  .axg-locmap { height: 200px; }
}

@media (max-width: 720px) {
  body.axg-shell { font-size: 16px; }
  .axg-ticker .axg-hold { justify-content: flex-start; }
  .axg-ticker__call { margin-left: 0; }
  .axg-mast__book { font-size: .6rem; letter-spacing: .1em; max-width: 88px; text-align: right; line-height: 1.25; }
  .axg-band { padding: 48px 0; }
  .axg-cover { padding: 50px 0 56px; }
  .axg-topper { padding: 40px 0 36px; }
  .axg-stack--2, .axg-stack--3, .axg-stack--4 { grid-template-columns: 1fr; }
  .axg-form { padding: 24px 20px; }
  .axg-form__pair { grid-template-columns: 1fr; gap: 0; }
  .axg-chain > li { padding: 22px 20px 22px 64px; }
  .axg-chain > li::before { left: 20px; }
  .axg-chain > li::after { left: 30px; }
  .axg-base__grid { grid-template-columns: 1fr; gap: 32px; }
  .axg-base__block:last-child .axg-base__links { columns: 1; }
  .axg-acts .axg-act { width: 100%; text-align: center; }
}

@media (max-width: 420px) {
  :root { --gutter: 18px; }
  .axg-wordmark__apex, .axg-wordmark__spec { font-size: 1.15rem; letter-spacing: .04em; }
  .axg-wordmark__rule { margin: 0 5px; }
  .axg-slab, .axg-note, .axg-word, .axg-person, .axg-rate, .axg-info { padding: 22px 18px; }
  .axg-sheet th, .axg-sheet td { padding: 10px 12px; font-size: .88rem; }
}

/* --------------------------------------------------------------- extras */

::selection { background: var(--flame); color: #fff; }

hr.axg-rule {
  border: 0; height: 1px; background: var(--stone-200); margin: 40px 0;
}

.axg-inline-note {
  background: var(--stone-100); border-left: var(--edge) solid var(--stone-300);
  padding: 18px 22px; font-size: .95rem; margin: 26px 0;
}
.axg-inline-note strong { color: var(--ink); }

.axg-pairs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 26px; margin: 24px 0 0; }
.axg-pairs > div { border-top: 1px solid var(--stone-200); padding-top: 12px; }
.axg-pairs dt { font-family: var(--mono); font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-faint); }
.axg-pairs dd { margin: 5px 0 0; font-family: var(--serif); font-size: 1.12rem; color: var(--ink); }
@media (max-width: 720px) { .axg-pairs { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ build log */

.axg-crumb a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.axg-crumb a:hover { color: var(--flame); border-bottom-color: var(--flame); }

.axg-note h2 { font-size: 1.2rem; line-height: 1.32; margin: 0 0 .55em; }
.axg-note h2 a { color: var(--ink); text-decoration: none; }
.axg-note h2 a:hover { color: var(--flame-deep); text-decoration: underline; }
.axg-note:hover { border-color: var(--stone-300); }

.axg-article > p:first-of-type {
  font-size: 1.08rem; color: var(--ink);
}
.axg-article .axg-sheet { margin: 30px 0; }
.axg-article .axg-ticks { margin-top: 18px; }
.axg-article__stamp a { color: inherit; }

@media (max-width: 900px) {
  .axg-article > p:first-of-type { font-size: 1rem; }
}

@media print {
  .axg-ticker, .axg-mast, .axg-drop, .axg-burger, .axg-callout, .axg-jump { display: none !important; }
  body.axg-shell { background: #fff; color: #000; font-size: 12pt; }
  .axg-base { background: #fff; color: #000; border-top: 1px solid #999; }
  .axg-base a, .axg-base__mark, .axg-base__head { color: #000; }
  .axg-cover, .axg-band--deep, .axg-slab--dark { background: #fff !important; color: #000 !important; }
  .axg-cover h1, .axg-band--deep h2, .axg-band--deep h3 { color: #000; }
  .axg-slab, .axg-note, .axg-word, .axg-rate, .axg-person { box-shadow: none; break-inside: avoid; }
  a[href^="/"]::after { content: " (apexspecgolf.online" attr(href) ")"; font-size: 9pt; color: #444; }
}
