/* ============================================================
   IFA Shield U-15 International — Bootstrap theme
   Luxury tournament palette: black · burgundy · gold
   ============================================================ */
:root {
  /* Ink / blacks */
  --ink-900:#08080A; --ink-800:#0C0B0E; --ink-700:#131117; --ink-600:#1B1820; --ink-500:#2A2630;
  /* Burgundy */
  --burgundy-800:#571019; --burgundy-700:#6E1423; --burgundy-600:#8C1C2E; --burgundy-500:#A31D2B;
  /* Gold */
  --gold-700:#9A7724; --gold-600:#B8912F; --gold-500:#C8A24A; --gold-400:#D9B85E; --gold-300:#E8CE86; --gold-100:#F5E9C6;
  /* Neutrals */
  --cream:#F4EDE1; --cream-dim:#CFC7B8; --sand:#A89F8E; --smoke:#6E6A63;

  --border-hairline:rgba(200,162,74,0.16);
  --border-strong:rgba(200,162,74,0.38);
  --glass-bg:rgba(20,17,23,0.55);

  --grad-gold:linear-gradient(100deg,#B8912F 0%,#E8CE86 42%,#C8A24A 100%);
  --grad-gold-text:linear-gradient(180deg,#F5E9C6 0%,#C8A24A 90%);
  --grad-hero-veil:linear-gradient(180deg,rgba(8,8,10,0.35) 0%,rgba(8,8,10,0.72) 55%,var(--ink-800) 100%);
  --glow-gold:0 0 0 1px rgba(200,162,74,0.35),0 8px 30px rgba(200,162,74,0.22);
  --shadow-card:0 20px 50px rgba(0,0,0,0.55),inset 0 1px 0 rgba(244,237,225,0.04);
  --shadow-lg:0 28px 64px rgba(0,0,0,0.6);
  --ease-out:cubic-bezier(0.16,1,0.3,1);

  --font-display:'Cinzel','Marcellus',Georgia,serif;
  --font-serif:'Marcellus',Georgia,serif;
  --font-accent:'Cormorant Garamond',Georgia,serif;
  --font-body:'Barlow',system-ui,sans-serif;
  --font-condensed:'Barlow Semi Condensed','Barlow',sans-serif;
}

/* ---------- Base ---------- */
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0; background:var(--ink-800); color:var(--cream-dim);
  font-family:var(--font-body); font-weight:300; font-size:1.0625rem;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
a { color:var(--gold-300); text-decoration:none; transition:color .18s var(--ease-out); }
a:hover { color:var(--gold-100); }
::selection { background:var(--burgundy-600); color:var(--cream); }
img { max-width:100%; display:block; }

/* Film grain overlay */
body::after {
  content:""; position:fixed; inset:0; z-index:1500; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* Page vignette */
.vignette { position:fixed; inset:0; z-index:1490; pointer-events:none;
  background:radial-gradient(125% 105% at 50% 0%,transparent 55%,rgba(0,0,0,0.32) 100%); }

/* ---------- Typography helpers ---------- */
.kicker {
  font-family:var(--font-condensed); text-transform:uppercase; letter-spacing:.28em;
  font-size:.8125rem; color:var(--gold-300); display:inline-flex; align-items:center; gap:.9rem; margin-bottom:1.25rem;
}
.kicker::before { content:""; width:34px; height:1px; background:var(--gold-500); display:inline-block; }
.kicker.center { justify-content:center; }
.display {
  font-family:var(--font-display); font-weight:800; color:var(--cream);
  line-height:1.04; letter-spacing:.02em; text-wrap:balance; margin:0;
}
.section-title { font-size:clamp(2.1rem,4.4vw,3.6rem); }
.lead-text { font-family:var(--font-body); font-weight:300; font-size:clamp(1.05rem,1.4vw,1.3rem);
  line-height:1.7; color:var(--cream-dim); }
.text-gold { background:var(--grad-gold-text); -webkit-background-clip:text; background-clip:text; color:transparent; }
.serif { font-family:var(--font-serif); color:var(--cream); }
.muted-label { font-family:var(--font-condensed); text-transform:uppercase; letter-spacing:.28em;
  font-size:.75rem; color:var(--sand); }

/* ---------- Layout ---------- */
.section { padding:clamp(4.5rem,10vw,9rem) 0; position:relative; }
.section-ink { background:linear-gradient(180deg,var(--ink-800) 0%,var(--ink-900) 100%); }
.section-ink-rev { background:linear-gradient(180deg,var(--ink-900) 0%,var(--ink-800) 100%); }
.container-ifa { max-width:1200px; }

/* ---------- Buttons ---------- */
.btn-ifa {
  font-family:var(--font-condensed); font-weight:600; text-transform:uppercase; letter-spacing:.14em;
  border-radius:999px; padding:.95rem 2.1rem; border:1px solid transparent; cursor:pointer;
  display:inline-flex; align-items:center; gap:.6em; transition:transform .18s var(--ease-out),box-shadow .3s var(--ease-out); white-space:nowrap;
}
.btn-ifa.lg { padding:1.1rem 2.6rem; font-size:1.0625rem; }
.btn-ifa.sm { padding:.55rem 1.2rem; font-size:.8125rem; }
.btn-gold { background:var(--grad-gold); color:#241a05; box-shadow:var(--glow-gold); text-shadow:0 1px 0 rgba(255,255,255,.25); }
.btn-outline-gold { background:transparent; color:var(--gold-300); border-color:var(--border-strong); }
.btn-ifa:hover { transform:translateY(-3px); box-shadow:0 0 24px rgba(200,162,74,.4),0 0 60px rgba(200,162,74,.18); color:#241a05; }
.btn-outline-gold:hover { color:var(--gold-100); border-color:var(--gold-400); box-shadow:none; transform:translateY(-3px); }

/* ---------- Navbar ---------- */
.navbar-ifa { transition:background .35s var(--ease-out),padding .35s var(--ease-out),box-shadow .35s; padding:1.3rem 0; }
.navbar-ifa.scrolled { background:var(--glass-bg); backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%); border-bottom:1px solid var(--border-hairline);
  box-shadow:0 2px 8px rgba(0,0,0,.45); padding:.7rem 0; }
.navbar-ifa .nav-link { font-family:var(--font-condensed); text-transform:uppercase; letter-spacing:.14em;
  font-size:.8125rem; color:var(--cream-dim); padding:.4rem .9rem; transition:color .18s; }
.navbar-ifa .nav-link:hover { color:var(--gold-300); }
.navbar-ifa .brand-logo { height:34px; }

/* ---------- Badges ---------- */
.badge-ifa { font-family:var(--font-condensed); text-transform:uppercase; letter-spacing:.14em; font-size:.75rem;
  padding:.5rem 1rem; border-radius:999px; border:1px solid var(--border-hairline); color:var(--gold-300);
  background:rgba(200,162,74,.05); display:inline-block; }
.badge-ifa.solid { background:var(--grad-gold); color:#241a05; border-color:transparent; }

/* ---------- Glass cards ---------- */
.glass-card { background:var(--glass-bg); backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%); border:1px solid rgba(244,237,225,.08);
  border-radius:22px; padding:2rem; box-shadow:var(--shadow-card); height:100%;
  transition:transform .32s var(--ease-out),box-shadow .32s,border-color .32s; }
.glass-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--border-strong); }
.card-num { font-family:var(--font-display); font-weight:700; font-size:2.4rem; line-height:1;
  background:var(--grad-gold-text); -webkit-background-clip:text; background-clip:text; color:transparent; }
.card-title { font-family:var(--font-serif); color:var(--cream); font-size:1.4rem; margin:.9rem 0 .6rem; }
.card-text { font-size:.95rem; line-height:1.55; color:var(--cream-dim); margin:0; }

/* ---------- Stat counters ---------- */
.stat-num { font-family:var(--font-display); font-weight:700; font-size:clamp(2.6rem,5vw,4.2rem); line-height:1;
  background:var(--grad-gold-text); -webkit-background-clip:text; background-clip:text; color:transparent; letter-spacing:.02em; }
.stat-label { font-family:var(--font-condensed); text-transform:uppercase; letter-spacing:.28em; font-size:.75rem;
  color:var(--sand); margin-top:.75rem; }

/* ---------- Hero ---------- */
.hero { position:relative; min-height:100vh; display:flex; align-items:flex-end; overflow:hidden; }
.hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; z-index:0; }
.hero-veil { position:absolute; inset:0; z-index:1; background:var(--grad-hero-veil); }
.hero-pool { position:absolute; inset:0; z-index:1;
  background:radial-gradient(80% 60% at 12% 92%,rgba(110,20,35,.55) 0%,transparent 60%); }
.hero-content { position:relative; z-index:2; width:100%; padding-bottom:clamp(3rem,7vw,6rem); }
.hero-title { font-size:clamp(3rem,8vw,7rem); }
/* Countdown */
.countdown { display:inline-flex; align-items:flex-start; gap:clamp(.5rem,1.5vw,1.25rem);
  padding:clamp(.9rem,2vw,1.4rem) clamp(1.25rem,3vw,2.2rem); border-radius:22px; background:var(--glass-bg);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border:1px solid var(--border-hairline); box-shadow:var(--shadow-card); }
.cd-unit { display:flex; flex-direction:column; align-items:center; gap:.35rem; min-width:clamp(56px,8vw,86px); }
.cd-val { font-family:var(--font-display); font-weight:700; line-height:1; font-size:clamp(1.9rem,4vw,3rem);
  background:var(--grad-gold-text); -webkit-background-clip:text; background-clip:text; color:transparent; font-variant-numeric:tabular-nums; }
.cd-lab { font-family:var(--font-condensed); text-transform:uppercase; letter-spacing:.28em; font-size:.6rem; color:var(--sand); }
.cd-sep { color:var(--gold-700); font-size:clamp(1.4rem,3vw,2.4rem); font-family:var(--font-display); margin-top:.1em; }
.scroll-cue { position:absolute; bottom:1.5rem; left:50%; transform:translateX(-50%); z-index:2; text-align:center;
  font-family:var(--font-condensed); text-transform:uppercase; letter-spacing:.28em; font-size:.7rem; color:var(--sand); }
.scroll-line { width:1px; height:46px; margin:.5rem auto 0; background:linear-gradient(var(--gold-400),transparent); position:relative; overflow:hidden; }
.scroll-line::after { content:""; position:absolute; top:-46px; left:0; width:1px; height:46px; background:var(--gold-100); animation:scrollDot 2.2s var(--ease-out) infinite; }
@keyframes scrollDot { to { top:46px; } }

/* ---------- Media frames ---------- */
.frame { position:relative; border-radius:22px; overflow:hidden; box-shadow:var(--shadow-lg); }
.frame img { width:100%; height:100%; object-fit:cover; }
.frame-fade::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(8,8,10,.55) 100%); }

