/* =========================================================
   Mellon Mechanical, Inc. — site stylesheet
   ========================================================= */

/* ---- base ---- */
html{scroll-behavior:smooth;scroll-padding-top:clamp(100px,10vw,195px)}
body{margin:0;background:#ffffff;color:#0b0b0c;font-family:'Roboto Condensed',Arial Narrow,Arial,sans-serif;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
a{color:#9e0d2e}a:hover{color:#7a0923}
img{display:block;max-width:100%}
.mm{--g:clamp(20px,6.8vw,130px)}
.wrap{width:calc(100% - 2*var(--g));max-width:1660px;margin-inline:auto}
.disp{font-family:'Anton',Impact,'Arial Narrow',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.005em;line-height:1.02;margin:0}
.eyebrow{display:flex;align-items:center;gap:clamp(12px,1.4vw,24px);font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:clamp(15px,1.3vw,25px);line-height:1.1;margin:0}
.eyebrow::after{content:"";flex:1 1 auto;height:3px;background:#9e0d2e;min-width:40px}
.eyebrow.white::after{background:#ffffff}
.eyebrow a{color:inherit;text-decoration:none}.eyebrow a:hover{color:#9e0d2e}

/* ---- buttons + navigation ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px clamp(20px,1.6vw,30px);background:#9e0d2e;color:#ffffff;text-decoration:none;text-transform:uppercase;font-weight:600;letter-spacing:.06em;font-size:clamp(14px,1vw,18px);border:0;border-radius:2px;cursor:pointer;font-family:inherit;transition:background .15s}
.btn:hover{background:#7a0923;color:#ffffff}
.btn.hdr-cta{min-height:40px;padding:8px clamp(14px,1.1vw,20px);font-size:clamp(13px,.85vw,15px);letter-spacing:.05em}
.btn.light{background:#f4f1ec;color:#141414}.btn.light:hover{background:#ffffff;color:#141414}
.btn.ghost{background:transparent;color:#ffffff;box-shadow:inset 0 0 0 2px #ffffff}.btn.ghost:hover{background:#ffffff;color:#9e0d2e}
.btn:focus-visible,.navlink:focus-visible,.acc-btn:focus-visible,.menu-btn:focus-visible,.foot a:focus-visible,.card:focus-visible,.chip:focus-visible{outline:3px solid #1d64d8;outline-offset:3px}
.navlink{color:#141414;text-decoration:none;text-transform:uppercase;font-weight:500;letter-spacing:.04em;font-size:clamp(14px,1vw,18px);display:inline-flex;align-items:center;gap:6px;padding:12px 0;background:none;border:0;cursor:pointer;font-family:inherit}
.navlink:hover,.navlink[aria-current="page"]{color:#9e0d2e}
.dd{position:relative}
.dd-menu{display:none;position:absolute;top:100%;left:-18px;min-width:250px;background:#ffffff;box-shadow:0 12px 30px rgba(0,0,0,.14);border-top:3px solid #9e0d2e;padding:8px 0;z-index:20}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:block}
.dd-menu a{display:block;padding:10px 18px;color:#141414;text-decoration:none;text-transform:uppercase;font-size:15px;font-weight:500;letter-spacing:.03em}
.dd-menu a:hover{background:#f3f1f1;color:#9e0d2e}
.desk-nav{display:flex}.menu-btn{display:none}.hdr-panel{display:block}

/* ---- layout ---- */
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,96px);align-items:end}
.hero-grid.hero-grid-home{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start}
.just{text-align:justify;hyphens:auto}
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,4.5vw,86px)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(18px,1.8vw,32px)}
.card{display:flex;flex-direction:column;gap:10px;background:#ffffff;border-top:5px solid #9e0d2e;padding:clamp(24px,2vw,36px);text-decoration:none;color:#0b0b0c;transition:box-shadow .15s,transform .15s}
a.card:hover{box-shadow:0 14px 30px rgba(0,0,0,.1);transform:translateY(-2px);color:#0b0b0c}
.svc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(20px,4vw,80px);padding:clamp(36px,3.4vw,62px) 0;border-bottom:4px solid #e2dfdf;scroll-margin-top:20px}
.chip{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:2px solid #9e0d2e;color:#9e0d2e;text-decoration:none;text-transform:uppercase;font-weight:600;letter-spacing:.04em;font-size:15px;border-radius:2px}
.chip:hover{background:#9e0d2e;color:#ffffff}
.lead{font-size:clamp(17px,1.35vw,26px);line-height:1.4;margin:0}
.body{font-size:clamp(17px,1.2vw,22px);line-height:1.5;margin:0}
.todo{display:inline-block;background:#fff3c4;border:2px dashed #a37400;color:#4d3900;font-weight:600;font-size:16px;line-height:1.4;padding:8px 12px;border-radius:4px}
.acc-btn{width:100%;display:flex;align-items:center;gap:clamp(16px,1.8vw,34px);background:none;border:0;padding:clamp(18px,2vw,30px) 0;text-align:left;cursor:pointer;font-family:inherit;color:inherit}

/* ---- forms ---- */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px clamp(20px,2.4vw,44px)}
.field label,.field legend{display:block;font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:15px;margin:0 0 8px;padding:0}
.field fieldset{border:0;margin:0;padding:0;min-width:0}
.field input[type=text],.field input[type=tel],.field input[type=email],.field select,.field textarea{width:100%;font-family:inherit;font-size:17px;padding:12px 14px;border:1px solid #c9c6c6;border-radius:4px;background:#ffffff;color:#0b0b0c;min-height:52px}
.field select{appearance:none;-webkit-appearance:none;padding-right:48px}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(158,13,46,.35);border-color:#9e0d2e}
.field .err{color:#9e0d2e;font-size:15px;font-weight:500;margin:6px 0 0}
.field .radio{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:8px 16px;background:#ffffff;border:1px solid #c9c6c6;border-radius:4px;font-size:16px;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.field .radio input{width:14px;height:14px;flex:0 0 auto;accent-color:#9e0d2e;margin:0}
.btn:disabled{opacity:.6}
.submit-btn:focus-visible{outline:3px solid #1d64d8;outline-offset:3px}

/* ---- footer ---- */
.foot{display:flex;flex-wrap:wrap;gap:clamp(28px,3vw,56px)}
.foot a{color:#ffffff;text-decoration:none}.foot a:hover{color:#ff9fb2}
.fcol{border-left:3px solid #ffffff;padding-left:clamp(20px,2vw,36px)}.fcol.first{border-left:0;padding-left:0}
.fhead{color:#e0183f;text-transform:uppercase;font-weight:500;font-size:clamp(24px,1.8vw,34px);letter-spacing:.02em;margin:0 0 14px;line-height:1}
.flist{list-style:none;margin:0;padding:0;display:grid;gap:14px;text-transform:uppercase;font-weight:500;letter-spacing:.06em;font-size:clamp(15px,1.05vw,19px)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- sticky header ---- */
.site-hdr{transition:box-shadow .25s}.site-hdr .hdr-row{transition:min-height .25s ease}.site-hdr .logo-img{transition:width .25s ease}.site-hdr.is-compact{box-shadow:0 4px 18px rgba(0,0,0,.1)!important}.site-hdr.is-compact .hdr-row{min-height:clamp(62px,5.2vw,92px)!important}.site-hdr.is-compact .logo-img{width:clamp(130px,9.6vw,190px)!important}

/* ---- interaction polish ---- */
::selection{background:#9e0d2e;color:#ffffff}
a,button,.btn,.card,.chip,.navlink,.dd-menu a,.flist a,input,select,textarea,.radio{transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .25s ease,transform .25s cubic-bezier(.2,.7,.2,1),opacity .2s ease,padding .2s ease}
.btn{position:relative;will-change:transform}
.btn:active{transform:translateY(0) scale(.98)!important;box-shadow:none!important}
.navlink{position:relative}
.navlink::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:2px;background:#9e0d2e;transform:scaleX(0);transform-origin:left center;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.navlink[aria-current="page"]::after{transform:scaleX(1)}
.menu-btn::after,#mobile-menu .navlink::after{display:none}
.navlink svg{transition:transform .25s ease}
.dd-menu{display:block;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease,transform .25s cubic-bezier(.2,.7,.2,1),visibility 0s linear .25s}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .25s cubic-bezier(.2,.7,.2,1),visibility 0s}
.dd-menu a{border-left:3px solid transparent}
.dd-menu a:hover,.dd-menu a:focus-visible{border-left-color:#9e0d2e;padding-left:24px}
.dd:hover > .navlink svg,.dd:focus-within > .navlink svg{transform:rotate(180deg)}
.field input[type=text]:hover,.field input[type=tel]:hover,.field input[type=email]:hover,.field input:not([type]):hover,.field select:hover,.field textarea:hover{border-color:#8a8686}
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 4px rgba(158,13,46,.12)}
.field .radio:hover{border-color:#9e0d2e}
.field .radio:has(input:checked){border-color:#9e0d2e;box-shadow:inset 0 0 0 1px #9e0d2e;color:#9e0d2e}
.split-bg{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.acc-btn svg{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.acc-btn .disp{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.svc .disp{transition:transform .3s cubic-bezier(.2,.7,.2,1),color .2s ease}
li > .ico-circle,div > .ico-circle{transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease}
@media (hover:hover){
  .btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(158,13,46,.28)}
  .btn.light:hover{background:#9e0d2e!important;color:#ffffff!important;box-shadow:inset 0 0 0 2px #9e0d2e,0 10px 22px rgba(158,13,46,.25)!important}
  .on-red .btn.light:hover{background:#ffffff!important;color:#9e0d2e!important;box-shadow:0 10px 22px rgba(0,0,0,.25)!important}
  .btn.ghost:hover{box-shadow:inset 0 0 0 2px #ffffff,0 10px 22px rgba(0,0,0,.22)}
  .navlink:hover::after{transform:scaleX(1)}
  a.card:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(0,0,0,.12)}
  a.card:hover > span:first-child{color:#7a0923}
  .chip:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(158,13,46,.22)}
  .split-panel:hover .split-bg,.split-panel-alt:hover .split-bg{transform:scale(1.045)}
  .acc-btn:hover .disp{transform:translateX(6px)}
  .acc-btn:hover svg{transform:rotate(90deg)}
  .svc:hover .disp{transform:translateX(6px)}
  li:hover > .ico-circle,div:hover > .ico-circle{transform:scale(1.08);box-shadow:0 8px 18px rgba(158,13,46,.3)}
  .flist a:hover{padding-left:6px}
  .foot a[aria-label]:hover,.top-social a:hover{transform:translateY(-2px);opacity:.85}
  a[aria-label="Mellon Mechanical, Inc. home"]:hover img{opacity:.88}
  p > a[href^="tel:"]:not(.topbar-phone,.no-underline,.office-phone):hover,p > a[href^="mailto:"]:hover{text-decoration:underline;text-underline-offset:3px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation:none!important;scroll-behavior:auto!important}
}

/* ---- load + reveal animation ---- */
@keyframes mmReveal{from{opacity:0;transform:translateX(-.6em);clip-path:inset(0 100% 0 0)}to{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}
@keyframes mmFadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes mmFadeDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes mmLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hdr-row > a,.hdr-row > button,.desk-nav > *{animation:mmFadeDown .6s cubic-bezier(.2,.7,.2,1) backwards}
.desk-nav > *:nth-child(1){animation-delay:.10s}.desk-nav > *:nth-child(2){animation-delay:.16s}.desk-nav > *:nth-child(3){animation-delay:.22s}.desk-nav > *:nth-child(4){animation-delay:.28s}.desk-nav > *:nth-child(5){animation-delay:.34s}.desk-nav > *:nth-child(6){animation-delay:.40s}
.hdr-row > .hdr-cta{animation-delay:.48s}
.hero-sec .eyebrow{animation:mmFadeUp .9s cubic-bezier(.16,1,.3,1) .15s backwards}
.hero-sec .eyebrow::after{transform-origin:left center;animation:mmLine 1.1s cubic-bezier(.2,.7,.2,1) .35s backwards}
.hero-sec h1{animation:mmReveal 1.1s cubic-bezier(.16,1,.3,1) .3s backwards}
.hero-sec h1:has(> .line){animation:none}
.hero-sec h1 > .line{animation:mmReveal 1.1s cubic-bezier(.16,1,.3,1) backwards}
.hero-sec h1 > span:nth-child(1){animation-delay:.3s}.hero-sec h1 > span:nth-child(2){animation-delay:.55s}.hero-sec h1 > span:nth-child(3){animation-delay:.8s}
.hero-sec .hero-grid > div > *{animation:mmFadeUp 1s cubic-bezier(.16,1,.3,1) backwards}
.hero-sec .hero-grid > div > *:nth-child(1){animation-delay:.8s}.hero-sec .hero-grid > div > *:nth-child(2){animation-delay:.92s}.hero-sec .hero-grid > div > *:nth-child(3){animation-delay:1.04s}.hero-sec .hero-grid > div > *:nth-child(4){animation-delay:1.16s}
.hero-sec nav[aria-label="Jump to a service"]{animation:mmFadeUp .8s cubic-bezier(.2,.7,.2,1) 1s backwards}
.mm-reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.mm-reveal.mm-in{opacity:1;transform:none}
/* headings: wipe in from the left, one line at a time */
h2.disp.mm-reveal{opacity:0;transform:translateX(-.6em);clip-path:inset(0 100% 0 0);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1),clip-path 1.1s cubic-bezier(.16,1,.3,1);transition-delay:.08s}
h2.disp.mm-reveal.mm-in{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
h2.disp.mm-reveal:has(> .line){opacity:1;transform:none;clip-path:none;transition:none}
h2.disp.mm-reveal > .line{opacity:0;transform:translateX(-.6em);clip-path:inset(0 100% 0 0);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1),clip-path 1.1s cubic-bezier(.16,1,.3,1)}
h2.disp.mm-reveal.mm-in > .line{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
h2.disp.mm-reveal > span:nth-child(1){transition-delay:.08s}h2.disp.mm-reveal > span:nth-child(2){transition-delay:.26s}h2.disp.mm-reveal > span:nth-child(3){transition-delay:.44s}
/* subheads + intro copy: eased rise */
.eyebrow.mm-reveal,h3.mm-reveal,.lead.mm-reveal{transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
h3.mm-reveal{transition-delay:.1s}.lead.mm-reveal{transition-delay:.3s}
.cards.mm-reveal,.svc.mm-reveal{transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1);transition-delay:.15s}
.eyebrow.mm-reveal::after{transform:scaleX(0);transform-origin:left center;transition:transform 1.1s cubic-bezier(.2,.7,.2,1) .2s}
.eyebrow.mm-reveal.mm-in::after{transform:scaleX(1)}

/* ---- video controls ---- */
.vid-btn{position:absolute;right:clamp(12px,2vw,28px);bottom:clamp(12px,2vw,28px);width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.85);color:#9e0d2e;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.vid-btn:hover{background:#ffffff;transform:scale(1.06)}.vid-btn:focus-visible{outline:3px solid #1d64d8;outline-offset:3px}

/* ---- mobile menu + small-screen fixes ---- */
#mobile-menu{max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain;animation:mmFadeDown .3s cubic-bezier(.16,1,.3,1) backwards}
.menu-backdrop{position:fixed;inset:0;z-index:-1;border:0;padding:0;margin:0;background:rgba(11,11,12,.45);cursor:pointer;animation:mmBackdrop .3s ease backwards}
@keyframes mmBackdrop{from{opacity:0}to{opacity:1}}
a.sr:focus{position:fixed;left:16px;top:16px;width:auto;height:auto;clip:auto;z-index:100;background:#ffffff;color:#9e0d2e;padding:12px 18px;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.2)}

/* ---- flip cards ---- */
.card.flip,a.card.flip:hover{background:transparent;border-top:0;padding:0;box-shadow:none;transform:none;perspective:1400px;display:block;gap:0}
.flip-inner{position:relative;display:grid;height:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.flip .face{grid-area:1/1;display:flex;flex-direction:column;gap:10px;padding:clamp(24px,2vw,36px);border-top:5px solid #9e0d2e;background:#ffffff;color:#0b0b0c;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:box-shadow .4s ease}
.flip .back{transform:rotateY(180deg);background:#9e0d2e;color:#ffffff;border-top-color:#0b0b0c;justify-content:center;align-items:flex-start}
.flip .back .disp{color:#ffffff}
.back-cta{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;font-weight:700;letter-spacing:.06em;font-size:15px;margin-top:6px}
.back-cta svg{transition:transform .3s cubic-bezier(.16,1,.3,1)}
@media (hover:hover){
  .card.flip:hover .flip-inner{transform:rotateY(180deg)}
  .card.flip:hover .face{box-shadow:0 18px 36px rgba(0,0,0,.14)}
  .card.flip:hover .back-cta svg{transform:translateX(4px)}
}
.card.flip:focus-visible .flip-inner{transform:rotateY(180deg)}
@keyframes mmFlipIn{from{transform:rotateY(-180deg)}to{transform:rotateY(0deg)}}
.cards.mm-reveal:not(.mm-in) .card.flip .flip-inner{transform:rotateY(-180deg)}
.cards.mm-in .card.flip .flip-inner{animation:mmFlipIn 1.1s cubic-bezier(.16,1,.3,1) backwards}
.cards.mm-in .card.flip:nth-child(1) .flip-inner{animation-delay:0.15s}.cards.mm-in .card.flip:nth-child(2) .flip-inner{animation-delay:0.27s}.cards.mm-in .card.flip:nth-child(3) .flip-inner{animation-delay:0.39s}.cards.mm-in .card.flip:nth-child(4) .flip-inner{animation-delay:0.51s}.cards.mm-in .card.flip:nth-child(5) .flip-inner{animation-delay:0.63s}.cards.mm-in .card.flip:nth-child(6) .flip-inner{animation-delay:0.75s}.cards.mm-in .card.flip:nth-child(7) .flip-inner{animation-delay:0.87s}.cards.mm-in .card.flip:nth-child(8) .flip-inner{animation-delay:0.99s}
@media (prefers-reduced-motion:reduce){.card.flip:hover .flip-inner,.card.flip:focus-visible .flip-inner,.cards.mm-reveal:not(.mm-in) .card.flip .flip-inner{transform:none}}

/* ---- video CTA band ---- */
.cta-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:grayscale(.35) contrast(1.05);transform:scale(1.14);transition:opacity 1.8s ease,transform 3.2s cubic-bezier(.16,1,.3,1)}
.cta-band.is-live .cta-video{opacity:1;transform:scale(1.04);animation:mmDrift 18s ease-in-out 3.2s infinite alternate}
@keyframes mmDrift{from{transform:scale(1.04) translateX(0)}to{transform:scale(1.12) translateX(-2%)}}
.cta-tint{position:absolute;inset:0;background:linear-gradient(90deg,rgba(158,13,46,.9) 0%,rgba(158,13,46,.84) 55%,rgba(150,10,42,.9) 100%)}
.cta-band .btn.light{color:#141414}
@media (prefers-reduced-motion:reduce){.cta-band .cta-video{transform:none;animation:none}}

/* ---- mega menu ---- */
.dd.mega{position:static}
.dd-menu.mega-panel{left:0;right:auto;width:100vw;margin-left:calc(50% - 50vw);min-width:0;padding:0;border-top:3px solid #9e0d2e;box-shadow:0 24px 48px rgba(0,0,0,.16);z-index:40;transform:translateY(12px)}
.dd.mega:hover .mega-panel,.dd.mega:focus-within .mega-panel{opacity:1;visibility:visible;transform:none;transition:opacity .25s ease,transform .45s cubic-bezier(.16,1,.3,1),visibility 0s}
.mega-grid{width:calc(100% - 2*var(--g));max-width:1660px;margin:0 auto;display:grid;grid-template-columns:minmax(240px,1.1fr) minmax(0,2.2fr) minmax(240px,1.3fr);gap:clamp(24px,2.6vw,48px);padding:clamp(26px,2.4vw,40px) 0}
.mega-feature{background:#9e0d2e;color:#ffffff;padding:clamp(24px,2vw,34px);display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.mega-eyebrow{margin:0;text-transform:uppercase;font-weight:600;letter-spacing:.08em;font-size:14px}
.mega-head{font-size:clamp(30px,2.5vw,46px);line-height:1;color:#ffffff}
.mega-copy{margin:0;font-size:17px;line-height:1.4}
.dd-menu.mega-panel a{padding:0;border-left:0;text-transform:none;letter-spacing:0;font-size:inherit;font-weight:inherit;background:transparent}
.dd-menu.mega-panel a.mega-cta,.mega-panel-builder a.mega-cta{display:inline-flex;margin-top:auto;padding:12px 22px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;font-size:15px;background:#f4f1ec;color:#141414}
.dd-menu.mega-panel a.mega-cta:hover,.mega-panel-builder a.mega-cta:hover{background:#ffffff!important;color:#9e0d2e!important}
.dd-menu.mega-panel a.mega-phone,.mega-panel-builder a.mega-phone{white-space:nowrap;color:#ffffff;font-weight:600;font-size:15px;letter-spacing:.03em;padding:4px 0}
.mega-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-template-rows:repeat(4,auto);column-gap:clamp(20px,2.4vw,40px)}
.mega-list li{border-bottom:2px solid #eeebeb}
.dd-menu.mega-panel a.mega-item,.mega-panel-builder a.mega-item{display:flex;align-items:center;gap:16px;padding:14px 8px 14px 4px;color:#0b0b0c}
.mega-num{color:#9e0d2e;font-size:34px;line-height:1;min-width:36px;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.mega-title{display:block;color:#9e0d2e;font-weight:700;text-transform:uppercase;font-size:17px;letter-spacing:.02em}
.mega-desc{display:block;font-size:15px;color:#4b4747;margin-top:2px}
.dd-menu.mega-panel a.mega-item:hover,.mega-panel-builder a.mega-item:hover{background:#f6f3f3}.dd-menu.mega-panel a.mega-item:hover .mega-num{transform:translateX(6px)}
.mega-tiles{display:grid;grid-template-rows:1fr 1fr;gap:14px}
.dd-menu.mega-panel a.mega-tile,.mega-panel-builder a.mega-tile{position:relative;display:block;overflow:hidden;min-height:132px;color:#ffffff}
.mega-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.mega-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,11,12,.72) 0%,rgba(11,11,12,.1) 70%)}
.mega-tile:hover img{transform:scale(1.06)}
.mega-tile-label{position:absolute;left:18px;right:18px;bottom:14px;z-index:1;display:flex;flex-direction:column;gap:4px}
.mega-tile-label .disp{font-size:26px;line-height:1}
.mega-tile-cta{display:inline-flex;align-items:center;gap:6px;text-transform:uppercase;font-weight:700;font-size:13px;letter-spacing:.06em}
.mega-foot{width:calc(100% - 2*var(--g));max-width:1660px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 24px;padding:16px 0 20px;border-top:1px solid #eeebeb}
.mega-foot p{margin:0;font-size:15px;color:#3a3636}
.dd-menu.mega-panel .mega-foot p a,.mega-panel-builder .mega-foot p a{display:inline;color:#9e0d2e;font-weight:700;white-space:nowrap}
.dd-menu.mega-panel a.mega-all,.mega-panel-builder a.mega-all{display:inline-flex;align-items:center;gap:6px;color:#9e0d2e;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:14px}
.dd-menu.mega-panel a.mega-all:hover,.mega-panel-builder a.mega-all:hover{color:#7a0923}
.mega-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px clamp(20px,2.4vw,40px);align-content:start;padding-top:6px}
.mega-info-row{border-bottom:2px solid #eeebeb;padding-bottom:16px}
.mega-info-row .mega-title{margin:0 0 6px}
.mega-info-row .mega-desc{margin:0;line-height:1.45}
.dd-menu.mega-panel a.mega-link,.mega-panel-builder a.mega-link{display:inline-flex;align-items:center;gap:6px;margin-top:8px;color:#9e0d2e;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:14px}
.dd-menu.mega-panel a.mega-link:hover,.mega-panel-builder a.mega-link:hover{color:#7a0923}
.dd-menu.mega-panel a.mega-big,.mega-panel-builder a.mega-big{display:inline-block;color:#0b0b0c;font-weight:600;font-size:22px}
.dd-menu.mega-panel a.mega-email,.mega-panel-builder a.mega-email{font-size:17px;overflow-wrap:anywhere}
.dd-menu.mega-panel a.mega-big:hover,.mega-panel-builder a.mega-big:hover{color:#9e0d2e}
.mega-towns{align-self:start}.mega-towns .mega-title{margin:6px 0 12px}
.mega-towns ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.mega-towns li{background:#f6f3f3;border-left:4px solid #9e0d2e;padding:9px 14px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:14px}
.mega-tiles-single .mega-tile{min-height:280px}
/* Page Builder panels (Appearance → Mega Menus). Same frame as the menu-setting panels,
   without the plain-dropdown link styles, so any WPBakery element keeps its own look. */
.mega-panel-builder{position:absolute;top:100%;left:0;right:auto;width:100vw;margin-left:calc(50% - 50vw);background:#ffffff;border-top:3px solid #9e0d2e;box-shadow:0 24px 48px rgba(0,0,0,.16);z-index:40;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .2s ease,transform .25s cubic-bezier(.2,.7,.2,1),visibility 0s linear .25s}
.mega-builder{width:calc(100% - 2*var(--g));max-width:1660px;margin:0 auto;padding:clamp(26px,2.4vw,40px) 0;--mega-gap:clamp(24px,2.6vw,48px)}
.mega-builder .vc_row{margin-left:calc(var(--mega-gap) / -2);margin-right:calc(var(--mega-gap) / -2);margin-bottom:0}
.mega-builder .vc_row + .vc_row{margin-top:var(--mega-gap)}
.mega-builder .vc_column_container > .vc_column-inner{padding-left:calc(var(--mega-gap) / 2);padding-right:calc(var(--mega-gap) / 2)}
.mega-builder .wpb_content_element:last-child{margin-bottom:0}
.mega-builder .vc_column-inner > .wpb_wrapper > * + *{margin-top:18px}
/* Row class "mellon-mega-grid": the design's three columns (red box, wide middle, side column). */
.mega-builder .vc_row.mellon-mega-grid{display:grid;grid-template-columns:minmax(240px,1.1fr) minmax(0,2.2fr) minmax(240px,1.3fr);gap:var(--mega-gap);margin-left:0;margin-right:0}
.mega-builder .vc_row.mellon-mega-grid::before,.mega-builder .vc_row.mellon-mega-grid::after{display:none}
.mega-builder .vc_row.mellon-mega-grid > .vc_column_container{width:auto;float:none;min-width:0}
.mega-builder .vc_row.mellon-mega-grid > .vc_column_container > .vc_column-inner{height:100%;padding-left:0;padding-right:0}
.mega-builder .vc_row.mellon-mega-grid .vc_column-inner > .wpb_wrapper{height:100%}
.mega-builder .wpb_wrapper > .mega-feature:only-child,.mega-builder .wpb_wrapper > .mega-tiles:only-child,.mega-builder .wpb_wrapper > .mega-list:only-child{height:100%}
.mega-panel-builder :is(.mega-feature,.mega-list,.mega-tiles,.mega-info,.mega-foot) a{text-decoration:none}

/* ---- state styles ---- */
[hidden]{display:none!important}
.ico{display:inline-flex}
.menu-btn .ico-close,.menu-btn[aria-expanded="true"] .ico-open{display:none}
.menu-btn[aria-expanded="true"] .ico-close{display:inline-flex}
.acc-btn .ico-minus,.acc-btn[aria-expanded="true"] .ico-plus{display:none}
.acc-btn[aria-expanded="true"] .ico-minus{display:inline-flex}
.vid-btn .ico-play,.vid-btn.is-paused .ico-pause{display:none}
.vid-btn.is-paused .ico-play{display:inline-flex}

/* =========================================================
   Page components
   ========================================================= */

/* ---- site wrapper + top bar ---- */
.mm{width:100%;overflow-x:clip;background:#ffffff}
.topbar{background:#9e0d2e;color:#ffffff}
.topbar-inner{display:flex;align-items:center;justify-content:center;position:relative;min-height:clamp(44px, 4.4vw, 85px)}
.topbar-text{margin:0;font-weight:500;letter-spacing:.08em;text-transform:uppercase;font-size:clamp(14px, 1.2vw, 23px);text-align:center}
a.topbar-phone{color:#ffffff;text-decoration:none}
.top-social{position:absolute;right:0;top:50%;transform:translateY(-50%)}
a.top-social-link{color:#ffffff;display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center}

/* ---- header ---- */
.hdr-shell{position:sticky;top:0;z-index:50;height:clamp(92px, 9.6vw, 185px);pointer-events:none}
.site-hdr{position:relative;background:#ffffff;box-shadow:0 1px 0 #e6e3e3;pointer-events:auto}
.hdr-slant{position:absolute;left:0;top:0;bottom:0;width:calc(var(--g) + clamp(300px, 26vw, 500px));background:#ffffff;clip-path:polygon(0 0, 80% 0, 100% 100%, 0 100%)}
.hdr-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:clamp(92px, 9.6vw, 185px)}
.logo-link{display:block;flex:0 0 auto}
.logo-img{width:clamp(190px, 17.6vw, 338px);height:auto}
.desk-nav{align-items:center;gap:clamp(22px, 3.1vw, 60px)}

/* ---- colour + text helpers ---- */
.c-ink{color:#0b0b0c}

/* ---- mega menu variants ---- */
.mega-list-3{grid-template-rows:repeat(3, auto)}
.mega-tiles-single{grid-template-rows:1fr}

/* ---- mobile menu ---- */
.menu-btn{align-items:center;justify-content:center;width:48px;height:48px;padding:0;color:#9e0d2e}
.mobile-menu{position:relative;background:#ffffff;border-top:3px solid #9e0d2e;box-shadow:0 14px 30px rgba(0,0,0,.12)}
.mobile-menu-inner{display:flex;flex-direction:column;padding:8px 0 22px}
.mobile-link{padding:14px 0;border-bottom:1px solid #e6e3e3}
.mobile-cta{margin-top:18px}
.mobile-call{margin-top:10px;border:2px solid #9e0d2e}

/* ---- page hero ---- */
.hero-band{position:relative;background:#f9f7f7}
.hero-slant{position:absolute;left:0;top:0;bottom:0;width:72%;background:#fdfdfd;clip-path:polygon(0 0, 38% 0, 72% 100%, 0 100%)}
.hero-home{position:relative;padding:clamp(40px, 4.6vw, 88px) 0 clamp(48px, 4.4vw, 84px)}
.hero-grid-home{margin-top:clamp(28px, 3.2vw, 60px)}
.hero-title-home{font-size:clamp(38px, 4.9vw, 94px);line-height:1;color:#0b0b0c}
.line{display:block}
.foot-logo-link{display:block}
.c-red{color:#9e0d2e}
.hero-copy-home{padding-top:clamp(0px, .6vw, 10px)}
.hero-text-first{font-size:clamp(17px, 1.35vw, 26px);line-height:1.4;margin:clamp(16px, 1.6vw, 30px) 0 0}
.hero-text{font-size:clamp(17px, 1.35vw, 26px);line-height:1.4;margin:1em 0 0}
.hero-actions-home{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:clamp(22px, 2vw, 38px)}

/* ---- homepage hero video ---- */
.hero-media{position:relative}

/* ---- homepage hero video ---- */
.select-wrap{position:relative}
.hero-video{display:block;width:100%;aspect-ratio:1920 / 596;min-height:260px;object-fit:cover;object-position:60% 55%}
.since-badge{position:absolute;left:0;bottom:0;background:rgba(158, 13, 46, .82);color:#ffffff;padding:clamp(14px, 1.9vw, 36px) clamp(28px, 4vw, 70px) clamp(14px, 1.9vw, 36px) var(--g);min-width:clamp(240px, 27vw, 521px)}
.since-text{margin:0;text-transform:uppercase;font-weight:600;letter-spacing:.08em;font-size:clamp(12px, 1vw, 19px);line-height:1.45}
.since-line-wrap{display:inline-flex;align-items:center;gap:12px}
.since-line{display:inline-block;width:clamp(60px, 7.3vw, 140px);height:2px;background:#ffffff}

/* ---- homepage residential / commercial panels ---- */
.split-panel{position:relative;overflow:hidden;min-height:clamp(420px, 31vw, 595px);display:flex;align-items:center}
.split-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split-fade-res{position:absolute;inset:0;background:linear-gradient(90deg, rgba(255,255,255,.93) 0%, rgba(255,255,255,.86) 52%, rgba(255,255,255,.45) 100%)}
.split-content-res{position:relative;padding:clamp(40px, 4vw, 80px) clamp(24px, 3vw, 60px) clamp(40px, 4vw, 80px) var(--g);width:100%;max-width:860px}
.split-eyebrow{color:#0b0b0c;max-width:640px}
.section-title{font-size:clamp(38px, 4.2vw, 80px);margin-top:10px}
.split-text{font-size:clamp(17px, 1.35vw, 26px);line-height:1.35;margin:clamp(14px, 1.4vw, 26px) 0 clamp(26px, 2.6vw, 50px);max-width:500px}
.split-panel-alt{position:relative;overflow:hidden;min-height:clamp(420px, 31vw, 595px);display:flex;align-items:center;border-left:2px solid #ffffff}
.split-fade-com{position:absolute;inset:0;background:linear-gradient(90deg, rgba(255,255,255,.93) 0%, rgba(255,255,255,.86) 52%, rgba(255,255,255,.3) 100%)}
.split-content-com{position:relative;padding:clamp(40px, 4vw, 80px) var(--g) clamp(40px, 4vw, 80px) clamp(24px, 4.4vw, 86px);width:100%;max-width:900px}

/* ---- homepage services accordion ---- */
.services-sec{background:#f3f1f1;padding:clamp(56px, 5.6vw, 106px) 0 clamp(60px, 6vw, 110px)}
.two-head{align-items:end;margin-top:10px}
.section-title-flush{font-size:clamp(38px, 4.2vw, 80px)}
.services-intro{font-size:clamp(17px, 1.3vw, 25px);line-height:1.45;margin:0;text-align:right;text-wrap:pretty}
.acc-cols{margin-top:clamp(28px, 3vw, 56px);align-items:start}
.acc-list{list-style:none;margin:0;padding:0}
.acc-item{border-bottom:4px solid #e2dfdf}
.acc-heading{margin:0;font-size:inherit;font-weight:inherit}
.acc-num{color:#9e0d2e;font-size:clamp(54px, 4.6vw, 90px);line-height:.85;flex:0 0 auto;min-width:clamp(56px, 4.4vw, 84px)}
.acc-text{flex:1 1 auto;min-width:0}
.acc-title{display:block;color:#9e0d2e;font-weight:700;text-transform:uppercase;font-size:clamp(17px, 1.3vw, 24px);letter-spacing:.01em}
.acc-desc{display:block;font-size:clamp(16px, 1.15vw, 22px);line-height:1.2;margin-top:4px;max-width:470px}
.acc-icon{flex:0 0 auto;color:#9e0d2e;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center}
.acc-panel{padding:0 0 clamp(20px, 2vw, 30px) calc(clamp(56px, 4.4vw, 84px) + clamp(16px, 1.8vw, 34px));display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.acc-call{font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:16px;padding:12px 6px}

/* ---- about band ---- */
.about-band{background:#ad0127;color:#ffffff;padding:clamp(56px, 4.4vw, 84px) 0 clamp(56px, 5vw, 96px)}
.align-center{align-items:center}
.about-copy{max-width:730px}
.c-white{color:#ffffff}
.about-title{font-size:clamp(40px, 4.6vw, 88px);line-height:1.05;margin-top:clamp(10px, 1vw, 18px)}
.about-text{font-size:clamp(17px, 1.35vw, 26px);line-height:1.4;margin:clamp(18px, 1.8vw, 34px) 0 clamp(28px, 2.6vw, 50px)}
.media-frame{position:relative;overflow:hidden;background:#7d0a24}
.media-video-fluid{display:block;width:100%;aspect-ratio:790 / 524;object-fit:cover}
.vid-btn-top{top:clamp(12px, 2vw, 28px);bottom:auto}
.media-caption{position:absolute;right:0;bottom:0;width:65%;background:rgba(173, 1, 39, .78);padding:clamp(12px, 1.4vw, 26px) clamp(16px, 1.6vw, 30px)}
.media-caption-text{margin:0;text-transform:uppercase;font-weight:600;letter-spacing:.06em;font-size:clamp(12px, .95vw, 18px);line-height:1.35;text-align:center}

/* ---- contact section + form ---- */
.contact-sec{background:#ffffff;padding:clamp(60px, 5.4vw, 104px) 0 clamp(64px, 6vw, 116px)}
.align-start{align-items:start}
.contact-copy{max-width:760px}
.contact-title{font-size:clamp(38px, 3.8vw, 72px);margin-top:8px}
.contact-intro{font-size:clamp(17px, 1.35vw, 26px);line-height:1.3;font-weight:500;margin:14px 0 clamp(28px, 2.6vw, 48px)}
.contact-list{list-style:none;margin:0;padding:0;display:grid;gap:clamp(22px, 2.2vw, 40px)}
.contact-item{display:flex;align-items:center;gap:clamp(16px, 1.4vw, 24px)}
.contact-icon{flex:0 0 auto;width:clamp(54px, 4.1vw, 79px);height:clamp(54px, 4.1vw, 79px);border-radius:50%;background:#9e0d2e;color:#ffffff;display:inline-flex;align-items:center;justify-content:center}
a.contact-phone{display:inline-block;padding:8px 0;color:#0b0b0c;text-decoration:none;font-weight:500;font-size:clamp(22px, 2vw, 38px)}
a.contact-email{color:#0b0b0c;text-decoration:none;font-weight:500;font-size:clamp(17px, 1.6vw, 30px);overflow-wrap:anywhere;display:inline-block;padding:8px 0}
.contact-area{margin:0;font-weight:500;font-size:clamp(22px, 2vw, 38px);line-height:1.2}
.contact-note{margin:0;font-weight:500;font-size:clamp(22px, 2vw, 38px)}
.form-card{background:#eeeded;border-radius:8px;padding:clamp(22px, 2vw, 34px) clamp(20px, 1.9vw, 34px) clamp(26px, 2.2vw, 40px)}
.form-status{background:#ffffff;border-left:0;border-top:4px solid #9e0d2e;padding:18px 20px;margin-bottom:20px}
.form-status-title{margin:0;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#9e0d2e}
.form-status-text{margin:6px 0 0;font-size:17px;line-height:1.4}
.fw-bold{font-weight:700}
.select-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none}
.field-full{grid-column:1 / -1}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 24px;margin-top:clamp(22px, 2vw, 34px)}
.form-submit{font-size:clamp(17px, 1.3vw, 24px);padding-inline:clamp(24px, 2vw, 36px)}
.form-urgent{margin:0 auto 0 0;flex:1 1 260px;text-align:center;text-transform:uppercase;font-weight:600;letter-spacing:.04em;font-size:clamp(16px, 1.2vw, 22px);line-height:1.2}
.no-underline{text-decoration:none}

/* ---- footer ---- */
.site-footer{position:relative;background:#07080b;color:#ffffff;overflow:hidden}
.footer-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center}
.footer-inner{position:relative;padding:clamp(56px, 6.6vw, 128px) 0 clamp(40px, 4vw, 70px)}
.foot-spread{justify-content:space-between}
.fcol-brand{flex:0 1 368px}
.foot-logo{width:clamp(220px, 19vw, 368px);height:auto;border-radius:6px}
.foot-tagline{margin:clamp(22px, 2.2vw, 40px) 0 clamp(16px, 1.4vw, 26px);text-transform:uppercase;font-weight:500;letter-spacing:.06em;font-size:clamp(18px, 1.5vw, 28px)}
.foot-social{display:inline-flex;width:44px;height:44px;align-items:center}
.fcol-auto{flex:0 0 auto}
.flist-2col{grid-template-columns:repeat(2, minmax(0, auto));column-gap:clamp(28px, 3vw, 56px)}
.flist-email{text-transform:none;letter-spacing:.02em}
.flist-address{text-transform:none;letter-spacing:.02em;line-height:1.35}
.copyright{margin:clamp(44px, 4.4vw, 80px) 0 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.18);font-size:15px;letter-spacing:.04em;color:#c9c9cc}

/* ---- inner-page hero ---- */
.page-hero{position:relative;padding:clamp(40px, 4.6vw, 88px) 0 clamp(48px, 4.6vw, 88px)}
.page-hero-grid{margin-top:clamp(24px, 2.6vw, 48px)}
.page-title{font-size:clamp(48px, 6.2vw, 118px);line-height:.98}
.lead-next{margin-top:1em}

/* ---- about page ---- */
.story-band{background:#ad0127;color:#ffffff;padding:clamp(56px, 5vw, 96px) 0}
.story-lead{margin:clamp(18px, 1.8vw, 34px) 0 22px}
.lead-flush{margin:0}
.section-white{background:#ffffff;padding:clamp(60px, 5.6vw, 106px) 0}
.cards-gap-lg{margin-top:clamp(30px, 3vw, 56px)}
.feature-row{display:flex;gap:20px;align-items:flex-start}
.feature-icon{flex:0 0 auto;width:64px;height:64px;border-radius:50%;background:#9e0d2e;color:#ffffff;display:inline-flex;align-items:center;justify-content:center}
.feature-title{margin:0;color:#9e0d2e;text-transform:uppercase;font-size:clamp(19px, 1.4vw, 26px)}
.body-tight{margin-top:6px}
.section-grey{background:#f3f1f1;padding:clamp(60px, 5.6vw, 106px) 0}
.t-right{text-align:right}
.flip-num{color:#9e0d2e;font-size:56px;line-height:1}
.flip-title{font-weight:700;color:#9e0d2e;text-transform:uppercase;font-size:22px}
.flip-back-title{font-size:clamp(30px, 2.4vw, 44px);line-height:1}
.section-more{margin-top:clamp(30px, 3vw, 52px)}

/* ---- video CTA band ---- */
.cta-band{position:relative;overflow:hidden;background:#9e0d2e;color:#f4f1ec;padding:clamp(64px, 6vw, 112px) 0}
.cta-inner{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px 40px}
.cta-title{font-family:'Roboto Condensed', 'Arial Narrow', Arial, sans-serif;font-weight:700;letter-spacing:.03em;line-height:1.05;font-size:clamp(34px, 3.7vw, 70px);color:#f4f1ec}
.cta-actions{display:flex;flex-wrap:wrap;gap:14px}
.lead-strong{margin-top:1em;font-weight:600}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(22px, 2vw, 36px)}
.btn.btn-outline{background:#ffffff;box-shadow:inset 0 0 0 2px #9e0d2e}
.chip-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(32px, 3vw, 56px)}

/* ---- services page ---- */
.svc-sec{background:#f3f1f1;padding:clamp(20px, 2vw, 40px) 0 clamp(60px, 5.6vw, 106px)}
.svc-head{display:flex;gap:clamp(16px, 1.8vw, 32px);align-items:flex-start}
.svc-num{color:#9e0d2e;font-size:clamp(64px, 5.6vw, 108px);line-height:.85}
.svc-title{font-size:clamp(32px, 3vw, 56px)}
.svc-text{margin-top:14px}
.svc-actions{margin-top:22px}
.svc-actions-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}

/* ---- residential / commercial pages ---- */
.split-sec{position:relative;overflow:hidden;background:#ffffff}
.two-flush{gap:0;align-items:stretch}
.media-frame-split{position:relative;min-height:320px;overflow:hidden;background:#e9e4dd}
.split-video-res{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.split-copy{padding:clamp(40px, 4.6vw, 88px) var(--g) clamp(40px, 4.6vw, 88px) clamp(24px, 4.4vw, 86px);background:#ffffff;display:flex;flex-direction:column;justify-content:center}
.split-title{font-size:clamp(36px, 3.6vw, 68px);margin-top:10px}
.split-lead{margin-top:clamp(14px, 1.4vw, 26px)}
.split-body{margin-top:16px}
.section-grey-line{background:#f3f1f1;padding:clamp(60px, 5.6vw, 106px) 0;border-top:2px solid #ffffff}
.cards-gap{margin-top:clamp(28px, 2.8vw, 52px)}
.split-video-com{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}

/* ---- location page ---- */
.align-stretch{align-items:stretch}
.office-title{font-size:clamp(38px, 4vw, 76px);margin-top:10px}
.office-list{list-style:none;margin:clamp(26px, 2.6vw, 48px) 0 0;padding:0;display:grid;gap:clamp(22px, 2vw, 36px)}
.office-label{margin:0;color:#9e0d2e;text-transform:uppercase;font-size:clamp(18px, 1.3vw, 24px)}
.directions-link{display:inline-block;margin-top:2px;padding:12px 0;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:15px}
a.office-phone{color:#0b0b0c;font-weight:700;font-size:1.2em;text-decoration:none}
.office-email{margin-top:4px;overflow-wrap:anywhere}
.office-hours{margin-top:6px;font-weight:700}
.pay-panel{background:#9e0d2e;color:#ffffff;padding:clamp(28px, 3vw, 52px);display:flex;flex-direction:column;gap:clamp(20px, 2vw, 32px);justify-content:center}
.pay-title{margin:0;text-transform:uppercase;font-size:clamp(18px, 1.3vw, 24px);letter-spacing:.04em}
.pay-cards{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.pay-card{background:#ffffff;border-radius:4px;padding:4px 6px;display:flex}
.pay-card-img{width:68px;height:43px}
.office-actions{display:flex;flex-wrap:wrap;gap:12px}
.town-name{font-size:clamp(30px, 2.6vw, 48px);color:#9e0d2e}
.towns-title{margin:clamp(36px, 3.4vw, 60px) 0 16px;text-transform:uppercase;font-size:clamp(18px, 1.3vw, 24px);letter-spacing:.04em}
.towns-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.town-chip{background:#ffffff;border-left:4px solid #9e0d2e;padding:12px 18px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:17px}

/* ---- contact page ---- */
.lead-spanish{margin-top:1em;font-weight:700;color:#9e0d2e;text-transform:uppercase;letter-spacing:.04em}
.contact-page-sec{background:#ffffff;padding:clamp(56px, 5vw, 96px) 0 clamp(64px, 6vw, 116px)}
.contact-list-page{list-style:none;margin:clamp(26px, 2.6vw, 48px) 0 0;padding:0;display:grid;gap:clamp(22px, 2.2vw, 40px)}
.contact-address{margin:0;font-weight:500;font-size:clamp(20px, 1.7vw, 32px);line-height:1.25}
.contact-address-note{display:block;font-size:.62em;font-weight:400;margin-top:6px}
.contact-actions{margin-top:clamp(30px, 3vw, 52px);display:flex;flex-wrap:wrap;gap:12px}
.form-title{font-size:clamp(28px, 2.2vw, 40px);margin-bottom:18px}
.form-status-plain{background:#ffffff;border-top:4px solid #9e0d2e;padding:18px 20px;margin-bottom:20px}
.submit-lg{font-size:clamp(17px, 1.3vw, 24px)}

/* ---- request service page ---- */
.emergency-box{margin-top:clamp(20px, 1.8vw, 32px);background:#9e0d2e;color:#ffffff;padding:18px 22px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.emergency-text{margin:0;text-transform:uppercase;font-weight:700;letter-spacing:.05em;font-size:clamp(16px, 1.2vw, 21px)}
.emergency-sub{display:block;font-weight:500;margin-top:4px}
.request-sec{background:#f3f1f1;padding:clamp(56px, 5vw, 96px) 0 clamp(64px, 6vw, 116px)}
.request-form{background:#ffffff;border-top:5px solid #9e0d2e;padding:clamp(24px, 3vw, 56px);max-width:1180px;margin-inline:auto}
.request-title{font-size:clamp(30px, 2.8vw, 52px)}
.request-note{margin:8px 0 26px;font-size:16px}
.req-star{color:#9e0d2e;font-weight:700}
.form-status-grey{background:#f3f1f1;border-top:4px solid #9e0d2e;padding:18px 20px;margin-bottom:24px}
.radio-group{display:flex;flex-wrap:wrap;gap:10px}
.request-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 24px;margin-top:clamp(24px, 2.2vw, 38px)}
.request-urgent{margin:0;text-transform:uppercase;font-weight:600;letter-spacing:.04em;font-size:clamp(18px, 1.45vw, 26px);line-height:1.2;text-align:right}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1180px){
  .desk-nav{display:none}
  .menu-btn{display:inline-flex}
  .hdr-cta{display:none}
}
@media (max-width:900px){
  .hero-grid,.hero-grid.hero-grid-home,.split,.two,.svc{grid-template-columns:minmax(0,1fr)}
  .hdr-panel{display:none}
  .just{text-align:left}
  .fcol{border-left:0;padding-left:0}
  .two > p.t-right{text-align:left}
}
@media (max-width:560px){
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .top-social{display:none}
}

/* =========================================================
   WordPress
   ========================================================= */

/* ---- mega menu list sizes (rows = half the sub-items) ---- */
.mega-list-1{grid-template-rows:repeat(1,auto)}
.mega-list-2{grid-template-rows:repeat(2,auto)}
.mega-list-5{grid-template-rows:repeat(5,auto)}
.mega-list-6{grid-template-rows:repeat(6,auto)}

/* ---- logged-in admin bar ---- */
.admin-bar .hdr-shell{top:32px}
@media (max-width:782px){.admin-bar .hdr-shell{top:46px}}
@media (max-width:600px){.admin-bar .hdr-shell{top:0}}

/* ---- WordPress core classes ---- */
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.alignleft{float:left;margin:.3em 1.6em 1em 0}
.alignright{float:right;margin:.3em 0 1em 1.6em}
.aligncenter{display:block;margin-inline:auto}
.wp-caption,.entry figure{max-width:100%;margin:1.6em 0}
.wp-caption-text,.entry figcaption{font-size:15px;color:#4b4747;margin-top:8px}
.sticky .post-card-title::before{content:"";display:inline-block;width:10px;height:10px;margin:0 10px 4px 0;background:#9e0d2e}

/* ---- WPBakery pages: full width, each element holds its own width ----
   Mellon elements are full-width sections. Type mellon-flush in a row's
   "Extra class name" (WPBakery's own field). In that row only:
   - no 35px space under the row, and no gutters at the sides or between columns
   - columns sit side by side at the same height, and stack below 901px like the design */
.page-builder{width:100%}
.vc_row.mellon-flush{margin:0;display:flex;flex-wrap:wrap}
.vc_row.mellon-flush::before,.vc_row.mellon-flush::after{display:none}
.vc_row.mellon-flush > .vc_column_container{float:none;display:flex;min-width:0}
.vc_row.mellon-flush > .vc_column_container > .vc_column-inner{display:flex;flex-direction:column;min-width:0;padding-left:0;padding-right:0}
.vc_row.mellon-flush > .vc_column_container > .vc_column-inner > .wpb_wrapper{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.vc_row.mellon-flush .wpb_wrapper > .photo-panel,.vc_row.mellon-flush .wpb_wrapper > .media-frame-split,.vc_row.mellon-flush .wpb_wrapper > .split-copy{flex:1 1 auto}
@media (max-width:900px){.vc_row.mellon-flush > .vc_column_container{width:100%}}

/* ---- Mellon elements ---- */
.sec-head-space{margin-bottom:clamp(28px,3vw,56px)}
.about-text-next{margin-top:0}
.contact-copy-page{max-width:none}
.about-copy-light .about-title{color:#0b0b0c}
.mellon-btns{display:flex;flex-wrap:wrap;gap:12px}
.split-video-center{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.media-frame-split > img.split-video-res,.media-frame-split > img.split-video-com{display:block}
.vc_row.mellon-section > .vc_column_container > .vc_column-inner:has(> .wpb_wrapper > .pay-panel){display:flex;flex-direction:column;height:100%}
.vc_row.mellon-section .wpb_wrapper:has(> .pay-panel){display:flex;flex-direction:column;flex:1 1 auto}
.vc_row.mellon-section .wpb_wrapper > .pay-panel{flex:1 1 auto}
.split-copy.split-copy-left{padding-left:var(--g);padding-right:clamp(24px,4.4vw,86px)}
.mellon-btns-center{justify-content:center}
.mellon-btns-right{justify-content:flex-end}

/* ---- Formidable Forms inside the Mellon form cards (.mellon-frm) ----
   Field and button styling, plus the design's space between rows; the columns come from Formidable. */
.mellon-frm .frm_forms,.mellon-frm .frm-show-form{margin:0;padding:0}
.mellon-frm .frm_fields_container{row-gap:18px}
.mellon-frm .frm_form_field{margin-bottom:0}
.mellon-frm .frm_submit{margin-top:clamp(4px,.6vw,16px)}
.mellon-frm fieldset{border:0;margin:0;padding:0;min-width:0}
.mellon-frm .frm_screen_reader,.mellon-frm legend.frm_screen_reader,.mellon-frm .frm_hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mellon-frm div:has(> .frm_verify){display:none!important}
.mellon-frm .frm_primary_label{display:block;margin:0 0 8px;padding:0;font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:15px;color:inherit}
.mellon-frm .frm_required{color:#9e0d2e}
.mellon-frm .frm_description{margin:6px 0 0;font-size:15px;color:#4b4747}
.mellon-frm input[type=text],.mellon-frm input[type=tel],.mellon-frm input[type=email],.mellon-frm input[type=number],.mellon-frm input[type=url],.mellon-frm input[type=date],.mellon-frm select,.mellon-frm textarea{display:block;width:100%;max-width:none;margin:0;font-family:inherit;font-size:17px;line-height:normal;padding:12px 14px;border:1px solid #c9c6c6;border-radius:4px;background-color:#ffffff;color:#0b0b0c;min-height:52px;box-shadow:none}
.mellon-frm select{appearance:none;-webkit-appearance:none;padding-right:48px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='14' viewBox='0 0 22 14'%3E%3Cpath d='M2 2l9 9 9-9' fill='none' stroke='%23111111' stroke-width='2.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:22px 14px}
.mellon-frm textarea{display:inline-block;min-height:150px;resize:vertical}
.mellon-frm input[type=text]:hover,.mellon-frm input[type=tel]:hover,.mellon-frm input[type=email]:hover,.mellon-frm select:hover,.mellon-frm textarea:hover{border-color:#8a8686}
.mellon-frm input:focus,.mellon-frm select:focus,.mellon-frm textarea:focus{outline:3px solid rgba(158,13,46,.35);border-color:#9e0d2e;box-shadow:0 0 0 4px rgba(158,13,46,.12)}
.mellon-frm .frm_blank_field input,.mellon-frm .frm_blank_field select,.mellon-frm .frm_blank_field textarea{border-color:#9e0d2e}
.mellon-frm .frm_opt_container{display:flex;flex-wrap:wrap;gap:10px}
.mellon-frm .frm_radio,.mellon-frm .frm_checkbox{display:block;margin:0}
.mellon-frm .frm_radio label,.mellon-frm .frm_checkbox label{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:8px 16px;background:#ffffff;border:1px solid #c9c6c6;border-radius:4px;font-size:16px;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;font-weight:600;transition:border-color .2s ease,box-shadow .25s ease,color .2s ease}
.mellon-frm .frm_radio input,.mellon-frm .frm_checkbox input{width:14px;height:14px;flex:0 0 auto;accent-color:#9e0d2e;margin:0}
.mellon-frm .frm_radio label:hover,.mellon-frm .frm_checkbox label:hover{border-color:#9e0d2e}
.mellon-frm .frm_radio label:has(input:checked),.mellon-frm .frm_checkbox label:has(input:checked){border-color:#9e0d2e;box-shadow:inset 0 0 0 1px #9e0d2e;color:#9e0d2e}
.mellon-frm .frm_error{margin:6px 0 0;color:#9e0d2e;font-size:15px;font-weight:500}
.mellon-frm .frm_error_style{margin:0 0 20px;padding:18px 20px;background:#ffffff;border-top:4px solid #9e0d2e;color:#9e0d2e;font-weight:700}
.mellon-frm .frm_message{margin:0;padding:18px 20px;background:#ffffff;border-top:4px solid #9e0d2e;font-size:17px;line-height:1.4}
.mellon-frm .frm_message p{margin:0}
.request-form-plugin .frm_message,.request-form-plugin .frm_error_style{background:#f3f1f1}
.mellon-frm .frm_button_submit{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin:0;padding:12px clamp(24px,2vw,36px);background:#9e0d2e;color:#ffffff;border:0;border-radius:2px;font-family:inherit;font-size:clamp(17px,1.3vw,24px);font-weight:600;line-height:1.2;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;box-shadow:none;transition:background-color .2s ease,box-shadow .25s ease,transform .25s cubic-bezier(.2,.7,.2,1)}
.mellon-frm.mellon-frm-page .frm_button_submit{padding:12px clamp(20px,1.6vw,30px)}
.mellon-frm .frm_button_submit:hover{background:#7a0923;color:#ffffff}
.mellon-frm .frm_button_submit:focus-visible{outline:3px solid #1d64d8;outline-offset:3px}
.mellon-frm .frm_button_submit:active{transform:translateY(0) scale(.98);box-shadow:none}
@media (hover:hover){.mellon-frm .frm_button_submit:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(158,13,46,.28)}}

/* ---- WPBakery section rows ----
   Type in a row's "Extra class name" (WPBakery's own field):
   mellon-section    a design section: content held to the site width, the design's
                     gap between columns, section spacing, no 35px under the row,
                     columns stack below 901px
   mellon-bg-grey / mellon-bg-red / mellon-bg-white   section background
   mellon-space-sm / -md / -even / -lg                other section spacing (see README)
   mellon-pt-sm                                       small space above (Services list)
   mellon-pt-0 / mellon-pb-0                          no space above / below
   mellon-middle                                      centre the columns vertically
   mellon-line-top                                    thin white line above the row */
.vc_row.mellon-section{--sec-gap:clamp(32px,4.5vw,86px);--sec-x:max(var(--g),calc((100% - 1660px) / 2));display:flex;flex-wrap:wrap;margin:0;padding:clamp(56px,5.6vw,106px) calc(var(--sec-x) - var(--sec-gap) / 2) clamp(60px,6vw,110px)}
.vc_row.mellon-section::before,.vc_row.mellon-section::after{display:none}
.vc_row.mellon-section > .vc_column_container{float:none;min-width:0}
.vc_row.mellon-section > .vc_column_container > .vc_column-inner{padding-left:calc(var(--sec-gap) / 2);padding-right:calc(var(--sec-gap) / 2)}
.vc_row.mellon-section.mellon-space-sm{padding-top:clamp(56px,4.4vw,84px);padding-bottom:clamp(56px,5vw,96px)}
.vc_row.mellon-section.mellon-space-lg{padding-top:clamp(60px,5.4vw,104px);padding-bottom:clamp(64px,6vw,116px)}
.vc_row.mellon-section.mellon-space-md{padding-top:clamp(56px,5vw,96px);padding-bottom:clamp(56px,5vw,96px)}
.vc_row.mellon-section.mellon-space-even{padding-top:clamp(60px,5.6vw,106px);padding-bottom:clamp(60px,5.6vw,106px)}
.vc_row.mellon-section.mellon-pt-sm{padding-top:clamp(20px,2vw,40px)}
.vc_row.mellon-section.mellon-pt-0{padding-top:0}
.vc_row.mellon-section.mellon-pb-lg{padding-bottom:clamp(64px,6vw,116px)}
.vc_row.mellon-section.mellon-pb-0{padding-bottom:0}
.vc_row.mellon-section.mellon-middle{align-items:center}
.vc_row.mellon-line-top{border-top:2px solid #ffffff}
.vc_row.mellon-bg-grey{background:#f3f1f1}
.vc_row.mellon-bg-red{background:#ad0127;color:#ffffff}
.vc_row.mellon-bg-white{background:#ffffff}
@media (max-width:900px){
  .vc_row.mellon-section > .vc_column_container{width:100%}
  .vc_row.mellon-section > .vc_column_container + .vc_column_container{margin-top:var(--sec-gap)}
}

/* ---- editor text (normal pages, posts) ---- */
.page-text{padding:clamp(48px,4.6vw,88px) 0 clamp(56px,5.6vw,106px)}
.entry{font-size:clamp(17px,1.2vw,21px);line-height:1.6;max-width:820px}
.entry > *:first-child{margin-top:0}
.entry p,.entry ul,.entry ol,.entry blockquote,.entry table,.entry pre{margin:0 0 1.15em}
.entry h2,.entry h3,.entry h4{font-family:'Anton',Impact,'Arial Narrow',sans-serif;font-weight:400;text-transform:uppercase;line-height:1.05;letter-spacing:.005em;margin:1.6em 0 .55em}
.entry h2{font-size:clamp(30px,2.6vw,46px)}
.entry h3{font-size:clamp(24px,2vw,34px);color:#9e0d2e}
.entry h4{font-size:clamp(20px,1.5vw,26px)}
.entry h5,.entry h6{font-size:1em;text-transform:uppercase;letter-spacing:.04em;margin:1.4em 0 .5em}
.entry ul,.entry ol{padding-left:1.3em}
.entry li{margin:0 0 .4em}
.entry li::marker{color:#9e0d2e;font-weight:700}
.entry a{font-weight:600;text-underline-offset:3px}
.entry blockquote{margin-left:0;padding:6px 0 6px 24px;border-left:5px solid #9e0d2e;font-size:1.12em;font-weight:500}
.entry blockquote p:last-child{margin-bottom:0}
.entry img{height:auto}
.entry table{width:100%;border-collapse:collapse;font-size:.92em}
.entry th,.entry td{padding:10px 12px;border-bottom:1px solid #e2dfdf;text-align:left}
.entry th{text-transform:uppercase;letter-spacing:.04em;font-size:.88em;background:#f3f1f1}
.entry hr{border:0;border-top:3px solid #e2dfdf;margin:2em 0}
.entry pre,.entry code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85em;background:#f3f1f1}
.entry pre{padding:16px;overflow:auto}
.entry .wp-block-button__link,.entry .wp-element-button{display:inline-flex;align-items:center;min-height:48px;padding:12px 26px;background:#9e0d2e;color:#ffffff;text-decoration:none;text-transform:uppercase;font-weight:600;letter-spacing:.06em;font-size:16px;border-radius:2px}
.entry .wp-block-button__link:hover{background:#7a0923;color:#ffffff}
.page-links{display:flex;gap:8px;margin:1.5em 0;font-weight:600}
.entry-comments{padding-bottom:clamp(56px,5.6vw,106px)}

/* ---- blog list ---- */
.blog-sec{background:#f3f1f1;padding:clamp(40px,4vw,72px) 0 clamp(60px,5.6vw,106px)}
.blog-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(28px,2.8vw,48px)}
.chip.is-active{background:#9e0d2e;color:#ffffff}
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,1.8vw,32px)}
.post-card{display:flex;flex-direction:column;background:#ffffff;border-top:5px solid #9e0d2e;transition:box-shadow .25s ease,transform .25s cubic-bezier(.2,.7,.2,1)}
.post-card-media{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:#9e0d2e}
.post-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.post-card-placeholder{position:absolute;inset:0;display:flex;align-items:flex-end;padding:22px 24px;color:#ffffff;font-size:clamp(26px,2.2vw,40px);line-height:1}
.post-card-body{display:flex;flex-direction:column;gap:10px;flex:1 1 auto;padding:clamp(22px,2vw,32px)}
.post-meta{margin:0;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#4b4747}
.post-cat{color:#9e0d2e}
.post-card-title{font-size:clamp(24px,1.9vw,34px);line-height:1.05}
.post-card-title a{color:#0b0b0c;text-decoration:none}
.post-card-title a:hover{color:#9e0d2e}
.post-excerpt{margin:0;font-size:clamp(16px,1.1vw,19px);line-height:1.5}
.post-more{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:6px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:15px;text-decoration:none}
.post-more svg{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.post-card-feature{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.post-card-feature .post-card-media{aspect-ratio:auto;min-height:340px}
.post-card-feature .post-card-body{justify-content:center;padding:clamp(28px,3vw,56px)}
.post-card-feature .post-card-title{font-size:clamp(32px,3vw,56px)}
@media (hover:hover){
  .post-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(0,0,0,.12)}
  .post-card:hover .post-card-media img{transform:scale(1.045)}
  .post-more:hover svg{transform:translateX(4px)}
}
.blog-empty{display:grid;gap:22px;max-width:760px}
.pager{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(32px,3vw,56px)}
.pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:8px 16px;background:#ffffff;border:2px solid #e2dfdf;color:#0b0b0c;text-decoration:none;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.pager a.page-numbers:hover{border-color:#9e0d2e;color:#9e0d2e}
.pager .page-numbers.current{background:#9e0d2e;border-color:#9e0d2e;color:#ffffff}
.pager .dots{background:transparent;border-color:transparent}

/* ---- single post ---- */
.page-title.page-title-sm{font-size:clamp(36px,3.9vw,72px);line-height:1}
.post-single{padding:clamp(48px,4.6vw,88px) 0 clamp(60px,5.6vw,106px)}
.post-single .entry{margin-inline:auto}
.post-hero-img{margin:0 0 1.6em}
.post-hero-img img{width:100%;height:auto;border-top:5px solid #9e0d2e}
.post-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin-top:2.4em;padding-top:22px;border-top:3px solid #e2dfdf}
.post-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.post-tags a{display:inline-flex;padding:6px 12px;background:#f3f1f1;border-left:4px solid #9e0d2e;color:#0b0b0c;text-decoration:none;text-transform:uppercase;font-weight:600;font-size:14px;letter-spacing:.04em}
.post-tags a:hover{color:#9e0d2e}
.post-foot .post-more{margin-top:0;padding-top:0}
.post-nav{margin-top:2em}
.post-nav .nav-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.post-nav a{display:flex;flex-direction:column;gap:6px;height:100%;padding:18px 20px;background:#f3f1f1;border-top:4px solid #9e0d2e;color:#0b0b0c;text-decoration:none}
.post-nav a:hover{background:#ece8e8}
.post-nav .nav-next{grid-column:2;text-align:right}
.post-nav-label{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9e0d2e}
.post-nav-title{font-weight:600;font-size:18px;line-height:1.3}

/* ---- comments ---- */
.comments{margin-top:3em;font-size:17px;line-height:1.5}
.comments-title,.comment-reply-title{font-size:clamp(28px,2.4vw,42px);margin:0 0 20px}
.comment-list{list-style:none;margin:0 0 2.4em;padding:0}
.comment-list .children{list-style:none;margin:0;padding-left:clamp(16px,3vw,48px)}
.comment-body{padding:18px 0;border-bottom:2px solid #e2dfdf}
.comment-author{display:flex;align-items:center;gap:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.comment-author img{border-radius:50%}
.comment-author .says{display:none}
.comment-metadata{margin:4px 0 10px 60px;font-size:14px}
.comment-metadata a{color:#4b4747;text-decoration:none}
.comment-content{margin-left:60px}
.reply{margin-left:60px;font-weight:700;text-transform:uppercase;font-size:14px;letter-spacing:.06em}
.comment-respond{background:#eeeded;border-radius:8px;padding:clamp(22px,2vw,34px)}
.comment-form .comment-notes,.comment-form .logged-in-as,.comment-form .comment-form-cookies-consent{grid-column:1 / -1;margin:0;font-size:15px}
.comment-form .comment-form-cookies-consent{display:flex;gap:8px;align-items:flex-start}
.form-submit-row{grid-column:1 / -1;margin:6px 0 0}
.req-star{color:#9e0d2e}

/* ---- search ---- */
.search-form{display:flex;gap:10px;max-width:760px;margin-bottom:clamp(24px,2.4vw,40px)}
.search-input{flex:1 1 auto;min-width:0;min-height:52px;padding:12px 16px;font-family:inherit;font-size:17px;border:1px solid #c9c6c6;border-radius:4px;background:#ffffff;color:#0b0b0c}
.search-input:hover{border-color:#8a8686}
.search-input:focus{outline:3px solid rgba(158,13,46,.35);border-color:#9e0d2e;box-shadow:0 0 0 4px rgba(158,13,46,.12)}
.search-btn{gap:8px;min-height:52px}
.search-count{margin:0 0 14px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:15px;color:#4b4747}
.search-list{list-style:none;margin:0;padding:0;display:grid;gap:14px;max-width:1080px}
.search-item{display:grid;gap:8px;padding:clamp(20px,2vw,30px);background:#ffffff;border-left:5px solid #9e0d2e}
.search-title{font-size:clamp(24px,1.9vw,34px);line-height:1.05}
.search-title a{color:#0b0b0c;text-decoration:none}
.search-title a:hover{color:#9e0d2e}
.search-url{margin:0;font-size:14px;color:#6b6767;overflow-wrap:anywhere}

/* ---- 404 ---- */
.notfound-grid{align-items:start}
.notfound-title{font-size:clamp(30px,2.8vw,52px);margin:0 0 20px}
.notfound-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.notfound-links a{display:block;padding:12px 18px;background:#ffffff;border-left:4px solid #9e0d2e;color:#0b0b0c;text-decoration:none;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.notfound-links a:hover{color:#9e0d2e;padding-left:24px}

@media (max-width:1000px){
  .post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .post-card-feature{grid-template-columns:minmax(0,1fr)}
  .post-card-feature .post-card-media{min-height:0;aspect-ratio:16/9}
}
@media (max-width:640px){
  .post-grid,.post-nav .nav-links,.notfound-links{grid-template-columns:minmax(0,1fr)}
  .post-nav .nav-next{grid-column:auto}
  .search-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .comment-metadata,.comment-content,.reply{margin-left:0}
}
