/* ==========================
   RESET / BASE
========================== */
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }

:root{
  --wrap: 1200px;
  --pad-x: 40px;
  --pad-x-sm: 16px;
  --header-h: 74px;
  --header-h-sm: 60px;

  --nav: #9798c3;
  --accent: #ddc1b3;
  --ink: #231606;

  --glass: rgba(18, 20, 38, 0.38);
  --glass-soft: rgba(18, 20, 38, 0.28);
  --glass-border: rgba(255,255,255,0.14);

  /* HERO focal tuning */
  --hero-x: 45%;
  --hero-y: 58%;
  --hero-x-sm: 36%;
  --hero-y-sm: 56%;
}

/* IMPORTANT: prevents white flash while bg image loads */
body {
  font-family: 'Montserrat', sans-serif;
  color: #ffffff;

  background-color: #0a0c1e; /* fallback */
  background-image: url('/f/assets/img/home/bg.png');
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  background-attachment: fixed;

  position: relative;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(10, 12, 30, 0.28);
  pointer-events: none;
  z-index: -1;
}

a { color: inherit; text-decoration: none; }

/* Prevent random horizontal scroll */
html, body { overflow-x: hidden; }

/* ==========================
   SMOOTH HOVER TRANSITIONS (TEXT LINKS ONLY)
========================== */
a:not(.btn) { transition: color 300ms ease, opacity 300ms ease, text-shadow 300ms ease; }
a:not(.btn):hover { text-shadow: 0 0 10px rgba(221,193,179,0.22); }

/* ==========================
   BUTTONS
========================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  font-weight: 600;
  letter-spacing: 0.2px;
  transition: transform 0.12s ease;
  white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); }
.btn-outline { padding: 10px 18px; border: 1px solid var(--accent); background: rgba(0,0,0,0.18); }
.btn-primary { padding: 10px 18px; background: linear-gradient(var(--accent), #9e897e); color: var(--ink)!important; box-shadow: 0 10px 22px rgba(185,139,62,0.45); }
.btn-ghost { padding: 10px 18px; background: rgba(255,255,255,0.18); border: 1px solid rgba(255,255,255,0.18); }
.btn-lg { padding: 14px 32px; font-size: 15px; color: #fff; }
.btn-xl { padding: 18px 44px; font-size: 18px; color: #fff; }

/* ==========================
   STICKY FOOTER (SITE-WIDE)
========================== */
body { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1 0 auto; }

/* ==========================
   UTILITY PAGES
========================== */
.utility-page { padding: 70px 20px 80px; }
.utility-card {
  max-width: 900px;
  margin: 0 auto;
  background: var(--glass);
  border: 1px solid var(--glass-border);
  border-radius: 14px;
  padding: 28px 22px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 18px 42px rgba(0,0,0,0.28);
}
.utility-card label { display: block; opacity: 0.9; margin-bottom: 6px; }
.utility-input {
  width: 100%;
  padding: 12px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(0,0,0,0.22);
  color: #fff;
}
.utility-grid { display: grid; gap: 14px; margin-bottom: 18px; }
.utility-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; justify-content: flex-start; }
.utility-h1 { font-family: 'Cinzel', serif; letter-spacing: 1px; font-size: 38px; margin-bottom: 10px; }
.utility-lead { opacity: 0.92; margin-bottom: 22px; }

@media (max-width: 720px) {
  :root{ --pad-x: var(--pad-x-sm); --header-h: var(--header-h-sm); }

  /* keep the same bg behavior, but avoid iOS fixed issues */
  body{
    background-attachment: scroll;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
  }

  .utility-page { padding: 42px 16px 60px; }
  .utility-card { padding: 18px 14px; }
  .utility-h1 { font-size: 30px; }
  .utility-actions .btn { width: 100%; justify-content: center; }
}
