/* ============================================================
   ENGINEERED SEPTIC SOLUTIONS — Master Stylesheet
   Nature-Forward · Earth Tones · Professional Engineering
   Sessions 1–6 Design System
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&family=Source+Sans+3:wght@300;400;500;600;700&display=swap');

/* ── VARIABLES ── */
:root {
  --earth:       #1a2e15;
  --forest:      #2d4a22;
  --fern:        #4a7038;
  --sage:        #8aad6e;
  --meadow:      #c8dab8;
  --amber:       #c8862a;
  --amber-lt:    #e0a84a;
  --amber-pale:  #f5e6c8;
  --ochre:       #8a5a14;
  --ocean:       #1e4d72;
  --tide:        #2a7a9e;
  --ocean-lt:    #d0e4f0;
  --bark:        #2a231e;
  --stone:       #6b6558;
  --parchment:   #e8dcc8;
  --linen:       #f0e8d6;
  --cream:       #faf6ee;
  --nav-h:       88px;
}

/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: 'Source Sans 3', sans-serif; color: var(--bark); background: var(--cream); line-height: 1.7; overflow-x: hidden; }
img { max-width: 100%; display: block; height: auto; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }

/* ── TYPOGRAPHY ── */
h1, h2, h3, h4 { font-family: 'Cormorant Garamond', serif; line-height: 1.12; color: var(--earth); }
h1 { font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 700; }
h2 { font-size: clamp(1.8rem, 3vw, 2.75rem); font-weight: 600; }
h3 { font-size: clamp(1.25rem, 2vw, 1.75rem); font-weight: 600; }
h4 { font-size: 1.08rem; font-weight: 600; letter-spacing: 0.02em; }

.eyebrow {
  font-size: 0.64rem; font-weight: 600; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--amber); display: block; margin-bottom: 0.6rem;
}
.eyebrow-lt { color: var(--amber-lt); }

.gold-rule {
  position: relative;
  width: 140px;
  height: 16px;
  margin: 0.9rem 0 1.1rem;
  flex-shrink: 0;
}
.gold-rule::before {
  content: '';
  position: absolute;
  top: 50%; left: 0; right: 0;
  height: 1px;
  transform: translateY(-50%);
  background: linear-gradient(to right,
    rgba(200,134,42,0.03),
    rgba(200,134,42,0.52) 22%,
    rgba(200,134,42,0.52) 78%,
    rgba(200,134,42,0.03)
  );
}
.gold-rule::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 9px; height: 12px;
  background: var(--amber);
  clip-path: path('M 4.5 0 Q 5 3 9 6 Q 5 9 4.5 12 Q 4 9 0 6 Q 4 3 4.5 0 Z');
  transform: translate(-50%, -50%);
}

/* ── LAYOUT ── */
.container { width: min(1200px, 92%); margin: 0 auto; }
section { padding: 5.5rem 0; }
.section-intro { text-align: center; max-width: 680px; margin: 0 auto 3.5rem; }
.section-intro p { font-size: 0.92rem; color: var(--stone); margin-top: 0.8rem; line-height: 1.85; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

/* ── BUTTONS ── */
.btn {
  display: inline-flex; align-items: center; gap: 0.45rem;
  font-family: 'Source Sans 3', sans-serif; font-size: 0.72rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 0.88rem 1.75rem; border-radius: 2px; cursor: pointer;
  border: 1.5px solid transparent; transition: all 0.25s;
}
.btn-amber  { background: var(--amber);  color: var(--earth);  border-color: var(--amber); }
.btn-amber:hover { background: var(--amber-lt); border-color: var(--amber-lt); }
.btn-ghost-lt { background: transparent; color: var(--cream); border-color: rgba(250,246,238,.4); }
.btn-ghost-lt:hover { border-color: var(--cream); background: rgba(250,246,238,.06); }
.btn-dark   { background: var(--earth);  color: var(--cream);  border-color: var(--earth); }
.btn-dark:hover { background: var(--forest); }
.btn-forest { background: var(--forest); color: var(--cream);  border-color: var(--forest); }
.btn-forest:hover { background: var(--fern); }

/* ── BADGES ── */
.badge { display: inline-flex; align-items: center; gap:.35rem; font-size:.6rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:.22rem .65rem; border-radius:2px; }
.badge-dark   { background: var(--earth);    color: var(--amber-lt); }
.badge-amber  { background: var(--amber-pale); color: var(--ochre); border:1px solid rgba(200,134,42,.3); }
.badge-ocean  { background: var(--ocean-lt);  color: var(--ocean); }
.badge-glass  { background: rgba(200,134,42,.12); border:1px solid rgba(200,134,42,.35); color: var(--amber-lt); }

/* ── CALLOUT BOX ── */
.callout-box { background: rgba(26,46,21,.06); border-left: 3px solid var(--earth); border-radius: 0 4px 4px 0; padding: .9rem 1.1rem; }
.callout-box p { font-size: .84rem; color: var(--bark); line-height: 1.72; margin: 0; }
.callout-amber { border-left-color: var(--amber); background: rgba(200,134,42,.07); }
.callout-amber p { color: var(--bark); }
.callout-lt { background: rgba(200,134,42,.08); border-left-color: var(--amber-lt); }
.callout-lt p { color: rgba(250,246,238,.78); }

/* ── REG NOTE ── */
.reg-note { background: var(--ocean-lt); border-left: 3px solid var(--tide); border-radius: 0 3px 3px 0; padding:.72rem 1rem; font-size:.78rem; color: var(--ocean); line-height:1.55; }

/* ═══════════════════════════════════════════════════════════
   NAVIGATION
   ═══════════════════════════════════════════════════════════ */
.navbar {
  position: fixed; top:0; left:0; right:0; z-index:1000;
  height: var(--nav-h);
  background: rgba(26,46,21,.72);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: background .35s, border-color .35s, box-shadow .35s;
}
.navbar.scrolled,
.navbar.solid {
  background: var(--earth);
  border-bottom-color: rgba(200,134,42,.28);
  box-shadow: 0 2px 30px rgba(0,0,0,.22);
}

.nav-container {
  display: flex; align-items: center; justify-content: space-between;
  height: 100%; width: min(1200px, 92%); margin: 0 auto;
}

.nav-logo { display: flex; align-items: center; gap: .65rem; }
.nav-logo-mark {
  width: 32px; height: 32px;
  background: rgba(200,134,42,.14); border: 1px solid rgba(200,134,42,.38);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: .85rem; flex-shrink: 0;
}
/* Actual logo image in navbar — amber double-ring seal treatment */
.nav-logo-seal {
  width: 66px; height: 66px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2.5px solid var(--amber-lt);
  box-shadow:
    0 0 0 1px var(--earth),
    0 0 0 4px var(--amber),
    0 0 0 5px rgba(26,46,21,0.5);
}
.logo-name { font-family:'Cormorant Garamond',serif; font-size:1.05rem; font-weight:700; color:var(--cream); display:block; line-height:1.1; }
.logo-sub  { font-size:.57rem; letter-spacing:.12em; text-transform:uppercase; color:var(--amber-lt); display:block; }

.nav-links { display:flex; align-items:center; gap:.05rem; list-style:none; }
.nav-links a {
  font-size:.7rem; font-weight:500; letter-spacing:.07em; text-transform:uppercase;
  color:rgba(250,246,238,.78); padding:.4rem .75rem; border-radius:3px;
  transition: color .2s, background .2s;
}
.nav-links a:hover, .nav-links a.active { color:var(--amber-lt); background:rgba(200,134,42,.12); }

.nav-right { display:flex; align-items:center; gap:.75rem; }
.nav-cta {
  font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  background:var(--amber); color:var(--earth); padding:.45rem 1.15rem; border-radius:2px;
  transition: background .2s;
}
.nav-cta:hover { background:var(--amber-lt); }

.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; background:none; border:none; }
.hamburger span { display:block; width:22px; height:2px; background:var(--cream); border-radius:2px; transition: transform .3s, opacity .3s; }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

