:root {
  --szin-zold: #00897b;
  --szin-zold-halvany: #e0f2f1;
  --szin-sotet: #212529;
  --szin-szurke: #f8f9fa;
  --szin-feher: #ffffff;
  --global-border-radius: 0.5rem;
}

/* ÚJ: Sima görgetés az oldalon */
html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Inter', sans-serif;
  color: #444;
  padding-top: 70px;
}

/* Tipográfia */
h1, h2, h3, h4, h5, h6 { font-weight: 700; color: var(--szin-sotet); }
.section-title { font-weight: 800; margin-bottom: 3rem; }

/* Navbar */
.navbar { padding: 0.8rem 0; transition: all 0.4s ease; box-shadow: 0 4px 10px rgba(0,0,0,0.04); }
.navbar-brand { font-weight: 800; font-size: 1.5rem; color: var(--szin-zold) !important; }
.nav-link { font-weight: 600; font-size: 0.9rem; padding: 0.5rem 1rem !important; margin: 0 0.2rem; border-radius: var(--global-border-radius); transition: all 0.3s ease; }
.nav-link:hover, .nav-link.active { color: var(--szin-zold); background-color: var(--szin-zold-halvany); }
.btn-primary, .btn-outline-primary { border-radius: 50rem; padding: 0.6rem 1.5rem; font-weight: 700; }
.btn-primary { background-color: var(--szin-zold); border-color: var(--szin-zold); }
.btn-outline-primary { border-color: var(--szin-zold); color: var(--szin-zold); }

/* Hero Szekció */
.hero-section { padding: 100px 0; background-color: var(--szin-szurke); }
.hero-image { border-radius: var(--global-border-radius); box-shadow: 0 20px 40px rgba(0,0,0,0.1); }

/* ÚJ: Hero Szekció Kiemelések */
.hero-feature {
    display: flex;
    align-items: center;
}

.hero-feature i {
    color: var(--szin-zold);
    font-size: 1.2rem;
    margin-right: 0.5rem;
}

.hero-feature span {
    font-weight: 600;
    color: #555;
}

/* Szolgáltatások (Harmonika) */
.accordion-item { border: 1px solid #dee2e6; border-radius: var(--global-border-radius) !important; margin-bottom: 1rem; }
.accordion-button { font-weight: 700; color: var(--szin-sotet); }
.accordion-button:not(.collapsed) { background-color: var(--szin-zold); color: var(--szin-feher); }
.accordion-button:focus { box-shadow: none; }
.accordion-button:not(.collapsed)::after { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); }

/* Garanciák (Feature Box) */
.feature-box { padding: 2rem; background-color: var(--szin-feher); border-radius: var(--global-border-radius); transition: all 0.3s ease; }
.feature-box:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(0,0,0,0.08); }
.feature-icon { font-size: 3rem; color: var(--szin-zold); margin-bottom: 1rem; }

/* ÚJ: Folyamatunk Szekció */
.process-step { padding: 2rem; }
.process-step h3 { font-weight: 800; color: var(--szin-zold); }

/* CTA Szekció */
#cta {
    background: linear-gradient(45deg, #00897b, #00695c);
    position: relative;
    width: 100vw; /* A szélesség legyen 100%-a a KÉPERNYŐNEK, ne a szülő elemnek */
    left: 50%;
    right: 50%;
    margin-left: -50vw; /* Negatív margóval "visszahúzzuk" a helyére */
    margin-right: -50vw;
}

/* Galéria */
.gallery-item { display: block; position: relative; overflow: hidden; border-radius: var(--global-border-radius); cursor: pointer; }
.gallery-item img { width: 100%; height: 100%; transition: transform 0.4s ease; aspect-ratio: 1/1; object-fit: cover; }
.gallery-item:hover img { transform: scale(1.1); }
.gallery-item::after { content: '\F424'; font-family: 'bootstrap-icons'; font-size: 2.5rem; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 137, 123, 0.8); color: var(--szin-feher); display: flex; justify-content: center; align-items: center; opacity: 0; transition: opacity 0.4s ease; }
.gallery-item:hover::after { opacity: 1; }

/* Modal */
#galleryModal .modal-dialog { display: flex; align-items: center; min-height: calc(100% - 1rem); }
#galleryModal .modal-content { background-color: transparent; border: none; }
#galleryModal .modal-body { display: flex; justify-content: center; align-items: center; padding: 0; }
#galleryModal #modalImage { width: 100%; height: 100%; max-height: 90vh; object-fit: contain; }
#galleryModal .btn-close { position: fixed; top: 20px; right: 30px; z-index: 1060; background-color: var(--szin-zold); border-radius: 50%; width: 45px; height: 45px; box-shadow: 0 4px 15px rgba(0,0,0,0.3); opacity: 0.9; border: 2px solid var(--szin-feher); filter: brightness(0) invert(1); transition: all 0.3s ease; }
#galleryModal .btn-close:hover { opacity: 1; transform: scale(1.1); }

