@font-face {
  font-family: "Glacial Indifference";
  src: url("/assets/brand/fonts/glacial-indifference-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Glacial Indifference";
  src: url("/assets/brand/fonts/glacial-indifference-bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Monoist";
  src: url("/assets/brand/fonts/monoist-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --pg-white: #ffffff;
  --pg-black: #000000;
  --pg-accent: #bfb7ac;
  --pg-ink: #5f5b56;
  --pg-surface: #ebeae8;
  --pg-surface-soft: #f6f5f3;
  --pg-line: #d7d2cc;
  --pg-display: "Glacial Indifference", Arial, sans-serif;
  --pg-body: "Glacial Indifference", Arial, sans-serif;
  --pg-mono: "Monoist", "Courier New", monospace;
  --pg-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --pg-shadow: 0 24px 70px rgba(0, 0, 0, 0.09);

  /* Map legacy page tokens into the current Project Gateway system. */
  --fdisp: var(--pg-display);
  --fbody: var(--pg-body);
  --fmono: var(--pg-mono);
  --font-display: var(--pg-display);
  --font-body: var(--pg-body);
  --font-mono: var(--pg-mono);
  --deep: var(--pg-black);
  --deep-2: #171717;
  --navy: var(--pg-black);
  --ink: var(--pg-black);
  --ink-2: var(--pg-ink);
  --ink-3: #7b756e;
  --cream: var(--pg-white);
  --sand: var(--pg-surface);
  --warm: var(--pg-surface-soft);
  --accent: var(--pg-accent);
  --cyan: var(--pg-accent);
  --border: var(--pg-line);
}

html {
  scroll-behavior: smooth;
  background: var(--pg-white);
}

body {
  background: var(--pg-white) !important;
  color: var(--pg-ink) !important;
  font-family: var(--pg-body) !important;
  font-size: 17px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0 0 auto;
  z-index: 10000;
  height: 3px;
  pointer-events: none;
  background: var(--pg-black);
}

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

h1,
h2,
h3,
h4,
h5,
h6,
.hero-title,
.section-title,
.display,
.card-title {
  color: var(--pg-black) !important;
  font-family: var(--pg-display) !important;
  font-weight: 700 !important;
  letter-spacing: -0.035em !important;
  text-wrap: balance;
}

p,
li,
label,
input,
select,
textarea,
button {
  font-family: var(--pg-body) !important;
}

p,
li {
  color: var(--pg-ink);
}

a {
  color: var(--pg-black);
  text-underline-offset: 0.22em;
  text-decoration-thickness: 1px;
}

strong,
b {
  color: var(--pg-black);
}

::selection {
  color: var(--pg-white);
  background: var(--pg-black);
}

.pg-kicker,
.eyebrow,
.hero-eyebrow,
.doc-label,
.step-label,
.badge,
.pill,
.tag,
.nav-tag {
  color: var(--pg-black) !important;
  font-family: var(--pg-mono) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  line-height: 1.4;
  text-transform: uppercase;
}

.pill,
.sq-eyebrow,
.hero-badge {
  border: 1px solid var(--pg-line) !important;
  color: var(--pg-black) !important;
  background: var(--pg-surface-soft) !important;
  background-image: none !important;
}

button,
.btn,
.cta,
.nav-cta,
.primary-cta,
.btn-primary,
.submit-btn,
.hero-cta,
a[class*="btn"],
a[class*="cta"] {
  min-height: 48px;
  border: 1px solid var(--pg-black) !important;
  border-radius: 3px !important;
  color: var(--pg-white) !important;
  background: var(--pg-black) !important;
  background-image: none !important;
  box-shadow: none !important;
  font-family: var(--pg-mono) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.25;
  text-transform: uppercase;
  transition:
    color 220ms var(--pg-ease),
    background-color 220ms var(--pg-ease),
    transform 220ms var(--pg-ease) !important;
}

button:hover,
.btn:hover,
.cta:hover,
.nav-cta:hover,
.primary-cta:hover,
.btn-primary:hover,
.submit-btn:hover,
.hero-cta:hover,
a[class*="btn"]:hover,
a[class*="cta"]:hover {
  color: var(--pg-black) !important;
  background: var(--pg-white) !important;
  transform: translateY(-2px);
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--pg-black) !important;
  outline-offset: 4px !important;
}

input,
select,
textarea {
  min-height: 48px;
  border: 1px solid var(--pg-line) !important;
  border-radius: 2px !important;
  color: var(--pg-black) !important;
  background: var(--pg-white) !important;
  box-shadow: none !important;
}

input::placeholder,
textarea::placeholder {
  color: #928c85 !important;
  opacity: 1;
}

nav,
.topbar,
header.site {
  border-color: var(--pg-line) !important;
  background: rgba(255, 255, 255, 0.94) !important;
  background-image: none !important;
  box-shadow: none !important;
  backdrop-filter: blur(16px);
}

nav img,
header.site img,
.topbar img {
  filter: none !important;
}

.pg-brand-lockup {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 12px;
  color: var(--pg-black);
  text-decoration: none;
}

.pg-brand-lockup img {
  display: block;
  width: 158px;
  max-height: 42px;
  object-fit: contain;
  object-position: left center;
}

.pg-lane-label {
  padding-left: 12px;
  border-left: 1px solid var(--pg-line);
  color: var(--pg-ink);
  font-family: var(--pg-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-transform: uppercase;
}

.pg-hero-media {
  position: relative;
  min-height: 440px;
  overflow: hidden;
  border: 1px solid var(--pg-line);
  background: var(--pg-surface);
}

.pg-hero-copy {
  min-width: 0;
}

.pg-hero-media::before {
  content: "{";
  position: absolute;
  z-index: 2;
  top: -26px;
  left: -5px;
  color: var(--pg-white);
  font-family: var(--pg-display);
  font-size: 144px;
  font-weight: 400;
  line-height: 1;
  opacity: 0.94;
}

.pg-hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
}

.pg-hero-caption {
  position: absolute;
  z-index: 3;
  right: 20px;
  bottom: 18px;
  margin: 0;
  padding: 7px 9px;
  color: var(--pg-black);
  background: rgba(255, 255, 255, 0.92);
  font-family: var(--pg-mono) !important;
  font-size: 9px;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-transform: uppercase;
}

.sec,
.section,
.booking,
.expect,
.agents-section,
.reassure,
.faq,
.three-things,
.testimonials,
.demo-steps,
.objections,
.offer {
  background-image: none !important;
}

.card,
.leak-card,
.agent-card,
.benefit-card,
.proof-card,
.step-card,
.question-card,
.score-card,
.reassure-card,
.faq-item,
[class*="card"] {
  border-color: var(--pg-line) !important;
  border-radius: 3px !important;
  background-image: none !important;
  box-shadow: none !important;
}

.reveal,
[data-pg-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 680ms var(--pg-ease),
    transform 680ms var(--pg-ease);
}

.reveal.is-visible,
[data-pg-reveal].is-visible {
  opacity: 1;
  transform: none;
}

/* General Business funnel */
body[data-pg-lane="business"] nav {
  min-height: 76px;
}

body[data-pg-route="business-home"] > nav > a:first-child,
body[data-pg-route="business-demo"] > nav > a:first-child,
body[data-pg-route="business-booking"] > nav > a:first-child {
  font-size: 0 !important;
}

body[data-pg-route="business-home"] .hero:first-of-type {
  padding-top: clamp(72px, 9vw, 126px) !important;
  background:
    linear-gradient(90deg, var(--pg-white) 0 72%, transparent 72%),
    linear-gradient(var(--pg-surface-soft), var(--pg-surface-soft)) !important;
}

body[data-pg-route="business-home"] .hero:first-of-type > .wrap:first-child {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(380px, 1.1fr);
  gap: clamp(44px, 7vw, 104px);
  align-items: center;
  max-width: 1280px;
}

body[data-pg-route="business-home"] .hero:first-of-type h1 {
  max-width: 11ch !important;
  font-size: clamp(54px, 7.2vw, 112px) !important;
  line-height: 0.92 !important;
}

body[data-pg-route="business-home"] .hero:first-of-type .lead {
  max-width: 54ch;
}

body[data-pg-route="business-home"] .optin-card,
body[data-pg-route="business-home"] form {
  border-color: var(--pg-line) !important;
  border-radius: 3px !important;
  background: var(--pg-surface-soft) !important;
  box-shadow: none !important;
}

body[data-pg-route="business-home"] .leak-num,
body[data-pg-route="business-home"] .step-num,
body[data-pg-route="business-home"] .num {
  color: var(--pg-accent) !important;
  font-family: var(--pg-mono) !important;
}

body[data-pg-route="business-demo"] .hero,
body[data-pg-route="business-booking"] .hero {
  padding-top: clamp(74px, 9vw, 120px) !important;
  background: var(--pg-surface-soft) !important;
}

body[data-pg-route="business-demo"] .video-placeholder,
body[data-pg-route="business-demo"] .video-wrap,
body[data-pg-route="business-demo"] [class*="video"],
body[data-pg-route="business-booking"] .calendar-wrap,
body[data-pg-route="business-booking"] .hero-calendar {
  overflow: hidden;
  border: 1px solid var(--pg-line) !important;
  border-radius: 3px !important;
  background: var(--pg-white) !important;
  box-shadow: var(--pg-shadow) !important;
}

body[data-pg-route="business-demo"] .agent-icon {
  display: none !important;
}

body[data-pg-route="business-demo"] .play-btn {
  color: var(--pg-white) !important;
  background: var(--pg-black) !important;
}

body[data-pg-route="business-demo"] .msg.out {
  color: var(--pg-white) !important;
  background: var(--pg-black) !important;
}

/* Dental lane */
body[data-pg-lane="dental"] .hero,
body[data-pg-lane="dental"] .hero-dark {
  color: var(--pg-ink) !important;
  background: var(--pg-white) !important;
  background-image: none !important;
}

body[data-pg-route="dental-home"] .hero-bg {
  display: none !important;
}

body[data-pg-route="dental-home"] .hero > .wrap {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(390px, 1.1fr);
  gap: clamp(44px, 7vw, 104px);
  align-items: center;
  max-width: 1280px;
}

body[data-pg-route="dental-home"] .hero h1 {
  max-width: 11ch;
  font-size: clamp(54px, 7vw, 108px) !important;
  line-height: 0.92 !important;
}

body[data-pg-route="dental-home"] .stat-strip,
body[data-pg-route="dental-home"] .trust-band,
body[data-pg-route="dental-home"] .cta-strip {
  color: var(--pg-black) !important;
  border-color: var(--pg-line) !important;
  background: var(--pg-surface) !important;
  background-image: none !important;
}

body[data-pg-route="dental-home"] .stat-strip *,
body[data-pg-route="dental-home"] .trust-band *,
body[data-pg-route="dental-home"] .cta-strip * {
  color: inherit !important;
}

body[data-pg-route="dental-home"] .cta-strip .cta-btn {
  color: var(--pg-white) !important;
}

body[data-pg-route="dental-home"] .thing-num,
body[data-pg-route="dental-home"] .check,
body[data-pg-route="dental-home"] .step-num {
  border-color: var(--pg-line) !important;
}

body[data-pg-route="dental-home"] .dot {
  background: var(--pg-black) !important;
  box-shadow: none !important;
}

body[data-pg-route="assessment"] .topbar,
body[data-pg-route="report"] .report-nav,
body[data-pg-route="calendar"] .topbar {
  min-height: 76px;
}

body[data-pg-route="assessment"] .progress-fill,
body[data-pg-route="assessment"] [class*="progress-fill"],
body[data-pg-route="report"] .score-fill {
  background: var(--pg-black) !important;
  background-image: none !important;
}

body[data-pg-route="assessment"] .option,
body[data-pg-route="assessment"] .choice,
body[data-pg-route="assessment"] [class*="option"] {
  border-color: var(--pg-line) !important;
  border-radius: 3px !important;
  color: var(--pg-black) !important;
  background: var(--pg-white) !important;
  box-shadow: none !important;
}

body[data-pg-route="assessment"] .option:hover,
body[data-pg-route="assessment"] .choice:hover,
body[data-pg-route="assessment"] [class*="option"]:hover {
  border-color: var(--pg-black) !important;
}

body[data-pg-route="assessment"] .sq-check {
  border-color: var(--pg-line) !important;
  color: var(--pg-black) !important;
  background: var(--pg-surface-soft) !important;
}

body[data-pg-route="report"] .hero-dark {
  padding-top: clamp(84px, 10vw, 140px);
  border-bottom: 1px solid var(--pg-line);
}

body[data-pg-route="report"] .hero-dark *,
body[data-pg-route="report"] .offer *,
body[data-pg-route="report"] .cta-block * {
  color: inherit;
}

body[data-pg-route="report"] .accent,
body[data-pg-route="report"] [class*="accent"] {
  color: var(--pg-black) !important;
  text-decoration: underline;
  text-decoration-color: var(--pg-accent);
  text-decoration-thickness: 0.14em;
  text-underline-offset: 0.14em;
}

body[data-pg-route="report"] .sg-box.ok {
  color: var(--pg-black) !important;
  background: var(--pg-accent) !important;
}

body[data-pg-route="report"] .sg-box.warn {
  color: var(--pg-white) !important;
  background: var(--pg-black) !important;
  box-shadow: none !important;
}

body[data-pg-route="report"] .score-legend > span:nth-child(2) .leg-dot {
  background: var(--pg-black) !important;
}

body[data-pg-route="report"] .score-legend > span:nth-child(3) .leg-dot {
  background: var(--pg-accent) !important;
}

body[data-pg-route="report"] .fds-field,
body[data-pg-route="report"] .sb-dot.active,
body[data-pg-route="report"] .leak-pill,
body[data-pg-route="report"] .badge-score,
body[data-pg-route="report"] .section-impact,
body[data-pg-route="report"] .manual-summary,
body[data-pg-route="report"] .time-cost,
body[data-pg-route="report"] .isnot-col {
  border-color: var(--pg-line) !important;
  background: var(--pg-surface-soft) !important;
  background-image: none !important;
  box-shadow: none !important;
}

body[data-pg-route="calendar"] .hero {
  background:
    linear-gradient(90deg, var(--pg-white) 0 58%, var(--pg-surface-soft) 58%) !important;
}

body[data-pg-route="calendar"] .hero-calendar {
  border-radius: 3px !important;
  background: var(--pg-white) !important;
  box-shadow: var(--pg-shadow) !important;
}

body[data-pg-route="calendar"] .hero-sub,
body[data-pg-route="calendar"] .hero-proof,
body[data-pg-route="calendar"] .hero-proof .sep {
  color: var(--pg-ink) !important;
}

body[data-pg-route="calendar"] .expect-strip {
  border-color: var(--pg-line) !important;
  background: var(--pg-surface) !important;
}

body[data-pg-route="calendar"] .expect-icon {
  color: var(--pg-black) !important;
  background: var(--pg-surface) !important;
}

/* Game page retained as a distinct campaign, now inside the brand system. */
body[data-pg-route="game"] {
  --pixel-cyan: var(--pg-accent);
  --cyan: var(--pg-accent);
  --purple: var(--pg-black);
  --yellow: var(--pg-accent);
  background: var(--pg-white) !important;
}

body[data-pg-route="game"] .hero-grid,
body[data-pg-route="game"] .hero-glow,
body[data-pg-route="game"] .hero-glow-2,
body[data-pg-route="game"] .hero-bg-word,
body[data-pg-route="game"] .hero-scene,
body[data-pg-route="game"] [class*="pixel-corner"] {
  display: none !important;
}

body[data-pg-route="game"] .hero,
body[data-pg-route="game"] .problem,
body[data-pg-route="game"] .concept,
body[data-pg-route="game"] .gameframe,
body[data-pg-route="game"] .party,
body[data-pg-route="game"] .dashboard,
body[data-pg-route="game"] .challenges,
body[data-pg-route="game"] .proof,
body[data-pg-route="game"] .cta-section {
  color: var(--pg-ink) !important;
  background: var(--pg-white) !important;
  background-image: none !important;
}

body[data-pg-route="game"] .hud-strip {
  border-color: var(--pg-line) !important;
  color: var(--pg-black) !important;
  background: var(--pg-surface) !important;
}

body[data-pg-route="game"] .hero-title .accent {
  color: var(--pg-accent) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

body[data-pg-route="game"] .hero-title .dim,
body[data-pg-route="game"] .hero-subtitle,
body[data-pg-route="game"] .hero-body,
body[data-pg-route="game"] .hero-body strong {
  color: var(--pg-black) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

body[data-pg-route="game"] .hero-sub-underline::after {
  background: var(--pg-accent) !important;
}

body[data-pg-route="game"] h2 span,
body[data-pg-route="game"] [class*="title"] span {
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

body[data-pg-route="game"] .hero-glass,
body[data-pg-route="game"] [class*="glass"],
body[data-pg-route="game"] [class*="panel"],
body[data-pg-route="game"] [class*="card"] {
  border-color: var(--pg-line) !important;
  border-radius: 3px !important;
  color: var(--pg-ink) !important;
  background: var(--pg-surface-soft) !important;
  background-image: none !important;
  box-shadow: none !important;
}

body[data-pg-route="game"] .stat-box,
body[data-pg-route="game"] .pillar,
body[data-pg-route="game"] .member,
body[data-pg-route="game"] .challenge,
body[data-pg-route="game"] .proof-card {
  border-color: var(--pg-line) !important;
  color: var(--pg-ink) !important;
  background: var(--pg-surface-soft) !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

body[data-pg-route="game"] .member-primary-badge,
body[data-pg-route="game"] .obj-badge {
  border-color: var(--pg-line) !important;
  color: var(--pg-black) !important;
  background: var(--pg-surface) !important;
}

body[data-pg-route="game"] .bar.hi {
  background: var(--pg-black) !important;
  box-shadow: none !important;
}

/* Legal pages */
body[data-pg-lane="legal"] {
  background:
    linear-gradient(90deg, var(--pg-surface-soft) 0 26%, var(--pg-white) 26%) !important;
}

body[data-pg-lane="legal"] .back-wrap {
  max-width: 920px !important;
  padding-top: 76px !important;
}

body[data-pg-lane="legal"] .back-wrap::before {
  content: "";
  display: block;
  width: 172px;
  height: 52px;
  margin-bottom: 36px;
  background: url("/assets/brand/project-gateway-logo.png") left center / contain no-repeat;
}

body[data-pg-lane="legal"] .card {
  max-width: 920px !important;
  padding: clamp(34px, 6vw, 80px) !important;
  border: 1px solid var(--pg-line) !important;
  border-radius: 3px !important;
  background: var(--pg-white) !important;
  box-shadow: var(--pg-shadow) !important;
}

body[data-pg-lane="legal"] .card h1 {
  max-width: 13ch;
  font-size: clamp(48px, 7vw, 88px) !important;
  line-height: 0.95 !important;
}

body[data-pg-lane="legal"] .card h2 {
  margin-top: 48px !important;
  padding-top: 24px;
  border-top: 1px solid var(--pg-line);
}

body[data-pg-lane="legal"] .highlight-box,
body[data-pg-lane="legal"] .rights-card,
body[data-pg-lane="legal"] .rights-list,
body[data-pg-lane="legal"] table {
  border-color: var(--pg-line) !important;
  border-radius: 2px !important;
  background: var(--pg-surface-soft) !important;
  background-image: none !important;
}

@media (max-width: 920px) {
  body[data-pg-route="business-home"] .hero:first-of-type > .wrap:first-child,
  body[data-pg-route="dental-home"] .hero > .wrap {
    grid-template-columns: 1fr;
  }

  .pg-hero-media {
    min-height: 360px;
  }

  body[data-pg-route="calendar"] .hero {
    background: var(--pg-white) !important;
  }

  body[data-pg-lane="legal"] {
    background: var(--pg-surface-soft) !important;
  }
}

@media (max-width: 640px) {
  body {
    font-size: 16px;
  }

  .pg-lane-label {
    display: none;
  }

  .pg-brand-lockup img {
    width: 132px;
  }

  .pg-hero-media {
    min-height: 300px;
  }

  body[data-pg-route="business-home"] .hero:first-of-type h1,
  body[data-pg-route="dental-home"] .hero h1 {
    font-size: clamp(48px, 16vw, 72px) !important;
  }

  body[data-pg-lane="legal"] .back-wrap {
    padding: 56px 20px 0 !important;
  }

  body[data-pg-lane="legal"] .card {
    margin: 24px 14px !important;
    padding: 30px 22px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .reveal,
  [data-pg-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}