.mobile-nav {
  display:none; position:fixed; top:var(--nav-h); left:0; right:0;
  background:var(--earth); border-bottom:2px solid var(--amber);
  z-index:999; padding:1.25rem 1.5rem; flex-direction:column; gap:.1rem;
}
.mobile-nav.open { display:flex; }
.mobile-nav a {
  font-size:.85rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase;
  color:rgba(250,246,238,.8); padding:.75rem .5rem;
  border-bottom:1px solid rgba(200,134,42,.15); transition:color .2s;
}
.mobile-nav a:hover { color:var(--amber-lt); }
.mobile-nav .mobile-cta-btn {
  background:var(--amber); color:var(--earth) !important; text-align:center;
  font-weight:700; border-radius:2px; margin-top:.75rem; padding:.85rem .5rem !important;
  border:none;
}

/* ═══════════════════════════════════════════════════════════
   PAGE HERO (inner pages)
   ═══════════════════════════════════════════════════════════ */
.page-hero {
  padding: calc(var(--nav-h) + 3rem) 0 3.5rem;
  background: var(--earth);
  position: relative; overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: url('../images/hero-kona.jpg') center/cover no-repeat;
  filter: sepia(18%) saturate(78%) brightness(0.32);
  z-index: 0;
}
.page-hero::after {
  content: ''; position:absolute; bottom:0; left:0; right:0;
  height:4px; background:linear-gradient(90deg,var(--amber),var(--amber-lt),var(--amber));
  z-index: 2;
}
.page-hero .container { position:relative; z-index:1; }
.page-hero h1 { color:var(--cream); font-size:clamp(2rem,4vw,3.2rem); }
.page-hero .breadcrumb { font-size:.78rem; color:rgba(250,246,238,.5); margin-bottom:.75rem; letter-spacing:.05em; }
.page-hero .breadcrumb a { color:var(--amber-lt); }
.page-hero .page-hero-desc { color:rgba(250,246,238,.78); max-width:580px; margin-top:.75rem; font-size:1rem; line-height:1.78; }

/* Footer logo seal — consistent with navbar treatment */
.footer-logo-seal {
  width: 80px; height: 80px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  margin-bottom: .9rem;
  border: 2px solid var(--amber-lt);
  box-shadow:
    0 0 0 1px var(--earth),
    0 0 0 4px var(--amber),
    0 0 0 5px rgba(26,46,21,0.5);
}

/* ═══════════════════════════════════════════════════════════
   HERO (homepage)
   ═══════════════════════════════════════════════════════════ */
.hero { position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; }

.hero-bg { position:absolute; inset:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; filter:sepia(18%) saturate(78%) brightness(.82); }
.hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(148deg,rgba(26,46,21,.93) 0%,rgba(26,46,21,.68) 42%,rgba(30,77,114,.48) 100%);
}

