/* ============================================================
   SPARKOZ TN10 — „Patyolat" dizájn
   világos · levegős · a tisztaság vizuális nyelvén
   ============================================================ */
:root{
  --bg:        #FBFCFC;
  --panel:     #E9F1EF;   /* látható zöldes-hűvös szekciótónus */
  --panel-2:   #FFFFFF;
  --line:      #D7E3E0;
  /* Korábban meleg, homokos tónus volt (#F5F1EA) — Bettina szerint pirosasnak
     hatott. Helyette halvány, hűvös kék: illik a robotok színvilágához, és
     nem üt el a zöld CTA-tól. */
  --sand:      #EFF5F8;
  --sand-line: #DCE8EE;
  --ink-deep:  #12232B;   /* sötét sáv a referenciákhoz */
  --on-dark:   #E8EFF1;
  --on-dark-muted:#A3B4BC;
  --accent-light:#2DC7A8;
  --accent-text:#0A6151;  /* kis szoveghez: 7.4:1 feheren, 6.4:1 panelen */
  --accent:    #12866F;
  --accent-dim:rgba(18,134,111,.09);
  --accent-line:rgba(18,134,111,.28);
  --accent-wash:rgba(18,134,111,.05);
  --accent-2:  #0F7561;
  /* ---- KIEGÉSZÍTŐ SZÍN ----
     Kelemen Zsolt kérése (2026-08-10-i meeting): „a robotról becsempésztek
     még egy ilyen kis kéket valahova". A ciánkék a gépek saját vizuális
     világából jön (kijelző-szem, LED-csík), tehát harmonizál a fotókkal.
     SZEREPE MÁSODLAGOS: adat, ábra, keret, kép-kiemelés. A CTA marad zöld,
     mert annak a kontrasztja bevizsgált, és nem akarunk két versengő gombszínt.
     --blue kontrasztja fehéren 4,1:1 → csak nagy szöveghez és grafikához;
     kis szöveghez --blue-deep (7,0:1). */
  --blue:      #0E86B8;
  --blue-deep: #0A5F84;
  --blue-light:#5FD3EE;
  --blue-dim:  rgba(14,134,184,.10);
  --blue-line: rgba(14,134,184,.26);
  --blue-wash: rgba(14,134,184,.05);
  --ink:       #17242C;
  --muted:     #5F6E77;
  --radius:    16px;
  --shadow-soft:0 12px 34px rgba(23,36,44,.07);
  --font-display:"Sora",system-ui,sans-serif;
  --font-body:"Manrope",system-ui,sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:18px;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img, video{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.container{ max-width:1140px; margin:0 auto; padding:0 24px; }

h1,h2,h3{ font-family:var(--font-display); letter-spacing:-.02em; text-wrap:balance; color:var(--ink); }
h1{ font-size:clamp(34px,5.2vw,56px); line-height:1.1; font-weight:600; }
h2{ font-size:clamp(26px,3.6vw,38px); line-height:1.18; font-weight:600; }
h3{ font-size:20px; font-weight:600; }
.accent{ color:var(--accent); }

.eyebrow{
  display:inline-block;
  font-size:12px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--accent-text);
  background:var(--accent-dim);
  border:1px solid rgba(18,134,111,.22);
  padding:6px 16px; border-radius:20px;
  margin-bottom:18px;
}
.section-sub{ color:var(--muted); max-width:64ch; margin-top:14px; font-size:19.5px; }

/* ---------- gombok ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--accent); color:#FFFFFF;
  font-family:var(--font-display); font-weight:600; font-size:15px;
  padding:14px 30px; border-radius:30px; border:none; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  box-shadow:0 8px 22px rgba(18,134,111,.22);
  /* a fénycsík a gomb keretén belül marad */
  position:relative; overflow:hidden;
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(18,134,111,.3); background:#0F7561; }

/* Fényvillanás: hoverre egy ferde, halvány csík fut át a gombon.
   ::after, mert a .btn-ek tartalma sima szöveg + ikon — nincs ütközés. */
.btn::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(105deg,
    transparent 38%, rgba(255,255,255,.42) 50%, transparent 62%);
  transform:translateX(-130%);
  transition:transform .55s cubic-bezier(.25,.7,.35,1);
}
.btn:hover::after{ transform:translateX(130%); }

.btn.ghost{
  background:#FFFFFF; color:var(--ink);
  border:1px solid var(--line); box-shadow:var(--shadow-soft);
}
.btn.ghost:hover{ border-color:var(--accent); color:var(--accent); background:#FFFFFF; }
/* fehér gombon a fehér csík nem látszana — halvány zöld árnyalat helyette */
.btn.ghost::after{
  background:linear-gradient(105deg,
    transparent 38%, rgba(18,134,111,.13) 50%, transparent 62%);
}

/* ---------- nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .3s ease, border-color .3s ease, box-shadow .3s ease;
  border-bottom:1px solid transparent;
  /* viewport-fit=cover mellett a tartalom a bevágás alá csúszhatna */
  padding-top:env(safe-area-inset-top, 0px);
  padding-left:env(safe-area-inset-left, 0px);
  padding-right:env(safe-area-inset-right, 0px);
}
.nav.scrolled{
  background:rgba(251,252,252,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
  box-shadow:0 4px 24px rgba(23,36,44,.05);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 24px; max-width:1180px; margin:0 auto;
}
/* A logó képként jön: a jelcsalád „egyszerű, kétszínű" változata. A magasság
   kötött, a szélesség arányosan igazodik — a fájl 2359.8 × 426 arányú. */
.logo{ display:inline-block; line-height:0; }
.logo img{ display:block; height:35px; width:auto; }
.footer-co .logo img{ height:40px; }
@media (max-width:640px){
  .logo img{ height:28px; }
}
.nav-links{ display:flex; align-items:center; gap:26px; font-size:15px; color:var(--muted); }
.nav-links a:hover{ color:var(--ink); }
.nav-links .btn{ padding:11px 22px; font-size:14.5px; }
/* Mobil menügomb — legalább 44px-es érintési felület. */
.nav-toggle{
  display:none; background:none; border:none; color:var(--ink);
  font-size:26px; cursor:pointer; line-height:1;
  width:44px; height:44px; align-items:center; justify-content:center;
}

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:100svh;
  display:flex; align-items:center;
  padding:120px 0 80px;
  overflow:hidden;
}
/* A hero háttere a robotok kék világát idézi: a gép mögötti fénykör kék,
   a felső sáv hűvös kékesbe hajlik. Így a fotó nem lóg ki a lapból. */
.hero-bg{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(55% 45% at 78% 55%, rgba(14,134,184,.09), transparent 65%),
    radial-gradient(38% 30% at 12% 8%, rgba(18,134,111,.06), transparent 70%),
    linear-gradient(180deg, #EFF6F9 0%, var(--bg) 48%);
}
.hero-grid-lines{ display:none; }
.hero-inner{
  position:relative; display:grid;
  grid-template-columns:1.05fr .95fr; gap:40px; align-items:center;
}
.hero h1{ margin-bottom:20px; }
.hero .lead{ font-size:21px; color:var(--muted); max-width:46ch; margin-bottom:32px; }
.hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-note{ margin-top:26px; font-size:15px; color:var(--muted); }
.hero-note b{ color:var(--ink); }

.hero-stage{ position:relative; height:420px; display:flex; align-items:center; justify-content:center; }
.lidar-ring{
  position:absolute; border-radius:50%;
  border:1px solid rgba(18,134,111,.14);
}
.lidar-ring.r1{ width:430px; height:430px; }
.lidar-ring.r2{ width:310px; height:310px; border-style:dashed; border-color:rgba(18,134,111,.2); }
.lidar-ring.r3{ width:200px; height:200px; border-color:rgba(18,134,111,.08); }
.glow-floor{
  position:absolute; bottom:34px; width:74%; height:34px; border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(23,36,44,.12), transparent 68%);
  filter:blur(5px);
}
/* Valódi gyártói termékfotó a hero-ban — a korábbi 3D-s körbeforgatás
   helyett (Kelemen Zsolt kérése). A kék fénykör a gépek saját LED- és
   kijelzőszínéből jön, ezért a fotó fehér háttere nem hat „kivágottnak". */
/* MINDEN gépfotó fehér alapon áll — Kelemen Zsolték és Bettina kérése.
   A kivágott (átlágszó hátterű) képek fehér kártyán ugyanúgy néznek ki,
   mint az eredeti stúdiófotók, de a keret körül nincs szürke doboz. */
/* A HERO-ban nincs kártya: a gép szabadon áll a lap hátterén. A hero
   háttere gyakorlatilag fehér, ezért a kivágott kép így is tisztán ül —
   csak egy lágy vetett árnyék tartja meg a lapon. Minden MÁS helyen
   fehér kártyán állnak a fotók. */
.hero-photo{
  position:relative; width:min(440px,90%);
  display:flex; align-items:center; justify-content:center;
}
.hero-photo img{
  position:relative; z-index:1; width:100%; height:auto;
  filter:drop-shadow(0 22px 30px rgba(23,36,44,.16));
}

.scroll-cue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:var(--muted); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
}
.scroll-cue .line{
  width:1px; height:38px; overflow:hidden; position:relative; background:var(--line);
}
.scroll-cue .line::after{
  content:""; position:absolute; top:-40%; left:0; width:100%; height:40%;
  background:var(--accent); animation:cue 1.8s ease-in-out infinite;
}
@keyframes cue{ 0%{top:-40%} 100%{top:110%} }

/* ---------- 360° videó szekció ----------
   position:sticky alapú "rögzítés": a böngésző natívan kezeli,
   így nem tud elcsúszni vagy más szekciókra rálógni */