/* ---------- Structure bracket ---------- */
.bracket { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; position:relative; }
.bracket .stage { position:relative; }
.bracket .arrow { position:absolute; right:-1.05rem; top:50%; transform:translateY(-50%); color:var(--gold-500); font-size:1.4rem; z-index:3; }
.stage-final { border:1px solid var(--border-strong); box-shadow:var(--glow-gold); background:rgba(200,162,74,.03); }
.guarantee { display:inline-flex; align-items:center; gap:1rem; padding:1rem 3rem; border-radius:999px;
  border:1px solid var(--border-strong); background:rgba(200,162,74,.05); }
.guarantee .g-num { font-family:var(--font-display); font-weight:700; font-size:2rem; line-height:1;
  background:var(--grad-gold-text); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* ---------- Host city ---------- */
.host { position:relative; min-height:85vh; display:flex; align-items:center; overflow:hidden; padding:clamp(5rem,10vw,8rem) 0; }
.host-bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.host-veil { position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,8,10,.92) 0%,rgba(8,8,10,.55) 45%,transparent 100%); }

/* ---------- Gallery ---------- */
.gallery { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:clamp(150px,20vh,220px); gap:1rem; }
.g-item { position:relative; border-radius:22px; overflow:hidden; box-shadow:0 12px 32px rgba(0,0,0,.5); }
.g-item img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease-out); }
.g-item::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(8,8,10,.45) 100%); }
.g-item:hover img { transform:scale(1.05); }
.g1 { grid-column:span 7; grid-row:span 2; }
.g2 { grid-column:span 5; }
.g3 { grid-column:span 5; }
.g4 { grid-column:span 6; }
.g5 { grid-column:span 6; }

