.dp-home {
	background: var(--dp-color-canvas);
}

.dp-home__sr-title {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.dp-home-hero {
	padding-block: var(--dp-space-5) var(--dp-space-7);
	background: #fff;
}

.dp-home-hero__banner {
	display: block;
	overflow: hidden;
	border-radius: var(--dp-radius-xl);
	box-shadow: var(--dp-shadow-md);
	background: var(--dp-color-canvas);
}

.dp-home-hero__banner img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 1;
	object-fit: cover;
	object-position: center;
}

.dp-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dp-space-3);
	justify-content: center;
	margin-block-start: var(--dp-space-4);
}

.dp-home-section {
	padding-block: var(--dp-space-10);
}

.dp-home-section--surface {
	background: #fff;
}

.dp-home-section--bestsellers {
	background:
		radial-gradient(circle at 12% 20%, rgb(215 164 74 / .12), transparent 18rem),
		linear-gradient(180deg, #fff 0%, var(--dp-color-gold-soft) 100%);
	border-block: 1px solid rgb(215 164 74 / .16);
}

.dp-home-section__head {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dp-space-3) var(--dp-space-5);
	align-items: end;
	justify-content: space-between;
	margin-block-end: var(--dp-space-6);
}

.dp-home-section__head-copy {
	max-width: 48rem;
}

.dp-home-section__head h2 {
	margin: var(--dp-space-2) 0 0;
	color: var(--dp-color-brand);
	font-size: clamp(1.55rem, 1.25rem + 1.2vw, 2.2rem);
}

.dp-home-section__head p {
	margin: var(--dp-space-2) 0 0;
	color: var(--dp-color-muted);
}

.dp-home-worlds {
	display: grid;
	gap: var(--dp-space-5);
}

.dp-home-world {
	position: relative;
	overflow: hidden;
	min-height: 20rem;
	padding-block: var(--dp-space-7);
	padding-inline: clamp(2rem, 4vw, 3.75rem);
	border-radius: var(--dp-radius-xl);
}

.dp-home-world::after {
	content: "";
	position: absolute;
	width: 13rem;
	height: 13rem;
	inset-block-end: -5rem;
	inset-inline-start: -4rem;
	border-radius: 50%;
	opacity: .32;
}

.dp-home-world--beauty {
	border: 1px solid rgb(178 82 106 / .22);
	background:
		radial-gradient(circle at 78% 20%, rgb(215 164 74 / .18), transparent 11rem),
		linear-gradient(135deg, var(--dp-color-beauty-soft), #fff 72%);
}

.dp-home-world--beauty::after {
	background: var(--dp-color-beauty);
}

.dp-home-world--home {
	border: 1px solid rgb(28 106 102 / .2);
	background:
		radial-gradient(circle at 80% 20%, rgb(215 164 74 / .14), transparent 11rem),
		linear-gradient(135deg, var(--dp-color-home-soft), #fff 72%);
}

.dp-home-world--home::after {
	background: var(--dp-color-secondary);
}

.dp-home-world h3 {
	position: relative;
	z-index: 1;
	margin: var(--dp-space-3) 0 var(--dp-space-2);
	color: var(--dp-color-brand);
	font-size: clamp(1.45rem, 1.15rem + .8vw, 2rem);
}

.dp-home-world p {
	position: relative;
	z-index: 1;
	max-width: 34rem;
	margin: 0;
	color: var(--dp-color-muted);
}

.dp-home-category-links {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	gap: var(--dp-space-2);
	margin-block-start: var(--dp-space-5);
}

.dp-home-category-links a {
	display: inline-flex;
	align-items: center;
	min-height: 2.4rem;
	padding-inline: .85rem;
	border: 1px solid rgb(91 41 75 / .12);
	border-radius: var(--dp-radius-pill);
	background: rgb(255 255 255 / .86);
	color: var(--dp-color-ink);
	font-size: var(--dp-text-sm);
	font-weight: 700;
	text-decoration: none;
}

.dp-home-category-links a:hover {
	border-color: var(--dp-color-brand);
	color: var(--dp-color-brand);
}

.dp-home-categories {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--dp-space-3);
}

.dp-home-category {
	position: relative;
	display: grid;
	min-height: 8.5rem;
	align-content: end;
	overflow: hidden;
	padding: var(--dp-space-4);
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-lg);
	background: #fff;
	color: var(--dp-color-ink);
	text-decoration: none;
	box-shadow: var(--dp-shadow-sm);
}

.dp-home-category::before {
	content: "";
	position: absolute;
	width: 5.5rem;
	height: 5.5rem;
	inset-block-start: -1.7rem;
	inset-inline-start: -1.3rem;
	border-radius: 42% 58% 65% 35%;
	background: linear-gradient(145deg, rgb(178 82 106 / .22), rgb(28 106 102 / .14));
	transform: rotate(18deg);
}

.dp-home-category strong,
.dp-home-category span {
	position: relative;
	z-index: 1;
}

.dp-home-category span {
	margin-block-start: .2rem;
	color: var(--dp-color-muted);
	font-size: var(--dp-text-xs);
}