.hero-content { position:relative; z-index:2; padding:5rem 0; }
.hero-inner { max-width:620px; }

.hero-badge {
  display:inline-flex; align-items:center; gap:.45rem;
  background:rgba(200,134,42,.13); border:1px solid rgba(200,134,42,.38);
  color:var(--amber-lt); font-size:.6rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  padding:.3rem .78rem; border-radius:2px; margin-bottom:1.5rem;
}
.hero-badge-pip { width:5px; height:6px; background:var(--amber); clip-path:path('M 2.5 0 Q 3 1.5 5 3 Q 3 4.5 2.5 6 Q 2 4.5 0 3 Q 2 1.5 2.5 0 Z'); flex-shrink:0; }

.hero-h1a { font-family:'Cormorant Garamond',serif; font-size:clamp(2.4rem,5vw,4rem); font-weight:700; color:var(--cream); line-height:1.02; }
.hero-h1b { font-family:'Cormorant Garamond',serif; font-size:clamp(2.4rem,5vw,4rem); font-weight:400; font-style:italic; color:var(--amber-lt); line-height:1.02; margin-bottom:1.4rem; }
.hero-rule {
  position: relative;
  width: min(560px, 90%);
  height: 40px;
  margin-bottom: 1.3rem;
}
.hero-rule::before {
  content: '';
  position: absolute;
  top: 50%; left: 0; right: 0;
  height: 1px;
  transform: translateY(-50%);
  background: linear-gradient(to right,
    rgba(200,134,42,0.03),
    rgba(200,134,42,0.52) 18%,
    rgba(200,134,42,0.52) calc(50% - 8px),
    rgba(200,134,42,0)    calc(50% - 7px),
    rgba(200,134,42,0)    calc(50% + 7px),
    rgba(200,134,42,0.52) calc(50% + 8px),
    rgba(200,134,42,0.52) 82%,
    rgba(200,134,42,0.03)
  );
}
.hero-rule::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 14px; height: 18px;
  transform: translate(-50%, -50%);
  clip-path: path('M 7 0 Q 8 5 14 9 Q 8 13 7 18 Q 6 13 0 9 Q 6 5 7 0 Z');
  background: radial-gradient(ellipse at center,
    rgba(200,134,42,0)   0%,
    rgba(200,134,42,1) 100%
  );
}
.hero-tagline { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.05rem; color:rgba(224,168,74,.88); margin-bottom:1rem; line-height:1.55; }
.hero-body { font-size:.9rem; color:rgba(250,246,238,.76); line-height:1.85; margin-bottom:2rem; }
.hero-btns { display:flex; gap:.85rem; flex-wrap:wrap; margin-bottom:3.5rem; }

.hero-creds-strip {
  border-top:1px solid rgba(200,134,42,.22); padding-top:1.2rem;
  display:flex; gap:1.2rem 2rem; flex-wrap:wrap;
}
.cred-chip { display:flex; align-items:center; gap:.5rem; }
.cred-circle { width:8px; height:10px; background:var(--amber); clip-path:path('M 4 0 Q 5 3 8 5 Q 5 7 4 10 Q 3 7 0 5 Q 3 3 4 0 Z'); flex-shrink:0; }
.cred-chip span { font-size:.74rem; color:rgba(250,246,238,.76); font-weight:500; }

.scroll-hint {
  position:absolute; bottom:2rem; right:2.5rem;
  display:flex; flex-direction:column; align-items:center; gap:5px;
}
.scroll-hint-line { width:1px; height:32px; background:rgba(200,134,42,.45); }
.scroll-hint-txt { font-size:.5rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(200,134,42,.55); writing-mode:vertical-rl; margin-top:2px; }

/* ═══════════════════════════════════════════════════════════
   CREDIBILITY STRIP
   ═══════════════════════════════════════════════════════════ */
