/* DGRB visual system. Canonical shared values for all public page families.
   Layout-specific compositions (photo heroes, article pages, dark PPC forms)
   retain their structure; recurring controls share the rules below. */
:root {
  --dgrb-brand: #c72b1b;
  --dgrb-brand-hover: #a92317;
  --dgrb-brand-pressed: #8f1d13;
  --dgrb-brand-soft: #fff2ef;
  --dgrb-brand-rgb: 199, 43, 27;
  --dgrb-ink: #171513;
  --dgrb-muted: #625d57;
  --dgrb-paper: #f6f2ed;
  --dgrb-wash: #faf7f3;
  --dgrb-surface: #ffffff;
  --dgrb-border: #ded8d1;
  --dgrb-dark: #202429;
  --dgrb-radius-control: 10px;
  --dgrb-radius-card: 20px;
  --dgrb-radius-small: 8px;
  --dgrb-shadow-card: 0 8px 24px rgba(23, 21, 19, .08);
  --dgrb-shadow-overlay: 0 24px 64px rgba(23, 21, 19, .2);
  --dgrb-focus-ring: 0 0 0 3px rgba(var(--dgrb-brand-rgb), .22);
  --dgrb-control-height: 54px;
  --dgrb-section-space: clamp(56px, 6vw, 96px);
  --dgrb-ease: cubic-bezier(.23, 1, .32, 1);
}

/* Primary actions: same red, shape, weight and states across all templates.
   Navigation and fixed mobile-bar controls retain their compact dimensions. */
html body :is(.site-cta--primary, .button.primary, .quotation-submit, .quote-button, .ppc-cta-btn--primary, .mobile-sticky-btn--quote, .mobile-sticky-quote) {
  background: var(--dgrb-brand);
  border-color: var(--dgrb-brand);
  color: #fff;
  border-radius: var(--dgrb-radius-control);
  min-height: var(--dgrb-control-height);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.3;
  box-shadow: none;
  transition: background-color 160ms ease, transform 160ms var(--dgrb-ease);
}
html body :is(.site-cta--secondary, .contact-link, .contact-action--secondary) {
  border-radius: var(--dgrb-radius-control);
  border-color: var(--dgrb-border);
  min-height: var(--dgrb-control-height);
  box-shadow: none;
}
html body :is(.site-cta--primary, .button.primary, .quotation-submit, .quote-button, .ppc-cta-btn--primary, .mobile-sticky-btn--quote, .mobile-sticky-quote):active {
  background: var(--dgrb-brand-pressed);
  transform: scale(.98);
}
html body :is(.site-cta, .quote-button, .quotation-submit, .button):focus-visible {
  outline: 2px solid var(--dgrb-brand);
  outline-offset: 4px;
}
@media (hover:hover) and (pointer:fine) {
  html body :is(.site-cta--primary, .button.primary, .quotation-submit, .quote-button, .ppc-cta-btn--primary, .mobile-sticky-btn--quote, .mobile-sticky-quote):hover {
    background: var(--dgrb-brand-hover);
    border-color: var(--dgrb-brand-hover);
    box-shadow: none;
  }
}

/* Form geometry and type. Checkboxes and hidden fields keep their native roles. */
html body :is(.project-form, .quotation-form, .contact-lead-form, .quote-form) :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]), select, textarea) {
  border-radius: var(--dgrb-radius-control);
  border-color: var(--dgrb-border);
  background: var(--dgrb-surface);
  color: var(--dgrb-ink);
  min-height: 48px;
  padding: 12px 14px;
  font-size: 16px;
  line-height: 1.4;
  box-shadow: none;
}
html body :is(.project-form, .quotation-form, .contact-lead-form, .quote-form) :is(input, select, textarea):focus {
  border-color: var(--dgrb-brand);
  outline: 2px solid var(--dgrb-brand);
  outline-offset: 2px;
  box-shadow: none;
}
html body :is(.project-form, .quotation-form, .contact-lead-form, .quote-form) :is(input, textarea)::placeholder {
  color: var(--dgrb-muted);
  opacity: 1;
}
html body :is(.project-enquiry, .quotation-enquiry) {
  background: var(--dgrb-wash);
  border-color: var(--dgrb-border);
  border-radius: var(--dgrb-radius-card);
  box-shadow: var(--dgrb-shadow-overlay);
}
html body :is(.project-form, .quotation-form) { background: transparent; }
html body .quote-card {
  border-radius: var(--dgrb-radius-card);
  box-shadow: var(--dgrb-shadow-card);
}

/* A common type and spacing hierarchy for content sections. Photo-hero display
   headings remain deliberately larger and retain their art direction. */
html body :is(.business-content > section) > h2,
html body :is(.section-head, .ppc-trust__header) h2,
html body :is(.ppc-details__title, .ppc-projects__title, .ppc-guides__title, .ppc-process__title, .ppc-trust__title) {
  font-size: clamp(32px, 3.4vw, 48px);
  line-height: 1.08;
  letter-spacing: -.035em;
  font-weight: 500;
}
html body :is(.business-label, .legal-kicker, .ppc-trust__eyebrow) {
  color: var(--dgrb-brand);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .1em;
}
html body :is(.business-card, .seo-project-evidence__card, .ppc-fact-card, .ppc-project-card) {
  border-color: var(--dgrb-border);
  border-radius: var(--dgrb-radius-card);
  box-shadow: none;
}
@media (prefers-reduced-motion:reduce) {
  html body :is(.site-cta, .button, .quote-button, .quotation-submit) { transition:none; }
}

/* Recurring sections share a spacing scale; dense articles retain smaller subheadings. */
html body :is(.ppc-details, .ppc-projects, .ppc-guides, .ppc-process) { padding-block:var(--dgrb-section-space); }
html body[data-dgrb-page="thank-you"] .button { background:var(--dgrb-brand); border-color:var(--dgrb-brand); border-radius:var(--dgrb-radius-control); }
html body[data-dgrb-page="thank-you"] .modal { border-radius:var(--dgrb-radius-card); box-shadow:var(--dgrb-shadow-card); }
html body .mobile-sticky-bar :is(.mobile-sticky-btn--quote,.mobile-sticky-quote) { min-height:48px; font-size:14px; }
/* Footer text must retain readable contrast on the shared warm paper surface. */
html body .ppc-footer__base,
html body .ppc-footer__base a { color:var(--dgrb-muted); }
