/* ==========================================================================
   Highway One Asset Management — highwayoneam.com
   Single stylesheet for the whole site.

   DESIGN TOKENS (measured from the live Wix site at a 2240px viewport):
   - Background:  #FAF8EB (warm cream)
   - Ink:         #000000
   - Hover ink:   #6E6E6E (0.4s ease transition — same as current site)
   - Typeface:    Kings Caslon Display (loaded from Wix static CDN,
                  licensed via the Highway One Wix subscription)
   - Scaling:     the whole desktop layout scales linearly with viewport
                  width, exactly like the current Wix site. 1u = 100vw/2240.
   ========================================================================== */

/* ---- Fonts (same files the live site loads) ---- */
@font-face {
  font-family: 'Kings Caslon';
  src: url('https://static.wixstatic.com/ufonts/614df1_cc991fba682244c4970f9d2888ae90cb/woff2/file.woff2') format('woff2'),
       url('https://static.wixstatic.com/ufonts/614df1_cc991fba682244c4970f9d2888ae90cb/woff/file.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kings Caslon';
  src: url('https://static.wixstatic.com/ufonts/614df1_f2b447e742614a00a128c49eda48b26c/woff2/file.woff2') format('woff2'),
       url('https://static.wixstatic.com/ufonts/614df1_f2b447e742614a00a128c49eda48b26c/woff/file.woff') format('woff');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
/* Display cut used for the header wordmark + menu links */
@font-face {
  font-family: 'Kings Caslon Display';
  src: url('https://static.wixstatic.com/ufonts/e51252_eb5e3411d6b44649b6e464f982c8707b/woff2/file.woff2') format('woff2'),
       url('https://static.wixstatic.com/ufonts/e51252_eb5e3411d6b44649b6e464f982c8707b/woff/file.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --u: calc(100vw / 2240);      /* 1 design pixel */
  --bg: #FAF8EB;
  --ink: #000000;
  --ink-hover: #6E6E6E;
  --serif: 'Kings Caslon', Georgia, 'Times New Roman', serif;
  --display: 'Kings Caslon Display', 'Kings Caslon', Georgia, serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

/* Smooth cross-fade between pages in browsers that support
   cross-document view transitions (Chrome, Safari); ignored elsewhere. */
@view-transition { navigation: auto; }

html { background: var(--bg); }

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--serif);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  /* Sticky footer: on tall windows short pages stretch so the footer
     sits at the bottom instead of floating mid-screen. */
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main { flex: 1 0 auto; }
.site-header, .site-footer { flex: none; }

/* Short pages (home, contact, sign-in, partner materials): distribute any
   extra vertical space around the content at a 2:3 ratio, so the content
   sits at the optical center on tall windows. On windows the content
   already fills, the spacers collapse to zero and nothing changes. */
main.v-center { display: flex; flex-direction: column; }
main.v-center::before { content: ''; flex: 2 0 0; }
main.v-center::after { content: ''; flex: 3 0 0; }

a {
  color: inherit;
  text-decoration: none;
  transition: color .4s ease;
}
a:hover { color: var(--ink-hover); }

img { display: block; max-width: 100%; }

u, .u { text-decoration: underline; text-underline-offset: 0.08em; }

/* ==========================================================================
   HEADER  (identical on every page)
   ========================================================================== */
.site-header {
  position: relative;
  height: calc(150 * var(--u));
  font-family: var(--display);
}
.site-header a { display: block; position: absolute; white-space: nowrap; }

.nav-principal        { left: calc(309  * var(--u)); top: calc(71 * var(--u)); }
.nav-publicmaterials  { left: calc(511  * var(--u)); top: calc(71 * var(--u)); }
.nav-partnermaterials { left: calc(1534 * var(--u)); top: calc(71 * var(--u)); }
.nav-contact          { left: calc(1843 * var(--u)); top: calc(71 * var(--u)); }
.site-header .nav-link { font-size: calc(28.295 * var(--u)); line-height: 1.3; }

.wordmark {
  left: 50%;
  transform: translateX(-50%);
  top: calc(59 * var(--u));
  font-size: calc(47.158 * var(--u));
  line-height: 1.3;
  text-align: center;
  letter-spacing: 0;
}

/* Hamburger — mobile only (opens the menu overlay) */
.hamburger {
  display: none;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 8px;
}
.hamburger svg { display: block; width: 26px; height: 26px; }

/* ==========================================================================
   MENU OVERLAY (mobile) — replaces the old "menu page" workaround
   ========================================================================== */
.menu-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: var(--bg);
  z-index: 100;
  overflow-y: auto;
  padding: 24px;
  text-align: center;
}
.menu-overlay.open { display: block; }
.menu-close {
  position: absolute;
  top: 16px;
  left: 16px;
  background: none;
  border: 0;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  font-family: var(--serif);
  color: var(--ink);
  padding: 8px;
}
.menu-overlay .menu-wordmark {
  font-family: var(--display);
  font-size: clamp(30px, 9vw, 44px);
  margin: 56px 0 28px;
  display: block;
}
.menu-overlay nav a {
  display: block;
  font-family: var(--display);
  font-size: clamp(22px, 6.5vw, 30px);
  padding: 12px 0;
}
.menu-overlay .menu-legal { margin-top: 36px; }
.menu-overlay .menu-legal a {
  display: block;
  font-family: var(--serif);
  font-size: clamp(15px, 4.2vw, 18px);
  padding: 8px 0;
}
.menu-overlay .menu-copyright {
  margin-top: 32px;
  font-size: clamp(13px, 3.8vw, 16px);
}

/* ==========================================================================
   FOOTER  (identical on every page)
   ========================================================================== */
.site-footer {
  position: relative;
  height: calc(60 * var(--u));
  font-size: calc(18.379 * var(--u));
  line-height: 1.6;
}
.footer-copyright {
  position: absolute;
  left: calc(174 * var(--u));
  top: 0;
}
.footer-links {
  position: absolute;
  right: calc(131 * var(--u));
  top: 0;
  display: flex;
}
.footer-links a:nth-child(2) { margin-left: calc(35 * var(--u)); }
.footer-links a:nth-child(3) { margin-left: calc(50 * var(--u)); }

/* Decorative bird image below the footer.
   On the current live site this element sits just past the scrollable page
   height on desktop (i.e. it is effectively invisible), so we show it on
   mobile only — matching what visitors actually see today. */
.footer-bird { display: none; }

/* ==========================================================================
   BUTTONS & FORMS (Sign in / Submit / Request Materials)
   ========================================================================== */
.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: calc(1 * var(--u)) solid var(--ink);
  border-radius: 0;
  color: var(--ink);
  font-family: var(--serif);
  cursor: pointer;
  transition: color .4s ease, border-color .4s ease;
  text-align: center;
}
.btn:hover { color: var(--ink-hover); border-color: var(--ink-hover); }

/* Text inputs are deliberately borderless on the cream background —
   exactly as on the current site. */
.field {
  background: var(--bg);
  border: 0;
  border-radius: 0;
  font-family: var(--serif);
  font-size: calc(18.853 * var(--u));
  color: var(--ink);
  padding: calc(3.5 * var(--u)) 0 calc(3.5 * var(--u)) calc(3.5 * var(--u));
  outline: none;
  width: 100%;
}
.form-label {
  font-size: calc(18.863 * var(--u));
  line-height: 1.25;
}
.form-error {
  display: none;
  font-size: calc(15.318 * var(--u));
  margin-top: calc(14 * var(--u));
}
.form-error.show { display: block; }

/* ==========================================================================
   PAGE LAYOUTS
   ========================================================================== */

/* ---- Home ---- */
.home-hero {
  width: calc(1256 * var(--u));
  margin: calc(90 * var(--u)) auto 0;
}
.home-copy {
  width: calc(575.21 * var(--u));
  margin: calc(28 * var(--u)) auto 0;
  font-size: calc(28 * var(--u));
  line-height: 1.2;
  text-align: justify;
}
.home-copy p + p { margin-top: calc(34 * var(--u)); }
/* On the live site the words "Highway One Fund" at the start of the intro
   render in the Kings Caslon italic cut — an intentional emphasis. */
.home-copy em { font-style: italic; }
.home + .site-footer, .footer-gap-home { margin-top: calc(204 * var(--u)); }

/* ---- Principal ---- */
.principal-copy {
  width: calc(1046 * var(--u));
  margin: calc(104 * var(--u)) auto 0;
  font-size: calc(28 * var(--u));
  line-height: 1.6;
}
.principal-copy p.gap { height: calc(45 * var(--u)); }
.footer-gap-principal { margin-top: calc(135 * var(--u)); }

/* ---- Public Materials ---- */
.pm-hero {
  width: calc(1216 * var(--u));
  margin: calc(46 * var(--u)) auto 0;
}
.pm-title {
  text-align: center;
  font-size: calc(28.295 * var(--u));
  font-weight: 400;
  margin-top: calc(43 * var(--u));
}
.pm-list {
  width: calc(776 * var(--u));
  margin: calc(58 * var(--u)) auto 0;  /* measured from the ornament under the title */
}
.pm-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: calc(24 * var(--u));
}
.pm-item-main { width: calc(620 * var(--u)); }
.pm-item-title { font-size: calc(28 * var(--u)); line-height: 1.6; }
.pm-item-blurb {
  font-size: calc(21 * var(--u));
  line-height: 1.6;
  margin-top: calc(2 * var(--u));
}
.pm-item-date {
  font-size: calc(28 * var(--u));
  line-height: 1.6;
  white-space: nowrap;
}
.footer-gap-pm { margin-top: calc(124 * var(--u)); }

