/* ==========================================================================
   Dr. Martens storefront additions on top of the reference CSS modules.

   RULE: never override a reference component class (`.G2H0Lq_*`, `.PLPs6q_*`,
   `._2bXnlW_*`, `.jZ8eKG_*`, `.tcli2G_*`, `.FflACq_*`, `.PyiYLW_*`, …).
   The reference CSS is the pixel source of truth and the markup mirrors the
   reference DOM; this file only styles things the reference site does not
   have (WooCommerce forms, countdown, social proof, local payment icons) and
   adds a small number of defensive rules.
   ========================================================================== */

:root {
	--drm-black: #000;
	--drm-white: #fff;
	--drm-grey: #6E6E6E;
	--drm-line: #D8D8D8;
	--drm-bg-soft: #F4F2EE;
	--drm-error: #B3261E;
}

html { -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-x: hidden; }
img, svg, video { max-width: 100%; }
main.drm-main { display: block; min-height: 40vh; }

/* WordPress admin bar offsets */
body.admin-bar .yDhQaW_nav { top: 32px; }
body.admin-bar .k1imiG_nav { top: 32px; }

.drm-visually-hidden,
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

/* ---------------------------------------------------------------- utility */
.drm-container { width: 100%; max-width: 96rem; margin-inline: auto; padding-inline: clamp(1rem, 2.5vw, 2.5rem); }
.drm-page { padding-block: clamp(2rem, 5vw, 4.5rem); }
.drm-page-title { font-size: clamp(2rem, 4.2vw, 3.5rem); font-weight: 900; line-height: .92; text-transform: uppercase; margin: 0 0 2rem; }
.drm-page-content { max-width: 52rem; line-height: 1.55; }
.drm-page-content h2, .drm-page-content h3 { text-transform: uppercase; font-weight: 900; line-height: 1; margin-top: 2.5rem; }
.drm-page-content a { text-decoration: underline; }
.drm-link { font-size: .8125rem; text-decoration: underline; color: inherit; }
.drm-empty-state { padding: 3rem 1rem; text-align: center; color: var(--drm-grey); }
.drm-route-fallback { padding: 6rem 0; }
.drm-404 { padding: 6rem 0; text-align: center; }
.drm-404__title { font-size: 5rem; line-height: 1; margin: 0; }
.drm-placeholder { display: block; width: 100%; height: 100%; background: #E5E1DC; }
.drm-placeholder--cover { position: absolute !important; inset: 0; }
/* Keep the media box of an image that has not been mapped to S3 yet. */
.PLPs6q_imageContainer .drm-placeholder { aspect-ratio: 4 / 5; }
._3PxZrq_visual .drm-placeholder { aspect-ratio: 4 / 5; }
.tcli2G_subcategoryImageWrap .drm-placeholder { position: absolute; inset: 0; }
.jZ8eKG_slide .drm-placeholder { aspect-ratio: 4 / 5; }

/* Buttons used by WooCommerce / native forms (reference has its own button) */
.drm-btn {
	display: inline-flex; align-items: center; justify-content: center;
	gap: .5rem; min-height: 3rem; padding: .875rem 1.75rem;
	font: inherit; font-size: .875rem; font-weight: 700;
	letter-spacing: .04em; text-transform: uppercase;
	border: 1px solid var(--drm-black); border-radius: 0;
	background: transparent; color: var(--drm-black);
	cursor: pointer; text-decoration: none;
	transition: background .2s ease, color .2s ease;
}
.drm-btn:hover { background: var(--drm-black); color: var(--drm-white); }
.drm-btn--solid { background: var(--drm-black); color: var(--drm-white); }
.drm-btn--solid:hover { background: #333; }
.drm-btn--outline { background: transparent; }
.drm-btn--block { width: 100%; margin-top: 1rem; }

.drm-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.drm-table th, .drm-table td { text-align: left; padding: .75rem .5rem; border-bottom: 1px solid var(--drm-line); }
.drm-table th { text-transform: uppercase; font-size: .75rem; }
.drm-size-table { max-width: 26rem; }

/* ------------------------------------------------------------- header bits */
/* Cart count badge (the reference renders it client side). */
.drm-bag-count {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 1.1rem; height: 1.1rem; margin-left: .25rem;
	font-size: .625rem; font-weight: 700; line-height: 1;
	background: var(--drm-black); color: var(--drm-white); border-radius: 999px;
}
.yDhQaW_nav[data-theme="dark"] .drm-bag-count { background: var(--drm-white); color: var(--drm-black); }

/* Logo sizing when rendered through <img>/<svg> controls of our own. */
.drm-footer-logo { width: 100%; height: auto; display: block; }
.k1imiG_closedLogo img { width: 100%; height: auto; display: block; }

/* Drawer/backdrop safety: clipped panels must not steal pointer events. */
.XD44Dq_panel[data-active="true"] { z-index: 2; }
.k1imiG_overlay:not([data-active="true"]) .XD44Dq_panels { pointer-events: none; }
.ushRGW_backdrop {
	position: fixed; inset: 0; background: rgba(0, 0, 0, .4);
	opacity: 0; pointer-events: none; transition: opacity .2s ease;
	z-index: var(--z-dropdown, 2);
}
.XD44Dq_menu.k1imiG_overlay { z-index: var(--z-dropdown, 2); }
.ushRGW_backdrop[data-active="true"] { opacity: 1; pointer-events: auto; }

/* Panels (dialogs) with our own close/header markup. */
.bIoBEW_controls { display: flex; justify-content: flex-end; padding: .75rem var(--grid-margin, 1.5rem) 0; }
.XZgY7a_dismiss { background: none; border: 0; padding: .5rem; cursor: pointer; }
.XZgY7a_dismiss svg { width: 1.25rem; height: 1.25rem; }
.joPaqW_content { padding: 0 var(--grid-margin, 1.5rem); }
.El5KQq_footer { padding: 1rem var(--grid-margin, 1.5rem); border-top: 1px solid var(--drm-line); }
._3XhS1a_panelFooter ._3XhS1a_footer { display: flex; align-items: center; gap: .75rem; }
._3XhS1a_icon { width: 1.5rem; height: 1.5rem; }
._3XhS1a_footerWrapper { display: flex; flex-direction: column; font-size: .8125rem; flex: 1; }

/* ------------------------------------------------------- PDP additions */
/* Offer countdown (not part of the reference: the storefront runs a daily
   50% sale that ends at midnight Europe/Paris). */
.drm-offer-countdown {
	display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
	font-size: .8125rem; padding: .625rem .75rem; background: var(--drm-bg-soft);
	margin-top: .75rem;
}
.drm-offer-countdown__label { text-transform: uppercase; font-weight: 700; }
.drm-offer-countdown__clock { font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: .02em; }

/* Fake social proof (deterministic per product / 5 minute window). */
.drm-social-proof { font-size: .8125rem; display: grid; gap: .375rem; margin-top: .75rem; }
.drm-social-proof__online { display: inline-flex; align-items: center; gap: .375rem; margin: 0; }
.drm-social-proof__stock { margin: 0; }
.drm-social-proof__stock.is-low { color: var(--drm-error); font-weight: 700; }
.drm-stock-bar { height: 3px; background: rgba(0, 0, 0, .12); max-width: 16rem; }
.drm-stock-bar__fill { display: block; height: 100%; background: var(--drm-black); }
.drm-live-dot {
	width: .5rem; height: .5rem; border-radius: 999px; background: #1F9D55;
	animation: drm-pulse 1.8s infinite;
}
@keyframes drm-pulse {
	0% { box-shadow: 0 0 0 0 rgba(31, 157, 85, .5); }
	70% { box-shadow: 0 0 0 .5rem rgba(31, 157, 85, 0); }
	100% { box-shadow: 0 0 0 0 rgba(31, 157, 85, 0); }
}

/* The PDP sticky add-to-bag is styled by the reference CSS (data-visible). */

/* Error message under the add-to-cart form. */
.drm-form-error { color: var(--drm-error); font-size: .8125rem; margin: .5rem 0 0; }

/* Read-more clamp of the PDP description. */
._97xL7W_description[data-expanded="false"] { max-height: 11rem; overflow: hidden; }
.oLqJnq_panelContent { padding-bottom: 1rem; font-size: .875rem; line-height: 1.5; color: #333; }
.oLqJnq_panel { border-top: 1px solid var(--drm-line); }

/* Rating row (reference uses a review widget). */
.drm-rating { display: inline-flex; align-items: center; gap: .375rem; margin-top: .75rem; font-size: .8125rem; }
.drm-rating__stars { display: inline-flex; gap: 1px; }
.drm-star { width: .875rem; height: .875rem; }
.drm-star--empty { opacity: .25; }

/* Swatch fallback when a sibling has no image. */
.JXa7eG_swatch { display: block; width: 100%; height: 100%; }
._542P0W_more { font-size: .75rem; align-self: center; }

/* ------------------------------------------------------------- cart page */
.drm-cart-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
.drm-cart-line { display: grid; grid-template-columns: 6rem minmax(0, 1fr) auto; gap: 1rem; padding-block: 1.25rem; border-top: 1px solid var(--drm-line); }
.drm-cart-line__image { aspect-ratio: 3 / 4; background: var(--drm-bg-soft); width: 100%; object-fit: cover; }
.drm-cart-line__name { font-weight: 700; text-transform: uppercase; font-size: .875rem; text-decoration: none; color: inherit; }
.drm-cart-line__meta { font-size: .8125rem; color: var(--drm-grey); margin-top: .25rem; }
.drm-cart-line__price { font-weight: 700; }
.drm-qty { display: inline-flex; align-items: center; border: 1px solid var(--drm-line); margin-top: .5rem; }
.drm-qty__btn { width: 2rem; height: 2rem; border: 0; background: none; font: inherit; cursor: pointer; }
.drm-qty__input { width: 2.5rem; height: 2rem; border: 0; text-align: center; font: inherit; }
.drm-cart-line__remove { background: none; border: 0; padding: 0; font: inherit; font-size: .75rem; text-decoration: underline; cursor: pointer; color: var(--drm-grey); }
.drm-cart-summary { background: var(--drm-bg-soft); padding: clamp(1rem, 2.5vw, 2rem); position: sticky; top: 6rem; }
.drm-cart-summary__title { font-size: 1.125rem; font-weight: 900; text-transform: uppercase; margin: 0 0 1rem; }
.drm-cart-summary__rows { margin: 0; }
.drm-cart-summary__row { display: flex; justify-content: space-between; gap: 1rem; padding-block: .5rem; font-size: .875rem; }
.drm-cart-summary__row--total { border-top: 1px solid var(--drm-line); margin-top: .5rem; padding-top: .75rem; font-weight: 700; font-size: 1rem; }
.drm-cart-summary__tax { font-size: .75rem; color: var(--drm-grey); margin: .25rem 0 0; }
.drm-cart-empty { padding: 2rem 0; color: var(--drm-grey); }

/* ------------------------------------------------------------ checkout */
.drm-checkout__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
.drm-checkout__section { padding-block: 1.5rem; border-top: 1px solid var(--drm-line); }
.drm-checkout__section:first-child { border-top: 0; padding-top: 0; }
.drm-checkout__section-title { font-size: 1rem; font-weight: 900; text-transform: uppercase; margin: 0 0 1rem; }
.drm-checkout__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.drm-checkout__fields .form-row { display: flex; flex-direction: column; gap: .375rem; margin: 0; }
.drm-checkout__fields .form-row-wide { grid-column: 1 / -1; }
.drm-checkout__fields label { font-size: .75rem; text-transform: uppercase; letter-spacing: .02em; }
.drm-checkout__fields input,
.drm-checkout__fields select,
.drm-checkout__fields textarea,
.drm-input,
.R9ejxW_input {
	width: 100%; min-height: 2.875rem; padding: .5rem .125rem;
	border: 0; border-bottom: 1px solid var(--drm-black); background: transparent;
	font: inherit; font-size: .9375rem; border-radius: 0;
}
.drm-checkout__fields textarea { min-height: 5rem; border: 1px solid var(--drm-black); padding: .5rem; }
.drm-checkout__aside { position: sticky; top: 6rem; background: var(--drm-bg-soft); padding: clamp(1rem, 2.5vw, 2rem); }
.drm-checkout__summary-title { font-size: 1.125rem; font-weight: 900; text-transform: uppercase; margin: 0 0 1rem; }
.drm-checkout__lines { display: grid; gap: .75rem; }
.drm-checkout__line { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: .75rem; font-size: .8125rem; align-items: center; }
.drm-checkout__line img { width: 3rem; aspect-ratio: 3 / 4; object-fit: cover; }
.drm-checkout__totals { margin: 1rem 0 0; font-size: .875rem; }
.drm-checkout__totals > div { display: flex; justify-content: space-between; padding-block: .5rem; }
.drm-checkout__total { border-top: 1px solid var(--drm-line); margin-top: .5rem; padding-top: .75rem !important; font-weight: 700; font-size: 1rem; }
.drm-checkout__legal { display: grid; gap: .75rem; }
.drm-checkbox { display: flex; gap: .625rem; align-items: flex-start; font-size: .8125rem; line-height: 1.45; cursor: pointer; }
.drm-checkbox input { margin-top: .2rem; width: 1rem; height: 1rem; flex: 0 0 auto; }
.drm-checkbox a { text-decoration: underline; color: inherit; }
.f_pWCW_input { position: absolute; opacity: 0; }
.drm-checkout__secure { font-size: .75rem; color: var(--drm-grey); text-align: center; margin-top: .75rem; }
.drm-gateway__option { display: flex; align-items: center; gap: .5rem; font-size: .875rem; }
.drm-gateway__box { display: grid; gap: .75rem; padding: .75rem 0; }
.drm-gateway__row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }

/* 26 local payment icons (checkout). */
.pay-brands { display: flex; flex-wrap: wrap; gap: .375rem; list-style: none; padding: 0; margin: .75rem 0 0; }
.pay-brands__item { display: flex; }
.pay-brands__item img {
	width: 42px; height: 26px; object-fit: contain;
	background: #fff; border: 1px solid var(--drm-line); border-radius: 2px; padding: 2px;
}

/* --------------------------------------------------------------- account */
.drm-form { display: grid; gap: 1.25rem; max-width: 26rem; }
.drm-account__nav { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; font-size: .875rem; text-transform: uppercase; }
.drm-account__orders { margin-top: 2rem; }

/* ---------------------------------------------------------------- search */
.drm-search-form { display: grid; gap: .75rem; margin-bottom: 2rem; max-width: 36rem; }
.drm-suggestions { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .5rem; }
.drm-suggestions__item { display: flex; gap: .75rem; align-items: center; font-size: .875rem; text-decoration: none; color: inherit; }
.drm-suggestions__item img { width: 3rem; aspect-ratio: 3 / 4; object-fit: cover; }

/* ------------------------------------------------- added to cart panel */
.drm-added-card { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: 1rem; align-items: start; }
.drm-added-card__media img, .drm-added-card__media .drm-placeholder { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; background: var(--drm-bg-soft); display: block; }
.drm-added-card__title { margin: 0; font-weight: 700; text-transform: uppercase; font-size: .875rem; }
.drm-added-card__subtitle { margin: .25rem 0 0; font-size: .8125rem; color: var(--drm-grey); }
.drm-added-card__price { margin: .5rem 0 0; font-weight: 700; }
.drm-added-card__qty { margin: .25rem 0 0; font-size: .8125rem; }
.drm-added-related { margin-top: 1.5rem; }
.drm-added-related__title { font-size: .875rem; text-transform: uppercase; font-weight: 900; }
.drm-added-related__list { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }

/* --------------------------------------------------------------- wishlist */
.drm-wishlist__empty { color: var(--drm-grey); }
.drm-wishlist__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; list-style: none; padding: 0; margin: 0; }

/* ------------------------------------------------------- filter / sort */
#filter-sort-panel details { border-top: 1px solid var(--drm-line); padding-block: 1rem; }
#filter-sort-panel summary { cursor: pointer; list-style: none; }
#filter-sort-panel summary::-webkit-details-marker { display: none; }
.drm-price-range { display: flex; gap: 1rem; padding-top: .75rem; }
.drm-price-range__field { display: flex; flex-direction: column; gap: .25rem; font-size: .75rem; text-transform: uppercase; }
.drm-price-range input { width: 6rem; min-height: 2.5rem; border: 1px solid var(--drm-black); padding: .25rem .5rem; font: inherit; }

/* ------------------------------------------------------- footer extras */
.lN4Zoa_paymentMethods, .w-7plW_paymentMethods { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .375rem; }
.lN4Zoa_paymentIcon svg, .w-7plW_paymentIcon svg { width: 2.25rem; height: 1.5rem; }
.lN4Zoa_paymentIcon, .w-7plW_paymentIcon { display: flex; }

/* ----------------------------------------------------------- back to top */
.drm-back-to-top { display: flex; justify-content: flex-end; padding: 0 var(--grid-margin, 2rem); }

/* ------------------------------------------------------------ responsive */
@media (max-width: 1023px) {
	.drm-cart-layout, .drm-checkout__grid { grid-template-columns: minmax(0, 1fr); }
	.drm-cart-summary, .drm-checkout__aside { position: static; }
}
@media (max-width: 767px) {
	.drm-checkout__fields { grid-template-columns: minmax(0, 1fr); }
}

/* ---------------------------------------------------------- cookie consent */
.drm-cookie {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: calc(var(--z-modal, 900) - 1);
	background: var(--drm-white); color: var(--drm-black);
	border-top: 1px solid var(--drm-black);
	box-shadow: 0 -2px 16px rgba(0, 0, 0, .12);
	max-height: 85vh; overflow-y: auto;
}
.drm-cookie[hidden] { display: none; }
.drm-cookie__inner {
	display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
	max-width: 96rem; margin-inline: auto;
	padding: 1rem clamp(1rem, 2.5vw, 2.5rem);
}
.drm-cookie__title { font-size: 1rem; font-weight: 900; text-transform: uppercase; margin: 0 0 .375rem; }
.drm-cookie__description { font-size: .8125rem; line-height: 1.45; margin: 0; max-width: 46rem; }
.drm-cookie__actions { display: flex; gap: .5rem; flex-wrap: wrap; flex: 0 0 auto; }
.drm-cookie__actions .drm-btn { min-height: 2.5rem; padding: .5rem 1.25rem; font-size: .8125rem; }
.drm-btn--link { border: 0; text-decoration: underline; padding-inline: .5rem; }
.drm-cookie__panel { border-top: 1px solid var(--drm-line); padding: 1rem clamp(1rem, 2.5vw, 2.5rem) 1.25rem; max-width: 96rem; margin-inline: auto; }
.drm-cookie__panel[hidden] { display: none; }
.drm-cookie__panel-title { font-size: .9375rem; font-weight: 900; text-transform: uppercase; margin: 0 0 .75rem; }
.drm-cookie__categories { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.drm-cookie__category { border-top: 1px solid var(--drm-line); padding-top: .75rem; }
.drm-cookie__category-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .875rem; }
.drm-cookie__always { font-size: .75rem; color: var(--drm-grey); }
.drm-cookie__category-desc { font-size: .8125rem; color: #444; margin: .25rem 0 0; }
.drm-cookie__panel-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }
.drm-cookie-manage {
	background: none; border: 0; padding: 0; margin-right: 1rem;
	font: inherit; font-size: .75rem; color: inherit; text-decoration: underline; cursor: pointer;
}
body.drm-cookie-open .k1imiG_nav,
html.drm-cookie-open .k1imiG_nav {
	/* Keep the layout anchor fixed when consent appears after first paint. */
	bottom: 0;
	transform: translateY(calc(0px - var(--drm-cookie-height, 0px)));
}
body.drm-cookie-open .k1imiG_closedLogo,
html.drm-cookie-open .k1imiG_closedLogo {
	/* Match the existing consent position without changing its layout box. */
	transform: translateY(calc(var(--nav-height) + env(safe-area-inset-bottom, 0px) - var(--drm-cookie-height, 0px)));
}
@media (max-width: 767px) {
	.drm-cookie__inner { flex-direction: column; align-items: flex-start; gap: .75rem; }
	.drm-cookie__actions { width: 100%; }
	.drm-cookie__actions .drm-btn { flex: 1 1 auto; }
	body.drm-cookie-open { padding-bottom: 0; }
}

/* PLP filter panel footer */
#filter-sort-panel .Xc9Fzq_footer { align-items: center; }
#filter-sort-panel .Xc9Fzq_clearFilters { font-size: .8125rem; text-decoration: underline; color: inherit; }
#filter-sort-panel .Xc9Fzq_showResultsButton { display: inline-flex; align-items: center; gap: .5rem; border: 0; background: var(--drm-black); color: var(--drm-white); min-height: 2.75rem; padding: .5rem 1.25rem; font: inherit; font-size: .8125rem; text-transform: uppercase; cursor: pointer; }
#filter-sort-panel .Xc9Fzq_showResultsRightLabel { font-weight: 700; }

/* ------------------------------------------------------- minimal checkout header */
.drm-min-header {
	position: absolute; top: 0; left: 0; right: 0; z-index: 5;
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
	padding: .75rem clamp(1rem, 3vw, 2.5rem);
	background: transparent; pointer-events: none;
}
.drm-min-header a { pointer-events: auto; }
main.drm-main[data-route="checkout"] { padding-top: 0; }
.drm-min-header__logo { grid-column: 2; display: block; }
.drm-min-header__logo img { width: 140px; height: auto; display: block; }
.drm-min-header__cart {
	grid-column: 3; justify-self: end; position: relative;
	display: inline-flex; align-items: center; color: inherit;
}
.drm-min-header__cart svg { width: 1.5rem; height: 1.5rem; }
.drm-min-header__count {
	position: absolute; top: -.5rem; right: -.65rem;
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 1.1rem; height: 1.1rem; padding-inline: .2rem;
	background: var(--drm-black); color: var(--drm-white);
	font-size: .625rem; font-weight: 700; border-radius: 999px;
}
.drm-min-header__count[hidden] { display: none; }
.drm-added-card__subtitle[hidden] { display: none; }

/* ---------------------------------------------------- account drawer tabs */
.drm-account-drawer__tabs { display: flex; gap: 1.5rem; border-bottom: 1px solid var(--drm-line); margin-bottom: 1.5rem; }
.drm-account-drawer__tab {
	background: none; border: 0; padding: .75rem 0; font: inherit; font-size: .875rem;
	text-transform: uppercase; font-weight: 700; color: var(--drm-grey); cursor: pointer;
	border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.drm-account-drawer__tab.is-active { color: var(--drm-black); border-bottom-color: var(--drm-black); }
.drm-account-drawer__note { font-size: .875rem; color: var(--drm-grey); }
#account-panel .drm-btn--solid,
#account-panel .drm-btn--solid .drm-btn__label { color: #fff; }

/* -------------------------------------------------- home community carousel
   The reference animates this carousel with JS (grid stacking + transforms).
   We keep the same DOM and drive it with a small coverflow implementation. */
._5YSPnW_container ._6M25fq_root {
	position: relative;
	display: block;
	height: calc(33.333cqw * 1.5 + 9rem);
	margin-block-start: 4rem;
	max-width: 100vw;
	overflow: hidden;
}
._5YSPnW_container ._6M25fq_item {
	position: absolute;
	top: 0;
	left: 50%;
	width: 33.333cqw;
	display: block;
	opacity: 0;
	transition: transform var(--dur-panel, .42s) var(--ease-regular, ease), opacity var(--dur-short, .2s) ease;
	transform-origin: center top;
	will-change: transform, opacity;
}
._5YSPnW_container ._6M25fq_item[data-active="true"] { opacity: 1; z-index: 3; }
._5YSPnW_container ._6M25fq_slide { display: block; }
._5YSPnW_container ._6M25fq_mask {
	width: 100%;
	aspect-ratio: 2 / 3;
	overflow: hidden;
	position: relative;
}
._5YSPnW_container ._5YSPnW_slideAsset { display: block; width: 100%; height: 100%; object-fit: cover; }
._5YSPnW_container ._6M25fq_footer {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: calc(33.333cqw * 1.5 + 1.25rem);
	width: 24rem;
	max-width: 90vw;
	opacity: 0;
	transition: opacity var(--dur-short, .2s) ease;
	pointer-events: none;
}
._5YSPnW_container ._6M25fq_item[data-active="true"] ._6M25fq_footer { opacity: 1; pointer-events: auto; }
._5YSPnW_container ._5YSPnW_productImage { aspect-ratio: 4/5; width: 7.5rem; margin-inline: auto; position: relative; }
._5YSPnW_container ._5YSPnW_productImage img { width: 100%; height: 100%; object-fit: cover; display: block; }
._5YSPnW_container ._5YSPnW_productName { text-transform: uppercase; font-weight: 700; font-size: .875rem; display: block; }
._5YSPnW_container ._5YSPnW_productPrice { font-size: .875rem; display: block; margin-block-start: .25rem; }
@media (max-width: 767px) {
	._5YSPnW_container ._6M25fq_root { height: calc(70cqw * 1.5 + 8rem); }
	._5YSPnW_container ._6M25fq_item { width: 70cqw; }
}

/* ---------------------------------------------------- PLP card requirements */
/* Product card image ratio follows the reference CSS: 4/5 (see DELIVERY note),
   plus the contract requirement of a single line title with ellipsis. */
.PLPs6q_imageContainer { aspect-ratio: 4 / 5; overflow: hidden; background: var(--drm-bg-soft); }
.PLPs6q_imageContainer .PLPs6q_image,
.PLPs6q_imageContainer img.PLPs6q_image { width: 100%; height: 100%; object-fit: cover; display: block; }
.PLPs6q_summary .fopkqG_title,
.PLPs6q_summary .fopkqG_title span {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 100%;
}
.fopkqG_originalPrice .drm-price-regular,
s.drm-price-regular { text-decoration: line-through; }

/* ------------------------------------------------------------ content pages */
.drm-content-page .drm-page { padding-block-end: 6rem; }
/* The reference container class is a 12 column grid; content pages are a single
   editorial column, so neutralise the grid here (scoped to our page wrapper). */
.drm-content-page .A4_JmG_container {
	display: block;
	padding-inline: var(--page-gutter, 16px);
}
.drm-content-page .A4_JmG_container > * { grid-column: auto; }
.drm-page-hero {
	position: relative;
	padding-block: 4rem 2rem;
	background: var(--drm-bg-soft);
	overflow: hidden;
}
.drm-page-hero .drm-page-breadcrumb { margin-block-end: 2rem; }
.drm-page-hero .drm-page-title {
	width: 100%;
	font-size: clamp(3.5rem, 8vw, 9rem);
	line-height: max(.8, var(--leading-min-headline, 0));
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0;
	margin: 0;
	max-width: 24ch;
	text-wrap: balance;
}
.drm-page-body { padding-block: 3rem 0; }
.drm-page-content {
	max-width: 82rem;
	width: 100%;
	min-width: 0;
	overflow-wrap: anywhere;
	margin-inline: auto;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--content-container-color, #000);
}
.drm-page-content > * + * { margin-block-start: 1.25rem; }
.drm-page-content h2 {
	font-size: clamp(1.75rem, 3vw, 2.75rem);
	line-height: 1.05;
	font-weight: 800;
	text-transform: uppercase;
	margin-block: 3rem 1rem;
}
.drm-page-content h3 {
	font-size: clamp(1.25rem, 2vw, 1.75rem);
	line-height: 1.15;
	font-weight: 700;
	margin-block: 2rem .75rem;
}
.drm-page-content a { text-decoration: underline; color: inherit; }
.drm-page-content img { max-width: 100%; height: auto; display: block; margin-block: 1.5rem; }
.drm-page-content ul, .drm-page-content ol { padding-inline-start: 1.5rem; }
.drm-page-content li + li { margin-block-start: .5rem; }
.drm-page-content table { width: 100%; max-width: 100%; table-layout: fixed; border-collapse: collapse; margin-block: 1.5rem; font-size: .9375rem; }
.drm-page-content th, .drm-page-content td { border: 1px solid rgba(0, 0, 0, .18); padding: .5rem .75rem; text-align: left; vertical-align: top; }
.drm-page-content th { font-weight: 700; text-transform: uppercase; background: rgba(0, 0, 0, .04); }
.drm-page-content--empty { color: rgba(0, 0, 0, .6); }
/* FAQ answers keep native disclosure semantics; missing media is removed in
   the renderer so no artificial box or clipped answer space is reserved. */
.drm-page-content.drm-faq { max-width: 64rem; }
.drm-faq > .drm-faq-category { margin-block-start: 0; border-bottom: 2px solid currentColor; }
.drm-faq-category > summary { padding-block: 1.5rem; }
.drm-faq-category > summary h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2.25rem); }
.drm-faq-category-body { padding-block-end: 1rem; }
.drm-faq-category-body > .drm-faq-question { border-top: 1px solid var(--drm-line, #ccc); }
.drm-faq summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding-block: 1.25rem; cursor: pointer; list-style: none; font-weight: 700; line-height: 1.4; }
.drm-faq summary::-webkit-details-marker { display: none; }
.drm-faq summary::after { content: '+'; flex: 0 0 1rem; text-align: center; font-size: 1.5rem; font-weight: 400; line-height: 1; }
.drm-faq details[open] > summary::after { content: '−'; }
.drm-faq summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.drm-faq-answer { padding-block: 0 1.5rem; max-width: 52rem; line-height: 1.65; }
.drm-faq-answer > * + * { margin-block-start: 1rem; }
.drm-faq-answer > :first-child { margin-block-start: 0; }
.drm-faq-answer > :last-child { margin-block-end: 0; }
@media (max-width: 767px) {
	.drm-page-hero { padding-block: 2.5rem 1.5rem; }
	.drm-page-body { padding-block-start: 1.75rem; }
}

/* ------------------------------------------------------------- search page */
.drm-search-page { padding-block: 2rem 4rem; }
.drm-search-hero {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
	padding-block: 3rem 2.5rem;
	text-align: center;
}
.drm-search-headline {
	font-family: var(--font-docs, "Docs Headline"), sans-serif;
	font-size: clamp(3.25rem, 8.5vw, 8.5rem);
	font-weight: 800;
	line-height: max(.8, var(--leading-min-headline, 0));
	letter-spacing: 0;
	text-transform: uppercase;
	margin: 0;
	max-width: 24ch;
	text-wrap: balance;
}
.drm-search-modify {
	background: none;
	border: 0;
	padding: 0;
	font-size: .875rem;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: .25em;
	cursor: pointer;
	color: inherit;
}
.drm-search-form--sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.drm-search-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem var(--page-gutter, 16px) 1.25rem;
}
.drm-search-results-label {
	font-size: .875rem;
	text-transform: uppercase;
	letter-spacing: .02em;
}
.drm-search-filter {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	background: none;
	border: 0;
	padding: 0;
	font-size: .875rem;
	text-transform: uppercase;
	cursor: pointer;
	color: inherit;
}
.drm-search-grid { padding-inline: 0; }
.drm-search-empty { padding: 2rem var(--page-gutter, 16px); }
@media (max-width: 767px) {
	.drm-search-hero { padding-block: 2rem 1.5rem; }
}

