/* ============================================================
   style.css  -  Formulir Undangan Digital (Birthday & Khitanan)
   Selaras dengan: wedding style.css
   Design  : Warm Luxury Editorial
   Palette : Cream #FBF8F2 x Gold #C49A3C x Toffee #9B6B3A
   Type    : Playfair Display (heading) + Nunito (body)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,700;1,400&family=Nunito:wght@400;500;600;700&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#FBF8F2;--surface:#FFFFFF;--border:#EDE6D8;
  --text:#2A2118;--text-muted:#8C7A65;
  --primary:#9B6B3A;--gold:#C49A3C;--gold-l:#FDF4E3;
  --radius:14px;--shadow:0 4px 24px rgba(42,33,24,.08);
  --shadow-md:0 8px 32px rgba(42,33,24,.13);
}

html{font-size:100%;}
body{
  font-family:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--bg);color:var(--text);min-height:100vh;
  padding:14px 12px 60px;line-height:1.6;-webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(ellipse at 18% 8%,rgba(196,154,60,.07) 0%,transparent 55%),
    radial-gradient(ellipse at 82% 88%,rgba(155,107,58,.05) 0%,transparent 55%);
}

/* ---- CONTAINER ------------------------------------------- */
.container{max-width:520px;margin:0 auto}
@media(min-width:768px){.container{max-width:560px}}

/* ---- NAVIGATION BUTTONS ---------------------------------- */
.btn-animated{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 16px;background:var(--surface);
  border:1.5px solid var(--border);border-radius:10px;
  color:var(--text-muted);font-family:'Nunito',sans-serif;
  font-weight:700;font-size:13px;text-decoration:none;cursor:pointer;
  transition:border-color .18s,color .18s,box-shadow .18s,transform .1s;
  -webkit-tap-highlight-color:transparent;margin-bottom:4px;
}
.btn-animated:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow)}
.btn-animated:active{transform:scale(.97)}
.btn-animated span{display:inline}
/* nav wrapper div */
.container>div[style*="margin-bottom"]{
  display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px!important;
}

/* ---- JUDUL FORM ------------------------------------------ */
.judul-form{
  font-family:'Playfair Display',Georgia,serif;font-size:20px;font-weight:700;
  color:var(--text);text-align:center;line-height:1.4;margin-bottom:18px;
  padding:20px;background:var(--surface);border:1.5px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow);
}

/* ---- JUDUL GRADIENT -------------------------------------- */
.judul-form-gradient{
  font-family:'Playfair Display',Georgia,serif;font-size:18px;font-weight:700;
  text-align:center;line-height:1.45;margin-bottom:18px;padding:18px 20px;
  background:linear-gradient(135deg,#FDF8F0 0%,#FAF3E5 50%,#F8EED8 100%);
  border:1.5px solid var(--gold);border-radius:var(--radius);color:var(--text);
  position:relative;overflow:hidden;
}
.judul-form-gradient::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(196,154,60,.04),transparent);pointer-events:none;
}

/* ---- FORM CARD (m-2 p-3 rounded shadow) ------------------ */
form.m-2.p-3.rounded.shadow,form.rounded.shadow{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);margin-top:6px;
}
.m-2{margin:8px 0}
.p-3{padding:16px}
.rounded{border-radius:var(--radius)}
.shadow{box-shadow:var(--shadow)}
.text-center{text-align:center}
.mb-2{margin-bottom:10px}
.py-2{padding-top:8px;padding-bottom:8px}

/* ---- FORM GRID ------------------------------------------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:4px}

/* ---- FORM GROUP ------------------------------------------ */
.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:2px}

/* ---- LABELS ---------------------------------------------- */
.form-group label,label.form-label,.form-label{
  font-size:12.5px;font-weight:700;color:var(--text-muted);
  line-height:1.45;letter-spacing:.01em;display:block;
}

/* ---- TEXT / NUMBER / URL INPUTS -------------------------- */
.form-group input[type="text"],
.form-group input[type="number"],
.form-group input[type="url"],
input[type="text"],
input[type="number"],
input[type="url"]{
  padding:11px 13px;border:1.5px solid var(--border);border-radius:9px;
  font-family:'Nunito',sans-serif;font-size:16px;color:var(--text);
  background:#fff;width:100%;
  transition:border-color .18s,box-shadow .18s;
  -webkit-tap-highlight-color:transparent;
}
.form-group input[type="text"]:focus,
.form-group input[type="number"]:focus,
input[type="text"]:focus,
input[type="number"]:focus{
  outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(155,107,58,.10);
}
input::placeholder,textarea::placeholder{color:#C4B8A8;font-size:13px}

/* ---- TEXTAREA (.form-control) ---------------------------- */
.form-control{
  padding:11px 13px;border:1.5px solid var(--border);border-radius:9px;
  font-family:'Nunito',sans-serif;font-size:15px;color:var(--text);background:#fff;
  width:100%;transition:border-color .18s,box-shadow .18s;line-height:1.65;
  -webkit-tap-highlight-color:transparent;
}
.form-control:focus{
  outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(155,107,58,.10);
}

/* ---- DATE & TIME WRAPPER --------------------------------- */
.fake-input-container{position:relative;display:flex;align-items:center}
.input-time-clean{
  width:100%;padding:11px 13px;padding-right:78px;
  border:1.5px solid var(--border);border-radius:9px;
  font-family:'Nunito',sans-serif;font-size:15px;color:var(--text);background:#fff;
  transition:border-color .18s,box-shadow .18s;
  -webkit-appearance:none;appearance:none;
}
.input-time-clean:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(196,154,60,.12);
}
.inner-text-selesai{
  position:absolute;right:9px;top:50%;transform:translateY(-50%);
  font-size:10px;font-weight:800;font-family:'Nunito',sans-serif;
  color:var(--primary);background:var(--gold-l);
  border:1px solid rgba(196,154,60,.4);border-radius:5px;
  padding:2px 7px;white-space:nowrap;pointer-events:none;letter-spacing:.2px;
}

