/*
Theme Name: Anza Construction
Theme URI: https://anzaconstruction.com
Author: Anza Construction
Description: Custom theme for Anza Construction — SDVOSB general contractor. Built for federal and private commercial/residential construction with capability statement, project portfolio, and RFP intake. Self-contained, no page builder required.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: Proprietary
Text Domain: anzaconstruction
*/

/* ==========================================================================
   ANZA CONSTRUCTION — DESIGN TOKENS
   Benchmark direction: Turner / Hensel Phelps / Clark.
   Project photography is the hero. Heavy credibility signaling.
   Palette: structural, industrial-professional. Concrete + safety amber.
   ========================================================================== */

:root {
  /* Color */
  --ac-ink:        #14171C;  /* near-black structural steel */
  --ac-graphite:   #2B313B;  /* graphite section bg */
  --ac-concrete:   #6B7280;  /* concrete gray text */
  --ac-fog:        #E7E9ED;  /* light fog surface */
  --ac-paper:      #F7F8FA;  /* off-white page */
  --ac-white:      #FFFFFF;
  --ac-amber:      #E5A823;  /* safety amber accent — used with restraint */
  --ac-amber-deep: #C8881A;
  --ac-line:       #D5D8DE;  /* hairline rules */

  /* Type */
  --ac-display: "Saira Condensed", "Arial Narrow", sans-serif; /* condensed industrial display */
  --ac-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* Scale */
  --ac-step--1: clamp(0.83rem, 0.8rem + 0.15vw, 0.9rem);
  --ac-step-0:  clamp(1rem, 0.96rem + 0.2vw, 1.08rem);
  --ac-step-1:  clamp(1.3rem, 1.2rem + 0.5vw, 1.6rem);
  --ac-step-2:  clamp(1.8rem, 1.5rem + 1.4vw, 2.6rem);
  --ac-step-3:  clamp(2.6rem, 2rem + 2.8vw, 4.4rem);
  --ac-step-4:  clamp(3.4rem, 2.4rem + 4.6vw, 6.2rem);

  --ac-maxw: 1200px;
  --ac-gutter: clamp(1.2rem, 4vw, 3rem);
  --ac-radius: 2px; /* squared, structural — minimal radius */
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--ac-body);
  font-size: var(--ac-step-0);
  line-height: 1.6;
  color: var(--ac-ink);
  background: var(--ac-paper);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--ac-display);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  margin: 0 0 0.4em;
}

h1 { font-size: var(--ac-step-4); }
h2 { font-size: var(--ac-step-3); }
h3 { font-size: var(--ac-step-2); }

p { margin: 0 0 1.2em; max-width: 68ch; }

a { color: var(--ac-amber-deep); text-decoration: none; }
a:hover { text-decoration: underline; }

img { max-width: 100%; height: auto; display: block; }

.ac-wrap { max-width: var(--ac-maxw); margin-inline: auto; padding-inline: var(--ac-gutter); }

/* Eyebrow label — encodes section function */
.ac-eyebrow {
  font-family: var(--ac-display);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: var(--ac-step--1);
  font-weight: 600;
  color: var(--ac-amber-deep);
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 1rem;
}
.ac-eyebrow::before {
  content: "";
  width: 28px; height: 2px;
  background: var(--ac-amber);
}

/* Buttons */
.ac-btn {
  display: inline-block;
  font-family: var(--ac-display);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  font-size: var(--ac-step-0);
  padding: 0.85rem 1.8rem;
  border: 2px solid var(--ac-ink);
  background: var(--ac-ink);
  color: var(--ac-white);
  cursor: pointer;
  transition: background .18s, color .18s, transform .18s;
}
.ac-btn:hover { background: var(--ac-amber); border-color: var(--ac-amber); color: var(--ac-ink); text-decoration: none; transform: translateY(-1px); }
.ac-btn--ghost { background: transparent; color: var(--ac-ink); }
.ac-btn--ghost:hover { background: var(--ac-ink); color: var(--ac-white); }
.ac-btn--amber { background: var(--ac-amber); border-color: var(--ac-amber); color: var(--ac-ink); }
.ac-btn--amber:hover { background: var(--ac-amber-deep); border-color: var(--ac-amber-deep); }

