/*
 Theme Name:        Dorien Yassa
 Theme URI:         https://pixelwrk.nl
 Description:       Hello Elementor child theme for dorienyassa.nl: academy (LearnDash), shop (WooCommerce) and reviews. See README.md.
 Author:            Vincent van den Brink
 Author URI:        https://pixelwrk.nl
 Template:          hello-elementor
 Version:           1.4.9
 Requires PHP:      8.0
 Requires at least: 6.5
 Text Domain:       hello-child
*/

/*** COLOR MAPPING ***/

/* Aliases are declared on `body` rather than `:root`: the Elementor Kit
   variables live on `.elementor-kit-N`, which sits on the body element and
   is therefore out of scope at the html level. */
body {
	/* Ground */
	--ground-90: var(--e-global-color-90ce1c6);
	--ground: var(--e-global-color-primary);
	--ground-70: var(--e-global-color-7224111);
	--ground-60: var(--e-global-color-f9fb40b);
	--ground-50: var(--e-global-color-84a0f41);
	--ground-40: var(--e-global-color-c0249b8);
	--ground-30: var(--e-global-color-58e37fc);
	--ground-20: var(--e-global-color-0c9fef7);
	--ground-10: var(--e-global-color-2cb3f4d);

	/* Mustard */
	--mustard-dark: var(--e-global-color-693527b);
	--mustard: var(--e-global-color-accent);
	--mustard-light: var(--e-global-color-c8cced6);

	/* Sky */
	--sky-dark: var(--e-global-color-c813fc0);
	--sky: var(--e-global-color-secondary);
	--sky-light: var(--e-global-color-376f8fd);

	/* Home */
	--home: var(--e-global-color-c025523);
	--home-dark: var(--e-global-color-225e773);

	/* Blanc */
	--blanc: var(--e-global-color-b8ffc8c);

	/* Text */
	--text: var(--e-global-color-text);

	/* White */
	--white: var(--e-global-color-9a62b22);

	/* Validation */
	--success: var(--e-global-color-0ff4a23);
	--error: var(--e-global-color-fd5c7b7);

	/* Layout */
	--header-height: 80px;

	/* Google review star */
	--review-star: #fdd663;
}



/*** GENERAL ***/

html {
	font-size: 1rem;
	scroll-behavior: smooth;
}

*, *::before, *::after {
	box-sizing: border-box;
}

/* Form controls fall back to a system font in most browsers */
input, textarea, select, button {
	font-family: inherit;
}

/** Headings **/
h1, h2, h3, h4, h5, h6 {
	word-wrap: break-word;
	overflow-wrap: break-word;
	white-space: normal;
}

h1, .h1 > .elementor-heading-title { font-size: clamp(2.66rem, 4vw + 1rem, 3.33rem); }
h2, .h2 > .elementor-heading-title { font-size: clamp(2.4rem, 3.5vw + 1rem, 2.8rem); }
h3, .h3 > .elementor-heading-title { font-size: clamp(2rem, 3vw + 1rem, 2.5rem); }
h4, .h4 > .elementor-heading-title { font-size: clamp(1.7rem, 2.5vw + 1rem, 2.25rem); }
h5, .h5 > .elementor-heading-title { font-size: clamp(1.5rem, 2vw + 1rem, 2rem); }
h6, .h6 > .elementor-heading-title { font-size: clamp(1.4rem, 1.5vw + 1rem, 1.75rem); }

h1, h2, h3, h4, .elementor-heading-title {
	hyphens: auto;
	hyphenate-limit-chars: 12 5 5;
	-webkit-hyphenate-limit-before: 5;
	-webkit-hyphenate-limit-after: 5;
	text-wrap: balance;
}


/** Form controls **/
input,
textarea,
select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	box-shadow: none !important;
	-webkit-box-shadow: none !important;
	border: 1px solid var(--ground-40);
	border-radius: 4px;
	background-color: var(--white);
	outline: 2px solid transparent;
	outline-offset: 0;
	line-height: 26px !important;
}

input:focus,
textarea:focus,
select:focus {
	box-shadow: none !important;
	border-color: var(--ground-50);
	outline: var(--ground-50) 1px solid !important;
	outline-offset: 0 !important;
}

/* Overrides the inset shadow Chrome and Safari apply on autofill */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
	-webkit-box-shadow: 0 0 0 1000px var(--white) inset !important;
	-webkit-text-fill-color: var(--text) !important;
	transition: background-color 5000s ease-in-out 0s;
}


