/* DDV CMS visual layout primitives. Scoped to published block trees and Builder preview. */
.ddv-vb-node{box-sizing:border-box;min-width:0;max-width:100%;background-color:var(--ddv-vb-background,transparent);background-repeat:no-repeat;background-size:cover;color:var(--ddv-vb-color,inherit);padding:var(--ddv-vb-pad-d,0px);border-radius:var(--ddv-vb-radius-d,0px);font-size:var(--ddv-vb-font-d,inherit);font-family:var(--ddv-vb-font-family,inherit);font-weight:var(--ddv-vb-font-weight,inherit);border-color:var(--ddv-vb-border,transparent)}
.ddv-vb-node>.ddv-cms-block{min-width:0;max-width:100%;width:100%;margin:0 auto 20px}
.ddv-vb-node>.ddv-vb-layout{width:100%;max-width:100%;margin:0 auto;min-width:0}
.ddv-vb-layout-content{display:grid;grid-template-columns:repeat(var(--ddv-vb-cols-d,1),minmax(0,1fr));gap:var(--ddv-vb-gap-d,12px);min-width:0}
.ddv-vb-grid>.ddv-vb-layout-content{grid-template-columns:var(--ddv-vb-template-d,repeat(var(--ddv-vb-cols-d,2),minmax(0,1fr)))}
.ddv-vb-column>.ddv-vb-layout-content{grid-template-columns:minmax(0,1fr)}
.ddv-vb-node:has(>.ddv-vb-section){width:min(100% - 28px,1320px);margin:24px auto}
.ddv-vb-node:has(>.ddv-vb-container){width:100%;margin:0 auto}
.ddv-vb-node:has(>.ddv-vb-grid),.ddv-vb-node:has(>.ddv-vb-column){width:100%}
.ddv-vb-heading{margin:0 0 12px;line-height:1.18;overflow-wrap:anywhere}
.ddv-vb-text{white-space:pre-line;overflow-wrap:anywhere}
.ddv-vb-divider{border:0;border-top:1px solid var(--ddv-border,#d7e3de);margin:14px auto}
.ddv-vb-promotion{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:center;gap:22px;padding:20px;border-radius:15px;background:var(--ddv-surface,#fff);border:1px solid var(--ddv-border,#d7e3de)}
.ddv-vb-promotion img{width:100%;height:auto;max-height:380px;object-fit:cover;border-radius:12px}
.ddv-vb-promotion h2{font-size:clamp(22px,3vw,34px);margin:0}
.ddv-vb-testimonial{margin:0;padding:23px;background:var(--ddv-surface,#fff);border-radius:14px;border:1px solid var(--ddv-border,#d7e3de)}
.ddv-vb-testimonial blockquote{font-size:clamp(16px,2vw,22px);line-height:1.5;margin:0 0 13px}
.ddv-vb-testimonial figcaption{font-weight:700}
.ddv-align-right{text-align:right}
@media(min-width:1024px){.ddv-vb-hide-desktop{display:none!important}}
@media(max-width:1023px){
 .ddv-vb-hide-tablet{display:none!important}
 .ddv-vb-node{padding:var(--ddv-vb-pad-t,var(--ddv-vb-pad-d,0px));border-radius:var(--ddv-vb-radius-t,var(--ddv-vb-radius-d,0px));font-size:var(--ddv-vb-font-t,var(--ddv-vb-font-d,inherit))}
 .ddv-vb-layout-content{grid-template-columns:repeat(var(--ddv-vb-cols-t,var(--ddv-vb-cols-d,1)),minmax(0,1fr));gap:var(--ddv-vb-gap-t,var(--ddv-vb-gap-d,12px))}
 .ddv-vb-grid>.ddv-vb-layout-content{grid-template-columns:repeat(var(--ddv-vb-cols-t,2),minmax(0,1fr))}
}
@media(max-width:767px){
 .ddv-vb-hide-mobile{display:none!important}
 .ddv-vb-node{padding:var(--ddv-vb-pad-m,var(--ddv-vb-pad-t,0px));border-radius:var(--ddv-vb-radius-m,var(--ddv-vb-radius-t,0px));font-size:var(--ddv-vb-font-m,var(--ddv-vb-font-t,inherit))}
 .ddv-vb-layout-content{grid-template-columns:repeat(var(--ddv-vb-cols-m,1),minmax(0,1fr));gap:var(--ddv-vb-gap-m,var(--ddv-vb-gap-t,12px))}
 .ddv-vb-grid>.ddv-vb-layout-content{grid-template-columns:repeat(var(--ddv-vb-cols-m,1),minmax(0,1fr))}
 .ddv-vb-promotion{grid-template-columns:minmax(0,1fr);padding:14px}
 .ddv-vb-node:has(>.ddv-vb-section){width:min(100% - 18px,1320px)}
}

.ddv-vb-registered-widget{padding:clamp(16px,3vw,35px);border:1px solid var(--ddv-border,#d7e3de);border-radius:16px;background:var(--ddv-surface,#fff)}

@media(min-width:1024px){.ddv-menu-hide-desktop{display:none!important}}
@media(min-width:768px) and (max-width:1023px){.ddv-menu-hide-tablet{display:none!important}}
@media(max-width:767px){.ddv-menu-hide-mobile{display:none!important}}

.ddv-site-footer-menu{width:min(100% - 28px,1320px);margin:25px auto 0;padding:16px;border-radius:14px;background:var(--ddv-surface,#fff);border:1px solid var(--ddv-border,#d7e3de)}
.ddv-site-footer-menu>ul{display:flex;gap:16px 26px;justify-content:center;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.ddv-site-footer-menu a{text-decoration:none;color:var(--ddv-text,inherit)}

/* V1031 CMS product shelf: one renderer, 16 visual options, device-specific layout tokens. */
.ddv-cms-product-shelf{min-width:0;--ddv-card-border:var(--ddv-border,#dce7e1);--ddv-card-primary:var(--ddv-primary,#087d59);--ddv-card-surface:var(--ddv-surface,#fff)}
.ddv-cms-product-shelf .ddv-product-shelf-items{display:grid;grid-template-columns:repeat(var(--ddv-products-cols-d,4),minmax(0,1fr));gap:12px;align-items:stretch;min-width:0}
.ddv-cms-product-shelf .ddv-ph-product-card{min-width:0;background:var(--ddv-card-surface);border:1px solid var(--ddv-card-border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:none}
.ddv-cms-product-shelf .ddv-ph-product-media{display:block;aspect-ratio:1;overflow:hidden;background:var(--ddv-surface-2,#eff5f1)}
.ddv-cms-product-shelf .ddv-ph-product-media img{width:100%;height:100%;object-fit:cover;display:block}
.ddv-cms-product-shelf .ddv-ph-product-info{display:flex;flex-direction:column;gap:6px;padding:12px;flex:1;min-width:0}
.ddv-cms-product-shelf .ddv-ph-product-info h3{font-size:clamp(12px,1vw,15px);line-height:1.4;min-height:2.8em;margin:0}
.ddv-cms-product-shelf .ddv-ph-product-info h3 a{text-decoration:none;color:inherit}
.ddv-cms-product-shelf .ddv-ph-product-price{font-size:clamp(15px,1.5vw,21px);font-weight:850;color:var(--ddv-card-primary)}
.ddv-cms-product-shelf .ddv-ph-buy-row{margin-top:auto;display:flex;flex-wrap:wrap;gap:5px}
.ddv-cms-product-shelf .ddv-ph-buy-row>*{flex:1;min-width:0}
.ddv-cms-product-shelf .ddv-shelf-more{display:block;margin:18px auto;min-width:180px}
.ddv-cms-product-shelf .ddv-product-shelf-items>.ddv-ph-product-card{transition:transform .16s ease,box-shadow .16s ease,opacity .2s ease}
.ddv-cms-product-shelf.ddv-product-no-category .ddv-ph-product-cat,.ddv-cms-product-shelf.ddv-product-no-sku .ddv-ph-sku,.ddv-cms-product-shelf.ddv-product-no-price .ddv-ph-product-price,.ddv-cms-product-shelf.ddv-product-no-button .ddv-ph-buy-row,.ddv-cms-product-shelf.ddv-product-no-button .ddv-ph-full{display:none!important}
.ddv-cms-product-shelf.ddv-product-image-portrait .ddv-ph-product-media{aspect-ratio:3/4}
.ddv-cms-product-shelf.ddv-product-image-landscape .ddv-ph-product-media{aspect-ratio:4/3}
.ddv-cms-product-shelf.ddv-product-image-contain .ddv-ph-product-media img{object-fit:contain;padding:10px}
.ddv-cms-product-shelf.ddv-product-image-circle .ddv-ph-product-media{width:78%;aspect-ratio:1;border-radius:50%;margin:12px auto 0}
.ddv-cms-product-shelf.ddv-product-image-circle .ddv-ph-product-media img{border-radius:50%}
/* Eight default layouts */
.ddv-product-style-compact .ddv-ph-product-info{padding:8px;gap:3px}
.ddv-product-style-compact .ddv-ph-product-cat,.ddv-product-style-compact .ddv-ph-sku{display:none}
.ddv-product-style-horizontal .ddv-ph-product-card{display:grid;grid-template-columns:42% minmax(0,1fr)}
.ddv-product-style-horizontal .ddv-ph-product-media{height:100%;aspect-ratio:auto}
.ddv-product-style-minimal .ddv-ph-product-card{border:0;background:transparent;border-radius:6px}
.ddv-product-style-bordered .ddv-ph-product-card{border:2px solid var(--ddv-card-primary)}
.ddv-product-style-overlay .ddv-ph-product-card{position:relative;isolation:isolate}
.ddv-product-style-overlay .ddv-ph-product-media{aspect-ratio:3/4}
.ddv-product-style-overlay .ddv-ph-product-info{background:linear-gradient(0deg,rgba(5,20,14,.9),rgba(5,20,14,.2));color:#fff;position:absolute;inset:auto 0 0;z-index:1}
.ddv-product-style-overlay .ddv-ph-product-info h3 a,.ddv-product-style-overlay .ddv-ph-product-price{color:#fff}
.ddv-product-style-featured .ddv-ph-product-card:first-child{grid-column:span 2;display:grid;grid-template-columns:48% minmax(0,1fr)}
.ddv-product-style-featured .ddv-ph-product-card:first-child .ddv-ph-product-media{aspect-ratio:auto;height:100%}
.ddv-product-style-catalog .ddv-ph-product-card{border-radius:4px}
.ddv-product-style-catalog .ddv-ph-product-info{padding:10px;background:var(--ddv-surface-2,#f2f7f4)}
/* Eight advanced layouts */
.ddv-product-style-mosaic .ddv-ph-product-card:nth-child(6n+1){grid-column:span 2;grid-row:span 2}
.ddv-product-style-mosaic .ddv-ph-product-card:nth-child(6n+1) .ddv-ph-product-media{aspect-ratio:4/3}
.ddv-product-style-magazine .ddv-ph-product-card{border:0;border-bottom:2px solid var(--ddv-card-border);border-radius:0}
.ddv-product-style-magazine .ddv-ph-product-info h3{font-family:Georgia,serif;font-size:18px}
.ddv-product-style-floating .ddv-ph-product-card{border:0;box-shadow:0 12px 25px #0c36211a;margin:5px}
.ddv-product-style-glass .ddv-ph-product-card{background:color-mix(in srgb,var(--ddv-card-surface) 76%,transparent);backdrop-filter:blur(12px);border:1px solid color-mix(in srgb,var(--ddv-card-primary) 15%,transparent)}
.ddv-product-style-list .ddv-product-shelf-items{grid-template-columns:1fr!important}
.ddv-product-style-list .ddv-ph-product-card{display:grid;grid-template-columns:140px minmax(0,1fr)}
.ddv-product-style-list .ddv-ph-product-media{height:100%;aspect-ratio:1}
.ddv-product-style-carousel .ddv-product-shelf-items{display:flex!important;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;padding-bottom:9px}
.ddv-product-style-carousel .ddv-ph-product-card{flex:0 0 min(260px,75%);scroll-snap-align:start}
.ddv-product-style-pricing .ddv-ph-product-price{font-size:clamp(20px,2vw,30px);padding:8px 0;border-top:1px dashed var(--ddv-card-border)}
.ddv-product-style-editorial .ddv-ph-product-card{border-radius:0 23px 0 23px}
.ddv-product-style-editorial .ddv-ph-product-media{aspect-ratio:3/4}
/* Motion and display belong to the independently configured CMS collection. */
@media(min-width:1024px){
 .ddv-cms-product-shelf.ddv-pdisplay-d-scroll .ddv-product-shelf-items{display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--ddv-products-rows-d,2),minmax(0,auto));grid-template-columns:none;grid-auto-columns:minmax(180px,240px);overflow-x:auto;scroll-snap-type:x mandatory}
 .ddv-cms-product-shelf.ddv-pdisplay-d-scroll .ddv-ph-product-card{flex:0 0 240px;scroll-snap-align:start}
 .ddv-cms-product-shelf.ddv-pdisplay-d-list .ddv-product-shelf-items{display:grid;grid-template-columns:1fr}
 .ddv-cms-product-shelf.ddv-pdisplay-d-list .ddv-ph-product-card{display:grid;grid-template-columns:160px 1fr}
 .ddv-cms-product-shelf.ddv-pmotion-d-lift .ddv-ph-product-card:hover{transform:translateY(-5px);box-shadow:0 12px 28px #0002}
 .ddv-cms-product-shelf.ddv-pmotion-d-slide .ddv-ph-product-card:hover{transform:translateX(4px)}
 .ddv-cms-product-shelf.ddv-pmotion-d-fade .ddv-ph-product-card:hover{opacity:.78}
}
@media(min-width:768px) and (max-width:1023px){
 .ddv-cms-product-shelf .ddv-product-shelf-items{grid-template-columns:repeat(var(--ddv-products-cols-t,3),minmax(0,1fr))}
 .ddv-cms-product-shelf.ddv-pdisplay-t-scroll .ddv-product-shelf-items{display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--ddv-products-rows-t,2),minmax(0,auto));grid-template-columns:none;grid-auto-columns:minmax(160px,36%);overflow-x:auto;scroll-snap-type:x mandatory}
 .ddv-cms-product-shelf.ddv-pdisplay-t-scroll .ddv-ph-product-card{flex:0 0 36%;scroll-snap-align:start}
 .ddv-cms-product-shelf.ddv-pdisplay-t-list .ddv-product-shelf-items{grid-template-columns:1fr}
 .ddv-cms-product-shelf.ddv-pmotion-t-lift .ddv-ph-product-card:active{transform:translateY(-3px)}
 .ddv-cms-product-shelf.ddv-pmotion-t-slide .ddv-ph-product-card:active{transform:translateX(3px)}
 .ddv-cms-product-shelf.ddv-pmotion-t-fade .ddv-ph-product-card:active{opacity:.78}
}
@media(max-width:767px){
 .ddv-cms-product-shelf .ddv-product-shelf-items{grid-template-columns:repeat(var(--ddv-products-cols-m,2),minmax(0,1fr));gap:7px}
 .ddv-cms-product-shelf .ddv-ph-product-info{padding:8px;gap:4px}
 .ddv-cms-product-shelf .ddv-ph-product-info h3{font-size:11px}
 .ddv-cms-product-shelf .ddv-ph-product-price{font-size:15px}
 .ddv-cms-product-shelf .ddv-ph-buy-row .ddv-btn{font-size:10px;padding:7px 3px}
 .ddv-cms-product-shelf.ddv-pdisplay-m-scroll .ddv-product-shelf-items{display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--ddv-products-rows-m,2),minmax(0,auto));grid-template-columns:none;grid-auto-columns:minmax(120px,60%);overflow-x:auto;scroll-snap-type:x mandatory}
 .ddv-cms-product-shelf.ddv-pdisplay-m-scroll .ddv-ph-product-card{flex:0 0 60%;scroll-snap-align:start}
 .ddv-cms-product-shelf.ddv-pdisplay-m-list .ddv-product-shelf-items{grid-template-columns:1fr}
 .ddv-cms-product-shelf.ddv-pdisplay-m-list .ddv-ph-product-card{display:grid;grid-template-columns:38% 1fr}
 .ddv-cms-product-shelf.ddv-pmotion-m-lift .ddv-ph-product-card:active{transform:translateY(-3px)}
 .ddv-cms-product-shelf.ddv-pmotion-m-slide .ddv-ph-product-card:active{transform:translateX(3px)}
 .ddv-cms-product-shelf.ddv-pmotion-m-fade .ddv-ph-product-card:active{opacity:.78}
 .ddv-product-style-featured .ddv-ph-product-card:first-child,.ddv-product-style-mosaic .ddv-ph-product-card:nth-child(6n+1){grid-column:span 1;grid-row:span 1;display:flex;flex-direction:column}
 .ddv-product-style-list .ddv-ph-product-card{grid-template-columns:38% 1fr}
}
@media(prefers-reduced-motion:reduce){.ddv-cms-product-shelf .ddv-ph-product-card{transition:none!important;transform:none!important;animation:none!important}}

/* DDV V1032 · Editor-defined merge spans, typed column patterns and independent image opacity. */
.ddv-vb-node{grid-column:span var(--ddv-vb-span-d,1)}
.ddv-store-hero .ddv-hero-media{display:block;width:100%;max-height:420px;object-fit:cover;border-radius:12px;margin:0 0 16px}
.ddv-cms-image_banner img{max-width:100%;height:auto;display:block;border-radius:inherit}
@media(min-width:768px) and (max-width:1023px){.ddv-vb-node{grid-column:span var(--ddv-vb-span-t,1)}}
@media(max-width:767px){.ddv-vb-node{grid-column:span var(--ddv-vb-span-m,1)}}
