/* KMC Base Theme — shared design system.
   Colors/fonts are CSS custom properties, overridden per-client via a small
   inline <style> block (see kmc_base_theme_assets() in functions.php) built
   from the ACF "Site Settings" > Brand tab — this file itself never
   hardcodes a client's palette. */
:root{
  --navy:#3E5C6B;
  --navy-2:#4A6C7C;
  --navy-3:#5B8090;
  --amber:#E7A957;
  --amber-dark:#CC9142;
  --gray-50:#F9F7F3;
  --gray-100:#F1ECE4;
  --gray-300:#DCD3C6;
  --gray-500:#7C8A8D;
  --gray-700:#4C5A5D;
  --ink:#2C3638;
  --white:#ffffff;
  --radius:16px;
  --shadow:0 18px 44px rgba(62,92,107,0.12);
  --shadow-sm:0 6px 20px rgba(62,92,107,0.08);
  font-size:16px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-tap-highlight-color:transparent;
}

/* ===== TAP / TOUCH POLISH ===== */
.btn, .chip, .filter-btn, .gallery-item, .insta-item, .service-head, .faq-q,
.county-card, .testi-dot, .hamburger, .mobile-drop-toggle, nav.primary-nav a,
.mobile-nav a, .fsocial a, .topbar-right a{
  -webkit-tap-highlight-color:transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, opacity .15s ease;
}
.btn{position:relative; overflow:hidden;}
.btn:active, .chip:active, .filter-btn:active, .county-card:active,
.fsocial a:active, .hamburger:active{transform:scale(.94);}
.service-head:active, .faq-q:active, .mobile-drop-toggle:active{opacity:.7;}
.ripple{position:absolute; border-radius:50%; background:rgba(255,255,255,.55); transform:scale(0); animation:rippleAnim .55s ease-out forwards; pointer-events:none;}
.btn-navy .ripple, .btn-outline .ripple{background:rgba(255,255,255,.35);}
@keyframes rippleAnim{ to{ transform:scale(2.6); opacity:0; } }