.turntable{
  position:relative;
  background:linear-gradient(180deg, var(--bg) 0%, #F1F7F5 50%, var(--bg) 100%);
  height:400vh; height:400svh; /* ennyi görgetés alatt fordul körbe a robot */
}
.turntable-pin{
  position:sticky; top:0;
  height:100vh; height:100svh;
  display:flex; flex-direction:column;
  justify-content:center; align-items:center; overflow:hidden;
  padding:80px 24px 60px;
}
/* ha nincs JS vagy csökkentett mozgás van, sima szekcióként viselkedik */
html.no-js .turntable, html.reduced .turntable{ height:auto; }
html.no-js .turntable-pin, html.reduced .turntable-pin{ position:static; height:auto; }
.turntable-head{ text-align:center; margin-bottom:34px; max-width:640px; }
.turntable-head .eyebrow{ margin-bottom:14px; }
.turntable-stage{
  position:relative;
  width:min(560px, 92vw);
}
/* a forgó robot is háttér nélkül áll */
.turntable-video{ width:100%; aspect-ratio:16/9; }
.turntable-video video{ width:100%; height:auto; display:none; }
.turntable-video canvas{ width:100%; height:auto; display:none; }
.turntable-stage .stage-shadow{
  position:absolute; left:50%; bottom:6%; transform:translateX(-50%);
  width:62%; height:26px; border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(23,36,44,.14), transparent 68%);
  filter:blur(5px); pointer-events:none;
}
.deg-readout{
  position:absolute; top:14px; right:16px;
  font-family:var(--font-display); font-size:13px; font-weight:600;
  color:var(--accent); background:rgba(255,255,255,.85);
  border:1px solid rgba(18,134,111,.25);
  padding:5px 12px; border-radius:20px;
  font-variant-numeric:tabular-nums;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.callout{
  position:absolute; width:230px;
  background:rgba(255,255,255,.92);
  border:1px solid var(--line);
  border-radius:14px; padding:16px 18px;
  opacity:0; visibility:hidden;
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.callout h3{ font-size:16.5px; margin-bottom:5px; color:var(--accent-text); }
.callout p{ font-size:14.5px; color:var(--muted); line-height:1.5; }
.callout::before{
  content:""; position:absolute; top:50%; width:34px; height:1px;
  background:linear-gradient(90deg, var(--accent), transparent);
}
.callout.left{ left:calc(50% - 280px - 230px); }
.callout.left::before{ right:-36px; transform:scaleX(-1); }
.callout.right{ left:calc(50% + 280px); }
.callout.right::before{ left:-36px; }
.turntable-progress{
  margin-top:30px; width:min(320px,80vw); height:4px;
  background:#E3ECEA; border-radius:4px; overflow:hidden;
}
.turntable-progress i{
  display:block; height:100%; width:0%;
  background:var(--accent); border-radius:4px;
}
.callout-row-mobile{ display:none; }

/* ---------- modellvalaszto a 360°-os szekcioban ---------- */
.tt-tabs{
  display:flex; gap:8px; margin-bottom:26px;
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:34px; padding:6px; box-shadow:var(--shadow-soft);
}
.tt-tab{
  display:flex; flex-direction:column; align-items:center; gap:1px;
  background:none; border:none; cursor:pointer;
  font-family:var(--font-display); font-weight:600; font-size:15.5px;
  color:var(--muted); padding:9px 24px; border-radius:28px;
  transition:background .2s ease, color .2s ease;
}
.tt-tab small{ font-size:12px; font-weight:600; opacity:.75; letter-spacing:.02em; }
.tt-tab:hover{ color:var(--ink); }
.tt-tab.active{ background:var(--accent); color:#FFFFFF; }
.tt-tab.active small{ opacity:.9; }
[data-tt-view][hidden]{ display:none !important; }

.tt-stage-70{ width:min(980px,94vw); display:grid; grid-template-columns:1.1fr 1fr; gap:34px; align-items:center; }
.tt70-media{
  background:radial-gradient(circle at 50% 60%, var(--accent-dim), transparent 70%);
  border-radius:var(--radius); padding:10px;
}
.tt70-media img{ width:100%; height:auto; filter:drop-shadow(0 20px 34px rgba(23,36,44,.16)); }
.tt70-facts{ display:flex; flex-direction:column; gap:12px; }
.tt70-fact{
  background:var(--panel-2); border:1px solid var(--line);
  border-left:4px solid var(--accent);
  border-radius:12px; padding:14px 18px;
  transition:opacity .45s ease, transform .45s ease, border-left-color .45s ease;
}
/* A halványítás CSAK akkor lép be, ha a görgetéskoreográfia tényleg fut
   (a JS teszi ki a .tt-scroll jelzőt). Így ha nincs JS, csökkentett
   mozgás van, vagy elhasal a ScrollTrigger, minden olvasható marad. */
html.tt-scroll .tt70-fact{ opacity:.28; transform:translateY(6px); border-left-color:var(--accent-line); }
html.tt-scroll .tt70-fact.active{ opacity:1; transform:none; border-left-color:var(--accent); }
.tt70-fact b{ display:block; font-family:var(--font-display); font-size:17.5px; color:var(--accent-text); }
.tt70-fact span{ display:block; font-size:15.5px; color:var(--muted); margin-top:3px; line-height:1.55; }
.tt70-cta{ grid-column:1 / -1; justify-self:center; }

/* ---------- érvek (kártyák) ---------- */
.section{ padding:110px 0; position:relative; }
/* Vizuális ritmus: négy elkülöníthető szekciótónus, nem csak
   két szinte azonos világos. Sorrendben váltakoznak, hogy a
   szem lássa, hol kezdődik új gondolat. */
.section.alt{
  background:var(--panel);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.section.warm{
  background:var(--sand);
  border-top:1px solid var(--sand-line); border-bottom:1px solid var(--sand-line);
}
/* sötét sáv: a legerősebb ritmusváltás, és a valódi felvételek
   ezen a háttéren szólalnak meg igazán */
.section.dark{
  background:var(--ink-deep); color:var(--on-dark);
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}
/* FIGYELEM: a sötét szekcióban a kártyák továbbra is világosak,
   ezért a világos szövegszín CSAK a szekció saját tartalmára szól,
   nem szivároghat be a .ref-card / .case-card belsejébe. */
.section.dark .section-head h2,
.section.dark .case-intro h3{ color:#FFFFFF; }
.section.dark .section-head .section-sub,
.section.dark .ref-note{ color:var(--on-dark-muted); }
.section.dark .section-head .accent{ color:var(--accent-light); }
.section.dark > .container > .eyebrow,
.section.dark .section-head .eyebrow,
.section.dark .case-intro .eyebrow{
  color:var(--accent-light); background:rgba(45,199,168,.12);
  border-color:rgba(45,199,168,.28);
}
.section-head{ max-width:640px; margin-bottom:52px; }

.bento{
  display:grid; gap:16px;
  grid-template-columns:repeat(3,1fr);
}
.bento-cell{
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:var(--shadow-soft);
  transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.bento-cell:hover{ border-color:rgba(18,134,111,.35); transform:translateY(-3px); box-shadow:0 18px 40px rgba(23,36,44,.1); }
.bento-cell.wide{ grid-column:span 2; }
.bento-cell .num{
  font-family:var(--font-display); font-size:34px; font-weight:700;
  color:var(--accent); font-variant-numeric:tabular-nums;
  display:block; margin-bottom:8px; line-height:1.1;
}
.bento-cell h3{ margin-bottom:8px; }
.bento-cell p{ font-size:17px; color:var(--muted); }

/* Hármas robotsáv a főoldal hero-jában — a három családot egyszerre
   mutatja, így a főoldal nem billen el egyik felé sem. */
.hero-trio{
  display:grid; grid-template-columns:repeat(3,1fr); gap:18px;
  max-width:760px; margin:46px auto 0;
}
.ht-item{
  position:relative; display:block; text-align:center;
  padding:18px 12px 14px; border-radius:16px;
  background:#FFFFFF;
  border:1px solid var(--line);
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.ht-item:hover{ transform:translateY(-5px); box-shadow:0 20px 40px rgba(23,36,44,.12); border-color:var(--blue); }
.ht-item img{ position:relative; z-index:1; width:100%; height:auto; }
.ht-item span{
  position:relative; z-index:1; display:block; margin-top:8px;
  font-family:var(--font-display); font-size:14px; font-weight:600; color:var(--ink);
}
@media (max-width:640px){ .hero-trio{ gap:10px; margin-top:34px; } .ht-item{ padding:12px 8px 10px; } .ht-item span{ font-size:12px; } }

/* ============================================================
   KÉP + SZÖVEG PÁROSOK
   Zsolt kérése: „a képek ne csak díszítőelemek legyenek, kerüljenek
   releváns szövegrészek mellé, hogy segítsék a gyors megértést."
   Ezért nincs önmagában álló dekorkép: minden fotó egy konkrét
   állítás mellett ül, és a kék keret köti össze a kettőt.
   ============================================================ */
.split{
  display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center;
  margin-top:36px;
}
.split.rev .split-media{ order:2; }
.split-media{
  position:relative;
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.split-media img{ position:relative; z-index:1; width:100%; height:auto; }
.split-media video{ position:relative; z-index:1; width:100%; border-radius:10px; }
.split-cap{
  position:relative; z-index:1; margin-top:14px;
  font-size:13px; color:var(--blue-deep); font-weight:600;
}
.split-body h3{ font-size:clamp(21px,2.4vw,27px); margin-bottom:14px; }
.split-body p{ color:var(--muted); }
.split-body p + p{ margin-top:12px; }
.split-list{ list-style:none; margin-top:16px; display:grid; gap:11px; }
.split-list li{ position:relative; padding-left:28px; font-size:16.5px; color:var(--muted); }
.split-list li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:12px; height:2px; border-radius:2px; background:var(--blue);
}
.split-list li b{ color:var(--ink); }
@media (max-width:860px){
  .split{ grid-template-columns:1fr; gap:26px; }
  .split.rev .split-media{ order:0; }
}
/* Sötét szekcióban is használjuk a kép+szöveg párost (a videók ott ülnek),
   ezért a szövegszíneket külön át kell állítani — különben olvashatatlan. */
.section.dark .split-media{
  background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.14);
}
.section.dark .split-cap{ color:var(--blue-light); }
.section.dark .split-body h3{ color:#FFFFFF; }
.section.dark .split-body p{ color:var(--on-dark-muted); }
.section.dark .split-list li{ color:var(--on-dark-muted); }
.section.dark .split-list li b{ color:#FFFFFF; }
.section.dark .split-list li::before{ background:var(--blue-light); }

/* Fotósáv — több gép egy sorban, a családoldal tetején.
   Nem galéria: azt mutatja meg 2 másodperc alatt, mi van a kínálatban. */
.photo-band{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:34px; }
.pb-item{
  background:var(--panel-2); border:1px solid var(--line); border-radius:14px;
  padding:16px 14px 14px; text-align:center;
  transition:border-color .25s ease, transform .25s ease;
}
.pb-item:hover{ border-color:var(--blue-line); transform:translateY(-3px); }
.pb-item img{ width:100%; height:auto; }
.pb-item span{ display:block; margin-top:8px; font-size:13px; font-weight:700; color:var(--ink); }
.pb-item em{ display:block; font-style:normal; font-size:12px; color:var(--muted); }
@media (max-width:860px){ .photo-band{ grid-template-columns:repeat(2,1fr); } }

/* Kék kiemelések */
.accent-b{ color:var(--blue-deep); }
.section.dark .accent-b{ color:var(--blue-light); }
.eyebrow.blue{ color:var(--blue-deep); background:var(--blue-dim); border-color:var(--blue-line); }

/* ---------- számsáv ----------
   Nagy, önmagában olvasható számblokkok. A bekezdésbe rejtett adat
   nem üt; itt minden szám mögött konkrét, ügyféltől kapott mérés áll.
   Sötét szekcióban is működik (lásd a .section.dark felülírást lent). */
.figures{
  display:grid; gap:16px;
  grid-template-columns:repeat(4,1fr);
  margin-top:8px;
}
.fig{
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px 22px;
  box-shadow:var(--shadow-soft);
  transition:border-color .25s ease, transform .25s ease;
}
.fig:hover{ border-color:rgba(18,134,111,.35); transform:translateY(-3px); }
/* A számok kékek: ez a kiegészítő szín fő szerepe — adat és tény.
   A zöld marad a cselekvésé (CTA), így a kettő nem versenyez. */
.fig{ border-top:3px solid var(--blue); }
.fig b{
  display:block; line-height:1.05; margin-bottom:10px;
  font-family:var(--font-display); font-size:38px; font-weight:700;
  color:var(--blue-deep); font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
.fig span{ display:block; font-size:15px; color:var(--muted); }
.fig em{ display:block; margin-top:9px; font-size:12.5px; font-style:normal; color:var(--blue-deep); opacity:.85; }
.section.dark .fig{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.12); border-top-color:var(--blue-light); box-shadow:none; }
.section.dark .fig b{ color:var(--blue-light); }
.section.dark .fig span{ color:var(--on-dark-muted); }
.section.dark .fig em{ color:var(--blue-light); }
@media (max-width:900px){ .figures{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .figures{ grid-template-columns:1fr; } .fig b{ font-size:32px; } }

/* ---------- kinek ajánljuk ---------- */
.audience{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.audience-card{
  position:relative; display:block;
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--radius); padding:34px 28px 30px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.audience-card:hover{ border-color:var(--accent); transform:translateY(-4px); box-shadow:0 20px 44px rgba(23,36,44,.12); }
.audience-card .icon{
  width:52px; height:52px; border-radius:14px;
  background:var(--accent-dim); border:1px solid rgba(18,134,111,.22);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:20px;
}
.audience-card .icon svg{ width:26px; height:26px; stroke:var(--accent); }
.audience-card h3{ font-size:21px; margin-bottom:10px; }
.audience-card p{ font-size:17px; color:var(--muted); margin-bottom:22px; }
.audience-card .link{
  font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--accent-text);
}
.audience-card .link::after{ content:" →"; }

/* ---------- kalkulátor ---------- */
.calc{
  display:grid; grid-template-columns:1fr 1fr; gap:40px;
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:24px; padding:44px;
  box-shadow:var(--shadow-soft);
}
.calc-inputs label{
  display:block; font-family:var(--font-display); font-weight:600;
  font-size:17px; margin-bottom:10px;
}
.calc-field{ margin-bottom:32px; }
.calc-value{
  font-family:var(--font-display); font-size:26px; font-weight:700;
  color:var(--accent); font-variant-numeric:tabular-nums;
  display:block; margin-bottom:12px;
}
input[type="range"]{
  width:100%; appearance:none; -webkit-appearance:none;
  height:5px; border-radius:5px; background:#E3ECEA; outline:none;
}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none;
  width:22px; height:22px; border-radius:50%;
  background:var(--accent); cursor:pointer;
  border:4px solid #FFFFFF;
  box-shadow:0 3px 12px rgba(18,134,111,.4);
}
input[type="range"]::-moz-range-thumb{
  width:16px; height:16px; border-radius:50%;
  background:var(--accent); cursor:pointer; border:3px solid #FFFFFF;
}
.seg{ display:flex; gap:8px; flex-wrap:wrap; }
.seg button{
  flex:1; min-width:90px;
  background:#FFFFFF; border:1px solid var(--line);
  color:var(--muted); font-family:var(--font-body); font-size:15px; font-weight:600;
  padding:11px 10px; border-radius:22px; cursor:pointer;
  transition:all .2s ease;
}
.seg button.active{
  background:var(--accent); border-color:var(--accent); color:#FFFFFF;
  box-shadow:0 5px 14px rgba(18,134,111,.28);
}
.calc-results{ display:flex; flex-direction:column; gap:14px; }
.result-tile{
  background:var(--panel); border:1px solid var(--line);
  border-radius:14px; padding:20px 24px;
  display:flex; align-items:baseline; justify-content:space-between; gap:14px;
}
.result-tile .val{
  font-family:var(--font-display); font-size:30px; font-weight:700;
  color:var(--accent); font-variant-numeric:tabular-nums; white-space:nowrap;
}
.result-tile .lbl{ font-size:14.5px; color:var(--muted); max-width:26ch; text-align:right; }
.calc-note{ font-size:14px; color:var(--muted); margin-top:6px; }
.calc-cta{ margin-top:10px; }

/* ---------- űrlap ---------- */
.signup{ max-width:660px; margin:0 auto; text-align:center; }
.signup form{
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
  margin-top:38px; text-align:left;
}
.signup .field{ display:flex; flex-direction:column; gap:7px; }
.signup .field.full{ grid-column:span 2; }
/* A grid-elemek alapértelmezett min-width:auto értéke a tartalom
   min-content szélessége. A legördülőknél ez a leghosszabb opció hossza
   („Bérlés — fix havi díj, szervizzel"), ami mobilon 428 px-re feszítette
   szét az oszlopot, és az egész oldal vízszintesen görgethető lett. */
.signup .field, .signup .consent, .signup .btn{ min-width:0; }
.signup input, .signup select{ width:100%; min-width:0; max-width:100%; }
.signup label{ font-size:14.5px; font-weight:600; color:var(--muted); letter-spacing:.04em; }
.signup input{
  background:#FFFFFF; border:1px solid var(--line);
  border-radius:12px; padding:14px 16px;
  color:var(--ink); font-family:var(--font-body); font-size:16.5px;
  outline:none; transition:border-color .2s ease, box-shadow .2s ease;
}
.signup input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(18,134,111,.12); }
.signup input::placeholder{ color:#A9B6BC; }
.signup select{
  background:#FFFFFF; border:1px solid var(--line);
  border-radius:12px; padding:14px 16px;
  color:var(--ink); font-family:var(--font-body); font-size:16.5px;
  outline:none; cursor:pointer; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235F6E77' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:18px;
  padding-right:42px;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.signup select:focus{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(18,134,111,.12); }
.signup .btn{ grid-column:span 2; justify-content:center; padding:17px; font-size:17px; }
.signup .btn[disabled]{ opacity:.65; cursor:progress; transform:none; }

/* Csapdamező: nem display:none, mert azt a kitöltő robotok egy része
   felismeri és kihagyja. Kiemeljük a képernyőről, de a DOM-ban marad. */
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.form-error{
  grid-column:span 2; margin-top:-4px;
  font-size:14.5px; color:#B3261E;
}
@media (max-width:900px){ .form-error{ grid-column:span 1; } }
.form-success{
  display:none; margin-top:38px;
  background:var(--accent-dim); border:1px solid rgba(18,134,111,.28);
  border-radius:16px; padding:34px; text-align:center;
}
.form-success h3{ color:var(--accent); margin-bottom:8px; font-size:22px; }
.form-success p{ color:var(--muted); font-size:16.5px; }
.form-hint{ margin-top:16px; font-size:14.5px; color:var(--muted); }

/* ---------- élesben: munkavideó ---------- */
.work-video{
  border-radius:20px; overflow:hidden;
  border:1px solid var(--line);
  background:#0B0E13;
  box-shadow:var(--shadow-soft);
}
.work-video video{ width:100%; height:auto; display:block; }

/* ---------- folyamat lépések ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
/* „opcionális" jelölő a lépcső 3. fokán. */
.step-opt{
  display:inline-block; vertical-align:middle; margin-left:6px;
  font-family:var(--font-body); font-size:.62rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--accent-text); background:rgba(18,134,111,.10);
  border-radius:999px; padding:3px 8px;
}
/* Négylépcsős változat (konverziós lépcső a takarítós aloldalon). */
.steps-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:1000px){ .steps-4{ grid-template-columns:repeat(2,1fr); } }
.step{
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--radius); padding:30px 28px;
  box-shadow:var(--shadow-soft);
}
.step-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%;
  background:var(--accent); color:#fff;
  font-family:var(--font-display); font-weight:700; font-size:19px;
  margin-bottom:18px;
}
.step h3{ margin-bottom:8px; }
.step p{ font-size:17px; color:var(--muted); }
/* Feltételes kiegészítés a lépés végén (pl. „robotos bemutató egyedi
   egyeztetéssel") — halkabban, külön sorban, hogy ne olvasódjon ígéretnek. */
.step p small{ display:block; margin-top:8px; font-size:14.5px; opacity:.82; }

/* ---------- FAQ ---------- */
.faq{ max-width:760px; }
.faq details{
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:14px; margin-bottom:10px;
  box-shadow:var(--shadow-soft);
}
.faq summary{
  cursor:pointer; list-style:none;
  padding:18px 22px;
  font-family:var(--font-display); font-weight:600; font-size:17.5px;
  display:flex; justify-content:space-between; align-items:center; gap:14px;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+"; flex:none;
  font-size:22px; color:var(--accent); font-weight:400;
  transition:transform .25s ease;
}
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{
  padding:0 22px 20px; font-size:17px; color:var(--muted);
}

/* ---------- adatkezelési hozzájárulás ---------- */
/* A címke szövege nincs elemben, ezért flexben minden szövegdarab külön
   névtelen flex-elem lett — ezek nem zsugorodnak a min-content alá, és
   mobilon kilógtak a képernyőből. Sima blokk + kiemelt jelölőnégyzet:
   a szöveg így normálisan tördelődik. */
.consent{
  grid-column:span 2;
  display:block; position:relative; padding-left:27px;
  font-size:14.5px; color:var(--muted); line-height:1.55;
  cursor:pointer;
}
.consent input{
  position:absolute; left:0; top:3px;
  width:17px; height:17px; margin:0;
  accent-color:var(--accent); cursor:pointer;
}

/* ---------- mobil CTA-sáv ---------- */
.mobile-cta{ display:none; }

/* ---------- jogi oldal ---------- */
.legal{ max-width:760px; }
.legal h2{ font-size:22px; margin:42px 0 12px; }
.legal h3{ font-size:17px; margin:24px 0 8px; }
.legal p, .legal li{ font-size:17px; color:var(--muted); line-height:1.7; }
.legal p{ margin-bottom:10px; }
.legal b{ color:var(--ink); }
.legal ul{ padding-left:22px; margin:10px 0 16px; }
.legal li{ margin-bottom:6px; }
.legal table{ width:100%; border-collapse:collapse; margin:14px 0 20px; font-size:15.5px; display:block; overflow-x:auto; }
.legal th, .legal td{ border:1px solid var(--line); padding:10px 12px; text-align:left; color:var(--muted); vertical-align:top; min-width:120px; }
.legal th{ color:var(--ink); font-family:var(--font-display); font-weight:600; background:var(--panel); }
.legal a{ color:var(--accent-text); text-decoration:underline; }
.legal .updated{ font-size:14.5px; margin-bottom:8px; }
.consent a{ color:var(--accent-text); text-decoration:underline; }

/* ---------- USP: bizalmi sáv a hero alatt ---------- */
/* A bizalmi sáv szerződéses tényeket sorol, ezért kék tónust kap. */
.trust-bar{
  border-top:1px solid var(--blue-line);
  border-bottom:1px solid var(--blue-line);
  background:linear-gradient(180deg,#EAF3F7,#E1EDF3);
}
.trust-bar .container{
  display:flex; flex-wrap:wrap; gap:16px 40px;
  justify-content:center; align-items:center;
  padding-top:22px; padding-bottom:22px;
}
.trust-item{
  display:flex; align-items:center; gap:11px;
  font-family:var(--font-display); font-weight:600; font-size:15.5px; color:var(--ink);
}
.trust-item svg{ width:24px; height:24px; stroke:var(--blue); fill:none; stroke-width:1.7; flex:none; }

/* ---------- CTA microcopy (gomb alatti apró szöveg) ---------- */
.cta-micro{ margin-top:14px; font-size:15.5px; color:var(--muted); }
.cta-micro b{ color:var(--accent-text); font-weight:600; }

/* ---------- kalkulátor: kiemelt, hangsúlyos box ---------- */
#kalkulator{ background:var(--accent-wash); }
.calc{
  border:1px solid var(--accent-line);
  border-top:4px solid var(--accent);
  box-shadow:0 24px 60px rgba(18,134,111,.14);
}
/* az első eredmény-csempe legyen a leghangsúlyosabb */
.result-tile:first-of-type{
  /* sötétebb zöld: a --accent-en a fehér kis szöveg csak 4,2:1 volt,
     az --accent-2-n 5,0:1 fölé megy */
  background:var(--accent-2); border-color:var(--accent-2);
}
.result-tile:first-of-type .val{ color:#fff; }
.result-tile:first-of-type .lbl{ color:rgba(255,255,255,.92); }

/* ---------- fő érv-kártya: erős kiemelés ---------- */
.bento-cell.wide{
  background:var(--accent-wash);
  border-color:var(--accent-line);
  box-shadow:inset 4px 0 0 var(--accent), var(--shadow-soft);
}

/* ---------- ismételt USP-sáv (bizalmi pontok az űrlap előtt) ---------- */
.usp-strip{ padding:0 0 20px; }
.usp-strip .usp-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
}
.usp-card{
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--radius); padding:24px;
  box-shadow:var(--shadow-soft);
}
.usp-card .ic{
  width:46px; height:46px; border-radius:12px; margin-bottom:14px;
  background:var(--accent-dim); border:1px solid var(--accent-line);
  display:flex; align-items:center; justify-content:center;
}
.usp-card .ic svg{ width:24px; height:24px; stroke:var(--accent); fill:none; stroke-width:1.7; }
.usp-card h3{ font-size:17px; margin-bottom:6px; }
.usp-card p{ font-size:16.5px; color:var(--muted); }

/* ---------- gomb alatti microcopy középre (kalkulátor, űrlap) ---------- */
.cta-micro.center{ text-align:center; margin-top:12px; }

/* ---------- két gyártó / két világ ---------- */
.brand-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.brand-card{
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--radius); padding:32px;
  box-shadow:var(--shadow-soft);
}
.brand-name{
  display:inline-block; font-family:var(--font-display); font-weight:700;
  font-size:13px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent-text); background:var(--accent-dim);
  border:1px solid var(--accent-line); padding:6px 16px; border-radius:20px;
  margin-bottom:16px;
}
.brand-card h3{ font-size:20px; margin-bottom:10px; }
.brand-card > p{ font-size:17px; color:var(--muted); margin-bottom:18px; }
.brand-models{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; padding-top:20px; border-top:1px solid var(--line); }
.brand-models span{
  font-family:var(--font-display); font-size:12.5px; font-weight:600; color:var(--muted);
  background:var(--panel); border:1px solid var(--line);
  padding:6px 12px; border-radius:8px;
}

/* ---------- modell-összehasonlító táblázat ---------- */
.table-hint{ display:none; font-size:15px; color:var(--muted); margin-bottom:10px; }
.model-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel-2); box-shadow:var(--shadow-soft); }
.model-table{ width:100%; border-collapse:collapse; min-width:760px; }
.model-table th, .model-table td{
  padding:16px 18px; text-align:left; vertical-align:top;
  border-bottom:1px solid var(--line); font-size:16px; color:var(--muted);
}
.model-table th{
  font-family:var(--font-display); font-weight:600; font-size:14px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--ink);
  background:var(--panel); white-space:nowrap;
}
.model-table td b{ color:var(--ink); }
.model-table tr:last-child td{ border-bottom:none; }
.model-table td:last-child{ white-space:nowrap; font-variant-numeric:tabular-nums; }
.model-table td:last-child b{ color:var(--accent); font-family:var(--font-display); font-size:17px; }
.model-table .tr-group td{
  background:var(--accent-wash); color:var(--accent-text);
  font-family:var(--font-display); font-weight:700; font-size:14px;
  letter-spacing:.12em; text-transform:uppercase;
}

