/* =============================================
   MADDEN RENOVATIONS — WARM BRUTALIST DESIGN SYSTEM
   Shared across all pages
   ============================================= */
:root {
  --paper:   #F0EBE3;
  --paper-d: #E6DFD5;
  --paper-b: #D9D0C4;
  --ink:     #1A1614;
  --ink-2:   #2E2A26;
  --ink-3:   #7A7068;
  --terra:   #E4CE94;
  --terra-d: #C8AE6A;
  --terra-l: #F0DFB0;
  --chalk:   #FDFAF6;
  --dark:    #1A1614;
  --brand:   'Barlow Condensed','Arial Narrow',sans-serif;
  --display: 'Cormorant Garamond',Georgia,serif;
  --body:    'Barlow','Arial',sans-serif;
  --bw:  2px;
  --bwh: 3px;
  --bwx: 5px;
  --maxw: 1400px;
  --ease: cubic-bezier(.25,.1,.25,1);
  --eout: cubic-bezier(0,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
html{overflow-x:hidden;max-width:100vw}
body{font-family:var(--body);background:var(--paper);color:var(--ink);overflow-x:hidden;max-width:100%;line-height:1.755}
img{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:var(--body)}

/* ── NAV ─────────────────────────────────────────────────────── */
/* Always solid ink — no transparency, no split backgrounds */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:88px;
  display:flex;align-items:center;
  background:var(--ink);
  border-bottom:2px solid transparent;
  transition:background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
  padding:0 2rem;
  gap:0;
}
/* Scroll state — frosted dark glass */
.nav.scrolled{
  background:rgba(26,22,20,.92);
  border-bottom-color:rgba(228,206,148,.15);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
/* Light bg pages — still solid ink (consistent everywhere) */
.nav.light-bg{background:var(--ink);border-bottom-color:rgba(228,206,148,.12)}

/* Logo */
.nav-logo{display:flex;align-items:center;flex-shrink:0;text-decoration:none}
.nav-logo-h{height:62px;width:auto;-o-object-fit:contain;object-fit:contain;flex-shrink:0;display:block}

/* Links */
.nav-links{
  display:flex;align-items:center;
  gap:2rem;
  list-style:none;margin:0;padding:0;
  margin-left:2.5rem;
}
.nav-links a{
  font-family:var(--brand);font-size:.8rem;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;
  color:rgba(255,255,255,.6);
  text-decoration:none;white-space:nowrap;
  transition:color .2s;
}
.nav-links a:hover{color:var(--terra)}
.nav-links a.active{color:var(--terra)}

/* CTA button */
.nav-cta{
  font-family:var(--brand);font-size:.7rem;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;
  padding:.55rem 1.4rem;
  background:var(--terra);color:var(--ink);
  border:2px solid var(--terra);
  text-decoration:none;white-space:nowrap;flex-shrink:0;
  margin-left:auto;
  transition:background .15s,border-color .15s;
}
.nav-cta:hover{background:var(--terra-d);border-color:var(--terra-d)}
/* Scroll: outline style */
.nav.scrolled .nav-cta{background:transparent;color:var(--terra);border-color:var(--terra)}
.nav.scrolled .nav-cta:hover{background:var(--terra);color:var(--ink)}

/* Hamburger — mobile only */
.nav-mob{
  display:none;flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;
  padding:6px;margin-left:auto;flex-shrink:0;
}
.nav-mob span{display:block;width:24px;height:2px;background:var(--chalk);border-radius:1px;transition:background .2s}

/* Drawer overlay */
.drawer-ov{display:none;position:fixed;inset:0;background:rgba(10,8,6,.75);z-index:1100}
.drawer-ov.open{display:block}
/* Drawer panel */
.nav-drawer{
  position:fixed;top:0;right:-100%;width:100%;max-width:340px;height:100%;
  background:var(--ink);border-left:2px solid var(--terra);
  z-index:1200;padding:5rem 2rem 3rem;
  display:flex;flex-direction:column;gap:0;
  transition:right .35s cubic-bezier(.25,.46,.45,.94);
}
.nav-drawer.open{right:0}
.nav-drawer a{
  font-family:var(--brand);font-size:1.5rem;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;
  color:rgba(255,255,255,.7);
  border-bottom:1px solid rgba(255,255,255,.08);
  padding:1rem 0;text-decoration:none;
  transition:color .2s;
}
.nav-drawer a:hover{color:var(--terra)}
.d-close{
  position:absolute;top:1.5rem;right:1.5rem;
  font-size:1.2rem;color:rgba(255,255,255,.4);
  background:none;border:none;cursor:pointer;
  transition:color .2s;
}
.d-close:hover{color:var(--terra)}

/* Responsive */
@media(max-width:1024px){
  .nav-links{gap:1.25rem}
  .nav-links a{font-size:.74rem}
  .nav-logo-h{height:56px}
}
@media(max-width:768px){
  .nav-links,.nav-cta{display:none}
  .nav-mob{display:flex}
  .nav{padding:0 1.5rem}
  .nav-logo-h{height:48px}
}
@media(max-width:640px){
  .nav{height:68px;padding:0 1.25rem}
  .nav-logo-h{height:48px}
}

/* BUTTONS */
.btn-fill{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;padding:.9rem 2rem;background:var(--terra);color:var(--ink);font-family:var(--brand);font-size:.82rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;border:2px solid var(--terra);transition:background .15s,border-color .15s}
.btn-fill:hover{background:var(--terra-d);border-color:var(--terra-d)}
.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;padding:.9rem 2rem;background:transparent;color:var(--chalk);font-family:var(--brand);font-size:.82rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;border:2px solid rgba(255,255,255,.35);transition:border-color .15s,color .15s}
.btn-outline:hover{border-color:var(--terra-l);color:var(--terra-l)}
.btn-fill-ink{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;padding:.9rem 2rem;background:var(--ink);color:var(--chalk);font-family:var(--brand);font-size:.82rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;border:2px solid var(--ink);transition:background .15s}
.btn-fill-ink:hover{background:var(--terra);border-color:var(--terra)}
.btn-outline-ink{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;padding:.9rem 2rem;background:transparent;color:var(--ink);font-family:var(--brand);font-size:.82rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;border:2px solid var(--ink);transition:all .15s}
.btn-outline-ink:hover{background:var(--ink);color:var(--chalk)}
.btn-terra-outline{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 2.2rem;background:transparent;color:var(--terra);font-family:var(--brand);font-size:.82rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;border:var(--bwh) solid var(--terra);transition:background .15s,color .15s}
.btn-terra-outline:hover{background:var(--terra);color:var(--chalk)}
.btn-chalk{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;padding:.9rem 2rem;background:var(--chalk);color:var(--ink);font-family:var(--brand);font-size:.82rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;border:2px solid var(--chalk);transition:background .15s,color .15s,border-color .15s}
.btn-chalk:hover{background:var(--ink);color:var(--chalk);border-color:var(--ink)}
.btn-chalk-outline{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;padding:.9rem 2rem;background:transparent;color:var(--chalk);font-family:var(--brand);font-size:.82rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;border:2px solid rgba(253,250,246,.4);transition:border-color .15s}
.btn-chalk-outline:hover{border-color:var(--chalk)}

/* SECTION UTILITIES */
.sec{padding:7rem 3rem}
.inner{max-width:var(--maxw);margin:0 auto}
.eyebrow{font-family:var(--brand);font-size:.65rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--terra);display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}
.eyebrow::before{content:'';display:inline-block;width:28px;height:var(--bwh);background:var(--terra);flex-shrink:0}
.dh{font-family:var(--brand);line-height:.9;letter-spacing:-.01em}
.dh-li{font-weight:300;display:block;color:var(--ink-3)}
.dh-bo{font-weight:800;display:block;color:var(--ink)}
.dh-it{font-family:var(--display);font-weight:300;font-style:italic;display:block;color:var(--terra);font-size:.88em;letter-spacing:.01em;line-height:1.4}
.dh-ol{font-weight:800;display:block;-webkit-text-stroke:2px var(--ink);color:transparent}
.rule-terra{width:48px;height:var(--bwx);background:var(--terra);margin:1.5rem 0}
.sec-hdr{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:5rem;gap:3rem}
.sec-desc{max-width:400px;color:var(--ink-3);font-size:.97rem;line-height:1.755;font-weight:300}