/* ------------------------------------------------------ PLP empty results */
.drm-empty-results {
	padding: clamp(3rem, 8vw, 7rem) var(--page-gutter, 16px);
	text-align: center;
}
.drm-empty-results__kicker {
	font-size: .75rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: rgba(0, 0, 0, .55);
	margin: 0 0 .75rem;
}
.drm-empty-results__title {
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	line-height: 1.05;
	font-weight: 800;
	text-transform: uppercase;
	margin: 0 0 .75rem;
}
.drm-empty-results__text { margin: 0; color: rgba(0, 0, 0, .7); }
.PyiYLW_label { font-size: .8125rem; text-transform: uppercase; }

/* ------------------------------------------------------- PDP video slides */
.drm-pdp .jZ8eKG_slide[data-video="true"] { position: relative; }
.drm-pdp .jZ8eKG_slide[data-video="true"] ._6M25fq_mask {
	position: relative;
	width: 100%;
	height: 100%;
	display: block;
}
.drm-pdp .jZ8eKG_slide[data-video="true"] video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ------------------------------------------- language switcher (panel rows) */
.drm-lang-list { display: flex; flex-direction: column; gap: .25rem; padding-block: .5rem 1rem; }
.drm-lang-list__label {
	font-size: .75rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: rgba(0, 0, 0, .55);
	margin: 0 0 .5rem;
}
.drm-lang-list__item {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .875rem .25rem;
	border-bottom: 1px solid rgba(0, 0, 0, .1);
	text-decoration: none;
	color: inherit;
	font-size: 1rem;
}
.drm-lang-list__item:hover { background: rgba(0, 0, 0, .04); }
.drm-lang-list__flag { display: inline-flex; width: 20px; }
.drm-lang-list__flag svg { display: block; width: 20px; height: 15px; }
.drm-lang-list__name { flex: 1; font-weight: 700; text-transform: uppercase; }
.drm-lang-list__code { font-size: .8125rem; color: rgba(0, 0, 0, .6); }
.drm-lang-list__item[data-current="true"] { background: rgba(0, 0, 0, .06); }
.drm-lang-list__check svg { width: 18px; height: 18px; display: block; }

