:root {
  --bg: #ffffff;
  --glass-1: rgba(0,0,0,0.06);
  --glass-2: rgba(0,0,0,0.04);
  --accent-start: #8a5cff;
  --accent-end: #55e0ff;
  --muted: rgba(0,0,0,0.78);
  --glass-border: rgba(0,0,0,0.10);
  --radius: 14px;
  --max-width: 1200px;
  font-family: 'Inter', system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  background: #fff;
  color: #000;
  line-height: 1.5;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

/* Glassmorphic base */
.glass-card {
  background: linear-gradient(180deg, rgba(255,255,255,0.8), rgba(255,255,255,0.6));
  border: 1px solid var(--glass-border);
  border-radius: var(--radius);
  backdrop-filter: blur(12px) saturate(120%);
  -webkit-backdrop-filter: blur(12px) saturate(120%);
  box-shadow: 0 8px 30px rgba(0,0,0,0.08);
  padding: 1.6rem;
}

/* Nav */
.site-header { position: sticky; top: 14px; z-index: 60; padding: 0.75rem 1rem; }
.nav { display: flex; align-items: center; justify-content: space-between; max-width: var(--max-width); margin: 0 auto; padding: 0.6rem 1rem; border-radius: 14px; }
.glass-sticky { background: rgba(255,255,255,0.7); backdrop-filter: blur(8px); border: 1px solid rgba(0,0,0,0.05); }

/* Brand */
.brand { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: inherit; }
.logo { width: 44px; height: 44px; object-fit: contain; border-radius: 8px; }
.brand-text { font-weight: 800; }

/* Nav links */
.nav-links { display: flex; gap: 1rem; list-style: none; margin: 0; padding: 0; align-items: center; }
.nav-links a { color: var(--muted); text-decoration: none; padding: .35rem .6rem; border-radius: 8px; font-weight: 600; }
.nav-links a:hover { color: #000; background: rgba(0,0,0,0.05); }

/* CTA */
.btn {
  display: inline-block;
  padding: 14px 22px;
  border-radius: 12px;
  font-weight: 700;
  text-decoration: none;
}
.btn.primary {
  background: linear-gradient(135deg, var(--accent-start), var(--accent-end));
  color: #ffffff;
}
.btn.outline {
  border: 1px solid rgba(0,0,0,0.08);
  background: transparent;
  color: var(--muted);
}

/* Hero */
.hero { padding: 5rem 1rem; display: flex; justify-content: center; }
.hero-inner { max-width: var(--max-width); text-align: center; }
.hero h1 { font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 800; line-height: 1.1; margin-bottom: 1rem; }
.accent { background: linear-gradient(90deg, var(--accent-start), var(--accent-end)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lead { font-size: 1.2rem; margin-bottom: 1.2rem; color: var(--muted); }
.cta-row { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* Sections */
.section { padding: 3rem 1rem; }
.section.alt { background: rgba(0,0,0,0.03); }
.container { max-width: var(--max-width); margin: 0 auto; padding: 0 1rem; }
.container.narrow { max-width: 700px; }
.section-title { font-size: 1.8rem; font-weight: 800; margin-bottom: 1.5rem; text-align: center; }

/* Grids */
.grid { display: grid; gap: 1.2rem; }
.benefits-grid { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.features-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.cards { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.team-grid { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); text-align: center; }
.steps-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); text-align: center; }

/* Compare table */
.compare table { width: 100%; border-collapse: collapse; }
.compare th, .compare td { padding: .8rem; text-align: center; border-bottom: 1px solid rgba(0,0,0,0.08); }

/* Contact */
.contact-form { display: flex; flex-direction: column; gap: .8rem; }
.contact-form input, .contact-form textarea { padding: .8rem; border-radius: 10px; border: 1px solid rgba(0,0,0,0.15); font-size: 1rem; }

/* Footer */
.site-footer{padding:1.2rem 1rem;margin-top:2rem;background:#fff;color:#000}
  .footer-inner{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem;border-radius:12px}
  .footer-left{flex:1}
  .footer-center{flex:1;text-align:center}
  .footer-right{flex:1;text-align:right}
  
  .footer-social{display:inline-flex;gap:.6rem;align-items:center;margin-right:.6rem}
  .social-btn{
    display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;border:1px solid rgba(0,0,0,0.06);
    background:#fff;
    text-decoration:none;color:#000;
    transition:transform .12s ease, box-shadow .12s ease;
  }
  .social-btn svg{width:20px;height:20px}
  .social-btn:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,0.25)}
  
  .footer-contact a{color:#000;text-decoration:none;font-weight:600}

.footer-terms{
    display:inline-block;
    padding:.45rem .8rem;
    border-radius:12px;
    background: #e4e1e1;
    border:1px solid rgba(0,0,0,0.04);
    color:#000;
    text-decoration:none;font-weight:700;
  }

/* Pricing */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}
  @media (max-width:980px){ .pricing-grid{grid-template-columns:1fr} }
  .pricing{position:relative;padding:1.4rem}
  .pricing .price{font-size:1.6rem;font-weight:800;margin:.4rem 0;color:#000}
  .pricing .tag{position:absolute;top:.8rem;right:.8rem;background:rgba(0,0,0,0.08);padding:.2rem .5rem;border-radius:8px;font-weight:700;color:#000}
  .glass-card{
    background: linear-gradient(180deg, rgba(0,0,0,0.03), rgba(0,0,0,0.02));
    border: 1px solid var(--glass-border);
    border-radius: var(--radius);
    backdrop-filter: blur(12px) saturate(120%);
    -webkit-backdrop-filter: blur(12px) saturate(120%);
    box-shadow: 0 8px 30px rgba(0,0,0,0.08), inset 0 1px 0 rgba(0,0,0,0.02);
    padding:1.6rem;
  }
  .section{padding:2rem 1rem;background:#fff;color:#000}
  .section.alt{background:#f9f9f9}
  .container{max-width:var(--max-width);margin:0 auto;padding:0 1rem}
  .container.narrow{max-width:980px}
  .section-title{font-size:1.25rem;margin-bottom:.8rem;font-weight:700;color:#000}
  .btn.ghost{background:transparent;border:1px solid rgba(0,0,0,0.05);color:var(--muted)}

.faq-list{display:grid;gap:.8rem}
.faq-q{
  width:100%;
  background:transparent;border:0;padding:.6rem 0;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-weight:700;color:var(--muted);
}
.faq-q:focus{outline:3px solid rgba(138,92,255,0.14);outline-offset:3px;border-radius:8px}
.faq-a{padding-top:.6rem;color:#000}
.chev{transform:rotate(0deg);transition:transform .18s ease}
.faq-q[aria-expanded="true"] .chev{transform:rotate(90deg)}

/* ========================= */
/* ✅ Responsive optimizations */
/* ========================= */

/* Navigation responsive */
@media (max-width: 900px) {
  .nav { flex-wrap: wrap; gap: 0.8rem; }
  .nav-links { flex-wrap: wrap; justify-content: center; width: 100%; }
  .nav-cta { width: 100%; display: flex; justify-content: center; }
}

/* Hero responsive */
@media (max-width: 768px) {
  .hero { padding: 3rem 1rem; }
  .hero h1 { font-size: 2rem; line-height: 1.2; }
  .lead { font-size: 1rem; }
  .cta-row { flex-direction: column; align-items: center; }
  .btn { width: 100%; text-align: center; }
}

/* Footer responsive */
@media (max-width: 768px) {
  .footer-inner { flex-direction: column; text-align: center; gap: 1rem; }
  .footer-left, .footer-center, .footer-right { text-align: center; }
}

/* Grids responsive tweaks */
@media (max-width: 600px) {
  .grid { grid-template-columns: 1fr; }
  .pricing-grid { grid-template-columns: 1fr; }
  .benefits-grid, .features-grid, .cards, .team-grid, .steps-grid { grid-template-columns: 1fr; }
}

/* Typography tweaks small screens */
@media (max-width: 480px) {
  .section-title { font-size: 1.4rem; }
  .hero h1 { font-size: 1.6rem; }
}

/* === Compare (responsive, centered, swipeable + sticky first column on desktop, disabled sticky on small screens) === */
.compare {
  max-width: var(--max-width); /* korlátozott szélesség: nem fog teljes képernyőt kitölteni */
  margin: 24px auto;           /* középre helyezés */
  padding: 0 16px;             /* kis oldalsó tér a wrappernek */
}

.compare .table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch; /* sima görgetés iOS-en */
  padding-bottom: 8px;               /* kis hely a görgetősávnak */
  border-radius: 12px;
}

/* Alap asztali tábla */
.compare table {
  width: 100%;
  min-width: 760px; /* asztali oszlopok olvasható minimuma */
  border-collapse: separate;
  border-spacing: 0;
  background: transparent;
}

/* Cella stílusok */
.compare th,
.compare td {
  padding: 12px 16px;
  text-align: center;
  vertical-align: middle;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  font-size: 14px;
  line-height: 18px;
  color: #000000;
}

/* Fejléc (vizuális elkülönítés) */
.compare thead th {
  background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,255,255,0.85));
  font-weight: 800;
  position: relative;
  top: 0;
  z-index: 3;
}

/* Zebra sorok asztalon az átláthatóságért */
.compare tbody tr:nth-child(even) td {
  background: rgba(0,0,0,0.02);
}

/* Sticky első oszlop (Feature) - marad asztalon */
.compare th:first-child,
.compare td:first-child {
  position: sticky;
  left: 0px;
  z-index: 4;
  background: #ffffff; /* egységes háttér, ne látszódjon át */
  text-align: left;
  font-weight: 700;
  box-shadow: 8px 0 12px rgba(0,0,0,0.03);
  min-width: 220px; /* biztos, hogy a cím olvasható marad */
  padding-left: 18px;
  padding-right: 16px;
}

/* Fejléc első cella még fölötte legyen */
.compare thead th:first-child {
  z-index: 5;
}

/* Többi oszlop normál viselkedése */
.compare td:nth-child(n+2) {
  white-space: normal;
  text-align: center;
}

/* TABLE HINT (opcionális): ha szeretnéd megjeleníteni a "Swipe →" üzenetet, tedd be <div class="table-hint">Swipe to view →</div> a .table-wrap elé */
.table-hint {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 6px;
  text-align: right;
  padding-right: 6px;
}

/* --- RESZPONZÍV FINOMÍTÁSOK --- */

/* Közepes képernyők - min-width csökkentése, kisebb padding */
@media (max-width: 900px) {
  .compare table { min-width: 640px; }
  .compare th, .compare td { padding: 10px 12px; font-size: 13px; line-height: 16px; }
  .compare td:first-child { min-width: 180px; padding-left: 12px; }
}

/* Mobil: letiltjuk a sticky viselkedést, hogy ne takarjon ki semmit, a tábla marad görgethető */
@media (max-width: 600px) {
  .compare th:first-child,
  .compare td:first-child {
    position: static;   /* nem sticky - így nem takarja ki a tartalmat */
    box-shadow: none;
    min-width: auto;
    padding-left: 12px;
  }

  /* engedjük, hogy a táblázat teljes szélességében (100%) jelenjen meg a görgetéshez */
  .compare table { min-width: 100%; }
}

/* Nagyon kicsi képernyők további finomítása */
@media (max-width: 420px) {
  .compare th, .compare td { padding: 8px 10px; font-size: 12px; line-height: 14px; }
  .compare td:first-child { padding-left: 10px; }
}

/* Accessibility: fókusz állapotok */
.compare a:focus,
.compare th:focus,
.compare td:focus {
  outline: 3px solid rgba(138,92,255,0.16);
  outline-offset: 2px;
}
@media (max-width: 992px) {
  .brand {
    display: flex !important;       /* biztos, hogy flex */
    justify-content: center !important; /* vízszintes középre */
    align-items: center;            /* függőleges középre */
    width: 100%;                     /* teljes szélesség */
    text-align: center;              /* fallback */
    margin: 0 auto;                  /* középre a szülőn belül */
  }
}