/* =========================================
   FLY KITE STATION — Styles
   ========================================= */

:root {
  --bg:   #030c1e;
  --bg2:  #071228;
  --card: rgba(255,255,255,.08);
  --bdr:  rgba(255,255,255,.14);
  --nv:   #f2f2f2;
  --muted: rgba(255,255,255,.62);
  --y:    #ffd000;
  --o:    #ff6b00;
  --r:    #e63946;
  --w:    #fff;
  --g1:   linear-gradient(135deg,#ffd000,#ff6b00,#e63946);
  --g2:   linear-gradient(135deg,#e63946,#ff6b00,#ffd000);
  /* System font stack — no external dependencies */
  --f:    system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Arial,sans-serif;
  --nh:   68px;
  --px:   clamp(18px,5vw,80px);
  --r1:   20px;
  --r2:   14px;
  --r3:   10px;
}

/* RESET */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box }
html { scroll-behavior:smooth; scroll-padding-top:var(--nh); -webkit-text-size-adjust:100%; overflow-x:hidden }
body {
  font-family: var(--f);
  background: var(--bg);
  color: var(--nv);
  overflow-x: hidden; /* оба нужны для корректной работы на iOS */
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.lock { overflow:hidden }
img { max-width:100%; display:block; height:auto }
a { color:inherit; text-decoration:none }
button { font-family:inherit; cursor:pointer; border:none; background:none; touch-action:manipulation }
ul { list-style:none }
::selection { background:var(--o); color:var(--bg) }
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important }
}

/* =========================================
   NAV
   ========================================= */
.nav {
  position: fixed; top:0; left:0; right:0;
  height: var(--nh);
  z-index: 200;
  display: flex; align-items:center; justify-content:space-between;
  padding: 0 var(--px);
  /* Всегда тёмный фон — лого и текст видны на iOS Chrome */
  background: rgba(3,12,30,.88);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  transition: background .35s;
}
.nav.on {
  background: rgba(3,12,30,.97);
  border-bottom: 1px solid var(--bdr);
}
.logo { display:flex; align-items:center; gap:10px }
.logo img { height:42px; width:auto; filter:drop-shadow(0 0 8px rgba(255,107,0,.3)) }
.logo-img { height:44px; width:auto; }
.logo-txt {
  font-size:.6rem; font-weight:800; line-height:1.2; letter-spacing:.06em;
  background:var(--g1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.nlinks { display:flex; align-items:center; gap:clamp(10px,2vw,22px) }
.nlinks a {
  font-size:.75rem; font-weight:500; color:var(--muted);
  transition:color .25s; letter-spacing:.01em; padding:4px 0;
}
.nlinks a:hover { color:var(--w) }
.lsw {
  display:flex; background:rgba(255,255,255,.07); border-radius:20px;
  padding:3px; margin-left:6px; border:1px solid var(--bdr);
}
.lsw button {
  padding:4px 12px; border-radius:17px; font-size:.65rem;
  font-weight:700; letter-spacing:.04em; color:var(--muted); transition:all .25s;
  min-width:36px; min-height:28px;
}
.lsw button.on { background:var(--g1); color:var(--bg) }
/* Burger */
.burg {
  display:none; position:fixed; top:13px; right:15px; z-index:500;
  width:44px; height:44px; align-items:center; justify-content:center;
  flex-direction:column; gap:5px;
  background:rgba(3,12,30,.6); border-radius:10px;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid var(--bdr);
}
.burg s { display:block; width:20px; height:2px; background:var(--w); border-radius:2px; transition:all .3s; text-decoration:none }
.burg.on s:nth-child(1) { transform:rotate(45deg) translate(5px,5px) }
.burg.on s:nth-child(2) { opacity:0 }
.burg.on s:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px) }
/* Mobile menu */
.mmenu {
  position:fixed; inset:0; background:rgba(3,12,30,.97); z-index:400;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px;
  opacity:0; pointer-events:none; transition:opacity .35s;
}
.mmenu.on { opacity:1; pointer-events:auto }
.mmenu a {
  font-size:1.3rem; font-weight:700; color:var(--muted);
  transition:color .25s; padding:8px 24px; min-height:44px; display:flex; align-items:center;
}
.mmenu a:active { color:var(--o) }
@media (max-width:860px) { .nlinks{display:none} .burg{display:flex} }

