/* Bootstrap Icons v1.11.3 | MIT License | https://icons.getbootstrap.com/ */
/* Bootstrap v5.3.3 | MIT License | https://getbootstrap.com/ */

/* ════════════════════════════════════════════════════════
   style.css – RGB Geofizikai és Mérnöki Kft.
   Tartalom:
     1. Bootstrap utility osztályok (helyi)
     2. Betűtípusok (system-ui)
     3. Téma változók (sötét / világos)
     4. Alap stílusok
     5. Navbar, dropdown, mobil menü
     6. Fejléc kép
     7. Szekciók, tartalom
     8. Footer
     9. Jogi oldalak
    10. Cookie banner
    11. SVG ikonok, egyéb
   ════════════════════════════════════════════════════════ */


/* ── 1. BOOTSTRAP UTILITY OSZTÁLYOK ── */
.d-none  { display: none !important; }
.d-flex  { display: flex !important; }
.d-block { display: block !important; }
@media (min-width: 992px) {
  .d-lg-none { display: none !important; }
  .d-lg-flex { display: flex !important; }
}
.align-items-center { align-items: center !important; }
.gap-2              { gap: 0.5rem !important; }


/* ── 2. BETŰTÍPUSOK – rendszer-betűtípusok ── */
/* Nincs külső letöltés – system-ui az OS legjobb betűjét választja */
:root {
  --font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-syne: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}


/* ── 3. TÉMA VÁLTOZÓK ── */

/* Sötét téma (alapértelmezett) */
:root, [data-theme="dark"] {
  --nav-bg:       #0e1017;
  --nav-border:   #2a3148;
  --dd-bg:        #1a2035;
  --mob-bg:       #0e1017;
  --bg:           #10131c;
  --section-border: #1e2438;
  --footer-bg:    #080b12;
  --footer-border:#2a3148;
  --footer-line:  #1a2035;
  --text:         #f0f2f7;
  --muted:        #8b95a8;
  --border:       #2a3148;
  --badge-border: rgba(41,128,232,0.25);
  --accent:       #2980e8;
  --accent-light: rgba(41,128,232,0.13);
  --accent-dd:    rgba(41,128,232,0.18);
  --r: #e03030; --g: #3db84a; --b: #2980e8;
}

/* Világos téma */
[data-theme="light"] {
  --nav-bg:       #f4f7fb;
  --nav-border:   #d7e0ea;
  --dd-bg:        #ffffff;
  --mob-bg:       #f4f7fb;
  --bg:           #fafbfd;
  --section-border: #e2e8f0;
  --footer-bg:    #e8edf3;
  --footer-border:#d7e0ea;
  --footer-line:  #d7e0ea;
  --text:         #0f1923;
  --muted:        #56657a;
  --border:       #d7e0ea;
  --badge-border: rgba(22,96,175,0.25);
  --accent:       #1660af;
  --accent-light: rgba(22,96,175,0.1);
  --accent-dd:    rgba(22,96,175,0.12);
  --b: #1660af;
}


/* ── 4. ALAP STÍLUSOK ── */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-sans); background: var(--bg); color: var(--text); overflow-x: hidden; transition: background .3s, color .3s; }


/* ── 5. NAVBAR ── */
#mainNav { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: var(--nav-bg); height: 78px; border-bottom: 1px solid transparent; transition: height .32s cubic-bezier(.4,0,.2,1), border-color .32s, box-shadow .32s, background .3s; display: flex; align-items: center; }
#mainNav.scrolled { height: 54px; border-color: var(--nav-border); box-shadow: 0 2px 24px rgba(0,0,0,.25); }
.nav-inner { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 0 2.5rem; }
.nav-left  { display: flex; align-items: center; gap: 1rem; }
.nav-right { display: flex; align-items: center; gap: .5rem; }