/* Keeps a native language select for assistive tech / no-JS form posting while
   the visible switcher stays a list of links. */
.drm-lang-select-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* -------------------------------------------------- media loading backdrop
   Hero/campaign/panel media blocks are always painted on a dark base. The
   reference site flashes a light background while the S3 image downloads which
   made the white headline and the white-on-transparent navigation unreadable.
   The photos are opaque and cover the block (object-fit: cover), so the final
   rendering is unchanged once the image has loaded. */
.G2H0Lq_container,
.UuyeXq_imagePanel {
	background-color: #171310;
}

/* ------------------------------------------------------ PDP media loading
   Neutral placeholder behind the gallery so a slow S3 image never shows a pure
   white block (client report: "PDP image area blank on iPhone"). Photos are
   opaque and cover the slide, so the final rendering is unchanged. */
.jZ8eKG_slide,
.jZ8eKG_slideButton,
._6M25fq_mask {
	background-color: #EDEAE5;
}
/* Mobile PDP: keep the sticky CTA clear of the product title / price when it is
   visible (it is hidden until the user scrolls past the main add-to-bag CTA). */
._2bXnlW_stickyAddToBag[data-visible="false"] { display: none; }

/* The reference fades hero copy in after a 1s delay; while the S3 hero image is
   also loading that reads as an empty page. Show the copy immediately on the
   dark loading backdrop — the final loaded rendering is unchanged. */
