/* =========================================================================
   DS Plumbers theme – central stylesheet
   All measurements are taken from the original Elementor build so the site
   looks the same without Elementor.
   Breakpoints (same as the original): tablet <= 1024px, mobile <= 767px.
   ========================================================================= */

:root {
	--ds-navy: #1B2A4A;
	--ds-navy-dark: #121D35;
	--ds-orange: #F26A21;
	--ds-orange-dark: #D9561A;
	--ds-white: #FFFFFF;
	--ds-light: #F5F7FA;
	--ds-text: #2B2B2B;
	--ds-font-heading: Oswald, sans-serif;
	--ds-font-body: Inter, sans-serif;
	--ds-font-script: "Kaushan Script", cursive;
	--ds-header-offset: 76px;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}
body {
	margin: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; height: auto; }

/* The site is built from full-width sections; WordPress' default block gaps are not used
   (spacing comes from the gap values below, as in the original design). */
.wp-site-blocks > *,
.ds-page-content > *,
.wp-block-group[class*="ds-"] > *,
.wp-block-cover.ds-hero .wp-block-cover__inner-container > * { margin-block: 0; }
.wp-site-blocks { padding: 0; }

[id="home"], [id="services"], [id="about"], [id="areas"], [id="faq"], [id="contact"], [id="how-it-works"], [id="get-in-touch"] {
	scroll-margin-top: var(--ds-header-offset);
}

/* Visible focus for keyboard users */
.ds-header a:focus-visible, .ds-header button:focus-visible,
.ds-menu a:focus-visible, .ds-menu button:focus-visible,
.ds-top:focus-visible {
	outline: 3px solid var(--ds-orange);
	outline-offset: 3px;
}

/* ---------- Icons (inline SVG) ---------- */
.ds-icon { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; line-height: 0; }
.ds-icon svg { width: 100%; height: 100%; fill: currentColor; display: block; }

/* ---------- Buttons ----------
   Core Button block. Default style = orange primary; "Outline (light)" style for dark backgrounds.
   Add the extra class "ds-btn--phone" to show the phone icon before the text. */
.wp-block-buttons.ds-buttons { display: flex; flex-wrap: wrap; gap: 16px; }
.wp-block-button .wp-block-button__link,
.ds-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 19px;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	padding: 16px 28px;
	border-radius: 8px;
	border: 2px solid var(--ds-orange);
	background-color: var(--ds-orange);
	color: var(--ds-white);
	transition: transform 0.2s, box-shadow 0.2s, background-color 0.2s, color 0.2s;
}
.wp-block-button .wp-block-button__link:hover,
.wp-block-button .wp-block-button__link:focus-visible,
.ds-btn:hover, .ds-btn:focus-visible {
	color: var(--ds-white);
	background-color: var(--ds-orange-dark);
	box-shadow: rgba(27, 42, 74, 0.22) 0 10px 24px 0;
	transform: translate3d(0, -2px, 0);
}
.wp-block-button .wp-block-button__link:focus { color: var(--ds-white); }
.wp-block-button.is-style-ds-outline-light .wp-block-button__link {
	background-color: transparent;
	border-color: var(--ds-white);
	color: var(--ds-white);
}
.wp-block-button.is-style-ds-outline-light .wp-block-button__link:hover,
.wp-block-button.is-style-ds-outline-light .wp-block-button__link:focus-visible {
	background-color: rgba(255, 255, 255, 0.14);
	color: var(--ds-white);
}
.wp-block-button.ds-btn--phone .wp-block-button__link::before,
.ds-btn--phone::before {
	content: "";
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask: url("../icons/phone.svg") center / contain no-repeat;
	mask: url("../icons/phone.svg") center / contain no-repeat;
}

/* ---------- Header (fixed) ---------- */
.ds-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	box-sizing: border-box;
	width: 100%;
	display: flex;
	justify-content: center;
	padding: 18px 24px;
	background-color: rgba(255, 255, 255, 0.96);
	transition: padding 0.3s, box-shadow 0.3s, background-color 0.3s;
}
.ds-header.is-scrolled {
	padding-top: 10px;
	padding-bottom: 10px;
	background-color: #fff;
	box-shadow: rgba(27, 42, 74, 0.12) 0 6px 24px;
}
.admin-bar .ds-header { top: 32px; }
.ds-header__inner {
	width: 100%;
	max-width: 1200px;
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
}

