/* EZY LIFT Garage Doors — site styles.
   Tokens match the Elementor Kit (brief 11.2). Widgets use Kit globals;
   this file covers the shortcode components, header, footer and helpers. */

@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/inter-latin-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --ezy-red:#C8102E;--ezy-red-dark:#A50D25;
  --ezy-navy:#14284B;--ezy-navy-dark:#0C1A33;
  --ezy-grey:#EEF2F7;--ezy-ink:#1C1F23;--ezy-muted:#5B6470;--ezy-line:#D9E0E8;--ezy-white:#fff;
  --ezy-success:#1E7B3A;--ezy-error:#B42318;
  --ezy-fh:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --ezy-fb:"Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --ezy-radius:0px;--ezy-max:1200px;--ezy-gutter:20px;
  --ezy-header-h:76px;--ezy-callbar-h:56px;
}
@media(min-width:768px){:root{--ezy-gutter:32px}}

/* ---------- base ---------- */
body{font-family:var(--ezy-fb);color:var(--ezy-ink);background:var(--ezy-white);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:var(--ezy-fh);color:var(--ezy-navy);line-height:1.2;font-weight:700}
a{color:var(--ezy-navy)}
:focus-visible{outline:3px solid var(--ezy-red);outline-offset:2px}
.ezy-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ezy-icon{width:1em;height:1em;fill:currentColor;flex:none}
.ezy-measure{max-width:760px}

/* Elementor text editor content: comfortable reading */
.elementor-widget-text-editor p{margin:0 0 1em}
.elementor-widget-text-editor p:last-child{margin-bottom:0}
.elementor-widget-text-editor ul{margin:0 0 1em;padding-left:1.25em}
.elementor-widget-text-editor li{margin:.25em 0}