/* ---------- Header ---------- */
.ac-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--ac-ink);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.ac-header__inner { display: flex; align-items: center; justify-content: space-between; min-height: 72px; }
.ac-brand { font-family: var(--ac-display); text-transform: uppercase; letter-spacing: 0.04em; font-size: 1.5rem; font-weight: 700; color: var(--ac-white); }
.ac-brand span { color: var(--ac-amber); }
.ac-nav { display: flex; gap: 1.8rem; align-items: center; }
.ac-nav a { color: var(--ac-fog); font-weight: 500; font-size: var(--ac-step-0); }
.ac-nav a:hover { color: var(--ac-amber); text-decoration: none; }
.ac-nav__cta { border: 2px solid var(--ac-amber); padding: 0.5rem 1.1rem; color: var(--ac-amber) !important; font-family: var(--ac-display); text-transform: uppercase; letter-spacing: 0.06em; }
.ac-nav__cta:hover { background: var(--ac-amber); color: var(--ac-ink) !important; }
.ac-burger { display: none; background: none; border: 0; cursor: pointer; flex-direction: column; gap: 5px; padding: 8px; }
.ac-burger span { width: 26px; height: 2px; background: var(--ac-white); display: block; }

/* ---------- Hero ---------- */
.ac-hero {
  position: relative;
  background: linear-gradient(180deg, rgba(20,23,28,.82), rgba(20,23,28,.92)),
              var(--ac-graphite);
  background-size: cover; background-position: center;
  color: var(--ac-white);
  padding: clamp(4rem, 10vw, 8rem) 0 clamp(3rem, 8vw, 6rem);
}
.ac-hero h1 { color: var(--ac-white); max-width: 16ch; }
.ac-hero__lede { font-size: var(--ac-step-1); color: var(--ac-fog); max-width: 52ch; margin-bottom: 2rem; font-family: var(--ac-body); text-transform: none; line-height: 1.45; }
.ac-hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.ac-hero__creds { display: flex; flex-wrap: wrap; gap: 1.4rem 2.4rem; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.14); }
.ac-cred { display: flex; flex-direction: column; }
.ac-cred__k { font-family: var(--ac-display); font-size: var(--ac-step-2); color: var(--ac-amber); line-height: 1; }
.ac-cred__l { font-size: var(--ac-step--1); letter-spacing: 0.1em; text-transform: uppercase; color: var(--ac-fog); }