/* ---- Essay pages ---- */
.essay-title {
  text-align: center;
  font-family: var(--serif);
  font-weight: 400;
  font-size: calc(37.333 * var(--u));
  line-height: 1.3;
  margin-top: calc(39 * var(--u));
}
.essay-layout { position: relative; }
.essay-aside {
  position: absolute;
  left: calc(327 * var(--u));
  top: 0;
  width: calc(285 * var(--u));
}
.essay-date { font-size: calc(21 * var(--u)); line-height: 1.6; }
.essay-pdf {
  display: inline-block;
  font-size: calc(23.333 * var(--u));
  margin-top: calc(105 * var(--u));
  text-decoration: underline;
  text-underline-offset: 0.1em;
}
.essay-request {
  width: calc(285 * var(--u));
  height: calc(73 * var(--u));
  margin-top: calc(50 * var(--u));
  font-size: calc(25.667 * var(--u));
  /* gold, borderless, cream label — as on the live site */
  background: #F2DD9B;
  border: 0;
  color: var(--bg);
}
.essay-request:hover { color: var(--bg); }
.essay-body {
  width: calc(794 * var(--u));
  margin: 0 auto;
  padding-top: calc(128 * var(--u));
  font-size: calc(25.667 * var(--u));
  line-height: 1.6;
}
.essay-body p + p { margin-top: calc(41 * var(--u)); }
.footer-gap-essay { margin-top: calc(180 * var(--u)); }