/* ---------- Contact ---------- */
.contact-card { background:var(--glass-bg); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border:1px solid var(--border-hairline); border-radius:22px; padding:clamp(2rem,4vw,3.5rem); box-shadow:var(--shadow-card); }
.contact-row { display:grid; grid-template-columns:150px 1fr; gap:1rem; align-items:baseline;
  padding:1rem 0; border-bottom:1px solid var(--border-hairline); }
.contact-row .c-key { font-family:var(--font-condensed); text-transform:uppercase; letter-spacing:.14em; font-size:.75rem; color:var(--gold-300); }
.contact-row .c-val { color:var(--cream); overflow-wrap:anywhere; }

/* ---------- Floating register ---------- */
.floating-register { position:fixed; right:1.5rem; bottom:1.5rem; z-index:1200; animation:floatPulse 3s var(--ease-out) infinite; }
@keyframes floatPulse { 0%,100%{ box-shadow:0 0 0 0 rgba(200,162,74,.4);} 50%{ box-shadow:0 0 0 14px rgba(200,162,74,0);} }

/* ---------- Modal / form ---------- */
.modal-ifa .modal-content { background:var(--ink-700); border:1px solid var(--border-hairline); border-radius:22px; color:var(--cream-dim); }
.modal-ifa .modal-header { border-bottom:1px solid var(--border-hairline); }
.modal-ifa .modal-title { font-family:var(--font-display); color:var(--cream); letter-spacing:.04em; }
.form-label-ifa { font-family:var(--font-condensed); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; color:var(--gold-300); margin-bottom:.4rem; }
.form-control-ifa, .form-select-ifa { background:var(--ink-800); border:1px solid var(--border-hairline); color:var(--cream);
  border-radius:8px; padding:.7rem .9rem; width:100%; font-family:var(--font-body); }