/* =========================================
   HERO
   ========================================= */
.hero {
  position:relative; min-height:100vh; min-height:100dvh;
  display:flex; align-items:center; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0;
  background:linear-gradient(150deg,#1a0800,#030c1e 45%,#050e22);
}
.hero-img {
  position:absolute; inset:0;
  background-image: url('../images/parach.jpg');
  background-size:cover; background-position:center;
  opacity:.3; will-change:transform;
}
.hero-bg::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to bottom,rgba(3,12,30,.2) 0%,var(--bg) 100%);
}
.glow-a {
  position:absolute; top:-60px; right:12%; width:480px; height:480px;
  background:radial-gradient(circle,rgba(255,107,0,.14),transparent 65%);
  filter:blur(55px); pointer-events:none;
}
.glow-b {
  position:absolute; bottom:8%; left:-4%; width:380px; height:380px;
  background:radial-gradient(circle,rgba(230,57,70,.09),transparent 65%);
  filter:blur(55px); pointer-events:none;
}
.hc {
  position:relative; z-index:2;
  padding: calc(var(--nh) + 60px) var(--px) 80px;
  max-width:820px;
}
.hbadge {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(255,107,0,.1); border:1px solid rgba(255,107,0,.28);
  color:var(--o); font-size:.62rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  padding:8px 18px; border-radius:30px; margin-bottom:26px;
  animation:fadeUp .7s .2s both;
}
.hbadge svg { width:13px; height:13px; fill:var(--o) }
.hc h1 {
  font-size:clamp(2.6rem,7.5vw,5.4rem); line-height:.92;
  font-weight:800; letter-spacing:-.02em;
  margin-bottom:22px; animation:fadeUp .7s .4s both;
}
.hc h1 .gr {
  background:var(--g1); -webkit-background-clip:text;
  -webkit-text-fill-color:transparent; background-clip:text;
}
.hc > p {
  font-size:clamp(.9rem,1.4vw,1.05rem); color:var(--muted);
  max-width:520px; margin-bottom:36px; animation:fadeUp .7s .6s both;
}
.hbtns { display:flex; gap:14px; flex-wrap:wrap; animation:fadeUp .7s .8s both }
.btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--g1); color:var(--bg);
  font-weight:700; font-size:.8rem; letter-spacing:.01em;
  padding:15px 32px; border-radius:60px; min-height:50px;
  transition:transform .3s, box-shadow .3s;
  box-shadow:0 0 28px rgba(255,107,0,.22);
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 0 40px rgba(255,107,0,.38) }
.btn-ghost {
  display:inline-flex; align-items:center; gap:8px;
  color:var(--w); font-weight:600; font-size:.8rem;
  padding:15px 32px; border-radius:60px; min-height:50px;
  border:1px solid rgba(255,255,255,.18); transition:border-color .3s, color .3s;
}
.btn-ghost:hover { border-color:var(--o); color:var(--o) }
.hscr {
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
  z-index:2; display:flex; flex-direction:column; align-items:center; gap:6px;
  animation:fadeUp 1s 1.2s both;
}
.hscr em {
  font-size:.55rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--muted); font-style:normal; font-weight:600;
}
.hscr span {
  display:block; width:1px; height:30px;
  background:linear-gradient(to bottom,var(--o),transparent);
  animation:scrollLine 1.6s ease infinite;
}
@keyframes scrollLine {
  0%   { transform:scaleY(0); transform-origin:top }
  50%  { transform:scaleY(1); transform-origin:top }
  51%  { transform-origin:bottom }
  100% { transform:scaleY(0); transform-origin:bottom }
}
@keyframes fadeUp {
  from { opacity:0; transform:translateY(20px) }
  to   { opacity:1; transform:translateY(0) }
}
@media (max-width:480px) {
  .hbtns { flex-direction:column }
  .btn-primary,.btn-ghost { width:100%; justify-content:center }
  .hscr { display:none }
}

/* =========================================
   TRUST TICKER
   ========================================= */
