/* ==========================================================================
   DP99 Digital Kit
   Tokens: --dp99-brand / --dp99-ink come from the settings page.
   ========================================================================== */
:root {
	--dp99-brand: #F1641E;
	--dp99-ink: #1F1A17;
	--dp99-brand-strong: color-mix(in srgb, var(--dp99-brand) 74%, #000);
	--dp99-brand-soft: color-mix(in srgb, var(--dp99-brand) 9%, #fff);
	--dp99-muted: #5E544C;
	--dp99-line: #ECE4DD;
	--dp99-bg: #FFFFFF;
	--dp99-paper: #FBF8F5;
	--dp99-ok: #1B6E45;
	--dp99-display: "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
	--dp99-r-lg: 16px;
	--dp99-r-md: 10px;
	--dp99-r-sm: 6px;
	--dp99-wrap: 1240px;
	--dp99-ease: cubic-bezier(.2, .7, .2, 1);
}

.dp99-root, .dp99-root * { box-sizing: border-box; }
.dp99-wrap { width: 100%; max-width: var(--dp99-wrap); margin-inline: auto; padding-inline: 20px; }
html.dp99-lock { overflow: hidden; }

.dp99-root :focus-visible,
.dp99-card :focus-visible,
.dp99-commerce :focus-visible {
	outline: 2px solid var(--dp99-ink);
	outline-offset: 2px;
}

.dp99-i { flex: none; }

.dp99-iconbtn {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; min-height: 44px; margin: 0; padding: 0 8px;
	background: transparent; border: 0; border-radius: var(--dp99-r-md);
	color: inherit; cursor: pointer; line-height: 1; text-transform: none;
	box-shadow: none;
}
.dp99-iconbtn:hover { background: rgba(0, 0, 0, .05); }

/* The folder tab: format label that sits on top of every product image */
.dp99-tab {
	position: absolute; z-index: 2; left: 0; top: -26px;
	height: 26px; padding: 0 12px 0 10px;
	display: inline-flex; align-items: center;
	background: var(--dp99-ink); color: #fff;
	font: 600 12px/1 var(--dp99-display); letter-spacing: .02em;
	border-radius: 9px 9px 0 0;
}
.dp99-tab::after {
	/* the little slope that makes it read as a folder */
	content: ""; position: absolute; right: -10px; bottom: 0;
	width: 10px; height: 14px; background: var(--dp99-ink);
	clip-path: polygon(0 0, 0 100%, 100% 100%);
}

/* The logo's three pixels, used to mark "ready to download" */
.dp99-pixels { display: inline-grid; grid-template-columns: 6px 6px; grid-template-rows: 6px 6px; gap: 2px; margin-right: 8px; vertical-align: middle; }
.dp99-pixels i { display: block; border-radius: 1.5px; background: var(--dp99-brand); }
.dp99-pixels i:nth-child(2) { opacity: .6; }
.dp99-pixels i:nth-child(3) { grid-column: 2; opacity: .3; }

.dp99-ready { display: flex; align-items: center; margin: 0 0 10px; font: 600 14px/1.2 var(--dp99-display); color: var(--dp99-muted); }

.dp99-sale {
	position: absolute; z-index: 2; right: 12px; top: 12px;
	padding: 5px 9px; border-radius: var(--dp99-r-sm);
	background: var(--dp99-brand-strong); color: #fff;
	font: 700 13px/1 var(--dp99-display);
}

.dp99-note { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 14px; padding: 10px 12px; border-radius: var(--dp99-r-md); background: var(--dp99-brand-soft); color: var(--dp99-ink); font-size: 14px; line-height: 1.45; }
.dp99-note .dp99-i { margin-top: 1px; color: var(--dp99-brand-strong); }

.dp99-trust { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 10px; }
.dp99-trust li { display: flex; gap: 10px; align-items: center; margin: 0; font-size: 14px; color: var(--dp99-ink); }
.dp99-trust .dp99-i { color: var(--dp99-brand-strong); }
.dp99-trust--small { margin-top: 14px; gap: 6px; }
.dp99-trust--small li { font-size: 13px; color: var(--dp99-muted); }

/* ==========================================================================
   Header
   ========================================================================== */
.dp99-has-header #header { display: none !important; }

.dp99-announce { background: var(--dp99-ink); color: #fff; font-size: 14px; }
.dp99-announce p { margin: 0; padding: 8px 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; text-align: center; }
.dp99-copy {
	display: inline-flex; align-items: center; gap: 6px; margin: 0; min-height: 30px; padding: 0 10px;
	border: 1.5px dashed rgba(255, 255, 255, .7); border-radius: var(--dp99-r-sm);
	background: transparent; color: #fff; cursor: pointer;
	font: 700 13px/1 var(--dp99-display); letter-spacing: .04em; text-transform: none;
}
.dp99-copy:hover { background: rgba(255, 255, 255, .12); }

.dp99-header { position: relative; z-index: 60; background: var(--dp99-bg); color: var(--dp99-ink); border-bottom: 1px solid var(--dp99-line); }
.dp99-header.is-sticky { position: sticky; top: 0; }
.admin-bar .dp99-header.is-sticky { top: 32px; }
@media (max-width: 782px) { .admin-bar .dp99-header.is-sticky { top: 0; } }

.dp99-header__bar { display: flex; align-items: center; gap: 24px; min-height: 76px; }
.dp99-logo { display: inline-flex; align-items: center; color: inherit; text-decoration: none; flex: none; }
.dp99-logo__img { display: block; height: 44px; width: auto; max-width: 240px; }
.dp99-logo__text { font: 700 22px/1 var(--dp99-display); letter-spacing: -.02em; }

.dp99-header__search { flex: 1; max-width: 560px; }
.dp99-search { position: relative; display: flex; margin: 0; }
.dp99-search input[type="search"] {
	width: 100%; height: 46px; margin: 0; padding: 0 52px 0 16px;
	border: 1.5px solid var(--dp99-line); border-radius: var(--dp99-r-md);
	background: var(--dp99-paper); color: var(--dp99-ink); font-size: 15px; box-shadow: none;
}
.dp99-search input[type="search"]:focus { border-color: var(--dp99-ink); background: #fff; outline: none; box-shadow: none; }
.dp99-search button {
	position: absolute; right: 4px; top: 4px; width: 38px; height: 38px; min-height: 0; margin: 0; padding: 0;
	display: flex; align-items: center; justify-content: center;
	border: 0; border-radius: 8px; background: var(--dp99-ink); color: #fff; cursor: pointer;
}

.dp99-header__actions { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.dp99-account { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 10px; border-radius: var(--dp99-r-md); color: inherit; text-decoration: none; font: 500 15px/1 var(--dp99-display); }
.dp99-account:hover { background: rgba(0, 0, 0, .05); color: inherit; }

.dp99-cartbtn { position: relative; }
.dp99-cart-count {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px;
	background: var(--dp99-brand-strong); color: #fff; font: 700 11px/1 var(--dp99-display);
}
.dp99-cartbtn .dp99-cart-count { position: absolute; top: 3px; right: 1px; }
.dp99-cart-count[data-count="0"] { background: var(--dp99-line); color: var(--dp99-muted); }

.dp99-header__nav { border-top: 1px solid var(--dp99-line); }
.dp99-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 28px; }
.dp99-menu > li { position: relative; margin: 0; }
.dp99-menu a { display: block; padding: 13px 0; color: var(--dp99-ink); text-decoration: none; font: 500 15px/1.2 var(--dp99-display); }
.dp99-menu > li > a { box-shadow: inset 0 -2px 0 transparent; }
.dp99-menu > li > a:hover,
.dp99-menu > .current-menu-item > a,
.dp99-menu > .current-menu-ancestor > a { box-shadow: inset 0 -2px 0 var(--dp99-brand); }
.dp99-menu .sub-menu {
	position: absolute; left: -14px; top: 100%; z-index: 10; min-width: 220px; list-style: none; margin: 0; padding: 8px;
	background: #fff; border: 1px solid var(--dp99-line); border-radius: var(--dp99-r-md);
	box-shadow: 0 16px 30px -18px rgba(31, 26, 23, .35);
	visibility: hidden; opacity: 0;
}
.dp99-menu li:hover > .sub-menu, .dp99-menu li:focus-within > .sub-menu { visibility: visible; opacity: 1; }
.dp99-menu .sub-menu a { padding: 9px 10px; border-radius: var(--dp99-r-sm); }
.dp99-menu .sub-menu a:hover { background: var(--dp99-paper); }

.dp99-burger, .dp99-header__msearch { display: none; }

/* Centered */
.dp99-header--centered .dp99-header__bar { display: grid; grid-template-columns: 1fr auto 1fr; }
.dp99-header--centered .dp99-header__search { grid-column: 1; grid-row: 1; max-width: 320px; }
.dp99-header--centered .dp99-logo { grid-column: 2; grid-row: 1; }
.dp99-header--centered .dp99-header__actions { grid-column: 3; grid-row: 1; justify-self: end; }
.dp99-header--centered .dp99-menu { justify-content: center; }

/* Dark */
.dp99-header--dark { background: var(--dp99-ink); color: #fff; border-bottom-color: transparent; }
.dp99-header--dark .dp99-header__nav { border-top-color: rgba(255, 255, 255, .12); }
.dp99-header--dark .dp99-menu > li > a { color: #fff; }
.dp99-header--dark .dp99-search input[type="search"] { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .18); color: #fff; }
.dp99-header--dark .dp99-search input::placeholder { color: rgba(255, 255, 255, .65); }
.dp99-header--dark .dp99-search input[type="search"]:focus { background: rgba(255, 255, 255, .14); border-color: #fff; }
.dp99-header--dark .dp99-search button { background: var(--dp99-brand-strong); }
.dp99-header--dark .dp99-iconbtn:hover, .dp99-header--dark .dp99-account:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.dp99-header--dark :focus-visible { outline-color: #fff; }

/* Mobile header */
@media (max-width: 849px) {
	.dp99-header__bar { gap: 8px; min-height: 64px; }
	.dp99-burger { display: inline-flex; margin-left: -8px; }
	.dp99-header .dp99-header__search, .dp99-header__nav, .dp99-account span { display: none; }
	.dp99-header--centered .dp99-header__bar { display: flex; }
	.dp99-logo__img { height: 36px; max-width: 170px; }
	.dp99-header__msearch { display: block; padding-bottom: 12px; }
}

/* Mobile nav panel */
.dp99-mnav { position: fixed; inset: 0; z-index: 9999; }
.dp99-mnav__backdrop, .dp99-drawer__backdrop { position: absolute; inset: 0; background: rgba(31, 26, 23, .45); opacity: 0; transition: opacity .25s; }
.dp99-mnav__panel {
	position: absolute; left: 0; top: 0; bottom: 0; width: min(86vw, 360px); padding: 16px 20px 28px;
	background: #fff; color: var(--dp99-ink); overflow-y: auto; outline: none;
	transform: translateX(-100%); transition: transform .26s var(--dp99-ease);
}
.dp99-mnav.is-open .dp99-mnav__backdrop, .dp99-drawer.is-open .dp99-drawer__backdrop { opacity: 1; }
.dp99-mnav.is-open .dp99-mnav__panel { transform: none; }
.dp99-mnav__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.dp99-mnav__menu { list-style: none; margin: 0; padding: 0; }
.dp99-mnav__menu li { margin: 0; border-bottom: 1px solid var(--dp99-line); }
.dp99-mnav__menu a { display: block; padding: 14px 0; color: var(--dp99-ink); text-decoration: none; font: 500 17px/1.2 var(--dp99-display); }
.dp99-mnav__menu .sub-menu { list-style: none; margin: 0 0 10px; padding: 0 0 0 14px; }
.dp99-mnav__menu .sub-menu li { border: 0; }
.dp99-mnav__menu .sub-menu a { padding: 9px 0; font-size: 15px; color: var(--dp99-muted); }
.dp99-mnav__account { display: flex; align-items: center; gap: 10px; margin-top: 18px; color: var(--dp99-ink); font-weight: 600; text-decoration: none; }

/* ==========================================================================
   Footer
   ========================================================================== */
.dp99-has-footer #footer > :not(.dp99-footer) { display: none !important; }
.dp99-footer { background: var(--dp99-ink); color: rgba(255, 255, 255, .78); font-size: 15px; }
.dp99-footer a { color: #fff; text-decoration: none; }
.dp99-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.dp99-footer :focus-visible { outline-color: #fff; }

.dp99-footer__trust { background: var(--dp99-paper); color: var(--dp99-ink); border-top: 1px solid var(--dp99-line); }
.dp99-trust--row { margin: 0; padding: 22px 0; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px 32px; }
.dp99-trust--row li { font: 500 15px/1.35 var(--dp99-display); }

.dp99-footer__news { border-bottom: 1px solid rgba(255, 255, 255, .12); }
.dp99-footer__news .dp99-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 40px; padding-block: 36px; }
.dp99-footer__news h2 { margin: 0; color: #fff; font: 700 clamp(22px, 3vw, 30px)/1.15 var(--dp99-display); letter-spacing: -.02em; }
.dp99-footer__newsform { flex: 1; max-width: 520px; }
.dp99-footer__newsform input[type="email"] { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .25); color: #fff; }

.dp99-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 36px 48px; padding-block: 52px 44px; }
.dp99-footer__brand p { max-width: 38ch; margin: 16px 0 0; line-height: 1.6; }
.dp99-footer__brand .dp99-logo__img { height: 42px; }
.dp99-footer__brand .dp99-logo__text { color: #fff; }
.dp99-footer__col h3 { margin: 0 0 14px; color: #fff; font: 600 16px/1.2 var(--dp99-display); }
.dp99-flinks, .dp99-social, .dp99-pay { list-style: none; margin: 0; padding: 0; }
.dp99-flinks li { margin: 0 0 10px; }
.dp99-flinks a { color: rgba(255, 255, 255, .78); }
.dp99-social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.dp99-social li { margin: 0; }
.dp99-social a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--dp99-r-md); font-size: 14px; }
.dp99-social a:hover { border-color: #fff; text-decoration: none; }

.dp99-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); }
.dp99-footer__bottom .dp99-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-block: 18px; }
.dp99-footer__bottom p { margin: 0; font-size: 14px; }
.dp99-pay { display: flex; flex-wrap: wrap; gap: 6px; }
.dp99-pay li { margin: 0; padding: 5px 9px; border-radius: var(--dp99-r-sm); background: rgba(255, 255, 255, .1); color: #fff; font: 600 12px/1 var(--dp99-display); }

@media (max-width: 849px) {
	.dp99-footer__grid { grid-template-columns: 1fr 1fr; }
	.dp99-footer__brand { grid-column: 1 / -1; }
}

/* ==========================================================================
   Product cards (inside Flatsome .row > .col grids)
   ========================================================================== */
.dp99-col > .col-inner { height: 100%; }
.dp99-card { position: relative; display: flex; flex-direction: column; height: 100%; padding-top: 26px; }
.dp99-card__media {
	position: relative; display: block; aspect-ratio: 4 / 5; overflow: visible;
	background: var(--dp99-paper);
	border-top: 3px solid var(--dp99-ink);
	border-radius: 0 var(--dp99-r-md) var(--dp99-r-md) var(--dp99-r-md);
}
.dp99-card__media:not(:has(.dp99-tab)) { border-radius: var(--dp99-r-md); border-top: 0; }
.dp99-card__media img {
	position: absolute; inset: 0; width: 100%; height: 100%; margin: 0;
	object-fit: cover; border-radius: inherit;
}
.dp99-card__media .dp99-card__img { border-top-left-radius: 0; }
.dp99-card__alt { opacity: 0; transition: opacity .25s; }
.dp99-card.has-alt:hover .dp99-card__alt { opacity: 1; }

.dp99-card__body { display: flex; flex-direction: column; flex: 1; gap: 8px; padding: 14px 2px 4px; }
.dp99-card__title { margin: 0; padding: 0; font: 600 16px/1.3 var(--dp99-display); letter-spacing: -.01em; }
.dp99-card__title a { color: var(--dp99-ink); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.dp99-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* whole card is clickable */
.dp99-card__title a:hover { color: var(--dp99-brand-strong); }

.dp99-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: 13px; color: var(--dp99-muted); }
.dp99-rating { display: inline-flex; align-items: center; gap: 6px; color: var(--dp99-muted); font-size: 13px; text-decoration: none; }
.dp99-rating .star-rating { margin: 0 !important; font-size: 13px; color: var(--dp99-brand); }
.dp99-card__items { position: relative; padding-left: 12px; }
.dp99-card__items::before { content: ""; position: absolute; left: 0; top: 50%; width: 4px; height: 4px; margin-top: -2px; border-radius: 1px; background: var(--dp99-line); }
.dp99-card__meta .dp99-rating + .dp99-card__items::before { background: var(--dp99-muted); opacity: .5; }

.dp99-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 6px; }
.dp99-card .price { margin: 0; color: var(--dp99-ink); font: 700 17px/1.2 var(--dp99-display); }
.dp99-card .price del { color: var(--dp99-muted); font-weight: 500; font-size: 14px; opacity: 1; }
.dp99-card .price ins { text-decoration: none; }
.dp99-card .button.dp99-add {
	position: relative; z-index: 2; /* above the card link */
	margin: 0; min-height: 40px; padding: 0 14px; line-height: 40px;
	border: 0; border-radius: var(--dp99-r-md);
	background: var(--dp99-ink); color: #fff;
	font: 600 14px/40px var(--dp99-display); text-transform: none; letter-spacing: 0; white-space: nowrap;
}
.dp99-card .button.dp99-add:hover { background: var(--dp99-brand-strong); color: #fff; }
.dp99-card .button.loading { opacity: .6; }
.dp99-card .button.added { display: none; }
.dp99-card .added_to_cart {
	position: relative; z-index: 2; display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px;
	border-radius: var(--dp99-r-md); background: var(--dp99-brand-soft); color: var(--dp99-brand-strong);
	font: 600 14px/1 var(--dp99-display); text-decoration: none;
}

@media (max-width: 549px) {
	.dp99-card__foot { flex-direction: column; align-items: stretch; }
	.dp99-card .button.dp99-add, .dp99-card .added_to_cart { justify-content: center; text-align: center; width: 100%; }
	.dp99-card__title { font-size: 15px; }
}

/* ==========================================================================
   Single product
   ========================================================================== */
.dp99-single { padding-block: 12px 48px; color: var(--dp99-ink); }
.dp99-crumbs { margin: 8px 0 22px; font-size: 13px; color: var(--dp99-muted); }
.dp99-crumbs a { color: var(--dp99-muted); }

.dp99-single__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 48px; align-items: start; }

.dp99-gallery__stage { position: relative; margin-top: 26px; border-top: 3px solid var(--dp99-ink); border-radius: 0 var(--dp99-r-lg) var(--dp99-r-lg) var(--dp99-r-lg); background: var(--dp99-paper); }
.dp99-gallery__stage .woocommerce-product-gallery__image img { display: block; width: 100%; height: auto; margin: 0; border-radius: 0 var(--dp99-r-lg) var(--dp99-r-lg) var(--dp99-r-lg); }
.dp99-gallery__stage .dp99-tab { height: 28px; top: -28px; font-size: 13px; }
.dp99-gallery__thumbs { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; padding-bottom: 4px; }
.dp99-thumb {
	flex: none; width: 76px; height: 76px; margin: 0; padding: 0; overflow: hidden; cursor: pointer;
	border: 2px solid transparent; border-radius: var(--dp99-r-md); background: var(--dp99-paper);
}
.dp99-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dp99-thumb.is-active { border-color: var(--dp99-ink); }

.dp99-buybox { position: sticky; top: 140px; }
.dp99-buybox__inner { padding: 28px; border: 1px solid var(--dp99-line); border-radius: var(--dp99-r-lg); background: #fff; }
.dp99-title { margin: 0 0 10px; font: 700 clamp(26px, 3vw, 34px)/1.12 var(--dp99-display); letter-spacing: -.025em; color: var(--dp99-ink); }
.dp99-rating--link { margin-bottom: 14px; font-size: 14px; }
.dp99-rating--link:hover .dp99-rating__n { text-decoration: underline; }
.dp99-price .price { margin: 4px 0 14px; color: var(--dp99-ink); font: 700 30px/1.1 var(--dp99-display); letter-spacing: -.02em; }
.dp99-price .price del { font-size: 18px; font-weight: 500; color: var(--dp99-muted); opacity: 1; }
.dp99-price .price ins { text-decoration: none; }
.dp99-short { margin-bottom: 18px; color: var(--dp99-muted); font-size: 15px; line-height: 1.6; }
.dp99-short p:last-child { margin-bottom: 0; }

.dp99-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0 0 20px; overflow: hidden; border: 1px solid var(--dp99-line); border-radius: var(--dp99-r-md); background: var(--dp99-line); }
.dp99-facts > div { padding: 10px 12px; background: #fff; }
.dp99-facts dt { margin: 0 0 2px; font-size: 12px; font-weight: 500; color: var(--dp99-muted); }
.dp99-facts dd { margin: 0; font: 600 14px/1.35 var(--dp99-display); color: var(--dp99-ink); }
.dp99-facts > div:last-child:nth-child(odd) { grid-column: 1 / -1; }

.dp99-cartform form.cart { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.dp99-cartform form.variations_form { display: block; }
.dp99-cartform .variations { margin-bottom: 12px; }
.dp99-cartform .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 10px; }
.dp99-cartform .quantity { display: none !important; } /* one copy of a digital file is enough */
.dp99-cartform .single_add_to_cart_button,
.dp99-cartform .dp99-buynow {
	flex: 1 1 180px; margin: 0; min-height: 52px; padding: 0 20px;
	border-radius: var(--dp99-r-md); font: 700 16px/52px var(--dp99-display); text-transform: none; letter-spacing: 0;
}
.dp99-cartform .single_add_to_cart_button { background: #fff; color: var(--dp99-ink); border: 2px solid var(--dp99-ink); line-height: 48px; }
.dp99-cartform .single_add_to_cart_button:hover { background: var(--dp99-ink); color: #fff; }
.dp99-cartform .dp99-buynow { background: var(--dp99-brand-strong); color: #fff; border: 0; }
.dp99-cartform .dp99-buynow:hover { background: var(--dp99-ink); color: #fff; }
.dp99-cartform .single_add_to_cart_button.disabled,
.dp99-cartform .single_add_to_cart_button.disabled + input + .dp99-buynow { opacity: .5; }

/* Details / tabs */
.dp99-details { margin-top: 56px; }
.dp99-tabs { display: flex; gap: 6px; margin-bottom: 26px; overflow-x: auto; border-bottom: 1px solid var(--dp99-line); }
.dp99-tabs button {
	margin: 0 0 -1px; padding: 14px 16px; min-height: 48px; background: none; border: 0; border-bottom: 2px solid transparent;
	color: var(--dp99-muted); font: 600 16px/1 var(--dp99-display); text-transform: none; letter-spacing: 0; white-space: nowrap; cursor: pointer;
}
.dp99-tabs button:hover { color: var(--dp99-ink); }
.dp99-tabs button.is-active { color: var(--dp99-ink); border-bottom-color: var(--dp99-brand); }
.dp99-prose { max-width: 72ch; font-size: 16px; line-height: 1.7; }
.dp99-included { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.dp99-included li { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 14px; border: 1px solid var(--dp99-line); border-radius: var(--dp99-r-md); font-size: 15px; }
.dp99-included .dp99-i { color: var(--dp99-brand-strong); margin-top: 1px; }
.dp99-related { margin-top: 64px; }
.dp99-related > section > h2, .dp99-related .related > h2, .dp99-related .up-sells > h2 { font: 700 24px/1.2 var(--dp99-display); letter-spacing: -.02em; }

@media (max-width: 849px) {
	.dp99-single__grid { grid-template-columns: 1fr; gap: 24px; }
	.dp99-buybox { position: static; }
	.dp99-buybox__inner { padding: 20px; }
	.dp99-thumb { width: 64px; height: 64px; }
}

/* ==========================================================================
   Reviews
   ========================================================================== */
.dp99-rsum { display: grid; grid-template-columns: auto 1fr auto; gap: 24px 40px; align-items: center; padding: 24px; border: 1px solid var(--dp99-line); border-radius: var(--dp99-r-lg); }
.dp99-rsum__avg { margin: 0; font: 700 54px/1 var(--dp99-display); letter-spacing: -.03em; color: var(--dp99-ink); }
.dp99-rsum__score .star-rating { margin: 8px 0 !important; color: var(--dp99-brand); }
.dp99-rsum__count { margin: 0; font-size: 14px; color: var(--dp99-muted); }
.dp99-rsum__bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-width: 420px; }
.dp99-rsum__bars li { display: grid; grid-template-columns: 58px 1fr 32px; gap: 10px; align-items: center; margin: 0; font-size: 13px; color: var(--dp99-muted); }
.dp99-bar { display: block; height: 8px; overflow: hidden; border-radius: 4px; background: var(--dp99-line); }
.dp99-bar span { display: block; height: 100%; border-radius: 4px; background: var(--dp99-brand); }
.dp99-rsum__n { text-align: right; }
.dp99-btn-ghost.button { margin: 0; min-height: 46px; padding: 0 18px; border: 2px solid var(--dp99-ink); border-radius: var(--dp99-r-md); background: transparent; color: var(--dp99-ink); font: 700 15px/42px var(--dp99-display); text-transform: none; letter-spacing: 0; }
.dp99-btn-ghost.button:hover { background: var(--dp99-ink); color: #fff; }

.dp99-rgallery { margin-top: 26px; }
.dp99-rgallery h3 { margin: 0 0 10px; font: 600 16px/1.2 var(--dp99-display); }
.dp99-rphotos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.dp99-rimg { display: block; width: 84px; height: 84px; overflow: hidden; border-radius: var(--dp99-r-md); background: var(--dp99-paper); }
.dp99-rimg img { width: 100%; height: 100%; object-fit: cover; margin: 0; }

.dp99-rlist { margin: 28px 0 0 !important; padding: 0 !important; list-style: none; }
.dp99-rlist > li { margin: 0 0 14px !important; padding: 20px !important; border: 1px solid var(--dp99-line); border-radius: var(--dp99-r-lg); }
.dp99-rlist .comment_container { display: flex; gap: 14px; }
.dp99-rlist .avatar { width: 44px !important; height: 44px !important; border-radius: 50%; flex: none; }
.dp99-rlist .comment-text { flex: 1; margin: 0 !important; padding: 0 !important; border: 0 !important; }
.dp99-rlist .star-rating { color: var(--dp99-brand); }
.dp99-rlist .woocommerce-review__author { font: 600 15px/1.2 var(--dp99-display); color: var(--dp99-ink); }
.dp99-rlist .woocommerce-review__verified { color: var(--dp99-ok); font-style: normal; font-weight: 600; font-size: 13px; }
.dp99-rlist .description { margin-top: 8px; line-height: 1.6; }

.dp99-empty { padding: 18px; border-radius: var(--dp99-r-md); background: var(--dp99-paper); color: var(--dp99-muted); }

.dp99-rform { margin-top: 28px; padding: 24px; border-radius: var(--dp99-r-lg); background: var(--dp99-paper); }
.dp99-rform .comment-reply-title { display: block; margin: 0 0 16px; font: 700 22px/1.2 var(--dp99-display); letter-spacing: -.02em; }
.dp99-rform label { font-weight: 600; font-size: 14px; }
.dp99-rform textarea, .dp99-rform input[type="text"], .dp99-rform input[type="email"] { border-radius: var(--dp99-r-md); background: #fff; }
.dp99-rform .comment-form-author, .dp99-rform .comment-form-email { display: inline-block; width: calc(50% - 6px); vertical-align: top; }
.dp99-rform .comment-form-author { margin-right: 8px; }
.dp99-rform p.stars a { color: var(--dp99-brand); }
.dp99-rform .form-submit input[type="submit"] { min-height: 48px; padding: 0 24px; border-radius: var(--dp99-r-md); background: var(--dp99-ink); color: #fff; font: 700 15px/48px var(--dp99-display); text-transform: none; letter-spacing: 0; }
.dp99-rform .form-submit input[type="submit"]:hover { background: var(--dp99-brand-strong); }

.dp99-upload { position: relative; margin: 0 0 18px; }
.dp99-upload label {
	display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 16px; cursor: pointer;
	border: 1.5px dashed var(--dp99-muted); border-radius: var(--dp99-r-md); background: #fff;
}
.dp99-upload label:hover { border-color: var(--dp99-ink); }
.dp99-upload label small { flex-basis: 100%; font-weight: 400; color: var(--dp99-muted); }
.dp99-upload input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.dp99-upload input[type="file"]:focus-visible + .dp99-upload__list, .dp99-upload:focus-within label { outline: 2px solid var(--dp99-ink); outline-offset: 2px; }
.dp99-upload__list { list-style: none; margin: 8px 0 0; padding: 0; font-size: 13px; color: var(--dp99-muted); }
.dp99-upload__list li { margin: 2px 0; }
.dp99-upload__list .is-error { color: #A4261D; font-weight: 600; }

@media (max-width: 849px) {
	.dp99-rsum { grid-template-columns: 1fr; }
	.dp99-rform .comment-form-author, .dp99-rform .comment-form-email { display: block; width: 100%; margin-right: 0; }
}

.dp99-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(31, 26, 23, .88); outline: none; }
.dp99-lightbox img { max-width: 100%; max-height: 88vh; border-radius: var(--dp99-r-md); }
.dp99-lightbox__close { position: absolute; top: 12px; right: 12px; color: #fff; font-size: 34px; }
.dp99-lightbox__close:hover { background: rgba(255, 255, 255, .12); }

/* ==========================================================================
   Side cart
   ========================================================================== */
.dp99-drawer { position: fixed; inset: 0; z-index: 99999; }
.dp99-drawer__panel {
	position: absolute; right: 0; top: 0; bottom: 0; display: flex; flex-direction: column;
	width: min(92vw, 420px); background: #fff; color: var(--dp99-ink); outline: none;
	transform: translateX(100%); transition: transform .28s var(--dp99-ease);
	box-shadow: -20px 0 40px -30px rgba(31, 26, 23, .5);
}
.dp99-drawer.is-open .dp99-drawer__panel { transform: none; }
.dp99-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 14px 22px; border-bottom: 1px solid var(--dp99-line); }
.dp99-drawer__head h2 { display: flex; align-items: center; gap: 10px; margin: 0; font: 700 20px/1 var(--dp99-display); letter-spacing: -.02em; }
.dp99-drawer__body { flex: 1; display: flex; flex-direction: column; overflow-y: auto; padding: 16px 22px 22px; }

.dp99-drawer .woocommerce-mini-cart { flex: 1; margin: 0; padding: 0; list-style: none; }
.dp99-drawer .woocommerce-mini-cart-item {
	position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 4px 14px;
	margin: 0; padding: 14px 32px 14px 0; border-bottom: 1px solid var(--dp99-line);
	font-size: 14px; list-style: none;
}
.dp99-drawer .woocommerce-mini-cart-item a:not(.remove) { display: contents; color: var(--dp99-ink); font: 600 15px/1.3 var(--dp99-display); text-decoration: none; }
.dp99-drawer .woocommerce-mini-cart-item img {
	grid-row: span 2; width: 64px !important; height: 80px !important; margin: 0 !important; float: none !important;
	object-fit: cover; border-top: 3px solid var(--dp99-ink); border-radius: 0 8px 8px 8px;
}
.dp99-drawer .woocommerce-mini-cart-item .quantity { grid-column: 2; color: var(--dp99-muted); }
.dp99-drawer .woocommerce-mini-cart-item .remove {
	position: absolute; right: 0; top: 12px; display: flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; border-radius: 50%; border: 0; color: var(--dp99-muted) !important; font-size: 20px; line-height: 1; text-decoration: none;
}
.dp99-drawer .woocommerce-mini-cart-item .remove:hover { background: var(--dp99-paper); color: var(--dp99-ink) !important; }
.dp99-drawer .woocommerce-mini-cart__total { display: flex; justify-content: space-between; margin: 18px 0 14px; padding: 0; border: 0; font: 700 18px/1.2 var(--dp99-display); }
.dp99-drawer .woocommerce-mini-cart__buttons { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; margin: 0; }
.dp99-drawer .woocommerce-mini-cart__buttons .button {
	margin: 0; min-height: 50px; padding: 0 12px; border-radius: var(--dp99-r-md);
	display: flex; align-items: center; justify-content: center; text-align: center;
	font: 700 15px/1.1 var(--dp99-display); text-transform: none; letter-spacing: 0;
	background: #fff; color: var(--dp99-ink); border: 2px solid var(--dp99-ink);
}
.dp99-drawer .woocommerce-mini-cart__buttons .button.checkout { background: var(--dp99-brand-strong); color: #fff; border-color: var(--dp99-brand-strong); }
.dp99-drawer .woocommerce-mini-cart__buttons .button:hover { background: var(--dp99-ink); color: #fff; border-color: var(--dp99-ink); }
.dp99-drawer .woocommerce-mini-cart__empty-message { margin: auto 0; padding: 40px 0; text-align: center; color: var(--dp99-muted); }

@media (prefers-reduced-motion: reduce) {
	.dp99-drawer__panel, .dp99-mnav__panel, .dp99-drawer__backdrop, .dp99-mnav__backdrop, .dp99-card__alt { transition: none; }
}

/* ==========================================================================
   Steps, cart page, checkout
   ========================================================================== */
.dp99-steps { list-style: none; display: flex; align-items: center; justify-content: center; gap: 8px; margin: 8px auto 32px; padding: 0; counter-reset: none; }
.dp99-steps li { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--dp99-muted); font: 600 14px/1 var(--dp99-display); }
.dp99-steps li + li::before { content: ""; width: clamp(18px, 6vw, 56px); height: 2px; margin-right: 8px; background: var(--dp99-line); }
.dp99-steps li.is-done + li::before, .dp99-steps li.is-done::before { background: var(--dp99-ink); }
.dp99-steps__n { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--dp99-line); background: #fff; font-size: 13px; }
.dp99-steps .is-current { color: var(--dp99-ink); }
.dp99-steps .is-current .dp99-steps__n { border-color: var(--dp99-brand-strong); background: var(--dp99-brand-strong); color: #fff; }
.dp99-steps .is-done { color: var(--dp99-ink); }
.dp99-steps .is-done .dp99-steps__n { border-color: var(--dp99-ink); background: var(--dp99-ink); color: #fff; }

.dp99-commerce .woocommerce-cart-form .shop_table,
.dp99-commerce .cart_totals .shop_table,
.dp99-commerce .woocommerce-checkout-review-order-table { border-radius: var(--dp99-r-lg); }
.dp99-commerce .woocommerce-cart-form .product-thumbnail img { width: 72px; border-top: 3px solid var(--dp99-ink); border-radius: 0 8px 8px 8px; }
.dp99-commerce .woocommerce-cart-form .product-name a { color: var(--dp99-ink); font: 600 16px/1.3 var(--dp99-display); }
.dp99-commerce .cart_totals, .dp99-commerce .woocommerce-checkout-review-order {
	padding: 24px; border: 1px solid var(--dp99-line); border-radius: var(--dp99-r-lg); background: #fff;
}
.dp99-commerce .cart_totals h2, .dp99-commerce #order_review_heading, .dp99-commerce .woocommerce-billing-fields > h3 { font: 700 20px/1.2 var(--dp99-display); letter-spacing: -.02em; text-transform: none; }
.dp99-commerce .checkout-button, .dp99-commerce #place_order {
	width: 100%; min-height: 56px; margin: 0; border-radius: var(--dp99-r-md);
	background: var(--dp99-brand-strong); color: #fff; font: 700 17px/56px var(--dp99-display); text-transform: none; letter-spacing: 0;
}
.dp99-commerce .checkout-button:hover, .dp99-commerce #place_order:hover { background: var(--dp99-ink); color: #fff; }
.dp99-commerce .woocommerce-checkout .input-text, .dp99-commerce .woocommerce-checkout select { border-radius: var(--dp99-r-md); min-height: 46px; }
.dp99-commerce #billing_email_field .description { display: block !important; margin-top: 6px; color: var(--dp99-muted); font-size: 13px; }

.dp99-howto { margin: 0 0 18px; padding: 16px 18px; border-radius: var(--dp99-r-md); background: var(--dp99-brand-soft); }
.dp99-howto h3 { margin: 0 0 8px; font: 700 16px/1.2 var(--dp99-display); color: var(--dp99-ink); text-transform: none; letter-spacing: 0; }
.dp99-howto ol { margin: 0; padding-left: 20px; font-size: 14px; line-height: 1.55; color: var(--dp99-ink); }
.dp99-howto li { margin: 2px 0; }

/* ==========================================================================
   Downloads (order received, My account, shortcode)
   ========================================================================== */
.dp99-thanks { margin-bottom: 36px; }
.dp99-thanks__hero { max-width: 640px; margin: 0 auto 28px; text-align: center; }
.dp99-thanks__hero .dp99-ready { justify-content: center; }
.dp99-thanks__hero h1 { margin: 0 0 10px; font: 700 clamp(30px, 4vw, 42px)/1.1 var(--dp99-display); letter-spacing: -.03em; color: var(--dp99-ink); }
.dp99-thanks__hero p { margin: 0; color: var(--dp99-muted); font-size: 16px; line-height: 1.55; }
.dp99-thanks__more { margin: 16px 0 0; text-align: center; }
.dp99-thanks__more a { color: var(--dp99-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.dp99-thanks .dp99-dl-list { max-width: 760px; margin-inline: auto; }

.dp99-dl-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.dp99-dl {
	display: grid; grid-template-columns: 76px 1fr auto; align-items: center; gap: 18px;
	margin: 0; padding: 18px; border: 1px solid var(--dp99-line); border-radius: var(--dp99-r-lg); background: #fff;
}
.dp99-dl__thumb { position: relative; margin-top: 22px; }
.dp99-dl__thumb .dp99-tab { top: -22px; height: 22px; padding: 0 8px; font-size: 11px; }
.dp99-dl__thumb .dp99-tab::after { right: -8px; width: 8px; height: 12px; }
.dp99-dl__thumb img { display: block; width: 76px; height: 76px; margin: 0; object-fit: cover; border-top: 3px solid var(--dp99-ink); border-radius: 0 8px 8px 8px; }
.dp99-dl__thumb:not(:has(.dp99-tab)) { margin-top: 0; }
.dp99-dl__thumb:not(:has(.dp99-tab)) img { border-top: 0; border-radius: 8px; }
.dp99-dl__info h3 { margin: 0 0 4px; font: 700 17px/1.25 var(--dp99-display); letter-spacing: -.01em; }
.dp99-dl__info h3 a { color: var(--dp99-ink); text-decoration: none; }
.dp99-dl__file { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 14px; color: var(--dp99-muted); word-break: break-word; }
.dp99-dl__meta { margin: 4px 0 0; font-size: 13px; color: var(--dp99-muted); }
.dp99-dl__btn.button {
	display: inline-flex; align-items: center; gap: 8px; margin: 0; min-height: 50px; padding: 0 20px;
	border-radius: var(--dp99-r-md); background: var(--dp99-brand-strong); color: #fff;
	font: 700 15px/1 var(--dp99-display); text-transform: none; letter-spacing: 0; white-space: nowrap;
}
.dp99-dl__btn.button:hover { background: var(--dp99-ink); color: #fff; }

@media (max-width: 549px) {
	.dp99-dl { grid-template-columns: 64px 1fr; }
	.dp99-dl__thumb img { width: 64px; height: 64px; }
	.dp99-dl__btn.button { grid-column: 1 / -1; justify-content: center; }
}

.dp99-order-dl { margin-bottom: 28px; }
.dp99-order-dl .woocommerce-order-downloads__title { font: 700 22px/1.2 var(--dp99-display); }

.dp99-empty-state { padding: 40px 24px; border: 1.5px dashed var(--dp99-line); border-radius: var(--dp99-r-lg); text-align: center; }
.dp99-empty-state h2 { margin: 0 0 8px; font: 700 22px/1.2 var(--dp99-display); }
.dp99-empty-state p { max-width: 46ch; margin: 0 auto 18px; color: var(--dp99-muted); }
.dp99-empty-state .button { margin: 0; border-radius: var(--dp99-r-md); background: var(--dp99-ink); color: #fff; text-transform: none; letter-spacing: 0; }

/* ==========================================================================
   Variation options
   ========================================================================== */
.dp99-cartform table.variations, .dp99-cartform table.variations tbody,
.dp99-cartform table.variations tr, .dp99-cartform table.variations th,
.dp99-cartform table.variations td { display: block; width: 100%; padding: 0; border: 0; background: none; text-align: start; }
.dp99-cartform table.variations tr { margin-bottom: 16px; }
.dp99-cartform table.variations th.label, .dp99-cartform table.variations td.label { margin-bottom: 8px; }
.dp99-cartform table.variations label { font: 600 15px/1.2 var(--dp99-display); color: var(--dp99-ink); text-transform: none; letter-spacing: 0; }
.dp99-sw__current { font-weight: 500; color: var(--dp99-muted); }
.dp99-cartform .reset_variations { display: inline-block; margin-top: 8px; font-size: 13px; color: var(--dp99-muted); }

.dp99-sw-wrap { position: relative; }
.dp99-swatches .dp99-sw-wrap > select {
	position: absolute !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important;
	opacity: 0 !important; pointer-events: none; overflow: hidden; clip: rect(0 0 0 0);
}

.dp99-sw { display: flex; flex-wrap: wrap; gap: 8px; }
.dp99-sw__opt {
	position: relative; display: flex; align-items: center; gap: 10px; margin: 0;
	min-height: 48px; padding: 10px 16px; cursor: pointer; text-align: left;
	border: 2px solid var(--dp99-line); border-radius: var(--dp99-r-md); background: #fff; color: var(--dp99-ink);
	font: 600 15px/1.25 var(--dp99-display); text-transform: none; letter-spacing: 0; box-shadow: none;
	transition: border-color .15s, background-color .15s;
}
.dp99-sw__opt:hover { border-color: var(--dp99-muted); }
.dp99-sw__opt.is-selected { border-color: var(--dp99-ink); background: var(--dp99-brand-soft); }
.dp99-sw__opt.is-unavailable { opacity: .45; cursor: not-allowed; text-decoration: line-through; }
.dp99-sw__check {
	display: none; align-items: center; justify-content: center; flex: none;
	width: 22px; height: 22px; border-radius: 50%; background: var(--dp99-ink); color: #fff;
}
.dp99-sw__opt.is-selected .dp99-sw__check { display: inline-flex; }
.dp99-sw__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dp99-sw__desc { font-weight: 400; font-size: 13px; line-height: 1.4; color: var(--dp99-muted); }

/* Cards: used when options have a price or description (e.g. license types) */
.dp99-sw--cards { display: grid; grid-template-columns: 1fr; gap: 10px; }
.dp99-sw--cards .dp99-sw__opt { min-height: 64px; padding: 14px 16px; }
.dp99-sw--cards .dp99-sw__check { display: inline-flex; background: #fff; border: 2px solid var(--dp99-line); color: transparent; }
.dp99-sw--cards .dp99-sw__opt.is-selected .dp99-sw__check { background: var(--dp99-ink); border-color: var(--dp99-ink); color: #fff; }
.dp99-sw--cards .dp99-sw__price { margin-left: auto; font: 700 16px/1.2 var(--dp99-display); white-space: nowrap; }
.dp99-sw--cards .dp99-sw__price del { font-size: 13px; font-weight: 500; color: var(--dp99-muted); }
.dp99-sw--cards .dp99-sw__price ins { text-decoration: none; }
.dp99-cartform:has(.dp99-sw--cards) .woocommerce-variation-price { display: none; } /* price already shown on each card */

@media (prefers-reduced-motion: reduce) { .dp99-sw__opt { transition: none; } }

/* ==========================================================================
   Slider
   ========================================================================== */
.dp99-slider { position: relative; margin: 0 0 32px; }
.dp99-slider__track {
	display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	border-radius: var(--dp99-r-lg); scrollbar-width: none;
}
.dp99-slider__track::-webkit-scrollbar { display: none; }
.dp99-slide {
	position: relative; flex: 0 0 100%; scroll-snap-align: start; overflow: hidden;
	display: grid; grid-template-areas: "stack"; align-items: center; min-height: clamp(360px, 40vw, 560px);
	background: var(--dp99-brand-soft);
}
.dp99-slide--dark { background: var(--dp99-ink); }
.dp99-slide__img { grid-area: stack; width: 100%; height: 100%; margin: 0; object-fit: cover; object-position: right center; }
.dp99-slide__content { grid-area: stack; position: relative; max-width: 560px; padding: 48px clamp(24px, 5vw, 72px); }
.dp99-slide__title { margin: 0 0 14px; font: 700 clamp(32px, 4.6vw, 58px)/1.02 var(--dp99-display); letter-spacing: -.035em; color: var(--dp99-ink); }
.dp99-slide__text { margin: 0 0 26px; max-width: 42ch; font-size: clamp(16px, 1.4vw, 18px); line-height: 1.55; color: var(--dp99-muted); }
.dp99-slide--dark .dp99-slide__title { color: #fff; }
.dp99-slide--dark .dp99-slide__text { color: rgba(255, 255, 255, .8); }

.dp99-cta {
	display: inline-flex; align-items: center; min-height: 52px; padding: 0 24px;
	border-radius: var(--dp99-r-md); background: var(--dp99-brand-strong); color: #fff;
	font: 700 16px/1 var(--dp99-display); text-decoration: none;
}
.dp99-cta:hover { background: var(--dp99-ink); color: #fff; }
.dp99-slide--dark .dp99-cta:hover { background: #fff; color: var(--dp99-ink); }
.dp99-slide--dark :focus-visible { outline-color: #fff; }

.dp99-slider__controls { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 14px; }
.dp99-slider__btn {
	display: inline-flex; align-items: center; justify-content: center; margin: 0; padding: 0;
	width: 44px; height: 44px; min-height: 0; border: 1.5px solid var(--dp99-line); border-radius: 50%;
	background: #fff; color: var(--dp99-ink); cursor: pointer;
}
.dp99-slider__btn:hover { border-color: var(--dp99-ink); }
.dp99-slider__pause .i-play, .dp99-slider__pause.is-paused .i-pause { display: none; }
.dp99-slider__pause.is-paused .i-play { display: block; }
.dp99-slider__dots { display: flex; gap: 4px; }
.dp99-slider__dot { width: 28px; height: 44px; margin: 0; padding: 0; min-height: 0; border: 0; background: none; cursor: pointer; position: relative; }
.dp99-slider__dot::before { content: ""; position: absolute; left: 4px; right: 4px; top: 19px; height: 6px; border-radius: 3px; background: var(--dp99-line); }
.dp99-slider__dot.is-active::before { background: var(--dp99-brand-strong); }

@media (max-width: 849px) {
	.dp99-slide { grid-template-areas: "img" "text"; align-items: start; min-height: 0; }
	.dp99-slide__img { grid-area: img; height: auto; aspect-ratio: 16 / 9; object-position: 88% center; }
	.dp99-slide__content { grid-area: text; padding: 22px 22px 28px; }
}
@media (prefers-reduced-motion: reduce) { .dp99-slider__track { scroll-behavior: auto; } }

/* ==========================================================================
   Banners
   ========================================================================== */
.dp99-banners { display: grid; gap: 16px; margin: 0 0 32px; }
.dp99-banners--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dp99-banners--grid.dp99-banners--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dp99-banners--grid.dp99-banners--n1, .dp99-banners--single { grid-template-columns: 1fr; }
.dp99-banners--row { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.dp99-banners--feature { grid-template-columns: 1.3fr 1fr 1fr; grid-auto-rows: minmax(260px, auto); }
.dp99-banners--feature.dp99-banners--n4 > :last-child { grid-column: span 2; }
.dp99-banners--feature.dp99-banners--n3 { grid-template-columns: 1.3fr 1fr; }
.dp99-banners--feature .is-first { grid-row: span 2; }
.dp99-banners--feature.dp99-banners--n2 { grid-template-columns: 1.3fr 1fr; }
.dp99-banners--feature.dp99-banners--n2 .is-first { grid-row: auto; }

.dp99-banner {
	position: relative; display: flex; align-items: flex-end; overflow: hidden;
	min-height: 240px; aspect-ratio: 4 / 3; border-radius: var(--dp99-r-lg); background: var(--dp99-brand-soft);
}
.dp99-banners--row .dp99-banner { aspect-ratio: 1 / 1; }
.dp99-banners--feature .dp99-banner { aspect-ratio: auto; }
.dp99-banners--single .dp99-banner { aspect-ratio: 16 / 7; }
.dp99-banner--dark { background: var(--dp99-ink); }
.dp99-banner__img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; object-position: right top; }
.dp99-banner--dark:not(:has(img[src$=".svg"]))::before {
	/* keeps white text readable over customer photos */
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(to top, rgba(31, 26, 23, .78), rgba(31, 26, 23, 0) 65%);
}
.dp99-banner__content { position: relative; z-index: 2; padding: clamp(18px, 2.4vw, 28px); max-width: 360px; }
.dp99-banner__title { margin: 0 0 6px; font: 700 clamp(20px, 2vw, 26px)/1.1 var(--dp99-display); letter-spacing: -.02em; }
.dp99-banner__title a { color: var(--dp99-ink); text-decoration: none; }
.dp99-banner__title a::after { content: ""; position: absolute; inset: 0; z-index: 3; } /* whole banner is clickable */
.dp99-banner__text { margin: 0 0 14px; font-size: 15px; line-height: 1.45; color: var(--dp99-muted); }
.dp99-banner__btn {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: var(--dp99-r-md);
	background: var(--dp99-ink); color: #fff; font: 700 14px/1 var(--dp99-display);
}
.dp99-banner:hover .dp99-banner__btn { background: var(--dp99-brand-strong); }
.dp99-banner--dark .dp99-banner__title a { color: #fff; }
.dp99-banner--dark .dp99-banner__text { color: rgba(255, 255, 255, .82); }
.dp99-banner--dark .dp99-banner__btn { background: #fff; color: var(--dp99-ink); }
.dp99-banner--dark:hover .dp99-banner__btn { background: var(--dp99-brand-strong); color: #fff; }
.dp99-banner:focus-within { outline: 2px solid var(--dp99-ink); outline-offset: 3px; }
.dp99-banner a:focus-visible { outline: none; }

@media (max-width: 849px) {
	.dp99-banners--grid.dp99-banners--n3, .dp99-banners--feature, .dp99-banners--feature.dp99-banners--n2 { grid-template-columns: 1fr 1fr; }
	.dp99-banners--feature .is-first { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 9; }
	.dp99-banners--feature.dp99-banners--n4 > :last-child { grid-column: auto; }
	.dp99-banners--single .dp99-banner { aspect-ratio: 4 / 3; }
}
@media (max-width: 549px) {
	.dp99-banners--grid, .dp99-banners--grid.dp99-banners--n3, .dp99-banners--feature, .dp99-banners--feature.dp99-banners--n2 { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Headings
   ========================================================================== */
.dp99-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin: 0 0 24px; }
.dp99-heading.is-center { flex-direction: column; align-items: center; text-align: center; }
.dp99-heading__main { min-width: 0; }
.dp99-heading__title { margin: 0; font: 700 clamp(24px, 2.8vw, 34px)/1.1 var(--dp99-display); letter-spacing: -.025em; color: var(--dp99-ink); }
.dp99-heading__sub { margin: 8px 0 0; max-width: 60ch; font-size: 16px; line-height: 1.5; color: var(--dp99-muted); }
.dp99-heading.is-center .dp99-heading__sub { margin-inline: auto; }
.dp99-heading__link { flex: none; color: var(--dp99-ink); font: 600 15px/1.2 var(--dp99-display); text-decoration: underline; text-decoration-color: var(--dp99-brand); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.dp99-heading__link:hover { color: var(--dp99-brand-strong); }

/* Folder tab: the title sits in a tab on top of a line */
.dp99-heading--tab { border-bottom: 3px solid var(--dp99-ink); align-items: flex-end; }
.dp99-heading--tab .dp99-heading__title span {
	position: relative; display: inline-block; padding: 10px 18px 8px; background: var(--dp99-ink); color: #fff;
	border-radius: 12px 12px 0 0; font-size: clamp(20px, 2.2vw, 26px);
}
.dp99-heading--tab .dp99-heading__title span::after {
	content: ""; position: absolute; right: -14px; bottom: 0; width: 14px; height: 22px; background: var(--dp99-ink);
	clip-path: polygon(0 0, 0 100%, 100% 100%);
}
.dp99-heading--tab .dp99-heading__sub { margin-bottom: 10px; }
.dp99-heading--tab .dp99-heading__link { margin-bottom: 10px; }
.dp99-heading--tab.is-center { border-bottom: 0; }
.dp99-heading--tab.is-center .dp99-heading__main { border-bottom: 3px solid var(--dp99-ink); }

/* Pixels */
.dp99-heading--pixels .dp99-heading__title { display: flex; align-items: center; }
.dp99-heading--pixels.is-center .dp99-heading__title { justify-content: center; }
.dp99-heading--pixels .dp99-pixels { grid-template-columns: 9px 9px; grid-template-rows: 9px 9px; gap: 3px; margin-right: 14px; }

/* Underline bar */
.dp99-heading--bar .dp99-heading__title::after { content: ""; display: block; width: 56px; height: 5px; margin-top: 14px; border-radius: 3px; background: var(--dp99-brand); }
.dp99-heading--bar.is-center .dp99-heading__title::after { margin-inline: auto; }

/* Split: title, a rule, link */
.dp99-heading--split { align-items: center; }
.dp99-heading--split .dp99-heading__main { display: contents; }
.dp99-heading--split .dp99-heading__title { flex: none; }
.dp99-heading--split .dp99-heading__sub { display: none; }
.dp99-heading--split::after { content: ""; order: 1; flex: 1; height: 1px; background: var(--dp99-line); }
.dp99-heading--split .dp99-heading__link { order: 2; }

/* Highlighter */
.dp99-heading--marker .dp99-heading__title span {
	background: linear-gradient(transparent 58%, color-mix(in srgb, var(--dp99-brand) 30%, #fff) 58%, color-mix(in srgb, var(--dp99-brand) 30%, #fff) 92%, transparent 92%);
	-webkit-box-decoration-break: clone; box-decoration-break: clone; padding: 0 4px;
}

/* Dark block */
.dp99-heading--block { padding: clamp(20px, 3vw, 32px); border-radius: var(--dp99-r-lg); background: var(--dp99-ink); align-items: center; }
.dp99-heading--block .dp99-heading__title { color: #fff; }
.dp99-heading--block .dp99-heading__sub { color: rgba(255, 255, 255, .78); }
.dp99-heading--block .dp99-heading__link { color: #fff; }
.dp99-heading--block :focus-visible { outline-color: #fff; }

@media (max-width: 549px) {
	.dp99-heading:not(.is-center):not(.dp99-heading--split) { flex-direction: column; align-items: flex-start; }
	.dp99-heading.dp99-heading--tab:not(.is-center) { flex-direction: row; align-items: flex-end; }
}

/* RTL for new parts */
[dir="rtl"] .dp99-sw__opt { text-align: right; }
[dir="rtl"] .dp99-sw--cards .dp99-sw__price { margin-left: 0; margin-right: auto; }
[dir="rtl"] .dp99-slide__img { object-position: left center; }
[dir="rtl"] .dp99-slide__img[src$=".svg"], [dir="rtl"] .dp99-banner__img[src$=".svg"] { transform: scaleX(-1); }
[dir="rtl"] .dp99-heading--tab .dp99-heading__title span::after { right: auto; left: -14px; clip-path: polygon(100% 0, 0 100%, 100% 100%); }
[dir="rtl"] .dp99-heading--pixels .dp99-pixels { margin-right: 0; margin-left: 14px; }

/* RTL */
[dir="rtl"] .dp99-tab { left: auto; right: 0; padding: 0 10px 0 12px; }
[dir="rtl"] .dp99-tab::after { right: auto; left: -10px; clip-path: polygon(100% 0, 0 100%, 100% 100%); }
[dir="rtl"] .dp99-card__media, [dir="rtl"] .dp99-gallery__stage { border-radius: var(--dp99-r-md) 0 var(--dp99-r-md) var(--dp99-r-md); }
[dir="rtl"] .dp99-search input[type="search"] { padding: 0 16px 0 52px; }
[dir="rtl"] .dp99-search button { right: auto; left: 4px; }
[dir="rtl"] .dp99-sale { right: auto; left: 12px; }
