@font-face{font-family:Badge Fraunces;font-weight:600;font-display:swap;src:url(/shop/badges/fonts/fraunces-600.ttf)format("truetype")}@font-face{font-family:Badge Fraunces;font-weight:700;font-display:swap;src:url(/shop/badges/fonts/fraunces-700.ttf)format("truetype")}@font-face{font-family:Badge DM Sans;font-weight:700;font-display:swap;src:url(/shop/badges/fonts/dm-sans-700.ttf)format("truetype")}@font-face{font-family:Badge Lilita One;font-weight:400;font-display:swap;src:url(/shop/badges/fonts/lilita-one-400.ttf)format("truetype")}@font-face{font-family:Badge Pacifico;font-weight:400;font-display:swap;src:url(/shop/badges/fonts/pacifico-400.ttf)format("truetype")}@font-face{font-family:Badge Playfair Display SC;font-weight:700;font-display:swap;src:url(/shop/badges/fonts/playfair-display-sc-700.ttf)format("truetype")}@font-face{font-family:Badge Great Vibes;font-weight:400;font-display:swap;src:url(/shop/badges/fonts/great-vibes-400.ttf)format("truetype")}.badge-prev{width:100%;container-type:inline-size}.badge-face{aspect-ratio:3/2;background-position:50%;background-repeat:no-repeat;background-size:108.444% 112.667%;border-radius:3.78cqw;width:100%;position:relative;overflow:hidden;box-shadow:0 .3cqw .5cqw #00000029,0 2cqw 4.5cqw #1c243038}.badge-slot{align-items:center;display:flex;position:absolute}.badge-slot>span{white-space:nowrap}.badge-page .shop-product{grid-template-columns:1.1fr 1fr}@media (max-width:900px){.badge-page .shop-product{grid-template-columns:1fr}}.badge-stage{border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);background:repeating-linear-gradient(45deg,#dfe7ef 0 3px,#e8eef4 3px 7px);padding:clamp(28px,6vw,60px) clamp(16px,5vw,48px);position:relative}.badge-stage-tags{justify-content:space-between;gap:8px;font-size:.82rem;font-weight:700;display:flex;position:absolute;top:12px;left:14px;right:14px}.badge-stage-tags span:first-child{color:var(--palm);background:#fff;border-radius:999px;padding:3px 12px}.badge-stage-tags span:last-child{color:var(--muted);padding:3px 0}.badge-stage .badge-prev{margin-top:14px}.badge-step{justify-content:space-between;gap:10px;margin:18px 0 8px;font-weight:700;display:flex}.badge-step span{color:var(--muted);font-weight:600}.badge-step:first-of-type{margin-top:4px}.badge-themes{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}@media (max-width:520px){.badge-themes{grid-template-columns:repeat(3,minmax(0,1fr))}}.badge-theme{border:2px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;text-align:center;background:#fff;border-radius:12px;flex-direction:column;gap:5px;padding:5px 5px 7px;font-size:.76rem;font-weight:700;line-height:1.15;display:flex}.badge-theme .badge-face{box-shadow:none;border-radius:4cqw}.badge-theme[aria-pressed=true]{border-color:var(--palm);color:var(--palm);box-shadow:0 0 0 3px #1f6b4a33}.badge-field{box-sizing:border-box;border:1px solid var(--line);width:100%;min-height:50px;font:inherit;color:var(--ink);background:#fff;border-radius:12px;padding:8px 14px;font-size:1.1rem;font-weight:600}.badge-field:focus{border-color:var(--palm);outline:none;box-shadow:0 0 0 3px #1f6b4a26}.badge-field[aria-invalid=true]{border-color:var(--sunset);box-shadow:0 0 0 3px #e85d4c26}.badge-hint{color:var(--muted);margin:6px 0 0;font-size:.88rem}.badge-err{color:#b8402f;margin:6px 0 0;font-size:.92rem;font-weight:700}.badge-price-each{color:var(--muted);font-size:.55em;font-weight:700}.badge-materials{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.badge-material{border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;line-height:1.25;display:flex;position:relative}.badge-material input{opacity:0;pointer-events:none;position:absolute}.badge-material:has(input:checked){border-color:var(--palm);box-shadow:0 0 0 3px #1f6b4a33}.badge-material:has(input:focus-visible){outline:3px solid var(--palm);outline-offset:2px}.badge-material-top{justify-content:space-between;gap:8px;font-weight:800;display:flex}.badge-material:has(input:checked) .badge-material-name{color:var(--palm)}.badge-material-price{font-weight:800}.badge-material-spec{color:var(--muted);font-size:.82rem;font-weight:600}.badge-materials-compact{margin-top:10px}.badge-materials-compact .badge-material{padding:8px 10px}.badge-buyrow{flex-wrap:wrap;align-items:stretch;gap:12px;margin-top:20px;display:flex}.badge-buyrow .btn{flex:220px;min-height:52px}.badge-qty{border:1px solid var(--line);min-width:84px;min-height:52px;font:inherit;background:#fff;border-radius:12px;padding:0 10px;font-size:1.05rem;font-weight:700}.badge-fine{color:var(--muted);margin:14px 0 0;font-size:.9rem;line-height:1.55}.badge-ready{margin:36px 0 10px}.badge-ready h2{font-family:var(--font-display), serif;margin:4px 0 6px;font-size:clamp(1.5rem,3vw,2rem)}.badge-ready-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:16px;display:grid}@media (max-width:760px){.badge-ready-grid{grid-template-columns:1fr}}.badge-ready-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.badge-ready-card img{aspect-ratio:3/2;background:var(--cream);width:100%;height:auto;display:block}.badge-ready-body{padding:14px 18px 18px}.badge-ready-body h3{font-family:var(--font-display), serif;margin:4px 0 6px;font-size:1.3rem}.badge-size{border:1px solid var(--line);color:var(--palm);background:#fff;border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:700;display:inline-block}.shop-line .badge-prev{width:84px}@media (max-width:560px){.shop-line .badge-prev{width:64px}}