/* ---- DIVIDER --------------------------------------------- */
.pembatas-garis{
  height:1px;
  background:linear-gradient(90deg,transparent,var(--gold) 30%,rgba(196,154,60,.6) 70%,transparent);
  border:none;margin:18px 0;
}

/* ---- PRODUCT INFO BOX ------------------------------------ */
/* Override Tailwind-like .bg-blue-200 -> warm dark card */
.bg-blue-200{
  background:linear-gradient(135deg,#2A2118,#3D2E1E);
  border:1.5px solid rgba(196,154,60,.4);border-radius:11px;padding:14px 18px;
}
.text-blue-800{color:rgba(255,255,255,.85)}

/* ---- SUBMIT BUTTON --------------------------------------- */
.btn-submit{
  width:100%;padding:16px 20px;
  background:linear-gradient(135deg,#25D366,#128C7E);
  color:#fff;border:none;border-radius:var(--radius);
  font-family:'Nunito',sans-serif;font-size:15px;font-weight:800;cursor:pointer;
  display:flex;align-items:center;justify-content:center;text-align:center;
  box-shadow:0 4px 18px rgba(37,211,102,.32);
  transition:opacity .18s,transform .1s;
  -webkit-tap-highlight-color:transparent;margin-top:20px;line-height:1.4;
}
.btn-submit:hover{opacity:.92}
.btn-submit:active{transform:scale(.98)}

/* ---- VALIDATION MESSAGES --------------------------------- */
.error-msg{
  display:flex;flex-direction:column;gap:5px;background:#FFF5F5;
  border:1.5px solid #FECACA;border-radius:12px;padding:14px 16px;
  margin-bottom:20px;font-size:13.5px;color:#991B1B;
}
.error-msg strong{display:block;margin-bottom:4px;font-size:13px}
.success-msg{
  background:#F0FDF4;border:1.5px solid #86EFAC;border-radius:12px;
  padding:14px 16px;margin-bottom:20px;font-size:13.5px;color:#166534;font-weight:600;
}

/* ---- REQUIRED MARK --------------------------------------- */
.required-star,.req-mark{color:#EF4444;font-weight:700}

/* ---- RESPONSIVE ------------------------------------------ */
@media(max-width:480px){
  body{padding:10px 10px 50px}
  .judul-form{font-size:18px;padding:16px}
  .judul-form-gradient{font-size:15px;padding:14px 16px}
}
@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}

.img-upload-zone{border:2px dashed #CBD5E1;border-radius:12px;padding:24px 14px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:#F8FAFC;user-select:none;}
.img-upload-zone:hover,.img-upload-zone.drag-over{border-color:#6366F1;background:#EEF2FF;}
.img-upload-zone svg{width:36px;height:36px;margin:0 auto 8px;display:block;color:#94A3B8;}
.img-upload-zone p{margin:4px 0 0;color:#64748B;font-size:13px;line-height:1.5;}
.img-upload-zone strong{color:#4F46E5;}
.img-count-badge{display:inline-block;padding:3px 12px;border-radius:999px;background:#EEF2FF;color:#4F46E5;font-size:12px;font-weight:600;}
.img-prev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;}
.img-prev-item{position:relative;border-radius:8px;overflow:hidden;aspect-ratio:1;background:#F1F5F9;border:1px solid #E2E8F0;}
.img-prev-item img{width:100%;height:100%;object-fit:cover;display:block;}
.img-del-btn{position:absolute;top:4px;right:4px;width:22px;height:22px;background:rgba(239,68,68,.9);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;}
.img-del-btn svg{width:12px;height:12px;}
.img-prev-name{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.55);color:#fff;font-size:9px;padding:2px 4px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.btn-hapus-semua{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;background:#FEF2F2;color:#DC2626;border:1px solid #FECACA;border-radius:8px;font-size:12px;cursor:pointer;font-weight:600;margin-top:6px;}
.btn-hapus-semua svg{width:12px;height:12px;}
.foto-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;}
.maps-input-row{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap;margin-top:4px;}
.maps-input-row input{flex:1;min-width:0;}
.btn-gps{display:inline-flex;align-items:center;gap:6px;padding:0 13px;background:linear-gradient(135deg,#10B981,#059669);color:#fff;border:none;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;min-height:42px;flex-shrink:0;transition:background .3s;}
.btn-gps svg{width:14px;height:14px;flex-shrink:0;}
.btn-gps:disabled{opacity:.6;cursor:wait;}
.btn-gps.lokasi-ok{background:linear-gradient(135deg,#6366F1,#4F46E5);}
.maps-iframe-wrap{display:none;border-radius:10px;overflow:hidden;border:1px solid #E2E8F0;margin-top:6px;}
.maps-iframe-wrap.show{display:block;}
.maps-iframe-wrap iframe{width:100%;height:200px;border:none;display:block;}
@keyframes spin{to{transform:rotate(360deg)}}
