/* The Mold Busters — design tokens
   Color: ink #1B2B28, paper #F6F4EE, moss #4B6B58, amber #B5651D, line #D9D3C2, mist #E7EBE5
   Type: Frank Ruhl Libre (display) / IBM Plex Sans (body, ui) */

@import url('https://fonts.googleapis.com/css2?family=Frank+Ruhl+Libre:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');

:root{
  --ink:#1B2B28;
  --ink-soft:#3C4A46;
  --paper:#F6F4EE;
  --moss:#4B6B58;
  --moss-deep:#33473C;
  --amber:#B5651D;
  --amber-deep:#8F4E15;
  --line:#D9D3C2;
  --mist:#E7EBE5;
  --white:#FFFFFF;
  --radius:2px;
  --measure:66ch;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans',system-ui,sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:'Frank Ruhl Libre',Georgia,serif;
  font-weight:600;
  line-height:1.15;
  margin:0 0 0.5em;
  color:var(--ink);
}
h1{font-size:clamp(2.1rem,4.5vw,3.4rem); font-weight:600;}
h2{font-size:clamp(1.5rem,3vw,2.1rem);}
h3{font-size:1.25rem; font-weight:600;}

p{margin:0 0 1.1em; max-width:var(--measure);}
a{color:var(--moss-deep); text-decoration-thickness:1px;}
a:hover{color:var(--amber-deep);}
img{max-width:100%; display:block;}

.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
.narrow{max-width:760px;}

/* Skip link */
.skip-link{position:absolute; left:-999px; top:0; background:var(--ink); color:var(--paper); padding:10px 16px; z-index:100;}
.skip-link:focus{left:12px; top:12px;}

/* Top bar */
.topbar{background:var(--ink); color:var(--mist); font-size:0.88rem;}
.topbar .wrap{display:flex; justify-content:space-between; align-items:center; padding:8px 24px; gap:12px; flex-wrap:wrap;}
.topbar a{color:var(--mist);}
.topbar .phone{font-weight:600; color:var(--white);}

/* Header / nav */
header.site{background:var(--paper); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50;}
.nav-row{display:flex; align-items:center; justify-content:space-between; padding:18px 24px; gap:24px;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brand-mark{width:34px; height:34px; flex:none;}
.brand-name{font-family:'Frank Ruhl Libre',serif; font-weight:600; font-size:1.28rem; color:var(--ink); letter-spacing:-0.01em;}
.brand-name span{color:var(--moss-deep);}

nav.primary{display:flex; align-items:center; gap:26px;}
nav.primary a{color:var(--ink-soft); text-decoration:none; font-size:0.96rem; font-weight:500;}
nav.primary a:hover, nav.primary a[aria-current="page"]{color:var(--moss-deep);}
.has-sub{position:relative;}
.sub{display:none; position:absolute; top:100%; left:0; background:var(--white); border:1px solid var(--line); min-width:240px; padding:8px 0; box-shadow:0 8px 24px rgba(27,43,40,0.08);}
.has-sub:hover .sub, .has-sub:focus-within .sub{display:block;}
.sub a{display:block; padding:9px 18px; font-size:0.92rem;}
.sub a:hover{background:var(--mist);}

.btn{display:inline-block; background:var(--amber); color:var(--white)!important; padding:11px 22px; border-radius:var(--radius); font-weight:600; text-decoration:none; font-size:0.95rem; border:1px solid var(--amber-deep);}
.btn:hover{background:var(--amber-deep);}
.btn.ghost{background:transparent; color:var(--ink)!important; border:1px solid var(--ink);}
.btn.ghost:hover{background:var(--ink); color:var(--paper)!important;}

.mobile-toggle{display:none;}

/* Hero */
.hero{padding:64px 0 56px; border-bottom:1px solid var(--line);}
.hero .kicker{color:var(--moss-deep); font-weight:600; font-size:0.95rem; margin-bottom:10px;}
.hero p.lede{font-size:1.15rem; color:var(--ink-soft); max-width:56ch;}
.hero-actions{display:flex; gap:14px; margin-top:22px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:36px; margin-top:40px; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:24px;}
.hero-stats div strong{display:block; font-family:'Frank Ruhl Libre',serif; font-size:1.6rem; color:var(--moss-deep);}
.hero-stats div span{font-size:0.85rem; color:var(--ink-soft);}

/* Hero with supporting photo */
.hero-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:40px; align-items:center;}
.hero-media img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; border:1px solid var(--line); border-radius:var(--radius); display:block;}
.hero.with-media{padding-bottom:56px;}

.map-embed{border:1px solid var(--line); width:100%; height:320px;}
.map-embed iframe{width:100%; height:100%; border:0; display:block;}

