:root{
  --navy-950: #060e24;
  --navy-900: #0B1B3D;
  --navy-800: #142a5c;
  --navy-700: #1d3a7a;
  --red-600: #C1272D;
  --red-500: #dc3a3f;
  --cream-100: #F7F3EC;
  --cream-200: #eee7d9;
  --ink-100: #ffffff;
  --ink-300: rgba(255,255,255,.72);
  --ink-500: rgba(255,255,255,.5);
  --radius-lg: 20px;
  --radius-md: 12px;
  --font-display: "Noto Serif Georgian", "Noto Serif", serif;
  --font-body: "Noto Sans Georgian", "Noto Sans", system-ui, sans-serif;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--navy-900);
  color:var(--ink-100);
  min-height:100vh;
  position:relative;
  overflow-x:hidden;
}

a{ color:inherit; }
:focus-visible{ outline:2.5px solid var(--red-500); outline-offset:3px; border-radius:4px; }

/* ---------- background signature map ---------- */
.bg-map{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.55;
}
.bg-map svg{ width:100%; height:100%; }
.continents path{
  fill:var(--navy-800);
  opacity:.65;
}
.pin{
  fill:var(--red-500);
  filter:drop-shadow(0 0 6px rgba(220,58,63,.9));
  animation:pinPulse 3.2s ease-in-out infinite;
}
.pin-home{ fill:#F5A623; filter:drop-shadow(0 0 10px rgba(245,166,35,1)); animation-duration:2.4s; }
.pin:nth-child(odd){ animation-delay:.6s; }
.pin:nth-child(3n){ animation-delay:1.2s; }

@keyframes pinPulse{
  0%,100%{ opacity:.55; r:4; }
  50%{ opacity:1; }
}
@media (prefers-reduced-motion: reduce){
  .pin{ animation:none; opacity:.85; }
}

/* ---------- topbar ---------- */
.topbar{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px clamp(20px,5vw,64px) 0;
}
.brand{ display:flex; align-items:center; gap:10px; }
.brand-mark{ width:38px; height:38px; }
.brand-name{ font-size:15px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-300); }
.brand-name b{ color:var(--ink-100); font-weight:700; }

.lang-switch{ display:flex; gap:6px; background:rgba(255,255,255,.08); border-radius:99px; padding:4px; }
.lang-btn{
  border:none; background:none; color:var(--ink-300); font-family:inherit;
  font-size:13px; font-weight:600; padding:6px 14px; border-radius:99px; cursor:pointer;
}
.lang-btn.is-active{ background:var(--ink-100); color:var(--navy-900); }

/* ---------- hero layout ---------- */
.hero{
  position:relative; z-index:2;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(24px,5vw,72px);
  align-items:center;
  max-width:1280px;
  margin:0 auto;
  padding:clamp(40px,7vh,88px) clamp(20px,5vw,64px) 60px;
}

.eyebrow{
  font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--red-500); margin:0 0 18px;
}
.hero-copy h1{
  font-family:var(--font-display);
  font-size:clamp(2.4rem,5vw,3.6rem);
  line-height:1.08;
  font-weight:700;
  margin:0 0 22px;
}
.hero-copy h1 .accent{ color:#F5A623; }
.lede{
  font-size:16.5px; line-height:1.7; color:var(--ink-300);
  max-width:46ch; margin:0 0 28px;
}
.feature-chips{
  list-style:none; display:flex; flex-wrap:wrap; gap:10px; padding:0; margin:0;
}
.feature-chips li{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  padding:9px 15px; border-radius:99px; font-size:13.5px; color:var(--ink-100);
}

/* ---------- auth card ---------- */
.auth-card{
  background:var(--cream-100);
  color:var(--navy-900);
  border-radius:var(--radius-lg);
  padding:clamp(24px,3vw,34px);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.5);
}
.auth-tabs{ display:flex; gap:4px; background:var(--cream-200); border-radius:99px; padding:4px; margin-bottom:22px; }
.auth-tab{
  flex:1; border:none; background:none; font-family:inherit; font-size:14px; font-weight:700;
  padding:10px; border-radius:99px; cursor:pointer; color:rgba(11,27,61,.55);
}
.auth-tab.is-active{ background:var(--navy-900); color:var(--ink-100); }

.auth-form{ display:none; flex-direction:column; gap:16px; }
.auth-form.is-active{ display:flex; }