.trust {
  background:var(--bg2);
  border-top:1px solid var(--bdr); border-bottom:1px solid var(--bdr);
  overflow:hidden;
}
.trust-track {
  display:flex; width:max-content;
  animation:ticker 70s linear infinite;
  /* will-change убран — вызывает GPU-рывки на iOS */
  transform:translateZ(0);
}
.trust-track:hover { animation-play-state:paused }
/* На iOS/mobile анимация может дёргаться — чуть медленнее */
@media (max-width:768px) {
  .trust-track { animation-duration:90s }
  .trust { display:none }
}
.trust-item {
  display:flex; align-items:center; gap:12px;
  padding:20px 40px; white-space:nowrap;
}
.trust-item::after { content:'◆'; color:var(--r); font-size:.38rem; margin-left:26px }
.ti-num {
  font-size:1.3rem; font-weight:800;
  background:var(--g1); -webkit-background-clip:text;
  -webkit-text-fill-color:transparent; background-clip:text;
}
.ti-lbl { font-size:.76rem; color:var(--muted); font-weight:500 }
@keyframes ticker { from { transform:translateX(0) } to { transform:translateX(-50%) } }

/* =========================================
   SECTIONS — shared
   ========================================= */
.sec { padding:clamp(64px,10vw,112px) var(--px); position:relative; overflow:hidden }
.rv { opacity:0; transform:translateY(24px); transition:opacity .65s, transform .65s }
.rv.show { opacity:1; transform:none }
.label {
  font-size:.58rem; font-weight:700; letter-spacing:.22em;
  text-transform:uppercase; color:var(--o); margin-bottom:10px;
}
.title {
  font-size:clamp(1.8rem,4.5vw,3.1rem); line-height:1.04;
  font-weight:800; letter-spacing:-.02em; margin-bottom:16px;
}
.sub {
  font-size:clamp(.86rem,1.2vw,.95rem);
  color:var(--muted); max-width:520px; line-height:1.7; margin-bottom:36px;
}
.card {
  background:var(--card); border:1px solid var(--bdr);
  border-radius:var(--r1); transition:transform .35s, border-color .35s, box-shadow .35s;
}
.card:hover { transform:translateY(-4px); border-color:rgba(255,107,0,.25); box-shadow:0 8px 32px rgba(255,107,0,.07) }

/* =========================================
   PARALLAX DIVIDERS
   ========================================= */
.pdiv { position:relative; height:clamp(200px,28vw,340px); overflow:hidden }
.pdiv-img {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
}
.pd1 { background-image:url('../images/parach.jpg') }
.pd2 { background-image:url('../images/yach-two.jpg') }
.pdiv-ov {
  position:absolute; inset:0; background:rgba(3,12,30,.56);
  display:flex; align-items:center; justify-content:center;
  text-align:center; padding:0 var(--px);
}
.pdiv-ov p {
  font-size:clamp(1.2rem,3vw,2.1rem); font-weight:800;
  letter-spacing:-.015em; max-width:620px;
}
.pdiv-ov p .gr {
  background:var(--g1); -webkit-background-clip:text;
  -webkit-text-fill-color:transparent; background-clip:text;
}

/* =========================================
   ABOUT
   ========================================= */