.cred-strip { background:var(--earth); padding:4rem 0; border-top:2px solid var(--amber); }
.cred-strip-inner { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; }
.cred-quote-col .eyebrow { color:var(--amber-lt); }
.cred-quote { font-family:'Cormorant Garamond',serif; font-size:1.22rem; font-weight:400; font-style:italic; color:var(--cream); line-height:1.58; margin:.65rem 0 .85rem; }
.cred-cite { font-size:.68rem; color:rgba(250,246,238,.42); letter-spacing:.05em; }
.cred-stats { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.stat-box { border:1px solid rgba(200,134,42,.22); border-radius:4px; padding:1.3rem; text-align:center; }
.stat-n { font-family:'Cormorant Garamond',serif; font-size:2.5rem; font-weight:700; color:var(--amber-lt); line-height:1; display:block; margin-bottom:.3rem; }
.stat-l { font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(250,246,238,.48); display:block; line-height:1.4; }

/* ═══════════════════════════════════════════════════════════
   SERVICES SECTION
   ═══════════════════════════════════════════════════════════ */
.services-section { background:var(--cream); padding:0 0 5rem; }
.services-intro { background:var(--cream); padding:5rem 0 4rem; }

.svc-row { display:grid; grid-template-columns:45% 55%; min-height:360px; border-top:1px solid var(--parchment); }
.svc-row-reverse { grid-template-columns:55% 45%; }

.svc-photo-col { position:relative; overflow:hidden; }
.svc-photo-col img,
.svc-photo-col video { width:100%; height:100%; object-fit:cover; display:block; filter:sepia(16%) saturate(80%) brightness(.9); }
.svc-photo-accent { position:absolute; top:0; right:0; bottom:0; width:4px; background:var(--amber); }
.svc-photo-accent-left { left:0; right:auto; }

.svc-content-col { padding:3rem 2.8rem; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
.svc-bg-cream  { background:var(--cream); }
.svc-bg-linen  { background:var(--linen); }
.svc-bg-dark   { background:var(--earth); }

.svc-step-num {
  font-family:'Cormorant Garamond',serif; font-size:6rem; font-weight:700;
  color:rgba(180,170,155,.2); line-height:1;
  position:absolute; top:.8rem; right:1.5rem;
  pointer-events:none; user-select:none;
}
.svc-step-num-lt { color:rgba(200,134,42,.1); }

.svc-content-col h2 { font-size:clamp(1.4rem,2.5vw,2rem); margin-bottom:.75rem; }
.svc-content-col h2.lt { color:var(--cream); }
.svc-body { font-size:.86rem; color:var(--stone); line-height:1.85; margin-bottom:1rem; }
.svc-body-lt { color:rgba(250,246,238,.72); }
.svc-features { display:flex; flex-direction:column; gap:.42rem; margin-bottom:1.2rem; }
.svc-feat { display:flex; gap:.55rem; font-size:.83rem; color:var(--bark); align-items:center; }
.svc-feat-lt { color:rgba(250,246,238,.78); }
.svc-check {
  display:inline-block; width:8px; height:10px;
  background:var(--amber); flex-shrink:0;
  clip-path: path('M 4 0 Q 5 3 8 5 Q 5 7 4 10 Q 3 7 0 5 Q 3 3 4 0 Z');
}
.svc-check-lt { background:rgba(200,134,42,.62); }
.svc-link { font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--amber); display:inline-flex; align-items:center; gap:.35rem; margin-top:.35rem; }
.svc-link-lt { color:var(--amber-lt); }

.svc-mini-grid-wrap { background:var(--earth); padding:2.5rem 0; }
.svc-mini-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.svc-mini-card { border:1px solid rgba(200,134,42,.2); border-radius:4px; padding:1.4rem; }
.svc-mini-card .badge { margin-bottom:.55rem; }
.svc-mini-card h3 { font-size:1.05rem; color:var(--cream); margin-bottom:.5rem; line-height:1.2; }
.svc-mini-card p { font-size:.78rem; color:rgba(250,246,238,.55); line-height:1.65; margin-bottom:.8rem; }
.svc-mini-link { font-size:.62rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--amber); }

/* ═══════════════════════════════════════════════════════════
   ACT 125 CALLOUT
   ═══════════════════════════════════════════════════════════ */
.act-section { position:relative; overflow:hidden; min-height:420px; display:flex; align-items:center; }
.act-photo { position:absolute; inset:0; }
.act-photo img { width:100%; height:100%; object-fit:cover; filter:sepia(18%) saturate(72%) brightness(.78); }
.act-overlay { position:absolute; inset:0; background:linear-gradient(115deg,rgba(26,46,21,.96) 0%,rgba(26,46,21,.88) 50%,rgba(26,46,21,.72) 100%); }
.act-inner { position:relative; z-index:2; display:grid; grid-template-columns:1fr 230px; gap:3rem; align-items:center; padding:4rem 0; }
.act-content h2 { color:var(--cream); font-size:clamp(1.6rem,3vw,2.4rem); max-width:480px; }
.act-reasons { display:flex; flex-direction:column; gap:.65rem; margin:1.1rem 0 1.5rem; }
.act-reason { display:flex; gap:.55rem; font-size:.82rem; color:rgba(250,246,238,.78); align-items:flex-start; line-height:1.55; }
.act-reason-dot { width:7px; height:9px; background:var(--amber-lt); clip-path:path('M 3.5 0 Q 4 2.5 7 4.5 Q 4 6.5 3.5 9 Q 3 6.5 0 4.5 Q 3 2.5 3.5 0 Z'); flex-shrink:0; margin-top:4px; }

.act-badge-panel {
  background:rgba(200,134,42,.1); border:1.5px solid rgba(200,134,42,.4);
  border-radius:6px; padding:1.6rem 1.8rem; display:flex;
  flex-direction:column; align-items:center; text-align:center;
}
.act-badge-label { font-size:.6rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:rgba(200,134,42,.7); margin-bottom:.2rem; }
.act-badge-name { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:700; color:var(--amber-lt); line-height:1; }
.act-badge-sub { font-size:.58rem; color:rgba(250,246,238,.4); letter-spacing:.08em; text-transform:uppercase; margin-bottom:.9rem; }
.act-deadline-divider { width:100%; border-top:1px solid rgba(200,134,42,.25); padding-top:.9rem; }
.act-deadline-label { font-size:.55rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(250,246,238,.42); display:block; margin-bottom:.15rem; }
.act-deadline-date { font-family:'Cormorant Garamond',serif; font-size:.95rem; font-weight:600; color:var(--cream); display:block; }
.act-deadline-year { font-family:'Cormorant Garamond',serif; font-size:3rem; font-weight:700; color:var(--amber-lt); line-height:1; display:block; }
.act-priority { margin-top:.9rem; padding-top:.9rem; border-top:1px solid rgba(200,134,42,.2); font-size:.68rem; color:rgba(250,246,238,.55); line-height:1.6; }

.amber-band { height:4px; background:linear-gradient(90deg,var(--amber),var(--amber-lt),var(--amber)); }

