/* Low-vision reading layer shared by the public site and its admin dashboard. */
:root {
  --a11y-text: #17211a;
  --a11y-muted: #465147;
  --a11y-inverse: #d1d9d1;
  --a11y-focus: #005fcc;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

html {
  scroll-padding-top: 6rem;
}

body,
.admin-body {
  color: var(--a11y-text);
  font-size: 1.125rem !important;
  line-height: 1.7 !important;
  -webkit-font-smoothing: auto !important;
}

/* Keep small labels readable instead of relying on tiny uppercase type. */
.brand-name strong { font-size: 1rem !important; }
.brand-name small { font-size: 0.95rem !important; }
.site-nav > a:not(.nav-cta) {
  color: #344238 !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
}
.nav-cta,
.button,
.admin-button {
  min-height: 48px;
  font-size: 1rem !important;
  line-height: 1.35 !important;
}
.menu-toggle { min-width: 48px; min-height: 48px; }
.eyebrow,
.hero-overline,
.section-label,
.card-index,
.hero-art-top,
.art-caption,
.art-marker,
.aside-kicker,
.aside-signature,
.foot-label,
.foot-index,
.form-top,
.eyebrow-small {
  font-size: 0.75rem !important;
  line-height: 1.55 !important;
  letter-spacing: 0.075em !important;
}
.eyebrow,
.hero-overline,
.section-label,
.aside-kicker,
.aside-signature,
.foot-label,
.foot-index,
.eyebrow-small {
  color: #465147 !important;
}
.label-number,
.hero-overline span,
.text-link span,
.contact-direct a span,
.project-meta,
.advert-card-meta {
  color: #5b4310 !important;
}

.hero-intro,
.intro-copy,
.heading-row > p,
.capability-card p,
.project-card p,
.process-intro > p,
.process-item p,
.contact-copy > p:not(.contact-pretitle),
.footer-top > p,
.advert-card-copy p {
  color: var(--a11y-muted) !important;
  font-size: 1rem !important;
  line-height: 1.75 !important;
}
.hero-intro { font-size: 1.125rem !important; }
.hero-location,
.foot-values,
.note-item,
.text-link,
.advert-visit-link,
.contact-direct,
.footer-top > p,
.back-top,
.social-links a,
.footer-bottom {
  color: var(--a11y-muted) !important;
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
}
.hero-location { margin-top: 1.75rem; }
.text-link,
.contact-direct a,
.back-top,
.social-links a,
.footer-bottom a,
.advert-visit-link,
.login-back,
.inquiry-meta a {
  text-decoration: underline;
  text-underline-offset: 0.22em;
  text-decoration-thickness: 0.08em;
}
.text-link { border-bottom: 0 !important; }
.text-link--light,
.process-section .section-label,
.process-section .section-label--dark,
.process-section .text-link--light,
.process-section .process-intro > p,
.process-section .process-item p,
.process-section .process-number,
.process-section .process-item h3 {
  color: #f4f2eb !important;
}
.process-section .section-label--dark { color: #d1d9d1 !important; }
.process-section .section-label .label-number,
.process-section .process-number,
.process-section .text-link--light span { color: #efc95e !important; }

.intro-copy { max-width: 42rem; }
.intro-aside p { color: #344238 !important; font-size: 1.3rem !important; line-height: 1.55 !important; }
.note-item { color: #344238 !important; font-size: 0.9rem !important; }
.heading-row > p { max-width: 34rem; }
.capability-card h3 { font-size: 1.35rem !important; line-height: 1.35 !important; }
.capability-card p { font-size: 0.95rem !important; }
.capability-card--dark p { color: #d1d9d1 !important; }
.capability-card--dark .card-index { color: #e2e8e1 !important; }
.capability-card--gold p { color: #403714 !important; }
.capability-card--gold .card-index { color: #403714 !important; }
.project-shelf-heading h3 { font-size: 1.75rem !important; }
.project-meta { font-size: 0.75rem !important; }
.project-card h4 { font-size: 1.2rem !important; }
.process-item h3 { font-size: 1.2rem !important; }
.process-item p { color: #d1d9d1 !important; }
.process-number { font-size: 0.9rem !important; }
.testimonial-card blockquote { color: #344238 !important; font-size: 1.15rem !important; line-height: 1.7 !important; }
.testimonial-stars { color: #755700 !important; font-size: 0.95rem !important; }
.testimonial-author strong { color: #17211a !important; font-size: 0.9rem !important; }
.testimonial-author small { color: #465147 !important; font-size: 0.85rem !important; }
.contact-pretitle { color: #5b4310 !important; font-size: 1.15rem !important; line-height: 1.6 !important; }
.contact-copy h2 { line-height: 1.18 !important; }
.contact-direct > span { color: #465147 !important; font-size: 0.75rem !important; }
.contact-direct a { color: #17211a !important; }
.inquiry-form label { color: #17211a !important; font-size: 1rem !important; line-height: 1.5 !important; }
.inquiry-form label span { color: #5b4310 !important; }
.inquiry-form input,
.inquiry-form select,
.inquiry-form textarea {
  min-height: 48px;
  border-color: #6b736b !important;
  color: #17211a !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
}
.inquiry-form textarea { min-height: 8rem; }
.inquiry-form input::placeholder,
.inquiry-form textarea::placeholder { color: #59645a !important; opacity: 1; }
.form-top { color: #5b4310 !important; }
.form-top span:last-child { color: #465147 !important; }
.form-privacy { color: #465147 !important; font-size: 0.85rem !important; line-height: 1.6 !important; }
.form-status { color: #285532 !important; font-size: 0.95rem !important; line-height: 1.6 !important; }
.form-status[data-error="true"] { color: #81251e !important; }
.footer-top > p { color: #d1d9d1 !important; }
.back-top,
.social-links a,
.footer-bottom,
.footer-bottom a,
.social-links .admin-footer-link { color: #e0e6df !important; }
.advert-card-meta { font-size: 0.75rem !important; }
.advert-card-copy p { color: #465147 !important; font-size: 0.95rem !important; }
.advert-visit-link { color: #17211a !important; }
.advert-visit-link span { color: #5b4310 !important; }
.advert-placeholder-layout span { color: #465147 !important; font-size: 0.7rem !important; }
.advert-placeholder-layout b { color: #5b4310 !important; }

/* Admin content, status text, and forms. */
.admin-body .admin-brand strong { font-size: 1rem !important; }
.admin-body .admin-brand small { color: #d1d9d1 !important; font-size: 0.8rem !important; }
.admin-body .view-site,
.admin-body .signout { color: #f4f2eb !important; font-size: 0.9rem !important; }
.admin-body .signout { min-height: 44px; }
.admin-body .login-kicker,
.admin-body .view-kicker,
.admin-body .sidebar-overline { color: #5b4310 !important; font-size: 0.75rem !important; line-height: 1.55 !important; }
.admin-body .login-card h1 { font-size: 2.2rem !important; line-height: 1.2 !important; }
.admin-body .login-card > p:not(.login-error) { color: #465147 !important; font-size: 1rem !important; line-height: 1.7 !important; }
.admin-body .login-note { color: #465147 !important; font-size: 0.9rem !important; line-height: 1.6 !important; }
.admin-body .login-back { color: #344238 !important; font-size: 0.9rem !important; }
.admin-body .login-error { color: #81251e !important; font-size: 0.9rem !important; }
.admin-body .sidebar-intro strong { font-size: 1.1rem !important; }
.admin-body .sidebar-intro small { color: #465147 !important; font-size: 0.85rem !important; }
.admin-body .admin-nav-item { min-height: 48px; color: #344238 !important; font-size: 0.95rem !important; }
.admin-body .admin-nav-item.is-active { color: #17211a !important; }
.admin-body .sidebar-bottom,
.admin-body .secure-badge { color: #465147 !important; font-size: 0.75rem !important; line-height: 1.55 !important; }
.admin-body .admin-main { font-size: 1rem !important; }
.admin-body .admin-alert { font-size: 0.95rem !important; line-height: 1.6 !important; }
.admin-body .admin-alert:not(:empty) { color: #285532 !important; }
.admin-body .admin-alert[data-error="true"] { color: #81251e !important; }
.admin-body .view-heading h1 { font-size: clamp(2rem, 4vw, 2.5rem) !important; line-height: 1.2 !important; }
.admin-body .view-heading p { color: #465147 !important; font-size: 1rem !important; line-height: 1.65 !important; }
.admin-body .summary-card span { color: #465147 !important; font-size: 0.9rem !important; }
.admin-body .summary-card strong { font-size: 2.2rem !important; }
.admin-body .summary-card small { color: #465147 !important; font-size: 0.8rem !important; }
.admin-body .overview-card h2 { font-size: 1.3rem !important; line-height: 1.4 !important; }
.admin-body .overview-card p { color: #465147 !important; font-size: 0.95rem !important; line-height: 1.7 !important; }
.admin-body .inline-action { color: #4b3809 !important; font-size: 0.9rem !important; }
.admin-body .field-grid label,
.admin-body .filter-label { color: #344238 !important; font-size: 0.95rem !important; line-height: 1.5 !important; }
.admin-body .field-grid input,
.admin-body .field-grid textarea,
.admin-body .field-grid select,
.admin-body .filter-label select,
.admin-body .inquiry-status {
  min-height: 48px;
  border-color: #6b736b !important;
  color: #17211a !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
}
.admin-body .field-grid textarea { min-height: 6rem; }
.admin-body .editor-hint { color: #465147 !important; font-size: 0.85rem !important; line-height: 1.55 !important; }
.admin-body .content-row-main strong { color: #17211a !important; font-size: 1rem !important; }
.admin-body .content-row-main small { color: #465147 !important; font-size: 0.85rem !important; line-height: 1.55 !important; white-space: normal; }
.admin-body .content-row-actions button { min-height: 44px; color: #344238 !important; font-size: 0.85rem !important; }
.admin-body .status-pill { color: #334b34 !important; font-size: 0.7rem !important; }
.admin-body .status-pill--draft { color: #514116 !important; }
.admin-body .inquiry-top strong { color: #17211a !important; font-size: 1rem !important; }
.admin-body .inquiry-top small { color: #465147 !important; font-size: 0.85rem !important; line-height: 1.55 !important; }
.admin-body .inquiry-message { color: #344238 !important; font-size: 1rem !important; line-height: 1.75 !important; }
.admin-body .inquiry-meta { color: #465147 !important; font-size: 0.85rem !important; }
.admin-body .inquiry-meta a { color: #4b3809 !important; }
.admin-body .empty-state { color: #465147 !important; font-size: 0.95rem !important; line-height: 1.65 !important; }
.admin-body .advert-upload-guidance,
.admin-body .advert-storage-note { color: #344238 !important; font-size: 0.95rem !important; line-height: 1.7 !important; }
.admin-body .advert-storage-note { font-size: 0.85rem !important; }
.admin-body .advert-editor-head strong { color: #17211a !important; font-size: 1rem !important; }
.admin-body .advert-editor-preview span { color: #465147 !important; font-size: 0.9rem !important; }
.admin-body .advert-editor-field { color: #344238 !important; font-size: 0.95rem !important; line-height: 1.5 !important; }
.admin-body .advert-editor-field input,
.admin-body .advert-editor-field textarea { min-height: 48px; border-color: #6b736b !important; color: #17211a !important; font-size: 1rem !important; line-height: 1.5 !important; }
.admin-body .advert-editor-field textarea { min-height: 6rem; }
.admin-body .advert-editor-field input::placeholder,
.admin-body .advert-editor-field textarea::placeholder { color: #59645a !important; opacity: 1; }
.admin-body .advert-editor-file input { font-size: 0.85rem !important; }
.admin-body .advert-editor-check { min-height: 48px; color: #344238 !important; font-size: 0.9rem !important; }
.admin-body .advert-editor-check input { min-width: 20px; min-height: 20px; }
.admin-body .advert-editor-status { color: #285532 !important; font-size: 0.9rem !important; line-height: 1.5 !important; }
.admin-body .advert-editor-status[data-error="true"] { color: #81251e !important; }

/* Strong keyboard focus and touch targets on both pages. */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--a11y-focus) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px #fffefa !important;
}
.site-nav a,
.contact-direct a,
.social-links a,
.admin-nav-item,
.view-site,
.login-back,
.admin-body .content-row-actions button,
.admin-body .inquiry-status {
  min-height: 44px;
}

@media (max-width: 760px) {
  .site-nav > a:not(.nav-cta) { min-height: 52px; font-size: 1.125rem !important; }
  .nav-cta { font-size: 1rem !important; }
  .hero-intro { font-size: 1.0625rem !important; }
  .foot-values { font-size: 0.9rem !important; }
  .admin-body .admin-nav-item { min-height: 48px; font-size: 0.9rem !important; }
  .admin-body .admin-main { font-size: 1rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; }
}


/* Improve small text that sits on the dark hero illustration or pale admin badges. */
.hero-art-top,
.art-caption,
.art-bottom small { color: #d1d9d1 !important; }
.art-bottom strong { color: #fffefa !important; font-size: 0.95rem !important; line-height: 1.5 !important; }
.art-bottom small { font-size: 0.85rem !important; line-height: 1.55 !important; }
.admin-body .nav-count { color: #332a14 !important; font-size: 0.75rem !important; }
.admin-body .close-editor { color: #344238 !important; min-width: 44px; min-height: 44px; }


/* Make the mobile link list discoverable without depending on an unlabeled icon. */
@media (max-width: 760px) {
  .menu-toggle {
    display: inline-flex !important;
    width: auto !important;
    min-width: 6.25rem;
    min-height: 3rem;
    height: 3rem;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    padding: 0 0.9rem 0 2.75rem !important;
    border: 1px solid #59645a !important;
    border-radius: 999px;
    background: #fffefa !important;
    color: #17211a !important;
  }

  .menu-toggle span {
    position: absolute;
    left: 0.9rem;
    width: 18px;
    height: 2px;
    margin: 0;
    background: #17211a !important;
  }

  .menu-toggle span:first-child { top: 17px; }
  .menu-toggle span:last-child { top: 25px; }
  .menu-toggle::after {
    content: "Menu";
    color: #17211a;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.02em;
  }
  .menu-toggle[aria-expanded="true"]::after { content: "Close"; }
  .menu-toggle[aria-expanded="true"] span:first-child {
    transform: translateY(4px) rotate(45deg) !important;
  }
  .menu-toggle[aria-expanded="true"] span:last-child {
    transform: translateY(-4px) rotate(-45deg) !important;
  }

  .site-nav {
    visibility: hidden;
    background: #fffefa !important;
    padding: 1rem 1.125rem 1.5rem !important;
    box-shadow: 0 20px 40px rgba(23, 33, 26, 0.18);
  }
  .site-nav.is-open { visibility: visible; }
  .site-nav > a:not(.nav-cta) {
    min-height: 3.5rem;
    padding: 1rem 0.875rem !important;
    border-bottom: 1px solid #c9cec8 !important;
    color: #17211a !important;
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
  }
  .site-nav > a:not(.nav-cta):hover,
  .site-nav > a:not(.nav-cta):focus-visible { background: #f0eee5; }
  .site-nav > .nav-cta {
    min-height: 3.25rem;
    margin-top: 1rem;
    padding: 0.9rem 1rem !important;
    font-size: 1rem !important;
  }
}