/** Elementor button **/
.elementor-button {
	cursor: pointer;
}

.elementor-button .elementor-button-content-wrapper {
	align-items: center;
}

.elementor-button .elementor-button-text {
	font-size: var(--e-global-typography-accent-font-size);
	font-weight: var(--e-global-typography-accent-font-weight);
	line-height: var(--e-global-typography-accent-line-height);
}

.elementor-button .elementor-button-icon svg {
	width: 24px;
	height: 24px;
}

.elementor-button .elementor-button-icon svg * {
	fill: none;
	stroke: currentColor;
}

/* Last element inside a content block keeps no trailing space */
.elementor-widget-text-editor :last-child,
.elementor-widget-theme-post-content :last-child {
	margin-bottom: 0;
}

/** Text links **/
.elementor-kit-6 a:hover {
	font-weight: inherit;
}

.elementor p a {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.elementor p a:hover {
	text-decoration: none;
}



/*** HEADER ***/

/** Menu **/
#menu .elementor-nav-menu li a,
#menu .elementor-nav-menu li a:hover {
	border-left: none;
	cursor: pointer;
}

#menu .elementor-nav-menu .elementor-item.has-submenu {
	position: relative;
	padding-right: 28px;
	transition: none;
}

/* A mask only reads the alpha channel, so the stroke colour inside the data
   URI is irrelevant; the visible colour comes from background-color. */
#menu .elementor-nav-menu .elementor-item.has-submenu::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	opacity: 1;
	transform: translateY(-50%);
	width: 21px;
	height: 21px;
	background-color: currentColor;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9L12 15L18 9'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9L12 15L18 9'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	transition: none;
}

#menu .elementor-nav-menu .elementor-item.has-submenu[aria-expanded="true"]::after {
	transform: translateY(-50%) rotate(180deg);
	transition: none;
}

#desktop-menu-buttons {
	--width: fit-content;
	flex: 0 0 auto;
}


/** Mobile menu **/
.logo a {
	outline: none;
}

#menu.mobile-menu .sub-menu {
	border-width: 1px 0 0 0;
}

#menu.mobile-menu .sub-menu li a {
	padding-left: 16px;
}

#menu.mobile-menu li a,
#menu.mobile-menu li a:hover,
#menu.mobile-menu li a:active {
	line-height: var(--e-global-typography-text-line-height);
}


/** Account menu **/
.dy-account-menu {
	position: relative;
	display: inline-flex;
}

.dy-account-menu__icon,
.dy-account-menu__chevron,
.dy-account-menu__item-icon {
	width: 21px;
	height: 21px;
	flex-shrink: 0;
}

.dy-account-menu--open .dy-account-menu__chevron {
	transform: rotate(180deg);
}

a.dy-account-menu__login,
button.dy-account-menu__toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 24px;
	background: transparent;
	border: 2px solid var(--ground);
	border-radius: 4px;
	color: var(--ground);
	font-weight: var(--e-global-typography-accent-font-weight);
	height: 48px;
}

a.dy-account-menu__login:hover,
a.dy-account-menu__login:focus {
	background-color: var(--ground);
	font-weight: var(--e-global-typography-accent-font-weight);
	color: var(--white);
}

button.dy-account-menu__toggle:hover,
button.dy-account-menu__toggle:focus {
	background-color: var(--ground-10);
	border: 2px solid var(--ground);
	color: var(--ground);
}

/* Dropdown */
.dy-account-menu__dropdown {
	position: absolute;
	top: calc(100% + 16px);
	right: 0;
	z-index: 100;
	min-width: 220px;
	margin: 0;
	padding: 0;
	list-style: none;
	background-color: var(--ground);
	border-radius: 4px;
}

.dy-account-menu__dropdown a.dy-account-menu__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	border-top: 1px solid var(--ground-70);
	color: var(--white);
	font-size: 1rem;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.3s ease;
}

.dy-account-menu__dropdown li:first-child a.dy-account-menu__item {
	border-top: none;
	border-radius: 4px 4px 0 0;
}

.dy-account-menu__dropdown li:last-child a.dy-account-menu__item {
	border-radius: 0 0 4px 4px;
}