/* ---------- modellek teaser a főoldalon ---------- */
.models-teaser{
  display:grid; grid-template-columns:1fr 1fr auto; gap:24px; align-items:center;
  background:var(--panel-2); border:1px solid var(--line);
  border-left:4px solid var(--accent);
  border-radius:var(--radius); padding:28px 32px;
  box-shadow:var(--shadow-soft);
}
.models-teaser .mt-col b{ display:block; font-family:var(--font-display); font-size:17px; color:var(--ink); margin-bottom:4px; }
.models-teaser .mt-col span{ font-size:16.5px; color:var(--muted); }

/* ---------- felhasználási területek: kompakt fülek ---------- */
.uc-tabs{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
.uc-tab{
  background:var(--panel-2); border:1px solid var(--line);
  color:var(--muted); font-family:var(--font-display); font-weight:600; font-size:15.5px;
  padding:11px 20px; border-radius:24px; cursor:pointer;
  transition:all .2s ease;
}
.uc-tab:hover{ color:var(--ink); border-color:var(--accent-line); }
.uc-tab.active{
  background:var(--accent); border-color:var(--accent); color:#fff;
  box-shadow:0 6px 16px rgba(18,134,111,.26);
}
.uc-panel{
  display:none;
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--radius); padding:32px;
  box-shadow:var(--shadow-soft);
  grid-template-columns:1.6fr 1fr; gap:32px;
}
.uc-panel.active{ display:grid; }
.uc-main h3{ font-size:21px; margin-bottom:16px; }
.uc-list{ list-style:none; padding:0; margin:0 0 20px; display:flex; flex-direction:column; gap:10px; }
.uc-list li{ font-size:17px; color:var(--muted); padding-left:28px; position:relative; }
.uc-list li::before{
  content:"✓"; position:absolute; left:0; top:0;
  color:var(--accent-text); font-weight:700;
}
.uc-main .link{ font-family:var(--font-display); font-weight:600; font-size:16.5px; color:var(--accent-text); }
.uc-main .link::after{ content:" →"; }
.uc-side{ display:flex; flex-direction:column; gap:12px; }
/* Robotfotó a választó oldalsávjában — hogy a látogató a fülváltásnál
   ne csak szöveget lásson, hanem azt is, melyik gépről van szó. */
