/* ==========================================================================
   Digital Allo — Service Areas location pages
   Premium rebuild. Scoped entirely under .dal so nothing here can leak into
   the homepage or the marketing family pages.

   Colour wins: reference-theme.css forces heading/body colours globally with
   !important, so dark sections here must reassert their own with !important.
   ========================================================================== */

.dal {
	--dal-blue: var(--da-brand-blue, #1677e8);
	--dal-indigo: var(--da-brand-indigo, #5146c7);
	--dal-magenta: var(--da-brand-magenta, #d633a6);
	--dal-ink: var(--da-brand-ink, #101a3b);
	--dal-navy: #0b1533;
	--dal-navy-2: #142149;
	--dal-copy: #45577c;
	--dal-line: #e2eaf8;
	--dal-soft: #f5f9ff;
	--dal-grad: linear-gradient(110deg, var(--dal-blue), var(--dal-indigo) 58%, var(--dal-magenta));
	--dal-radius: 22px;
	--dal-shadow: 0 20px 56px rgba(16, 40, 100, .10);
	--dal-shadow-lift: 0 30px 70px rgba(16, 40, 100, .18);
	--dal-delay: 0ms;

	display: block;
	overflow-x: clip;
}

/* Kill the generic page chrome the old design relied on. */
.da-page--location { padding: 0 !important; }
.da-page--location > .da-page-hero,
.da-page--location > .da-entry { display: none !important; }

/* --------------------------------------------------------------- primitives */

.dal .da-wrap { width: min(calc(100% - 40px), 1240px); margin-inline: auto; }

.dal-kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	color: #8fb4ff !important;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.dal-kicker::before {
	content: "";
	width: 30px;
	height: 3px;
	border-radius: 3px;
	background: var(--dal-grad);
}

.dal .da-section { padding: clamp(60px, 8vw, 108px) 0; }

.dal .da-section-head { max-width: 760px; margin: 0 auto clamp(34px, 4vw, 54px); text-align: center; }
.dal .da-section-head h2 {
	margin: 0;
	color: var(--dal-ink) !important;
	font-size: clamp(28px, 3.6vw, 46px);
	line-height: 1.1;
	letter-spacing: -.035em;
}
.dal .da-section-head p { margin: 14px 0 0; color: var(--dal-copy) !important; }

/* Buttons ------------------------------------------------------------------ */

.dal-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 54px;
	padding: 14px 26px;
	border: 0;
	border-radius: 999px;
	font: 800 15px/1.2 Poppins, Arial, sans-serif;
	text-decoration: none;
	overflow: hidden;
	isolation: isolate;
	transition: transform .28s cubic-bezier(.2, .8, .3, 1), box-shadow .28s ease;
}
.dal-btn svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.1;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform .28s cubic-bezier(.2, .8, .3, 1);
}

.dal-btn--primary {
	background: var(--dal-grad) !important;
	color: #fff !important;
	box-shadow: 0 16px 34px rgba(23, 92, 255, .32);
}
/* Sheen sweep on hover. */
.dal-btn--primary::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(120deg, transparent 20%, rgba(255, 255, 255, .38) 50%, transparent 80%);
	transform: translateX(-120%);
	transition: transform .7s cubic-bezier(.2, .8, .3, 1);
}
.dal-btn--primary:hover,
.dal-btn--primary:focus-visible { transform: translateY(-3px); box-shadow: 0 24px 46px rgba(23, 92, 255, .42); }
.dal-btn--primary:hover::after,
.dal-btn--primary:focus-visible::after { transform: translateX(120%); }
.dal-btn--primary:hover svg { transform: translateX(4px); }

.dal-btn--ghost {
	background: rgba(255, 255, 255, .06) !important;
	color: #eaf1ff !important;
	border: 1px solid rgba(180, 205, 255, .34);
	backdrop-filter: blur(6px);
}
.dal-btn--ghost:hover,
.dal-btn--ghost:focus-visible {
	transform: translateY(-3px);
	background: rgba(255, 255, 255, .13) !important;
	border-color: rgba(200, 220, 255, .6);
}

