/*
Theme Name: Arbuckle Outdoor Living
Theme URI: https://www.arbuckleoutdoorliving.com/
Author: The Web Guys
Author URI: https://www.the-web-guys.com/
Description: Custom theme for Arbuckle Outdoor Living, built by The Web Guys from the approved Stage 7 design. Business values: Settings → Site Settings. Forms: Settings → Site Forms.
Version: 1.0.11
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: arbuckle-outdoor-living
*/
@font-face{font-family:'Marcellus';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/marcellus.woff2) format('woff2')}
@font-face{font-family:'Marcellus SC';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/marcellus-sc.woff2) format('woff2')}
@font-face{font-family:'Mulish';font-style:normal;font-weight:400 800;font-display:swap;src:url(assets/fonts/mulish.woff2) format('woff2')}
@font-face{font-family:'Mulish';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/mulish-italic.woff2) format('woff2')}

/* ===== Stage 7 site.css (approved design) ===== */
/* Arbuckle Outdoor Living — Stage 7 preview. ONE stylesheet (→ theme style.css).
   Brand from the Option 1 logo: deep forest green #304B16 (ARBUCKLE wordmark + ring: headings, buttons), leaf-green tints from the canopy (accents),
   bark brown (tiny accents), old-site charcoal #343A30 / sage #687858; warm linen page, pale sage bands, dark charcoal-green ribbon/footer.
   Motifs from the logo: the thin circular ring (open at the bottom), the curved ground line under the tree, "— OUTDOOR LIVING —" short rules.
   Type: Marcellus (classical inscriptional serif, echoes the ARBUCKLE wordmark) + Marcellus SC for spaced small-cap eyebrows + Mulish (body).
   AA: white on forest 9.9:1, forest on linen 9.3:1, muted #575F4E on white 6.4:1, leaf-ink #46681F on white 6.0:1; light leaf #CFE3A8 only on forest/night. */
:root {
  --forest: #304B16; --forest-950: #172409; --forest-900: #1F330D; --forest-800: #284013; --forest-700: #3B5A1C;
  --leaf: #7FA646; --leaf-ink: #46681F; --leaf-light: #CFE3A8; --leaf-50: #F1F5E7;
  --sage: #687858; --sage-700: #4F5C42; --sage-50: #EEF1E6; --sage-100: #E2E8D6; --sage-200: #CBD5BB;
  --linen: #F8F5EE; --linen-2: #F1ECE0; --white: #FFFFFF; --bark: #7A5634;
  --ink: #2A3025; --charcoal: #343A30; --muted: #575F4E; --line: #E4DED0; --line-sage: #D2DAC4; --night: #1F261B; --on-dark: #CDD5C3;
  --r: 18px; --r-sm: 12px;
  --shadow: 0 1px 2px rgba(31, 51, 13, .06), 0 14px 34px -18px rgba(31, 51, 13, .32);
  --shadow-lg: 0 30px 60px -30px rgba(23, 36, 9, .5);
  --display: "Marcellus", "Trajan Pro", Georgia, serif; --caps: "Marcellus SC", "Marcellus", Georgia, serif;
  --sans: "Mulish", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --wrap: 1180px; --gut: 24px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 120px; }
body { margin: 0; background: var(--linen); color: var(--ink); font: 400 1.0625rem/1.7 var(--sans); overflow-x: hidden; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--leaf-ink); text-underline-offset: 3px; text-decoration-thickness: 1px; transition: color .15s, background .15s; }
a:hover { color: var(--forest); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--leaf); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3 { font-family: var(--display); font-weight: 400; color: var(--forest); line-height: 1.12; margin: 0 0 .5em; letter-spacing: .005em; text-wrap: balance; }
h1 { font-size: clamp(2.35rem, 1.6rem + 2.6vw, 3.7rem); line-height: 1.06; }
h2 { font-size: clamp(1.85rem, 1.45rem + 1.25vw, 2.6rem); }
h3 { font-size: 1.36rem; line-height: 1.2; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
strong { font-weight: 700; color: var(--charcoal); }
small { font-size: .86em; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: 0 var(--gut); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--forest); color: #fff; padding: 10px 16px; z-index: 200; border-radius: 6px; }
.skip:focus { left: 8px; }
.ico { width: 1em; height: 1em; flex: none; }
.ico-line { width: 100%; height: 100%; }
.empty { color: var(--muted); font-style: italic; }
code { font-size: .9em; background: var(--sage-50); padding: 1px 6px; border-radius: 4px; }

/* ---------- eyebrows: spaced small caps with short rules (the logo's "— OUTDOOR LIVING —") ---------- */
.eyebrow { display: inline-flex; align-items: center; gap: 14px; font: 400 .95rem/1.2 var(--caps); letter-spacing: .2em; color: var(--leaf-ink); margin: 0 0 16px; }
.eyebrow::before { content: ""; width: 34px; height: 1.5px; background: currentColor; opacity: .75; flex: none; }
.eyebrow.c::after { content: ""; width: 34px; height: 1.5px; background: currentColor; opacity: .75; flex: none; }
.eyebrow.light { color: var(--leaf-light); }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: 50px; padding: 12px 26px; border-radius: 999px;
  font: 700 1rem/1.1 var(--sans); letter-spacing: .02em; text-decoration: none; border: 2px solid transparent; cursor: pointer; white-space: nowrap;
  transition: background .18s, color .18s, border-color .18s, transform .18s, box-shadow .18s; }
