/*
 * pyr-site.css — Pyrsos shared site styles.
 * Hand-organized: element base, tokens, type, shells, header, drawer,
 * stage, buttons, bands, footer, helpers, carousel skin, utilities —
 * desktop-first, with narrowing @media passes at 1080/991/767/479px.
 * Splide runtime class names (splide__*, is-active, ...) are that
 * library's contract and appear here under their own names.
 */

/* Webfont: Instrument Sans (variable). Absolute paths so one file
   serves pages at every directory depth. */
@font-face {
  font-family: Instrument Sans;
  src: url(/fonts/InstrumentSans-var-latin.woff2) format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Instrument Sans;
  src: url(/fonts/InstrumentSans-var-latin.woff2) format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Instrument Sans;
  src: url(/fonts/InstrumentSans-var-latinext.woff2) format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}


/* ---- Element base (normalize-derived; element selectors keep their computed defaults) ---- */
html {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-family: sans-serif;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: #00000000;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: 700;
}
dfn {
  font-style: italic;
}
h1 {
  margin: .67em 0;
  font-size: 2em;
}
mark {
  color: #000000;
  background: #ff0;
}
small {
  font-size: 80%;
}
sub,
sup {
  position: relative;
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
}
sup {
  top: -.5em;
}
sub {
  bottom: -.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  margin: 0;
  font: inherit;
  color: inherit;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type=button],
input[type=reset] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type=checkbox],
input[type=radio] {
  box-sizing: border-box;
  padding: 0;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  height: auto;
}
input[type=search] {
  -webkit-appearance: none;
}
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: 700;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
* {
  box-sizing: border-box;
}
html {
  height: 100%;
}
body {
  color: #4d4d4d;
  background-color: #ffffff;
  min-height: 100%;
  margin: 0;
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 20px;
}
img {
  display: inline-block;
  max-width: 100%;
  vertical-align: middle;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: 10px;
  font-weight: 700;
}
h1 {
  margin-top: 20px;
  font-size: 38px;
  line-height: 44px;
}
h2 {
  margin-top: 20px;
  font-size: 32px;
  line-height: 36px;
}
h3 {
  margin-top: 20px;
  font-size: 24px;
  line-height: 30px;
}
h4 {
  margin-top: 10px;
  font-size: 18px;
  line-height: 24px;
}
h5 {
  margin-top: 10px;
  font-size: 14px;
  line-height: 20px;
}
h6 {
  margin-top: 10px;
  font-size: 12px;
  line-height: 18px;
}
p {
  margin-top: 0;
  margin-bottom: 10px;
}
blockquote {
  border-left: 5px solid #e5e5e5;
  margin: 0 0 10px;
  padding: 10px 20px;
  font-size: 18px;
  line-height: 22px;
}
figure {
  margin: 0 0 10px;
}
figcaption {
  margin-top: 5px;
  text-align: center;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 10px;
  padding-left: 40px;
}
fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}
button,
[type=button],
[type=reset] {
  border: 0;
  cursor: pointer;
  -webkit-appearance: button;
}
label {
  display: block;
  margin-bottom: 5px;
  font-weight: 700;
}
body {
  background-color: #fff;
  color: #000;
  letter-spacing: -.01em;
  font-family: Instrument Sans, Arial, sans-serif;
  font-size: 1vw;
  font-weight: 400;
  line-height: 1;
}
h1 {
  margin-top: 0;
  margin-bottom: 0;
  font-family: Instrument Sans, Arial, sans-serif;
  font-size: 4.5em;
  font-weight: 400;
  line-height: 1;
}
h2 {
  color: var(--ink);
  letter-spacing: 0;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 2em;
  font-weight: 500;
  line-height: 1.1;
}
h3 {
  color: var(--ink);
  letter-spacing: 0;
  margin-top: 20px;
  margin-bottom: 10px;
  font-size: 1.7em;
  font-weight: 500;
  line-height: 1.1;
}
h4 {
  color: var(--ink);
  letter-spacing: 0;
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: 1.4em;
  font-weight: 500;
  line-height: 1.1;
}
p {
  margin-bottom: 10px;
  letter-spacing: 0;
  font-size: 1em;
  line-height: 1.3;
  color: var(--ink);
}
a {
  color: var(--brand);
  font-size: 1em;
  font-weight: 400;
  text-decoration: underline;
}
ul {
  grid-row-gap: .8rem;
  letter-spacing: 0;
  flex-flow: column;
  margin-top: 0;
  margin-bottom: 10px;
  padding-left: 1.15em;
  font-size: 1em;
  line-height: 1.25;
  display: flex;
}
ol {
  grid-row-gap: .8rem;
  letter-spacing: 0;
  flex-flow: column;
  margin-top: 0;
  margin-bottom: 10px;
  padding-left: 1rem;
  font-size: 1em;
  line-height: 1.25;
  display: flex;
}
img {
  display: inline-block;
  border-radius: 4px;
  max-width: 100%;
}
strong {
  font-weight: 700;
}
em {
  opacity: .65;
  font-size: .9em;
  font-style: italic;
  line-height: 1.4;
}
blockquote {
  border-left: 1px solid var(--brand);
  letter-spacing: 0;
  margin-bottom: 10px;
  padding: 8px 16px;
  font-size: 1.1em;
  font-style: italic;
  line-height: 1.4;
}
#area-head-nav {
  justify-self: center;
}
::selection {
  background: #d9d9d9;
  color: #000;
}
::-moz-selection {
  background: #d9d9d9;
  color: #000;
}

/* ---- Design tokens ---- */
:root {
  --brand: #000000;
  --paper: #ffffff;
  --ink: #000000;
}

/* ---- Typography scale and copy blocks ---- */
.type-xl {
  font-size: 3.9em;
}
.type-xl.tone-brand {
  font-weight: 500;
  color: var(--brand);
}
.type-lg {
  color: inherit;
  font-size: 5em;
  font-weight: 400;
  line-height: 1;
}
.type-lg.t-sm {
  text-align: center;
  font-size: 4.5em;
}
.type-lg.t-xs {
  font-size: 2.875em;
  line-height: 1;
}
.type-lg.tone-brand {
  width: 15ch;
  color: var(--brand);
  font-size: 4.5em;
  font-weight: 500;
  line-height: .9;
}
.body-copy {
  letter-spacing: -.005em;
  font-size: .9em;
  font-weight: 500;
  line-height: 1.3;
}
.body-copy.tone-brand {
  color: var(--brand);
}
.note-copy {
  white-space: normal;
  font-size: .9em;
  line-height: 1.3;
}

/* ---- Page shells and containers ---- */
.layer-main {
  width: 100vw;
  height: 100vh;
  margin-bottom: 0;
}
.page-frame {
  position: relative;
  padding: 13.25em 1.75rem;
}
.shell {
  width: 1560px;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 6em 2em;
  display: none;
}

