/* ============================================================
   WHITE HIPPO OFF-ROAD — styles.css (Elegant Blue)
   ============================================================ */

/* ── Variables ─────────────────────────────────────────────── */
:root {
  --blue:        #1a6eff;
  --blue-dark:   #0050dd;
  --blue-mid:    #4d8fff;
  --blue-light:  #e8f0ff;
  --blue-glow:   rgba(26,110,255,.18);

  --bg:          #f4f6fb;
  --bg2:         #eaedf7;
  --bg3:         #ffffff;
  --card:        #ffffff;
  --border:      rgba(26,110,255,.12);
  --gray:        #d0d6ec;
  --muted:       #6b74a0;
  --text:        #0d1321;
  --text-soft:   #3a4460;
}

/* ── Reset & Base ───────────────────────────────────────────── */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body { background:var(--bg); color:var(--text); font-family:'Segoe UI',system-ui,sans-serif; overflow-x:hidden; max-width:100%; }

::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:var(--blue); border-radius:3px; }

/* ── Navbar ─────────────────────────────────────────────────── */
nav { position:fixed; top:0; left:0; width:100%; z-index:1000; padding:22px 0; transition:.4s; }
nav.scrolled {
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  padding:14px 0;
  border-bottom:1px solid rgba(26,110,255,.1);
  box-shadow:0 4px 32px rgba(26,110,255,.08);
}
.nav-brand {
  font-size:2.25rem;
  font-weight:900;
  letter-spacing:3px;
  color:var(--text) !important;
  text-transform:uppercase;
  text-decoration:none;
}
.nav-brand span { color:var(--blue); }
.nav-link {
  color:rgba(13,19,33,.6) !important;
  font-weight:600;
  letter-spacing:1.5px;
  text-transform:uppercase;
  font-size:.95rem;
  margin:0 4px;
  transition:.3s;
  position:relative;
  padding:4px 0;
}
.nav-link::after {
  content:'';
  position:absolute;
  bottom:-2px; left:0;
  width:0; height:1.5px;
  background:var(--blue);
  transition:.3s;
}
.nav-link:hover { color:var(--text) !important; }
.nav-link:hover::after, .nav-link.active::after { width:100%; }
.nav-link.active { color:var(--text) !important; }
.navbar-toggler { border-color:rgba(26,110,255,.3); }
.btn-nav {
  background:var(--blue) !important;
  color:#fff !important;
  border-radius:6px;
  padding:9px 22px !important;
  font-size:.72rem !important;
  letter-spacing:1.5px;
  font-weight:700;
  box-shadow:0 4px 16px rgba(26,110,255,.3);
  transition:.3s !important;
}
.btn-nav:hover { background:var(--blue-dark) !important; box-shadow:0 6px 20px rgba(26,110,255,.45); transform:translateY(-1px); }
.btn-nav::after { display:none; }

/* ── Page Hero (inner pages) ────────────────────────────────── */

.page-hero {
  min-height: 32vh;   /* ← was 52vh, reduce further if needed */
  width: 100%;
  display: flex;
  align-items: flex-end;
  padding-bottom: 48px;  /* ← reduced from 64px to match shorter height */
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}
.page-hero::before {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(5,10,40,.55) 0%, rgba(5,10,40,.88) 100%);
}
.page-hero::after {
  content:'';
  position:absolute; bottom:0; left:0;
  width:100%; height:3px;
  background:linear-gradient(to right, var(--blue), var(--blue-mid), transparent);
}
.page-hero-content { position:relative; z-index:1; }
.page-hero-tag {
  font-size:.65rem;
  letter-spacing:4px;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
  font-weight:600;
  margin-bottom:12px;
  display:flex; align-items:center; gap:10px;
  max-width:100%;
}
.page-hero-tag::before { content:''; width:28px; height:1px; background:rgba(255,255,255,.5); flex-shrink:0; }
.page-hero-title {font-size: clamp(2.4rem, 5.5vw, 4.2rem);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:-1px;
  line-height:1.05;
  color:#fff;
}
.page-hero-title span { color:#7aadff; }
.page-hero-sub {
  color:rgba(255,255,255,.65);
  font-size:.95rem;
  max-width:480px;
  line-height:1.8;
  margin-top:14px;
  font-weight:400;
}

/* ── Breadcrumb ─────────────────────────────────────────────── */
.breadcrumb-bar { background:var(--bg2); padding:12px 0; border-bottom:1px solid var(--border); }
.breadcrumb { margin:0; }
.breadcrumb-item a { color:var(--blue); text-decoration:none; font-size:.75rem; letter-spacing:1px; text-transform:uppercase; font-weight:600; }
.breadcrumb-item.active { color:var(--muted); font-size:.75rem; letter-spacing:1px; text-transform:uppercase; }
.breadcrumb-item+.breadcrumb-item::before { color:var(--muted); }

/* --- Marquee Scroll Bar -------------------------------------- */
.marquee-inner {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
}

/* ── Section Commons ────────────────────────────────────────── */
section { padding:100px 0; overflow:hidden; }
.section-tag {
  font-size:.65rem;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--blue);
  font-weight:700;
  margin-bottom:12px;
}
.section-title {
  font-size:clamp(1.5rem,3vw,2.2rem);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:-0.5px;
  line-height:1.15;
  color:var(--text);
}
.section-title span { color:var(--blue); }
.section-line { width:40px; height:2px; background:linear-gradient(to right,var(--blue),var(--blue-mid)); margin:16px 0 24px; border-radius:2px; }
.section-desc { color:var(--text-soft); font-size:.95rem; line-height:1.8; max-width:500px; }

