/* DigiCleen hover and motion styles */
:root {
	--dc-ease: cubic-bezier(.2, .8, .2, 1);
	--dc-navy: #012D60;
	--dc-blue: #024982;
	--dc-teal: #02B5BE;
	--dc-aqua: #04DFC8;
}
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 110px; }
::selection { background: rgba(2, 181, 190, .25); color: #012D60; }

/* Header: shadow once the page scrolls */
.elementor-location-header .e-con { transition: box-shadow .4s var(--dc-ease), background-color .4s; }
.elementor-location-header.dc-scrolled .elementor-element-5650aab { box-shadow: 0 12px 34px rgba(1, 45, 96, .10); }
.elementor-location-header.dc-scrolled .elementor-element-31e0bacd { box-shadow: 0 8px 24px rgba(1, 45, 96, .10); }

/* Header menu: animated underline */
.elementor-location-header .elementor-nav-menu--main .elementor-item { position: relative; }
.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item::after {
	content: ""; position: absolute; left: 50%; right: 50%; bottom: 4px; height: 2px; border-radius: 2px;
	background: linear-gradient(90deg, var(--dc-blue), var(--dc-teal));
	opacity: 1 !important; transition: left .35s var(--dc-ease), right .35s var(--dc-ease);
}
.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item:hover::after,
.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item.elementor-item-active::after { left: 12px; right: 12px; }

/* Buttons: lift + light sweep */
.elementor-button {
	position: relative; overflow: hidden; isolation: isolate;
	transition: transform .35s var(--dc-ease), box-shadow .35s var(--dc-ease), background-color .3s, color .3s !important;
}
.elementor-button::before {
	content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%; z-index: -1;
	background: linear-gradient(110deg, transparent 0%, rgba(255, 255, 255, .35) 50%, transparent 100%);
	transform: skewX(-20deg); transition: left .7s var(--dc-ease);
}
.elementor-button:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(2, 73, 130, .25); }
.elementor-button:hover::before { left: 140%; }
.elementor-button .elementor-button-icon { transition: transform .35s var(--dc-ease); }
.elementor-button:hover .elementor-button-icon { transform: translateX(4px); }