/* Brand (logo mark + "DS Plumbers") */
.ds-brand { display: flex; flex: 0 0 auto; align-items: center; gap: 10px; }
.ds-brand .wp-block-site-logo { margin: 0; line-height: 0; }
.ds-brand .wp-block-site-logo img,
.ds-brand__logo img {
	width: 44px;
	height: 44px;
	border-radius: 10px;
	transition: width 0.3s, height 0.3s;
}
.ds-header.is-scrolled .ds-brand .wp-block-site-logo img { width: 38px; height: 38px; }
.ds-brand__name { margin: 0; line-height: 1; }
.ds-brand__name a { display: flex; align-items: baseline; gap: 6px; text-decoration: none; }
.ds-brand__ds, .ds-brand__plumbers {
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 28px;
	letter-spacing: 0.01em;
	line-height: 1;
}
.ds-brand__ds { color: var(--ds-navy); }
.ds-brand__plumbers { color: var(--ds-orange); }
.ds-footer .ds-brand__ds { color: var(--ds-white); }

/* Desktop navigation */
.ds-nav.wp-block-navigation { gap: 32px; }
.ds-nav.wp-block-navigation .wp-block-navigation__container { gap: 32px; }
.ds-header .ds-nav.wp-block-navigation .wp-block-navigation-item__content {
	font-family: var(--ds-font-body);
	font-weight: 600;
	font-size: 16px;
	line-height: 1.7;
	color: var(--ds-navy);
	text-decoration: none;
	padding: 6px 0;
}
.ds-header .ds-nav.wp-block-navigation .wp-block-navigation-item__content:hover,
.ds-header .ds-nav.wp-block-navigation .wp-block-navigation-item__content:focus-visible { color: var(--ds-orange-dark); }

/* Header actions */
.ds-header__actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.ds-header__actions .wp-block-buttons { margin: 0; }
.ds-icon-btn {
	width: 48px;
	height: 48px;
	display: none;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	border-radius: 8px;
	color: var(--ds-white);
	cursor: pointer;
	text-decoration: none;
}
.ds-icon-btn--phone { background-color: var(--ds-orange); }
.ds-icon-btn--phone .ds-icon { width: 22px; height: 22px; }
.ds-icon-btn--menu { background-color: var(--ds-navy); }
.ds-icon-btn--menu .ds-icon { width: 26px; height: 26px; }
.ds-icon-btn:hover { color: var(--ds-white); }