/* ---- Partner Materials ---- */
.partner-hero {
  width: calc(794 * var(--u));
  margin: calc(20 * var(--u)) auto 0;
}
.partner-copy {
  width: calc(373 * var(--u));
  margin: calc(67 * var(--u)) auto 0;
  font-size: calc(28 * var(--u));
  line-height: 1.2;
  text-align: justify;
}
.signin-btn {
  width: calc(184 * var(--u));
  height: calc(54 * var(--u));
  margin: calc(37 * var(--u)) auto 0;
  font-size: calc(22.388 * var(--u));
}
.request-link {
  display: block;
  text-align: center;
  font-size: calc(24.745 * var(--u));
  margin-top: calc(20 * var(--u));
}
.footer-gap-partner { margin-top: calc(140 * var(--u)); }

/* ---- Sign In ---- */
.signin-copy {
  width: calc(384 * var(--u));
  margin: calc(337 * var(--u)) auto 0;
  font-size: calc(28 * var(--u));
  line-height: 1.2;
}
.signin-form {
  width: calc(390 * var(--u));
  margin: calc(70 * var(--u)) auto 0;
}
.signin-row {
  display: flex;
  align-items: center;
  margin-bottom: calc(15 * var(--u));
}
.signin-row .form-label { width: calc(126 * var(--u)); flex: none; }
.signin-row .field { width: calc(260 * var(--u)); }
.signin-form .signin-btn { margin-top: calc(48 * var(--u)); }
.footer-gap-signin { margin-top: calc(300 * var(--u)); }