.dp-home-category:hover {
	border-color: rgb(91 41 75 / .35);
	box-shadow: var(--dp-shadow-md);
	color: var(--dp-color-brand);
}

.dp-home-product-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--dp-space-4);
}

.dp-home .dp-product-card__media--has-image::after {
	display: none;
}

.dp-home .dp-product-card__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: var(--dp-space-3);
	background: #fff;
}

.dp-home .dp-product-card__title a {
	color: var(--dp-color-ink);
	text-decoration: none;
}

.dp-home .dp-product-card__title a:hover {
	color: var(--dp-color-brand);
}

.dp-home-product-card__action {
	margin-block-start: auto;
}

.dp-home-product-card__meta {
	color: var(--dp-color-muted);
	font-size: var(--dp-text-xs);
}

.dp-home-promo {
	display: grid;
	gap: var(--dp-space-4);
	align-items: center;
	padding: var(--dp-space-7);
	border-radius: var(--dp-radius-xl);
	background:
		radial-gradient(circle at 12% 35%, rgb(215 164 74 / .22), transparent 10rem),
		linear-gradient(135deg, var(--dp-color-brand), #421d37);
	color: #fff;
	box-shadow: var(--dp-shadow-md);
}

.dp-home-promo h2 {
	margin: 0;
	color: #fff;
}

.dp-home-promo p {
	margin: var(--dp-space-2) 0 0;
	color: rgb(255 255 255 / .8);
}

.dp-home-promo .dp-button {
	background: #fff;
	color: var(--dp-color-brand);
}

.dp-home-promo .dp-button:hover {
	background: var(--dp-color-gold-soft);
	color: var(--dp-color-brand);
}

.dp-home-guides {
	display: grid;
	gap: var(--dp-space-4);
}

.dp-home-guide {
	min-height: 13rem;
	padding: var(--dp-space-5);
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-xl);
	background: #fff;
	box-shadow: var(--dp-shadow-sm);
}

.dp-home-guide h3 {
	margin: var(--dp-space-3) 0 var(--dp-space-2);
	color: var(--dp-color-brand);
}

.dp-home-guide p {
	margin: 0;
	color: var(--dp-color-muted);
	font-size: var(--dp-text-sm);
}

.dp-home-guide a {
	display: inline-flex;
	margin-block-start: var(--dp-space-4);
	font-weight: 750;
	text-decoration: none;
}

.dp-home-editorial-grid {
	display: grid;
	gap: var(--dp-space-4);
}

.dp-home-article {
	overflow: hidden;
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-xl);
	background: #fff;
	box-shadow: var(--dp-shadow-sm);
}

.dp-home-article__media {
	aspect-ratio: 16 / 9;
	background:
		radial-gradient(circle at 70% 30%, rgb(215 164 74 / .22), transparent 22%),
		linear-gradient(145deg, var(--dp-color-beauty-soft), var(--dp-color-home-soft));
}

.dp-home-article__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dp-home-article__body {
	padding: var(--dp-space-5);
}

.dp-home-article h3 {
	margin: 0;
	font-size: var(--dp-text-lg);
}

.dp-home-article h3 a {
	color: var(--dp-color-ink);
	text-decoration: none;
}

.dp-home-article h3 a:hover {
	color: var(--dp-color-brand);
}

.dp-home-article p {
	margin: var(--dp-space-3) 0 0;
	color: var(--dp-color-muted);
	font-size: var(--dp-text-sm);
}

@media (max-width: 39.99rem) {
	.dp-home-world {
		padding-inline: var(--dp-space-5);
	}

	.dp-home-hero .dp-container {
		padding-inline: 0;
	}

	.dp-home-hero__banner {
		border-radius: 0;
		box-shadow: none;
	}

	.dp-home-hero__banner img {
		aspect-ratio: 2 / 1;
		object-fit: cover;
		object-position: center;
	}
}

