/*
Theme Name: Namai
Theme URI: https://namai.hu
Author: Namai Studio
Description: Elementor-natív téma a namai jóga stúdiónak — Veszprém.
Version: 6.1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: namai
*/

/* ==========================================================================
   Tokenek
   ========================================================================== */
/* A --wood/--wood-deep/--taupe-logo értékek a VALÓS namai logóból mintavéve
   (NAMAI_logo_barna.png, domináns szín #C6BDB6) — nem szabad visszacserélni
   a korábbi, sokkal telítettebb terrakotta tónusra, mert az nem illik a
   logóhoz (ezt a felhasználó kifejezetten jelezte). */
:root{
  --bg:#FBF6EE;
  --bg-soft:#F1E6D3;
  --ink:#33281D;
  --ink-soft:#6B5D4E;
  --taupe-logo:#C6BDB6;
  --wood:#9C8A76;
  --wood-deep:#6E5D4A;
  --sage:#74815F;
  --bronze:#3B2E20;
  --paper:#FFFFFF;
  --line:rgba(51,40,29,.13);
  --font-head:'Plus Jakarta Sans', 'Segoe UI', sans-serif;
  --font-body:'Inter', 'Segoe UI', sans-serif;
}

/* ==========================================================================
   Alap
   ========================================================================== */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; }
a{ color:inherit; }
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--ink); color:#fff; padding:12px 20px; z-index:999; }
.skip-link:focus{ left:12px; top:12px; }
.container{ max-width:1200px; margin:0 auto; padding:0 32px; }
.nm-wrap{ max-width:1200px; margin:0 auto; padding:0 32px; }
@media (max-width:640px){ .container, .nm-wrap{ padding:0 20px; } }
.section{ padding:64px 0; }

h1,h2,h3{ font-family:var(--font-head); font-weight:600; margin:0 0 .5em; line-height:1.2; }

/* ==========================================================================
   Elementor Kit-ütközés elleni védelem — a Site Settings → Theme Style
   globális szabályai .elementor- szelektorokra futnak, ezért itt mindent
   !important-tal írunk felül a saját téma-osztályainkon belül.
   ========================================================================== */
.nm-kicker .elementor-heading-title{
  font-family:var(--font-body) !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.08em !important;
  font-size:13px !important;
  color:var(--wood) !important;
  margin-bottom:10px;
}
.nm-h.elementor-widget-heading .elementor-heading-title,
h1.elementor-heading-title, h2.elementor-heading-title, h3.elementor-heading-title{
  font-family:var(--font-head) !important;
  font-weight:600 !important;
  color:var(--ink) !important;
}
.nm-lead p{ font-size:18px !important; color:var(--ink-soft) !important; }
.nm-text p{ color:var(--ink-soft); font-size:16px; margin:0 0 16px; max-width:60ch; }
.content-page p{ color:var(--ink-soft); font-size:16px; max-width:70ch; }
.nm-stat__num.elementor-heading-title{ font-size:32px !important; color:var(--wood) !important; font-weight:700 !important; }

/* Sima szöveges lista (nm_el_list) — ikon nélkül, natív Text Editor widget. */
.nm-plain-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.nm-plain-list li{ position:relative; padding-left:22px; color:var(--ink-soft); font-size:15px; }
.nm-plain-list li::before{ content:''; position:absolute; left:0; top:9px; width:6px; height:6px; border-radius:50%; background:var(--wood); }

/* !important + width:auto KELL: Elementor egyes verzióiban egyetlen, magában
   álló gomb widget a szülő oszlop teljes szélességét kitölti (ezt láttuk
   élesben — egy csúnya, sarkos, teljes szélességű sáv lett belőle egy
   gomb helyett). Ez mindig kikényszeríti a kapszula-alakot. */
