/* KD · projekt oldalak közös komponensei és ábrarendszere */

.pmeta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:2em 0;}
.pmeta div{background:var(--cream);padding:1em 1.1em;}
.pmeta span{display:block;font-family:var(--sans);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-deep);font-weight:700;margin-bottom:.3em;}
.pmeta strong{font-size:.98rem;font-weight:700;}

.step{padding:2em 0;border-bottom:1px solid var(--line);}
.step:last-child{border-bottom:0;}
.step-num{font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;font-weight:700;color:var(--terra-deep);}
.step h3{margin:.3em 0 .6em;font-size:1.25rem;}
.step p{margin:.6em 0;line-height:1.65;color:var(--ink-faint);}
.step ul{margin:.8em 0;padding-left:1.2em;color:var(--ink-faint);line-height:1.7;}
.step li{margin:.3em 0;}

.prompt-box{background:var(--sand);border-left:2px solid var(--terra);padding:1.1em 1.3em;margin:1.1em 0;font-family:var(--sans);font-size:.9rem;line-height:1.65;}
.prompt-box b{display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-deep);margin-bottom:.5em;}
.warn{border:1px solid var(--line);padding:1.1em 1.3em;margin:1.3em 0;font-size:.93rem;line-height:1.65;}
.warn b{color:var(--terra-deep);}
.cta-box{background:var(--sand);border-top:1px solid var(--terra);padding:2em 2.2em;margin:3em 0;}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:1em;margin:1.6em 0;}
.grid2 div{border:1px solid var(--line);padding:1.1em 1.2em;}
.grid2 strong{display:block;font-size:1.02rem;margin-bottom:.3em;}
.grid2 span{font-size:.9rem;color:var(--ink-faint);line-height:1.6;}
.lang-switch{border:1px solid var(--line);border-radius:999px;padding:.25em .75em;font-size:.8rem;letter-spacing:.06em;font-weight:700;}
@media (max-width:640px){.pmeta{grid-template-columns:repeat(2,1fr);}.grid2{grid-template-columns:1fr;}}

/* --- Ábrák --- */
.fig{margin:2.8em 0;}
.fig svg{display:block;width:100%;height:auto;}
.fig-label{display:block;font-family:var(--sans);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-deep);font-weight:700;margin-bottom:1em;}
.fig figcaption{font-family:var(--sans);font-size:.84rem;line-height:1.65;color:var(--ink-faint);margin-top:1.2em;padding-left:1em;border-left:2px solid var(--line);}

.fig .nb{fill:var(--cream);stroke:var(--line);stroke-width:1.5;}
.fig .nb-a{fill:var(--sand);stroke:var(--terra);stroke-width:1.5;}
.fig .nb-f{fill:var(--terra);stroke:var(--terra);stroke-width:1.5;}
.fig .nb-d{fill:none;stroke:var(--line);stroke-width:1.5;stroke-dasharray:5 4;}
.fig .nb-s{fill:var(--sand);stroke:var(--line);stroke-width:1.5;}
.fig .t{font-family:var(--sans);font-size:14px;font-weight:700;fill:var(--ink);}
.fig .ts{font-family:var(--sans);font-size:12px;font-weight:400;fill:var(--ink-faint);}
.fig .ti{font-family:var(--sans);font-size:14px;font-weight:700;fill:var(--cream);}
.fig .tk{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;fill:var(--terra-deep);}
.fig .ta{font-family:var(--sans);font-size:12px;font-weight:700;fill:var(--terra-deep);}
.fig .ln{fill:none;stroke:var(--line);stroke-width:1.5;}
.fig .ln-a{fill:none;stroke:var(--terra);stroke-width:1.5;}
.fig .ln-d{fill:none;stroke:var(--line);stroke-width:1.5;stroke-dasharray:5 4;}
.fig .sw{fill:var(--line);}
.fig .sw-a{fill:var(--terra);}

/* --- Mozgás · csak akkor, ha a böngésző és a látogató is kéri --- */
.kd-anim .fig[data-reveal] .rv{opacity:0;transform:translateY(9px);}
.kd-anim .fig[data-reveal].in .rv{opacity:1;transform:none;transition:opacity .55s ease var(--d,0ms),transform .55s cubic-bezier(.22,1,.36,1) var(--d,0ms);}
.kd-anim .fig[data-reveal] .draw{stroke-dasharray:var(--len,160);stroke-dashoffset:var(--len,160);}
.kd-anim .fig[data-reveal].in .draw{stroke-dashoffset:0;transition:stroke-dashoffset .75s cubic-bezier(.33,1,.68,1) var(--d,0ms);}
.kd-anim .fig[data-reveal] .grow{transform:scaleX(0);transform-origin:left center;}
.kd-anim .fig[data-reveal].in .grow{transform:scaleX(1);transition:transform .85s cubic-bezier(.22,1,.36,1) var(--d,0ms);}
.kd-anim .fig[data-reveal].in .pulse{animation:kdPulse 2.6s ease-in-out infinite;}
@keyframes kdPulse{0%,100%{opacity:.22;}50%{opacity:.75;}}
.kd-anim [data-reveal].rvblock{opacity:0;transform:translateY(12px);}
.kd-anim [data-reveal].rvblock.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1);}

@media (prefers-reduced-motion: reduce){
  .kd-anim .fig[data-reveal] .rv,.kd-anim [data-reveal].rvblock{opacity:1;transform:none;}
  .kd-anim .fig[data-reveal] .draw{stroke-dashoffset:0;}
  .kd-anim .fig[data-reveal] .grow{transform:scaleX(1);}
  .kd-anim .fig[data-reveal].in .pulse{animation:none;opacity:.5;}
}