/* ═══════════════════════════════════════════════════════════
   PROCESS
   ═══════════════════════════════════════════════════════════ */
.process-section { background:var(--cream); }
.process-lede { max-width:820px; margin:0 auto 2.5rem; }

.timeline { max-width:820px; margin:0 auto; position:relative; }
.tl-spine {
  position:absolute; left:27px; top:0; bottom:0; width:1.5px;
  background:linear-gradient(to bottom,var(--amber) 0%,rgba(200,134,42,.12) 100%);
}
.tl-step { display:flex; gap:1.4rem; padding-bottom:2.2rem; position:relative; }
.tl-step:last-child { padding-bottom:0; }
.step-circle {
  width:56px; height:56px; border-radius:50%;
  background:var(--earth); border:2px solid var(--amber);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; position:relative; z-index:2;
}
.step-circle-final { background:var(--amber); border-color:var(--amber-lt); }
.step-circle-num { font-family:'Cormorant Garamond',serif; font-size:1.25rem; font-weight:700; color:var(--amber-lt); }
.step-circle-final .step-circle-num { color:var(--earth); }
.step-body { padding-top:.65rem; flex:1; }
.step-tag {
  display:inline-block; background:var(--linen); border:1px solid var(--parchment);
  font-size:.58rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--amber); padding:.18rem .55rem; border-radius:2px; margin-bottom:.38rem;
}
.step-tag-final { background:var(--amber-pale); border-color:rgba(200,134,42,.4); color:var(--ochre); }
.step-title { font-family:'Cormorant Garamond',serif; font-size:1.2rem; font-weight:600; color:var(--earth); margin-bottom:.42rem; line-height:1.2; }
.step-desc { font-size:.82rem; color:var(--stone); line-height:1.82; margin-bottom:.65rem; }
.client-chip {
  display:flex; gap:.45rem; align-items:flex-start;
  background:rgba(45,74,34,.07); border:1px solid rgba(45,74,34,.18);
  border-radius:4px; padding:.6rem .85rem; font-size:.77rem; color:var(--forest); line-height:1.5;
}
.client-chip-final { background:rgba(200,134,42,.1); border-color:rgba(200,134,42,.3); color:var(--ochre); }

/* ═══════════════════════════════════════════════════════════
   ABOUT
   ═══════════════════════════════════════════════════════════ */
.about-section { background:var(--linen); }
.about-inner { display:grid; grid-template-columns:55% 45%; min-height:560px; }

.about-photo-col { position:relative; overflow:hidden; }
.about-photo-col img { width:100%; height:100%; object-fit:cover; display:block; filter:sepia(18%) saturate(78%) brightness(.88); }
.about-photo-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(26,46,21,.55) 0%,transparent 40%); }
.about-photo-accent { position:absolute; top:0; right:0; bottom:0; width:4px; background:var(--amber); }
.about-photo-label {
  position:absolute; top:1.1rem; left:1.1rem;
  background:rgba(26,46,21,.75); color:rgba(250,246,238,.62);
  font-size:.54rem; letter-spacing:.08em; text-transform:uppercase;
  padding:.28rem .65rem; border-radius:2px;
}
.float-creds {
  position:absolute; bottom:1.5rem; left:1.25rem;
  background:var(--earth); border:1px solid rgba(200,134,42,.35);
  border-radius:5px; padding:1rem 1.25rem;
  display:grid; grid-template-columns:1fr 1px 1fr; gap:1.1rem; align-items:center;
}
.float-divider { background:rgba(200,134,42,.25); height:100%; }
.float-stat { text-align:center; }
.float-n { font-family:'Cormorant Garamond',serif; font-size:2rem; font-weight:700; color:var(--amber-lt); display:block; line-height:1; }
.float-l { font-size:.56rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(250,246,238,.48); display:block; margin-top:.22rem; line-height:1.35; }

.about-content-col { padding:3rem 2.8rem; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
.pe-bg-text {
  font-family:'Cormorant Garamond',serif; font-size:9rem; font-weight:700;
  color:rgba(200,134,42,.06); line-height:1;
  position:absolute; bottom:-2rem; right:-1rem;
  pointer-events:none; user-select:none; letter-spacing:-.02em;
}
.about-name { font-family:'Cormorant Garamond',serif; font-size:2.2rem; font-weight:700; color:var(--earth); line-height:1.1; margin-bottom:.2rem; }
.about-title { font-size:.72rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); margin-bottom:.5rem; }
.state-badges { display:flex; gap:.45rem; margin-bottom:1.1rem; }
.state-badge-pill { background:var(--earth); color:var(--amber-lt); font-size:.6rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:.28rem .75rem; border-radius:2px; }
.about-bio { font-size:.85rem; color:var(--stone); line-height:1.85; margin-bottom:.85rem; }
.cred-list { display:flex; flex-direction:column; gap:.45rem; margin-bottom:1.2rem; }
.cred-list-item { display:flex; align-items:center; gap:.6rem; font-size:.82rem; color:var(--bark); }
.cred-dot { width:7px; height:9px; background:var(--amber); clip-path: path('M 3.5 0 Q 4 2.5 7 4.5 Q 4 6.5 3.5 9 Q 3 6.5 0 4.5 Q 3 2.5 3.5 0 Z'); flex-shrink:0; }

/* ═══════════════════════════════════════════════════════════
   TESTIMONIALS
   ═══════════════════════════════════════════════════════════ */