.uc-photo{
  position:relative; border-radius:12px; padding:16px;
  background:#FFFFFF;
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
}
.uc-photo img{ position:relative; z-index:1; width:100%; max-width:230px; height:auto; }

.uc-stat{
  background:var(--blue-wash); border:1px solid var(--blue-line);
  border-radius:12px; padding:18px 20px;
}
.uc-stat b{
  display:block; font-family:var(--font-display); font-size:24px; font-weight:700;
  color:var(--blue-deep); line-height:1.15; font-variant-numeric:tabular-nums;
}
.uc-stat span{ font-size:15px; color:var(--muted); }

/* ---------- árazási kártyák (bérlés / vásárlás) ---------- */
.price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:start; }
/* Kétkártyás árazás (bérlés / megvásárlás) — ne feszüljön szét a rácson. */
.price-grid-2{ grid-template-columns:repeat(2,1fr); max-width:820px; margin-inline:auto; }
@media (max-width:820px){ .price-grid-2{ grid-template-columns:1fr; } }
.price-card{
  position:relative; display:flex; flex-direction:column;
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--radius); padding:30px 28px;
  box-shadow:var(--shadow-soft);
}
.price-card.featured{
  border-color:var(--accent); border-top:4px solid var(--accent);
  box-shadow:0 24px 60px rgba(18,134,111,.16);
}
.price-badge{
  position:absolute; top:-13px; left:28px;
  background:var(--accent); color:#fff;
  font-family:var(--font-display); font-size:11px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  padding:5px 14px; border-radius:20px;
}
.price-label{
  display:block; font-family:var(--font-display); font-size:13px; font-weight:600;
  letter-spacing:.04em; color:var(--muted); margin-bottom:10px;
}
.price-val{
  font-family:var(--font-display); font-size:33px; font-weight:700;
  color:var(--accent); line-height:1.1; margin-bottom:12px;
  font-variant-numeric:tabular-nums;
}
.price-val small{ font-size:16px; font-weight:600; color:var(--muted); }
.price-desc{ font-size:16.5px; color:var(--muted); margin-bottom:18px; }
.price-list{ list-style:none; padding:0; margin:0 0 24px; display:flex; flex-direction:column; gap:9px; }
.price-list li{ font-size:16.5px; color:var(--muted); padding-left:26px; position:relative; }
.price-list li::before{
  content:"✓"; position:absolute; left:0; top:0;
  color:var(--accent-text); font-weight:700; font-size:14px;
}
.price-card .btn{ margin-top:auto; justify-content:center; }

