/*==================================
   SZOLGÁLTATÁS KÁRTYÁK - 100% FINISH (EGYEDI OSZTÁLLYAL)
==================================*/

/* 1. A fő rács (szülő konténer, amely megkapta a .custom_iconbox osztályt) */
.custom_iconbox {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  align-items: stretch !important; /* Ez kényszeríti az egyforma magasságot a sorokon belül */
  gap: 20px !important;
  width: 100% !important;
}

/* 2. A Kártya (Az összes ikonbox widget a .custom_iconbox konténeren belül) */
.custom_iconbox .elementor-widget-icon-box {
  flex: 1 1 calc(33.333% - 20px) !important;
  min-width: 300px !important;
  display: flex !important;
  flex-direction: column !important; /* Függőleges elrendezés a belső elemeknek */
  height: auto !important; /* Engedjük, hogy a stretch nyújtsa meg */

  background-color: var(--color-off-white, #f9f7f2) !important;
  border: 1px solid rgba(89, 44, 14, 0.1) !important;
  padding: 30px !important;
  border-radius: 12px !important;
  transition: all 0.4s ease-in-out !important;
  box-sizing: border-box !important;
}

/* 3. Ikon és Cím szekció alapértelmezett értékei */
.custom_iconbox .elementor-widget-icon-box .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 5px !important;
  margin-bottom: 20px !important;
  flex-shrink: 0 !important; /* Ne nyomódjon össze */
}

/* Ikon alapállapot */
.custom_iconbox .elementor-widget-icon-box .elementor-icon {
  display: inline-flex !important;
  min-width: 50px !important;
  height: 50px !important;
  background-color: rgba(89, 44, 14, 0.08) !important;
  border-radius: 50% !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.4s ease !important;
}

.custom_iconbox .elementor-widget-icon-box .elementor-icon svg {
  width: 24px !important;
  fill: var(--color-primary-green, #4b6605) !important;
  transition: all 0.4s ease !important;
}

/*==================================================
 4. SERVICE GRID - IKON+CÍM EGY SORBAN, LEÍRÁS ALATTA
==================================================*/
/* Az ikon és a cím egymáshoz képesti igazítása */
.custom_iconbox .elementor-widget-icon-box .elementor-view-default,
.custom_iconbox .elementor-widget-icon-box .elementor-icon-box-title {
  align-self: center !important; /* Saját sorukon innen középre kerülnek */
}

/* A wrapper-t átalakítjuk Griddé */
.custom_iconbox .elementor-widget-icon-box .elementor-icon-box-wrapper {
  display: grid !important;
  /* Két oszlop: az első az ikonnak (auto), a második a címnek (1fr) */
  grid-template-columns: auto 1fr;
  /* Két sor: az első az ikon+cím, a második a leírás */
  grid-template-rows: auto auto;
  gap: 15px 20px; /* Távolság az ikon/cím és a leírás között */
  align-items: center; /* Ikon és cím függőlegesen középen egymáshoz kp-est */
  width: 100% !important;
}

/* Az ikon helyzete (1. sor, 1. oszlop) */
.custom_iconbox .elementor-widget-icon-box .elementor-view-default {
  grid-column: 1;
  grid-row: 1;
  margin: 0 !important;
}

/* A tartalom (Cím + Leírás) kezelése */
.custom_iconbox .elementor-widget-icon-box .elementor-icon-box-content {
  display: contents !important; /* Szétbontjuk a konténert, hogy a gyerekei a Grid részei legyenek */
}

/* A CÍM helyzete (1. sor, 2. oszlop) */
.custom_iconbox .elementor-widget-icon-box .elementor-icon-box-title {
  grid-column: 2;
  grid-row: 1;
  margin: 0 !important;
  text-align: left !important;
}

/* A leírás (description) kényszerítése és tipográfiája */
.custom_iconbox .elementor-widget-icon-box .elementor-icon-box-description {
  grid-column: 1 / span 2; /* Az 1. oszloptól indul és 2 oszlopot fog át */
  grid-row: 2;
  color: var(--color-primary-brown, #592c0e) !important;
  width: 100% !important;

  /* Tipográfia a prémium megjelenésért */
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
  letter-spacing: 0.02em !important;
  text-align: justify !important;

  /* Távolságok kezelése */
  margin-top: 5px !important;
  margin-bottom: 25px !important;

  /* Nyelvhelyességi tördelés */
  hyphens: auto;
}

/* A GOMB (Mindig az aljára kerül) */
.custom_iconbox .elementor-widget-icon-box .elementor-widget-button {
  margin-top: auto !important; /* Biztonsági tartalék, hogy az alján maradjon */
  flex-shrink: 0 !important; /* Ne torzuljon a gomb mérete */
}

/* HOVER EFFEKTEK (Változatlanul a kért színekkel) */
.custom_iconbox .elementor-widget-icon-box:hover {
  background-color: var(--color-white, #ffffff) !important;
  transform: translateY(-5px);
  box-shadow: 0 12px 30px rgba(89, 44, 14, 0.1);
}

.custom_iconbox .elementor-widget-icon-box:hover .elementor-icon {
  background-color: var(--color-accent-green, #84b026) !important;
}

/* Definiáljuk a dupla forgást */
@keyframes duplaForgas {
  0% {
    transform: rotate(0deg) scale(1);
  }
  100% {
    transform: rotate(375deg) scale(1.1);
  }
}

.custom_iconbox .elementor-widget-icon-box:hover .elementor-icon svg {
  fill: #ffffff !important;
  /* Elindítjuk az animációt */
  animation: duplaForgas 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
  transition: fill 0.3s ease;
}

/* Visszaállítás, amikor elvisszük az egeret */
.custom_iconbox .elementor-widget-icon-box .elementor-icon svg {
  transition:
    transform 0.5s ease,
    fill 0.3s ease;
  transform: rotate(0deg) scale(1);
}

.custom_iconbox
  .elementor-widget-icon-box:hover
  .elementor-icon-box-title
  span {
  color: var(--color-primary-green, #4b6605) !important;
}

.custom_iconbox .elementor-widget-icon-box .elementor-icon-box-title span {
  display: block !important;
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  color: var(--color-primary-brown, #592c0e) !important;
  line-height: 1.2 !important;
  transition: color 0.3s ease !important;
}

/* Alapból rejtve marad minden, aminek animációt adtál */
.elementor-invisible {
  visibility: hidden;
  opacity: 0;
}

/* Ez az osztály fogja aktiválni az animációt, ha odaérsz */
.reveal-active {
  visibility: visible !important;
  opacity: 1 !important;
  animation: fadeInUp 0.8s ease-out forwards;
}

/* Mobil nézet optimalizálás és animáció */
@media (max-width: 1024px) {
  .custom_iconbox .elementor-widget-icon-box {
    flex: 1 1 100% !important;
  }
}

@media (max-width: 767px) {
  /* 1. Alapállapot: Mélyebben rejtve */
  .custom_iconbox .elementor-widget-icon-box {
    visibility: hidden !important;
    opacity: 0 !important;
    transform: translateY(100px) scale(0.93);
    will-change: transform, opacity;
  }

  /* 2. Aktív állapot: Amikor a JS rárakja az osztályt */
  .custom_iconbox .elementor-widget-icon-box.reveal-active {
    visibility: visible !important;
    opacity: 1 !important;
    animation: ablakosBeuszas 1.4s cubic-bezier(0.2, 1, 0.3, 1) forwards;
  }
}

/* Az animáció lépései */
@keyframes ablakosBeuszas {
  0% {
    opacity: 0;
    transform: translateY(100px) scale(0.93);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