/* TICKER */
.ticker{background:var(--terra);border-top:var(--bwh) solid var(--ink);border-bottom:var(--bwh) solid var(--ink);overflow:hidden;white-space:nowrap;padding:.85rem 0}
.ticker-track{display:inline-flex;-webkit-animation:tickerScroll;animation:tickerScroll 22s linear infinite}
.ticker-track:hover{animation-play-state:paused}
@-webkit-keyframes tickerScroll{
  from{-webkit-transform:translateX(0)}to{-webkit-transform:translateX(-50%)}
}
@keyframes tickerScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ticker-item{font-family:var(--brand);font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--chalk);padding:0 2.5rem;display:inline-flex;align-items:center;gap:2.5rem}
.ticker-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--chalk);opacity:.6;flex-shrink:0}

/* PAGE HERO (inner pages) */
.page-hero{min-height:0;padding:9rem 3rem 5rem;border-bottom:var(--bwh) solid var(--ink);position:relative;overflow:hidden}
.page-hero-dark{background:var(--ink)}
.page-hero-img{position:absolute;inset:0;-o-object-fit:cover;object-fit:cover;width:100%;height:100%;opacity:.35}
.page-hero-content{position:relative;z-index:2}

/* FOOTER */
.footer{background:var(--ink);padding:6rem 3rem 3rem}
.ft-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:4rem;padding-bottom:4rem;margin-bottom:3rem;border-bottom:var(--bwh) solid rgba(255,255,255,.1)}
.ft-ll{display:flex;flex-direction:column;gap:1.5rem}
.ft-lk{display:flex;align-items:center;gap:1rem}
.ft-lm{width:64px;height:64px;-o-object-fit:contain;object-fit:contain;flex-shrink:0}
/* Wordmark */
.ft-wm{font-family:'Montserrat',var(--brand);font-size:1.45rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--chalk);line-height:1}
.ft-wm span{display:block;font-size:.47rem;font-weight:800;letter-spacing:.52em;text-transform:uppercase;color:var(--terra);margin-top:.16rem}
/* About blurb */
.ft-ab{font-family:'Barlow',sans-serif;font-size:.84rem;line-height:1.75;font-weight:300;color:rgba(255,255,255,.38);max-width:280px}
/* Column heading — consistent across all cols */
.ft-ct{font-family:var(--brand);font-size:.6rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:rgba(255,255,255,.28);margin-bottom:1.5rem;padding-bottom:.6rem;border-bottom:1px solid rgba(255,255,255,.08)}
/* All footer links — one style */
.ft-col ul{display:flex;flex-direction:column;gap:.8rem;list-style:none;padding:0;margin:0}
.ft-col ul li a,.ft-col a{font-family:'Barlow',sans-serif;font-size:.875rem;font-weight:300;line-height:1.4;color:rgba(255,255,255,.45);text-decoration:none;transition:color .2s;display:inline-block}
.ft-col ul li a:hover,.ft-col a:hover{color:var(--terra-l)}
/* Contact column */
.ft-cr{display:flex;flex-direction:column;gap:1.25rem}
.ft-cr>div{display:flex;flex-direction:column;gap:.25rem}
.fcrl{font-family:var(--brand);font-size:.58rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.22)}
.fcrv{font-family:'Barlow',sans-serif;font-size:.875rem;font-weight:300;color:rgba(255,255,255,.45);line-height:1.4}
.fcrv a{font-family:'Barlow',sans-serif;font-size:.875rem;font-weight:300;color:rgba(255,255,255,.45);text-decoration:none;transition:color .2s}
.fcrv a:hover{color:var(--terra-l)}
/* Bottom bar */
.ft-bot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding-top:2rem}
.ft-leg{font-family:'Barlow',sans-serif;font-size:.72rem;font-weight:300;color:rgba(255,255,255,.2);letter-spacing:.04em;line-height:1.4}
.ft-badges{display:flex;gap:0}
.ft-badge{font-family:var(--brand);font-size:.58rem;letter-spacing:.09em;text-transform:uppercase;padding:.32rem .8rem;color:rgba(255,255,255,.22);border:var(--bw) solid rgba(255,255,255,.12);margin-left:-2px}