.dy-account-menu__dropdown a.dy-account-menu__item:hover,
.dy-account-menu__dropdown a.dy-account-menu__item:focus-visible {
	background-color: var(--ground-70);
	color: var(--white);
}

/* Mobile variant */
.dy-account-menu--mobile {
	display: block;
	width: 100%;
}

.dy-account-menu--mobile .dy-account-menu__login {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 12px 24px;
	background-color: var(--ground-70);
	border: none;
	border-radius: 4px;
	color: var(--white);
	font-size: 1rem;
	font-weight: var(--e-global-typography-accent-font-weight);
	line-height: var(--e-global-typography-text-line-height);
	text-decoration: none;
	transition: background-color 0.3s ease;
}

.dy-account-menu--mobile .dy-account-menu__login:hover,
.dy-account-menu--mobile .dy-account-menu__login:focus-visible {
	background-color: var(--ground-60);
	color: var(--white);
	font-weight: var(--e-global-typography-accent-font-weight);
}

/* Name header, not clickable */
.dy-account-menu--mobile .dy-account-menu__header {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px 0;
	color: var(--white);
	font-size: 1rem;
	font-weight: var(--e-global-typography-accent-font-weight);
	line-height: var(--e-global-typography-accent-line-height);
}

.dy-account-menu--mobile .dy-account-menu__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dy-account-menu--mobile .dy-account-menu__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	background-color: var(--ground-70);
	border-top: 1px solid var(--ground-60);
	color: var(--white);
	font-size: 1rem;
	font-weight: var(--e-global-typography-accent-font-weight);
	text-decoration: none;
	transition: background-color 0.3s ease;
}

.dy-account-menu--mobile .dy-account-menu__item:hover,
.dy-account-menu--mobile .dy-account-menu__item:focus-visible {
	background-color: var(--ground-60);
	color: var(--white);
	font-weight: var(--e-global-typography-accent-font-weight);
}

.dy-account-menu--mobile .dy-account-menu__list li:first-child .dy-account-menu__item {
	border-top: none;
	border-radius: 4px 4px 0 0;
}

.dy-account-menu--mobile .dy-account-menu__list li:last-child .dy-account-menu__item {
	border-radius: 0 0 4px 4px;
}

/** Hide on scroll **/
.elementor-location-header .elementor-sticky {
	transition: transform 0.3s ease;
}

body.dy-header-hidden .elementor-location-header .elementor-sticky--active {
	transform: translateY(calc(-100% - 1px));
}

body.dy-header-hidden .elementor-location-header:has([aria-expanded="true"], .elementor-menu-cart--shown) .elementor-sticky--active {
	transform: none;
	transition: none;
}

@media (prefers-reduced-motion: reduce) {
	.elementor-location-header .elementor-sticky {
		transition: none;
	}
}



/*** CART ***/
#elementor-menu-cart__toggle_button {
	padding: 8px;
	background: none;
}

.elementor-menu-cart__container {
	background-color: rgb(0 0 0 / 0.25);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}

.elementor-menu-cart__container .elementor-menu-cart__main {
	box-shadow: none;
}

.elementor-menu-cart__main .widget_shopping_cart_content::before {
	content: "Winkelwagen";
	display: block;
	margin-bottom: 24px;
	font-family: var(--e-global-typography-primary-font-family);
	font-size: clamp(1.75rem, 2.5vw + 1rem, 2.33rem);
	line-height: var(--e-global-typography-accent-line-height);
	color: var(--ground);
}

.elementor-menu-cart__main .elementor-menu-cart__product-image img {
	border-radius: 4px;
}

.elementor-menu-cart__main .product-name .variation {
	font-size: 0.875rem !important;
	display: flex;
	flex-direction: column;
}

.elementor-menu-cart__main .product-name .variation dt {
	margin-top: 4px;
	font-weight: var(--e-global-typography-accent-font-weight);
}

.elementor-menu-cart__main .product-name .variation dt:first-of-type {
	margin: 0;
}

.elementor-menu-cart__main .product-name .variation dd {
	margin: 0;
}

.elementor-menu-cart__main .product-price .product-quantity {
	display: none;
}

.elementor-menu-cart__main .product-price del {
	opacity: 0.5;
}

.elementor-menu-cart__main .elementor-menu-cart__product-remove.product-remove {
	border: none;
}

