/* ==========================================================================
   EP Maintain - components.css
   Header, hero banners, sections, cards, accordion, forms, footer
   ========================================================================== */

/* ==========================================================================
   1. Top bar + Header
   ========================================================================== */
.ep-topbar{
	background:var(--ep-navy-deep);color:rgba(255,255,255,.75);
	font-size:.85rem;position:relative;z-index:60;
}
.ep-topbar__inner{
	display:flex;align-items:center;justify-content:space-between;gap:1rem;
	min-height:42px;padding-block:.4rem;flex-wrap:wrap;
}
.ep-topbar a{color:rgba(255,255,255,.86);text-decoration:none;display:inline-flex;align-items:center;gap:.45rem;}
.ep-topbar a:hover{color:var(--ep-aqua-bright);}
.ep-topbar svg{width:1em;height:1em;color:var(--ep-aqua);}
.ep-topbar__list{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;list-style:none;margin:0;padding:0;}
.ep-topbar__list li{margin:0;}
.ep-topbar__badge{
	display:inline-flex;align-items:center;gap:.4rem;
	font-family:var(--ep-font-display);letter-spacing:.16em;text-transform:uppercase;font-weight:600;
	color:var(--ep-aqua-bright);
}
@media (max-width:900px){.ep-topbar__badge{display:none;}}
@media (max-width:560px){
	.ep-topbar__inner{justify-content:center;}
	.ep-topbar__list{gap:1rem;justify-content:center;}
	.ep-topbar__list li.ep-topbar__email{display:none;}
}

.ep-header{
	position:sticky;top:0;z-index:80;
	background:rgba(255,255,255,.92);
	backdrop-filter:saturate(180%) blur(14px);
	border-bottom:1px solid var(--ep-line);
	transition:box-shadow .35s var(--ep-ease),background-color .35s var(--ep-ease);
}
.ep-header__inner{
	display:flex;align-items:center;justify-content:space-between;gap:clamp(.6rem,.2rem + 1vw,1.5rem);
	min-height:var(--ep-header-h);flex-wrap:nowrap;
	transition:min-height .35s var(--ep-ease);
}
.ep-header.is-stuck{box-shadow:0 10px 30px -18px rgba(10,34,48,.45);}
.ep-header.is-stuck .ep-header__inner{min-height:var(--ep-header-h-sticky);}

.ep-brand{display:inline-flex;align-items:center;flex:none;text-decoration:none;min-width:0;}
.ep-brand img,
.ep-brand .custom-logo,
.ep-header .custom-logo-link img{
	display:block;width:auto;
	height:clamp(42px,3.2vw,58px);
	max-height:clamp(42px,3.2vw,58px);
	max-width:min(250px,40vw);
	object-fit:contain;object-position:left center;
	transition:height .35s var(--ep-ease),max-height .35s var(--ep-ease);
}
.ep-header.is-stuck .ep-brand img,
.ep-header.is-stuck .ep-brand .custom-logo,
.ep-header.is-stuck .custom-logo-link img{
	height:clamp(34px,2.4vw,42px);max-height:clamp(34px,2.4vw,42px);
}
/* Safety net: if a plugin re-inserts WordPress's own logo link, keep it in line. */
.ep-header .custom-logo-link{display:inline-flex;align-items:center;flex:none;}
.ep-brand__text{display:none;}

/* Primary nav */
.ep-nav{display:flex;align-items:center;gap:.35rem;min-width:0;}
.ep-nav ul{list-style:none;display:flex;align-items:center;gap:.1rem;margin:0;padding:0;flex-wrap:nowrap;}
.ep-nav li{position:relative;margin:0;}
.ep-nav a{
	display:block;padding:.7rem clamp(.4rem,.15rem + .55vw,.8rem);text-decoration:none;
	font-family:var(--ep-font-display);font-weight:600;font-size:clamp(.95rem,.86rem + .18vw,1.05rem);
	letter-spacing:.07em;text-transform:uppercase;color:var(--ep-navy);
	position:relative;white-space:nowrap;
}
.ep-nav a::after{
	content:"";position:absolute;left:.5rem;right:.5rem;bottom:.42rem;height:2px;
	background:var(--ep-aqua);transform:scaleX(0);transform-origin:right;
	transition:transform .38s var(--ep-ease-out);
}
.ep-nav a:hover::after,.ep-nav a:focus-visible::after,
.ep-nav .current-menu-item>a::after,
.ep-nav .current_page_item>a::after,
.ep-nav .current-menu-ancestor>a::after{transform:scaleX(1);transform-origin:left;}
.ep-nav .current-menu-item>a,.ep-nav .current_page_item>a{color:var(--ep-aqua-deep);}

/* Dropdown */
.ep-nav .sub-menu{
	position:absolute;top:calc(100% + 10px);left:0;min-width:250px;
	background:#fff;border-radius:var(--ep-radius);padding:.5rem;
	box-shadow:var(--ep-shadow);border:1px solid var(--ep-line);
	display:block;flex-direction:column;align-items:stretch;gap:0;
	opacity:0;visibility:hidden;transform:translateY(10px);
	transition:opacity .28s var(--ep-ease),transform .28s var(--ep-ease-out),visibility .28s;
}
.ep-nav li:hover>.sub-menu,.ep-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0);}
.ep-nav .sub-menu a{padding:.62rem .85rem;border-radius:var(--ep-radius-sm);font-size:1rem;letter-spacing:.05em;}
.ep-nav .sub-menu a::after{display:none;}
.ep-nav .sub-menu a:hover{background:var(--ep-ice);color:var(--ep-aqua-deep);}
.ep-nav .menu-item-has-children>a::before{
	content:"";position:absolute;right:.1rem;top:50%;width:6px;height:6px;
	border-right:2px solid currentColor;border-bottom:2px solid currentColor;
	transform:translateY(-70%) rotate(45deg);opacity:.55;
}
.ep-nav .menu-item-has-children>a{padding-right:1.35rem;}