.about { background:var(--bg2) }
.about-wrap {
  display:grid; grid-template-columns:1fr 1fr;
  gap:52px; align-items:center;
}
.about-photo {
  position:relative; border-radius:var(--r1);
  overflow:hidden; aspect-ratio:3/4;
  background:#0a1530;
}
.about-photo .ph {
  position:absolute; inset:0;
  background-image:url('../images/beach.jpg');
  background-size:cover; background-position:center;
  transition:transform .5s;
}
.about-photo:hover .ph { transform:scale(1.04) }
.acard {
  position:absolute; bottom:16px; left:16px; right:16px;
  background:rgba(3,12,30,.86);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border:1px solid var(--bdr); border-radius:var(--r2);
  padding:14px 18px; display:flex; align-items:center; gap:12px;
}
.acard-icon {
  width:40px; height:40px; border-radius:50%; background:var(--g1);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.acard-icon svg { width:18px; height:18px; stroke:var(--bg); fill:none; stroke-width:2.5 }
.acard b { font-size:.74rem; font-weight:700; display:block }
.acard small { font-size:.65rem; color:var(--muted) }
.afeats { display:flex; flex-direction:column; gap:24px; margin-top:12px }
.afeat { display:flex; gap:16px }
.afeat .num {
  font-size:1.05rem; font-weight:800; min-width:32px; padding-top:2px;
  background:var(--g1); -webkit-background-clip:text;
  -webkit-text-fill-color:transparent; background-clip:text;
}
.afeat h3 { font-size:.88rem; font-weight:700; margin-bottom:4px; letter-spacing:-.01em }
.afeat p { font-size:.8rem; color:var(--muted); line-height:1.6 }
@media (max-width:760px) { .about-wrap { grid-template-columns:1fr; gap:28px } }

/* =========================================
   PROGRAMS
   ========================================= */
.programs { background:var(--bg) }
.pgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px }
.pcard {
  background:var(--card); border:1px solid var(--bdr);
  border-radius:var(--r1); padding:28px 22px;
  position:relative; overflow:hidden;
  transition:transform .35s, border-color .35s, box-shadow .35s;
}
.pcard::before {
  content:''; position:absolute; top:0; left:0; right:0;
  height:3px; background:var(--g1); opacity:0; transition:opacity .35s;
}
.pcard:hover { transform:translateY(-4px); border-color:rgba(255,107,0,.25); box-shadow:0 8px 30px rgba(255,107,0,.07) }
.pcard:hover::before { opacity:1 }
.pcard.hot { background:linear-gradient(160deg,rgba(255,107,0,.1),rgba(230,57,70,.07)); border-color:rgba(255,107,0,.25) }
.pcard.hot::before { opacity:1; background:var(--g2) }
.pbadge {
  display:inline-block; font-size:.54rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  padding:5px 14px; border-radius:20px; margin-bottom:14px;
  background:rgba(255,255,255,.08); color:var(--o); border:1px solid rgba(255,107,0,.22);
}
.pcard.hot .pbadge { background:var(--r); color:var(--w); border-color:transparent }
.pname { font-size:.95rem; font-weight:700; margin-bottom:4px; letter-spacing:-.01em }
.pdesc { font-size:.76rem; color:var(--muted); margin-bottom:14px }
.pprice {
  font-size:1.9rem; font-weight:800; margin-bottom:4px;
  background:var(--g1); -webkit-background-clip:text;
  -webkit-text-fill-color:transparent; background-clip:text;
}
.pprice small { font-size:.63rem; -webkit-text-fill-color:var(--muted); font-weight:400 }
.pfeats { margin:14px 0 18px }
.pfeats li {
  font-size:.76rem; color:var(--muted); padding:5px 0;
  display:flex; align-items:center; gap:8px;
}
.pfeats li::before {
  content:''; width:14px; height:14px; flex-shrink:0; border-radius:50%;
  background:rgba(255,107,0,.12) url("data:image/svg+xml,%3Csvg viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 7.5l2 2 5-5' stroke='%23ff6b00' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center;
}
.pbtn {
  display:block; text-align:center; padding:12px;
  border-radius:var(--r3); font-weight:700; font-size:.74rem;
  background:rgba(255,255,255,.08); color:var(--w);
  border:1px solid var(--bdr); transition:all .3s; min-height:44px;
}
.pbtn:hover { background:var(--o); color:var(--bg); border-color:var(--o) }
.pcard.hot .pbtn { background:var(--g1); color:var(--bg); border-color:transparent }
@media (max-width:760px) { .pgrid { grid-template-columns:1fr } }
.discount {
  margin-top:22px; background:var(--g1); border-radius:var(--r1);
  padding:28px 30px; display:flex; align-items:center;
  justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.discount h3 { font-size:clamp(1.1rem,2.5vw,1.6rem); font-weight:800; color:var(--bg); letter-spacing:-.01em }
.discount p { font-size:.82rem; color:rgba(0,0,0,.5); margin-top:4px }
.btn-disc {
  background:var(--bg); color:var(--w); font-weight:700; font-size:.76rem;
  padding:13px 28px; border-radius:60px; min-height:44px;
  display:inline-flex; align-items:center; transition:transform .3s;
}
.btn-disc:hover { transform:scale(1.05) }

/* =========================================
   WHY US
   ========================================= */
.whyus { background:var(--bg2) }
.wgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; position:relative; z-index:1 }
.wcard {
  background:var(--card); border:1px solid var(--bdr);
  border-radius:var(--r1); padding:26px 20px;
  transition:transform .35s, border-color .35s, box-shadow .35s;
}
.wcard:hover { transform:translateY(-4px); border-color:rgba(255,107,0,.25); box-shadow:0 0 28px rgba(255,107,0,.06) }
.wicon {
  width:46px; height:46px; border-radius:12px;
  display:flex; align-items:center; justify-content:center; margin-bottom:14px;
}
.wicon svg { width:20px; height:20px; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round }
.wcard:nth-child(1) .wicon { background:rgba(255,208,0,.12) } .wcard:nth-child(1) .wicon svg { stroke:var(--y) }
.wcard:nth-child(2) .wicon { background:rgba(255,107,0,.12) } .wcard:nth-child(2) .wicon svg { stroke:var(--o) }
.wcard:nth-child(3) .wicon { background:rgba(230,57,70,.12) }  .wcard:nth-child(3) .wicon svg { stroke:var(--r) }
.wcard:nth-child(4) .wicon { background:rgba(0,210,110,.12) }  .wcard:nth-child(4) .wicon svg { stroke:#00d26e }
.wcard h4 { font-size:.8rem; font-weight:700; margin-bottom:6px; letter-spacing:-.01em }
.wcard p { font-size:.76rem; color:var(--muted); line-height:1.6 }
@media (max-width:860px) { .wgrid { grid-template-columns:1fr 1fr } }
@media (max-width:480px) { .wgrid { grid-template-columns:1fr } }

/* =========================================
   GALLERY
   ========================================= */
.gallery { padding:clamp(64px,10vw,112px) 0; background:var(--bg); overflow:hidden }
.gallery .label, .gallery .title { padding-left:var(--px) }
.gstrip {
  display:flex; gap:14px; overflow-x:auto;
  padding:28px var(--px); scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch; scrollbar-width:none; cursor:grab;
}
.gstrip:active { cursor:grabbing }
.gstrip::-webkit-scrollbar { display:none }
.gstrip img {
  height:clamp(200px,28vw,270px); aspect-ratio:4/3; object-fit:cover;
  border-radius:var(--r2); flex-shrink:0; scroll-snap-align:start;
  border:1px solid var(--bdr); background:#0a1530;
  transition:transform .3s, border-color .3s;
  user-select:none; -webkit-user-drag:none; pointer-events:none;
}

/* =========================================
   CAMPS
   ========================================= */
.camps { background:var(--bg2) }
.camp-list { display:flex; flex-direction:column; gap:16px }
.camp {
  display:grid; grid-template-columns:1fr 1fr;
  border-radius:var(--r1); overflow:hidden; min-height:280px;
  background:var(--card); border:1px solid var(--bdr);
  transition:transform .35s, border-color .35s;
}
.camp:hover { transform:translateY(-3px); border-color:rgba(255,107,0,.25) }
.camp-img {
  background-size:cover; background-position:center; min-height:240px;
}
.c1 { background-image:url('../images/yach.jpg') }
.c2 { background-image:url('../images/posi.jpg') }
.c3 { background-image:url('../images/beach.jpg') }
.camp-body { padding:30px 26px; display:flex; flex-direction:column; justify-content:center }
.camp-body h3 { font-size:clamp(1.2rem,2.2vw,1.65rem); font-weight:800; letter-spacing:-.02em; margin-bottom:10px }
.camp-body p { font-size:.8rem; color:var(--muted); line-height:1.75; margin-bottom:18px }
.btn-more {
  display:inline-flex; align-items:center; gap:6px;
  font-weight:700; font-size:.74rem; color:var(--o);
  border-bottom:1px solid transparent; align-self:flex-start;
  min-height:44px; padding-bottom:2px; transition:border-color .3s;
}
.btn-more:hover { border-color:var(--o) }
.btn-more svg { width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2; transition:transform .3s }
.btn-more:hover svg { transform:translateX(3px) }
@media (max-width:760px) { .camp { grid-template-columns:1fr } }

/* =========================================
   RENTAL
   ========================================= */
.rental { background:var(--bg) }
.rgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px }
.rcard {
  background:var(--card); border:1px solid var(--bdr);
  border-radius:var(--r1); padding:24px 18px; text-align:center;
  transition:transform .35s, border-color .35s;
}
.rcard:hover { transform:translateY(-3px); border-color:rgba(255,107,0,.25) }
.rcard .ico {
  width:52px; height:52px; margin:0 auto 14px; display:flex;
  align-items:center; justify-content:center;
  background:rgba(255,107,0,.12); border-radius:14px;
  border:1px solid rgba(255,107,0,.18);
}
.rcard .ico svg { width:26px; height:26px; stroke:var(--o) }
.rcard h4 { font-size:.76rem; font-weight:700; margin-bottom:14px; letter-spacing:-.01em }
.rrows { display:flex; flex-direction:column; gap:4px }
.rrow {
  display:flex; justify-content:space-between;
  font-size:.76rem; padding:5px 0; border-bottom:1px solid rgba(255,255,255,.06);
}
.rrow .rv2 { color:var(--o); font-weight:700; font-size:.73rem }
@media (max-width:760px) { .rgrid { grid-template-columns:1fr 1fr } }
@media (max-width:480px) { .rgrid { grid-template-columns:1fr } }

/* =========================================
   REVIEWS
   ========================================= */
.reviews { background:var(--bg2) }
.revgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px }
.revcard {
  background:var(--card); border:1px solid var(--bdr);
  border-radius:var(--r1); padding:26px;
  transition:border-color .35s, box-shadow .35s;
}
.revcard:hover { border-color:rgba(255,208,0,.18); box-shadow:0 0 24px rgba(255,208,0,.05) }
.stars { color:var(--y); font-size:.84rem; letter-spacing:2px; margin-bottom:12px }
.revcard blockquote { font-size:.82rem; color:var(--muted); line-height:1.75; margin-bottom:14px; font-style:italic }
.revcard cite { font-size:.8rem; font-weight:700; font-style:normal; display:block }
.revcard .role { font-size:.68rem; color:var(--muted); margin-top:3px }
@media (max-width:760px) { .revgrid { grid-template-columns:1fr } }