/* Kapcsolat Szekció */
#kapcsolat a { color: var(--szin-zold); }
.form-control { padding: 0.8rem 1rem; border-radius: var(--global-border-radius); border: 1px solid #ced4da; transition: all 0.3s ease; }
.form-control:focus { border-color: var(--szin-zold); box-shadow: 0 0 0 0.25rem rgba(0, 137, 123, 0.25); }
.form-label { font-weight: 600; }
.contact-info-box { background-color: var(--szin-feher); padding: 2rem; border-radius: var(--global-border-radius); text-align: center; border: 1px solid #e9ecef; }
.contact-icon { font-size: 2.5rem; color: var(--szin-zold); margin-bottom: 1rem; }
.contact-info-box h4 { font-weight: 700; }
.contact-info-box p { color: #6c757d; margin-bottom: 1rem; }
.contact-link { font-weight: 700; text-decoration: none; color: var(--szin-sotet); }

/* === Reszponzív Javítások a Kapcsolat Szekcióhoz === */
@media (max-width: 768px) {
  /* ... (a már meglévő mobil stílusok) ... */

  .contact-info-box {
    padding: 1.5rem; /* Esetleg kicsit kevesebb padding mobilnézeten */
    word-break: break-word; /* Hosszú szavak (pl. email) törése */
    overflow-wrap: break-word; /* Modern alternatíva a word-break-re */
  }

  .contact-link {
    display: block; /* Fontos! A link viselkedjen blokk elemként, hogy elfoglalja a rendelkezésre álló szélességet és törjön */
    white-space: normal; /* Engedélyezi a szövegtörést */
    word-break: break-all; /* Még agresszívebb törés, minden ponton törhet */
    overflow-wrap: break-word; /* Ismétlés a biztonság kedvéért */
    font-size: 0.95rem; /* Esetleg kicsit kisebb betűméret mobilra */
    padding: 0 5px; /* Enyhe padding oldalra, ha szükséges */
  }

  /* Kiegészítő ellenőrzés a szövegnek a contact-info-box-on belül */
  .contact-info-box p {
    word-break: break-word;
    overflow-wrap: break-word;
  }
}

/* ÚJ: "Vissza a tetejére" gomb */
.back-to-top {
  position: fixed;
  visibility: hidden;
  opacity: 0;
  right: 15px;
  bottom: 15px;
  z-index: 996;
  background: var(--szin-zold);
  width: 40px;
  height: 40px;
  border-radius: 50px;
  transition: all 0.4s;
}
.back-to-top i {
  font-size: 28px;
  color: #fff;
  line-height: 0;
}
.back-to-top:hover {
  background: #00a897;
  color: #fff;
}
.back-to-top.active {
  visibility: visible;
  opacity: 1;
}

/* ÚJ: Beúszó animációk */
.fade-in-section {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.fade-in-section.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* === Reszponzív Javítások === */
@media (max-width: 768px) {
  
  /* Általános Térközök Mobilon */
  body {
    padding-top: 60px; /* Kisebb hely a navbarnak */
  }
  section {
    padding: 60px 0; /* Kisebb szekció magasság */
  }

  /* Navbar */
  .navbar-brand {
    font-size: 1.2rem !important; /* Kisebb márkanév, hogy elférjen */
  }
  .navbar-nav {
      margin-top: 1rem; /* Kis térköz a menü és a gomb között */
  }

  /* Tipográfia */
  .display-4 {
    font-size: 2.5rem; /* Kisebb főcím */
  }
  .section-title {
    font-size: 2rem; /* Kisebb szekció címek */
    margin-bottom: 2rem;
  }
  h2 {
      font-size: 1.8rem;
  }
  
  /* Hero Szekció */
  .hero-section {
    padding: 60px 0;
  }
  .hero-section .col-lg-6 {
    text-align: center; /* Szöveg középre igazítása */
  }
  .hero-section img {
    margin-top: 2rem; /* Térköz a szöveg és a kép között */
  }

  /* "Folyamatunk" Szekció */
  .process-step {
      padding: 1.5rem 1rem;
      border-bottom: 1px solid #e9ecef;
  }
  #folyamat .row > div:last-child .process-step {
      border-bottom: none; /* Utolsó elem alatt nincs vonal */
  }
}