/* 0.1.1 — bounded storefront scale, pinned navigation and progressive motion. */
.dv-container { width: calc(100% - 48px); max-width: 1280px; }
.dv-header {
 position: sticky; top: 0; z-index: 80;
 background: rgba(255,253,249,.96);
 transition: box-shadow .25s ease, background-color .25s ease;
}
.dv-header.is-scrolled { background: rgba(255,253,249,.97); box-shadow: 0 6px 24px #173e3010; }
.dv-topbar { height: 30px; padding-inline: 22px; font-size: 10px; border-radius: 0 0 20px 20px; }
.dv-topbar .dv-icon { width: 21px; height: 21px; }
.dv-main-header { gap: 25px; padding: 12px 0; }
.dv-main-header > .dv-logo { min-width: 167px; padding-left: 23px; }
.dv-brand-mark { width: 50px; height: 50px; }
.dv-wordmark > span { font-size: 13px; }
.dv-wordmark strong { font-size: 32px; }
.dv-logo-image { max-height: 50px; max-width: 165px !important; }
.dv-search { height: 46px; padding: 4px; }
.dv-search input { font-size: 13px; padding: 7px 16px; }
.dv-search button { width: 37px; height: 37px; }
.dv-search .dv-icon { width: 22px; height: 22px; }
.dv-header-actions { gap: 10px; }
.dv-action { height: 44px; min-width: 44px; border-radius: 14px; padding: 8px; }
.dv-action > .dv-icon { width: 25px; height: 25px; }
.dv-account { padding-inline: 12px; font-size: 11px; }
.dv-account > .dv-icon:last-child { width: 11px; }
.dv-cart-count { min-width: 20px; height: 20px; font-size: 10px; top: -6px; }
.dv-navigation { gap: 17px; padding-bottom: 10px; }
.dv-mega-toggle { height: 39px; padding: 8px 16px; gap: 8px; font-size: 12px !important; }
.dv-mega-toggle > .dv-icon { width: 20px; height: 20px; }
.dv-nav-links { gap: 15px; }
.dv-nav-links a { font-size: 11px; }
.dv-mega { width: calc(100% - 48px); max-width: 1280px; min-height: 0; max-height: calc(100dvh - var(--dv-header-height,155px) - 16px); overflow-y: auto; overscroll-behavior: contain; padding: 20px; border-radius: 24px; grid-template-columns: 225px minmax(0,1fr); gap: 20px; }
.dv-mega-panel { grid-template-columns: minmax(150px,.8fr) minmax(190px,1fr) minmax(230px,1.1fr); gap: 20px; }
.dv-mega-roots { padding-left: 16px; }
.dv-mega-roots button { font-size: 12px; padding: 8px 11px; }
.dv-mega-promo { min-height: 310px; }
.dv-mega-promo strong { font-size: 21px; }
.dv-mega-promo > span:not(.dv-button) { font-size: 18px; }
.dv-hero-wrap { padding-top: 16px; }
.dv-hero { border-radius: 25px; }
.dv-slide { height: 340px; }
.dv-hero-copy { width: 48%; padding: 20px 4% 23px 0; }
.dv-hero-house { width: 42px !important; height: 35px !important; }
.dv-hero-copy h1, .dv-hero-copy h2 { font-size: 36px; line-height: 1.55; letter-spacing: -.7px; }
.dv-hero-copy p { font-size: 13px; line-height: 1.95; margin: 10px 0 17px; max-width: 390px; }
.dv-hero-buttons { gap: 11px; }
.dv-button { min-height: 41px; padding: 9px 19px; font-size: 12px; gap: 8px; }
.dv-button .dv-icon { width: 16px; height: 16px; }
.dv-benefits { margin-top: 13px; padding: 12px 8px; border-radius: 27px; }
.dv-benefits > div { gap: 12px; padding-inline: 14px; font-size: 12px; }
.dv-benefits .dv-icon { width: 33px; height: 33px; }
.dv-benefits span { max-width: 118px; }
.dv-category-section { margin-top: 22px; scroll-margin-top: calc(var(--dv-header-height,155px) + 20px); }
.dv-section-heading { margin-bottom: 21px; }
.dv-section-heading h2 { font-size: 23px; }
.dv-section-heading > a { font-size: 12px; }
.dv-category-grid { gap: 16px; }
.dv-category-card .dv-category-art, .dv-category-card .dv-category-image { border-radius: 19px; }
.dv-category-card h3 { font-size: 12px; margin-top: 9px; line-height: 1.75; }
.dv-trousseau { margin-top: 25px; }
.dv-banner { height: 185px; border-radius: 25px; }
.dv-banner h2 { font-size: 28px; }
.dv-banner .dv-button { min-height: 37px; padding: 8px 19px; font-size: 12px; }
.dv-commerce { scroll-margin-top: calc(var(--dv-header-height,155px) + 20px); }

/* Content starts visible. JS opts in only after the observer is available. */
@media (prefers-reduced-motion: no-preference) {
 .dv-hero-copy > * { animation: dv-copy-enter .65s cubic-bezier(.2,.7,.2,1) both; }
 .dv-hero-copy > :nth-child(2) { animation-delay: .07s; }
 .dv-hero-copy > :nth-child(3) { animation-delay: .14s; }
 .dv-hero-copy > :nth-child(4) { animation-delay: .21s; }
 .dv-hero-picture { animation: dv-photo-enter .9s ease-out both; }
 .dv-mega:not([hidden]) { animation: dv-menu-enter .22s ease-out both; }
 .dv-drawer[open] { animation: dv-drawer-enter .25s ease-out both; }
 .dv-motion-ready [data-dv-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .55s ease var(--dv-reveal-delay,0ms), transform .55s cubic-bezier(.2,.7,.2,1) var(--dv-reveal-delay,0ms); }
 .dv-motion-ready [data-dv-reveal].is-revealed { opacity: 1; transform: none; }
}
@keyframes dv-copy-enter { from { opacity: 0; transform: translateY(13px); } to { opacity: 1; transform: none; } }
@keyframes dv-photo-enter { from { opacity: .6; transform: scale(1.025); } to { opacity: 1; transform: none; } }
@keyframes dv-menu-enter { from { opacity: 0; transform: translate(-50%,8px); } to { opacity: 1; transform: translate(-50%,0); } }
@keyframes dv-drawer-enter { from { opacity: .5; transform: translateX(20px); } to { opacity: 1; transform: none; } }
@media (hover: hover) and (pointer: fine) {
 .dv-action, .dv-glass { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
 .dv-action:hover, .dv-glass:hover { transform: translateY(-2px); border-color: #c6a56888; box-shadow: 0 5px 13px #173e3010; }
 .dv-nav-links a { position: relative; padding-block: 5px; }
 .dv-nav-links a::after { content: ''; position: absolute; bottom: 0; right: 0; left: 0; height: 1px; background: var(--dv-gold); transform: scaleX(0); transform-origin: right; transition: transform .2s ease; }
 .dv-nav-links a:hover::after { transform: scaleX(1); }
 .dv-category-card .dv-category-art, .dv-category-card .dv-category-image { transition: transform .28s ease, box-shadow .28s ease; }
 .dv-category-card:hover .dv-category-art, .dv-category-card:hover .dv-category-image { transform: translateY(-4px) scale(1.025); box-shadow: 0 10px 20px #173e3014; }
 .dv-category-card h3 { transition: color .2s ease; }
 .dv-category-card:hover h3 { color: var(--dv-green); }
 .dv-mega-roots button { transition: background-color .18s ease, color .18s ease; }
 .dv-button:hover { transform: translateY(-2px); box-shadow: 0 5px 13px #0a281c20; }
}
.dv-button:active, .dv-action:active { transform: translateY(0); }
@media (min-width:1024px) and (max-width:1200px) {
 .dv-container { width: calc(100% - 40px); }
 .dv-main-header { gap: 18px; }
 .dv-main-header > .dv-logo { min-width: 158px; padding-left: 18px; }
 .dv-nav-links { gap: 15px; justify-content: flex-start; }
 .dv-mega { width: calc(100% - 40px); grid-template-columns: 200px minmax(0,1fr); }
 .dv-mega-panel { grid-template-columns: 1fr 1fr; }
 .dv-slide { height: 320px; }
 .dv-hero-copy h1, .dv-hero-copy h2 { font-size: 32px; }
 .dv-hero-copy p { font-size: 12px; }
 .dv-hero-buttons { gap: 8px; }
 .dv-button { font-size: 11px; padding-inline: 15px; }
 .dv-category-grid { gap: 12px; }
 .dv-category-card h3 { font-size: 11px; }
}
@media (max-width:1023px) {
 .dv-container { width: calc(100% - 36px); }
 .dv-header, .dv-header.is-scrolled { background: var(--dv-green); }
 .dv-mobile-header { padding-top: 13px; padding-bottom: 13px; }
 .dv-mobile-row { margin-bottom: 12px; }
 .dv-mobile-row .dv-brand-mark { width: 47px; height: 47px; }
 .dv-mobile-row .dv-wordmark > span { font-size: 12px; }
 .dv-mobile-row .dv-wordmark strong { font-size: 29px; }
 .dv-glass { width: 40px; height: 40px; border-radius: 12px; }
 .dv-glass .dv-icon { width: 25px; height: 25px; }
 .dv-mobile-header .dv-search { height: 46px; }
 .dv-mobile-header .dv-search input { font-size: 12px; }
 .dv-mobile-header .dv-search button { width: 36px; height: 36px; }
 .dv-mobile-header .dv-search .dv-icon { width: 22px; height: 22px; }
 .dv-slide { height: 325px; }
 .dv-hero-copy { width: 50%; }
 .dv-hero-copy h1, .dv-hero-copy h2 { font-size: 30px; }
 .dv-hero-copy p { font-size: 12px; }
 .dv-category-grid { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 20px 16px; }
 .dv-section-heading h2 { font-size: 22px; }
 .dv-benefits > div { padding-inline: 9px; gap: 8px; font-size: 10px; }
 .dv-benefits .dv-icon { width: 29px; height: 29px; }
 .dv-banner { height: 170px; }
 .dv-banner h2 { font-size: 26px; }
}
@media (max-width:767px) {
 .dv-container { width: calc(100% - 32px); }
 .dv-hero-wrap { width: 100%; padding-top: 0; }
 .dv-hero { border-radius: 0 0 38px 0; }
 .dv-slide { height: 325px; }
 .dv-hero-copy { width: 54%; min-height: 0; padding: 19px 17px 27px 8px; }
 .dv-hero-house { width: 30px !important; height: 26px !important; }
 .dv-hero-copy h1, .dv-hero-copy h2 { font-size: clamp(21px,5.8vw,29px); line-height: 1.55; }
 .dv-hero-copy p { font-size: 10px; line-height: 1.9; margin: 10px 0 13px; }
 .dv-hero-buttons .dv-button { min-height: 34px; font-size: 10px; padding: 7px 12px; }
 .dv-benefits { margin-top: 11px; padding: 11px 0; border-radius: 22px; }
 .dv-benefits > div { gap: 4px; padding: 0 5px; font-size: 8px; }
 .dv-benefits span { max-width: 44px; }
 .dv-benefits .dv-icon { width: 24px; height: 24px; }
 .dv-category-section { margin-top: 20px; }
 .dv-section-heading { margin-bottom: 18px; }
 .dv-section-heading h2 { font-size: 19px; }
 .dv-section-heading > a { font-size: 10px; }
 .dv-category-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px 10px; }
 .dv-category-card .dv-category-art, .dv-category-card .dv-category-image { border-radius: 17px; }
 .dv-category-card h3 { font-size: 10px; line-height: 1.75; margin-top: 7px; }
 .dv-trousseau { margin-top: 22px; }
 .dv-banner { height: 132px; border-radius: 21px; }
 .dv-banner h2 { font-size: 18px; }
 .dv-banner .dv-button { font-size: 10px; min-height: 30px; padding: 6px 10px; }
}
@media (max-width:359px) {
 .dv-container { width: calc(100% - 24px); }
 .dv-hero-wrap { width: 100%; }
 .dv-hero-copy { width: 58%; padding-right: 12px; }
 .dv-hero-copy h1, .dv-hero-copy h2 { font-size: 22px; }
 .dv-hero-copy p { font-size: 9px; }
 .dv-section-heading h2 { font-size: 17px; }
 .dv-benefits > div { gap: 3px; padding-inline: 3px; }
 .dv-benefits .dv-icon { width: 21px; height: 21px; }
 .dv-category-card h3 { font-size: 9px; }
}
@media (prefers-reduced-motion:reduce) {
 .dv-body *, .dv-body *::before, .dv-body *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
 .dv-motion-ready [data-dv-reveal] { opacity: 1 !important; transform: none !important; }
}