.test-section { background:var(--earth); padding:5rem 0; }
.test-section .section-intro p { color:rgba(250,246,238,.55); }
.test-section .section-intro h2 { color:var(--cream); }

.big-quote-mark { font-family:'Cormorant Garamond',serif; font-size:7rem; font-weight:700; color:rgba(200,134,42,.12); line-height:.75; display:block; margin-bottom:-1.75rem; padding-left:.5rem; user-select:none; }

.feat-test { background:rgba(250,246,238,.04); border:1px solid rgba(200,134,42,.18); border-radius:6px; padding:2rem 2.25rem; margin-bottom:1.5rem; }
.feat-test-q { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.22rem; color:rgba(250,246,238,.88); line-height:1.65; margin-bottom:1.1rem; }
.feat-test-stars { color:var(--amber); font-size:.88rem; letter-spacing:.06em; margin-bottom:.25rem; }
.feat-test-name { font-size:.8rem; font-weight:600; color:var(--amber-lt); letter-spacing:.04em; }
.feat-test-type { font-size:.68rem; color:rgba(250,246,238,.38); text-transform:uppercase; letter-spacing:.06em; margin-top:.12rem; }

.test-card-row { display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; margin-bottom:1.4rem; }
.test-card { background:rgba(250,246,238,.04); border:1px solid rgba(200,134,42,.16); border-top:3px solid var(--amber); border-radius:4px; padding:1.4rem; }
.test-card .test-stars { color:var(--amber); font-size:.82rem; letter-spacing:.05em; margin-bottom:.65rem; }
.test-card-q { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1rem; color:rgba(250,246,238,.8); line-height:1.65; margin-bottom:.9rem; }
.test-card-name { font-size:.72rem; font-weight:600; color:var(--amber-lt); margin-bottom:.12rem; }
.test-card-type { font-size:.62rem; color:rgba(250,246,238,.35); text-transform:uppercase; letter-spacing:.06em; }

.test-placeholder-note {
  background:rgba(200,134,42,.08); border:1px solid rgba(200,134,42,.2);
  border-radius:4px; padding:.85rem 1.1rem; display:flex; gap:.65rem; align-items:flex-start;
}
.test-placeholder-note p { font-size:.75rem; color:rgba(250,246,238,.48); line-height:1.65; margin:0; }

/* ═══════════════════════════════════════════════════════════
   CTA BAND
   ═══════════════════════════════════════════════════════════ */
.cta-band { position:relative; overflow:hidden; min-height:420px; display:flex; align-items:center; }
.cta-band-photo { position:absolute; inset:0; }
.cta-band-photo img { width:100%; height:100%; object-fit:cover; filter:sepia(18%) saturate(72%) brightness(.78); }
.cta-band-overlay { position:absolute; inset:0; background:linear-gradient(115deg,rgba(26,46,21,.97) 0%,rgba(26,46,21,.9) 50%,rgba(26,46,21,.75) 100%); }
.cta-band-inner { position:relative; z-index:2; display:grid; grid-template-columns:1fr 340px; gap:3rem; align-items:center; padding:4rem 0; }
.cta-band-content h2 { color:var(--cream); font-size:clamp(1.7rem,3vw,2.6rem); max-width:440px; }
.cta-band-tagline { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1rem; color:var(--amber-lt); margin-bottom:.9rem; display:block; }
.cta-band-body { font-size:.84rem; color:rgba(250,246,238,.72); line-height:1.85; margin-bottom:1.6rem; max-width:420px; }
.cta-band-btns { display:flex; gap:.8rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.cta-chips { display:flex; gap:1.5rem; flex-wrap:wrap; }
.cta-chip { display:flex; align-items:center; gap:.42rem; font-size:.72rem; color:rgba(250,246,238,.62); }
.cta-chip-dot { width:7px; height:9px; background:var(--amber); clip-path:path('M 3.5 0 Q 4 2.5 7 4.5 Q 4 6.5 3.5 9 Q 3 6.5 0 4.5 Q 3 2.5 3.5 0 Z'); flex-shrink:0; }

.next-steps-panel {
  background:rgba(250,246,238,.04); border:1px solid rgba(200,134,42,.22);
  border-radius:6px; padding:1.6rem 1.8rem; display:flex; flex-direction:column; gap:1.1rem;
}
.next-steps-head { font-size:.6rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:rgba(200,134,42,.7); }
.ns-item { display:flex; align-items:flex-start; gap:.7rem; }
.ns-icon {
  width:30px; height:30px; background:rgba(200,134,42,.14); border:1px solid rgba(200,134,42,.28);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:.72rem; font-weight:700; color:var(--amber-lt); flex-shrink:0; font-family:'Cormorant Garamond',serif;
}
.ns-text { font-size:.8rem; color:rgba(250,246,238,.72); line-height:1.55; }
.ns-text strong { color:var(--amber-lt); }

/* ═══════════════════════════════════════════════════════════
   CONTACT
   ═══════════════════════════════════════════════════════════ */
.contact-section { background:var(--linen); }
.contact-inner { display:grid; grid-template-columns:38% 62%; gap:0; }
.contact-info-col { padding:3rem 2.5rem 3rem 0; border-right:1px solid var(--parchment); display:flex; flex-direction:column; }
.contact-info-col h2 { font-size:clamp(1.5rem,2.5vw,2.1rem); margin-bottom:.35rem; }
.contact-sub { font-size:.85rem; color:var(--stone); line-height:1.82; margin-bottom:1.6rem; }
.contact-detail { display:flex; align-items:center; gap:.7rem; margin-bottom:.8rem; }
.contact-icon { width:36px; height:36px; background:var(--earth); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--amber-lt); font-size:.6rem; font-weight:700; letter-spacing:.08em; font-family:'Source Sans 3', sans-serif; flex-shrink:0; }
.contact-text { font-size:.85rem; color:var(--bark); line-height:1.45; }
.contact-text a { color:var(--forest); font-weight:600; }
.reg-refs { margin-top:auto; padding-top:1.5rem; }
.reg-refs-head { font-size:.62rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--stone); margin-bottom:.55rem; }
.reg-ref-item { display:flex; gap:.45rem; font-size:.78rem; color:var(--bark); margin-bottom:.38rem; line-height:1.5; }
.reg-ref-arrow { color:var(--amber); flex-shrink:0; }

