/*
Theme Name: Hall County GA Voices
Description: Minimal Cyberteknic WordPress block-theme foundation.
Version: 1.0.0
Requires at least: 6.8
Requires PHP: 8.3
Text Domain: hallcountygavoices
*/

html { scroll-behavior: auto; }
body { overflow-wrap: break-word; }
img, svg, video { height: auto; max-width: 100%; }

body {
  background: var(--wp--preset--color--background);
  color: var(--wp--preset--color--foreground);
}

a { text-underline-offset: 0.18em; text-decoration-thickness: 0.08em; }
a:hover { text-decoration-thickness: 0.14em; }

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 0.1875rem solid var(--wp--preset--color--focus);
  outline-offset: 0.1875rem;
}

.skip-link {
  background: var(--wp--preset--color--foreground);
  color: var(--wp--preset--color--background);
  left: 1rem;
  padding: 0.75rem 1rem;
  position: fixed;
  top: 0;
  transform: translateY(-150%);
  z-index: 100000;
}
.skip-link:focus { transform: translateY(1rem); }

.screen-reader-text { clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute !important; width: 1px; word-wrap: normal !important; }

/* Buttons */
.hc-btn { border-radius: .3rem; display: inline-block; font-weight: 750; padding: .8rem 1.4rem; text-decoration: none; }
.hc-btn--primary { background: var(--wp--preset--color--primary); border: 2px solid var(--wp--preset--color--primary); color: #fff; }
.hc-btn--primary:hover { background: #1739a8; border-color: #1739a8; }
.hc-btn--outline { background: transparent; border: 2px solid #fff; color: #fff; }
.hc-btn--outline:hover { background: rgba(255,255,255,.12); }
.hc-btn--outline-light { background: transparent; border: 2px solid #fff; color: #fff; display: inline-block; margin-top: 1.1rem; }
.hc-btn--outline-light:hover { background: rgba(255,255,255,.12); }
.hc-btn--dark { background: var(--wp--preset--color--foreground); border: 2px solid var(--wp--preset--color--foreground); color: #fff; }
.hc-btn--dark:hover { background: #050c1e; border-color: #050c1e; }

/* Header */
.hc-site-header { background: var(--wp--preset--color--foreground); }
.hc-header-bar { box-sizing: border-box; margin: 0 auto; max-width: 76rem; min-height: 4.25rem; padding: .5rem 1rem; width: 100%; }
.hc-logo { color: #fff; font-size: 1.15rem; font-weight: 800; letter-spacing: -.01em; text-decoration: none; }
.hc-logo span { font-weight: 700; }
/* WordPress core prints `.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}`
   (specificity 0,3,0) after this stylesheet is enqueued conceptually but before it in source order; matching the doubled
   class keeps our color from silently losing the cascade and rendering as invisible navy-on-navy text. The white color is
   scoped to the closed/inline state only: on the open mobile overlay core switches the panel to a white background, and a
   plain white-text rule here would win against core's automatic color:#000 (it targets the link directly, not inherited),
   making the open menu white-on-white. */
.hc-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content.wp-block-navigation-item__content { color: #fff; font-size: .9rem; font-weight: 650; padding: .5rem .6rem; text-decoration: none; }
.hc-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content.wp-block-navigation-item__content:hover { text-decoration: underline; }
.hc-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .hc-navigation__cta .wp-block-navigation-item__content.wp-block-navigation-item__content { background: transparent; border: 1.5px solid #fff; border-radius: .3rem; margin-left: .3rem; padding: .5rem .9rem; }
/* Same invisible-on-navy issue as above: the mobile toggle button's SVG uses
   fill:currentColor with nothing setting `color` on the closed (pre-overlay)
   button, so it inherits the dark foreground and disappears. */
.hc-navigation .wp-block-navigation__responsive-container-open { color: #fff; }

/* Hero */
.hc-hero { min-height: clamp(22rem, 46vw, 30rem); position: relative; }
.hc-hero__image { display: block; height: 100%; left: 0; object-fit: cover; object-position: center 35%; position: absolute; top: 0; width: 100%; }
.hc-hero__overlay { background: linear-gradient(100deg, rgba(6,13,32,.92) 5%, rgba(6,13,32,.72) 45%, rgba(6,13,32,.32) 78%); height: 100%; left: 0; position: absolute; top: 0; width: 100%; }
.hc-hero__content { box-sizing: border-box; max-width: 76rem; margin: 0 auto; padding: clamp(2.5rem, 7vw, 5rem) 1.25rem; position: relative; }
.hc-hero__eyebrow { color: #fff; font-size: clamp(1.6rem, 4vw, 2.5rem); font-weight: 800; letter-spacing: -.02em; margin: 0 0 1rem; max-width: 34rem; }
.hc-hero__title { color: var(--wp--preset--color--accent); font-size: clamp(1.15rem, 2.6vw, 1.6rem); font-weight: 800; letter-spacing: -.01em; line-height: 1.35; margin: 0 0 1rem; max-width: 30rem; }
.hc-hero__title-accent { color: var(--wp--preset--color--accent); }
.hc-hero__body { color: #f2f4f9; font-size: 1rem; line-height: 1.6; margin: 0 0 1.5rem; max-width: 30rem; }
.hc-hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; }

/* Sections */
.hc-section { padding-bottom: clamp(2.25rem, 4vw, 3.75rem); padding-top: clamp(2.25rem, 4vw, 3.75rem); }
.hc-section--tinted { background: var(--wp--preset--color--subtle); }
.hc-section--tinted-blue { background: #e6edfb; }
.hc-lede { color: #33425f; margin-left: auto; margin-right: auto; max-width: 42rem; }
.hc-still-rights h2 { margin-bottom: 1rem; }
.hc-emphasis-link { text-align: center; }
.hc-emphasis-link a { border-bottom: 2px solid var(--wp--preset--color--accent); color: var(--wp--preset--color--primary); font-weight: 750; padding-bottom: .15rem; text-decoration: none; }

.hc-section > h2.wp-block-heading { margin-bottom: .75rem; }

/* Cards grid (rights + services) */
.hc-cards { display: grid; gap: 1.25rem; grid-template-columns: 1fr; margin: 2rem auto 0; max-width: 76rem; }
.hc-card { background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: .6rem; padding: 1.5rem; }
.hc-card__icon { align-items: center; border-radius: 999px; display: flex; height: 3rem; justify-content: center; margin-bottom: .9rem; width: 3rem; }
.hc-card__icon svg { height: 1.5rem; width: 1.5rem; }
.hc-card h3 { font-size: 1.05rem; font-weight: 750; margin: 0 0 .6rem; }
.hc-card ul { margin: 0 0 1rem; padding-left: 1.15rem; }
.hc-card li { font-size: .92rem; line-height: 1.55; margin-bottom: .25rem; }
.hc-card__question { font-weight: 750; margin: 0; }

.hc-card--medical .hc-card__icon { background: #e3edfb; color: #1d4ed8; }
.hc-card--medical .hc-card__question { color: #1d4ed8; }
.hc-card--mental .hc-card__icon { background: #efe7fb; color: #6d3fc2; }
.hc-card--mental .hc-card__question { color: #6d3fc2; }
.hc-card--food .hc-card__icon { background: #e6f6ea; color: #1f8a4c; }
/* Icon color (#1f8a4c on its light tint background) is untouched — only the
   question label needs a darker shade to reach 4.5:1 against the white card
   background (was 4.37:1, fails AA); #1f834c measures ~4.76:1. */
.hc-card--food .hc-card__question { color: #1f834c; }
.hc-card--basic .hc-card__icon { background: #faf1de; color: #b5790a; }
/* Same as Food above: was 3.68:1 against white, fails AA. #9d690a measures
   ~4.71:1 while staying clearly gold/amber. Icon color left unchanged. */
.hc-card--basic .hc-card__question { color: #9d690a; }
.hc-card--safety .hc-card__icon { background: #e2f5f2; color: #0f7a6e; }
.hc-card--safety .hc-card__question { color: #0f7a6e; }
.hc-card--fair .hc-card__icon { background: #fbe7ea; color: #c23b53; }
.hc-card--fair .hc-card__question { color: #c23b53; }

.hc-cards-cta { margin: 2rem 0 0; text-align: center; }

.hc-card--service p { color: #33425f; font-size: .95rem; margin: 0 0 1.25rem; min-height: 2.9rem; }
.hc-card--service .hc-card__link { align-items: center; border: 1.5px solid currentColor; border-radius: .3rem; display: inline-flex; font-size: .85rem; font-weight: 750; gap: .35rem; letter-spacing: .02em; padding: .5rem .9rem; text-decoration: none; text-transform: uppercase; }
.hc-card--court .hc-card__icon { background: #e6f6ea; color: #1f8a4c; }
/* Same color-contrast fix as the Food card above (#1f8a4c measured 4.37:1 on
   white, fails AA) — this link shares that green identity. Icon untouched. */
.hc-card--court .hc-card__link { color: #1f834c; }
.hc-card--mhsu .hc-card__icon { background: #efe7fb; color: #6d3fc2; }
.hc-card--mhsu .hc-card__link { color: #6d3fc2; }
.hc-card--reentry .hc-card__icon { background: #e3edfb; color: #1d4ed8; }
.hc-card--reentry .hc-card__link { color: #1d4ed8; }

.hc-services-cta { margin-top: 2rem; text-align: center; }
.hc-services-cta__line { color: var(--wp--preset--color--primary); display: block; font-weight: 750; margin: 0 auto; }
.hc-services-cta__line:last-child { border-bottom: 2px solid var(--wp--preset--color--accent); display: inline-block; padding-bottom: .35rem; }

/* Contact split section */
.hc-contact-split { padding-bottom: 0; padding-top: 0; }
/* WordPress's `.is-layout-constrained > :where(...)` rule caps non-alignfull
   direct children at --wp--style--global--content-size (48rem); overriding
   max-width here lets this split panel span the full-bleed section width. */
.hc-contact-grid { display: grid; grid-template-columns: 1fr; max-width: none; }
.hc-contact-grid__cta { background: var(--wp--preset--color--foreground); box-sizing: border-box; color: #fff; padding: clamp(2rem, 5vw, 3.5rem) 1.25rem; }
.hc-contact-grid__cta h2 { color: var(--wp--preset--color--accent); }
.hc-contact-grid__cta p { max-width: 30rem; }
.hc-contact-grid__emphasis { color: var(--wp--preset--color--accent); font-size: 1.15rem; font-weight: 800; }
.hc-contact-grid__form { background: #fff; box-sizing: border-box; padding: clamp(2rem, 5vw, 3.5rem) 1.25rem; }
.hc-contact-grid__form h2 { margin-bottom: 1rem; }

.hc-form__row { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.hc-form__field { margin-top: 1rem; }
.hc-form__row .hc-form__field { margin-top: 0; }
.hc-form label { display: block; font-weight: 700; margin-bottom: .3rem; }
.hc-form label span { font-size: .85rem; font-weight: 500; }
.hc-form input:not([type="radio"]), .hc-form textarea { background: #fff; border: 1px solid #647a94; border-radius: .3rem; box-sizing: border-box; color: var(--wp--preset--color--foreground); font: inherit; min-height: 2.85rem; padding: .65rem .75rem; width: 100%; }
.hc-form textarea { min-height: 8rem; resize: vertical; }
.hc-choice-group { border: 0; margin: 1rem 0 0; padding: 0; }
.hc-choice-group legend { font-weight: 700; margin-bottom: .5rem; padding: 0; }
.hc-choice-group label { align-items: center; display: inline-flex; font-weight: 500; gap: .4rem; margin: 0 1.25rem .5rem 0; }
.hc-choice-group input { height: 1.1rem; width: 1.1rem; }
.hc-honeypot { height: 1px; left: -10000px; overflow: hidden; position: absolute; width: 1px; }
.hc-form button[type="submit"] { background: var(--wp--preset--color--foreground); border: 2px solid var(--wp--preset--color--foreground); border-radius: .3rem; color: #fff; cursor: pointer; font: inherit; font-weight: 750; margin-top: 1.25rem; padding: .8rem 1.5rem; width: 100%; }
.hc-form button[type="submit"]:hover { background: #1d4ed8; border-color: #1d4ed8; }
.hc-form__note { color: #526079; font-size: .85rem; margin: 1rem 0 0; }
.hc-form__status { align-items: center; color: #526079; display: flex; font-size: .85rem; gap: .35rem; margin-top: .75rem; }
.hc-lock { flex-shrink: 0; }

/* Resources */
.hc-resources { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; justify-content: center; margin-top: 1.75rem; }
.hc-resources a { color: var(--wp--preset--color--primary); font-weight: 700; text-decoration: none; white-space: nowrap; }
.hc-resources a:hover { text-decoration: underline; }

/* Footer */
.hc-footer { background: var(--wp--preset--color--foreground); color: #fff; padding-bottom: 2rem; padding-top: 2.25rem; }
.hc-footer-grid { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
.hc-footer p { margin-bottom: .4rem; margin-top: .4rem; }
.hc-footer__name { font-size: 1.2rem; font-weight: 800; }
.hc-footer__about p, .hc-footer__disclaimer p { color: #cfd7e6; }
.hc-footer__mark { color: #29406e; display: none; justify-self: end; }
.hc-footer__mark svg { height: 3.5rem; width: 3.5rem; }
.hc-footer__bottom { border-top: 1px solid #29406e; margin-top: 1.75rem; padding-top: 1.25rem; }
.hc-footer__bottom p { color: #cfd7e6; margin: 0; }
.hc-footer__top-link a { color: #fff; font-weight: 700; }

@media (min-width: 40rem) {
  .hc-cards--rights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hc-cards--services { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hc-form__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 60rem) {
  .hc-cards--rights { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hc-contact-grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
  .hc-footer__mark { display: block; }
  .hc-footer-grid { grid-template-columns: 1fr 1fr auto; }
}

@media (max-width: 39.99rem) {
  .hc-hero { min-height: clamp(24rem, 90vw, 30rem); }
  .hc-hero__overlay { background: linear-gradient(180deg, rgba(6,13,32,.5) 0%, rgba(6,13,32,.94) 62%, rgba(6,13,32,.97) 100%); }
  .hc-hero__eyebrow, .hc-hero__title, .hc-hero__body { max-width: none; }
  .hc-navigation { justify-content: flex-end; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
