/* ================================================================
   Electricians 247 v4 design system (e247.css)
   Loaded AFTER bootstrap and style.css. Hero components use e247-*
   class names that do not exist in the legacy stylesheet, so no
   legacy rule can affect them.
   ================================================================ */

html{font-size:16px !important}
body{font-family:'IBM Plex Sans',Helvetica,Arial,sans-serif;font-size:17px;line-height:1.68;color:#43566b;background:#f4f8fa;-webkit-font-smoothing:antialiased}

:root{
  --navy:#0e2a52;--navy-2:#143562;--blue:#0071aa;--green:#0d9a26;--green-dark:#097c23;
  --live:#2ecc5e;--grad:linear-gradient(90deg,#0071aa,#0d9a26);
  --paper:#f4f8fa;--card:#fff;--line:#dde6ec;--body-c:#43566b;--heading:#122238;
  --mono:'IBM Plex Mono',monospace;--sans:'IBM Plex Sans',Helvetica,Arial,sans-serif;
  --disp:'Archivo',Helvetica,Arial,sans-serif;
}

h1,h2,h3,h4{font-family:var(--disp);font-variation-settings:'wdth' 112;font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:1.08;color:var(--heading)}
.sec h2,#faq h2{font-size:clamp(1.6rem,3.2vw,2.3rem);margin:0 0 16px}
b,strong{color:var(--heading)}
.sec{padding:84px 0}
.sec-head{max-width:700px;margin-bottom:40px}
.narrow{max-width:880px}
.alt{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* Bootstrap clearfix pseudos must not become grid/flex items */
.livebar .container::before,.livebar .container::after,
.e247-hero-grid::before,.e247-hero-grid::after,
.local-grid::before,.local-grid::after,
.emg-grid::before,.emg-grid::after,
.codes-grid::before,.codes-grid::after{content:none !important;display:none !important}

/* spark eyebrow */
.eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:9px;margin-bottom:16px}
.eyebrow::before{content:"";width:13px;height:18px;flex-shrink:0;background:var(--grad);clip-path:polygon(62% 0,10% 56%,44% 56%,36% 100%,90% 40%,55% 40%)}
.eyebrow.on-dark{color:#9fd4ef}
.eyebrow.on-dark::before{background:linear-gradient(90deg,#4db8e8,#3fd06a)}

/* energised border, wire divider, live dot */
.current{position:relative}
.current::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:3;background:linear-gradient(90deg,#0071aa,#0d9a26,#0071aa);background-size:200% 100%;animation:e247flow 6s linear infinite}
@keyframes e247flow{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.current::before{animation:none;background:var(--grad)}}
.wire{max-width:1180px;margin:0 auto;padding:0 15px;position:relative;height:2px}
.wire::before{content:"";position:absolute;left:15px;right:15px;top:0;height:2px;background:var(--line)}
.wire::after{content:"";position:absolute;left:50%;top:-9px;width:13px;height:18px;background:var(--grad);clip-path:polygon(62% 0,10% 56%,44% 56%,36% 100%,90% 40%,55% 40%)}
.livedot{width:8px;height:8px;border-radius:50%;background:var(--live);display:inline-block;flex-shrink:0;box-shadow:0 0 0 0 rgba(46,204,94,.5);animation:e247pulse 2.2s infinite}
@keyframes e247pulse{0%{box-shadow:0 0 0 0 rgba(46,204,94,.5)}70%{box-shadow:0 0 0 9px rgba(46,204,94,0)}100%{box-shadow:0 0 0 0 rgba(46,204,94,0)}}
@media (prefers-reduced-motion:reduce){.livedot{animation:none}}

/* live status bar */
.livebar{background:var(--navy);border-bottom:1px solid rgba(255,255,255,.08)}
.livebar .container{display:flex;justify-content:space-between;align-items:center;padding-top:9px;padding-bottom:9px}
.livebar .status{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:#c3d6e8;display:flex;align-items:center;gap:10px}
.livebar .num{font-family:var(--mono);font-size:.8rem;color:#fff;letter-spacing:.06em;text-decoration:none}
.livebar .num span{color:var(--live)}
@media (max-width:480px){.livebar .hide-xs{display:none}}

/* header: sticky flush, refined nav */
#header{position:sticky;top:0;z-index:100}
.navbar{margin-bottom:0;border:none;border-radius:0}
.navbar-default{background:#fff;border:none;border-bottom:1px solid var(--line);min-height:74px}
.navbar-default .wsLogo img{width:auto !important;height:44px !important;max-height:none !important;max-width:none !important}
@media (min-width:768px){
  .navbar-default .site-navigation-inner{display:flex;align-items:center;width:100%}
  .navbar-default .navbar-header{float:none;flex-shrink:0;display:flex;align-items:center;min-height:74px}
  .navbar-default .navbar-collapse{display:flex !important;align-items:center;justify-content:flex-end;flex:1;float:none;padding:0}
  .navbar-default .navbar-nav{float:none;display:flex;align-items:center;margin:0;gap:4px}
  .navbar-default .navbar-nav.ml-auto{margin-left:auto;order:1}
  .navbar-default #menu-main{order:2;margin-left:10px}
  .navbar-default .navbar-nav>li{float:none;position:relative}
  .navbar-default .navbar-nav>li>a{padding:26px 16px;color:#122238;font-weight:600;font-size:14.5px;letter-spacing:.01em;position:relative;background:transparent}
  .navbar-default .navbar-nav>li>a::after{content:"";position:absolute;left:16px;right:16px;bottom:18px;height:2px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
  .navbar-default .navbar-nav>li>a:hover::after,.navbar-default .navbar-nav>li.open>a::after{transform:scaleX(1)}
  .navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:var(--blue);background:transparent}
}
.dropdown-menu{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 54px rgba(14,42,82,.18);padding:10px;min-width:260px;margin-top:6px}
.dropdown-menu a,.dropdown-menu .dropdown-item{color:var(--body-c);display:block;padding:10px 14px;border-radius:8px;font-size:14px;text-decoration:none;transition:background .15s,color .15s,padding-left .15s}
.dropdown-menu a:hover{background:var(--paper);color:var(--blue);padding-left:18px}
.navbar-toggle{border:1px solid var(--line);margin-top:20px}
.navbar-toggle .icon-bar{background:#122238}
.navbar-collapse{border:none;box-shadow:none}
@media (max-width:767px){.navbar-collapse{background:#fff}.dropdown-menu{position:static;float:none;box-shadow:none}}
.standout{background:var(--green);color:#fff !important;border-radius:6px;font-family:var(--disp);font-variation-settings:'wdth' 108;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:0 0 0 6px;padding:12px 22px !important;transition:background .2s ease,transform .15s ease;display:inline-block}
.standout:hover{background:var(--green-dark);transform:translateY(-1px);color:#fff}
.standout::after{content:none !important}
@media (max-width:767px){.standout{margin:10px 15px}}
.nav{list-style:none;padding-left:0}
.open>.dropdown-menu{display:block}

/* ============ e247 hero: namespaced, immune to legacy CSS ============ */
.e247-hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.e247-hero::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(720px 460px at 92% 10%,rgba(0,113,170,.22),transparent 65%),radial-gradient(520px 420px at 0% 100%,rgba(13,154,38,.14),transparent 60%);pointer-events:none;z-index:0}
.e247-hero .circuit{position:absolute;right:-40px;top:0;height:100%;width:52%;opacity:.5;pointer-events:none;z-index:0}
.e247-hero-grid{position:relative;z-index:1;padding-top:44px;padding-bottom:76px;display:grid;grid-template-columns:1.15fr .85fr;gap:0 56px;align-items:center}
.e247-hero-grid.no-crumbs{padding-top:72px}
@media (max-width:920px){.e247-hero-grid{grid-template-columns:1fr}}
.e247-crumbs{grid-column:1/-1;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#7f9ab8;margin-bottom:34px;display:flex;gap:10px;flex-wrap:wrap}
.e247-crumbs a{color:#9fd4ef;text-decoration:none}
.e247-crumbs span::before{content:"/";margin-right:10px;color:#4b6890}
.e247-hero h1{font-size:clamp(2.4rem,5.6vw,4rem);color:#fff;margin:0 0 20px;font-variation-settings:'wdth' 118;font-weight:800}
.e247-hero h1 .loc{background:linear-gradient(90deg,#4db8e8,#3fd06a);-webkit-background-clip:text;background-clip:text;color:transparent}
.e247-lede{font-size:1.14rem;color:#c3d6e8;max-width:560px;margin:0 0 32px}
.e247-cta{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 34px;max-width:560px}
.e247-cta a{flex:1 1 0;min-width:200px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4);font-family:var(--disp);font-variation-settings:'wdth' 108;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:1rem;line-height:1.2;padding:16px 24px;border-radius:6px;text-decoration:none;margin:0;transition:transform .15s ease,background .2s ease,border-color .2s ease}
.e247-cta a:hover{transform:translateY(-1px);border-color:#fff;color:#fff;background:transparent;text-decoration:none}
.e247-cta a.quoteBtn{background:var(--green);border-color:var(--green)}
.e247-cta a.quoteBtn:hover{background:var(--green-dark);border-color:var(--green-dark)}
.e247-chips{display:flex;flex-wrap:wrap;gap:10px 22px;max-width:560px}
.e247-chip{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:#9fb6cd;display:flex;align-items:center;gap:8px}
.e247-chip .material-symbols-outlined{font-size:17px;color:var(--live)}
.e247-media{position:relative;z-index:1}
.e247-frame{position:relative;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 70px rgba(4,14,30,.5)}
.e247-frame img{display:block;width:100%;height:auto}
.e247-frame::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(200deg,rgba(14,42,82,.05) 40%,rgba(14,42,82,.55));mix-blend-mode:multiply;pointer-events:none}
.e247-badge{position:absolute;left:18px;bottom:18px;z-index:2;background:rgba(10,26,50,.85);border:1px solid rgba(255,255,255,.16);border-radius:99px;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;padding:9px 16px;display:flex;align-items:center;gap:9px}
@media (max-width:920px){.e247-media{display:none}}

/* meter strip */
.meter{background:var(--navy-2);border-top:1px solid rgba(255,255,255,.07)}
.meter .container{padding-top:22px;padding-bottom:22px}
.meter .cell{display:flex;gap:14px;align-items:flex-start;padding:8px 0}
.meter .material-symbols-outlined{color:var(--live);font-size:26px;margin-top:2px}
.meter .lbl{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#8ba3bd;margin-bottom:3px}
.meter .val{color:#fff;font-weight:600;font-size:.95rem}

/* sticky mobile bar */
.hero-buttons-sticky{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--navy);border-top:1px solid rgba(255,255,255,.12);padding:10px 12px;gap:10px}
@media (max-width:768px){.hero-buttons-sticky{display:flex}}
.hero-buttons-sticky a{flex:1;text-align:center;font-family:var(--disp);font-variation-settings:'wdth' 108;font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:.92rem;padding:13px 10px;border-radius:6px;color:#fff !important;background:transparent !important;text-decoration:none;border:1.5px solid rgba(255,255,255,.4)}
.hero-buttons-sticky a.quoteBtn{background:var(--green) !important;border-color:var(--green) !important}

/* premium service cards */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:1000px){.svc-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:440px){.svc-grid{grid-template-columns:1fr}}
.svc{background:#fff;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:12px;padding:22px 20px;display:flex;flex-direction:column;gap:10px;text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .15s}
.svc:hover{border-color:var(--blue);border-left-color:var(--green);box-shadow:0 14px 30px rgba(14,42,82,.10);transform:translateY(-2px);text-decoration:none}
.svc .material-symbols-outlined{font-size:28px;color:var(--blue);transition:color .2s}
.svc:hover .material-symbols-outlined{color:var(--green)}
.svc h3{font-family:var(--disp);font-variation-settings:'wdth' 106;font-weight:700;font-size:.92rem;text-transform:uppercase;letter-spacing:.02em;color:var(--heading);line-height:1.3;margin:0}
.svc .go{margin-top:auto;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}
.svc.urgent{background:var(--navy);border-color:var(--navy);border-left-color:var(--live)}
.svc.urgent h3{color:#fff}
.svc.urgent .material-symbols-outlined,.svc.urgent .go{color:var(--live)}
.svc-grid.mini .svc{padding:16px}
.svc-grid.mini .svc .material-symbols-outlined{font-size:24px}
.board-section{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* schedule of works */
.sched-meta{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--body-c);display:flex;gap:22px;flex-wrap:wrap;border-bottom:2px solid var(--heading);padding-bottom:14px;margin-bottom:6px}
.sched{list-style:none;padding:0;margin:0}
.sched li{display:grid;grid-template-columns:64px 1fr;gap:0 20px;align-items:baseline;padding:17px 4px;border-bottom:1px solid var(--line);background:none;border-radius:0}
.sched li::before{content:none}
.sched .ref{font-family:var(--mono);font-size:.82rem;color:var(--green);letter-spacing:.04em}
.sched .item{font-size:1rem}
.sched .item b{color:var(--heading);margin-right:6px}
.sched li:hover{background:linear-gradient(90deg,rgba(13,154,38,.045),transparent 70%)}
.sched-split{display:grid;grid-template-columns:1fr 1fr;gap:0 64px;align-items:start;margin-top:30px}
@media (max-width:900px){.sched-split{grid-template-columns:1fr}}
.intro-sec p{font-size:1.05rem}
.schedule .sec-head{margin-bottom:8px}
.schedule p{font-size:1.02rem}

/* EICR codes */
.codes{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.codes-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:0 64px;align-items:start}
@media (max-width:900px){.codes-grid{grid-template-columns:1fr;gap:30px 0}}
.codegrid{display:grid;gap:12px 0}
.code{display:grid;grid-template-columns:76px 1fr;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.code .tag{display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:500;font-size:1rem;color:#fff}
.code .tag.c1{background:#b3261e}
.code .tag.c2{background:#d97706}
.code .tag.c3{background:var(--blue)}
.code .tag.fi{background:var(--navy)}
.code .txt{padding:14px 18px;font-size:.95rem}
.code .txt b{color:var(--heading);display:block;margin-bottom:2px}

/* emergency band */
.emg{background:var(--navy);color:#c3d6e8;position:relative;overflow:hidden}
.emg .watermark{position:absolute;right:-30px;bottom:-70px;font-family:var(--disp);font-variation-settings:'wdth' 125;font-weight:900;font-size:clamp(10rem,26vw,20rem);line-height:1;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.07);pointer-events:none;user-select:none}
.emg-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:0 56px;align-items:center}
@media (max-width:900px){.emg-grid{grid-template-columns:1fr;gap:34px 0}}
.emg h2{color:#fff}
.emg b{color:#fff}
.emg ul{list-style:none;padding:0;display:grid;gap:12px 0;margin:0 0 30px}
.emg ul li{display:flex;gap:12px;font-size:.98rem;background:none;border:none;padding:0;border-radius:0}
.emg ul li::before{content:none}
.emg li .material-symbols-outlined{font-size:20px;color:var(--live);margin-top:3px;flex-shrink:0}
.emg .promise{font-family:var(--mono);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:#8ba3bd;display:flex;align-items:center;gap:10px;margin-top:22px}
.btn-inline{display:inline-block;background:var(--green) !important;color:#fff !important;font-family:var(--disp);font-variation-settings:'wdth' 108;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:1rem;padding:15px 26px;border-radius:6px;text-decoration:none;transition:background .2s,transform .15s}
.btn-inline:hover{background:var(--green-dark) !important;transform:translateY(-1px)}

/* quotation band */
#quotationHeadline{background:var(--green);padding:52px 0;margin:0}
#quotationHeadline .row{display:flex;align-items:center;flex-wrap:wrap}
#quotationHeadline h2{color:#fff;margin:0;font-size:clamp(1.4rem,3vw,2.1rem)}
#quotationHeadline a,#quotationHeadline .quoteBtn{display:inline-block;background:#fff;color:var(--navy);font-family:var(--disp);font-variation-settings:'wdth' 108;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.95rem;padding:14px 24px;border-radius:6px;margin:8px 10px 8px 0;text-decoration:none;transition:background .2s,color .2s,transform .15s}
#quotationHeadline a:hover{background:var(--navy);color:#fff;transform:translateY(-1px)}

/* local */
.local-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;align-items:start}
@media (max-width:900px){.local-grid{grid-template-columns:1fr;gap:34px 0}}
.areas-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}
.areas-list li{margin:0;background:none;border:none;padding:0}
.areas-list li::before{content:none}
.areas-list a{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:99px;padding:8px 16px;font-size:.9rem;font-weight:500;color:var(--heading);text-decoration:none;transition:border-color .2s,color .2s}
.areas-list a:hover{border-color:var(--blue);color:var(--blue)}
.map iframe{display:block;width:100%;border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 40px rgba(14,42,82,.12)}
.map-meta{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--body-c);margin-top:12px;display:flex;gap:8px;align-items:center}
.map-meta .livedot{width:7px;height:7px}

/* FAQ */
#faq{background:#fff;border-top:1px solid var(--line);padding:78px 0;margin-top:0}
.accordion{width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px 46px 18px 22px;margin-top:12px;cursor:pointer;font-family:var(--disp);font-variation-settings:'wdth' 106;font-weight:700;font-size:.98rem;text-transform:uppercase;letter-spacing:.02em;color:var(--heading);position:relative;transition:border-color .2s}
.accordion:hover,.accordion.active{border-color:var(--green)}
.accordion::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);color:var(--green);font-size:1.3rem;font-weight:400;transition:transform .2s}
.accordion.active::after{transform:translateY(-50%) rotate(45deg)}
.panel{max-height:0;overflow:hidden;transition:max-height .25s ease-out;background:transparent;border:none;box-shadow:none;padding:0 22px}

/* footer */
#footer{background:var(--navy);color:#8ba3bd;padding:60px 0 30px;font-size:.92rem;position:relative}
#footer::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad)}
#footer a{color:#b9cadb;text-decoration:none}
#footer a:hover{color:#fff}
#footer b{color:#fff}
.foot-live{border-top:1px solid rgba(255,255,255,.1);margin-top:26px;padding-top:22px;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:#8ba3bd}
.foot-live .live,.foot-live .amber{color:var(--live)}

/* forms + modal accents */
.form-control:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(13,154,38,.12)}
.RQButton,.actionBtn{background:var(--green);border-radius:6px}
.RQButton:hover,.actionBtn:hover{background:var(--navy)}

/* callback modal */
.modal{background:rgba(8,20,40,.7)}
.modal-dialog{max-width:440px;margin:8vh auto;padding:0 16px}
.modal-content{background:#fff;border:none;border-radius:16px;box-shadow:0 30px 80px rgba(4,14,30,.45);overflow:hidden}
.modal-header{background:var(--navy);padding:18px 24px;border:none;display:flex;justify-content:space-between;align-items:center}
.modal-title{font-family:var(--disp);font-variation-settings:'wdth' 110;font-weight:800;text-transform:uppercase;color:#fff;font-size:1.05rem}
.modal-header .close{color:#fff;opacity:.7;font-size:26px;background:none;border:none;text-shadow:none}
.modal-header .close:hover{opacity:1}
.modal-body{padding:24px}
.modal-body input{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-size:.98rem;margin-bottom:6px;background:var(--paper)}
.modal-body input:focus{border-color:var(--green);outline:none}
.modal-footer{border:none;padding:0 24px 24px}
.modal-footer button{width:100%;background:var(--green);color:#fff;border:none;border-radius:6px;font-family:var(--disp);font-variation-settings:'wdth' 108;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:1rem;padding:15px;transition:background .2s ease}
.modal-footer button:hover{background:var(--green-dark)}


/* ==== root-cause overrides for legacy positioning ==== */
/* Original stylesheet sets .navbar{position:fixed} with no top, pinning the
   nav 40px down forever (the scroll gap). The nav must flow inside the
   sticky #header instead. */
#header .navbar{position:static !important;top:auto !important}

/* Original mobile rule sets .hero-buttons-sticky{top:0}; combined with our
   bottom:0 it stretched the bar over the whole viewport (the broken mobile).
   Pin it to the bottom only, always. */
.hero-buttons-sticky{top:auto !important;bottom:0 !important;height:auto !important;width:auto !important;background:var(--navy) !important}
@media (max-width:768px){.hero-buttons-sticky{top:auto !important;bottom:0 !important}}

/* breathing room between the FAQ block and the footer */
#faq{padding:78px 0 110px}


/* ==== round-9 root-cause fixes ==== */

/* overflow-x:hidden on html/body creates a scroll container and kills
   position:sticky on every descendant. clip prevents sideways scroll
   without creating one, so the header sticks again. */
html,body{overflow-x:clip !important}
@supports not (overflow-x:clip){html{overflow-x:visible !important}body{overflow-x:hidden}}
#header{position:sticky !important;top:0 !important;z-index:100}

/* hero image: true size, fully responsive, never cropped, visible on mobile */
.e247-frame{aspect-ratio:auto !important;padding-top:0 !important;height:auto !important;max-height:none !important}
.e247-frame img{position:static !important;display:block;width:100% !important;height:auto !important;max-height:none !important;max-width:100% !important;aspect-ratio:auto !important}
@media (max-width:920px){
  .e247-media{display:block !important;margin-top:34px}
  .e247-hero-grid{gap:0}
}

/* nav phone: always a green button with white text */
.navbar-default #menu-main{display:flex !important;float:none;align-items:center}
.navbar-default .standout,.navbar-default a.standout{background:var(--green) !important;color:#fff !important;border-radius:6px;font-family:var(--disp);font-variation-settings:'wdth' 108;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:12px 22px !important;display:inline-flex !important;align-items:center;gap:7px;transition:background .2s ease,transform .15s ease}
.navbar-default .standout:hover{background:var(--green-dark) !important;color:#fff !important;transform:translateY(-1px)}
.navbar-default .standout svg{fill:#fff}
.navbar-default .standout::after{content:none !important}

/* contact page callout: the notice sits inside <b>, which our heading colour
   rule was turning navy on navy. */
.c247-callout{background:var(--navy) !important;color:#fff !important;border-radius:12px;padding:18px 22px}
.c247-callout b,.c247-callout strong{color:#fff !important}
.c247-callout a,.e247-phone-link{color:#fff !important}
.e247-phone-text{color:var(--live) !important;text-decoration:underline}

/* why band */
.why{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
@media (max-width:860px){.why-grid{grid-template-columns:1fr}}
.why-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:28px 26px}
.why-card .material-symbols-outlined{font-size:30px;color:var(--blue);margin-bottom:12px}
.why-card h3{font-family:var(--disp);font-variation-settings:'wdth' 108;font-weight:700;font-size:1rem;text-transform:uppercase;color:var(--heading);margin:0 0 8px}
.why-card p{font-size:.95rem;margin:0}


/* image is sized by inline style; these are belt and braces only */
.e247-frame{height:auto !important;max-height:none !important;aspect-ratio:auto !important}
.e247-frame img{height:auto !important;max-height:none !important;object-fit:fill !important;position:static !important;width:100% !important}
@media (max-width:920px){.e247-media{display:block !important;margin-top:34px}}

/* ==== location page fixes ==== */

/* legacy #ourServices painted cards blue with white headings; our section is
   now #e247-services, but guard the card titles regardless */
#e247-services{background:#fff;padding:84px 0;color:var(--body-c)}
.svc h3,#e247-services .svc h3{color:var(--heading) !important;font-size:.92rem !important;margin:0 !important}
.svc.urgent h3,#e247-services .svc.urgent h3{color:#fff !important}
#e247-services .sec-head h2{color:var(--heading)}

/* green CTA band with the 24/7 watermark, as on the home page */
#quotationHeadline.has-watermark{position:relative;overflow:hidden}
#quotationHeadline .watermark{position:absolute;right:-20px;bottom:-56px;font-family:var(--disp);font-variation-settings:'wdth' 125;font-weight:900;font-size:clamp(7rem,18vw,14rem);line-height:1;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.22);pointer-events:none;user-select:none;z-index:0}
#quotationHeadline .container{position:relative;z-index:1}

/* nearby locations block */
.nearby{background:var(--paper)}
.nearby .areas-list a{background:#fff}

/* ==== mobile header ==== */
@media (max-width:767px){
  /* the collapsed menu is a navy panel, matching the livebar */
  .navbar-collapse{background:var(--navy) !important;margin:0 !important;padding:8px 0 14px;border-top:1px solid rgba(255,255,255,.08)}
  .navbar-default .navbar-nav>li>a{color:#fff !important;font-size:16px !important;font-weight:500;padding:13px 18px !important;margin-bottom:0 !important;width:100%}
  .navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:var(--live) !important;background:rgba(255,255,255,.04) !important}
  .navbar-default .navbar-nav>li>a::after{content:none !important}
  .dropdown-menu{background:var(--navy-2) !important;border:none !important;border-radius:8px;margin:0 12px 8px;padding:6px}
  .dropdown-menu a,.dropdown-menu .dropdown-item{color:#dbe6f2 !important;padding:11px 14px !important}
  .dropdown-menu a:hover{background:rgba(255,255,255,.06) !important;color:#fff !important;padding-left:16px !important}
  /* phone button stays green, full width, unmissable */
  .navbar-default .standout,.navbar-nav>li>a.standout{background:var(--green) !important;color:#fff !important;border-radius:8px;margin:10px 15px !important;padding:15px !important;justify-content:center;width:calc(100% - 30px)}
  /* header sits flush: no inherited logo offset, no fixed nav */
  .navbar-default{min-height:0;padding:0}
  .navbar-default .navbar-header{min-height:0;display:flex;align-items:center;justify-content:space-between;padding:10px 0}
  .navbar-toggle{margin:0}
}
@media (max-width:991px){
  .navbar-default img{margin:0 !important;width:auto !important;max-width:210px;height:40px !important}
  .wsLogo{height:auto !important;display:flex;align-items:center}
}
/* nothing may make the nav fixed or offset the sticky header */
#header .navbar,#header .navbar-default{position:static !important;top:auto !important}
#header{position:sticky !important;top:0 !important;margin:0 !important}
.hero-buttons-sticky{top:auto !important;bottom:0 !important;height:auto !important}

/* ==== sticky livebar, static nav (per client) ==== */
.livebar{position:sticky;top:0;z-index:120}
body.admin-bar .livebar{top:32px}
@media (max-width:782px){body.admin-bar .livebar{top:46px}}
#header{position:static !important;top:auto !important;z-index:100}
#header .navbar,#header .navbar-default{position:static !important;top:auto !important;margin:0 !important}

/* no stray gap under the livebar */
.navbar-default{margin:0 !important;padding:0 !important;border-top:none}
#header .container>.row{margin-left:0;margin-right:0}
#header .navbar .container{padding-top:0;padding-bottom:0}

/* ==== mobile nav: logo left, burger right, big tap targets ==== */
@media (max-width:767px){
  .navbar-default .navbar-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:12px 0;min-height:0}
  .navbar-default .navbar-header .wsLogo{order:1;margin:0}
  .navbar-default .navbar-toggle{order:2;float:none;margin:0;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
  .navbar-default .navbar-toggle .icon-bar{background:var(--navy);width:24px;height:2.5px;border-radius:2px}
  .navbar-default .navbar-toggle .icon-bar+.icon-bar{margin-top:5px}
  .navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background:var(--paper)}

  .navbar-collapse{background:var(--navy) !important;padding:6px 0 16px !important;margin:0 !important;border-top:1px solid rgba(255,255,255,.08);max-height:80vh;overflow-y:auto}
  .navbar-default .navbar-nav{margin:0}
  .navbar-default .navbar-nav>li{border-bottom:1px solid rgba(255,255,255,.06)}
  .navbar-default .navbar-nav>li:last-child{border-bottom:none}
  .navbar-default .navbar-nav>li>a{color:#fff !important;font-size:16px !important;font-weight:500;padding:16px 18px !important;margin:0 !important;display:block;width:100%}
  .navbar-default .navbar-nav>li>a:active{background:rgba(255,255,255,.06) !important}
  .dropdown-menu{background:rgba(0,0,0,.18) !important;margin:0 !important;padding:4px 0 8px !important;border-radius:0}
  .dropdown-menu a,.dropdown-menu .dropdown-item{color:#c3d6e8 !important;padding:13px 30px !important;font-size:15px}
  .dropdown-menu a:active{color:#fff !important;background:rgba(255,255,255,.06) !important}
  .navbar-default .standout,.navbar-nav>li>a.standout{background:var(--green) !important;color:#fff !important;border-radius:8px;margin:14px 15px 4px !important;padding:16px !important;display:flex !important;align-items:center;justify-content:center;gap:8px;width:calc(100% - 30px);font-size:17px !important}
}
@media (max-width:991px){
  .navbar-default img{margin:0 !important;width:auto !important;max-width:200px;height:38px !important}
  .wsLogo{height:auto !important;display:flex;align-items:center;float:none}
}

/* ==== consistent page rhythm ====
   Every section now shares the same container edge. Paragraph measure is
   capped so long copy stays readable without the width jumping around. */
.sec .container{max-width:1180px}
.intro-sec p,.schedule p,.codes p,.local p,.nearby p,.sec-head p{max-width:860px}
.narrow{max-width:none}

/* ==== mobile nav: full bleed, no white gutters ==== */
@media (max-width:767px){
  #header .navbar .container{padding-left:0 !important;padding-right:0 !important;width:100%}
  #header .container>.row,#header .row{margin-left:0 !important;margin-right:0 !important}
  #header .site-navigation-inner{width:100%}
  .navbar-default .navbar-header{padding:12px 15px}
  .navbar-collapse{margin:0 !important;padding-left:0 !important;padding-right:0 !important;width:100% !important;border-radius:0}
  .navbar-default .navbar-nav{width:100%;margin:0}
  .navbar-default .navbar-nav>li{width:100%}
  .navbar-default .navbar-nav>li>a{padding:16px 20px !important}
  .dropdown-menu{width:100%;margin:0 !important;border-radius:0 !important}
  .dropdown-menu a,.dropdown-menu .dropdown-item{padding:13px 32px !important}
  .navbar-default .standout,.navbar-nav>li>a.standout{margin:14px 20px 6px !important;width:calc(100% - 40px)}
}

/* narrower, calmer measure across the whole page */
.container{max-width:1080px}
.sec .container{max-width:1080px}
.e247-hero-grid,.livebar .container,#header .container{max-width:1080px}
.intro-sec p,.schedule p,.codes p,.local p,.nearby p,.sec-head p{max-width:800px}

/* FAQ heading: quieter than section headings, it is a utility block */
#faq h2{font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.18}
#faq .eyebrow{margin-bottom:12px}
@media (max-width:991px){#faq h2{font-size:1.3rem}}

/* H1: the location always starts its own line, so "in" never drops alone */
.e247-hero h1 .loc{display:block}
.e247-hero h1{font-size:clamp(2.15rem,4.6vw,3.4rem);line-height:1.06}
@media (max-width:920px){.e247-hero h1{font-size:clamp(1.95rem,7vw,2.7rem)}}

/* Google Reviews widget */
.reviews .sec-head{margin-bottom:32px}
.reviews .elfsight-app-a8ae4a03-bd78-49a7-bb75-0c5e89ee8e0c{min-height:120px}


/* GTM hook classes (hero-buttons, hero-chips, hero-media) are present on the
   hero for click triggers. Neutralise the legacy styling they would attract. */
.e247-hero .hero-buttons a,.e247-cta a{background:transparent !important;color:#fff !important;border:1.5px solid rgba(255,255,255,.4) !important;margin:0 !important;text-align:center}
.e247-hero .hero-buttons a.quoteBtn,.e247-cta a.quoteBtn{background:var(--green) !important;border-color:var(--green) !important}
.e247-hero .hero-buttons a.quoteBtn:hover,.e247-cta a.quoteBtn:hover{background:var(--green-dark) !important;border-color:var(--green-dark) !important}
.e247-media.hero-media{display:block}
@media (max-width:920px){.e247-media.hero-media{display:block !important}}

/* legacy #pageContainer had 90px top padding to clear the old FIXED navbar,
   which no longer exists. Remove the resulting gap on every simple page. */
#pageContainer{padding-top:0}
#pageContainer.container{padding-top:0 !important}
.c247-wrap{margin-top:0}
.imageContainer{margin-top:0}
#faq{padding-bottom:110px}

/* CTA band buttons: never wrap, equal presence */
#quotationHeadline a,#quotationHeadline .quoteBtn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:210px}
#quotationHeadline .col-md-3{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
@media (max-width:991px){#quotationHeadline .col-md-3{align-items:stretch}#quotationHeadline a{width:100%}}

/* legal and generic page content */
.page-content .page-body{max-width:860px}
.page-content h2{font-size:clamp(1.25rem,2.2vw,1.6rem);margin:36px 0 14px}
.page-content h3{font-size:1.05rem;margin:26px 0 10px}
.page-content p,.page-content li{font-size:1rem}
.page-content ul,.page-content ol{padding-left:22px;margin-bottom:18px}
.page-content li{margin-bottom:8px}
.page-content a{color:var(--blue);text-decoration:underline}
.page-content hr{border-color:var(--line);margin:32px 0}

/* hero title: smaller again for long service and location names */
.e247-hero h1{font-size:clamp(1.9rem,3.8vw,2.85rem);line-height:1.08}
@media (max-width:920px){.e247-hero h1{font-size:clamp(1.75rem,6.2vw,2.35rem)}}
