.dhp-home {
	background: var(--dhp-color-secondary);
	overflow: clip;
}

.dhp-home-section {
	background-position: center;
	background-size: cover;
	box-sizing: border-box;
	margin-block: var(--dhp-home-margin);
	padding-block: var(--dhp-home-padding);
}

.dhp-home-section--full > .dhp-home-section__container { max-width: none; width: 100%; }
.dhp-home-section__container { margin-inline: auto; width: min(var(--dhp-home-width), calc(100% - 48px)); }
.dhp-home-section__container--narrow { max-width: 960px; }
.dhp-home-section__container--fluid { width: calc(100% - 48px); max-width: none; }
.dhp-home-section__header { margin: 0 auto clamp(32px, 3.5vw, 48px); max-width: 760px; text-align: center; }
.dhp-home-section__header h2,
.dhp-home-about__content h2,
.dhp-home-newsletter__inner h2 { font-size: clamp(42px, 5vw, 72px); font-weight: 400; line-height: .98; margin: 0; }
.dhp-home-section__header p { color: var(--dhp-color-muted); font-size: 16px; line-height: 1.75; margin: 18px auto 0; max-width: 620px; }
.dhp-home-section-banner { border-radius: inherit; isolation: isolate; margin: 0 0 clamp(28px, 4vw, 48px); max-height: 280px; overflow: hidden; position: relative; }
.dhp-home-section-banner.has-content::after { background: linear-gradient(90deg, rgba(0,0,0,.48), rgba(0,0,0,.08)); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.dhp-home-section-banner--center.has-content::after { background: linear-gradient(90deg, rgba(0,0,0,.18), rgba(0,0,0,.38), rgba(0,0,0,.18)); }
.dhp-home-section-banner--right.has-content::after { background: linear-gradient(270deg, rgba(0,0,0,.48), rgba(0,0,0,.08)); }
.dhp-home-section-banner__picture { display: block; height: 100%; }
.dhp-home-section-banner img { display: block; height: clamp(160px, 20vw, 280px); max-height: 280px; object-fit: cover; width: 100%; }
.dhp-home-section-banner__overlay { align-items: center; display: flex; inset: 0; padding: clamp(20px, 4vw, 56px); pointer-events: none; position: absolute; z-index: 2; }
.dhp-home-section-banner__content { max-width: min(580px, 70%); pointer-events: auto; text-align: left; }
.dhp-home-section-banner--center .dhp-home-section-banner__overlay { justify-content: center; }
.dhp-home-section-banner--center .dhp-home-section-banner__content { text-align: center; }
.dhp-home-section-banner--right .dhp-home-section-banner__overlay { justify-content: flex-end; }
.dhp-home-section-banner--right .dhp-home-section-banner__content { text-align: right; }
.dhp-home-section-banner__subtitle { color: var(--dhp-banner-subtitle); display: block; font-size: 11px; font-weight: 700; letter-spacing: .16em; margin-bottom: 8px; text-transform: uppercase; }
.dhp-home-section-banner h3 { color: var(--dhp-banner-title); font-size: clamp(28px, 4vw, 48px); font-weight: 400; line-height: 1; margin: 0; }
.dhp-home-section-banner p { color: var(--dhp-banner-description); font-size: clamp(13px, 1.3vw, 16px); line-height: 1.55; margin: 12px 0 0; }
.dhp-home-section-banner__button { align-items: center; background: var(--dhp-banner-button); border: 1px solid var(--dhp-banner-button); color: var(--dhp-banner-button-text); display: inline-flex; font-size: 11px; font-weight: 700; justify-content: center; letter-spacing: .14em; margin-top: 18px; min-height: 44px; padding: 0 24px; text-decoration: none; text-transform: uppercase; transition: filter .2s ease, transform .2s ease; }
.dhp-home-section-banner__button:hover { color: var(--dhp-banner-button-text); filter: brightness(.92); transform: translateY(-1px); }
.dhp-home-section-banner__stretched-link { inset: 0; position: absolute; z-index: 3; }
.dhp-home-kicker { color: var(--dhp-color-accent); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.dhp-home-button { align-items: center; background: var(--dhp-color-primary); border: 1px solid var(--dhp-color-primary); color: var(--dhp-color-secondary); display: inline-flex; font-size: 11px; font-weight: 700; justify-content: center; letter-spacing: .15em; min-height: 48px; padding: 0 28px; text-decoration: none; text-transform: uppercase; transition: .25s ease; }
.dhp-home-button:hover { background: var(--dhp-color-accent); border-color: var(--dhp-color-accent); color: var(--dhp-color-primary); transform: translateY(-1px); }
.dhp-home-button--light { background: #fff; border-color: #fff; color: #111; }
.dhp-home-button--ghost { background: transparent; border-color: rgba(255,255,255,.7); color: #fff; }
.dhp-home-text-link { border-bottom: 1px solid currentColor; color: var(--dhp-color-primary); font-size: 11px; font-weight: 700; letter-spacing: .14em; padding-bottom: 5px; text-decoration: none; text-transform: uppercase; }
.dhp-home-slider { position: relative; }
.dhp-home-slider__viewport { overflow: hidden; }
.dhp-home-slider__track { display: flex; transition-property: transform; transition-timing-function: cubic-bezier(.4,0,.2,1); will-change: transform; }
.dhp-home-slider [data-dhp-slide] { flex: 0 0 100%; min-width: 0; }

.dhp-home-tabs__list { display: flex; gap: 28px; justify-content: center; margin-bottom: 38px; overflow-x: auto; scrollbar-width: none; }
.dhp-home-tabs__list button { align-items: center; background: transparent; border: 0; border-bottom: 1px solid transparent; color: var(--dhp-color-muted); cursor: pointer; display: inline-flex; flex: 0 0 auto; font-size: 12px; font-weight: 700; gap: 8px; letter-spacing: .12em; padding: 8px 0; text-transform: uppercase; }
.dhp-home-tabs__list button[aria-selected="true"] { border-color: var(--dhp-color-accent); color: var(--dhp-color-primary); }
.dhp-home-tabs__list img { height: 24px; object-fit: contain; width: 24px; }
.dhp-home-tabs__panel[hidden] { display: none; }
.dhp-home-products ul.products { gap: var(--dhp-home-gap); }
.dhp-home-products[data-columns-desktop="1"] ul.products { grid-template-columns: repeat(1,minmax(0,1fr)); }
.dhp-home-products[data-columns-desktop="2"] ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); }
.dhp-home-products[data-columns-desktop="3"] ul.products { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dhp-home-products[data-columns-desktop="4"] ul.products { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dhp-home-products[data-columns-desktop="5"] ul.products { grid-template-columns: repeat(5,minmax(0,1fr)); }
.dhp-home-products[data-columns-desktop="6"] ul.products { grid-template-columns: repeat(6,minmax(0,1fr)); }
.dhp-home-carousel[data-dhp-slider] { position: relative; }
.dhp-home-carousel[data-dhp-slider] .dhp-home-slider__viewport { padding: 8px 4px 40px; }
.dhp-home-carousel[data-dhp-slider] ul.products { display: flex; gap: var(--dhp-home-gap); transition-property: transform; transition-timing-function: cubic-bezier(.4,0,.2,1); will-change: transform; }
.dhp-home-products--slider[data-columns-desktop="1"] ul.products > li { flex: 0 0 100%; }
.dhp-home-products--slider[data-columns-desktop="2"] ul.products > li { flex: 0 0 calc((100% - var(--dhp-home-gap))/2); }
.dhp-home-products--slider[data-columns-desktop="3"] ul.products > li { flex: 0 0 calc((100% - 2*var(--dhp-home-gap))/3); }
.dhp-home-products--slider[data-columns-desktop="4"] ul.products > li { flex: 0 0 calc((100% - 3*var(--dhp-home-gap))/4); }
.dhp-home-products--slider[data-columns-desktop="5"] ul.products > li { flex: 0 0 calc((100% - 4*var(--dhp-home-gap))/5); }
.dhp-home-products--slider[data-columns-desktop="6"] ul.products > li { flex: 0 0 calc((100% - 5*var(--dhp-home-gap))/6); }

.dhp-home-lightbox { align-items: center; background: rgba(0,0,0,.92); border: 0; display: flex; inset: 0; justify-content: center; padding: 32px; position: fixed; z-index: 99999; }
.dhp-home-lightbox img { max-height: 90vh; max-width: 90vw; object-fit: contain; }
.dhp-home-lightbox__close { background: transparent; border: 0; color: #fff; cursor: pointer; font-size: 32px; position: absolute; right: 24px; top: 18px; }
@media (max-width: 1024px) {
	.dhp-home-products[data-columns-tablet="1"] ul.products { grid-template-columns: repeat(1,minmax(0,1fr)); }
	.dhp-home-products[data-columns-tablet="2"] ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.dhp-home-products[data-columns-tablet="3"] ul.products { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.dhp-home-products[data-columns-tablet="4"] ul.products { grid-template-columns: repeat(4,minmax(0,1fr)); }
	.dhp-home-products--slider[data-columns-tablet="1"] ul.products > li { flex-basis: 100%; }
	.dhp-home-products--slider[data-columns-tablet="2"] ul.products > li { flex-basis: calc((100% - var(--dhp-home-gap))/2); }
	.dhp-home-products--slider[data-columns-tablet="3"] ul.products > li { flex-basis: calc((100% - 2*var(--dhp-home-gap))/3); }
	.dhp-home-products--slider[data-columns-tablet="4"] ul.products > li { flex-basis: calc((100% - 3*var(--dhp-home-gap))/4); }
}
@media (max-width: 767px) {
	.dhp-home-section { padding-block: clamp(56px, 14vw, 78px); }
	.dhp-home-section__container, .dhp-home-section__container--fluid { width: calc(100% - 32px); }
	.dhp-home-section__header h2, .dhp-home-about__content h2, .dhp-home-newsletter__inner h2 { font-size: var(--dhp-home-mobile-heading); }
	.dhp-home-tabs__list { gap: 22px; justify-content: flex-start; margin-inline: -16px; padding-inline: 16px; }
	.dhp-home-products[data-columns-mobile="1"] ul.products { grid-template-columns: repeat(1,minmax(0,1fr)); }
	.dhp-home-products[data-columns-mobile="2"] ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.dhp-home-products--slider[data-columns-mobile="1"] ul.products > li { flex-basis: 100%; }
	.dhp-home-products--slider[data-columns-mobile="2"] ul.products > li { flex-basis: calc((100% - var(--dhp-home-gap))/2); }
	.dhp-home-carousel[data-dhp-slider] .dhp-home-slider__viewport { padding-bottom: 36px; }
	.dhp-home-section-banner__content { max-width: 88%; }
	.dhp-home-section-banner__overlay { padding: 20px; }
	.dhp-home-section-banner p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
}

html.dhp-home-smooth-scroll { scroll-behavior: smooth; }
.dhp-home--motion.is-motion-ready .dhp-home-section { opacity: 0; transform: translate3d(0, var(--dhp-home-motion-distance, 28px), 0); transition: opacity var(--dhp-home-motion-duration, 700ms) cubic-bezier(.22,1,.36,1), transform var(--dhp-home-motion-duration, 700ms) cubic-bezier(.22,1,.36,1); }
.dhp-home--animation-fade-in.is-motion-ready .dhp-home-section { transform: none; }
.dhp-home--animation-slide-left.is-motion-ready .dhp-home-section { transform: translate3d(calc(-1 * var(--dhp-home-motion-distance, 28px)), 0, 0); }
.dhp-home--animation-slide-right.is-motion-ready .dhp-home-section { transform: translate3d(var(--dhp-home-motion-distance, 28px), 0, 0); }
.dhp-home--animation-zoom-in.is-motion-ready .dhp-home-section { transform: scale(.965); }
.dhp-home--motion.is-motion-ready .dhp-home-section.is-motion-visible { opacity: 1; transform: none; will-change: auto; }
.dhp-home-section--newsletter {
	margin-bottom: max(var(--dhp-home-margin), clamp(32px, 5vw, 64px));
}

@media (prefers-reduced-motion: reduce) {
	.dhp-home * { scroll-behavior: auto !important; }
}

/* Homepage interaction targets meet touch and keyboard accessibility sizing. */
.dhp-home-tabs__list button,
.dhp-home .dhp-global-slider__nav,
.dhp-home .dhp-product__wishlist,
.dhp-home-lightbox__close {
	min-height: 44px;
	min-width: 44px;
}
.dhp-home :focus-visible {
	outline: 2px solid var(--dhp-color-accent);
	outline-offset: 3px;
}