/* Nyelvváltó */
.lang-sw { display: flex; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; font-family: var(--font-syne); font-size: .72rem; font-weight: 700; }
.lang-btn { padding: 4px 10px; color: var(--muted); background: transparent; border: none; cursor: pointer; text-transform: uppercase; line-height: 1.5; transition: background .18s, color .18s; }
.lang-btn + .lang-btn { border-left: 1px solid var(--border); }
.lang-btn.active { background: var(--accent); color: #fff; }
.lang-btn:not(.active):hover { background: var(--accent-light); color: var(--accent); }

/* Témaváltó gomb */
.theme-btn { width: 34px; height: 34px; border-radius: 8px; border: 1px solid var(--border); background: transparent; cursor: pointer; font-size: 1rem; display: flex; align-items: center; justify-content: center; transition: background .18s, border-color .18s; color: var(--text); }
.theme-btn:hover { background: var(--accent-light); border-color: var(--accent); }

/* Logó */
.nav-home { font-family: var(--font-syne); font-size: 1.05rem; font-weight: 800; color: var(--text); text-decoration: none; white-space: nowrap; }
.nav-home:hover { opacity: .8; }
.nav-home .r { color: var(--r); }
.nav-home .g { color: var(--g); }
.nav-home .b { color: var(--b); }

/* Adatkezelés link */
.nav-legal-link { font-size: .83rem; font-weight: 500; color: var(--muted); text-decoration: none; padding: 6px 11px; border-radius: 6px; white-space: nowrap; transition: color .18s, background .18s; }
.nav-legal-link:hover { color: var(--text); background: var(--accent-light); }

/* Desktop dropdown */
.nav-dd { position: relative; }
.nav-dd-btn { font-size: .83rem; font-weight: 500; color: var(--muted); background: none; border: none; padding: 6px 11px; border-radius: 6px; cursor: pointer; transition: color .18s, background .18s; white-space: nowrap; }
.nav-dd-btn:hover, .nav-dd-btn.active { color: var(--text); background: var(--accent-light); }
.nav-dd-menu {
  position: absolute; top: 100%; right: 0; margin-top: 10px;
  background: var(--dd-bg); border: 1px solid var(--border); border-radius: 10px;
  box-shadow: 0 12px 40px rgba(0,0,0,.3); padding: .5rem; min-width: 260px; z-index: 2000;
  visibility: hidden; opacity: 0; pointer-events: none;
  transition: opacity .18s ease, visibility 0s linear 2s, background .3s, border-color .3s;
}
.nav-dd-menu::before { content: ''; position: absolute; top: -10px; left: 0; right: 0; height: 10px; background: transparent; }
.nav-dd:hover .nav-dd-menu, .nav-dd-menu.open { visibility: visible; opacity: 1; pointer-events: auto; transition: opacity .18s ease, visibility 0s linear 0s; }
.dd-link { display: block; padding: 8px 14px; font-size: .84rem; font-weight: 500; color: var(--muted); text-decoration: none; border-radius: 6px; transition: background .15s, color .15s; }
.dd-link:hover { background: var(--accent-dd); color: var(--text); }
.dd-divider { height: 1px; background: var(--border); margin: .4rem 0; }
.dd-section { font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); opacity: .6; padding: 6px 14px 2px; }

/* Hamburger */
.nav-toggle { display: flex; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; background: none; border: none; }
.nav-toggle span { display: block; width: 22px; height: 2px; background: var(--text); border-radius: 2px; transition: all .28s; }
.nav-toggle.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

/* Mobil menü */
.mob-menu { display: none; position: fixed; top: 78px; left: 0; right: 0; background: var(--mob-bg); border-bottom: 1px solid var(--border); padding: 1rem 2rem; flex-direction: column; gap: .25rem; z-index: 999; box-shadow: 0 8px 24px rgba(0,0,0,.3); max-height: 80vh; overflow-y: auto; transition: top .32s cubic-bezier(.4,0,.2,1), background .3s; }
#mainNav.scrolled ~ .mob-menu { top: 54px; }
.mob-menu.open { display: flex; }
.mob-link { font-size: .92rem; color: var(--muted); text-decoration: none; font-weight: 500; padding: 8px 10px; border-radius: 6px; transition: color .18s, background .18s; }
.mob-link:hover { color: var(--text); background: var(--accent-light); }
.mob-section { font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); opacity: .6; padding: 10px 10px 2px; }
.mob-divider { height: 1px; background: var(--border); margin: .4rem 0; }


/* ── 6. FEJLÉC KÉP ── */
.site-header { width: 100%; display: block; line-height: 0; margin-top: 78px; transition: margin-top .32s cubic-bezier(.4,0,.2,1); }
.site-header img { width: 100%; height: auto; display: block; }
body.scrolled-nav .site-header { margin-top: 54px; }