/* Elementor draws the remove icon with two rotated pseudo elements */
.elementor-menu-cart__main .elementor-menu-cart__product-remove.product-remove::before,
.elementor-menu-cart__main .elementor-menu-cart__product-remove.product-remove::after {
	background: var(--error);
	left: 20%;
	width: 60%;
	height: 2px;
}

.elementor-menu-cart__footer-buttons .elementor-button--checkout {
	background-color: var(--ground-60);
}

.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover,
.elementor-menu-cart__footer-buttons .elementor-button--checkout:focus {
	background-color: var(--ground);
}

.elementor-menu-cart__footer-buttons .elementor-button--checkout .elementor-button-text {
	font-size: 1.1rem;
}



/*** WOOCOMMERCE ***/

/** Messages **/
.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
	padding: 12px 16px !important;
	font-size: 1rem !important;
}

/* WooCommerce injects an icon font through the pseudo element */
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before {
	content: none;
}

.woocommerce-message:focus-visible {
	outline: none;
}

.woocommerce form .form-row .required {
	color: var(--error);
}



/*** REVIEWS ***/
.dy-reviews--compact {
	display: grid;
	grid-template-columns: repeat(var(--dy-reviews-columns, 1), 1fr);
	gap: 40px;
	margin-top: 40px;
}

/** Scroll layout **/
.dy-reviews-scroller {
	--dy-scroller-columns: 3;
	--dy-scroller-gap: 40px;
	--dy-scroller-inset: max(0px, (100% - var(--container-max-width, 1280px)) / 2);
}

.dy-reviews--compact.dy-reviews--scroll {
	display: flex;
	padding-inline: var(--dy-scroller-inset);
	scroll-padding-inline: var(--dy-scroller-inset);
	align-items: flex-start;
	gap: var(--dy-scroller-gap);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-top: 4px;
}

.dy-reviews--scroll::-webkit-scrollbar {
	display: none;
}

.dy-reviews--scroll .dy-review {
	flex: 0 0 calc((100% - (var(--dy-scroller-columns) - 1) * var(--dy-scroller-gap)) / var(--dy-scroller-columns));
	scroll-snap-align: start;
}

.dy-reviews--draggable {
	cursor: grab;
}

.dy-reviews--compact.dy-reviews--dragging {
	cursor: grabbing;
	scroll-snap-type: none;
	scroll-behavior: auto;
	user-select: none;
}

.dy-reviews--scroll:focus-visible {
	outline: 2px solid var(--ground);
	outline-offset: -2px;
}

@media (prefers-reduced-motion: no-preference) {
	.dy-reviews--scroll {
		scroll-behavior: smooth;
	}
}

.dy-reviews-scroller__nav {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 24px;
	padding-inline: var(--dy-scroller-inset);
}

.dy-reviews-scroller__nav[hidden] {
	display: none;
}

.dy-reviews-scroller .dy-reviews-scroller__arrow,
.dy-reviews-scroller .dy-reviews-scroller__arrow:hover,
.dy-reviews-scroller .dy-reviews-scroller__arrow:focus {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: var(--home);
	color: var(--text);
	cursor: pointer;
}

.dy-reviews-scroller .dy-reviews-scroller__arrow:hover {
	background-color: var(--home-dark);
}

.dy-reviews-scroller .dy-reviews-scroller__arrow:focus-visible {
	outline: 2px solid var(--ground);
	outline-offset: 2px;
}

.dy-reviews-scroller .dy-reviews-scroller__arrow[aria-disabled="true"],
.dy-reviews-scroller .dy-reviews-scroller__arrow[aria-disabled="true"]:hover,
.dy-reviews-scroller .dy-reviews-scroller__arrow[aria-disabled="true"]:focus {
	background-color: transparent;
	cursor: default;
}

.dy-reviews-scroller__icon {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
}

.dy-reviews-scroller__arrow[aria-disabled="true"] .dy-reviews-scroller__icon {
	opacity: 0.5;
}