/* ---------- Mobile menu (full screen) ---------- */
.ds-menu {
	position: fixed;
	inset: 0;
	z-index: 1100;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 36px;
	padding: 88px 24px 40px;
	background-color: var(--ds-navy);
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s, visibility 0.25s;
}
.admin-bar .ds-menu { top: 32px; }
html.ds-menu-open, html.ds-menu-open body { overflow: hidden; }
html.ds-menu-open .ds-menu { opacity: 1; visibility: visible; }
.ds-menu__close {
	position: absolute;
	top: 14px;
	right: 16px;
	width: 52px;
	height: 52px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background-color: rgba(255, 255, 255, 0.1);
	color: var(--ds-white);
	cursor: pointer;
}
.ds-menu__close .ds-icon { width: 28px; height: 28px; }
.ds-menu .ds-nav-mobile.wp-block-navigation,
.ds-menu .ds-nav-mobile .wp-block-navigation__container {
	width: 100%;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.ds-menu .ds-nav-mobile.wp-block-navigation .wp-block-navigation-item__content {
	display: block;
	font-family: var(--ds-font-heading);
	font-weight: 600;
	font-size: 28px;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	color: var(--ds-white);
	padding: 10px 24px;
}
.ds-menu .ds-nav-mobile.wp-block-navigation .wp-block-navigation-item__content:hover,
.ds-menu .ds-nav-mobile.wp-block-navigation .wp-block-navigation-item__content:focus-visible { color: var(--ds-orange); }
.ds-menu .wp-block-buttons { width: 100%; justify-content: center; }
.ds-menu .wp-block-button { width: 100%; max-width: 360px; }
.ds-menu .wp-block-button .wp-block-button__link { width: 100%; font-size: 22px; padding: 20px 28px; }

@media (min-width: 1025px) {
	.ds-menu { display: none; }
}
@media (max-width: 1024px) {
	.ds-nav.wp-block-navigation,
	.ds-header__cta { display: none !important; }
	.ds-icon-btn { display: flex; }
}
@media (max-width: 782px) {
	.admin-bar .ds-header, .admin-bar .ds-menu { top: 46px; }
}
@media (max-width: 767px) {
	.ds-header { padding: 12px 16px; }
}

/* ---------- Sections ---------- */
.ds-section {
	box-sizing: border-box;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 96px 24px;
}
.ds-section--light { background-color: var(--ds-light); }
.ds-section--white { background-color: var(--ds-white); }
.ds-section--navy { background-color: var(--ds-navy); }
.ds-container {
	box-sizing: border-box;
	width: 100%;
	max-width: 1200px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
h2.ds-h2, .ds-h2 {
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 44px;
	letter-spacing: 0.01em;
	line-height: 1.1;
	color: var(--ds-navy);
	margin: 0;
}
h3.ds-h3, .ds-h3 {
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 24px;
	line-height: 1.2;
	color: var(--ds-navy);
	margin: 0;
}
.ds-lead { font-size: 18px; line-height: 1.7; color: var(--ds-text); margin: 0; }
.ds-body { font-size: 16px; line-height: 1.7; color: var(--ds-text); margin: 0; }
.ds-center { text-align: center; }

.ds-badge {
	width: 56px;
	height: 56px;
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	color: var(--ds-white);
	background-color: var(--ds-orange);
	box-sizing: border-box;
}
.ds-badge--navy { background-color: var(--ds-navy); }
.ds-badge .ds-icon { width: 22px; height: 22px; }
/* core/html blocks are output as-is; keep their wrappers out of the layout */
.wp-block-html { margin: 0; }

@media (max-width: 1024px) {
	.ds-section { padding: 80px 24px; }
	h2.ds-h2, .ds-h2 { font-size: 38px; }
}
@media (max-width: 767px) {
	.ds-section { padding: 64px 16px; }
	h2.ds-h2, .ds-h2 { font-size: 32px; }
	.ds-lead { font-size: 17px; }
}

/* ---------- Hero ---------- */
.wp-block-cover.ds-hero {
	box-sizing: border-box;
	width: 100%;
	min-height: 85vh;
	padding: 128px 24px 80px;
	margin: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: var(--ds-navy);
}
.wp-block-cover.ds-hero .wp-block-cover__image-background { object-position: 100% 50%; }
.wp-block-cover.ds-hero .wp-block-cover__background {
	background: linear-gradient(90deg, rgba(27, 42, 74, 0.8) 0%, rgba(27, 42, 74, 0.25) 100%);
	opacity: 1;
}
.wp-block-cover.ds-hero .wp-block-cover__inner-container {
	width: 100%;
	max-width: 1200px;
	color: var(--ds-white);
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.ds-hero__content {
	width: 55%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
}
.ds-pill {
	display: inline-block;
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 19px;
	letter-spacing: 0.06em;
	line-height: 1;
	text-transform: uppercase;
	color: var(--ds-white);
	background-color: var(--ds-orange);
	padding: 10px 18px;
	border-radius: 999px;
}
h1.ds-hero__title {
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 56px;
	letter-spacing: 0.005em;
	line-height: 1.08;
	color: var(--ds-white);
	margin: 0;
}
.ds-hero__sub {
	max-width: 600px;
	font-size: 20px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.9);
	margin: 0;
}
.ds-hero .wp-block-buttons.ds-buttons { width: 100%; }

/* Entrance animation (as on the original): hero text fades in and rises 100px, one item after another. */
@keyframes ds-fade-up {
	from { opacity: 0; transform: translateY(100px); }
	to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
	.ds-hero .ds-pill,
	.ds-hero .ds-hero__title,
	.ds-hero .ds-hero__sub,
	.ds-hero .ds-ticks { animation: ds-fade-up 0.6s ease-in both; }
	.ds-hero .ds-hero__title { animation-delay: 0.15s; }
	.ds-hero .ds-hero__sub { animation-delay: 0.3s; }
	.ds-hero .ds-ticks { animation-delay: 0.45s; }
	.editor-styles-wrapper .ds-hero * { animation: none !important; }
}

/* Tick list (hero) */
ul.ds-ticks {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}
ul.ds-ticks li {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-weight: 600;
	font-size: 16px;
	color: var(--ds-white);
}
ul.ds-ticks li::before {
	content: "";
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	background-color: var(--ds-orange);
	-webkit-mask: url("../icons/check.svg") center / contain no-repeat;
	mask: url("../icons/check.svg") center / contain no-repeat;
}

@media (max-width: 1024px) {
	.wp-block-cover.ds-hero { min-height: 75vh; padding: 120px 24px 72px; }
	h1.ds-hero__title { font-size: 46px; }
	.ds-hero__content { width: 80%; }
}
@media (max-width: 767px) {
	.wp-block-cover.ds-hero { min-height: 70vh; padding: 108px 16px 56px; }
	/* On phones the original showed the photo at its natural size (1672 x 940), not scaled
	   down, positioned 70% across. Reproduced here regardless of which image size is loaded. */
	.wp-block-cover.ds-hero .wp-block-cover__image-background {
		width: 1672px;
		height: 940px;
		max-width: none;
		left: calc((100% - 1672px) * 0.7);
		top: calc((100% - 940px) / 2);
		right: auto;
		bottom: auto;
		object-fit: cover;
		object-position: 50% 50%;
	}
	.wp-block-cover.ds-hero .wp-block-cover__background {
		background: linear-gradient(180deg, rgba(27, 42, 74, 0.86) 0%, rgba(27, 42, 74, 0.72) 100%);
	}
	h1.ds-hero__title { font-size: 36px; }
	.ds-hero__sub { font-size: 17px; }
	.ds-hero__content { width: 100%; gap: 20px; }
	.ds-hero .wp-block-buttons.ds-buttons { flex-direction: column; align-items: stretch; }
	.ds-hero .wp-block-buttons.ds-buttons .wp-block-button,
	.ds-hero .wp-block-buttons.ds-buttons .wp-block-button__link { width: 100%; }
	ul.ds-ticks { flex-direction: column; gap: 10px; }
}

/* ---------- Services ---------- */
.ds-services .ds-container { gap: 48px; }
.ds-section-head {
	max-width: 720px;
	align-self: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
}
.ds-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
}
.ds-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 16px;
	background-color: var(--ds-white);
	box-shadow: rgba(27, 42, 74, 0.08) 0 12px 40px 0;
	transition: transform 0.3s, box-shadow 0.3s;
}
.ds-card:hover, .ds-card:focus-within {
	box-shadow: rgba(27, 42, 74, 0.14) 0 18px 48px 0;
	transform: translate3d(0, -4px, 0);
}
.ds-card .wp-block-image { margin: 0; }
.ds-card .wp-block-image img {
	display: block;
	width: 100%;
	height: 260px;
	object-fit: cover;
	object-position: center center;
}
.ds-card__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	padding: 0 28px 28px;
}
.ds-card__body > .ds-body { flex: 1 1 auto; }
.ds-card .ds-badge {
	position: relative;
	width: 64px;
	height: 64px;
	margin-top: -28px;
	border: 4px solid var(--ds-white);
}
.ds-card .ds-badge .ds-icon { width: 24px; height: 24px; }
.ds-link { margin: 0; }
.ds-link a {
	font-weight: 600;
	font-size: 16px;
	color: var(--ds-navy);
	text-decoration: underline;
	text-decoration-color: var(--ds-orange);
	text-underline-offset: 4px;
}
.ds-link a:hover, .ds-link a:focus-visible { color: var(--ds-orange-dark); }