/* ---------- buttons ---------- */
.ezy-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:var(--ezy-radius);font-family:var(--ezy-fb);font-weight:600;font-size:17px;line-height:1.2;text-decoration:none;border:2px solid transparent;transition:background-color .2s,border-color .2s,color .2s;cursor:pointer;white-space:nowrap}
.ezy-btn .ezy-icon{width:18px;height:18px}
.ezy-btn--red{background:var(--ezy-red);color:#fff;border-color:var(--ezy-red)}
.ezy-btn--red:hover{background:var(--ezy-red-dark);border-color:var(--ezy-red-dark);color:#fff}
.ezy-btn--navy{background:var(--ezy-navy);color:#fff;border-color:var(--ezy-navy)}
.ezy-btn--navy:hover{background:var(--ezy-navy-dark);border-color:var(--ezy-navy-dark);color:#fff}
.ezy-btn--outline{background:transparent;color:var(--ezy-navy);border-color:var(--ezy-navy)}
.ezy-btn--outline:hover{background:var(--ezy-navy);color:#fff}
.ezy-btn--white{background:#fff;color:var(--ezy-navy);border-color:#fff}
.ezy-btn--white:hover{background:var(--ezy-grey);border-color:var(--ezy-grey);color:var(--ezy-navy)}
.ezy-cta-buttons{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:479px){.ezy-cta-buttons .ezy-btn{flex:1 1 100%}}

/* Elementor Button widget hooked to the same look via CSS classes */
.ezy-el-btn-red .elementor-button{background:var(--ezy-red);color:#fff}
.ezy-el-btn-red .elementor-button:hover{background:var(--ezy-red-dark)}

/* ---------- wordmark ---------- */
.ezy-wordmark{display:inline-flex;align-items:baseline;gap:.35em;font-family:var(--ezy-fh);text-decoration:none;line-height:1;white-space:nowrap}
.ezy-wordmark__main{font-weight:700;font-size:26px;letter-spacing:.01em;color:var(--ezy-navy)}
.ezy-wordmark__sub{font-weight:600;font-size:17px;color:var(--ezy-navy);opacity:.85}
.ezy-wordmark--light .ezy-wordmark__main,.ezy-wordmark--light .ezy-wordmark__sub{color:#fff}
@media(max-width:767px){.ezy-wordmark__main{font-size:22px}.ezy-wordmark__sub{font-size:15px}}

/* ---------- header ---------- */
.ezy-header{background:#fff;border-bottom:1px solid var(--ezy-line);transition:box-shadow .2s}
#header{position:sticky;top:0;z-index:100}
.admin-bar #header{top:32px}
@media(max-width:782px){.admin-bar #header{top:0}}
.ezy-header.is-scrolled{box-shadow:0 4px 18px rgba(20,40,75,.08)}
.ezy-header .e-con-inner{min-height:var(--ezy-header-h);transition:min-height .2s}
.ezy-header.is-scrolled .e-con-inner{min-height:64px}
.ezy-header .elementor-widget-shortcode{margin:0}

/* nav */
.ezy-nav{display:flex;align-items:center;gap:28px}
.ezy-nav__list{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.ezy-nav__item{position:relative;display:flex;align-items:center}
.ezy-nav__item>a{display:block;padding:10px 12px;color:var(--ezy-navy);font-weight:500;font-size:16px;text-decoration:none;border-radius:0}
.ezy-nav__item>a:hover,.ezy-nav__item>a[aria-current]{color:var(--ezy-red)}
.ezy-nav__toggle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:-8px;background:none;border:0;padding:0;color:var(--ezy-navy);cursor:pointer}
.ezy-nav__toggle svg{width:12px;height:8px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .2s}
.ezy-nav__item.is-open .ezy-nav__toggle svg{transform:rotate(180deg)}
.ezy-nav__sub{position:absolute;top:100%;left:0;min-width:280px;margin:0;padding:8px;list-style:none;background:#fff;border:1px solid var(--ezy-line);border-radius:var(--ezy-radius);box-shadow:0 18px 40px rgba(20,40,75,.14);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .15s,transform .15s,visibility .15s;z-index:10}
.ezy-nav__item:hover .ezy-nav__sub,.ezy-nav__item:focus-within .ezy-nav__sub,.ezy-nav__item.is-open .ezy-nav__sub{opacity:1;visibility:visible;transform:none}
.ezy-nav__sub a{display:block;padding:10px 12px;border-radius:0;color:var(--ezy-ink);text-decoration:none;font-size:15px}
.ezy-nav__sub a:hover{background:var(--ezy-grey);color:var(--ezy-navy)}
.ezy-nav__cta{display:flex;align-items:center;gap:10px}
.ezy-nav__cta .ezy-btn{min-height:44px;padding:10px 16px;font-size:16px}
.ezy-burger{display:none;width:48px;height:48px;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;color:var(--ezy-navy)}
.ezy-burger__bars,.ezy-burger__bars::before,.ezy-burger__bars::after{display:block;width:24px;height:2px;background:currentColor;border-radius:0;position:relative;transition:transform .2s,background-color .2s}
.ezy-burger__bars::before,.ezy-burger__bars::after{content:"";position:absolute;left:0}
.ezy-burger__bars::before{top:-7px}.ezy-burger__bars::after{top:7px}
.ezy-burger[aria-expanded="true"] .ezy-burger__bars{background:transparent}
.ezy-burger[aria-expanded="true"] .ezy-burger__bars::before{transform:translateY(7px) rotate(45deg)}
.ezy-burger[aria-expanded="true"] .ezy-burger__bars::after{transform:translateY(-7px) rotate(-45deg)}

@media(max-width:1180px){.ezy-nav__phone{display:none}}
@media(max-width:1024px){
  .ezy-burger{display:inline-flex}
  .ezy-nav{position:fixed;left:0;right:0;top:var(--ezy-nav-top,var(--ezy-header-h));bottom:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:12px var(--ezy-gutter) calc(var(--ezy-callbar-h) + 24px);background:#fff;overflow-y:auto;border-top:1px solid var(--ezy-line)}
  .ezy-nav.is-open{display:flex}
  .ezy-nav__list{flex-direction:column;align-items:stretch;gap:0}
  .ezy-nav__item{flex-wrap:wrap;border-bottom:1px solid var(--ezy-line)}
  .ezy-nav__item>a{flex:1;padding:16px 0;font-size:18px}
  .ezy-nav__toggle{width:48px;height:48px;margin:0}
  .ezy-nav__sub{position:static;flex-basis:100%;min-width:0;display:none;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 12px 12px}
  .ezy-nav__item:hover .ezy-nav__sub{display:none}
  .ezy-nav__item.is-open .ezy-nav__sub{display:block}
  .ezy-nav__cta{flex-direction:column;align-items:stretch;padding-top:20px}
  .ezy-nav__phone{display:inline-flex}
  body.ezy-menu-open{overflow:hidden}
}

/* ---------- breadcrumbs ---------- */
.ezy-breadcrumbs{font-size:15px;color:var(--ezy-muted)}
.ezy-breadcrumbs a{color:var(--ezy-muted);text-decoration:underline;text-underline-offset:2px}
.ezy-breadcrumbs .separator{margin:0 6px}
.ezy-breadcrumbs .last{color:var(--ezy-ink)}
.ezy-on-dark .ezy-breadcrumbs,.ezy-on-dark .ezy-breadcrumbs a,.ezy-on-dark .ezy-breadcrumbs .last{color:rgba(255,255,255,.85)}

/* ---------- rating line ---------- */
.ezy-rating{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:16px;color:var(--ezy-ink)}
.ezy-rating a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.ezy-rating--dark{color:#fff}
.ezy-stars{display:inline-flex;gap:2px}
.ezy-star{display:inline-flex;color:var(--ezy-line)}
.ezy-star.is-on{color:var(--ezy-red)}
.ezy-star .ezy-icon{width:18px;height:18px}
.ezy-rating--dark .ezy-star.is-on{color:#fff}

/* ---------- service cards ---------- */
.ezy-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media(max-width:1024px){.ezy-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.ezy-cards{grid-template-columns:1fr;gap:16px}}
.ezy-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--ezy-line);border-radius:var(--ezy-radius);overflow:hidden;text-decoration:none;color:var(--ezy-ink);transition:border-color .2s,box-shadow .2s,transform .2s}
.ezy-card:hover{border-color:var(--ezy-navy);box-shadow:0 10px 28px rgba(20,40,75,.10)}
.ezy-card:focus-visible{outline-offset:3px}
.ezy-card__media{aspect-ratio:4/3;background:var(--ezy-grey);overflow:hidden}
.ezy-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.ezy-card__body{display:flex;flex-direction:column;gap:8px;padding:20px 22px 22px;flex:1}
.ezy-card__title{margin:0;font-size:21px}
.ezy-card__body p{margin:0;color:var(--ezy-muted);font-size:16px;line-height:1.5}
.ezy-card__more{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ezy-navy)}
.ezy-card__more .ezy-icon{width:14px;height:14px;color:var(--ezy-red);transition:transform .2s}
.ezy-card:hover .ezy-card__more .ezy-icon{transform:translateX(3px)}
.e-con.ezy-bg-grey .ezy-card{border-color:transparent}

/* ---------- link lists and chips ---------- */
.ezy-link-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ezy-link-list a{text-decoration:none}
.ezy-link-list a:hover{text-decoration:underline}
.ezy-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.ezy-chips a{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:1px solid var(--ezy-line);border-radius:0;background:#fff;color:var(--ezy-navy);font-weight:500;text-decoration:none}
.ezy-chips a:hover{border-color:var(--ezy-navy)}

/* ---------- checklists (Icon List widget with this class) ---------- */
.ezy-checklist .elementor-icon-list-icon svg{fill:var(--ezy-red)!important}

/* ---------- jobs ---------- */
.ezy-jobs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media(max-width:1024px){.ezy-jobs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.ezy-jobs{grid-template-columns:1fr}}
.ezy-job{margin:0;background:#fff;border:1px solid var(--ezy-line);border-radius:var(--ezy-radius);overflow:hidden}
.ezy-job img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.ezy-job figcaption{padding:16px 18px}
.ezy-job__meta{display:block;font-size:14px;color:var(--ezy-muted);margin-bottom:4px}
.ezy-job__title{display:block;font-weight:600;color:var(--ezy-navy)}
.ezy-job__text{display:block;margin-top:4px;font-size:15px;line-height:1.5;color:var(--ezy-ink)}

/* ---------- reviews ---------- */
.ezy-reviews{display:grid;gap:24px}
.ezy-reviews__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media(max-width:1024px){.ezy-reviews__grid{grid-template-columns:1fr}}
.ezy-review{margin:0;padding:24px;background:#fff;border:1px solid var(--ezy-line);border-radius:var(--ezy-radius);display:flex;flex-direction:column;gap:12px}
.ezy-review blockquote{margin:0;padding:0;border:0;font-size:16px;line-height:1.6;color:var(--ezy-ink);font-style:normal}
.ezy-review blockquote p{margin:0}
.ezy-review figcaption{display:flex;flex-direction:column;gap:2px;margin-top:auto}
.ezy-review__name{font-weight:600;color:var(--ezy-navy)}
.ezy-review__meta{font-size:14px;color:var(--ezy-muted)}
.ezy-reviews__more{margin:0}
.ezy-reviews__more a{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.ezy-reviews__more .ezy-icon{width:14px;height:14px}
.ezy-reviews__attr{margin:-16px 0 0;font-size:13px;color:var(--ezy-muted)}

/* ---------- contact links ---------- */
.ezy-contact-link{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:600}
.ezy-contact-link .ezy-icon{color:var(--ezy-red);width:18px;height:18px}
.ezy-contact-link:hover span{text-decoration:underline}

/* ---------- section helpers (set as CSS classes on containers) ---------- */
.ezy-bg-grey{background:var(--ezy-grey)}
.ezy-on-dark,.ezy-on-dark h1,.ezy-on-dark h2,.ezy-on-dark h3,.ezy-on-dark p,.ezy-on-dark a:not(.ezy-btn){color:#fff}
.ezy-eyebrow{font-size:15px;font-weight:600;color:var(--ezy-red);letter-spacing:.02em}
.ezy-on-dark .ezy-eyebrow{color:#fff;opacity:.85}
.ezy-hero-img img{border-radius:var(--ezy-radius);aspect-ratio:4/3;object-fit:cover;width:100%}

/* FAQ accordion (Elementor Accordion widget) */
.ezy-faq .elementor-accordion-item{border:0;border-bottom:1px solid var(--ezy-line)}
.ezy-faq .elementor-tab-title{padding:20px 0;font-family:var(--ezy-fh)}
.ezy-faq .elementor-tab-title a{color:var(--ezy-navy);font-size:19px;font-weight:600}
.ezy-faq .elementor-tab-content{padding:0 0 20px;border:0;color:var(--ezy-ink)}
.ezy-faq .elementor-accordion-icon svg{fill:var(--ezy-red)}

/* ---------- forms (CF7) ---------- */
.ezy-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.ezy-form .ezy-field{display:flex;flex-direction:column;gap:6px}
.ezy-form .ezy-field--full{grid-column:1/-1}
@media(max-width:767px){.ezy-form{grid-template-columns:1fr}}
.ezy-form label{font-weight:600;font-size:15px;color:var(--ezy-navy)}
.ezy-form .ezy-optional{font-weight:400;color:var(--ezy-muted)}
.ezy-form input[type=text],.ezy-form input[type=email],.ezy-form input[type=tel],.ezy-form select,.ezy-form textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--ezy-line);border-radius:var(--ezy-radius);background:#fff;font:inherit;font-size:17px;color:var(--ezy-ink)}
.ezy-form textarea{min-height:140px;resize:vertical}
.ezy-form input:focus,.ezy-form select:focus,.ezy-form textarea:focus{outline:none;border-color:var(--ezy-navy);box-shadow:0 0 0 3px rgba(20,40,75,.18)}
.ezy-form input[type=file]{font-size:15px}
.ezy-form .wpcf7-not-valid{border-color:var(--ezy-error)}
.ezy-form .wpcf7-not-valid-tip{color:var(--ezy-error);font-size:14px;margin-top:4px}
.ezy-form .ezy-hint{font-size:14px;color:var(--ezy-muted)}
.ezy-form input[type=submit]{min-height:52px;padding:12px 28px;border:0;border-radius:var(--ezy-radius);background:var(--ezy-red);color:#fff;font:600 18px var(--ezy-fb);cursor:pointer}
.ezy-form input[type=submit]:hover{background:var(--ezy-red-dark)}
.ezy-form .wpcf7-spinner{margin:0 0 0 12px}
.ezy-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.wpcf7 form .wpcf7-response-output{margin:20px 0 0;padding:14px 16px;border-radius:var(--ezy-radius);border:0;font-weight:500}
.wpcf7 form.sent .wpcf7-response-output{background:#E8F3EC;color:var(--ezy-success)}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output,.wpcf7 form.spam .wpcf7-response-output{background:#FBEAE8;color:var(--ezy-error)}

/* ---------- footer ---------- */
.ezy-footer,.ezy-footer p,.ezy-footer li{color:rgba(255,255,255,.88);font-size:16px}
.ezy-footer h2,.ezy-footer h3{color:#fff}
.ezy-footer a{color:#fff;text-decoration:none}
.ezy-footer a:hover{text-decoration:underline}
.ezy-footer .ezy-contact-link .ezy-icon{color:#fff}
.ezy-footer .ezy-link-list{gap:10px}
.ezy-footer__legal,.ezy-footer__legal p,.ezy-footer__legal a{font-size:14px;color:rgba(255,255,255,.75)}

/* ---------- mobile call bar ---------- */
.ezy-callbar{display:none}
@media(max-width:767px){
  .ezy-callbar{position:fixed;left:0;right:0;bottom:0;z-index:200;display:grid;grid-template-columns:1fr 1fr;height:calc(var(--ezy-callbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--ezy-navy);box-shadow:0 -4px 16px rgba(0,0,0,.15)}
  .ezy-callbar a{display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;font-weight:600;font-size:17px;text-decoration:none}
  .ezy-callbar__call{background:var(--ezy-red)}
  .ezy-callbar .ezy-icon{width:18px;height:18px}
  body{padding-bottom:calc(var(--ezy-callbar-h) + env(safe-area-inset-bottom))}
}

/* ---------- blog / single posts (Blocksy) ---------- */
.entry-content{font-size:18px;line-height:1.7}
.entry-content h2{font-size:30px;margin-top:1.6em}
.entry-content h3{font-size:23px;margin-top:1.4em}
.entry-content img{border-radius:var(--ezy-radius)}
.ezy-post-cta{margin:2.5em 0 0;padding:28px;border-radius:var(--ezy-radius);background:var(--ezy-grey)}
.ezy-post-cta h2{margin:0 0 8px;font-size:24px}
.ezy-post-cta p{margin:0 0 16px}
.ezy-author-box{margin:2em 0 0;padding:20px 0 0;border-top:1px solid var(--ezy-line);font-size:16px;color:var(--ezy-muted)}
.ezy-author-box strong{color:var(--ezy-navy)}
@media(max-width:767px){.entry-content{font-size:17px}.entry-content h2{font-size:26px}.entry-content h3{font-size:20px}}

@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* 404 */
.ezy-404{padding:64px 20px 96px;display:grid;gap:20px}
.ezy-404 h1{font-size:40px;margin:0}
.ezy-404 h2{font-size:24px;margin:16px 0 0}
@media(max-width:767px){.ezy-404 h1{font-size:30px}}

/* =========================================================================
   v2 — elevated layout (D34): full-bleed sections, large bold headings,
   full-image home hero, edge-to-edge image/text rows.
   ========================================================================= */
:root{--ezy-max:1320px;--ezy-grid-pad:max(40px,calc((100vw - var(--ezy-max))/2 + 40px))}
@media(max-width:1024px){:root{--ezy-grid-pad:32px}}
@media(max-width:767px){:root{--ezy-grid-pad:20px}}

/* type */
.ezy-h1 .elementor-heading-title{font-size:clamp(40px,5.2vw,72px);line-height:1.04;letter-spacing:-.025em;font-weight:700}
.ezy-h2 .elementor-heading-title{font-size:clamp(32px,3.6vw,52px);line-height:1.08;letter-spacing:-.02em;font-weight:700}
.ezy-section h3,.ezy-split h3{letter-spacing:-.01em}
.ezy-eyebrow{display:inline-flex;align-items:center;gap:12px;margin:0;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ezy-red)}
.ezy-eyebrow::before{content:"";width:32px;height:2px;background:var(--ezy-red);flex:none}
.ezy-on-dark .ezy-eyebrow{color:#fff;opacity:1}
.ezy-lead,.ezy-lead p{font-size:clamp(18px,1.5vw,21px);line-height:1.6}
.ezy-intro,.ezy-intro p{font-size:19px;line-height:1.65;color:var(--ezy-muted)}
.ezy-on-dark .ezy-intro p{color:rgba(255,255,255,.85)}
.ezy-body p,.ezy-body li{font-size:18px;line-height:1.7}
.ezy-measure-wide{max-width:900px}
.ezy-more a{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--ezy-navy);text-decoration:none;border-bottom:2px solid var(--ezy-red);padding-bottom:2px}
.ezy-head{margin-bottom:8px}
@media(max-width:767px){.ezy-head{gap:20px!important}}

/* buttons: larger */
.ezy-btn{min-height:54px;padding:14px 28px;font-size:17px}
.ezy-cta-buttons{gap:14px}
.ezy-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.ezy-btn--ghost:hover{background:#fff;color:var(--ezy-navy);border-color:#fff}

/* header */
.ezy-header .e-con-inner{min-height:84px}
.ezy-header.is-scrolled .e-con-inner{min-height:68px}
.ezy-wordmark__main{font-size:28px}

/* ---------- full-image hero (home) and image CTA ---------- */
.ezy-hero-full{position:relative;overflow:hidden;background:var(--ezy-navy-dark)}
.ezy-hero-full__bg{position:absolute!important;inset:0;width:100%!important;max-width:none!important;height:100%;margin:0!important;z-index:0}
.ezy-hero-full__bg img,.ezy-hero-full__bg .elementor-widget-container{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;border-radius:0!important}
.ezy-hero-full::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(12,26,51,.94) 0%,rgba(12,26,51,.86) 34%,rgba(12,26,51,.45) 62%,rgba(12,26,51,.12) 100%)}
.ezy-hero-full__inner{position:relative;z-index:2;width:100%}
.ezy-hero-full__copy{max-width:700px}
.ezy-hero-full .ezy-h1 .elementor-heading-title{color:#fff}
.ezy-cta-image::after{background:linear-gradient(90deg,rgba(12,26,51,.95) 0%,rgba(12,26,51,.88) 45%,rgba(12,26,51,.55) 100%)}
@media(max-width:767px){
  .ezy-hero-full::after,.ezy-cta-image::after{background:linear-gradient(180deg,rgba(12,26,51,.72) 0%,rgba(12,26,51,.9) 100%)}
}

/* ---------- edge-to-edge split rows ---------- */
.ezy-split__copy{padding:112px 72px!important;max-width:none}
.ezy-split--right .ezy-split__copy{padding-left:var(--ezy-grid-pad)!important}
.ezy-split--left .ezy-split__copy{padding-right:var(--ezy-grid-pad)!important}
.ezy-split__copy>.elementor-element{max-width:620px}
.ezy-split__media{position:relative;overflow:hidden;padding:0!important}
.ezy-cover{position:absolute!important;inset:0;width:100%!important;max-width:none!important;height:100%;margin:0!important}
.ezy-cover img{width:100%;height:100%;max-width:none;object-fit:cover;border-radius:0!important;display:block}
.ezy-hero-split .ezy-split__copy{padding-top:96px!important;padding-bottom:96px!important}
@media(max-width:1024px){.ezy-split__copy{padding:80px 40px!important}}
@media(max-width:767px){
  .ezy-split__copy{padding:56px 20px!important}
  .ezy-hero-split .ezy-split__copy{padding-top:28px!important;padding-bottom:40px!important}
  /* Stacked rows always read text first, then the photo */
  .ezy-split--left .ezy-split__copy{order:-1}
}
.ezy-hero-band .ezy-h1 .elementor-heading-title{color:#fff}

/* ---------- trust strip ---------- */
.ezy-strip__item{display:flex;align-items:center;gap:12px;margin:0;font-weight:600;font-size:17px;color:var(--ezy-navy)}
.ezy-strip__item::before{content:"";flex:none;width:22px;height:22px;border-radius:50%;background:var(--ezy-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23fff' d='M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z'/%3E%3C/svg%3E") center/11px no-repeat}

/* ---------- statement band ---------- */
.ezy-statement{margin:0;font-family:var(--ezy-fh);font-weight:700;font-size:clamp(28px,3.2vw,46px);line-height:1.2;letter-spacing:-.015em;color:#fff}
.ezy-statement em{font-style:normal;color:#fff;box-shadow:inset 0 -.18em 0 var(--ezy-red)}

/* ---------- service cards: dark ---------- */
.ezy-cards{gap:28px}
.ezy-cards--dark .ezy-card{background:var(--ezy-navy);border:0;border-bottom:4px solid var(--ezy-red);color:#fff;border-radius:0}
.ezy-cards--dark .ezy-card:hover{box-shadow:0 18px 40px rgba(12,26,51,.28);transform:translateY(-3px)}
.ezy-cards--dark .ezy-card__title{color:#fff;font-size:23px}
.ezy-cards--dark .ezy-card__body{padding:26px 28px 30px;gap:10px}
.ezy-cards--dark .ezy-card__body p{color:rgba(255,255,255,.82)}
.ezy-cards--dark .ezy-card__more{color:#fff}
.ezy-cards--dark .ezy-card__more .ezy-icon{color:#fff}
.ezy-card__media{aspect-ratio:3/2}

/* ---------- points ---------- */
.ezy-point{border-top:3px solid var(--ezy-red);padding-top:24px!important}
.ezy-point h3{font-size:22px}
.ezy-point p{color:var(--ezy-muted)}

/* ---------- steps ---------- */
.ezy-step{background:#fff;border:1px solid var(--ezy-line);border-radius:0;padding:32px 28px!important}
.ezy-bg-grey .ezy-step{border-color:transparent}
.ezy-step__num{display:block;font-family:var(--ezy-fh);font-weight:700;font-size:44px;line-height:1;color:var(--ezy-red);letter-spacing:-.02em}
.ezy-step h3{font-size:21px}

/* ---------- checklists ---------- */
.ezy-checkcols .elementor-icon-list-text{font-size:18px}
.ezy-checkcols .elementor-icon-list-item{padding:6px 0}

/* ---------- jobs ---------- */
.ezy-jobs{gap:28px}
.ezy-job{border:0;border-radius:0;box-shadow:0 1px 0 var(--ezy-line)}
.ezy-bg-grey .ezy-job{box-shadow:none}
.ezy-job figcaption{padding:20px 22px 24px}
.ezy-job__meta{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700;color:var(--ezy-red)}
.ezy-job__title{font-family:var(--ezy-fh);font-size:20px;margin-top:4px}

/* ---------- reviews, chips ---------- */
.ezy-review{padding:28px;border-color:transparent;box-shadow:0 1px 2px rgba(12,26,51,.06)}
.ezy-chips a{min-height:48px;padding:10px 20px;font-weight:600}

/* ---------- FAQ (two columns) ---------- */
.ezy-faq__head{position:sticky;top:120px;align-self:flex-start}
@media(max-width:767px){.ezy-faq__head{position:static}}
.ezy-faq .e-n-accordion-item{border-bottom:1px solid var(--ezy-line)}
.ezy-faq .e-n-accordion-item-title{padding:22px 0;border:0!important;background:none!important}
.ezy-faq .e-n-accordion-item-title-text{font-family:var(--ezy-fh);font-size:20px;font-weight:700;color:var(--ezy-navy);line-height:1.35}
.ezy-faq .e-n-accordion-item-title-icon svg{fill:var(--ezy-red)}
.ezy-faq .e-n-accordion-item>.e-con{padding:0 0 24px!important;border:0!important}

/* ---------- forms ---------- */
.ezy-form-aside{background:var(--ezy-grey);border-radius:0;padding:36px!important;align-self:flex-start}
.ezy-bg-grey .ezy-form-aside{background:#fff}

/* fixes after first visual pass */
.ezy-hero-full__inner{z-index:2!important}
.ezy-nav__toggle,.ezy-nav__toggle:hover,.ezy-nav__toggle:focus,.ezy-burger,.ezy-burger:hover{background:none!important;box-shadow:none!important;border:0!important;color:var(--ezy-navy)!important}
.ezy-hero-full__bg img,.ezy-cover img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important}
.ezy-on-dark .elementor-heading-title,.ezy-hero-full .elementor-heading-title{color:#fff!important}
.ezy-footer__h .elementor-heading-title{font-family:var(--ezy-fb)!important;font-size:14px!important;font-weight:700!important;letter-spacing:.14em;text-transform:uppercase;line-height:1.4!important;color:#fff!important}
.ezy-footer__links ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ezy-faq .e-n-accordion-item-title-text{font-size:20px!important;font-family:var(--ezy-fh)!important;font-weight:700!important;color:var(--ezy-navy)!important}
.ezy-faq .e-n-accordion-item-title-icon svg{width:16px;height:16px}
/* Kit link colour must not reach buttons */
a.ezy-btn--red,a.ezy-btn--red:hover,a.ezy-btn--navy,a.ezy-btn--navy:hover,.ezy-callbar a{color:#fff!important}
a.ezy-btn--white,a.ezy-btn--white:hover,a.ezy-btn--outline{color:var(--ezy-navy)!important}
a.ezy-btn--outline:hover{color:#fff!important}
.ezy-cta-image::after{background:linear-gradient(90deg,rgba(12,26,51,.94) 0%,rgba(12,26,51,.84) 42%,rgba(12,26,51,.4) 100%)}
.ezy-narrow>.e-con-inner>.elementor-element{max-width:860px}
.ezy-form-aside{align-self:flex-start!important;height:auto!important}
/* Posts: constrained reading width (replaces the block-library layout rules we don't load) */
.entry-content.is-layout-constrained>*{max-width:min(var(--theme-block-max-width,760px),calc(100vw - 40px));margin-left:auto!important;margin-right:auto!important}
.entry-content table{width:100%;border-collapse:collapse;font-size:16px}
.entry-content th,.entry-content td{border:1px solid var(--ezy-line);padding:10px 12px;text-align:left;vertical-align:top}
.entry-content th{background:var(--ezy-grey);color:var(--ezy-navy)}
.single-post .entry-content h2{font-size:clamp(26px,2.6vw,34px);letter-spacing:-.015em}
.single-post .hero-section .page-title{font-size:clamp(34px,4.4vw,56px);letter-spacing:-.02em;line-height:1.1}
.wpcf7 .hidden-fields-container{display:none!important}
.wpcf7 form:not(.sent):not(.invalid):not(.failed):not(.spam):not(.unaccepted) .wpcf7-response-output{display:none}

/* Heading font (one setting: EZY_HEADING_FONT in ezy.php, D35/D36) */
h1,h2,.ezy-h1 .elementor-heading-title,.ezy-h2 .elementor-heading-title,.ezy-statement,.ezy-step__num{font-family:var(--ezy-fh)!important;font-weight:800!important}
h3,h4,h5,h6,.ezy-card__title,.ezy-job__title,.ezy-faq .e-n-accordion-item-title-text{font-family:var(--ezy-fh)!important;font-weight:700!important}
.ezy-h1 .elementor-heading-title{letter-spacing:-.03em;line-height:1.05}
.ezy-h2 .elementor-heading-title{letter-spacing:-.025em;line-height:1.1}
.ezy-statement{letter-spacing:-.02em}
/* Logo image */
.ezy-logo{display:inline-flex;line-height:0}
.ezy-logo img{display:block;height:54px;width:auto}
.ezy-header.is-scrolled .ezy-logo img{height:46px}
.ezy-footer .ezy-logo img{height:120px}
@media(max-width:767px){.ezy-logo img{height:44px}}
/* Logo size must beat Elementor's img{height:auto} (loads after this file) */
.ezy-header .ezy-logo img{height:50px!important;width:auto!important;max-width:none!important}
.ezy-header.is-scrolled .ezy-logo img{height:42px!important}
.ezy-footer .ezy-logo img{height:120px!important;width:auto!important;max-width:none!important}
@media(max-width:767px){.ezy-header .ezy-logo img{height:38px!important}}
.ezy-header .ezy-logo img{transition:height .2s}
.ezy-nav__item>a,.ezy-nav__cta .ezy-btn{white-space:nowrap}
/* Kit button padding must not reach the nav toggles */
.ezy-nav__toggle{padding:0!important;width:24px!important;min-width:24px;height:28px;margin-left:-6px!important}
.ezy-nav__toggle svg{width:12px!important;height:8px!important;flex:none}
.ezy-burger{padding:0!important}
@media(max-width:1024px){.ezy-nav__toggle{width:48px!important;height:48px;margin:0!important}}

/* Condensed heading font: larger sizes, neutral tracking (D36) */
.ezy-h1 .elementor-heading-title{font-size:clamp(44px,5.8vw,84px)!important;line-height:1!important;letter-spacing:-.005em!important}
.ezy-h2 .elementor-heading-title{font-size:clamp(36px,4.2vw,60px)!important;line-height:1.04!important;letter-spacing:0!important}
.ezy-statement{font-size:clamp(32px,3.6vw,54px)!important;line-height:1.12!important;letter-spacing:0!important}
.ezy-step__num{font-size:52px!important}
.ezy-card__title,.ezy-cards--dark .ezy-card__title{font-size:26px!important}
.ezy-faq .e-n-accordion-item-title-text{font-size:23px!important}
h3{letter-spacing:0}
.single-post .hero-section .page-title{font-size:clamp(40px,5vw,64px)!important;letter-spacing:0!important;line-height:1.02!important}
.single-post .entry-content h2{font-size:clamp(30px,3vw,40px)!important;letter-spacing:0!important}
.ezy-404 h1{font-size:48px}
/* Barlow Semi Condensed sizing (D37): a little wider than Saira Condensed */
.ezy-h1 .elementor-heading-title{font-size:clamp(42px,5.4vw,78px)!important;line-height:1.02!important;letter-spacing:-.01em!important}
.ezy-h2 .elementor-heading-title{font-size:clamp(34px,3.9vw,56px)!important;line-height:1.06!important;letter-spacing:-.01em!important}
.ezy-statement{font-size:clamp(30px,3.3vw,48px)!important;letter-spacing:-.005em!important}
.ezy-card__title,.ezy-cards--dark .ezy-card__title{font-size:25px!important}
.ezy-faq .e-n-accordion-item-title-text{font-size:22px!important}
.single-post .hero-section .page-title{font-size:clamp(38px,4.6vw,60px)!important;letter-spacing:-.01em!important}
.single-post .entry-content h2{font-size:clamp(28px,2.8vw,38px)!important}
/* Parallax statement band */
.ezy-parallax .ezy-statement{text-shadow:0 2px 24px rgba(12,26,51,.35)}
@media(prefers-reduced-motion:reduce){.ezy-parallax{background-attachment:scroll!important}}

/* ---------- review carousel (4 visible, arrow controls in ezy.js) ---------- */
.ezy-reviews{display:grid;gap:28px;min-width:0}
.ezy-carousel__head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.ezy-carousel__nav{display:flex;gap:10px}
.ezy-carousel__btn{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0!important;border-radius:50%!important;border:2px solid var(--ezy-navy)!important;background:#fff!important;color:var(--ezy-navy)!important;cursor:pointer;transition:background-color .2s,color .2s,opacity .2s;box-shadow:none!important}
.ezy-carousel__btn:hover:not(:disabled){background:var(--ezy-navy)!important;color:#fff!important}
.ezy-carousel__btn:disabled{opacity:.35;cursor:default}
.ezy-carousel__btn .ezy-icon{width:18px;height:18px}
.ezy-carousel__track{--gap:24px;display:flex;gap:var(--gap);margin:0;padding:4px 2px 8px;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none}
.ezy-carousel__track::-webkit-scrollbar{display:none}
.ezy-carousel__track:focus-visible{outline:3px solid var(--ezy-red);outline-offset:4px}
.ezy-carousel .ezy-review{flex:0 0 calc((100% - 3 * var(--gap)) / 4);min-width:0;scroll-snap-align:start;display:flex;flex-direction:column;gap:14px;margin:0;padding:28px;background:#fff;border:1px solid var(--ezy-line);border-radius:0;box-shadow:0 1px 2px rgba(12,26,51,.05)}
.ezy-bg-grey .ezy-carousel .ezy-review{border-color:transparent}
.ezy-carousel .ezy-review blockquote{margin:0;padding:0;border:0;font-style:normal}
.ezy-carousel .ezy-review blockquote p{margin:0;font-size:16px;line-height:1.6;color:var(--ezy-ink)}
.ezy-review__by{display:flex;flex-direction:column;gap:2px;margin:auto 0 0}
.ezy-carousel .ezy-star .ezy-icon{width:18px;height:18px}
@media(max-width:1180px){.ezy-carousel .ezy-review{flex-basis:calc((100% - 2 * var(--gap)) / 3)}}
@media(max-width:1024px){.ezy-carousel .ezy-review{flex-basis:calc((100% - var(--gap)) / 2)}}
@media(max-width:767px){.ezy-carousel__track{--gap:16px}.ezy-carousel .ezy-review{flex-basis:86%;padding:22px}.ezy-carousel__btn{width:46px;height:46px}}
@media(prefers-reduced-motion:reduce){.ezy-carousel__track{scroll-behavior:auto}}
/* Review carousel runs full width (cards wider); header row stays on the grid */
html,body{overflow-x:clip}
.ezy-carousel__track{--edge:40px;width:100vw;max-width:none;margin-inline:calc(50% - 50vw);padding-inline:var(--edge);scroll-padding-inline:var(--edge)}
.ezy-carousel .ezy-review{flex-basis:calc((100vw - 2 * var(--edge) - 3 * var(--gap)) / 4)}
@media(max-width:1180px){.ezy-carousel .ezy-review{flex-basis:calc((100vw - 2 * var(--edge) - 2 * var(--gap)) / 3)}}
@media(max-width:1024px){.ezy-carousel__track{--edge:32px}.ezy-carousel .ezy-review{flex-basis:calc((100vw - 2 * var(--edge) - var(--gap)) / 2)}}
@media(max-width:767px){.ezy-carousel__track{--edge:20px}.ezy-carousel .ezy-review{flex-basis:calc(100vw - 2 * var(--edge) - 40px)}}
@media(min-width:1600px){.ezy-carousel .ezy-review{padding:32px}}
/* Card row edge halfway between the content grid and the 40 px full-width edge */
@media(min-width:1025px){.ezy-carousel__track{--edge:calc((var(--ezy-grid-pad) + 40px) / 2)}}
/* Split rows: outer edge on the page grid (same edge as every other section), equal gap to the photo */
:root{--ezy-grid-pad:max(40px,calc((100vw - 1320px) / 2))}
@media(max-width:1024px){:root{--ezy-grid-pad:32px}}
@media(max-width:767px){:root{--ezy-grid-pad:20px}}
@media(min-width:1025px){
  .ezy-split--right .ezy-split__copy{padding-right:96px!important}
  .ezy-split--left .ezy-split__copy{padding-left:96px!important}
  .ezy-split__copy>.elementor-element{max-width:640px}
}
/* Text-left image rows, inner-page heroes included: start the text 96 px into its half (mirrors the photo-left rows) rather than on the 1320 grid */
@media(min-width:1025px){
  .ezy-split--right .ezy-split__copy{padding-left:min(var(--ezy-grid-pad),96px)!important}
  .ezy-split--right .ezy-split__copy{padding-right:max(96px,calc(50vw - min(var(--ezy-grid-pad),96px) - 640px))!important}
}

/* Looping carousel: track runs edge to edge; snap leaves an equal peek of the neighbouring card on both sides */
.ezy-carousel__track{padding-inline:0!important;scroll-padding-inline:var(--edge)!important}
.ezy-carousel__track{scrollbar-width:none}
@media(max-width:767px){.ezy-carousel__track{--edge:28px}.ezy-carousel .ezy-review{flex-basis:calc(100vw - 2 * var(--edge))!important}}
/* Peek size: edge minus gap must leave a visible slice of the neighbouring card */
@media(min-width:1025px){.ezy-carousel__track{--edge:max(64px,calc((var(--ezy-grid-pad) + 40px) / 2))!important}}
@media(min-width:768px) and (max-width:1024px){.ezy-carousel__track{--edge:56px!important}}
@media(max-width:767px){.ezy-carousel__track{--edge:40px!important}}
.ezy-carousel__track{position:relative}
/* FAQ: left heading top-aligned with the first question (no sticky offset) */
.ezy-faq__head{position:static!important;top:auto!important;align-self:flex-start!important}
.e-con:has(>.ezy-faq__head){align-items:flex-start!important}
.ezy-faq .e-n-accordion-item:first-child>.e-n-accordion-item-title{padding-top:0!important}
/* FAQ: questions column narrower and pushed right (right edge stays on the grid) */
@media(min-width:1025px){.e-con:has(>.ezy-faq__head)>.e-con:last-child{--width:54%!important;margin-left:auto}}

/* ---------- trust strip (icons + a couple of words, white) ---------- */
.ezy-trust-strip{border-bottom:1px solid var(--ezy-line)}
.ezy-trust-row>.elementor-element{display:flex;justify-content:center;align-items:center;padding:6px 16px}
.ezy-trust-row>.elementor-element+.elementor-element{border-left:1px solid var(--ezy-line)}
.ezy-trust .elementor-icon-box-wrapper{display:flex;align-items:center;gap:14px;text-align:left}
.ezy-trust .elementor-icon-box-icon{margin:0!important;flex:none}
.ezy-trust .elementor-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:var(--ezy-grey);font-size:22px!important}
.ezy-trust .elementor-icon svg{width:22px!important;height:22px!important;fill:var(--ezy-red)!important}
.ezy-trust .elementor-icon-box-title{margin:0!important;font-family:var(--ezy-fh)!important;font-weight:700!important;font-size:21px!important;line-height:1.2;color:var(--ezy-navy)!important;white-space:nowrap}
.ezy-trust .elementor-icon-box-content{display:flex;align-items:center}
@media(max-width:1024px){
  .ezy-trust-row>.elementor-element{padding:16px 12px}
  .ezy-trust-row>.elementor-element:nth-child(3){border-left:0}
  .ezy-trust-row>.elementor-element:nth-child(n+3){border-top:1px solid var(--ezy-line)}
}
@media(max-width:767px){
  .ezy-trust .elementor-icon-box-wrapper{flex-direction:column;gap:10px;text-align:center}
  .ezy-trust .elementor-icon{width:46px;height:46px}
  .ezy-trust .elementor-icon-box-title{font-size:18px!important;white-space:normal}
}
.ezy-trust .elementor-icon-box-description{display:none!important}
.ezy-trust .elementor-icon-box-content{align-self:center}
.ezy-trust .elementor-icon-box-title,.ezy-trust .elementor-icon-box-title *{margin:0!important}
@media(max-width:1240px){.ezy-trust .elementor-icon-box-title{white-space:normal!important;max-width:150px}}
.ezy-hero-full:not(.ezy-cta-image) .ezy-hero-full__bg img{object-position:50% 100%!important}

/* ---------- brands ---------- */
.ezy-brands-section{border-top:1px solid var(--ezy-line)}
.ezy-brands{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}
.ezy-brand{display:flex;align-items:center;justify-content:center;min-height:96px;padding:16px;background:var(--ezy-grey);border-radius:0;text-align:center}
.ezy-bg-grey .ezy-brand{background:#fff}
.ezy-brand span{font-family:var(--ezy-fh);font-weight:700;font-size:22px;line-height:1.15;color:var(--ezy-navy)}
.ezy-brand--logo,.ezy-bg-grey .ezy-brand--logo{background:#fff;border:1px solid var(--ezy-line)}
.ezy-brand--logo img{max-width:100%;height:auto!important;object-fit:contain}
@media(max-width:1024px){.ezy-brands{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){.ezy-brands{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ezy-brand{min-height:76px}.ezy-brand span{font-size:19px}}

/* Service-area map (home "Where we work") fills the media half of the split row. */
.ezy-split__media .elementor-widget-shortcode,.ezy-split__media .elementor-shortcode{position:absolute;inset:0}
.ezy-map,.ezy-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.ezy-head--split .ezy-intro{max-width:600px}
/* Checklists: more room between the section head and the two lists */
.ezy-checkcols{margin-top:32px!important}
@media(max-width:767px){.ezy-checkcols{margin-top:16px!important}}
.ezy-checklist .elementor-icon-list-item{align-items:flex-start!important}
.ezy-checklist .elementor-icon-list-icon{margin-top:.3em}
/* Wide sections (service cards): content runs out to the same edge as the review carousel instead of the 1320 grid */
@media(min-width:1025px){.e-con.ezy-section--wide{--container-max-width:calc(100vw - 2 * min(var(--ezy-grid-pad), max(64px, (var(--ezy-grid-pad) + 40px) / 2)))!important}}
.ezy-section--wide .ezy-cards{margin-top:32px}
@media(max-width:767px){.ezy-section--wide .ezy-cards{margin-top:16px}}
/* Full service list (5+ cards): 4 per row on wide screens so 8 cards make two full rows */
@media(min-width:1400px){.ezy-cards:has(> :nth-child(5)){grid-template-columns:repeat(4,minmax(0,1fr))}.ezy-cards:has(> :nth-child(5)) .ezy-card__body{padding:24px 24px 28px}}
.ezy-card__media img{height:100%!important}
/* Home hero fills the first screen exactly (viewport minus the 84 px header), so the next section starts below the fold */
@media(min-width:768px){.ezy-hero-full:not(.ezy-cta-image){--min-height:calc(100svh - 84px)!important;min-height:calc(100svh - 84px)!important}}
/* Crop focus for wide photos in tall frames (IMAGE_FOCUS in build-pages.py) */
.ezy-focus-bottom img{object-position:50% 100%!important}
.ezy-focus-left-bottom img{object-position:18% 85%!important}
.ezy-focus-right img{object-position:78% 50%!important}
.ezy-focus-ute{overflow:hidden}
.ezy-focus-ute img{object-position:50% 40%!important;transform:scale(1.15);transform-origin:4% 87%}
@media (min-width:1600px){.ezy-focus-ute img{object-position:50% 74%!important;transform:none}}
@media (max-width:1024px){.ezy-focus-ute img{object-position:44% 80%!important;transform:none}}
@media (max-width:767px){.ezy-focus-ute img{object-position:50% 72%!important}}
/* Emergency bar (D40) */
:root{--ezy-topbar-h:40px}
.ezy-topbar{background:var(--ezy-red);color:#fff;font-family:var(--ezy-fb);font-size:15px;line-height:1.3}
.ezy-topbar__inner{max-width:1320px;margin:0 auto;padding:0 40px;min-height:var(--ezy-topbar-h);display:flex;align-items:center;justify-content:space-between;gap:16px}
.ezy-topbar a{color:#fff!important;text-decoration:none}
.ezy-topbar__label:hover strong{text-decoration:underline}
.ezy-topbar__call{display:inline-flex;align-items:center;gap:8px;font-weight:700;white-space:nowrap}
.ezy-topbar__call .ezy-icon{width:15px;height:15px}
@media(max-width:1024px){.ezy-topbar__inner{padding:0 32px}}
@media(max-width:767px){.ezy-topbar__inner{padding:0 20px;justify-content:center}.ezy-topbar__more{display:none}.ezy-topbar{font-size:14px}}
@media(max-width:360px){.ezy-topbar__call span{display:none}}
@media(min-width:768px){.ezy-hero-full:not(.ezy-cta-image){--min-height:calc(100svh - 84px - var(--ezy-topbar-h))!important;min-height:calc(100svh - 84px - var(--ezy-topbar-h))!important}}
/* Service area map (D42) */
.ezy-map{background:#F2F2EF}
.ezy-map__canvas{position:absolute;inset:0;z-index:0;background:#F2F2EF}
.ezy-map__gbp{position:absolute;left:12px;bottom:12px;z-index:500;background:#fff;color:var(--ezy-navy)!important;font:600 14px/1.2 var(--ezy-fb);padding:9px 12px;border-radius:var(--ezy-radius);box-shadow:0 1px 4px rgba(12,26,51,.25);text-decoration:none}
.ezy-map__gbp:hover{text-decoration:underline}
.ezy-map .leaflet-tooltip.ezy-map__label{background:#fff;border:0;border-radius:0;box-shadow:0 1px 3px rgba(12,26,51,.25);color:var(--ezy-navy);font:600 13px/1.2 var(--ezy-fb);padding:4px 7px;cursor:pointer}
.ezy-map .leaflet-tooltip.ezy-map__label:before{display:none}
.ezy-map .leaflet-interactive{cursor:pointer}
.ezy-map .leaflet-control-attribution{font-size:10px}
.ezy-map--failed .ezy-map__canvas{display:none}
.ezy-map .ezy-map__tiles{filter:grayscale(1) brightness(1.06) contrast(.9)}
a.ezy-btn--ghost{color:#fff!important}
a.ezy-btn--ghost:hover{color:var(--ezy-navy)!important}
@media(min-width:768px){.ezy-hero-full .ezy-h1 .elementor-heading-title{font-size:clamp(44px,4.6vw,68px)!important}}
@media(min-width:1025px){.ezy-topbar__inner{max-width:none;padding:0 var(--ezy-grid-pad)}}
/* Cards: centre a part-filled last row (7 services since D41) */
.ezy-cards{display:flex!important;flex-wrap:wrap;justify-content:center}
.ezy-cards>*{flex:0 0 calc((100% - 2 * 28px) / 3);min-width:0}
@media(min-width:1400px){.ezy-cards:has(> :nth-child(5))>*{flex-basis:calc((100% - 3 * 28px) / 4)}}
@media(max-width:1024px){.ezy-cards>*{flex-basis:calc((100% - 28px) / 2)}}
@media(max-width:767px){.ezy-cards>*{flex-basis:100%}}
@media(max-width:767px){.ezy-split__media:has(.ezy-map){--min-height:440px!important;min-height:440px!important}.ezy-map .leaflet-tooltip.ezy-map__label{font-size:12px;padding:3px 6px}}

/* Full logo in the header (D44 update): taller header bar */
:root{--ezy-header-h:104px}
.ezy-header .e-con-inner{min-height:104px}
.ezy-header.is-scrolled .e-con-inner{min-height:78px}
.ezy-header .ezy-logo img{height:80px!important}
.ezy-header.is-scrolled .ezy-logo img{height:58px!important}
@media(max-width:767px){:root{--ezy-header-h:76px}.ezy-header .e-con-inner{min-height:76px}.ezy-header .ezy-logo img,.ezy-header.is-scrolled .ezy-logo img{height:56px!important}}
@media(min-width:768px){.ezy-hero-full:not(.ezy-cta-image){--min-height:calc(100svh - 104px - var(--ezy-topbar-h))!important;min-height:calc(100svh - 104px - var(--ezy-topbar-h))!important}}

/* Garage-mark texture (D45): faint watermark, opacity baked into the file */
.ezy-texture{background-image:url(ezy-texture-mark.webp?v=2);background-repeat:no-repeat;background-size:min(620px,70vw) auto}
.ezy-texture.ezy-on-dark{background-image:url(ezy-texture-mark-light.webp?v=2)}
.ezy-texture--right{background-position:right -90px bottom -40px}
.ezy-texture--left{background-position:left -110px bottom -40px}
@media(max-width:767px){.ezy-texture{background-size:340px auto}.ezy-texture--right{background-position:right -60px bottom -20px}.ezy-texture--left{background-position:left -60px bottom -20px}}

/* Square corners site-wide (D47). Circles (carousel arrows, icon badges, map pins) stay round. */
.elementor-button,.wpcf7 input,.wpcf7 select,.wpcf7 textarea,.wpcf7 button,.wpcf7-submit,.ezy-section img,.ezy-card,.ezy-job,.elementor-widget-image img,.leaflet-tooltip,.leaflet-bar,.leaflet-bar a,.ezy-map__gbp,.ezy-map,.ezy-map__canvas,.page-numbers,.entry-card,.ct-media-container,.ct-search-form input,.ct-search-form button{border-radius:0!important}

/* Archivo heading sizing (D48): wider face than Barlow Semi Condensed, so sizes come down ~20% */
.ezy-h1 .elementor-heading-title{font-size:clamp(34px,4.3vw,62px)!important;line-height:1.06!important;letter-spacing:-.01em!important}
.ezy-h2 .elementor-heading-title{font-size:clamp(28px,3.1vw,44px)!important;line-height:1.1!important;letter-spacing:-.008em!important}
.ezy-statement{font-size:clamp(24px,2.6vw,38px)!important;line-height:1.22!important;letter-spacing:-.01em!important}
.ezy-step__num{font-size:44px!important}
.ezy-card__title,.ezy-cards--dark .ezy-card__title{font-size:21px!important;letter-spacing:-.01em}
.ezy-faq .e-n-accordion-item-title-text{font-size:19px!important}
.ezy-point h3,.ezy-step h3{font-size:19px}
.ezy-job__title{font-size:18px}
.single-post .hero-section .page-title{font-size:clamp(32px,3.8vw,50px)!important;letter-spacing:-.02em!important;line-height:1.08!important}
.single-post .entry-content h2{font-size:clamp(24px,2.3vw,32px)!important;letter-spacing:-.01em!important}
.entry-content h3{font-size:20px}
.ezy-404 h1{font-size:38px}
@media(min-width:768px){.ezy-hero-full .ezy-h1 .elementor-heading-title{font-size:clamp(38px,3.7vw,56px)!important}}

/* Montserrat (D48 update): a touch wider than Archivo */
.ezy-nowrap{white-space:nowrap}
.ezy-h1 .elementor-heading-title{font-size:clamp(31px,4.1vw,58px)!important;letter-spacing:-.015em!important}
.ezy-h2 .elementor-heading-title{font-size:clamp(27px,2.9vw,42px)!important;letter-spacing:-.012em!important}
.ezy-statement{font-size:clamp(23px,2.5vw,36px)!important}
.ezy-card__title,.ezy-cards--dark .ezy-card__title{font-size:20px!important}
@media(min-width:768px){.ezy-hero-full .ezy-h1 .elementor-heading-title{font-size:clamp(36px,3.5vw,52px)!important}}

/* ---------- Services as numbered rows with a photo panel (D50) ---------- */
.ezy-svc-rows{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.ezy-svc-rows__media{position:sticky;top:calc(var(--ezy-header-h) + 24px);aspect-ratio:4/5;overflow:hidden;background:var(--ezy-navy)}
.ezy-svc-rows__pic{position:absolute;inset:0;opacity:0;transition:opacity .35s}
.ezy-svc-rows__pic.is-active{opacity:1}
.ezy-svc-rows__pic img{width:100%;height:100%;object-fit:cover;display:block}
.ezy-svc-rows__list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ezy-navy)}
.ezy-svc-rows__list li{margin:0;border-bottom:1px solid var(--ezy-line)}
.ezy-svc-row{display:grid;grid-template-columns:56px minmax(0,1fr) 32px;align-items:center;gap:20px;padding:22px 4px;text-decoration:none!important;color:var(--ezy-navy)!important;transition:padding .2s,background-color .2s}
.ezy-svc-row__num{font-family:var(--ezy-fh);font-weight:800;font-size:15px;letter-spacing:.06em;color:var(--ezy-muted);transition:color .2s}
.ezy-svc-row__thumb{display:none}
.ezy-svc-row__body{display:flex;flex-direction:column;gap:4px}
.ezy-svc-row__title{font-family:var(--ezy-fh);font-weight:700;font-size:23px;line-height:1.2;letter-spacing:-.01em}
.ezy-svc-row__desc{font-size:16px;line-height:1.5;color:var(--ezy-muted)}
.ezy-svc-row__arrow{display:flex;justify-content:flex-end;color:var(--ezy-red);transition:transform .2s}
.ezy-svc-row__arrow svg{width:22px;height:22px}
.ezy-svc-row:hover,.ezy-svc-row:focus-visible,.ezy-svc-row.is-active{padding-left:14px}
.ezy-svc-row:hover .ezy-svc-row__num,.ezy-svc-row:focus-visible .ezy-svc-row__num,.ezy-svc-row.is-active .ezy-svc-row__num{color:var(--ezy-red)}
.ezy-svc-row:hover .ezy-svc-row__arrow,.ezy-svc-row:focus-visible .ezy-svc-row__arrow{transform:translateX(6px)}
@media(max-width:1024px){.ezy-svc-rows{grid-template-columns:1fr}.ezy-svc-rows__media{display:none}
  .ezy-svc-row{grid-template-columns:88px minmax(0,1fr) 24px;gap:16px;padding:16px 0}
  .ezy-svc-row:hover,.ezy-svc-row:focus-visible,.ezy-svc-row.is-active{padding-left:0}
  .ezy-svc-row__num{display:none}
  .ezy-svc-row__thumb{display:block;width:88px;aspect-ratio:1;overflow:hidden;background:var(--ezy-navy)}
  .ezy-svc-row__thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .ezy-svc-row__title{font-size:19px}.ezy-svc-row__desc{font-size:15px}}

/* ---------- Recent jobs as a photo mosaic (D50) ---------- */
.ezy-jobs--mosaic{grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-auto-rows:minmax(0,1fr);gap:16px}
.ezy-jobs--mosaic .ezy-job{position:relative;box-shadow:none;background:var(--ezy-navy);min-height:260px}
.ezy-jobs--mosaic .ezy-job:first-child{grid-row:span 2;min-height:560px}
.ezy-jobs--mosaic .ezy-job img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;transition:transform .5s}
.ezy-jobs--mosaic .ezy-job:hover img{transform:scale(1.03)}
.ezy-jobs--mosaic .ezy-job figcaption{position:absolute;left:0;right:0;bottom:0;padding:64px 24px 22px;background:linear-gradient(180deg,rgba(12,26,51,0) 0%,rgba(12,26,51,.88) 62%)}
.ezy-jobs--mosaic .ezy-job__meta{color:#fff;opacity:.85}
.ezy-jobs--mosaic .ezy-job__meta::before{content:"";display:inline-block;width:18px;height:2px;background:var(--ezy-red);vertical-align:middle;margin-right:8px}
.ezy-jobs--mosaic .ezy-job__title{color:#fff;font-size:20px}
.ezy-jobs--mosaic .ezy-job__text{color:rgba(255,255,255,.86);max-width:46ch}
.ezy-jobs--mosaic .ezy-job:not(:first-child) .ezy-job__text{display:none}
.ezy-jobs--mosaic .ezy-job:first-child .ezy-job__title{font-size:26px}
@media(max-width:767px){.ezy-jobs--mosaic{grid-template-columns:1fr}.ezy-jobs--mosaic .ezy-job,.ezy-jobs--mosaic .ezy-job:first-child{grid-row:auto;min-height:300px}.ezy-jobs--mosaic .ezy-job:not(:first-child) .ezy-job__text{display:block}}
.ezy-svc-row__thumb img,.ezy-svc-rows__pic img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover}
.ezy-jobs--mosaic .ezy-job__title{line-height:1.2}
@media(max-width:767px){.ezy-jobs--mosaic .ezy-job,.ezy-jobs--mosaic .ezy-job:first-child{min-height:340px}.ezy-jobs--mosaic .ezy-job:first-child .ezy-job__title,.ezy-jobs--mosaic .ezy-job__title{font-size:21px}.ezy-jobs--mosaic .ezy-job__text{font-size:14px}}

/* Trust strip on light blue (D51): white icon circles, smaller labels that never clip */
.ezy-trust-strip.ezy-bg-grey{border-bottom:0}
.ezy-bg-grey .ezy-trust .elementor-icon{background:#fff}
.ezy-trust-row>.elementor-element{min-width:0}
.ezy-trust .elementor-icon-box-title{font-size:18px!important;white-space:normal!important;max-width:none!important}
.ezy-trust .elementor-icon-box-wrapper{min-width:0}
@media(min-width:1025px) and (max-width:1360px){.ezy-trust .elementor-icon-box-title{font-size:16px!important}.ezy-trust .elementor-icon{width:46px;height:46px}}
@media(max-width:767px){.ezy-trust .elementor-icon-box-title{font-size:16px!important}}
/* Home banner photo (D54): show less driveway */
.ezy-hero-full:not(.ezy-cta-image) .ezy-hero-full__bg img[src*="stock-family-house-timber-look-door"]{object-position:50% 45%!important}
/* Service rows without numbers; landscape photo panel so photos aren't blown up (D50 update) */
.ezy-svc-row{grid-template-columns:minmax(0,1fr) 32px}
.ezy-svc-rows__media{aspect-ratio:4/3}
.ezy-svc-rows{align-items:center}
@media(max-width:1024px){.ezy-svc-row{grid-template-columns:88px minmax(0,1fr) 24px}}

/* ---------- Jobs mosaic everywhere, 3-col grid with shaped tiles (D57) ---------- */
.ezy-jobs--grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:290px;grid-auto-flow:row dense;gap:16px;margin-top:32px}
@media(min-width:768px){.ezy-jobs--grid .ezy-job,.ezy-jobs--grid .ezy-job:first-child{grid-row:auto;min-height:0}
  .ezy-jobs--grid .ezy-job.ezy-job--big.ezy-job--big{grid-column:span 2;grid-row:span 2}
  .ezy-jobs--grid .ezy-job.ezy-job--wide3.ezy-job--wide3{grid-column:span 3}
  .ezy-jobs--grid .ezy-job.ezy-job--wide2.ezy-job--wide2{grid-column:span 2}
  .ezy-jobs--grid .ezy-job.ezy-job--tall.ezy-job--tall{grid-row:span 2}}
.ezy-jobs--grid .ezy-job .ezy-job__text,.ezy-jobs--grid .ezy-job:not(:first-child) .ezy-job__text{display:none}
.ezy-jobs--grid .ezy-job:first-child .ezy-job__title,.ezy-jobs--grid .ezy-job__title{font-size:20px}
.ezy-jobs--grid .ezy-job--big .ezy-job__text,.ezy-jobs--grid .ezy-job--wide3 .ezy-job__text,.ezy-jobs--grid .ezy-job--wide2 .ezy-job__text,.ezy-jobs--all .ezy-job .ezy-job__text,.ezy-jobs--all .ezy-job:not(:first-child) .ezy-job__text{display:block}
.ezy-jobs--grid .ezy-job--big .ezy-job__title,.ezy-jobs--grid .ezy-job--wide3 .ezy-job__title{font-size:26px}
.ezy-jobs--all .ezy-job:not(.ezy-job--big):not(.ezy-job--wide3):not(.ezy-job--wide2) .ezy-job__text{font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(min-width:768px) and (max-width:1024px){.ezy-jobs--grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:300px}
  .ezy-jobs--grid .ezy-job.ezy-job--big.ezy-job--big,.ezy-jobs--grid .ezy-job.ezy-job--wide3.ezy-job--wide3,.ezy-jobs--grid .ezy-job.ezy-job--wide2.ezy-job--wide2{grid-column:span 2;grid-row:span 1}
  .ezy-jobs--grid .ezy-job.ezy-job--tall.ezy-job--tall{grid-row:span 1}}
@media(max-width:767px){.ezy-jobs--grid{grid-template-columns:1fr;grid-auto-rows:auto;margin-top:16px}
  .ezy-jobs--grid .ezy-job,.ezy-jobs--grid .ezy-job:first-child{grid-column:auto;grid-row:auto;min-height:340px}
  .ezy-jobs--grid .ezy-job .ezy-job__text,.ezy-jobs--grid .ezy-job:not(:first-child) .ezy-job__text{display:block}
  .ezy-jobs--grid .ezy-job__title,.ezy-jobs--grid .ezy-job--big .ezy-job__title,.ezy-jobs--grid .ezy-job--wide3 .ezy-job__title{font-size:21px}}

/* Bullet lists in text sections: red tick boxes instead of dots (D58). Legal pages keep bullets. */
.ezy-body:not(.ezy-body--legal) ul{list-style:none;margin:20px 0;padding:0;display:grid;gap:12px}
.ezy-body:not(.ezy-body--legal) ul li{position:relative;padding-left:38px;margin:0}
.ezy-body:not(.ezy-body--legal) ul li::before{content:"";position:absolute;left:0;top:.2em;width:24px;height:24px;background:var(--ezy-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23fff' d='M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z'/%3E%3C/svg%3E") no-repeat center/12px 12px}


/* ---------- Layout A: numbered steps beside the copy (D59) ---------- */
.ezy-numbered{align-items:flex-start}
@media(min-width:1025px){.ezy-numbered__copy{position:sticky;top:calc(var(--ezy-header-h) + 32px)}}
.ezy-numbered__outro{padding-top:8px;border-top:1px solid var(--ezy-line)}
.ezy-numbered__lead{margin:0 0 16px;font-weight:600;color:var(--ezy-navy);font-size:18px}
.ezy-numbered__list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ezy-numbered__item{display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px;align-items:start;background:#fff;border:1px solid var(--ezy-line);padding:24px 28px;margin:0}
.ezy-bg-grey .ezy-numbered__item{border-color:transparent}
.ezy-numbered__num{font-family:var(--ezy-fh);font-weight:800;font-size:40px;line-height:1;color:var(--ezy-red);letter-spacing:-.02em}
.ezy-item__title{margin:0 0 6px!important;font-size:19px!important;line-height:1.3!important;color:var(--ezy-navy)}
.ezy-item__text{margin:0;font-size:16px;line-height:1.6;color:var(--ezy-ink)}
.ezy-numbered__item .ezy-item__text:only-child{font-size:17px;padding-top:8px}
@media(max-width:1024px){.ezy-numbered{flex-direction:column!important}.ezy-numbered>.e-con{width:100%!important}}
@media(max-width:767px){.ezy-numbered__item{grid-template-columns:44px minmax(0,1fr);gap:14px;padding:20px}.ezy-numbered__num{font-size:30px}}

/* ---------- Layout C: tiles + "what to do" panel (D59) ---------- */
.ezy-tiles{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-top:8px}
.ezy-tile{flex:0 0 calc((100% - 40px)/3);background:#fff;border:1px solid var(--ezy-line);padding:28px;display:flex;flex-direction:column;gap:6px}
.ezy-bg-grey .ezy-tile{border-color:transparent}
.ezy-tile__icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--ezy-grey);color:var(--ezy-red);margin-bottom:14px}
.ezy-bg-grey .ezy-tile__icon{background:var(--ezy-grey)}
.ezy-tile__icon svg{width:26px;height:26px}
.ezy-tiles .ezy-tile:nth-last-child(n+4):first-child~.ezy-tile,.ezy-tiles .ezy-tile:nth-last-child(n+4):first-child{}
.ezy-action{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;margin-top:20px;background:var(--ezy-navy);color:#fff;padding:32px 36px;border-left:6px solid var(--ezy-red)}
.ezy-action__title{margin:0 0 6px!important;color:#fff!important;font-size:21px!important}
.ezy-action p{margin:0;color:rgba(255,255,255,.88);font-size:16px;line-height:1.6}
.ezy-action .ezy-cta-buttons{margin:0;flex-wrap:nowrap}
.ezy-tiles__outro{max-width:880px}
@media(max-width:1024px){.ezy-tile{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:767px){.ezy-tile{flex-basis:100%;padding:24px}.ezy-action{grid-template-columns:1fr;padding:26px 24px;gap:18px}.ezy-action .ezy-cta-buttons .ezy-btn{width:100%}}
.ezy-tile__icon{width:56px!important;height:56px!important}
.ezy-tile__icon svg{width:28px!important;height:28px!important;min-width:28px;display:block}

/* Layout A alignment fix (D60): no sticky, both columns start at the top */
.ezy-numbered{align-items:flex-start!important}
.ezy-numbered__copy{position:static!important;top:auto!important}
.ezy-numbered>.e-con{align-self:flex-start}

/* ---------- Layout B: navy band with icon cards (D60) ---------- */
.ezy-band-cards{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-top:8px}
.ezy-band-card{flex:0 0 calc((100% - 40px)/3);background:rgba(255,255,255,.06);border-top:4px solid var(--ezy-red);padding:30px;display:flex;flex-direction:column;gap:6px}
.ezy-band-cards:has(> :nth-child(4):last-child) .ezy-band-card{flex-basis:calc((100% - 60px)/4)}
.ezy-band-card .ezy-tile__icon{background:var(--ezy-red);color:#fff;margin-bottom:16px}
.ezy-band .ezy-item__title{color:#fff!important}
.ezy-band .ezy-item__text{color:rgba(255,255,255,.85)}
.ezy-band .ezy-item__text a,.ezy-band__outro a{color:#fff!important;text-decoration:underline;text-decoration-color:var(--ezy-red);text-underline-offset:4px}
.ezy-band__outro p{color:rgba(255,255,255,.85)!important;margin:0}
@media(max-width:1024px){.ezy-band-card,.ezy-band-cards:has(> :nth-child(4):last-child) .ezy-band-card{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:767px){.ezy-band-card,.ezy-band-cards:has(> :nth-child(4):last-child) .ezy-band-card{flex-basis:100%;padding:24px}}
/* Action panel stacked under numbered steps (D60 update) */
.ezy-action--stack{grid-template-columns:1fr;gap:18px;margin-top:14px}
.ezy-action--stack .ezy-cta-buttons{justify-content:flex-start}

/* Numbered sections without a closing note: intro at lead size so the copy column balances the steps (D62) */
.ezy-numbered__copy .ezy-body:only-of-type p,.ezy-numbered__copy:not(:has(.ezy-numbered__outro)) .ezy-body p{font-size:20px;line-height:1.65}
.ezy-numbered+.e-con,.ezy-section>.e-con-inner>.ezy-numbered~.elementor-widget-shortcode{margin-top:8px}
@media(max-width:767px){.ezy-numbered__copy:not(:has(.ezy-numbered__outro)) .ezy-body p{font-size:18px}}
/* Four tiles: one row of four, two by two below desktop (D63) */
.ezy-tiles:has(> :nth-child(4):last-child) .ezy-tile{flex-basis:calc((100% - 60px)/4)}
@media(max-width:1024px){.ezy-tiles:has(> :nth-child(4):last-child) .ezy-tile{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:767px){.ezy-tiles:has(> :nth-child(4):last-child){gap:12px}.ezy-tiles:has(> :nth-child(4):last-child) .ezy-tile{flex-basis:calc((100% - 12px)/2);padding:18px}
  .ezy-tiles:has(> :nth-child(4):last-child) .ezy-tile__icon{width:44px!important;height:44px!important;margin-bottom:10px}
  .ezy-tiles:has(> :nth-child(4):last-child) .ezy-item__title{font-size:16px!important}
  .ezy-tiles:has(> :nth-child(4):last-child) .ezy-item__text{font-size:14px}}
/* Subheadings inside text sections (e.g. door types) */
.ezy-body h3{position:relative;margin:32px 0 8px!important;padding-top:20px;font-size:22px!important;line-height:1.25!important;color:var(--ezy-navy)}
.ezy-body h3::before{content:"";position:absolute;left:0;top:0;width:40px;height:3px;background:var(--ezy-red)}
.ezy-body h3+p{margin-top:0}
@media(max-width:767px){.ezy-body h3{font-size:20px!important;margin-top:28px!important}}
/* Numbered (A): no divider; copy column stretches to the steps' height, closing note sits at the bottom (D64) */
.ezy-numbered__outro{border-top:0!important;padding-top:0!important}
@media(min-width:1025px){
  .ezy-numbered.ezy-numbered{align-items:stretch!important}
  .ezy-numbered>.ezy-numbered__copy{align-self:stretch!important}
  .ezy-numbered__copy>.e-con-inner,.ezy-numbered__copy{display:flex;flex-direction:column}
  .ezy-numbered__copy .ezy-numbered__outro{margin-top:auto!important}
}
@media(min-width:1025px){
  /* spread evenly: heading top, intro middle, closing note bottom */
  .ezy-numbered__copy:has(.ezy-numbered__outro) .ezy-body:not(.ezy-numbered__outro){margin-top:auto!important}
}
/* Numbered, wide layout for long lists (D65): two columns, numbers run down then across */
.ezy-numbered__list--cols{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-template-rows:repeat(4,auto);gap:14px 20px;margin-top:8px}
.ezy-numbered__list--cols .ezy-numbered__item{padding:20px 24px}
.ezy-numbered__list--cols .ezy-numbered__num{font-size:34px}
.ezy-numbered__foot{max-width:880px}
@media(max-width:1024px){.ezy-numbered__list--cols{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none}}
.ezy-numbered__note{list-style:none;margin:0;display:flex;align-items:center;background:var(--ezy-navy);border-left:6px solid var(--ezy-red);padding:20px 26px}
.ezy-numbered__note p{margin:0;color:rgba(255,255,255,.9);font-size:16px;line-height:1.6}
.ezy-numbered__num{white-space:nowrap}
@media(max-width:767px){.ezy-numbered__list--cols .ezy-numbered__item{grid-template-columns:48px minmax(0,1fr)}.ezy-numbered__list--cols .ezy-numbered__num{font-size:28px}}

/* ---------- Service areas index rows (D67) ---------- */
.ezy-arearows{list-style:none;margin:8px 0 0;padding:0;border-top:2px solid var(--ezy-navy)}
.ezy-arearows li{margin:0;border-bottom:1px solid var(--ezy-line)}
.ezy-arearow{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr) 40px;gap:32px;align-items:center;padding:26px 20px;margin:0 -20px;text-decoration:none!important;transition:background-color .2s}
.ezy-arearow__name{font-family:var(--ezy-fh);font-weight:700;font-size:24px;line-height:1.2;color:var(--ezy-navy)}
.ezy-arearow__subs{font-size:16px;line-height:1.6;color:var(--ezy-ink)}
.ezy-arearow__arrow{justify-self:end;color:var(--ezy-red);font-size:24px;transition:transform .2s}
.ezy-arearow:hover,.ezy-arearow:focus-visible{background:#fff}
.ezy-arearow:hover .ezy-arearow__arrow,.ezy-arearow:focus-visible .ezy-arearow__arrow{transform:translateX(6px)}
.ezy-arearows+*,.elementor-widget-html:has(.ezy-arearows)+.elementor-widget-shortcode .ezy-action{margin-top:12px}
@media(max-width:767px){.ezy-arearow{grid-template-columns:minmax(0,1fr) 24px;gap:6px 16px;padding:20px 12px;margin:0 -12px}
  .ezy-arearow__name{font-size:20px;grid-column:1}.ezy-arearow__subs{grid-column:1;font-size:15px}.ezy-arearow__arrow{grid-column:2;grid-row:1 / span 2;align-self:center}}

.ezy-section:not(.ezy-bg-grey) .ezy-arearow:hover,.ezy-section:not(.ezy-bg-grey) .ezy-arearow:focus-visible{background:var(--ezy-grey)}
/* Tiles: every card the same height, including the centred last row (D68) */
@media(min-width:1025px){
  .ezy-tiles:not(:has(> :nth-child(4):last-child)){display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:1fr;gap:20px}
  .ezy-tiles:not(:has(> :nth-child(4):last-child)) .ezy-tile{grid-column:span 2}
  .ezy-tiles:not(:has(> :nth-child(4):last-child)) .ezy-tile:nth-child(3n+1):nth-last-child(2){grid-column:2 / span 2}
  .ezy-tiles:not(:has(> :nth-child(4):last-child)) .ezy-tile:nth-child(3n+1):last-child{grid-column:3 / span 2}
  .ezy-tiles:has(> :nth-child(4):last-child){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;gap:20px}
}
@media(min-width:768px) and (max-width:1024px){
  .ezy-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:20px}
}
@media(min-width:768px) and (max-width:1024px){.ezy-tiles .ezy-tile:nth-child(odd):last-child{grid-column:1 / -1;width:calc(50% - 10px);justify-self:center}}