.contact-form-col { padding:2.8rem 0 2.8rem 2.8rem; }
.inquiry-form { background:var(--cream); border:1px solid var(--parchment); border-radius:8px; padding:2.2rem; }
.form-title { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:600; color:var(--earth); margin-bottom:.2rem; }
.form-subtitle { font-size:.78rem; color:var(--stone); margin-bottom:1.75rem; }
.form-section-head { font-family:'Cormorant Garamond',serif; font-size:1rem; color:var(--earth); margin:1.5rem 0 .8rem; padding-bottom:.35rem; border-bottom:1px solid var(--parchment); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.form-group { display:flex; flex-direction:column; gap:.32rem; margin-bottom:.95rem; }
.form-group label { font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--earth); }
.form-group .req { color:var(--amber); margin-left:2px; }
.form-group input,
.form-group select,
.form-group textarea {
  font-family:'Source Sans 3',sans-serif; font-size:.9rem; color:var(--bark);
  background:var(--linen); border:1.5px solid var(--parchment);
  border-radius:3px; padding:.65rem .88rem; width:100%; outline:none;
  transition:border-color .2s, box-shadow .2s; -webkit-appearance:none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { border-color:var(--fern); box-shadow:0 0 0 3px rgba(74,112,56,.12); }
.form-group textarea { resize:vertical; min-height:100px; }
.form-note { font-size:.74rem; color:var(--stone); font-style:italic; margin-bottom:1.1rem; line-height:1.6; }
.form-submit {
  width:100%; background:var(--earth); color:var(--cream);
  font-family:'Source Sans 3',sans-serif; font-size:.75rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  padding:1.05rem; border-radius:3px; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:.5rem;
  transition:background .25s;
}
.form-submit:hover { background:var(--forest); }
.form-submit:disabled { background:var(--stone); cursor:not-allowed; }
.form-success {
  display:none; background:rgba(45,74,34,.08);
  border:1px solid rgba(45,74,34,.25); border-radius:4px;
  padding:1.1rem; color:var(--forest); font-size:.88rem;
  text-align:center; margin-top:.9rem; line-height:1.6;
}

/* ═══════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════ */
.site-footer { background:var(--earth); padding:0; }
.footer-accent-band { height:4px; background:linear-gradient(90deg,var(--amber),var(--amber-lt),var(--amber)); }
.footer-top-strip { padding:1.6rem 0 0; }
.footer-tagline-line { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1rem; color:var(--amber-lt); margin-bottom:0; }

.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:2.8rem; padding:1.75rem 0 2.75rem; border-bottom:1px solid rgba(200,134,42,.18); margin-top:.5rem; }
.footer-brand h3 { font-family:'Cormorant Garamond',serif; font-size:1.2rem; color:var(--cream); margin-bottom:.35rem; }
.footer-brand-desc { font-size:.82rem; color:rgba(250,246,238,.52); line-height:1.72; margin-top:.6rem; }
.footer-state-row { display:flex; gap:.45rem; margin-top:.85rem; }
.footer-state { background:rgba(200,134,42,.14); border:1px solid rgba(200,134,42,.28); color:var(--amber-lt); font-size:.56rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:.22rem .6rem; border-radius:2px; }
.footer-pe-note { font-size:.68rem; color:rgba(250,246,238,.32); margin-top:.6rem; letter-spacing:.04em; }

.footer-col h4 { font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--amber-lt); margin-bottom:.95rem; }
.footer-col ul { display:flex; flex-direction:column; gap:.55rem; }
.footer-col ul li a { font-size:.82rem; color:rgba(250,246,238,.52); transition:color .2s; }
.footer-col ul li a:hover { color:var(--amber-lt); }

.footer-contact-item { display:flex; gap:.45rem; align-items:flex-start; margin-bottom:.52rem; }
.footer-contact-icon {
  display:inline-block; width:6px; height:6px;
  background:var(--amber); transform:rotate(45deg);
  flex-shrink:0; margin-top:5px; margin-right:2px;
}
.footer-contact-text { font-size:.8rem; color:rgba(250,246,238,.52); line-height:1.4; }
.footer-contact-text a { color:rgba(250,246,238,.52); }
.footer-contact-text a:hover { color:var(--amber-lt); }

.footer-deadline-box { border:1px solid rgba(200,134,42,.2); border-radius:4px; padding:.85rem 1rem; margin-top:1.1rem; }
.footer-dl-label { font-size:.58rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:rgba(200,134,42,.6); margin-bottom:.35rem; }
.footer-dl-year { font-family:'Cormorant Garamond',serif; font-size:1.75rem; font-weight:700; color:var(--amber-lt); line-height:1; }
.footer-dl-note { font-size:.62rem; color:rgba(250,246,238,.35); margin-top:.2rem; }