.ep-header__actions{display:flex;align-items:center;gap:.55rem;flex:none;}

/* Phone reads as a companion button to the quote CTA, not stray text. */
.ep-header__phone{
	display:none;align-items:center;gap:.5rem;text-decoration:none;white-space:nowrap;
	padding:.36rem .95rem .36rem .38rem;
	border:1.5px solid var(--ep-line-strong);border-radius:100px;
	font-family:var(--ep-font-display);font-weight:700;font-size:1.02rem;letter-spacing:.04em;
	color:var(--ep-navy);background:transparent;
	transition:background-color .3s var(--ep-ease),border-color .3s var(--ep-ease),color .3s var(--ep-ease),transform .3s var(--ep-ease-out);
}
@media (min-width:1240px){.ep-header__phone{display:inline-flex;}}
.ep-header__phone-ico{
	width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;
	background:var(--ep-ice);color:var(--ep-aqua-deep);
	transition:background-color .3s var(--ep-ease),color .3s var(--ep-ease);
}
.ep-header__phone-ico svg{width:16px;height:16px;}
.ep-header__phone:hover,.ep-header__phone:focus-visible{
	background:var(--ep-navy);border-color:var(--ep-navy);color:#fff;transform:translateY(-1px);
}
.ep-header__phone:hover .ep-header__phone-ico,
.ep-header__phone:focus-visible .ep-header__phone-ico{background:rgba(255,255,255,.15);color:var(--ep-aqua-bright);}

/* Header CTA: same language, tighter glow than the big page buttons. */
.ep-header__actions .ep-btn--quote{
	padding:.72rem 1.35rem;font-size:.98rem;letter-spacing:.09em;
	box-shadow:0 10px 22px -14px rgba(26,139,161,.9);
}
.ep-header__actions .ep-btn--quote:hover{box-shadow:0 14px 28px -14px rgba(26,139,161,1);}

/* Burger */
.ep-burger{
	display:none;width:48px;height:48px;padding:0;border:1px solid var(--ep-line-strong);
	background:#fff;border-radius:var(--ep-radius-sm);cursor:pointer;position:relative;flex:none;
}
.ep-burger span{
	position:absolute;left:13px;right:13px;height:2px;background:var(--ep-navy);border-radius:2px;
	transition:transform .35s var(--ep-ease-out),opacity .2s linear,top .35s var(--ep-ease-out);
}
.ep-burger span:nth-child(1){top:17px;}
.ep-burger span:nth-child(2){top:23px;}
.ep-burger span:nth-child(3){top:29px;}
.ep-burger[aria-expanded=true] span:nth-child(1){top:23px;transform:rotate(45deg);}
.ep-burger[aria-expanded=true] span:nth-child(2){opacity:0;}
.ep-burger[aria-expanded=true] span:nth-child(3){top:23px;transform:rotate(-45deg);}

/* Mobile drawer */
.ep-drawer{
	position:fixed;inset:0;z-index:90;visibility:hidden;pointer-events:none;
}
.ep-drawer__scrim{
	position:absolute;inset:0;background:rgba(6,22,32,.6);opacity:0;
	transition:opacity .4s var(--ep-ease);backdrop-filter:blur(3px);
}
.ep-drawer__panel{
	position:absolute;top:0;right:0;bottom:0;width:min(400px,88vw);
	background:var(--ep-grad-navy);color:#fff;padding:1.5rem var(--ep-gutter) 2.5rem;
	overflow-y:auto;transform:translateX(100%);
	transition:transform .5s var(--ep-ease-out);
	display:flex;flex-direction:column;gap:1.25rem;
}
.ep-drawer.is-open{visibility:visible;pointer-events:auto;}
.ep-drawer.is-open .ep-drawer__scrim{opacity:1;}
.ep-drawer.is-open .ep-drawer__panel{transform:translateX(0);}
.ep-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.ep-drawer__head img{height:44px;width:auto;}
.ep-drawer__close{
	width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.3);
	background:transparent;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;
	display:grid;place-items:center;transition:background-color .25s var(--ep-ease);
}
.ep-drawer__close:hover{background:rgba(255,255,255,.12);}
.ep-drawer nav ul{list-style:none;margin:0;padding:0;}
.ep-drawer nav li{margin:0;border-bottom:1px solid rgba(255,255,255,.1);}
.ep-drawer nav a{
	display:block;padding:.95rem 0;color:#fff;text-decoration:none;
	font-family:var(--ep-font-display);font-weight:600;font-size:1.35rem;
	letter-spacing:.06em;text-transform:uppercase;
	opacity:0;transform:translateX(24px);
}
.ep-drawer.is-open nav a{animation:epDrawerIn .5s var(--ep-ease-out) forwards;}
.ep-drawer nav .sub-menu{padding-left:1rem;}
.ep-drawer nav .sub-menu a{font-size:1.08rem;opacity:.85;font-weight:500;}
.ep-drawer__cta{margin-top:auto;display:grid;gap:.7rem;}
.ep-drawer__meta{font-size:.92rem;color:rgba(255,255,255,.65);}
.ep-drawer__meta a{color:var(--ep-aqua-bright);}

