/* Header action buttons: Customer Portal, Book Online, Call */
.hacts{ flex:none; display:flex; align-items:center; gap:.5rem; }
.hacts .callbtn{ margin-left:0; }
.hbtn{ display:inline-flex; align-items:center; gap:.45rem; white-space:nowrap; text-decoration:none;
  font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:1.15rem; letter-spacing:.02em;
  padding:.45rem .85rem; border-radius:3px; line-height:1.2; }
.hbtn svg{ width:18px; height:18px; flex:none; }
.hbtn .s{ display:none; }
.hbtn.portal{ color:#fff; border:2px solid rgba(255,255,255,.75); padding:calc(.45rem - 2px) calc(.85rem - 2px); }
.hbtn.portal:hover{ border-color:var(--signal); color:var(--signal); }
.hbtn.book{ background:#fff; color:var(--navy-deep); }
.hbtn.book:hover{ background:var(--paper-2); }

@media (max-width:1400px){
  .hbtn{ font-size:1.05rem; padding:.42rem .7rem; }
  .hbtn.portal{ padding:calc(.42rem - 2px) calc(.7rem - 2px); }
}
@media (max-width:1100px){
  .hacts{ margin-left:auto; }
}
.bar.compact .hacts{ margin-left:auto; }
@media (max-width:760px){
  .hbtn .l{ display:none; }
  .hbtn .s{ display:inline; }
  .hacts{ gap:.4rem; }
}
@media (max-width:460px){
  .bar > .wrap{ flex-wrap:wrap; }
  .hacts{ order:2; flex:1 1 100%; justify-content:space-between; margin-left:0; }
  .hacts > a{ flex:1 1 0; justify-content:center; }
  .bar a.brand{ margin-inline:auto; }
}

/* Home hero: clearer photo, centered text, two big buttons */
.hero.home{
  background:
    linear-gradient(180deg, rgba(1,18,52,.42) 0%, rgba(1,18,52,.50) 55%, rgba(1,26,79,.85) 100%),
    url("hero.jpg") center 62% / cover no-repeat,
    var(--navy);
}
.hero.home > .wrap{ text-align:center; }
.hero.home h1{ max-width:22ch; margin-inline:auto; text-shadow:0 2px 14px rgba(0,0,0,.55); }
.hero.home .lede{ margin-inline:auto; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.6); }
.hero.home .since{ color:#e3e9f5; text-shadow:0 1px 6px rgba(0,0,0,.6); }
.herocta{ display:flex; justify-content:center; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
.herocta a{ display:inline-flex; align-items:center; justify-content:center; min-width:15rem; padding:.95rem 2rem;
  border-radius:999px; font-weight:600; font-size:1.15rem; text-decoration:none; box-shadow:0 6px 18px -6px rgba(0,0,0,.55); }
.herocta .call{ background:#fff; color:var(--navy-deep); }
.herocta .call:hover{ background:var(--paper-2); }
.herocta .sched{ background:var(--navy); color:#fff; border:2px solid var(--navy); }
.herocta .sched:hover{ background:var(--navy-deep); border-color:var(--navy-deep); }
@media (max-width:640px){
  .hero.home{ background-position:center, 62% 62%, center; }
  .herocta a{ min-width:0; flex:1 1 100%; }
}

/* Book online pop-up */
.bookmodal{ width:min(720px,94vw); height:min(88vh,900px); max-height:none; padding:0; border:0; border-radius:8px;
  background:#fff; color:var(--navy); box-shadow:0 30px 70px -20px rgba(0,0,0,.6); overflow:hidden; }
.bookmodal[open]{ display:flex; flex-direction:column; }
.bookmodal::backdrop{ background:rgba(1,18,52,.7); }
.bm-top{ display:flex; align-items:center; justify-content:space-between; padding:.8rem 1rem .8rem 1.25rem;
  background:var(--navy-deep); color:#fff; }
.bm-top h2{ margin:0; font-size:1.5rem; color:#fff; }
.bm-x{ background:none; border:0; color:#fff; font-size:2rem; line-height:1; cursor:pointer; padding:.1rem .5rem; border-radius:3px; }
.bm-x:hover{ color:var(--signal); }
.bm-body{ flex:1 1 auto; min-height:0; }
.bm-body iframe{ width:100%; height:100%; border:0; display:block; }
html.bm-open{ overflow:hidden; }
@media (max-width:560px){
  .bookmodal{ width:100vw; height:100dvh; max-width:none; border-radius:0; margin:0; }
}

/* Keep the menu on one line next to the logo */
.bar > .wrap{ width:min(1440px,96vw); }
.bar img.logo{ height:56px; }
@media (max-width:1600px){
  .menu > ul > li > a{ padding:.6rem .5rem; }
  .hbtn{ padding:.4rem .6rem; font-size:1rem; }
  .hbtn.portal{ padding:calc(.4rem - 2px) calc(.6rem - 2px); }
}
@media (max-width:1400px){
  .bar > .wrap{ gap:.75rem; }
  .bar img.logo{ height:52px; }
  .hbtn .l{ display:none; }
  .hbtn .s{ display:inline; }
}
@media (max-width:520px){
  .bar img.logo{ height:44px; }
}

/* Blog */
.postlist{ display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
.postcard{ background:var(--white); border:1px solid var(--line); border-top:4px solid var(--navy); padding:1.2rem 1.25rem 1.1rem; display:flex; flex-direction:column; }
.postcard .pdate{ margin:0; color:var(--slate); font-size:.85rem; }
.postcard h3{ margin:.35rem 0 .5rem; font-size:1.35rem; line-height:1.2; }
.postcard h3 a{ color:var(--navy); text-decoration:none; }
.postcard h3 a:hover{ text-decoration:underline; }
.postcard p{ color:var(--slate); font-size:.97rem; margin:0; }
.postcard .more{ margin-top:auto; padding-top:.9rem; font-weight:600; color:var(--navy); text-decoration:none; }
.crumbs{ margin:0 0 .6rem; }
.crumbs a{ color:#c4d1ec; text-decoration:none; font-weight:600; }
.crumbs a:hover{ color:#fff; }
.post{ max-width:68ch; }
.post p, .post li{ font-size:1.08rem; line-height:1.65; color:var(--slate); }
.post h2{ margin:2rem 0 .5rem; font-size:1.75rem; }
.post ul{ padding-left:1.25rem; }
.post li{ margin:.3rem 0; }
.postcta{ max-width:68ch; margin-top:2.5rem; background:var(--navy); color:#d3ddf0; border-radius:6px; padding:1.5rem 1.4rem; }
.postcta h2{ color:#fff; margin:0 0 .4rem; }
.postcta p{ margin:0; }
.postcta .herocta{ justify-content:flex-start; margin-top:1.2rem; }
.postcta .herocta .sched{ border-color:#fff; background:transparent; }
.postcta .herocta .sched:hover{ background:rgba(255,255,255,.12); }
.moreposts{ max-width:68ch; margin-top:2.5rem; }
.moreposts ul{ padding-left:1.25rem; }
.moreposts li{ margin:.4rem 0; }
.signoff{ margin-top:2rem; font-weight:600; color:var(--navy) !important; }

/* Header uses the same blue as the footer */
.bar{ background:var(--navy); }
.menu .sub{ border-top-color:var(--signal); }

/* Blog photos */
.postcard{ padding:0; overflow:hidden; }
.postcard .pbody{ padding:1.1rem 1.25rem 1.1rem; display:flex; flex-direction:column; flex:1 1 auto; }
.pthumb{ display:block; aspect-ratio:16/9; background:var(--paper-2); }
.pthumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.postimg{ margin:0 0 2rem; max-width:68ch; }
.postimg img{ width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; display:block; border-radius:6px; background:var(--paper-2); }
.postimg figcaption{ margin-top:.45rem; font-size:.82rem; color:var(--slate); }
.postimg figcaption a{ color:var(--slate); }

/* Areas we serve */
.cboxes{ display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); }
.cbox{ background:var(--white); border:1px solid var(--line); border-top:4px solid var(--navy); padding:1.1rem 1.25rem; }
.cbox h2{ font-size:1.6rem; margin:0 0 .5rem; }
.cbox ul{ list-style:none; margin:0 0 .8rem; padding:0; columns:2; }
.cbox li{ padding:.25rem 0; }
.cbox a{ color:var(--navy); font-weight:600; }
.counties li small a{ color:var(--slate); }
.counties li a.cty{ color:var(--navy); text-decoration:none; }

/* Touch and mobile menu */
.navtoggle, .menu .subtoggle{ display:none; }
.menu li.has-sub.open > .sub{ display:block; }
.menu li.has-sub.open svg.chev{ transform:rotate(180deg); }
@media (max-width:760px){
  .navtoggle{ display:inline-flex; align-items:center; gap:.4rem; background:transparent; color:#fff; cursor:pointer;
    border:2px solid rgba(255,255,255,.75); border-radius:3px; padding:calc(.4rem - 2px) calc(.6rem - 2px);
    font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:1rem; letter-spacing:.02em; line-height:1.2; }
  .navtoggle svg{ width:18px; height:18px; }
  .bar.navopen .navtoggle{ border-color:var(--signal); color:var(--signal); }
  .bar .menu, .bar.compact .menu{ display:none; order:3; flex:1 1 100%; border-top:1px solid var(--navy-line); padding:.25rem 0 .5rem; }
  .bar.navopen .menu{ display:block; }
  .bar .menu > ul{ flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:0; }
  .bar .menu > ul > li{ display:flex; flex-wrap:wrap; align-items:center; border-bottom:1px solid var(--navy-line); }
  .bar .menu > ul > li > a{ flex:1 1 auto; padding:.85rem .35rem; font-size:1.2rem; }
  .bar .menu > ul > li > a svg.chev{ display:none; }
  .bar .menu li.hl > a{ margin:.4rem 0; text-align:left; }
  .bar .menu .subtoggle{ display:flex; align-items:center; justify-content:center; width:52px; height:48px; flex:none;
    background:transparent; border:0; border-left:1px solid var(--navy-line); color:#fff; cursor:pointer; }
  .bar .menu .subtoggle svg.chev{ display:block; width:18px; height:18px; transition:transform .15s; }
  .bar .menu li.open > .subtoggle{ color:var(--signal); }
  .bar .menu li.open > .subtoggle svg.chev{ transform:rotate(180deg); }
  .bar .menu .sub{ display:none !important; position:static; flex:1 1 100%; min-width:0; box-shadow:none; border:0;
    background:var(--navy-deep); border-radius:0; padding:.25rem 0; }
  .bar .menu li.has-sub.open > .sub{ display:block !important; }
  .bar .menu .sub a{ color:#dfe7f6; padding:.7rem 1.25rem; font-size:1.05rem; }
  .bar .menu .sub a:hover, .bar .menu .sub a:focus-visible{ background:var(--navy-line); color:#fff; }
}
@media (max-width:460px){
  .hacts > .navtoggle{ flex:1 1 0; justify-content:center; }
}

/* Book buttons: green, and the header Book button matches the Call button's size */
:root{ --book:#1f7a3a; --book-hover:#17652f; }
.hacts .hbtn.book{ background:var(--book); color:#fff; border:2px solid #fff; border-radius:8px;
  font-size:1.3rem; padding:.5rem 1.1rem; gap:.55rem; }
.hacts .hbtn.book svg{ width:20px; height:20px; }
.hacts .hbtn.book:hover{ background:var(--book-hover); }
@media (max-width:1400px){
  .hacts .hbtn.book{ font-size:1.15rem; padding:.45rem .85rem; }
}
@media (max-width:520px){
  .hacts .hbtn.book{ font-size:1.1rem; padding:.45rem .75rem; }
}
.herocta a.sched, .postcta .herocta a.sched{ background:var(--book); border:2px solid var(--book); color:#fff; }
.herocta a.sched:hover, .postcta .herocta a.sched:hover{ background:var(--book-hover); border-color:var(--book-hover); }
a.btn[href*="/public/requests/"], .plan a.cta[href*="/public/requests/"], .plan.light a.cta[href*="/public/requests/"]{
  background:var(--book); color:#fff; border-color:var(--book); }
a.btn[href*="/public/requests/"]:hover, .plan a.cta[href*="/public/requests/"]:hover{ background:var(--book-hover); color:#fff; }
/* Same height for every header button; short labels sooner so the menu stays on one line */
.hacts{ align-items:stretch; }
.hacts > a, .hacts > button{ align-items:center; }
@media (max-width:1700px){
  .hbtn .l{ display:none; }
  .hbtn .s{ display:inline; }
}
@media (min-width:1701px){
  .bar > .wrap{ width:min(1840px,96vw); }
}

/* Hero note under the buttons */
.heronote{ margin:1.1rem 0 0; color:#fff; text-shadow:0 1px 6px rgba(0,0,0,.6); font-size:1.02rem; }
.heronote a{ color:#fff; font-weight:600; text-decoration:underline; text-underline-offset:3px; }

/* Price promise band */
.honest{ background:var(--paper-2); text-align:center; padding-block:2.6rem; }
.honest h2{ max-width:26ch; margin:0 auto .6rem; }
.honest .sub{ max-width:60ch; margin:0 auto 1.3rem; }

/* Google review carousel */
.reviews .sub .gstars{ color:#f5a623; letter-spacing:.08em; }
.revs{ position:relative; margin-top:1.5rem; }
.revtrack{ display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 2.5rem)/3); gap:1.25rem;
  overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; padding:.25rem .1rem 1rem; }
.revtrack::-webkit-scrollbar{ display:none; }
.rev{ scroll-snap-align:start; margin:0; background:var(--white); border:1px solid var(--line); border-top:4px solid #f5a623;
  border-radius:6px; padding:1.3rem 1.35rem 1.15rem; display:flex; flex-direction:column; box-shadow:0 8px 20px -14px rgba(1,18,52,.35); }
.rev .stars{ color:#f5a623; font-size:1.25rem; letter-spacing:.1em; }
.rev blockquote{ margin:.6rem 0 1rem; color:var(--slate); font-size:1.03rem; line-height:1.55; }
.rev figcaption{ margin-top:auto; font-weight:700; color:var(--navy); }
.rev figcaption span{ display:block; font-weight:400; font-size:.85rem; color:var(--slate); }
.revbtn{ position:absolute; top:42%; transform:translateY(-50%); z-index:2; width:44px; height:44px; border-radius:50%;
  border:0; background:var(--navy); color:#fff; font-size:1.9rem; line-height:1; cursor:pointer; box-shadow:0 6px 14px -6px rgba(0,0,0,.5); }
.revbtn:hover{ background:var(--navy-deep); }
.revbtn.prev{ left:-22px; } .revbtn.next{ right:-22px; }
.revmore{ margin-top:.6rem; } .revmore a{ font-weight:600; color:var(--navy); }
@media (max-width:1000px){ .revtrack{ grid-auto-columns:calc((100% - 1.25rem)/2); } }
@media (max-width:640px){
  .revtrack{ grid-auto-columns:86%; }
  .revbtn{ width:38px; height:38px; font-size:1.6rem; }
  .revbtn.prev{ left:-8px; } .revbtn.next{ right:-8px; }
}
@media (min-width:1180px){ .revbtn.prev{ left:-62px; } .revbtn.next{ right:-62px; } }
@media (min-width:641px) and (max-width:1179px){ .revs{ padding-inline:30px; } .revbtn.prev{ left:-10px; } .revbtn.next{ right:-10px; } }
@media (max-width:640px){
  .revs{ padding-bottom:50px; }
  .revbtn{ top:auto; bottom:0; transform:none; }
  .revbtn.prev{ left:calc(50% - 46px); } .revbtn.next{ right:calc(50% - 46px); }
}

/* Launch banner above the header */
.launch{ background:var(--signal); color:var(--navy-deep); text-align:center;
  font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:1.15rem; letter-spacing:.04em;
  text-transform:uppercase; padding:.5rem 1rem; line-height:1.25; }
@media (max-width:460px){ .launch{ font-size:1rem; padding:.45rem .75rem; } }