.form-control-ifa:focus, .form-select-ifa:focus { outline:none; border-color:var(--gold-500); box-shadow:0 0 0 3px rgba(200,162,74,.2); }
.dropzone { border:1.5px dashed var(--border-strong); border-radius:14px; padding:1.5rem; text-align:center; cursor:pointer;
  transition:background .2s,border-color .2s; background:rgba(200,162,74,.03); color:var(--sand); }
.dropzone.drag { background:rgba(200,162,74,.12); border-color:var(--gold-400); color:var(--gold-200); }
.dropzone img { max-height:150px; margin:.5rem auto 0; border-radius:8px; }
.success-check { width:64px; height:64px; margin:0 auto 1.25rem; border-radius:999px; display:grid; place-items:center;
  font-size:1.8rem; color:#241a05; background:var(--grad-gold); box-shadow:var(--glow-gold); }
.pay-box { padding:1rem; border-radius:14px; background:rgba(200,162,74,.05); border:1px solid var(--border-hairline);
  font-size:.8rem; color:var(--sand); line-height:1.7; }

/* ---------- Footer ---------- */
.footer-ifa { border-top:1px solid var(--border-hairline); padding:4rem 0 3rem; }

/* ---------- Responsive ---------- */
@media (max-width:991px){
  .bracket { grid-template-columns:repeat(2,1fr); }
  .bracket .arrow { display:none; }
}
@media (max-width:820px){
  .gallery { grid-template-columns:1fr 1fr; }
  .g1,.g2,.g3,.g4,.g5 { grid-column:span 1; grid-row:span 1; }
}
@media (max-width:640px){
  .bracket { grid-template-columns:1fr; }
  .gallery { grid-template-columns:1fr; }
  .contact-row { grid-template-columns:1fr; gap:.25rem; }
}
@media (prefers-reduced-motion:reduce){
  html { scroll-behavior:auto; }
  .scroll-line::after,.floating-register { animation:none; }
  .g-item:hover img { transform:none; }
}
