@font-face {
  font-family: "FiraGO";
  src: url("https://cdn.napr.gov.ge/fonts/firago/FiraGO-Regular.woff") format("woff");
  font-display: swap;
}

:root {
  --bg: #fbfaf7;
  --ink: #181817;
  --muted: #696660;
  --card: #f0eee8;
  --line: #d7d4cb;
  --accent: #8b7250;
  --inverse: #fbfaf7;
}

[data-theme="dark"] {
  --bg: #08070b;
  --ink: #f7f2ea;
  --muted: #b7b0be;
  --card: #151319;
  --line: rgba(247, 242, 234, .16);
  --accent: #e3bd7b;
  --inverse: #08070b;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--bg);
  font-family: "FiraGO", Manrope, "Noto Sans Georgian", sans-serif;
  transition: background .3s, color .3s;
}

.page { max-width: 1500px; margin: auto; padding: 0 clamp(1.2rem, 4.5vw, 5rem); }
[data-lang="en"] .ka, [data-lang="ka"] .en { display: none; }

/* Shared header and footer */
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  height: 106px;
  border-bottom: 1px solid var(--line);
}
.brand { display: flex; align-items: center; text-decoration: none; }
.brand img { width: 164px; height: 86px; object-fit: contain; mix-blend-mode: multiply; }
.nav-links { display: flex; align-items: center; gap: clamp(.65rem, 1.35vw, 1.45rem); }
.nav-links a { color: var(--ink); text-decoration: none; font-size: .64rem; font-weight: 600; white-space: nowrap; }
.nav-links a:hover, .nav-links a:focus-visible { color: var(--accent); }
.controls { display: flex; gap: .38rem; }
.control { min-width: 2.7rem; height: 2.7rem; padding: 0 .7rem; border: 1px solid var(--line); border-radius: 99px; background: transparent; color: var(--ink); cursor: pointer; font: 500 .78rem "DM Mono", monospace;}
.menu {display: grid; place-items: center; padding: 0; line-height: 1; font-size: 1rem;}
footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding: 1.5rem 0; color: var(--muted); border-top: 1px solid var(--line); font: 500 .58rem "DM Mono", monospace; letter-spacing: .09em; }
footer a { color: var(--ink); text-decoration: none; }
.footer-links { display: flex; flex-wrap: wrap; gap: .9rem; }