/* ---- Site header and primary nav ---- */
.site-head {
  z-index: 99;
  position: fixed;
  inset: 0% 0% auto;
}
.head-frame {
  padding: .875em 1.75rem;
}
.head-row {
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  justify-content: flex-start;
  place-items: stretch start;
  display: grid;
}
.brand-link {
  width: 8em;
  height: 2em;
}
.brand-mark {
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: contain;
  width: 100%;
  height: 100%;
}
.head-nav {
  grid-column-gap: .25em;
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
  background-color: #0000000a;
  border-radius: .25em;
  justify-content: flex-start;
  align-items: stretch;
  margin-left: 0;
  padding: .25em;
  display: flex;
}

/* ---- Buttons and calls to action ---- */
.tap-block {
  display: inline-block;
  max-width: 100%;
}

/* ---- Site header and primary nav ---- */
.nav-link {
  color: #000;
  letter-spacing: 0;
  justify-content: center;
  align-items: center;
  padding: .75em 1.125em;
  font-size: .84em;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  transition: all .4s;
  display: flex;
}
.nav-link.is-current {
  border-radius: .18em;
  background-color: #000;
  color: #fff;
}
.head-side {
  grid-column-gap: .25em;
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
  background-color: #00000047;
  border-radius: .25em;
  justify-content: flex-start;
  align-items: stretch;
  margin-left: auto;
  padding: .25em .375em .25em .25em;
  display: flex;
}
.cta-btn {
  background-color: #000;
  height: auto;
  color: #fff;
  letter-spacing: -.02em;
  border-radius: .1875em;
  justify-content: flex-start;
  align-items: stretch;
  padding: .25em .25em .25em .75em;
  font-size: .82em;
  font-weight: 500;
  text-decoration: none;
  display: flex;
}
.cta-btn-row {
  grid-column-gap: 1.125em;
  justify-content: flex-start;
  align-items: stretch;
  display: flex;
  letter-spacing: 0;
}
.cta-arrow {
  background-image: url(/pyr-assets/media/arrow-diagonal.svg);
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: contain;
  width: 100%;
  height: 100%;
}
.cta-arrow-slot {
  justify-content: center;
  align-items: stretch;
  display: flex;
  overflow: hidden;
  aspect-ratio: 1;
  border-radius: .1875em;
  width: auto;
  height: auto;
  padding: .5em;
  font-size: 1vw;
  background-color: #fff;
}
.brand-slot {
  justify-content: flex-start;
  align-items: center;
  display: flex;
}
.burger-btn {
  display: none;
}
.head-box {
  grid-row-gap: 32px;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}
.cta-lines {
  height: auto;
  margin-top: 0;
  margin-bottom: 0;
}
.cta-word {
  margin-top: auto;
  margin-bottom: auto;
}

/* ---- Buttons and calls to action ---- */
.btn.tone-brand {
  border-radius: .1875em;
  padding: .25em .25em .25em 1em;
  font-size: .9em;
  text-decoration: none;
  background-color: #fff;
  color: var(--paper);
}

/* ---- Site header and primary nav ---- */
.cta-btn:hover,
.btn:hover {
  background-color: #4d4d4d;
}

/* ---- Mobile nav drawer ---- */
.nav-drawer {
  display: none;
}

/* ---- Intro stage (hero) ---- */
.intro-stage {
  position: relative;
  overflow: hidden;
  width: 100vw;
  height: 100vh;
}
.stage-frame {
  z-index: 15;
  position: relative;
  flex-flow: column;
  display: flex;
  width: 100%;
  height: 100%;
  padding: 8.5rem 1.75rem 2.5em;
}
.stage-copy {
  grid-row-gap: 1.25em;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
  margin-top: auto;
}
.stage-canvas-bed {
  z-index: 5;
  position: absolute;
  inset: 0%;
  width: 100%;
  height: 100%;
}
.stage-row {
  justify-content: flex-end;
  align-items: flex-end;
  display: flex;
  margin-top: auto;
}
.scroll-cue {
  opacity: .65;
  letter-spacing: -.02em;
  text-transform: uppercase;
  margin-left: auto;
  font-family: Fragment Mono, sans-serif;
  font-size: .82em;
}

/* ---- Buttons and calls to action ---- */
.btn-arrow-slot {
  border-radius: .1875em;
  width: 2.375em;
  height: 2.375em;
  padding: .625em;
  background-color: #fff;
}
.btn-arrow-slot.tone-paper {
  border-radius: .1875em;
  width: 2.375em;
  height: 2.375em;
  padding: .625em;
  background-color: var(--paper);
}
.btn-arrow {
  background-image: url(/pyr-assets/media/arrow-diagonal.svg);
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: contain;
  width: 100%;
  height: 100%;
}
.btn-arrow.tone-brand {
  z-index: 8;
  background-image: url(/pyr-assets/media/arrow-accent.svg);
  background-size: cover;
  inset: 0%;
}
.btn-row {
  grid-column-gap: 4.5em;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}
.btn {
  background-color: #000;
  color: #fff;
  letter-spacing: 0;
  border-radius: .1875em;
  padding: .25em .25em .25em 1em;
  font-size: .95em;
  font-weight: 500;
  text-decoration: none;
}
.btn-slot {
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}
.btn.tone-brand {
  background-color: #000;
  color: #fff;
}

/* ---- Offers band and tag chips ---- */
.tag-dot {
  border-radius: 1px;
  width: .375em;
  height: .375em;
  margin-bottom: 1px;
  background-color: var(--paper);
}
.tag-dot.tone-brand {
  background-color: #fff;
}
.tag-word {
  grid-column-gap: 1em;
  letter-spacing: -.02em;
  text-transform: uppercase;
  justify-content: flex-start;
  align-items: center;
  font-family: Fragment Mono, sans-serif;
  font-size: .75em;
  display: flex;
}
.type-lg.offers-head {
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
  font-size: 6em;
  position: static;
}
.offers-band {
  z-index: 2;
  position: relative;
  width: auto;
  background-color: var(--ink);
}
.offers-frame {
  padding: 13em 0;
}
.offers-aside {
  grid-row-gap: 1.25em;
  flex-flow: column;
  display: flex;
  width: 42ch;
}
.offers-row {
  justify-content: space-between;
  align-items: flex-end;
  padding-left: 1.75rem;
  padding-right: 1.75rem;
  display: flex;
}
.offer-item {
  flex-basis: auto;
  width: 36em;
  height: auto;
  margin-bottom: 0;
}
.offer-card {
  position: relative;
  flex-flow: column;
  display: flex;
  overflow: hidden;
  width: 100%;
  height: 100%;
  border-radius: .375em;
  font-size: 1vw;
  text-decoration: none;
  background-color: #fff;
  color: var(--paper);
}
.offer-body {
  margin-top: 0;
}
.offer-art {
  width: 100%;
  height: 21.5em;
}
.offer-meta {
  grid-row-gap: 12px;
  flex-flow: column;
  display: flex;
  margin-top: 1.5em;
  padding: .5em 1.25em 1.25em;
}
.offer-name {
  width: 21ch;
  letter-spacing: 0;
  font-size: 1.3em;
}
.offer-note {
  width: 38ch;
  letter-spacing: 0;
  font-size: 1vw;
  line-height: 1.5;
}
.tag-chip {
  position: absolute;
  inset: 0%;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
  width: 100%;
  height: 100%;
  padding: .5em .5em 1em 1.25em;
}
.offer-kicker {
  letter-spacing: .01em;
  text-transform: uppercase;
  background-color: #ffffff26;
  border-radius: .1875em;
  margin-top: .375em;
  padding: .55em .8em;
  font-family: Fragment Mono, sans-serif;
  font-size: .6em;
}
.offer-arrow {
  justify-content: center;
  align-items: center;
  display: flex;
  border-radius: 3px;
  width: 2.25em;
  height: 2.25em;
  margin-left: auto;
  padding: .625em;
  background-color: var(--paper);
}
.offers-list {
  grid-column-gap: 5.75em;
  justify-content: flex-start;
  align-items: center;
  display: flex;
  white-space: nowrap;
}
.offers-feed {
  justify-content: flex-start;
  align-items: center;
  display: flex;
  height: 100vh;
  margin-top: 5rem;
  padding-top: 0;
}
.offers-feed.desk-only {
  width: auto;
  margin-top: 5em;
}
.offers-roll {
  justify-content: flex-start;
  align-items: center;
  display: flex;
}
.offer-crest {
  white-space: normal;
}
.offer-arrow-link {
  overflow: visible;
  border-radius: 0;
}
.tag-row {
  grid-column-gap: .25em;
  justify-content: flex-start;
  align-items: center;
  display: flex;
  margin-bottom: .75em;
}
.offers-head {
  margin-top: 8em;
  margin-left: 1.75rem;
  margin-right: 1.75rem;
  position: absolute;
  inset: 0% 0% auto;
}
.offers-band,
.site-foot {
  color: #fff;
}
.offer-card,
.offer-card .offer-kicker,
.offer-card .offer-crest,
.offer-card .note-copy {
  color: #000;
}

