/*
Theme Name: Dreame-Outlet
Theme URI: https://dreame-outlet.fr
Description: Thème WooCommerce Dreame-Outlet, converti depuis le thème Shopify de la boutique. Après activation : Apparence → Installation Dreame-Outlet.
Version: 1.1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: dreame-outlet
WC requires at least: 7.0
*/

:root {
	--do-black: #000;
	--do-text: #111;
	--do-muted: #6f6f6f;
	--do-grey: #f4f4f2;
	--do-line: #dcdcd7;
	--do-red: #d50000;
	--do-green: #16a34a;
	--do-w: 1160px;
	--do-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--do-text); font-family: var(--do-font); font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font-family: inherit; }
[hidden] { display: none !important; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }

.do-container { width: 100%; max-width: var(--do-w); margin: 0 auto; padding: 0 20px; }
.do-container--narrow { max-width: 820px; }
.do-section { padding: 64px 0; }
.do-center { text-align: center; }
.do-kicker { margin: 0 0 10px; font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.do-kicker--light { color: #fff; }
.do-h2 { margin: 0 0 28px; font-size: clamp(28px, 3.4vw, 40px); font-weight: 500; line-height: 1.08; letter-spacing: -.02em; }

/* Boutons */
.do-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 220px; padding: 15px 34px; border: 1px solid var(--do-black); border-radius: 2px; background: var(--do-black); color: #fff; font-size: 15px; font-weight: 500; text-decoration: none; cursor: pointer; transition: background .2s, color .2s; }
.do-btn:hover { background: #fff; color: var(--do-black); }
.do-btn--white { background: #fff; color: #000; border-color: #fff; }
.do-btn--white:hover { background: #000; color: #fff; border-color: #000; }
.do-btn--outline { background: #fff; color: #000; min-width: 186px; padding: 12px 28px; font-size: 14px; }
.do-btn--outline:hover { background: #000; color: #fff; }
.do-btn--block { width: 100%; }
.do-btn[disabled] { background: #9a9a9a; border-color: #9a9a9a; cursor: not-allowed; }
.do-ulink { display: inline-block; padding: 0 0 3px; border: 0; border-bottom: 1px solid currentColor; background: none; color: inherit; font-size: 14px; font-weight: 500; text-decoration: none; cursor: pointer; }
.do-link-arrow { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; text-decoration: none; }
.do-link-arrow .do-ico { width: 14px; height: 14px; }
.do-ico { width: 24px; height: 24px; }

/* Bandeau défilant */
.do-announce { overflow: hidden; background: #000; color: #fff; font-size: 13px; line-height: 1; padding: 9px 0; white-space: nowrap; }
.do-announce__track { display: inline-flex; gap: 50px; animation: do-marquee 40s linear infinite; }
.do-announce:hover .do-announce__track { animation-play-state: paused; }
@keyframes do-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .do-announce__track { animation: none; } }

/* En-tête */
.do-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid #eee; }
.do-header__inner { display: flex; align-items: center; gap: 28px; height: 68px; }
.do-logo { text-decoration: none; flex: 0 0 auto; }
.do-logo img { max-height: 40px; width: auto; }
.do-logo span { font-size: 26px; font-weight: 600; letter-spacing: -.03em; }
.do-nav { flex: 1; }
.do-menu { display: flex; flex-wrap: wrap; gap: 22px; margin: 0; padding: 0; list-style: none; }
.do-menu a { font-size: 13px; text-decoration: none; }
.do-menu a:hover, .do-menu .current-menu-item > a { text-decoration: underline; text-underline-offset: 4px; }
.do-cart-link { position: relative; margin-left: auto; display: inline-flex; color: #000; }
.do-cart-count { position: absolute; top: -6px; right: -8px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: #000; color: #fff; font-size: 11px; line-height: 18px; text-align: center; }
.do-cart-count.is-empty { display: none; }
.do-burger { display: none; padding: 4px; border: 0; background: none; cursor: pointer; }
.do-drawer { position: fixed; inset: 0; z-index: 100; }
.do-drawer__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.4); }
.do-drawer__panel { position: relative; z-index: 1; width: min(84vw, 340px); height: 100%; padding: 64px 24px 24px; background: #fff; }
.do-drawer__panel .do-menu { flex-direction: column; gap: 0; }
.do-drawer__panel .do-menu a { display: block; padding: 14px 0; border-bottom: 1px solid #eee; font-size: 17px; }
.do-drawer__close { position: absolute; top: 16px; right: 16px; border: 0; background: none; cursor: pointer; }

/* Hero */
.do-hero { position: relative; min-height: 560px; display: flex; align-items: center; overflow: hidden; color: #fff; background: #111; }
.do-hero picture, .do-hero > picture img { position: absolute; inset: 0; width: 100%; height: 100%; }
.do-hero picture img { width: 100%; height: 100%; object-fit: cover; }
.do-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.2) 55%, rgba(0,0,0,0) 100%); }
.do-hero__content { position: relative; z-index: 1; padding-top: 60px; padding-bottom: 60px; }
.do-hero__title { margin: 0 0 18px; max-width: 680px; font-size: clamp(34px, 5vw, 56px); font-weight: 500; line-height: 1.05; letter-spacing: -.02em; }
.do-hero__text { margin: 0 0 28px; max-width: 420px; color: #e6e6e6; font-size: 17px; }
.do-hero--pdp { min-height: 520px; }

/* Réassurance */
.do-reassure { border-bottom: 1px solid #eee; }
.do-reassure__grid { display: grid; grid-template-columns: repeat(4, 1fr); padding-top: 26px; padding-bottom: 26px; }
.do-reassure__item { text-align: center; padding: 6px 12px; }
.do-reassure__item + .do-reassure__item { border-left: 1px solid #eee; }
.do-reassure__item .do-ico { width: 20px; height: 20px; margin: 0 auto 10px; }
.do-reassure__title { margin: 0; font-size: 13px; font-weight: 600; }
.do-reassure__text { margin: 2px 0 0; color: var(--do-muted); font-size: 12px; }

/* Produit phare */
.do-featured { background: var(--do-grey); padding: 20px 0; }
.do-featured__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.do-featured__media img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.do-featured__title { margin: 0 0 16px; font-size: clamp(26px, 2.6vw, 32px); font-weight: 500; line-height: 1.1; }
.do-checks { margin: 0 0 20px; padding: 0; list-style: none; display: grid; gap: 8px; color: #333; font-size: 17px; }
.do-checks li { display: flex; align-items: center; gap: 10px; }
.do-checks__i { display: inline-flex; width: 15px; height: 15px; border: 1px solid #555; border-radius: 50%; align-items: center; justify-content: center; }
.do-checks__i .do-ico { width: 10px; height: 10px; stroke-width: 2; }

/* Prix */
.do-price { font-weight: 600; font-size: 17px; }
.do-price del { margin-left: 6px; color: #888; font-size: .7em; font-weight: 400; order: 2; }
.do-price ins { color: var(--do-red); text-decoration: none; }
.do-price .screen-reader-text { display: none; }
.do-price--lg { font-size: 36px; letter-spacing: -.02em; margin: 6px 0 18px; }
.do-price--lg del { font-size: 15px; }

/* Ajout au panier (formulaire WooCommerce) */
.do-atc form.cart { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin: 0 0 16px; }
.do-atc .quantity { display: inline-flex; align-items: center; border: 1px solid #cfcfcf; border-radius: 4px; }
.do-atc .quantity input.qty { width: 46px; height: 44px; border: 0; text-align: center; font-size: 14px; -moz-appearance: textfield; background: transparent; }
.do-atc .quantity input.qty::-webkit-outer-spin-button, .do-atc .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.do-qbtn { width: 38px; height: 44px; border: 0; background: none; font-size: 18px; cursor: pointer; }
.do-atc .single_add_to_cart_button { width: 100%; max-width: 420px; padding: 15px 20px !important; border: 1px solid #000 !important; border-radius: 3px !important; background: #000 !important; color: #fff !important; font-size: 13px !important; font-weight: 500 !important; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: transform .2s; }
.do-atc .single_add_to_cart_button:hover { transform: translateY(-1px); }
.do-summary .do-atc form.cart { flex-direction: row; flex-wrap: wrap; align-items: stretch; }
.do-summary .do-atc .single_add_to_cart_button { flex: 1; max-width: none; }

/* Grille produits */
.do-tabs { padding: 30px 0 64px; }
.do-tabs__nav { display: flex; gap: 24px; margin: -8px 0 22px; overflow-x: auto; }
.do-tabs__nav button { padding: 0 0 6px; border: 0; border-bottom: 2px solid transparent; background: none; color: #666; font-size: 14px; cursor: pointer; white-space: nowrap; }
.do-tabs__nav button.is-active { color: #000; font-weight: 500; border-color: #000; }
.do-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px 12px; margin-bottom: 32px; }
.do-card { display: block; text-decoration: none; }
.do-card__media { position: relative; background: var(--do-grey); aspect-ratio: 1; }
.do-card__media img { width: 100%; height: 100%; object-fit: contain; padding: 12px; transition: transform .35s; }
.do-card:hover .do-card__media img { transform: scale(1.03); }
.do-badge { position: absolute; top: 10px; left: 10px; padding: 4px 8px; background: #fff; font-size: 11px; font-weight: 500; }
.do-card__info { padding: 12px 3px 0; }
.do-card__title { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.3; }
.do-card__type { margin: 3px 0 6px; color: var(--do-muted); font-size: 12px; }
.do-card.is-soldout .do-card__media img { opacity: .7; }

/* Bannières */
.do-banner { position: relative; display: flex; overflow: hidden; color: #fff; text-decoration: none; background: #222; }
.do-banner img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.do-banner picture { position: absolute; inset: 0; }
.do-banner--wide { min-height: 520px; align-items: center; }
.do-banner--half { min-height: 330px; align-items: flex-end; }
.do-banner__overlay { position: absolute; inset: 0; }
.do-banner__overlay--left { background: linear-gradient(90deg, rgba(0,0,0,.5), rgba(0,0,0,0) 60%); }
.do-banner__overlay--bottom { background: linear-gradient(0deg, rgba(0,0,0,.45), rgba(0,0,0,0) 55%); }
.do-banner__content { position: relative; z-index: 1; padding: 40px; max-width: 520px; }
.do-banner__title { margin: 0 0 14px; font-size: clamp(30px, 3.6vw, 44px); font-weight: 500; line-height: 1.05; letter-spacing: -.02em; }
.do-banner__title--sm { font-size: 24px; margin-bottom: 8px; }
.do-banner__text { margin: 0 0 20px; color: #eaeaea; }
.do-banners2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-top: 12px; }

/* Engagements */
.do-engage { background: var(--do-grey); padding: 56px 0; }
.do-engage__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.do-engage__item { padding: 6px 30px 6px 0; }
.do-engage__item + .do-engage__item { padding-left: 30px; border-left: 1px solid var(--do-line); }
.do-engage__title { margin: 14px 0 4px; font-size: 15px; font-weight: 600; }
.do-engage__text { margin: 0; color: #555; font-size: 13px; }

/* FAQ / accordéons */
.do-faq { padding: 60px 0; }
.do-faq__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 48px; }
.do-faq__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.do-acc { border-bottom: 1px solid #e3e3e3; }
.do-acc summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 17px; font-weight: 500; }
.do-acc summary::-webkit-details-marker { display: none; }
.do-acc__icon { position: relative; width: 14px; height: 14px; flex: 0 0 14px; }
.do-acc__icon::before, .do-acc__icon::after { content: ""; position: absolute; top: 50%; left: 0; width: 14px; height: 1px; background: currentColor; transition: transform .2s; }
.do-acc__icon::after { transform: rotate(90deg); }
.do-acc[open] .do-acc__icon::after { transform: rotate(0); }
.do-acc__icon--chev::before, .do-acc__icon--chev::after { display: none; }
.do-acc__icon--chev { border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; width: 7px; height: 7px; flex-basis: 7px; transform: rotate(45deg); transition: transform .2s; }
.do-acc[open] .do-acc__icon--chev { transform: rotate(-135deg); }
.do-acc__body { padding: 0 40px 20px 0; color: #666; font-size: 14px; }
.do-acc__body p:first-child { margin-top: 0; }
.do-acc--sm summary { padding: 13px 0; font-size: 14px; }
.do-faq__cta { margin-top: 24px; color: #777; font-size: 14px; }
.do-faq__cta a { color: #000; }

/* Newsletter + pied de page */
.do-newsletter { background: #000; color: #fff; padding: 52px 0 40px; border-bottom: 1px solid #222; }
.do-newsletter .do-h2 { margin-bottom: 10px; }
.do-newsletter__text { margin: 0 0 26px; color: #ddd; }
.do-newsletter__form { display: flex; gap: 8px; max-width: 660px; }
.do-newsletter__form input { flex: 1; min-width: 0; height: 46px; padding: 0 14px; border: 1px solid #fff; background: transparent; color: #fff; font-size: 14px; }
.do-newsletter__form button { width: 158px; border: 0; background: #fff; color: #000; font-size: 14px; font-weight: 500; cursor: pointer; }
.do-newsletter__msg { font-weight: 500; }
.do-footer { background: #000; color: #fff; padding: 20px 0 16px; }
.do-footer__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; padding-top: 16px; padding-bottom: 60px; }
.do-footer h3 { margin: 0 0 16px; font-size: 18px; font-weight: 400; }
.do-footer p { margin: 0; font-size: 14px; color: #eee; }
.do-flinks, .do-footer .do-menu { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.do-flinks a, .do-footer .do-menu a { font-size: 14px; text-decoration: none; }
.do-flinks a:hover { text-decoration: underline; }
.do-footer__bottom { text-align: center; font-size: 11px; color: #ccc; }
.do-pay { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; padding: 0; list-style: none; }
.do-pay li { padding: 3px 7px; border: 1px solid #cfcfcf; border-radius: 4px; background: #fff; color: #222; font-size: 10px; font-weight: 600; line-height: 1.4; }

/* Fiche produit */
.do-pdp { padding: 28px 0 56px; }
.do-pdp__grid { display: grid; grid-template-columns: 7fr 5fr; gap: 40px; align-items: start; }
.do-gallery { display: grid; grid-template-columns: 72px 1fr; gap: 14px; position: sticky; top: 90px; }
.do-gallery__thumbs { display: flex; flex-direction: column; gap: 10px; max-height: 640px; overflow-y: auto; }
.do-gallery__thumbs button { padding: 0; border: 1px solid transparent; background: var(--do-grey); cursor: pointer; }
.do-gallery__thumbs button.is-active { border-color: #000; }
.do-gallery__thumbs img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.do-gallery__main img { width: 100%; aspect-ratio: 1; object-fit: contain; background: var(--do-grey); }
.do-summary__title { margin: 0 0 10px; font-size: clamp(26px, 2.6vw, 34px); font-weight: 500; line-height: 1.1; letter-spacing: -.01em; }
.do-summary__short { margin: 0 0 16px; color: #333; }
.do-feats { display: grid; gap: 12px; margin: 0 0 14px; padding: 0; list-style: none; color: #222; font-size: 16px; }
.do-feats li { display: flex; align-items: center; gap: 12px; }
.do-feats .do-ico { width: 18px; height: 18px; }
.do-stock { display: flex; align-items: center; gap: 7px; margin: 0 0 16px; font-size: 12px; }
.do-stock__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--do-green); animation: do-pulse 1.5s ease-in-out infinite; }
@keyframes do-pulse { 50% { opacity: .35; transform: scale(.8); } }
.do-summary .do-pay { justify-content: center; }
.do-ptrust { display: grid; grid-template-columns: repeat(3, 1fr); margin: 20px 0; padding: 20px 0; list-style: none; background: var(--do-grey); }
.do-ptrust li { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 10px; font-size: 12px; color: #8a8a8a; }
.do-ptrust li + li { border-left: 1px solid var(--do-line); }
.do-ptrust .do-ico { margin-bottom: 10px; color: #000; }
.do-ptrust strong { color: #000; font-size: 13px; }
.do-rte ul { padding-left: 18px; }
.do-rte li { margin-bottom: 4px; }

.do-fgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.do-fcard img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; margin-bottom: 14px; }
.do-fcard h3 { margin: 0 0 4px; font-size: 17px; font-weight: 500; }
.do-fcard p { margin: 0; color: #666; font-size: 14px; }

.do-split { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.do-split--grey { background: var(--do-grey); }
.do-split__media img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.do-split__media--contain { background: var(--do-grey); }
.do-split__media--contain img { object-fit: contain; padding: 30px; }
.do-split__body { padding: 64px clamp(20px, 6vw, 80px); align-self: center; }
.do-stats { display: flex; gap: 48px; margin-top: 28px; }
.do-stats strong { display: block; font-size: 34px; font-weight: 500; letter-spacing: -.02em; }
.do-stats span { color: #666; font-size: 14px; }
.do-specs { margin: 0 0 18px; }
.do-specs__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid #e5e5e5; font-size: 14px; }
.do-specs__row dt { color: #666; }
.do-specs__row dd { margin: 0; }
.do-specs__row.is-more { display: none; }
.do-specs.is-open .do-specs__row.is-more { display: grid; }
.do-boximg img { width: 100%; }

.do-cmp { max-width: 820px; }
.do-cmp__table { width: 100%; border-collapse: collapse; margin-bottom: 28px; font-size: 14px; }
.do-cmp__table th { padding: 0 8px 14px; font-weight: 400; vertical-align: bottom; }
.do-cmp__table th img { width: 110px; height: 110px; object-fit: contain; margin: 0 auto 8px; }
.do-cmp__table th.is-ours span { font-weight: 600; }
.do-cmp__table td { padding: 14px 8px; border-top: 1px solid #e5e5e5; text-align: center; }
.do-cmp__table td:first-child { text-align: left; }
.do-cmp__table .is-ours { background: var(--do-grey); }
.do-cmp__table .do-ico { width: 18px; height: 18px; margin: 0 auto; }
.do-cmp__small { color: #777; font-size: 12px; }

.do-related { padding: 56px 0 30px; }

.do-sticky { position: fixed; left: 50%; bottom: 14px; z-index: 60; transform: translateX(-50%); display: flex; align-items: center; gap: 14px; width: min(560px, calc(100% - 24px)); padding: 8px 8px 8px 10px; border-radius: 40px; background: #fff; box-shadow: 0 6px 30px rgba(0,0,0,.18); }
.do-sticky__img img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.do-sticky__info { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 13px; }
.do-sticky__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.do-sticky .do-price { font-size: 13px; }
.do-sticky__btn { padding: 11px 20px; border-radius: 30px; background: #000; color: #fff; font-size: 12px; font-weight: 500; text-decoration: none; text-transform: uppercase; white-space: nowrap; }

/* Pages WooCommerce (panier, commande, compte) */
.do-page .woocommerce { font-size: 14px; }
/* Les boutons de la fiche produit (.dsp-page) gardent le style du thème Shopify. */
.woocommerce .button:not(.dsp-page *), .woocommerce button.button:not(.dsp-page *), .woocommerce a.button:not(.dsp-page *), .woocommerce #respond input#submit { border-radius: 3px; background: #000; color: #fff; font-weight: 500; }
.woocommerce .button:not(.dsp-page *):hover, .woocommerce button.button:not(.dsp-page *):hover, .woocommerce a.button:not(.dsp-page *):hover { background: #222; color: #fff; }
.woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce #place_order { background: #000; color: #fff; }
.woocommerce-message, .woocommerce-info { border-top-color: #000; }
.woocommerce-message::before, .woocommerce-info::before { color: #000; }
.woocommerce-pagination ul { display: inline-flex; gap: 6px; padding: 0; list-style: none; }
.woocommerce-pagination a, .woocommerce-pagination span { display: inline-block; padding: 6px 12px; border: 1px solid #ddd; text-decoration: none; }

/* Tablette */
@media (max-width: 989px) {
	.do-nav { display: none; }
	.do-burger { display: inline-flex; }
	.do-header__inner { justify-content: space-between; gap: 12px; }
	.do-logo { position: absolute; left: 50%; transform: translateX(-50%); }
	.do-grid { grid-template-columns: repeat(2, 1fr); }
	.do-pdp__grid { grid-template-columns: 1fr; }
	.do-gallery { position: static; }
}

/* Mobile */
@media (max-width: 749px) {
	body { font-size: 14px; }
	.do-container { padding: 0 16px; }
	.do-section { padding: 44px 0; }
	.do-logo span { font-size: 21px; }
	.do-hero { min-height: 520px; align-items: flex-end; }
	.do-hero__overlay { background: linear-gradient(0deg, rgba(0,0,0,.6), rgba(0,0,0,.1) 70%); }
	.do-hero__content .do-btn { width: 100%; }
	.do-hero__text { font-size: 15px; }
	.do-reassure__grid { grid-template-columns: repeat(2, 1fr); row-gap: 18px; }
	.do-reassure__item:nth-child(3) { border-left: 0; }
	.do-featured__grid, .do-faq__grid, .do-split, .do-banners2 { grid-template-columns: 1fr; gap: 24px; }
	.do-featured { padding: 0 0 32px; }
	.do-featured .do-container { padding: 0; }
	.do-featured__info { padding: 0 16px; }
	.do-checks { font-size: 14px; }
	.do-banner--wide { min-height: 480px; align-items: flex-end; }
	.do-banner__content { padding: 24px 16px; }
	.do-banner--half { min-height: 260px; }
	.do-engage__grid, .do-fgrid { grid-template-columns: 1fr; gap: 26px; }
	.do-engage__item, .do-engage__item + .do-engage__item { padding: 0; border: 0; }
	.do-acc summary { font-size: 15px; }
	.do-acc__body { padding-right: 0; }
	.do-newsletter__form { flex-direction: column; }
	.do-newsletter__form button { width: 100%; height: 46px; }
	.do-footer__cols { grid-template-columns: 1fr; padding-bottom: 32px; }
	.do-gallery { grid-template-columns: 1fr; }
	.do-gallery__thumbs { order: 2; flex-direction: row; max-height: none; overflow-x: auto; }
	.do-gallery__thumbs button { flex: 0 0 64px; }
	.do-price--lg { font-size: 30px; }
	.do-split__body { padding: 36px 16px; }
	.do-split__media img { min-height: 280px; }
	.do-stats { gap: 30px; }
	.do-cmp__table th img { width: 72px; height: 72px; }
	.do-sticky__name { display: none; }
}


.dsp-pg { --pg-font-h:Inter,sans-serif; --pg-font-b:Inter,sans-serif; background:#fff; padding:28px 0 24px; }
.dsp-pg__wrap { max-width:1440px; margin:0 auto; padding:0 48px; }
.dsp-pg__header { text-align:left; margin-bottom:20px; }
.dsp-pg__kicker { margin:0 0 10px; color:#000; font-size:12px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; }
.dsp-pg__heading { margin:0; font-family:var(--pg-font-h); font-size:32px; font-weight:500; line-height:1.1; letter-spacing:-.02em; }
.dsp-pg__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; list-style:none; margin:0; padding:0; }
.dsp-pg__card { position:relative; display:flex; flex-direction:column; background:#fff; overflow:hidden; }
.dsp-pg__media { position:relative; display:block; aspect-ratio:1/1; background:#f4f4f2; overflow:hidden; }
.dsp-pg__media img { position:absolute; inset:6%; width:calc(100% - 12%); height:calc(100% - 12%); object-fit:contain; transition:opacity .4s ease; mix-blend-mode:multiply; }
.dsp-pg__img2 { opacity:0; }
@media (hover:hover) { .dsp-pg__card:hover .dsp-pg__img2 { opacity:1; } .dsp-pg__card:hover .dsp-pg__img1--has2 { opacity:0; } }
.dsp-pg__info { display:flex; flex-direction:column; gap:2px; padding:14px 4px; text-align:left; }
.dsp-pg__name { margin:0; color:#000; font-family:var(--pg-font-h); font-size:15px; font-weight:600; line-height:1.3; text-decoration:none; }
.dsp-pg__sub { color:#8a8a8a; font-size:13px; line-height:1.3; }
.dsp-pg__prices { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin-top:6px; }
.dsp-pg__price { color:#e3342b; font-size:18px; font-weight:700; }
.dsp-pg__price--regular { color:#000; }
.dsp-pg__compare { color:#8a8a8a; font-size:13px; text-decoration:line-through; }
@media screen and (max-width:749px) {
  .dsp-pg { padding:24px 0; } .dsp-pg__wrap { padding:0 16px; } .dsp-pg__heading { font-size:24px; }
  .dsp-pg__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .dsp-pg__name { font-size:14px; } .dsp-pg__price { font-size:16px; }
}


.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.do-cart-drawer { position:fixed; inset:0; z-index:110; pointer-events:none; }
.do-cart-drawer.is-open { pointer-events:auto; }
.do-cart-drawer__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.4); opacity:0; transition:opacity .25s ease; }
.do-cart-drawer__panel { position:absolute; top:0; right:0; z-index:1; height:100%; width:min(92vw,400px); background:#fff; display:flex; flex-direction:column; transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1); box-shadow:-10px 0 30px rgba(0,0,0,.08); }
.do-cart-drawer.is-open .do-cart-drawer__backdrop { opacity:1; }
.do-cart-drawer.is-open .do-cart-drawer__panel { transform:translateX(0); }
.do-cart-drawer__head { display:flex; align-items:center; justify-content:space-between; padding:20px 20px 16px; border-bottom:1px solid var(--do-line); flex:0 0 auto; }
.do-cart-drawer__head h2 { margin:0; font-size:18px; font-weight:600; }
.do-cart-drawer__close { border:0; background:none; padding:4px; cursor:pointer; color:inherit; }
.do-cart-drawer__body { flex:1 1 auto; overflow-y:auto; padding:4px 20px; }
.do-cd-empty { padding:48px 0; text-align:center; color:var(--do-muted); }
.do-cd-empty a { color:var(--do-black); text-decoration:underline; }
.do-cd-item { display:grid; grid-template-columns:72px 1fr auto; gap:14px; padding:16px 0; border-bottom:1px solid #eee; }
.do-cd-item img { width:72px; height:72px; object-fit:contain; background:var(--do-grey); }
.do-cd-item__name { display:block; margin:0 0 6px; font-size:14px; font-weight:600; color:#000; text-decoration:none; }
.do-cd-item__price { font-size:13px; color:var(--do-muted); }
.do-cd-qty { display:inline-flex; margin-top:8px; border:1px solid var(--do-line); }
.do-cd-qty button { width:28px; height:28px; border:0; background:none; cursor:pointer; font-size:14px; }
.do-cd-qty span { min-width:28px; display:inline-flex; align-items:center; justify-content:center; font-size:13px; }
.do-cd-item__total { font-weight:600; font-size:14px; white-space:nowrap; }
.do-cd-rm { display:block; margin-top:8px; border:0; background:none; padding:0; color:var(--do-muted); text-decoration:underline; font-size:12px; cursor:pointer; }
.do-cart-drawer__foot { flex:0 0 auto; padding:16px 20px 22px; border-top:1px solid var(--do-line); }
.do-cart-drawer__subtotal { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; font-size:17px; font-weight:500; }
.do-cart-drawer__note { margin:10px 0 0; font-size:12px; color:var(--do-muted); }
.do-cart-drawer__msg { margin:10px 0 0; font-size:13px; color:var(--do-red); }
@media screen and (max-width:480px) { .do-cart-drawer__panel { width:100vw; } }