@media (min-width: 48rem) {
	.dp-home-worlds {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dp-home-categories {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.dp-home-promo {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.dp-home-guides,
	.dp-home-editorial-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 72rem) {
	.dp-home-product-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Digipoost live homepage merchandising — RTL native-scroll carousels. */
.dp-home-carousel {
    position: relative;
    min-width: 0;
}
.dp-home-carousel__controls {
    display: flex;
    gap: .55rem;
    justify-content: flex-end;
    align-items: center;
    margin-block: -.45rem .85rem;
    direction: ltr;
}
.dp-home-carousel__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid rgb(91 41 75 / .24);
    border-radius: 100%;
    background: #fff;
    color: var(--dp-color-brand);
    font: 700 1.25rem/1 inherit;
    cursor: pointer;
    transition: background-color .2s, color .2s, border-color .2s;
}
.dp-home-carousel__arrow:hover,
.dp-home-carousel__arrow:focus-visible {
    color: #fff;
    background: var(--dp-color-brand);
    border-color: var(--dp-color-brand);
}
.dp-home-carousel__track.dp-home-product-grid,
.dp-home-carousel__track.dp-home-editorial-grid {
    display: grid;
    grid-auto-flow: column;
    grid-template-columns: none;
    grid-auto-columns: calc((100% - 3 * var(--dp-space-4)) / 4);
    gap: var(--dp-space-4);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgb(91 41 75 / .25) transparent;
    padding-block: .3rem 1rem;
    outline-offset: .3rem;
}
.dp-home-carousel__track > * {
    min-width: 0;
    height: 100%;
    scroll-snap-align: start;
}
.dp-home-carousel__track .dp-product-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.dp-home-carousel__track .dp-product-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.dp-home-carousel__track .dp-product-card__category {
    max-height: 2.5rem;
    overflow: hidden;
}
.dp-home-carousel__track .dp-home-product-card__action {
    margin-top: auto;
}
.dp-home-carousel--articles .dp-home-article {
    display: flex;
    flex-direction: column;
}
.dp-home-carousel--articles .dp-home-article__media {
    display: block;
    flex-shrink: 0;
}
.dp-home-carousel--articles .dp-home-article__body {
    flex: 1;
}
.dp-home-promo {
    grid-template-columns: minmax(0,1fr);
    min-width: 0;
    gap: clamp(1rem,2.5vw,2rem);
    overflow-wrap: anywhere;
    text-align: right;
    padding: clamp(1.4rem,3vw,2.6rem);
}
.dp-home-promo > div {
    min-width: 0;
    max-width: 45rem;
}
.dp-home-promo .dp-eyebrow,
.dp-home-promo h2,
.dp-home-promo p {
    display: block;
    overflow-wrap: normal;
    line-height: 1.8;
}
.dp-home-promo h2 {
    font-size: clamp(1.5rem,2.6vw,2.3rem);
}
.dp-home-promo .dp-button {
    width: fit-content;
    white-space: nowrap;
    justify-self: start;
}
@media (min-width: 48rem) and (max-width: 71.99rem) {
    .dp-home-carousel__track.dp-home-product-grid,
    .dp-home-carousel__track.dp-home-editorial-grid {
        grid-auto-columns: calc((100% - var(--dp-space-4)) / 2);
    }
}
@media (min-width: 48rem) {
    .dp-home-promo {
        grid-template-columns: minmax(0,1fr) auto;
    }
}
@media (max-width: 47.99rem) {
    .dp-home-carousel__track.dp-home-product-grid,
    .dp-home-carousel__track.dp-home-editorial-grid {
        grid-auto-columns: minmax(240px, 80%);
    }
    .dp-home-carousel__controls { margin-block: .1rem .7rem; }
    .dp-home-promo .dp-button { justify-self: stretch; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .dp-home-carousel__track.dp-home-product-grid,
    .dp-home-carousel__track.dp-home-editorial-grid { scroll-behavior: auto; }
}

/* Prevent grid auto-placement min-content width from widening the whole page.
   Only the individual carousel tracks may scroll horizontally. */
.dp-main.dp-home {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
}
.dp-home-section,
.dp-home-section > .dp-container {
    min-width: 0;
    max-width: 100%;
}
.dp-home-carousel {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}
.dp-home-carousel__track.dp-home-product-grid,
.dp-home-carousel__track.dp-home-editorial-grid {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
}

/* Owner-approved carousel arrows: vertically centered floating navigation. */
.dp-home-carousel { position:relative; }
.dp-home-carousel__controls {
    position:absolute;
    z-index:6;
    top:50%;
    inset-inline:0;
    height:0;
    display:flex;
    flex-direction:row;
    direction:rtl;
    justify-content:space-between;
    align-items:center;
    margin:0;
    padding-inline:.12rem;
    gap:0;
    pointer-events:none;
}
.dp-home-carousel__arrow {
    flex:0 0 auto;
    width:clamp(2.5rem,3.3vw,3rem);
    height:clamp(2.5rem,3.3vw,3rem);
    transform:translateY(-50%);
    display:inline-flex;
    justify-content:center;
    align-items:center;
    padding:0;
    border:1px solid rgba(91,41,75,.18);
    border-radius:50%;
    box-shadow:0 5px 22px rgba(30,19,30,.16);
    background:rgba(255,255,255,.96);
    color:#5B294B;
    pointer-events:auto;
    cursor:pointer;
    backdrop-filter:blur(6px);
    transition:box-shadow .2s,background .2s,transform .2s;
}
.dp-home-carousel__arrow svg { display:block; width:1.35rem; height:1.35rem; }
.dp-home-carousel__arrow:hover {
    background:#5B294B;
    color:white;
    box-shadow:0 7px 26px rgba(91,41,75,.3);
    transform:translateY(-50%) scale(1.06);
}
.dp-home-carousel__arrow:focus-visible {
    outline:3px solid #1C6A66;
    outline-offset:3px;
}
.dp-home-promo {
    grid-template-columns:minmax(0,1fr);
    justify-items:start;
}
.dp-home-promo > div { max-width:none; }
@media(max-width:47.99rem) {
    .dp-home-carousel__controls { padding-inline:0; }
    .dp-home-carousel__arrow { width:2.35rem;height:2.35rem; }
}
@media(prefers-reduced-motion:reduce) {
    .dp-home-carousel__arrow { transition:none; }
}
