/* BM Tetőfedők — shared base (tokens, reset, form, lightbox, floats). Variant CSS builds on top. */
:root{
  /* BM brand (live Elementor globals + logo), tuned for web */
  --bm-yellow:#FDE202; --bm-yellow-h:#FFEB3D; --bm-blue:#1345E3; --bm-blue-2:#0F62F9; --bm-navy:#0C2C90;
  --bm-indigo:#302E8B; --bm-ink:#06143F; --bm-ink-2:#0A1E5C; --bm-tint:#EFF3FE; --bm-tint-2:#D0DBFB;
  --text:#0B1230; --muted:#5E6782; --line:#DCE3F4; --white:#fff;
  --font:'Inter Tight',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --wrap:1280px; --gut:clamp(16px,4vw,40px); --r:24px; --r-sm:16px; --pill:999px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{margin:0;font-family:var(--font);font-size:18px;line-height:1.5;color:var(--text);background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,iframe{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:3px solid var(--bm-blue-2);outline-offset:3px;border-radius:6px}
.i{width:1.15em;height:1.15em;flex:none}
.wrap{width:100%;max-width:calc(var(--wrap) + 2*var(--gut));margin:0 auto;padding:0 var(--gut)}
.center{text-align:center}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:#fff;padding:10px 16px;border-radius:8px}
.skip:focus{left:8px}
[hidden]{display:none!important}

/* buttons (reference: 16px/600 pill, 16px 35px padding) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 32px;border-radius:var(--pill);font-weight:600;font-size:16px;line-height:1.2;transition:background .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease),color .25s}
.btn .i{transition:transform .25s var(--ease)}
.btn:hover .i{transform:translateX(4px)}
.btn--y{background:var(--bm-yellow);color:var(--bm-ink)}
.btn--y:hover{background:var(--bm-yellow-h);box-shadow:0 10px 24px -10px rgba(253,226,2,.7)}
.btn--dark{background:var(--bm-ink);color:#fff}
.btn--dark:hover{background:var(--bm-navy)}
.btn--blue{background:var(--bm-blue);color:#fff}
.btn--blue:hover{background:var(--bm-navy)}
.btn--ghost{border:1.5px solid currentColor}
.btn--sm{min-height:44px;padding:11px 24px;font-size:15px}
.btn--block{width:100%}
.tel{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:17px}
.tel .i{width:20px;height:20px}

/* header behaviour (look is per variant) */
.hdr{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s var(--ease),box-shadow .3s,padding .3s}
.hdr__in{display:flex;align-items:center;gap:24px;max-width:calc(var(--wrap) + 2*var(--gut));margin:0 auto;padding:14px var(--gut)}
.logo img{width:150px;height:auto}
.hdr__nav{margin:0 auto}
.hdr__nav>ul{display:flex;gap:30px;align-items:center}
.hdr__nav a{font-weight:500;font-size:16px;transition:color .2s}
.has-sub{position:relative;display:flex;align-items:center;gap:2px}
.sub-tg .i{width:16px;height:16px}
.sub{position:absolute;top:100%;left:-18px;min-width:260px;padding:12px;background:#fff;color:var(--text);border-radius:var(--r-sm);box-shadow:0 24px 50px -20px rgba(6,20,63,.35);opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s var(--ease)}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:none}
.sub a{display:block;padding:9px 12px;border-radius:10px;font-size:15px}
.sub a:hover{background:var(--bm-tint);color:var(--bm-navy)}
.hdr__right{display:flex;align-items:center;gap:18px}
.lang{display:flex;gap:6px;font-size:14px;font-weight:600;opacity:.85}
.lang a.is-on{color:var(--bm-yellow)}
.burger{display:none;width:48px;height:48px;border-radius:50%;background:var(--bm-yellow);color:var(--bm-ink);align-items:center;justify-content:center}
.burger .i{width:22px;height:22px}.burger .i--x,.burger[aria-expanded=true] .i:first-child{display:none}.burger[aria-expanded=true] .i--x{display:block}
.mnav{background:var(--bm-ink);color:#fff;padding:8px var(--gut) 28px;max-height:calc(100dvh - 76px);overflow:auto}
.mnav ul li{border-bottom:1px solid rgba(255,255,255,.12)}
.mnav a{display:block;padding:15px 0;font-size:19px;font-weight:600}
.mnav .has-sub{flex-wrap:wrap;justify-content:space-between}
.mnav .sub-tg{width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.mnav .sub{position:static;opacity:1;visibility:visible;transform:none;display:none;background:transparent;color:#fff;box-shadow:none;width:100%;padding:0 0 10px}
.mnav .has-sub.is-open .sub{display:block}
.mnav .sub li{border:0}.mnav .sub a{font-size:16px;font-weight:500;padding:9px 12px;opacity:.85}
.mnav__foot{display:grid;gap:14px;margin-top:22px}
.mnav__foot .tel--big{font-size:22px}
html.menu-open{overflow:hidden}
@media (max-width:1080px){.hdr__nav,.hdr__right{display:none}.burger{display:inline-flex;margin-left:auto}.logo img{width:124px}}

/* form (live Elementor field names) */
.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f{display:grid;gap:6px;margin-bottom:14px}
.f-grid .f{margin:0}.f-grid{margin-bottom:14px}
.f>span{font-size:14px;font-weight:600}
.f input,.f select,.f textarea{width:100%;font:inherit;font-size:16px;padding:13px 16px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--text);transition:border-color .2s,box-shadow .2s}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--bm-blue);box-shadow:0 0 0 4px rgba(19,69,227,.15)}
.f--file input{padding:10px;font-size:14px}
.f.is-bad input,.f.is-bad select{border-color:#D90429}
.f-consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:4px 0 18px;line-height:1.4}
.f-consent input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--bm-blue);flex:none}
.f-consent a{text-decoration:underline;text-underline-offset:3px}
.f-consent.is-bad{color:#D90429}
.f-msg{margin-top:12px;font-size:14px;font-weight:600}
@media (max-width:600px){.f-grid{grid-template-columns:1fr}}

/* gallery + lightbox */
.gal__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gal__it{position:relative;overflow:hidden;border-radius:var(--r-sm);aspect-ratio:4/3;background:var(--bm-tint-2)}
.gal__it img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.gal__it:hover img{transform:scale(1.05)}
.gal__it.is-more{display:none}.gal__grid.is-all .gal__it.is-more{display:block}
.gal__more{grid-column:1/-1;justify-self:center;min-height:48px;padding:0 28px;border-radius:var(--pill);border:1.5px solid currentColor;font-weight:600}
@media (max-width:800px){.gal__grid{grid-template-columns:repeat(2,1fr);gap:8px}}
.lb{position:fixed;inset:0;z-index:300;background:rgba(3,8,26,.92);display:none;align-items:center;justify-content:center}
.lb.is-on{display:flex}
.lb img{max-width:92vw;max-height:86vh;border-radius:12px}
.lb button{position:absolute;color:#fff;font-size:44px;width:60px;height:60px;line-height:1}
.lb__x{top:12px;right:12px}.lb__p{left:8px;top:50%;transform:translateY(-50%)}.lb__n{right:8px;top:50%;transform:translateY(-50%)}

/* video */
.vid{position:relative;overflow:hidden;border-radius:var(--r);background:#000;aspect-ratio:16/10}
.vid video{width:100%;height:100%;object-fit:cover}
.vid__play{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;background:var(--bm-yellow);color:var(--bm-ink);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 12px rgba(253,226,2,.25);transition:transform .25s var(--ease)}
.vid__play:hover{transform:scale(1.06)}
.vid__play .i{width:30px;height:30px;margin-left:4px}
.vid.is-playing .vid__play{display:none}

/* faq base */
.faq details summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer}
.faq details summary::-webkit-details-marker{display:none}
.faq details summary .i{transition:transform .25s var(--ease)}
.faq details[open] summary .i{transform:rotate(180deg)}

/* partners */
.partners{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 32px}
.partners img{height:30px;width:auto;filter:grayscale(1);opacity:.6;mix-blend-mode:multiply;transition:.3s}
.partners img:hover{filter:none;opacity:1}

/* floating contact pair (live has WhatsApp + call) */
.floats{position:fixed;right:16px;bottom:16px;z-index:60;display:grid;gap:10px}
.fl{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 10px 24px -8px rgba(0,0,0,.45);transition:transform .2s}
.fl:hover{transform:scale(1.07)}
.fl .i{width:26px;height:26px}
.fl--wa{background:#25D366}.fl--tel{background:var(--bm-blue)}

.map iframe{width:100%;height:100%;min-height:220px;border:0}
.soc{display:flex;gap:10px}
.soc a{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bm-yellow);color:var(--bm-ink)}
.soc .i{width:20px;height:20px}

/* reveal (enabled by JS only, off under reduced motion) */
.js-reveal [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js-reveal [data-reveal].is-in{opacity:1;transform:none}
/* tap targets ≥44px for phone/e-mail links */
.tel,.cinfo a{min-height:44px;display:inline-flex;align-items:center}