/* ---------------------------------------------------------------------- hero */

.dal-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(30px, 4vw, 46px) 0 clamp(64px, 8vw, 104px);
	background:
		radial-gradient(1100px 520px at 88% -8%, rgba(214, 51, 166, .30), transparent 60%),
		radial-gradient(900px 520px at 8% 8%, rgba(81, 70, 199, .40), transparent 62%),
		linear-gradient(150deg, var(--dal-navy) 0%, var(--dal-navy-2) 55%, #0d1a3d 100%);
}
.dal-hero__glow {
	position: absolute;
	width: 620px;
	height: 620px;
	right: -180px;
	top: -220px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(22, 119, 232, .40), transparent 68%);
	filter: blur(12px);
	animation: dal-float 14s ease-in-out infinite;
	pointer-events: none;
}
.dal-hero__grid-lines {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(ellipse at 8% 10%, rgba(55,125,255,.14), transparent 62%), radial-gradient(ellipse at 94% 90%, rgba(190,58,178,.1), transparent 60%);
	pointer-events: none;
}
@keyframes dal-float {
	0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
	50% { transform: translate3d(-26px, 30px, 0) scale(1.07); }
}

.dal-hero__inner { position: relative; z-index: 2; }

.dal-crumbs { margin: 0 0 clamp(26px, 4vw, 44px); }
.dal-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: #9fb6e4;
	font-size: 13px;
	font-weight: 600;
}
/* Legacy inner-page styles colour bare <li> dark, which is unreadable on the
 * dark hero — the crumb text has to reassert its own colour. */