/* ---- Partner Materials (members) ----
   Styled exactly like the Public Materials page: hero image, centered title,
   ornament, then rows with dot + underlined title + date + open icon. */
.members-title {
  text-align: center;
  font-size: calc(28.295 * var(--u));
  font-weight: 400;
  margin-top: calc(43 * var(--u));
}
.members-list {
  width: calc(776 * var(--u));
  margin: calc(58 * var(--u)) auto 0;
}
.members-year {
  text-align: center;
  font-size: calc(28 * var(--u)); /* never smaller than the dates in the rows */
  letter-spacing: calc(3 * var(--u));
  margin: calc(56 * var(--u)) 0 calc(30 * var(--u));
}
.members-year:first-child { margin-top: 0; }
.footer-gap-members { margin-top: calc(124 * var(--u)); }

/* ---- Request Partner Materials ---- */
.request-copy {
  width: calc(391 * var(--u));
  margin: calc(250 * var(--u)) auto 0;
  font-size: calc(28 * var(--u));
  line-height: 1.2;
  text-align: justify;
}
.request-form {
  width: calc(473 * var(--u));
  margin: calc(55 * var(--u)) auto 0;
}
.request-row {
  display: flex;
  align-items: center;
  margin-bottom: calc(28 * var(--u));
}
.request-row .form-label { width: calc(130 * var(--u)); flex: none; }
.request-row .field { flex: 1; }
.request-form .msg-label { display: block; margin-bottom: calc(8 * var(--u)); }
.request-form textarea.field {
  width: 100%;
  height: calc(150 * var(--u));
  resize: vertical;
}
.request-checks { margin-top: calc(40 * var(--u)); }
.request-checks label {
  display: flex;
  gap: calc(10 * var(--u));
  align-items: baseline;
  font-size: calc(15.318 * var(--u));
  margin-bottom: calc(17 * var(--u));
  cursor: pointer;
}
.request-checks a { text-decoration: underline; text-underline-offset: 0.08em; }
.request-checks input { accent-color: var(--ink); }
.request-form .submit-btn {
  width: calc(184 * var(--u));
  height: calc(54 * var(--u));
  margin: calc(30 * var(--u)) auto 0;
  font-size: calc(22.388 * var(--u));
}
.footer-gap-request { margin-top: calc(250 * var(--u)); }

/* ---- Contact ---- */
.contact-copy {
  width: calc(383 * var(--u));
  margin: calc(61 * var(--u)) auto 0;  /* measured from the ornament above */
  font-size: calc(28 * var(--u));
  line-height: 1.2;
  text-align: justify;
}
.contact-email {
  display: block;
  width: calc(383 * var(--u));
  margin: calc(56 * var(--u)) auto 0;
  font-size: calc(28.295 * var(--u));
  text-align: center;
}
.contact-img {
  width: calc(513 * var(--u));
  margin: calc(78 * var(--u)) auto 0;
}
.footer-gap-contact { margin-top: calc(437 * var(--u)); }

