/* Chamberlin Design — content pages (services, pricing, local, sitemap, 404)
   Loaded after style.css. Same tokens: Anton display, Inter body, mono labels. */

.pg-head { padding-top: clamp(24px, 4vw, 56px); padding-bottom: clamp(32px, 5vw, 64px); }
.pg-head .label { display: block; margin-bottom: clamp(14px, 1.8vw, 22px); }
.pg-crumb {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  margin-bottom: clamp(20px, 2.6vw, 32px);
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--muted);
}
.pg-crumb a { color: var(--ink); border-bottom: 1px solid var(--rule); padding-bottom: 2px; transition: color .25s var(--ease), border-color .25s var(--ease); }
.pg-crumb a:hover { color: var(--forest); border-color: var(--forest); }
.pg-crumb span[aria-hidden] { color: var(--rule); }
.pg-title {
  font-family: var(--font-display); font-size: clamp(52px, 10vw, 150px);
  line-height: .88; letter-spacing: -.03em; text-transform: uppercase;
  color: var(--ink); max-width: 12ch;
}
.pg-title em { color: var(--forest); font-style: italic; }
.pg-sub {
  margin-top: clamp(28px, 4vw, 48px); font-weight: 300;
  font-size: clamp(17px, 1.5vw, 21px); line-height: 1.55;
  color: var(--muted-deep); max-width: 58ch; text-wrap: pretty;
}
.pg-actions { margin-top: clamp(28px, 4vw, 44px); display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.pg-actions .cd-callout-btn:hover { background: #0b2e23; }
.pg-actions .cd-callout-btn:hover .cd-callout-arrow { transform: translate(3px, -3px); }

.pg-section { border-top: 1px solid var(--rule); }
.pg-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 16px clamp(24px, 5vw, 80px); align-items: end; margin-bottom: clamp(28px, 4vw, 52px); }
.pg-section-head .label { display: block; margin-bottom: 14px; }
.pg-h2 { font-size: clamp(38px, 5.4vw, 80px); line-height: .9; }
.pg-h2 em { color: var(--forest); font-style: italic; }
.pg-lede { color: var(--muted-deep); font-weight: 300; font-size: clamp(16px, 1.3vw, 19px); max-width: 56ch; text-wrap: pretty; }
@media (max-width: 860px) { .pg-section-head { grid-template-columns: 1fr; } }

.pg-points { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 10px; }
.pg-point {
  padding: clamp(22px, 2.4vw, 30px); border: 1px solid var(--rule); border-radius: 16px; background: var(--paper);
  transition: transform .3s var(--spring), border-color .3s var(--ease);
}
.pg-point:hover { transform: translateY(-3px); border-color: rgba(15, 61, 46, .4); }
.pg-point-n { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; color: var(--forest); }
.pg-point h3 { margin: 14px 0 8px; font-family: var(--font-body); font-weight: 500; font-size: 19px; line-height: 1.25; letter-spacing: -.01em; }
.pg-point p { color: var(--muted-deep); font-size: 15.5px; line-height: 1.55; }

.pg-prose { max-width: 68ch; }
.pg-prose p { color: var(--muted-deep); margin-bottom: 16px; text-wrap: pretty; }
.pg-prose a, .pg-link { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }

.pg-proof { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px; }
.pg-proof-card {
  display: flex; flex-direction: column; border: 1px solid var(--rule); border-radius: 16px; overflow: hidden; background: var(--paper);
  transition: transform .3s var(--spring), box-shadow .3s var(--ease);
}
.pg-proof-card:hover { transform: translateY(-3px); box-shadow: 0 30px 56px -30px rgba(15, 61, 46, .34); }
.pg-proof-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top center; background: var(--rule); }
.pg-proof-body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 6px; }
.pg-proof-body .label { color: var(--forest); }
.pg-proof-body strong { font-family: var(--font-display); font-weight: 400; font-size: 30px; line-height: 1; text-transform: uppercase; }
.pg-proof-body span:last-child { color: var(--muted-deep); font-size: 15px; }

.pg-towns { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.pg-towns li { padding: 9px 16px; border: 1px solid var(--rule); border-radius: 999px; font-size: 15px; }

.pg-table-wrap { overflow-x: auto; }
.pg-table { width: 100%; border-collapse: collapse; font-size: 15.5px; min-width: 520px; }
.pg-table th, .pg-table td { text-align: left; padding: 14px 12px; border-bottom: 1px solid var(--rule); vertical-align: top; }
.pg-table th { font-family: var(--font-mono); font-weight: 400; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }

.pg-cta { border-top: 1px solid var(--rule); }
.pg-cta .label { display: block; }

.pg-faq { padding-top: clamp(48px, 7vw, 100px); }

/* ---- HTML sitemap ---- */
.sm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(28px, 4vw, 56px); }
.sm-group h2 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--ink); }
.sm-group ul { list-style: none; }
.sm-group li { border-bottom: 1px solid var(--rule); }
.sm-group a { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; transition: color .25s var(--ease); }
.sm-group a:hover { color: var(--forest); }
.sm-group code { font-family: var(--font-mono); font-size: 12px; color: var(--muted); white-space: nowrap; }

/* ---- 404 ---- */
.nf { position: relative; isolation: isolate; min-height: calc(100svh - 80px); display: grid; align-content: center; overflow: hidden; padding-inline: var(--gutter); }
.nf-stage { position: relative; isolation: isolate; width: min(100%, 1280px); margin: 0 auto; }
.hero-grid.nf-grid { position: absolute; inset: 0; top: 0; left: 0; width: 100%; margin-left: 0; z-index: 0; overflow: hidden; }
.hero-grid.nf-grid::after { display: none; }
.nf-grid .hero-grid-plane { width: 170%; height: 260%; grid-template-columns: repeat(7, 1fr); }
/* White card + black type in screen blend: white stays white, the black
   letterforms become windows onto the scrolling work underneath. */
.nf-knock {
  position: relative; z-index: 1; margin: 0; background: #fff; color: #000; mix-blend-mode: screen;
  font-family: var(--font-display); font-weight: 400; text-transform: uppercase;
  font-size: clamp(150px, 46vw, 520px); line-height: .82; letter-spacing: -.04em; text-align: center;
  padding-block: .06em .02em; user-select: none;
}
/* A second copy of the glyphs, transparent, drawn over the card so its
   text-shadow reads as a shadow cast by the cut-out letterforms. */
.nf-shadow {
  position: absolute; inset: 0; z-index: 2; mix-blend-mode: normal;
  background: none; color: transparent; pointer-events: none;
  text-shadow: 0 2px 6px rgba(14, 14, 14, .30), 0 18px 34px rgba(14, 14, 14, .38), 0 44px 80px rgba(15, 61, 46, .30);
}

.nf-copy { position: relative; z-index: 2; text-align: center; margin-top: clamp(16px, 2.4vw, 32px); }
.nf-copy h1 { font-size: clamp(36px, 5.4vw, 76px); }
.nf-copy h1 em { color: var(--forest); font-style: italic; }
.nf-copy p { margin: 16px auto 0; color: var(--muted-deep); max-width: 44ch; }
.nf-links { margin-top: clamp(24px, 3vw, 36px); display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.nf-links a { padding: 11px 18px; border: 1px solid var(--rule); border-radius: 999px; font-size: 15px; transition: border-color .25s var(--ease), color .25s var(--ease); }
.nf-links a:hover { border-color: var(--forest); color: var(--forest); }
.nf-links a.is-primary { background: var(--forest); border-color: var(--forest); color: var(--paper); }
.nf-links a.is-primary:hover { background: #0b2e23; color: var(--paper); }