/* ── 7. SZEKCIÓK, TARTALOM ── */
.page-content { padding: 0 0 6rem; display: grid; }
.page-section { padding: 4rem 2.5rem; border-bottom: 1px solid var(--section-border); transition: background .3s; display: grid; justify-content: center; }
.page-section:nth-child(even) { background: rgba(0,0,0,0.08); }
[data-theme="light"] .page-section:nth-child(even) { background: rgba(255,255,255,0.5); }
.page-section:last-child { border-bottom: none; }
.page-inner { max-width: 860px; width: 100%; }
.page-badge { display: inline-flex; align-items: center; gap: .5rem; background: var(--accent-light); color: var(--accent); font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 5px 14px; border-radius: 99px; margin-bottom: 1.75rem; border: 1px solid var(--badge-border); }
.page-title { font-family: var(--font-syne); font-size: clamp(1.6rem,4vw,2.8rem); font-weight: 800; line-height: 1.13; letter-spacing: -.02em; color: var(--text); margin-bottom: 1rem; max-width: 700px; }
/* Hero szekció (index.html) */
.hero-section { padding: 4rem 2.5rem 5rem; display: grid; justify-content: center; }
.hero-inner { max-width: 860px; width: 100%; }
.hero-badge { display: inline-flex; align-items: center; gap: .5rem; background: var(--accent-light); color: var(--accent); font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 5px 14px; border-radius: 99px; margin-bottom: 1.75rem; border: 1px solid var(--badge-border); }
.hero-title { font-family: var(--font-syne); font-size: clamp(1.8rem,4.5vw,3.2rem); font-weight: 800; line-height: 1.13; letter-spacing: -.02em; color: var(--text); margin-bottom: 1rem; max-width: 700px; }
.hero-h1 { font-size: clamp(1.8rem,4.5vw,3.2rem); }
.hero-sub { font-size: 1.05rem; font-weight: 500; color: var(--accent); margin-bottom: 1.75rem; line-height: 1.55; max-width: 700px; }
.hero-divider { width: 44px; height: 3px; background: var(--accent); border-radius: 2px; margin-bottom: 1.75rem; }
.hero-body { font-size: .98rem; line-height: 1.82; color: var(--muted); max-width: 700px; }
@media (max-width: 767px) { .hero-section { padding: 2.5rem 1.25rem 3.5rem; } }
.page-divider { width: 44px; height: 3px; background: var(--accent); border-radius: 2px; margin-bottom: 1.75rem; }
.page-body { font-size: .98rem; line-height: 1.85; color: var(--muted); max-width: 700px; }
.sub-nav { display: flex; flex-direction: column; align-items: center; gap: 1rem; margin-top: 2.5rem; margin-bottom: 2.5rem; }
.pill-link {
  font-size: 1.25rem;
  font-weight: 700;
  font-family: var(--font-syne);
  color: #fff;
  text-decoration: none;
  padding: 18px 36px;
  background: var(--accent);
  border: 1.5px solid var(--accent);
  border-radius: 99px;
  width: 100%;
  max-width: 700px;
  text-align: center;
  box-shadow: 0 4px 18px rgba(41,128,232,.35);
  transition: background .18s, transform .18s, box-shadow .18s;
}
.pill-link:hover {
  background: #1660af;
  transform: translateY(-2px);
  box-shadow: 0 8px 26px rgba(41,128,232,.5);
}

/* Képgaléria – egymás alatt, a szöveg szélességében, balra igazítva */
.img-gallery {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
  margin-top: 2.5rem;
}
.img-gallery img {
  width: 100%;
  max-width: 700px;
  height: auto;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--dd-bg);
}


/* ── 8. FOOTER ── */
footer { background: var(--footer-bg); color: var(--muted); padding: 3.5rem 2.5rem 2rem; border-top: 1px solid var(--footer-border); transition: background .3s; }
.footer-inner { max-width: 860px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 2.5rem; justify-content: space-between; align-items: flex-start; }
.footer-brand { font-family: var(--font-syne); font-size: 1.05rem; font-weight: 800; margin-bottom: .5rem; }
.footer-brand .r { color: var(--r); }
.footer-brand .g { color: var(--g); }
.footer-brand .b { color: var(--accent); }
.footer-brand .rest { color: var(--text); }
.footer-tagline { font-size: .82rem; color: var(--muted); max-width: 260px; line-height: 1.65; }
.footer-contact h4 { font-family: var(--font-syne); font-size: .7rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--accent); margin-bottom: 1.1rem; }
.footer-ci { display: flex; align-items: center; gap: .65rem; margin-bottom: .8rem; font-size: .9rem; }
.footer-ci a { color: var(--muted); text-decoration: none; transition: color .18s; }
.footer-ci a:hover { color: var(--text); }
.footer-bot { max-width: 860px; margin: 2.5rem auto 0; padding-top: 1.5rem; border-top: 1px solid var(--footer-line); font-size: .78rem; color: var(--muted); text-align: center; }
.footer-legal-link { color: var(--muted); text-decoration: none; transition: color .18s; }
.footer-legal-link:hover { color: var(--accent); }