/* =========================================
   GIFT
   ========================================= */
.gift { background:var(--bg); text-align:center; position:relative; overflow:hidden }
.gift::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse at center,rgba(255,107,0,.07),transparent 62%);
  pointer-events:none;
}
.gift .label { color:var(--y) }
.gift .title, .gift .sub { position:relative; z-index:1 }
.gift .sub { margin-left:auto; margin-right:auto }
.btn-gift {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--g1); color:var(--bg); font-weight:700; font-size:.8rem;
  padding:15px 34px; border-radius:60px; min-height:50px;
  transition:transform .3s, box-shadow .3s; position:relative; z-index:1;
}
.btn-gift:hover { transform:translateY(-2px); box-shadow:0 0 32px rgba(255,107,0,.28) }

/* =========================================
   CONTACT
   ========================================= */
.contact { background:var(--bg2) }
.cwrap { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:start }
.cinfo h3 { font-size:clamp(1.3rem,2.5vw,1.9rem); font-weight:800; letter-spacing:-.02em; margin-bottom:14px }
.cinfo p { color:var(--muted); font-size:.84rem; margin-bottom:6px; line-height:1.6 }
.cinfo a { color:var(--o); font-weight:500; transition:color .25s }
.cinfo a:hover { color:var(--y) }
.socials { display:flex; gap:10px; margin-top:20px }
.socials a {
  width:44px; height:44px; border-radius:50%; border:1px solid var(--bdr);
  display:flex; align-items:center; justify-content:center;
  color:var(--muted); transition:all .3s;
}
.socials a:hover { border-color:var(--o); background:rgba(255,107,0,.1); color:var(--o) }
.socials svg { width:16px; height:16px; fill:currentColor }
.cform { display:flex; flex-direction:column; gap:12px }
.cform input, .cform textarea {
  background:rgba(255,255,255,.07); border:1px solid var(--bdr);
  border-radius:var(--r3); padding:13px 16px;
  color:var(--w); font-family:var(--f); font-size:16px; /* prevents iOS zoom */
  outline:none; transition:border-color .25s; resize:vertical;
  -webkit-appearance:none; appearance:none;
}
.cform input:focus, .cform textarea:focus { border-color:var(--o) }
.cform input::placeholder, .cform textarea::placeholder { color:rgba(255,255,255,.28) }
.cform textarea { min-height:80px }
.btn-send {
  background:var(--g1); color:var(--bg); font-family:var(--f);
  font-weight:700; font-size:.82rem; padding:14px; border-radius:var(--r3);
  border:none; cursor:pointer; width:100%; min-height:50px;
  transition:box-shadow .3s; touch-action:manipulation;
}
.btn-send:hover { box-shadow:0 0 28px rgba(255,107,0,.32) }
.thanks { display:none; text-align:center; padding:28px; font-size:.96rem; font-weight:700; color:var(--o) }
.thanks.show { display:block }
.cform.gone { display:none }
@media (max-width:760px) { .cwrap { grid-template-columns:1fr } }