/* ---- Legal pages (Terms / Disclaimers) ---- */
.legal-title {
  text-align: center;
  font-size: calc(28.295 * var(--u));
  font-weight: 400;
  margin-top: calc(148 * var(--u));
}
.legal-body {
  width: calc(861 * var(--u));
  margin: calc(131 * var(--u)) auto 0;
  font-size: calc(28 * var(--u));
  line-height: 1.2;
  text-align: justify;
}
.legal-body p + p { margin-top: calc(34 * var(--u)); }
.legal-body a { text-decoration: underline; text-underline-offset: 0.08em; }
.footer-gap-legal { margin-top: calc(160 * var(--u)); }

/* ==========================================================================
   UNDERLINES, ICONS, ORNAMENTS, FOOTER RULE, SIGN-IN MODAL
   (matching the live Wix site)
   ========================================================================== */

/* Links that are underlined on the live site */
.link-u,
.pm-item-title a { text-decoration: underline; text-underline-offset: 0.08em; }

/* Underline the section the visitor is currently on — in the desktop header
   and in the menu overlay */
.site-header a.current,
.menu-overlay a.current { text-decoration: underline; text-underline-offset: 0.1em; }

/* Contact: email underlines on hover */
.contact-email:hover { text-decoration: underline; text-underline-offset: 0.08em; }

/* Decorative ornament (same vector as the live site) */
.ornament {
  display: block;
  margin: calc(18 * var(--u)) auto 0;
  width: calc(44 * var(--u));
  height: calc(44 * var(--u));
}
.contact-ornament { margin-top: calc(134 * var(--u)); }

/* Public Materials rows: dot bullet + open-in-new icon */
.pm-item { position: relative; }
.pm-dot {
  position: absolute;
  left: calc(-49 * var(--u));
  top: calc(16 * var(--u));
  width: calc(12 * var(--u));
  height: calc(12 * var(--u));
}
.pm-dot svg { width: 100%; height: 100%; display: block; }
.pm-open {
  position: absolute;
  right: calc(-34 * var(--u));
  top: calc(11 * var(--u));
  display: block;
  width: calc(20 * var(--u));
  height: calc(20 * var(--u));
}
.pm-open svg { width: 100%; height: 100%; display: block; fill: currentColor; }

/* Contact: mail icon inside the email link */
.contact-email svg {
  width: calc(20 * var(--u));
  height: calc(24 * var(--u));
  margin-right: calc(8 * var(--u));
  vertical-align: calc(-3 * var(--u));
  fill: currentColor;
}

/* Footer: thin rule above the footer + © glyph before the copyright */
.site-footer::before {
  content: '';
  position: absolute;
  left: calc(123 * var(--u));
  top: calc(-20 * var(--u));
  width: calc(2008 * var(--u));
  border-top: 1px solid var(--ink);
}
.footer-copyright svg {
  width: calc(22 * var(--u));
  height: calc(22 * var(--u));
  margin-right: calc(10 * var(--u));
  vertical-align: calc(-3 * var(--u));
  fill: currentColor;
}

/* Sign-in panel — the bordered box on the Partner Materials login page */
.signin-panel {
  width: calc(870 * var(--u));
  margin: calc(243 * var(--u)) auto 0;
  border: 1px solid var(--ink);
  padding: calc(94 * var(--u)) 0 calc(56 * var(--u));
}
.signin-panel .signin-copy { margin: 0 auto; }
.signin-panel .signin-form { margin-top: calc(68 * var(--u)); }
.signin-panel .signin-row {
  border-bottom: calc(2 * var(--u)) solid var(--ink);
  padding-bottom: calc(6 * var(--u));
  margin-bottom: calc(30 * var(--u));
}
.signin-panel .signin-btn { margin-top: calc(60 * var(--u)); }
.signin-panel .request-link { margin-top: calc(50 * var(--u)); }

/* ==========================================================================
   MOBILE  (≤ 768px)
   The current Wix site uses a separate hand-made mobile layout whose menu is
   a set of standalone "menu pages". This rebuild keeps the same experience —
   hamburger → full-screen cream menu — as a proper overlay instead.
   ========================================================================== */
