/* ============================================================
   texasnewmobilehome.com — nav.css
   Header + footer + design tokens + @font-face.
   ALL design tokens live HERE (single source — styles.css
   consumes them; never redeclare :root tokens elsewhere).
   Loaded at the top of <head> on every page (LCP playbook Step 1).
   ============================================================ */

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/ibm-plex-mono-500.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/ibm-plex-mono-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/public-sans-var.woff2') format('woff2');
}

:root {
  /* Blueprint palette (approved concept, TNMH masterplan) */
  --teal: #173F4C;          /* blueprint section bg */
  --teal-2: #1B4B5A;        /* raised panel on blueprint */
  --teal-deep: #10303B;     /* footer / utility strip */
  --cyan: #DCEEF0;          /* linework + headlines on teal */
  --cyan-dim: rgba(220, 238, 240, 0.72);
  --cyan-faint: rgba(220, 238, 240, 0.14);
  --kraft: #E4D9BE;         /* spec-sheet section bg */
  --kraft-2: #DBCEAC;       /* kraft panel edge / alt row */
  --paper: #EFE8D4;         /* card face on kraft */
  --ink: #2B2A25;           /* charcoal ink on kraft */
  --ink-soft: #46432F;
  --ink-quiet: #5C564A;     /* muted on kraft — keeps >5:1 */
  --rust: #B5502D;          /* stamp / accents (large text only on kraft) */
  --rust-btn: #A03D1D;      /* button bg — white text >5:1 */
  --rust-btn-hover: #8A3315;
  --rust-text: #93401F;     /* rust as small text on kraft >5:1 */
  --rust-bright: #EA9D74;   /* rust as small text on teal >4.9:1 */
  --sage-text: #48633F;     /* availability tags on kraft */

  --font-mono: 'IBM Plex Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;
  --font-body: 'Public Sans', Arial, sans-serif;

  --header-h: 96px;         /* utility 32 + main 64 — keep in sync with rules below */
  --container: 1180px;
}

/* ---- base reset (shared) ---- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--kraft);
  padding-top: var(--header-h);
}
img, svg { max-width: 100%; height: auto; }
a { color: inherit; }

.container { max-width: var(--container); margin: 0 auto; padding: 0 20px; }

/* ---- skip link ---- */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 300;
  background: var(--rust-btn); color: #fff; padding: 10px 16px;
  font-family: var(--font-mono); font-size: 14px; text-decoration: none;
}
.skip-link:focus { left: 8px; top: 8px; }