/* ---- Press band and article cards ---- */
.page-frame.press-flow {
  padding-top: 7em;
}
.press-band {
  margin-top: 0;
  background-color: var(--paper);
}
.press-feed {
  margin-top: 2rem;
}
.press-feed.view-desk {
  margin-top: 2em;
}
.press-tag {
  color: var(--brand);
  letter-spacing: 0;
  background-color: #0000001a;
  border-radius: .1875em;
  padding: .63em .7em .6em;
  font-size: .78em;
  font-weight: 500;
}
.press-grid {
  grid-column-gap: 1em;
  grid-row-gap: 2em;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}
.press-grid.page-home {
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
}
.press-item {
  overflow: hidden;
  border-radius: .25em;
  width: 100%;
  height: 100%;
}
.press-link {
  width: 100%;
  height: 100%;
  padding: 1em 1em 1.45em;
  text-decoration: none;
  background-color: #00000014;
  transition: all .45s;
}
.press-link:hover {
  background-color: #00000026;
}
.press-art {
  overflow: hidden;
  border-radius: .25em;
  width: 100%;
  height: 23em;
}
.press-body {
  margin-top: .875em;
}
.press-title {
  font-size: 1.4em;
  font-weight: 500;
  line-height: 1.3;
}

/* ---- Content bands (split / trades / edge / close / allies) ---- */
.trades-band {
  z-index: 3;
  position: relative;
}
.page-frame.edge-frame {
  position: relative;
}
.page-frame.split-band {
  padding-top: 7em;
  padding-bottom: 7em;
}
.sect-title {
  width: 77ch;
}
.kicker.tone-brand {
  color: var(--brand);
}
.exec-panel {
  margin-top: 17em;
}
.mid-word {
  font-size: 2.3em;
}
.sect-head {
  width: 42ch;
}
.allies-band {
  grid-row-gap: 1.25em;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  display: flex;
}
.mid-note {
  width: 47ch;
  text-align: center;
}
.fade-grid {
  z-index: 15;
  position: relative;
  margin-top: 21em;
}
.split-company {
  display: flex;
  margin-top: 0;
}
.split-left {
  width: 65%;
  height: 52em;
}
.split-right {
  flex-flow: column;
  width: 35%;
  padding-left: 1.75em;
  padding-right: 1.75em;
  display: flex;
}
.figure-slot {
  overflow: hidden;
  border-radius: 4px;
  width: 100%;
  height: 100%;
}
.tail-body {
  margin-top: auto;
}
.tail-row {
  grid-row-gap: 1.25em;
  flex-flow: column;
  display: flex;
  width: 44ch;
}
.fade-cell {
  display: none;
}
.edge-band {
  position: relative;
  width: auto;
  height: 159em;
  background-color: #fff;
}
.close-panel {
  overflow: hidden;
  width: 100vw;
  height: 125vh;
  background-color: var(--paper);
}
.close-frame {
  position: relative;
  flex-flow: column;
  display: flex;
  height: 100%;
  padding: 6.5em 1.75rem 4em;
}
.close-row {
  display: flex;
}
.close-title {
  grid-row-gap: 1.25em;
  flex-flow: column;
  display: flex;
  width: 50%;
  margin-left: auto;
}
.tail-note {
  width: 34ch;
  margin-top: auto;
}
.close-art {
  width: 100%;
  height: 100%;
}

/* ---- Site footer ---- */
.site-foot {
  width: 100vw;
  height: auto;
  background-color: var(--ink);
}
.foot-frame {
  padding: 4.5em 1.75rem 1.5em;
}
.foot-row {
  display: flex;
}
.foot-grid {
  grid-column-gap: 6em;
  grid-row-gap: 5em;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  width: 50%;
  margin-left: auto;
  display: grid;
}
.foot-link {
  letter-spacing: 0;
  font-size: .9em;
  line-height: 1.3;
  text-decoration: none;
  color: var(--paper);
  transition: all .4s;
}
.foot-link:hover {
  color: #ffffffa6;
}
.foot-head {
  opacity: .65;
  font-size: .9em;
  font-weight: 500;
}
.foot-list {
  grid-row-gap: .25em;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}
.foot-col {
  grid-row-gap: .5em;
  flex-flow: column;
  display: flex;
}
.foot-base {
  display: flex;
  margin-top: 20em;
}
.foot-brand {
  width: 18em;
}
.foot-base-row {
  justify-content: space-between;
  align-items: flex-end;
  display: flex;
  width: 35%;
}
.fine-print {
  opacity: .45;
  font-size: .9em;
  font-weight: 500;
}
.fine-print.phone-only {
  display: none;
}
.fine-block {
  justify-content: space-between;
  align-items: flex-end;
  display: flex;
  width: 50%;
  margin-left: auto;
}
.fine-link {
  opacity: .45;
  color: var(--paper);
  font-size: .9em;
  font-weight: 500;
  text-decoration: none;
}
.fine-nav {
  grid-row-gap: .375em;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}
/* round-6b MT-2: footer link stacks measured 19px tall on a 21px pitch —
   under the 24px tap floor, with ~2px dead gaps that swallowed taps
   between neighbors. Same treatment as .burger-btn: padding grows the
   hit box to 24px and closes the dead gaps; matching negative margins
   keep the rendered layout identical. (A strict WCAG 2.5.8 pass would
   need a +3px visible pitch change — held for an owner order, D-122b.) */