/* ── 9. JOGI OLDALAK ── */
.legal-table table { width: 100%; max-width: 680px; border-collapse: collapse; font-size: .95rem; }
.legal-table td { padding: .6rem .75rem; border-bottom: 1px solid var(--border); vertical-align: top; color: var(--muted); }
.legal-table td:first-child { white-space: nowrap; font-weight: 600; color: var(--text); width: 220px; }
.legal-table strong { color: #e8a020; font-weight: 700; }
.legal-table a { color: var(--accent); text-decoration: none; }
.legal-table a:hover { text-decoration: underline; }
.legal-text h3 { font-family: var(--font-syne); font-size: 1rem; font-weight: 700; color: var(--text); margin: 1.75rem 0 .6rem; }
.legal-text h3:first-child { margin-top: 0; }
.legal-text p { font-size: .95rem; line-height: 1.8; color: var(--muted); margin-bottom: .75rem; }
.legal-text ul { padding-left: 1.25rem; margin-bottom: .75rem; }
.legal-text li { font-size: .95rem; line-height: 1.8; color: var(--muted); margin-bottom: .4rem; }
.legal-text code { background: var(--accent-light); color: var(--accent); padding: 1px 6px; border-radius: 4px; font-size: .88rem; }
.legal-text a { color: var(--accent); text-decoration: none; }
.legal-text a:hover { text-decoration: underline; }
.legal-text strong { color: #e8a020; }
.back-btn { display: inline-flex; align-items: center; gap: .5rem; font-size: .85rem; font-weight: 600; color: var(--accent); text-decoration: none; padding: .5rem 0; margin-bottom: 1.5rem; transition: opacity .18s; }
.back-btn:hover { opacity: .75; }
.back-btn::before { content: '←'; font-size: 1rem; }


/* ── 10. COOKIE BANNER ── */
.cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 3000; background: var(--dd-bg); border-top: 1px solid var(--border); box-shadow: 0 -4px 24px rgba(0,0,0,.3); padding: 1.5rem 2.5rem; transition: background .3s, border-color .3s; }
.cookie-inner { max-width: 860px; margin: 0 auto; display: flex; flex-direction: column; gap: 1rem; }
.cookie-title { font-family: var(--font-syne); font-size: 1rem; font-weight: 700; color: var(--text); }
.cookie-text { display: flex; align-items: flex-start; gap: .75rem; font-size: .88rem; line-height: 1.65; color: var(--muted); }
.cookie-text a { color: var(--accent); text-decoration: none; }
.cookie-text a:hover { text-decoration: underline; }
.cookie-buttons { display: flex; gap: .75rem; flex-wrap: wrap; }
.cookie-btn { border: none; padding: 8px 22px; border-radius: 8px; font-size: .88rem; font-weight: 600; cursor: pointer; white-space: nowrap; transition: opacity .18s; flex-shrink: 0; }
.cookie-btn-accept { background: var(--accent); color: #fff; }
.cookie-btn-accept:hover { opacity: .85; }
.cookie-btn-reject { background: transparent; color: var(--muted); border: 1px solid var(--border); }
.cookie-btn-reject:hover { color: var(--text); border-color: var(--text); }


/* ── 11. SVG IKONOK, EGYÉB ── */
.icon { width: 1rem; height: 1rem; flex-shrink: 0; vertical-align: middle; }
.view { display: none; }
.view.active { display: block; }


/* ── RESZPONZÍV ── */
@media (max-width: 767px) {
  .nav-inner { padding: 0 1.25rem; }
  .page-section { padding: 3rem 1.25rem; }
  footer { padding: 2.5rem 1.25rem 1.5rem; }
  .footer-inner { flex-direction: column; gap: 2rem; }
  .cookie-banner { padding: 1rem 1.25rem; }
  .cookie-inner { flex-direction: column; align-items: flex-start; }
  .legal-table td:first-child { width: 140px; }
  .pill-link { font-size: 1.05rem; padding: 14px 20px; }
}

/* Süti beállítások gomb a footerben */
.cookie-settings-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: .78rem;
  padding: 0;
  font-family: var(--font-sans);
}

/* Navbar logó rövidítés mobilon */
.nav-home-short { display: none; }
.nav-home-full  { display: inline; }
@media (max-width: 991px) {
  .nav-home-full  { display: none; }
  .nav-home-short { display: inline; }
}
