/* OLIVE CONCRETE / SEO V3 — brand continuity, local authority and accessible navigation. */
:root {
  --ink: #111713;
  --ink-soft: #19221c;
  --ink-raised: #243228;
  --paper: #f4f0e6;
  --paper-soft: #d9ddd1;
  --muted: #a7b3a4;
  --line: rgba(236,239,221,.15);
  --line-strong: rgba(236,239,221,.28);
  --gold: #c9ac64;
  --gold-bright: #ecd286;
  --gold-dark: #92743b;
  --olive: #65764e;
  --olive-light: #a7b992;
  --olive-dark: #324531;
  --stone: #2c3631;
  --cement: #a9afa5;
}
html {background: var(--ink)}
body { background: radial-gradient(circle at 82% 5%, rgba(101,118,78,.14),transparent 30rem),var(--ink); }
::selection {background:var(--olive-light);color:#102117}
.site-header.is-scrolled, .info-header {background:rgba(16,23,19,.94);}
.site-header.is-scrolled {border-bottom-color:rgba(150,168,123,.24)}
.hero {background:radial-gradient(ellipse at 86% 40%,rgba(98,119,74,.10),transparent 38%),transparent;}
.hero::after {border-color:rgba(163,178,137,.22)}
.hero-seo-heading {font-size:.75rem;font-weight:800;letter-spacing:.16em;color:var(--olive-light);}
.hero-title {margin-top:clamp(2rem,5vh,4rem)}
.hero .title-outline {-webkit-text-stroke:1px var(--gold-bright)}
.header-cta,.phone-pill {border-color:rgba(201,172,100,.5)}
.button-gold,.gold-button {background:#d8ba72;color:#141a13}
.button-gold:hover,.button-gold:focus-visible {background:#ebce8a}
.hero-meta span:not(:last-child)::after {color:var(--olive-light)}
/* Services navigation — usable via click, keyboard and touch, with no new JS. */
.services-menu {position:relative;font-size:inherit;letter-spacing:inherit;flex-shrink:0;}
.services-menu summary {display:flex;align-items:center;gap:.45rem;list-style:none;cursor:pointer;user-select:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:uppercase;font-weight:800;}
.services-menu summary::-webkit-details-marker {display:none}
.services-menu summary::marker {content:""}
.services-menu summary:hover,.services-menu[open] summary {color:var(--gold-bright)}
.services-menu summary:focus-visible,.info-mobile-menu summary:focus-visible {outline:2px solid var(--gold-bright);outline-offset:6px;border-radius:4px}
.menu-chevron {color:var(--gold);font-size:1rem;transition:transform .2s ease}
.services-menu[open] .menu-chevron{transform:rotate(180deg)}
.services-panel {position:absolute;left:-1.2rem;top:calc(100% + 1.55rem);width:min(25rem,90vw);padding:.55rem;background:#1b271f;border:1px solid rgba(181,201,150,.24);border-top:2px solid var(--gold);box-shadow:0 24px 75px rgba(0,0,0,.50);border-radius:0 0 12px 12px;z-index:80;max-height:min(78vh,580px);overflow-y:auto;}
.services-panel::before {content:"";position:absolute;top:-1.7rem;height:1.8rem;left:0;right:0}
.services-panel a {display:block;padding:.78rem .9rem;border-bottom:1px solid rgba(243,240,229,.095);text-transform:none!important;letter-spacing:0!important;line-height:1.25;color:var(--paper)!important;}
.services-panel a::after{display:none!important}
.services-panel a:hover,.services-panel a:focus-visible {background:rgba(104,127,78,.22);border-radius:6px;}
.services-panel strong{display:block;font-size:.94rem;font-weight:650}
.services-panel small{display:block;color:#bbc5ae;font-size:.72rem;font-weight:400;letter-spacing:.01em;margin-top:.25rem;line-height:1.4}
.services-panel .menu-all{font-size:.75rem;font-weight:800;color:var(--gold-bright)!important;letter-spacing:.09em!important;text-transform:uppercase!important;border-bottom:0}
/* Navigation links / mobile layers. */
.mobile-nav {background:#101713}
.mobile-menu-label{color:var(--olive-light);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
@media (max-width:1050px){
 .mobile-nav {justify-content:flex-start;gap:.45rem;padding-top:clamp(6rem,13vh,8rem);overflow-y:auto;}
 .mobile-nav a {font-size:clamp(1.25rem,4.2vw,1.8rem);padding:.5rem 0 .6rem;}
 .mobile-menu-label{margin-top:.85rem}
}
@media (max-width:720px){
 .hero-seo-heading{max-width:26rem;font-size:.68rem;letter-spacing:.11em;line-height:1.5}
 .mobile-nav{padding-top:6.2rem;padding-bottom:2rem;gap:.34rem}
 .mobile-nav a{font-size:clamp(1.14rem,5.1vw,1.5rem);padding:.4rem 0 .45rem}
}
/* Homepage: olive-toned service cards and balanced ivory signature section. */
.service-card{background:linear-gradient(160deg,rgba(31,46,36,.95),rgba(15,23,18,.98))}
.service-card:hover{background:linear-gradient(160deg,#2b3b2e,#1b2d22)}
.service-card::before{border-color:rgba(173,191,142,.28)}
.service-card p{color:#c1c9ba}
.service-card .service-arrow{border-color:rgba(173,191,142,.55)}
.services .section-label span:first-child, .section-label span:first-child{color:var(--olive-light)}
.local-feature{padding:0 var(--gutter) clamp(6rem,11vw,11rem);}
.local-feature-grid{display:grid;grid-template-columns:minmax(0,1.24fr) minmax(0,.76fr);gap:clamp(3rem,7vw,8rem);padding:clamp(2.2rem,6vw,6rem);width:min(100%,var(--max-width));margin:auto;border-radius:1.2rem;background:#ecede4;color:#213329;box-shadow:0 30px 110px rgba(0,0,0,.19);position:relative;overflow:hidden;}
.local-feature-grid::before{content:"";width:32rem;height:32rem;position:absolute;border:1px solid rgba(84,108,75,.18);border-radius:50%;right:-12rem;top:-19rem;pointer-events:none}
.local-feature-copy,.local-feature-links{position:relative;z-index:1}
.feature-kicker{display:flex;align-items:center;gap:.65rem;margin:0 0 2.2rem;color:#566d46;font-size:.72rem;font-weight:800;letter-spacing:.17em}
.brand-spark{display:inline-block;width:2.2rem;height:1px;background:#728c5a}
.local-feature h2{max-width:13ch;font-size:clamp(2.5rem,5vw,5.25rem);line-height:.97;letter-spacing:-.06em;font-weight:600;margin:0 0 1.8rem}
.local-feature h2 em{color:#627950;font-family:Georgia,serif;font-weight:400}
.local-feature-copy > p:not(.feature-kicker){max-width:43rem;line-height:1.85;font-size:1.075rem;color:#445248}
.feature-cta {display:inline-flex;gap:2rem;align-items:center;margin-top:1.4rem;padding-bottom:.7rem;border-bottom:2px solid #b29252;font-weight:800;text-transform:uppercase;font-size:.74rem;letter-spacing:.12em}
.local-feature-links{display:flex;flex-direction:column;justify-content:center;border-top:1px solid rgba(57,78,56,.24)}
.local-feature-links a{display:grid;grid-template-columns:2.5rem 1fr 1.5rem;align-items:center;gap:.75rem;padding:1.65rem .2rem;border-bottom:1px solid rgba(57,78,56,.24);transition:padding .2s ease,color .2s ease}
.local-feature-links a:hover,.local-feature-links a:focus-visible{padding-left:.8rem;color:#667f4b}
.local-feature-links span{font-size:.7rem;letter-spacing:.1em;color:#7e916f;font-weight:700}
.local-feature-links strong{font-size:clamp(1.08rem,1.8vw,1.5rem);font-weight:580;letter-spacing:-.035em}
.local-feature-links b{font-weight:500;color:#a88b52}
.standards-sticky{background:#f3f0e7;color:#233229}
.standards-title-wrap .eyebrow,.standard-item span{color:#60764b}
.standard-item p{color:#536054}
.estimate{background:linear-gradient(135deg,#d3b66c,#c4a75e)}
.estimate-copy .eyebrow{color:#30432c}
.estimate-copy h2 em{color:#344e31}
/* Subpages keep their identity while embracing Olive green. */
.info-header {border-bottom:1px solid rgba(155,178,141,.19)}
.page-hero{background:radial-gradient(ellipse at 10% 18%,rgba(93,113,71,.12),transparent 48%)}
.hero-figure{border-color:rgba(143,163,120,.25)}
.eyebrow,.section-number {color:var(--olive-light)}
.callout{background:#64764f;color:#fff9ee}
.callout h2 em{font-family:Georgia,serif;color:#edd18f;font-weight:400}
.callout .gold-button{background:#efd288;border-color:#efd288;color:#1b271d}
.callout .gold-button:hover,.callout .gold-button:focus-visible{background:#fff1c3;color:#1b271d}
.finish-card{background:#1a251d;border:1px solid rgba(130,157,118,.13)}
.finish-card div{padding:clamp(1.35rem,2.6vw,2rem)}
.finish-card h3{color:#f0eee1}
.detail-card{background:#1a241d}
.info-footer{border-top:1px solid rgba(125,158,108,.23)}
.info-footer a:hover{color:var(--gold-bright)}
.info-mobile-menu{display:none}
.inline-service-link,.related-services a,.finish-card a{color:#e4c980;text-decoration:underline;text-underline-offset:.25em}
.stamped-faq{background:#1a251e}
.stamped-faq h2{font-size:clamp(2.7rem,5.5vw,5.5rem);font-weight:500;letter-spacing:-.05em}
.stamped-faq-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin-top:3rem}
.stamped-faq-grid article{border-top:1px solid rgba(197,212,179,.25);padding-top:1.8rem}
.stamped-faq-grid h3{font-size:1.3rem;line-height:1.3}
.stamped-faq-grid p{color:var(--paper-soft);line-height:1.65}
@media(max-width:1050px){.local-feature-grid{grid-template-columns:1fr;gap:2rem}.local-feature h2{max-width:18ch}}
@media(max-width:900px){
 .info-header{grid-template-columns:minmax(0,1fr) auto auto;gap:.65rem}
 .info-mobile-menu{display:block;position:relative;z-index:20}
 .info-mobile-menu summary{display:grid;place-items:center;width:2.8rem;height:2.8rem;border:1px solid rgba(218,212,169,.45);border-radius:50%;cursor:pointer;list-style:none;position:relative}
 .info-mobile-menu summary::-webkit-details-marker{display:none}
 .info-mobile-menu summary span{position:absolute;width:1rem;height:1px;background:var(--paper)}
 .info-mobile-menu summary span:first-child{transform:translateY(-.2rem)}
 .info-mobile-menu summary span:last-child{transform:translateY(.2rem)}
 .info-mobile-menu nav{position:absolute;right:-.2rem;top:calc(100% + 1.2rem);width:min(21rem,calc(100vw - 2.5rem));padding:.7rem;background:#1a281d;border:1px solid rgba(199,214,177,.26);border-top:2px solid var(--gold);box-shadow:0 15px 70px rgba(0,0,0,.6);max-height:calc(100vh - 6rem);overflow-y:auto}
 .info-mobile-menu nav a{display:block;padding:.72rem;font-size:.91rem;line-height:1.4;border-bottom:1px solid rgba(255,255,255,.1);color:#f3f1e7}
 .info-mobile-menu nav a:focus-visible,.info-mobile-menu nav a:hover{background:#314535;color:#f6d789}
 .stamped-faq-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
 .local-feature{padding:0 1rem 5rem}
 .local-feature-grid{padding:2rem 1.5rem;border-radius:.65rem}
 .local-feature h2{font-size:clamp(2.5rem,10vw,3.7rem)}
 .local-feature-links a{padding:1.2rem .1rem}
 .info-header .phone-pill{padding:.67rem .85rem;font-size:.72rem}
 .info-header .phone-pill span{display:none}
 .info-header .phone-pill:after{content:'Call ↗';white-space:nowrap}
 .info-brand{width:6.5rem}
}