.footer-bottom { padding:1.4rem 0; display:flex; align-items:center; justify-content:space-between; }
.footer-bottom-l { font-size:.72rem; color:rgba(250,246,238,.32); }
.footer-bottom-r { font-size:.72rem; color:rgba(250,246,238,.36); display:flex; gap:1rem; }
.footer-bottom-r a { color:rgba(250,246,238,.38); }
.footer-bottom-r a:hover { color:var(--amber-lt); }

/* ═══════════════════════════════════════════════════════════
   BLOG / RESOURCES
   ═══════════════════════════════════════════════════════════ */
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
.blog-card { background:var(--cream); border:1px solid var(--parchment); border-radius:6px; overflow:hidden; transition:transform .25s; }
.blog-card:hover { transform:translateY(-4px); }
.blog-card-img { width:100%; height:195px; object-fit:cover; filter:sepia(12%) saturate(82%); }
.blog-card-body { padding:1.4rem; }
.blog-card-footer { padding:.9rem 1.4rem; border-top:1px solid var(--parchment); display:flex; justify-content:space-between; align-items:center; }
.blog-date { font-size:.76rem; color:var(--stone); }
.read-more { font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--amber); text-decoration:none; }
.read-more:hover { text-decoration:underline; }
.feat-article { background:var(--cream); border:1px solid var(--parchment); border-radius:8px; overflow:hidden; max-width:900px; margin:0 auto 3.5rem; }
.feat-img { width:100%; height:300px; object-fit:cover; filter:sepia(12%) saturate(82%); }
.feat-body { padding:2.2rem 2.5rem; }
.feat-body h2 { font-size:clamp(1.4rem,3vw,2rem); margin:.7rem 0 1rem; }
.feat-body p { font-size:.88rem; color:var(--stone); line-height:1.85; margin-bottom:1rem; }
.reg-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:1.5rem; }
.reg-card { background:var(--linen); border:1px solid var(--parchment); border-radius:5px; padding:1.4rem; }
.reg-card h4 { font-size:.92rem; margin-bottom:.38rem; }
.reg-card p { font-size:.82rem; color:var(--stone); line-height:1.7; }

/* ═══════════════════════════════════════════════════════════
   AREA PAGE
   ═══════════════════════════════════════════════════════════ */
.area-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; }
.area-img-wrap { border-radius:8px; overflow:hidden; height:420px; position:relative; }
.area-img-wrap img { width:100%; height:100%; object-fit:cover; filter:sepia(15%) saturate(80%); }
.area-img-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,transparent 40%,rgba(26,46,21,.7) 100%); display:flex; align-items:flex-end; padding:1.5rem; }
.area-tag { background:var(--amber); color:var(--earth); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.32rem .72rem; border-radius:2px; }
.area-list { display:flex; flex-direction:column; gap:.9rem; margin:1.6rem 0; }
.area-item { display:flex; align-items:flex-start; gap:.7rem; }
.area-check { width:20px; height:20px; background:var(--forest); border-radius:50%; display:flex; align-items:center; justify-content:center; color:white; font-size:.62rem; flex-shrink:0; margin-top:2px; }
.area-item-text strong { font-size:.92rem; display:block; margin-bottom:.12rem; }
.area-item-text span { font-size:.82rem; color:var(--stone); }

/* ═══════════════════════════════════════════════════════════
   ANIMATIONS & UTILITIES
   ═══════════════════════════════════════════════════════════ */
.fade-up { opacity:0; transform:translateY(26px); transition:opacity .65s ease, transform .65s ease; }
.fade-up.visible { opacity:1; transform:none; }

/* Stagger helpers */
.delay-1 { transition-delay:.1s; }
.delay-2 { transition-delay:.2s; }
.delay-3 { transition-delay:.3s; }
.delay-4 { transition-delay:.4s; }

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .cred-strip-inner,
  .about-inner,
  .contact-inner,
  .area-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .svc-row, .svc-row-reverse { grid-template-columns: 1fr; }
  .svc-photo-col { min-height: 280px; }
  .svc-photo-accent { right: auto; left: 0; bottom: auto; width: 100%; height: 4px; }
  .act-inner { grid-template-columns: 1fr; }
  .act-badge-panel { display: none; }
  .cta-band-inner { grid-template-columns: 1fr; }
  .next-steps-panel { display: none; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .contact-inner { grid-template-columns: 1fr; }
  .contact-info-col { border-right: none; border-bottom: 1px solid var(--parchment); padding-right: 0; }
  .contact-form-col { padding-left: 0; }
  .about-inner { min-height: auto; }
  .about-photo-col { min-height: 360px; }
  .float-creds { bottom: 1rem; }
}

@media (max-width: 768px) {
  .nav-links { display: none; }
  .hamburger { display: flex; }
  section { padding: 3.5rem 0; }
  .hero { min-height: 100svh; }
  .svc-mini-grid, .test-card-row, .blog-grid, .reg-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; gap: .5rem; text-align: center; }
  .cred-strip-inner, .stat-box { font-size: .9rem; }
  .tl-spine { left: 27px; }
}

@media (max-width: 480px) {
  h1 { font-size: 2rem; }
  h2 { font-size: 1.6rem; }
  .inquiry-form { padding: 1.5rem; }
  .hero-btns { flex-direction: column; }
}