@media (max-width:1023px){
	.ep-nav,.ep-header__phone{display:none;}
	.ep-burger{display:block;}
	.ep-header__actions .ep-btn--quote{display:none;}
}
@media (min-width:520px) and (max-width:1023px){
	.ep-header__actions .ep-btn--quote{display:inline-flex;}
}

/* Scroll progress */
.ep-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:95;pointer-events:none;background:transparent;}
.ep-progress__bar{height:100%;width:0;background:var(--ep-grad-aqua);box-shadow:0 0 12px var(--ep-aqua-glow);transition:width .1s linear;}

/* ==========================================================================
   2. Hero banners
   ========================================================================== */
.ep-hero{
	position:relative;isolation:isolate;overflow:hidden;
	background:var(--ep-grad-navy);color:#fff;
	padding-block:clamp(4rem,2.5rem + 8vw,9rem) clamp(5rem,3rem + 8vw,9.5rem);
}
.ep-hero--home{min-height:min(92vh,900px);display:flex;align-items:center;}
.ep-hero__bg{position:absolute;inset:0;z-index:-3;overflow:hidden;}
.ep-hero__bg img,.ep-hero__bg .ep-hero__art{
	position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.34;
}
.ep-hero__bg::after{
	content:"";position:absolute;inset:0;
	background:radial-gradient(110% 90% at 18% 30%,rgba(16,52,71,.45) 0%,rgba(8,26,38,.9) 68%,rgba(6,22,32,.97) 100%);
}
.ep-hero__canvas{position:absolute;inset:0;z-index:-2;width:100%;height:100%;pointer-events:none;opacity:.9;}
.ep-hero__grid{
	position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:.16;
	background-image:linear-gradient(rgba(99,220,238,.18) 1px,transparent 1px),
	                 linear-gradient(90deg,rgba(99,220,238,.18) 1px,transparent 1px);
	background-size:64px 64px;
	mask-image:radial-gradient(75% 65% at 70% 35%,#000 0%,transparent 78%);
}
.ep-hero__inner{position:relative;z-index:2;display:grid;gap:clamp(2rem,1rem + 4vw,4rem);align-items:center;}
.ep-hero--split .ep-hero__inner{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);}
@media (max-width:1023px){.ep-hero--split .ep-hero__inner{grid-template-columns:1fr;}}

.ep-hero__eyebrow{
	display:inline-flex;align-items:center;gap:.65rem;
	padding:.5rem 1.05rem;border-radius:100px;
	background:rgba(99,220,238,.12);border:1px solid rgba(99,220,238,.32);
	font-family:var(--ep-font-display);font-weight:600;font-size:var(--ep-fs-eyebrow);
	letter-spacing:.22em;text-transform:uppercase;color:var(--ep-aqua-bright);
	margin-bottom:1.5rem;
}
.ep-hero__eyebrow .ep-dot{width:7px;height:7px;border-radius:50%;background:var(--ep-aqua-bright);flex:none;}

.ep-hero h1{color:#fff;margin-bottom:1.1rem;text-transform:uppercase;letter-spacing:-.01em;}
.ep-hero h1 .ep-hl{position:relative;color:var(--ep-aqua-bright);white-space:nowrap;}
/* Inside a split line the span is block-level, so shrink it to the text
   itself — otherwise the underline runs the full width of the heading. */
.ep-hero h1 .ep-split-line>.ep-hl{display:block;width:fit-content;}
.ep-hero h1 .ep-hl::after{
	content:"";position:absolute;left:0;right:0;bottom:.11em;height:.045em;
	min-height:2px;border-radius:99px;
	background:var(--ep-aqua);opacity:.9;
	transform:scaleX(0);transform-origin:left;
	animation:epUnderline 1s var(--ep-ease-out) .9s forwards;
}
.ep-hero__sub{
	font-size:var(--ep-fs-lead);color:rgba(255,255,255,.82);max-width:58ch;margin-bottom:2rem;
}
.ep-hero__services{
	display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;list-style:none;padding:0;
}
.ep-hero__services li{
	margin:0;padding:.4rem .9rem;border-radius:100px;
	background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
	font-family:var(--ep-font-display);font-size:.95rem;letter-spacing:.09em;
	text-transform:uppercase;color:rgba(255,255,255,.88);
	transition:background-color .3s var(--ep-ease),transform .3s var(--ep-ease-out),border-color .3s var(--ep-ease);
}
.ep-hero__services li:hover{background:rgba(99,220,238,.18);border-color:rgba(99,220,238,.45);transform:translateY(-2px);}

.ep-hero__stats{
	display:flex;flex-wrap:wrap;gap:clamp(1.25rem,.6rem + 2.4vw,3rem);
	margin-top:2.75rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.16);
}
.ep-hero__stat{min-width:120px;}
.ep-hero__stat b{
	display:block;font-family:var(--ep-font-display);font-weight:800;
	font-size:clamp(2rem,1.4rem + 2vw,2.9rem);line-height:1;color:#fff;
}
.ep-hero__stat span{
	display:block;margin-top:.35rem;font-size:.82rem;letter-spacing:.16em;
	text-transform:uppercase;color:rgba(255,255,255,.6);
}

