body.nyc-public {
  --paper: #fffdfa;
  --ink: #302a25;
  --accent: #704728;
  --tint: #fff6e5;
  --line: #e5d6c8;
  --hero-bg: #fff6e5;
}

.nyc-public .site-header { min-height: 64px; }
.nyc-public .site-nav { flex-wrap: wrap; gap: 0 1.4rem; }
.nyc-public .site-nav a { display: inline-flex; }
.nyc-public .hero { grid-template-columns: 1.12fr 1fr; min-height: 468px; }
.nyc-public .hero h1 { font-size: clamp(2.55rem, 4.45vw, 4.65rem); max-width: 15ch; }
.nyc-public .hero-copy { padding: clamp(26px, 5vw, 64px); }
.nyc-public .hero-photo {
  width: 100%;
  height: 100%;
  min-height: 100%;
  display: block;
  object-fit: cover;
  object-position: 52% center;
}

.nyc-public .button:not(.button-secondary) { background: #e9b14f; color: #302016; }
.nyc-public .resource-card > p { margin-bottom: .85rem; }
.nyc-public .resource-card > a { font-weight: 600; }
.nyc-public .resource-card .card-next { margin: .65rem 0 0; }
.nyc-public .hero .hero-actions { margin-top: 1.2rem; }
.nyc-public .hero-copy > .hero-proof { margin-top: .8rem; font-size: .85rem; color: var(--accent); }
.nyc-public :is(#borough-care, #first-call) { scroll-margin-top: 1rem; }
.nyc-public .borough-directory p { margin-top: .65rem; }
.nyc-public .borough-list { margin: 0; padding: 0; list-style: none; }
.nyc-public .borough-list li + li { margin-top: .9rem; padding-top: .9rem; border-top: 1px solid var(--line); }
.nyc-public .borough-list h3 { margin-bottom: .2rem; font-size: 1.08rem; }
.nyc-public .borough-list h3 span { font-family: Inter, system-ui, sans-serif; font-size: .88rem; font-weight: 400; }
.nyc-public .borough-actions { display: flex; flex-wrap: wrap; gap: 0 1.1rem; }
.nyc-public .borough-list a { display: inline-flex; align-items: center; min-height: 44px; gap: .25rem; }
.nyc-public .site-footer .wrap { align-items: center; }
.nyc-public .footer-brand img { display: block; width: 112px; height: auto; }
.nyc-public .site-footer p { max-width: 57ch; }
.nyc-public .guide-shell { max-width: 780px; padding: 3rem 0 1rem; }
.nyc-public .guide-shell h1 { font-size: clamp(2.35rem, 6vw, 3.85rem); margin: .55rem 0 .9rem; }
.nyc-public .guide-shell .intro { font-size: 1.13rem; }
.nyc-public .guide-shell section { margin-top: 2.4rem; }
.nyc-public .guide-shell section > h2 { font-size: 1.55rem; margin-bottom: .65rem; }
.nyc-public .guide-shell p + p { margin-top: .75rem; }
.nyc-public .guide-shell ol { padding-left: 1.3rem; }
.nyc-public .guide-callout { background: var(--tint); border: 1px solid var(--line); border-radius: 18px; padding: 1.3rem; }
.nyc-public .guide-shell .sources { padding-top: 0; }
.nyc-public .guide-shell .sources a { min-height: 32px; }
.nyc-public .guide-fig { margin: 1.8rem 0 0; }
.nyc-public .guide-fig img { width: 100%; height: auto; display: block; border-radius: 20px; }
.nyc-public .callback-page { padding-bottom: 3rem; }
.callback-page .field-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 1rem;
  margin-block: 1rem;
}
.callback-page .field-row label { font-weight: 600; }
.callback-page .field-row :is(input, select) {
  width: 100%;
  min-height: 48px;
  margin-top: .25rem;
  padding: .55rem .7rem;
  border: 1px solid #9a8474;
  border-radius: 9px;
  color: var(--ink);
  background: var(--paper);
}
.callback-page .hint { font-size: .9rem; font-weight: 400; }
.callback-page .callback-consent { display: flex; gap: .65rem; align-items: start; margin-block: 1rem; }
.callback-page .callback-consent input { accent-color: var(--accent); flex: none; width: 1.15rem; height: 1.15rem; margin: .2rem 0 0; }
.callback-page button:disabled { opacity: .65; cursor: wait; }

body.nyc-entry {
  --paper: #fffdfa;
  --ink: #302a25;
  --accent: #704728;
  --tint: #fff6e5;
  --line: #e5d6c8;
  --hero-bg: #f6d8b6;
  --apricot: #f6d8b6;
  --apricot-deep: #efc39d;
  --honey: #e9b14f;
  --field-border: #ad8a72;
  --warm-gradient: linear-gradient(122deg, #fff6e5 0%, #f6d8b6 57%, #efc39d 100%);
}

.nyc-entry .button {
  min-height: 48px;
  padding: .65rem 1.25rem;
  font-size: .875rem;
  letter-spacing: -.2px;
}
.nyc-entry .button:not(.button-secondary) { background: var(--honey); color: #302016; }
.nyc-entry .button:not(.button-secondary):hover { background: #dfa23a; filter: none; }
.nyc-entry .button-secondary { border-color: #986647; background: #fffdf799; }
.nyc-entry :is(a, button, input, select, video):focus-visible { outline-color: #704728; }

.nyc-public .intake-hero {
  grid-template-columns: 1.03fr 1fr;
  min-height: 0;
  background: var(--warm-gradient);
  border: 1px solid var(--line);
}
.nyc-public .intake-hero .hero-copy { padding: clamp(1.25rem, 4vw, 3.25rem); }
.nyc-public .intake-hero h1 { max-width: 17ch; font-size: clamp(2.4rem, 4.35vw, 4.25rem); }
.nyc-public .intake-hero .hero-copy > p:not(.kicker) { max-width: 39ch; }
.nyc-public .intake-hero .hero-actions { margin-top: .85rem; }
.intake-zip-form { margin-top: 1rem; }
.intake-zip-form label { display: block; font-size: .9rem; font-weight: 600; }
.intake-zip-row { display: grid; grid-template-columns: minmax(0, 11rem) max-content; gap: .6rem; margin-top: .35rem; }
.nyc-entry .intake-zip-row input, .nyc-entry .callback-page .field-row :is(input, select) {
  width: 100%;
  min-height: 48px;
  padding: .55rem .7rem;
  border: 1.5px solid var(--field-border);
  border-radius: 12px;
  color: var(--ink);
  background: var(--paper);
}
.nyc-entry .intake-zip-row input[aria-invalid="true"] { border-color: #ff6b6b; }
.intake-error { font-size: .86rem; margin-top: .35rem; }
.intake-media { position: relative; min-width: 0; min-height: 100%; margin: 0; background: var(--ink); }
.intake-media video { display: block; width: 100%; height: 100%; object-fit: contain; }
.nyc-entry .intake-watch { position: absolute; left: 1rem; bottom: 1rem; background: var(--paper); color: var(--ink); }
.intake-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
  margin: .9rem 0 0;
  padding: 0;
  list-style: none;
}
.intake-steps li {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: 0;
  padding: .55rem .8rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  font-size: .88rem;
  font-weight: 600;
}
.intake-steps span {
  display: grid;
  place-items: center;
  flex: none;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 50%;
  background: var(--tint);
  color: var(--accent);
}
.nyc-entry .callback-page .guide-callout { padding: clamp(1.1rem, 4vw, 2.25rem); }
.callback-details { min-width: 0; margin: 1rem 0 0; padding: 0; border: 0; }
.callback-details legend { padding: 0; }
.intake-step-label { color: var(--accent); font-size: .86rem; font-weight: 600; }
.callback-zip-summary, .callback-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .7rem; }
.callback-call-note { margin-top: .65rem; max-width: 57ch; }
.callback-change {
  min-height: 44px;
  border: 0;
  background: transparent;
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: .15em;
  cursor: pointer;
}
#callback-result { margin-block: 1rem; font-weight: 600; }

@media (max-width: 780px) {
  .nyc-public .hero { grid-template-columns: 1fr; }
  .nyc-public .hero-copy { padding: 1.65rem 1.2rem; }
  .nyc-public .hero h1 { font-size: clamp(2.15rem, 8.7vw, 3.35rem); }
  .nyc-public .hero-photo { min-height: 0; height: auto; aspect-ratio: 1.65; }
  .nyc-public .site-nav { gap: 0 .8rem; }
  .nyc-public .site-nav a:not(.button) { display: inline-flex; }
  .nyc-public .site-footer .wrap { display: grid; gap: .8rem; }
  .nyc-public .guide-shell { padding-top: 1.6rem; }
  .nyc-entry .site-nav a:nth-child(n+3) { display: none; }
  .nyc-public .intake-hero { grid-template-columns: 1fr; }
  .nyc-public .intake-hero h1 { font-size: clamp(2.05rem, 8.1vw, 3.35rem); }
  .intake-media { min-height: 0; }
  .intake-media video { aspect-ratio: 1.65; }
  .intake-steps { grid-template-columns: 1fr; gap: .35rem; }
  .intake-steps li { padding-block: .32rem; }
}

/* Use the approved apricot palette from the NYC design review for the actual intake. */
.nyc-entry .kicker::before { background: #b37b28; }
.nyc-entry .intake-hero .intake-zip-form {
  width: fit-content;
  max-width: 100%;
  padding: .8rem .95rem 1rem;
  background: #fffdf7e8;
  border: 1px solid #fffdf9;
  border-radius: 17px;
  box-shadow: 0 9px 27px #482a2113;
}
.nyc-entry .intake-watch {
  border-color: #fffdfa;
  box-shadow: 0 4px 16px #302a2529;
}
.media-duration {
  padding-left: .45rem;
  border-left: 1px solid var(--line);
  color: var(--accent);
  font-size: .72rem;
}
.callback-header .site-nav a { gap: .55rem; font-weight: 600; }
.nyc-entry .callback-page { padding-bottom: clamp(1.5rem, 4vw, 3rem); }
.callback-layout {
  display: grid;
  grid-template-areas: "intro panel" "media panel";
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  align-content: center;
  align-items: start;
  gap: 1.45rem clamp(1.75rem, 5vw, 4.5rem);
  padding: clamp(1.5rem, 5vw, 4.1rem);
  border: 1px solid var(--line);
  border-radius: 30px;
  background: var(--warm-gradient);
}
.callback-intro { grid-area: intro; }
.callback-intro h1 {
  max-width: 14ch;
  margin: .6rem 0 .8rem;
  font-size: clamp(2.35rem, 4.4vw, 4.3rem);
}
.callback-intro > p:last-child { max-width: 35ch; }
.callback-media {
  grid-area: media;
  min-height: 0;
  width: 100%;
  border: 1px solid #fffdfa;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 12px 24px #482a211c;
}
.nyc-entry .callback-media .hero-photo {
  aspect-ratio: 2.05;
  height: auto;
  min-height: 0;
  object-position: 50% 40%;
}
.callback-media video { height: auto; aspect-ratio: 16 / 9; }
.callback-panel {
  grid-area: panel;
  align-self: center;
  min-width: 0;
  padding: clamp(1.15rem, 3vw, 2rem);
  border: 1px solid #fffdfa;
  border-radius: 22px;
  background: #fffcf8;
  box-shadow: 0 16px 48px #482a2125;
}
.callback-progress {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .4rem;
  list-style: none;
  padding: 0 0 .9rem;
  margin: 0;
  border-bottom: 1px solid var(--line);
}
.callback-progress li {
  display: flex;
  align-items: center;
  gap: .35rem;
  color: #725d4d;
  font-size: clamp(.68rem, 1.3vw, .83rem);
  font-weight: 600;
  line-height: 1.15;
  margin: 0;
}
.callback-progress li > span {
  display: grid;
  place-items: center;
  flex: none;
  width: 1.45rem;
  height: 1.45rem;
  background: var(--tint);
  border: 1px solid var(--line);
  border-radius: 50%;
}
.callback-progress li[aria-current="step"] { color: var(--ink); }
.callback-progress li[aria-current="step"] > span {
  background: var(--honey);
  border-color: var(--honey);
  color: var(--ink);
}
.callback-progress li.is-complete > span { background: var(--apricot); color: var(--ink); }
.callback-panel .callback-question {
  display: block;
  margin: .25rem 0 .45rem;
  color: var(--ink);
  font: 700 clamp(1.45rem, 3vw, 2.05rem)/1.15 Jakarta, Inter, system-ui, sans-serif;
  letter-spacing: -.035em;
}
.callback-panel .intake-step-label { margin: 0 0 .25rem; font-size: .78rem; }
.callback-panel .intake-zip-row { grid-template-columns: minmax(0, 1fr) max-content; gap: .65rem; margin-top: .8rem; }
.callback-panel .hint { color: #694c38; margin-top: .6rem; }
.callback-panel .field-row { margin-block: .65rem .9rem; }
.callback-panel .callback-consent { margin: .5rem 0 .65rem; font-size: .89rem; }
.callback-panel .callback-call-note { font-size: .94rem; }
.callback-panel .callback-actions { margin-top: .9rem; }
.callback-panel .button:not(.button-secondary) { min-width: 7.25rem; }
.callback-panel .callback-change { font-size: .84rem; }
.callback-panel .callback-zip-summary { font-size: .84rem; gap: .45rem; }
.callback-panel #callback-result { margin-block: .65rem; }
.callback-footer .wrap { display: flex; align-items: center; flex-wrap: wrap; }
@media (max-width: 780px) {
  .nyc-entry .callback-header { min-height: 50px; }
  .callback-layout {
    grid-template-areas: "intro" "panel" "media";
    grid-template-columns: minmax(0, 1fr);
    padding: clamp(.8rem, 4vw, 1.5rem);
    gap: .95rem;
    border-radius: 20px;
  }
  .callback-intro h1 { max-width: 19ch; font-size: clamp(1.9rem, 7vw, 2.7rem); margin: .35rem 0 .45rem; }
  .callback-intro > p:last-child { font-size: .92rem; }
  .callback-panel { border-radius: 16px; }
  .callback-media { border-radius: 14px; }
  .callback-footer { padding-block: 1rem 1.4rem; }
}
