@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=DM+Sans:wght@300;400;500&display=swap');

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

:root {
  --gold:      #C9A84C;
  --gold-light:#F0D795;
  --gold-dark: #8B6914;
  --rose:      #C47A82;
  --charcoal:  #2A2218;
  --cream:     #FDF8F2;
  --warmgray:  #6B5E52;
  --soft-white:#FFFDF9;
  --border:    rgba(0,0,0,.07);
}

html { scroll-behavior: smooth; }
body { font-family:'DM Sans',sans-serif; color:var(--charcoal); background:var(--soft-white); overflow-x:hidden; }
h1,h2,h3,h4 { font-family:'Cormorant Garamond',serif; }
a { text-decoration:none; color:inherit; }
button { cursor:pointer; font-family:'DM Sans',sans-serif; }
input,select,textarea { font-family:'DM Sans',sans-serif; }
img { max-width:100%; display:block; }

/* Buttons */
.btn-primary { background:var(--charcoal); color:#fff; border:none; padding:.75rem 1.75rem; border-radius:4px; font-size:.85rem; letter-spacing:.08em; transition:background .2s,transform .15s; font-weight:500; }
.btn-primary:hover { background:var(--gold-dark); transform:translateY(-1px); }
.btn-gold    { background:var(--gold); color:#fff; border:none; padding:.75rem 1.75rem; border-radius:4px; font-size:.85rem; letter-spacing:.08em; transition:background .2s; font-weight:500; }
.btn-gold:hover { background:var(--gold-dark); }
.btn-outline { background:transparent; color:var(--charcoal); border:1px solid rgba(42,34,24,.25); padding:.75rem 1.75rem; border-radius:4px; font-size:.85rem; letter-spacing:.08em; transition:all .2s; }
.btn-outline:hover { border-color:var(--gold); color:var(--gold-dark); }
.btn-sm { padding:.45rem 1rem; font-size:.78rem; }
.btn-danger { background:#e74c3c; color:#fff; border:none; padding:.45rem 1rem; border-radius:4px; font-size:.78rem; transition:background .2s; }
.btn-danger:hover { background:#c0392b; }

/* Inputs */
.input { width:100%; border:1px solid #e0d9d0; border-radius:6px; padding:.65rem 1rem; font-size:.9rem; outline:none; transition:border-color .2s; background:#fff; color:var(--charcoal); }
.input:focus { border-color:var(--gold); }
.input-group { margin-bottom:1rem; }
.input-group label { display:block; font-size:.75rem; font-weight:500; color:var(--charcoal); margin-bottom:.4rem; letter-spacing:.03em; }
.input-group .error { color:#e74c3c; font-size:.72rem; margin-top:.3rem; }

/* Cards */
.card { background:#fff; border-radius:12px; border:1px solid var(--border); }

/* Badge */
.badge { display:inline-block; font-size:.68rem; font-weight:500; padding:.2rem .65rem; border-radius:2rem; letter-spacing:.04em; }
.badge-gold     { background:rgba(201,168,76,.12); color:var(--gold-dark); }
.badge-green    { background:rgba(39,174,96,.1);   color:#1a8a4a; }
.badge-blue     { background:rgba(52,152,219,.1);  color:#1a6fa8; }
.badge-purple   { background:rgba(155,89,182,.1);  color:#7d3f9e; }
.badge-cyan     { background:rgba(26,188,156,.1);  color:#0e7a65; }
.badge-red      { background:rgba(231,76,60,.1);   color:#c0392b; }
.badge-gray     { background:rgba(0,0,0,.06);      color:var(--warmgray); }
.badge-amber    { background:rgba(243,156,18,.1);  color:#b7770d; }

/* Section labels */
.section-label { font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); font-weight:500; }
.section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(1.8rem,3.5vw,2.8rem); font-weight:300; color:var(--charcoal); line-height:1.2; }
.section-title em { font-style:italic; color:var(--gold); }

/* Skeleton */
.skeleton { background:linear-gradient(90deg,#f0ebe4 25%,#e8e2db 50%,#f0ebe4 75%); background-size:200% 100%; animation:shimmer 1.4s infinite; border-radius:8px; }
@keyframes shimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }

/* Utility */
.text-center { text-align:center; }
.text-gold   { color:var(--gold); }
.text-muted  { color:var(--warmgray); }
.fw-500      { font-weight:500; }
.mt-1  { margin-top:.5rem; }
.mt-2  { margin-top:1rem; }
.mt-3  { margin-top:1.5rem; }
.mt-4  { margin-top:2rem; }
.mb-2  { margin-bottom:1rem; }
.gap-2 { gap:1rem; }
.flex  { display:flex; }
.items-center { align-items:center; }
.justify-between { justify-content:space-between; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
@media(max-width:768px) {
  .grid-4 { grid-template-columns:repeat(2,1fr); }
  .grid-3 { grid-template-columns:1fr 1fr; }
  .grid-2 { grid-template-columns:1fr; }
}
@media(max-width:480px) {
  .grid-4,.grid-3 { grid-template-columns:1fr 1fr; }
}

/* Animations */
@keyframes fadeUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
.fade-up { animation:fadeUp .5s ease forwards; }
@keyframes slideIn { from{transform:translateX(100%)} to{transform:translateX(0)} }