/* Interior page hero */
.ep-hero--page{padding-block:clamp(3.25rem,2rem + 5vw,6rem) clamp(4rem,2.5rem + 6vw,7rem);}
.ep-hero--page .ep-hero__inner{max-width:900px;}
.ep-breadcrumbs{
	font-size:.88rem;color:rgba(255,255,255,.6);margin-bottom:1.15rem;
	display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;
}
.ep-breadcrumbs a{color:rgba(255,255,255,.82);text-decoration:none;}
.ep-breadcrumbs a:hover{color:var(--ep-aqua-bright);}
.ep-breadcrumbs .sep{opacity:.45;}

/* Grime-reveal panel (the "washed clean" visual) */
.ep-reveal-panel{
	/* Default wash mask, inlined as a data URI so no extra request is made
	   and the mask can never break on a relative-path edge case. */
	--ep-wash-mask:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20800%20800%22%20width=%22800%22%20height=%22800%22%3E%20%3Cdefs%3E%20%3CradialGradient%20id=%22m1%22%20cx=%2250%25%22%20cy=%2250%25%22%20r=%2250%25%22%3E%20%3Cstop%20offset=%220%25%22%20stop-color=%22%23fff%22%20stop-opacity=%221%22/%3E%20%3Cstop%20offset=%2252%25%22%20stop-color=%22%23fff%22%20stop-opacity=%221%22/%3E%20%3Cstop%20offset=%2278%25%22%20stop-color=%22%23fff%22%20stop-opacity=%22.55%22/%3E%20%3Cstop%20offset=%22100%25%22%20stop-color=%22%23fff%22%20stop-opacity=%220%22/%3E%20%3C/radialGradient%3E%20%3CradialGradient%20id=%22m2%22%20cx=%2250%25%22%20cy=%2250%25%22%20r=%2250%25%22%3E%20%3Cstop%20offset=%220%25%22%20stop-color=%22%23fff%22%20stop-opacity=%22.9%22/%3E%20%3Cstop%20offset=%2270%25%22%20stop-color=%22%23fff%22%20stop-opacity=%22.35%22/%3E%20%3Cstop%20offset=%22100%25%22%20stop-color=%22%23fff%22%20stop-opacity=%220%22/%3E%20%3C/radialGradient%3E%20%3Cfilter%20id=%22soft%22%3E%3CfeGaussianBlur%20stdDeviation=%2214%22/%3E%3C/filter%3E%20%3C/defs%3E%20%3Cg%20filter=%22url(%23soft)%22%3E%20%3Cellipse%20cx=%22400%22%20cy=%22400%22%20rx=%22300%22%20ry=%22360%22%20fill=%22url(%23m1)%22/%3E%20%3Cellipse%20cx=%22300%22%20cy=%22250%22%20rx=%22150%22%20ry=%22170%22%20fill=%22url(%23m2)%22/%3E%20%3Cellipse%20cx=%22510%22%20cy=%22540%22%20rx=%22170%22%20ry=%22150%22%20fill=%22url(%23m2)%22/%3E%20%3Cellipse%20cx=%22290%22%20cy=%22580%22%20rx=%22120%22%20ry=%22130%22%20fill=%22url(%23m2)%22/%3E%20%3Cellipse%20cx=%22530%22%20cy=%22230%22%20rx=%22130%22%20ry=%22120%22%20fill=%22url(%23m2)%22/%3E%20%3C/g%3E%20%3C/svg%3E");
	position:relative;border-radius:var(--ep-radius-lg);overflow:hidden;
	aspect-ratio:4/3;box-shadow:var(--ep-shadow-lg);
	border:1px solid rgba(255,255,255,.14);
	background:#0d2b3a;
}
.ep-reveal-panel__layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ep-reveal-panel__layer--dirty{filter:saturate(.92) brightness(.94);}
.ep-reveal-panel__layer--clean{
	-webkit-mask-image:var(--ep-wash-mask);mask-image:var(--ep-wash-mask);
	-webkit-mask-size:220% 220%;mask-size:220% 220%;
	-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
	-webkit-mask-position:var(--ep-wash-x,-40%) var(--ep-wash-y,50%);
	mask-position:var(--ep-wash-x,-40%) var(--ep-wash-y,50%);
}
.ep-reveal-panel__label{
	position:absolute;bottom:1rem;left:1rem;z-index:3;
	display:inline-flex;align-items:center;gap:.5rem;
	padding:.5rem 1rem;border-radius:100px;background:rgba(6,22,32,.72);
	backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.16);
	font-family:var(--ep-font-display);font-size:.9rem;letter-spacing:.14em;
	text-transform:uppercase;color:#fff;
}
.ep-reveal-panel__hint{
	position:absolute;top:1rem;right:1rem;z-index:3;font-size:.78rem;letter-spacing:.14em;
	text-transform:uppercase;color:rgba(255,255,255,.7);
}

/* Wave divider */
.ep-wave{position:absolute;left:0;right:0;line-height:0;z-index:1;pointer-events:none;}
.ep-wave--bottom{bottom:-1px;}
.ep-wave--top{top:-1px;transform:scaleY(-1);}
.ep-wave svg{width:100%;height:clamp(38px,4.5vw,86px);display:block;}

/* ==========================================================================
   3. Trust bar / marquee
   ========================================================================== */