@media (max-width: 768px) {
  :root { --u: 0; } /* neutralise desktop units; mobile uses its own sizes */

  body { font-size: 17px; }

  /* Header: hamburger left, wordmark centered */
  .site-header {
    height: auto;
    padding: 18px 16px 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
  }
  .site-header a { position: static; }
  .site-header .nav-link { display: none; }
  .hamburger {
    display: block;
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
  }
  .wordmark { transform: none; font-size: clamp(26px, 7.5vw, 34px); }

  /* Content blocks become a fluid single column */
  .home-hero, .pm-hero, .partner-hero, .contact-img { width: 92%; margin: 24px auto 0; }
  .home-copy, .principal-copy, .partner-copy, .signin-copy,
  .request-copy, .contact-copy, .legal-body {
    width: 86%;
    margin: 28px auto 0;
    font-size: 17px;
    line-height: 1.5;
  }
  .home-copy p + p, .legal-body p + p { margin-top: 20px; }
  .principal-copy p.gap { height: 24px; }

  .pm-title, .legal-title, .members-title { font-size: 22px; margin-top: 36px; }
  .members-year { font-size: 16px; letter-spacing: 2px; margin: 28px 0 16px; }
  .pm-list, .members-list { width: 86%; margin: 32px auto 0; }
  .pm-item { flex-direction: column; margin-bottom: 26px; }
  .pm-item-main { width: 100%; }
  .pm-item-title { font-size: 19px; }
  .pm-item-blurb { font-size: 15px; margin-top: 4px; }
  .pm-item-date { font-size: 15px; margin-top: 4px; }

  .essay-title { font-size: 24px; margin-top: 30px; }
  .essay-layout { display: flex; flex-direction: column; }
  .essay-aside { position: static; width: 86%; margin: 18px auto 0; }
  .essay-date { font-size: 15px; }
  .essay-pdf { font-size: 16px; margin-top: 14px; }
  .essay-request { width: 200px; height: 48px; font-size: 16px; margin-top: 18px; }
  .essay-body { width: 86%; padding-top: 30px; font-size: 17px; }
  .essay-body p + p { margin-top: 20px; }

  .signin-form, .request-form { width: 86%; margin: 30px auto 0; }
  .signin-row { flex-wrap: wrap; }
  .signin-row .form-label, .request-row .form-label { width: 110px; font-size: 14px; }
  .field { font-size: 16px; padding: 6px 0 6px 4px; }
  .signin-row .field { width: 100%; flex: 1; }
  .signin-btn, .request-form .submit-btn {
    width: 170px; height: 48px; font-size: 17px; margin-top: 26px;
    border-width: 1px;
  }
  .request-link { font-size: 17px; margin-top: 18px; }
  .request-checks label { font-size: 13px; }
  .form-label { font-size: 14px; }
  .form-error { font-size: 13px; }
  .request-form textarea.field { height: 120px; }

  .contact-email { width: 86%; font-size: 19px; margin-top: 14px; text-align: center; }

  /* Footer stacks; decorative bird becomes visible (as on Wix mobile) */
  [class*="footer-gap"] { margin-top: 60px; }
  .site-footer { height: auto; padding: 0 16px; text-align: center; font-size: 13px; }
  .footer-copyright { position: static; }
  .footer-links {
    position: static;
    justify-content: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 10px;
  }
  .footer-links a:nth-child(2), .footer-links a:nth-child(3) { margin-left: 0; }
  .footer-bird { display: none; }


  /* v2 refinements on mobile */
  .ornament { width: 28px; height: 28px; margin: 14px auto 0; }
  .contact-ornament { margin-top: 26px; }
  .pm-item { padding-left: 16px; padding-right: 30px; }
  .pm-dot { left: 0; top: 8px; width: 6px; height: 6px; }
  .pm-open { right: 0; top: 2px; width: 17px; height: 17px; }
  .site-footer::before { left: 5%; width: 90%; top: -16px; }
  .footer-copyright svg { width: 12px; height: 12px; margin-right: 6px; vertical-align: -1px; }
  .contact-email svg { width: 14px; height: 17px; margin-right: 6px; vertical-align: 0; }
  .essay-request { font-size: 16px; }
  .signin-panel { width: 92%; margin: 34px auto 0; padding: 28px 0 26px; }
  .signin-panel .signin-copy { width: 86%; }
  .signin-panel .signin-form { margin-top: 26px; }
  .signin-panel .signin-row { border-bottom: 1.5px solid var(--ink); padding-bottom: 4px; margin-bottom: 18px; }
  .signin-panel .signin-btn { margin-top: 30px; }
  .signin-panel .request-link { margin-top: 24px; }
}