/* ── Buttons ────────────────────────────────────────────────── */
.btn-primary-custom { background:var(--blue); color:#fff; border:none; padding:14px 36px; font-size:.82rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; border-radius:6px; text-decoration:none; display:inline-flex; align-items:center; gap:10px; transition:.3s; cursor:pointer; box-shadow:0 4px 16px rgba(26,110,255,.3); }
.btn-primary-custom:hover { background:var(--blue-dark); color:#fff; transform:translateY(-2px); box-shadow:0 10px 28px rgba(26,110,255,.4); }
.btn-outline-custom { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.4); padding:14px 36px; font-size:.82rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; border-radius:6px; text-decoration:none; transition:.3s; display:inline-flex; align-items:center; gap:10px; }
.btn-outline-custom:hover { border-color:#fff; color:#fff; background:rgba(255,255,255,.1); }
.btn-outline-dark { background:transparent; color:var(--blue); border:1.5px solid var(--blue); padding:12px 32px; font-size:.82rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; border-radius:6px; text-decoration:none; transition:.3s; display:inline-flex; align-items:center; gap:10px; }
.btn-outline-dark:hover { background:var(--blue); color:#fff; }
.btn-sm-orange { background:var(--blue); color:#fff; border:none; padding:10px 22px; font-size:.75rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; border-radius:6px; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:.3s; }
.btn-sm-orange:hover { background:var(--blue-dark); color:#fff; transform:translateY(-1px); }
.btn-sm-blue { background:var(--blue); color:#fff; border:none; padding:10px 22px; font-size:.75rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; border-radius:6px; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:.3s; cursor:pointer; }
.btn-sm-blue:hover { background:var(--blue-dark); color:#fff; transform:translateY(-1px); }

/* ── Features Strip ─────────────────────────────────────────── */
.features-strip { background:var(--blue); padding:18px 0; overflow:hidden; }
.strip-item { display:flex; align-items:center; gap:10px; font-weight:600; font-size:.78rem; letter-spacing:1.5px; text-transform:uppercase; padding:0 28px; border-right:1px solid rgba(255,255,255,.25); color:#fff; white-space:nowrap; }
.strip-item:last-child { border-right:none; }
.strip-item i { font-size:1rem; opacity:.9; }

/* ── Service Cards ──────────────────────────────────────────── */
.service-card { background:var(--card); border-radius:10px; padding:36px 32px; height:100%; border:1px solid var(--border); transition:.3s; position:relative; overflow:hidden; box-shadow:0 2px 16px rgba(26,110,255,.05); }
.service-card::before { content:''; position:absolute; top:0; left:0; width:100%; height:2px; background:linear-gradient(to right,var(--blue),var(--blue-mid)); transform:scaleX(0); transform-origin:left; transition:.4s; }
.service-card:hover { transform:translateY(-5px); border-color:rgba(26,110,255,.2); box-shadow:0 16px 40px rgba(26,110,255,.12); }
.service-card:hover::before { transform:scaleX(1); }
.service-icon { width:52px; height:52px; background:var(--blue-light); border-radius:8px; display:flex; align-items:center; justify-content:center; margin-bottom:24px; font-size:1.4rem; color:var(--blue); }
.service-title { font-size:1.05rem; font-weight:800; text-transform:uppercase; letter-spacing:1px; margin-bottom:12px; color:var(--text); }
.service-desc { color:var(--text-soft); font-size:.88rem; line-height:1.8; }
.service-link { color:var(--blue); font-size:.75rem; letter-spacing:2px; text-transform:uppercase; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:8px; margin-top:20px; transition:.3s; }
.service-link:hover { gap:12px; color:var(--blue-dark); }

/* ── Stats ──────────────────────────────────────────────────── */
.trail-stat { background:var(--card); border-radius:10px; padding:28px; text-align:center; border:1px solid var(--border); border-top:2px solid var(--blue); box-shadow:0 2px 16px rgba(26,110,255,.06); }
.trail-stat-num { font-size:2.2rem; font-weight:900; color:var(--blue); }
.trail-stat-lbl { font-size:.68rem; letter-spacing:2px; text-transform:uppercase; color:var(--muted); margin-top:4px; font-weight:600; }

/* ── Gallery Grid ───────────────────────────────────────────── */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:280px 280px; gap:10px; }
.gallery-item { overflow:hidden; border-radius:10px; position:relative; cursor:pointer; box-shadow:0 4px 16px rgba(0,0,0,.1); }
.gallery-item:first-child { grid-column:1/2; grid-row:1/3; }
.gallery-item:nth-child(4) { grid-column:3/4; grid-row:1/3; }
.gallery-img { width:100%; height:100%; object-fit:cover; transition:.5s; }
.gallery-item:hover .gallery-img { transform:scale(1.07); }
.gallery-overlay { position:absolute; inset:0; background:linear-gradient(transparent 40%,rgba(5,10,40,.85)); opacity:0; transition:.3s; display:flex; align-items:flex-end; padding:18px; }
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-caption { font-size:.7rem; letter-spacing:2px; text-transform:uppercase; font-weight:700; color:#fff; }

/* ── Ride Cards ─────────────────────────────────────────────── */
.ride-card { background:var(--card); border-radius:10px; overflow:hidden; border:1px solid var(--border); transition:.3s; box-shadow:0 2px 16px rgba(26,110,255,.05); }
.ride-card:hover { transform:translateY(-5px); box-shadow:0 16px 40px rgba(26,110,255,.14); }
.ride-img { width:100%; height:220px; object-fit:cover; transition:.4s; }
.ride-card:hover .ride-img { transform:scale(1.04); }
.ride-img-wrap { overflow:hidden; }
.ride-body { padding:26px; }
.ride-tag { font-size:.62rem; letter-spacing:3px; text-transform:uppercase; color:var(--blue); font-weight:700; margin-bottom:8px; }
.ride-title { font-size:1rem; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--text); }
.ride-desc { color:var(--text-soft); font-size:.85rem; line-height:1.7; margin-top:8px; }

/* ── Testimonials ───────────────────────────────────────────── */
.testi-card { background:var(--card); border-radius:10px; padding:32px; border:1px solid var(--border); position:relative; box-shadow:0 2px 16px rgba(26,110,255,.05); }
.testi-card::before { content:'\201C'; font-size:5rem; color:var(--blue); opacity:.1; position:absolute; top:-8px; left:18px; font-family:Georgia,serif; line-height:1; }
.testi-text { color:var(--text-soft); font-size:.9rem; line-height:1.85; font-style:italic; position:relative; z-index:1; }
.testi-author { margin-top:20px; display:flex; align-items:center; gap:12px; }
.testi-avatar { width:40px; height:40px; border-radius:50%; background:var(--blue); display:flex; align-items:center; justify-content:center; font-weight:900; font-size:1rem; color:#fff; flex-shrink:0; }
.testi-name { font-weight:800; font-size:.85rem; text-transform:uppercase; letter-spacing:1px; color:var(--text); }
.stars { color:var(--blue); font-size:.78rem; margin-top:2px; }

/* ── About ──────────────────────────────────────────────────── */
.about-img { width:100%; height:260px; object-fit:cover; border-radius:10px; box-shadow:0 20px 60px rgba(26,110,255,.14); }
.about-img-wrap { position:relative; }
.about-badge { position:absolute; bottom:-20px; right:-20px; background:var(--blue); color:#fff; padding:22px 26px; border-radius:10px; text-align:center; box-shadow:0 10px 30px rgba(26,110,255,.4); }
.about-badge .num { font-size:2.4rem; font-weight:900; line-height:1; }
.about-badge .lbl { font-size:.62rem; letter-spacing:2px; text-transform:uppercase; opacity:.9; }
.crew-card { background:var(--bg2); border-radius:8px; padding:18px 22px; flex:1; border-left:2px solid var(--blue); }
.crew-name { font-weight:800; font-size:.95rem; color:var(--text); }
.crew-role { font-size:.7rem; color:var(--blue); letter-spacing:2px; text-transform:uppercase; margin-top:3px; }

/* ── CTA Banner ─────────────────────────────────────────────── */
.cta-banner { padding:100px 0; text-align:center; position:relative; background-size:cover; background-position:center; overflow:hidden; width:100%; }
.cta-banner::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(5,10,40,.92),rgba(26,110,255,.28)); }
.cta-content { position:relative; z-index:1; }
.cta-title { font-size:clamp(1.6rem,3.5vw,2.8rem); font-weight:800; text-transform:uppercase; letter-spacing:-0.5px; color:#fff; }
.cta-title span { color:#7aadff; }
.cta-sub { color:rgba(255,255,255,.72); font-size:1rem; max-width:560px; margin:16px auto 36px; line-height:1.8; }

/* ── Contact ────────────────────────────────────────────────── */
.contact-form input, .contact-form textarea, .contact-form select { background:var(--bg2); border:1px solid var(--border); color:var(--text); border-radius:6px; padding:14px 18px; width:100%; font-size:.9rem; transition:.3s; outline:none; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(26,110,255,.1); }
.contact-form textarea { height:160px; resize:none; }
.contact-form ::placeholder { color:var(--muted); }
.contact-info-item { display:flex; align-items:flex-start; gap:16px; margin-bottom:28px; }
.contact-icon { width:46px; height:46px; background:var(--blue-light); border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--blue); font-size:1rem; flex-shrink:0; }
.contact-label { font-size:.68rem; letter-spacing:2px; text-transform:uppercase; color:var(--muted); font-weight:600; }
.contact-val { font-weight:600; margin-top:4px; color:var(--text); font-size:.95rem; }
.btn-submit { background:var(--blue); color:#fff; border:none; padding:14px 36px; font-size:.85rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; border-radius:6px; width:100%; transition:.3s; cursor:pointer; box-shadow:0 4px 16px rgba(26,110,255,.25); }
.btn-submit:hover { background:var(--blue-dark); transform:translateY(-2px); box-shadow:0 10px 28px rgba(26,110,255,.38); }

/* ── Store ──────────────────────────────────────────────────── */
.product-card { background:var(--card); border-radius:10px; overflow:hidden; border:1px solid var(--border); transition:.3s; box-shadow:0 2px 16px rgba(26,110,255,.05); }
.product-card:hover { transform:translateY(-5px); box-shadow:0 16px 40px rgba(26,110,255,.13); border-color:rgba(26,110,255,.2); }
.product-img-wrap { overflow:hidden; position:relative; }
.product-img { width:100%; height:260px; object-fit:cover; transition:.5s; }
.product-card:hover .product-img { transform:scale(1.05); }
.product-badge { position:absolute; top:12px; left:12px; background:var(--blue); color:#fff; font-size:.62rem; letter-spacing:2px; text-transform:uppercase; font-weight:700; padding:4px 12px; border-radius:20px; }
.product-body { padding:22px; }
.product-category { font-size:.62rem; letter-spacing:3px; text-transform:uppercase; color:var(--blue); font-weight:700; margin-bottom:6px; }
.product-name { font-size:.95rem; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--text); }
.product-price { font-size:1.2rem; font-weight:900; color:var(--blue-dark); margin-top:8px; }
.product-price .old-price { font-size:.82rem; color:var(--muted); text-decoration:line-through; margin-left:8px; font-weight:400; }
.filter-btn { background:var(--card); color:var(--text-soft); border:1px solid var(--border); padding:8px 20px; font-size:.72rem; letter-spacing:1.5px; text-transform:uppercase; font-weight:700; border-radius:6px; cursor:pointer; transition:.3s; }
.filter-btn:hover, .filter-btn.active { background:var(--blue); color:#fff; border-color:var(--blue); }

/* ── Rides Page ─────────────────────────────────────────────── */
.ride-detail-card { background:var(--card); border-radius:10px; overflow:hidden; border:1px solid var(--border); transition:.3s; box-shadow:0 2px 16px rgba(26,110,255,.05); }
.ride-detail-card:hover { border-color:rgba(26,110,255,.22); box-shadow:0 16px 40px rgba(26,110,255,.12); }
.ride-detail-img { width:100%; height:300px; object-fit:cover; transition:.5s; }
.ride-detail-card:hover .ride-detail-img { transform:scale(1.04); }
.ride-detail-img-wrap { overflow:hidden; position:relative; }
.ride-difficulty { position:absolute; top:14px; right:14px; padding:5px 12px; border-radius:20px; font-size:.62rem; letter-spacing:2px; text-transform:uppercase; font-weight:700; }
.diff-easy { background:#2ecc71; color:#fff; }
.diff-medium { background:#f39c12; color:#fff; }
.diff-hard { background:#e74c3c; color:#fff; }
.ride-detail-body { padding:30px; }
.ride-meta { display:flex; gap:20px; flex-wrap:wrap; margin:14px 0; }
.ride-meta-item { display:flex; align-items:center; gap:8px; font-size:.78rem; color:var(--text-soft); }
.ride-meta-item i { color:var(--blue); }

/* ── Community Page ─────────────────────────────────────────── */
.community-card { background:var(--card); border-radius:10px; padding:30px; border:1px solid var(--border); transition:.3s; box-shadow:0 2px 16px rgba(26,110,255,.05); }
.community-card:hover { border-color:rgba(26,110,255,.2); transform:translateY(-4px); box-shadow:0 14px 36px rgba(26,110,255,.1); }
.member-card { background:var(--card); border-radius:10px; padding:26px; border:1px solid var(--border); transition:.3s; box-shadow:0 2px 16px rgba(26,110,255,.05); }
.member-card:hover { border-color:rgba(26,110,255,.2); transform:translateY(-4px); box-shadow:0 14px 36px rgba(26,110,255,.1); }
.member-avatar { width:52px; height:52px; border-radius:50%; background:var(--blue); display:flex; align-items:center; justify-content:center; font-weight:900; font-size:1.2rem; color:#fff; }
.member-name { font-weight:800; font-size:.95rem; text-transform:uppercase; letter-spacing:1px; color:var(--text); }
.member-role { font-size:.68rem; letter-spacing:2px; text-transform:uppercase; color:var(--blue); margin-top:3px; }
.event-card { background:var(--card); border-radius:10px; padding:22px 26px; border:1px solid var(--border); border-left:3px solid var(--blue); transition:.3s; display:flex; gap:18px; align-items:center; box-shadow:0 2px 14px rgba(26,110,255,.05); overflow:hidden; width:100%; }
.event-card:hover { background:rgba(26,110,255,.03); box-shadow:0 8px 28px rgba(26,110,255,.1); }
.event-date-box { background:var(--blue); border-radius:8px; padding:12px 14px; text-align:center; flex-shrink:0; min-width:58px; color:#fff; }
.event-day { font-size:1.6rem; font-weight:900; line-height:1; }
.event-month { font-size:.58rem; letter-spacing:2px; text-transform:uppercase; opacity:.9; }
.event-title { font-size:.95rem; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--text); }
.event-detail { font-size:.78rem; color:var(--text-soft); margin-top:5px; }

/* ── Newsletter Section ─────────────────────────────────────── */
#newsletter { background:linear-gradient(135deg,#050e2a 0%,#0a1535 60%,#061028 100%); padding:100px 0; position:relative; overflow:hidden; }
#newsletter::before { content:''; position:absolute; top:-200px; right:-200px; width:600px; height:600px; background:radial-gradient(circle,rgba(26,110,255,.15) 0%,transparent 70%); pointer-events:none; }
#newsletter::after { content:''; position:absolute; bottom:-150px; left:-150px; width:400px; height:400px; background:radial-gradient(circle,rgba(77,143,255,.1) 0%,transparent 70%); pointer-events:none; }

.nl-tag { font-size:.65rem; letter-spacing:4px; text-transform:uppercase; color:var(--blue-mid); font-weight:700; margin-bottom:14px; }
.nl-title { font-size:clamp(1.6rem,3vw,2.4rem); font-weight:800; text-transform:uppercase; letter-spacing:-0.5px; line-height:1.15; color:#fff; }
.nl-title span { color:#7aadff; }
.nl-desc { color:rgba(255,255,255,.65); font-size:.95rem; line-height:1.8; margin-top:14px; max-width:460px; }

/* ── Plan Cards ─────────────────────────────────────────────── */
.plan-wrap { display:flex; flex-direction:column; gap:14px; }
.plan-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:22px 26px; cursor:pointer; transition:.3s; position:relative; display:flex; align-items:center; gap:18px; width:100%; }
.plan-card:hover { background:rgba(26,110,255,.12); border-color:rgba(26,110,255,.4); }
.plan-card.selected { background:rgba(26,110,255,.15); border-color:var(--blue); box-shadow:0 0 0 2px rgba(26,110,255,.2); }
.plan-card.featured { border-color:rgba(26,110,255,.45); background:rgba(26,110,255,.1); }
.plan-badge { position:absolute; top:-10px; left:22px; background:var(--blue); color:#fff; font-size:.58rem; letter-spacing:2px; text-transform:uppercase; font-weight:700; padding:3px 12px; border-radius:20px; }
.plan-radio { width:18px; height:18px; border-radius:50%; border:1.5px solid rgba(255,255,255,.35); flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:.3s; }
.plan-card.selected .plan-radio { border-color:var(--blue); background:var(--blue); }
.plan-radio::after { content:''; width:7px; height:7px; border-radius:50%; background:#fff; opacity:0; transition:.2s; }
.plan-card.selected .plan-radio::after { opacity:1; }
.plan-info { flex:1; min-width:0; }
.plan-name { font-weight:800; font-size:.9rem; text-transform:uppercase; letter-spacing:1px; color:#fff; }
.plan-detail { font-size:.78rem; color:rgba(255,255,255,.5); margin-top:3px; }
.plan-price { text-align:right; flex-shrink:0; }
.plan-amount { font-size:1.4rem; font-weight:900; color:#fff; line-height:1; }
.plan-period { font-size:.65rem; color:rgba(255,255,255,.45); text-transform:uppercase; letter-spacing:1px; }
.plan-save { font-size:.62rem; color:#7aadff; font-weight:700; letter-spacing:1px; text-transform:uppercase; margin-top:2px; }

/* ── Gift Box ───────────────────────────────────────────────── */
.gift-reveal { background:rgba(255,255,255,.04); border:1px dashed rgba(26,110,255,.45); border-radius:10px; padding:22px 26px; margin-top:8px; text-align:center; cursor:pointer; transition:.3s; }
.gift-reveal:hover { background:rgba(26,110,255,.08); border-color:var(--blue); }
.gift-icon { font-size:2.2rem; animation:float 2.5s ease-in-out infinite; }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.gift-tease { font-size:.75rem; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.65); margin-top:10px; font-weight:600; }
.gift-hint { font-size:.72rem; color:rgba(255,255,255,.38); margin-top:4px; }

/* ── Gift Modal ─────────────────────────────────────────────── */
.gift-modal-backdrop { position:fixed; inset:0; top:0; left:0; width:100%; height:100%; background:rgba(5,10,30,.88); backdrop-filter:blur(10px); z-index:2000; display:flex !important; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:.3s; }
.gift-modal-backdrop.show { opacity:1; pointer-events:all; }
.gift-modal { background:linear-gradient(135deg,#060f28,#0a1535); border:1px solid rgba(26,110,255,.3); border-radius:16px; padding:44px 38px; max-width:500px; width:90%; text-align:center; position:relative; transform:scale(.92) translateY(16px); transition:.35s; box-shadow:0 40px 100px rgba(0,0,0,.6),0 0 60px rgba(26,110,255,.12); }
.gift-modal-backdrop.show .gift-modal { transform:scale(1) translateY(0); }
.gift-modal-actions { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:20px; flex-wrap:wrap; }
.gift-modal-actions .btn-subscribe { flex:0 0 auto; width:auto; }
.btn-modal-close-inline { background:transparent; border:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.45); padding:16px 22px; font-size:.75rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; border-radius:6px; cursor:pointer; transition:.3s; white-space:nowrap; flex:0 0 auto; }
.btn-modal-close-inline:hover { border-color:rgba(255,255,255,.35); color:rgba(255,255,255,.75); }
.gift-modal-close { position:absolute; top:14px; right:18px; background:none; border:none; color:rgba(255,255,255,.38); font-size:1.1rem; cursor:pointer; transition:.3s; }
.gift-modal-close:hover { color:#fff; }
.gift-modal-icon { font-size:3.6rem; animation:float 2.5s ease-in-out infinite; display:block; margin-bottom:14px; }
.gift-modal-title { font-size:1.4rem; font-weight:800; text-transform:uppercase; letter-spacing:-0.5px; color:#fff; margin-bottom:8px; }
.gift-modal-title span { color:#7aadff; }
.gift-modal-sub { color:rgba(255,255,255,.58); font-size:.9rem; line-height:1.7; margin-bottom:24px; }
.gift-item { background:rgba(26,110,255,.1); border:1px solid rgba(26,110,255,.22); border-radius:8px; padding:14px 18px; display:flex; align-items:center; gap:12px; margin-bottom:10px; text-align:left; }
.gift-item-icon { width:38px; height:38px; background:rgba(26,110,255,.2); border-radius:6px; display:flex; align-items:center; justify-content:center; color:#7aadff; font-size:1rem; flex-shrink:0; }
.gift-item-name { font-weight:700; font-size:.88rem; color:#fff; }
.gift-item-desc { font-size:.75rem; color:rgba(255,255,255,.48); margin-top:2px; }
.confetti-line { display:flex; justify-content:center; gap:6px; font-size:1.1rem; margin-bottom:18px; }

/* ── Subscribe Form ─────────────────────────────────────────── */
.sub-form-wrap { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:30px; }
.sub-label { font-size:.68rem; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.55); margin-bottom:8px; display:block; font-weight:600; }
.sub-input { background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); color:#fff; border-radius:6px; padding:12px 16px; width:100%; font-size:.88rem; outline:none; transition:.3s; }
.sub-input:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(26,110,255,.14); }
.sub-input::placeholder { color:rgba(255,255,255,.3); }
.sub-total { display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); margin:18px 0; }
.sub-total-label { font-size:.72rem; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.55); font-weight:600; }
.sub-total-amount { font-size:1.5rem; font-weight:900; color:#fff; }
.sub-total-period { font-size:.72rem; color:rgba(255,255,255,.4); margin-left:4px; }
.btn-subscribe { background:var(--blue); color:#fff; border:none; padding:16px 36px; font-size:.88rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; border-radius:6px; width:100%; transition:.3s; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:10px; box-shadow:0 4px 16px rgba(26,110,255,.3); }
.btn-subscribe:hover { background:var(--blue-dark); transform:translateY(-2px); box-shadow:0 10px 28px rgba(26,110,255,.45); }
.sub-guarantee { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:12px; font-size:.72rem; color:rgba(255,255,255,.38); }

/* ── Subscribe Success State ────────────────────────────────── */
.sub-success { display:none; text-align:center; padding:20px 0; }
.sub-success-icon { font-size:2.8rem; margin-bottom:14px; animation:pop .5s ease; }
@keyframes pop { 0%{transform:scale(0)} 70%{transform:scale(1.2)} 100%{transform:scale(1)} }
.sub-success-title { font-size:1.3rem; font-weight:800; text-transform:uppercase; color:#fff; letter-spacing:-0.5px; }
.sub-success-sub { color:rgba(255,255,255,.55); font-size:.88rem; margin-top:8px; line-height:1.7; }

/* ── Newsletter Perks ───────────────────────────────────────── */
.perk-item { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; }
.perk-icon { width:32px; height:32px; background:rgba(26,110,255,.18); border-radius:6px; display:flex; align-items:center; justify-content:center; color:#7aadff; font-size:.85rem; flex-shrink:0; margin-top:2px; }
.perk-title { font-weight:700; font-size:.88rem; color:#fff; }
.perk-desc { font-size:.78rem; color:rgba(255,255,255,.5); margin-top:2px; line-height:1.5; }

/* ── Hero (home only) ───────────────────────────────────────── */
#hero {
  min-height:100vh;
  background:linear-gradient(135deg,rgba(5,10,30,.9) 0%,rgba(10,20,60,.75) 50%,rgba(26,110,255,.22) 100%),
    url('../images/IMG_9072-scaled.jpg') center/cover no-repeat;
  display:flex; align-items:center; position:relative; overflow:hidden;
}
#hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 65% 50%,rgba(26,110,255,.2) 0%,transparent 65%); }
.hero-tag { font-size:.7rem; letter-spacing:4px; text-transform:uppercase; color:rgba(255,255,255,.55); font-weight:600; margin-bottom:18px; display:flex; align-items:center; gap:10px; }
.hero-tag::before { content:''; width:28px; height:1px; background:rgba(255,255,255,.45); flex-shrink:0; }
.hero-title { font-size:clamp(2.8rem,7vw,6rem); font-weight:900; line-height:1; text-transform:uppercase; letter-spacing:-2px; }
.hero-title .highlight { -webkit-text-stroke:2px #5599ff; color:transparent; }
.hero-title .solid { color:#fff; }
.hero-sub { font-size:1rem; color:rgba(255,255,255,.7); max-width:460px; line-height:1.8; margin:22px 0 36px; }
.hero-stats { display:flex; gap:44px; margin-top:56px; padding-top:36px; border-top:1px solid rgba(255,255,255,.12); flex-wrap:wrap; }
.stat-num { font-size:2rem; font-weight:900; color:#7aadff; }
.stat-lbl { font-size:.65rem; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.45); margin-top:2px; }
.hero-scroll { position:absolute; bottom:36px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; }
.hero-scroll span { font-size:.6rem; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,.38); }
.scroll-line { width:1px; height:46px; background:linear-gradient(#5599ff,transparent); animation:scrollDown 1.5s infinite; }
@keyframes scrollDown { 0%{opacity:0;transform:scaleY(0);transform-origin:top} 50%{opacity:1} 100%{opacity:0;transform:scaleY(1);transform-origin:top} }

/* ── Footer ─────────────────────────────────────────────────── */
footer { background:#060e24; padding:60px 0 30px; border-top:1px solid rgba(26,110,255,.14); overflow:hidden; }
.footer-brand { font-size:1.5rem; font-weight:900; letter-spacing:3px; text-transform:uppercase; color:#fff; }
.footer-brand span { color:#7aadff; }
.footer-desc { color:rgba(255,255,255,.42); font-size:.85rem; line-height:1.8; margin-top:12px; max-width:300px; }
.footer-title { font-size:.68rem; letter-spacing:3px; text-transform:uppercase; color:#7aadff; font-weight:700; margin-bottom:18px; }
.footer-link { display:block; color:rgba(255,255,255,.4); font-size:.85rem; text-decoration:none; margin-bottom:9px; transition:.3s; }
.footer-link:hover { color:#fff; padding-left:5px; }
.footer-social { display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
.social-btn { width:38px; height:38px; background:rgba(255,255,255,.07); border-radius:6px; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.5); font-size:.9rem; text-decoration:none; transition:.3s; }
.social-btn:hover { background:var(--blue); color:#fff; transform:translateY(-2px); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.07); padding-top:22px; margin-top:38px; color:rgba(255,255,255,.28); font-size:.78rem; }

/* ── Animations ─────────────────────────────────────────────── */
.fade-up { opacity:0; transform:translateY(36px); transition:opacity .7s ease, transform .7s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }
.delay-1 { transition-delay:.1s; }
.delay-2 { transition-delay:.2s; }
.delay-3 { transition-delay:.3s; }
.delay-4 { transition-delay:.4s; }

/* ── Responsive ─────────────────────────────────────────────── */
@media(max-width:768px) {
  .hero-stats { gap:22px; }
  .about-badge { right:0; bottom:-10px; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .gallery-item:first-child, .gallery-item:nth-child(4) { grid-column:auto; grid-row:auto; }
  .hero-title { font-size:2.8rem; }
  .strip-item { font-size:.7rem; padding:0 14px; }
  .event-card { flex-direction:column; gap:14px; align-items:flex-start; }
  .plan-card { flex-wrap:wrap; }
  .sub-form-wrap { padding:22px; }
  .gift-modal { padding:28px 20px; }
  .about-badge { position:static; margin-top:20px; display:inline-block; }
}