.card img.thumb{width:100%; aspect-ratio:16/10; object-fit:cover; border-bottom:1px solid var(--line); margin:-26px -26px 16px; width:calc(100% + 52px);}
.thumb-svg{margin:-26px -26px 16px; border-bottom:1px solid var(--line); overflow:hidden;}
.thumb-svg svg{display:block; width:100%; aspect-ratio:16/10;}
.hero-media svg{width:100%; height:100%; aspect-ratio:4/3; border:1px solid var(--line); border-radius:var(--radius); display:block; background:#EDEAE0;}

/* Mold notice callout (paired with the lab-backed testing lede) */
.mold-notice-text{margin:16px 0 0; font-size:0.92rem; line-height:1.6; color:var(--ink-soft); max-width:56ch; border-left:3px solid var(--amber); padding:2px 0 2px 16px;}
.mold-notice-text strong{color:var(--ink); font-weight:700;}

/* Sections */
section{padding:56px 0;}
section.alt{background:var(--mist);}
.section-head{max-width:640px; margin-bottom:36px;}
.section-head p{color:var(--ink-soft);}

/* Report strip — numbered process (used only where content is a real sequence) */
.report-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--line); background:var(--white);}
.report-strip div{padding:26px 22px; border-right:1px solid var(--line);}
.report-strip div:last-child{border-right:none;}
.report-strip .num{font-family:'Frank Ruhl Libre',serif; font-size:1.6rem; color:var(--amber); font-weight:600; margin-bottom:8px;}
.report-strip h3{font-size:1.02rem; margin-bottom:6px;}
.report-strip p{font-size:0.92rem; color:var(--ink-soft); margin:0;}

/* Card grid */
.grid{display:grid; gap:22px;}
.grid.cols-2{grid-template-columns:repeat(2,1fr);}
.grid.cols-3{grid-template-columns:repeat(3,1fr);}
.grid.cols-4{grid-template-columns:repeat(4,1fr);}

.card{background:var(--white); border:1px solid var(--line); padding:26px;}
.card h3{margin-bottom:8px;}
.card p{font-size:0.95rem; color:var(--ink-soft); margin-bottom:12px;}
.card a.more{font-size:0.9rem; font-weight:600;}

.icon{width:30px; height:30px; margin-bottom:14px; color:var(--moss-deep);}

/* Split content block */
.split{display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:start;}
.split .figure{background:var(--white); border:1px solid var(--line); padding:28px;}
.split .figure h4{font-size:0.85rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--moss-deep); margin-bottom:14px; font-family:'IBM Plex Sans'; font-weight:700;}
.split ul.checks{list-style:none; margin:0; padding:0;}
.split ul.checks li{padding:8px 0; border-bottom:1px solid var(--line); font-size:0.94rem; padding-left:22px; position:relative;}
.split ul.checks li:last-child{border-bottom:none;}
.split ul.checks li::before{content:"—"; position:absolute; left:0; color:var(--amber);}

/* Location list */
.loc-list{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
.loc-list a{display:block; background:var(--white); border:1px solid var(--line); padding:16px 18px; text-decoration:none; color:var(--ink); font-weight:600;}
.loc-list a span{display:block; font-weight:400; color:var(--ink-soft); font-size:0.85rem; margin-top:3px;}
.loc-list a:hover{border-color:var(--moss-deep);}

/* Testimonials */
.quote{background:var(--white); border:1px solid var(--line); padding:26px; font-size:0.96rem;}
.quote p{color:var(--ink-soft); font-style:italic;}
.quote footer{font-size:0.88rem; font-weight:600; color:var(--ink); font-style:normal;}

/* FAQ accordion look (static) */
.faq-item{border-bottom:1px solid var(--line); padding:20px 0;}
.faq-item h3{margin-bottom:8px; font-size:1.08rem;}
.faq-item p{color:var(--ink-soft); font-size:0.96rem;}

/* CTA band */
.cta-band{background:var(--moss-deep); color:var(--paper); text-align:left;}
.cta-band h2{color:var(--white);}
.cta-band p{color:var(--mist);}
.cta-band .wrap{display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; padding-top:48px; padding-bottom:48px;}

/* Contact form (static markup) */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form-grid .full{grid-column:1/-1;}
label{display:block; font-size:0.85rem; font-weight:600; margin-bottom:6px; color:var(--ink-soft);}
input, textarea, select{width:100%; padding:11px 12px; border:1px solid var(--line); background:var(--white); font-family:inherit; font-size:0.95rem; border-radius:var(--radius);}
textarea{resize:vertical; min-height:110px;}

/* Breadcrumb */
.crumb{font-size:0.85rem; color:var(--ink-soft); padding:16px 0 0;}
.crumb a{color:var(--ink-soft);}

/* Footer */
footer.site{background:var(--ink); color:var(--mist); padding:52px 0 26px; margin-top:40px;}
footer.site h4{color:var(--white); font-family:'IBM Plex Sans'; font-size:0.92rem; font-weight:700; margin-bottom:14px;}
footer.site a{color:var(--mist); text-decoration:none; font-size:0.92rem;}
footer.site a:hover{color:var(--white);}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px;}
.foot-grid ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px;}
.foot-bottom{border-top:1px solid rgba(246,244,238,0.14); margin-top:36px; padding-top:20px; font-size:0.82rem; color:#A9B6B0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}
.disclosure{font-size:0.8rem; color:#8EA098; max-width:70ch; margin-top:10px;}

@media (max-width: 880px){
  nav.primary{display:none;}
  .mobile-toggle{display:inline-flex;}
  .split, .report-strip, .grid.cols-2, .grid.cols-3, .grid.cols-4, .loc-list, .form-grid, .foot-grid, .hero-grid{grid-template-columns:1fr;}
  .hero-media{order:-1;}
  .report-strip div{border-right:none; border-bottom:1px solid var(--line);}
  .cta-band .wrap{padding-top:36px; padding-bottom:36px;}
}
