:root{--bg:#080909;--panel:#111211;--line:#2a271f;--gold:#d7ad4d;--gold2:#f1d17d;--text:#f4f1ea;--muted:#aaa79f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:"DM Sans",sans-serif;line-height:1.6}.noise{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.nav{height:76px;position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;background:rgba(7,8,8,.72);backdrop-filter:blur(16px);border-bottom:1px solid rgba(215,173,77,.12)}.logo{color:var(--gold2);text-decoration:none;display:flex;flex-direction:column;font-family:Manrope,sans-serif;line-height:.9;letter-spacing:.04em}.logo span{font-size:27px;font-weight:800}.logo small{font-size:9px;letter-spacing:.18em;color:#eee;margin-top:7px}.nav nav{display:flex;align-items:center;gap:30px}.nav nav a{color:#ddd;text-decoration:none;text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:.08em}.nav nav a:hover,.nav nav .active{color:var(--gold2)}.nav-cta{border:1px solid #80651f;padding:11px 22px;border-radius:3px}.menu{display:none;background:none;border:0;color:white;font-size:25px}.hero{min-height:100svh;position:relative;display:flex;align-items:center;overflow:hidden}.hero-media{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.42)),url("https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=2200&q=85") center/cover;transform:scale(1.04);animation:heroZoom 16s ease-in-out infinite alternate}.hero-overlay{position:absolute;inset:0;background:radial-gradient(circle at 70% 50%,transparent 0,rgba(0,0,0,.32) 45%,#080909 100%)}.hero-content{position:relative;z-index:2;width:min(1050px,90%);margin:auto;padding-top:60px}.eyebrow{color:var(--gold2);font-size:11px;letter-spacing:.24em;font-weight:800;margin:0 0 18px}.hero h1{font-family:Manrope,sans-serif;text-transform:uppercase;font-size:clamp(40px,6.2vw,86px);line-height:1.02;letter-spacing:-.045em;max-width:1000px;margin:0}.hero h1 em,h2 em{font-style:normal;color:var(--gold2)}.lead{max-width:610px;color:#d2d0ca;font-size:16px;margin:28px 0}.actions{display:flex;align-items:center;gap:30px}.btn{display:inline-flex;align-items:center;gap:18px;border:0;text-decoration:none;text-transform:uppercase;font-weight:800;letter-spacing:.08em;font-size:11px;padding:16px 25px;cursor:pointer}.gold{color:#16130b;background:linear-gradient(135deg,var(--gold2),var(--gold));box-shadow:0 8px 35px rgba(215,173,77,.16)}.play{color:white;text-decoration:none;text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:.1em}.play i{display:inline-grid;place-items:center;width:48px;height:48px;border:1px solid var(--gold);border-radius:50%;font-style:normal;color:var(--gold2);margin-right:10px}.scroll{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);color:var(--gold2);text-decoration:none}.scroll span{font-size:9px;letter-spacing:.2em;margin-left:8px;color:#aaa}.section{padding:120px 5%;border-top:1px solid #171817}.about{background:linear-gradient(110deg,#111211,#090a0a)}.split{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.15fr .85fr;gap:80px;align-items:center}.split h2,.section-head h2{font-family:Manrope,sans-serif;text-transform:uppercase;font-size:clamp(34px,4vw,58px);line-height:1.05;letter-spacing:-.04em;margin:0 0 25px}.split p{color:#b8b5ad;max-width:650px}.stats{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid var(--line);padding-left:45px;gap:42px}.stats strong{display:block;color:var(--gold2);font:800 42px Manrope}.stats span{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:#999}.section-head{text-align:center;max-width:800px;margin:0 auto 50px}.section-head h2{margin-bottom:13px}.section-head>p:last-child{color:#aaa}.portfolio{background:#090a0a}.filters{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 auto 35px}.filters button{background:transparent;border:1px solid #4a3c20;color:#bbb;padding:11px 20px;text-transform:uppercase;font-size:10px;letter-spacing:.08em;cursor:pointer}.filters button.active,.filters button:hover{background:var(--gold);border-color:var(--gold);color:#17130a}.portfolio-grid{max-width:1220px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.work{min-height:260px;position:relative;overflow:hidden;border:1px solid #292820;background:#121313}.work-img{position:absolute;inset:0;background-position:center;background-size:cover;transition:transform .6s}.work:hover .work-img{transform:scale(1.08)}.img1{background-image:url("https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=800&q=80")}.img2{background-image:url("https://images.unsplash.com/photo-1602002418082-a4443e081dd1?auto=format&fit=crop&w=800&q=80")}.img3{background-image:url("https://images.unsplash.com/photo-1492619375914-88005aa9e8fb?auto=format&fit=crop&w=800&q=80")}.img4{background-image:url("https://images.unsplash.com/photo-1561070791-2526d30994b5?auto=format&fit=crop&w=800&q=80")}.img5{background-image:url("https://images.unsplash.com/photo-1541544741938-0af808871cc0?auto=format&fit=crop&w=800&q=80")}.img6{background-image:url("https://images.unsplash.com/photo-1485846234645-a62644f84728?auto=format&fit=crop&w=800&q=80")}.img7{background-image:url("https://images.unsplash.com/photo-1571896349842-33c89424de2d?auto=format&fit=crop&w=800&q=80")}.img8{background-image:url("https://images.unsplash.com/photo-1626785774573-4b799315345d?auto=format&fit=crop&w=800&q=80")}.work:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 25%,rgba(0,0,0,.88))}.work-info{position:absolute;z-index:2;bottom:15px;left:15px;right:15px;display:grid}.work-info small{color:var(--gold2);font-size:8px;letter-spacing:.14em}.work-info b{font:700 14px Manrope}.work-info span{position:absolute;right:0;bottom:0;border:1px solid var(--gold);border-radius:50%;width:33px;height:33px;display:grid;place-items:center;color:var(--gold2)}.services{background:radial-gradient(circle at 50% 0,#17140d,#090a0a 45%)}.service-grid{max-width:1220px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.service{background:rgba(20,20,19,.7);border:1px solid #30291b;padding:32px 25px;min-height:220px;transition:.35s}.service:hover{transform:translateY(-7px);border-color:#8e702c;box-shadow:0 18px 50px rgba(0,0,0,.35)}.service i{font-style:normal;color:var(--gold2);font-size:34px}.service h3{font:700 15px Manrope;text-transform:uppercase;margin:18px 0 8px}.service p{font-size:12px;color:#999;min-height:55px}.service a{color:var(--gold2);text-decoration:none;text-transform:uppercase;font-size:9px;letter-spacing:.12em}.contact{background:#0d0e0e}.contact-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:50px}.contact-info{padding:40px 0}.contact-info>p{color:#aaa;max-width:390px}.detail{display:flex;gap:16px;color:var(--gold2);margin:22px 0}.detail span{color:#ddd}.social{display:flex;gap:10px;margin-top:35px}.social a{width:42px;height:42px;border:1px solid #514322;color:var(--gold2);display:grid;place-items:center;text-decoration:none;border-radius:50%;font-weight:700}.contact-form{background:#141515;border:1px solid #292a28;padding:30px;box-shadow:0 20px 70px #0008}.contact-form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.contact-form input,.contact-form textarea{width:100%;background:#0d0e0e;border:1px solid #48412f;color:white;padding:15px;margin-bottom:12px;outline:none;font:inherit}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--gold)}.contact-form textarea{height:150px;resize:vertical}.consent{display:block;color:#777;font-size:10px;margin:2px 0 18px}.consent input{width:auto;margin-right:7px}footer{padding:35px 5%;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #20211f;color:#777;font-size:10px}footer>a:last-child{color:#aaa;text-decoration:none}.reveal{opacity:0;transform:translateY(25px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@keyframes heroZoom{to{transform:scale(1.1)}}@media(max-width:900px){.nav nav{display:none}.menu{display:block}.nav.open nav{position:absolute;top:76px;left:0;right:0;display:flex;flex-direction:column;align-items:flex-start;background:#0b0c0c;padding:25px 7%;gap:20px}.portfolio-grid,.service-grid{grid-template-columns:repeat(2,1fr)}.split,.contact-grid{grid-template-columns:1fr;gap:40px}.stats{border-left:0;border-top:1px solid var(--line);padding:35px 0 0}.hero-content{padding-top:100px}}@media(max-width:600px){.section{padding:85px 5%}.hero h1{font-size:43px}.lead{font-size:14px}.actions{align-items:flex-start;flex-direction:column;gap:18px}.portfolio-grid,.service-grid{grid-template-columns:1fr}.work{min-height:300px}.contact-form .row{grid-template-columns:1fr}footer{flex-direction:column;gap:20px;text-align:center}.stats strong{font-size:34px}}

/* v17: proper SVG service icons */
.service .nova-service-icon{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  color:var(--gold2);
  margin:0 0 4px;
  font-size:0;
  line-height:1;
}
.service .nova-service-icon svg{
  width:48px;
  height:48px;
  display:block;
  overflow:visible;
  transition:transform .35s ease, filter .35s ease;
  filter:drop-shadow(0 0 0 rgba(215,173,77,0));
}
.service:hover .nova-service-icon svg{
  transform:translateY(-2px) scale(1.06);
  filter:drop-shadow(0 6px 14px rgba(215,173,77,.18));
}
.service .nova-service-icon-fallback{
  font-size:34px;
  color:var(--gold2);
}


/* v18 — Szolgáltatások oldal: mobilon minden vizuál a saját tartalma fölé kerül.
   Desktop/tablet layout változatlan. */
@media (max-width: 767px) {
  body:not(.home) .service-row,
  body:not(.home) .service-block,
  body:not(.home) .service-item,
  body:not(.home) .nova-service-row {
    display: flex !important;
    flex-direction: column !important;
  }

  body:not(.home) .service-row .service-visual,
  body:not(.home) .service-row .service-media,
  body:not(.home) .service-row .service-image,
  body:not(.home) .service-block .service-visual,
  body:not(.home) .service-block .service-media,
  body:not(.home) .service-block .service-image,
  body:not(.home) .nova-service-row .service-visual,
  body:not(.home) .nova-service-row .service-media,
  body:not(.home) .nova-service-row .service-image {
    order: -1 !important;
    width: 100% !important;
  }

  /* Elementor kétoszlopos szolgáltatásblokkok: a képes oszlop mindig előre */
  body:not(.home) .nova-inner-page-root .nova-service-visual,
  body:not(.home) .nova-inner-page-root .service-visual,
  body:not(.home) .nova-inner-page-root .service-image,
  body:not(.home) .nova-inner-page-root .service-media {
    order: -1 !important;
  }

  body:not(.home) .nova-inner-page-root .elementor-section .elementor-container,
  body:not(.home) .nova-inner-page-root .e-con.e-flex {
    flex-wrap: wrap;
  }
}


/* v20 — Ajánlatkérés / Projekt Konfigurátor mobil javítás */
@media (max-width: 767px) {

  /* A teljes Elementor form widget ne tudjon kilógni */
  .nova-quote-configurator,
  .nova-quote-configurator .elementor-widget-container,
  .nova-quote-configurator form,
  .nova-quote-configurator .elementor-form {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  /* A desktop 42px-es belső margót mobilon csökkentjük */
  .elementor-widget-form.nova-quote-configurator > .elementor-widget-container,
  .nova-quote-configurator > .elementor-widget-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* 5 lépés fixen belefér a kártyába */
  .nova-quote-configurator .e-form__indicators {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    column-gap: 4px !important;
    row-gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  .nova-quote-configurator .e-form__indicators__indicator {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 1px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: center !important;
  }

  /* Mobilon a hosszú összekötő vonalak csak helyet foglalnának */
  .nova-quote-configurator .e-form__indicators__indicator__separator {
    display: none !important;
  }

  .nova-quote-configurator .e-form__indicators__indicator__number {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    flex: 0 0 32px !important;
    font-size: 13px !important;
    line-height: 32px !important;
    margin: 0 auto 8px !important;
  }

  .nova-quote-configurator .e-form__indicators__indicator__label {
    display: block !important;
    width: 100% !important;
    max-width: 62px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    font-size: 9px !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    text-align: center !important;
  }

  /* Mezők mindig a kártyán belül */
  .nova-quote-configurator .elementor-field-group,
  .nova-quote-configurator .elementor-field,
  .nova-quote-configurator input,
  .nova-quote-configurator select,
  .nova-quote-configurator textarea,
  .nova-quote-configurator .elementor-button {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .nova-quote-configurator .elementor-field-type-step {
    min-width: 0 !important;
    width: 100% !important;
  }
}

/* Nagyon keskeny telefonokon még kompaktabb */
@media (max-width: 390px) {
  .nova-quote-configurator .e-form__indicators {
    column-gap: 2px !important;
  }

  .nova-quote-configurator .e-form__indicators__indicator__number {
    width: 29px !important;
    height: 29px !important;
    min-width: 29px !important;
    flex-basis: 29px !important;
    line-height: 29px !important;
    font-size: 12px !important;
  }

  .nova-quote-configurator .e-form__indicators__indicator__label {
    font-size: 8px !important;
    max-width: 56px !important;
  }
}



/* v22: Hero primary CTA - remove decorative arrow */
.hero .btn::after,
.hero .button::after,
.nova-hero .btn::after,
.nova-hero .button::after {
  content: none !important;
  display: none !important;
}


/* v24: proper SVG social icons */
.contact .social a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.contact .social a svg{
  width:20px;
  height:20px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.contact .social a svg .nova-social-fill{
  fill:currentColor;
  stroke:none;
}
.contact .social a svg path:not(.nova-social-fill),
.contact .social a svg rect,
.contact .social a svg circle{
  vector-effect:non-scaling-stroke;
}
.contact .social a[aria-label*="Facebook"] svg path,
.contact .social a[aria-label*="LinkedIn"] svg path,
.contact .social a[aria-label*="LinkedIn"] svg rect,
.contact .social a[aria-label*="LinkedIn"] svg circle{
  fill:currentColor;
  stroke:none;
}
.contact .social .nova-social-fallback{
  font-size:14px;
  line-height:1;
}


/* v25: portfolio project links + on-site YouTube lightbox */
.nova-portfolio-grid .work{
  position:relative;
}
.nova-portfolio-grid .work.nova-work-clickable{
  cursor:pointer;
}
.nova-portfolio-grid .nova-work-action{
  position:absolute;
  inset:0;
  z-index:5;
  display:block;
}
.nova-portfolio-grid .work.nova-work-clickable .work-img{
  transition:transform .45s ease, filter .45s ease;
}
.nova-portfolio-grid .work.nova-work-clickable:hover .work-img{
  transform:scale(1.025);
}
.nova-video-modal{
  position:fixed;
  inset:0;
  z-index:999999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.nova-video-modal.is-open{
  display:flex;
}
.nova-video-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.88);
  backdrop-filter:blur(8px);
}
.nova-video-modal-dialog{
  position:relative;
  z-index:1;
  width:min(1120px,94vw);
  max-height:92vh;
}
.nova-video-frame-wrap{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:#000;
  border:1px solid rgba(215,173,77,.35);
  box-shadow:0 28px 80px rgba(0,0,0,.55);
}
.nova-video-frame{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.nova-video-modal-close{
  position:absolute;
  right:-12px;
  top:-48px;
  z-index:2;
  width:40px;
  height:40px;
  border:1px solid rgba(215,173,77,.55);
  background:#0d0e0e;
  color:#f1d17d;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
body.nova-video-open{
  overflow:hidden;
}
@media (max-width:767px){
  .nova-video-modal{padding:14px;}
  .nova-video-modal-dialog{width:100%;}
  .nova-video-modal-close{right:0;top:-46px;}
}




/* v27: kizárólag a Rólunk oldal 3 értékkártyája */
body:not(.home) .nova-inner-page-root .nova-about-card:hover .nova-about-card-num .elementor-heading-title,
body:not(.home) .nova-inner-page-root .nova-about-card:hover .nova-about-card-title .elementor-heading-title,
body:not(.home) .nova-inner-page-root .nova-about-card:hover .nova-about-card-copy,
body:not(.home) .nova-inner-page-root .nova-about-card:hover .nova-about-card-copy p,
body:not(.home) .nova-inner-page-root .nova-about-card:hover .nova-about-card-copy span,
body:not(.home) .nova-inner-page-root .nova-about-card:hover .nova-about-card-copy strong {
  color:#080909 !important;
}


/* v28: one editable CTA below the homepage services grid */
.services .nova-services-cta{
  display:flex;
  justify-content:center;
  align-items:center;
  margin-top:34px;
}
@media (max-width:767px){
  .services .nova-services-cta{
    margin-top:26px;
  }
}
