/* Epoxy Flooring NSW — brand helper classes for Elementor widgets */
:root{--ef-navy:#01377B;--ef-navy-lift:#0B4FA0;--ef-red:#E10D1F;--ef-red-lift:#FF2130;--ef-dark:#0A1A33;--ef-dark-2:#12263F;--ef-cream:#F4F6FA;--ef-line:#E3E8F0;--ef-body:#4A5568;--ef-body-dark:#B9C6D8;--ef-head:"Instrument Sans","Helvetica Neue",Arial,sans-serif;}

/* eyebrow pill */
.ef-pill .elementor-heading-title,
.ef-pill{display:inline-block;}
.ef-pill .elementor-heading-title{font-family:var(--ef-head) !important;font-size:14px !important;line-height:14px !important;font-weight:600 !important;text-transform:uppercase !important;border:1px solid var(--ef-line) !important;border-radius:50px !important;padding:11px 20px !important;color:var(--ef-dark) !important;}
.ef-pill-light .elementor-heading-title{color:#fff !important;border-color:rgba(255,255,255,.32);}

/* pill button with circular arrow badge */
.ef-btn .elementor-button{display:inline-flex;align-items:center;gap:18px;padding:8px 8px 8px 30px !important;border-radius:50px !important;font-family:var(--ef-head) !important;font-weight:600 !important;font-size:16px !important;text-transform:uppercase !important;transition:background-color .2s,transform .2s;}
.ef-btn .elementor-button:hover{transform:translateY(-2px);}
.ef-btn .elementor-button-icon{width:40px;height:40px;border-radius:50% !important;display:inline-grid;place-items:center;flex:none;background:#fff !important;color:var(--ef-red) !important;transition:transform .2s;}
.ef-btn .elementor-button:hover .elementor-button-icon{transform:rotate(45deg);}
.ef-btn-navy .elementor-button-icon{color:var(--ef-navy) !important;}
.ef-btn-ghost .elementor-button{border:1px solid rgba(255,255,255,.34) !important;background:transparent!important;}
.ef-btn-ghost .elementor-button-icon{background:#fff !important;color:var(--ef-dark) !important;}

/* hero */
.ef-hero{position:relative;isolation:isolate;}
.ef-hero .elementor-widget-text-editor{color:#C6D4E8 !important;}
.ef-hero-sub .elementor-heading-title{font-family:var(--ef-head) !important;font-weight:500 !important;color:#fff !important;font-size:clamp(34px,5vw,80px) !important;line-height:1.12 !important;}
.ef-hero-big .elementor-heading-title{font-family:var(--ef-head) !important;font-weight:500 !important;color:#fff !important;text-transform:uppercase !important;letter-spacing:1.6px !important;font-size:clamp(48px,10vw,150px) !important;line-height:1.05 !important;}

/* section headings */
.ef-h2 .elementor-heading-title{font-family:var(--ef-head) !important;font-weight:500 !important;font-size:clamp(32px,4.4vw,56px) !important;line-height:1.18 !important;color:var(--ef-dark) !important;}
.ef-h2-light .elementor-heading-title{color:#fff !important;}

/* service cards */
.ef-svc{background:var(--ef-cream) !important;border-radius:10px !important;transition:background .3s,transform .3s;}
.ef-svc:hover{background:var(--ef-dark) !important;transform:translateY(-6px);}
.ef-svc .elementor-icon-box-title,.ef-svc .elementor-icon-box-title a{font-family:var(--ef-head) !important;font-weight:500 !important;font-size:26px !important;line-height:34px !important;color:var(--ef-dark) !important;transition:color .3s;}
.ef-svc .elementor-icon-box-description{font-size:16px !important;line-height:26px !important;color:var(--ef-body) !important;transition:color .3s;}
.ef-svc:hover .elementor-icon-box-title,.ef-svc:hover .elementor-icon-box-title a{color:#fff !important;}
.ef-svc:hover .elementor-icon-box-description{color:var(--ef-body-dark) !important;}
.ef-svc .elementor-icon{background:#fff !important;color:var(--ef-navy) !important;width:74px;height:74px;border-radius:50% !important;display:grid;place-items:center;transition:background .3s,color .3s;}
.ef-svc:hover .elementor-icon{background:var(--ef-red) !important;color:#fff !important;}

/* generic cards */
.ef-card{background:#fff !important;border:1px solid var(--ef-line) !important;border-radius:12px !important;}
.ef-card-cream{background:var(--ef-cream) !important;border-radius:12px !important;}
.ef-card-red{background:var(--ef-red) !important;border-radius:12px !important;}
.ef-card-red .elementor-heading-title,.ef-card-red .elementor-widget-text-editor,
.ef-card-red .elementor-icon-list-text{color:#fff!important;}

/* price figure */
.ef-price .elementor-heading-title{font-family:var(--ef-head) !important;font-weight:500 !important;font-size:54px !important;line-height:64px !important;color:var(--ef-dark) !important;}
.ef-card-red .ef-price .elementor-heading-title{color:#fff !important;}

/* tick lists */
.ef-ticks .elementor-icon-list-item{align-items:flex-start;}
.ef-ticks .elementor-icon-list-icon{margin-top:4px;}
.ef-ticks .elementor-icon-list-text{font-size:16px !important;line-height:26px !important;color:var(--ef-body) !important;}
.ef-card-red .ef-ticks .elementor-icon-list-text{color:#fff !important;}

/* counters */
.ef-counter .elementor-counter-number-wrapper{font-family:var(--ef-head) !important;font-weight:500 !important;font-size:56px !important;line-height:64px !important;color:#fff !important;}
.ef-counter .elementor-counter-title{font-family:"DM Sans",sans-serif !important;font-size:17px !important;line-height:26px !important;color:var(--ef-body-dark) !important;text-align:left;}

/* accordion */
.ef-acc .elementor-accordion-item{background:var(--ef-dark-2) !important;border:0 !important;border-radius:8px !important;margin-bottom:14px;overflow:hidden;}
.ef-acc .elementor-tab-title{padding:20px 26px !important;}
.ef-acc .elementor-tab-title a,.ef-acc .elementor-tab-title{font-family:var(--ef-head) !important;font-weight:500 !important;font-size:21px !important;line-height:30px !important;color:#fff !important;}
.ef-acc .elementor-tab-title.elementor-active{background:var(--ef-red) !important;}
.ef-acc .elementor-tab-content{background:var(--ef-red) !important;border:0 !important;color:rgba(255,255,255,.94) !important;font-size:16px !important;line-height:27px !important;padding:0 26px 24px !important;}

/* projects */
.ef-proj .elementor-image-box-img img{border-radius:12px !important;}
.ef-proj .elementor-image-box-title{font-family:var(--ef-head) !important;font-weight:500 !important;font-size:24px !important;line-height:30px !important;color:var(--ef-dark) !important;margin-top:18px;}
.ef-proj .elementor-image-box-description{font-family:var(--ef-head) !important;font-size:14px !important;font-weight:600 !important;text-transform:uppercase !important;color:var(--ef-red) !important;margin-top:6px;}

/* testimonials */
.ef-rev{background:#fff !important;border-radius:12px !important;padding:34px 32px !important;}
.ef-rev .elementor-testimonial-content{font-size:16px !important;line-height:28px !important;color:var(--ef-body) !important;}
.ef-rev .elementor-testimonial-name{font-family:var(--ef-head) !important;font-weight:600 !important;font-size:24px !important;color:var(--ef-dark) !important;}
.ef-rev .elementor-testimonial-job{font-size:15px !important;color:var(--ef-body) !important;}

/* spec strip */
.ef-spec .elementor-icon-list-item{border-right:1px solid rgba(255,255,255,.14);padding-right:24px;margin-right:24px;}
.ef-spec .elementor-icon-list-item:last-child{border-right:0;}
.ef-spec .elementor-icon-list-text{font-family:var(--ef-head) !important;font-weight:600 !important;font-size:17px !important;color:#fff !important;}

@media(max-width:767px){
  .ef-spec .elementor-icon-list-item{border-right:0;padding-right:0;margin-right:0;}
}

/* project cards: full-bleed images */
.ef-proj .elementor-image-box-wrapper{display:block !important}
.ef-proj .elementor-image-box-img{width:100% !important;margin:0 0 18px 0 !important}
.ef-proj .elementor-image-box-img img{width:100% !important;aspect-ratio:16/9;object-fit:cover;border-radius:12px !important}
.ef-proj .elementor-image-box-content{text-align:left !important}

/* service card icon circle */
.ef-svc .elementor-icon-box-icon{margin-bottom:26px !important}
.ef-svc .elementor-icon{width:74px !important;height:74px !important;border-radius:50% !important;display:grid !important;place-items:center !important}

/* testimonial + cta polish */
.ef-rev .elementor-testimonial-wrapper{text-align:left !important}
.ef-center .elementor-widget-text-editor{max-width:70ch;margin-inline:auto}

/* ── service pages ───────────────────────────────────────── */
.ef-h3 .elementor-heading-title{
  font-family:var(--ef-head) !important;font-weight:500 !important;
  font-size:30px !important;line-height:40px !important;color:var(--ef-dark) !important;
}
.ef-spectable table{width:100%;border-collapse:collapse;border:1px solid var(--ef-line);border-radius:10px;overflow:hidden}
.ef-spectable tr{border-bottom:1px solid var(--ef-line)}
.ef-spectable tr:last-child{border-bottom:0}
.ef-spectable th{
  text-align:left;padding:14px 20px !important;width:46%;
  font-family:var(--ef-head) !important;font-weight:600 !important;color:var(--ef-dark) !important;font-size:16px !important;
}
.ef-spectable td{padding:14px 20px !important;color:var(--ef-body) !important;font-size:16px !important;font-variant-numeric:tabular-nums}
.ef-links .elementor-icon-list-item a{
  display:flex;justify-content:space-between;align-items:center;width:100%;
  padding:9px 0;border-bottom:1px solid var(--ef-line);
}
.ef-links .elementor-icon-list-item:last-child a{border-bottom:0}
.ef-links .elementor-icon-list-text{
  font-family:var(--ef-head) !important;font-weight:500 !important;
  font-size:15.5px !important;color:var(--ef-dark) !important;order:-1;
}
.ef-links .elementor-icon-list-item:hover .elementor-icon-list-text{color:var(--ef-red) !important}
.ef-card,.ef-card-cream{align-self:flex-start}
.ef-spec .elementor-icon-list-item{margin-bottom:6px}

/* long headings must wrap, never clip */
.ef-h2 .elementor-heading-title,.ef-hero-sub .elementor-heading-title,
.ef-hero-big .elementor-heading-title,.ef-h3 .elementor-heading-title{
  text-wrap:balance;overflow-wrap:break-word;hyphens:auto;
}
.e-con,.e-con-inner{min-width:0}