.ep-trustbar{background:var(--ep-navy-deep);color:rgba(255,255,255,.8);padding-block:1rem;overflow:hidden;position:relative;}
.ep-marquee{display:flex;width:max-content;animation:epMarquee 38s linear infinite;}
.ep-marquee:hover{animation-play-state:paused;}
.ep-marquee__group{display:flex;align-items:center;gap:2.5rem;padding-right:2.5rem;}
.ep-marquee__item{
	display:inline-flex;align-items:center;gap:.6rem;white-space:nowrap;
	font-family:var(--ep-font-display);font-size:1.05rem;letter-spacing:.18em;
	text-transform:uppercase;color:rgba(255,255,255,.72);
}
.ep-marquee__item svg{width:1.1em;height:1.1em;color:var(--ep-aqua);flex:none;}
.ep-trustbar::before,.ep-trustbar::after{
	content:"";position:absolute;top:0;bottom:0;width:90px;z-index:2;pointer-events:none;
}
.ep-trustbar::before{left:0;background:linear-gradient(90deg,var(--ep-navy-deep),transparent);}
.ep-trustbar::after{right:0;background:linear-gradient(270deg,var(--ep-navy-deep),transparent);}

/* ==========================================================================
   4. Service cards
   ========================================================================== */
.ep-card{
	position:relative;isolation:isolate;overflow:hidden;
	background:#fff;border:1px solid var(--ep-line);border-radius:var(--ep-radius-lg);
	padding:clamp(1.5rem,1.1rem + 1.1vw,2.15rem);
	box-shadow:var(--ep-shadow-sm);
	transition:transform .5s var(--ep-ease-out),box-shadow .5s var(--ep-ease-out),border-color .4s var(--ep-ease);
	display:flex;flex-direction:column;height:100%;
}
.ep-card::before{
	content:"";position:absolute;inset:0;z-index:-1;
	background:var(--ep-grad-navy);opacity:0;transition:opacity .5s var(--ep-ease);
}
.ep-card::after{
	content:"";position:absolute;left:0;right:0;top:0;height:3px;
	background:var(--ep-grad-aqua);transform:scaleX(0);transform-origin:left;
	transition:transform .55s var(--ep-ease-out);
}
.ep-card:hover,.ep-card:focus-within{transform:translateY(-8px);box-shadow:var(--ep-shadow-lg);border-color:transparent;}
.ep-card:hover::before,.ep-card:focus-within::before{opacity:1;}
.ep-card:hover::after,.ep-card:focus-within::after{transform:scaleX(1);}
.ep-card:hover h3,.ep-card:focus-within h3{color:#fff;}
.ep-card:hover p,.ep-card:focus-within p{color:rgba(255,255,255,.8);}
.ep-card:hover .ep-card__icon,.ep-card:focus-within .ep-card__icon{
	background:rgba(99,220,238,.16);border-color:rgba(99,220,238,.42);color:var(--ep-aqua-bright);
	transform:rotate(-6deg) scale(1.06);
}
.ep-card:hover .ep-link,.ep-card:focus-within .ep-link{color:var(--ep-aqua-bright);}

.ep-card__icon{
	width:64px;height:64px;flex:none;border-radius:18px;display:grid;place-items:center;
	background:var(--ep-ice);border:1px solid var(--ep-line);color:var(--ep-aqua-deep);
	margin-bottom:1.25rem;
	transition:background-color .45s var(--ep-ease),color .45s var(--ep-ease),transform .55s var(--ep-ease-out),border-color .45s var(--ep-ease);
}
.ep-card__icon svg{width:32px;height:32px;}
.ep-card h3{margin-bottom:.6rem;transition:color .4s var(--ep-ease);text-transform:uppercase;}
.ep-card p{transition:color .4s var(--ep-ease);margin-bottom:1.25rem;}
.ep-card__foot{margin-top:auto;}
.ep-card__num{
	position:absolute;top:1rem;right:1.35rem;
	font-family:var(--ep-font-display);font-weight:800;font-size:3.6rem;line-height:1;
	color:var(--ep-navy);opacity:.06;pointer-events:none;transition:opacity .4s var(--ep-ease),color .4s var(--ep-ease);
}
.ep-card:hover .ep-card__num{color:#fff;opacity:.12;}

/* Feature (alternating) rows */
.ep-feature{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));
	gap:clamp(1.75rem,1rem + 3vw,4rem);align-items:center;
}
.ep-feature+.ep-feature{margin-top:clamp(3rem,2rem + 3vw,5.5rem);}
.ep-feature--flip .ep-feature__media{order:2;}
@media (max-width:767px){.ep-feature--flip .ep-feature__media{order:0;}}
.ep-feature__media{
	position:relative;border-radius:var(--ep-radius-lg);overflow:hidden;
	aspect-ratio:5/4;box-shadow:var(--ep-shadow);background:var(--ep-ice);
}
.ep-feature__media img,.ep-feature__media .ep-hero__art{width:100%;height:100%;object-fit:cover;}
.ep-feature__badge{
	position:absolute;top:1rem;left:1rem;z-index:2;
	padding:.45rem 1rem;border-radius:100px;background:rgba(6,22,32,.75);
	backdrop-filter:blur(8px);color:#fff;
	font-family:var(--ep-font-display);font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;
}
.ep-feature h2,.ep-feature h3{text-transform:uppercase;}

/* Tick list */
.ep-ticks{list-style:none;padding:0;margin:0 0 1.6rem;display:grid;gap:.65rem;}
.ep-ticks li{display:flex;align-items:flex-start;gap:.75rem;margin:0;line-height:1.5;}
.ep-ticks li svg{
	width:22px;height:22px;flex:none;margin-top:.14rem;color:var(--ep-aqua-deep);
}
.ep-section--navy .ep-ticks li svg{color:var(--ep-aqua-bright);}
.ep-ticks--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));}

/* ==========================================================================
   5. Bundle / CTA banner
   ========================================================================== */