/** Stars **/
.dy-review__stars {
	position: relative;
	display: block;
	width: 68px;
	height: 12px;
	margin-bottom: 18px;
	background-color: color-mix(in srgb, var(--review-star) 40%, transparent);
	clip-path: polygon(6px 0, 4.31px 3.98px, 0 4.34px, 3.28px 7.18px, 2.29px 11.4px, 6px 9.16px, 9.71px 11.4px, 8.72px 7.18px, 12px 4.34px, 7.69px 3.98px, 6px 0, 20px 0, 18.31px 3.98px, 14px 4.34px, 17.28px 7.18px, 16.29px 11.4px, 20px 9.16px, 23.71px 11.4px, 22.72px 7.18px, 26px 4.34px, 21.69px 3.98px, 20px 0, 34px 0, 32.31px 3.98px, 28px 4.34px, 31.28px 7.18px, 30.29px 11.4px, 34px 9.16px, 37.71px 11.4px, 36.72px 7.18px, 40px 4.34px, 35.69px 3.98px, 34px 0, 48px 0, 46.31px 3.98px, 42px 4.34px, 45.28px 7.18px, 44.29px 11.4px, 48px 9.16px, 51.71px 11.4px, 50.72px 7.18px, 54px 4.34px, 49.69px 3.98px, 48px 0, 62px 0, 60.31px 3.98px, 56px 4.34px, 59.28px 7.18px, 58.29px 11.4px, 62px 9.16px, 65.71px 11.4px, 64.72px 7.18px, 68px 4.34px, 63.69px 3.98px, 62px 0);
	transform: scale(1.5);
	transform-origin: left center;
}

.dy-review__stars-fill {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	background-color: var(--review-star);
}

/** Review **/
.dy-review__text {
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0 !important;
	color: var(--text);
	font-family: var(--e-global-typography-text-font-family);
	font-size: 1rem;
	font-weight: var(--e-global-typography-text-font-weight);
	font-style: italic;
	line-height: var(--e-global-typography-text-line-height);
	white-space: pre-line;
}

.dy-review--full .dy-review__text,
.dy-review--expanded .dy-review__text {
	-webkit-line-clamp: unset;
	overflow: visible;
}

a.dy-review__toggle {
	font-size: 1rem;
	color: var(--ground-60);
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

a.dy-review__toggle:hover {
	color: var(--ground);
	text-decoration: none;
}

.dy-review__author {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 16px;
}

.dy-review__photo,
img.dy-review__photo {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 50%;
	overflow: hidden;
	object-fit: cover;
}

.dy-review__photo--fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--ground-10);
	color: var(--ground);
	font-weight: var(--e-global-typography-accent-font-weight);
}

.dy-review__name {
	color: var(--ground);
	font-family: var(--e-global-typography-text-font-family);
	font-size: 1rem;
	font-weight: var(--e-global-typography-accent-font-weight);
	font-style: normal;
}

/** Aggregated review widget **/
.dy-reviews__aggregate {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--text);
	font-family: var(--e-global-typography-text-font-family);
	font-size: 1rem;
	text-decoration: none;
}

.dy-reviews__count {
	color: var(--text);
}

a.dy-reviews__aggregate .dy-reviews__count {
	color: var(--ground-50);
}

a.dy-reviews__aggregate:hover .dy-reviews__count {
	color: var(--ground);
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.dy-reviews__logo {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.dy-reviews__score {
	font-weight: var(--e-global-typography-accent-font-weight);
}

.dy-reviews--aggregate .dy-review__stars {
	margin-bottom: 0;
	margin-right: 34px;
	flex-shrink: 0;
}

.dy-center {
	text-align: center;
}



/*** REVEAL ***/
@keyframes dy-reveal {
	from {
		opacity: 0;
		transform: translateY(64px);
	}
}

@keyframes dy-reveal-media {
	from {
		opacity: 0;
		transform: scale(0.86);
	}
}

.dy-section-reveal > .e-con-inner > :nth-child(2),
.dy-section-reveal:not(.e-con-boxed) > :nth-child(2) {
	--dy-reveal-index: 1;
}

.dy-section-reveal > .e-con-inner > :nth-child(3),
.dy-section-reveal:not(.e-con-boxed) > :nth-child(3) {
	--dy-reveal-index: 2;
}

.dy-section-reveal > .e-con-inner > :nth-child(4),
.dy-section-reveal:not(.e-con-boxed) > :nth-child(4) {
	--dy-reveal-index: 3;
}

.dy-section-reveal > .e-con-inner > :nth-child(n+5),
.dy-section-reveal:not(.e-con-boxed) > :nth-child(n+5) {
	--dy-reveal-index: 4;
}

.dy-reveal--pending {
	opacity: 0;
}

.dy-reveal--visible {
	animation: dy-reveal 1s cubic-bezier(0.22, 1, 0.36, 1) backwards;
	animation-delay: calc(var(--dy-reveal-index, 0) * 0.15s);
}

.dy-reveal--media.dy-reveal--visible {
	animation-name: dy-reveal-media;
	animation-duration: 1.2s;
	animation-delay: calc(var(--dy-reveal-index, 0) * 0.15s + 0.2s);
}

.dy-reveal--fast.dy-reveal--visible {
	animation-duration: 0.4s;
	animation-delay: 0s;
}

@media print {
	.dy-reveal--pending {
		opacity: 1;
	}
}



/*** HOMEPAGE ***/
#home-hero .secondary a span {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

#home-hero .secondary a:hover span {
	text-decoration: none;
}

#home-hero .video .dy-video {
	width: 90%;
	max-width: 320px;
}