@media (max-width: 767px) {
	.ds-cards { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.ds-card .wp-block-image img { height: 220px; }
	.ds-card__body { padding: 0 20px 24px; }
}

/* ---------- About ---------- */
.ds-about .ds-container { flex-direction: row; align-items: center; gap: 64px; }
.ds-about__media { flex: 1 1 0; min-width: 0; }
.ds-about__media .wp-block-image { margin: 0; }
.ds-about__media .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: 35% center;
	border-radius: 16px;
	box-shadow: rgba(27, 42, 74, 0.15) 0 20px 50px 0;
}
.ds-about__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.ds-points { display: flex; flex-direction: column; gap: 18px; padding-top: 8px; }
.ds-point { display: flex; align-items: flex-start; gap: 16px; }
.ds-point .ds-badge { width: 48px; height: 48px; }
.ds-point .ds-badge .ds-icon { width: 20px; height: 20px; }
.ds-point__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ds-point__title {
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 20px;
	line-height: 1.3;
	color: var(--ds-navy);
	margin: 0;
}

@media (max-width: 1024px) {
	.ds-about .ds-container { flex-direction: column; gap: 40px; }
	.ds-about__media, .ds-about__text { width: 100%; flex: 0 0 auto; }
}

/* ---------- How it works ---------- */
.ds-steps-section .ds-container { gap: 48px; align-items: center; }
.ds-steps-section h2.ds-h2 { color: var(--ds-white); text-align: center; }
.ds-steps { width: 100%; display: flex; align-items: stretch; gap: 32px; }
.ds-step {
	flex: 1 1 0;
	min-width: 0;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 32px;
	border-radius: 16px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	background-color: rgba(255, 255, 255, 0.06);
}
.ds-step__number {
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 64px;
	line-height: 1;
	color: var(--ds-orange);
	margin: 0;
}
.ds-step h3.ds-h3 { color: var(--ds-white); }
.ds-step .ds-body { color: rgba(255, 255, 255, 0.88); }

