/* Marietta Retaining Walls: tokens */
:root{
  --s0:0;--s1:2px;--s2:4px;--s3:8px;--s4:12px;--s5:16px;--s6:24px;--s7:32px;--s8:40px;--s9:48px;--s10:64px;--s11:80px;--s12:96px;
  --clay:#A63D1A;--clay-deep:#7A2B10;--clay-soft:#E9C9B6;
  --ink:#191D19;--moss:#26392E;--moss-2:#3B5444;
  --bone:#F4EEE3;--sand:#E7DCC8;--stone:#6E685D;--line:#CFC3AD;
  --white:#FFFDF9;
  --r1:4px;--r2:8px;--r3:12px;--r4:16px;
  --shadow:0 1px 2px rgba(25,29,25,.08),0 8px 24px rgba(25,29,25,.08);
  --ease-out:cubic-bezier(0.16,1,0.3,1);--ease-soft:cubic-bezier(0.33,1,0.68,1);
  --display:"Archivo",system-ui,sans-serif;
  --body:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --max:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--s10)}
body{margin:0;background:var(--bone);color:var(--ink);font:16px/24px var(--body);text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%;height:auto}
a{color:var(--clay-deep);text-underline-offset:3px}
a:hover{color:var(--clay)}
:focus-visible{outline:3px solid var(--clay);outline-offset:3px;border-radius:var(--r1)}
h1,h2,h3{font-family:var(--display);font-stretch:78%;font-weight:800;letter-spacing:0;word-spacing:.06em;text-wrap:balance;margin:0}
h1{font-size:36px;line-height:40px}
h2{font-size:30px;line-height:36px}
h3{font-size:20px;line-height:28px;font-stretch:90%;font-weight:700}
p{margin:0;text-wrap:pretty}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--s5)}
.prose{max-width:680px}
.skip{position:absolute;left:var(--s3);top:-60px;background:var(--ink);color:var(--white);padding:var(--s3) var(--s4);border-radius:var(--r2);z-index:50}
.skip:focus{top:var(--s3)}

/* preview banner */
.preview{background:var(--ink);color:var(--sand);font-size:12px;line-height:16px;text-align:center;padding:var(--s3) var(--s5)}
.preview strong{color:var(--white)}