/* Very large screens: cap nothing — the live site scales indefinitely too. */

/* ===== Request partner materials ===== */

/* ===== Request partner materials ===== */
.request-panel{
  max-width:640px;
  margin:4rem auto 2rem;   /* was 6rem */
  padding:3rem 2.5rem;
  border:1px solid currentColor;
}
.request-copy{
  max-width:30ch;
  margin:0 auto 2.5rem;
  text-align:justify;
}
.request-form{max-width:520px;margin:0 auto}
.request-panel .request-row{
  display:block;
  margin-bottom:1.6rem;
}
.request-panel .request-row .form-label{
  display:block;
  width:auto;
  margin:0 0 .5rem 0;
  white-space:normal;
}
.request-panel .request-row .field{
  display:block;
  width:100%;
  margin:0;
  padding:0 0 .3rem;
  font:inherit;color:inherit;background:transparent;
  border:0;border-bottom:1px solid currentColor;border-radius:0;
}
.request-panel .msg-label{display:block;margin:0 0 .5rem 0}
.request-panel textarea.field{
  display:block;width:100%;margin:0;
  font:inherit;color:inherit;background:transparent;
  border:1px solid currentColor;border-radius:0;
  min-height:140px;padding:.6rem;resize:vertical;
}
.request-panel .field:focus{outline:none;border-bottom-width:2px}
.request-panel .request-checks{margin:2.25rem 0 1rem}
.request-panel .request-checks label{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:.65rem;
  width:auto;
  margin:0 0 .8rem 0;
  padding:0;
  line-height:1.4;
  text-align:left;
}
.request-panel .request-checks input[type=checkbox]{
  width:16px;height:16px;margin:0;flex:none;
  accent-color:currentColor;
}
.hamburger{
  color:var(--ink);
  -webkit-text-fill-color:currentColor;
  background:none;
  border:0;
  padding:0;
  -webkit-appearance:none;
  appearance:none;
}
@media (max-width:600px){
  /* Buttons: centred and outlined */
  .signin-btn,
  .submit-btn,
  .request-panel .submit-btn{
    display:block;
    margin-left:auto;
    margin-right:auto;
    border:1px solid currentColor;
    background:none;
    color:var(--ink);
    -webkit-text-fill-color:currentColor;
    -webkit-appearance:none;
    appearance:none;
  }

  /* Checkboxes level with their text */
  .request-checks label{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:.6rem;
    text-align:left;
  }
  .request-checks input[type=checkbox]{
    width:16px;
    height:16px;
    margin:0;
    flex:none;
    -webkit-appearance:none;
    appearance:none;
    border:1px solid currentColor;
    border-radius:2px;
    background:transparent;
    position:relative;
  }
  .request-checks input[type=checkbox]:checked::after{
    content:"";
    position:absolute;
    left:4px;
    top:0;
    width:5px;
    height:10px;
    border:solid currentColor;
    border-width:0 2px 2px 0;
    transform:rotate(45deg);
  }
}
@media (max-width:600px){
  /* Panel must fit the screen */
.request-panel{
    max-width:100%;
    width:auto;
    margin:2rem 1rem 2rem;   /* was 4rem at the bottom */
    padding:2rem 1.25rem;
    box-sizing:border-box;
  }
  .request-form{
    max-width:100%;
  }
  .request-copy{
    max-width:100%;
  }

  /* Button text vertically centred */
  .btn,
  .signin-btn,
  .submit-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    width:auto;
    min-width:180px;
    margin-left:auto;
    margin-right:auto;
    padding:.85rem 2rem;
    line-height:1;
    text-align:center;
    box-sizing:border-box;
  }

  /* Checkboxes */
  .request-checks label,
  .request-panel .request-checks label{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:.6rem !important;
    text-align:left !important;
    width:auto !important;
  }
  .request-checks input[type=checkbox],
  .request-panel .request-checks input[type=checkbox]{
    margin:0 !important;
    align-self:center !important;
    flex:none !important;
  }
}
/* Sign-in form: match the request-materials layout */
.signin-row{
  display:block;
  margin-bottom:1.6rem;
}
.signin-row .form-label{
  display:block;
  width:auto;
  flex:none;
  margin:0 0 .5rem 0;
}
.signin-row .field{
  display:block;
  width:100%;
  margin:0;
  padding:0 0 .3rem;
  font:inherit;
  color:inherit;
  background:transparent;
  border:0;
  border-radius:0;
}
.signin-row .field:focus{
  outline:none;
  border-bottom-width:2px;
}