/* ---------- Sections ---------- */
.ac-section { padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.ac-section--dark { background: var(--ac-ink); color: var(--ac-white); }
.ac-section--dark h2 { color: var(--ac-white); }
.ac-section--graphite { background: var(--ac-graphite); color: var(--ac-white); }
.ac-section--graphite h2 { color: var(--ac-white); }
.ac-section__head { max-width: 60ch; margin-bottom: 3rem; }
.ac-section__head p { color: var(--ac-concrete); font-size: var(--ac-step-1); }
.ac-section--dark .ac-section__head p, .ac-section--graphite .ac-section__head p { color: var(--ac-fog); }

/* Capability grid */
.ac-grid { display: grid; gap: 1.5rem; }
.ac-grid--3 { grid-template-columns: repeat(3, 1fr); }
.ac-grid--2 { grid-template-columns: repeat(2, 1fr); }
.ac-grid--4 { grid-template-columns: repeat(4, 1fr); }

.ac-card {
  background: var(--ac-white);
  border: 1px solid var(--ac-line);
  border-top: 3px solid var(--ac-amber);
  padding: 2rem 1.8rem;
}
.ac-section--dark .ac-card, .ac-section--graphite .ac-card { background: var(--ac-graphite); border-color: rgba(255,255,255,.1); }
.ac-card h3 { font-size: var(--ac-step-1); }
.ac-card p { color: var(--ac-concrete); font-size: var(--ac-step-0); margin-bottom: 0; }
.ac-section--dark .ac-card p, .ac-section--graphite .ac-card p { color: var(--ac-fog); }
.ac-card__num { font-family: var(--ac-display); font-size: var(--ac-step--1); letter-spacing: 0.2em; color: var(--ac-amber-deep); }

/* Project portfolio */
.ac-projects { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.ac-project {
  position: relative; aspect-ratio: 4 / 3; overflow: hidden;
  background: var(--ac-graphite); color: var(--ac-white);
  display: flex; align-items: flex-end;
}
.ac-project img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.ac-project:hover img { transform: scale(1.05); }
.ac-project__meta { position: relative; z-index: 2; padding: 1.4rem; background: linear-gradient(180deg, transparent, rgba(20,23,28,.92)); width: 100%; }
.ac-project__cat { font-family: var(--ac-display); text-transform: uppercase; letter-spacing: 0.14em; font-size: var(--ac-step--1); color: var(--ac-amber); }
.ac-project__name { font-family: var(--ac-display); text-transform: uppercase; font-size: var(--ac-step-1); line-height: 1; }

/* Capability statement band */
.ac-capband { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; }
.ac-capband__text { padding: clamp(2.5rem,6vw,5rem); }
.ac-capband__facts { background: var(--ac-amber); color: var(--ac-ink); padding: clamp(2.5rem,6vw,5rem); }
.ac-capband__facts dl { margin: 0; display: grid; gap: 1.4rem; }
.ac-capband__facts dt { font-family: var(--ac-display); text-transform: uppercase; letter-spacing: 0.1em; font-size: var(--ac-step--1); opacity: .8; }
.ac-capband__facts dd { margin: 0 0 0.2rem; font-weight: 600; font-size: var(--ac-step-0); }

/* Process steps — numbering is legitimate here, it's a real sequence */
.ac-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.5rem; counter-reset: step; }
.ac-step { border-top: 2px solid var(--ac-amber); padding-top: 1.2rem; }
.ac-step__n { font-family: var(--ac-display); font-size: var(--ac-step-2); color: var(--ac-amber); line-height: 1; }
.ac-step h3 { font-size: var(--ac-step-1); margin-top: 0.5rem; }
.ac-step p { color: var(--ac-concrete); font-size: var(--ac-step--1); }

/* ---------- Forms ---------- */
.ac-form { background: var(--ac-white); border: 1px solid var(--ac-line); padding: clamp(1.8rem, 4vw, 3rem); }
.ac-section--dark .ac-form { color: var(--ac-ink); }
.ac-form__row { display: grid; gap: 1.2rem; margin-bottom: 1.2rem; }
.ac-form__row--2 { grid-template-columns: 1fr 1fr; }
.ac-field label { display: block; font-family: var(--ac-display); text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--ac-step--1); font-weight: 600; margin-bottom: 0.4rem; }
.ac-field input, .ac-field select, .ac-field textarea {
  width: 100%; padding: 0.8rem 0.9rem; border: 1px solid var(--ac-line);
  border-radius: var(--ac-radius); font: inherit; background: var(--ac-paper); color: var(--ac-ink);
}
.ac-field input:focus, .ac-field select:focus, .ac-field textarea:focus { outline: 2px solid var(--ac-amber); border-color: var(--ac-amber); }
.ac-form__note { font-size: var(--ac-step--1); color: var(--ac-concrete); }
.ac-form__status { padding: 1rem; margin-bottom: 1rem; display: none; border-radius: var(--ac-radius); }
.ac-form__status.is-ok { display: block; background: #E6F4EA; color: #1E5631; border: 1px solid #1E5631; }
.ac-form__status.is-err { display: block; background: #FCEBEA; color: #8A1C12; border: 1px solid #8A1C12; }

/* ---------- Footer ---------- */
.ac-footer { background: var(--ac-ink); color: var(--ac-fog); padding: clamp(3rem,6vw,4.5rem) 0 2rem; }
.ac-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2rem; margin-bottom: 2.5rem; }
.ac-footer h4 { font-size: var(--ac-step-0); color: var(--ac-white); }
.ac-footer a { color: var(--ac-fog); display: block; margin-bottom: 0.5rem; }
.ac-footer a:hover { color: var(--ac-amber); }
.ac-footer__partners { border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); padding: 1.6rem 0; margin-bottom: 1.6rem; }
.ac-footer__partners-label { font-family: var(--ac-display); text-transform: uppercase; letter-spacing: 0.14em; font-size: var(--ac-step--1); color: var(--ac-amber); margin-bottom: 0.6rem; }
.ac-footer__legal { font-size: var(--ac-step--1); color: var(--ac-concrete); line-height: 1.7; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .ac-grid--3, .ac-grid--4, .ac-projects, .ac-steps { grid-template-columns: 1fr 1fr; }
  .ac-capband { grid-template-columns: 1fr; }
  .ac-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .ac-nav { display: none; }
  .ac-burger { display: flex; }
  .ac-nav.is-open { display: flex; position: absolute; top: 72px; left: 0; right: 0; flex-direction: column; background: var(--ac-ink); padding: 1.2rem var(--ac-gutter); gap: 1rem; border-bottom: 1px solid rgba(255,255,255,.1); }
  .ac-grid--3, .ac-grid--4, .ac-projects, .ac-steps, .ac-form__row--2 { grid-template-columns: 1fr; }
  .ac-hero__creds { gap: 1.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Visible keyboard focus */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--ac-amber); outline-offset: 2px;
}
