
  :root{
    --ink:#1D1F1F;
    --ink-soft:#5A6465;
    --sky:#A6D8E1;
    --sky-pale:#E6F3F6;
    --sky-warm:#EDF7F9;
    --deep:#0F5866;
    --deep-dark:#0A3C46;
    --paper:#FFFFFF;
    --wash:#F2F4F4;
    --line:rgba(29,31,31,.16);
    --measure:36rem;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}

  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"IBM Plex Sans",system-ui,sans-serif;
    font-size:17px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3,h4{
    font-family:"Jost",system-ui,sans-serif;
    font-weight:300;
    line-height:1.12;
    margin:0;
    letter-spacing:-.01em;
  }

  a{color:inherit;}
  img{max-width:100%;display:block;}
  :focus-visible{outline:2px solid var(--deep);outline-offset:3px;}

  .wrap{width:min(72rem,100% - 3rem);margin-inline:auto;}

  .tag{
    font-family:"Jost",sans-serif;
    font-size:.8rem;font-weight:400;letter-spacing:.22em;
    color:var(--ink-soft);display:block;margin-bottom:1rem;
  }

  .btn{
    display:inline-block;padding:.85rem 1.9rem;
    background:var(--ink);color:var(--paper);text-decoration:none;
    font-family:"Jost",sans-serif;font-size:1rem;letter-spacing:.02em;
    border:1px solid var(--ink);
    transition:background 160ms ease,color 160ms ease;
  }
  .btn:hover{background:transparent;color:var(--ink);}
  .btn-ghost{background:transparent;color:var(--ink);}
  .btn-ghost:hover{background:var(--ink);color:var(--paper);}

  /* barátságos gomb — lekerekített, a lakossági regiszterhez */
  .btn-soft{
    display:inline-block;padding:.9rem 2rem;
    background:var(--deep);color:var(--paper);text-decoration:none;
    font-family:"Jost",sans-serif;font-size:1.02rem;
    border:1px solid var(--deep);border-radius:2rem;
    transition:background 160ms ease,color 160ms ease;
  }
  .btn-soft:hover{background:transparent;color:var(--deep);}

  /* ---------- fejléc ---------- */
  .masthead{
    position:sticky;top:0;z-index:30;
    background:rgba(255,255,255,.94);backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.7rem 0;}
  .masthead img{height:58px;width:auto;}
  .masthead nav{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;font-size:.95rem;}
  .masthead nav a{text-decoration:none;padding-bottom:3px;border-bottom:1px solid transparent;}
  .masthead nav a:hover{border-bottom-color:var(--sky);}
  .masthead .btn{padding:.55rem 1.2rem;font-size:.92rem;}

  /* ---------- hero ---------- */
  .hero{padding:clamp(3.5rem,9vw,7rem) 0 clamp(3rem,7vw,4.5rem);overflow:hidden;}
  .hero-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(2rem,6vw,4rem);align-items:center;}
  .hero h1{font-size:clamp(2.5rem,6.2vw,4.4rem);max-width:15ch;}
  .hero h1 strong{font-weight:500;}
  .hero p.lead{max-width:var(--measure);font-size:1.13rem;color:var(--ink-soft);margin:1.6rem 0 2.2rem;}
  .hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;}

  .sketch{position:relative;}
  .sketch svg{width:100%;height:auto;display:block;}
  .sketch .blk{
    fill:var(--sky);
    transform-box:fill-box;transform-origin:50% 100%;
    animation:rise 900ms cubic-bezier(.22,.61,.36,1) 500ms both;
  }
  .sketch path{
    fill:none;stroke:var(--ink);stroke-width:11;
    stroke-linecap:butt;stroke-linejoin:miter;
  }
  .ghost{
    stroke:var(--ink);stroke-width:4;opacity:0;
    stroke-dasharray:16 14;
    animation:ghost-in 400ms ease-out 100ms both,ghost-out 700ms ease-in 2900ms both;
  }
  .draw{
    stroke-dasharray:1210;stroke-dashoffset:1210;
    animation:draw 2000ms cubic-bezier(.4,.5,.25,1) 1000ms forwards;
  }
  @keyframes rise{from{transform:scaleY(0);}to{transform:scaleY(1);}}
  @keyframes ghost-in{from{opacity:0;}to{opacity:.28;}}
  @keyframes ghost-out{from{opacity:.28;}to{opacity:0;}}
  @keyframes draw{to{stroke-dashoffset:0;}}

  /* ---------- adatsáv ---------- */
  .facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .facts .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));}
  .facts div{padding:1.6rem 1.6rem 1.6rem 0;}
  .facts b{font-family:"Jost",sans-serif;font-weight:300;font-size:1.95rem;display:block;line-height:1.15;}
  .facts span{color:var(--ink-soft);font-size:.95rem;}

  section{padding:clamp(3.5rem,7.5vw,6rem) 0;}
  .head{max-width:var(--measure);margin-bottom:3rem;}
  .head h2{font-size:clamp(1.9rem,4vw,2.9rem);}
  .head p{margin:1rem 0 0;color:var(--ink-soft);}

  /* ---------- teljes körű: szakágak ---------- */
  .trades{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1px;background:var(--line);border:1px solid var(--line);}
  .trade{background:var(--paper);padding:1.4rem 1.5rem;}
  .trade h3{font-size:1.15rem;margin-bottom:.35rem;}
  .trade p{margin:0;color:var(--ink-soft);font-size:.95rem;}
  .trades-note{margin-top:1.6rem;color:var(--ink-soft);max-width:var(--measure);}

  /* ---------- IPARI: precíz regiszter ---------- */
  .tech{border-top:1px solid var(--line);}
  .tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:1px;background:var(--line);}
  .tech-panel{background:var(--paper);padding:clamp(1.8rem,4vw,2.6rem);}
  .tech-panel h3{font-size:1.7rem;margin-bottom:.7rem;}
  .tech-panel p{color:var(--ink-soft);margin:0 0 1.3rem;}
  .tech-panel ul{list-style:none;margin:0 0 1.6rem;padding:0;}
  .tech-panel li{padding:.55rem 0;border-top:1px solid var(--line);}
  .tech-panel .more{font-family:"Jost",sans-serif;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:2px;}
  .spec{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.2rem;margin:0;font-size:.95rem;}
  .spec dt{color:var(--ink-soft);}
  .spec dd{margin:0;}

  /* ---------- ENERGETIKA ---------- */
  .energy{background:var(--ink);color:var(--paper);}
  .energy h2,.energy h3{color:var(--paper);}
  .energy .tag{color:var(--sky);}
  .energy .head p{color:rgba(255,255,255,.74);}
  .energy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.18);}
  .energy-item{background:var(--ink);padding:1.5rem;}
  .energy-item h3{font-size:1.25rem;margin-bottom:.45rem;}
  .energy-item p{margin:0;color:rgba(255,255,255,.74);font-size:.96rem;}
  .energy-item i{display:block;width:2rem;height:1px;background:var(--sky);margin-bottom:1rem;}
  .energy-cta{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;}
  .energy-cta p{margin:0;color:rgba(255,255,255,.74);max-width:30rem;}
  .energy .btn-soft{background:var(--sky);border-color:var(--sky);color:var(--ink);}
  .energy .btn-soft:hover{background:transparent;color:var(--sky);}

  /* ---------- LAKOSSÁGI: barátságos regiszter ---------- */
  .warm{background:var(--sky-warm);}
  .warm h2{font-size:clamp(2rem,4.2vw,3rem);}
  .warm .head p{color:#41585E;font-size:1.08rem;}
  .warm .tag{color:var(--deep);}
  .warm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.2rem;}
  .warm-card{background:var(--paper);border-radius:18px;padding:1.7rem 1.8rem;}
  .warm-card h3{font-size:1.45rem;margin-bottom:.5rem;color:var(--deep-dark);}
  .warm-card p{margin:0 0 1rem;color:#41585E;}
  .warm-card ul{margin:0;padding-left:1.1rem;color:#41585E;}
  .warm-card li{padding:.2rem 0;}
  .warm-band{
    margin-top:1.2rem;background:var(--sky);border-radius:18px;
    padding:1.7rem 1.8rem;display:flex;flex-wrap:wrap;gap:1.5rem;
    align-items:center;justify-content:space-between;
  }
  .warm-band p{margin:0;max-width:34rem;color:#0A3C46;}
  .warm-band strong{font-weight:500;}
  .warm-band .btn-soft{background:var(--deep-dark);border-color:var(--deep-dark);}
  .warm-band .btn-soft:hover{background:transparent;color:var(--deep-dark);}

  /* ---------- folyamat ---------- */
  .steps{list-style:none;margin:0;padding:0;counter-reset:step;}
  .steps li{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:1.5rem;padding:1.5rem 0;border-top:1px solid var(--line);}
  .steps li:last-child{border-bottom:1px solid var(--line);}
  .steps li::before{
    counter-increment:step;content:counter(step,decimal-leading-zero);
    font-family:"Jost",sans-serif;font-weight:300;font-size:1.5rem;color:var(--deep);
  }
  .steps h3{font-size:1.3rem;margin-bottom:.3rem;}
  .steps p{margin:0;color:var(--ink-soft);max-width:var(--measure);}

  /* ---------- referenciák ---------- */
  .refs{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.6rem;}
  .ref figure{margin:0;}
  .ref .ph{
    aspect-ratio:4/3;background:var(--wash);border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;
    color:var(--ink-soft);font-size:.9rem;text-align:center;padding:1rem;
  }
  .ref figcaption{padding-top:.9rem;}
  .ref h3{font-size:1.15rem;}
  .ref p{margin:.25rem 0 0;color:var(--ink-soft);font-size:.95rem;}

  /* ---------- partner ---------- */
  .partner{border-top:1px solid var(--line);}
  .partner .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:2rem;align-items:start;}
  .partner h3{font-size:1.5rem;margin-bottom:.6rem;}
  .partner p{margin:0;color:var(--ink-soft);max-width:var(--measure);}

  /* ---------- ajánlatkérés ---------- */
  .quote{background:var(--sky-pale);}
  .quote-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(2rem,6vw,4rem);}
  .quote .tag{color:var(--deep);}
  .quote h2{font-size:clamp(1.9rem,4vw,2.9rem);}
  .quote-aside p{color:#41585E;max-width:28rem;}
  .quote-aside dl{margin:2rem 0 0;}
  .quote-aside dt{font-size:.85rem;color:var(--deep);letter-spacing:.06em;}
  .quote-aside dd{margin:.15rem 0 1.2rem;font-family:"Jost",sans-serif;font-size:1.25rem;}
  .quote-aside a{text-decoration:none;border-bottom:1px solid var(--deep);}

  .quote form{background:var(--paper);border-radius:18px;padding:clamp(1.5rem,4vw,2.2rem);}
  .field{margin-bottom:1.1rem;}
  .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1.1rem;}
  label{display:block;font-size:.88rem;color:var(--ink-soft);margin-bottom:.35rem;}
  input,select,textarea{
    width:100%;font:inherit;font-size:1rem;color:var(--ink);
    background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;
  }
  input:focus,select:focus,textarea:focus{border-color:var(--deep);}
  textarea{min-height:6.5rem;resize:vertical;}
  .quote button{
    font:inherit;cursor:pointer;font-family:"Jost",sans-serif;font-size:1.02rem;
    background:var(--deep);color:var(--paper);border:1px solid var(--deep);
    border-radius:2rem;padding:.85rem 2rem;
  }
  .quote button:hover{background:transparent;color:var(--deep);}
  .note{font-size:.9rem;color:var(--ink-soft);margin-top:1rem;min-height:1.4em;}

  /* ---------- lábléc ---------- */
  footer{padding:3rem 0 3.5rem;border-top:1px solid var(--line);font-size:.95rem;}
  .foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:2rem;}
  footer img{height:88px;width:auto;margin-bottom:1.1rem;}
  footer p{margin:0;color:var(--ink-soft);}
  footer a{color:var(--ink-soft);}
  .copyright{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--line);color:var(--ink-soft);font-size:.88rem;}

  @media (max-width:820px){
    .hero-grid,.quote-grid{grid-template-columns:1fr;}
    .sketch{order:-1;}
    .masthead .wrap{flex-wrap:wrap;gap:.8rem;}
    .masthead nav{gap:1rem;font-size:.9rem;}
    .steps li{grid-template-columns:2.6rem minmax(0,1fr);gap:1rem;}
  }

  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .draw{animation:none;stroke-dashoffset:0;}
    .sketch .blk{animation:none;}
    .ghost{display:none;}
    *{transition:none !important;}
  }

  .consent{display:grid;grid-template-columns:1.2rem 1fr;gap:.6rem;align-items:start;margin:0 0 1.3rem;}
  .consent input{width:1.1rem;height:1.1rem;margin-top:.25rem;border-radius:3px;}
  .consent label{font-size:.9rem;margin:0;line-height:1.5;}
  .consent a{color:var(--deep);}
  .csapda{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
  .note.hiba{color:#9B2B2B;}

  .legal{padding:clamp(3rem,7vw,5rem) 0;}
  .legal h1{font-size:clamp(2rem,4.5vw,3rem);margin-bottom:1.5rem;}
  .legal h2{font-size:1.4rem;margin:2.4rem 0 .7rem;}
  .legal p,.legal li{max-width:var(--measure);color:var(--ink-soft);}
  .legal dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.4rem;max-width:var(--measure);}
  .legal dt{color:var(--ink-soft);}
  .legal dd{margin:0;}
  .legal .vissza{display:inline-block;margin-top:2.5rem;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:2px;}
