
/* ==== PhotoPlanet - stilus.css - Premium Motion (sotet, smaragd akcentus) ==== */
:root{
  --bg:#101415; --surface:#101415; --s-lowest:#0b0f10; --s-low:#191c1e;
  --s:#1d2022; --s-high:#272a2c; --s-highest:#323537; --s-bright:#363a3b;
  --on:#eef1ef; --on-var:#d4ded7; --outline:#98a69b; --outline-var:#3c4a42;
  --primary:#4edea3; --primary-dim:#37c98d; --primary-cont:#10b981;
  --on-primary:#00110a; --on-primary-cont:#00170e;
  --secondary:#c6cee8; --accent:#6ffbbe;
  --danger:#ffb4ab;
  --ff:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  --maxw:1200px; --gutter:24px; --mx:20px;
  --r-sm:8px; --r:12px; --r-lg:18px; --r-xl:26px; --r-full:9999px;
  --shadow:0 18px 44px -18px rgba(0,0,0,.7);
  --glow:0 0 0 1px rgba(78,222,163,.18), 0 14px 40px -14px rgba(78,222,163,.30);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0; background:var(--bg); color:var(--on); font-family:var(--ff);
  font-size:17px; line-height:1.65; overflow-x:clip;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  background-image:radial-gradient(1100px 620px at 82% -8%, rgba(78,222,163,.10), transparent 62%),
                   radial-gradient(760px 520px at -6% 6%, rgba(110,130,180,.07), transparent 60%);
  background-attachment:fixed;}
img{max-width:100%; height:auto; display:block}
a{color:var(--primary); text-decoration:underline; text-underline-offset:3px;
  text-decoration-thickness:1px; text-decoration-color:rgba(78,222,163,.45)}
a:hover{text-decoration-color:var(--primary)}
h1,h2,h3,h4{line-height:1.18; letter-spacing:-.02em; margin:0 0 .5em;
  font-weight:750; color:#f2f5f4}
h1{font-size:clamp(2rem,5.2vw,3.55rem); letter-spacing:-.035em}
h2{font-size:clamp(1.55rem,3.4vw,2.3rem); letter-spacing:-.03em}
h3{font-size:clamp(1.15rem,2vw,1.4rem)}
h4{font-size:1.05rem}
p{margin:0 0 1.05em}
strong{color:#fff; font-weight:700}
:focus-visible{outline:3px solid var(--accent); outline-offset:2px; border-radius:4px}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 var(--mx)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute; left:12px; top:-60px; z-index:200; background:var(--primary);
  color:var(--on-primary); padding:10px 16px; border-radius:var(--r-sm);
  font-weight:700; transition:top .2s; text-decoration:none}
.skip:focus{top:12px}
.ico{width:1.15em; height:1.15em; flex:0 0 auto; vertical-align:-.15em}

/* ---- Fejlec / nav (modern) ---- */
.hdr{position:sticky; top:0; z-index:100; background:rgba(11,15,16,.55);
  backdrop-filter:blur(22px) saturate(1.4); -webkit-backdrop-filter:blur(22px) saturate(1.4);
  border-bottom:1px solid rgba(255,255,255,.06)}
.nav{display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:72px}
.brand{display:inline-flex; align-items:center; gap:10px; font-weight:800;
  font-size:1.32rem; letter-spacing:-.02em; color:#fff; text-decoration:none}
.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--primary);
  box-shadow:0 0 16px var(--primary)}
.brand .wm{display:inline-flex}
.brand .bt{color:#fff}.brand .bp{color:var(--primary)}
.nav-links{display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:5px;
  background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.07); border-radius:var(--r-full)}
.nav-links a{color:var(--on); text-decoration:none; font-weight:600; font-size:.93rem;
  padding:9px 17px; border-radius:var(--r-full); white-space:nowrap; display:inline-block;
  transition:color .18s, background .18s; opacity:.82}
.nav-links a:hover{opacity:1; background:rgba(255,255,255,.08)}
.nav-links a[aria-current]{opacity:1; color:var(--on-primary); background:var(--primary)}
.nav-cta{display:inline-flex; align-items:center; gap:8px; background:var(--primary);
  color:var(--on-primary); font-weight:750; padding:11px 18px; border-radius:var(--r-full);
  text-decoration:none; box-shadow:var(--glow); transition:transform .15s, background .2s}