/* ---------- Rólunk / csapat ---------- */
.team-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; max-width:820px; }
.team-card{
  display:flex; gap:20px; align-items:center;
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--radius); padding:24px;
  box-shadow:var(--shadow-soft);
}
.team-photo{
  flex:none; width:88px; height:88px; border-radius:50%;
  background:var(--accent-dim); border:1px solid var(--accent-line);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  font-family:var(--font-display); font-weight:700; font-size:26px; color:var(--accent);
}
.team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-info h3{ font-size:18px; margin-bottom:2px; }
.team-role{ display:block; font-size:15px; color:var(--accent-text); font-weight:600; margin-bottom:8px; }
.team-info p{ font-size:16px; color:var(--muted); margin-bottom:6px; }
.team-info a{ font-size:16px; color:var(--accent-text); }

/* ---------- esettanulmány-kártyák ---------- */
.case-intro{ margin:44px 0 20px; }
.case-intro .eyebrow{ margin-bottom:10px; }
.case-intro h3{ font-size:24px; }
.case-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.case-card{
  display:flex; flex-direction:column;
  color:var(--ink);
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow-soft);
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.case-card:hover{ transform:translateY(-4px); border-color:var(--accent); box-shadow:0 20px 44px rgba(23,36,44,.12); }
.case-media{
  aspect-ratio:16/9; background:var(--accent-wash);
  display:flex; align-items:center; justify-content:center;
  border-bottom:1px solid var(--line);
}
.case-media svg{ width:60px; height:60px; stroke:var(--accent); fill:none; stroke-width:1.4; opacity:.85; }
.case-body{ padding:24px 26px 26px; }
.case-label{
  display:inline-block; font-family:var(--font-display); font-size:11px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent);
  background:var(--accent-dim); border:1px solid var(--accent-line);
  padding:4px 12px; border-radius:20px; margin-bottom:14px;
}
.case-body .num{ display:block; font-family:var(--font-display); font-size:30px; font-weight:700; color:var(--accent); line-height:1.1; margin-bottom:4px; font-variant-numeric:tabular-nums; }
.case-body h3{ margin-bottom:8px; }
.case-body p{ font-size:17px; color:var(--muted); margin-bottom:16px; }
.case-body .link{ font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--accent-text); }
.case-body .link::after{ content:" →"; }

/* ---------- valodi referenciak (portre-video + idezet) ---------- */
/* a felvetelek telefonnal, allo formatumban keszultek — fix, keskeny
   kolumnak, hogy a 9:16 kartya ne legyen abszurd magas asztali gepen */
.ref-grid{ display:grid; grid-template-columns:repeat(auto-fit,300px); justify-content:center; gap:20px; }
.ref-card{
  display:flex; flex-direction:column;
  /* a kártya sajat szovegszint hoz: igy sotet szekcioban sem orokol
     vilagos szint a fehér hatterre (lasd .section.dark) */
  color:var(--ink);
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow-soft);
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.ref-card:hover{ transform:translateY(-4px); border-color:var(--accent); box-shadow:0 20px 44px rgba(23,36,44,.12); }
.ref-media{
  position:relative; aspect-ratio:9/16; background:#0f1a20;
  border-bottom:1px solid var(--line); overflow:hidden;
}
.ref-media video{ width:100%; height:100%; object-fit:cover; display:block; }
.ref-media .ref-badge{
  position:absolute; top:12px; left:12px; z-index:2;
  font-family:var(--font-display); font-size:10.5px; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase; color:#fff;
  background:rgba(18,134,111,.92); backdrop-filter:blur(4px);
  padding:5px 11px; border-radius:20px;
}
.ref-body{ padding:22px 24px 24px; display:flex; flex-direction:column; flex:1; }
.ref-quote{
  font-family:var(--font-display); font-size:18px; font-weight:600;
  line-height:1.5; color:var(--ink); margin-bottom:14px;
}
.ref-source{ margin-top:auto; padding-top:12px; border-top:1px solid var(--line); }
/* csak idezetes valtozat (fooldal): nincs media, ezert szelesebb
   kartyak es a szegmensjelolo a szovegblokk elejere kerul */
.ref-grid-quotes{ grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); max-width:920px; margin:0 auto; }
.ref-grid-quotes .ref-body{ padding:28px 30px 26px; }
.ref-badge-static{
  display:inline-block; margin-bottom:14px;
  font-family:var(--font-display); font-size:11.5px; font-weight:700;
  letter-spacing:.11em; text-transform:uppercase; color:#FFFFFF;
  background:var(--accent); padding:5px 12px; border-radius:20px;
}
.ref-link{
  display:inline-block; margin-top:14px;
  font-family:var(--font-display); font-weight:600; font-size:15.5px;
  color:var(--accent-text);
}
.ref-link::after{ content:" →"; }
.ref-link:hover{ text-decoration:underline; }
.ref-source b{ display:block; font-size:16px; }
.ref-source span{ display:block; font-size:13.5px; color:var(--muted); margin-top:2px; }
/* Ügyfél-logó a referencia mellett. Fix magasság, hogy több logónál is egy
   vonalban álljanak; a szélesség a képarányból jön.
   A Somogyi-logó ÁLLÓ elrendezésű (S-jel fölül, felirat alul), ezért nagyobb
   magasság kell, mint egy fekvő szóvédjegynél — 34px-en a felirat
   olvashatatlan lenne. Ha kapunk fekvő változatot, ez 34px-re csökkenthető. */
.ref-source .ref-logo{
  display:block; height:64px; width:auto; margin-bottom:12px;
}
@media (max-width:640px){ .ref-source .ref-logo{ height:52px; } }
.ref-note{ font-size:15px; color:var(--muted); margin-top:18px; }

/* ---------- modell-kiemeles (atlatszo render + specek) ---------- */
.spotlight{ display:grid; grid-template-columns:1.05fr 1fr; gap:44px; align-items:center; }
.spotlight-media{
  background:radial-gradient(circle at 50% 60%, var(--accent-dim), transparent 70%);
  border-radius:var(--radius); padding:18px;
  display:flex; align-items:center; justify-content:center;
}
.spotlight-media img{ width:100%; height:auto; display:block; filter:drop-shadow(0 24px 40px rgba(23,36,44,.18)); }
.spotlight-body h2{ margin-bottom:14px; }
.spotlight-body > p{ color:var(--muted); margin-bottom:22px; }
.spec-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:22px; }
.spec{
  background:var(--panel-2); border:1px solid var(--line);
  border-top:3px solid var(--accent);
  border-radius:12px; padding:14px 14px 13px;
}
.spec b{ display:block; font-family:var(--font-display); font-size:19px; color:var(--accent); line-height:1.15; }
.spec span{ display:block; font-size:13.5px; color:var(--muted); margin-top:4px; }
.spotlight-note{ font-size:16px; color:var(--muted); margin-bottom:24px; }