/* =========================================
   FOOTER
   ========================================= */
.foot {
  background:var(--bg); border-top:1px solid var(--bdr);
  padding:34px var(--px);
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px;
}
.foot-brand {
  font-size:.9rem; font-weight:800; letter-spacing:.02em;
  background:var(--g1); -webkit-background-clip:text;
  -webkit-text-fill-color:transparent; background-clip:text;
}
.foot-copy { font-size:.68rem; color:rgba(255,255,255,.28) }
.foot-link { font-size:.68rem; color:rgba(255,255,255,.28); transition:color .25s; padding:4px 0 }
.foot-link:hover { color:var(--o) }

/* =========================================
   COOKIE BANNER
   ========================================= */
.cookie-bar {
  position:fixed; bottom:0; left:0; right:0; z-index:9999;
  background:rgba(3,12,30,.97);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border-top:1px solid var(--bdr);
  padding:16px var(--px);
  display:none; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
}
.cookie-bar p { font-size:.78rem; color:var(--muted); max-width:600px; line-height:1.5 }
.cookie-bar p a { color:var(--o); text-decoration:underline }
.cookie-btns { display:flex; gap:10px; flex-shrink:0 }
.cookie-btns button {
  font-family:var(--f); font-size:.74rem; font-weight:700;
  padding:9px 20px; border-radius:30px; cursor:pointer;
  min-height:40px; transition:all .25s; touch-action:manipulation;
  border:none;
}
.cookie-btns button:first-child { background:var(--g1); color:var(--bg) }
.cookie-btns button:first-child:hover { box-shadow:0 0 20px rgba(255,107,0,.3) }
.cookie-btns button.cb-outline {
  background:transparent; color:var(--muted);
  border:1px solid var(--bdr);
}
.cookie-btns button.cb-outline:hover { border-color:var(--o); color:var(--o) }
@media (max-width:560px) {
  .cookie-bar { flex-direction:column; align-items:flex-start }
  .cookie-btns { width:100% }
  .cookie-btns button { flex:1 }
}