.field{ display:flex; flex-direction:column; gap:6px; font-size:13.5px; font-weight:600; }
.field input{
  font-family:inherit; font-size:15px; padding:11px 13px;
  border:1.5px solid rgba(11,27,61,.18); border-radius:var(--radius-md);
  background:#fff; color:var(--navy-900);
}
.field input:focus{ border-color:var(--red-600); }
.field small{ font-weight:400; color:rgba(11,27,61,.55); }

.field-check{ display:flex; align-items:flex-start; gap:8px; font-size:13px; color:rgba(11,27,61,.75); }
.field-check input{ margin-top:3px; }
.field-check a{ color:var(--red-600); font-weight:600; text-decoration:underline; }

.btn-primary{
  font-family:inherit; font-size:15px; font-weight:700; color:#fff;
  background:linear-gradient(135deg,var(--red-600),#a51e23);
  border:none; border-radius:var(--radius-md); padding:13px; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn-primary:hover{ transform:translateY(-1px); box-shadow:0 10px 24px -8px rgba(193,39,45,.6); }
.btn-primary:disabled{ opacity:.6; cursor:progress; transform:none; box-shadow:none; }

.btn-link{
  align-self:center; background:none; border:none; font-family:inherit; font-size:13px;
  color:rgba(11,27,61,.6); text-decoration:underline; cursor:pointer;
}

.form-msg{ margin:0; font-size:13px; min-height:16px; }
.form-msg.is-error{ color:var(--red-600); }
.form-msg.is-ok{ color:#1a7a3c; }

.auth-foot{
  text-align:center; font-family:var(--font-display); font-style:italic;
  font-size:13.5px; color:rgba(11,27,61,.55); margin:22px 0 0;
}

/* ---------- footer ---------- */
.site-foot{
  position:relative; z-index:2; text-align:center; padding:20px;
  font-size:12.5px; color:var(--ink-500);
}

/* ---------- showcase (banner-inspired section) ---------- */
.showcase{
  position:relative; z-index:2;
  max-width:1280px; margin:20px auto 0;
  padding:20px clamp(20px,5vw,64px) 40px;
  display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,5vw,64px);
  align-items:center;
}
.showcase-copy .eyebrow{ font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--red-500); margin:0 0 12px; }
.showcase-copy h2{ font-family:var(--font-display); font-size:clamp(1.7rem,3.4vw,2.3rem); line-height:1.18; margin:0 0 28px; }

.feature-strip{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:16px 22px; }
.feature-strip li{ display:flex; align-items:flex-start; gap:12px; }
.feature-strip .fi{
  width:38px; height:38px; flex:none; border-radius:50%;
  background:rgba(255,255,255,.08); border:1.5px solid rgba(255,255,255,.16);
  display:flex; align-items:center; justify-content:center; font-size:16px;
}
.feature-strip b{ display:block; font-size:14px; font-weight:700; }
.feature-strip small{ display:block; font-size:12.5px; color:var(--ink-300); margin-top:2px; }

/* phone mockup */
.phone-mock{ display:flex; justify-content:center; }
.phone-frame{
  width:250px; border-radius:34px; padding:12px;
  background:linear-gradient(160deg,#1c2b52,#0a1330);
  box-shadow:0 40px 70px -30px rgba(0,0,0,.7), inset 0 0 0 1.5px rgba(255,255,255,.08);
  position:relative;
}
.phone-notch{
  position:absolute; top:12px; left:50%; transform:translateX(-50%);
  width:70px; height:16px; background:#0a1330; border-radius:0 0 12px 12px; z-index:2;
}
.phone-screen{
  background:var(--cream-100); border-radius:24px; padding:26px 12px 12px;
  color:var(--navy-900); font-size:11px; overflow:hidden;
}
.phone-topbar{ display:flex; justify-content:space-between; align-items:center; font-size:10.5px; margin-bottom:10px; padding:0 2px; }
.phone-nearby{
  background:var(--navy-900); color:#fff; border-radius:12px; padding:10px 12px; margin-bottom:10px;
}
.phone-nearby > span{ font-size:10px; color:var(--ink-300); }
.phone-nearby-row{ display:flex; align-items:center; justify-content:space-between; margin-top:4px; }
.phone-nearby-row b{ font-size:19px; font-family:var(--font-display); }
.phone-avatars{ display:flex; }
.phone-avatars i{
  width:18px; height:18px; border-radius:50%; margin-left:-6px;
  background:linear-gradient(135deg,var(--red-500),var(--navy-700));
  border:1.5px solid var(--navy-900); font-style:normal;
}
.phone-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-bottom:10px; }
.phone-grid > div{
  background:#fff; border:1px solid rgba(11,27,61,.08); border-radius:10px;
  padding:9px 4px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:3px;
}
.phone-grid span{ font-size:15px; }
.phone-grid small{ font-size:8.5px; font-weight:600; line-height:1.1; }
.phone-nav{
  display:flex; justify-content:space-around; align-items:center;
  background:#fff; border-radius:99px; padding:8px 4px; font-size:14px; color:rgba(11,27,61,.4);
}
.phone-nav .is-active{ color:var(--navy-900); }
.phone-plus{
  background:var(--red-600); color:#fff; width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:15px;
}

/* trust strip */
.trust-strip{
  position:relative; z-index:2;
  background:var(--cream-100); color:var(--navy-900);
  display:grid; grid-template-columns:repeat(5,1fr); gap:20px;
  max-width:1280px; margin:0 auto; padding:26px clamp(20px,5vw,64px);
  border-radius:24px 24px 0 0;
}
.trust-strip > div{ display:flex; align-items:flex-start; gap:10px; }
.trust-strip span{ font-size:20px; flex:none; }
.trust-strip b{ display:block; font-size:12.5px; font-weight:700; }
.trust-strip small{ display:block; font-size:11px; color:rgba(11,27,61,.6); margin-top:2px; line-height:1.3; }

@media (max-width: 980px){
  .showcase{ grid-template-columns:1fr; text-align:center; }
  .showcase-copy .eyebrow{ text-align:center; }
  .feature-strip{ text-align:left; max-width:420px; margin:0 auto; }
  .trust-strip{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 480px){
  .trust-strip{ grid-template-columns:1fr; }
  .feature-strip{ grid-template-columns:1fr; }
}

/* ---------- responsive ---------- */
@media (max-width: 880px){
  .hero{ grid-template-columns:1fr; }
  .hero-copy{ text-align:center; }
  .feature-chips{ justify-content:center; }
  .lede{ margin-left:auto; margin-right:auto; }
}
@media (max-width: 480px){
  .topbar{ padding:18px 16px 0; }
  .hero{ padding:32px 16px 44px; }
  .auth-card{ border-radius:16px; }
}

/* ---------- slim hero (auth-card only, banner sits below) ---------- */
.hero-slim{
  display:flex; justify-content:center;
  padding-top:0;
  padding-bottom:clamp(40px,7vh,64px);
}
.hero-slim .auth-card{ width:100%; max-width:460px; }

/* ---------- banner hero (AI-generated art + live text overlay) ---------- */
.banner-hero{
  position:relative; z-index:2;
  max-width:1600px; margin:0 auto;
  padding:clamp(16px,3vh,32px) clamp(12px,3vw,40px) clamp(30px,5vh,56px);
}
.banner-wrap{
  position:relative;
  width:100%;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.6);
  container-type: inline-size;
}
.banner-wrap img{ display:block; width:100%; height:auto; }

.banner-overlay{ position:absolute; inset:0; }
.banner-overlay > *{ position:absolute; }

.bo-tagline{
  left:19%; top:31.2%; width:30%;
  margin:0; font-family:var(--font-body); font-weight:700;
  font-size:1cqw; letter-spacing:.08em; color:var(--red-600);
  white-space:nowrap;
}
.bo-headline{
  left:3%; top:35.5%; width:55%;
  margin:0; font-family:var(--font-display); font-weight:800;
  font-size:3.4cqw; line-height:1.18;
}
.bo-headline .navy{ color:var(--navy-900); white-space:nowrap; }
.bo-headline .red{ color:var(--red-600); white-space:nowrap; }
.bo-sub{
  left:3%; top:51.5%; width:45%;
  margin:0; font-size:1.3cqw; line-height:1.42; color:var(--navy-800);
}

.bo-feature{ width:4.3%; }
.bo-feature b{ display:block; font-size:.56cqw; font-weight:800; color:var(--red-600); line-height:1.2; }
.bo-feature small{ display:block; font-size:.45cqw; font-weight:600; color:var(--navy-800); line-height:1.3; margin-top:2px; overflow-wrap:break-word; }
.bo-f1{ left:14.1%; top:71.5%; }
.bo-f2{ left:24.6%; top:71.5%; }
.bo-f3{ left:35.8%; top:71.5%; }
.bo-f4{ left:46.6%; top:71.5%; }
.bo-f5{ left:57.5%; top:71.5%; }
.bo-f6{ left:68%; top:71.5%; width:5%; }

.bo-trust{ width:11%; }
.bo-trust b{ display:block; font-size:.52cqw; font-weight:800; color:var(--navy-900); line-height:1.28; }
.bo-trust small{ display:block; font-size:.43cqw; font-weight:500; color:rgba(11,27,61,.6); line-height:1.38; margin-top:2px; }
.bo-t1{ left:14.6%; top:88%; }
.bo-t2{ left:31.8%; top:88%; }
.bo-t3{ left:48%; top:88%; }
.bo-t4{ left:66.8%; top:88%; }
.bo-t5{ left:84%; top:88%; width:14.5%; }
.bo-t5 b.strong{ font-size:.6cqw; color:var(--navy-900); }
.bo-t5 small.accent{ font-size:.48cqw; font-weight:700; color:var(--red-600); }

.bo-phone-loc{
  left:79.8%; top:17.8%; width:14%;
  font-size:.65cqw; font-weight:700; color:var(--navy-900);
  white-space:nowrap;
}
.bo-phone-nearby-label{
  left:76.3%; top:23.9%; width:14%;
  font-size:.55cqw; font-weight:700; color:var(--navy-800);
  white-space:nowrap;
}

.bo-pgrid{
  width:5%; text-align:center;
  font-size:.4cqw; font-weight:600; color:var(--navy-800);
  line-height:1.15;
}
.bo-pg-1{ left:76.7%; top:43%; }
.bo-pg-2{ left:82%; top:43%; }
.bo-pg-3{ left:87.25%; top:43%; }
.bo-pg-4{ left:76.7%; top:52.5%; }
.bo-pg-5{ left:82%; top:52.5%; }
.bo-pg-6{ left:87.25%; top:52.5%; }
.bo-pg-7{ left:76.7%; top:61.2%; }
.bo-pg-8{ left:82%; top:61.2%; }
.bo-pg-9{ left:87.25%; top:61.2%; }

.mobile-fallback{
  display:none;
  position:relative; z-index:2;
  max-width:560px; margin:0 auto;
  padding:clamp(24px,6vh,40px) 20px clamp(30px,6vh,48px);
  text-align:center;
}
.mobile-fallback .eyebrow{ font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--red-500); margin:0 0 12px; }
.mobile-fallback h2{ font-family:var(--font-display); font-size:clamp(1.5rem,7vw,2rem); line-height:1.2; margin:0 0 16px; color:#fff; }
.mf-sub{ color:var(--ink-300); font-size:14.5px; line-height:1.6; margin:0 0 22px; }
.mobile-fallback .feature-chips{ justify-content:center; }

.mf-feature-list{
  list-style:none; margin:0 0 24px; padding:0;
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
  text-align:left;
}
.mf-feature-list li{ display:flex; align-items:flex-start; gap:10px; }
.mf-ico{
  width:34px; height:34px; flex:none; border-radius:50%;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16);
  display:flex; align-items:center; justify-content:center; font-size:15px;
}
.mf-feature-list b{ display:block; font-size:13px; font-weight:700; color:#fff; }
.mf-feature-list small{ display:block; font-size:11.5px; color:var(--ink-300); margin-top:1px; line-height:1.3; }

.mf-trust-card{
  background:var(--cream-100); border-radius:var(--radius-lg);
  padding:20px 18px; text-align:left;
  display:flex; flex-direction:column; gap:14px;
}
.mf-trust-row{ display:flex; align-items:flex-start; gap:10px; }
.mf-trust-row .mf-ico{
  background:#fff; border:1px solid rgba(11,27,61,.12);
}
.mf-trust-row b{ display:block; font-size:13px; font-weight:700; color:var(--navy-900); }
.mf-trust-row small{ display:block; font-size:11.5px; color:rgba(11,27,61,.6); margin-top:1px; line-height:1.3; }
.mf-trust-final b{ color:var(--red-600); }
.mf-trust-final small{ color:var(--red-600); font-weight:600; }

@media (max-width:420px){
  .mf-feature-list{ grid-template-columns:1fr; }
}

@media (max-width: 720px){
  .banner-hero{ display:none; } /* full banner art is unreadable below ~720px; mobile uses the compact hero text/chips instead */
  .mobile-fallback{ display:block; }
}
