@import url("./theme-tokens.css");

/* Global light theme for every public Red Oak page. Photo content retains its native colours. */
body,
.site-main,
.audit-shell,
.error-page {
  color: var(--text-primary);
  background: var(--surface-page);
}

body::after {
  display: none;
}

/* Shared navigation and actions */
.site-nav,
.audit-nav,
.nav-shell,
.top-nav,
.floating-nav {
  border-color: var(--border-subtle);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 10px 30px rgba(17, 18, 15, 0.06);
}

.nav-logo,
.nav-links,
.nav-links a,
.site-nav a,
.audit-nav a {
  color: var(--text-primary);
}

.nav-toggle {
  color: var(--text-primary);
  background: var(--surface-inset);
}

.nav-links a:hover,
.nav-links a:focus-visible {
  color: var(--action);
}

.nav-logo img,
.audit-hero__logo,
.audit-hero__logo img,
.footer-brand img,
.audit-wordmark img,
.error-shell__brand img {
  filter: brightness(0) saturate(100%);
}

.button,
.audit-button,
.button--primary,
.hero-call-button,
.floating-call-cta {
  color: #fff;
  border-color: var(--action);
  background: var(--action);
  box-shadow: none;
}

.button:hover,
.button:focus-visible,
.audit-button:hover,
.audit-button:focus-visible,
.button--primary:hover,
.button--primary:focus-visible,
.floating-call-cta:hover,
.floating-call-cta:focus-visible {
  color: #fff;
  background: var(--action-hover);
  border-color: var(--action-hover);
}

.button-light,
.button--secondary,
.audit-button--light,
.hero-actions .button-light,
.form-call-prompt__button {
  color: var(--text-primary);
  border-color: var(--border-control);
  background: var(--surface-page);
  box-shadow: none;
}

.button-light:hover,
.button-light:focus-visible,
.button--secondary:hover,
.button--secondary:focus-visible,
.audit-button--light:hover,
.audit-button--light:focus-visible {
  color: var(--text-primary);
  border-color: var(--text-primary);
  background: var(--surface-inset);
}

/* Newer York and service-area pages */
.hero,
.hero--project-actions {
  min-height: auto;
  color: var(--text-primary);
  background: var(--surface-page);
}

.hero-media {
  position: relative;
  min-height: clamp(20rem, 48vw, 39rem);
  background: var(--surface-inset);
}

.hero-media::after,
.hero--project-actions::before {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04));
}

.hero-content,
.hero--project-actions .hero-content {
  color: var(--text-primary);
}

.hero h1,
.hero-intro,
.hero-note,
.hero--project-actions .hero-project-copy,
.hero--project-actions .hero-note {
  color: var(--text-primary) !important;
  text-shadow: none;
}

.hero--project-actions .project-gallery__header :is(h1, h2),
.hero--project-actions .project-gallery__signals,
.hero--project-actions .project-gallery__signals span,
.hero--project-actions .hero-note {
  color: var(--text-primary) !important;
}

.hero--project-actions .project-gallery__signals {
  border-color: var(--border-subtle);
}

.hero-note,
.hero-intro,
.section-head p,
.direct-answer p,
.service-card p,
.page-card p,
.coverage-strip p,
.regional-hubs__heading p,
.service-work-gallery__heading p {
  color: var(--text-secondary);
}

.hero--project-actions .hero-content,
.hero--project-actions .hero-project-copy {
  max-width: min(100% - 3rem, 1440px);
  margin-inline: auto;
}

.marquee {
  color: var(--text-secondary);
  background: var(--surface-subtle);
  border-color: var(--border-subtle);
}

.project-gallery,
.project-gallery::before,
.coverage-strip,
.coverage-strip::after,
.verified-reviews,
.verified-reviews::before,
.cta-section,
.site-footer,
.unified-nap,
.regional-hubs,
.service-work-gallery {
  color: var(--text-primary);
  background: var(--surface-page);
}

.project-gallery::before,
.coverage-strip::after,
.verified-reviews::before {
  opacity: 0;
}

.project-gallery__header :is(h1, h2),
.project-gallery__header > p:last-child,
.project-gallery__eyebrow,
.project-gallery__signals,
.coverage-strip h2,
.coverage-strip__cities a,
.site-footer h2,
.site-footer a,
.site-footer p,
.unified-nap,
.unified-nap__details strong,
.unified-nap__details a {
  color: var(--text-primary);
}

.project-gallery__signals span,
.neighbourhood-list li,
.plain-list li,
.coverage-strip__cities a {
  border-color: var(--border-subtle);
  background: var(--surface-subtle);
}

.project-gallery__signals span::before {
  background: var(--action);
  box-shadow: none;
}