/* header */
.site-head{position:sticky;top:0;z-index:20;background:rgba(244,238,227,.94);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);min-height:64px}
.brand{display:flex;align-items:center;gap:var(--s3);text-decoration:none;color:var(--ink)}
.brand-mark{width:32px;height:32px;flex:none}
.brand-name{font-family:var(--display);font-stretch:75%;font-weight:800;font-size:18px;line-height:20px;text-transform:uppercase;letter-spacing:.02em}
.brand-name span{display:block;color:var(--clay);font-size:12px;line-height:16px;letter-spacing:.12em}
.nav{display:none;gap:var(--s2)}
.nav a{color:var(--ink);text-decoration:none;font-size:14px;line-height:20px;font-weight:600;padding:var(--s3) var(--s4);border-radius:var(--r2);transition:background .2s var(--ease-soft)}
.nav a:hover{background:var(--sand)}
.nav a[aria-current="page"]{background:var(--ink);color:var(--white)}
.btn.head-call{display:none}
.head-right{display:flex;align-items:center;gap:var(--s3)}
.lang{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--s4);border-radius:var(--r2);font:700 14px/20px var(--body);color:var(--clay-deep);text-decoration:none;border:1px solid var(--line);background:var(--white);transition:background .2s var(--ease-soft)}
.lang:hover{background:var(--sand);color:var(--clay-deep)}
.lang:active{transform:translateY(1px)}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--white);border-radius:var(--r2);font:600 14px/20px var(--body);color:var(--ink);padding:0 var(--s4);cursor:pointer}
.menu-btn:active{transform:translateY(1px)}
.mobile-nav{display:none;border-top:1px solid var(--line);padding:var(--s3) 0 var(--s5)}
.mobile-nav.open{display:block}
.mobile-nav a{display:block;padding:var(--s4) var(--s5);color:var(--ink);text-decoration:none;font-weight:600;border-radius:var(--r2)}
.mobile-nav a[aria-current="page"]{background:var(--sand)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);min-height:48px;padding:0 var(--s6);border-radius:var(--r2);font:700 16px/24px var(--body);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .2s var(--ease-out),background .2s var(--ease-soft),color .2s var(--ease-soft)}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--clay);color:var(--white)}
.btn-primary:hover{background:var(--clay-deep);color:var(--white);transform:translateY(-1px)}
.btn-quiet{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-quiet:hover{background:var(--ink);color:var(--white)}
.btn-light{background:var(--white);color:var(--ink)}
.btn-light:hover{background:var(--sand);color:var(--ink)}
.btn[aria-disabled="true"],.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.ph{display:inline-block;font:700 10px/16px var(--body);letter-spacing:.08em;text-transform:uppercase;background:#FFE58A;color:var(--ink);border-radius:var(--r1);padding:0 var(--s2);vertical-align:middle}

/* hero */
.hero{padding:var(--s7) 0 var(--s9);position:relative;overflow:hidden}
.kicker{display:inline-flex;align-items:center;gap:var(--s3);font:700 12px/16px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--clay-deep);margin-bottom:var(--s4)}
.kicker::before{content:"";width:24px;height:2px;background:var(--clay)}
.hero h1{font-size:48px;line-height:1;font-stretch:72%}
.hero h1 em{font-style:normal;color:var(--clay)}
.answer{margin-top:var(--s5);font-size:18px;line-height:28px;max-width:600px;color:#2B2F2A}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--s4);margin-top:var(--s6);align-items:center}
.proof{margin-top:var(--s5);display:flex;flex-wrap:wrap;gap:var(--s3)}
.chip{display:inline-flex;align-items:center;gap:var(--s2);font-size:14px;line-height:20px;font-weight:600;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:var(--s2) var(--s4)}
.chip svg{width:16px;height:16px}
.hero-grid{display:grid;gap:var(--s7)}
.section-figure{margin:0;background:var(--white);border:1px solid var(--line);border-radius:var(--r4);padding:var(--s3)}
.section-figure figcaption{font-size:12px;line-height:16px;color:var(--stone);padding:var(--s3) var(--s3) var(--s2)}

/* strata divider */
.strata{height:24px;background:
 linear-gradient(var(--clay) 0 0) 0 0/100% 6px no-repeat,
 linear-gradient(var(--clay-deep) 0 0) 0 9px/100% 3px no-repeat,
 repeating-linear-gradient(90deg,var(--stone) 0 3px,transparent 3px 11px) 0 16px/100% 3px no-repeat,
 linear-gradient(var(--moss) 0 0) 0 21px/100% 3px no-repeat}

/* sections */
.sec{padding:var(--s10) 0}
.sec-dark{background:var(--moss);color:var(--bone)}
.sec-dark a{color:var(--clay-soft)}
.sec-sand{background:var(--sand)}
.sec-head{margin-bottom:var(--s7);max-width:720px}
.sec-head p{margin-top:var(--s4);font-size:18px;line-height:28px}
.eyebrow{font:700 12px/16px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--clay);margin-bottom:var(--s3)}
.sec-dark .eyebrow{color:var(--clay-soft)}

/* cards */
.grid{display:grid;gap:var(--s5)}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r3);padding:var(--s6);display:flex;flex-direction:column;gap:var(--s3)}
.card .num{font:800 14px/20px var(--display);font-stretch:75%;color:var(--clay);letter-spacing:.1em}
.card p{color:#3A3E39}
.card a.more{margin-top:auto;font-weight:700;padding-top:var(--s3)}
.card-link{text-decoration:none;color:inherit;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-soft)}
.card-link:hover{transform:translateY(-2px);box-shadow:var(--shadow);color:inherit}

/* price list */
.prices{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.prices li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s5);padding:var(--s4) 0;border-bottom:1px solid var(--line)}
.prices .what{font-weight:600}
.prices .what small{display:block;font-weight:400;font-size:14px;line-height:20px;color:var(--stone)}
.prices .cost{font:800 20px/28px var(--display);font-stretch:80%;white-space:nowrap;text-align:right}
.src{margin-top:var(--s4);font-size:14px;line-height:20px;color:var(--stone)}
.sec-dark .src{color:var(--sand)}
.example{background:var(--ink);color:var(--bone);border-radius:var(--r3);padding:var(--s6);margin-top:var(--s6)}
.example strong{color:var(--white)}
.example .big{font:800 30px/36px var(--display);font-stretch:75%;color:#F2A27F;margin:var(--s2) 0}

/* steps */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--s5);counter-reset:step}
.steps li{counter-increment:step;display:grid;grid-template-columns:56px 1fr;gap:var(--s4);align-items:start}
.steps li::before{content:counter(step,decimal-leading-zero);font:800 36px/40px var(--display);font-stretch:70%;color:var(--clay-soft)}
.steps h3{color:var(--white);margin-bottom:var(--s2)}

/* areas */
.areas{display:flex;flex-wrap:wrap;gap:var(--s3);list-style:none;margin:0;padding:0}
.areas a{display:inline-flex;min-height:44px;align-items:center;padding:0 var(--s5);border-radius:999px;background:var(--white);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;transition:background .2s var(--ease-soft)}
.areas span{display:inline-flex;min-height:44px;align-items:center;padding:0 var(--s5);border-radius:999px;background:var(--white);border:1px solid var(--line);font-weight:600}
.areas a:hover{background:var(--ink);color:var(--white)}
.city{padding:var(--s7) 0;border-top:1px solid var(--line)}
.city h2{font-size:24px;line-height:32px;font-stretch:85%}
.city p{margin-top:var(--s3)}
.city ul{margin:var(--s3) 0 0;padding-left:var(--s6)}