.elementor-widget-button{ display:inline-block !important; width:auto !important; max-width:100%; }
.nm-button .elementor-button{
  display:inline-flex !important; align-items:center; justify-content:center; gap:8px;
  width:auto !important;
  padding:14px 28px; border-radius:999px !important;
  background:var(--ink) !important; color:var(--bg) !important;
  font-weight:600 !important; font-size:14.5px; font-family:var(--font-head) !important;
  border:1px solid var(--ink) !important; transition:background .15s ease, color .15s ease;
}
.nm-button .elementor-button:hover{ background:var(--wood) !important; border-color:var(--wood) !important; }
.btn-outline.nm-button .elementor-button{ background:transparent !important; color:var(--ink) !important; border-color:var(--ink) !important; }
.btn-outline.nm-button .elementor-button:hover{ background:var(--ink) !important; color:var(--bg) !important; }
.btn-white.nm-button .elementor-button{ background:#fff !important; color:var(--ink) !important; border-color:#fff !important; }
.btn-white.nm-button .elementor-button:hover{ background:var(--wood) !important; color:#fff !important; border-color:var(--wood) !important; }

body{ font-family:var(--font-body) !important; color:var(--ink) !important; }

/* ==========================================================================
   Fejléc
   ========================================================================== */
/* Felső információs sáv (Testreszabás → „Namai — felső sáv"). */
.nm-announcement{
  background:var(--bronze); color:#EFE7DA;
  font-size:13.5px; text-align:center;
  padding:9px 20px; line-height:1.4;
}
.nm-announcement a{ text-decoration:underline; }

.site-header{ position:sticky; top:0; z-index:50; background:rgba(251,246,238,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.site-header__inner{ max-width:1200px; margin:0 auto; padding:0 32px; height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
@media (max-width:640px){ .site-header__inner{ padding:0 20px; } }
.site-logo img{ height:44px; width:auto; display:block; }
.site-logo a{ display:block; }
.wordmark{ font-family:var(--font-head); font-weight:700; font-size:24px; color:var(--ink); }

.primary-nav ul{ display:flex; gap:30px; list-style:none; margin:0; padding:0; }
.primary-nav a{ text-decoration:none; font-size:14.5px; font-weight:600; color:var(--ink-soft); }
.primary-nav a:hover{ color:var(--wood); }

.header-icons{ display:flex; align-items:center; gap:16px; }
.ig-link{ width:38px; height:38px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ig-link svg{ width:17px; height:17px; }

/* FONTOS: ezek a segéd-osztályok KIZÁROLAG a fejléc/lábléc sima
   <a class="btn btn-solid"> linkjeire vonatkoznak, ezért mindegyik `.btn`-nel
   együtt van megkötve. Enélkül (csak `.btn-solid`-ként) ráragadtak az
   Elementor gomb-widget BURKOLÓ div-jére is — ami ugyanezeket az
   osztályneveket kapja —, és a burkoló egy SZÖGLETES, tömör hátterű
   téglalapot festett a belső, kerek gomb elé. Pontosan ez okozta, hogy a
   gomb szögletesnek látszott, miközben a `.elementor-button` maga
   999px-es volt, és hoverkor egy pillanatra felvillant a kerek forma. */
.btn{ display:inline-flex; align-items:center; gap:8px; padding:12px 24px; border-radius:999px; font-size:14.5px; font-weight:600; text-decoration:none; font-family:var(--font-head); border:1px solid transparent; transition:all .15s ease; white-space:nowrap; }
.btn.btn-solid{ background:var(--ink); color:var(--bg); }
.btn.btn-solid:hover{ background:var(--wood); }
.btn.btn-outline{ border-color:var(--ink); color:var(--ink); }
.btn.btn-outline:hover{ background:var(--ink); color:var(--bg); }
.btn.btn-white{ background:#fff; color:var(--ink); }
.btn.btn-white:hover{ background:var(--wood); color:#fff; }
/* biztonsági háló: az Elementor gomb-widget burkolója soha ne fessen hátteret */
.elementor-widget-button{ background:transparent !important; border:0 !important; }

.nm-nav-toggle{ display:none; }
.menu-toggle{ display:none; cursor:pointer; }
.menu-toggle svg:last-child{ display:none; }
.primary-nav__mobile-actions{ display:none; }
@media (max-width:920px){
  .primary-nav{ display:none; }
  .header-icons .btn, .header-icons .ig-link{ display:none; }
  .menu-toggle{ display:flex; }
  .nm-nav-toggle:checked ~ .primary-nav{
    display:flex; flex-direction:column; position:absolute; top:80px; left:0; right:0; background:var(--bg);
    border-bottom:1px solid var(--line); padding:20px 20px 28px; box-shadow:0 20px 40px -20px rgba(30,22,14,.2);
  }
  .nm-nav-toggle:checked ~ .primary-nav ul{ flex-direction:column; gap:16px; }
  .nm-nav-toggle:checked ~ .primary-nav .primary-nav__mobile-actions{
    display:flex; align-items:center; justify-content:center; gap:14px;
    margin-top:18px; padding-top:18px; border-top:1px solid var(--line);
  }
  .nm-nav-toggle:checked ~ .header-icons .menu-toggle svg:first-child{ display:none; }
  .nm-nav-toggle:checked ~ .header-icons .menu-toggle svg:last-child{ display:block; }
}

/* ==========================================================================
   Szakasz-héj
   ========================================================================== */
.nm-sec{ padding:112px 0; }
.nm-sec--flush{ padding:0 !important; }
.nm-sec--top-flush{ padding-top:0 !important; }
.nm-sec--tight{ padding-bottom:20px; }
.nm-sec--soft{ background:var(--bg-soft); }
.nm-sec--prose{ padding-bottom:0; }
@media (max-width:640px){ .nm-sec{ padding:64px 0; } }
.nm-pagehead{ padding-bottom:20px; padding-top:56px; }

/* KRITIKUS: az Elementor `layout: full_width` szakaszai maguktól NEM
   korlátozzák a tartalom szélességét (ez direkt van így Elementorban, hogy
   a témák maguk dönthessék el) — enélkül a szabály nélkül minden nyers HTML
   blokk (kártyarácsok, sávok) a böngésző teljes szélességéig nyúlik, míg a
   fejléc/hero/kicker külön .nm-wrap-pel már eleve korlátozva volt. Ez a
   szabály minden .nm-sec-re egységesen ráteszi ugyanazt a 1200px-es
   tartalom-szélességet, amit a fejléc és a hero is használ. A .elementor-
   container Elementor SZAKASZ-szintű (nem widget-szintű) wrappere, ezt az
   "Optimized DOM" beállítás sem szedi ki, tehát élesben is biztonságos. */
/* !important KELL: az Elementor minden szakaszhoz saját, oldal-specifikus
   CSS-t generál (wp-content/uploads/elementor/css/post-XXX.css), aminek a
   szelektorai (pl. `.elementor-XXXX .elementor-element-abcdef1 > .elementor-
   container`) TÖBB osztályból állnak, mint a mienk — enélkül az !important
   nélkül simán felülírná a max-width-öt, és minden szakasz megint teljes
   szélességű lenne (ez volt a "szétesett oldal" pontos oka). */
.nm-sec .elementor-container{ max-width:1200px !important; margin:0 auto !important; padding:0 32px !important; box-sizing:border-box; }
@media (max-width:640px){ .nm-sec .elementor-container{ padding:0 20px !important; } }
.nm-sec--flush .elementor-container{ max-width:none !important; padding:0 !important; }
/* Teljes szélességű fotó/szín-sávok (idézet, "miért namai", helyszín-CTA) —
   a HÁTTÉR (fotó/gradiens) valóban a böngésző széléig ér, ahogy a
   referencia oldalon is; a bennük lévő SZÖVEG viszont ugyanahhoz az
   1200px-es tartalom-zónához igazodik `max()`-szel, hogy ne lógjon ki a
   képernyő szélére keskeny nézetben sem. */
.nm-sec--band{ padding:8px 0; }
.safe-x{ padding-left:max(32px, calc((100vw - 1200px)/2 + 32px)); padding-right:max(32px, calc((100vw - 1200px)/2 + 32px)); }
.nm-sec--head .elementor-container{ max-width:640px !important; text-align:center; }

/* ==========================================================================
   Dekor motívum — halvány, túlméretezett mandala/lótusz vonalgrafika a
   szekció-címek mögött. Tiszta CSS (SVG data URI), ezért NEM igényel sem
   HTML widgetet, sem Font Awesome-ot (utóbbi ezen az oldalon egyáltalán
   nem töltődik be). A koncentrikus körök + szirmok a namai logó saját
   jelmotívumát idézik, nem egy általános stock-mandalát.
   ========================================================================== */
.nm-sec--head{ position:relative; }
.nm-sec--head::before{
  content:'';
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:min(560px, 78vw);
  aspect-ratio:1;
  pointer-events:none;
  z-index:0;
  opacity:.12;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%239C8A76' stroke-width='0.6'%3E%3Ccircle cx='100' cy='100' r='26'/%3E%3Ccircle cx='100' cy='100' r='76'/%3E%3Cellipse cx='100' cy='62' rx='13' ry='38'/%3E%3Cellipse cx='100' cy='62' rx='13' ry='38' transform='rotate(30 100 100)'/%3E%3Cellipse cx='100' cy='62' rx='13' ry='38' transform='rotate(60 100 100)'/%3E%3Cellipse cx='100' cy='62' rx='13' ry='38' transform='rotate(90 100 100)'/%3E%3Cellipse cx='100' cy='62' rx='13' ry='38' transform='rotate(120 100 100)'/%3E%3Cellipse cx='100' cy='62' rx='13' ry='38' transform='rotate(150 100 100)'/%3E%3C/g%3E%3C/svg%3E");
}
/* a cím-tartalom mindig a motívum FÖLÖTT marad */
.nm-sec--head .elementor-container{ position:relative; z-index:1; }

/* Váltakozó motívum-változatok — minden második/harmadik szekció-cím más
   geometriát kap, hogy ne ismétlődjön ugyanaz a rajz végig az oldalon.
   2.: nyolcszirmú, dupla gyűrűvel. 3.: koncentrikus körök + finom küllők. */
.nm-sec--head:nth-of-type(2n)::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%239C8A76' stroke-width='0.6'%3E%3Ccircle cx='100' cy='100' r='34'/%3E%3Ccircle cx='100' cy='100' r='40'/%3E%3Ccircle cx='100' cy='100' r='78'/%3E%3Cellipse cx='100' cy='68' rx='11' ry='30'/%3E%3Cellipse cx='100' cy='68' rx='11' ry='30' transform='rotate(45 100 100)'/%3E%3Cellipse cx='100' cy='68' rx='11' ry='30' transform='rotate(90 100 100)'/%3E%3Cellipse cx='100' cy='68' rx='11' ry='30' transform='rotate(135 100 100)'/%3E%3C/g%3E%3C/svg%3E");
  transform:translate(-50%,-50%) rotate(22.5deg);
}
.nm-sec--head:nth-of-type(3n)::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%239C8A76' stroke-width='0.6'%3E%3Ccircle cx='100' cy='100' r='22'/%3E%3Ccircle cx='100' cy='100' r='48'/%3E%3Ccircle cx='100' cy='100' r='72'/%3E%3Cpath d='M100 28 V172 M28 100 H172'/%3E%3Cpath d='M49 49 L151 151 M151 49 L49 151'/%3E%3C/g%3E%3C/svg%3E");
  transform:translate(-50%,-50%) rotate(-12deg);
}
@media (prefers-reduced-motion: no-preference){
  .nm-sec--head::before{ transition:opacity .8s ease; }
}
.nm-sec--head.nm-sec--left .elementor-container{ text-align:left; margin-left:0 !important; }
.nm-center{ text-align:center; }
.nm-center .elementor-widget-container, .nm-center .elementor-button{ margin:0 auto; }

/* valódi Elementor oszlop-hasábok (about/founder/instructors/location) */
.nm-split .elementor-container{ align-items:center; gap:40px !important; }
.nm-split--reverse .elementor-container{ flex-direction:row-reverse; }
.nm-image img{ border-radius:20px; display:block; }

/* ==========================================================================
   Natív Elementor widgetek — globális márka-stílus
   (icon-box, icon-list, counter, icon, image-carousel, google_maps —
   MINDEN tartalmi elem natív Elementor widget, nincs "html" widgetType
   sehol a témában; a lenti szabályok ezeknek a natív widgeteknek a saját,
   Elementor által kiadott osztályait célozzák, nem egyedi div-eket.)
   ========================================================================== */
.elementor-icon-box-wrapper{ text-align:center; display:flex; flex-direction:column; align-items:center; }
.elementor-icon-box-icon{ display:inline-flex; align-items:center; justify-content:center; width:60px; height:60px; border-radius:50%; background:rgba(156,138,118,.16); margin-bottom:16px; }
.elementor-icon-box-icon i{ font-size:24px; color:var(--wood); }
.elementor-icon-box-title{ font-family:var(--font-head) !important; font-weight:700 !important; font-size:18px !important; color:var(--ink) !important; margin:0 0 8px; }
.elementor-icon-box-title a{ color:inherit; }
.elementor-icon-box-description{ color:var(--ink-soft); font-size:14.5px; margin:0; max-width:30ch; }

.elementor-icon-list-items{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.elementor-icon-list-item{ display:flex; align-items:flex-start; gap:12px; }
.elementor-icon-list-icon{ color:var(--wood); font-size:15px; margin-top:3px; flex-shrink:0; }
.elementor-icon-list-text{ color:var(--ink-soft); font-size:15px; }

.elementor-counter-number-wrapper{ font-family:var(--font-head); font-weight:800; font-size:clamp(30px,3.4vw,44px); color:var(--wood); font-variant-numeric:tabular-nums; }
.elementor-counter-title{ font-size:13.5px; color:var(--ink-soft); font-weight:600; margin-top:6px; }

.elementor-widget-icon .elementor-icon{ color:var(--wood); font-size:24px; }

.elementor-widget-google_maps .elementor-custom-embed,
.elementor-widget-google_maps iframe{ border-radius:20px; min-height:340px; }

.elementor-image-carousel-wrapper{ border-radius:26px; overflow:hidden; }
.elementor-image-carousel-wrapper img{ object-fit:cover; }

/* ==========================================================================
   Hero
   ========================================================================== */
/* A hero HÁTTERE teljes szélességű (a szakasz maga), a TARTALMA viszont a
   megszokott, középre zárt 1200px-es boxban marad — ezért nincs rajta
   `nm-sec--flush`, ami korábban a bal képernyőszélre lökte a szöveget. */
.nm-hero-top, .nm-hero-bottom{ background:linear-gradient(135deg, var(--bg) 45%, var(--bg-soft) 100%); }
.nm-hero-top{ overflow:hidden; padding:56px 0 0 !important; }
.nm-hero-bottom{ padding:0 0 84px !important; }
/* Kicker a hero tetején — a korábbi apró, elveszett "Üdvözöl…" felirat
   helyett rendes, ritkított verzál eyebrow, ahogy a szekció-címeknél is. */
.hero-greet .elementor-heading-title{
  font-family:var(--font-body) !important;
  font-size:12.5px !important; font-weight:700 !important;
  text-transform:uppercase !important; letter-spacing:.16em !important;
  color:var(--wood) !important;
}
.hero-greet{ margin-bottom:10px; }
.hero-watermark.elementor-widget-heading .elementor-heading-title{
  font-family:var(--font-head) !important; font-weight:800 !important;
  font-size:clamp(64px, 13vw, 170px) !important; line-height:.85 !important;
  background:linear-gradient(100deg, var(--wood) 10%, var(--wood-deep) 60%, transparent 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent !important;
  opacity:.55; letter-spacing:-.03em; user-select:none;
}
.hero-claim .elementor-heading-title{ font-family:var(--font-head) !important; font-weight:600 !important; font-size:clamp(20px,2.4vw,26px) !important; color:var(--ink) !important; line-height:1.3 !important; }
.hero-copy-col .elementor-widget-text-editor p{ color:var(--ink-soft); max-width:44ch; margin:20px 0 0; }
.hero-copy-col .elementor-widget-button{ display:inline-block; margin:26px 14px 0 0; }
/* Kis, visszafogott előnézeti slider — nem uralja a hero-t, csak bele
   lehessen lesni a stúdióba (a felhasználó kifejezetten kis képet kért). */
.hero-slider-col .elementor-widget-image-carousel{ max-width:290px; margin-left:auto; aspect-ratio:4/5; }
.hero-slider-col .elementor-image-carousel-wrapper{ height:100%; border-radius:20px; box-shadow:0 24px 50px -28px rgba(59,46,32,.4); }
.hero-slider-col .swiper, .hero-slider-col .swiper-slide, .hero-slider-col .elementor-image-carousel-wrapper .swiper-wrapper{ height:100%; }
.hero-slider-col img{ height:100%; width:100%; object-fit:cover; }
@media (max-width:900px){ .hero-slider-col .elementor-widget-image-carousel{ max-width:320px; margin:0 auto; } }

/* 3 ikonos sáv */
/* 3 elvi blokk — nincs doboz-a-dobozban keret (az nézett ki butául);
   helyette finom függőleges elválasztó vonalak, mint a BodyShape
   statisztika-során, és balra igazított, nyugodt tipográfia. */
.feature-row .elementor-container{ gap:0 !important; }
.feature-cell{ position:relative; }
.feature-cell + .feature-cell::before{
  content:''; position:absolute; left:0; top:14%; bottom:14%; width:1px; background:var(--line);
}
.feature-cell .elementor-widget-wrap{ padding:8px 40px !important; }
.feature-cell h3.elementor-heading-title{ font-size:17px !important; margin-bottom:10px !important; }
.feature-cell .elementor-widget-text-editor p{ color:var(--ink-soft); font-size:14.5px; margin:0; }
@media (max-width:760px){
  .feature-row .elementor-container{ flex-direction:column; gap:28px !important; }
  .feature-cell + .feature-cell::before{ display:none; }
  .feature-cell .elementor-widget-wrap{ padding:0 !important; }
}

/* Statok */
.stats .elementor-column{ text-align:center; }

/* Fotó + szöveg hasábok (idézet / helyszín) — sima, világos, olvasható;
   a korábbi sötét fotó-háttér + fehér szöveg megoldás törékenynek
   bizonyult élesben, ezért ugyanazt a bevált mintát használjuk mindenhol,
   mint a "namai studio" és "tudnivalók" hasáboknál. */
.nm-ring-photo img{ aspect-ratio:4/5; object-fit:cover; border-radius:18px; box-shadow:0 30px 60px -30px rgba(59,46,32,.5); }

/* Óratípus-rács */
.class-card{ background:var(--paper); border:1px solid var(--line); border-radius:18px; }
.class-card .elementor-widget-wrap{ padding:32px 26px !important; }
.class-card h3.elementor-heading-title{ font-size:17px !important; }
.class-card .elementor-widget-text-editor p{ font-size:14px; color:var(--ink-soft); margin:0; }
.class-grid-row .elementor-container{ gap:20px !important; }
@media (max-width:900px){ .class-grid-row .elementor-container{ flex-wrap:wrap; } .class-grid-row .elementor-column{ width:50% !important; } }
@media (max-width:560px){ .class-grid-row .elementor-column{ width:100% !important; } }

/* Miért namai — 4 kártya, halvány krém alappal és egy finom felső
   akcentvonallal, hogy ne legyen üres/unalmas, de ikon nélkül maradjon
   (a Font Awesome ezen az oldalon egyáltalán nem töltődik be). */
.why-band{ position:relative; overflow:hidden; }
.why-band::before{
  content:'';
  position:absolute; top:50%; right:-90px; transform:translateY(-50%);
  width:min(420px, 46vw); aspect-ratio:1; pointer-events:none; z-index:0; opacity:.09;
  background-repeat:no-repeat; background-position:center; background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%239C8A76' stroke-width='0.6'%3E%3Ccircle cx='100' cy='100' r='26'/%3E%3Ccircle cx='100' cy='100' r='76'/%3E%3Cellipse cx='100' cy='62' rx='13' ry='38'/%3E%3Cellipse cx='100' cy='62' rx='13' ry='38' transform='rotate(45 100 100)'/%3E%3Cellipse cx='100' cy='62' rx='13' ry='38' transform='rotate(90 100 100)'/%3E%3Cellipse cx='100' cy='62' rx='13' ry='38' transform='rotate(135 100 100)'/%3E%3C/g%3E%3C/svg%3E");
}
.why-band .elementor-container{ position:relative; z-index:1; gap:20px !important; }
.why-reason{ background:var(--bg-soft); border-radius:16px; overflow:hidden; position:relative; }
.why-reason::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--wood); opacity:.55; }
.why-reason .elementor-widget-wrap{ padding:34px 26px !important; }
.why-reason h3.elementor-heading-title{ font-size:16px !important; margin-bottom:10px !important; }
.why-reason .elementor-widget-text-editor p{ font-size:14px; color:var(--ink-soft); margin:0; }
@media (max-width:900px){
  .why-band .elementor-container{ flex-wrap:wrap; }
  .why-band .elementor-column{ width:50% !important; }
}
@media (max-width:560px){ .why-band .elementor-column{ width:100% !important; } }

/* Árazás */
.price-card{ background:var(--paper); border:1px solid var(--line); border-radius:22px; }
.price-card .elementor-widget-wrap{ padding:38px 32px !important; }
.price-card.hl{ background:linear-gradient(160deg, var(--wood) 0%, var(--wood-deep) 100%); border-color:transparent; transform:translateY(-10px); box-shadow:0 30px 60px -28px rgba(122,74,46,.5); }
.price-tag .elementor-heading-title{ font-size:12px !important; font-weight:700 !important; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft) !important; }
.price-card.hl .price-tag .elementor-heading-title{ color:rgba(255,255,255,.75) !important; }
.price-card h3.elementor-heading-title{ margin-top:8px !important; font-size:19px !important; }
.price-card.hl h3.elementor-heading-title{ color:#fff !important; }
.price-amount .elementor-heading-title{ font-family:var(--font-head) !important; font-weight:700 !important; font-size:36px !important; color:var(--ink) !important; margin-top:16px; }
.price-card.hl .price-amount .elementor-heading-title{ color:#fff !important; }
.price-card .nm-plain-list{ margin:22px 0; }
.price-card.hl .nm-plain-list li{ color:rgba(255,255,255,.9); }
.price-card.hl .nm-plain-list li::before{ background:#fff; }
.price-card .elementor-widget-button{ margin-top:6px; }
.price-grid .elementor-container{ align-items:stretch; }

/* Vélemény-placeholder */
.review-card{ background:var(--bg-soft); border-radius:18px; }
.review-card .elementor-widget-wrap{ padding:30px 26px !important; }
.review-card .elementor-widget-text-editor p{ color:var(--ink-soft); font-size:14.5px; margin:0; }

/* ==========================================================================
   Aloldal-elemek: idővonal, oktatók-instrukciók
   ========================================================================== */
.timeline-row{ border-bottom:1px solid var(--line); }
.timeline-row .elementor-widget-wrap{ padding:22px 0 !important; }
.timeline-year .elementor-heading-title{ font-family:var(--font-head) !important; font-weight:700 !important; font-size:22px !important; color:var(--wood) !important; }
.timeline-note{ color:var(--ink-soft); font-size:14.5px; max-width:70ch; }

/* ==========================================================================
   Lábléc
   ========================================================================== */
.site-footer{ background:var(--bronze); color:#EFE7DA; margin-top:100px; border-radius:32px 32px 0 0; }
/* Három blokk: márka + két linkoszlop. A negyedik a fotógaléria volt; az
   kikerült, ezért a rácsot is vissza kellett venni háromra — különben egy
   üres oszlop maradt volna a lábléc jobb szélén. */
/* A vízszintes térköz KELL az összevont padding-be: ez az elem egyben
   .container is, és a saját padding-je felülírná annak 0 32px-ét — ettől
   ért a szöveg mobilon a képernyő bal széléig. */
.foot-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding:72px 32px 44px; }
@media (max-width:860px){ .foot-top{ grid-template-columns:1fr 1fr; } }
.foot-logo{ height:52px; width:auto; display:block; margin-bottom:4px; }
.foot-brand p{ color:rgba(239,231,218,.65); font-size:14px; margin-top:14px; max-width:30ch; }
.foot-col h4{ font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--wood); margin:0 0 18px; font-weight:700; }
.foot-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; font-size:14px; color:rgba(239,231,218,.85); }
.foot-col ul a:hover{ color:var(--wood); }
.foot-bottom{ border-top:1px solid rgba(239,231,218,.14); padding:22px 32px 30px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12.5px; color:rgba(239,231,218,.55); }
.foot-bottom a{ text-decoration:underline; }
.foot-credit a:hover{ color:var(--wood); }

/* Közösségi ikonsáv a láblécben — csak ikonok, felirat nélkül. */
.foot-social{ display:flex; gap:12px; margin-top:18px; }
.foot-social a{
  width:38px; height:38px; border-radius:50%;
  border:1px solid rgba(239,231,218,.28);
  display:flex; align-items:center; justify-content:center;
  color:#EFE7DA; transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.foot-social a:hover{ background:var(--wood); border-color:var(--wood); color:#fff; }
.foot-social svg{ width:17px; height:17px; }

.nm-back-to-top{
  position:fixed; right:20px; bottom:20px; width:44px; height:44px; border-radius:50%;
  background:var(--ink); color:#fff; border:none; display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .2s ease; cursor:pointer; z-index:60;
}
.nm-back-to-top.is-visible{ opacity:1; pointer-events:auto; }

/* ==========================================================================
   Görgetésre becsúszó/felugró effektek
   ========================================================================== */
.reveal{ opacity:0; transition:opacity .7s cubic-bezier(.16,.8,.3,1), transform .7s cubic-bezier(.16,.8,.3,1); will-change:opacity, transform; }
.reveal-up{ transform:translateY(28px); }
.reveal-left{ transform:translateX(-32px); }
.reveal-right{ transform:translateX(32px); }
.reveal-zoom{ transform:scale(.94); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal-slow{ transition-duration:1.1s; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ELEMENTOR SZERKESZTŐ — KRITIKUS JAVÍTÁS.
   A .reveal alapállapota opacity:0, és csak a téma effects.js-e teszi
   láthatóvá (.is-in) az IntersectionObserverrel. A szerkesztő előnézeti
   iframe-jében ez nem megbízható: a widgetek szerkesztés után megfigyelő
   nélkül rajzolódnak újra, így ÖRÖKRE láthatatlanok maradnak. Ettől lett a
   vászon teljesen üres, miközben a Navigátor rendben listázta a szakaszokat.
   A szerkesztőben nincs animáció — ott a tartalom számít, nem a hatás. */
body.elementor-editor-active .reveal,
body.elementor-editor-preview .reveal,
.elementor-editor-active .reveal,
.elementor-editor-preview .reveal{
  opacity:1 !important; transform:none !important; transition:none !important;
}

/* Staggerelt késleltetés kártyarácsokban — soronként/oszloponként kicsit
   később indul, hogy ne egyszerre, hanem "hullámban" jelenjenek meg. */
.feature-row .reveal:nth-child(2){ transition-delay:.12s; }
.feature-row .reveal:nth-child(3){ transition-delay:.24s; }
.class-grid-row .reveal:nth-child(2), .price-grid .reveal:nth-child(2), .review-grid .reveal:nth-child(2){ transition-delay:.08s; }
.class-grid-row .reveal:nth-child(3), .price-grid .reveal:nth-child(3), .review-grid .reveal:nth-child(3){ transition-delay:.16s; }
.class-grid-row .reveal:nth-child(4){ transition-delay:.24s; }
.stats .reveal:nth-child(2){ transition-delay:.1s; }
.stats .reveal:nth-child(3){ transition-delay:.2s; }
.stats .reveal:nth-child(4){ transition-delay:.3s; }

/* Teljes szélességű térkép-sáv a lábléc tetején (minden oldalon). */
.nm-map-band{ line-height:0; border-radius:32px 32px 0 0; overflow:hidden; }
/* A szürkeárnyalat NEM itt van rögzítve: a Téma beállítások → Elérhetőség
   panelen kapcsolható, és a dinamikus CSS adja hozzá
   (inc/theme-options.php). Fixen ideírva a kapcsoló hatástalan maradna. */
.nm-map-band iframe{ width:100%; height:var(--nm-map-height,340px); border:0; display:block;
  transition:filter .4s ease; }
.nm-foot-address{ display:flex; align-items:center; justify-content:center; gap:10px;
  flex-wrap:wrap; text-align:center;
  padding:18px 32px; font-size:15px; font-weight:600; color:#EFE7DA;
  border-bottom:1px solid rgba(239,231,218,.14); }
.nm-foot-address svg{ width:20px; height:20px; color:var(--wood); flex:none; }

/* MOBIL LÁBLÉC.
   Korábban egyetlen hasáb futott 40px-es résekkel: a lábléc irreálisan
   magas lett telefonon. Két hasáb + szűkebb térköz feleannyi helyen elfér.
   A márka-blokk és a galéria a teljes szélességet kapja. */
@media (max-width:520px){
  .foot-top{ grid-template-columns:1fr 1fr; gap:26px 18px; padding:40px 20px 28px; }

  /* A márka-blokk a TELJES szélességet kapja, alatta a két linkoszlop
     egymás mellett. Enélkül a logó és a bemutatkozó szöveg egy fél
     hasábba préselődik, és kilóg. */
  .foot-brand{ grid-column:1 / -1; }
  .foot-brand p{ max-width:none; }
  .foot-col h4{ margin-bottom:12px; }
  .foot-col ul{ gap:9px; }
  .foot-social{ margin-top:14px; }
  .nm-map-band{ border-radius:24px 24px 0 0; }
  .nm-map-band iframe{ height:240px; }
  .nm-foot-address{ padding:14px 20px; gap:4px 10px; }
  .foot-bottom{ padding:18px 20px 26px; }
}
/* Nagyon pici kijelzőn a két hasáb már szorítana. */
@media (max-width:340px){
  .foot-top{ grid-template-columns:1fr; }
}

/* Az emelet/ajtó a cím mellett, kiemelve — ezt a térkép-pin nem mutatja. */
.nm-foot-address__street{ font-weight:600; }
.nm-foot-address__detail{
  color:var(--wood); padding-left:12px;
  border-left:1px solid rgba(239,231,218,.22);
}
@media (max-width:560px){
  .nm-foot-address__detail{ padding-left:0; border-left:0; }
}