.bezel,
.service-card,
.page-card,
.regional-hub-card a,
.carousel-shell,
.footer-map,
.form-call-prompt,
.direct-answer,
.service-work-gallery figure {
  border-color: var(--border-subtle);
  background: var(--surface-page);
  box-shadow: var(--shadow-soft);
}

.bezel-core,
.service-card .bezel-core,
.page-card .bezel-core,
.regional-hub-card__content,
.carousel-shell,
.direct-answer {
  color: var(--text-primary);
  background: var(--surface-page);
}

.service-card .card-wash,
.regional-hub-card__wash {
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.08) 68%);
}

.service-card-copy,
.regional-hub-card__content {
  color: var(--text-primary);
}

.service-card h3,
.page-card h3,
.regional-hub h3,
.regional-hub-card strong,
.carousel-shell blockquote,
.carousel-shell p {
  color: var(--text-primary);
}

.cta-section {
  padding-block: clamp(4rem, 8vw, 7rem);
}

.cta-panel,
.audit-final__inner {
  color: var(--text-primary);
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  box-shadow: var(--shadow-soft);
}

.cta-panel h2,
.cta-panel p,
.form-call-prompt__label,
.form-call-prompt__copy,
.estimate-form label,
.form-status {
  color: var(--text-primary);
}

.estimate-form input,
.estimate-form select,
.estimate-form textarea,
.contact-form input,
.contact-form select,
.contact-form textarea {
  color: var(--text-primary);
  border-color: var(--border-control);
  background: #fff;
}

.estimate-form input:focus,
.estimate-form select:focus,
.estimate-form textarea:focus,
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color: var(--action);
  background: #fff;
}

.site-footer,
.unified-nap {
  border-color: var(--border-subtle);
}

.footer-bottom,
.unified-nap__label,
.site-footer p,
.site-footer .footer-bottom {
  color: var(--text-secondary);
}

.footer-map {
  background: var(--surface-inset);
}

/* Shared project gallery, review proof, photo dialog, and review dialog */
.hero-review,
.review-modal__surface,
.gallery-lightbox__surface {
  color: var(--text-primary);
  border-color: var(--border-subtle);
  background: var(--surface-page);
  box-shadow: var(--shadow-soft);
}

.hero-review__body,
.review-modal__body,
.gallery-lightbox__caption {
  color: var(--text-primary);
  background: var(--surface-page);
}

.hero-review__eyebrow,
.review-modal__eyebrow,
.hero-review blockquote,
.review-modal blockquote,
.review-modal__body p,
.gallery-lightbox__caption span,
.gallery-lightbox__caption h2 {
  color: var(--text-primary);
}

.hero-review__trigger,
.review-modal__close,
.gallery-lightbox__close {
  color: var(--text-primary);
  border-color: var(--border-control);
  background: var(--surface-page);
}

.review-modal::backdrop,
.gallery-lightbox::backdrop {
  background: rgba(17, 18, 15, 0.34);
}

.project-gallery__media,
.project-gallery__item,
.gallery-lightbox__media,
.hero-review__media,
.review-modal__media {
  background: var(--surface-inset);
}

.project-gallery__media::before,
.project-gallery__item figcaption {
  background: linear-gradient(0deg, rgba(17, 18, 15, 0.68), transparent 62%);
}

.verified-results {
  --results-ink: var(--text-primary);
  --results-paper: var(--surface-page);
  --results-sage: var(--surface-subtle);
  --results-rust: var(--action);
  color: var(--text-primary);
  background: var(--surface-subtle);
}

.verified-results h2,
.verified-results__heading p,
.verified-results__eyebrow,
.verified-results__label,
.verified-results__rating,
.verified-results__score-meta,
.verified-results__person strong,
.verified-results__person small,
.verified-results blockquote,
.verified-results__disclosure {
  color: var(--text-primary);
}

.verified-results__eyebrow,
.verified-results__bezel,
.verified-results__score-core,
.verified-results__quote-core,
.verified-results__tags span {
  border-color: var(--border-subtle);
  background: var(--surface-page);
  box-shadow: none;
}

.verified-results__score-rule i {
  background: var(--surface-inset);
}

.verified-results__score-rule i::after {
  background: var(--action);
}

.verified-results__verify-link {
  color: #fff;
  background: var(--action);
}

.verified-results__verify-link:hover,
.verified-results__verify-link:focus-visible {
  background: var(--action-hover);
}

.verified-results__proof-label,
.verified-results__media-label {
  color: var(--text-primary);
  background: rgba(255, 255, 255, 0.94);
}

/* Installation city pages using the older audit layout */
.audit-shell,
.audit-lead,
.audit-estimate,
.audit-faq,
.audit-services,
.audit-reasons,
.audit-about,
.section--white,
.video-wall,
.audit-footer,
.audit-final {
  color: var(--text-primary);
  background: var(--surface-page);
}

