:root {
  --bg-dark:#050608;
  --bg-light:#f5f7fa;
  --text-dark:#f3f5f7;
  --text-light:#111318;
  --muted-dark:#aab1b8;
  --muted-light:#6b7280;

  --radius:18px;
  --shadow-heavy:0 28px 60px rgba(0,0,0,.55);
  --shadow-medium:0 16px 40px rgba(0,0,0,.45);
  --shadow-soft:0 8px 20px rgba(0,0,0,.35);
}

* {
  box-sizing:border-box;
  -webkit-tap-highlight-color:transparent;
  will-change:transform, opacity;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation:none !important;
    transition:none !important;
  }
}

body {
  margin:0;
  font-family:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Manrope", system-ui, sans-serif;
  overflow-x:hidden;
  transition:background .35s ease, color .35s ease;
  opacity:0;
  animation:pageLoad .8s ease forwards;
}

@keyframes pageLoad {
  to { opacity:1; }
}

body.theme-dark {
  background:var(--bg-dark);
  color:var(--text-dark);
}

body.theme-light {
  background:var(--bg-light);
  color:var(--text-light);
}

.container {
  max-width:960px;
  margin:0 auto;
  padding:20px;
  padding-bottom:120px;
}

/* HERO */
.hero {
  position:relative;
  width:100%;
  overflow:hidden;
  border-radius:18px;
  box-shadow:var(--shadow-heavy);
  margin-bottom:28px;
  will-change:transform, opacity;
}

.hero picture,
.hero img {
  width:100%;
  height:auto;
  display:block;
  will-change:opacity;
}

/* Fade-in */
.fade-in {
  opacity:0;
  transform:translateY(30px);
  animation:fadeIn 1.1s cubic-bezier(.25,.46,.45,.94) forwards;
  will-change:transform, opacity;
}

@keyframes fadeIn {
  to { opacity:1; transform:translateY(0); }
}

/* TOP BUTTONS */
.top-buttons {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  align-items:stretch;
  gap:14px;
  width:100%;
  margin-bottom:24px;
}

.install-btn,
.theme-btn {
  width:100%;
  min-width:0;
  margin:0;
}

.install-btn.apple-glass-btn,
.theme-btn.apple-glass-btn {
  min-height:52px;
  margin:0;
}

/* BUTTONS */
.apple-glass-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 24px;
  border-radius:14px;
  font-size:17px;
  font-weight:600;
  text-decoration:none;
  cursor:pointer;
  transition:transform .25s cubic-bezier(.25,1.25,.45,.94), box-shadow .25s ease;
  box-shadow:var(--shadow-medium);
  position:relative;
  user-select:none;
  will-change:transform;
}

.apple-glass-btn::after {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg, rgba(255,255,255,.25), rgba(255,255,255,.05));
  opacity:.25;
  pointer-events:none;
}

body.theme-dark .apple-glass-btn {
  color:var(--text-dark);
  background:
    linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.04)),
    linear-gradient(180deg, rgba(20,20,20,.85), rgba(10,10,10,.92));
  border:1px solid rgba(255,255,255,.22);
}

body.theme-light .apple-glass-btn {
  color:var(--text-light);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  border:1px solid rgba(0,0,0,.12);
}

.apple-glass-btn:hover {
  transform:translateY(-4px) scale(1.03);
  box-shadow:0 22px 50px rgba(0,0,0,.55);
}

.apple-glass-btn:active {
  transform:translateY(1px) scale(.97);
}

.btn-row {
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:20px;
}

.btn-row > .apple-glass-btn {
  flex:1 1 0;
  min-width:0;
  margin:0;
}

.muted {
  font-size:15px;
  line-height:1.6;
}

body.theme-dark .muted { color:var(--muted-dark); }
body.theme-light .muted { color:var(--muted-light); }

.section {
  border-radius:var(--radius);
  padding:22px;
  margin:22px 0;
  box-shadow:var(--shadow-medium);
  backdrop-filter:saturate(180%) blur(20px);
  transition:backdrop-filter .35s ease;
  will-change:transform, opacity;
}

body.theme-dark .section {
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.04)),
    rgba(10,10,10,.85);
  border:1px solid rgba(255,255,255,.12);
}

body.theme-light .section {
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  border:1px solid rgba(0,0,0,.06);
}

.section h2 {
  margin:0 0 16px;
  font-size:26px;
  font-weight:700;
}

.social-row {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.social-glass {
  flex:1;
  padding:12px 14px;
  border-radius:14px;
  font-size:15px;
  font-weight:600;
  text-align:center;
  text-decoration:none;
  transition:.22s ease;
  box-shadow:var(--shadow-soft);
  will-change:transform;
}

body.theme-dark .social-glass {
  color:var(--text-dark);
  background:
    linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.04)),
    rgba(10,10,10,.85);
  border:1px solid rgba(255,255,255,.22);
}

body.theme-light .social-glass {
  color:var(--text-light);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  border:1px solid rgba(0,0,0,.12);
}

.social-glass:hover {
  transform:translateY(-1px);
}

.services-list {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}

.service-card {
  padding:18px;
  border-radius:16px;
  box-shadow:var(--shadow-soft);
  transition:transform .25s cubic-bezier(.25,.46,.45,.94), box-shadow .25s ease;
  will-change:transform;
}

.service-card:hover {
  transform:translateY(-6px);
  box-shadow:0 26px 60px rgba(0,0,0,.55);
}

body.theme-dark .service-card {
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03)),
    rgba(10,10,10,.75);
  border:1px solid rgba(255,255,255,.12);
  color:var(--text-dark);
}