/* Cards */
.dc-card {
	position: relative; overflow: hidden;
	transition: transform .5s var(--dc-ease), box-shadow .5s var(--dc-ease), border-color .4s !important;
	will-change: transform;
}
.dc-card::before {
	content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 100%;
	background: linear-gradient(90deg, var(--dc-blue), var(--dc-teal), var(--dc-aqua));
	transform: scaleX(0); transform-origin: left; transition: transform .6s var(--dc-ease); z-index: 2;
}
.dc-card::after {
	content: ""; position: absolute; width: 260px; height: 260px; right: -120px; top: -120px; border-radius: 50%;
	background: radial-gradient(circle, rgba(4, 223, 200, .14) 0%, rgba(4, 223, 200, 0) 70%);
	opacity: 0; transition: opacity .6s var(--dc-ease), transform .8s var(--dc-ease); transform: scale(.6); pointer-events: none;
}
.dc-card:hover { transform: translateY(-8px); box-shadow: 0 28px 60px rgba(1, 45, 96, .14) !important; border-color: #BDE6EE !important; }
.dc-card:hover::before { transform: scaleX(1); }
.dc-card:hover::after { opacity: 1; transform: scale(1); }

/* Icons inside cards and icon boxes */
.dc-card .elementor-icon,
.dc-card .elementor-icon-box-icon .elementor-icon,
.dc-strip .elementor-icon {
	transition: background .45s var(--dc-ease), color .45s, transform .5s var(--dc-ease), box-shadow .45s;
}
.dc-card:hover .elementor-icon,
.dc-strip .elementor-icon-box-wrapper:hover .elementor-icon {
	background: linear-gradient(135deg, var(--dc-blue), var(--dc-teal)) !important;
	color: #fff !important; fill: #fff !important;
	transform: translateY(-3px) rotate(-6deg);
	box-shadow: 0 10px 22px rgba(2, 73, 130, .3);
}
.dc-card:hover .elementor-icon i, .dc-card:hover .elementor-icon svg,
.dc-strip .elementor-icon-box-wrapper:hover .elementor-icon i { color: #fff !important; fill: #fff !important; }

/* Hero icon circles */
.dc-hero-anim .elementor-widget-icon-box .elementor-icon { transition: transform .5s var(--dc-ease), box-shadow .5s, background .4s; box-shadow: 0 8px 24px rgba(1, 45, 96, .10); }
.dc-hero-anim .elementor-widget-icon-box:hover .elementor-icon { transform: translateY(-6px); background: linear-gradient(135deg, var(--dc-blue), var(--dc-teal)) !important; box-shadow: 0 16px 32px rgba(2, 73, 130, .28); }
.dc-hero-anim .elementor-widget-icon-box:hover .elementor-icon i { color: #fff !important; }

/* Images */
.dc-img { overflow: hidden; border-radius: 24px; }
.dc-img img { transition: transform 1.2s var(--dc-ease), filter .6s; transform-origin: center; }
.dc-img:hover img { filter: saturate(1.08); }

/* Town chips */
.dc-chip-area { transition: transform .35s var(--dc-ease), border-color .3s, box-shadow .35s, background .3s !important; }
.dc-chip-area:hover { transform: translateY(-3px); border-color: var(--dc-teal) !important; background: #F2FBFC !important; box-shadow: 0 10px 22px rgba(1, 45, 96, .08); }

/* Text links inside cards ("Explore ...") */
.dc-card .elementor-widget-button .elementor-button { box-shadow: none !important; }
.dc-card .elementor-widget-button .elementor-button:hover { transform: none; }

/* Footer links */
.elementor-location-footer .elementor-icon-list-item a { transition: color .3s, transform .3s var(--dc-ease); display: inline-flex; }
.elementor-location-footer .elementor-icon-list-item a:hover { transform: translateX(4px); }

/* Popup entrance polish */
.elementor-popup-modal .dialog-widget-content { box-shadow: 0 40px 80px rgba(1, 45, 96, .35) !important; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ---------- Content pages ---------- */
.dc-prose p { margin: 0 0 1em; }
.dc-prose p:last-child { margin-bottom: 0; }
.dc-prose a { color: var(--dc-blue); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(2, 181, 190, .45); text-underline-offset: 3px; transition: color .25s, text-decoration-color .25s; }
.dc-prose a:hover { color: var(--dc-teal); text-decoration-color: var(--dc-teal); }
.dc-prose strong { color: var(--dc-navy); }
ul.dc-check { list-style: none; margin: 0 0 1em; padding: 0; display: flex; flex-direction: column; gap: 12px; }
ul.dc-check li { position: relative; padding-left: 34px; margin: 0; line-height: 1.6; }
ul.dc-check li::before {
	content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; border-radius: 50%;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/13px no-repeat, linear-gradient(135deg, var(--dc-blue), var(--dc-teal));
}
.dc-crumb { font-size: 14px; }
.dc-crumb p { margin: 0; }
.dc-crumb a { color: var(--dc-blue) !important; text-decoration: none !important; font-weight: 600; }
.dc-crumb a:hover { color: var(--dc-teal) !important; }
.dc-crumb span { opacity: .45; margin: 0 6px; }
mark.dc-todo { background: #FFF3C4; color: #7A5B00; padding: 1px 6px; border-radius: 6px; font-weight: 600; font-size: .92em; }
.dc-legal h2 { font-size: 26px; font-weight: 800; color: var(--dc-navy); margin: 44px 0 14px; line-height: 1.25; }
.dc-legal h2:first-child { margin-top: 0; }
.dc-legal h3 { font-size: 19px; font-weight: 700; color: var(--dc-navy); margin: 0 0 10px; }
.dc-legal .dc-boxed { background: var(--dc-lt, #F2F8FB); border: 1px solid #E3EDF3; border-radius: 18px; padding: 24px 28px; margin: 18px 0; }
.dc-float { box-shadow: 0 24px 50px rgba(1, 45, 96, .16) !important; }
.dc-float .elementor-icon-box-title { margin: 0 0 2px !important; }

/* ---------- Fluent Forms in DigiCleen style ---------- */
.fluentform .ff-el-group { margin-bottom: 18px; }
.fluentform .ff-el-input--label label { font-weight: 600 !important; color: var(--dc-navy) !important; font-size: 14px !important; }
.fluentform .ff-el-form-control {
	min-height: 50px; border: 1.5px solid #E3EDF3 !important; border-radius: 12px !important; padding: 12px 16px !important;
	font-size: 15px !important; color: var(--dc-navy) !important; background: #fff !important; box-shadow: none !important;
	transition: border-color .2s, box-shadow .2s !important;
}
.fluentform textarea.ff-el-form-control { min-height: 130px; }
.fluentform .ff-el-form-control:focus { border-color: var(--dc-teal) !important; box-shadow: 0 0 0 4px rgba(2, 181, 190, .15) !important; }
.fluentform .ff-el-form-check label { color: #3E4C66; font-size: 15px; }
.fluentform input[type=checkbox], .fluentform input[type=radio] { accent-color: var(--dc-teal); width: 18px; height: 18px; }
.fluentform .ff-btn-submit {
	position: relative; overflow: hidden; border: 0 !important; border-radius: 999px !important; padding: 16px 34px !important;
	background: linear-gradient(90deg, var(--dc-blue), var(--dc-teal)) !important; color: #fff !important; font-weight: 700 !important; font-size: 16px !important;
	transition: transform .35s var(--dc-ease), box-shadow .35s var(--dc-ease) !important;
}
.fluentform .ff-btn-submit:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(2, 73, 130, .28); opacity: 1 !important; }
.fluentform .ff-el-help-message, .fluentform .ff_t_c { color: #3E4C66; font-size: 14px; }
.fluentform .ff_t_c a { color: var(--dc-blue); font-weight: 600; }

/* footer full-bleed */
footer.elementor-location-footer{padding-left:0!important;padding-right:0!important}
footer.elementor-location-footer>.e-con{width:100%;max-width:100%}

/* Applicant documents */
.dc-docs{max-width:760px;margin:0 auto}
.dc-docs__hello{font-size:18px;color:var(--e-global-color-vamtam_accent_6,#012D60);font-weight:600;margin:0 0 16px}
.dc-docs__notice{padding:16px 20px;border-radius:14px;margin:0 0 20px;font-size:16px;line-height:1.5}
.dc-docs__notice--ok{background:#E6F7FA;border:1px solid #9FDDE3;color:#024982}
.dc-docs__notice--warn{background:#FFF7E6;border:1px solid #F3D9A4;color:#6B4B00}
.dc-docs__done{background:#F2F8FB;border-radius:14px;padding:16px 20px;margin:20px 0}
.dc-docs__done ul{margin:8px 0 0;padding-left:18px}
.dc-docs__done span{color:#6B7A90;font-size:14px}
.dc-docs__form{display:grid;gap:10px;margin-top:24px;background:#fff;border:1px solid #E3EDF3;border-radius:20px;padding:28px;box-shadow:0 18px 40px rgba(1,45,96,.06)}
.dc-docs__form label{font-weight:600;color:#012D60;font-size:15px}
.dc-docs__form select,.dc-docs__form input[type=file]{width:100%;min-height:50px;border:1px solid #D6E3EC;border-radius:12px;padding:12px 14px;background:#fff;font-size:16px}
.dc-docs__form select:focus,.dc-docs__form input[type=file]:focus{outline:none;border-color:#02B5BE;box-shadow:0 0 0 4px rgba(2,181,190,.15)}
.dc-docs__consent{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important;color:#3E4C66!important;margin-top:6px}
.dc-docs__consent input{margin-top:4px;flex:none}
.dc-docs__submit{justify-self:start;margin-top:8px;border:0;border-radius:999px;padding:15px 30px;font-weight:700;font-size:16px;color:#fff;cursor:pointer;background:linear-gradient(135deg,#024982,#02B5BE);transition:transform .25s,box-shadow .25s}
.dc-docs__submit:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(2,73,130,.25)}
@media (max-width:767px){.dc-docs__form{padding:20px}.dc-docs__submit{width:100%;justify-self:stretch}}
/* Hero top spacing: header is static on tablet/mobile */
@media (max-width:1024px){[data-elementor-type="wp-page"] > .e-con:first-child > .e-con-inner{padding-top:64px!important}}
@media (max-width:767px){[data-elementor-type="wp-page"] > .e-con:first-child > .e-con-inner{padding-top:40px!important}}

/* Calculator result on enquiry form */
.dc-quote-card{background:linear-gradient(135deg,#012D60,#024982 60%,#02809A);color:#fff;border-radius:20px;padding:24px 26px;margin:0 0 24px;box-shadow:0 18px 40px rgba(1,45,96,.18)}
.dc-quote-card__head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}
.dc-quote-card__eyebrow{font-size:13px;letter-spacing:2px;text-transform:uppercase;color:#9FE8EE;font-weight:700}
.dc-quote-card__badge{font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff}
.dc-quote-card__badge.is-bookable{background:rgba(4,223,200,.2);color:#7FF3E6}
.dc-quote-card__badge.is-estimate{background:rgba(255,200,87,.2);color:#FFD889}
.dc-quote-card__main{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;margin-bottom:12px}
.dc-quote-card__service{font-size:20px;font-weight:700}
.dc-quote-card__price{font-size:28px;font-weight:800;color:#fff}
.dc-quote-card__list{list-style:none;margin:0 0 12px;padding:12px 0 0;border-top:1px solid rgba(255,255,255,.15);display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 18px}
.dc-quote-card__list li{font-size:14px;color:rgba(255,255,255,.85);line-height:1.45}
.dc-quote-card__note{font-size:13px;color:rgba(255,255,255,.7);margin:0}
@media (max-width:767px){.dc-quote-card{padding:20px}.dc-quote-card__price{font-size:24px}}

/* Booking page */
.dc-booking__start{background:#fff;border:1px solid #E3EDF3;border-radius:20px;padding:36px;text-align:center;box-shadow:0 18px 40px rgba(1,45,96,.06)}
.dc-booking__start h3{margin:8px 0 10px;color:#012D60;font-size:26px}
.dc-booking__start p{max-width:560px;margin:0 auto 20px;color:#3E4C66}
.dc-booking__start .dc-quote-card__eyebrow{color:#024982}
.dc-booking__btn{display:inline-block;border-radius:999px;padding:14px 28px;font-weight:700;color:#fff!important;background:linear-gradient(135deg,#024982,#02B5BE);text-decoration:none!important;transition:transform .25s,box-shadow .25s}
.dc-booking__btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(2,73,130,.25)}
.dc-booking .bookly-form{background:#fff;border:1px solid #E3EDF3;border-radius:20px;padding:28px;box-shadow:0 18px 40px rgba(1,45,96,.06);max-width:none}
@media (max-width:767px){.dc-booking .bookly-form{padding:16px}.dc-booking__start{padding:24px}}

/* Payment note */
.dc-paynote{max-width:900px;margin:32px auto 0!important;background:#E6F7FA;border:1px solid #BDE8EE;border-radius:16px;padding:20px 24px!important}
.dc-paynote p{margin:0;color:#024982}

/* Application form page */
.dc-narrow-form{max-width:820px;margin:32px auto 0!important;width:100%;background:#fff;border:1px solid #E3EDF3;border-radius:20px;padding:32px!important;box-shadow:0 18px 40px rgba(1,45,96,.06)}
@media (max-width:767px){.dc-narrow-form{padding:20px!important}}

/* Booking page: go straight to booking */
body.dc-booking-page [data-elementor-type="wp-page"] > .e-con:first-child{display:none!important}
body.dc-booking-page #start-booking > .e-con-inner{padding-top:150px!important}
@media (max-width:1024px){body.dc-booking-page #start-booking > .e-con-inner{padding-top:40px!important}}
body.dc-booking-direct #start-booking .dc-head,body.dc-booking-direct #start-booking .elementor-widget-shortcode:has(.dc-calc){display:none!important}
body.dc-booking-direct #start-booking .dc-paynote{margin-top:0!important}

/* Secure booking (Stripe) */
.dc-secure{margin-top:24px;background:#fff;border:2px solid #02B5BE;border-radius:20px;padding:28px;box-shadow:0 18px 40px rgba(1,45,96,.08)}
.dc-secure h3{margin:6px 0 4px;color:#012D60;font-size:24px}
.dc-secure .dc-quote-card__eyebrow{color:#024982}
.dc-secure__meta{color:#3E4C66;font-weight:600;margin:0 0 12px}
.dc-secure__element{margin:18px 0}
.dc-secure__consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#3E4C66;margin:8px 0 16px}
.dc-secure__consent input{margin-top:3px;flex:none}
.dc-secure__btn{border:0;cursor:pointer;font-size:16px}
.dc-secure__btn[disabled]{opacity:.6;cursor:wait}
.dc-secure__msg{color:#b32d2e;font-weight:600;margin:12px 0 0}
.dc-secure__small{font-size:13px;color:#6B7A90;margin:12px 0 0}
@media (max-width:767px){.dc-secure{padding:18px}}

.dc-secure .dc-secure__consent{display:flex!important;width:100%}
.dc-secure .dc-secure__btn{display:inline-block;margin-top:4px}
.dc-secure .dc-secure__element{min-height:120px}

/* Booking step 1: one clear date question */
.dc-booking .bookly-time-to{display:none!important}

/* Review 2: phone flag, repeat note, consent */
.dc-booking .iti--show-flags .iti__tel-input,.dc-booking .iti--allow-dropdown .iti__tel-input{padding-left:62px!important}
.dc-booking .iti__country-container{z-index:2}
.dc-booking .dc-repeat-note{margin:6px 0 14px;padding:10px 14px;background:#EEF8FA;border-left:3px solid #02B5BE;border-radius:8px;color:#3E4C66;font-size:14px}
.dc-booking .bookly-js-repeat-variants-container .bookly-row{margin-bottom:12px}
.dc-secure__consent strong{font-weight:700;color:#012D60}