.dal-crumbs li { color: #9fb6e4 !important; }
.dal-crumbs a { color: #cfe0ff !important; text-decoration: none; }
.dal-crumbs a:hover { color: #fff !important; text-decoration: underline; }
.dal-crumbs [aria-current="page"] { color: #fff !important; }

.dal-hero__body {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
	align-items: start;
	gap: clamp(30px, 4vw, 58px);
}

.dal-hero__copy h1 {
	margin: 0;
	max-width: 16ch;
	color: #fff !important;
	font-size: clamp(34px, 4.6vw, 62px);
	line-height: 1.05;
	letter-spacing: -.045em;
}
.dal-hero__lede {
	max-width: 62ch;
	margin: 20px 0 0;
	color: #c3d4f2 !important;
	font-size: clamp(16px, 1.35vw, 19px);
	line-height: 1.62;
}

.dal-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin: 32px 0 0; }

.dal-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 26px;
	margin: 34px 0 0;
	padding: 0;
	list-style: none;
}
.dal-hero__trust li {
	position: relative;
	padding-left: 24px;
	color: #a9c1e9 !important;
	font-size: 14px;
	font-weight: 600;
}
.dal-hero__trust li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 7px;
	width: 13px;
	height: 8px;
	border-left: 2.4px solid #4bd6c0;
	border-bottom: 2.4px solid #4bd6c0;
	transform: rotate(-45deg);
}

/* Glass coverage card ------------------------------------------------------- */

.dal-hero__card {
	padding: 26px;
	border: 1px solid rgba(160, 190, 255, .24);
	border-radius: var(--dal-radius);
	background: linear-gradient(160deg, rgba(255, 255, 255, .13), rgba(255, 255, 255, .04));
	backdrop-filter: blur(14px);
	box-shadow: 0 30px 70px rgba(4, 12, 38, .45);
}
.dal-hero__card-head { display: flex; align-items: center; gap: 14px; margin: 0 0 22px; }
.dal-pin {
	display: grid;
	place-items: center;
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	border-radius: 14px;
	background: var(--dal-grad);
	box-shadow: 0 12px 26px rgba(23, 92, 255, .38);
}
.dal-pin svg { display: block; width: 23px; height: 23px; max-width: none; margin: 0; fill: none; stroke: #fff; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.dal-hero__card-head > div { flex: 1 1 auto; min-width: 0; }
.dal-hero__card-head strong { display: block; color: #fff !important; font-size: 19px; letter-spacing: -.02em; }
.dal-hero__card-head > div > span { display: block; color: #9db5e2 !important; font-size: 13px; }

.dal-hero__card-label {
	margin: 0 0 12px;
	color: #8fb4ff !important;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .13em;
	text-transform: uppercase;
}
.dal-hero__areas { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; list-style: none; }
.dal-hero__areas li {
	padding: 7px 13px;
	border: 1px solid rgba(170, 198, 255, .26);
	border-radius: 999px;
	background: rgba(255, 255, 255, .07);
	color: #dfe9ff !important;
	font-size: 13px;
	font-weight: 600;
	transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.dal-hero__areas li:hover {
	transform: translateY(-2px);
	background: rgba(255, 255, 255, .16);
	border-color: rgba(214, 51, 166, .6);
}
.dal-hero__card-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #7fb0ff !important;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
}
.dal-hero__card-cta:hover { color: #fff !important; }
.dal-hero__card-cta span { transition: transform .25s ease; }
.dal-hero__card-cta:hover span { transform: translateX(4px); }

/* --------------------------------------------------------------------- stats */

.dal-stats { margin-top: -42px; position: relative; z-index: 3; }
.dal-stats__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	overflow: hidden;
	border: 1px solid var(--dal-line);
	border-radius: var(--dal-radius);
	background: var(--dal-line);
	box-shadow: var(--dal-shadow);
}
.dal-stat {
	padding: 26px 24px;
	background: #fff;
	transition: background .3s ease;
}
.dal-stat:hover { background: var(--dal-soft); }
.dal-stat strong {
	display: block;
	margin: 0 0 6px;
	font-size: clamp(20px, 2.1vw, 27px);
	font-weight: 900;
	letter-spacing: -.03em;
	background: var(--dal-grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.dal-stat span { display: block; color: var(--dal-copy) !important; font-size: 13.5px; line-height: 1.5; }

/* ----------------------------------------------------------------- divisions */

.dal-div-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }

.dal-div {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 34px;
	border: 1px solid var(--dal-line);
	border-radius: var(--dal-radius);
	background: #fff;
	box-shadow: var(--dal-shadow);
	overflow: hidden;
	transition: transform .35s cubic-bezier(.2, .8, .3, 1), box-shadow .35s ease, border-color .35s ease;
}
/* Gradient top rule that widens on hover. */
.dal-div::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	height: 5px;
	width: 34%;
	background: var(--dal-grad);
	transition: width .5s cubic-bezier(.2, .8, .3, 1);
}
.dal-div--it::before { background: linear-gradient(110deg, #0cc8df, var(--dal-blue) 60%, var(--dal-indigo)); }
.dal-div--ai::before { background: linear-gradient(110deg, #0cc8df, var(--dal-indigo) 58%, #cc28b5); }
.dal-div:hover { transform: translateY(-6px); box-shadow: var(--dal-shadow-lift); border-color: #cddefa; }
.dal-div:hover::before { width: 100%; }

.dal-div__top { margin: 0 0 14px; }
.dal-div__badge {
	display: inline-block;
	margin: 0 0 12px;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--dal-soft);
	color: var(--dal-blue) !important;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.dal-div h3 { margin: 0; color: var(--dal-ink) !important; font-size: clamp(22px, 2.2vw, 28px); letter-spacing: -.03em; }
.dal-div > p {
	margin: 0 0 22px;
	color: var(--dal-copy) !important;
}

.dal-div__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}
.dal-div__list li { display: flex; min-width: 0; }
.dal-div__list a {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 11px 14px;
	border-radius: 11px;
	background: var(--dal-soft);
	color: var(--dal-ink) !important;
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	transition: background .25s ease, color .25s ease, transform .25s ease;
}
.dal-div__list a span { opacity: 0; transform: translateX(-6px); transition: opacity .25s ease, transform .25s ease; }
.dal-div__list a:hover { background: #e6f0ff; color: var(--dal-blue) !important; transform: translateX(3px); }
.dal-div__list a:hover span { opacity: 1; transform: translateX(0); }
.dal-div__list a:focus-visible,
.dal-div__cta:focus-visible { outline: 3px solid var(--dal-blue); outline-offset: 3px; }

.dal-div__cta {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: auto;
	color: var(--dal-blue) !important;
	font-size: 15px;
	font-weight: 800;
	text-decoration: none;
}
.dal-div__cta span { transition: transform .25s ease; }
.dal-div__cta:hover span { transform: translateX(5px); }

/*
 * The three division cards share the same semantic structure.  On screens
 * where cards sit beside one another, subgrid lets their real heading,
 * paragraph and service-label sizes define one set of shared tracks.  This
 * keeps each tile row level without forcing labels onto one line or relying
 * on guessed minimum heights.
 */
@supports (grid-template-rows: subgrid) {
	@media (min-width: 1151px) {
		.dal-div-grid {
			grid-template-rows: repeat(6, auto);
			column-gap: 24px;
			row-gap: 16px;
		}
		.dal-div {
			display: grid;
			grid-template-rows: subgrid;
			grid-row: span 6;
		}
		.dal-div__top,
		.dal-div > p,
		.dal-div__list,
		.dal-div__cta { margin: 0; }
		.dal-div__list {
			display: grid;
			grid-row: span 3;
			grid-template-rows: subgrid;
			column-gap: 8px;
			row-gap: 8px;
			align-self: stretch;
		}
		.dal-div__cta { align-self: end; }
	}

	@media (min-width: 761px) and (max-width: 1150px) {
		.dal-div-grid {
			grid-template-rows: repeat(12, auto);
			column-gap: 24px;
			row-gap: 16px;
		}
		.dal-div {
			display: grid;
			grid-template-rows: subgrid;
			grid-row: span 6;
		}
		.dal-div__top,
		.dal-div > p,
		.dal-div__list,
		.dal-div__cta { margin: 0; }
		.dal-div__list {
			display: grid;
			grid-row: span 3;
			grid-template-rows: subgrid;
			column-gap: 8px;
			row-gap: 8px;
			align-self: stretch;
		}
		.dal-div__cta { align-self: end; }
	}
}

/* --------------------------------------------------------------- local block */

.dal-local { background: var(--dal-soft); }
.dal-local__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(30px, 4vw, 56px); align-items: start; }
.dal-local__copy h2 { margin: 0 0 16px; color: var(--dal-ink) !important; font-size: clamp(26px, 3.2vw, 40px); line-height: 1.12; letter-spacing: -.035em; }
.dal-local__copy > p { color: var(--dal-copy) !important; }
.dal-local .da-eyebrow { color: var(--dal-blue) !important; }

.dal-local__hoods { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--dal-line); }
.dal-local__hoods-label {
	margin: 0 0 12px;
	color: var(--dal-ink) !important;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .13em;
	text-transform: uppercase;
}
.dal-local__hoods ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.dal-local__hoods li {
	padding: 8px 14px;
	border: 1px solid var(--dal-line);
	border-radius: 999px;
	background: #fff;
	color: var(--dal-ink) !important;
	font-size: 13px;
	font-weight: 600;
	transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.dal-local__hoods li:hover { transform: translateY(-2px); border-color: var(--dal-blue); box-shadow: 0 8px 20px rgba(22, 119, 232, .16); }

.dal-industries { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.dal-industry {
	position: relative;
	padding: 26px 24px;
	border: 1px solid var(--dal-line);
	border-radius: 18px;
	background: #fff;
	overflow: hidden;
	transition: transform .35s cubic-bezier(.2, .8, .3, 1), box-shadow .35s ease, border-color .35s ease;
}
.dal-industry::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 3px;
	background: var(--dal-grad);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .45s cubic-bezier(.2, .8, .3, 1);
}
.dal-industry:hover { transform: translateY(-5px); box-shadow: var(--dal-shadow-lift); border-color: #cddefa; }
.dal-industry:hover::after { transform: scaleX(1); }
.dal-industry__num {
	display: block;
	margin: 0 0 10px;
	font-size: 13px;
	font-weight: 900;
	letter-spacing: .1em;
	background: var(--dal-grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.dal-industry h3 { margin: 0 0 8px; color: var(--dal-ink) !important; font-size: 17px; letter-spacing: -.02em; }
.dal-industry p { margin: 0; color: var(--dal-copy) !important; font-size: 14.5px; line-height: 1.6; }

/* -------------------------------------------------------------------- why us */

.dal-why__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.dal-why__card {
	position: relative;
	padding: 30px 26px;
	border: 1px solid var(--dal-line);
	border-radius: 18px;
	background: #fff;
	transition: transform .35s cubic-bezier(.2, .8, .3, 1), box-shadow .35s ease, border-color .35s ease;
}
.dal-why__card:hover { transform: translateY(-6px); box-shadow: var(--dal-shadow-lift); border-color: #cddefa; }
.dal-why__mark {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	margin: 0 0 16px;
	border-radius: 12px;
	background: var(--dal-soft);
	transition: background .3s ease, transform .3s ease;
}
.dal-why__mark svg { width: 20px; height: 20px; fill: none; stroke: var(--dal-blue); stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; transition: stroke .3s ease; }
.dal-why__card:hover .dal-why__mark { background: var(--dal-grad); transform: rotate(-6deg) scale(1.06); }
.dal-why__card:hover .dal-why__mark svg { stroke: #fff; }
.dal-why__card h3 { margin: 0 0 9px; color: var(--dal-ink) !important; font-size: 18px; letter-spacing: -.02em; }
.dal-why__card p { margin: 0; color: var(--dal-copy) !important; font-size: 14.5px; line-height: 1.62; }

/* ------------------------------------------------------------------- process */

.dal-process { background: var(--dal-navy); }
.dal-process .da-section-head h2 { color: #fff !important; }
.dal-process .da-section-head p { color: #b6c9ec !important; }
.dal-process .da-eyebrow { color: #8fb4ff !important; }

.dal-process__track {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}
/* Connecting rail behind the steps. */
.dal-process__track::before {
	content: "";
	position: absolute;
	left: 6%;
	right: 6%;
	top: 32px;
	height: 2px;
	background: linear-gradient(90deg, transparent, rgba(143, 180, 255, .38) 12%, rgba(143, 180, 255, .38) 88%, transparent);
}
.dal-step { position: relative; padding: 0 6px; }
.dal-step__num {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin: 0 0 20px;
	border: 1px solid rgba(160, 190, 255, .3);
	border-radius: 20px;
	background: linear-gradient(160deg, #17255010, rgba(255, 255, 255, .09));
	backdrop-filter: blur(8px);
	color: #fff;
	font-size: 18px;
	font-weight: 900;
	letter-spacing: -.02em;
	transition: transform .35s cubic-bezier(.2, .8, .3, 1), background .35s ease, box-shadow .35s ease;
}
.dal-step:hover .dal-step__num {
	transform: translateY(-5px);
	background: var(--dal-grad);
	box-shadow: 0 18px 38px rgba(23, 92, 255, .45);
}
.dal-step h3 { margin: 0 0 9px; color: #fff !important; font-size: 18px; letter-spacing: -.02em; }
.dal-step p { margin: 0; color: #b0c4e8 !important; font-size: 14.5px; line-height: 1.62; }

/* --------------------------------------------------------------- testimonials */

.dal-reviews__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.dal-review {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 30px 26px;
	border: 1px solid var(--dal-line);
	border-radius: 18px;
	background: #fff;
	transition: transform .35s cubic-bezier(.2, .8, .3, 1), box-shadow .35s ease;
}
.dal-review:hover { transform: translateY(-5px); box-shadow: var(--dal-shadow-lift); }
.dal-review__stars { color: #ffb400; font-size: 16px; letter-spacing: 2px; }
.dal-review blockquote { margin: 0; }
.dal-review blockquote p { margin: 0; color: var(--dal-ink) !important; font-size: 15.5px; line-height: 1.64; }
.dal-review blockquote p::before { content: "“"; }
.dal-review blockquote p::after { content: "”"; }
.dal-review figcaption { margin-top: auto; padding-top: 6px; }
.dal-review figcaption strong { display: block; color: var(--dal-ink) !important; font-size: 14.5px; }
.dal-review figcaption span { display: block; color: var(--dal-copy) !important; font-size: 13px; }

/* ----------------------------------------------------------------------- FAQ */

.dal-faq { background: var(--dal-soft); }
.dal-faq__wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(30px, 4vw, 58px); align-items: start; }
.dal-faq__intro { position: sticky; top: 110px; }
.dal-faq__intro h2 { margin: 0 0 14px; color: var(--dal-ink) !important; font-size: clamp(26px, 3.2vw, 40px); line-height: 1.12; letter-spacing: -.035em; }
.dal-faq__intro p { color: var(--dal-copy) !important; }
.dal-faq__intro a { color: var(--dal-blue) !important; font-weight: 800; }
.dal-faq .da-eyebrow { color: var(--dal-blue) !important; }

.dal-faq__list { display: grid; gap: 12px; }
.dal-faq__item {
	border: 1px solid var(--dal-line);
	border-radius: 16px;
	background: #fff;
	overflow: hidden;
	transition: border-color .3s ease, box-shadow .3s ease;
}
.dal-faq__item:hover { border-color: #c9dcf9; box-shadow: 0 12px 30px rgba(16, 40, 100, .08); }
.dal-faq__item.is-open { border-color: var(--dal-blue); box-shadow: 0 16px 36px rgba(22, 119, 232, .14); }
.dal-faq__item h3 { margin: 0; font-size: inherit; }

.dal-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	width: 100%;
	padding: 20px 22px;
	border: 0;
	background: transparent;
	color: var(--dal-ink) !important;
	font: 800 16px/1.45 Poppins, Arial, sans-serif;
	text-align: left;
	cursor: pointer;
	transition: color .25s ease;
}
.dal-faq__q:hover { color: var(--dal-blue) !important; }

.dal-faq__icon { position: relative; flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: var(--dal-soft); transition: background .3s ease, transform .3s ease; }
.dal-faq__icon::before,
.dal-faq__icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	background: var(--dal-blue);
	border-radius: 2px;
	transition: transform .3s cubic-bezier(.2, .8, .3, 1), background .3s ease;
}
.dal-faq__icon::before { width: 10px; height: 2px; transform: translate(-50%, -50%); }
.dal-faq__icon::after { width: 2px; height: 10px; transform: translate(-50%, -50%); }
.dal-faq__item.is-open .dal-faq__icon { background: var(--dal-grad); transform: rotate(180deg); }
.dal-faq__item.is-open .dal-faq__icon::before,
.dal-faq__item.is-open .dal-faq__icon::after { background: #fff; }
.dal-faq__item.is-open .dal-faq__icon::after { transform: translate(-50%, -50%) scaleY(0); }

.dal-faq__a { overflow: hidden; transition: height .38s cubic-bezier(.2, .8, .3, 1); }
.dal-faq__a p { margin: 0; padding: 0 22px 22px; color: var(--dal-copy) !important; font-size: 15px; line-height: 1.66; }
/* No-JS fallback: answers stay visible until the script collapses them. */
.dal-faq__list:not([data-dal-faq-ready]) .dal-faq__a { height: auto !important; }

/* -------------------------------------------------------------- nearby areas */

.dal-nearby__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.dal-nearby__card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 26px 24px;
	border: 1px solid var(--dal-line);
	border-radius: 18px;
	background: #fff;
	text-decoration: none;
	overflow: hidden;
	transition: transform .35s cubic-bezier(.2, .8, .3, 1), box-shadow .35s ease, border-color .35s ease;
}
.dal-nearby__card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--dal-grad);
	opacity: 0;
	transition: opacity .35s ease;
}
.dal-nearby__card > * { position: relative; z-index: 1; }
.dal-nearby__card:hover { transform: translateY(-6px); box-shadow: var(--dal-shadow-lift); border-color: transparent; }
.dal-nearby__card:hover::before { opacity: 1; }

.dal-nearby__pin { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--dal-soft); transition: background .3s ease; }
.dal-nearby__pin svg { width: 20px; height: 20px; fill: none; stroke: var(--dal-blue); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; transition: stroke .3s ease; }
.dal-nearby__card:hover .dal-nearby__pin { background: rgba(255, 255, 255, .22); }
.dal-nearby__card:hover .dal-nearby__pin svg { stroke: #fff; }

.dal-nearby__card strong { color: var(--dal-ink) !important; font-size: 19px; letter-spacing: -.025em; transition: color .3s ease; }
.dal-nearby__meta { display: flex; align-items: center; gap: 7px; color: var(--dal-copy) !important; font-size: 13.5px; font-weight: 600; transition: color .3s ease; }
.dal-nearby__meta span { transition: transform .3s ease; }
.dal-nearby__card:hover strong,
.dal-nearby__card:hover .dal-nearby__meta { color: #fff !important; }
.dal-nearby__card:hover .dal-nearby__meta span { transform: translateX(5px); }

/* ----------------------------------------------------------------- final CTA */

.dal-cta {
	position: relative;
	overflow: hidden;
	padding: clamp(58px, 7vw, 96px) 0;
	background:
		radial-gradient(900px 460px at 82% 0%, rgba(214, 51, 166, .26), transparent 62%),
		linear-gradient(140deg, var(--dal-navy) 0%, #16265a 60%, #0e1b40 100%);
}
.dal-cta__glow {
	position: absolute;
	width: 540px;
	height: 540px;
	left: -190px;
	bottom: -230px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(81, 70, 199, .48), transparent 68%);
	filter: blur(10px);
	animation: dal-float 16s ease-in-out infinite reverse;
	pointer-events: none;
}
.dal-cta__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 4vw, 58px); align-items: center; }
.dal-cta__copy h2 { margin: 0 0 16px; color: #fff !important; font-size: clamp(27px, 3.4vw, 42px); line-height: 1.12; letter-spacing: -.035em; }
.dal-cta__copy > p { margin: 0 0 24px; color: #c3d4f2 !important; font-size: 17px; line-height: 1.6; }

.dal-cta__points { display: grid; gap: 10px; margin: 0 0 26px; padding: 0; list-style: none; }
.dal-cta__points li { position: relative; padding-left: 26px; color: #d6e3fa !important; font-size: 15px; font-weight: 600; }
.dal-cta__points li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 7px;
	width: 13px;
	height: 8px;
	border-left: 2.4px solid #4bd6c0;
	border-bottom: 2.4px solid #4bd6c0;
	transform: rotate(-45deg);
}
.dal-cta__contact { display: flex; flex-wrap: wrap; gap: 10px 26px; }
.dal-cta__contact a { color: #8fb4ff !important; font-size: 16px; font-weight: 800; text-decoration: none; }
.dal-cta__contact a:hover { color: #fff !important; text-decoration: underline; }

.dal-cta__form {
	padding: 30px;
	border: 1px solid rgba(160, 190, 255, .22);
	border-radius: var(--dal-radius);
	background: #fff;
	box-shadow: 0 34px 74px rgba(4, 12, 38, .42);
}
.dal-cta__form .wpforms-field-label { color: var(--dal-ink) !important; font-size: 14px !important; font-weight: 700 !important; }
.dal-cta__form input[type="text"],
.dal-cta__form input[type="email"],
.dal-cta__form input[type="tel"],
.dal-cta__form textarea,
.dal-cta__form select {
	border: 1px solid var(--dal-line) !important;
	border-radius: 11px !important;
	background: #fff !important;
	color: var(--dal-ink) !important;
	transition: border-color .25s ease, box-shadow .25s ease;
}
.dal-cta__form input:focus,
.dal-cta__form textarea:focus,
.dal-cta__form select:focus {
	border-color: var(--dal-blue) !important;
	box-shadow: 0 0 0 4px rgba(22, 119, 232, .14) !important;
	outline: none;
}
.dal-cta__form button[type="submit"],
.dal-cta__form input[type="submit"] {
	width: 100%;
	min-height: 52px;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--dal-grad) !important;
	color: #fff !important;
	font-weight: 800 !important;
	box-shadow: 0 16px 34px rgba(23, 92, 255, .32) !important;
	transition: transform .25s ease, box-shadow .25s ease;
}
.dal-cta__form button[type="submit"]:hover,
.dal-cta__form input[type="submit"]:hover { transform: translateY(-2px); box-shadow: 0 22px 44px rgba(23, 92, 255, .42) !important; }

/* The catalogue's contrast is corrected in services-showcase.css itself, so no
   per-page override is needed here any more. */

/* ------------------------------------------------------------ scroll reveal */

.dal-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .6s cubic-bezier(.2, .8, .3, 1), transform .6s cubic-bezier(.2, .8, .3, 1);
	transition-delay: var(--dal-delay);
}
.dal-reveal.is-in { opacity: 1; transform: none; }
/* If the observer never runs, content must still be visible. */
.dal:not([data-dal-ready]) .dal-reveal { opacity: 1; transform: none; }

/* ------------------------------------------------------------- breakpoints */

@media (max-width: 1150px) {
	.dal-hero__body { grid-template-columns: 1fr; }
	.dal-hero__card { max-width: 560px; }
	.dal-div-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dal-why__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dal-nearby__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dal-process__track { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
	.dal-process__track::before { display: none; }
	.dal-faq__wrap { grid-template-columns: 1fr; }
	.dal-faq__intro { position: static; }
}

@media (max-width: 960px) {
	.dal-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dal-local__grid { grid-template-columns: 1fr; }
	.dal-reviews__grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
	.dal .da-wrap { width: min(calc(100% - 32px), 1240px); }
	.dal-div-grid { grid-template-columns: 1fr; }
	.dal-div__top { min-height: 0; }
	.dal-div > p { min-height: 0; }
	.dal-stats { margin-top: -28px; }
	.dal-hero__actions { flex-direction: column; align-items: stretch; }
	.dal-btn { width: 100%; }
	.dal-industries { grid-template-columns: 1fr; }
	.dal-why__grid { grid-template-columns: 1fr; }
	.dal-cta__grid { grid-template-columns: 1fr; }
	.dal-cta__form { padding: 22px; }
}

@media (max-width: 420px) {
	.dal-stats__grid { grid-template-columns: 1fr; }
	.dal-nearby__grid { grid-template-columns: 1fr; }
	.dal-process__track { grid-template-columns: 1fr; }
	.dal-div { padding: 24px 20px; }
	.dal-div__list { grid-template-columns: 1fr; }
	.dal-hero__card { padding: 20px; }
	.dal-faq__q { padding: 17px 18px; font-size: 15px; }
	.dal-faq__a p { padding: 0 18px 18px; }
}

/* --------------------------------------------------------- reduced motion */

@media (prefers-reduced-motion: reduce) {
	.dal *,
	.dal *::before,
	.dal *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
	.dal-reveal { opacity: 1 !important; transform: none !important; }
	.dal-hero__glow,
	.dal-cta__glow { animation: none !important; }
}