/* =========================================
   PRELOADER
   ========================================= */
#preloader {
  position:fixed; inset:0; z-index:99999;
  background:#000;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:0;
  transition:opacity .7s ease, visibility .7s ease;
}
#preloader.hide { opacity:0; visibility:hidden; pointer-events:none }

.pl-logo {
  width:clamp(180px,45vw,320px);
  height:auto;
  will-change:transform;
  animation:pl-float 2.4s ease-in-out infinite, pl-glow 2.4s ease-in-out infinite;
}
.pl-bar {
  margin-top:32px;
  width:clamp(120px,30vw,200px);
  height:3px;
  background:rgba(255,255,255,.08);
  border-radius:2px;
  overflow:hidden;
  position:relative;
}
.pl-bar::after {
  content:'';
  position:absolute; left:-60%; top:0; bottom:0; width:60%;
  background:linear-gradient(90deg,transparent,#ff6b00,#ffd000,transparent);
  animation:pl-scan 1.2s ease-in-out infinite;
}
@keyframes pl-float {
  0%,100% { transform:translateY(0) scale(1) }
  50%      { transform:translateY(-10px) scale(1.03) }
}
@keyframes pl-glow {
  0%,100% { filter:drop-shadow(0 0 12px rgba(255,107,0,.3)) drop-shadow(0 0 24px rgba(255,107,0,.1)) }
  50%      { filter:drop-shadow(0 0 24px rgba(255,200,0,.6)) drop-shadow(0 0 48px rgba(255,107,0,.3)) }
}
@keyframes pl-scan {
  0%   { left:-60% }
  100% { left:140% }
}
