/* Texas Foundation Repair — shared styles
   Palette: blueprint navy + surveyor amber on limestone paper */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;600;800&family=IBM+Plex+Mono:wght@400;500&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&display=swap');

:root{
  --ink:#10151B;
  --navy:#1B3A5C;
  --navy-deep:#122840;
  --amber:#E0A526;
  --paper:#F7F6F3;
  --stone:#DCD8D0;
  --stone-dark:#B4AEA3;
  --clay:#8A6A4F;
  --white:#FFFFFF;
  --measure:68ch;
  --display:'Archivo',system-ui,sans-serif;
  --body:'Source Serif 4',Georgia,serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}

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

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 20px}
.narrow{max-width:var(--measure)}

a{color:var(--navy)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--amber);outline-offset:2px;
}

/* ---------- Type ---------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:800;line-height:1.08;letter-spacing:-.02em;margin:0 0 .5em}
h1{font-size:clamp(2.1rem,6vw,3.9rem)}
h2{font-size:clamp(1.6rem,3.6vw,2.4rem);margin-top:0}
h3{font-size:1.18rem;font-weight:600;letter-spacing:-.01em}
p{margin:0 0 1.1em;max-width:var(--measure)}

.eyebrow{
  font-family:var(--mono);font-size:.72rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--clay);
  margin:0 0 .9rem;display:block;
}
.eyebrow--light{color:var(--amber)}

/* ---------- Header ---------- */
.masthead{
  background:var(--navy-deep);color:var(--white);
  border-bottom:3px solid var(--amber);
}
.masthead .wrap{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;
  justify-content:space-between;padding-top:14px;padding-bottom:14px;
}
.brand{
  font-family:var(--display);font-weight:800;font-size:1.05rem;
  letter-spacing:-.01em;color:var(--white);text-decoration:none;line-height:1.15;
}
.brand span{display:block;font-family:var(--mono);font-weight:400;font-size:.66rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--amber);margin-top:3px}
.tel{
  font-family:var(--mono);font-weight:500;font-size:1rem;
  color:var(--white);text-decoration:none;white-space:nowrap;
  border:1px solid rgba(255,255,255,.32);padding:8px 14px;border-radius:2px;
}
.tel:hover{background:var(--amber);color:var(--ink);border-color:var(--amber)}