.ep-cta{
	position:relative;isolation:isolate;overflow:hidden;
	border-radius:var(--ep-radius-xl);
	background:var(--ep-grad-navy);color:#fff;
	padding:clamp(2.25rem,1.5rem + 3.4vw,4.25rem);
	box-shadow:var(--ep-shadow-lg);
	display:grid;grid-template-columns:1fr;
	gap:clamp(1.5rem,1rem + 2.5vw,3rem);align-items:center;
}
@media (min-width:860px){
	.ep-cta{grid-template-columns:minmax(0,1.6fr) minmax(0,.85fr);}
}
.ep-cta::before{
	content:"";position:absolute;inset:0;z-index:-1;opacity:.5;
	background:
		radial-gradient(60% 90% at 88% 12%,rgba(53,185,206,.4) 0%,transparent 62%),
		radial-gradient(50% 70% at 8% 92%,rgba(53,185,206,.22) 0%,transparent 60%);
}
.ep-cta h2{color:#fff;text-transform:uppercase;margin-bottom:.75rem;}
.ep-cta p{color:rgba(255,255,255,.82);}
.ep-cta__save{
	display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
	width:clamp(120px,14vw,164px);aspect-ratio:1;border-radius:50%;flex:none;
	background:var(--ep-grad-aqua);color:#042028;box-shadow:var(--ep-shadow-aqua);
	font-family:var(--ep-font-display);line-height:1;text-align:center;
}
.ep-cta__save b{font-size:clamp(2.4rem,1.8rem + 2vw,3.4rem);font-weight:800;}
.ep-cta__save span{font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;margin-top:.3rem;}
.ep-cta__aside{display:flex;flex-direction:column;align-items:flex-start;gap:1.25rem;}
@media (min-width:900px){.ep-cta__aside{align-items:center;}}

/* Big contrast CTA strip */
.ep-strip{
	position:relative;overflow:hidden;background:var(--ep-grad-aqua);color:#042028;
	padding-block:clamp(2.5rem,1.8rem + 3vw,4rem);text-align:center;
}
.ep-strip h2{color:#042028;text-transform:uppercase;}
.ep-strip p{color:rgba(4,32,40,.78);max-width:60ch;margin-inline:auto;}

/* ==========================================================================
   6. Process / steps
   ========================================================================== */
.ep-steps{counter-reset:step;display:grid;gap:clamp(1.15rem,.8rem + 1.4vw,2rem);
	grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));}
.ep-step{position:relative;padding-top:2.5rem;}
.ep-step__num{
	position:absolute;top:0;left:0;
	width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
	background:var(--ep-grad-aqua);color:#042028;
	font-family:var(--ep-font-display);font-weight:800;font-size:1.4rem;
	box-shadow:var(--ep-shadow-aqua);
}
.ep-step{padding-top:0;padding-left:4.35rem;}
.ep-step h3{font-size:var(--ep-fs-h4);text-transform:uppercase;margin-bottom:.4rem;}
.ep-step::after{
	content:"";position:absolute;left:26px;top:52px;bottom:-1.25rem;width:2px;
	background:linear-gradient(var(--ep-aqua),transparent);opacity:.35;
}
@media (min-width:768px){.ep-step::after{display:none;}}
.ep-step:last-child::after{display:none;}

/* ==========================================================================
   7. Stats / counters
   ========================================================================== */
.ep-stats{display:grid;gap:clamp(1rem,.6rem + 1.6vw,2.25rem);
	grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));text-align:center;}
.ep-stat{
	padding:clamp(1.35rem,1rem + 1vw,2rem) 1rem;border-radius:var(--ep-radius-lg);
	background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
	transition:transform .45s var(--ep-ease-out),background-color .45s var(--ep-ease);
}
.ep-stat:hover{transform:translateY(-6px);background:rgba(99,220,238,.1);}
.ep-stat b{
	display:block;font-family:var(--ep-font-display);font-weight:800;
	font-size:clamp(2.4rem,1.8rem + 2.4vw,3.6rem);line-height:1;color:var(--ep-aqua-bright);
}
.ep-stat span{display:block;margin-top:.5rem;font-size:.85rem;letter-spacing:.16em;
	text-transform:uppercase;color:rgba(255,255,255,.68);}