.btn:hover { text-decoration: none; transform: translateY(-2px); }
.btn .ico { width: 1.05em; height: 1.05em; }
.btn-primary { background: var(--forest); color: #fff; box-shadow: 0 10px 22px -12px rgba(48, 75, 22, .8); }
.btn-primary:hover { background: var(--forest-900); color: #fff; box-shadow: 0 14px 26px -12px rgba(23, 36, 9, .85); }
.btn-outline { border-color: var(--forest); color: var(--forest); background: transparent; }
.btn-outline:hover { background: var(--forest); color: #fff; }
.btn-light { background: #fff; color: var(--forest); }
.btn-light:hover { background: var(--leaf-light); color: var(--forest-950); }
.btn-ghost { border-color: rgba(255, 255, 255, .65); color: #fff; background: transparent; }
.btn-ghost:hover { background: #fff; color: var(--forest); border-color: #fff; }
.btn-sm { min-height: 44px; padding: 10px 20px; font-size: .95rem; }
.btn-block { width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.btn-col { display: grid; gap: 12px; }
.text-link { display: inline-flex; align-items: center; gap: .45em; font-weight: 700; text-decoration: none; color: var(--leaf-ink); }
.text-link .ico { transition: transform .18s; }
.text-link:hover { color: var(--forest); text-decoration: underline; }
.text-link:hover .ico { transform: translateX(4px); }
.tel, a[href^="tel:"]:not(.btn):not(.side-phone) { font-weight: 700; white-space: nowrap; }

/* ---------- ribbon + header ---------- */
.ribbon { background: var(--night); color: #E7ECDF; font-size: .86rem; position: relative; z-index: 60; }
.ribbon-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.rb-item { margin: 0; display: flex; align-items: center; gap: 8px; }
.rb-item > .ico { color: var(--leaf-light); }
.ribbon a { color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.ribbon a .ico { color: var(--leaf-light); }
.ribbon a:hover { color: var(--leaf-light); text-decoration: underline; }
.ribbon strong { color: #fff; }
/* r4 scroll-shake fix: the stuck header shrinks (152→104 desktop, 112→84 mobile). A margin-bottom equal to the shrink keeps the header's
   layout footprint constant, so content below never moves and Chrome scroll anchoring can't bounce scrollY across the 40px threshold. */
.site-header { position: sticky; top: 0; z-index: 50; background: #fff; box-shadow: 0 1px 0 var(--line); transition: box-shadow .2s, margin-bottom .2s; overflow-anchor: none; }
.site-header.is-stuck { box-shadow: 0 12px 30px -20px rgba(23, 36, 9, .55); margin-bottom: 48px; }
.hdr-row { display: flex; align-items: center; gap: 22px; min-height: 152px; transition: min-height .2s; }
.is-stuck .hdr-row { min-height: 104px; }
.logo { flex: none; display: block; border-radius: 8px; }
.logo img { height: 132px; width: auto; transition: height .2s; }
.is-stuck .logo img { height: 93px; }
.logo:hover img { opacity: .88; }
.nav { flex: 1; min-width: 0; display: flex; justify-content: flex-end; }
.nav-list { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; white-space: nowrap; flex: none; }
.nav-list > li > a.top-link, .drop-btn { display: inline-flex; align-items: center; gap: 5px; padding: 12px 13px; font: 700 1.3rem/1 var(--sans); color: var(--forest);
  text-decoration: none; background: none; border: 0; cursor: pointer; border-radius: 999px; position: relative; }
.nav-list > li > a.top-link::after, .drop-btn::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 1.5px; background: var(--leaf); transform: scaleX(0); transition: transform .18s; }
.nav-list > li > a.top-link:hover, .drop-btn:hover, .has-drop.open .drop-btn { color: var(--forest-900); background: var(--sage-50); }
.nav-list > li > a.top-link:hover::after, .drop-btn:hover::after, .nav-list > li > a[aria-current]::after, .has-drop.is-active .drop-btn::after { transform: scaleX(1); }
.caret { width: .7em; height: .7em; transition: transform .18s; }
.has-drop { position: relative; }
.has-drop.open .caret { transform: rotate(180deg); }
.drop { position: absolute; top: calc(100% + 10px); left: -10px; min-width: 230px; list-style: none; margin: 0; padding: 10px; background: #fff; border-radius: 16px;
  box-shadow: var(--shadow-lg); border: 1px solid var(--line-sage); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .16s, transform .16s, visibility .16s; }
.drop::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.has-drop.open .drop { opacity: 1; visibility: visible; transform: none; }
.drop a { display: block; padding: 10px 14px; border-radius: 10px; color: var(--forest); text-decoration: none; font-weight: 600; }
.drop a:hover, .drop a[aria-current] { background: var(--sage-50); color: var(--forest-900); }
/* mega menu: 4 GROUPS columns + View All */
.has-mega { position: static; }
.mega { position: absolute; left: 0; right: 0; top: 100%; padding: 0 var(--gut); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .16s, transform .16s, visibility .16s; }
.mega::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.has-mega.open .mega { opacity: 1; visibility: visible; transform: none; }
.mega-in { max-width: var(--wrap); margin: 0 auto; background: #fff; border: 1px solid var(--line-sage); border-top: 3px solid var(--forest); border-radius: 0 0 20px 20px; box-shadow: var(--shadow-lg); padding: 30px 34px 0; white-space: normal; }
.mega-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.mega-h { font: 400 1rem/1.2 var(--caps); letter-spacing: .14em; color: var(--leaf-ink); margin: 0 0 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.mega ul { list-style: none; margin: 0; padding: 0; }
.mega li a { display: block; padding: 7px 10px; margin: 0 -10px; border-radius: 8px; color: var(--forest); font-weight: 600; text-decoration: none; font-size: .98rem; }
.mega li a:hover, .mega li a[aria-current] { background: var(--sage-50); color: var(--forest-900); }
.mega-all { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 24px -34px 0; padding: 16px; background: var(--sage-50); border-radius: 0 0 18px 18px;
  color: var(--forest); font: 400 1.05rem/1 var(--caps); letter-spacing: .12em; text-decoration: none; }
.mega-all:hover { background: var(--forest); color: #fff; }
.nav-tel a { display: inline-flex; flex-direction: column; align-items: flex-start; padding: 6px 12px; margin-left: 8px; color: var(--forest); text-decoration: none; border-radius: 12px; line-height: 1.15; }
.nav-tel .tel-k { font: 400 .74rem/1 var(--caps); letter-spacing: .16em; color: var(--leaf-ink); margin-bottom: 3px; }
.nav-tel .tel-num { font-weight: 800; font-size: 1.02rem; }
.nav-tel a:hover { background: var(--sage-50); color: var(--forest-900); }
.nav-cta { margin-left: 10px; }
.nav-cta .btn { font-size: 1.3rem; min-height: 54px; padding: 12px 28px; }
.nav-compact .nav-tel { display: none; }
.burger { display: none; margin-left: auto; width: 50px; height: 50px; border: 1.5px solid var(--line-sage); border-radius: 50%; background: #fff; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.burger span { width: 22px; height: 2px; border-radius: 2px; background: var(--forest); transition: transform .2s, opacity .2s; }
.burger:hover { border-color: var(--forest); background: var(--sage-50); }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
/* collapsed nav (JS nav-fit guard; CSS fallback below 768px) */
.nav-collapsed .burger { display: inline-flex; }
.nav-collapsed .nav { position: fixed; left: 0; right: 0; top: var(--menu-top, 120px); bottom: 0; background: #fff; overflow-y: auto; display: none; padding: 10px var(--gut) 40px; border-top: 1px solid var(--line); }
.nav-collapsed .nav.open { display: block; }
.nav-collapsed .nav-list { flex-direction: column; align-items: stretch; gap: 0; white-space: normal; max-width: 640px; margin: 0 auto; }
.nav-collapsed .nav-list > li { border-bottom: 1px solid var(--line); }
.nav-collapsed .nav-list > li > a.top-link, .nav-collapsed .drop-btn { width: 100%; justify-content: space-between; padding: 17px 6px; font-size: 1.12rem; border-radius: 8px; }
.nav-collapsed .nav-list > li > a.top-link::after, .nav-collapsed .drop-btn::after { display: none; }
.nav-collapsed .drop, .nav-collapsed .mega { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 12px 10px; display: none; min-width: 0; }
.nav-collapsed .has-drop.open .drop, .nav-collapsed .has-mega.open .mega { display: block; }
.nav-collapsed .mega-in { border: 0; box-shadow: none; padding: 0; border-radius: 0; }
.nav-collapsed .mega-cols { grid-template-columns: 1fr; gap: 14px; padding-top: 10px; }
.nav-collapsed .mega-h { margin-bottom: 4px; padding-bottom: 6px; }
.nav-collapsed .mega li a { margin: 0; padding: 8px 6px; }
.nav-collapsed .mega-all { margin: 12px 0 0; border-radius: 12px; }
.nav-collapsed .nav-tel, .nav-collapsed .nav-cta { border-bottom: 0 !important; margin: 14px 0 0; display: block; }
.nav-collapsed .nav-tel a { margin: 0; width: 100%; align-items: center; border: 2px solid var(--forest); border-radius: 999px; padding: 9px; }
.nav-collapsed .nav-cta .btn { width: 100%; min-height: 54px; }
body.menu-open { overflow: hidden; }

/* ---------- hero ---------- */
.hero { position: relative; isolation: isolate; }
.hero-photo { padding: 46px 0 96px; overflow: hidden; overflow: clip; }
/* Chad r2 (2026-10-22) picked option B: blurred page photo (--hero-bg, set inline per page) under a forest gradient wash */
.hero-photo { background: var(--forest-900); }
.hero-photo::before { content: ""; position: absolute; inset: -40px; z-index: -2; background: var(--hero-bg) center / cover no-repeat; filter: blur(18px) saturate(1.1); }
.hero-photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(23, 36, 9, .92) 0%, rgba(31, 51, 13, .82) 48%, rgba(31, 51, 13, .55) 100%); }
.hero-photo h1 { color: #fff; }
.hero-photo .hero-sub { color: #E3EAD8; }
.hero-photo .hero-sub a { color: #fff; text-decoration-color: var(--leaf-light); }
.hero-photo .crumb { color: #C7D3B8; }
.hero-photo .crumb a { color: #fff; }
.hero-photo .hero-badge { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .3); color: #fff; }
.hero-photo .hero-badge .ico { color: var(--leaf-light); }
.hero-photo .btn-primary { background: #fff; color: var(--forest); }
.hero-photo .btn-primary:hover { background: var(--leaf-light); color: var(--forest-950); }
.hero-photo .btn-outline { border-color: rgba(255, 255, 255, .7); color: #fff; }
.hero-photo .btn-outline:hover { background: #fff; color: var(--forest); }
.hero-photo .hero-ring { border-color: var(--leaf-light); border-bottom-color: transparent; opacity: .6; }
.hero-photo .hero-media::after { border-top-color: var(--leaf-light); }
.hero-photo .hero-circle { box-shadow: 0 30px 60px -24px rgba(0, 0, 0, .65); }
.hero-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 56px; align-items: center; }
.hero-copy h1 { max-width: 15ch; }
.hero-home .hero-copy h1 { font-size: clamp(2.5rem, 1.6rem + 3vw, 4.1rem); max-width: 14ch; }
.hero-sub { font-size: 1.18rem; line-height: 1.6; max-width: 36rem; color: var(--muted); }
.hero-sub a, .hero-intro a { font-weight: 700; }
.hero-badge { display: inline-flex; align-items: center; gap: 10px; font: 400 .9rem/1 var(--caps); letter-spacing: .18em; color: var(--forest); background: #fff;
  border: 1px solid var(--line-sage); padding: 10px 16px; border-radius: 999px; margin-bottom: 22px; }
.hero-badge .ico { color: var(--leaf); }
.hero-media { position: relative; display: grid; place-items: center; padding: 24px; }
.hero-circle { margin: 0; width: min(100%, 470px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; box-shadow: var(--shadow-lg); position: relative; z-index: 1; background: var(--sage-100); }
.hero-home .hero-circle { width: min(100%, 520px); }
.hero-circle img { width: 100%; height: 100%; object-fit: cover; }
/* the logo's ring: thin forest circle, open at the bottom where the ground line sits */
.hero-ring { position: absolute; z-index: 0; width: min(calc(100% + 0px), 524px); aspect-ratio: 1; border-radius: 50%; border: 1.5px solid var(--forest); border-bottom-color: transparent; transform: rotate(0deg); opacity: .55; }
.hero-home .hero-ring { width: min(100%, 580px); }
.hero-media::after { content: ""; position: absolute; z-index: 2; bottom: 14px; left: 50%; transform: translateX(-50%); width: min(70%, 380px); height: 26px;
  border-top: 2px solid var(--forest); border-radius: 50% 50% 0 0 / 100% 100% 0 0; opacity: .7; }
.ground { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 56px; z-index: 2; }
.ground .g-fill { fill: #fff; }
.ground .g-line { fill: none; stroke: var(--forest); stroke-width: 1.5; opacity: .35; vector-effect: non-scaling-stroke; }
.crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: .88rem; margin-bottom: 20px; color: var(--muted); }
.crumb a { color: var(--leaf-ink); text-decoration: none; font-weight: 700; }
.crumb a:hover { color: var(--forest); text-decoration: underline; }
.crumb .sep { opacity: .5; }
.hero-solid { background: radial-gradient(110% 130% at 100% 0%, var(--forest-700) 0%, var(--forest) 45%, var(--forest-900) 100%); color: #fff; overflow: hidden; overflow: clip; }
.hero-solid .hero-in { position: relative; padding-top: 58px; padding-bottom: 74px; }
.hero-solid h1 { color: #fff; max-width: 22ch; }
.hero-solid .hero-sub { color: #E3EAD8; }
.hero-solid .hero-sub a, .hero-solid .hero-intro a { color: #fff; text-decoration-color: var(--leaf-light); }
.hero-solid .hero-sub a:hover, .hero-solid .hero-intro a:hover { color: var(--leaf-light); }
.hero-solid .crumb { color: #C7D3B8; }
.hero-solid .crumb a { color: #fff; }
.hero-solid .crumb a:hover { color: var(--leaf-light); }
.hero-intro { max-width: 46rem; color: #E3EAD8; font-size: 1.12rem; margin-top: 6px; }
.hero-solid .btn-primary { background: #fff; color: var(--forest); }
.hero-solid .btn-primary:hover { background: var(--leaf-light); color: var(--forest-950); }
.hero-solid .btn-outline { border-color: rgba(255, 255, 255, .7); color: #fff; }
.hero-solid .btn-outline:hover { background: #fff; color: var(--forest); }
.solid-ring { position: absolute; right: -140px; top: 50%; width: 560px; height: 560px; transform: translateY(-50%); border-radius: 50%; border: 1.5px solid rgba(207, 227, 168, .35); border-bottom-color: transparent; pointer-events: none; }
.solid-ring::after { content: ""; position: absolute; inset: 40px; border-radius: 50%; border: 1px solid rgba(207, 227, 168, .18); border-bottom-color: transparent; }

/* ---------- bands ---------- */
.band { position: relative; padding: 88px 0; overflow: hidden; overflow: clip; }
.bg-linen { background: var(--linen); }
.bg-white { background: #fff; }
.bg-sage { background: var(--sage-50); }
.sec-head { max-width: 760px; margin: 0 0 44px; }
.sec-head.c { margin-left: auto; margin-right: auto; text-align: center; }
.sec-head.c .eyebrow { justify-content: center; }
.sec-head p { color: var(--muted); font-size: 1.08rem; }
.sec-foot { margin-top: 34px; max-width: 780px; color: var(--muted); }
.sec-foot-c, .sec-more { text-align: center; margin-top: 34px; }
.prose { max-width: 780px; }
.intro-grid { display: grid; grid-template-columns: 1.55fr 1fr; gap: 64px; align-items: start; }
.intro > p { font-size: 1.1rem; }
.intro-band { padding-top: 64px; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.split > .split-media { order: 0; }
.split.flip > .split-media { order: 2; }
.split-copy > p { color: var(--ink); }
.head-split { margin-bottom: 46px; }
.split-head { display: grid; grid-template-columns: .9fr 1.1fr; gap: 64px; align-items: start; }
.sh-body { font-size: 1.06rem; }
.list-split { align-items: start; }
.list-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 26px 28px; box-shadow: var(--shadow); margin: 18px 0; }
.bg-white .list-card { background: var(--linen); }
.list-after { margin-top: 18px; }
.ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.ticks li { display: flex; gap: 12px; align-items: flex-start; }
.ticks .tk { width: 1.05em; height: 1.05em; color: var(--leaf); margin-top: .32em; }
.callout { display: flex; align-items: center; gap: 12px; margin-top: 22px !important; padding: 14px 18px; background: var(--leaf-50); border-left: 3px solid var(--leaf); border-radius: 0 12px 12px 0; font-weight: 600; color: var(--forest); }
.bg-sage .callout { background: #fff; }
.co-ico { width: 1.3em; height: 1.3em; color: var(--leaf-ink); }

/* ---------- frames + brand panel ---------- */
.frame { margin: 0; position: relative; }
.frame img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 50% 50% 16px 16px / 34% 34% 16px 16px; box-shadow: var(--shadow); }
.frame::after { content: ""; position: absolute; left: 12%; right: 12%; bottom: -14px; height: 22px; border-bottom: 2px solid var(--forest); border-radius: 0 0 50% 50% / 0 0 100% 100%; opacity: .35; }
.frame-circle img { aspect-ratio: 1; border-radius: 50%; }
.frame-circle::after { display: none; }
.frame-logo { background: #fff; border: 1px solid var(--line); border-radius: 50% 50% 16px 16px / 34% 34% 16px 16px; display: grid; place-items: center; padding: 48px 40px; aspect-ratio: 5 / 4; }
.frame-logo img { width: 72%; aspect-ratio: auto; border-radius: 0; box-shadow: none; }
.frame-logo::after { display: none; }
.panel { margin: 0; position: relative; aspect-ratio: 5 / 4; border-radius: 50% 50% 16px 16px / 34% 34% 16px 16px; overflow: hidden; display: grid; place-items: center;
  background: radial-gradient(70% 60% at 50% 38%, #7B8C69 0%, var(--sage) 45%, var(--sage-700) 100%); box-shadow: var(--shadow); color: #fff; }
.panel::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(115deg, rgba(255, 255, 255, .035) 0 2px, transparent 2px 14px); }
.panel-ring { position: absolute; width: 64%; aspect-ratio: 1; top: 12%; left: 18%; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .5); border-bottom-color: transparent; }
.panel-tree { position: absolute; width: 40%; top: 21%; left: 30%; opacity: .95; }
.panel-label { position: absolute; left: 6%; right: 6%; bottom: 13%; text-align: center; font: 400 1.05rem/1.3 var(--caps); letter-spacing: .2em; color: #fff; display: flex; justify-content: center; align-items: center; gap: 14px; }
.panel-label::before, .panel-label::after { content: ""; width: 28px; height: 1.5px; background: rgba(255, 255, 255, .7); flex: none; }
.panel-long .panel-label::before, .panel-long .panel-label::after { display: none; }
.panel-sm { aspect-ratio: 4 / 3; border-radius: 0; box-shadow: none; }
.panel-sm .panel-label { font-size: .85rem; bottom: 10%; }
.panel-band { background: linear-gradient(100deg, var(--sage-700) 0%, var(--sage) 55%, #7B8C69 100%); color: #fff; padding: 46px 0; }
.pb-in { display: flex; align-items: center; justify-content: center; gap: 26px; flex-wrap: wrap; text-align: center; }
.pb-tree { width: 96px; height: auto; }
.pb-label { margin: 0; font: 400 1.5rem/1.2 var(--display); }
.pb-topic { margin: 0; font: 400 1rem/1 var(--caps); letter-spacing: .22em; display: flex; align-items: center; gap: 14px; }
.pb-topic::before, .pb-topic::after { content: ""; width: 30px; height: 1.5px; background: rgba(255, 255, 255, .7); }
.video-card { margin: 0; background: #fff; border-radius: var(--r); padding: 10px; box-shadow: var(--shadow); border: 1px solid var(--line); }
.video-card video { width: 100%; border-radius: 12px; background: var(--night); }
.video-card figcaption { font-size: .9rem; color: var(--muted); padding: 10px 6px 4px; }
.video-card.portrait { max-width: 340px; margin: 0 auto; position: relative; border-radius: 180px 180px 22px 22px; padding: 10px; }
.video-card.portrait video { border-radius: 170px 170px 14px 14px; aspect-ratio: 9 / 16; object-fit: cover; }
.vid-toggle { position: absolute; right: 22px; bottom: 22px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(23, 36, 9, .78); color: #fff; display: grid; place-items: center; cursor: pointer; }
.vid-toggle:hover { background: var(--forest); }
.vid-toggle .ico { width: 16px; height: 16px; grid-area: 1 / 1; }
.vid-toggle .ico + .ico, .is-paused .vid-toggle .ico:first-child { display: none; }
.is-paused .vid-toggle .ico + .ico { display: block; }
.split-video { align-items: center; }

/* ---------- cards ---------- */
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.cards.n2 { grid-template-columns: repeat(2, 1fr); }
.cards.n4, .cards.gcards { grid-template-columns: repeat(4, 1fr); gap: 22px; }
/* Chad r2 (2026-10-22): titles must clearly outrank the link list: bigger display title + leaf rule; links regular weight in ink */
.gcard .card-body .card-title { font-size: 1.62rem; line-height: 1.15; padding-bottom: 12px; margin-bottom: 2px; border-bottom: 3px solid var(--leaf); }
.gcard-links { list-style: none; margin: 2px 0 0; padding: 0; }
.gcard-links li { border-top: 1px solid var(--line); }
.gcard-links li:first-child { border-top: 0; }
.gcard-links a { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; padding: 8px 0; color: var(--ink); font-weight: 500; font-size: .98rem; text-decoration: none; line-height: 1.3; }
.gcard-links a .ico { flex: none; width: .85em; height: .85em; color: var(--leaf); transition: transform .18s; }
.gcard-links a:hover { color: var(--forest); text-decoration: underline; text-decoration-color: var(--leaf); }
.gcard-links a:hover .ico { transform: translateX(4px); }
.cards.acards { grid-template-columns: repeat(5, 1fr); gap: 18px; }
.card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; color: var(--ink); text-decoration: none; box-shadow: var(--shadow);
  transition: transform .2s, box-shadow .2s, border-color .2s; }
.bg-white .card { background: var(--linen); }
a.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--line-sage); color: var(--ink); }
.card-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--sage-100); }
.card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
a.card:hover .card-img img { transform: scale(1.05); }
.card-body { display: flex; flex-direction: column; gap: 8px; padding: 22px 22px 24px; flex: 1; }
.card-title { font: 400 1.32rem/1.2 var(--display); color: var(--forest); margin: 0; }
.card-text { color: var(--muted); font-size: .98rem; }
.gcard .card-text { color: var(--ink); }
.gcard .card-text a { font-weight: 700; }
.more { margin-top: auto; padding-top: 10px; display: inline-flex; align-items: center; gap: .45em; font-weight: 800; color: var(--leaf-ink); font-size: .95rem; }
.more .ico { transition: transform .18s; }
a:hover .more { color: var(--forest); }
a:hover .more .ico { transform: translateX(4px); }
.acards .card-body { padding: 16px 16px 18px; }
.acards .card-title { font-size: 1.15rem; }
.acards .card-text { font-size: .9rem; }
.acards .more { font-size: .86rem; }
.post-meta { font: 400 .82rem/1 var(--caps); letter-spacing: .16em; color: var(--leaf-ink); }
.card-brand { position: relative; }
.feats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.feats.n3, .feats.n6 { grid-template-columns: repeat(3, 1fr); }
.feats.n2 { grid-template-columns: repeat(2, 1fr); max-width: 860px; margin: 0 auto; }
.feats.n5 { grid-template-columns: repeat(5, 1fr); }
.feat { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 28px 24px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 6px; color: var(--ink); text-decoration: none; }
.bg-white .feat { background: var(--linen); }
.feat h3 { font-size: 1.25rem; margin: 6px 0 4px; }
.feat p { color: var(--muted); font-size: .98rem; }
.feat-ico { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; color: var(--forest); background: var(--sage-50); border: 1px solid var(--line-sage); padding: 13px; }
.bg-white .feat-ico, .bg-linen .feat-ico { background: var(--leaf-50); }
a.feat-link:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }

/* sub-sections (h3 groups) */
.subs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.subs.n3 { grid-template-columns: repeat(3, 1fr); }
.subs-stack { grid-template-columns: 1fr !important; gap: 14px; margin-top: 10px; }
.sub { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 26px 26px 24px; box-shadow: var(--shadow); }
.bg-white .sub { background: var(--linen); }
.sub h3 { font-size: 1.28rem; margin-top: 6px; }
.sub-ico { width: 40px; height: 40px; display: block; color: var(--leaf-ink); }
.subs-stack .sub { padding: 18px 22px; display: grid; grid-template-columns: 36px 1fr; column-gap: 14px; }
.subs-stack .sub-ico { width: 32px; height: 32px; grid-row: span 2; }
.subs-stack .sub h3 { margin: 2px 0 4px; font-size: 1.18rem; }

/* side card */
.side-card { position: relative; background: #fff; border: 1px solid var(--line-sage); border-radius: 24px; padding: 30px 28px; box-shadow: var(--shadow); overflow: hidden; }
.side-card::before { content: ""; position: absolute; width: 110px; height: 110px; right: -62px; top: -70px; border-radius: 50%; border: 1.5px solid var(--sage-200); border-bottom-color: transparent; }
.bg-white .side-card { background: var(--linen); }
.side-k { font: 400 1rem/1.2 var(--caps); letter-spacing: .18em; color: var(--leaf-ink); margin: 0 0 14px; }
.side-phone { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--forest); font: 800 1.55rem/1.1 var(--sans); margin-bottom: 18px; }
.side-phone small { display: block; font: 400 .78rem/1 var(--caps); letter-spacing: .16em; color: var(--muted); margin-bottom: 4px; }
.side-phone .ico { width: 44px; height: 44px; padding: 12px; border-radius: 50%; background: var(--forest); color: #fff; }
.side-phone:hover { color: var(--forest-900); }
.side-phone:hover .ico { background: var(--forest-900); }
.side-list { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 10px; color: var(--muted); font-size: .98rem; }
.side-list li { display: flex; gap: 10px; align-items: center; }
.side-list .ico { color: var(--leaf); }
.side-p { color: var(--muted); }
.trust { margin-bottom: 24px; }
.trust li { font-weight: 600; }
.side-card .btn + .btn { margin-top: 10px; }

/* why */
.why-band .sec-head { margin-bottom: 40px; }
.whys { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.why { height: 100%; display: grid; grid-template-columns: 58px 1fr; column-gap: 18px; row-gap: 4px; align-content: start; background: #fff; border-radius: var(--r); padding: 26px 24px; border: 1px solid var(--line-sage); color: var(--ink); text-decoration: none; }
.why-ico { grid-row: span 3; width: 58px; height: 58px; border-radius: 50%; border: 1.5px solid var(--forest); border-bottom-color: transparent; padding: 14px; color: var(--forest); }
.why-t { font: 400 1.22rem/1.2 var(--display); color: var(--forest); }
.why-x { color: var(--muted); font-size: .97rem; }
.why .more { padding-top: 6px; }
a.why-link:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); color: var(--ink); }
a.why-link { transition: transform .2s, box-shadow .2s; }

/* FAQ */
.faq-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items: start; }
.faq-head { position: sticky; top: 130px; }
.faq-call { display: flex; gap: 10px; align-items: center; color: var(--muted); margin-top: 18px; }
.faq-call .ico { color: var(--leaf-ink); }
.faq-more { margin-top: 16px; }
.faq { border-top: 1px solid var(--line-sage); }
.faq details { border-bottom: 1px solid var(--line-sage); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 20px 4px; font: 700 1.07rem/1.4 var(--sans); color: var(--forest); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--leaf-ink); }
.sign { flex: none; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid currentColor; position: relative; transition: transform .2s; }
.sign::before, .sign::after { content: ""; position: absolute; left: 8px; right: 8px; top: 13px; height: 1.5px; background: currentColor; }
.sign::after { transform: rotate(90deg); transition: transform .2s; }
details[open] .sign::after { transform: rotate(0); }
.answer { padding: 0 4px 22px; color: var(--ink); max-width: 64ch; }
.faq-group { scroll-margin-top: 130px; }
.pills { display: flex; flex-wrap: wrap; gap: 8px; }
.faq-pills { margin-top: 28px; max-width: 980px; }
.pill { display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border-radius: 999px; border: 1px solid var(--line-sage); background: #fff; color: var(--forest); font: 700 .92rem/1 var(--sans); text-decoration: none; cursor: pointer; }
.pill small { font-weight: 600; color: var(--muted); }
.pill:hover, .pill.is-on { background: var(--forest); color: #fff; border-color: var(--forest); }
.pill:hover small, .pill.is-on small { color: var(--leaf-light); }
.hero-solid .pill { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .3); color: #fff; }
.hero-solid .pill:hover { background: #fff; color: var(--forest); }

/* galleries */
.gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.gallery.n2 { grid-template-columns: repeat(2, minmax(0, 340px)); justify-content: center; }
.gallery.n3 { grid-template-columns: repeat(3, minmax(0, 340px)); justify-content: center; }
.gallery.n5 { grid-template-columns: repeat(5, 1fr); }
.gallery.n6 { grid-template-columns: repeat(3, 1fr); }
.g-item { position: relative; display: block; overflow: hidden; border-radius: 14px; background: var(--sage-100); }
.g-item img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .45s; }
.gallery.n6 .g-item img, .gallery.n3 .g-item img, .gallery.n2 .g-item img { aspect-ratio: 4 / 3; }
.g-zoom { position: absolute; right: 10px; bottom: 10px; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--forest); display: grid; place-items: center; opacity: 0; transform: scale(.8); transition: opacity .2s, transform .2s; }
.g-item:hover img { transform: scale(1.06); }
.g-item:hover .g-zoom, .g-item:focus-visible .g-zoom { opacity: 1; transform: none; }
.strip-band .sec-head { margin-bottom: 36px; }
.envira { display: grid; gap: 26px; }
.gal-filter { justify-content: center; }
.masonry { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 230px; grid-auto-flow: dense; gap: 14px; }
.masonry .g-item.tall { grid-row: span 2; }
.masonry .g-item img { aspect-ratio: auto; width: 100%; height: 100%; }
.masonry .g-item.is-hidden { display: none; }
.g-cap { position: absolute; left: 10px; bottom: 10px; padding: 6px 12px; border-radius: 999px; background: rgba(23, 36, 9, .78); color: #fff; font: 400 .8rem/1 var(--caps); letter-spacing: .14em; opacity: 0; transition: opacity .2s; }
.g-item:hover .g-cap { opacity: 1; }
.slot-tag { text-align: center; font-size: .85rem; color: var(--muted); margin: 0; }

/* minis (related services) */
.minis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 270px)); justify-content: center; gap: 18px; }
.mini { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; text-decoration: none; color: var(--forest); box-shadow: var(--shadow); transition: transform .2s, box-shadow .2s; }
.bg-white .mini { background: var(--linen); }
.mini:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); color: var(--forest-900); }
.mini-img { aspect-ratio: 4 / 3; overflow: hidden; display: block; background: var(--sage); }
.mini-img img { width: 100%; height: 100%; object-fit: cover; }
.mini-all .mini-img { display: grid; place-items: center; background: radial-gradient(70% 70% at 50% 40%, #7B8C69, var(--sage-700)); }
.mini-all .mini-img img { width: 52%; height: auto; object-fit: contain; }
.mini-t { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 16px; font: 400 1.08rem/1.25 var(--display); }
.mini-t .ico { color: var(--leaf-ink); transition: transform .18s; }
.mini:hover .mini-t .ico { transform: translateX(4px); }
.minis-text { grid-template-columns: repeat(4, 1fr); }
.mini-text .mini-t { padding: 20px; }

/* group (hub) sections */
.grp { display: grid; grid-template-columns: 270px 1fr; gap: 44px; align-items: start; }
.grp-side { position: sticky; top: 130px; }
.grp-side .frame { margin-top: 22px; max-width: 250px; }
.grp-cards .cards { grid-template-columns: repeat(3, 1fr); gap: 18px; }
.grp-cards .card-body { padding: 18px 18px 20px; }
.grp-cards .card-title { font-size: 1.2rem; }
.grp-cards .card-text { font-size: .93rem; }

/* closing band */
.closing { background: radial-gradient(90% 140% at 0% 100%, var(--forest-700) 0%, var(--forest) 45%, var(--forest-900) 100%); color: #E3EAD8; padding: 92px 0; }
.closing h2 { color: #fff; }
.closing a:not(.btn) { color: #fff; text-decoration-color: var(--leaf-light); }
.closing a:not(.btn):hover { color: var(--leaf-light); }
.closing-arc { position: absolute; left: 50%; top: -620px; width: 1300px; height: 700px; transform: translateX(-50%); border-radius: 50%; border-bottom: 1.5px solid rgba(207, 227, 168, .35); pointer-events: none; }
.closing-in { position: relative; display: grid; grid-template-columns: 1.4fr .9fr; gap: 64px; align-items: center; }
.closing-copy p { font-size: 1.08rem; }
.closing-cta { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16); border-radius: 24px; padding: 30px; }
.closing-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 18px 0 0; font-size: .92rem; color: #C9D4BA; justify-content: center; }
.closing-meta .ico { color: var(--leaf-light); }

/* slots + forms */
.slot { border: 2px dashed var(--sage-200); border-radius: var(--r); background: repeating-linear-gradient(135deg, #fff 0 14px, var(--linen) 14px 28px); padding: 34px; text-align: center; display: grid; place-content: center; justify-items: center; gap: 4px; }
.slot-ico { width: 40px; height: 40px; color: var(--sage); margin-bottom: 6px; }
.slot-kind { font: 400 .82rem/1.3 var(--caps); letter-spacing: .14em; color: var(--muted); margin: 0; }
.slot-title { font: 400 1.4rem/1.2 var(--display); color: var(--forest); margin: 0; }
.slot-note { color: var(--muted); margin: 0; font-size: .95rem; }
.form-band { padding-top: 64px; }
.form-card { background: #fff; border: 1px solid var(--line-sage); border-radius: 24px; padding: 30px; box-shadow: var(--shadow); }
.form-card .slot-head { display: grid; gap: 4px; padding: 0 0 22px; margin-bottom: 24px; border-bottom: 1px dashed var(--sage-200); }
.form-card .slot-ico { width: 32px; height: 32px; }
.ff-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.ff { display: grid; gap: 6px; }
.ff-full, .ff-tall, .ff-select, .ff-radio, .ff-upload { grid-column: 1 / -1; }
.ff-l { font-weight: 700; font-size: .92rem; color: var(--charcoal); }
.ff-box { display: flex; align-items: center; justify-content: space-between; gap: 10px; height: 50px; border: 1.5px solid var(--line-sage); border-radius: 12px; background: var(--linen); padding: 0 14px; color: var(--muted); font-size: .95rem; }
.ff-tall .ff-box { height: 130px; }
.ff-upload { border-style: dashed; justify-content: center; height: 70px; }
.ff-upload .ico { color: var(--sage); }
.ff-radios { display: flex; gap: 22px; }
.ff-radio { display: inline-flex; gap: 8px; align-items: center; color: var(--charcoal); }
.ff-radio i { width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid var(--sage); background: #fff; }
.ff-btn { grid-column: 1 / -1; justify-self: start; display: inline-flex; padding: 14px 30px; border-radius: 999px; background: var(--forest); color: #fff; font-weight: 800; }
.contact-grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: 40px; align-items: start; }
.nap-card { background: var(--forest); color: #E3EAD8; border-radius: 24px; padding: 32px 30px; position: relative; overflow: hidden; }
.nap-card::before { content: ""; position: absolute; width: 120px; height: 120px; right: -66px; top: -78px; border-radius: 50%; border: 1.5px solid rgba(207, 227, 168, .35); border-bottom-color: transparent; }
.nap-card .side-k { color: var(--leaf-light); }
.nap-line { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 14px; }
.nap-line .ico { margin-top: .3em; color: var(--leaf-light); }
.nap-card a { color: #fff; }
.nap-card a:hover { color: var(--leaf-light); }
.nap-k { font-size: .9em; }
.form-narrow { max-width: 820px; margin: 0 auto; }
.form-after { display: flex; gap: 12px; align-items: center; justify-content: center; margin-top: 22px; color: var(--muted); }
.fa-ico { width: 1.3em; height: 1.3em; color: var(--leaf-ink); }
.thanks-band { padding: 56px 0; }
.thanks-card { display: grid; place-items: center; }
.thanks-card img { width: 180px; opacity: .9; }

/* social */
.social { display: flex; gap: 8px; flex-wrap: nowrap; }
.social a { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: #fff; border: 1px solid rgba(255, 255, 255, .25); transition: background .18s, color .18s, border-color .18s; }
.social a:hover { background: var(--leaf-light); color: var(--forest-950); border-color: var(--leaf-light); }
.social .ico { width: 15px; height: 15px; }
.on-dark { margin-top: 20px; }

/* service-area map */
.area-map { margin: 0; background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 14px; box-shadow: var(--shadow); }
.area-map svg { width: 100%; height: auto; display: block; border-radius: 16px; }
.am-bg { fill: var(--linen); }
.am-ring { fill: none; stroke: var(--forest); stroke-width: 1.2; stroke-dasharray: 3 6; opacity: .45; }
.am-465 { fill: rgba(127, 166, 70, .08); stroke: var(--sage); stroke-width: 2; opacity: .8; }
.am-road { stroke: var(--sage-200); stroke-width: 3; stroke-linecap: round; }
.am-mi { font: 600 11px var(--sans); fill: var(--sage); }
.am-main { font: 400 24px var(--display); fill: var(--forest); }
.am-area { font: 700 15px var(--sans); fill: var(--forest); paint-order: stroke; stroke: var(--linen); stroke-width: 4px; }
.am-also { font: italic 600 13px var(--sans); fill: var(--muted); paint-order: stroke; stroke: var(--linen); stroke-width: 4px; }
.am-n text { font: 400 16px var(--caps); fill: var(--forest); }
.am-n path { fill: var(--forest); }
.area-map figcaption { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 12px 8px 4px; font-size: .85rem; color: var(--muted); }
.am-key { font-weight: 700; color: var(--forest); }
.am-key-also { font-style: italic; color: var(--muted); }
.map-split { align-items: center; }

/* blog */
.blog-grid { display: grid; grid-template-columns: 1fr 330px; gap: 44px; align-items: start; }
.blog-side { display: grid; gap: 22px; position: sticky; top: 130px; }
.side-box { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 24px; }
.side-t { display: block; font: 400 1rem/1.2 var(--caps); letter-spacing: .14em; color: var(--forest); margin: 0 0 10px; }
.search-row { display: flex; gap: 8px; margin-bottom: 20px; }
.search-field, .cat-drop { width: 100%; min-height: 48px; border: 1.5px solid var(--line-sage); border-radius: 12px; padding: 0 14px; font: 500 1rem var(--sans); background: var(--linen); color: var(--ink); }
.search-submit { flex: none; width: 48px; border-radius: 12px; border: 0; background: var(--forest); color: #fff; cursor: pointer; display: grid; place-items: center; }
.search-submit:hover { background: var(--forest-900); }
.post-card.is-hidden { display: none; }
.post-grid { display: grid; grid-template-columns: 1fr 320px; gap: 48px; align-items: start; }
.post-side { position: sticky; top: 130px; }
.post { background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 18px 18px 40px; }
.post-hero { margin: 0 0 30px; }
.post-hero img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 16px; }
.rich { max-width: 700px; margin: 0 auto; padding: 0 12px; }
.rich h2 { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); margin-top: 1.4em; }
.rich h3 { margin-top: 1.2em; }
.rich .ticks { margin: 0 0 1.2em; }
.post-fig { margin: 30px 0; }
.post-fig img { width: 100%; border-radius: 16px; aspect-ratio: 4 / 3; object-fit: cover; }

/* footer */
.site-footer { position: relative; background: var(--night); color: var(--on-dark); padding: 76px 0 28px; overflow: hidden; font-size: .97rem; }
.f-arc { position: absolute; width: 760px; height: 760px; right: -260px; top: -380px; border-radius: 50%; border: 1.5px solid rgba(207, 227, 168, .14); border-top-color: transparent; pointer-events: none; }
.f-grid { position: relative; display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 56px; }
.f-logo { display: inline-block; border-radius: 8px; }
.f-logo img { width: 190px; height: auto; }
.f-logo:hover img { opacity: .85; }
.f-social { margin: 22px 0; }
.f-title { font: 400 1.05rem/1.2 var(--caps); letter-spacing: .2em; color: #fff; margin: 6px 0 18px; display: flex; align-items: center; gap: 12px; }
.f-title::before { content: ""; width: 24px; height: 1.5px; background: var(--leaf-light); opacity: .8; }
.f-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.site-footer a { color: var(--on-dark); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; text-decoration-color: var(--leaf-light); }
.f-nap .nap-line { margin-bottom: 10px; }
.f-nap a { color: #fff; }
.f-bottom { position: relative; margin-top: 56px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .1); text-align: center; display: grid; gap: 10px; justify-items: center; }
.f-legal { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 20px; font-size: .9rem; }
.f-copy { margin: 0; font-size: .9rem; color: #AEB8A3; }
.twg-credit { display: flex; align-items: center; gap: 12px; margin: 4px 0 0; font-size: .88rem; color: #AEB8A3; }
.twg-credit span a { text-decoration: underline; text-underline-offset: 2px; }
.twg-logo img { width: 54px; height: auto; }
.twg-logo:hover img { opacity: .8; }

/* lightbox */
.lightbox { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.lightbox::backdrop { background: rgba(15, 20, 10, .92); }
.lightbox figure { margin: 0; height: 100%; display: grid; place-items: center; padding: 60px 70px; }
.lightbox figure img { max-height: calc(100vh - 120px); width: auto; border-radius: 10px; }
.lightbox button { position: fixed; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: var(--forest); display: grid; place-items: center; cursor: pointer; }
.lightbox button:hover { background: var(--leaf-light); }
.lb-close { top: 16px; right: 16px; }
.lb-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 16px; top: 50%; transform: translateY(-50%); }

/* ---------- responsive ---------- */
@media (max-width: 1180px) {
  .cards.acards { grid-template-columns: repeat(4, 1fr); }
  .grp { grid-template-columns: 240px 1fr; gap: 32px; }
}
@media (max-width: 1023px) {
  .band { padding: 72px 0; }
  .hero-grid { gap: 32px; }
  .intro-grid, .split, .split-head, .faq-grid, .closing-in, .contact-grid, .blog-grid, .post-grid { grid-template-columns: 1fr; gap: 40px; }
  .split.flip > .split-media, .split > .split-media { order: 0; }
  .split-media { max-width: 620px; }
  .faq-head, .grp-side, .blog-side, .post-side { position: static; }
  .cards.gcards, .cards.n4 { grid-template-columns: repeat(2, 1fr); }
  .cards.acards { grid-template-columns: repeat(3, 1fr); }
  .feats, .feats.n5 { grid-template-columns: repeat(2, 1fr); }
  .feats.n3, .feats.n6 { grid-template-columns: repeat(2, 1fr); }
  .whys { grid-template-columns: repeat(2, 1fr); }
  .grp { grid-template-columns: 1fr; gap: 28px; }
  .grp-side .frame { display: none; }
  .grp-cards .cards { grid-template-columns: repeat(2, 1fr); }
  .gallery, .gallery.n5 { grid-template-columns: repeat(3, 1fr); }
  .f-grid { grid-template-columns: 1fr 1fr; }
  .f-brand { grid-column: 1 / -1; }
  .minis-text { grid-template-columns: repeat(2, 1fr); }
  .intro-side { max-width: 520px; }
}
@media (max-width: 767px) {
  body { font-size: 1rem; }
  .band { padding: 58px 0; }
  .ribbon-in { justify-content: center; flex-wrap: wrap; gap: 2px 14px; padding-top: 6px; padding-bottom: 6px; }
  .ribbon .rb-item:first-child { font-size: .8rem; }
  .hdr-row { min-height: 112px; gap: 12px; }
  .logo img { height: 99px; }
  .is-stuck .hdr-row { min-height: 84px; }
  .is-stuck .logo img { height: 72px; }
  .site-header.is-stuck { margin-bottom: 28px; }   /* 112-84 (r5: mobile callbar removed) */
  .hero-photo { padding: 30px 0 70px; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-media { order: 2; padding: 10px 6px 18px; }
  .hero-circle, .hero-home .hero-circle { width: min(82vw, 340px); }
  .hero-ring, .hero-home .hero-ring { width: min(calc(82vw + 36px), 376px); }
  .hero-solid .hero-in { padding-top: 40px; padding-bottom: 52px; }
  .solid-ring { width: 340px; height: 340px; right: -170px; }
  .cards, .cards.n2, .cards.gcards, .cards.n4, .grp-cards .cards { grid-template-columns: 1fr; }
  .cards.acards { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .acards .card-text { display: none; }
  .feats, .feats.n2, .feats.n3, .feats.n5, .feats.n6, .subs, .subs.n3, .whys { grid-template-columns: 1fr; }
  .gallery, .gallery.n5, .gallery.n6, .gallery.n3, .gallery.n2 { grid-template-columns: repeat(2, 1fr); }
  .masonry { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 140px; gap: 10px; }
  .f-grid { grid-template-columns: 1fr; gap: 36px; }
  .ff-grid { grid-template-columns: 1fr; }
  .ff-half { grid-column: 1 / -1; }
  .form-card { padding: 22px 18px; }
  .post { padding: 10px 10px 28px; }
  .rich { padding: 0 6px; }
  .minis-text { grid-template-columns: 1fr; }
  .closing-cta { padding: 22px; }
  .pb-in { gap: 12px; }
  .pb-label { font-size: 1.25rem; }
  .why { grid-template-columns: 48px 1fr; padding: 22px 18px; }
  .why-ico { width: 48px; height: 48px; padding: 11px; }
  .split, .intro-grid, .split-head, .faq-grid, .closing-in { gap: 30px; }
  h1 { font-size: clamp(2.05rem, 1.5rem + 3vw, 2.6rem); }
  .hero-home .hero-copy h1 { font-size: clamp(2.2rem, 1.6rem + 3vw, 2.8rem); }
  .btn-row .btn { flex: 1 1 100%; }
  .side-phone { font-size: 1.35rem; }
  .panel-label { font-size: .9rem; letter-spacing: .14em; }
}
@media (max-width: 360px) {
  .ribbon .rb-item:first-child { display: none; }
  .cards.acards { grid-template-columns: 1fr; }
  .card-body { padding: 18px; }
  .lightbox figure { padding: 60px 8px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
.am-dot-area { fill: var(--forest); stroke: var(--linen); stroke-width: 2; }
.am-dot-also { fill: var(--linen); stroke: var(--sage); stroke-width: 1.6; }
@media (max-width: 767px) {
  .gallery.n3 > .g-item:first-child { grid-column: 1 / -1; }   /* 3 photos on a 2-col grid: lead photo full width, no orphan */
  .minis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .minis .mini-t { font-size: .95rem; padding: 12px; }
}

/* ---- Stage 14 round 1 (Chad 10-22) ---- */
/* #14: small "Text Us" sms: button beside the Call or Text buttons (hero + closing band, both dark) */
.btn-sms { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 40px; padding: 8px 16px; border-radius: 999px;
  border: 1.5px solid rgba(255, 255, 255, .45); background: rgba(255, 255, 255, .06); color: #fff; font: 700 .9rem/1 var(--sans); letter-spacing: .02em;
  text-decoration: none; white-space: nowrap; align-self: center; transition: background .18s, color .18s, border-color .18s; }
.btn-sms .ico { width: 1.05em; height: 1.05em; color: var(--leaf-light); }
.btn-sms:hover { background: #fff; color: var(--forest); border-color: #fff; text-decoration: none; }
.btn-sms:hover .ico { color: var(--leaf-ink); }
.btn-col .btn-sms { justify-self: center; }
/* #22: FAQ page = sticky topic list + one topic at a time (the Innovative pattern) */
.faq-tabs-s { padding-top: 72px; }
.faq-tabs { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 56px; align-items: start; }
/* r2 (Chad 10-26): no inner scroll bar on the topic list. The full list (22 topics) stays sticky only on screens tall enough to show all of it; shorter screens scroll it with the page (a tab click scrolls back up to the topic box). */
.faq-side { position: static; }
@media (min-width: 1024px) and (min-height: 960px) { .faq-side { position: sticky; top: 120px; } }
.faq-nav { display: flex; flex-direction: column; border-left: 3px solid var(--line-sage); }
.faq-nav-h { font: 700 .8rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--leaf-ink); margin: 0 0 8px; padding-left: 18px; }
.faq-tab { display: block; padding: 6px 12px 6px 18px; margin-left: -3px; border-left: 3px solid transparent; color: var(--ink); text-decoration: none; font: 600 .98rem/1.3 var(--sans); }
.faq-tab:hover { color: var(--leaf-ink); }
.faq-tab.is-on { border-left-color: var(--leaf); color: var(--forest); font-weight: 800; background: var(--linen); }
.faq-side .faq-call { margin-top: 22px; padding-left: 21px; font-size: .95rem; }
.faq-side .faq-call .ico { flex: none; width: 16px; height: 16px; }
.faq-side .faq-call span { min-width: 0; }
.faq-pick { display: none; }
.faq-pick label { display: block; font: 700 .8rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--leaf-ink); margin-bottom: 8px; }
.faq-pick select { width: 100%; min-height: 50px; padding: 10px 44px 10px 16px; border: 1.5px solid var(--line-sage); border-radius: var(--r-sm); background: #fff; color: var(--forest);
  font: 700 1rem/1.2 var(--sans); appearance: none; -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--forest) 50%), linear-gradient(135deg, var(--forest) 50%, transparent 50%);
  background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%; background-size: 6px 6px; background-repeat: no-repeat; }
.faq-panel { scroll-margin-top: 130px; }
.faq-panel + .faq-panel { margin-top: 64px; }
.faq-panel h2 { margin-bottom: 24px; }
.faq-panel .faq-more { margin-top: 22px; }
.faq-tabs-s .faq { border-top: 0; display: grid; gap: 10px; }
.faq-tabs-s .faq details { background: var(--linen); border: 1px solid var(--linen-2); border-radius: var(--r-sm); }
.faq-tabs-s .faq summary { padding: 18px 20px; }
.faq-tabs-s .faq .answer { padding: 0 20px 18px; }
.faq-tabs-s .faq details[open] summary { border-bottom: 1px solid var(--line); margin-bottom: 14px; }
.js-tabs .faq-panel { display: none; }
.js-tabs .faq-panel.is-on { display: block; margin-top: 0; }
@media (max-width: 1023px) {
  .faq-tabs { grid-template-columns: 1fr; gap: 28px; }
  .faq-side { position: static; }
  .faq-nav { display: none; }
  .faq-side .faq-call { display: none; }
  .js-tabs .faq-pick { display: block; max-width: 520px; }
}
@media (max-width: 767px) {
  .faq-tabs-s { padding-top: 48px; }
  .faq-tabs-s .faq summary { padding: 16px; }
  .faq-tabs-s .faq .answer { padding: 0 16px 16px; }
  .btn-row .btn-sms { flex: 0 0 auto; margin: 2px auto 0; }
}

/* ---- Round 2 (Chad 10-26) ---- */
/* #1: desktop CTAs = Free Quote + "Call or Text (317) 374-0258" (no Text Us); mobile = Free Quote + "Call Us" + "Text Us" side by side */
.btn-tel .lbl-m { display: none; }
.btn-sms { display: none; }
@media (max-width: 767px) {
  .btn-tel .lbl-d { display: none; }
  .btn-tel .lbl-m { display: inline; }
  .btn-row .btn-tel, .btn-row .btn-sms { flex: 1 1 calc(50% - 6px); min-width: 0; }
  .btn-row .btn-sms, .btn-col .btn-sms { display: inline-flex; min-height: 50px; margin: 0; padding: 12px 18px; font-size: 1rem; border-width: 2px; border-color: rgba(255, 255, 255, .7); background: transparent; justify-self: stretch; }
  .btn-col { grid-template-columns: 1fr 1fr; }
  .btn-col .btn-light { grid-column: 1 / -1; }
  .btn-col .btn-tel, .btn-col .btn-sms { padding-left: 12px; padding-right: 12px; }
}
/* #3: full-length water feature video with player controls (portrait) */
.video-card.portrait-full { max-width: 360px; }

/* ===== theme extra (WordPress-only) ===== */
/* WP admin bar (logged-in editors): keep the sticky header below it */
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
@media (max-width:600px){.admin-bar .site-header{top:0}}
/* fallback templates (page.php / index.php): Privacy Policy, Termageddon pages, pages added in wp-admin */
.aol-prose{max-width:860px}
.aol-prose img{max-width:100%;height:auto}
.aol-prose h2{margin-top:1.4em}
/* blog: pager, cards without a theme photo */
.pager{display:flex;gap:8px;justify-content:center;margin-top:28px}
.pager .page-numbers{display:inline-grid;place-items:center;min-width:44px;height:44px;border-radius:999px;border:1px solid var(--line-sage);background:#fff;color:var(--forest);text-decoration:none}
.pager .page-numbers.current,.pager a.page-numbers:hover{background:var(--forest);color:#fff}
.card-img-panel{display:grid;place-items:center;background:var(--sage-50)}
.card-img-panel img{width:46%;height:auto;object-fit:contain}
/* reviews widget container */
.aol-reviews{min-height:120px}
/* Gravity Forms inside the Stage 7 form card (Orbital theme vars + pinned button: GF per-form vars win otherwise) */
.form-card-wp .gform_wrapper.gform-theme{--gf-color-primary:#304B16;--gf-color-primary-rgb:48,75,22;--gf-color-primary-contrast:#fff;--gf-color-primary-darker:#1F330D;--gf-ctrl-border-color:#CBD5BB;--gf-ctrl-label-color-primary:#2A3025;--gf-ctrl-btn-bg-color-primary:#304B16;--gf-ctrl-btn-color-primary:#fff;--gf-ctrl-font-size:16px;--gf-ctrl-size:48px;--gf-ctrl-radius:12px}
.form-card-wp .gform_wrapper.gform-theme .gfield_label,.form-card-wp .gform_wrapper.gform-theme .gform-field-label--type-legend{color:var(--ink)!important;font:700 .95rem/1.3 var(--sans)!important}
.form-card-wp .gform_wrapper.gform-theme .gform-field-label--type-inline{font:400 1rem/1.4 var(--sans)!important;color:var(--ink)!important}
.form-card-wp .gform_wrapper.gform-theme .gfield_required{color:#9B2C1F!important}
.form-card-wp .gform_wrapper.gform-theme input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),.form-card-wp .gform_wrapper.gform-theme select,.form-card-wp .gform_wrapper.gform-theme textarea{background-color:var(--linen)!important;border:1px solid var(--sage-200)!important;border-radius:12px!important;color:var(--ink)!important}
.form-card-wp .gform_wrapper.gform-theme input:focus,.form-card-wp .gform_wrapper.gform-theme select:focus,.form-card-wp .gform_wrapper.gform-theme textarea:focus{outline:3px solid var(--leaf)!important;outline-offset:1px!important;border-color:var(--forest)!important;box-shadow:none!important}
.form-card-wp .gform_wrapper.gform-theme .gform_footer button,.form-card-wp .gform_wrapper.gform-theme .gform_footer input[type=submit]{background:var(--forest)!important;color:#fff!important;border:0!important;border-radius:999px!important;font:700 1.05rem/1 var(--sans)!important;padding:17px 32px!important;min-height:54px!important;cursor:pointer;box-shadow:0 10px 22px -12px rgba(48,75,22,.8)!important}
.form-card-wp .gform_wrapper.gform-theme .gform_footer button:hover,.form-card-wp .gform_wrapper.gform-theme .gform_footer input[type=submit]:hover,.form-card-wp .gform_wrapper.gform-theme .gform_footer input[type=submit]:focus-visible{background:var(--forest-900)!important;color:#fff!important}
.form-card-wp .gform_wrapper.gform-theme .gform_drop_area{background:var(--sage-50)!important;border:2px dashed var(--sage-200)!important;border-radius:12px!important}
.aol-form-missing{font-size:1.1rem;margin:0}
.gform_anchor,[id^="gf_"]{scroll-margin-top:200px}