/* ---------- Hero ---------- */
.hero{background:var(--navy);color:var(--white);padding:56px 0 0;overflow:hidden}
.hero h1{color:var(--white);max-width:16ch}
.hero .lede{font-size:clamp(1.05rem,2vw,1.25rem);color:#D6DEE8;max-width:52ch}
.hero-grid{display:grid;gap:32px;grid-template-columns:1fr}
@media(min-width:900px){.hero-grid{grid-template-columns:1.05fr .95fr;align-items:center}}

.checks{list-style:none;margin:0 0 26px;padding:0;font-family:var(--mono);font-size:.82rem;
  letter-spacing:.03em;color:#C9D4E0}
.checks li{padding-left:22px;position:relative;margin-bottom:7px}
.checks li::before{content:"›";position:absolute;left:4px;color:var(--amber);font-weight:700}

/* Signature: soil cross-section */
.strata{display:block;width:100%;height:auto;margin-top:8px}
.strata-cap{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;
  text-transform:uppercase;color:#8FA3B8;padding:10px 0 22px;max-width:44ch}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;font-family:var(--display);font-weight:800;font-size:1rem;
  letter-spacing:.01em;padding:15px 30px;border-radius:2px;text-decoration:none;
  border:0;cursor:pointer;transition:transform .12s ease,background .12s ease;
}
.btn--amber{background:var(--amber);color:var(--ink)}
.btn--amber:hover{background:#F2B93A;transform:translateY(-1px)}
.btn--navy{background:var(--navy);color:var(--white)}
.btn--navy:hover{background:var(--navy-deep)}
.btn--block{display:block;width:100%;text-align:center}

/* ---------- Sections ---------- */
section{padding:56px 0}
.band{background:var(--white);border-top:1px solid var(--stone);border-bottom:1px solid var(--stone)}
.band-dark{background:var(--navy-deep);color:#E4EAF1}
.band-dark h2{color:var(--white)}
.band-dark p{color:#C3CEDB}

/* ---------- Cards / grids ---------- */
.grid{display:grid;gap:20px;grid-template-columns:1fr}
@media(min-width:640px){.grid-2{grid-template-columns:1fr 1fr}}
@media(min-width:820px){.grid-3{grid-template-columns:repeat(3,1fr)}}

.card{
  background:var(--white);border:1px solid var(--stone);
  border-left:3px solid var(--amber);padding:22px;border-radius:2px;
}
.card h3{margin-top:0}
.card p{margin-bottom:0;font-size:.98rem}
.card--flat{border-left-color:var(--stone-dark);background:var(--paper)}

/* Sign list with severity marks */
.signs{list-style:none;padding:0;margin:0;counter-reset:s}
.signs li{
  border-bottom:1px solid var(--stone);padding:16px 0 16px 46px;position:relative;
}
.signs li:last-child{border-bottom:0}
.signs li::before{
  counter-increment:s;content:counter(s,decimal-leading-zero);
  position:absolute;left:0;top:16px;font-family:var(--mono);font-size:.78rem;
  color:var(--clay);letter-spacing:.06em;
}
.signs strong{font-family:var(--display);font-weight:600;display:block;margin-bottom:2px}
.signs span{font-size:.97rem;color:#41505F}

/* Cost table */
.tbl{width:100%;border-collapse:collapse;font-size:.97rem;margin:8px 0 6px}
.tbl th,.tbl td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--stone)}
.tbl th{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--clay);font-weight:500}
.tbl td:last-child{font-family:var(--mono);white-space:nowrap}
.note{font-size:.86rem;color:#5A6875;font-style:italic}

/* ---------- Form ---------- */
.form-wrap{
  background:var(--white);border:1px solid var(--stone);border-top:4px solid var(--amber);
  padding:26px;border-radius:2px;
}
.band-dark .form-wrap{border-color:rgba(255,255,255,.14);border-top-color:var(--amber)}
.form-wrap h3{font-size:1.4rem;font-family:var(--display);font-weight:800;margin-bottom:4px}
.form-wrap .sub{font-size:.92rem;color:#5A6875;margin-bottom:18px}
label{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--clay);margin:14px 0 5px}
input,select,textarea{
  width:100%;padding:12px 13px;font-family:var(--body);font-size:1rem;
  border:1px solid var(--stone-dark);border-radius:2px;background:var(--paper);color:var(--ink);
}
textarea{min-height:92px;resize:vertical}
.form-wrap .btn{margin-top:20px}
.fineprint{font-size:.8rem;color:#6B7683;margin:14px 0 0;line-height:1.5}

/* ---------- City list ---------- */
.cities{display:flex;flex-wrap:wrap;gap:9px;padding:0;margin:0;list-style:none}
.cities a{
  display:block;font-family:var(--mono);font-size:.82rem;text-decoration:none;
  padding:9px 15px;border:1px solid var(--stone-dark);border-radius:2px;
  color:var(--navy);background:var(--white);
}
.cities a:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}

/* ---------- Skip link ---------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--amber);color:var(--ink);
  padding:10px 16px;font-family:var(--display);font-weight:800;z-index:99}
.skip:focus{left:8px;top:8px}

/* ---------- Symptom checker ---------- */
.checker{margin-top:26px}
.checker-controls{display:grid;gap:16px;grid-template-columns:1fr;margin-bottom:22px}
@media(min-width:720px){.checker-controls{grid-template-columns:1fr 1.5fr}}
.checker-controls label{margin-top:0}

.verdict{
  background:var(--paper);border:1px solid var(--stone-dark);
  border-left:6px solid var(--stone-dark);padding:24px;border-radius:2px;
}
.verdict .tier{
  font-family:var(--display);font-weight:800;font-size:1.5rem;
  letter-spacing:-.02em;display:block;line-height:1.1;
}
.verdict .tier-meta{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;color:#5A6875;display:block;margin-top:5px;
}
.verdict-head{margin-bottom:14px}
.verdict-body{font-size:1.03rem;margin-bottom:14px}
.verdict-facts ul{margin:0 0 18px;padding:0;list-style:none}
.verdict-facts li{
  position:relative;padding-left:20px;margin-bottom:7px;font-size:.95rem;color:#41505F;
}
.verdict-facts li::before{content:"›";position:absolute;left:3px;font-weight:700;color:var(--clay)}
.verdict-cta-note{font-size:.93rem;color:#5A6875;font-style:italic;margin:0}

.verdict.t-monitor{border-left-color:#5B8C6E;background:#F2F6F2}
.verdict.t-monitor .tier{color:#2F5E44}
.verdict.t-inspect{border-left-color:var(--amber);background:#FBF6EA}
.verdict.t-inspect .tier{color:#8A6410}
.verdict.t-now{border-left-color:#C0392B;background:#FBF1F0}
.verdict.t-now .tier{color:#93291D}

/* Tier explainer cards */
.tier-card{border-left-width:5px}
.tier-monitor{border-left-color:#5B8C6E}
.tier-inspect{border-left-color:var(--amber)}
.tier-now{border-left-color:#C0392B}

/* ---------- FAQ ---------- */
.faq{max-width:var(--measure);margin-top:8px}
.faq details{border-bottom:1px solid var(--stone);padding:4px 0}
.faq summary{
  cursor:pointer;list-style:none;padding:16px 30px 16px 0;position:relative;
  font-family:var(--display);font-weight:600;font-size:1.03rem;line-height:1.35;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:4px;top:15px;font-family:var(--mono);
  font-size:1.2rem;color:var(--clay);
}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 18px;font-size:.99rem;color:#33414F}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:#9AA6B2;padding:40px 0;font-size:.88rem}
footer a{color:#C6D2DE}
footer .disclosure{
  border-left:3px solid var(--amber);padding-left:14px;margin:20px 0 0;
  max-width:62ch;font-size:.83rem;line-height:1.6;color:#8B98A6;
}
.foot-top{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:flex-start}