@media (max-width: 767px) {
	.ds-steps { flex-direction: column; gap: 20px; }
	.ds-step { padding: 24px; }
}

/* ---------- Areas ---------- */
.ds-areas .ds-container { gap: 32px; align-items: center; text-align: center; }
ul.ds-chips {
	list-style: none;
	margin: 0;
	padding: 0;
	max-width: 1000px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}
ul.ds-chips li {
	display: inline-block;
	margin: 0;
	font-weight: 600;
	font-size: 15px;
	line-height: 1.2;
	color: var(--ds-navy);
	padding: 10px 18px;
	border-radius: 999px;
	border: 1px solid #DDE3EC;
	background-color: var(--ds-white);
}
.ds-areas__note { font-weight: 600; text-align: center; }
.ds-areas__note a { color: var(--ds-navy); }

@media (max-width: 767px) {
	ul.ds-chips { gap: 8px; }
	ul.ds-chips li { font-size: 14px; padding: 9px 14px; }
}

/* ---------- FAQ ---------- */
.ds-faq .ds-container { max-width: 860px; gap: 32px; }
.ds-faq h2.ds-h2 { text-align: center; }
.ds-faq__list { border-top: 1px solid #E3E8EF; display: flex; flex-direction: column; }
.ds-faq__list > * { margin: 0; }
.ds-faq__list details.wp-block-details {
	border-bottom: 1px solid #E3E8EF;
	interpolate-size: allow-keywords;
}
.ds-faq__list details.wp-block-details summary {
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 22px 4px;
	cursor: pointer;
	font-family: var(--ds-font-heading);
	font-weight: 600;
	font-size: 21px;
	line-height: 1.3;
	color: var(--ds-navy);
}
.ds-faq__list details.wp-block-details summary::-webkit-details-marker { display: none; }
.ds-faq__list details.wp-block-details summary::marker { content: ""; }
.ds-faq__list details.wp-block-details summary::after {
	content: "";
	width: 16px;
	height: 16px;
	flex: 0 0 20px;
	background-color: var(--ds-orange);
	-webkit-mask: url("../icons/chevron-down.svg") center / 16px 16px no-repeat;
	mask: url("../icons/chevron-down.svg") center / 16px 16px no-repeat;
	transition: transform 0.3s;
}
.ds-faq__list details.wp-block-details[open] summary::after { transform: rotate(180deg); }
.ds-faq__list details.wp-block-details summary:focus-visible { outline: 3px solid var(--ds-orange); outline-offset: 3px; }
.ds-faq__list details.wp-block-details > :not(summary) {
	margin: 0;
	padding: 0 4px 24px;
}
.ds-faq__list details.wp-block-details::details-content {
	block-size: 0;
	overflow: hidden;
	transition: block-size 0.3s, content-visibility 0.3s allow-discrete;
}
.ds-faq__list details.wp-block-details[open]::details-content { block-size: auto; }

@media (max-width: 767px) {
	.ds-faq__list details.wp-block-details summary { font-size: 19px; }
}

/* ---------- Contact ---------- */
.ds-contact .ds-container { flex-direction: row; align-items: flex-start; gap: 56px; }
.ds-contact__intro { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.ds-contact__card {
	flex: 1 1 0;
	min-width: 0;
	box-sizing: border-box;
	padding: 40px;
	border-radius: 16px;
	background-color: var(--ds-white);
	box-shadow: rgba(27, 42, 74, 0.1) 0 16px 48px 0;
}
.ds-contact-link {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: var(--ds-navy);
	text-decoration: none;
}
.ds-contact-link:hover, .ds-contact-link:focus-visible { color: var(--ds-orange-dark); }
.ds-contact-link__phone {
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 38px;
	line-height: 1.1;
}
.ds-contact-link__email { font-weight: 600; font-size: 18px; line-height: 27.2px; word-break: break-word; }

@media (max-width: 1024px) {
	.ds-contact .ds-container { flex-direction: column; gap: 36px; }
	.ds-contact__intro, .ds-contact__card { width: 100%; flex: 0 0 auto; }
}
@media (max-width: 767px) {
	.ds-contact__card { padding: 24px 18px; }
	.ds-contact-link__phone { font-size: 32px; }
	.ds-contact-link__email { font-size: 16px; }
}

/* ---------- Closing call to action ---------- */
.ds-cta .ds-container { align-items: center; text-align: center; gap: 20px; }
.ds-cta h2.ds-h2 { color: var(--ds-white); text-align: center; }
.ds-script {
	font-family: var(--ds-font-script);
	font-weight: 400;
	font-size: 32px;
	line-height: 1.3;
	color: var(--ds-orange);
	text-align: center;
	margin: 0;
}
.ds-cta .wp-block-buttons.ds-buttons { justify-content: center; padding-top: 12px; }

@media (max-width: 767px) {
	.ds-script { font-size: 26px; }
	.ds-cta .wp-block-buttons.ds-buttons { width: 100%; flex-direction: column; align-items: stretch; }
	.ds-cta .wp-block-buttons.ds-buttons .wp-block-button,
	.ds-cta .wp-block-buttons.ds-buttons .wp-block-button__link { width: 100%; }
}

/* ---------- Footer ---------- */
.ds-footer { display: flex; flex-direction: column; background-color: var(--ds-navy-dark); }
.ds-footer__strip {
	display: flex;
	justify-content: center;
	padding: 26px 24px;
	background-color: var(--ds-navy);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.ds-footer__values { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 28px; }
.ds-footer__value { display: flex; align-items: center; gap: 10px; }
.ds-footer__value .ds-icon { width: 22px; height: 22px; color: var(--ds-orange); }
.ds-footer__value-label {
	font-family: var(--ds-font-heading);
	font-weight: 600;
	font-size: 20px;
	letter-spacing: 0.04em;
	line-height: 27.2px;
	color: var(--ds-white);
	margin: 0;
}
.ds-footer__sep { font-size: 20px; line-height: 27.2px; color: rgba(255, 255, 255, 0.3); margin: 0; }
.ds-footer__main { display: flex; justify-content: center; padding: 64px 24px 48px; }
.ds-footer__cols { width: 100%; max-width: 1200px; display: flex; align-items: flex-start; gap: 48px; }
.ds-footer__col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; }
.ds-footer__col--brand { gap: 16px; }
.ds-footer__col--links { gap: 6px; }
.ds-footer__col--contact { gap: 10px; }
.ds-footer__about {
	max-width: 340px;
	font-size: 15px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.82);
	margin: 0;
}
.ds-footer__title {
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.02em;
	line-height: 27.2px;
	color: var(--ds-white);
	margin: 0 0 6px !important;
}
.ds-nav-footer.wp-block-navigation,
.ds-nav-footer .wp-block-navigation__container { flex-direction: column; align-items: flex-start; gap: 6px; }
.ds-footer .ds-nav-footer .wp-block-navigation-item__content,
.ds-footer__contact-text,
.ds-footer__contact-text a {
	font-size: 15px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.82);
	text-decoration: none;
	padding: 0;
}
.ds-footer .ds-nav-footer .wp-block-navigation-item__content:hover,
.ds-footer .ds-nav-footer .wp-block-navigation-item__content:focus-visible,
.ds-footer__contact-text a:hover,
.ds-footer__contact-text a:focus-visible { color: var(--ds-orange); }
.ds-footer__contact-row { display: flex; align-items: center; gap: 10px; }
.ds-footer__contact-text { margin: 0; }
.ds-footer__contact-row .ds-icon { width: 16px; height: 16px; color: var(--ds-orange); }
.ds-footer__bottom {
	display: flex;
	justify-content: center;
	padding: 20px 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.ds-footer__copyright { font-size: 14px; line-height: 27.2px; color: rgba(255, 255, 255, 0.72); text-align: center; margin: 0; }

@media (max-width: 767px) {
	.ds-footer__sep { display: none; }
	.ds-footer__values { gap: 14px 22px; }
	.ds-footer__main { padding: 48px 16px 36px; }
	.ds-footer__cols { flex-direction: column; gap: 36px; }
	.ds-footer__col { flex: 0 0 auto; width: 100%; }
	.ds-footer > :last-child { padding-bottom: 84px; }
}

/* ---------- Back to top ---------- */
.ds-top {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 900;
	width: 52px;
	height: 52px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	border-radius: 50%;
	color: var(--ds-white);
	background-color: var(--ds-orange);
	box-shadow: rgba(27, 42, 74, 0.25) 0 8px 24px 0;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity 0.3s, visibility 0.3s, transform 0.3s, background-color 0.2s;
}
.ds-top .ds-icon { width: 20px; height: 20px; }
.ds-top:hover, .ds-top:focus-visible { background-color: var(--ds-orange-dark); }
.ds-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
html.ds-menu-open .ds-top { opacity: 0; visibility: hidden; }
@media (max-width: 767px) {
	.ds-top { width: 48px; height: 48px; right: 16px; bottom: 20px; }
}

/* ---------- Ordinary pages (e.g. Privacy Policy) ---------- */
.ds-page {
	box-sizing: border-box;
	max-width: 860px;
	margin: 0 auto;
	padding: 120px 16px 64px;
}
.ds-page .wp-block-post-title {
	font-family: var(--ds-font-heading);
	font-weight: 700;
	font-size: 44px;
	line-height: 1.2;
	color: var(--ds-navy);
	margin: 8px auto 16px;
	width: 100%;
}
@media (min-width: 576px) { .ds-page .wp-block-post-title { max-width: 500px; } }
@media (min-width: 768px) { .ds-page .wp-block-post-title { max-width: 600px; } }
@media (min-width: 992px) { .ds-page .wp-block-post-title { max-width: 800px; } }
@media (min-width: 1200px) { .ds-page .wp-block-post-title { max-width: 1140px; } }
.ds-page .wp-block-post-content > * { margin-block: 0; }
.ds-page .wp-block-post-content p { margin: 0 0 0.9em; }
.ds-page .wp-block-post-content h2 {
	font-size: 26px;
	line-height: 1.2;
	letter-spacing: normal;
	margin: 32px 0 16px;
}
.ds-page .wp-block-post-content ul,
.ds-page .wp-block-post-content ol { margin: 0; padding-left: 40px; }
.ds-page .wp-block-post-content a { color: var(--ds-navy); text-decoration: underline; }
.ds-page .wp-block-post-content a:hover { color: var(--ds-orange-dark); }