/* faq */
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:var(--s5) var(--s8) var(--s5) 0;position:relative;font:700 18px/28px var(--body)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:var(--s3);top:var(--s4);font:400 30px/36px var(--display);color:var(--clay);transition:transform .25s var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 var(--s5);max-width:680px}

/* breadcrumbs */
.crumbs{font-size:14px;line-height:20px;color:var(--stone);padding-top:var(--s5)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.crumbs li+li::before{content:"/";margin-right:var(--s2);color:var(--line)}

/* cta band */
.cta-band{background:var(--clay);color:var(--white);padding:var(--s10) 0}
.cta-band h2{color:var(--white);font-size:36px;line-height:40px}
.cta-band p{margin-top:var(--s4);font-size:18px;line-height:28px;max-width:600px}
.cta-band .hero-cta{margin-top:var(--s6)}

/* form */
.form{display:grid;gap:var(--s5);background:var(--white);border:1px solid var(--line);border-radius:var(--r4);padding:var(--s6)}
.field{display:grid;gap:var(--s2)}
.field label,.field legend{font-weight:700;font-size:14px;line-height:20px}
.field .hint{font-size:14px;line-height:20px;color:var(--stone)}
.field input,.field select,.field textarea{font:16px/24px var(--body);color:var(--ink);background:var(--bone);border:1px solid #A99D86;border-radius:var(--r2);padding:var(--s4);min-height:48px;width:100%}
.field textarea{min-height:120px;resize:vertical}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:3px solid var(--clay);outline-offset:1px}
.field[data-invalid] input,.field[data-invalid] select,.field[data-invalid] textarea{border-color:#B3261E;background:#FFF5F3}
.err{color:#B3261E;font-size:14px;line-height:20px;font-weight:600;min-height:0}
.err:empty{display:none}
fieldset.field{border:0;padding:0;margin:0}
.checks{display:grid;gap:var(--s3);margin-top:var(--s2)}
.checks label{display:flex;gap:var(--s3);align-items:center;font-weight:500;font-size:16px;min-height:44px;padding:0 var(--s4);border:1px solid var(--line);border-radius:var(--r2);background:var(--bone);cursor:pointer}
.checks input{width:20px;height:20px;accent-color:var(--clay)}
.notice{border:1px dashed var(--clay);background:#FFF7EC;border-radius:var(--r2);padding:var(--s4);font-size:14px;line-height:20px}
.success{display:none;border:1px solid var(--moss-2);background:#EEF3EE;border-radius:var(--r3);padding:var(--s6)}
.success.show{display:block}
.success h2{font-size:24px;line-height:32px}

/* footer */
.foot{background:var(--ink);color:var(--sand);padding:var(--s9) 0 var(--s12);font-size:14px;line-height:20px}
.foot a{color:var(--bone)}
.foot-grid{display:grid;gap:var(--s7)}
.foot h2{font-size:18px;line-height:28px;color:var(--white);font-stretch:80%;margin-bottom:var(--s3)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3)}
.foot .fine{margin-top:var(--s7);border-top:1px solid #333832;padding-top:var(--s5);color:#A8A08F}

/* sticky mobile bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1.6fr;gap:var(--s3);padding:var(--s3) var(--s5) calc(var(--s3) + env(safe-area-inset-bottom));background:rgba(25,29,25,.96)}
.mbar.mbar-solo{grid-template-columns:1fr}
.mbar .btn{min-height:48px;padding:0 var(--s4)}
.mbar .btn-quiet{color:var(--white);border-color:#5A6058}

/* reveal */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease-soft),transform .6s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}*{transition:none!important}}
.no-js .reveal{opacity:1;transform:none}

@media (min-width:720px){
  h1{font-size:48px;line-height:1}
  .hero h1{font-size:72px}
  h2{font-size:36px;line-height:40px}
  .grid-2{grid-template-columns:1fr 1fr}
  .grid-3{grid-template-columns:repeat(3,1fr)}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:2fr 1fr 1fr}
  .checks{grid-template-columns:1fr 1fr}
}
@media (min-width:1100px){
  .nav{display:flex}.menu-btn,.mobile-nav{display:none!important}
  .btn.head-call{display:inline-flex;min-height:44px;font-size:14px;padding:0 var(--s5)}
  .hero{padding:var(--s11) 0 var(--s12)}
  .hero-grid{grid-template-columns:1.1fr .9fr;align-items:center}
  .grid-4{grid-template-columns:repeat(4,1fr)}
  .two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--s10);align-items:start}
  .mbar{display:none}
  .foot{padding-bottom:var(--s9)}
}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.success.fail{border-color:#B3261E;background:#FFF5F3}
.form button[aria-busy="true"]{opacity:.7;cursor:progress}
[hidden]{display:none!important}