.audit-network,
.audit-network::before,
.audit-hero,
.audit-hero::before {
  color: var(--text-primary);
  background: var(--surface-page);
}

.audit-network::before,
.audit-hero::before {
  opacity: 0;
}

.audit-hero__inner,
.audit-hero h1,
.audit-hero__subhead,
.audit-offer-note,
.audit-repair-link,
.audit-hero__eyebrow {
  color: var(--text-primary);
  text-shadow: none;
}

.audit-brush {
  background: var(--action);
}

.audit-trust-strip,
.audit-lead-card,
.audit-form,
.audit-estimate__grid article,
.audit-faq__grid article,
.audit-reason,
.audit-service-card,
.audit-callout,
.audit-guide,
.audit-book,
.landmark-card,
.booking-modal {
  color: var(--text-primary);
  border-color: var(--border-subtle);
  background: var(--surface-page);
  box-shadow: var(--shadow-soft);
}

.audit-trust-strip p,
.audit-lead-card p,
.audit-form__intro,
.audit-estimate__intro > p:last-child,
.audit-estimate__grid p,
.audit-faq__intro > p:last-child,
.audit-faq__grid p,
.audit-reason p,
.audit-about p,
.audit-footer p,
.audit-footer .unified-nap__label {
  color: var(--text-secondary);
}

.audit-heading,
.audit-lead-card h2,
.audit-form h2,
.audit-estimate h2,
.audit-faq h2,
.audit-section-title,
.audit-truth h2,
.audit-guide-copy h2,
.audit-about h2,
.audit-book__title,
.audit-reason h3,
.audit-service-card h3,
.audit-form label span,
.audit-form label span small,
.audit-footer a,
.audit-footer .unified-nap__details a,
.audit-footer .unified-nap__details strong {
  color: var(--text-primary);
}

.audit-form input,
.audit-form select,
.audit-form textarea {
  color: var(--text-primary);
  border-color: var(--border-control);
  background: #fff;
}

.audit-form input:focus,
.audit-form select:focus,
.audit-form textarea:focus {
  border-color: var(--action);
  background: #fff;
}

.booking-modal::backdrop {
  background: rgba(17, 18, 15, 0.34);
}

.booking-modal__close {
  color: var(--text-primary);
  border-color: var(--border-control);
  background: #fff;
}

.audit-truth,
.audit-gallery {
  color: var(--text-primary);
  background: var(--surface-subtle);
}

.audit-truth-media::before,
.audit-truth-media::after,
.audit-gallery::before,
.audit-gallery__item::after,
.video-wall::before,
.video-wall__tile::after {
  opacity: 0;
}

.audit-service-card__body,
.audit-gallery__item figcaption,
.video-wall__tile figcaption {
  color: var(--text-primary);
  background: var(--surface-page);
}

.audit-service-card__media::before,
.audit-service-card__media::after {
  opacity: 0;
}

.audit-gallery h2,
.audit-gallery__intro p,
.video-wall__header h2,
.video-wall__header p:last-child,
.video-wall__eyebrow,
.video-wall__tile figcaption strong,
.video-wall__tile figcaption span {
  color: var(--text-primary);
}

.video-wall__tile {
  border: 1px solid var(--border-subtle);
  background: var(--surface-inset);
}

.audit-final .audit-button,
.audit-services__cta .audit-button {
  color: #fff;
  background: var(--action);
}

/* Legacy 404 fallback and legacy dialog surfaces */
.error-page,
.error-shell,
.video-lightbox__panel,
.booking-modal__panel {
  color: var(--text-primary);
  background: var(--surface-page);
}

.error-shell {
  display: block;
  max-width: 1120px;
  min-height: auto;
  margin-inline: auto;
  padding: clamp(3rem, 8vw, 7rem) 0;
}

.error-shell__brand {
  display: block;
  margin-bottom: clamp(2rem, 5vw, 4rem);
}

.error-shell > div {
  max-width: 54rem;
}

.error-shell > .regional-hubs {
  margin-top: clamp(4rem, 8vw, 7rem);
}

.error-shell h1,
.error-shell p,
.error-shell .eyebrow,
.video-lightbox__header,
.booking-modal__header,
.booking-modal__body {
  color: var(--text-primary);
}

.video-lightbox__scrim,
.booking-modal__scrim {
  background: rgba(17, 18, 15, 0.34);
}

@media (max-width: 760px) {
  .hero-media {
    min-height: 18rem;
  }

  .hero--project-actions .hero-content,
  .hero--project-actions .hero-project-copy {
    max-width: calc(100% - 2rem);
  }
}