body.theme-light .service-card {
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  border:1px solid rgba(0,0,0,.06);
  color:var(--text-light);
}

.service-card h3 {
  margin:0 0 8px;
  font-size:20px;
  font-weight:700;
}

.service-card p {
  margin:0;
  font-size:15px;
}

body.theme-dark .service-card p { color:var(--muted-dark); }
body.theme-light .service-card p { color:var(--muted-light); }

.adv-item {
  margin-top:14px;
  font-size:15px;
}

body.theme-dark .adv-item { color:var(--muted-dark); }
body.theme-light .adv-item { color:var(--muted-light); }

.request-form {
  display:flex;
  flex-direction:column;
  gap:12px;
}

.request-form input,
.request-form textarea {
  width:100%;
  padding:12px;
  border-radius:14px;
  font-size:16px;
  border:1px solid transparent;
  outline:none;
}

body.theme-dark .request-form input,
body.theme-dark .request-form textarea {
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03)),
    rgba(10,10,10,.75);
  border:1px solid rgba(255,255,255,.12);
  color:var(--text-dark);
}

body.theme-light .request-form input,
body.theme-light .request-form textarea {
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  border:1px solid rgba(0,0,0,.06);
  color:var(--text-light);
}

.request-form input::placeholder,
.request-form textarea::placeholder {
  color:var(--muted-dark);
}

body.theme-light .request-form input::placeholder,
body.theme-light .request-form textarea::placeholder {
  color:var(--muted-light);
}

.request-form input:focus,
.request-form textarea:focus {
  border-color:rgba(255,255,255,.35);
}

.status-box {
  margin-top:10px;
  font-size:14px;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .45s ease, transform .45s ease;
}

.status-show {
  opacity:1;
  transform:translateY(0);
}

body.theme-dark .status-box { color:var(--muted-dark); }
body.theme-light .status-box { color:var(--muted-light); }

.footer {
  margin-top:30px;
  padding:22px;
  border-radius:var(--radius);
  box-shadow:var(--shadow-medium);
}

body.theme-dark .footer {
  background:
    linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.04)),
    rgba(10,10,10,.85);
  border:1px solid rgba(255,255,255,.22);
}

body.theme-light .footer {
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  border:1px solid rgba(0,0,0,.12);
}

.footer-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.footer h3 {
  margin:0 0 6px;
  font-size:16px;
}

.footer p {
  margin:0;
  font-size:14px;
}

body.theme-dark .footer p { color:var(--muted-dark); }
body.theme-light .footer p { color:var(--muted-light); }

.footer a {
  color:#4ade80;
  text-decoration:none;
}

.bottom-menu {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  width:100%;
  box-sizing:border-box;
  padding:12px;
  display:flex;
  align-items:center;
  justify-content:space-around;
  gap:8px;
  background:rgba(20,20,20,.55);
  border-top:1px solid rgba(255,255,255,.15);
  box-shadow:0 -10px 40px rgba(0,0,0,.45);
  z-index:99999;
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  animation:menuFloat 6s ease-in-out infinite alternate;
  will-change:transform;
}

@keyframes menuFloat {
  0% { transform:translateY(0); }
  100% { transform:translateY(-4px); }
}

body.theme-light .bottom-menu {
  background:rgba(255,255,255,.9);
  border-top:1px solid rgba(0,0,0,.08);
}

.bottom-menu a {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:1 1 0;
  min-width:0;
  color:#fff;
  text-decoration:none;
  font-size:15px;
  font-weight:600;
  padding:10px 14px;
  border-radius:12px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);
  visibility:visible;
  opacity:1;
  position:relative;
  z-index:1;
  pointer-events:auto;
  white-space:nowrap;
}

body.theme-light .bottom-menu a {
  color:#111318;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(0,0,0,.06);
}

@media (max-width:680px) {
  .services-list { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }

  .btn-row {
    flex-direction:column;
    gap:14px;
  }

  .apple-glass-btn {
    width:100%;
  }

  .top-buttons {
    grid-template-columns:1fr;
    gap:12px;
  }

  .bottom-menu {
    padding:10px 8px;
    gap:6px;
  }

  .bottom-menu a {
    padding:10px 8px;
    font-size:14px;
  }
}

.btn-bounce {
  animation:btnBounce 0.25s cubic-bezier(.25,1.25,.45,.94);
}

@keyframes btnBounce {
  0% { transform:scale(1); }
  50% { transform:scale(0.92); }
  100% { transform:scale(1); }
}

#geoStatus {
  animation:pulse 2s infinite;
}

@keyframes pulse {
  0% { opacity:.6; }
  50% { opacity:1; }
  100% { opacity:.6; }
}

#preloader {
  position:fixed;
  inset:0;
  background:#050608;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  z-index:99999;
  opacity:1;
  transition:opacity .6s ease;
}

#preloader.hidden {
  opacity:0;
  pointer-events:none;
}

.preloader-img {
  width:140px;
  height:auto;
  margin-bottom:20px;
  animation:preloaderFade 1.4s ease-in-out infinite alternate;
}

.preloader-title {
  font-size:20px;
  font-weight:700;
  color:#f3f5f7;
  letter-spacing:1px;
  animation:preloaderText 1.4s ease-in-out infinite alternate;
}

@keyframes preloaderFade {
  0% { opacity:.6; transform:scale(.96); }
  100% { opacity:1; transform:scale(1); }
}

@keyframes preloaderText {
  0% { opacity:.6; }
  100% { opacity:1; }
}