.foot-link.tap-block,
.fine-link.tap-block {
  padding-top: 3px;
  padding-bottom: 3px;
  margin-top: -3px;
  margin-bottom: -3px;
}
.year-stamp {
  display: none;
  margin-bottom: 0;
}
/* footer width stays 100%%, not 100vw: viewport units count the
   scrollbar and leak ~15px of sideways scroll on desktops with
   classic scrollbars. Must stay AFTER the 100vw declaration above
   (same specificity, later wins). */
.site-foot {
  width: 100%;
}
/* shared footer grid: subpages used to fall back to a 2-column
   stagger because the 5-across rules lived only in the home page.
   Hoisted here so every page renders the same 5/3/2-column footer. */
.site-foot .foot-grid {
  width: auto;
  max-width: none;
  margin-left: 0;
  flex: 1 1 auto;
  grid-template-columns: repeat(5, max-content);
  column-gap: clamp(2.4rem, 4vw, 5rem);
  row-gap: 3rem;
  justify-content: end;
}

/* ---- Embed carriers and decorative helpers ---- */
.mount:before,
.mount:after {
  content: " ";
  grid-area: 1/1/2/2;
  display: table;
}
.mount:after {
  clear: both;
}
.aux-hover,
.aux-btn {
  display: none;
}
.motion-art {
  display: none;
}
.inner-body {
  width: 30%;
  margin-left: auto;
  margin-right: 15%;
}
.aux-body {
  margin-top: 13.2em;
}
.aux-loop {
  display: none;
}
.aux-rail {
  display: none;
}
.art-skin,
.aux-art,
.aux-close {
  display: none;
}
.art-flow {
  position: absolute;
  inset: 0%;
  height: 75em;
}

/* ---- Carousel runtime skin (Splide contract class names kept) ---- */
.splide {
  position: relative;
  width: 100%;
}
.splide__track {
  width: 100%;
}
.splide__list {
  justify-content: flex-start;
  align-items: stretch;
  display: flex;
}
.splide__slide {
  flex: none;
  width: 33.3333%;
}
.splide__arrows {
  justify-content: flex-start;
  align-items: stretch;
  display: flex;
}
.splide__pagination {
  position: absolute;
  inset: auto 0% 0% auto;
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 0;
  padding-left: 0;
}
.splide__pagination__page {
  opacity: .2;
  background-color: #000000;
  width: 3em;
  height: 4px;
  margin-left: .3em;
  margin-right: 0;
  transition: all .3s;
}
.splide__pagination__page.is-active {
  opacity: 1;
  background-color: #000000;
}
.splide__arrow {
  filter: grayscale(1) contrast(1.15);
}

/* ---- Utilities and interaction states ---- */
html.touch-on * {
  background-attachment: scroll!important;
}
.shrimp-flow.shrimp-flow--rtl {
  top: 8em;
}
.flow2-wrap {
  position: absolute;
  inset: 0%;
  margin-top: 0;
}
.flow2-wrap.flow2-wrap--bottom {
  margin-top: -20.5em;
}
.align-box.seat-a {
  margin-left: 55%;
}
.align-box.seat-b {
  margin-top: 25em;
  margin-left: 20%;
}
.align-box.seat-c {
  margin-top: 15em;
  margin-left: 40%;
}
.align-box.seat-d {
  margin-top: 15em;
  margin-left: 20%;
}
.theme-light {
  position: relative;
}
.tone-paper {
  background-color: var(--paper);
}

/* ============ Narrow desktop ============ */
@media (max-width:1080px) {

  /* ---- Site footer ---- */
  .site-foot .foot-grid {
    grid-template-columns: repeat(3, max-content);
    justify-content: end;
    column-gap: clamp(1.6rem, 4vw, 3rem);
    row-gap: 1.7rem;
  }
}

