

:root{
  --ink:#1f2421; --bone:#eee9df; --fog:#d5d7d1; --sage:#727b68;
  --rust:#9b5639; --brown:#594a3c; --white:#f8f5ee;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:var(--bone);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}
.nav{position:absolute;z-index:10;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:24px 5vw;color:white}
.brand{font-family:"Oswald";font-size:25px;letter-spacing:.16em;text-transform:uppercase}
.navlinks{display:flex;gap:28px;align-items:center;font-size:13px;text-transform:uppercase;letter-spacing:.1em}
.btn{display:inline-block;padding:14px 22px;background:var(--rust);color:white;border:0;cursor:pointer;text-transform:uppercase;letter-spacing:.11em;font-size:12px;font-weight:600}
.btn.light{background:var(--bone);color:var(--ink)}
.hero{min-height:92vh;position:relative;display:flex;align-items:flex-end;color:white;padding:0 5vw 8vh;background:
linear-gradient(180deg,rgba(15,20,18,.18),rgba(15,20,18,.78)),
url('images/hero-bg.jpg') center/cover}
.hero-inner{max-width:860px}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:600}
h1,h2,h3{font-family:"Oswald";text-transform:uppercase;font-weight:500;line-height:.98;margin:0}
h1{font-size:clamp(58px,9vw,124px);letter-spacing:-.025em;margin:16px 0 25px}
.hero p{font-size:19px;max-width:670px;margin:0 0 32px;color:#eee}
.band{background:var(--ink);color:var(--bone);display:grid;grid-template-columns:repeat(3,1fr);padding:22px 5vw;gap:20px;text-align:center;text-transform:uppercase;letter-spacing:.13em;font-size:11px}
section{padding:90px 6vw}
.split{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}
h2{font-size:clamp(42px,6vw,78px);letter-spacing:-.02em;margin:10px 0 28px}
.lead{font-size:19px;max-width:660px}
.photo{min-height:590px;background:url('images/photo-bg.jpg') center/cover;position:relative}
.photo:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.25)}
.dark{background:var(--brown);color:var(--white)}
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.2);margin-top:45px}
.service{background:var(--brown);padding:38px 30px;min-height:260px}
.num{font-family:"Oswald";font-size:13px;letter-spacing:.15em;color:#d7c9b9}
.service h3{font-size:30px;margin:45px 0 15px}
.service p{color:#ded8ce;font-size:14px}
.about{background:var(--fog)}
.about .photo{background-image:linear-gradient(180deg,rgba(30,35,30,.08),rgba(30,35,30,.25)),url('images/about-bg.jpg')}
.quote{font-family:"Oswald";font-size:clamp(30px,4vw,50px);line-height:1.1;text-transform:uppercase;border-left:4px solid var(--rust);padding-left:24px;margin:35px 0}
.coverage{background:var(--ink);color:var(--bone);text-align:center}
.coverage p{max-width:720px;margin:20px auto 35px;color:#d2d0c8}
.places{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:900px;margin:auto}
.place{border:1px solid #62665f;padding:10px 15px;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.process{background:var(--white)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:50px}
.step{border-top:2px solid var(--ink);padding-top:20px}
.step strong{font-family:"Oswald";font-size:26px;text-transform:uppercase}
.step p{font-size:14px}
.cta{min-height:500px;display:flex;align-items:center;justify-content:center;text-align:center;color:white;background:
linear-gradient(rgba(22,27,24,.64),rgba(22,27,24,.72)),
url('images/cta-bg.jpg') center/cover}
.cta h2{max-width:850px}
footer{background:#151816;color:#bbb;padding:45px 6vw;display:flex;justify-content:space-between;gap:30px;font-size:12px}
footer .brand{color:white}
.modal{display:none;position:fixed;z-index:30;inset:0;background:rgba(10,12,10,.82);padding:4vh 20px;overflow:auto}
.modal.open{display:block}
.formbox{background:var(--bone);max-width:720px;margin:auto;padding:42px;position:relative}
.close{position:absolute;right:22px;top:18px;font-size:28px;cursor:pointer}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{font-size:11px;text-transform:uppercase;letter-spacing:.1em}
input,select,textarea{width:100%;padding:13px;border:1px solid #aaa;background:#f7f3ea;margin-top:5px;font:inherit}
.full{grid-column:1/-1}
.note{font-size:12px;color:#666}
@media(max-width:800px){
.navlinks a:not(.btn){display:none}.hero{min-height:82vh}.band{grid-template-columns:1fr}
.split{grid-template-columns:1fr}.photo{min-height:420px}.services{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}
.formgrid{grid-template-columns:1fr}.full{grid-column:auto} footer{flex-direction:column}
}

.hero{min-height:720px!important;height:auto!important;padding:0 5vw 80px!important;
background-position:center!important;background-size:cover!important;overflow:hidden!important}
.hero-inner{position:relative!important;z-index:2!important;max-width:780px!important}
.hero h1{font-size:clamp(60px,7vw,104px)!important;line-height:.94!important;margin:16px 0 26px!important}
.hero p{max-width:670px!important;background:none!important}
.hero::before,.hero::after,.hero-inner::before,.hero-inner::after{content:none!important;display:none!important}


.dan-photo {
  background-image:
    linear-gradient(180deg, rgba(15,20,18,.02), rgba(15,20,18,.14)),
    url("images/daniel-bacquet.jpg") !important;
  background-size: cover !important;
  background-position: 50% 48% !important;
}
.about h3 {
  font-family:"Oswald",sans-serif;
  font-size:22px;
  letter-spacing:.02em;
  margin:4px 0 16px;
  text-transform:none;
}
.internachi-badge {
  display:inline-block;
  margin-top:24px;
  padding:14px 18px;
  border:2px solid currentColor;
  font-family:"Oswald",sans-serif;
  font-size:20px;
  line-height:1.1;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.internachi-badge small {
  font-family:"DM Sans",sans-serif;
  font-size:10px;
  letter-spacing:.08em;
}
footer a { text-decoration:none; }


.internachi-official {
  display:inline-block;
  margin-top:26px;
}
.internachi-official img {
  width:150px;
  max-width:38vw;
  height:auto;
  display:block;
}
.site-credit {
  width:100%;
  text-align:center;
  font-size:10px;
  letter-spacing:.08em;
  opacity:.58;
  padding:10px 16px 14px;
}
.site-credit a {
  color:inherit;
  text-decoration:none;
}
.site-credit a:hover { opacity:.8; }


.cpi-badge img {
  display:block;
  width:74px;
  height:74px;
  object-fit:contain;
}
.cpi-badge-top {
  position:absolute;
  z-index:20;
  top:82px;
  right:28px;
  opacity:.95;
}
.cpi-bottom-wrap {
  display:flex;
  justify-content:center;
  align-items:center;
  padding:20px 16px 4px;
}
.cpi-badge-bottom {
  display:inline-block;
  opacity:.92;
}
@media (max-width:700px) {
  .cpi-badge-top { top:74px; right:14px; }
  .cpi-badge img { width:58px; height:58px; }
}


/* V6 badge placement */
.cpi-badge-top, .cpi-bottom-wrap { display:none !important; }

.cpi-nav-badge {
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  vertical-align:middle;
}
.cpi-nav-badge img {
  width:34px;
  height:34px;
  object-fit:contain;
  display:block;
}

.footer-brand-row {
  display:flex;
  align-items:center;
  gap:12px;
}
.footer-brand-row > div:first-child {
  min-width:0;
}
.cpi-footer-badge {
  display:inline-flex;
  align-items:center;
}
.cpi-footer-badge img {
  width:48px;
  height:48px;
  object-fit:contain;
  display:block;
}
.footer-designed {
  display:inline-block;
  margin-top:4px;
  font-size:9px;
  letter-spacing:.07em;
  opacity:.55;
}
@media (max-width:700px) {
  .cpi-nav-badge img { width:28px; height:28px; }
  .cpi-footer-badge img { width:42px; height:42px; }
}


/* V7 InterNACHI placement */
.cpi-nav-badge {
  display:inline-flex !important;
  align-items:center;
  margin-left:0 !important;
  margin-right:12px !important;
  vertical-align:middle;
}
.cpi-nav-badge img {
  width:68px !important;
  height:68px !important;
  object-fit:contain;
  display:block;
}

.footer-brand-row {
  display:flex !important;
  align-items:center !important;
  gap:20px !important;
}
.cpi-footer-badge img {
  width:96px !important;
  height:96px !important;
  object-fit:contain;
  display:block;
}
@media (max-width:700px) {
  .cpi-nav-badge {
    margin-right:7px !important;
  }
  .cpi-nav-badge img {
    width:56px !important;
    height:56px !important;
  }
  .cpi-footer-badge img {
    width:82px !important;
    height:82px !important;
  }
}


/* V8 footer refinement */
.footer-brand-row {
  display:flex !important;
  align-items:center !important;
  gap:0 !important;
}
.footer-brand-copy {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.footer-tagline {
  margin-top:5px;
  font-size:12px;
  letter-spacing:.04em;
  opacity:.78;
}
.cpi-footer-badge {
  margin-left:52px !important;
}
@media (max-width:700px) {
  .cpi-footer-badge {
    margin-left:28px !important;
  }
}


/* V9 footer placement */
.footer-brand-row {
  display:flex !important;
  align-items:center !important;
  width:100% !important;
}
.footer-brand-copy {
  flex:0 0 auto;
}
.cpi-footer-badge {
  margin-left:110px !important;
  flex:0 0 auto;
}
@media (max-width:700px) {
  .cpi-footer-badge {
    margin-left:50px !important;
  }
}


/* V10 footer correction */
.footer-brand-row {
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:auto !important;
  gap:0 !important;
}
.footer-brand-copy {
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  flex:0 0 auto !important;
}
.footer-tagline {
  margin-top:5px !important;
  white-space:nowrap;
}
.cpi-footer-badge {
  margin-left:70px !important;
  flex:0 0 auto !important;
}
.cpi-footer-badge img {
  width:96px !important;
  height:96px !important;
}
@media (max-width:700px) {
  .footer-tagline { white-space:normal; }
  .cpi-footer-badge {
    margin-left:30px !important;
  }
  .cpi-footer-badge img {
    width:76px !important;
    height:76px !important;
  }
}


/* V11 corrected footer structure */
.footer-left {
  display:flex;
  align-items:center;
}
.footer-brand-copy {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  flex:0 0 auto;
}
.footer-tagline {
  margin-top:5px;
  white-space:nowrap;
}
.footer-left .cpi-footer-badge {
  display:block;
  margin-left:70px !important;
  flex:0 0 auto;
}
.footer-left .cpi-footer-badge img {
  width:96px !important;
  height:96px !important;
  object-fit:contain;
  display:block;
}
@media (max-width:700px) {
  .footer-left .cpi-footer-badge { margin-left:28px !important; }
  .footer-left .cpi-footer-badge img {
    width:76px !important;
    height:76px !important;
  }
  .footer-tagline { white-space:normal; }
}


.top-brand-logo {
  display:flex !important;
  align-items:center;
  padding:0 !important;
}
.top-brand-logo img {
  display:block;
  width:150px;
  height:auto;
  max-height:88px;
  object-fit:contain;
  object-position:left center;
}
@media (max-width:700px) {
  .top-brand-logo img {
    width:112px;
    max-height:68px;
  }
}


/* V14 brighter supplied logo, 2x previous size */
.top-brand-logo img {
  width:300px !important;
  max-height:176px !important;
  height:auto !important;
}
@media (max-width:700px) {
  .top-brand-logo img {
    width:224px !important;
    max-height:136px !important;
  }
}


/* V15 footer uses same supplied logo and same size as header */
.footer-logo-wrap {
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.footer-logo-wrap img {
  display:block;
  width:300px;
  max-height:176px;
  height:auto;
  object-fit:contain;
  object-position:left center;
}
@media (max-width:700px) {
  .footer-logo-wrap img {
    width:224px;
    max-height:136px;
  }
}


@media (max-width:700px) {
  header, .nav, nav {
    box-sizing:border-box;
  }

  /* Keep the top navigation contained within the phone width */
  header .nav, header nav, .nav {
    width:100% !important;
    max-width:100% !important;
  }

  /* Logo: still prominent, but not so large that it crowds the right side */
  .top-brand-logo img {
    width:180px !important;
    max-width:46vw !important;
    max-height:112px !important;
    height:auto !important;
  }

  /* Certification badge: compact and aligned beside the logo */
  .cpi-nav-badge {
    margin:0 10px 0 auto !important;
    flex:0 0 auto !important;
  }
  .cpi-nav-badge img {
    width:58px !important;
    height:58px !important;
  }

  /* The hero already has a full-width Book an Inspection CTA.
     Removing the duplicate header CTA prevents clipping on mobile. */
  header .btn,
  nav .btn,
  .nav .btn {
    display:none !important;
  }

  /* Hide text nav links on mobile, leaving logo + CPI cleanly visible */
  header nav > a:not(.top-brand-logo):not(.cpi-nav-badge):not(.btn),
  .nav > a:not(.top-brand-logo):not(.cpi-nav-badge):not(.btn) {
    display:none;
  }
}


@media (max-width:700px) {
  /* Restore booking buttons generally */
  .btn {
    display:inline-flex !important;
  }

  /* Hide only the duplicate booking button inside the top navigation/header */
  header .btn,
  header nav .btn {
    display:none !important;
  }

  /* Explicitly preserve the hero CTA */
  .hero .btn,
  .hero a.btn {
    display:inline-flex !important;
  }
}

.service{display:block;color:inherit}a.service:hover{background:#65564a}
a.place:hover{border-color:var(--rust);color:#fff}
.page-hero{min-height:480px!important}.page-hero h1{font-size:clamp(40px,5.2vw,76px)!important}
.page-hero{padding-top:230px!important}
@media(max-width:700px){.page-hero{padding-top:175px!important}}
.article{max-width:820px;margin:auto}.article h2{font-size:clamp(30px,4vw,46px);margin:48px 0 18px}
.article h2:first-child{margin-top:0}.article ul{padding-left:20px}.article li{margin:6px 0}
.faq{max-width:820px;margin:40px auto 0}.faq details{border-top:2px solid var(--ink);padding:16px 0}
.faq summary{font-family:"Oswald";text-transform:uppercase;font-size:22px;cursor:pointer}
.faq p{margin:12px 0 0}.footer-links a{display:block;margin:2px 0}