/* CTA SECTION */
.cta-sec{background:var(--ink);border-top:var(--bwh) solid var(--terra);padding:8rem 3rem;position:relative;overflow:hidden}
.cta-wm{position:absolute;top:50%;right:-5%;transform:translateY(-50%);width:50%;opacity:.06;pointer-events:none}
.cta-inn{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4rem}
.cta-h{font-family:var(--brand);font-size:clamp(3rem,6.5vw,6.5rem);line-height:.9;letter-spacing:-.02em}
.ch-li{font-weight:300;color:rgba(253,250,246,.55);display:block}
.ch-bo{font-weight:800;color:var(--chalk);display:block}
.ch-ol{font-weight:800;display:block;-webkit-text-stroke:2px var(--terra);color:transparent}
.cta-right{display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start;min-width:260px}
.cta-sub{font-size:1rem;color:rgba(253,250,246,.65);line-height:1.75;font-weight:300;max-width:320px}
.cta-btns{display:flex;flex-direction:column;gap:0}

/* REVEAL ANIMATION */
.rv{opacity:0;transform:translateY(28px);transition:opacity .72s var(--eout),transform .72s var(--eout)}
.rv.vis{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* RESPONSIVE */
/* ── TABLET ─────────────────────────────────────────────────── */

@media(max-width:1100px){
  .nav-half-l{padding:0 0 0 1.5rem}
  .nav-half-r{margin-left:auto}
  .nav-links a{font-size:.74rem;letter-spacing:.04em}
  .nav-left{gap:1.25rem}
  .nav-right{gap:1.25rem}
  .nav-cta{font-size:.62rem;padding:.45rem .9rem;margin-right:1rem}
  .nav-logo-h{height:60px;max-width:220px}
}
@media(max-width:768px) and (pointer:coarse){
  .nav-half-l{padding:0 0 0 1.25rem}
  .nav-half-r{margin-left:auto;padding:0}
}
@media(max-width:768px) and (pointer:coarse){
  .nav-links,.nav-cta,.nav-div{display:none}
  .nav-mob{display:flex}
  .ft-top{grid-template-columns:1fr 1fr}
  .cta-inn{grid-template-columns:1fr}
}
/* ── MOBILE ──────────────────────────────────────────────────── */
@media(max-width:640px){
  /* Nav */
  .nav{height:60px;padding:0 1.25rem}
  .nav-logo-gold{height:54px!important}.nav-logo-full{height:50px!important}.nav-logo-h{height:52px!important;max-width:220px!important}.ft-logo-h{height:80px!important}
  .nav-wm-main{font-size:1rem!important}
  .nav-wm-sub{font-size:.46rem!important}

  /* Sections */
  .sec{padding:3.5rem 1.25rem}
  .inner{padding:0}

  /* Page hero (sub-pages) */
  .ph,.page-hero,.svc-ph{padding:7rem 1.25rem 2.5rem!important;min-height:280px!important}
  .ph-h1,.svc-h1{font-size:clamp(2.4rem,9vw,3.8rem)!important}
  .ph-c,.svc-ph-c,.blog-ph-c{padding:7rem 1.25rem 2.5rem!important;max-width:100%}

  /* Buttons */
  .btn-fill,.btn-outline,.btn-chalk,.btn-chalk-outline{
    padding:.85rem 1.5rem!important;
    font-size:.68rem!important;
    width:100%;
    text-align:center;
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
  }

  /* CTA section */
  .cta-sec{padding:4rem 1.25rem}
  .cta-inn{gap:2rem}
  .cta-h{font-size:clamp(2rem,7vw,3rem)!important;line-height:.9}
  .cta-btns{flex-direction:column;gap:0}
  .cta-btns a{width:100%;text-align:center;box-sizing:border-box}
  .cta-sub{font-size:.9rem;max-width:100%}

  /* Eyebrow */
  .eyebrow,.svc-eyebrow,.ph-ey,.blog-eyebrow{font-size:.55rem!important;letter-spacing:.3em!important}

  /* Footer */
  .ft-top{grid-template-columns:1fr;gap:2.5rem}
  .ft-bot{flex-direction:column;align-items:flex-start;gap:.75rem}
  .ft-ab{max-width:100%}
  .footer{padding:4rem 1.25rem 2.5rem}
  .ft-lm{width:48px!important;height:48px!important}
  .ft-wm{font-size:1.1rem!important}

  /* Blog pages */
  .blog-body{padding:3.5rem 1.25rem}
  .blog-h1{font-size:clamp(2rem,8vw,3.2rem)!important}
  .blog-body h2{font-size:1.4rem!important}

  /* Service pages */
  .intro-grid,.feat-grid,.process-grid,.reno-types,.build-types,.ti-types,.process-row{
    grid-template-columns:1fr!important
  }
  .feat-card,.proc-step,.rt,.bt,.ti-card{
    border-right:none!important;
    border-bottom:var(--bwh) solid var(--ink)
  }
  .feat-card:nth-child(3n),.feat-card:nth-child(2n){border-right:none!important}
  .proc-step:last-child,.feat-card:last-child{border-bottom:none}

  /* Dark strip */
  .dark-strip{padding:3.5rem 1.25rem}
  .dark-strip [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}

  /* Area tags */
  .areas{gap:.35rem}
  .area-tag{font-size:.58rem!important;padding:.25rem .7rem!important}

  /* FAQ */
  .faq-q{font-size:.95rem!important}
  .faq-a{font-size:.88rem!important}

  /* Sec header */
  .sec-hdr{flex-direction:column;align-items:flex-start}
}

/* Sticky mobile call button */
.sticky-call{position:fixed;bottom:1.5rem;right:1.5rem;z-index:500;display:none;align-items:center;gap:.6rem;padding:.75rem 1.25rem;background:var(--terra);color:var(--ink);font-family:var(--brand);font-size:.65rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;box-shadow:0 4px 20px rgba(0,0,0,.3);transition:transform .2s,background .2s}
.sticky-call:hover{background:var(--terra-d);transform:translateY(-2px)}
.sticky-call svg{width:16px;height:16px;flex-shrink:0}
@media(max-width:768px) and (pointer:coarse){.sticky-call{display:flex}}
@media(max-width:768px){
  body{font-weight:400}
  p,li,.ft-ab,.hero-sub,.cta-sub{font-weight:400}
}

/* Back to top */
.back-to-top{
  position:fixed;bottom:5.5rem;right:1.5rem;z-index:499;
  width:42px;height:42px;
  background:var(--ink);
  border:2px solid var(--terra);
  color:var(--terra);
  font-size:1.2rem;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  opacity:0;pointer-events:none;
  transition:opacity .3s,transform .3s;
  text-decoration:none;
}
.back-to-top.visible{opacity:1;pointer-events:auto}
.back-to-top:hover{background:var(--terra);color:var(--ink)}
@media(max-width:768px) and (pointer:coarse){.back-to-top{bottom:5rem;right:1.25rem;width:38px;height:38px}}

.ba-item.touch-active .ba-after{opacity:1}
.ba-item.touch-active .ba-before{opacity:0}

/* Inline buttons full width on mobile */
@media(max-width:768px) and (pointer:coarse){
  a[style*="background:var(--ink)"][style*="display:inline-flex"],
  a[style*="background:var(--terra)"][style*="display:inline-flex"]{
    width:100%!important;
    justify-content:center!important;
    align-self:stretch!important;
    box-sizing:border-box!important;
  }
}
@media(max-width:768px){
  .svc-about-card{border-right:none!important;border-bottom:var(--bwh) solid var(--ink)!important}
  .svc-cards-grid{grid-template-columns:1fr 1fr!important}
}
@media(max-width:480px){
  .svc-cards-grid{grid-template-columns:1fr!important}
  .svc-about-card:last-child{border-bottom:none!important}
}
@media(max-width:640px){
  .ft-top{grid-template-columns:1fr!important}
  .ft-col:nth-child(4){display:none} /* hide Service Areas col on mobile — shown in contact col */
}
@media(max-width:640px){
  .eyebrow,.svc-eyebrow,.ph-ey,.blog-eyebrow{letter-spacing:.18em!important}
}
/* gap-in-flexbox fallback for browsers that don't support it */
/* Safari < 14, older Chrome */
.nav-links > li + li{margin-left:1.75rem}
@supports(gap:1rem){
  .nav-links > li + li{margin-left:0}
}
.cta-btns > * + *{margin-top:.75rem}
@supports(gap:1rem){
  .cta-btns > * + *{margin-top:0}
}
.hero-btns > * + *{margin-top:0}

/* ── CARD HOVER EFFECTS — all cards site-wide ─────────────────── */

/* Service cards (services.html) */
.sf-card{transition:background .22s,transform .22s,box-shadow .22s;cursor:pointer}
.sf-card:hover{background:var(--ink)!important;transform:translateY(-3px);box-shadow:0 8px 32px rgba(26,22,20,.18)}
.sf-card:hover .sf-t{color:var(--chalk)!important}
.sf-card:hover .sf-d{color:rgba(255,255,255,.5)!important}
.sf-card:hover .sf-lk{color:var(--terra)!important}
.sf-card:hover .sf-ic{color:var(--terra)!important}

/* Feature/process cards (service sub-pages) */
.feat-card{transition:background .22s,transform .22s,box-shadow .22s;cursor:default}
.feat-card:hover{background:var(--ink)!important;transform:translateY(-3px);box-shadow:0 8px 32px rgba(26,22,20,.18)}
.feat-card:hover .feat-num{color:var(--terra)!important}
.feat-card:hover .feat-title{color:var(--chalk)!important;border-color:rgba(255,255,255,.15)!important}
.feat-card:hover .feat-desc{color:rgba(255,255,255,.5)!important}

/* Blog cards (blog.html) */
.bc{transition:transform .22s,box-shadow .22s}
.bc:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(26,22,20,.15)}
.bc:hover .bc-body{background:var(--paper-d)!important}