/* USP's */
#home-hero #usp .dy-reviews a,
#home-hero #usp .dy-reviews a span {
	color: var(--white);
	font-size: 0.875rem;
	font-weight: var(--e-global-typography-accent-font-weight);
}

#home-hero #usp .usp::before {
	left: 0;
	content: '•';
	position: absolute;
}

#home-hero #usp .usp {
	padding-left: 12px;
}

/* Media */
#home-hero #media img {
	max-width: 125px;
	max-height: 70px;
}

/* Client stories: every tile is forced to 9:16, whatever the thumbnail
   ratio Vimeo returns. The media layer fills the tile and crops. */
.client-stories .dy-video {
	display: block;
	width: 100%;
	aspect-ratio: 9 / 16;
	overflow: hidden;
	box-shadow: 0 1px 3px 0 #ded8c2;
}

.client-stories .dy-video__media,
.client-stories .dy-video__image {
	display: block;
	width: 100%;
	height: 100%;
}

.client-stories .dy-video__image {
	object-fit: cover;
}

/* Swiper clips its overflow; this leaves room for the shadow */
.client-stories .e-n-carousel {
	padding-block: 4px;
}

/* Read more reviews */
.read-more-reviews .elementor-button .elementor-button-text {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.read-more-reviews .elementor-button:hover .elementor-button-text,
.read-more-reviews .elementor-button:focus-visible .elementor-button-text {
	text-decoration: none;
}



/*** PAGES ***/

/** Hero **/
#hero {
	--dy-hero-overlap: 192px;

	position: relative;
	z-index: 2;
	overflow: visible;
}

/* Rating */
#hero .dy-reviews * {
	color: var(--white);
}

/* Video */
#hero .video {
	align-self: flex-end;
	margin-bottom: calc(var(--dy-hero-overlap) * -1);
}

#hero .video .video-container {
	display: flex;
	justify-content: center;
}

#hero .video .dy-video {
	width: 90%;
	max-width: 380px;
}

/* Styled list */
.dy-list ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dy-list li {
	position: relative;
	padding: 0.375rem 0 0.375rem 2rem;
}

.dy-list li::before {
	content: "";
	position: absolute;
	top: calc(0.375rem + 0.5lh);
	left: 0;
	width: 1rem;
	height: 1px;
	background: var(--ground-50);
}

.dy-list.white li::before {
	background: var(--white);
}

/* Pillars */
.dy-pillars {
	grid-template-rows: auto;
	grid-auto-rows: auto;
}

.dy-pillars > .e-con {
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 2;
	row-gap: 16px;
}

/* FAQ */
.dy-faq .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-text {
	font-weight: var(--e-global-typography-accent-font-weight);
}

.dy-faq .e-n-accordion-item:first-child > .e-n-accordion-item-title {
	border-radius: 4px 4px 0 0;
}

.dy-faq .e-n-accordion-item:last-child:not([open]) > .e-n-accordion-item-title,
.dy-faq .e-n-accordion-item:last-child[open] > .e-con {
	border-radius: 0 0 4px 4px;
	border: 1px solid var(--home) !important;
}

.dy-faq .e-n-accordion-item-title-icon {
	flex-shrink: 0;
}

.dy-faq .e-n-accordion-item-title-icon svg {
	color: var(--ground);
}


/* Product tile */

/* The tile reveals as a whole: media inside it skip their own
   scale-in. Placed after the REVEAL block so it wins on source order. */
.dy-product-tile .dy-reveal--pending,
.dy-product-tile .dy-reveal--visible {
	opacity: 1;
	animation: none;
}

