/* Onkelkrass Shop - Fase 3 / mobile first */
.shop-page { background: #f8faf7; }
.shop-hero { background: radial-gradient(circle at 85% 10%, rgba(186,195,78,.16), transparent 32%), linear-gradient(180deg,#f5f8f1 0%,#f8faf7 100%); }

.shop-collection-strip {
    display:flex; gap:.65rem; overflow-x:auto; padding:.25rem .1rem .6rem; margin-inline:-.25rem;
    scrollbar-width:none; scroll-snap-type:x proximity;
}
.shop-collection-strip::-webkit-scrollbar { display:none; }
.shop-collection-chip {
    flex:0 0 auto; min-height:48px; display:inline-flex; align-items:center; gap:.55rem; padding:.42rem .8rem .42rem .45rem;
    border:1px solid #e5e7eb; border-radius:999px; background:#fff; color:#4b5563; font-size:.76rem; font-weight:800;
    box-shadow:0 1px 3px rgba(0,0,0,.03); scroll-snap-align:start; transition:.18s ease;
}
.shop-collection-chip img,.shop-chip-icon { width:34px; height:34px; border-radius:50%; object-fit:cover; background:#f4f6ef; display:grid; place-items:center; color:#73802e; }
.shop-collection-chip small { min-width:20px; height:20px; border-radius:999px; background:#f3f4f6; display:grid; place-items:center; font-size:.62rem; color:#9ca3af; }
.shop-collection-chip.is-active { border-color:#bac34e; color:#31370c; box-shadow:0 4px 14px rgba(186,195,78,.18); }
.shop-collection-chip.is-active small { background:#bac34e; color:#111; }

.shop-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:.55rem; align-items:center; }
.shop-search { grid-column:1/-1; height:46px; display:flex; align-items:center; gap:.7rem; background:#f7f8f7; border-radius:14px; padding:0 .9rem; color:#9ca3af; }
.shop-search input { width:100%; min-width:0; background:transparent; border:0; outline:0; color:#111827; font-size:.92rem; }
.shop-sort,.shop-filter-btn,.shop-search-btn { height:42px; border-radius:12px; font-size:.73rem; font-weight:900; border:0; }
.shop-sort { min-width:0; max-width:118px; padding:0 .55rem; background:#f3f4f6; color:#374151; outline:0; }
.shop-filter-btn { display:flex; align-items:center; justify-content:center; gap:.45rem; padding:0 .8rem; background:#fff; border:1px solid #e5e7eb; color:#374151; }
.shop-search-btn { display:flex; align-items:center; justify-content:center; gap:.4rem; padding:0 .9rem; background:#111827; color:#fff; }
.shop-search-btn span { display:none; }
.shop-active-filter { display:inline-flex; padding:.4rem .65rem; border-radius:999px; background:#eef3d4; color:#566019; font-weight:800; }

.shop-design-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.shop-design-card { min-width:0; overflow:hidden; background:#fff; border:1px solid #ecefec; border-radius:20px; box-shadow:0 4px 18px rgba(17,24,39,.035); }
.shop-design-media { aspect-ratio:1/1; position:relative; overflow:hidden; background:linear-gradient(145deg,#f8f9f6,#f1f4ee); }
.shop-art-view,.shop-mockup-view { width:100%; height:100%; position:relative; display:block; }
.shop-art-view > img { width:100%; height:100%; object-fit:contain; padding:10%; }
.shop-mockup-base,.shop-garment-media > img { width:100%; height:100%; object-fit:cover; }
.shop-print-area { position:absolute; display:flex; align-items:center; justify-content:center; pointer-events:none; overflow:hidden; }
.shop-print-area > img { width:100%; height:100%; object-fit:contain; }
.shop-image-empty { width:100%; height:100%; display:grid; place-items:center; color:#d1d5db; font-size:2.2rem; }
.shop-featured { position:absolute; top:.55rem; left:.55rem; z-index:5; display:inline-flex; align-items:center; gap:.3rem; padding:.34rem .5rem; border-radius:999px; background:rgba(17,24,39,.86); color:#fff; font-size:.55rem; line-height:1; font-weight:900; text-transform:uppercase; letter-spacing:.06em; backdrop-filter:blur(6px); }
.shop-view-toggle { position:absolute; z-index:7; left:.5rem; right:.5rem; bottom:.5rem; min-height:34px; display:flex; align-items:center; justify-content:center; gap:.35rem; padding:.4rem .55rem; border:1px solid rgba(255,255,255,.68); border-radius:11px; background:rgba(255,255,255,.92); color:#1f2937; font-size:.62rem; font-weight:900; box-shadow:0 5px 18px rgba(0,0,0,.1); backdrop-filter:blur(9px); }
.shop-view-toggle[aria-pressed="true"] { background:rgba(17,24,39,.9); color:#fff; border-color:rgba(17,24,39,.3); }
.shop-card-body { padding:.75rem .72rem .8rem; }
.shop-card-kicker { min-height:13px; color:#7a852b; font-size:.56rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.shop-card-body h3 { margin-top:.28rem; color:#111827; font-size:.83rem; line-height:1.25; font-weight:900; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.08rem; }
.shop-card-tags { margin-top:.35rem; color:#9ca3af; font-size:.62rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.shop-card-footer { margin-top:.7rem; padding-top:.65rem; border-top:1px solid #f0f1f0; display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.shop-card-footer > div { min-width:0; display:flex; flex-direction:column; }
.shop-price { color:#111827; font-size:.72rem; font-weight:900; white-space:nowrap; }
.shop-price-muted { color:#6b7280; font-size:.67rem; font-weight:800; }
.shop-card-footer small { margin-top:.12rem; color:#9ca3af; font-size:.55rem; font-weight:700; }
.shop-card-arrow { flex:0 0 31px; width:31px; height:31px; border-radius:10px; display:grid; place-items:center; background:#f2f5e4; color:#69751f; font-size:.7rem; }

.shop-pagination { margin-top:2rem; display:flex; align-items:center; justify-content:center; gap:.65rem; }
.shop-page-btn { min-height:42px; display:inline-flex; align-items:center; gap:.45rem; padding:.65rem .9rem; border-radius:12px; background:#fff; border:1px solid #e5e7eb; color:#374151; font-size:.75rem; font-weight:900; }
.shop-page-current { color:#9ca3af; font-size:.68rem; font-weight:800; }

.shop-filter-sheet { position:fixed; inset:0; z-index:120; }
.shop-filter-backdrop { position:absolute; inset:0; background:rgba(17,24,39,.55); backdrop-filter:blur(2px); }
.shop-filter-panel { position:absolute; left:0; right:0; bottom:0; max-height:min(78vh,620px); overflow:auto; background:#fff; border-radius:26px 26px 0 0; padding:1.15rem 1rem calc(1rem + env(safe-area-inset-bottom)); box-shadow:0 -20px 50px rgba(0,0,0,.18); }
.shop-filter-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:1rem; border-bottom:1px solid #f0f0f0; }
.shop-filter-head h2 { margin-top:.15rem; font-size:1.35rem; font-weight:900; color:#111827; }
.shop-filter-head button { width:40px; height:40px; border-radius:12px; background:#f3f4f6; color:#4b5563; }
.shop-filter-tags { padding-top:1rem; display:grid; grid-template-columns:1fr 1fr; gap:.55rem; }
.shop-filter-tags a { min-width:0; min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:.4rem; padding:.6rem .72rem; border-radius:12px; border:1px solid #e5e7eb; color:#4b5563; font-size:.73rem; font-weight:800; }
.shop-filter-tags a small { color:#9ca3af; }
.shop-filter-tags a.is-active { border-color:#bac34e; background:#f4f6df; color:#4d5711; }
body.shop-filter-open { overflow:hidden; }

/* Detail */
.shop-design-detail-grid { display:grid; gap:1.6rem; }
.shop-detail-visual { min-width:0; }
.shop-detail-media { position:relative; aspect-ratio:1/1; background:linear-gradient(145deg,#f7f9f4,#eef2e9); border:1px solid #e9ede5; border-radius:28px; overflow:hidden; box-shadow:0 12px 40px rgba(17,24,39,.055); }
.shop-detail-media .shop-art-view > img { padding:9%; }
.shop-view-toggle-detail { left:1rem; right:1rem; bottom:1rem; min-height:44px; font-size:.72rem; border-radius:14px; }
.shop-detail-copy { min-width:0; align-self:center; }
.shop-detail-pill { display:inline-flex; align-items:center; gap:.35rem; padding:.45rem .68rem; border-radius:999px; background:#fff; border:1px solid #e6e9e4; color:#5f6822; font-size:.68rem; font-weight:900; }
.shop-detail-pill.is-featured { background:#fff8dc; color:#926f00; border-color:#f3df8e; }
.shop-tag { display:inline-flex; padding:.42rem .62rem; border-radius:999px; background:#edf1e6; color:#58621c; font-size:.72rem; font-weight:800; }
.shop-customizer-cta { border-radius:22px; background:#fff; border:1px solid #e9ece6; padding:.9rem; box-shadow:0 5px 18px rgba(17,24,39,.035); }
.shop-primary-cta { min-height:50px; width:100%; display:flex; align-items:center; justify-content:center; gap:.55rem; border-radius:15px; background:#bac34e; color:#111; font-size:.85rem; font-weight:950; box-shadow:0 8px 20px rgba(186,195,78,.24); }
.shop-primary-cta.is-disabled { opacity:.55; box-shadow:none; cursor:not-allowed; }
.shop-customizer-cta p { margin:.6rem .2rem 0; color:#9ca3af; font-size:.65rem; line-height:1.4; text-align:center; }
.shop-detail-stat { background:#fff; border:1px solid #eaede8; border-radius:18px; padding:.9rem; display:flex; flex-direction:column; }
.shop-detail-stat strong { color:#111827; font-size:1.3rem; font-weight:950; }
.shop-detail-stat span { margin-top:.15rem; color:#9ca3af; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }

.shop-garment-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.shop-garment-card { min-width:0; overflow:hidden; border:1px solid #e9ece7; border-radius:20px; background:#fff; box-shadow:0 4px 16px rgba(17,24,39,.03); }
.shop-garment-media { position:relative; aspect-ratio:1/1; overflow:hidden; background:#f5f6f4; }
.shop-garment-card h3 { font-size:.86rem; line-height:1.2; }
.shop-mini-cta { flex:0 0 auto; display:inline-flex; min-height:32px; align-items:center; justify-content:center; padding:.4rem .58rem; border-radius:9px; background:#111827; color:#fff; font-size:.6rem; font-weight:900; }
.shop-mini-cta.is-disabled { background:#f3f4f6; color:#9ca3af; }

.shop-related-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.shop-related-card { min-width:0; overflow:hidden; border-radius:18px; background:#fff; border:1px solid #eaede8; }
.shop-related-card > div { aspect-ratio:1/1; background:#f7f8f5; }
.shop-related-card img { width:100%; height:100%; object-fit:contain; padding:9%; }
.shop-related-card > span { display:block; padding:.72rem; color:#111827; font-size:.72rem; line-height:1.25; font-weight:900; }

@media (min-width: 640px) {
    .shop-toolbar { grid-template-columns:minmax(0,1fr) auto auto auto; }
    .shop-search { grid-column:auto; }
    .shop-search-btn span { display:inline; }
    .shop-design-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
    .shop-card-body { padding:1rem; }
    .shop-card-body h3 { font-size:.95rem; min-height:2.38rem; }
    .shop-view-toggle { left:.7rem; right:.7rem; bottom:.7rem; font-size:.68rem; }
    .shop-garment-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
    .shop-related-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
    .shop-filter-tags { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (min-width: 768px) {
    .shop-collection-strip { gap:.8rem; }
    .shop-collection-chip { font-size:.82rem; }
    .shop-detail-media { border-radius:34px; }
    .shop-design-detail-grid { grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:3rem; align-items:center; }
}

@media (min-width: 1024px) {
    .shop-design-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.2rem; }
    .shop-design-card { border-radius:25px; }
    .shop-card-body h3 { font-size:1rem; }
    .shop-filter-panel { left:auto; top:0; bottom:0; width:420px; max-height:none; border-radius:26px 0 0 26px; padding:1.5rem; }
    .shop-filter-tags { grid-template-columns:1fr 1fr; }
    .shop-garment-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

@media (min-width: 1280px) {
    .shop-design-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
}

/* ============================================================
   Shop Phase 4 - Mobile-first Customizer
   ============================================================ */
.shop-customizer-page { background:linear-gradient(180deg,#fafbf8 0,#f7f8f5 100%); }
.customizer-heading { display:flex; flex-direction:column; gap:1rem; margin-bottom:1.25rem; }
.customizer-eyebrow { color:#7a852b; font-size:.64rem; line-height:1; font-weight:950; text-transform:uppercase; letter-spacing:.16em; }
.customizer-heading h1 { margin-top:.45rem; color:#111827; font-size:clamp(1.65rem,7vw,2.45rem); line-height:1.04; font-weight:950; letter-spacing:-.035em; }
.customizer-heading p:not(.customizer-eyebrow) { margin-top:.65rem; max-width:680px; color:#6b7280; font-size:.84rem; line-height:1.55; }
.customizer-change-design { align-self:flex-start; min-height:42px; display:inline-flex; align-items:center; gap:.5rem; padding:.65rem .85rem; border:1px solid #e5e7eb; border-radius:13px; background:#fff; color:#374151; font-size:.72rem; font-weight:900; box-shadow:0 3px 12px rgba(17,24,39,.03); }

.customizer-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }
.customizer-preview-column { min-width:0; }
.customizer-preview-card { overflow:hidden; border:1px solid #e6eae3; border-radius:24px; background:#fff; box-shadow:0 10px 32px rgba(17,24,39,.05); }
.customizer-preview-topline { min-height:42px; display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.7rem .9rem; border-bottom:1px solid #f0f2ee; color:#9ca3af; font-size:.63rem; font-weight:850; }
.customizer-preview-topline span:first-child { color:#5f6822; }
.customizer-stage { position:relative; width:100%; aspect-ratio:1/1; overflow:hidden; background:linear-gradient(145deg,#f5f7f2,#edf1e9); user-select:none; -webkit-user-select:none; }
.customizer-mockup,
.customizer-stage-empty { position:absolute; inset:0; }
.customizer-mockup > img,
.customizer-stage-empty > img { width:100%; height:100%; object-fit:contain; display:block; pointer-events:none; user-select:none; -webkit-user-drag:none; }
.customizer-stage-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.65rem; color:#c5c9c1; font-size:.7rem; font-weight:800; }
.customizer-stage-empty i { font-size:2rem; }
.customizer-print-area { position:absolute; display:flex; align-items:center; justify-content:center; overflow:hidden; pointer-events:none; }
.customizer-print-area img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; pointer-events:none; user-select:none; -webkit-user-drag:none; }
.customizer-design-chip { min-height:66px; display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:.7rem; padding:.65rem .8rem; border-top:1px solid #f0f2ee; }
.customizer-design-thumb { width:46px; height:46px; overflow:hidden; border-radius:12px; background:#f4f6f1; border:1px solid #e9ece6; }
.customizer-design-thumb img { width:100%; height:100%; object-fit:contain; padding:4px; pointer-events:none; }
.customizer-design-chip > span:nth-child(2) { min-width:0; display:flex; flex-direction:column; }
.customizer-design-chip small { color:#9ca3af; font-size:.55rem; font-weight:850; text-transform:uppercase; letter-spacing:.07em; }
.customizer-design-chip strong { margin-top:.12rem; overflow:hidden; color:#111827; font-size:.72rem; font-weight:950; white-space:nowrap; text-overflow:ellipsis; }
.customizer-design-chip > i { color:#aeb4aa; font-size:.72rem; }

.customizer-controls { min-width:0; display:flex; flex-direction:column; gap:.75rem; }
.customizer-step { padding:1rem; border:1px solid #e8ebe6; border-radius:20px; background:#fff; box-shadow:0 5px 18px rgba(17,24,39,.025); }
.customizer-step-head { display:grid; grid-template-columns:32px minmax(0,1fr); gap:.65rem; align-items:start; }
.customizer-step-number { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; background:#f0f3da; color:#68721f; font-size:.68rem; font-weight:950; }
.customizer-step-head h2 { color:#111827; font-size:.9rem; line-height:1.2; font-weight:950; }
.customizer-step-head p { margin-top:.18rem; color:#9ca3af; font-size:.62rem; line-height:1.4; }

.customizer-garment-strip { margin-top:.85rem; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(156px,76%); gap:.6rem; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; padding:1px 1px .35rem; scrollbar-width:none; }
.customizer-garment-strip::-webkit-scrollbar { display:none; }
.customizer-garment-option { position:relative; min-width:0; min-height:72px; display:grid; grid-template-columns:50px minmax(0,1fr) 22px; align-items:center; gap:.6rem; padding:.6rem; scroll-snap-align:start; text-align:left; border:1px solid #e5e7eb; border-radius:15px; background:#fafbfa; transition:border-color .15s ease,background .15s ease,box-shadow .15s ease; }
.customizer-garment-option.is-selected { border-color:#bac34e; background:#f8faec; box-shadow:0 0 0 2px rgba(186,195,78,.12); }
.customizer-garment-thumb { width:50px; height:50px; display:grid; place-items:center; overflow:hidden; border-radius:11px; background:#fff; border:1px solid #ebede9; color:#c4c8c1; }
.customizer-garment-thumb img { width:100%; height:100%; object-fit:contain; pointer-events:none; }
.customizer-garment-copy { min-width:0; display:flex; flex-direction:column; }
.customizer-garment-copy strong { overflow:hidden; color:#1f2937; font-size:.72rem; font-weight:950; white-space:nowrap; text-overflow:ellipsis; }
.customizer-garment-copy small { margin-top:.2rem; color:#9ca3af; font-size:.58rem; font-weight:800; }
.customizer-option-check { width:22px; height:22px; display:grid; place-items:center; border-radius:999px; background:#e9ece8; color:#fff; font-size:.52rem; }
.customizer-garment-option.is-selected .customizer-option-check { background:#8e982c; }

.customizer-color-list { margin-top:.9rem; display:flex; flex-wrap:wrap; gap:.5rem; }
.customizer-color-option { min-height:44px; max-width:100%; display:inline-flex; align-items:center; gap:.48rem; padding:.42rem .64rem; border:1px solid #e5e7eb; border-radius:12px; background:#fff; color:#4b5563; font-size:.66rem; font-weight:900; transition:.15s ease; }
.customizer-color-option.is-selected { border-color:#7f8b27; background:#f7f9e8; color:#46500d; box-shadow:0 0 0 2px rgba(186,195,78,.12); }
.customizer-color-option.is-disabled { opacity:.34; cursor:not-allowed; }
.customizer-color-swatch { width:24px; height:24px; flex:0 0 24px; border-radius:999px; border:1px solid rgba(17,24,39,.13); box-shadow:inset 0 0 0 2px rgba(255,255,255,.38); }
.customizer-color-option > i { display:none; font-size:.55rem; }
.customizer-color-option.is-selected > i { display:block; color:#75801f; }

.customizer-size-list { margin-top:.9rem; display:flex; flex-wrap:wrap; gap:.45rem; }
.customizer-size-option { min-width:48px; min-height:44px; padding:.45rem .68rem; border:1px solid #e5e7eb; border-radius:11px; background:#fff; color:#374151; font-size:.72rem; font-weight:950; }
.customizer-size-option.is-selected { border-color:#111827; background:#111827; color:#fff; box-shadow:0 4px 12px rgba(17,24,39,.14); }
.customizer-size-option.is-disabled { color:#c7cbc5; background:#f7f8f7; text-decoration:line-through; cursor:not-allowed; }

.customizer-step-quantity { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.8rem; align-items:center; }
.customizer-step-quantity .customizer-step-head { min-width:0; }
.customizer-quantity { display:grid; grid-template-columns:42px 50px 42px; align-items:center; border:1px solid #e5e7eb; border-radius:13px; overflow:hidden; background:#fafafa; }
.customizer-quantity button { height:44px; display:grid; place-items:center; color:#4b5563; font-size:.62rem; }
.customizer-quantity button:disabled { color:#d1d5db; }
.customizer-quantity input { width:50px; height:44px; padding:0; border:0; border-left:1px solid #eceeeb; border-right:1px solid #eceeeb; background:#fff; color:#111827; font-size:.8rem; font-weight:950; text-align:center; appearance:textfield; -moz-appearance:textfield; }
.customizer-quantity input::-webkit-outer-spin-button,
.customizer-quantity input::-webkit-inner-spin-button { appearance:none; -webkit-appearance:none; margin:0; }

.customizer-summary { padding:1rem; border-radius:20px; background:#111827; color:#fff; box-shadow:0 10px 25px rgba(17,24,39,.12); }
.customizer-summary > div { min-height:26px; display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid rgba(255,255,255,.08); font-size:.68rem; }
.customizer-summary > div span { color:#9ca3af; font-weight:750; }
.customizer-summary > div strong { min-width:0; overflow:hidden; font-weight:900; white-space:nowrap; text-overflow:ellipsis; }
.customizer-summary .customizer-summary-price { min-height:48px; border-bottom:0; font-size:.8rem; }
.customizer-summary .customizer-summary-price strong { color:#d9e46f; font-size:1.1rem; font-weight:950; }
.customizer-summary p { margin-top:.45rem; color:#6b7280; font-size:.54rem; line-height:1.35; }
.customizer-save-selection { min-height:50px; width:100%; display:flex; align-items:center; justify-content:center; gap:.55rem; border-radius:15px; background:#bac34e; color:#161a0a; font-size:.78rem; font-weight:950; box-shadow:0 8px 20px rgba(186,195,78,.22); }
.customizer-save-selection.is-saved { background:#8c962e; color:#fff; }
.customizer-purchase-note { display:flex; align-items:flex-start; gap:.4rem; padding:0 .3rem; color:#9ca3af; font-size:.58rem; line-height:1.4; }
.customizer-purchase-note i { margin-top:.12rem; color:#b7bd80; }

.customizer-mobile-bar { position:fixed; left:0; right:0; bottom:0; z-index:85; min-height:72px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.8rem; padding:.7rem max(1rem,env(safe-area-inset-right)) calc(.7rem + env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left)); border-top:1px solid rgba(17,24,39,.08); background:rgba(255,255,255,.94); backdrop-filter:blur(15px); box-shadow:0 -10px 30px rgba(17,24,39,.08); }
.customizer-mobile-bar > div { min-width:0; display:flex; flex-direction:column; }
.customizer-mobile-bar small { color:#9ca3af; font-size:.52rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; }
.customizer-mobile-bar strong { margin-top:.08rem; color:#111827; font-size:1rem; font-weight:950; white-space:nowrap; }
.customizer-mobile-bar button { min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:.45rem; padding:.65rem .9rem; border-radius:13px; background:#bac34e; color:#161a0a; font-size:.68rem; font-weight:950; }

.customizer-toast { position:fixed; left:50%; bottom:90px; z-index:130; width:max-content; max-width:calc(100vw - 2rem); transform:translateX(-50%); padding:.72rem .95rem; border-radius:12px; background:#111827; color:#fff; box-shadow:0 12px 30px rgba(0,0,0,.2); font-size:.68rem; font-weight:850; text-align:center; }
.customizer-toast.is-error { background:#991b1b; }

@media (min-width:640px) {
    .customizer-heading { flex-direction:row; align-items:flex-end; justify-content:space-between; }
    .customizer-change-design { flex:0 0 auto; }
    .customizer-garment-strip { grid-auto-columns:minmax(185px,45%); }
    .customizer-step { padding:1.15rem; }
}

@media (min-width:768px) {
    .customizer-layout { grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr); gap:1.35rem; align-items:start; }
    .customizer-preview-column { position:sticky; top:1rem; }
    .customizer-preview-card { border-radius:28px; }
    .customizer-garment-strip { grid-auto-columns:minmax(190px,58%); }
    .customizer-mobile-bar { display:none; }
}

@media (min-width:1024px) {
    .customizer-layout { grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr); gap:2rem; }
    .customizer-preview-column { top:1.5rem; }
    .customizer-controls { gap:.9rem; }
    .customizer-step { padding:1.25rem; border-radius:22px; }
    .customizer-garment-strip { grid-auto-flow:initial; grid-auto-columns:initial; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; padding-bottom:0; }
}

/* ============================================================
   Shop Phase 5 · Cart + server-side checkout preparation
   ============================================================ */
.shop-hero-heading-row { display:flex; flex-direction:column; gap:1rem; }
.shop-cart-link { align-self:flex-start; min-height:42px; display:inline-flex; align-items:center; gap:.5rem; padding:.65rem .8rem; border:1px solid #e5e7eb; border-radius:13px; background:#fff; color:#374151; font-size:.7rem; font-weight:950; box-shadow:0 3px 12px rgba(17,24,39,.04); white-space:nowrap; }
.shop-cart-link:hover { border-color:#bac34e; color:#5d6618; }
.shop-cart-link b { min-width:20px; height:20px; display:grid; place-items:center; padding:0 .3rem; border-radius:999px; background:#bac34e; color:#15180b; font-size:.58rem; }
.shop-detail-top-actions { display:flex; justify-content:flex-end; margin:-.15rem 0 .8rem; }
.customizer-heading-actions { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.customizer-cart-link { min-height:42px; display:inline-flex; align-items:center; gap:.45rem; padding:.65rem .8rem; border-radius:13px; background:#111827; color:#fff; font-size:.7rem; font-weight:950; }
.customizer-cart-link span { min-width:20px; height:20px; display:grid; place-items:center; padding:0 .3rem; border-radius:999px; background:#bac34e; color:#15180b; font-size:.56rem; }
.customizer-add-cart { min-height:52px; width:100%; display:flex; align-items:center; justify-content:center; gap:.55rem; border-radius:15px; background:#bac34e; color:#161a0a; font-size:.8rem; font-weight:950; box-shadow:0 8px 22px rgba(186,195,78,.25); transition:transform .15s ease,background .15s ease,opacity .15s ease; }
.customizer-add-cart:hover { background:#c9d25b; transform:translateY(-1px); }
.customizer-add-cart:disabled,
.customizer-mobile-bar button:disabled { opacity:.55; cursor:wait; transform:none; }
.customizer-save-selection { background:#fff; color:#374151; border:1px solid #e5e7eb; box-shadow:none; min-height:46px; }
.customizer-save-selection.is-saved { background:#f7f9e8; color:#66701e; border-color:#dfe5a6; }

.shop-cart-page { background:linear-gradient(180deg,#fafbf8 0,#f7f8f5 100%); }
.cart-heading { display:flex; flex-direction:column; gap:1rem; margin-bottom:1.25rem; }
.cart-heading h1 { margin-top:.45rem; color:#111827; font-size:clamp(1.8rem,8vw,2.7rem); line-height:1.02; font-weight:950; letter-spacing:-.04em; }
.cart-heading p:not(.customizer-eyebrow) { margin-top:.6rem; max-width:660px; color:#6b7280; font-size:.84rem; line-height:1.55; }
.cart-continue { align-self:flex-start; min-height:42px; display:inline-flex; align-items:center; gap:.5rem; padding:.65rem .85rem; border:1px solid #e5e7eb; border-radius:13px; background:#fff; color:#374151; font-size:.7rem; font-weight:900; }
.cart-notice { margin-bottom:1rem; display:flex; gap:.6rem; align-items:flex-start; padding:.8rem .9rem; border:1px solid #e5eaa9; border-radius:15px; background:#fafce9; color:#5f681f; font-size:.68rem; font-weight:800; line-height:1.45; }
.cart-notice i { margin-top:.12rem; }
.cart-empty { min-height:360px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:2rem 1rem; border:1px solid #e7eae5; border-radius:28px; background:#fff; box-shadow:0 8px 28px rgba(17,24,39,.04); }
.cart-empty-icon { width:72px; height:72px; display:grid; place-items:center; border-radius:22px; background:#f2f5df; color:#7d8728; font-size:1.5rem; }
.cart-empty h2 { margin-top:1.1rem; color:#111827; font-size:1.35rem; font-weight:950; }
.cart-empty p { margin-top:.45rem; max-width:420px; color:#9ca3af; font-size:.78rem; line-height:1.5; }
.cart-empty a { margin-top:1.25rem; min-height:48px; display:inline-flex; align-items:center; gap:.5rem; padding:.75rem 1rem; border-radius:14px; background:#bac34e; color:#161a0a; font-size:.74rem; font-weight:950; }
.cart-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; align-items:start; }
.cart-items { min-width:0; display:flex; flex-direction:column; gap:.75rem; }
.cart-item { min-width:0; display:grid; grid-template-columns:104px minmax(0,1fr); gap:.8rem; padding:.75rem; border:1px solid #e7eae5; border-radius:20px; background:#fff; box-shadow:0 5px 18px rgba(17,24,39,.03); transition:opacity .15s ease; }
.is-cart-busy .cart-item { opacity:.72; }
.cart-item-visual { position:relative; width:104px; aspect-ratio:1/1; overflow:hidden; border-radius:15px; background:#f4f6f1; border:1px solid #edf0ea; }
.cart-item-mockup,.cart-item-fallback { width:100%; height:100%; object-fit:contain; display:block; }
.cart-item-print { position:absolute; display:flex; align-items:center; justify-content:center; pointer-events:none; }
.cart-item-print img { width:100%; height:100%; object-fit:contain; display:block; }
.cart-item-main { min-width:0; display:flex; flex-direction:column; }
.cart-item-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; }
.cart-item-title-row > div { min-width:0; }
.cart-item-design { display:block; overflow:hidden; color:#7b8428; font-size:.58rem; line-height:1.2; font-weight:950; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; text-overflow:ellipsis; }
.cart-item h2 { margin-top:.2rem; overflow:hidden; color:#111827; font-size:.85rem; line-height:1.2; font-weight:950; white-space:nowrap; text-overflow:ellipsis; }
.cart-remove { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:10px; color:#a0a5ad; background:#f8f9f8; font-size:.68rem; }
.cart-remove:hover { color:#991b1b; background:#fef2f2; }
.cart-item-meta { margin-top:.5rem; display:flex; flex-wrap:wrap; gap:.35rem; }
.cart-item-meta > span { min-height:25px; display:inline-flex; align-items:center; gap:.35rem; padding:.25rem .45rem; border-radius:8px; background:#f6f7f5; color:#6b7280; font-size:.58rem; font-weight:850; }
.cart-color-dot { width:13px; height:13px; border-radius:999px; border:1px solid rgba(17,24,39,.14); }
.cart-item-bottom { margin-top:auto; padding-top:.65rem; display:flex; flex-direction:column; align-items:flex-start; gap:.55rem; }
.cart-quantity { display:grid; grid-template-columns:34px 40px 34px; border:1px solid #e5e7eb; border-radius:10px; overflow:hidden; background:#fafafa; }
.cart-quantity button { height:36px; display:grid; place-items:center; color:#4b5563; font-size:.55rem; }
.cart-quantity button:disabled { color:#d1d5db; }
.cart-quantity input { width:40px; height:36px; padding:0; border:0; border-left:1px solid #eceeeb; border-right:1px solid #eceeeb; background:#fff; color:#111827; text-align:center; font-size:.68rem; font-weight:950; appearance:textfield; -moz-appearance:textfield; }
.cart-quantity input::-webkit-outer-spin-button,.cart-quantity input::-webkit-inner-spin-button { appearance:none; -webkit-appearance:none; margin:0; }
.cart-item-price { width:100%; display:flex; align-items:flex-end; justify-content:space-between; gap:.6rem; }
.cart-item-price small { color:#9ca3af; font-size:.54rem; font-weight:750; }
.cart-item-price strong { color:#111827; font-size:.84rem; font-weight:950; white-space:nowrap; }
.cart-stock { margin-top:.55rem; display:flex; align-items:center; gap:.35rem; color:#9ca3af; font-size:.52rem; line-height:1.35; }
.cart-clear { align-self:flex-start; min-height:38px; display:inline-flex; align-items:center; gap:.4rem; padding:.5rem .65rem; border-radius:10px; color:#9ca3af; font-size:.62rem; font-weight:850; }
.cart-clear:hover { color:#991b1b; background:#fff; }
.cart-summary { position:relative; padding:1.15rem; border-radius:22px; background:#111827; color:#fff; box-shadow:0 12px 30px rgba(17,24,39,.13); }
.cart-summary-kicker { color:#bac34e; font-size:.56rem; font-weight:950; text-transform:uppercase; letter-spacing:.12em; }
.cart-summary h2 { margin-top:.25rem; font-size:1.2rem; font-weight:950; }
.cart-summary-lines { margin-top:1rem; display:flex; flex-direction:column; }
.cart-summary-lines > div { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid rgba(255,255,255,.08); font-size:.67rem; }
.cart-summary-lines span { color:#9ca3af; }
.cart-summary-lines strong { font-weight:900; }
.cart-summary-total { padding:1rem 0 .8rem; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:.25rem 1rem; }
.cart-summary-total > span { color:#9ca3af; font-size:.65rem; font-weight:800; }
.cart-summary-total > strong { color:#dce672; font-size:1.35rem; line-height:1; font-weight:950; }
.cart-summary-total > small { grid-column:1/-1; color:#6b7280; font-size:.52rem; line-height:1.4; }
.cart-checkout-disabled { width:100%; min-height:50px; display:flex; align-items:center; justify-content:center; gap:.5rem; border-radius:14px; background:#2b3340; color:#76808f; font-size:.74rem; font-weight:950; cursor:not-allowed; }
.cart-checkout-note { margin-top:.65rem; color:#6b7280; font-size:.54rem; line-height:1.45; text-align:center; }

@media (min-width:640px) {
    .shop-hero-heading-row { flex-direction:row; align-items:flex-start; justify-content:space-between; gap:2rem; }
    .shop-cart-link { margin-top:.15rem; }
    .cart-heading { flex-direction:row; align-items:flex-end; justify-content:space-between; }
    .cart-item { grid-template-columns:132px minmax(0,1fr); gap:1rem; padding:.9rem; border-radius:22px; }
    .cart-item-visual { width:132px; border-radius:17px; }
    .cart-item-bottom { flex-direction:row; align-items:flex-end; justify-content:space-between; }
    .cart-item-price { width:auto; min-width:170px; flex-direction:column; align-items:flex-end; gap:.1rem; }
}
@media (min-width:1024px) {
    .cart-layout { grid-template-columns:minmax(0,1fr) 340px; gap:1.25rem; }
    .cart-summary { position:sticky; top:1.5rem; padding:1.35rem; border-radius:24px; }
}

/* ============================================================
   Shop Phase 6 · Checkout + payment
   ============================================================ */
.cart-checkout-active { width:100%; min-height:50px; display:flex; align-items:center; justify-content:center; gap:.5rem; border-radius:14px; background:#bac34e; color:#171b0b; font-size:.74rem; font-weight:950; box-shadow:0 8px 20px rgba(186,195,78,.2); }
.cart-checkout-active:hover { background:#c9d25b; }
.shop-checkout-page { background:linear-gradient(180deg,#fafbf8 0,#f5f7f2 100%); }
.checkout-heading { display:flex; flex-direction:column; gap:1rem; margin-bottom:1.25rem; }
.checkout-heading h1 { margin-top:.4rem; color:#111827; font-size:clamp(1.9rem,8vw,2.9rem); line-height:1; font-weight:950; letter-spacing:-.045em; }
.checkout-heading p:not(.customizer-eyebrow) { margin-top:.6rem; color:#6b7280; font-size:.84rem; }
.checkout-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; align-items:start; }
.checkout-main { min-width:0; display:flex; flex-direction:column; gap:.75rem; }
.checkout-step { background:#fff; border:1px solid #e7eae5; border-radius:22px; padding:1rem; box-shadow:0 5px 18px rgba(17,24,39,.025); }
.checkout-step.is-active { border-color:#dfe5a6; box-shadow:0 8px 24px rgba(186,195,78,.08); }
.checkout-step-head { display:flex; align-items:center; gap:.75rem; }
.checkout-step-head > span { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:11px; background:#f1f4df; color:#737d24; font-size:.72rem; font-weight:950; }
.checkout-step-head p { color:#9ca3af; font-size:.52rem; font-weight:950; text-transform:uppercase; letter-spacing:.12em; }
.checkout-step-head h2 { margin-top:.1rem; color:#111827; font-size:1rem; font-weight:950; }
.checkout-fields { display:grid; grid-template-columns:1fr; gap:.75rem; margin-top:1rem; }
.checkout-field { display:flex; flex-direction:column; gap:.35rem; }
.checkout-field > span { color:#4b5563; font-size:.64rem; font-weight:900; }
.checkout-field input,.checkout-field select,.checkout-field textarea { width:100%; border:1px solid #e1e5df; border-radius:12px; background:#fbfcfa; padding:.72rem .78rem; color:#111827; font-size:.76rem; outline:none; transition:border-color .15s ease,box-shadow .15s ease; }
.checkout-field textarea { resize:vertical; min-height:82px; }
.checkout-field input:focus,.checkout-field select:focus,.checkout-field textarea:focus { border-color:#bac34e; box-shadow:0 0 0 3px rgba(186,195,78,.13); background:#fff; }
.checkout-field input:disabled,.checkout-field select:disabled,.checkout-field textarea:disabled { opacity:.65; cursor:not-allowed; }
.checkout-shipping-card { margin-top:1rem; display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:.75rem; padding:.85rem; border:1px solid #dfe5a6; border-radius:15px; background:#fafce9; }
.checkout-shipping-card > i { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:#fff; color:#7d8728; }
.checkout-shipping-card strong { display:block; color:#111827; font-size:.75rem; font-weight:950; }
.checkout-shipping-card small { display:block; margin-top:.12rem; color:#8a9160; font-size:.55rem; line-height:1.4; }
.checkout-shipping-card b { color:#59611c; font-size:.72rem; font-weight:950; }
.checkout-free-note { margin-top:.55rem; color:#7d8728; font-size:.58rem; font-weight:850; }
.checkout-payment-placeholder { margin-top:1rem; min-height:90px; display:flex; align-items:center; justify-content:center; gap:.55rem; padding:1rem; border:1px dashed #d6dad3; border-radius:14px; background:#fafbfa; color:#9ca3af; text-align:center; font-size:.64rem; font-weight:750; }
.checkout-payment-element { margin-top:1rem; padding:.75rem; border:1px solid #e7eae5; border-radius:15px; background:#fff; }
.checkout-error { margin-top:.75rem; padding:.75rem; border:1px solid #fecaca; border-radius:12px; background:#fef2f2; color:#991b1b; font-size:.65rem; font-weight:850; line-height:1.45; }
.checkout-review-items { margin-top:1rem; border:1px solid #ecefea; border-radius:15px; overflow:hidden; }
.checkout-review-item { display:flex; justify-content:space-between; gap:1rem; padding:.75rem; border-bottom:1px solid #ecefea; }
.checkout-review-item:last-child { border-bottom:0; }
.checkout-review-item strong { display:block; color:#111827; font-size:.7rem; font-weight:950; }
.checkout-review-item span { display:block; margin-top:.16rem; color:#9ca3af; font-size:.55rem; }
.checkout-review-item > b { color:#111827; font-size:.68rem; font-weight:950; white-space:nowrap; }
.checkout-legal { margin-top:1rem; display:grid; grid-template-columns:20px minmax(0,1fr); gap:.55rem; align-items:start; color:#4b5563; font-size:.62rem; line-height:1.5; }
.checkout-legal input { width:18px; height:18px; margin-top:.05rem; accent-color:#7d8728; }
.checkout-legal a,.checkout-legal-note a { color:#6f781f; text-decoration:underline; font-weight:900; }
.checkout-legal-note { margin:.55rem 0 0 1.6rem; color:#9ca3af; font-size:.53rem; line-height:1.45; }
.checkout-actions { display:flex; flex-direction:column; gap:.5rem; }
.checkout-prepare,.checkout-pay { width:100%; min-height:54px; display:flex; align-items:center; justify-content:center; gap:.55rem; border-radius:15px; background:#bac34e; color:#171b0b; font-size:.78rem; font-weight:950; box-shadow:0 8px 22px rgba(186,195,78,.2); }
.checkout-pay { background:#111827; color:#fff; }
.checkout-prepare:disabled,.checkout-pay:disabled { opacity:.55; cursor:wait; }
.checkout-change { align-self:center; padding:.5rem; color:#6b7280; font-size:.61rem; font-weight:850; text-decoration:underline; }
.checkout-summary { padding:1.15rem; border-radius:22px; background:#111827; color:#fff; box-shadow:0 12px 30px rgba(17,24,39,.13); }
.checkout-summary h2 { margin-top:.25rem; font-size:1.2rem; font-weight:950; }
.checkout-summary-lines { margin-top:1rem; }
.checkout-summary-lines > div { min-height:36px; display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid rgba(255,255,255,.08); font-size:.65rem; }
.checkout-summary-lines span { color:#9ca3af; }
.checkout-summary-lines strong { font-weight:900; white-space:nowrap; }
.checkout-summary-vat { font-size:.58rem!important; }
.checkout-summary-vat i { font-style:normal; }
.checkout-summary-total { display:grid; grid-template-columns:1fr auto; align-items:end; gap:.2rem 1rem; padding:1rem 0 .7rem; }
.checkout-summary-total span { color:#9ca3af; font-size:.65rem; font-weight:850; }
.checkout-summary-total strong { color:#dce672; font-size:1.45rem; line-height:1; font-weight:950; }
.checkout-summary-total small { grid-column:1/-1; color:#6b7280; font-size:.52rem; }
.checkout-trust { display:flex; flex-wrap:wrap; gap:.45rem; padding-top:.7rem; border-top:1px solid rgba(255,255,255,.08); }
.checkout-trust span { display:inline-flex; align-items:center; gap:.3rem; color:#9ca3af; font-size:.52rem; font-weight:800; }
.checkout-blocker { min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; padding:2rem; border:1px solid #e7eae5; border-radius:28px; background:#fff; text-align:center; color:#6b7280; }
.checkout-blocker > i { font-size:2rem; color:#bac34e; }
.checkout-blocker strong { color:#111827; font-size:1.15rem; }
.checkout-blocker a { margin-top:.5rem; padding:.7rem 1rem; border-radius:12px; background:#bac34e; color:#171b0b; font-size:.7rem; font-weight:950; }
.shop-order-success { background:linear-gradient(180deg,#fafbf8 0,#f5f7f2 100%); }
.order-result { padding:1.3rem; border:1px solid #e7eae5; border-radius:28px; background:#fff; text-align:center; box-shadow:0 12px 35px rgba(17,24,39,.05); }
.order-result-icon { width:72px; height:72px; display:grid; place-items:center; margin:0 auto 1rem; border-radius:22px; background:#f2f5df; color:#737d24; font-size:1.6rem; }
.order-result.is-error .order-result-icon { background:#fef2f2; color:#b91c1c; }
.order-result.is-processing .order-result-icon { background:#eff6ff; color:#2563eb; }
.order-result h1 { margin-top:.4rem; color:#111827; font-size:clamp(1.7rem,8vw,2.5rem); font-weight:950; letter-spacing:-.04em; }
.order-result > p:not(.customizer-eyebrow) { max-width:560px; margin:.65rem auto 0; color:#6b7280; font-size:.78rem; line-height:1.6; }
.order-result-summary { margin-top:1.4rem; border:1px solid #ecefea; border-radius:16px; overflow:hidden; text-align:left; }
.order-result-summary > div { display:flex; justify-content:space-between; gap:1rem; padding:.8rem; border-bottom:1px solid #ecefea; }
.order-result-summary > div:last-child { border-bottom:0; }
.order-result-summary span { color:#111827; font-size:.68rem; font-weight:900; }
.order-result-summary small { display:block; margin-top:.12rem; color:#9ca3af; font-size:.52rem; font-weight:700; }
.order-result-summary strong { white-space:nowrap; font-size:.7rem; }
.order-result-summary .is-total { background:#fafce9; }
.order-result-summary .is-total span,.order-result-summary .is-total strong { color:#59611c; font-size:.85rem; font-weight:950; }
.order-result-actions { margin-top:1.2rem; display:flex; flex-direction:column; gap:.5rem; }
.order-result-actions a { min-height:48px; display:flex; align-items:center; justify-content:center; padding:.7rem 1rem; border-radius:14px; background:#bac34e; color:#171b0b; font-size:.7rem; font-weight:950; }
.order-result-actions a.is-secondary { background:#f5f6f4; color:#374151; }
.checkout-notice { margin-top:1rem; padding:.7rem; border-radius:12px; background:#fff7ed; color:#9a3412; font-size:.62rem; font-weight:800; }

@media (min-width:640px){
  .checkout-heading { flex-direction:row; align-items:flex-end; justify-content:space-between; }
  .checkout-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .checkout-field-wide { grid-column:1/-1; }
  .checkout-step { padding:1.25rem; border-radius:24px; }
  .order-result { padding:2rem; }
  .order-result-actions { flex-direction:row; justify-content:center; }
  .order-result-actions a { min-width:170px; }
}
@media (min-width:1024px){
  .checkout-layout { grid-template-columns:minmax(0,1fr) 350px; gap:1.25rem; }
  .checkout-summary { position:sticky; top:1.5rem; padding:1.35rem; border-radius:24px; }
}

/* ============================================================
   Shop UX patch · Familiar WooCommerce-like product flow
   Mobile-first, without copying WooCommerce markup or assets.
   ============================================================ */
.shop-purchase-entry { display:flex; flex-direction:column; gap:.75rem; }
.shop-purchase-entry-price { display:flex; align-items:baseline; gap:.35rem; color:#111827; }
.shop-purchase-entry-price small { color:#9ca3af; font-size:.68rem; font-weight:850; }
.shop-purchase-entry-price strong { font-size:1.55rem; line-height:1; font-weight:950; letter-spacing:-.03em; }
.shop-purchase-entry-price span { color:#9ca3af; font-size:.6rem; font-weight:750; }

.shop-customizer-page { background:#fff; }
.woo-customizer-shell { padding:0 0 6rem; background:#fff; }
.woo-customizer-inner { width:min(100%,1280px); margin:0 auto; padding:0 1rem; }
.woo-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:.42rem; padding:1rem 0 .85rem; color:#9ca3af; font-size:.67rem; font-weight:750; }
.woo-breadcrumb a:hover { color:#68721f; }
.woo-breadcrumb span:last-child { color:#4b5563; }

.woo-product-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:1.4rem; }
.woo-product-gallery { min-width:0; }
.woo-product-image-card { position:relative; overflow:hidden; border:1px solid #e7e9e4; border-radius:18px; background:#f8f9f6; }
.woo-product-image-badge { position:absolute; top:.7rem; left:.7rem; z-index:8; display:inline-flex; align-items:center; gap:.35rem; min-height:30px; padding:.38rem .55rem; border-radius:999px; background:rgba(255,255,255,.92); color:#606a1d; box-shadow:0 3px 12px rgba(17,24,39,.08); font-size:.58rem; font-weight:900; backdrop-filter:blur(8px); }
.woo-product-stage { aspect-ratio:1/1; background:#f6f7f3; }
.woo-product-gallery-caption { min-height:42px; display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding:.65rem .8rem; border-top:1px solid #eceee9; background:#fff; color:#8b9188; font-size:.62rem; font-weight:800; }
.woo-product-gallery-caption span { display:inline-flex; align-items:center; gap:.35rem; }
.woo-product-gallery-caption strong { color:#4b5563; font-size:.66rem; font-weight:900; }
.woo-design-reference { margin-top:.7rem; display:grid; grid-template-columns:48px minmax(0,1fr) 38px; gap:.65rem; align-items:center; padding:.6rem; border:1px solid #e8eae5; border-radius:14px; background:#fff; }
.woo-design-thumb { width:48px; height:48px; overflow:hidden; border-radius:10px; background:#f5f6f2; border:1px solid #eceee9; }
.woo-design-thumb img { width:100%; height:100%; object-fit:contain; padding:3px; }
.woo-design-reference div { min-width:0; display:flex; flex-direction:column; }
.woo-design-reference small { color:#9ca3af; font-size:.54rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; }
.woo-design-reference strong { margin-top:.1rem; overflow:hidden; color:#111827; font-size:.72rem; font-weight:950; white-space:nowrap; text-overflow:ellipsis; }
.woo-design-reference a { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; background:#f5f6f2; color:#66701e; font-size:.65rem; }

.woo-product-summary { min-width:0; }
.woo-summary-topline { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.woo-product-kicker { color:#778121; font-size:.62rem; font-weight:950; text-transform:uppercase; letter-spacing:.12em; }
.woo-cart-shortcut { display:inline-flex; align-items:center; gap:.35rem; min-height:36px; padding:.48rem .58rem; border:1px solid #e5e7eb; border-radius:10px; color:#4b5563; font-size:.62rem; font-weight:900; }
.woo-cart-shortcut > span { display:none; }
.woo-cart-shortcut b { min-width:18px; height:18px; display:grid; place-items:center; border-radius:999px; background:#bac34e; color:#161a0a; font-size:.52rem; }
.woo-product-summary h1 { margin-top:.85rem; color:#111827; font-size:clamp(1.7rem,7.4vw,2.65rem); line-height:1.06; font-weight:950; letter-spacing:-.035em; }
.woo-selected-product-name { margin-top:.35rem; color:#6b7280; font-size:.78rem; font-weight:800; }
.woo-main-price { margin-top:.9rem; color:#111827; font-size:1.7rem; line-height:1; font-weight:950; letter-spacing:-.03em; }
.woo-tax-note { margin-top:.38rem; color:#9ca3af; font-size:.58rem; font-weight:700; }
.woo-tax-note span { text-decoration:underline; text-underline-offset:2px; }
.woo-short-description { margin-top:1rem; color:#626a62; font-size:.78rem; line-height:1.62; }
.woo-stock-line { margin-top:.9rem; display:flex; align-items:center; gap:.42rem; color:#4f651d; font-size:.68rem; font-weight:900; }
.woo-stock-line i { font-size:.65rem; }
.woo-stock-line.is-low-stock { color:#9a6b17; }

.woo-variation-form { margin-top:1.15rem; border-top:1px solid #e6e8e3; }
.woo-variation-row { padding:1rem 0; border-bottom:1px solid #e6e8e3; }
.woo-variation-label { display:flex; align-items:center; justify-content:space-between; gap:.7rem; margin-bottom:.65rem; }
.woo-variation-label label { color:#252b26; font-size:.72rem; font-weight:950; }
.woo-variation-label > span { width:22px; height:22px; display:grid; place-items:center; border-radius:999px; background:#f0f3da; color:#68721f; font-size:.55rem; font-weight:950; }
.woo-garment-grid.customizer-garment-strip { margin-top:0; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(155px,72%); gap:.55rem; overflow-x:auto; padding:1px 1px .25rem; }
.woo-garment-option.customizer-garment-option { min-height:68px; grid-template-columns:44px minmax(0,1fr) 20px; padding:.5rem; border-radius:11px; background:#fff; }
.woo-garment-option .customizer-garment-thumb { width:44px; height:44px; border-radius:8px; }
.woo-garment-option.is-selected { border-color:#7d8727; background:#fbfced; box-shadow:0 0 0 1px rgba(125,135,39,.08); }
.woo-variation-row .customizer-color-list,
.woo-variation-row .customizer-size-list { margin-top:0; }
.woo-variation-row .customizer-color-option { min-height:42px; border-radius:8px; }
.woo-variation-row .customizer-size-option { min-width:46px; min-height:42px; border-radius:7px; }

.woo-purchase-row { display:grid; grid-template-columns:126px minmax(0,1fr); gap:.55rem; margin-top:1.05rem; }
.woo-quantity.customizer-quantity { grid-template-columns:38px 48px 38px; border-radius:8px; }
.woo-quantity.customizer-quantity button,
.woo-quantity.customizer-quantity input { height:50px; }
.woo-quantity.customizer-quantity input { width:48px; }
.woo-add-cart.customizer-add-cart { min-height:50px; border-radius:8px; background:#bac34e; box-shadow:none; font-size:.74rem; text-transform:uppercase; letter-spacing:.025em; }
.woo-add-cart.customizer-add-cart:hover { background:#c7d052; }

.woo-order-summary { margin-top:.8rem; padding:.75rem .85rem; border:1px solid #eaebe7; border-radius:10px; background:#fafbf9; }
.woo-order-summary > div { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:26px; color:#8b9188; font-size:.61rem; }
.woo-order-summary strong { max-width:65%; overflow:hidden; color:#4b5563; font-weight:900; text-overflow:ellipsis; white-space:nowrap; }
.woo-order-summary .woo-order-total { margin-top:.35rem; padding-top:.45rem; border-top:1px solid #e4e6e1; color:#4b5563; }
.woo-order-summary .woo-order-total strong { color:#111827; font-size:.86rem; }

.woo-commerce-reassurance { margin-top:.85rem; display:grid; gap:.4rem; }
.woo-commerce-reassurance span { display:flex; align-items:center; gap:.45rem; color:#737a73; font-size:.6rem; font-weight:750; }
.woo-commerce-reassurance i { width:18px; color:#89932f; text-align:center; }
.woo-save-selection.customizer-save-selection { min-height:42px; margin-top:.8rem; border:0; border-radius:8px; background:#f4f5f2; color:#5b625b; font-size:.66rem; box-shadow:none; }

.woo-product-information { margin-top:1.5rem; border-top:1px solid #e6e8e3; }
.woo-product-information details { border-bottom:1px solid #e6e8e3; }
.woo-product-information summary { position:relative; padding:1rem 1.9rem 1rem 0; list-style:none; color:#252b26; font-size:.76rem; font-weight:950; cursor:pointer; }
.woo-product-information summary::-webkit-details-marker { display:none; }
.woo-product-information summary::after { content:'+'; position:absolute; right:.15rem; top:50%; transform:translateY(-50%); color:#808780; font-size:1rem; font-weight:500; }
.woo-product-information details[open] summary::after { content:'–'; }
.woo-product-information details > div { padding:0 0 1rem; color:#6b7280; font-size:.72rem; line-height:1.65; }

.woo-mobile-buybar.customizer-mobile-bar { min-height:70px; }

@media (min-width:640px) {
    .woo-customizer-inner { padding-left:1.5rem; padding-right:1.5rem; }
    .woo-cart-shortcut > span { display:inline; }
    .woo-garment-grid.customizer-garment-strip { grid-auto-columns:minmax(170px,48%); }
}

@media (min-width:768px) {
    .woo-customizer-shell { padding-bottom:3rem; }
    .woo-product-layout { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2rem; align-items:start; }
    .woo-product-gallery { position:sticky; top:1.25rem; }
    .woo-product-summary { padding-top:.25rem; }
    .woo-product-information { margin-top:2.5rem; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #e6e8e3; }
    .woo-product-information details { border-bottom:0; border-right:1px solid #e6e8e3; padding-right:1.1rem; }
    .woo-product-information details + details { padding-left:1.1rem; }
    .woo-product-information details:last-child { border-right:0; }
}

@media (min-width:1024px) {
    .woo-customizer-inner { padding-left:2rem; padding-right:2rem; }
    .woo-breadcrumb { padding-top:1.35rem; padding-bottom:1.15rem; }
    .woo-product-layout { grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr); gap:3.4rem; }
    .woo-product-image-card { border-radius:6px; }
    .woo-design-reference { border-radius:6px; }
    .woo-product-summary h1 { font-size:2.75rem; }
    .woo-garment-grid.customizer-garment-strip { grid-auto-flow:initial; grid-auto-columns:initial; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; padding-bottom:0; }
    .woo-purchase-row { grid-template-columns:132px minmax(0,1fr); }
}
.woo-checkout-steps { margin:0 0 1rem; display:flex; align-items:center; gap:.38rem; overflow-x:auto; padding:0 0 .15rem; color:#a0a5a0; font-size:.58rem; font-weight:850; white-space:nowrap; scrollbar-width:none; }
.woo-checkout-steps::-webkit-scrollbar { display:none; }
.woo-checkout-steps span,.woo-checkout-steps a { display:inline-flex; align-items:center; gap:.32rem; }
.woo-checkout-steps b { width:20px; height:20px; display:grid; place-items:center; border-radius:999px; background:#eceee9; color:#7b817b; font-size:.5rem; }
.woo-checkout-steps .is-active { color:#4f5817; }
.woo-checkout-steps .is-active b { background:#bac34e; color:#171a0b; }
.woo-checkout-steps i { color:#d2d5d0; font-size:.45rem; }
@media (min-width:768px) { .woo-checkout-steps { margin-bottom:1.4rem; font-size:.64rem; gap:.5rem; } }