.drm-home .G2H0Lq_content {
	animation-delay: 0s;
}

/* Shared server-calculated campaign breakdown, including AJAX cart updates. */
.drm-surprise-discount[hidden] { display: none !important; }
.drm-surprise-discount { color: #375037; }

/* Give the earned saving a clear brand-yellow highlight in both summaries. */
:is(.drm-shop-cart__totals-list, .drm-shop-checkout__totals) > .drm-surprise-discount {
	background: #fff2b3;
	border: 1px solid #e5c65d;
	border-inline-start: 4px solid #ffcc00;
	border-radius: 4px;
	padding: 16px;
	margin-block: 4px;
	color: #171310;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 16px;
}
:is(.drm-shop-cart__totals-list, .drm-shop-checkout__totals) > .drm-surprise-discount dt {
	font-size: 16px;
	font-weight: 800;
	line-height: 1.4;
}
:is(.drm-shop-cart__totals-list, .drm-shop-checkout__totals) > .drm-surprise-discount dd {
	margin-inline-start: auto;
	font-size: clamp(20px, 2vw, 24px);
	font-weight: 800;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
}
/* The dark payable panel appears only while the surprise offer is active. */
:is(.drm-shop-cart__totals-list, .drm-shop-checkout__totals):has(> .drm-surprise-discount:not([hidden])) > :is(.drm-shop-cart__totalRow, .drm-shop-checkout__totalRow) {
	background: #171310;
	color: #fff;
	border: 0;
	border-radius: 4px;
	padding: 18px 16px;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 16px;
}
:is(.drm-shop-cart__totals-list, .drm-shop-checkout__totals):has(> .drm-surprise-discount:not([hidden])) > :is(.drm-shop-cart__totalRow, .drm-shop-checkout__totalRow) dt {
	font-size: 18px !important;
	font-weight: 800;
	line-height: 1.4;
}
:is(.drm-shop-cart__totals-list, .drm-shop-checkout__totals):has(> .drm-surprise-discount:not([hidden])) > :is(.drm-shop-cart__totalRow, .drm-shop-checkout__totalRow) dd {
	margin-inline-start: auto;
	font-size: clamp(24px, 2.4vw, 30px) !important;
	font-weight: 800;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}

/* Cart and checkout share the footer's payment artwork and dimensions. */
.drm-payment-icons { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0; margin: 0; list-style: none; }
.drm-payment-icons li { display: flex; flex: 0 0 auto; }
.drm-payment-icons svg { display: block; width: 36px; height: 24px; }
