/* DESIGN FROZEN — do not restyle. See .cursor/rules/design-freeze.mdc */

:root {

  --ink: #161410;

  --paper: #efe6d4;

  --card: #fffaf1;

  --black: #111111;

  --hivis: #f5c518;

  --hivis-2: #e0b000;

  --tape: repeating-linear-gradient(

    -45deg,

    #111 0 10px,

    #f5c518 10px 20px

  );

  --line: #1a1a1a;

  --muted: #5c5346;

  --shadow: 6px 6px 0 #111;

  --radius: 0;

  --font: "DM Sans", ui-sans-serif, system-ui, "Segoe UI", sans-serif;

  --display: "Archivo Black", Impact, sans-serif;

}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {

  margin: 0;

  font-family: var(--font);

  color: var(--ink);

  background: var(--paper);

  line-height: 1.6;

}

img { max-width: 100%; height: auto; }

a { color: #111; text-decoration: none; } a:hover { text-decoration: underline; }

a:hover { color: #111; background: var(--hivis); }

.skip-link { position: absolute; left: -999px; }

.skip-link:focus { left: 1rem; top: 1rem; background: var(--hivis); padding: .5rem; z-index: 20; }

.gf-wrap { width: min(74rem, calc(100% - 2rem)); margin-inline: auto; }



.gf-topbar {

  background: var(--black);

  color: var(--hivis);

  font-size: .78rem;

  font-weight: 600;

  letter-spacing: .04em;

  text-transform: uppercase;

}

.gf-topbar a { color: var(--hivis); }

.gf-topbar a:hover { color: #111; }

.gf-disclosure { margin: 0; padding: .38rem 0; }

.gf-disclosure--compact { font-weight: 600; }



.gf-header {

  background: var(--hivis);

  color: #111;

  border-bottom: 4px solid #111;

  position: sticky;

  top: 0;

  z-index: 10;

}

.gf-header::after {

  content: "";

  display: block;

  height: 10px;

  background: var(--tape);

}

.gf-header__inner {

  display: flex;

  flex-wrap: nowrap;

  gap: .6rem 1rem;

  align-items: center;

  justify-content: space-between;

  padding: .7rem 0 .55rem;

}

.gf-logo {

  color: #111 !important;

  text-decoration: none;

  font-family: var(--display);

  font-size: 1.15rem;

  letter-spacing: .02em;

  display: inline-flex;

  align-items: center;

  gap: .5rem;

  background: transparent;

}

.gf-logo:hover { background: #111; color: var(--hivis) !important; }

.gf-logo b {

  display: inline-grid;

  place-items: center;

  width: 2rem;

  height: 2rem;

  background: #111;

  color: var(--hivis);

  font-size: .72rem;

  letter-spacing: 0;

}

.gf-nav { flex: 1; min-width: 0; }

.gf-nav ul { display: flex; flex-wrap: wrap; gap: 0; list-style: none; margin: 0; padding: 0; }

.gf-nav a {

  color: #111;

  text-decoration: none;

  padding: .4rem .55rem;

  font-weight: 700;

  font-size: .78rem;

  letter-spacing: .06em;

  text-transform: uppercase;

  background: transparent;

}

.gf-nav a:hover,

.gf-nav .current-menu-item > a {

  background: #111;

  color: var(--hivis);

}



.gf-main { padding: 0 0 3.5rem; }

body:not(.home) .gf-main { padding-top: 1.6rem; }



.gf-hero {

  background: var(--paper);

  color: #111;

  padding: 0;

  border-bottom: 4px solid #111;

}

.gf-hero__split {

  display: grid;

  grid-template-columns: minmax(22rem, 28rem) 1fr;

  min-height: 16rem;

}

.gf-hero__panel {

  background: #111;

  color: #fff;

  padding: .7rem 1.85rem 1.5rem;

  display: flex;

  flex-direction: column;

  justify-content: flex-start;

  gap: 1.7rem;

  border-right: 4px solid #111;

}

.gf-eyebrow {

  display: block;

  margin: 0;

  color: var(--hivis);

  font-size: .72rem;

  letter-spacing: .08em;

  text-transform: uppercase;

  font-weight: 700;

  white-space: nowrap;

}

.gf-hero__kicker {

  font-family: var(--display);

  font-size: clamp(1.45rem, 3vw, 2rem);

  line-height: 1.08;

  margin: 0;

  color: #fff;

  text-transform: uppercase;

}

.gf-hero__copy {

  padding: 1.7rem 1.8rem 1.9rem;

  background: var(--paper);

}

.gf-hero h1 {

  font-family: var(--display);

  font-size: clamp(1.55rem, 3.2vw, 2.45rem);

  line-height: 1.08;

  margin: 0 0 .85rem;

  text-transform: uppercase;

  letter-spacing: .01em;

}

.gf-hero__lead { font-size: 1.08rem; color: var(--muted); margin: 0 0 1.4rem; max-width: 38rem; }

.gf-hero__actions { display: flex; flex-wrap: wrap; gap: .65rem; }



.gf-section { padding: 2.2rem 0 1rem; }

.gf-section--tight { padding-top: .4rem; }

.gf-section__title {

  font-family: var(--display);

  font-size: 1.15rem;

  margin: 0 0 1.1rem;

  text-transform: uppercase;

  letter-spacing: .04em;

  background: var(--hivis);

  display: inline-block;

  padding: .25rem .55rem;

  border: 3px solid #111;

}

.gf-grid {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: .85rem;

}

.gf-tile {

  display: flex;

  flex-direction: column;

  align-items: flex-start;

  background: var(--card);

  border: 3px solid #111;

  border-radius: 0;

  padding: 1rem 1.05rem 1.1rem;

  text-decoration: none;

  color: inherit;

  box-shadow: var(--shadow);

  min-height: 0;

  transition: transform .1s ease;

}

.gf-tile:hover { transform: translate(-3px, -3px); box-shadow: 9px 9px 0 #111; color: inherit; background: #fff; }

.gf-tile__tag {

  display: inline-block;

  font-size: .68rem;

  font-weight: 800;

  letter-spacing: .1em;

  text-transform: uppercase;

  color: #111;

  background: var(--hivis);

  padding: .15rem .4rem;

  border: 2px solid #111;

  margin-bottom: .65rem;

}

.gf-tile h3 { margin: 0 0 .35rem; font-size: 1.12rem; font-family: var(--display); text-transform: uppercase; letter-spacing: .02em; }

.gf-tile p { margin: 0; color: var(--muted); line-height: 1.45; flex: 0 1 auto; }



.gf-band {

  margin-top: 1.6rem;

  background: #111;

  color: #efe6d4;

  border-block: 4px solid #111;

  padding: 2.2rem 0;

}

.gf-band .gf-section__title { background: var(--hivis); color: #111; }

.gf-band .gf-tile { color: #111; }

.gf-band__grid {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 2rem;

  align-items: start;

}

.gf-band h2 { font-family: var(--display); text-transform: uppercase; margin-top: 0; }

.gf-checks { margin: 0; padding: 0; list-style: none; }

.gf-checks li {

  padding: .55rem 0 .55rem 1.7rem;

  position: relative;

  border-bottom: 2px solid #333;

}

.gf-checks li:before {

  content: "";

  position: absolute;

  left: 0;

  top: .85rem;

  width: .75rem;

  height: .75rem;

  background: var(--hivis);

  border: 2px solid #111;

}

.gf-center { text-align: center; }



.gf-article, .gf-article--wide {

  background: var(--card);

  padding: 1.6rem 1.5rem 2.4rem;

  border: 3px solid #111;

  box-shadow: var(--shadow);

}

.gf-article { max-width: 48rem; }

.gf-article--wide { max-width: 74rem; }

.gf-article h1, .gf-article h2, .gf-article h3 {

  font-family: var(--display);

  line-height: 1.15;

  text-transform: uppercase;

}

.gf-article h1 { font-size: clamp(1.5rem, 3vw, 2.05rem); margin-top: .2rem; }

.gf-crumbs { font-size: .82rem; color: var(--muted); margin-bottom: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }

.gf-kicker { color: var(--muted); font-weight: 700; text-transform: uppercase; font-size: .8rem; letter-spacing: .06em; }

.gf-muted { color: var(--muted); font-size: .92rem; }



.gf-table-wrap { overflow-x: auto; margin: 1.25rem 0; border: 3px solid #111; background: #fff; }

.gf-table { width: 100%; border-collapse: collapse; font-size: .88rem; }

.gf-table th, .gf-table td { border-bottom: 2px solid #111; padding: .75rem .7rem; vertical-align: top; background: #fffaf1; }

.gf-table thead th { background: #111; color: var(--hivis); text-align: left; text-transform: uppercase; letter-spacing: .05em; font-size: .75rem; }

.gf-card {

  border: 3px solid #111;

  padding: 1.1rem 1.15rem;

  margin: 1.25rem 0;

  background: #fff;

  box-shadow: var(--shadow);

}

.gf-card h3 { margin-top: 0; font-family: var(--display); text-transform: uppercase; }



.gf-btn {

  display: inline-block;

  background: #111;

  color: var(--hivis) !important;

  text-decoration: none;

  padding: .7rem 1.05rem;

  font-weight: 800;

  border: 3px solid #111;

  cursor: pointer;

  font-size: .82rem;

  letter-spacing: .06em;

  text-transform: uppercase;

  box-shadow: 4px 4px 0 var(--hivis);

}

.gf-btn:hover { background: var(--hivis); color: #111 !important; }

.gf-btn--ghost {

  background: transparent;

  color: #111 !important;

  border: 3px solid #111;

  box-shadow: none;

}

.gf-btn--ghost:hover { background: #111; color: var(--hivis) !important; }

.gf-hero .gf-btn--ghost { color: #111 !important; }

.gf-paid { font-size: .85rem; color: var(--muted); }

.gf-cta--pending { font-size: .88rem; color: var(--muted); }

.gf-form label { display: block; font-weight: 700; margin-top: .7rem; text-transform: uppercase; font-size: .82rem; letter-spacing: .04em; }

.gf-form input, .gf-form textarea {

  width: 100%;

  max-width: 32rem;

  padding: .6rem .7rem;

  border: 3px solid #111;

  font: inherit;

  background: #fff;

}



.gf-footer {

  background: #111;

  color: var(--paper);

  padding: 2.2rem 0 1.8rem;

  border-top: 10px solid transparent;

  border-image: repeating-linear-gradient(-45deg, #111 0 10px, #f5c518 10px 20px) 10;

}

.gf-footer a { color: var(--hivis); }

.gf-footer a:hover { color: #111; }

.gf-footer__brand { margin: 0; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: .88rem; }

.gf-footer__nav ul { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; list-style: none; margin: 1rem 0; padding: 0; }



.gf-grid--4 { grid-template-columns: repeat(4, 1fr); }

.gf-list-plain { list-style: none; padding: 0; }

.gf-list-plain li { padding: .4rem 0; border-bottom: 2px solid #111; }

.gf-lead { font-size: 1.08rem; }

.gf-finder {

  background: #fffaf1;

  border: 3px solid #111;

  padding: 1.2rem 1.25rem 1.4rem;

  box-shadow: var(--shadow);

}

.gf-finder__grid {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: .85rem 1rem;

  margin: 1rem 0;

}

.gf-finder label { display: flex; flex-direction: column; gap: .35rem; font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }

.gf-finder select,

.gf-finder input {

  font: inherit;

  padding: .5rem .55rem;

  border: 3px solid #111;

  background: #fff;

  text-transform: none;

  font-weight: 500;

  letter-spacing: 0;

}

.gf-finder-group { margin: 1.4rem 0; }

.gf-finder-group--ok { border-left: 8px solid var(--hivis); padding-left: 1rem; }

.gf-finder-group--maybe { border-left: 8px solid #c46a00; padding-left: 1rem; }

.gf-btn--nav {

  margin-left: auto;

  font-size: .72rem;

  padding: .45rem .7rem;

  background: #111;

  color: var(--hivis) !important;

  box-shadow: none;

  white-space: nowrap;

  flex-shrink: 0;

}

.gf-btn--nav:hover { background: #fff; color: #111 !important; }

.gf-finder-group--no { border-left: 8px solid #c1121f; padding-left: 1rem; }

.gf-snapshot { display: grid; grid-template-columns: 12rem 1fr; gap: .35rem 1rem; }

.gf-snapshot dt { font-weight: 800; text-transform: uppercase; font-size: .78rem; letter-spacing: .04em; }

.gf-snapshot dd { margin: 0; }

.gf-picks { padding-left: 1.1rem; }

@media (max-width: 800px) {

  .gf-grid, .gf-grid--4, .gf-band__grid, .gf-finder__grid { grid-template-columns: 1fr; }

  .gf-tile { min-height: 0; }

  .gf-header::after { height: 7px; }

  .gf-header__inner {

    display: grid;

    grid-template-columns: 1fr auto;

    align-items: center;

    gap: .55rem .7rem;

    flex-wrap: wrap;

  }

  .gf-logo { grid-column: 1; }

  .gf-btn--nav {

    grid-column: 2;

    width: auto;

    max-width: none;

    margin-left: 0;

    white-space: nowrap;

    font-size: .68rem;

    padding: .42rem .6rem;

  }

  .gf-nav {

    grid-column: 1 / -1;

  }

  .gf-nav ul {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 0;

    margin-top: .45rem;

    border: 3px solid #111;

    background: #fff;

  }

  .gf-nav a {

    display: block;

    font-size: .75rem;

    padding: .55rem .65rem;

    border-bottom: 1px solid #111;

  }

  .gf-hero__split {

    display: flex;

    flex-direction: column;

    min-height: 0;

  }

  .gf-hero__copy { order: 1; padding: 1.25rem 1rem 1.4rem; }

  .gf-hero__panel {

    order: 2;

    border-right: 0;

    border-top: 4px solid #111;

    min-height: 0;

    padding: 1.15rem 1rem 1.3rem;

    justify-content: flex-start;

    gap: 1rem;

  }

  .gf-eyebrow { white-space: normal; letter-spacing: .06em; font-size: .7rem; }

  .gf-hero h1 { font-size: 1.45rem; line-height: 1.12; }

  .gf-hero__lead { font-size: 1rem; margin-bottom: 1rem; }

  .gf-hero__kicker { font-size: 1.35rem; color: #fff; }

}

@media (max-width: 700px) {

  .gf-article { padding: 1.15rem .95rem 2rem; }

}


/* ==========================================================================
   Responsive Tables & Global Layout Safeguards (CoringSpec Standards)
   ========================================================================== */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

*, *::before, *::after {
  box-sizing: border-box;
}

/* Global table scroll container */
.table-scroll,
.gf-table-wrap,
.wp-block-table {
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
  margin: 1.25rem 0;
  display: block;
}

table,
.table-scroll table,
.gf-table-wrap table,
.wp-block-table table,
.gf-table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
}

table th,
table td,
.table-scroll th,
.table-scroll td,
.gf-table th,
.gf-table td {
  vertical-align: top;
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Ensure no elements bleed beyond screen */
img, video, iframe, embed, object {
  max-width: 100%;
  height: auto;
}

pre, code {
  max-width: 100%;
  overflow-x: auto;
  word-break: break-word;
  white-space: pre-wrap;
}

/* Mobile Spec Table Stacked Presentation */
@media (max-width: 600px) {
  .gf-table--stacked tr {
    display: flex;
    flex-direction: column;
    padding: 0.75rem 0.5rem;
    border-bottom: 1px solid #e2e8f0;
  }
  .gf-table--stacked th {
    font-weight: 700;
    padding: 0 0 0.25rem 0;
    border: none !important;
    background: transparent !important;
  }
  .gf-table--stacked td {
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
  }
}