/* Project cards (projects.html) */
.pc{transition:transform .22s,box-shadow .22s;overflow:hidden}
.pc:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(26,22,20,.2)}
.pc:hover img{transform:scale(1.04)}
.pc img{transition:transform .4s ease}

/* Testimonial cards */
.tsti-card{transition:background .22s,transform .22s}
.tsti-card:hover{background:var(--ink)!important;transform:translateY(-2px)}
.tsti-card:hover p{color:rgba(255,255,255,.6)!important}
.tsti-card:hover .tsti-name{color:var(--terra)!important}
.tsti-card:hover .tsti-stars{color:var(--terra)!important}

/* City/service area aside cards */
.city-aside{transition:background .22s,transform .22s}
.city-aside:hover{background:var(--paper)!important;transform:translateY(-2px)}

/* rt/bt/ti-card (renovation type cards) */
.rt,.bt,.ti-card{transition:background .22s,transform .22s}
.rt:hover,.bt:hover,.ti-card:hover{background:var(--ink)!important;transform:translateY(-2px)}
.rt:hover *,.bt:hover *,.ti-card:hover *{color:rgba(255,255,255,.7)!important}

@media(max-width:768px) and (pointer:coarse){
  .nav{padding:0 1.25rem;justify-content:flex-start}
  .nav-logo{flex-shrink:0}
  .nav-mob{margin-left:auto}
}
/* ── MASTER BUTTON CONSISTENCY OVERRIDE ───────────────────────── */
/* Forces ALL button classes to identical size and font */
.btn-fill,.btn-outline,.btn-fill-ink,.btn-outline-ink,
.btn-chalk,.btn-chalk-outline,.btn-terra-outline{
  font-family:'Barlow Condensed',sans-serif!important;font-size:.82rem!important;font-weight:800!important;letter-spacing:.2em!important;text-transform:uppercase!important;padding:.9rem 2rem!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.75rem!important;text-decoration:none!important;white-space:nowrap!important;border:2px solid!important;transition:all .2s!important;cursor:pointer!important
}
/* Individual colours */
.btn-fill{background:var(--terra)!important;color:var(--ink)!important;border-color:var(--terra)!important}
.btn-fill:hover{background:var(--terra-d)!important;border-color:var(--terra-d)!important}
.btn-outline{background:transparent!important;color:var(--chalk)!important;border-color:rgba(255,255,255,.4)!important}
.btn-outline:hover{border-color:var(--chalk)!important;color:var(--chalk)!important}
.btn-fill-ink{background:var(--ink)!important;color:var(--chalk)!important;border-color:var(--ink)!important}
.btn-fill-ink:hover{background:var(--terra)!important;border-color:var(--terra)!important;color:var(--ink)!important}
.btn-outline-ink{background:transparent!important;color:var(--ink)!important;border-color:var(--ink)!important}
.btn-outline-ink:hover{background:var(--ink)!important;color:var(--chalk)!important}
.btn-chalk{background:var(--chalk)!important;color:var(--ink)!important;border-color:var(--chalk)!important}
.btn-chalk:hover{background:var(--terra)!important;border-color:var(--terra)!important}
.btn-chalk-outline{background:transparent!important;color:var(--chalk)!important;border-color:rgba(253,250,246,.4)!important}
.btn-chalk-outline:hover{border-color:var(--chalk)!important;color:var(--chalk)!important}
.btn-terra-outline{background:transparent!important;color:var(--terra)!important;border-color:var(--terra)!important}
.btn-terra-outline:hover{background:var(--terra)!important;color:var(--ink)!important}
/* Mobile — full width */
@media(max-width:768px) and (pointer:coarse){
  .btn-fill,.btn-outline,.btn-fill-ink,.btn-outline-ink,
  .btn-chalk,.btn-chalk-outline,.btn-terra-outline{
    width:100%!important;justify-content:center!important
  }
}