/* ---------- fajo pontok (a problema, mielott a megoldas jon) ---------- */
.pain{
  background:var(--sand); border:1px solid var(--sand-line);
  border-left:5px solid var(--accent);
  border-radius:var(--radius); padding:34px 38px 30px;
  margin-bottom:34px;
}
.pain-head{ margin-bottom:20px; }
.pain-tag{
  display:inline-block; font-family:var(--font-display);
  font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:#8A5A21; background:rgba(180,120,40,.12);
  border:1px solid rgba(180,120,40,.26);
  padding:5px 14px; border-radius:20px; margin-bottom:14px;
}
.pain-head h3{ font-size:22px; max-width:44ch; }
.pain-list{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:14px 30px; }
.pain-list li{
  position:relative; padding-left:32px;
  font-size:16.5px; color:var(--muted); line-height:1.6;
}
.pain-list li::before{
  content:"✕"; position:absolute; left:0; top:1px;
  width:21px; height:21px; border-radius:50%;
  background:rgba(180,120,40,.14); color:#8A5A21;
  font-size:11px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}
.pain-answer{
  margin-top:24px; padding-top:20px; border-top:1px solid var(--sand-line);
  font-size:17.5px; color:var(--muted);
}
.pain-answer b{ color:var(--ink); }

/* ---------- kozepre zart hero (fooldal: nincs media, hogy ne
   billenjen el egyetlen robotcsalad fele sem) ---------- */
.hero-center{ text-align:center; padding:150px 0 90px; min-height:auto; }
.hero-center .container{ position:relative; max-width:900px; }
.hero-center h1{ margin-bottom:22px; }
.hero-center .lead{ font-size:21px; color:var(--muted); margin:0 auto 34px; max-width:62ch; }
.hero-center .hero-ctas{ justify-content:center; }
.hero-center .cta-micro{ margin-top:18px; }

/* harom egyenlo kartya (a bento alapbol is 3 kolumna, de igy
   biztosan nem tud .wide cella beleszolni) */
.bento-3{ grid-template-columns:repeat(3,1fr); }
.bento-3 .bento-cell{ grid-column:span 1; }

.calc-hint{
  font-size:15px; color:var(--accent-text); font-weight:600;
  margin:2px 0 14px; text-align:right;
}

/* ---------- modellvalaszto (kep + tulajdonsagok) ---------- */
.ms-tabs{
  display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:34px; padding:6px; box-shadow:var(--shadow-soft);
  width:fit-content; max-width:100%;
}
.ms-tab{
  background:none; border:none; cursor:pointer;
  font-family:var(--font-display); font-weight:600; font-size:15.5px;
  color:var(--muted); padding:10px 22px; border-radius:28px;
  transition:background .2s ease, color .2s ease; white-space:nowrap;
}
.ms-tab:hover{ color:var(--ink); }
.ms-tab.active{ background:var(--accent); color:#FFFFFF; }

.ms-panel{ display:none; }
.ms-panel.active{
  display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:38px; align-items:center;
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow-soft);
  padding:32px 36px;
}
/* Nagyobb kép, kontrasztosabb háttér — a meetingen ez konkrét kérés volt:
   „a modellválasztó képei kis kivágatok halvány színátmeneten, ugyanaz a
   kép nagyobban, kontrasztosabb háttérrel sokkal drágább hatást kelt." */
/* A modellválasztó panel fehér, ezért a médiakeret is világos marad:
   a gyártói fotók eredeti fehér háttere itt beleolvad, nem lóg ki
   belőle doboz. A kék csak keretként és halvány talpfényként van jelen. */
.ms-media{
  position:relative; overflow:hidden;
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:var(--radius); padding:18px;
  display:flex; align-items:center; justify-content:center;
}
.ms-media img{
  position:relative; z-index:1;
  width:100%; max-width:400px; height:auto;
}
.ms-media video{ position:relative; z-index:1; width:100%; border-radius:10px; }
.ms-media-cap{
  position:absolute; z-index:2; left:14px; bottom:12px;
  font-size:11.5px; font-weight:700; letter-spacing:.04em;
  color:var(--blue-deep); background:rgba(255,255,255,.82);
  border-radius:20px; padding:4px 11px;
}
.ms-body h3{ font-size:23px; margin-bottom:10px; }
.ms-role{
  display:inline-block; font-family:var(--font-display);
  font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue-deep); background:var(--blue-dim);
  border:1px solid var(--blue-line);
  padding:5px 13px; border-radius:20px; margin-bottom:14px;
}
.ms-body > p{ font-size:17px; color:var(--muted); margin-bottom:20px; }
.ms-specs{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
/* Műszaki adatok = kék. Ez a kiegészítő szín fő szerepe: minden, ami
   tény és szám, kék; a cselekvés (gomb, lépés) marad zöld. */
.ms-specs div{
  background:var(--blue-wash); border:1px solid var(--blue-line);
  border-left:3px solid var(--blue);
  border-radius:10px; padding:11px 14px;
}
.ms-specs b{ display:block; font-family:var(--font-display); font-size:16.5px; color:var(--blue-deep); line-height:1.2; }
.ms-specs span{ display:block; font-size:14px; color:var(--muted); margin-top:2px; }
.ms-note{ font-size:15px; color:var(--muted); margin-top:20px; }

/* ---------- footer ---------- */
footer{
  border-top:1px solid var(--line);
  padding:36px 0; color:var(--muted); font-size:13.5px;
  background:var(--panel);
}
.footer-inner{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; align-items:center; }
.footer-links{ display:flex; gap:22px; flex-wrap:wrap; }
.footer-links a:hover{ color:var(--ink); }
.footer-top{
  display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:28px;
  padding-bottom:32px; margin-bottom:26px;
  border-bottom:1px solid var(--line);
}
.footer-co p{ font-size:13.5px; color:var(--muted); margin-top:12px; max-width:30ch; }
.footer-col{ display:flex; flex-direction:column; gap:7px; font-size:13.5px; color:var(--muted); }
.footer-col h4{
  font-family:var(--font-display); font-size:12px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink); margin-bottom:4px;
}
.footer-col a:hover{ color:var(--accent-text); }
.form-hint a{ color:var(--accent-text); }

/* ---------- landing hero (aloldalak) ---------- */
.landing-hero{
  position:relative; padding:170px 0 90px; overflow:hidden;
}
/* Kétoszlopos hero a családoldalakon: bal oldalt szöveg, jobbra valódi
   robotfotó. Kelemen Zsolt kérése — „a hero részben is jelenjenek meg
   robotok, ne csak szöveg legyen". */