/* ===== SCROLL REVEAL ===== */
.reveal{opacity:0; transform:translateY(34px); transition:opacity .8s cubic-bezier(.16,.84,.44,1), transform .8s cubic-bezier(.16,.84,.44,1);}
.reveal.show{opacity:1; transform:translateY(0);}
.reveal-stagger.show > *{opacity:1; transform:translateY(0);}
.reveal-stagger > *{opacity:0; transform:translateY(26px); transition:opacity .65s cubic-bezier(.16,.84,.44,1), transform .65s cubic-bezier(.16,.84,.44,1);}
.reveal-stagger > *:nth-child(1){transition-delay:.02s;} .reveal-stagger > *:nth-child(2){transition-delay:.08s;}
.reveal-stagger > *:nth-child(3){transition-delay:.14s;} .reveal-stagger > *:nth-child(4){transition-delay:.20s;}
.reveal-stagger > *:nth-child(5){transition-delay:.26s;} .reveal-stagger > *:nth-child(6){transition-delay:.32s;}
.reveal-stagger > *:nth-child(7){transition-delay:.38s;} .reveal-stagger > *:nth-child(8){transition-delay:.44s;}
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-stagger > *{opacity:1 !important; transform:none !important; transition:none !important;}
}
@keyframes heroFly{from{opacity:0; transform:translateY(40px);} to{opacity:1; transform:translateY(0);}}
.hero-inner > *{opacity:0; animation:heroFly .9s cubic-bezier(.16,.84,.44,1) both;}
.hero-inner > *:nth-child(1){animation-delay:.15s;}
.hero-inner > *:nth-child(2){animation-delay:.32s;}
.hero-inner > *:nth-child(3){animation-delay:.49s;}
.hero-inner > *:nth-child(4){animation-delay:.66s;}
.hero-inner > *:nth-child(5){animation-delay:.83s;}
@media (prefers-reduced-motion: reduce){ .hero-inner > *{animation:none; opacity:1;} }
h1,h2,h3,h4{font-family:'Poppins',sans-serif; line-height:1.2; color:var(--navy);}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}
.container{width:100%; max-width:1200px; margin:0 auto; padding:0 24px;}
.eyebrow{
  display:inline-block; text-transform:uppercase; letter-spacing:.12em;
  font-size:.78rem; font-weight:700; color:var(--amber-dark);
  background:rgba(231,169,87,.16); padding:6px 14px; border-radius:20px;
  margin-bottom:14px;
}
.section{padding:88px 0;}
.section-head{max-width:640px; margin:0 auto 48px; text-align:center;}
.section-head h2{font-size:2.1rem; margin-bottom:14px;}
.section-head p{color:var(--gray-500); font-size:1.05rem;}
.btn{
  display:inline-flex; align-items:center; gap:8px; justify-content:center;
  padding:14px 26px; border-radius:8px; font-weight:600; font-size:.95rem;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;
}
.btn-amber{background:var(--amber); color:var(--navy);}
.btn-amber:hover{background:var(--amber-dark); transform:translateY(-2px); box-shadow:0 8px 18px rgba(242,164,29,.4);}
.btn-outline{background:rgba(255,255,255,.08); color:#fff; border:2px solid rgba(255,255,255,.55);}
.btn-outline:hover{background:rgba(255,255,255,.16); border-color:#fff;}
.btn-navy{background:var(--navy); color:#fff;}
.btn-navy:hover{background:var(--navy-2); transform:translateY(-2px);}
.btn-sm{padding:9px 16px; font-size:.85rem;}

/* ===== TOP UTILITY BAR ===== */
.topbar{background:var(--navy); color:#cdd8e3; font-size:.83rem;}
.topbar .container{display:flex; align-items:center; justify-content:space-between; height:38px;}
.topbar-left{display:flex; gap:22px;}
.topbar-left a, .topbar-left span{display:flex; align-items:center; gap:6px; color:#cdd8e3;}
.topbar-left a:hover{color:var(--amber);}
.topbar-right{display:flex; gap:14px; align-items:center;}
.topbar-right a{width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; transition:background .15s;}
.topbar-right a:hover{background:var(--amber); color:var(--navy);}

/* ===== MAIN NAV ===== */
header.site-header{position:sticky; top:0; z-index:200; background:#fff; box-shadow:0 2px 14px rgba(16,42,67,.08); transition:padding .2s ease;}
.navwrap{display:flex; align-items:center; justify-content:space-between; padding:16px 24px; transition:padding .2s ease;}
header.site-header.scrolled .navwrap{padding:10px 24px;}
.logo{display:flex; align-items:center; gap:12px; font-family:'Poppins',sans-serif; font-weight:700; font-size:1.3rem; color:var(--navy);}
.logo .mark{width:46px; height:46px; border-radius:13px; background:linear-gradient(135deg,var(--navy-2),var(--navy-3)); display:flex; align-items:center; justify-content:center; color:var(--amber); flex-shrink:0; overflow:hidden;}
.logo .mark img{width:100%; height:100%; object-fit:contain; display:block;}
.logo .sub{display:block; font-family:'Inter',sans-serif; font-weight:600; font-size:.62rem; letter-spacing:.14em; color:var(--gray-500); text-transform:uppercase;}

nav.primary-nav{display:flex; align-items:center; gap:2px;}
nav.primary-nav > ul{display:flex; align-items:center; gap:4px;}
nav.primary-nav > ul > li{position:relative;}
nav.primary-nav > ul > li > a{
  display:flex; align-items:center; gap:5px; padding:12px 16px; font-weight:600; font-size:.95rem; color:var(--navy-2); border-radius:8px; transition:color .15s, background .15s;
}
nav.primary-nav > ul > li > a:hover, nav.primary-nav > ul > li.active > a{color:var(--amber-dark); background:var(--gray-50);}
nav.primary-nav .chev{width:11px; height:11px; transition:transform .2s ease;}
nav.primary-nav li.has-dropdown:hover > a .chev, nav.primary-nav li.has-dropdown.open > a .chev{transform:rotate(180deg);}

.mega{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(16px) scale(.97);
  width:640px; background:#fff; border-radius:var(--radius); box-shadow:var(--shadow);
  padding:22px; display:grid; grid-template-columns:repeat(2,1fr); gap:4px 22px;
  opacity:0; visibility:hidden; transform-origin:top center;
  transition:opacity .26s ease, transform .34s cubic-bezier(.34,1.28,.5,1), visibility .26s;
  border:1px solid var(--gray-100);
}
li.has-dropdown:hover .mega, li.has-dropdown.open .mega{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0) scale(1);}
.mega .mega-item{opacity:0; transform:translateY(12px); transition:opacity .28s ease, transform .32s cubic-bezier(.22,.61,.36,1);}
li.has-dropdown:hover .mega .mega-item, li.has-dropdown.open .mega .mega-item{opacity:1; transform:none;}
.mega-group h4{font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--gray-500); margin:10px 0 6px; grid-column:1/-1;}
.mega a.mega-item{display:flex; align-items:center; gap:12px; padding:9px 8px; border-radius:8px; color:var(--navy-2); font-weight:500; font-size:.9rem;}
.mega a.mega-item:hover{background:var(--gray-50); color:var(--amber-dark);}
.mega a.mega-item .ic{width:34px; height:34px; border-radius:8px; background:var(--gray-50); display:flex; align-items:center; justify-content:center; color:var(--navy); flex-shrink:0;}
.mega a.mega-item:hover .ic{background:var(--amber); color:var(--navy);}
.mega-cta{grid-column:1/-1; margin-top:8px; padding-top:14px; border-top:1px solid var(--gray-100); display:flex; align-items:center; justify-content:space-between;}
.mega-cta p{font-size:.85rem; color:var(--gray-500);}
.mega.area-mega{width:460px;}

.nav-actions{display:flex; align-items:center; gap:14px;}
.hamburger{display:none; width:44px; height:44px; border-radius:8px; align-items:center; justify-content:center; background:var(--gray-50);}
.hamburger span{display:block; width:20px; height:2px; background:var(--navy); position:relative; transition:.2s;}
.hamburger span::before, .hamburger span::after{content:""; position:absolute; width:20px; height:2px; background:var(--navy); left:0; transition:.2s;}
.hamburger span::before{top:-6px;} .hamburger span::after{top:6px;}
.hamburger.active span{background:transparent;}
.hamburger.active span::before{top:0; transform:rotate(45deg);}
.hamburger.active span::after{top:0; transform:rotate(-45deg);}

/* ===== MOBILE NAV ===== */
.mobile-nav{position:fixed; inset:0 0 0 auto; width:88%; max-width:360px; background:#fff; z-index:300; transform:translateX(100%); transition:transform .3s ease; overflow-y:auto; box-shadow:-8px 0 30px rgba(0,0,0,.15);}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav-head{display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--gray-100);}
.mobile-nav ul{padding:8px 10px;}
.mobile-nav > ul > li{border-bottom:1px solid var(--gray-100);}
.mobile-nav > ul > li > a, .mobile-drop-toggle{display:flex; align-items:center; justify-content:space-between; padding:15px 10px; font-weight:600; color:var(--navy);}
.mobile-drop-toggle .chev{width:14px; height:14px; transition:transform .2s;}
.mobile-drop-toggle.open .chev{transform:rotate(180deg);}
.mobile-submenu{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.mobile-submenu a{display:block; padding:10px 10px 10px 22px; color:var(--gray-500); font-size:.9rem; font-weight:500; opacity:0; transform:translateX(-12px); transition:opacity .25s ease, transform .28s cubic-bezier(.22,.61,.36,1);}
.mobile-drop-toggle.open + .mobile-submenu a{opacity:1; transform:none;}
.mobile-submenu a:hover{color:var(--amber-dark);}
.mobile-nav-foot{padding:20px; border-top:1px solid var(--gray-100); margin-top:10px;}
.mobile-nav-foot .btn{width:100%; margin-bottom:10px;}
.overlay{position:fixed; inset:0; background:rgba(16,42,67,.55); z-index:290; opacity:0; visibility:hidden; transition:opacity .25s ease;}
.overlay.show{opacity:1; visibility:visible;}

/* ===== HERO ===== */
.hero{
  position:relative; color:#fff; overflow:hidden;
  min-height:88vh; display:flex; align-items:center; justify-content:center; text-align:center;
  background-color:#2E4149;
  padding:120px 0 110px;
}
.hero.has-photo{background-size:cover; background-position:center;}
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(20,28,30,.28) 0%, rgba(20,28,30,.36) 42%, rgba(20,28,30,.66) 100%);
}
.hero-inner{position:relative; z-index:2; max-width:860px; margin:0 auto; display:flex; flex-direction:column; align-items:center;}
.hero .eyebrow{background:rgba(255,255,255,.14); color:#fff; letter-spacing:.16em;}
.hero h1{
  font-family:'Playfair Display',Georgia,serif; font-weight:500; color:#fff;
  font-size:4.1rem; line-height:1.1; margin-bottom:24px; text-shadow:0 2px 24px rgba(0,0,0,.3);
}
.hero h1 span{color:var(--amber); font-style:italic;}
.hero p.lead{font-size:1.16rem; color:#EFF3F1; max-width:640px; margin:0 auto 34px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-bottom:40px;}
.trust-strip{display:flex; flex-wrap:wrap; gap:14px 30px; justify-content:center;}
.trust-strip .item{display:flex; align-items:center; gap:9px; font-size:.86rem; color:#EFF3F1; font-weight:500;}
.trust-strip .ic{color:var(--amber);}

/* ===== ABOUT ===== */
.about-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:center;}
.about-photo{
  aspect-ratio:1/1; border-radius:16px; background:linear-gradient(135deg,var(--gray-50),var(--gray-100));
  border:2px dashed var(--gray-300); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:var(--gray-500); text-align:center; padding:20px;
}
.about-photo svg{width:52px; height:52px; opacity:.4;}
.about-photo.has-img{border:none; background-size:cover; background-position:center; position:relative; overflow:hidden;}
.about-photo.has-img img{width:100%; height:100%; object-fit:cover; display:block;}
.about-list{display:grid; gap:14px; margin:26px 0;}
.about-list li{display:flex; gap:12px; align-items:flex-start;}
.about-list .ic{width:26px; height:26px; border-radius:50%; background:rgba(242,164,29,.15); color:var(--amber-dark); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px;}
.about-stats{display:flex; gap:34px; margin-top:26px; flex-wrap:wrap;}
.about-stats .stat strong{display:block; font-family:'Poppins',sans-serif; font-size:1.9rem; color:var(--navy);}
.about-stats .stat span{font-size:.85rem; color:var(--gray-500);}

/* ===== SERVICES (accordion) ===== */
.services-bg{background:var(--gray-50);}
.service-accordion{max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:14px;}
.service-item{background:#fff; border:1px solid var(--gray-100); border-radius:var(--radius); overflow:hidden; transition:box-shadow .2s ease, border-color .2s ease;}
.service-item.open{box-shadow:var(--shadow-sm); border-color:var(--gray-300);}
.service-head{display:flex; align-items:center; gap:16px; padding:18px 22px; cursor:pointer;}
.service-head .ic{width:48px; height:48px; border-radius:12px; background:var(--gray-50); color:var(--navy); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:background .2s, color .2s;}
.service-item.open .service-head .ic{background:var(--amber); color:var(--navy);}
.service-head h3{font-size:1.03rem; margin:0; flex:1;}
.service-head .chev{width:16px; height:16px; flex-shrink:0; color:var(--gray-500); transition:transform .2s;}
.service-item.open .service-head .chev{transform:rotate(180deg); color:var(--amber-dark);}
.service-body{max-height:0; overflow:hidden; transition:max-height .28s ease;}
.service-body-inner{padding:0 22px 22px 86px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;}
.service-body p{font-size:.9rem; color:var(--gray-500); max-width:520px; margin:0;}
.service-body .link{font-size:.85rem; font-weight:700; color:var(--amber-dark); display:inline-flex; align-items:center; gap:5px; white-space:nowrap;}
.svc-photo{width:250px; height:165px; border-radius:12px; overflow:hidden; flex-shrink:0; position:relative; background:linear-gradient(135deg,var(--navy-2),var(--navy-3)); box-shadow:var(--shadow-sm);}
.svc-photo picture{display:block; width:100%; height:100%;} /* <picture> is inline by default; make it fill like the <img> it wraps */
.svc-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.svc-text{flex:1; min-width:200px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}

/* ===== SERVICE AREA (counties/towns — contact section) ===== */
.area-bg{background:linear-gradient(180deg,#EEF3F1,#F6F4EF); color:var(--ink);}
.chip-grid{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; max-width:820px; margin:0 auto 34px;}
.chip{padding:10px 18px; border-radius:30px; background:#fff; border:1px solid var(--gray-300); color:var(--navy-2); font-size:.88rem; font-weight:500; transition:.15s;}
.chip:hover{background:var(--amber); color:var(--navy); border-color:var(--amber);}
.county-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:20px;}
.county-card{background:#fff; border:1px solid var(--gray-100); box-shadow:var(--shadow-sm); border-radius:var(--radius); padding:20px; text-align:center;}
.county-card strong{display:block; font-family:'Poppins',sans-serif; margin-bottom:4px; color:var(--navy);}
.county-card span{font-size:.8rem; color:var(--gray-500);}

/* ===== SOCIAL FEED (Instagram and/or Facebook — template-parts/social-feed.php) ===== */
.insta-bg{background:var(--gray-50);}
.social-panels{display:grid; gap:40px;}
.social-panels-2{grid-template-columns:repeat(2,1fr);}
.social-panels-2 .insta-grid{grid-template-columns:repeat(3,1fr);}
.social-embed{width:100%; margin-bottom:20px;}
.insta-handle{display:flex; align-items:center; justify-content:center; gap:8px; font-weight:600; color:var(--navy-2); margin-bottom:20px;}
.insta-handle .ic{width:28px; height:28px; border-radius:8px; background:linear-gradient(135deg,#e0a95f,#c97b8a,#7a6fc9); display:flex; align-items:center; justify-content:center; color:#fff;}
.insta-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:14px;}
.insta-item{aspect-ratio:1/1; border-radius:var(--radius); overflow:hidden; position:relative; cursor:pointer; background:linear-gradient(135deg,var(--gray-100),var(--gray-300));}
.insta-item .ph{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--gray-500);}
.insta-item .overlay-info{position:absolute; inset:0; background:rgba(44,54,56,.55); opacity:0; transition:.2s; display:flex; align-items:center; justify-content:center; gap:14px; color:#fff;}
.insta-item:hover .overlay-info{opacity:1;}
.insta-cta{text-align:center; margin-top:34px;}

/* ===== GOOGLE REVIEWS ===== */
.rating-summary{display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; margin-bottom:36px;}
.rating-badge{background:#fff; border:1px solid var(--gray-100); box-shadow:var(--shadow-sm); border-radius:var(--radius); padding:18px 26px; display:flex; align-items:center; gap:16px;}
.rating-badge .g-ic{width:40px; height:40px; border-radius:50%; background:var(--gray-50); display:flex; align-items:center; justify-content:center;}
.rating-badge strong{display:block; font-family:'Poppins',sans-serif; font-size:1.2rem; color:var(--navy);}
.rating-badge span{font-size:.8rem; color:var(--gray-500);}
.testi-bg{background:var(--gray-50);}

/* ===== CTA BANNER ===== */
.cta-banner{background:linear-gradient(120deg,var(--amber),var(--amber-dark)); padding:56px 0;}
.cta-flex{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.cta-flex h2{color:var(--navy); font-size:1.7rem; margin-bottom:6px;}
.cta-flex p{color:#5a4308; font-weight:500;}

/* ===== FAQ ===== */
.faq-list{max-width:760px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--gray-100);}
.faq-q{display:flex; align-items:center; justify-content:space-between; padding:20px 4px; font-weight:600; color:var(--navy); font-size:1.02rem;}
.faq-q .chev{width:16px; height:16px; flex-shrink:0; transition:transform .2s;}
.faq-item.open .faq-q .chev{transform:rotate(180deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.faq-a p{padding:0 4px 20px; color:var(--gray-500); font-size:.92rem; max-width:680px;}

/* ===== CONTACT ===== */
.contact-bg{background:var(--gray-50);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:stretch;}
.contact-info-card{background:#fff; color:var(--ink); border:1px solid var(--gray-100); box-shadow:var(--shadow-sm); border-radius:16px; padding:36px; display:flex; flex-direction:column;}
.contact-info-card h3{color:var(--navy); margin-bottom:22px;}
.cinfo-row{display:flex; gap:14px; margin-bottom:22px; align-items:flex-start;}
.cinfo-row .ic{width:40px; height:40px; border-radius:11px; background:var(--gray-50); display:flex; align-items:center; justify-content:center; color:var(--amber-dark); flex-shrink:0;}
.cinfo-row strong{display:block; font-size:.92rem; color:var(--navy);}
.cinfo-row span{font-size:.85rem; color:var(--gray-500);}
.map-embed{margin-top:26px; border-radius:12px; overflow:hidden; aspect-ratio:16/9; border:1px solid var(--gray-100); box-shadow:var(--shadow-sm);}
.map-embed iframe, .map-embed #kmc-service-area-map{width:100%; height:100%; border:0; display:block;}
.contact-grid > .map-embed{margin-top:0; aspect-ratio:auto; height:100%; min-height:360px;}
.cinfo-actions{display:flex; gap:10px; margin-top:auto; padding-top:14px; flex-wrap:wrap;}
.cinfo-actions .btn{flex:1; min-width:130px;}
.estimate-bar{margin-top:24px; background:#fff; border:1px solid var(--gray-100); border-radius:16px; box-shadow:var(--shadow-sm); padding:22px 28px; transition:box-shadow .2s;}
.estimate-bar:hover{box-shadow:var(--shadow);}
.form-toggle{width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; text-align:left; font-family:'Poppins',sans-serif; font-weight:600; font-size:1.05rem; color:var(--navy); padding:0;}
.form-toggle .chev{width:18px; height:18px; color:var(--amber-dark); flex-shrink:0; transition:transform .25s;}
.form-toggle.open .chev{transform:rotate(180deg);}
.form-collapse{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.form-collapse > *{padding-top:20px;}
/* Restyles the form plugin's own default markup to match this design system
   — this is normal theming, not custom plugin-integration code. */
.form-collapse input[type=text], .form-collapse input[type=email], .form-collapse input[type=tel],
.form-collapse select, .form-collapse textarea{
  padding:12px 14px; border:1.5px solid var(--gray-100); border-radius:8px; font-family:inherit; font-size:.92rem; background:var(--gray-50); width:100%;
}

/* ===== FOOTER ===== */
footer{background:#F3F1EB; color:var(--gray-700); padding:64px 0 0; border-top:1px solid var(--gray-100);}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:44px; border-bottom:1px solid var(--gray-300);}
footer .logo{color:var(--navy);}
footer .logo .sub{color:var(--gray-500);}
footer p.blurb{margin:16px 0 20px; font-size:.88rem; line-height:1.7;}
.fsocial{display:flex; gap:10px;}
.fsocial a{width:34px; height:34px; border-radius:50%; background:#fff; border:1px solid var(--gray-300); color:var(--navy); display:flex; align-items:center; justify-content:center; transition:.15s;}
.fsocial a:hover{background:var(--amber); border-color:var(--amber); color:var(--navy);}
footer h4{color:var(--navy); font-size:.92rem; margin-bottom:18px; text-transform:uppercase; letter-spacing:.06em;}
footer ul li{margin-bottom:11px; font-size:.88rem;}
footer ul li a:hover{color:var(--amber-dark);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding:22px 0; font-size:.8rem; flex-wrap:wrap; gap:10px; color:var(--gray-500);}
.footer-bottom a:hover{color:var(--amber-dark);}

/* ===== MOBILE CALL BAR ===== */
.mobile-call-bar{position:fixed; bottom:0; left:0; right:0; z-index:250; background:#fff; border-top:1px solid var(--gray-100); display:none; padding:12px 16px; box-shadow:0 -8px 24px rgba(62,92,107,.12);}
.mobile-call-bar .row{display:flex; gap:10px;}
.mobile-call-bar a.btn{flex:1; padding:13px;}

.back-top{position:fixed; bottom:26px; right:26px; width:46px; height:46px; border-radius:50%; background:var(--navy); color:var(--amber); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow); opacity:0; visibility:hidden; transform:translateY(10px); transition:.2s; z-index:150;}
.back-top.show{opacity:1; visibility:visible; transform:translateY(0);}

/* ===== CHATBOT WIDGET (hook only — see functions.php chatbot_enabled toggle) ===== */
.kmc-chatbot-bubble{position:fixed; bottom:26px; left:26px; width:56px; height:56px; border-radius:50%; background:var(--navy); color:var(--amber); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow); z-index:150; cursor:pointer;}

/* ===== RESPONSIVE ===== */
@media (max-width:1080px){
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
  .insta-grid{grid-template-columns:repeat(3,1fr);}
  .county-strip{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:900px){
  nav.primary-nav{display:none;}
  .hamburger{display:flex;}
  .hero h1{font-size:3.1rem;}
  .about-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .topbar-left span:nth-child(2){display:none;}
  .social-panels-2{grid-template-columns:1fr; gap:50px;}
}
@media (max-width:700px){
  .section{padding:60px 0;}
  .hero{min-height:80vh; padding:90px 0 80px;}
  .hero h1{font-size:2.4rem;}
  .hero p.lead{font-size:1.05rem;}
  .insta-grid{grid-template-columns:repeat(3,1fr); gap:8px;}
  .service-body-inner{padding-left:22px; flex-direction:column; align-items:flex-start;}
  .svc-photo{width:100%; height:190px;}
  .svc-text{width:100%;}
  .county-strip{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:30px;}
  .cta-flex{text-align:center; justify-content:center;}
  .mobile-call-bar{display:block;}
  body{padding-bottom:74px;}
  .footer-bottom{flex-direction:column; text-align:center;}
  .topbar .container{justify-content:center;}
  .topbar-left span{display:none;}
}
@media (max-width:480px){
  .hero h1{font-size:2rem;}
  .footer-grid{grid-template-columns:1fr;}
}
