@font-face{font-family:'EnchantiyaHeading';src:url('./assets/font/Oswald-VariableFont_wght.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
:root{--bg:#f7fcff;--ink:#0b0b0b;--muted:#6b7280;--primary:#ea0f14;--primary-ink:#fff;--accent:#ffb703;--ring:#1e90ff;--card:#ffffff;--border:#e5e7eb}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Rubik,system-ui,-apple-system,Segoe UI,Roboto,Arial,"Apple Color Emoji","Segoe UI Emoji";color:var(--ink);background:var(--bg)}
.heading-font,h1,h2,h3,h4,h5,h6,strong,b{font-family:'EnchantiyaHeading',Rubik,system-ui,-apple-system,Segoe UI,Roboto,Arial,"Apple Color Emoji","Segoe UI Emoji"}
.container{max-width:980px;margin:0 auto;padding:16px}
.site-header{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:16px}
.logo{height:64px}
.steps-nav{display:flex;gap:12px}
.step-dot{width:56px;height:56px;border-radius:14px;border:2px solid var(--border);background:#fff;color:#111;font-weight:800;font-size:18px;cursor:pointer}
.step-dot.active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.step-dot:disabled{opacity:.5;cursor:not-allowed}

.step{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;margin-top:12px}
.hidden{display:none}

h2{font-size:24px;margin:4px 0 18px 0}
.people-picker{display:flex;align-items:center;justify-content:space-between;gap:12px;border:2px solid var(--border);background:var(--bg);padding:12px 16px;border-radius:16px}

.people-controls{display:flex;align-items:center;gap:10px}
.icon-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:#fff;display:grid;place-items:center;cursor:pointer}
.icon-btn.small{width:32px;height:32px;border-radius:8px}
.icon-btn:disabled{opacity:.6;cursor:not-allowed}
.people-count{min-width:28px;text-align:center;font-weight:700}

.upload-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:16px}
.upload-card{position:relative;border:2px dashed #cbd5e1;border-radius:16px;background:#fafafa;min-height:220px;display:flex;align-items:center;justify-content:center;padding:12px}
.upload-card input[type=file]{display:none}
.upload-cta{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted)}
.upload-cta img{width:44px;height:44px}
.thumb{position:absolute;inset:0;border-radius:14px;width:100%;height:100%;object-fit:cover}
.remove-btn{position:absolute;top:8px;right:8px;background:#ffffffc7;border:1px solid var(--border);border-radius:10px;padding:6px 8px;cursor:pointer}

.actions{margin-top:18px;display:flex;justify-content:flex-end;gap:12px}
.actions.two{justify-content:space-between;flex-direction:column}
.primary{background:var(--primary);color:var(--primary-ink);border:none;border-radius:16px;padding:16px 22px;font-weight:900;cursor:pointer;width:100%}
.secondary{background:var(--accent);color:#802103;border:none;border-radius:16px;padding:16px 22px;font-weight:900;cursor:pointer;width:100%}
.cta{background:#ffb703;color:#111;border:none;border-radius:16px;padding:14px 22px;font-weight:900;cursor:pointer}
.ghost{background:#eef2ff;color:#111;border:1px solid var(--border);border-radius:12px;padding:10px 14px;cursor:pointer}
.primary:disabled,.secondary:disabled,.cta:disabled,.ghost:disabled{opacity:.6;cursor:not-allowed}

.form-field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
/* Ensure hidden wins over .form-field display */
.form-field.hidden{display:none}
input,textarea{border:1px solid var(--border);border-radius:12px;padding:12px 14px;font-size:16px;background:#f3f4f6}
.muted{color:var(--muted)}
.form-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.form-field.wide{grid-column:1/-1}
.styles-row{display:flex;gap:12px;overflow-x:auto;padding:8px 2px}
.style-card{min-width:140px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer}
.style-card.selected{outline:3px solid #ef4444}
.style-img{width:100%;height:120px;object-fit:cover;border-radius:12px 12px 0 0;display:block}
.style-label{padding:8px;text-align:center;font-weight:600}

.render-wrap{position:relative;display:grid;place-items:center;border:2px solid #ef4444;border-radius:16px;min-height:420px;overflow:hidden}
/* removed badge styles */
.loading{display:grid;place-items:center;gap:10px}
.progressbar{width:80%;max-width:520px;height:14px;background:#fee2e2;border-radius:10px;overflow:hidden;border:1px solid #fecaca}
.progress-fill{height:100%;background:#ef4444;transition:width .3s ease}
.main-render{width:100%;height:auto;display:block}
.saved-gallery{display:flex;gap:12px;overflow-x:auto;padding:12px 2px;margin-top:16px}
.saved-thumb{width:140px;height:160px;border-radius:12px;object-fit:cover;border:3px solid transparent;filter:grayscale(100%);opacity:.6;cursor:pointer}
.saved-thumb.selected{border-color:#ef4444;filter:none;opacity:1}
.minor-row{margin-top:12px}
.check{display:flex;align-items:center;gap:8px}
.help-row{margin:16px 0;display:flex;flex-direction:column;gap:8px}
.help-note{margin:0;color:#6b7280}
.viber-btn{display:block;text-align:center;background:#7360F2;color:#fff;text-decoration:none;padding:14px 18px;border-radius:14px;}

.group{margin:14px 0}
.group-title{font-weight:600;margin-bottom:10px}
.s4-loading{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.s4-loading.hidden{display:none}
.s4-spinner{width:18px;height:18px;border-radius:50%;border:3px solid #e5e7eb;border-top-color:#ef4444;animation:s4spin 1s linear infinite}
@keyframes s4spin{to{transform:rotate(360deg)}}
.option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.option-grid#boxOptions, #boxOptions.option-grid{grid-template-columns:1fr}
.option{position:relative;padding:18px;border:1px solid var(--border);border-radius:16px;background:#fff;cursor:pointer;text-align:center}
.option,.actions .primary,.actions .secondary, .cta, .ghost{width:100%}
.option.selected{outline:3px solid #ef4444}
.option .price{display:block;color:var(--muted);margin-top:6px}
.option-img{width:100%;height:auto;border-radius:12px;margin-bottom:10px;display:block}
/* Step 4 specific: background for all options */
#step4 .option{background:#F4F4F4;border-color:#D8D8D8}

.letter{margin-top:12px;border:2px dashed #D8D8D8;border-radius:16px;background:#fff;padding:12px}
.letter-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.letter-row{grid-template-columns:1fr}}

/* Badges */
.badge{position:absolute;top:-10px;right:-20px;background:#ef4444;color:#fff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800;box-shadow:0 2px 4px #0002;transform:rotate(12deg);pointer-events:none}
.badge-best{background:#ef4444}

.payment-row{margin:12px 0}
.payment-options{display:flex;gap:16px;align-items:center}
.pay-opt{display:flex;align-items:center;gap:8px;border:1px solid var(--border);padding:10px 12px;border-radius:12px;background:#fff}
.pay-cards{display:flex;gap:12px}
.pay-card{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #D8D8D8;border-radius:12px;background:#F4F4F4;padding:12px 10px;cursor:pointer}
.pay-card.selected{outline:3px solid #ef4444}
.pay-title{font-weight:900}
.pay-sub{color:#6b7280;font-size:12px;margin-top:4px}
.pay-desc{color:#6b7280;font-size:12px}
.pay-card{position:relative}
.pay-help{position:absolute;top:-14px;right:-14px;background:#ef4444;border-color:#ef4444;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;z-index:2;cursor:pointer;box-shadow:0 2px 6px #0002}
.pay-help img{filter:invert(1);width:18px;height:18px}
.pay-card .tooltip{top:36px;right:8px}
.tooltip{position:absolute;transform:translateY(6px);background:#111;color:#fff;padding:10px 12px;border-radius:10px;max-width:320px}
.promo-row{margin-top:8px}
.promo-input{display:flex;gap:8px}
.promo-msg{font-size:14px;margin-top:6px}
.total-row{margin:16px 0}
.total-box{border:2px dashed red;padding:12px 16px;border-radius:12px;background:#fff;font-size:18px}

.ui-blocker{position:fixed;inset:0;background:#0006;display:grid;place-items:center;z-index:50}
.blocker-inner{background:#fff;padding:18px 22px;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:10px}
.ui-blocker.hidden{display:none}
.loading.hidden{display:none}
.main-render.hidden{display:none}

@media (max-width:560px){
  .logo{height:52px}
  .step-dot{width:48px;height:48px;font-size:16px}
}