@media (max-width:600px){
  .signin-row .form-label{
    width:auto;
    font-size:inherit;
  }
}

@media (max-width:768px){
  /* Hamburger to the right */
  .hamburger{
    left:auto;
    right:12px;
  }

  /* Home image closer to the wordmark */
  .home-hero{
    margin-top:10px;
  }

  /* Contact page: less space at the top */
  .contact-img{
    margin-top:10px;
  }
  .contact-copy{
    margin-top:18px;
  }

  /* Email row aligned */
  .contact-email{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
  }
  .contact-email svg{
    margin-right:0;
    flex:none;
    vertical-align:middle;
  }
}
/* REQUEST ACCESS styled as a button — partner materials page only */
.request-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:calc(240 * var(--u));
  height:calc(54 * var(--u));
  padding:0 calc(24 * var(--u));
  margin:calc(20 * var(--u)) auto 0;
  border:calc(1 * var(--u)) solid var(--ink);
  border-radius:0;
  background:transparent;
  font-size:calc(22.388 * var(--u));
  color:var(--ink);
  text-decoration:none;
  white-space:nowrap;
  box-sizing:border-box;
}
@media (max-width:768px){
  .request-btn{
    min-width:200px;
    height:48px;
    padding:0 20px;
    margin:18px auto 0;
    border-width:1px;
    font-size:17px;
    -webkit-text-fill-color:currentColor;
  }
}
/* Email row aligned on desktop too */
.contact-email{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:calc(6 * var(--u));
}
.contact-email svg{
  margin-right:0;
  flex:none;
  vertical-align:middle;
}

@media (max-width:768px){
  /* Restore the stroke iOS strips from styled links/buttons */
  .request-btn{
    border:1px solid var(--ink) !important;
    -webkit-appearance:none;
    appearance:none;
    background:transparent;
  }
}/* Email row aligned on desktop too */
.contact-email{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:calc(6 * var(--u));
}
.contact-email svg{
  margin-right:0;
  flex:none;
  vertical-align:middle;
}

@media (max-width:768px){
  /* Restore the stroke iOS strips from styled links/buttons */
  .request-btn{
    border:1px solid var(--ink) !important;
    -webkit-appearance:none;
    appearance:none;
    background:transparent;
  }
}
/* Matched button widths */
.signin-btn,
.request-btn{
  width:calc(240 * var(--u));
  min-width:0;
  padding:0;
}

@media (max-width:768px){
  .signin-btn,
  .request-btn{
    width:200px;
    min-width:0;
    padding:0;
  }
}

/* Contact email: icon + text, centred with breathing room */
.contact-email{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
  gap:calc(8 * var(--u));
}
.contact-email svg{
  margin:0;
  flex:none;
  vertical-align:middle;
}

@media (max-width:768px){
  .contact-email{
    width:86%;
    gap:8px;
  }
  .contact-email svg{
    margin:0;
    flex:none;
  }
}