/* ============ Tablet and below ============ */
@media screen and (max-width:991px) {

  /* ---- Element base (normalize-derived; element selectors keep their computed defaults) ---- */
  h2 {
    font-size: 3em;
  }
  h3 {
    font-size: 2.5em;
  }
  h4 {
    font-size: 2.3em;
  }
  p,
  ul,
  ol {
    font-size: 1.8em;
  }
  em {
    font-size: 1.5em;
    line-height: 1.4;
  }
  blockquote {
    font-size: 1.8em;
  }

  /* ---- Typography scale and copy blocks ---- */
  .type-xl {
    font-size: 5.6em;
  }
  .type-xl.tone-brand {
    font-size: 5.5em;
  }
  .type-lg {
    font-size: 6.3em;
  }
  .type-lg.t-sm {
    font-size: 5.2em;
  }
  .type-lg.t-xs {
    font-size: 3.7em;
  }
  .type-lg.tone-brand {
    width: auto;
    font-size: 5.3em;
  }
  .body-copy {
    font-size: 1.45em;
  }
  .note-copy {
    font-size: 1.3em;
  }

  /* ---- Page shells and containers ---- */
  .page-frame {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .shell {
    display: block;
    overflow: hidden;
    width: 100vw;
    padding: 5rem 1.25rem;
  }

  /* ---- Site header and primary nav ---- */
  .site-head {
    /* owner-fixes-6 fix3: keep the header (and its Close button) above the
       open .nav-drawer (z 102) across the WHOLE drawer breakpoint range.
       This z-index:104 previously existed only in the <=767px block, so at
       768-991px the open menu sheet covered the header and the visible
       "Close" control could not be tapped. Mirrors the <=767px behavior. */
    z-index: 104;
    background-color: #fff;
  }
  .head-frame {
    padding: 1rem 1.2rem;
  }
  .head-row {
    display: flex;
  }
  .brand-link {
    width: 14.5em;
    height: 2.8em;
  }
  .head-nav,
  .head-side {
    display: none;
  }
  .burger-box {
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    grid-template-rows: auto auto;
    grid-template-columns: 1fr 1fr;
    grid-auto-columns: 1fr;
    place-items: center;
    width: 32px;
    height: 32px;
    display: grid;
    position: relative;
  }
  .burger-dot {
    border-radius: .5px;
    width: 8px;
    height: 8px;
    background-color: #000;
  }
  .burger-dot.burger-dot-mid {
    position: absolute;
    inset: 0%;
    margin: auto;
    transform: scale(0);
  }
  .burger-btn {
    grid-column-gap: 12px;
    justify-content: flex-start;
    align-items: center;
    display: flex;
    margin-left: auto;
    font-size: 1.85em;
  }
  .cta-lines {
    margin-top: 15em;
  }
  .burger-word-close {
    display: none;
  }
  /* burger hit area: measured 74x24px at 390w, below the 44px touch
     floor. Padding grows the target; matching negative margins keep
     the layout box unchanged. */
  .burger-btn {
    padding-top: 14px;
    padding-bottom: 14px;
    margin-top: -14px;
    margin-bottom: -14px;
  }

  /* ---- Mobile nav drawer ---- */
  .nav-drawer {
    z-index: 102;
    position: fixed;
    inset: 0%;
    display: block;
    width: 100vw;
    height: 100dvh;
    background-color: var(--paper);
    transform: translate(100%);
  }
  .drawer-frame {
    flex-flow: column;
    display: flex;
    width: 100%;
    height: 100svh;
    padding: 8em 24px 24px;
  }
  .drawer-list {
    grid-row-gap: 6px;
    flex-flow: column;
    display: flex;
    margin-top: auto;
  }
  .drawer-link {
    grid-column-gap: 16px;
    color: var(--brand);
    justify-content: flex-start;
    align-items: center;
    font-size: 3.5em;
    font-weight: 500;
    text-decoration: none;
    display: flex;
  }
  .drawer-link.is-current {
    text-decoration: none;
  }
  .drawer-marker {
    border-radius: 1px;
    width: 8px;
    height: 8px;
    /* owner-fixes-6 fix3: the current-page dot was #fff on the white
       drawer sheet (--paper #ffffff) — invisible, so the is-current link
       just looked randomly indented. Ink it like the drawer links. */
    background-color: var(--brand);
  }
  .drawer-link {
    min-height: 44px;
  }

  /* ---- Intro stage (hero) ---- */
  .stage-frame {
    padding: 7rem 1.25rem 4em;
  }
  .stage-copy {
    grid-row-gap: 2.5em;
  }
  .scroll-cue {
    font-size: 1.25em;
  }

  /* ---- Buttons and calls to action ---- */
  .btn-arrow-slot {
    border-radius: 3px;
  }
  .btn,
  .btn.tone-brand {
    border-radius: 3px;
    font-size: 1.5em;
  }

  /* ---- Offers band and tag chips ---- */
  .tag-dot {
    width: .6em;
    height: .6em;
  }
  .tag-word {
    font-size: 1.35em;
  }
  .type-lg.offers-head {
    font-size: 7.6em;
  }
  .offers-frame {
    padding-top: 13em;
    padding-bottom: 13em;
  }
  .offers-aside {
    grid-row-gap: 2.5em;
    width: 68ch;
  }
  .offers-row {
    padding-left: 20px;
    padding-right: 20px;
  }
  .offer-item {
    height: 48em;
  }
  .offer-card {
    border-radius: .25rem;
  }
  .offer-art {
    height: 34em;
  }
  .offer-meta {
    margin-top: auto;
    padding-bottom: 16px;
    padding-left: 16px;
    padding-right: 16px;
  }
  .offer-name {
    width: 100%;
  }
  .offer-note {
    width: 54ch;
  }
  .tag-chip {
    padding-top: 12px;
    padding-left: 16px;
    padding-right: 12px;
  }
  .offer-kicker {
    border-radius: 3px;
    padding: .7em 1.15em;
    font-size: 1.2em;
  }
  .offer-arrow {
    width: 3.5em;
    height: 3.5em;
  }
  .offers-list {
    grid-column-gap: 12px;
    align-items: stretch;
    padding-left: 16px;
    padding-right: 16px;
  }
  .offers-feed {
    overflow: scroll;
    height: auto;
    margin-top: 92px;
  }
  .offers-feed.desk-only {
    display: none;
  }
  .offer-crest {
    font-size: 2.1em;
  }
  .tag-row {
    grid-column-gap: .7em;
    margin-bottom: 1em;
  }
  .offers-head {
    margin-top: 0;
    margin-left: 0;
    margin-right: 0;
    position: static;
  }

  /* ---- Press band and article cards ---- */
  .page-frame.press-flow {
    padding-top: 72px;
    padding-bottom: 92px;
  }
  .press-band {
    overflow: hidden;
    width: 100vw;
  }
  .press-feed {
    margin-top: 24px;
  }
  .press-feed.view-desk {
    display: none;
  }
  .press-feed.view-phone {
    margin-top: 1.5rem;
  }
  .press-tag {
    border-radius: 3px;
    padding: .7em .8em;
    font-size: 1.4em;
  }
  .press-grid {
    grid-column-gap: 1.5em;
    grid-row-gap: 2.5em;
    grid-template-rows: auto;
    grid-template-columns: 1fr 1fr;
  }
  .press-link {
    overflow: hidden;
    border-radius: 3px;
    padding: 1.5em;
  }
  .press-art {
    border-radius: 3px;
    height: 33em;
  }
  .press-body {
    margin-top: 1.8em;
  }
  .press-title {
    font-size: 2em;
  }
  .shell.press-rail {
    overflow: visible;
    padding: .1rem 0;
  }

  /* ---- Content bands (split / trades / edge / close / allies) ---- */
  .page-frame.edge-frame {
    padding-top: 20em;
    padding-bottom: 35em;
  }
  .page-frame.split-band {
    padding-top: 32px;
    padding-bottom: 32px;
  }
  .sect-title {
    width: 87ch;
  }
  .exec-panel {
    margin-top: 20em;
  }
  .mid-word {
    font-size: 3.5em;
  }
  .sect-head {
    width: 63ch;
  }
  .allies-band {
    grid-row-gap: 1.35em;
  }
  .mid-note {
    width: 66ch;
  }
  .split-left {
    width: 50%;
  }
  .split-right {
    width: 50%;
    padding-left: 3em;
    padding-right: 3em;
  }
  .tail-row {
    width: 66ch;
  }
  .close-panel {
    height: 90vh;
  }
  .close-frame {
    padding: 8em 1.25rem 3.5em;
  }
  .close-title {
    grid-row-gap: 2.7em;
    width: 55%;
  }
  .tail-note {
    width: 54ch;
  }

  /* ---- Site footer ---- */
  .foot-frame {
    padding: 5rem 1.25rem 1.5rem;
  }
  .foot-grid {
    grid-column-gap: 1em;
  }
  .foot-link,
  .foot-head {
    font-size: 1.5em;
  }
  .foot-list {
    grid-row-gap: .5em;
  }
  .foot-col {
    grid-row-gap: 1.25em;
  }
  .foot-base {
    margin-top: 26em;
  }
  .foot-brand {
    width: 21em;
  }
  .foot-base-row {
    width: 42%;
  }
  .fine-print,
  .fine-link,
  .fine-link.is-current {
    font-size: 1.5em;
  }
  .fine-nav {
    grid-row-gap: .7em;
  }

  /* ---- Embed carriers and decorative helpers ---- */
  .inner-body {
    width: 45%;
    margin-right: 0%;
  }
  .aux-rail {
    display: none;
  }

  /* ---- Carousel runtime skin (Splide contract class names kept) ---- */
  .splide__list {
    grid-column-gap: .4rem;
  }
  .splide__slide {
    width: 20rem;
  }
  .splide__slide.press-rail {
    width: 23rem;
  }
  .splide__arrows {
    grid-column-gap: .6rem;
    justify-content: flex-end;
    align-items: stretch;
    display: flex;
    margin-top: 1.5rem;
  }
  .splide__arrow {
    border-radius: 4px;
    width: 2.7rem;
    height: 2.7rem;
    background-color: #ffffff;
  }
  .splide__arrow.splide__arrow--prev {
    background-color: #0000001a;
    background-image: url(/pyr-assets/media/arrow-left.png);
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: 24px 24px;
    width: 3rem;
    height: 3rem;
  }
  .splide__arrow.splide__arrow--next {
    background-color: #0000001a;
    background-image: url(/pyr-assets/media/arrow-slider.png);
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: 24px 24px;
    width: 3rem;
    height: 3rem;
  }
  .splide__pagination {
    grid-column-gap: .1rem;
    grid-row-gap: 0rem;
    flex-flow: row;
    padding-top: 0;
    position: relative;
  }
  .splide__pagination__page {
    opacity: 100;
    background-color: #00000059;
    border-radius: 100%;
    width: .4rem;
    height: .4rem;
    margin-left: 0;
    margin-right: .3em;
  }
  .splide__pagination__page.is-active {
    border-radius: 100%;
    width: .4rem;
    height: .4rem;
    background-color: #fff;
    opacity: 1;
  }

  /* ---- Utilities and interaction states ---- */
  .shrimp-flow.shrimp-flow--rtl {
    top: 16.2em;
  }
  .flow2-wrap.flow2-wrap--bottom {
    display: block;
  }
}

/* ============ Phones, landscape and below ============ */
@media screen and (max-width:767px) {

  /* ---- Element base (normalize-derived; element selectors keep their computed defaults) ---- */
  h2 {
    margin-top: 20px;
    margin-bottom: 10px;
    font-size: 3.3em;
  }
  h3 {
    font-size: 3em;
  }
  h4 {
    font-size: 2.6em;
  }
  p {
    font-size: 2.1em;
  }
  ul {
    padding-left: 1.05em;
    font-size: 2.25em;
  }
  ol {
    font-size: 2.25em;
  }
  strong {
    font-weight: 500;
    color: inherit;
  }
  em {
    font-size: 1.7em;
  }
  blockquote {
    font-size: 2.25em;
    line-height: 1.3;
  }

  /* ---- Typography scale and copy blocks ---- */
  .type-lg {
    margin-top: 0;
    margin-bottom: 0;
  }
  .type-lg.t-sm {
    font-size: 7.2em;
  }
  .type-lg.t-xs {
    font-size: 5em;
  }
  .type-lg.tone-brand {
    width: auto;
    font-size: 6em;
  }
  .body-copy {
    font-size: 1.9em;
  }
  .body-copy.tone-brand {
    font-size: 2.15em;
  }
  .note-copy {
    font-size: 1.7em;
  }

  /* ---- Page shells and containers ---- */
  .page-frame {
    padding: 92px 1rem;
  }
  .shell {
    overflow: hidden;
    padding: 3.25rem 1rem;
  }

  /* ---- Site header and primary nav ---- */
  .site-head {
    z-index: 104;
    background-color: #fff;
  }
  .brand-link {
    width: 17em;
    height: 2.8em;
  }
  .burger-box {
    width: 30px;
    height: 30px;
  }
  .burger-dot {
    border-radius: .5px;
    width: 7px;
    height: 7px;
  }
  .burger-dot.burger-dot-mid {
    position: absolute;
    transform: scale(0);
  }
  .burger-btn {
    font-size: 2em;
  }
  .head-box {
    grid-row-gap: 24px;
  }
  .cta-lines {
    height: auto;
    margin-top: 10em;
  }

  /* ---- Mobile nav drawer ---- */
  .nav-drawer {
    z-index: 102;
    position: fixed;
    inset: 0%;
    width: 100vw;
    height: 100dvh;
    background-color: var(--paper);
    transform: translate(100%);
  }
  .drawer-frame {
    flex-flow: column;
    display: flex;
    width: 100%;
    height: 100svh;
    padding: 10em 16px 32px;
  }
  .drawer-list {
    grid-row-gap: 6px;
    flex-flow: column;
    display: flex;
    margin-top: auto;
  }
  .drawer-link {
    grid-column-gap: 12px;
    color: var(--brand);
    justify-content: flex-start;
    align-items: center;
    font-size: 4.5em;
    font-weight: 500;
    display: flex;
  }
  .drawer-marker {
    border-radius: 1px;
    width: 6px;
    height: 6px;
    /* owner-fixes-6 fix3: same white-on-white current-page dot fix. */
    background-color: var(--brand);
  }

  /* ---- Intro stage (hero) ---- */
  .stage-frame {
    padding: 6.5rem 1rem 4em;
  }

  /* ---- Buttons and calls to action ---- */
  .btn,
  .btn.tone-brand {
    font-size: 1.85em;
  }

  /* ---- Offers band and tag chips ---- */
  .tag-dot {
    width: .85em;
    height: .85em;
  }
  .type-lg.offers-head {
    font-size: 8em;
  }
  .offers-aside {
    grid-row-gap: 2.5em;
    margin-top: 8px;
  }
  .offers-row {
    flex-flow: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .offer-item {
    width: 45em;
    height: 54em;
  }
  .offer-note {
    width: 100%;
  }
  .offer-kicker {
    font-size: 1.4em;
  }
  .offer-arrow {
    width: 4em;
    height: 4em;
    padding: .8em;
  }
  .offer-crest {
    font-size: 2.4em;
  }
  .tag-row {
    margin-bottom: 0;
  }

  /* ---- Press band and article cards ---- */
  .press-band {
    overflow: hidden;
    width: 100vw;
  }
  .press-feed.view-desk {
    display: none;
  }
  .press-feed.view-phone {
    margin-top: 1.35rem;
  }
  .press-tag {
    padding-left: .8em;
    padding-right: .8em;
    font-size: 1.6em;
  }
  .press-grid {
    grid-column-gap: 1.2em;
    grid-row-gap: 2.5em;
  }
  .press-grid.page-home {
    grid-template-columns: 1fr;
  }
  .press-link {
    padding: 2em;
  }
  .press-art {
    height: 36em;
  }
  .press-title {
    font-size: 2.3em;
  }
  .press-head {
    margin-top: .6rem;
  }
  .shell.press-rail {
    width: 100vw;
    padding: .1rem 0;
  }

  /* ---- Content bands (split / trades / edge / close / allies) ---- */
  .allies-band {
    grid-row-gap: 1.45em;
  }
  .mid-note {
    width: 85ch;
  }
  .split-company {
    flex-flow: column;
  }
  .split-left {
    width: 100%;
    height: 62em;
  }
  .split-right {
    width: 70%;
    margin-top: 4em;
    padding-left: 0;
    padding-right: 0;
  }
  .split-head {
    width: 76ch;
  }
  .tail-body {
    width: 79ch;
    margin-top: 8rem;
  }
  .tail-row {
    grid-row-gap: 3em;
    width: 100%;
  }
  .close-panel {
    height: 85vh;
  }
  .close-title {
    grid-row-gap: 2.5em;
    width: 60%;
  }
  .tail-note {
    width: 79ch;
  }

  /* ---- Site footer ---- */
  .foot-frame {
    padding-top: 4.5rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .foot-row {
    flex-flow: column;
  }
  .foot-grid {
    grid-row-gap: 6em;
    width: 100%;
    margin-top: 6em;
  }
  .foot-link,
  .foot-head {
    font-size: 1.95em;
  }
  .foot-col {
    grid-row-gap: 1.35em;
  }
  .foot-base {
    grid-row-gap: 2em;
    flex-flow: column;
    margin-top: 24em;
  }
  .foot-brand {
    width: 100%;
  }
  .foot-base-row {
    grid-row-gap: 6em;
    flex-flow: column;
    order: 9999;
    width: 100%;
  }
  .fine-print {
    font-size: 1.85em;
  }
  .fine-print.desk-only {
    display: none;
  }
  .fine-print.phone-only {
    display: block;
  }
  .fine-block {
    width: 100%;
    margin-bottom: 20px;
  }
  .fine-link,
  .fine-link.is-current {
    font-size: 1.95em;
  }
  .fine-nav {
    grid-row-gap: 1em;
  }
  .foot-phone-row {
    order: 9999;
    justify-content: space-between;
    display: flex;
    width: 100%;
  }

  /* ---- Embed carriers and decorative helpers ---- */
  .aux-body {
    margin-top: 7.4em;
  }
  .aux-rail {
    display: none;
  }

  /* ---- Carousel runtime skin (Splide contract class names kept) ---- */
  .splide__list {
    grid-column-gap: .6rem;
  }
  .splide__slide {
    width: 18.5rem;
  }
  .splide__arrows {
    grid-column-gap: .5rem;
  }
  .splide__arrow.splide__arrow--prev,
  .splide__arrow.splide__arrow--next {
    width: 2.8rem;
    height: 2.8rem;
    background-color: #0000001a;
  }
  .splide__pagination {
    grid-column-gap: .1rem;
    grid-row-gap: 0rem;
    flex-flow: row;
    padding-top: 0;
  }
  .splide__pagination__page {
    border-radius: 100%;
    width: .4rem;
    height: .4rem;
    opacity: 1;
    background-color: #00000059;
  }
  .splide__pagination__page.is-active {
    border-radius: 100%;
    width: .4rem;
    height: .4rem;
    background-color: #fff;
    opacity: 1;
  }

  /* ---- Utilities and interaction states ---- */
  .shrimp-flow.shrimp-flow--rtl {
    top: 9.3em;
  }
  .flow2-wrap {
    margin-top: 3.2em;
  }
  .align-box.seat-a {
    margin-left: 51%;
  }
}

/* ============ Phones, landscape and below (house additions) ============ */
@media (max-width:767px) {

  /* ---- Site footer ---- */
  .site-foot .foot-grid {
    grid-template-columns: repeat(2, 1fr);
    justify-content: stretch;
    column-gap: 1.6rem;
    row-gap: 1.5rem;
    width: 100%;
  }
}

/* ============ Phones, portrait ============ */
@media screen and (max-width:479px) {

  /* ---- Element base (normalize-derived; element selectors keep their computed defaults) ---- */
  h2 {
    font-size: 5.2em;
  }
  h3 {
    font-size: 4.5em;
  }
  h4 {
    font-size: 4.2em;
  }
  p {
    font-size: 3.5em;
  }
  ul {
    padding-left: 1em;
    font-size: 3.5em;
  }
  ol {
    font-size: 3.5em;
  }
  em {
    position: relative;
    top: 6px;
    font-size: 3.5em;
    line-height: 1.3;
    opacity: .65;
  }
  blockquote {
    font-size: 3.5em;
  }

  /* ---- Typography scale and copy blocks ---- */
  .type-xl {
    font-size: 8.4em;
  }
  .type-lg {
    font-size: 8.5em;
    line-height: 1.08;
  }
  .type-lg.t-sm {
    font-size: 10em;
  }
  .type-lg.t-xs {
    font-size: 8em;
  }
  .type-lg.tone-brand {
    width: 100%;
    font-size: 8.7em;
    line-height: 1;
  }
  .body-copy {
    font-size: 3.7em;
  }
  .body-copy.tone-brand {
    font-size: 3.8em;
  }
  .note-copy {
    font-size: 3.5em;
  }

  /* ---- Page shells and containers ---- */
  .page-frame {
    padding: 15em 1rem;
  }
  .shell {
    width: 100vw;
    padding-top: 3.25rem;
    padding-bottom: 3.25rem;
    overflow: hidden;
  }

  /* ---- Site header and primary nav ---- */
  .site-head {
    background-color: #fff;
  }
  .head-frame {
    padding: .85rem 16px;
  }
  .head-row {
    display: flex;
  }
  .brand-link {
    width: 26em;
    height: 5em;
    margin-right: auto;
  }
  .head-nav,
  .head-side {
    display: none;
  }
  .brand-slot {
    align-self: auto;
  }
  .burger-box {
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    grid-template-rows: auto auto;
    grid-template-columns: 1fr 1fr;
    grid-auto-columns: 1fr;
    place-items: center;
    width: 24px;
    height: 24px;
    display: grid;
    position: relative;
  }
  .burger-dot {
    border-radius: .5px;
    width: 6px;
    height: 6px;
    background-color: #000;
  }
  .burger-dot.burger-dot-mid {
    position: absolute;
    transform: scale(0);
  }
  .burger-btn {
    grid-column-gap: 10px;
    justify-content: flex-start;
    align-items: center;
    display: flex;
    margin-left: auto;
    letter-spacing: 0;
    font-size: 4em;
  }
  .cta-lines {
    margin-top: 27vh;
  }
  .burger-word-close {
    display: none;
  }
  .burger-word-open {
    display: block;
  }

  /* ---- Mobile nav drawer ---- */
  .nav-drawer {
    z-index: 102;
    transform: translate(100%);
  }
  .drawer-frame {
    padding-bottom: 24px;
  }
  .drawer-link {
    font-size: 6.5em;
  }

  /* ---- Intro stage (hero) ---- */
  .stage-frame {
    height: 100svh;
    padding: 25em 1rem 10em;
  }
  .stage-copy {
    grid-row-gap: 16px;
    width: 100%;
  }
  .stage-canvas-bed {
    margin-top: -10em;
    margin-bottom: 0;
    bottom: 0%;
  }
  .stage-row {
    flex-flow: column;
  }
  .scroll-cue {
    display: none;
    margin-top: 42px;
  }
  .stage-title {
    width: 100%;
  }

  /* ---- Buttons and calls to action ---- */
  .btn-arrow-slot {
    width: 42px;
    height: 42px;
    margin-left: auto;
    padding: .8rem;
  }
  .btn-arrow-slot.tone-paper {
    justify-content: center;
    align-items: center;
    display: flex;
    width: 3em;
    height: 3em;
    padding: .8em;
  }
  .btn {
    width: 100%;
    font-size: 3.6em;
  }
  .btn.tone-brand {
    font-size: 3.5em;
  }
  .btn-slot {
    width: 100%;
  }

  /* ---- Offers band and tag chips ---- */
  .tag-dot {
    width: 2em;
    height: 2em;
    font-size: 1vw;
  }
  .tag-dot.tone-brand {
    font-size: 1vw;
  }
  .tag-word {
    grid-column-gap: .9em;
    font-size: 3em;
  }
  .type-lg.offers-head {
    font-size: 15em;
  }
  .offers-frame {
    padding-top: 5.25rem;
    padding-bottom: 1rem;
  }
  .offers-aside {
    grid-row-gap: 4em;
    width: 100%;
    margin-top: 20px;
  }
  .offers-row {
    flex-flow: column;
    justify-content: flex-start;
    align-items: flex-start;
    padding-left: 16px;
    padding-right: 16px;
  }
  .offers-title {
    width: 100%;
  }
  .offer-item {
    width: 86em;
    height: 110.1em;
  }
  .offer-art {
    height: 20rem;
  }
  .offer-meta {
    margin-top: auto;
  }
  .offer-name {
    width: 100%;
  }
  .offer-note {
    width: 100%;
    font-size: 1vw;
  }
  .offer-kicker {
    font-size: 2.8em;
  }
  .offer-arrow {
    width: 8em;
    height: 8em;
    padding: .8em;
  }
  .offers-list {
    grid-column-gap: 12px;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
  }
  .offers-feed {
    height: auto;
    margin-top: 52px;
    padding-left: 16px;
    padding-right: 16px;
    overflow: scroll;
  }
  .offer-crest {
    font-size: 5em;
  }
  .offer-arrow-link {
    overflow: visible;
  }
  .tag-row {
    grid-column-gap: 1.25em;
  }

  /* ---- Press band and article cards ---- */
  .page-frame.press-flow {
    padding-top: 52px;
  }
  .press-band {
    overflow: hidden;
    margin-top: 0;
  }
  .press-feed {
    margin-top: 24px;
  }
  .press-feed.view-desk {
    display: none;
    margin-top: 1.5rem;
  }
  .press-feed.view-phone {
    margin-top: 3em;
  }
  .press-tag {
    padding: .6em 1.15em;
    font-size: 3.2em;
  }
  .press-grid {
    grid-column-gap: 0px;
    grid-row-gap: 2.5em;
    grid-template-columns: 1fr;
  }
  .press-grid.page-home {
    grid-template-columns: 1fr;
  }
  .press-link {
    overflow: hidden;
    border-radius: .25rem;
    padding: 2.35em 2.35em 3.15em;
  }
  .press-art {
    height: 58em;
  }
  .press-body {
    margin-top: 3em;
  }
  .press-title {
    font-size: 4.2em;
  }
  .press-head {
    margin-top: 3em;
  }
  .shell.press-rail {
    overflow: visible;
    width: 100vw;
    padding: .1rem 0;
  }

  /* ---- Content bands (split / trades / edge / close / allies) ---- */
  .page-frame.edge-frame {
    padding-top: 15em;
    padding-bottom: 19em;
  }
  .page-frame.split-band {
    padding-top: 1rem;
    padding-bottom: 3.25rem;
  }
  .sect-title {
    width: 100%;
  }
  .exec-panel {
    margin-top: 62em;
  }
  .mid-word {
    font-size: 7em;
  }
  .sect-head {
    width: 100%;
  }
  .allies-band {
    grid-row-gap: 3em;
  }
  .mid-note {
    width: 100%;
  }
  .fade-grid {
    margin-top: 21em;
  }
  .split-company {
    flex-flow: column;
  }
  .split-left {
    width: 100%;
    height: 102em;
  }
  .split-right {
    width: 100%;
    margin-top: 5em;
    padding-left: 0;
    padding-right: 0;
  }
  .split-head {
    width: 125ch;
    margin-top: 0;
  }
  .tail-body {
    width: 100%;
    margin-top: 5.75rem;
  }
  .tail-row {
    grid-row-gap: 4em;
    width: 100%;
  }
  .edge-band {
    height: auto;
  }
  .close-panel {
    height: 90vh;
  }
  .close-frame {
    padding: 52px 16px 42px;
  }
  .close-row {
    flex-flow: column;
  }
  .close-title {
    grid-row-gap: 4em;
    width: 100%;
    margin-top: 42px;
    margin-left: 0;
  }
  .tail-note {
    width: 100%;
  }
  .close-art {
    width: 100%;
    height: 100%;
  }

  /* ---- Site footer ---- */
  .foot-frame {
    padding: 4.25rem 16px 24px;
  }
  .foot-row {
    flex-flow: column;
  }
  .foot-grid {
    grid-column-gap: 1em;
    grid-row-gap: 9em;
    grid-template-columns: .75fr 1fr;
    width: 100%;
    margin-top: 52px;
    margin-left: 0;
  }
  .foot-link,
  .foot-head {
    font-size: 3.8em;
  }
  .foot-col {
    grid-row-gap: 3em;
  }
  .foot-base {
    grid-row-gap: 12px;
    flex-flow: column;
    margin-top: 92px;
  }
  .foot-brand {
    width: 100%;
  }
  .foot-base-row {
    flex-flow: column;
    width: 100%;
    margin-top: 24px;
  }
  .fine-print {
    font-size: 3.4em;
  }
  .fine-print.desk-only {
    display: none;
  }
  .fine-print.phone-only {
    display: block;
  }
  .fine-block {
    order: -9999;
    width: 100%;
  }
  .fine-link,
  .fine-link.is-current {
    font-size: 3.5em;
  }
  .fine-nav {
    grid-row-gap: 1.5em;
  }
  .foot-phone-row {
    justify-content: space-between;
    display: flex;
    width: 100%;
    margin-top: 20px;
  }

  /* ---- Embed carriers and decorative helpers ---- */
  .inner-body {
    width: 80%;
    margin-right: 0%;
  }
  .aux-body {
    margin-top: 12em;
  }
  .aux-rail {
    display: none;
  }
  .inline-mount {
    transition: all .45s;
  }
  .inline-mount:hover {
    opacity: .75;
  }
  .aux-active {
    display: none;
  }

  /* ---- Carousel runtime skin (Splide contract class names kept) ---- */
  .splide__track {
    width: 96%;
  }
  .splide__slide.press-rail {
    width: 19rem;
  }
  .splide__arrows {
    justify-content: flex-end;
    align-items: stretch;
    margin-top: 3.5em;
  }
  .splide__arrow.splide__arrow--prev,
  .splide__arrow.splide__arrow--next {
    border: 1px #00000059;
    width: 2.6rem;
    height: 2.6rem;
    background-color: #00000014;
  }
  .splide__pagination {
    grid-column-gap: .2rem;
    grid-row-gap: 0rem;
    flex-flow: row;
    padding-top: 0;
    bottom: 0;
  }
  .splide__pagination__page {
    border-radius: 100%;
    width: .4rem;
    height: .4rem;
    margin-right: .2rem;
    opacity: 1;
    background-color: #00000059;
  }
  .splide__pagination__page.is-active {
    border-radius: 100%;
    width: .4rem;
    height: .4rem;
    margin-right: .2rem;
    background-color: #fff;
  }

  /* ---- Utilities and interaction states ---- */
  .shrimp-flow.shrimp-flow--rtl {
    top: 25.5em;
  }
  .flow2-wrap {
    display: none;
    margin-top: -7em;
  }
  .flow2-wrap.flow2-wrap--bottom {
    display: none;
  }
  .align-box.seat-a {
    margin-left: 0%;
  }
  .align-box.seat-b,
  .align-box.seat-c,
  .align-box.seat-d {
    margin-top: 8em;
    margin-left: 0%;
  }
}