/* ============================================================
   HEADER — drafting title-block
   ============================================================ */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  height: var(--header-h);
  background: var(--teal);
  border-bottom: 1px solid var(--cyan-faint);
}
.nav-utility {
  height: 32px;
  background: var(--teal-deep);
  border-bottom: 1px solid var(--cyan-faint);
}
.nav-utility__inner {
  max-width: var(--container); margin: 0 auto; padding: 0 20px;
  height: 100%; display: flex; align-items: center; justify-content: space-between;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em;
  color: var(--cyan-dim); text-transform: uppercase;
}
.nav-utility a { color: var(--cyan); text-decoration: none; }
.nav-utility a:hover { text-decoration: underline; }
.nav-utility__lic { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nav-utility__right { white-space: nowrap; }
@media (max-width: 620px) {
  .nav-utility .u-hours { display: none; }
  .nav-utility__inner { font-size: 10px; letter-spacing: .05em; }
}

.nav-main {
  max-width: var(--container); margin: 0 auto; padding: 0 20px;
  height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.nav-brand { text-decoration: none; display: block; line-height: 1.25; }
.nav-brand strong {
  display: block; font-family: var(--font-mono); font-weight: 600;
  font-size: 15px; letter-spacing: .14em; color: var(--cyan);
}
.nav-brand span {
  display: block; font-family: var(--font-mono); font-weight: 500;
  font-size: 9.5px; letter-spacing: .22em; color: var(--cyan-dim); text-transform: uppercase;
}
.nav-links { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.nav-links > li { position: relative; }
.nav-links a {
  display: inline-block; padding: 10px 12px;
  font-family: var(--font-mono); font-weight: 500; font-size: 12.5px;
  letter-spacing: .07em; text-transform: uppercase;
  color: var(--cyan); text-decoration: none; border: 1px solid transparent;
}
.nav-links a:hover { color: #fff; border-color: var(--cyan-faint); }
.nav-links a.is-active { border-color: var(--rust); color: #fff; }
.nav-links .btn-nav {
  background: var(--rust-btn); color: #fff; border: 1px solid var(--rust-btn);
  padding: 11px 16px; margin-left: 8px; font-weight: 600;
}
.nav-links .btn-nav:hover { background: var(--rust-btn-hover); border-color: var(--rust-btn-hover); color: #fff; }

/* dropdown (desktop) */
.nav-drop__toggle::after { content: ' ▾'; font-size: 10px; }
.nav-drop__menu {
  display: none; position: absolute; top: 100%; left: 0; min-width: 250px;
  background: var(--teal-deep); border: 1px solid var(--cyan-faint);
  list-style: none; margin: 0; padding: 6px 0; z-index: 210;
}
.nav-drop:hover .nav-drop__menu,
.nav-drop:focus-within .nav-drop__menu { display: block; }
.nav-drop__menu a { display: block; padding: 9px 16px; font-size: 12px; }
.nav-drop__menu .nav-drop__all { border-bottom: 1px solid var(--cyan-faint); }

/* hamburger */
.nav-burger {
  display: none; background: none; border: 1px solid var(--cyan-faint);
  width: 44px; height: 44px; padding: 0; cursor: pointer; border-radius: 0;
}
.nav-burger span {
  display: block; width: 20px; height: 2px; background: var(--cyan); margin: 4px auto;
  transition: transform .2s, opacity .2s;
}
.nav-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* mobile menu */
.mobile-menu {
  display: none; position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0;
  background: var(--teal); z-index: 190; overflow-y: auto; padding: 12px 20px 96px;
}
.mobile-menu.is-open { display: block; }
.mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.mobile-menu a {
  display: block; padding: 15px 4px;
  font-family: var(--font-mono); font-size: 15px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--cyan); text-decoration: none; border-bottom: 1px solid var(--cyan-faint);
}
.mobile-menu a.is-active { color: #fff; border-left: 3px solid var(--rust); padding-left: 12px; }
.mobile-menu .mm-sub { padding-left: 18px; }
.mobile-menu .mm-sub a { font-size: 13px; color: var(--cyan-dim); }
.mobile-menu .mm-sub a:hover, .mobile-menu a:hover { color: #fff; }
.mobile-menu .mm-toggle {
  width: 100%; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--cyan-faint);
  padding: 15px 4px; font-family: var(--font-mono); font-size: 15px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--cyan); cursor: pointer;
}
.mobile-menu .mm-toggle::after { content: ' +'; }
.mobile-menu .mm-toggle[aria-expanded="true"]::after { content: ' −'; }
.mobile-menu .mm-sub { display: none; }
.mobile-menu .mm-sub.is-open { display: block; }
.mobile-menu .mm-cta {
  margin-top: 20px; display: block; text-align: center;
  background: var(--rust-btn); color: #fff; border: 0; padding: 15px;
  font-weight: 600; letter-spacing: .1em;
}
.mobile-menu .mm-cta:hover { background: var(--rust-btn-hover); }

/* mobile sticky bottom CTA */
.mobile-cta {
  display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 180;
  background: var(--teal-deep); border-top: 1px solid var(--cyan-faint);
  padding: 10px 12px; gap: 10px;
}
.mobile-cta a {
  flex: 1; text-align: center; padding: 12px 8px; text-decoration: none;
  font-family: var(--font-mono); font-size: 13px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
}
.mobile-cta .mc-call { color: var(--cyan); border: 1px solid var(--cyan-dim); }
.mobile-cta .mc-cta { background: var(--rust-btn); color: #fff; border: 1px solid var(--rust-btn); }

@media (max-width: 980px) {
  :root { --header-h: 88px; }
  .nav-utility__inner { font-size: 10px; }
  .nav-main { height: 56px; }
  .nav-links { display: none; }
  .nav-burger { display: block; }
  .mobile-cta { display: flex; }
  body { padding-bottom: 64px; } /* room for sticky CTA */
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer {
  background: var(--teal-deep);
  background-image:
    linear-gradient(var(--cyan-faint) 1px, transparent 1px),
    linear-gradient(90deg, var(--cyan-faint) 1px, transparent 1px);
  background-size: 120px 120px;
  color: var(--cyan-dim);
  font-size: 14.5px;
}
.footer-inner {
  max-width: var(--container); margin: 0 auto; padding: 48px 20px 24px;
}
.footer-grid {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 32px;
}
.footer-brand strong {
  display: block; font-family: var(--font-mono); font-weight: 600; font-size: 15px;
  letter-spacing: .14em; color: var(--cyan); margin-bottom: 2px;
}
.footer-brand .fb-tag {
  display: block; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em;
  text-transform: uppercase; margin-bottom: 14px;
}
.footer-brand p { margin: 0 0 10px; line-height: 1.55; }
.footer-col h2 {
  font-family: var(--font-mono); font-weight: 600; font-size: 11.5px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--cyan); margin: 0 0 14px;
}
.footer-col ul { list-style: none; margin: 0; padding: 0; }
.footer-col li { margin-bottom: 9px; }
.footer-col a, .footer-brand a { color: var(--cyan-dim); text-decoration: none; }
.footer-col a:hover, .footer-brand a:hover { color: #fff; text-decoration: underline; }
.footer-social { display: flex; gap: 10px; margin-top: 14px; }
.footer-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border: 1px solid var(--cyan-faint);
}
.footer-social a:hover { border-color: var(--cyan-dim); }
.footer-social svg { width: 18px; height: 18px; fill: var(--cyan); }

/* TNMH DEALER NETWORK (footer-only cross-domain links — standing rule) */
.footer-network { border-top: 1px solid rgba(255,255,255,.12); padding: 20px 0 4px; margin-top: 32px; }
.footer-network__title { font-size: .72rem; font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .14em; color: rgba(255,255,255,.65); font-weight: 600; margin: 0 0 12px; }
.footer-network__links { display: flex; gap: 12px; flex-wrap: wrap; }
.footer-network__link { flex: 1; min-width: 180px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 6px; text-decoration: none; transition: border-color .2s; }
.footer-network__link:hover { border-color: rgba(255,255,255,.3); }
.footer-network__link strong { display: block; color: rgba(255,255,255,.85); font-size: .85rem; margin-bottom: 2px; }
.footer-network__link span { display: block; font-size: .73rem; color: rgba(255,255,255,.65); line-height: 1.4; }

.footer-sms-disclosure {
  margin-top: 24px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.12);
  font-size: .78rem; color: rgba(255,255,255,.65); line-height: 1.5;
}
.footer-sms-disclosure a { color: rgba(255,255,255,.8); }

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.12); margin-top: 16px; padding-top: 16px;
  display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; justify-content: space-between;
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .06em;
  color: rgba(255,255,255,.65);
}
.footer-bottom a { color: rgba(255,255,255,.75); text-decoration: none; }
.footer-bottom a:hover { text-decoration: underline; }

@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .footer-grid { grid-template-columns: 1fr; gap: 24px; }
}