.landing-hero .lh-grid{
  position:relative; display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:48px; align-items:center;
}
.landing-hero .lh-photo{
  position:relative; justify-self:center; width:min(400px,90%);
}
.landing-hero .lh-photo img{
  position:relative; z-index:1; width:100%; height:auto;
  filter:drop-shadow(0 22px 30px rgba(23,36,44,.16));
}
@media (max-width:900px){
  .landing-hero .lh-grid{ grid-template-columns:1fr; gap:28px; }
  .landing-hero .lh-photo{ width:min(300px,72%); order:-1; }
}
.landing-hero .crumb{ font-size:13px; color:var(--muted); margin-bottom:22px; display:block; }
.landing-hero .crumb a{ color:var(--accent-text); }
.landing-hero h1{ max-width:20ch; margin-bottom:20px; }
.landing-hero .lead{ font-size:19px; color:var(--muted); max-width:56ch; margin-bottom:32px; }
.landing-points{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:60px; }
.landing-points .bento-cell h3{ display:flex; align-items:center; gap:10px; }
.check{
  flex:none; width:22px; height:22px; border-radius:50%;
  background:var(--accent); border:none;
  display:inline-flex; align-items:center; justify-content:center;
  color:#FFFFFF; font-size:12px; font-weight:700;
}

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(28px); }
html.no-js .reveal, html.reduced .reveal{ opacity:1; transform:none; }

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .callout.left{ left:12px; }
  .callout.right{ right:12px; left:auto; }
  .callout{ width:200px; }
}
@media (max-width:900px){
  .hero-inner{ grid-template-columns:1fr; gap:30px; }
  .hero-stage{ height:340px; order:-1; }
  .bento{ grid-template-columns:1fr 1fr; }
  .bento-cell.wide{ grid-column:span 2; }
  .audience{ grid-template-columns:1fr; }
  .calc{ grid-template-columns:1fr; padding:30px; }
  .landing-points{ grid-template-columns:1fr; }
  .nav-links{
    position:fixed; top:60px; right:0; left:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:rgba(251,252,252,.98); border-bottom:1px solid var(--line);
    display:none; padding:10px 24px 20px;
  }
  .nav-links.open{ display:flex; }
  .nav-links a{ padding:13px 0; border-bottom:1px solid var(--line); }
  .nav-links a:last-child{ border-bottom:none; }
  .nav-links .btn{ margin-top:12px; justify-content:center; }
  .nav-toggle{ display:inline-flex; }
  .callout{ display:none; }
  /* mobilon nincs görgetés-jelző (rálógott a szövegre), és a hero
     nem tart fenn fölösleges üres helyet */
  .scroll-cue{ display:none; }
  .hero{ min-height:auto; padding:104px 0 32px; }
  /* kompaktabb forgó szekció: felülre igazítva, hogy görgetéskor
     ne üres sáv érkezzen először */
  .turntable-pin{ padding:56px 16px 16px; justify-content:flex-start; }
  .turntable-head{ margin-bottom:14px; }
  .turntable-head h2{ font-size:23px; }
  .turntable-progress{ margin-top:12px; }
  .callout-row-mobile{
    display:flex; gap:10px; overflow-x:auto; margin-top:14px;
    width:100%; max-width:560px; padding-bottom:6px;
    scrollbar-width:none;
  }
  .callout-row-mobile::-webkit-scrollbar{ display:none; }
  .callout-m{
    flex:none; width:210px;
    background:#FFFFFF; border:1px solid var(--line);
    border-radius:14px; padding:14px 16px;
    box-shadow:var(--shadow-soft);
    opacity:.55; transition:opacity .3s ease, border-color .3s ease;
  }
  .callout-m.active{
    opacity:1; border-color:var(--accent);
    box-shadow:0 8px 20px rgba(18,134,111,.18);
  }
  .callout-m h3{ font-size:14px; color:var(--accent-text); margin-bottom:4px; }
  .callout-m p{ font-size:12.5px; color:var(--muted); }
  html.no-js .callout-m, html.reduced .callout-m{ opacity:1; }
  .signup form{ grid-template-columns:1fr; }
  .signup .field.full, .signup .btn, .consent{ grid-column:span 1; }
  .steps{ grid-template-columns:1fr; }
  .usp-strip .usp-grid{ grid-template-columns:1fr; }
  .case-grid{ grid-template-columns:1fr; }
  .price-grid{ grid-template-columns:1fr; }
  .team-grid{ grid-template-columns:1fr; }
  .spotlight{ grid-template-columns:1fr; gap:28px; }
  .spec-row{ grid-template-columns:1fr 1fr; }
  .pain-list{ grid-template-columns:1fr; }
  .tt-stage-70{ grid-template-columns:1fr; gap:20px; }
  .tt-tab{ padding:8px 16px; font-size:14.5px; }
  .bento-3{ grid-template-columns:1fr 1fr; }
  .ms-panel.active{ grid-template-columns:1fr; gap:24px; padding:26px 24px; }
  .ms-media img{ max-width:220px; }
  .brand-grid{ grid-template-columns:1fr; }
  .uc-panel.active{ grid-template-columns:1fr; }
  .uc-panel{ padding:24px; }
  .models-teaser{ grid-template-columns:1fr; gap:16px; text-align:left; }
  .footer-top{ grid-template-columns:1fr 1fr; gap:22px; }
  /* lebegő CTA-sáv mobilon */
  /* A telefonok alsó rendszersávja (gesztus-sáv, navigációs gombok) rálóg a
     viewport aljára, ezért a sáv fele eltűnt. A safe-area-inset ezt kerüli ki. */
  .mobile-cta{
    display:flex; align-items:center; justify-content:center;
    position:fixed; left:12px; right:12px; z-index:90;
    bottom:calc(18px + env(safe-area-inset-bottom, 0px));
    min-height:52px;
    background:var(--accent); color:#FFFFFF;
    font-family:var(--font-display); font-weight:600; font-size:15px;
    padding:15px; border-radius:30px;
    box-shadow:0 10px 30px rgba(18,134,111,.35);
    transition:transform .3s ease, opacity .3s ease;
  }
  .mobile-cta.hidden{ transform:translateY(200%); opacity:0; }
  /* hogy a lap alja ne a lebegő sáv alatt végződjön */
  body{ padding-bottom:calc(78px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width:520px){
  .bento{ grid-template-columns:1fr; }
  .bento-cell.wide{ grid-column:span 1; }
  .section{ padding:80px 0; }
  .footer-top{ grid-template-columns:1fr; }
  .table-hint{ display:block; }
  .ref-grid{ grid-template-columns:1fr; }
  .spec-row{ grid-template-columns:1fr; }
  .pain{ padding:26px 22px 24px; }
  .pain-list{ grid-template-columns:1fr; }
  .pain-head h3{ font-size:19px; }
  .bento-3{ grid-template-columns:1fr; }
  /* A .num slot eredetileg sorszámnak készült (34px), de ezekben a
     kártyákban szöveg áll. A „Visszakövethető" szó egymagában szélesebb
     volt a kártyánál, ezért a rács kifeszült. */
  .bento-3 .bento-cell{ min-width:0; }
  .bento-3 .num{ font-size:25px; }
  .hero-center{ padding:120px 0 70px; }
  .calc-hint{ text-align:left; }
  .ms-specs{ grid-template-columns:1fr; }
  /* min. 44px magas érintési felület mobilon */
  .ms-tab{ padding:12px 16px; font-size:14.5px; min-height:44px; }
  .uc-tab{ min-height:44px; }
}

/* ==========================================================================
   SÜTI-SÁV

   Az EU-ban az analitikai és hirdetési süti ELŐZETES hozzájáruláshoz kötött:
   nem elég tudomásul vetetni, a mérőkód csak az „Elfogadom" után futhat.
   Ezért a két gomb egyenrangú — nincs elrejtett vagy halvány elutasítás.
   ========================================================================== */
.cc{
  position:fixed; z-index:200;
  left:16px; right:16px; bottom:16px;
  bottom:calc(16px + env(safe-area-inset-bottom, 0px));
  max-width:640px; margin-inline:auto;
  background:var(--panel-2); color:var(--ink);
  border:1px solid var(--line); border-radius:16px;
  box-shadow:0 18px 48px rgba(23,36,44,.16);
  padding:20px 22px;
}
.cc[hidden]{ display:none !important; }
.cc p{ font-size:14.5px; line-height:1.6; color:var(--muted); margin:0 0 14px; }
.cc b{ color:var(--ink); font-family:var(--font-display); font-weight:600; }
.cc a{ color:var(--accent-text); text-decoration:underline; }
.cc-gombok{ display:flex; gap:10px; flex-wrap:wrap; }
.cc-gombok .btn{ flex:1 1 auto; justify-content:center; padding:12px 20px; font-size:14.5px; }
/* A mobil CTA-sáv fölé kerülne — amíg a süti-sáv látszik, azt eltoljuk. */
body.cc-nyitva .mobile-cta{ bottom:calc(100% + 0px); display:none; }

@media (max-width:520px){
  .cc{ padding:18px; }
  .cc-gombok{ flex-direction:column; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .scroll-cue .line::after{ animation:none; }
  .reveal{ opacity:1; transform:none; }
  .btn::after{ display:none; }
}

/* ============================================================
   ROBOTVÁLASZTÓ — háromlépéses folyamat
   A látogató a saját adottságait adja meg, és csak utána lát gépet.
   A lépéseket bal oldali számozott sáv köti össze: itt a sorrend
   tényleges információ (előbb a terep, aztán a gép, aztán a számok),
   ezért indokolt a számozás.
   ============================================================ */
.finder{
  max-width:920px; margin:0 auto;
  display:flex; flex-direction:column; gap:18px;
}
.fd-step{
  display:grid; grid-template-columns:44px 1fr; gap:18px;
  background:var(--panel); border:1px solid var(--line);
  border-radius:var(--radius); padding:24px 26px;
}
.fd-num{
  width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--accent); color:#fff;
  font-family:var(--font-display); font-weight:700; font-size:15px;
}
.fd-body{ min-width:0; }
.fd-body > h3{ margin:4px 0 16px; font-size:19px; }

.fd-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.fd-field{ margin-bottom:16px; min-width:0; }
.fd-field:last-child{ margin-bottom:0; }
.fd-grid .fd-field{ margin-bottom:0; }
.fd-field > label{
  display:block; font-size:14.5px; font-weight:600;
  color:var(--muted); letter-spacing:.02em; margin-bottom:8px;
}
.fd-field > label b{ color:var(--accent); }

.fd-field select{
  width:100%; min-width:0; padding:12px 14px; font:inherit; font-size:15.5px;
  color:var(--ink); background:var(--bg); border:1px solid var(--line);
  border-radius:10px; min-height:46px;
}
.fd-field select:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; }

.fd-field input[type=range]{ width:100%; accent-color:var(--accent); margin:6px 0 2px; }
.fd-scale{ display:flex; justify-content:space-between; }
.fd-scale i{ font-style:normal; font-size:12.5px; color:var(--muted); }

/* szegmensválasztó */
.fd-seg{ display:flex; flex-wrap:wrap; gap:8px; }
.fd-seg button{
  flex:1 1 auto; min-height:44px; padding:10px 16px;
  font:inherit; font-size:14.5px; font-weight:600; cursor:pointer;
  color:var(--ink); background:var(--bg);
  border:1px solid var(--line); border-radius:10px;
  transition:background .18s ease, border-color .18s ease, color .18s ease;
}
.fd-seg button:hover{ border-color:var(--accent); }
.fd-seg button:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.fd-seg button.active{ background:var(--accent); border-color:var(--accent); color:#fff; }

/* találat */
.fd-card{ display:grid; grid-template-columns:170px 1fr; gap:22px; align-items:start; }
.fd-photo{
  background:#FFFFFF; border:1px solid var(--line); border-radius:var(--radius);
  padding:14px; display:flex; align-items:center; justify-content:center;
}
.fd-photo img{ width:100%; height:auto; display:block; }
.fd-name{ font-family:var(--font-display); font-size:22px; font-weight:700; margin:0 0 4px; }
.fd-brand{
  display:inline-block; font-size:12px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--accent);
  background:var(--accent-soft, rgba(14,134,184,.1));
  padding:3px 10px; border-radius:5px; margin-bottom:10px;
}
.fd-why{ margin:0 0 14px; color:var(--muted); font-size:15.5px; }
.fd-specs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; }
.fd-specs div{
  background:var(--bg); border:1px solid var(--line);
  border-radius:9px; padding:10px 12px;
}
.fd-specs b{ display:block; font-family:var(--font-display); font-size:16px; }
.fd-specs span{ display:block; font-size:12.5px; color:var(--muted); margin-top:2px; }
.fd-alt{ margin-top:14px; font-size:14.5px; color:var(--muted); }
.fd-alt b{ color:var(--ink); }