.ep-section--ice .ep-stat,.ep-section--ice-deep .ep-stat{background:#fff;border-color:var(--ep-line);}
.ep-section--ice .ep-stat b,.ep-section--ice-deep .ep-stat b{color:var(--ep-navy);}
.ep-section--ice .ep-stat span,.ep-section--ice-deep .ep-stat span{color:var(--ep-muted);}

/* ==========================================================================
   8. FAQ accordion
   ========================================================================== */
.ep-faq{display:grid;gap:.85rem;}
.ep-faq__item{
	background:#fff;border:1px solid var(--ep-line);border-radius:var(--ep-radius);
	overflow:hidden;transition:border-color .35s var(--ep-ease),box-shadow .35s var(--ep-ease),transform .35s var(--ep-ease-out);
}
.ep-faq__item:hover{border-color:var(--ep-line-strong);}
.ep-faq__item.is-open{border-color:var(--ep-aqua);box-shadow:0 16px 40px -22px rgba(26,139,161,.6);}
.ep-faq__q{
	width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;
	padding:1.15rem clamp(1rem,.8rem + .8vw,1.6rem);
	background:none;border:0;cursor:pointer;text-align:left;
	font-family:var(--ep-font-display);font-weight:700;
	font-size:clamp(1.12rem,1rem + .5vw,1.4rem);letter-spacing:.02em;color:var(--ep-navy);
	line-height:1.25;
}
.ep-faq__icon{
	width:34px;height:34px;flex:none;border-radius:50%;position:relative;
	background:var(--ep-ice);border:1px solid var(--ep-line);
	transition:background-color .35s var(--ep-ease),transform .45s var(--ep-ease-out),border-color .35s var(--ep-ease);
}
.ep-faq__icon::before,.ep-faq__icon::after{
	content:"";position:absolute;top:50%;left:50%;background:var(--ep-navy);border-radius:2px;
	transform:translate(-50%,-50%);transition:transform .4s var(--ep-ease-out),background-color .35s var(--ep-ease);
}
.ep-faq__icon::before{width:14px;height:2px;}
.ep-faq__icon::after{width:2px;height:14px;}
.ep-faq__item.is-open .ep-faq__icon{background:var(--ep-aqua);border-color:var(--ep-aqua);transform:rotate(180deg);}
.ep-faq__item.is-open .ep-faq__icon::after{transform:translate(-50%,-50%) scaleY(0);}
.ep-faq__item.is-open .ep-faq__icon::before{background:#042028;}
.ep-faq__a{overflow:hidden;height:0;transition:height .42s var(--ep-ease-out);}
.ep-faq__a-inner{padding:0 clamp(1rem,.8rem + .8vw,1.6rem) 1.4rem;color:var(--ep-body);}
.ep-section--navy .ep-faq__item{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.14);}
.ep-section--navy .ep-faq__q{color:#fff;}
.ep-section--navy .ep-faq__icon{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);}
.ep-section--navy .ep-faq__icon::before,.ep-section--navy .ep-faq__icon::after{background:#fff;}
.ep-section--navy .ep-faq__a-inner{color:rgba(255,255,255,.78);}

/* ==========================================================================
   9. Schedule / maintenance table
   ========================================================================== */
.ep-schedule{display:grid;gap:.75rem;}
.ep-schedule__row{
	display:flex;align-items:center;justify-content:space-between;gap:1rem;
	padding:1rem 1.35rem;border-radius:var(--ep-radius);
	background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
	transition:transform .4s var(--ep-ease-out),background-color .4s var(--ep-ease);
}
.ep-schedule__row:hover{transform:translateX(6px);background:rgba(99,220,238,.12);}
.ep-schedule__row b{font-family:var(--ep-font-display);font-size:1.2rem;letter-spacing:.06em;
	text-transform:uppercase;color:#fff;font-weight:700;}
.ep-schedule__row span{font-family:var(--ep-font-display);font-size:1.1rem;letter-spacing:.1em;
	color:var(--ep-aqua-bright);white-space:nowrap;}

/* Risk list */
.ep-risks{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;}
.ep-risks li{
	display:flex;align-items:center;gap:.8rem;margin:0;
	padding:.85rem 1.1rem;border-radius:var(--ep-radius-sm);
	background:rgba(211,84,63,.1);border-left:3px solid #d3543f;color:rgba(255,255,255,.86);
}
.ep-risks li svg{width:20px;height:20px;flex:none;color:#e2765f;}
.ep-section--ice .ep-risks li,.ep-section--ice-deep .ep-risks li{color:var(--ep-body);}

/* ==========================================================================
   10. Quote form panel
   ========================================================================== */
.ep-quote{
	background:#fff;border:1px solid var(--ep-line);border-radius:var(--ep-radius-xl);
	padding:clamp(1.5rem,1.1rem + 2vw,3rem);box-shadow:var(--ep-shadow-lg);
}
.ep-quote__grid{display:grid;gap:0 1.15rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));}
.ep-quote h2{text-transform:uppercase;}

.ep-contact-grid{display:grid;gap:clamp(1.5rem,1rem + 2.5vw,3.5rem);
	grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:start;}
.ep-contact-list{list-style:none;padding:0;margin:0;display:grid;gap:1rem;}
.ep-contact-list li{display:flex;align-items:flex-start;gap:1rem;margin:0;}
.ep-contact-list .ico{
	width:48px;height:48px;flex:none;border-radius:14px;display:grid;place-items:center;
	background:var(--ep-ice);border:1px solid var(--ep-line);color:var(--ep-aqua-deep);
	transition:transform .4s var(--ep-ease-out);
}
.ep-contact-list li:hover .ico{transform:translateY(-3px) rotate(-6deg);}
.ep-contact-list .ico svg{width:22px;height:22px;}
.ep-contact-list b{display:block;font-family:var(--ep-font-display);letter-spacing:.14em;
	text-transform:uppercase;font-size:.88rem;color:var(--ep-muted);font-weight:600;}
.ep-contact-list a{color:var(--ep-navy);text-decoration:none;font-size:1.08rem;font-weight:600;}
.ep-contact-list a:hover{color:var(--ep-aqua-deep);}
.ep-section--navy .ep-contact-list .ico{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);color:var(--ep-aqua-bright);}
.ep-section--navy .ep-contact-list a,.ep-section--navy .ep-contact-list span{color:#fff;}
.ep-section--navy .ep-contact-list b{color:rgba(255,255,255,.55);}

/* ==========================================================================
   11. Footer
   ========================================================================== */
.ep-footer{position:relative;background:var(--ep-navy-ink);color:rgba(255,255,255,.68);overflow:hidden;}
.ep-footer::before{
	content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
	background:radial-gradient(70% 80% at 12% 0%,rgba(53,185,206,.16) 0%,transparent 60%);
}
.ep-footer__main{position:relative;padding-block:clamp(3rem,2rem + 4vw,5rem);}
.ep-footer__grid{
	display:grid;gap:clamp(2rem,1.2rem + 3vw,3.5rem);
	grid-template-columns:minmax(0,1.4fr) repeat(auto-fit,minmax(min(100%,170px),1fr));
}
.ep-footer__logo{height:64px;width:auto;margin-bottom:1.25rem;}
.ep-footer h3{
	color:#fff;font-size:1.15rem;letter-spacing:.16em;text-transform:uppercase;
	margin-bottom:1.25rem;position:relative;padding-bottom:.75rem;
}
.ep-footer h3::after{content:"";position:absolute;left:0;bottom:0;width:32px;height:2px;background:var(--ep-aqua);}
.ep-footer ul{list-style:none;margin:0;padding:0;}
.ep-footer li{margin-bottom:.55rem;}
.ep-footer a{color:rgba(255,255,255,.68);text-decoration:none;transition:color .25s var(--ep-ease),padding-left .3s var(--ep-ease-out);}
.ep-footer a:hover{color:var(--ep-aqua-bright);}
.ep-footer nav a:hover{padding-left:6px;}
.ep-footer__hours{display:grid;gap:.4rem;font-size:.96rem;}
.ep-footer__hours div{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.4rem;border-bottom:1px solid rgba(255,255,255,.08);}
.ep-socials{display:flex;gap:.6rem;margin-top:1.5rem;}
.ep-socials a{
	width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
	background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#fff;
	transition:transform .4s var(--ep-ease-out),background-color .35s var(--ep-ease),border-color .35s var(--ep-ease);
}
.ep-socials a:hover{transform:translateY(-4px);background:var(--ep-aqua);border-color:var(--ep-aqua);color:#042028;}
.ep-socials svg{width:20px;height:20px;}
.ep-footer__bar{
	position:relative;border-top:1px solid rgba(255,255,255,.1);padding-block:1.35rem;
	display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;
	font-size:.9rem;
}
.ep-footer__bar ul{display:flex;gap:1.25rem;flex-wrap:wrap;}
.ep-footer__bar li{margin:0;}

/* Mobile sticky call bar */
.ep-callbar{
	position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;
	background:rgba(6,22,32,.96);backdrop-filter:blur(10px);
	border-top:1px solid rgba(255,255,255,.12);
	padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));
	gap:.6rem;
	transform:translateY(110%);transition:transform .45s var(--ep-ease-out);
}
.ep-callbar.is-visible{transform:translateY(0);}
.ep-callbar .ep-btn{flex:1;padding:.85rem 1rem;font-size:.92rem;letter-spacing:.08em;}
@media (max-width:767px){
	.ep-callbar{display:flex;}
	body{padding-bottom:0;}
}

/* Back to top */
.ep-totop{
	position:fixed;right:1.15rem;bottom:1.15rem;z-index:65;
	width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;
	background:var(--ep-navy);color:#fff;display:grid;place-items:center;
	box-shadow:var(--ep-shadow);opacity:0;visibility:hidden;transform:translateY(14px) scale(.85);
	transition:opacity .35s var(--ep-ease),transform .45s var(--ep-ease-out),visibility .35s,background-color .3s var(--ep-ease);
}
.ep-totop.is-visible{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
.ep-totop:hover{background:var(--ep-aqua-deep);}
.ep-totop svg{width:20px;height:20px;}
@media (max-width:767px){.ep-totop{bottom:5.2rem;}}

/* ==========================================================================
   12. Editor / default content pages
   ========================================================================== */
.ep-entry{max-width:var(--ep-container-narrow);}
.ep-entry h2,.ep-entry h3,.ep-entry h4{margin-top:2rem;}
.ep-entry img{border-radius:var(--ep-radius);}
.ep-entry ul li::marker{color:var(--ep-aqua-deep);}
.ep-pagination{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:2.5rem;}
.ep-pagination .page-numbers{
	display:grid;place-items:center;min-width:44px;height:44px;padding:0 .75rem;
	border-radius:var(--ep-radius-sm);border:1px solid var(--ep-line);
	text-decoration:none;color:var(--ep-navy);font-weight:600;
}
.ep-pagination .page-numbers.current,.ep-pagination .page-numbers:hover{background:var(--ep-navy);color:#fff;border-color:var(--ep-navy);}

.ep-postcard{
	display:flex;flex-direction:column;height:100%;background:#fff;overflow:hidden;
	border:1px solid var(--ep-line);border-radius:var(--ep-radius-lg);
	transition:transform .45s var(--ep-ease-out),box-shadow .45s var(--ep-ease-out);
}
.ep-postcard:hover{transform:translateY(-6px);box-shadow:var(--ep-shadow);}
.ep-postcard__thumb{aspect-ratio:16/10;overflow:hidden;background:var(--ep-ice);}
.ep-postcard__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ep-ease-out);}
.ep-postcard:hover .ep-postcard__thumb img{transform:scale(1.06);}
.ep-postcard__body{padding:1.5rem;display:flex;flex-direction:column;gap:.6rem;flex:1;}
.ep-postcard h3{font-size:var(--ep-fs-h4);margin:0;}
.ep-postcard h3 a{color:var(--ep-navy);text-decoration:none;}
.ep-postcard h3 a:hover{color:var(--ep-aqua-deep);}
.ep-meta{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ep-muted);}