.nav-cta:hover{background:var(--accent); transform:translateY(-1px)}
.nav-right{display:flex; align-items:center; gap:12px}
.menu-toggle,.menu-chk{display:none}
.hb,.hb::before,.hb::after{display:block; width:20px; height:2px; background:#fff;
  border-radius:2px; transition:transform .25s, opacity .2s}
.hb{position:relative}
.hb::before,.hb::after{content:""; position:absolute; left:0}
.hb::before{top:-6px}.hb::after{top:6px}
@media (max-width:920px){
  .nav-links{position:fixed; inset:72px 0 auto 0; flex-direction:column; gap:4px;
    background:rgba(11,15,16,.98); backdrop-filter:blur(22px); border:0; border-radius:0;
    border-bottom:1px solid var(--outline-var);
    padding:14px var(--mx) 22px; align-items:stretch; transform:translateY(-150%);
    transition:transform .28s ease; box-shadow:var(--shadow); max-height:calc(100vh - 72px); overflow:auto}
  .nav-links a{padding:14px 14px; font-size:1.05rem; border-radius:var(--r); opacity:1}
  .menu-chk:checked ~ .nav-links{transform:translateY(0)}
  .menu-toggle{display:inline-flex; align-items:center; justify-content:center;
    width:46px;height:46px;border-radius:var(--r); color:#fff; cursor:pointer;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1)}
  .menu-chk:checked ~ .nav-right .menu-toggle .hb{background:transparent}
  .menu-chk:checked ~ .nav-right .menu-toggle .hb::before{transform:translateY(6px) rotate(45deg)}
  .menu-chk:checked ~ .nav-right .menu-toggle .hb::after{transform:translateY(-6px) rotate(-45deg)}
}
@media (prefers-reduced-motion:reduce){.nav-links,.hb,.hb::before,.hb::after,.nav-cta{transition:none}}
@media (max-width:430px){
  .nav-cta span{display:none}
  .nav-cta{padding:11px}
  .nav{gap:8px; min-height:64px}
  .brand{font-size:1.16rem}
}

/* ---- Szekciok, altalanos ---- */
main{display:block}
.sec{padding:clamp(36px,4.2vw,60px) 0}
.sec-tight{padding:clamp(24px,3vw,40px) 0}
.eyebrow{display:inline-flex; align-items:center; gap:8px; background:var(--s-high);
  color:var(--primary); border:1px solid var(--outline-var); font-weight:700;
  font-size:.8rem; letter-spacing:.09em; text-transform:uppercase;
  padding:7px 13px; border-radius:var(--r-full)}
.sec-head{max-width:820px; margin-bottom:26px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.lead{font-size:1.16rem; color:var(--on-var); line-height:1.7}
.muted{color:var(--on-var)}

/* ---- Gombok ---- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-weight:750; font-size:1rem; padding:14px 24px; border-radius:var(--r-sm);
  text-decoration:none; border:1px solid transparent; cursor:pointer; line-height:1}
.btn-primary{background:var(--primary); color:var(--on-primary); box-shadow:var(--glow)}
.btn-primary:hover{background:var(--accent)}
.btn-ghost{background:transparent; color:#fff; border-color:var(--outline)}
.btn-ghost:hover{border-color:var(--primary); color:var(--primary); background:rgba(78,222,163,.06)}
.btn .ico{width:1.2em;height:1.2em}
.btn-lg{padding:16px 28px; font-size:1.06rem}

/* ---- Kartyak / racsok ---- */
.grid{display:grid; gap:var(--gutter)}
.grid.min0{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g2>*,.g3>*,.g4>*,.grid>*{min-width:0}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--s); border:1px solid var(--outline-var); border-radius:var(--r-lg);
  padding:24px}
.card-soft{background:var(--s-low)}
.card h3{margin-top:0}
.icon-badge{width:48px;height:48px;border-radius:var(--r);display:flex;
  align-items:center;justify-content:center;background:rgba(78,222,163,.12);
  color:var(--primary);border:1px solid var(--outline-var);margin-bottom:14px;flex:0 0 auto}
.icon-badge .ico{width:24px;height:24px;vertical-align:0;margin:0}

/* ---- Hero ---- */
.hero{position:relative; padding:clamp(28px,3.5vw,52px) 0 clamp(30px,3.5vw,48px)}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:center}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr; gap:30px}}
.hero h1{margin-bottom:.3em}
.hero-sub{font-size:clamp(1.1rem,2vw,1.32rem); color:#fff; font-weight:650; margin:0 0 14px; max-width:40ch; letter-spacing:-.01em}
.hero .lead{max-width:42ch}
.hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin:26px 0 22px}
.trust-row{display:flex; flex-wrap:wrap; align-items:center; gap:18px 26px; margin-top:8px}
.stars{color:var(--primary); display:inline-flex; gap:2px}
.stars .ico{width:18px;height:18px}
.hero-media{position:relative; border-radius:var(--r-xl); overflow:hidden;
  border:1px solid var(--outline-var); box-shadow:var(--shadow)}
