/* DFW Print Wear – Order Builder v2 (storefront product page) */
.dfw-builder{--dfw-navy:#0F2340;--dfw-red:#C8102E;--dfw-ink:#1B2537;--dfw-muted:#5B6779;--dfw-line:#D9DEE6;--dfw-bg:#F2F4F7;--dfw-ok:#166534;font-family:"Barlow","Helvetica Neue",Arial,sans-serif;color:var(--dfw-ink);margin:8px 0 32px;clear:both;font-size:15px;line-height:1.45}
.dfw-builder *{box-sizing:border-box}
.dfw-builder button{font-family:inherit}
.dfw-b-muted{color:var(--dfw-muted);font-size:13px}
.dfw-b-error{color:var(--dfw-red);font-weight:600;font-size:14px;margin-top:8px}
.dfw-hint{font-size:13px;color:var(--dfw-muted);margin-top:10px}
.dfw-builder-loading{color:var(--dfw-muted)}

/* the builder replaces the template's gallery / title / price / meta for S&S-linked products */
body.dfw-linked .elementor-widget-woocommerce-product-images,
body.dfw-linked .elementor-widget-woocommerce-product-title,
body.dfw-linked .elementor-widget-woocommerce-product-price,
body.dfw-linked .elementor-widget-woocommerce-product-short-description,
body.dfw-linked .elementor-widget-woocommerce-product-meta{display:none!important}
body.dfw-linked .elementor-widget-woocommerce-product-add-to-cart{width:100%}

/* layout */
.dfw-pdp{display:grid;grid-template-columns:minmax(0,46%) minmax(0,1fr);gap:40px;align-items:start}
.dfw-pdp-gallery{position:sticky;top:96px}
.dfw-pdp-info{min-width:0}

/* gallery */
.dfw-main{position:relative;background:var(--dfw-bg);border-radius:12px;overflow:hidden;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;cursor:zoom-in}
.dfw-main img{width:100%;height:100%!important;max-height:100%;object-fit:contain;transition:transform .08s ease-out;display:block}
.dfw-main-empty{color:var(--dfw-muted)}
.dfw-gal-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:var(--dfw-navy);font-size:26px;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(15,35,64,.18);display:flex;align-items:center;justify-content:center;padding:0 0 3px;z-index:2}
.dfw-gal-prev{left:14px}.dfw-gal-next{right:14px}
.dfw-zoom-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:rgba(15,35,64,.72);color:#fff;font-size:12px;border-radius:999px;padding:6px 12px;pointer-events:none;z-index:2}
.dfw-main.is-zoom .dfw-zoom-hint{opacity:0}
.dfw-gal-color{position:absolute;left:14px;top:14px;background:#fff;color:var(--dfw-navy);font-weight:600;font-size:12px;border-radius:999px;padding:5px 10px;z-index:2;box-shadow:0 2px 8px rgba(15,35,64,.12)}
.dfw-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.dfw-thumb{width:84px;border:2px solid var(--dfw-line);border-radius:8px;background:#fff;padding:4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--dfw-muted);font-size:11px}
.dfw-thumb img{width:100%;aspect-ratio:1/1;object-fit:contain;display:block;background:var(--dfw-bg);border-radius:4px}
.dfw-thumb.is-on{border-color:var(--dfw-navy);color:var(--dfw-navy)}
.dfw-thumb:hover{border-color:var(--dfw-navy)}

/* info column */
.dfw-title{font-family:"Barlow Condensed","Arial Narrow",sans-serif;text-transform:uppercase;font-size:40px;line-height:1;color:var(--dfw-navy);margin:0 0 10px;font-weight:700}
.dfw-shortdesc{color:var(--dfw-muted);font-size:15px;margin:0 0 12px}
.dfw-shortdesc p{margin:0 0 6px}
.dfw-from{margin:0 0 18px;padding:12px 14px;background:var(--dfw-bg);border-radius:8px;font-size:14px}
.dfw-from strong{font-family:"Barlow Condensed",sans-serif;font-size:26px;color:var(--dfw-red);font-weight:700;line-height:1;vertical-align:-2px}
.dfw-from-label{font-weight:600;color:var(--dfw-navy)}
.dfw-from-sub{display:block;color:var(--dfw-muted);font-size:12px;margin-top:2px}

/* sections */
.dfw-sec{border-top:1px solid var(--dfw-line);padding:18px 0 20px}
.dfw-sec header{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-bottom:12px}
.dfw-sec h3{font-family:"Barlow Condensed","Arial Narrow",sans-serif;text-transform:uppercase;font-size:22px;letter-spacing:.3px;color:var(--dfw-navy);margin:0;line-height:1}
.dfw-sec-sub{font-size:13px;color:var(--dfw-muted)}
.dfw-sec-colors.is-hint{animation:dfwHint 1.8s ease}
@keyframes dfwHint{0%,100%{background:transparent}20%,60%{background:#FFF6E5}}

/* color chips + swatches */
.dfw-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.dfw-chip{border:1px solid var(--dfw-line);background:#fff;border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer;color:var(--dfw-ink)}
.dfw-chip:hover{border-color:var(--dfw-navy)}
.dfw-chip.is-on{background:var(--dfw-navy);border-color:var(--dfw-navy);color:#fff}
.dfw-swatch-grid{display:flex;flex-wrap:wrap;gap:10px 8px}
.dfw-swatch{width:54px;border:0;background:transparent;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--dfw-muted)}
.dfw-swatch .dfw-sw{position:relative;width:38px;height:38px;border-radius:50%;border:1px solid rgba(0,0,0,.18);background:#e5e7eb center/cover no-repeat;box-shadow:inset 0 0 0 2px #fff;transition:transform .12s}
.dfw-swatch:hover .dfw-sw{transform:scale(1.08)}
.dfw-swatch.is-on .dfw-sw{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--dfw-navy)}
.dfw-swatch.is-active .dfw-sw{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--dfw-red)}
.dfw-swatch .dfw-check{display:none;position:absolute;inset:0;border-radius:50%;background:rgba(15,35,64,.5)}
.dfw-swatch .dfw-check:after{content:"";position:absolute;left:14px;top:9px;width:8px;height:14px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}
.dfw-swatch.is-on .dfw-check{display:block}
.dfw-swatch-name{font-size:10.5px;line-height:1.1;text-align:center;max-width:54px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dfw-more-colors{margin-top:10px;border:1px dashed var(--dfw-line);background:#fff;border-radius:6px;padding:7px 12px;font-size:13px;font-weight:600;color:var(--dfw-navy);cursor:pointer}
.dfw-more-colors:hover{border-color:var(--dfw-navy)}

/* size matrix */
.dfw-empty{margin:0}
.dfw-cblock{border:1px solid var(--dfw-line);border-radius:10px;padding:12px 14px 14px;margin-bottom:10px;background:#fff}
.dfw-cblock-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.dfw-cblock-head .dfw-sw{width:22px;height:22px;border-radius:50%;border:1px solid rgba(0,0,0,.15);background:#e5e7eb center/cover no-repeat;flex:0 0 22px}
.dfw-cblock-head strong{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:18px;color:var(--dfw-navy);letter-spacing:.3px}
.dfw-cblock-total{margin-left:auto;font-size:13px;color:var(--dfw-muted);font-weight:600}
.dfw-cblock .dfw-remove{border:0;background:transparent;color:var(--dfw-muted);font-size:13px;cursor:pointer;text-decoration:underline;padding:0}
.dfw-cblock .dfw-remove:hover{color:var(--dfw-red)}
.dfw-sizes{display:flex;flex-wrap:wrap;gap:8px}
.dfw-size{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid var(--dfw-line);border-radius:8px;padding:8px 8px 6px;min-width:96px;background:#fff}
.dfw-size.is-over{border-color:#b45309;background:#fffbeb}
.dfw-size-name{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:16px;font-weight:700;color:var(--dfw-navy)}
.dfw-stepper{display:flex;align-items:center;border:1px solid var(--dfw-line);border-radius:6px;overflow:hidden}
.dfw-stepper button{width:28px;height:32px;border:0;background:var(--dfw-bg);color:var(--dfw-navy);font-size:18px;line-height:1;cursor:pointer;padding:0}
.dfw-stepper button:hover{background:#E3E8EF}
.dfw-stepper input.dfw-qty{width:46px;height:32px;border:0;text-align:center;font-size:15px;font-weight:600;-moz-appearance:textfield;background:#fff;padding:0;color:var(--dfw-ink)}
.dfw-stepper input.dfw-qty::-webkit-outer-spin-button,.dfw-stepper input.dfw-qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.dfw-stepper input.dfw-qty:focus{outline:none;background:#EEF2F7}
.dfw-size-price{font-size:11px;color:var(--dfw-muted)}
.dfw-avail{font-size:11px;color:#b45309}
.dfw-matrix-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:4px}
.dfw-add-color{border:1.5px dashed var(--dfw-navy);background:#fff;color:var(--dfw-navy);border-radius:6px;padding:9px 14px;font-weight:700;font-size:14px;cursor:pointer}
.dfw-add-color:hover{background:#EEF2F7}
.dfw-total-garments{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:18px;color:var(--dfw-navy);letter-spacing:.3px}
.dfw-total-garments strong{font-size:24px;color:var(--dfw-red)}
.dfw-moq{margin-top:12px}
.dfw-moq-bar{height:6px;background:var(--dfw-bg);border-radius:999px;overflow:hidden}
.dfw-moq-bar span{display:block;height:100%;background:var(--dfw-red);transition:width .2s}
.dfw-moq-text{font-size:13px;color:var(--dfw-muted);margin-top:6px}

/* printing */
.dfw-field{margin:12px 0 0}
.dfw-lbl{display:block;font-weight:600;font-size:13px;margin-bottom:4px;color:var(--dfw-navy)}
.dfw-select{padding:8px 12px;border:1px solid var(--dfw-line);border-radius:6px;font-size:14px;background:#fff;min-width:200px}
.dfw-loc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.dfw-loc-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;border:1.5px solid var(--dfw-line);border-radius:10px;padding:12px 8px 10px;cursor:pointer;background:#fff;transition:border-color .12s,background .12s;text-align:center}
.dfw-loc-card:hover{border-color:var(--dfw-navy)}
.dfw-loc-card.is-on{border-color:var(--dfw-navy);background:#EEF2F7;box-shadow:inset 0 0 0 1px var(--dfw-navy)}
.dfw-loc-card input{position:absolute;opacity:0;pointer-events:none}
.dfw-loc-card svg{width:48px;height:48px}
.dfw-loc-card svg .dfw-tee,.dfw-art-drop svg .dfw-tee{fill:#fff;stroke:var(--dfw-navy);stroke-width:2.5;stroke-linejoin:round}
.dfw-loc-card svg .dfw-area,.dfw-art-drop svg .dfw-area{fill:var(--dfw-red);stroke:var(--dfw-red)}
.dfw-loc-name{font-weight:600;font-size:14px}
.dfw-loc-add{font-size:12px;color:var(--dfw-muted)}
.dfw-pc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;max-width:420px}
.dfw-pc-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;border:1.5px solid var(--dfw-line);border-radius:10px;padding:12px 8px 10px;cursor:pointer;background:#fff;text-align:center;transition:border-color .12s,background .12s}
.dfw-pc-card:hover{border-color:var(--dfw-navy)}
.dfw-pc-card.is-on{border-color:var(--dfw-navy);background:#EEF2F7;box-shadow:inset 0 0 0 1px var(--dfw-navy)}
.dfw-pc-card input{position:absolute;opacity:0;pointer-events:none}
.dfw-pc-swatch{width:40px;height:40px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}
.dfw-pc-black{background:#111}
.dfw-pc-color{background:conic-gradient(#C8102E,#F59E0B,#16A34A,#2563EB,#7C3AED,#C8102E)}

/* artwork */
.dfw-art-zones{margin-top:14px}
.dfw-art-title{font-weight:700;color:var(--dfw-navy);margin:0 0 8px;font-size:14px}
.dfw-art-title .dfw-b-muted{font-weight:400;margin-left:6px}
.dfw-art-zone{margin-bottom:10px}
.dfw-art-drop{border:2px dashed var(--dfw-line);border-radius:10px;padding:10px 14px;background:var(--dfw-bg);cursor:pointer;display:flex;align-items:center;gap:12px}
.dfw-art-drop:hover,.dfw-art-drop.is-drag{border-color:var(--dfw-navy);background:#EEF2F7}
.dfw-art-drop.has-file{border-style:solid;border-color:#86efac;background:#F0FDF4}
.dfw-art-drop input{display:none}
.dfw-art-drop strong{color:var(--dfw-navy)}
.dfw-art-drop svg{width:36px;height:36px;flex:0 0 36px}
.dfw-art-drop > span:nth-of-type(1){flex:1}
.dfw-btn-sm{background:var(--dfw-navy);color:#fff;border-radius:5px;padding:7px 12px;font-size:13px;font-weight:600;white-space:nowrap}
.dfw-art-list{list-style:none;margin:6px 0 0;padding:0;font-size:13px}
.dfw-art-list li{display:flex;align-items:center;gap:10px;padding:6px 4px;border-bottom:1px solid var(--dfw-line)}
.dfw-art-list li .dfw-file{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dfw-art-list li .dfw-ok{color:var(--dfw-ok);font-weight:600}
.dfw-art-list li .dfw-err{color:var(--dfw-red)}
.dfw-art-list .dfw-remove{border:0;background:transparent;color:var(--dfw-muted);cursor:pointer;font-size:18px;line-height:1;padding:2px 6px}
.dfw-art-list .dfw-remove:hover{color:var(--dfw-red)}
.dfw-art-note{width:100%;padding:10px 12px;border:1px solid var(--dfw-line);border-radius:6px;font-size:14px;min-height:64px;font-family:inherit}
.dfw-proof{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:14px;color:var(--dfw-ok);font-weight:600}
.dfw-proof svg{width:18px;height:18px;flex:0 0 18px}

/* price box */
.dfw-pricebox{background:var(--dfw-navy);color:#fff;border-radius:12px;padding:18px 20px 20px;box-shadow:0 10px 30px rgba(15,35,64,.18);margin-top:6px}
.dfw-price-body{min-height:48px;transition:opacity .15s}
.dfw-price-body.is-busy{opacity:.55}
.dfw-price-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.dfw-price-qty{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:20px;letter-spacing:.4px;color:#C9D2E0}
.dfw-price-per{font-size:14px;color:#C9D2E0}
.dfw-price-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid rgba(255,255,255,.15);margin-top:8px;padding-top:10px}
.dfw-price-total span{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:18px;letter-spacing:.4px}
.dfw-price-total strong{font-family:"Barlow Condensed",sans-serif;font-size:36px;font-weight:700;line-height:1}
.dfw-breakdown{margin-top:10px;font-size:13px}
.dfw-breakdown summary{cursor:pointer;color:#C9D2E0;font-size:13px}
.dfw-breakdown table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
.dfw-breakdown td{padding:5px 0;border-bottom:1px solid rgba(255,255,255,.12);vertical-align:top}
.dfw-breakdown td small{color:#C9D2E0;font-size:12px}
.dfw-breakdown td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:10px}
.dfw-taxnote{color:#C9D2E0;margin-top:6px}
.dfw-pricebox .dfw-warn{color:#FDE68A;font-size:13px;margin-top:8px}
.dfw-pricebox .dfw-b-error{color:#FCA5A5}
.dfw-pricebox .dfw-b-muted{color:#C9D2E0}
.dfw-btn{font-family:"Barlow Condensed","Arial Narrow",sans-serif;font-weight:700;font-size:20px;text-transform:uppercase;letter-spacing:.5px;border-radius:6px;padding:15px 26px;border:2px solid transparent;cursor:pointer;line-height:1;transition:background .12s;width:100%;margin-top:14px}
.dfw-btn-primary{background:var(--dfw-red);color:#fff;border-color:var(--dfw-red)}
.dfw-btn-primary:hover{background:#A50D25;border-color:#A50D25;color:#fff}
.dfw-btn-primary[disabled]{opacity:.5;cursor:not-allowed}
.dfw-trust{list-style:none;margin:14px 0 0;padding:0;font-size:13px;color:#C9D2E0}
.dfw-trust li{padding:3px 0 3px 20px;position:relative}
.dfw-trust li:before{content:"";position:absolute;left:2px;top:9px;width:5px;height:9px;border:solid #86efac;border-width:0 2px 2px 0;transform:rotate(45deg)}
.dfw-quote-link{display:block;margin-top:10px;color:#fff;font-size:13px;text-decoration:underline}
.dfw-quote-link:hover{color:#fff}

/* mobile bottom bar */
.dfw-mobile-bar{display:none}

/* hide the theme's default cart controls for linked products */
.single-product .dfw-builder ~ form.cart,.single-product .wd-sticky-btn{display:none!important}

@media (max-width:1024px){
	.dfw-pdp{grid-template-columns:1fr;gap:20px}
	.dfw-pdp-gallery{position:static}
	.dfw-pricebox .dfw-add{display:none}
	.dfw-mobile-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:999;background:#fff;border-top:1px solid var(--dfw-line);padding:10px 16px;gap:14px;align-items:center;box-shadow:0 -6px 20px rgba(15,35,64,.12)}
	.dfw-mobile-bar strong{display:block;font-family:"Barlow Condensed",sans-serif;font-size:24px;color:var(--dfw-navy);line-height:1}
	.dfw-mobile-bar .dfw-btn{margin:0;width:auto;flex:1;padding:14px 18px}
	.dfw-builder{padding-bottom:70px}
}
@media (max-width:767px){
	.dfw-title{font-size:32px}
	.dfw-thumb{width:64px}
	.dfw-size{min-width:84px;padding:6px 6px 5px}
	.dfw-stepper input.dfw-qty{width:40px}
	.dfw-loc-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
}

/* v0.5: artwork preview on the garment, per-location print color, approval */
.dfw-main.is-preview{cursor:default}
.dfw-preview-layer{position:absolute;inset:0;pointer-events:none;z-index:1}
.dfw-pv-art{position:absolute;display:flex;align-items:center;justify-content:center}
.dfw-pv-art img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;filter:drop-shadow(0 0 0 rgba(0,0,0,0))}
.dfw-pv-file{border:2px dashed var(--dfw-red);border-radius:6px;background:rgba(255,255,255,.55);font-size:11px;color:var(--dfw-navy);text-align:center;padding:4px;overflow:hidden}
.dfw-pv-hint{background:rgba(200,16,46,.9)}
.dfw-pv-toggle{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;font-weight:600;color:var(--dfw-navy);cursor:pointer}
.dfw-art-zone{border:1px solid var(--dfw-line);border-radius:10px;padding:12px 14px;margin-bottom:10px;background:#fff}
.dfw-art-zone-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.dfw-art-zone-head svg{width:30px;height:30px}
.dfw-art-zone-head svg .dfw-tee{fill:#fff;stroke:var(--dfw-navy);stroke-width:2.5;stroke-linejoin:round}
.dfw-art-zone-head svg .dfw-area{fill:var(--dfw-red);stroke:var(--dfw-red)}
.dfw-art-zone-head strong{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:18px;color:var(--dfw-navy);letter-spacing:.3px}
.dfw-pc-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
.dfw-pc-lbl{font-size:13px;color:var(--dfw-muted);margin-right:2px}
.dfw-pc-opt{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--dfw-line);border-radius:999px;padding:5px 12px 5px 6px;font-size:13px;font-weight:600;cursor:pointer;background:#fff}
.dfw-pc-opt:hover{border-color:var(--dfw-navy)}
.dfw-pc-opt.is-on{border-color:var(--dfw-navy);background:#EEF2F7;box-shadow:inset 0 0 0 1px var(--dfw-navy)}
.dfw-pc-opt input{position:absolute;opacity:0;pointer-events:none}
.dfw-pc-opt .dfw-pc-swatch{width:20px;height:20px}
.dfw-pc-opt small{color:var(--dfw-muted);font-weight:400}
.dfw-art-drop{padding:8px 12px}
.dfw-art-size{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--dfw-muted)}
.dfw-art-size input{width:90px;margin:0}
.dfw-art-size em{font-style:normal;min-width:34px}
.dfw-approve{display:flex;align-items:flex-start;gap:8px;margin-top:12px;font-size:13px;color:#fff;cursor:pointer;line-height:1.35}
.dfw-approve input{margin-top:2px;flex:0 0 auto}

/* v0.6: print location cards, design details, mobile steps, shared design viewer */
.dfw-rating{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:13px}
.dfw-stars{position:relative;display:inline-block;width:92px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 16'%3E%3Cg fill='%23D9DEE6'%3E%3Cpath id='s' d='M8 0l2.4 5 5.6.8-4 3.9.9 5.5L8 12.6 3.1 15.2 4 9.7 0 5.8 5.6 5z'/%3E%3Cuse href='%23s' x='19'/%3E%3Cuse href='%23s' x='38'/%3E%3Cuse href='%23s' x='57'/%3E%3Cuse href='%23s' x='76'/%3E%3C/g%3E%3C/svg%3E") no-repeat}
.dfw-stars span{position:absolute;left:0;top:0;height:100%;overflow:hidden;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 16'%3E%3Cg fill='%23C8102E'%3E%3Cpath id='s' d='M8 0l2.4 5 5.6.8-4 3.9.9 5.5L8 12.6 3.1 15.2 4 9.7 0 5.8 5.6 5z'/%3E%3Cuse href='%23s' x='19'/%3E%3Cuse href='%23s' x='38'/%3E%3Cuse href='%23s' x='57'/%3E%3Cuse href='%23s' x='76'/%3E%3C/g%3E%3C/svg%3E") no-repeat}
.dfw-sec header .dfw-step-n{display:inline-flex;width:26px;height:26px;border-radius:50%;background:var(--dfw-navy);color:#fff;font-weight:700;font-size:13px;align-items:center;justify-content:center;flex:0 0 26px;align-self:center}
.dfw-print{border:1px solid var(--dfw-line);border-radius:10px;background:#fff;margin-bottom:12px;overflow:hidden}
.dfw-print-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--dfw-bg);border-bottom:1px solid var(--dfw-line)}
.dfw-print-head svg{width:34px;height:34px;flex:0 0 34px}
.dfw-print-head svg .dfw-tee{fill:#fff;stroke:var(--dfw-navy);stroke-width:2.5;stroke-linejoin:round}
.dfw-print-head svg .dfw-area{fill:var(--dfw-red);stroke:var(--dfw-red)}
.dfw-print-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0;flex-wrap:wrap}
.dfw-print-n{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:15px;color:var(--dfw-muted);letter-spacing:.4px}
.dfw-print-loc{min-width:160px;font-weight:700;color:var(--dfw-navy)}
.dfw-print-price{font-weight:700;color:var(--dfw-navy);white-space:nowrap}
.dfw-link{border:0;background:transparent;color:var(--dfw-muted);text-decoration:underline;cursor:pointer;font-size:13px;padding:0}
.dfw-link:hover{color:var(--dfw-red)}
.dfw-link input[type=file]{display:none}
.dfw-print-body{padding:12px 14px 14px}
.dfw-print-body .dfw-field{margin:0 0 12px}
.dfw-toggle{display:inline-flex;border:1.5px solid var(--dfw-line);border-radius:8px;overflow:hidden}
.dfw-tg{border:0;background:#fff;padding:8px 14px;font-weight:600;font-size:14px;cursor:pointer;color:var(--dfw-ink);display:flex;flex-direction:column;align-items:center;gap:1px;min-width:110px}
.dfw-tg small{font-weight:400;font-size:11px;color:var(--dfw-muted)}
.dfw-tg.is-on{background:var(--dfw-navy);color:#fff}
.dfw-tg.is-on small{color:#C9D2E0}
.dfw-toggle-sm .dfw-tg{min-width:0;padding:7px 12px;font-size:13px}
.dfw-inks{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dfw-ink-chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--dfw-line);border-radius:999px;padding:4px 10px 4px 5px;font-size:12.5px;font-weight:600;cursor:pointer;background:#fff;color:var(--dfw-ink)}
.dfw-ink-chip span{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.18);display:inline-block}
.dfw-ink-chip.is-on{border-color:var(--dfw-navy);box-shadow:inset 0 0 0 1px var(--dfw-navy);background:#EEF2F7}
.dfw-ink-custom input{border:1px solid var(--dfw-line);border-radius:999px;padding:5px 10px;font-size:12.5px;width:120px}
.dfw-field-size{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dfw-field-size .dfw-lbl{margin:0;flex-basis:100%}
.dfw-field-size label{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.dfw-dim{width:64px;padding:6px 8px;border:1px solid var(--dfw-line);border-radius:6px;font-size:14px;text-align:center}
.dfw-field-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.dfw-field-inline .dfw-lbl{margin:0}
.dfw-file-chip{display:flex;align-items:center;gap:10px;border:1px solid #86efac;background:#F0FDF4;border-radius:8px;padding:8px 10px;font-size:13px}
.dfw-file-chip.is-busy{border-color:var(--dfw-line);background:var(--dfw-bg)}
.dfw-file-chip.is-err{border-color:#FCA5A5;background:#FEF2F2;color:var(--dfw-red)}
.dfw-file-thumb{width:48px;height:48px;border-radius:6px;object-fit:contain;background:#fff;border:1px solid var(--dfw-line);flex:0 0 48px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--dfw-navy)}
.dfw-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.dfw-bycolor{display:flex;flex-direction:column;gap:10px}
.dfw-bycolor-row{border:1px dashed var(--dfw-line);border-radius:8px;padding:10px}
.dfw-bycolor-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.dfw-bycolor-head .dfw-sw{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.15);background:#e5e7eb center/cover no-repeat}
.dfw-print-notes{width:100%;padding:8px 10px;border:1px solid var(--dfw-line);border-radius:6px;font-size:13px}
.dfw-add-print{border:1.5px dashed var(--dfw-navy);background:#fff;color:var(--dfw-navy);border-radius:8px;padding:12px 16px;font-weight:700;font-size:15px;cursor:pointer;width:100%;margin-top:4px}
.dfw-add-print:hover{background:#EEF2F7}
.dfw-pv-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px}
.dfw-pv-colors{display:flex;gap:6px;flex-wrap:wrap}
.dfw-pv-color{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--dfw-line);border-radius:999px;padding:3px 10px 3px 4px;font-size:12px;background:#fff;cursor:pointer}
.dfw-pv-color .dfw-sw{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.15);background:#e5e7eb center/cover no-repeat}
.dfw-pv-color.is-on{border-color:var(--dfw-navy);box-shadow:inset 0 0 0 1px var(--dfw-navy)}
.dfw-pv-tint{-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.dfw-design-details{margin-top:16px;border:1px solid var(--dfw-line);border-radius:10px;padding:14px 16px;background:#fff}
.dfw-design-details h4{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:18px;color:var(--dfw-navy);margin:0 0 8px;letter-spacing:.3px}
.dfw-details{list-style:none;margin:0;padding:0}
.dfw-details li{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-top:1px solid var(--dfw-line);font-size:13px}
.dfw-details li:first-child{border-top:0;padding-top:0}
.dfw-details li strong{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:16px;color:var(--dfw-navy)}
.dfw-details-file{color:var(--dfw-muted)}
.dfw-sec-notes .dfw-art-note{min-height:72px}
/* mobile steps */
.dfw-stepnav{display:none}
.is-steps .dfw-stepnav{display:flex;gap:4px;margin:0 0 14px;overflow-x:auto;padding-bottom:4px}
.dfw-stepbtn{flex:1 0 auto;border:1px solid var(--dfw-line);background:#fff;border-radius:999px;padding:6px 10px 6px 6px;font-size:12px;font-weight:600;color:var(--dfw-muted);display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.dfw-stepbtn span{width:20px;height:20px;border-radius:50%;background:var(--dfw-bg);color:var(--dfw-navy);display:inline-flex;align-items:center;justify-content:center;font-size:11px}
.dfw-stepbtn.is-on{border-color:var(--dfw-navy);color:var(--dfw-navy);background:#EEF2F7}
.dfw-stepbtn.is-on span{background:var(--dfw-navy);color:#fff}
.dfw-stepbtn.is-done span{background:var(--dfw-ok);color:#fff}
.is-steps .dfw-sec{border-top:0;padding-top:4px}
.is-steps .dfw-pdp-gallery{margin-bottom:8px}
.dfw-mobile-bar .dfw-next{margin:0;width:auto;flex:1;padding:14px 18px}
/* standalone viewer (order page / admin) */
.dfw-dv{max-width:520px}
.dfw-dv-main{position:relative;background:#F2F4F7;border-radius:12px;overflow:hidden;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.dfw-dv-main img{width:100%;height:100%;object-fit:contain;display:block}
.dfw-dv-tabs{display:flex;gap:8px;margin-top:10px}
.dfw-dv-tab{border:1.5px solid #D9DEE6;background:#fff;border-radius:999px;padding:6px 14px;font-weight:600;cursor:pointer;font-size:13px;color:#1B2537}
.dfw-dv-tab.is-on{border-color:#0F2340;background:#0F2340;color:#fff}
.dfw-dv .dfw-preview-layer,.dfw-dv .dfw-pv-art,.dfw-dv .dfw-gal-color{font-family:"Barlow","Helvetica Neue",Arial,sans-serif}

/* customer order page: your design + proof approval */
.dfw-yourdesign{margin:28px 0;font-family:"Barlow","Helvetica Neue",Arial,sans-serif;color:#1B2537}
.dfw-yourdesign h2,.dfw-yourdesign h3{font-family:"Barlow Condensed","Arial Narrow",sans-serif;text-transform:uppercase;color:#0F2340;margin:0 0 10px}
.dfw-yourdesign h2{font-size:30px}.dfw-yourdesign h3{font-size:20px}
.dfw-yd-item{border:1px solid #D9DEE6;border-radius:10px;padding:16px;margin-bottom:14px}
.dfw-yd-grid{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:20px;align-items:start}
.dfw-proofbox{border:1px solid #D9DEE6;border-radius:10px;padding:16px;background:#F8FAFC}
.dfw-proof-status{display:inline-block;border-radius:999px;padding:2px 12px;font-size:14px;background:#EEF2F7;color:#0F2340;text-transform:none;font-family:"Barlow",sans-serif;font-weight:700;vertical-align:middle}
.dfw-proof-status.is-ready{background:#FFF6E5;color:#9A5B00}.dfw-proof-status.is-approved{background:#DCFCE7;color:#166534}.dfw-proof-status.is-changes{background:#FEE2E2;color:#991B1B}
.dfw-proof-imgs{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0}
.dfw-proof-imgs figure{margin:0;width:220px}
.dfw-proof-imgs img{width:100%;aspect-ratio:1/1;object-fit:contain;background:#fff;border:1px solid #D9DEE6;border-radius:8px;display:block}
.dfw-proof-imgs figcaption{font-size:12px;color:#5B6779;text-align:center;margin-top:4px}
.dfw-proof-imgs-sm figure{width:110px}
.dfw-proof-actions{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
.dfw-proof-actions .dfw-btn{width:auto;margin:0;padding:13px 22px;font-size:18px}
.dfw-btn-outline{background:#fff;color:#0F2340;border-color:#0F2340}
.dfw-btn-outline:hover{background:#0F2340;color:#fff}
.dfw-proof-comment{margin:10px 0}
.dfw-proof-comment .dfw-btn{width:auto;margin-top:8px;font-size:16px;padding:11px 18px}
.dfw-proof-ok{color:#166534;font-weight:700}
.dfw-proof-history{margin-top:10px;font-size:13px}
.dfw-proof-old{margin:8px 0}
@media (max-width:767px){.dfw-yd-grid{grid-template-columns:1fr}}

/* v0.6b: theme-proof buttons, order summary column, draggable artwork */
.dfw-builder button{box-shadow:none;text-transform:none;letter-spacing:0;min-height:0;line-height:1.2}
.dfw-builder .dfw-gal-nav{position:absolute!important;top:50%!important;transform:translateY(-50%)!important;width:40px!important;height:40px!important;min-height:0!important;padding:0 0 3px!important;background:#fff!important;color:var(--dfw-navy)!important;border:0!important;border-radius:50%!important;font-size:26px!important;line-height:1!important;margin:0!important}
.dfw-builder .dfw-gal-prev{left:14px!important;right:auto!important}.dfw-builder .dfw-gal-next{right:14px!important;left:auto!important}
.dfw-builder .dfw-stepper button{min-height:0;padding:0}
.dfw-pdp{grid-template-columns:minmax(0,36%) minmax(0,1fr) 300px;gap:32px}
.dfw-pdp-summary{position:sticky;top:96px;grid-column:3;grid-row:1}
.dfw-pdp-gallery{grid-column:1;grid-row:1}
.dfw-pdp-info{grid-column:2;grid-row:1}
.dfw-summary-card{border:1px solid var(--dfw-line);border-radius:12px;padding:16px 18px 18px;background:#fff;box-shadow:0 8px 24px rgba(15,35,64,.06)}
.dfw-summary-card h4{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:22px;color:var(--dfw-navy);margin:0 0 10px;letter-spacing:.3px}
.dfw-sum{margin:0 0 14px;display:grid;grid-template-columns:1fr;gap:2px;font-size:13px}
.dfw-sum dt{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--dfw-muted);margin-top:8px}
.dfw-sum dd{margin:0;color:var(--dfw-ink)}
.dfw-sum-colors,.dfw-sum-prints{list-style:none;margin:0;padding:0}
.dfw-sum-colors li{display:flex;gap:8px;align-items:flex-start;padding:4px 0}
.dfw-sum-colors .dfw-sw{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.15);background:#e5e7eb center/cover no-repeat;flex:0 0 16px;margin-top:2px}
.dfw-sum-colors small,.dfw-sum-prints small{color:var(--dfw-muted)}
.dfw-sum-prints li{padding:3px 0}
.dfw-summary-card .dfw-pricebox{margin-top:0;padding:16px 16px 18px}
.dfw-preview-layer.is-editable .dfw-pv-art.is-editable{pointer-events:auto;cursor:move;touch-action:none;outline:1px dashed rgba(200,16,46,.55);outline-offset:2px}
.dfw-pv-art.is-editable:hover,.dfw-pv-art.is-dragging{outline:2px solid var(--dfw-red)}
.dfw-pv-art .dfw-pv-ink{position:absolute;inset:0;display:block;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.dfw-pv-tint{background:transparent}
.dfw-pv-handle{position:absolute;right:-8px;bottom:-8px;width:16px;height:16px;border-radius:50%;background:var(--dfw-red);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3);cursor:nwse-resize;display:none;touch-action:none}
.dfw-pv-tag{position:absolute;left:0;top:-20px;font-size:10px;font-weight:600;background:var(--dfw-navy);color:#fff;padding:2px 6px;border-radius:4px;white-space:nowrap;display:none;font-style:normal}
.dfw-pv-art.is-editable:hover .dfw-pv-handle,.dfw-pv-art.is-dragging .dfw-pv-handle,.dfw-pv-art.is-editable:hover .dfw-pv-tag{display:block}
.dfw-pos-reset,.dfw-pos-reset-all{margin-left:8px}
@media (max-width:1180px){
	.dfw-pdp{grid-template-columns:minmax(0,42%) minmax(0,1fr)}
	.dfw-pdp-summary{grid-column:1 / span 2;grid-row:2;position:static}
	.dfw-summary-card{max-width:520px}
}
@media (max-width:1024px){
	.dfw-pdp{grid-template-columns:1fr}
	.dfw-pdp-gallery,.dfw-pdp-info,.dfw-pdp-summary{grid-column:1;grid-row:auto}
	.dfw-pv-handle{display:block}
	.dfw-summary-card{max-width:none}
}

/* rotate handle */
.dfw-pv-art{transform-origin:center center}
.dfw-pv-rotate{position:absolute;left:50%;top:-26px;margin-left:-8px;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--dfw-red);box-shadow:0 1px 4px rgba(0,0,0,.3);cursor:grab;display:none;touch-action:none}
.dfw-pv-rotate:before{content:"";position:absolute;left:5px;top:14px;width:2px;height:10px;background:var(--dfw-red)}
.dfw-pv-art.is-editable:hover .dfw-pv-rotate,.dfw-pv-art.is-dragging .dfw-pv-rotate{display:block}
.dfw-pv-art .dfw-pv-tag{top:-44px}
@media (max-width:1024px){.dfw-pv-rotate{display:block}}

/* v0.6.6: handles always visible while editing; MOQ note under the price */
.dfw-pv-art.is-editable .dfw-pv-handle,.dfw-pv-art.is-editable .dfw-pv-rotate{display:block;opacity:.85}
.dfw-pv-art.is-editable:hover .dfw-pv-handle,.dfw-pv-art.is-editable:hover .dfw-pv-rotate,.dfw-pv-art.is-dragging .dfw-pv-handle,.dfw-pv-art.is-dragging .dfw-pv-rotate{opacity:1}
.dfw-pv-art.is-editable{outline:1px dashed rgba(200,16,46,.55)}
.dfw-from-moq{margin-top:8px;padding-top:8px;border-top:1px solid var(--dfw-line);font-size:14px;color:var(--dfw-navy)}
.dfw-from-moq strong{font-family:"Barlow Condensed",sans-serif;font-size:20px;color:var(--dfw-red);vertical-align:-1px}

/* edit-from-cart */
.dfw-editbar{background:#FFF6E5;border:1px solid #F5D08A;border-radius:8px;padding:10px 14px;margin:0 0 14px;font-size:14px;color:#1B2537}
.dfw-editbar a{color:#0F2340;text-decoration:underline;margin-left:6px}
.dfw-cart-edit{margin-top:6px;font-size:13px}
.dfw-cart-edit a{color:#C8102E;font-weight:700;text-decoration:underline}
.dfw-cart-edit-note{color:#5B6779;margin-left:4px}
img.dfw-cart-design{border-radius:6px;border:1px solid #D9DEE6}

.dfw-from-moq-fee{display:block;margin-top:4px;font-size:13px;color:#8A5A00;background:#FFF6E5;border-radius:5px;padding:5px 8px}
.dfw-rot{width:64px;padding:6px 8px;border:1px solid var(--dfw-line);border-radius:6px;font-size:14px;text-align:center}

/* A "Black & White" print is previewed in black and white, so the customer sees what will actually print. */
.dfw-pv-art.is-bw img{filter:grayscale(1) contrast(1.06)}
.dfw-pv-art.is-bw .dfw-pv-ink{filter:grayscale(1)}

/* ---------- text objects on the garment ---------- */
.dfw-preview-layer{container-type:inline-size}
.dfw-pv-text{display:flex;align-items:center;justify-content:center;overflow:visible}
.dfw-pv-text .dfw-pv-tx{display:block;width:100%;white-space:pre-wrap;word-break:break-word}
.dfw-pv-text.is-editable{cursor:move}
.dfw-pv-text.is-editable .dfw-pv-handle{right:-8px;bottom:-8px}

/* ---------- text objects in the order builder ---------- */
.dfw-txwrap{display:flex;flex-direction:column;gap:8px}
.dfw-tx{border:1px solid var(--dfw-line);border-radius:9px;overflow:hidden;background:#fff}
.dfw-tx.is-open{border-color:var(--dfw-navy);box-shadow:inset 0 0 0 1px var(--dfw-navy)}
.dfw-tx-head{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;text-align:left;padding:9px 11px;cursor:pointer;font:inherit;color:inherit}
.dfw-tx-pv{flex:1;min-width:0;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dfw-tx-head small{color:var(--dfw-muted);font-size:11.5px;white-space:nowrap}
.dfw-tx-del{color:var(--dfw-red);font-size:17px;line-height:1;padding:0 3px}
.dfw-tx-body{padding:11px;border-top:1px solid var(--dfw-line);background:var(--dfw-bg);display:flex;flex-direction:column;gap:9px}
.dfw-tx-lab{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--dfw-muted);font-weight:700}
.dfw-tx-lab input,.dfw-tx-lab select{display:block;width:100%;margin-top:4px;border:1px solid var(--dfw-line);border-radius:7px;padding:8px 10px;font:inherit;font-size:14px;color:var(--dfw-ink);background:#fff;text-transform:none;letter-spacing:normal}
.dfw-tx-lab span{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:12px;color:var(--dfw-muted);text-transform:none;letter-spacing:normal;font-weight:400}
.dfw-tx-lab span input{margin-top:0}
.dfw-tx-grid{display:grid;grid-template-columns:1fr 110px;gap:9px}
.dfw-tx-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.dfw-tx-cols{display:flex;flex-wrap:wrap;gap:7px;margin-top:5px}
.dfw-tx-col{width:28px;height:28px;border-radius:50%;border:1px solid rgba(0,0,0,.25);padding:0;cursor:pointer;position:relative}
.dfw-tx-col.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--dfw-navy)}
.dfw-add-text{border:1.5px dashed var(--dfw-line);background:none;color:var(--dfw-navy);border-radius:8px;padding:9px;font-weight:700;font-size:13px;cursor:pointer}
.dfw-add-text:hover{border-color:var(--dfw-navy);background:var(--dfw-bg)}
@media (max-width:520px){.dfw-tx-grid{grid-template-columns:1fr}}
.dfw-cart-text{display:block;font-size:12.5px;color:var(--dfw-muted);margin-top:2px}
.dfw-tx-lab .dfw-tx-cur{float:right;font-weight:400;text-transform:none;letter-spacing:normal;color:var(--dfw-muted);font-size:11px;font-style:normal}
.dfw-tx-area{display:block;width:100%;margin-top:4px;border:1px solid var(--dfw-line);border-radius:7px;padding:8px 10px;font:inherit;font-size:14px;color:var(--dfw-ink);background:#fff;resize:vertical;min-height:56px;text-transform:none;letter-spacing:normal}
.dfw-tx-hint{display:block;margin-top:6px;font-size:11.5px;color:var(--dfw-muted);text-transform:none;letter-spacing:normal;font-weight:400}
.dfw-tx-col.is-paid:before{content:"$";position:absolute;right:-2px;top:-4px;width:12px;height:12px;border-radius:50%;background:var(--dfw-navy);color:#fff;font-size:9px;line-height:12px;text-align:center;font-weight:700}
/* the resize and rotate handles stay visible on text so it is obvious you can drag them */
.dfw-pv-text.is-editable .dfw-pv-handle,
.dfw-pv-text.is-editable .dfw-pv-rotate{display:block!important;opacity:1;width:18px;height:18px}
.dfw-pv-text.is-editable .dfw-pv-handle{right:-10px;bottom:-10px;cursor:nwse-resize}
.dfw-tx-lab .dfw-tx-size{float:right;font-weight:600;text-transform:none;letter-spacing:normal;color:var(--dfw-navy);font-size:12px;font-variant-numeric:tabular-nums}
/* the live size badge while dragging a text corner */
.dfw-pv-text.is-editable .dfw-pv-tag{display:block;top:-26px;left:50%;transform:translateX(-50%);font-variant-numeric:tabular-nums}
.dfw-pv-text .dfw-pv-in{display:inline-block;max-width:100%;white-space:pre-wrap;word-break:break-word}
.dfw-tx-linehead{margin-bottom:2px}
.dfw-tx-lnum{color:var(--dfw-navy)}
.dfw-tx-ltext{font-weight:400;text-transform:none;letter-spacing:normal;color:var(--dfw-muted)}

/* ---------- one design, or one per shirt colour ---------- */
.dfw-samedesign{display:flex;gap:10px;align-items:flex-start;background:var(--dfw-bg);border-radius:9px;padding:11px 13px;margin-bottom:12px;font-size:13.5px;cursor:pointer}
.dfw-samedesign input{margin-top:3px;width:16px;height:16px;accent-color:var(--dfw-red);flex:0 0 16px}
.dfw-samedesign b{display:block}
.dfw-samedesign small{display:block;color:var(--dfw-muted);font-size:12px;margin-top:2px}
.dfw-ctabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--dfw-line);margin-bottom:12px;padding-bottom:1px}
.dfw-ctab{display:flex;align-items:center;gap:7px;border:0;border-bottom:2px solid transparent;background:none;padding:9px 11px;font:inherit;font-size:13.5px;font-weight:600;color:var(--dfw-muted);white-space:nowrap;cursor:pointer}
.dfw-ctab .dfw-sw{width:15px;height:15px;border-radius:50%;flex:0 0 15px}
.dfw-ctab.is-on{color:var(--dfw-red);border-bottom-color:var(--dfw-red)}
.dfw-ctab em{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:99px;background:var(--dfw-bg);color:var(--dfw-muted)}
.dfw-ctab.is-own em{background:#E6F5ED;color:var(--dfw-ok)}
.dfw-ctab.is-on em{background:#FDECEF;color:var(--dfw-red)}
.dfw-scopenote{background:#FFF4E0;color:#8A5A00;border-radius:8px;padding:9px 11px;font-size:12.5px;margin-bottom:12px}
.dfw-copyrow{padding-top:4px}

/* ---------- artwork guidance ---------- */
.dfw-art-guide{border:1px solid var(--dfw-line);border-radius:9px;background:var(--dfw-bg);padding:10px 12px;margin-bottom:9px}
.dfw-art-guide p{margin:0;font-size:13px}
.dfw-art-more{display:inline-block;margin-top:5px;font-size:13px}
.dfw-art-full{margin-top:10px;padding-top:10px;border-top:1px solid var(--dfw-line)}
.dfw-art-full h5{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dfw-muted);margin:11px 0 4px}
.dfw-art-full h5:first-child{margin-top:0}
.dfw-art-full ul{margin:0;padding-left:17px;font-size:13px}
.dfw-art-full li{margin:2px 0}
.dfw-art-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px}
.dfw-art-chips span{border:1px solid var(--dfw-line);background:#fff;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:600}
.dfw-art-chips span.alt{font-weight:400;color:var(--dfw-muted)}
.dfw-art-tip{background:#FFF4E0;color:#8A5A00;border-radius:8px;padding:9px 11px;font-size:12.5px;margin:9px 0 0}
.dfw-art-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:4px 14px;margin-top:9px}
.dfw-art-facts div span{display:block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--dfw-muted);font-weight:700}
.dfw-art-facts div b{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.dfw-art-badges{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:9px}
.dfw-art-badge{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:4px 11px;font-size:11.5px;font-weight:700}
.dfw-art-badge i{width:7px;height:7px;border-radius:50%;background:currentColor;display:block}
.dfw-art-badge.is-ok{background:#E6F5ED;color:#137A45}
.dfw-art-badge.is-warn{background:#FFF4E0;color:#8A5A00}
.dfw-art-badge.is-bad{background:#FCEBEA;color:#B3261E}
.dfw-art-warn{background:#FFF4E0;color:#8A5A00;border-radius:8px;padding:9px 11px;font-size:12.5px;margin-top:9px}
.dfw-art-review{display:block;margin:9px 0 0;font-size:12.5px;color:var(--dfw-muted)}
.dfw-art-review b{color:var(--dfw-ink)}

/* ---------- supplier product video ---------- */
.dfw-main.is-video{background:#000}
.dfw-main-video{width:100%;height:100%;object-fit:contain;display:block;background:#000}
.dfw-thumb.is-videothumb{position:relative}
.dfw-thumb.is-videothumb:after{content:"";position:absolute;left:50%;top:calc(50% - 8px);width:0;height:0;transform:translate(-40%,-50%);border-left:11px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6));pointer-events:none}
.dfw-thumb.is-videothumb:before{content:"";position:absolute;left:50%;top:calc(50% - 8px);width:26px;height:26px;border-radius:50%;background:rgba(15,35,64,.55);transform:translate(-50%,-50%);pointer-events:none}

/* Phones: the theme's `section{display:block}` used to beat the hidden attribute, showing every step at once. */
.dfw-builder [hidden]{display:none!important}
/* Compact shirt preview above steps 1–3 and 5 on phones; full gallery on the Preview step. */
.is-steps .dfw-pdp-gallery.is-compact .dfw-thumbs,.is-steps .dfw-pdp-gallery.is-compact .dfw-design-details,.is-steps .dfw-pdp-gallery.is-compact .dfw-pv-bar,.is-steps .dfw-pdp-gallery.is-compact .dfw-zoom-hint,.is-steps .dfw-pdp-gallery.is-compact .dfw-gal-nav{display:none!important}
.is-steps .dfw-pdp-gallery.is-compact .dfw-main{aspect-ratio:auto;height:190px;border-radius:10px}
.is-steps .dfw-pdp-gallery.is-compact .dfw-main>img,.is-steps .dfw-pdp-gallery.is-compact .dfw-main-video{height:190px!important}
/* The product template's top container keeps its desktop padding on phones with nothing visible inside it. */
@media (max-width:767px){body.dfw-linked .elementor-element-1e37835>.e-con-inner{padding-top:10px!important;padding-bottom:0!important}}
.dfw-cblock-note{margin:6px 0 0;font-size:12px;color:var(--dfw-muted)}
.dfw-sec-next{display:none}
.is-steps .dfw-sec-next{display:block;margin-top:16px}
.is-steps .dfw-sec-next .dfw-btn{width:100%;margin:0;padding:14px 18px}
.dfw-color-status.is-warn{color:#C8102E;font-weight:700}
.dfw-more{display:none!important}
.is-steps .dfw-shortdesc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.is-steps .dfw-shortdesc.is-open{display:block;-webkit-line-clamp:unset;overflow:visible}
.is-steps .dfw-more{display:inline-block!important;margin:4px 0 6px;background:none;border:0;padding:0;color:var(--dfw-navy);text-decoration:underline;font-size:13px;cursor:pointer}

/* Pricing Engine V2: per-card price line, extras, breakdown */
.dfw-print-price-line{margin:0 0 8px;padding:8px 12px;background:#F3F5F8;border-radius:6px;font-size:13px;color:#1B2537}
.dfw-print-price-line b{color:#0F2340}
.dfw-ppl-extra{color:#5B6779;font-size:12px;margin-left:4px}
.dfw-extras{display:flex;flex-direction:column;gap:8px;margin:0 0 10px}
.dfw-extra{display:flex;align-items:flex-start;gap:8px;font-size:13px;cursor:pointer}
.dfw-extra input{margin-top:3px}
.dfw-extra span{color:#5B6779;font-size:12px;display:block}
.dfw-breakdown tr.dfw-bd-unit td{border-top:1px solid #E3E8EF;padding-top:6px}

/* 0.48.0: volume ladder + nudge, reorder */
.dfw-ladder{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:13px;color:var(--dfw-muted)}
.dfw-ladder-lab{font-weight:600;color:inherit}
.dfw-ladder-tier b{font-weight:600;color:inherit}
.dfw-ladder-tier.is-active{color:var(--dfw-ok);font-weight:600}
.dfw-nudge{margin-top:8px;padding:8px 10px;border-radius:8px;background:rgba(34,197,94,.12);color:var(--dfw-ok);font-size:13px;line-height:1.4}
.dfw-nudge b{font-weight:700}
.dfw-volnote{display:block;margin-top:4px}
.dfw-ladder-inline:empty{display:none}

/* 0.49.0: order handling progress + cart note */
.dfw-hbar{margin-top:12px}.dfw-hbar:empty{display:none}
.dfw-hbar-track{height:8px;background:var(--dfw-bg);border-radius:999px;overflow:hidden}
.dfw-hbar-track span{display:block;height:100%;background:linear-gradient(90deg,#1d6fe0,#16a34a);border-radius:999px;transition:width .25s}
.dfw-hbar-text{margin-top:6px;font-size:13px;color:var(--dfw-muted)}.dfw-hbar-text b{color:inherit}
.dfw-cart-handling-note{margin:8px 0 0;font-size:13px;color:#4b5563}.dfw-checkout-handling td{border:0!important}

/* 0.57.0: which picture the order/proof viewer shows (photo, on-model photo or tinted illustration); sits opposite the colour badge */
.dfw-dv .dfw-view-tag{position:absolute;top:14px;right:14px;z-index:2;background:rgba(15,35,64,.85);color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:6px;pointer-events:none;line-height:1.2;font-family:"Barlow","Helvetica Neue",Arial,sans-serif}
.dfw-dv .dfw-view-tag.is-illu{background:#1A56FF}