/* ── FOOTER ─────────────────────────────────────────────────── */
.footer{background:var(--ink);border-top:3px solid var(--terra)}
.ft-inner{max-width:var(--maxw);margin:0 auto;padding:4rem 3rem 2rem}
.ft-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.2fr;gap:3rem;margin-bottom:3rem}
.ft-logo-h{height:110px;width:auto;-o-object-fit:contain;object-fit:contain;max-width:320px;margin-bottom:1.5rem;display:block}
.ft-ab{font-size:.8rem;font-weight:300;color:rgba(255,255,255,.35);line-height:1.8;max-width:260px}
.ft-ct{font-family:var(--brand);font-size:.58rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--terra);margin-bottom:1.25rem;padding-bottom:.5rem;border-bottom:1px solid rgba(228,206,148,.2)}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.ft-col ul li a{font-size:.83rem;font-weight:300;color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s}
.ft-col ul li a:hover{color:var(--terra)}
.ft-contact{display:flex;flex-direction:column;gap:1rem}
.ft-cr-item{display:flex;flex-direction:column;gap:.2rem}
.ft-cr-label{font-family:var(--brand);font-size:.52rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(228,206,148,.5)}
.ft-cr-val{font-size:.83rem;font-weight:300;color:rgba(255,255,255,.6)}
.ft-cr-val a{color:rgba(255,255,255,.6);text-decoration:none;transition:color .2s}
.ft-cr-val a:hover{color:var(--terra)}
.ft-bot{border-top:1px solid rgba(255,255,255,.08);padding-top:1.5rem}
.ft-leg{font-size:.72rem;font-weight:300;color:rgba(255,255,255,.25);line-height:1.6}
.ft-leg a{color:rgba(255,255,255,.25);text-decoration:none;transition:color .2s}
.ft-leg a:hover{color:rgba(255,255,255,.5)}
@media(max-width:768px) and (pointer:coarse){
  .ft-top{grid-template-columns:1fr 1fr;gap:2rem}
  .ft-brand{grid-column:1/-1}
  .ft-logo-h{height:80px}
  .ft-inner{padding:3rem 1.25rem 1.5rem}
}
@media(max-width:480px) and (pointer:coarse){
  .ft-top{grid-template-columns:1fr}
}