/* The radius sits on the clipping wrapper, so the zoomed image keeps its
   rounded top corners. isolation creates a stacking context, which Safari
   needs to respect the radius while a child is transformed. */
.dy-product-tile .product-image,
.dy-product-tile .elementor-widget-image {
	overflow: hidden;
	border-radius: 4px 4px 0 0;
	isolation: isolate;
}

.dy-product-tile .elementor-widget-image img {
	display: block;
	transition: transform 0.3s ease;
}

.dy-product-tile:hover .elementor-widget-image img,
.dy-product-tile:focus-visible .elementor-widget-image img {
	transform: scale(1.08);
}

@media (prefers-reduced-motion: reduce) {
	.dy-product-tile .elementor-widget-image img {
		transition: none;
	}

	.dy-product-tile:hover .elementor-widget-image img,
	.dy-product-tile:focus-visible .elementor-widget-image img {
		transform: none;
	}
}

/* Image fit to screen */
.dy-fit-screen img {
	width: auto;
	max-width: 100%;
	max-height: 75vh;
	max-height: 75svh;
}

.white-text a,
.white-text a:hover {
	color: var(--white);
}



/*** CONTACT ***/
#contact a.contact-details .elementor-icon-wrapper {
	display: flex;
}

#contact a:hover.contact-details .elementor-icon {
	background: var(--ground-50);
}

#contact .contact-other p {
	margin-bottom: 12px;
}

#contact .contact-other a:hover {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

#contact .elementor-message-svg:before {
	display: none;
}



/*** SITEMAP ***/
#sitemap ul li a:hover {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}



/*** FOOTER ***/

/* Reviews */
#footer a.dy-reviews__aggregate .dy-reviews__score,
#footer a.dy-reviews__aggregate .dy-reviews__count {
	color: var(--ground-10);
}

#footer a:hover.dy-reviews__aggregate .dy-reviews__score,
#footer a:hover.dy-reviews__aggregate .dy-reviews__count {
	color: var(--white);
}

#footer a.cc-settings-link {
	color: var(--ground-10);
}

#footer .footer-contact-details a:hover,
#footer .elementor-widget-nav-menu a:hover,
#footer a.cc-settings-link:hover {
	color: var(--white);
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

#footer .elementor-social-icons-wrapper {
	display: flex;
	gap: 16px;
}

/* Bottom footer menu */
#bottom-footer .elementor-nav-menu a {
	margin: 0 0 0 24px;
}




@media (max-width: 1023px) {

	/*** REVIEWS ***/
	.dy-reviews-scroller {
		--dy-scroller-columns: 2;
	}
}



@media (max-width: 767px) {

	/*** REVIEWS ***/
	.dy-reviews--compact {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.dy-reviews-scroller {
		--dy-scroller-columns: 1;
	}



	/*** WOOCOMMERCE ***/

	.woocommerce-info a.woocommerce-Button {
		margin-top: 16px;
	}



	/*** HOMEPAGE ***/

	/* Reviews badge on its own line, USP's wrap below it */
	#home-hero #usp {
		flex-wrap: wrap;
	}

	#home-hero #usp > .elementor-widget-shortcode {
		flex: 0 0 100%;
		max-width: 100%;
	}

	/* The first USP now starts a line, so it drops its bullet */
	#home-hero #usp > .elementor-widget-shortcode + .usp {
		padding-left: 0;
	}

	#home-hero #usp > .elementor-widget-shortcode + .usp::before {
		content: none;
	}
	
	/* Media */
	#home-hero #media img {
		max-width: 115px;
		max-height: 60px;
	}



	/*** PAGES ***/

	#hero .video {
		align-self: auto;
		margin-bottom: 0;
	}
	
	
	
	/*** REVEAL ***/
	.dy-section-reveal > .e-con-inner > *,
	.dy-section-reveal:not(.e-con-boxed) > * {
		--dy-reveal-index: 0;
	}

	.dy-reveal--media.dy-reveal--visible {
		animation-delay: 0s;
	}
	
	
	
	/*** FOOTER ***/
	#bottom-footer .elementor-nav-menu {
		justify-content: center;
		flex-basis: 100%;
		flex-direction: column;
		gap: 4px;
	}

	#bottom-footer .elementor-nav-menu a {
		margin: 0;
		justify-content: center;
	}

}