.fd-warn{
  background:var(--sand, #FBF6EC); border:1px solid var(--line);
  border-left:3px solid var(--accent); border-radius:9px;
  padding:14px 16px; font-size:15px; color:var(--ink);
}

/* kimenet a 3. lépésben */
.fd-out{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-top:4px; }
.fd-out div{
  background:var(--bg); border:1px solid var(--line);
  border-radius:10px; padding:14px 16px;
}
.fd-out b{ display:block; font-family:var(--font-display); font-size:24px; color:var(--accent); }
.fd-out span{ display:block; font-size:13px; color:var(--muted); margin-top:3px; }
.fd-note{ font-size:13.5px; color:var(--muted); margin:16px 0 18px; }

@media (max-width:720px){
  .fd-step{ grid-template-columns:1fr; gap:12px; padding:20px; }
  .fd-num{ width:30px; height:30px; font-size:14px; }
  .fd-grid{ grid-template-columns:1fr; }
  .fd-card{ grid-template-columns:1fr; gap:16px; }
  .fd-photo{ max-width:210px; }
  .fd-seg button{ flex:1 1 calc(50% - 4px); }
}


/* ============================================================
   ROBOTVÁLASZTÓ
   Lapozható helyszínsáv + egyetlen javaslatkártya.
   A 18 helyszín vízszintesen görgethető; a nyilak jelzik, hogy van még.
   ============================================================ */
.vp{ display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.vp-arrow{
  flex:0 0 auto; width:40px; height:40px; padding:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  background:var(--panel); color:var(--ink);
  border:1px solid var(--line); border-radius:50%;
  transition:border-color .18s ease, color .18s ease, opacity .18s ease;
}
.vp-arrow svg{ width:20px; height:20px; stroke:currentColor; }
.vp-arrow:hover:not(:disabled){ border-color:var(--accent); color:var(--accent); }
.vp-arrow:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.vp-arrow:disabled{ opacity:.3; cursor:default; }

.vp-track{
  /* min-width:0 nélkül a flex-elem a tartalom szélességére nő, és nem
     görgethető — helyette kitolja a konténert. */
  /* position:relative kell, hogy a kártyák offsetLeft-je a sávhoz mérjen —
     enélkül a „gördítsd a látható részbe" számítás 46 pixelt tévedne. */
  position:relative;
  flex:1 1 auto; min-width:0; display:flex; gap:8px;
  overflow-x:auto; scroll-behavior:smooth;
  scrollbar-width:none; padding:3px 1px;
}
.vp-track::-webkit-scrollbar{ display:none; }
.vp-chip{
  flex:0 0 auto; font:inherit; font-size:14px; font-weight:600; cursor:pointer;
  white-space:nowrap; min-height:42px; padding:9px 16px;
  color:var(--ink); background:var(--panel);
  border:1px solid var(--line); border-radius:999px;
  transition:background .18s ease, border-color .18s ease, color .18s ease;
}
.vp-chip:hover{ border-color:var(--accent); }
.vp-chip:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.vp-chip.active{ background:var(--accent); border-color:var(--accent); color:#fff; }

/* ---- a javaslatkártya ---- */
.pick{
  background:var(--panel); border:1px solid var(--line);
  border-radius:var(--radius); padding:30px 32px;
}
.pick-top{ display:grid; grid-template-columns:minmax(0,340px) 1fr; gap:34px; align-items:start; }

.pick-photo{ display:flex; flex-direction:column; gap:14px; }
.pick-photo img{
  width:100%; height:auto; display:block;
  filter:drop-shadow(0 18px 26px rgba(23,36,44,.14));
}
.pick-id{ display:flex; flex-direction:column; gap:5px; }
.pick-badge{
  align-self:flex-start; font-size:11.5px; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--accent-text); background:var(--accent-soft);
  padding:5px 11px; border-radius:999px;
}
.pick-id b{ font-family:var(--font-display); font-size:21px; line-height:1.25; }
.pick-id span{ font-size:14.5px; color:var(--muted); line-height:1.55; }

.pick-copy h3{ font-size:23px; line-height:1.3; margin-bottom:16px; }
.pick-list{ list-style:none; display:flex; flex-direction:column; gap:13px; }
.pick-list li{ position:relative; padding-left:26px; font-size:16px; color:var(--muted); line-height:1.62; }
.pick-list li::before{
  content:"✓"; position:absolute; left:0; top:0;
  color:var(--accent-text); font-weight:700;
}
.pick-list li b{ color:var(--ink); }

/* ---- szűrők a kártya alján ---- */
.pick-filters{ margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.pf-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
.pf-field{ display:flex; flex-direction:column; gap:9px; }
.pf-field[hidden]{ display:none; }
.pf-label{ font-size:14.5px; font-weight:600; color:var(--muted); }
.pf-opts{ display:flex; flex-wrap:wrap; gap:8px; }
.pf-opts button{
  font:inherit; font-size:14.5px; font-weight:600; cursor:pointer;
  min-height:42px; padding:9px 15px 9px 38px; position:relative;
  color:var(--ink); background:var(--bg);
  border:1px solid var(--line); border-radius:10px;
  transition:border-color .18s ease, background .18s ease;
}
/* jelölőnégyzet-jelleg: a bal oldali kis doboz mutatja, mi van bekapcsolva */
.pf-opts button::before{
  content:""; position:absolute; left:13px; top:50%; transform:translateY(-50%);
  width:16px; height:16px; border:1.5px solid var(--line);
  border-radius:5px; background:#fff;
  transition:background .18s ease, border-color .18s ease;
}
.pf-opts button::after{
  content:""; position:absolute; left:18px; top:50%;
  width:5px; height:9px; opacity:0;
  border:solid #fff; border-width:0 2px 2px 0;
  transform:translateY(-62%) rotate(45deg);
  transition:opacity .18s ease;
}
.pf-opts button:hover{ border-color:var(--accent); }
.pf-opts button:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.pf-opts button.active{ border-color:var(--accent); background:var(--accent-soft); }
.pf-opts button.active::before{ background:var(--accent); border-color:var(--accent); }
.pf-opts button.active::after{ opacity:1; }
.pf-opts button[hidden]{ display:none; }

.pf-area{ margin-top:20px; }
.pf-area input[type=range]{ width:100%; }

/* ---- számok ---- */
.pick-out{ margin-top:26px; padding-top:24px; border-top:1px solid var(--line); }
.pick-out .fd-out{ margin-top:18px; }

@media (max-width:860px){
  .pick{ padding:24px 20px; }
  .pick-top{ grid-template-columns:1fr; gap:24px; }
  .pick-photo{ max-width:300px; margin:0 auto; }
  .pick-copy h3{ font-size:20px; }
}
@media (max-width:640px){
  /* érintőképernyőn 44px az ajánlott minimum célpontméret */
  .vp-arrow{ width:44px; height:44px; }
  .vp-chip{ font-size:13.5px; padding:8px 13px; }
  .pick-list li{ font-size:15.5px; }
}


/* A számok alapjának jelzése a gomb alatt — halk, de olvasható. */
.fd-basis{ margin-top:14px; font-size:13px; color:var(--muted); max-width:60ch; }
.section.dark .pick .fd-basis{ color:var(--muted); }


/* ============================================================
   ROBOTVÁLASZTÓ — sötét, kiemelt szekció
   Ez a lap fő interaktív eleme, ezért kap sötét hátteret. Az alatta lévő
   „élesben" szekció ezért világos: két sötét szekció egymás után egyetlen
   tömbnek látszott.
   ============================================================ */
.section.pickbg{
  background:
    radial-gradient(62% 48% at 50% 0%, rgba(45,199,168,.10), transparent 72%),
    var(--ink-deep);
}

/* helyszínkártyák: fehér pirulák a sötét alapon */
.vp-chip{ background:#FFFFFF; border-color:transparent; }
.vp-chip:hover{ background:#FFFFFF; border-color:var(--accent-light); }
.vp-chip.active{ background:var(--accent); border-color:var(--accent); color:#fff; }
.vp-arrow{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:#fff; }
.vp-arrow:hover:not(:disabled){ background:rgba(255,255,255,.16); border-color:var(--accent-light); color:#fff; }

/* a statisztikakártyák saját osztálya — a régi .fd-card (170px+1fr rács)
   korábban ráült ezekre, ettől csúszott szét a szám és a magyarázat */
.fd-stat{
  background:var(--bg); border:1px solid var(--line);
  border-radius:10px; padding:14px 16px;
}
.fd-stat b{ display:block; font-family:var(--font-display); font-size:26px; color:var(--accent-text); line-height:1.15; }
.fd-stat span{ display:block; font-size:13.5px; color:var(--muted); margin-top:4px; }

/* A javaslatkártya világos marad és megemelkedik a sötét alapról.
   FIGYELEM: a sötét szekció világos szövegszíne nem szivároghat be
   a fehér kártyába — ezért itt minden szöveg saját színt kap. */
.section.dark .pick{
  background:#FFFFFF; border-color:transparent;
  box-shadow:0 26px 64px rgba(0,0,0,.32);
}
.section.dark .pick .pick-list li,
.section.dark .pick .pf-label,
.section.dark .pick .fd-stat span,
.section.dark .pick .fd-alt,
.section.dark .pick .fd-basis{ color:var(--muted); }
.section.dark .pick .pick-list li b,
.section.dark .pick .pick-line b,
.section.dark .pick .fd-alt b{ color:var(--ink); }
.section.dark .pick .pf-opts button{ color:var(--ink); }

/* a gép neve egyetlen sorban a fotó alatt */
.pick-line{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px;
  padding-top:12px; border-top:1px solid var(--line);
}
.pick-line span{
  font-size:11.5px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--accent-text);
}
.pick-line b{ font-family:var(--font-display); font-size:19px; line-height:1.25; }

/* a szöveg töltse ki a kép melletti magasságot */
.pick-top{ align-items:stretch; }
.pick-copy{ display:flex; flex-direction:column; justify-content:center; }
.pick-list{ gap:15px; }

#fd-alt:empty{ display:none; }

@media (max-width:860px){
  .pick-copy{ justify-content:flex-start; }
}

/* Rövid beúsztatás gépcserénél és helyszínváltásnál. A JS csak akkor teszi
   rá az osztályt, ha tényleg más tartalom jön — a csúszka húzása közben nem. */
@keyframes fdIn{
  from{ opacity:0; transform:translateY(8px); }
  to  { opacity:1; transform:none; }
}
.fd-in{ animation:fdIn .22s ease-out both; }

/* A számok tabuláris alakot kapnak, hogy felszámolás közben ne ugráljon
   a kártya szélessége. */
.fd-stat b{ font-variant-numeric:tabular-nums; }

@media (prefers-reduced-motion:reduce){
  .fd-in{ animation:none; }
}