.hero-media img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3}
.hero-badge{position:absolute; left:16px; bottom:16px; background:rgba(11,15,16,.82);
  backdrop-filter:blur(8px); border:1px solid var(--outline-var); border-radius:var(--r);
  padding:12px 16px; display:flex; align-items:center; gap:12px}
.hero-badge .big{font-size:1.5rem; font-weight:800; color:var(--primary); line-height:1}

/* ---- Statisztika-csempek ---- */
.stats{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.stats{grid-template-columns:1fr}}
.stat{background:var(--s-low); border:1px solid var(--outline-var); border-radius:var(--r-lg);
  padding:20px; text-align:left}
.stat .n{font-size:2rem; font-weight:800; color:#fff; line-height:1; letter-spacing:-.03em}
.stat .l{color:var(--on-var); font-size:.95rem; margin-top:6px}
.stat .icon-badge{margin-bottom:12px}

/* ---- Folyamat idovonal (26.13) ---- */
.timeline{list-style:none; margin:0; padding:0; display:grid; gap:16px}
.tl{display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:start;
  background:var(--s-low); border:1px solid var(--outline-var); border-radius:var(--r-lg);
  padding:20px 22px}
.tl .num{width:42px;height:42px;border-radius:var(--r-full);background:var(--primary);
  color:var(--on-primary);font-weight:800;display:flex;align-items:center;justify-content:center;
  font-size:1.15rem}
.tl h3{margin:2px 0 6px}
.tl p{margin:0; color:var(--on-var)}

/* ---- Arkartyak (26.13) ---- */
.prices{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; align-items:stretch}
@media (max-width:900px){.prices{grid-template-columns:1fr; max-width:460px; margin-inline:auto}}
.price{position:relative; background:var(--s); border:1px solid var(--outline-var);
  border-radius:var(--r-xl); padding:28px 24px; display:flex; flex-direction:column}
.price.feat{border-color:var(--primary); box-shadow:var(--glow); background:var(--s-high)}
.ribbon{position:absolute; top:-13px; left:50%; transform:translateX(-50%);
  background:var(--primary); color:var(--on-primary); font-weight:750; font-size:.8rem;
  padding:5px 14px; border-radius:var(--r-full); letter-spacing:.03em; white-space:nowrap}
.price .pname{font-size:1.15rem; font-weight:750; color:#fff}
.price .amt{font-size:2.5rem; font-weight:800; color:#fff; letter-spacing:-.03em; margin:8px 0 2px}
.price .amt small{font-size:.9rem; font-weight:600; color:var(--on-var)}
.price .psub{color:var(--on-var); min-height:2.6em; margin-bottom:14px}
.plist{list-style:none; margin:0 0 20px; padding:0; display:grid; gap:10px; flex:1}
.plist li{display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:start;
  color:var(--on); font-size:.97rem}
.plist li .ico{color:var(--primary); width:20px; height:20px; margin-top:2px}
.plist li.no{color:var(--on-var)}
.plist li.no .ico{color:var(--outline)}
.price-note{font-size:.86rem; color:var(--on-var); margin-top:12px; text-align:center}

/* ---- Callout ---- */
.callout{background:var(--s-low); border-left:4px solid var(--primary);
  border-radius:var(--r); padding:18px 20px; margin:22px 0}
.callout.tldr{background:rgba(78,222,163,.07); border-color:var(--primary)}
.callout h3,.callout h2{margin-top:0; font-size:1.1rem}
.callout ul{margin:.4em 0 0; padding-left:1.15em}
.callout li{margin:.3em 0}

/* ---- FAQ (CSS-only, details/summary) ---- */
.faq{display:grid; gap:12px}
.faq details{background:var(--s-low); border:1px solid var(--outline-var);
  border-radius:var(--r); overflow:hidden}
.faq summary{cursor:pointer; padding:16px 46px 16px 18px; font-weight:700; color:#fff;
  position:relative; list-style:none; font-size:1.02rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:""; position:absolute; right:18px; top:19px; width:11px;height:11px;
  border-right:2px solid var(--primary); border-bottom:2px solid var(--primary);
  transform:rotate(45deg); transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq .faq-body{padding:0 18px 16px; color:var(--on-var)}
.faq .faq-body p{margin:.2em 0 .7em}
@media (prefers-reduced-motion:reduce){.faq summary::after{transition:none}}

/* ---- Tartalmi elrendezes (torzs + konverzios sidebar) ---- */
.layout{display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:44px; align-items:start}
@media (max-width:980px){.layout{grid-template-columns:1fr}}
.prose{min-width:0}
.prose h2{margin-top:1.6em; padding-top:.2em}
.prose h2:first-child,.prose > :first-child{margin-top:0}
.prose figure{margin:26px 0}
.prose figure img{width:100%; border-radius:var(--r-lg); border:1px solid var(--outline-var);
  aspect-ratio:16/10; object-fit:cover}
.prose figcaption{color:var(--on-var); font-size:.9rem; margin-top:8px; text-align:center}
.prose ul,.prose ol{padding-left:1.2em}
.prose li{margin:.35em 0}
.answer{background:var(--s-low); border:1px solid var(--outline-var);
  border-left:4px solid var(--primary); border-radius:var(--r); padding:14px 18px; margin:.3em 0 1.1em}
.answer p{margin:0}

/* ---- TOC (torzs elott, NEM sidebar - 26.10) ---- */
.toc{background:var(--s-low); border:1px solid var(--outline-var); border-radius:var(--r-lg);
  padding:18px 20px; margin:0 0 30px}
.toc strong{display:block; margin-bottom:10px; color:#fff}
.toc ol{margin:0; padding-left:1.2em; columns:2; column-gap:28px}
@media (max-width:600px){.toc ol{columns:1}}
.toc a{color:var(--on-var); text-decoration:none}
.toc a:hover{color:var(--primary); text-decoration:underline}

/* ---- Sidebar (konverzio elso - 26.11) ---- */
.side{position:sticky; top:86px; align-self:start; display:grid; gap:18px}
@media (max-width:980px){.side{position:static}}
.cta-card{background:var(--s-high); border:1px solid var(--outline-var);
  border-radius:var(--r-xl); padding:24px; box-shadow:var(--shadow)}
.cta-card .tag{display:inline-block; background:var(--primary); color:var(--on-primary);
  font-weight:750; font-size:.78rem; padding:5px 12px; border-radius:var(--r-full);
  text-transform:uppercase; letter-spacing:.05em; margin-bottom:12px}
.cta-card .price-line{font-size:1.9rem; font-weight:800; color:#fff; letter-spacing:-.03em}
.cta-card .price-line small{font-size:.85rem; font-weight:600; color:var(--on-var)}
.cta-card p{color:var(--on-var); margin:.5em 0 1em}
.cta-card .btn{width:100%; margin-bottom:10px}
.trust-list{list-style:none; margin:14px 0 0; padding:0; display:grid; gap:9px}
.trust-list li{display:grid; grid-template-columns:auto 1fr; gap:9px; align-items:start;
  font-size:.92rem; color:var(--on-var)}
.trust-list li .ico{color:var(--primary); width:19px;height:19px;margin-top:1px}
.side-phone{display:flex; align-items:center; gap:10px; justify-content:center;
  color:#fff; text-decoration:none; font-weight:750; padding:12px; border-radius:var(--r-sm);
  border:1px solid var(--outline-var); background:var(--s-low)}
.side-phone:hover{border-color:var(--primary)}
.facts{background:var(--s-low); border:1px solid var(--outline-var); border-radius:var(--r-lg);
  padding:20px}
.facts h3{font-size:1rem; margin:0 0 12px}
.facts dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:8px 14px}
.facts dt{color:var(--on-var); font-size:.9rem}
.facts dd{margin:0; color:#fff; font-weight:600; font-size:.92rem; text-align:right}

/* ---- Breadcrumb ---- */
.crumb{font-size:.86rem; color:var(--on-var); margin:0 0 18px; padding-top:18px}
.crumb ol{list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0}
.crumb a{color:var(--on-var)}
.crumb a:hover{color:var(--primary)}
.crumb li::after{content:"/"; margin-left:6px; color:var(--outline)}
.crumb li:last-child::after{content:""}
.crumb li[aria-current]{color:#fff}

/* ---- Referencia / cikk kartyak ---- */
.tiles{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px}
@media (max-width:900px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.tiles{grid-template-columns:1fr}}
.tile{background:var(--s); border:1px solid var(--outline-var); border-radius:var(--r-lg);
  overflow:hidden; display:flex; flex-direction:column; text-decoration:none; color:inherit}
.tile:hover{border-color:var(--primary); transform:translateY(-3px);
  box-shadow:var(--shadow); transition:.2s}
@media (prefers-reduced-motion:reduce){.tile:hover{transform:none}}
.tile img{width:100%; aspect-ratio:16/10; object-fit:cover; background:var(--s-high)}
.tile .body{padding:16px 18px; display:flex; flex-direction:column; gap:8px; flex:1}
.tile .chip{align-self:flex-start; font-size:.72rem; letter-spacing:.05em; text-transform:uppercase;
  font-weight:700; color:var(--primary); background:rgba(78,222,163,.12);
  border:1px solid var(--outline-var); padding:3px 10px; border-radius:var(--r-full)}
.tile h3{font-size:1.08rem; margin:0}
.tile p{margin:0; color:var(--on-var); font-size:.93rem}
.tile .more{margin-top:auto; color:var(--primary); font-weight:700; font-size:.9rem;
  display:inline-flex; align-items:center; gap:6px}

/* ---- Szuro (progressziv) ---- */
.filterbar{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px}
.filterbar button, .filterbar a.fbtn{background:var(--s-high); color:var(--on);
  border:1px solid var(--outline-var); border-radius:var(--r-full); padding:9px 16px;
  font-weight:650; font-size:.9rem; cursor:pointer; text-decoration:none; display:inline-block}
.filterbar button:hover, .filterbar a.fbtn:hover{border-color:var(--primary); color:#fff}
.filterbar button.active,.filterbar a.fbtn.active{background:var(--primary); color:var(--on-primary);
  border-color:var(--primary)}
.filter-search{width:100%; max-width:420px; padding:12px 16px; border-radius:var(--r-sm);
  background:var(--s-low); border:1px solid var(--outline-var); color:var(--on); font-size:1rem;
  margin-bottom:18px}
.filter-search::placeholder{color:var(--outline)}
.filter-search:focus{outline:none; border-color:var(--primary)}
.brand-group{margin-bottom:30px}
.brand-group h3{border-bottom:1px solid var(--outline-var); padding-bottom:8px}
.linklist{list-style:none; margin:0; padding:0; columns:3; column-gap:28px}
@media (max-width:760px){.linklist{columns:2}}
@media (max-width:460px){.linklist{columns:1}}
.linklist li{margin:.25em 0; break-inside:avoid}
.linklist a{color:var(--on-var); text-decoration:none}
.linklist a:hover{color:var(--primary); text-decoration:underline}
.noresult{color:var(--on-var); padding:20px 0}

/* ---- Marka-akkordeon (referenciak, kep nelkul) ---- */
.ref-acc{display:grid; gap:10px}
.ref-acc details{background:var(--s-low); border:1px solid var(--outline-var);
  border-radius:var(--r-lg); overflow:hidden; transition:border-color .2s}
.ref-acc details[open]{border-color:var(--primary)}
.ref-acc summary{cursor:pointer; padding:16px 18px; font-weight:700; color:#fff;
  display:flex; align-items:center; gap:12px; list-style:none; font-size:1.05rem}
.ref-acc summary::-webkit-details-marker{display:none}
.ref-acc summary .ico{color:var(--primary); width:22px; height:22px}
.ref-acc .ba-name{color:#fff}
.ref-acc .ba-count{color:var(--on-var); font-weight:500; font-size:.85rem;
  margin-left:auto; background:var(--s-high); padding:3px 11px; border-radius:var(--r-full)}
.ref-acc summary::after{content:""; width:9px; height:9px; margin-left:6px;
  border-right:2px solid var(--primary); border-bottom:2px solid var(--primary);
  transform:rotate(45deg); transition:transform .2s; flex:0 0 auto}
.ref-acc details[open] summary::after{transform:rotate(-135deg)}
.ref-acc .ba-body{padding:2px 18px 16px}
.ref-acc .ba-list{list-style:none; margin:0; padding:0; columns:3; column-gap:26px}
@media (max-width:760px){.ref-acc .ba-list{columns:2}}
@media (max-width:460px){.ref-acc .ba-list{columns:1}}
.ref-acc .ba-list li{margin:.32em 0; break-inside:avoid}
.ref-acc .ba-list a{color:var(--on-var); text-decoration:none; font-size:.95rem}
.ref-acc .ba-list a:hover{color:var(--primary); text-decoration:underline}
@media (prefers-reduced-motion:reduce){.ref-acc summary::after,.ref-acc details{transition:none}}

/* ---- Ugyfelvelemenyek ---- */
.rev{background:var(--s-low); border:1px solid var(--outline-var); border-radius:var(--r-lg); padding:22px}
.rev .stars{margin-bottom:10px}
.rev p{color:var(--on); font-style:normal; margin:0 0 14px}
.rev .who{display:flex; align-items:center; gap:11px}
.rev .av{width:38px;height:38px;border-radius:50%;background:var(--primary);color:var(--on-primary);
  font-weight:800;display:flex;align-items:center;justify-content:center;font-size:.9rem}
.rev .who b{color:#fff; display:block; font-size:.92rem}
.rev .who span{color:var(--on-var); font-size:.82rem}

/* ---- Szerzo-doboz ---- */
.author-box{display:grid; grid-template-columns:auto 1fr; gap:18px; background:var(--s-low);
  border:1px solid var(--outline-var); border-radius:var(--r-lg); padding:22px; margin:34px 0}
@media (max-width:520px){.author-box{grid-template-columns:1fr}}
.author-box .av{width:64px;height:64px;border-radius:50%;background:var(--primary);
  color:var(--on-primary);font-weight:800;font-size:1.4rem;display:flex;align-items:center;
  justify-content:center}
.author-box h3{margin:0 0 3px}
.author-box .role{color:var(--primary); font-size:.9rem; font-weight:650; margin-bottom:8px}
.author-box p{color:var(--on-var); margin:0 0 12px}
.social{display:flex; gap:10px}
.social a{width:38px;height:38px;border-radius:var(--r-sm);background:var(--s-high);
  border:1px solid var(--outline-var);display:flex;align-items:center;justify-content:center;
  color:var(--on-var)}
.social a:hover{color:var(--primary); border-color:var(--primary)}
.social .ico{width:19px;height:19px}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin:6px 0}
.chips span{background:var(--s-high); border:1px solid var(--outline-var); color:var(--on-var);
  border-radius:var(--r-full); padding:5px 12px; font-size:.85rem}

/* ---- Kapcsolat + terkep ---- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:start}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
.contact-list{list-style:none; margin:18px 0 0; padding:0; display:grid; gap:14px}
.contact-list li{display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center}
.contact-list .icon-badge{margin:0}
.contact-list a{color:#fff; text-decoration:none; font-weight:650}
.contact-list a:hover{color:var(--primary)}
.contact-list span{color:var(--on-var); font-size:.9rem; display:block}
.mapbox{border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--outline-var);
  aspect-ratio:16/11}
.mapbox iframe{width:100%; height:100%; border:0; display:block}
.cform{display:grid; gap:12px}
.cform label{font-weight:650; font-size:.9rem; color:var(--on-var)}
.cform input,.cform textarea{width:100%; padding:12px 14px; border-radius:var(--r-sm);
  background:var(--s-low); border:1px solid var(--outline-var); color:var(--on); font:inherit}
.cform input:focus,.cform textarea:focus{outline:none; border-color:var(--primary)}
.consent{display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:start; font-size:.88rem;
  color:var(--on-var)}
.consent a{color:var(--primary)}

/* ---- CTA sav ---- */
.ctaband{background:linear-gradient(120deg, var(--s-high), var(--s));
  border:1px solid var(--outline-var); border-radius:var(--r-xl); padding:clamp(28px,4vw,44px);
  text-align:center; box-shadow:var(--shadow)}
.ctaband h2{margin-top:0}
.ctaband .hero-cta{justify-content:center}

/* ---- Lablec ---- */
.foot{background:var(--s-lowest); border-top:1px solid var(--outline-var);
  padding:42px 0 22px; margin-top:24px}
.foot a{color:var(--on)}
.foot .muted{color:var(--on-var)}
.foot .btn-primary,.foot .nav-cta{color:var(--on-primary)}
.foot-cta{background:linear-gradient(120deg,var(--s-high),var(--s)); border:1px solid var(--outline-var);
  border-radius:var(--r-xl); padding:24px 28px; display:flex; flex-wrap:wrap; gap:18px; align-items:center;
  justify-content:space-between; margin-bottom:32px}
.foot-cta h3{margin:0}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot-h{font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; color:var(--on-var);
  margin:0 0 14px; font-weight:700}
.foot-cta-h{font-size:1.3rem; font-weight:750; color:#f2f5f4; margin:0; letter-spacing:-.02em}
.foot ul{list-style:none; margin:0; padding:0; display:grid; gap:9px}
.foot ul a{color:var(--on); text-decoration:none; font-size:.94rem; opacity:.86}
.foot ul a:hover{color:var(--primary); opacity:1}
.foot .chipline{display:flex; flex-direction:column; gap:10px; margin-top:6px}
.foot .chip-c{display:inline-flex; align-items:center; gap:9px; color:var(--on);
  text-decoration:none; font-size:.94rem}
.foot .chip-c .ico{color:var(--primary)}
.foot-bottom{border-top:1px solid var(--outline-var); margin-top:34px; padding-top:20px;
  display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center;
  color:var(--on-var); font-size:.86rem}
.foot-bottom nav{display:flex; flex-wrap:wrap; gap:16px}
.foot-bottom a{color:var(--on-var); text-decoration:none}
.foot-bottom a:hover{color:var(--primary)}
.totop{display:inline-flex; align-items:center; gap:7px; color:var(--on-var); text-decoration:none}
.totop:hover{color:var(--primary)}

/* ---- Egyeb ---- */
.hr{height:1px; background:var(--outline-var); border:0; margin:0}
.chglog{font-size:.85rem; color:var(--on-var)}
.readtime{color:var(--on-var); font-size:.9rem; display:inline-flex; align-items:center; gap:7px}
.tag-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px}
.badge{background:var(--s-high); border:1px solid var(--outline-var); color:var(--on-var);
  border-radius:var(--r-full); padding:4px 11px; font-size:.82rem}
.notice{background:var(--s-low); border:1px solid var(--outline-var); border-radius:var(--r);
  padding:16px 18px; color:var(--on-var)}

/* ---- Utility osztalyok (inline style helyett - szigoru CSP miatt, 25.12) ---- */
.pb0{padding-bottom:0}
.pt-hero{padding-top:120px}
.mt-0{margin-top:0}.mt-6{margin-top:6px}.mt-10{margin-top:10px}.mt-12{margin-top:12px}
.mt-20{margin-top:20px}.mt-22{margin-top:22px}.mt-24{margin-top:24px}.mt-26{margin-top:26px}
.mb-4{margin-bottom:4px}.m0{margin:0}
.tac{text-align:center}
.narrow{max-width:820px}
.box-640{max-width:640px;margin-inline:auto}
.jc-center{justify-content:center}
.fs-lg{font-size:1.15rem}.fs-md{font-size:1.1rem}.fs-sm{font-size:.9rem}.fs-xs{font-size:.85rem}
.fw-normal{font-weight:400}
.list-plain{list-style:none;padding:0;margin:0}
.why-item{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}
.av-lg{width:88px;height:88px;font-size:1.9rem}
.c-inherit{color:inherit}
.details-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px 44px}
@media (max-width:820px){.details-grid{grid-template-columns:1fr; gap:22px}}
.detail-item h3{margin:0 0 8px; font-size:1.22rem}
.detail-item p{margin:0; color:var(--on-var); line-height:1.65}
.article-head{max-width:880px}
.article-head .lead{max-width:none; font-size:1.2rem; color:var(--on-var)}
.article-hero{margin:22px 0 0}
.article-hero img{width:100%; max-height:360px; object-fit:cover; border-radius:var(--r-lg); border:1px solid var(--outline-var)}
.tiles-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:600px){.tiles-2{grid-template-columns:1fr}}

[data-reveal]{opacity:1}
@media (scripting: enabled){
  [data-reveal]{opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease}
  [data-reveal].in{opacity:1; transform:none}
}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important; transform:none!important; transition:none}}