/* Shared type */
.eyebrow { display: flex; align-items: center; gap: .55rem; color: var(--accent); font: 500 .59rem "DM Mono", monospace; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow::before { width: 1.7rem; height: 1px; background: currentColor; content: ""; }
.page-title, .hero h1, .section-head h2, .feature h2, .contact h2 { margin: .9rem 0 1.2rem; font-size: clamp(2rem, 4.7vw, 4.65rem); font-weight: 400; line-height: 1.18; letter-spacing: -.015em; }
.page-title em, .hero h1 em, .section-head em, .feature em { color: var(--accent); font-style: normal; }

/* Home */
.loader { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; background: var(--bg); animation: loader-out .75s cubic-bezier(.76,0,.24,1) 1.5s forwards; }
.loader img { width: 220px; mix-blend-mode: multiply; }
.loader small { display: block; margin-top: .6rem; color: var(--accent); text-align: center; font: 500 .55rem "DM Mono", monospace; letter-spacing: .24em; }
@keyframes loader-out { to { visibility: hidden; transform: translateY(-102%); } }
[data-theme="dark"] .brand img, [data-theme="dark"] .loader img { filter: invert(1); mix-blend-mode: screen; }

.hero { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 2rem; min-height: calc(100svh - 106px); padding: clamp(3rem, 7vw, 7rem) 0; }
.hero-copy p { max-width: 430px; color: var(--muted); font-size: .88rem; line-height: 1.85; }
.hero-art { position: relative; display: grid; min-height: 250px; height: min(56vw, 570px); place-items: center; }
.orb { width: 76%; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; background: radial-gradient(circle at 35% 25%, #e0cfb1, var(--card) 60%); }
.hero-cta { display: inline-flex; align-items: center; gap: .8rem; margin-top: 1.2rem; color: var(--ink); text-decoration: none; font: 500 .64rem "DM Mono", monospace; letter-spacing: .06em; }
.hero-cta i { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); font-style: normal; }
.home-video { position: relative; height: min(70svh, 760px); min-height: 460px; overflow: hidden; background: #111; }
.home-video video { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.home-video::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.56), transparent 58%); content: ""; }
.home-video__overlay { position: absolute; z-index: 1; right: clamp(1.3rem, 4vw, 4rem); bottom: clamp(1.3rem, 4vw, 4rem); color: white; }
.home-video__overlay .hero-cta { color: white; }
section { padding: clamp(4rem, 8vw, 7rem) 0; border-top: 1px solid var(--line); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.5rem; }
.section-head h2 { font-size: clamp(1.8rem, 3.8vw, 3.8rem); margin-bottom: 0; }
.section-head p { max-width: 270px; margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.8; }
.services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.service { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 274px; padding: 1.35rem; overflow: hidden; border: 1px solid var(--line); background: var(--card); color: var(--ink); text-decoration: none; }
.service:nth-child(1) { grid-column: span 2; }
.service .no, .service .go { font: 500 .58rem "DM Mono", monospace; color: var(--accent); }
.service h3 { max-width: 290px; margin: 1rem 0; font-size: clamp(1.4rem, 2.2vw, 2.25rem); font-weight: 400; line-height: 1.18; }
.service .symbol { position: absolute; right: -.5rem; bottom: -3.9rem; color: var(--accent); font: 10rem/1 Georgia; opacity: .25; }
.service .go { align-self: end; }
.feature { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 2rem; padding: clamp(2rem, 5vw, 5rem); background: var(--ink); color: var(--inverse); }
.feature h2 { margin: 0; font-size: clamp(2rem, 4vw, 4rem); }
.feature p { max-width: 420px; color: var(--muted); font-size: .88rem; line-height: 1.85; }
.feature a { color: var(--inverse); text-decoration: none; border-bottom: 1px solid var(--accent); }
.contact { display: grid; min-height: 55svh; place-items: center; text-align: center; }
.contact .eyebrow { display: flex; align-items: center; gap: .55rem; color: var(--accent); font: 500 .59rem "DM Mono", monospace; letter-spacing: .14em; text-transform: uppercase;}

.contact h2 { max-width: 780px; font-size: clamp(2rem, 4.6vw, 4.4rem); }
.contact h2 span { color: var(--accent); }

/* Inner pages and contact */
.inner-page { min-height: 62svh; padding: clamp(4rem, 8vw, 7rem) 0; border: 0; }
.inner-page p { max-width: 630px; color: var(--muted); font-size: .9rem; line-height: 1.9; }
.socials { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.social { display: inline-flex; align-items: center; gap: .55rem; min-height: 3rem; padding: 0 1rem; border: 1px solid var(--line); border-radius: 99px; color: var(--ink); text-decoration: none; font: 500 .66rem "DM Mono", monospace; transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease; }
.social:hover, .social:focus-visible { transform: translateY(-3px); background: var(--ink); color: var(--inverse); box-shadow: 0 10px 22px rgba(30, 24, 16, .16); }
.social svg { width: 17px; height: 17px; fill: currentColor; }
.call { display: inline-block; margin-top: 1.5rem; color: var(--ink); text-decoration: none; font: 600 .72rem "DM Mono", monospace; }

/* Special-effects catalogue */
.catalog-intro { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 2rem; align-items: end; padding: clamp(3rem, 6vw, 5.5rem) 0 2.3rem; }
.catalog-intro p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.85; }
.effects-grid { display: grid; gap: 1rem; padding-bottom: clamp(4rem, 8vw, 7rem); }
.effect-card { display: grid; grid-template-columns: 300px minmax(0, 1fr); width: 100%; min-height: 230px; padding: 0; overflow: hidden; border: 1px solid var(--line); background: var(--card); color: var(--ink); cursor: pointer; text-align: left; font: inherit; }
.effect-card:hover { border-color: var(--accent); }
.effect-card__image { width: 300px; height: 230px; object-fit: cover; object-position: center; }
.effect-card__body { display: flex; flex-direction: column; align-items: start; padding: clamp(1.1rem, 3vw, 2.1rem); }
.effect-card__number { color: var(--accent); font: 500 .57rem "DM Mono", monospace; letter-spacing: .08em; }
.effect-card h2 { margin: .7rem 0 .5rem; font-size: clamp(1.25rem, 2.4vw, 1.9rem); font-weight: 400; line-height: 1.25; }
.effect-card p { max-width: 46rem; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.7; }
.effect-card__bottom { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 1rem; margin-top: auto; padding-top: 1.1rem; }
.effect-card__price { color: var(--accent); font: 500 .76rem "DM Mono", monospace; }
.effect-card__open { color: var(--ink); font: 500 .61rem "DM Mono", monospace; letter-spacing: .06em; }
.effect-card__deal { margin-bottom: .6rem; color: var(--accent); font: 500 .6rem "DM Mono", monospace; letter-spacing: .05em; }

.effect-modal { position: fixed; z-index: 50; inset: 0; display: none; padding: 1rem; background: rgba(8, 7, 11, .74); }
.effect-modal.is-open { display: grid; place-items: center; }
.effect-modal__dialog { position: relative; width: min(970px, 100%); max-height: min(860px, 94vh); overflow: auto; background: var(--bg); color: var(--ink); box-shadow: 0 24px 80px rgba(0, 0, 0, .3); }
.effect-modal__close { position: absolute; z-index: 2; top: .9rem; right: .9rem; display: grid; width: 2.6rem; height: 2.6rem; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--bg); color: var(--ink); cursor: pointer; font-size: 1.1rem; }
.effect-modal__gallery { position: relative; aspect-ratio: 16 / 8; overflow: hidden; background: #111; }
.effect-modal__gallery img, .effect-modal__gallery video, .effect-modal__gallery iframe { display: none; width: 100%; height: 100%; object-fit: contain; background: #08070b; border: 0; }
.effect-modal__gallery img.is-active, .effect-modal__gallery video.is-active, .effect-modal__gallery iframe.is-active { display: block; }
.gallery-control { position: absolute; top: 50%; display: grid; width: 2.8rem; height: 2.8rem; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: #111; cursor: pointer; transform: translateY(-50%); }
.gallery-prev { left: 1rem; }.gallery-next { right: 1rem; }
.effect-modal__content { padding: clamp(1.4rem, 4vw, 3.2rem); }
.effect-modal__content h2 { margin: .5rem 0 1rem; font-size: clamp(1.7rem, 3.4vw, 3rem); font-weight: 400; }
.effect-modal__content p { max-width: 660px; color: var(--muted); font-size: .9rem; line-height: 1.9; }
.effect-modal__price { color: var(--accent); font: 500 .86rem "DM Mono", monospace; }

/* Flying screen */
.media-reel { position: relative; overflow: hidden; aspect-ratio: 16 / 8; background: var(--card); }
.media-reel__track { display: flex; width: 100%; height: 100%; transition: transform .55s ease; }
.media-reel__item { flex: 0 0 100%; display: grid; height: 100%; place-items: center; color: var(--muted); text-align: center; }
.media-reel__item img, .media-reel__item video, .media-reel__item iframe { width: 100%; height: 100%; border: 0; object-fit: cover; }
.media-reel__placeholder { padding: 2rem; font: 500 .7rem "DM Mono", monospace; letter-spacing: .08em; }
.media-reel__dots { position: absolute; right: 1rem; bottom: 1rem; display: flex; gap: .45rem; }
.media-reel__dot { width: .5rem; height: .5rem; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.55); cursor: pointer; }
.media-reel__dot.is-active { background: white; transform: scale(1.25); }
.flying-copy { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin-top: 1px; background: var(--line); }
.flying-copy article { min-height: 210px; padding: clamp(1.3rem, 3vw, 2.3rem); background: var(--bg); }
.flying-copy h2 { margin: 0 0 .8rem; font-size: 1.25rem; font-weight: 400; }
.flying-copy p { margin: 0; color: var(--muted); font-size: .85rem; line-height: 1.85; }

/* Photo booth */
.booth-list { display: grid; gap: 1rem; padding-bottom: clamp(4rem, 8vw, 7rem); }
.booth-card { display: grid; grid-template-columns: 40% 1fr; min-height: 330px; overflow: hidden; border: 1px solid var(--line); background: var(--card); }
.booth-card img { width: 100%; height: 330px; object-fit: cover; object-position: center; }
.booth-card__body { padding: clamp(1.4rem, 4vw, 3.2rem); }
.booth-card h2 { margin: 0 0 1rem; font-size: clamp(1.35rem, 2.7vw, 2rem); font-weight: 400; }
.booth-card p, .booth-card li { color: var(--muted); font-size: .84rem; line-height: 1.75; }
.booth-card ul { padding-left: 1.1rem; }
.booth-card__price { color: var(--accent); font: 500 .76rem "DM Mono", monospace; white-space: pre-line; }

/* Drone show and about */
.drone-show { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; min-height: 68svh; }
.drone-show__visual { display: grid; min-height: 390px; place-items: center; overflow: hidden; background: radial-gradient(circle at center, #25355a, #08070b 70%); color: #f7f2ea; font: 500 .68rem "DM Mono", monospace; letter-spacing: .1em; }
.drone-show__visual img { width: 100%; height: 100%; object-fit: cover; }
.drone-show__copy p, .about-statement p { color: var(--muted); font-size: .9rem; line-height: 1.95; }
.link-pill { display: inline-flex; align-items: center; gap: .6rem; margin-top: 1rem; padding: .9rem 1.15rem; border: 1px solid var(--line); border-radius: 99px; color: var(--ink); text-decoration: none; font: 500 .68rem "DM Mono", monospace; transition: transform .25s ease, background .25s ease, color .25s ease; }
.link-pill:hover { transform: translateY(-3px); background: var(--ink); color: var(--inverse); }
.about-statement { max-width: 800px; min-height: 65svh; padding-top: clamp(4rem, 10vw, 9rem); }
.about-statement h1 { max-width: 700px; }

.experience {
  display: grid;
  justify-items: center;
  gap: 0.35rem;
  padding: clamp(5rem, 11vw, 9rem) 0;
  text-align: center;
  padding-top: 4rem;
}
.experience .eyebrow {
  justify-self: start;
}
.experience h2 { margin: 0; }
.experience__number { display: flex; align-items: baseline; margin: .6rem 0 0; font: 500 clamp(3rem, 7.2vw, 5rem) / .95 "DM Mono", monospace; letter-spacing: -.045em; }
.experience__plus { font-size: 1.0em; }
.experience__number b { color: var(--accent); font-size: .52em; letter-spacing: 0; }
.experience__label { margin: 1rem 0 0; color: var(--ink); font: 500 clamp(1.1rem, 2.1vw, 1.45rem) "DM Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.why-us {
  padding: clamp(7rem, 13vw, 11rem) 0 clamp(5rem, 10vw, 9rem);
  border-top: 1px solid var(--line);
  padding-top: 4rem;
}
.why-us__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 3.5rem; background: var(--line); }
.why-us__grid article { padding: 2rem; background: var(--bg); }
.why-us__grid h3 { margin: 0 0 1rem; font-size: 1.15rem; }
.why-us__grid p { margin: 0; color: var(--muted); line-height: 1.8; }

@media (max-width: 760px) {
  .page { padding: 0 1.25rem; }
  .nav { height: 94px; }
  .brand img { width: 150px; height: 78px; }
  .nav-links { position: absolute; z-index: 12; top: 94px; right: 0; left: 0; display: none; flex-direction: column; align-items: start; padding: 1rem 1.25rem 1.5rem; border-bottom: 1px solid var(--line); background: var(--bg); }
  .nav-links.open { display: flex; }
  .nav-links a { padding: .4rem 0; font-size: .8rem; }
  .menu { display: grid; }
  .hero, .feature, .catalog-intro { display: block; }
  .hero { min-height: auto; padding: 4rem 0; }
  .hero-art { height: 42vw; min-height: 190px; margin-top: 2.5rem; }
  .home-video { height: 56svh; min-height: 360px; }
  .section-head { display: block; }
  .section-head p { margin-top: 1.2rem; }
  .services { display: flex; overflow-x: auto; margin-right: -1.25rem; padding-right: 1.25rem; }
  .service, .service:nth-child(1) { flex: 0 0 83%; }
  .feature p { margin-top: 1.5rem; }
  .catalog-intro p { margin-top: 1.25rem; }
  .effect-card { grid-template-columns: 1fr; }
  .effect-card__image { width: 100%; height: 225px; }
  .booth-card { grid-template-columns: 1fr; }
  .booth-card img { height: 270px; }
  .flying-copy, .drone-show, .why-us__grid { grid-template-columns: 1fr; }
  .drone-show__visual { min-height: 260px; }
  .effect-modal { padding: 0; }
  .effect-modal__dialog { max-height: 100svh; min-height: 100svh; }
  .effect-modal__gallery { aspect-ratio: 4 / 3; }
}
.reel-arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: grid;
  width: 2.8rem;
  height: 2.8rem;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #111;
  cursor: pointer;
  font-size: 1.2rem;
  transform: translateY(-50%);
  transition: transform 0.2s ease, background 0.2s ease;
}

.reel-arrow:hover {
  background: white;
  transform: translateY(-50%) scale(1.08);
}

.reel-arrow--prev {
  left: 1rem;
}

.reel-arrow--next {
  right: 1rem;
}

.home-video__action {
  display: flex;
  justify-content: flex-end;
  padding: 1.25rem 0 0;
}

.home-video__action .hero-cta {
  margin-top: 0;
  margin-bottom: 3%;
}