
:root{--red:#e11922;--black:#080808;--panel:#111;--text:#f5f5f5;--muted:#aaa}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:var(--text);font-family:Arial,sans-serif}a{color:inherit;text-decoration:none}
.nav{height:78px;position:sticky;z-index:20;top:0;display:flex;align-items:center;gap:30px;padding:8px 5vw;background:rgba(5,5,5,.94);backdrop-filter:blur(12px);border-bottom:1px solid #222}
.brand{display:flex;align-items:center;gap:10px;font-family:Impact,Arial;font-size:20px;letter-spacing:1px}.brand img{width:56px;height:56px;object-fit:contain}.brand b,.red{color:var(--red)}
nav{margin-left:auto;display:flex;gap:25px;font-size:12px;font-weight:bold;text-transform:uppercase}nav a:hover,nav a.active{color:var(--red)}
.btn{display:inline-block;background:var(--red);padding:14px 22px;font-weight:800;text-transform:uppercase}.ghost{display:inline-block;border:1px solid #555;padding:13px 21px;font-weight:700;text-transform:uppercase}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero{min-height:calc(100vh - 78px);position:relative;display:flex;align-items:center;padding:80px 8vw;overflow:hidden}.hero-bg{position:absolute;inset:0;background:url("assets/hero-hajdu-gym.png") center center/cover no-repeat}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.97),rgba(0,0,0,.78) 48%,rgba(0,0,0,.25)),linear-gradient(0deg,#080808,transparent 40%)}
.content{position:relative;max-width:780px}.eyebrow{font-weight:800;letter-spacing:3px;color:var(--red);font-size:13px;text-transform:uppercase}
h1,h2{font-family:Impact,Arial,sans-serif;text-transform:uppercase;line-height:.98;letter-spacing:.5px}h1{font-size:clamp(48px,7vw,92px);margin:14px 0 25px}h2{font-size:clamp(40px,5vw,72px);margin:14px 0 24px}
.lead{font-size:19px;line-height:1.7;color:#ddd;max-width:700px}.strong{font-weight:800;color:white}
.pagehead{padding:100px 8vw 75px;background:linear-gradient(120deg,#171717,#080808);border-bottom:1px solid #222}.pagehead p{max-width:760px;color:#bbb;font-size:18px;line-height:1.7}
.section{padding:90px 8vw;max-width:1300px;margin:auto}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.split img{width:100%;max-height:720px;object-fit:cover}.copy p{color:#bbb;line-height:1.75;font-size:17px}
.features{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:40px}.card{background:#111;border:1px solid #222;padding:28px}.card b{display:block;font-size:20px;margin-bottom:10px}.card p{color:#999;line-height:1.6;margin:0}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery figure{margin:0;background:#111}.gallery img{width:100%;aspect-ratio:4/5;object-fit:cover}.gallery figcaption{padding:17px;font-weight:bold;text-transform:uppercase}
.honor{background:#111;border-left:5px solid var(--red);padding:35px;margin-top:35px}.honor p{font-size:18px;color:#ccc;line-height:1.7}
.contactgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.contactgrid>img{width:100%;max-width:450px}.contactbox{background:#111;border:1px solid #222;padding:35px}.contactbox p{color:#bbb;line-height:1.7}
footer{padding:24px 6vw;border-top:1px solid #222;display:flex;justify-content:space-between;color:#777;font-size:13px}
@media(max-width:900px){nav{display:none}.nav{padding:8px 18px}.nav .btn{margin-left:auto;font-size:11px;padding:11px 13px}.hero,.pagehead,.section{padding-left:24px;padding-right:24px}.split,.contactgrid{grid-template-columns:1fr}.features{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.brand span{display:none}footer{flex-direction:column;gap:10px}}

/* Mobile-first refinements */
@media(max-width:900px){
  .hero{min-height:calc(100svh - 78px);padding-top:56px;padding-bottom:56px}
  .hero-bg{
    background-image:url("assets/hero-hajdu-gym.png");
    background-size:auto 100%;
    background-position:18% center;
    opacity:.58;
  }
  .shade{
    background:
      linear-gradient(90deg,rgba(0,0,0,.95) 0%,rgba(0,0,0,.80) 62%,rgba(0,0,0,.58) 100%),
      linear-gradient(0deg,#080808 0%,transparent 50%);
  }
  .hero .content{max-width:620px}
  .hero h1{font-size:clamp(42px,11vw,68px)}
  .hero .lead{font-size:17px;line-height:1.6}
}
@media(max-width:520px){
  .nav{height:68px}
  .brand img{width:48px;height:48px}
  .hero{min-height:calc(100svh - 68px);padding:44px 20px 50px}
  .hero-bg{
    /* On phones we deliberately focus on Imre rather than trying to fit the whole poster. */
    background-size:auto 100%;
    background-position:10% center;
    opacity:.48;
  }
  .shade{
    background:
      linear-gradient(90deg,rgba(0,0,0,.96) 0%,rgba(0,0,0,.88) 68%,rgba(0,0,0,.68) 100%),
      linear-gradient(0deg,#080808 0%,transparent 58%);
  }
  .hero h1{font-size:clamp(38px,11.5vw,54px);line-height:1.02;margin-top:10px}
  .hero .lead{font-size:15.5px;line-height:1.55}
  .hero .actions{display:grid;grid-template-columns:1fr;max-width:340px}
  .hero .actions a{text-align:center}
  .pagehead{padding-top:70px;padding-bottom:55px}
  .pagehead h1{font-size:clamp(40px,12vw,58px)}
  .section{padding-top:60px;padding-bottom:60px}
  .split{gap:35px}
  .contactbox{padding:25px 20px}
}


/* Mobile hamburger navigation */
.menu-toggle{
  display:none;
  margin-left:auto;
  width:46px;
  height:46px;
  border:1px solid #333;
  background:#111;
  color:#fff;
  font-size:25px;
  line-height:1;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:101;
}
@media(max-width:900px){
  .menu-toggle{display:flex}
  .nav>.btn{display:none}
  .nav{position:sticky;overflow:visible}
  .nav nav{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    margin:0;
    padding:12px 18px 22px;
    background:rgba(8,8,8,.98);
    border-top:1px solid #222;
    border-bottom:2px solid var(--red);
    box-shadow:0 18px 35px rgba(0,0,0,.55);
    flex-direction:column;
    gap:0;
    z-index:100;
  }
  .nav nav.open{display:flex}
  .nav nav a{
    display:block;
    padding:15px 8px;
    border-bottom:1px solid #222;
    font-size:14px;
    letter-spacing:.5px;
  }
  .nav nav a:last-child{border-bottom:0}
}


/* v3: modern off-canvas mobile navigation */
@media(max-width:900px){
  body.menu-open{overflow:hidden}

  .nav{
    height:72px !important;
    padding:8px 18px !important;
    gap:12px !important;
    z-index:10000 !important;
  }

  .brand{margin-right:auto}
  .brand img{width:52px;height:52px}
  .nav>.btn{display:none !important}

  .menu-toggle{
    display:flex !important;
    order:3;
    margin-left:auto !important;
    width:48px;
    height:48px;
    flex:0 0 48px;
    border:1px solid #333;
    background:#111;
    color:#fff;
    font-size:26px;
    align-items:center;
    justify-content:center;
    z-index:10002;
  }
  .menu-toggle.open{
    border-color:var(--red);
    color:var(--red);
  }

  .nav nav,
  .nav nav.open{
    display:flex !important;
    position:fixed !important;
    top:72px !important;
    right:0 !important;
    left:auto !important;
    width:min(86vw,360px) !important;
    height:calc(100dvh - 72px) !important;
    margin:0 !important;
    padding:22px 22px 34px !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
    background:#0a0a0a !important;
    border-left:1px solid #242424 !important;
    border-top:1px solid #242424 !important;
    border-bottom:0 !important;
    box-shadow:-20px 0 45px rgba(0,0,0,.65) !important;
    z-index:10001 !important;
    overflow-y:auto;
    transform:translateX(105%);
    visibility:hidden;
    transition:transform .28s ease,visibility .28s ease;
  }

  .nav nav.open{
    transform:translateX(0);
    visibility:visible;
  }

  .nav nav::before{
    content:"HAJDÚ GYM";
    display:block;
    color:var(--red);
    font-family:Impact,Arial,sans-serif;
    font-size:28px;
    letter-spacing:1px;
    padding:8px 8px 20px;
    border-bottom:2px solid var(--red);
    margin-bottom:5px;
  }

  .nav nav a{
    display:block !important;
    padding:18px 8px !important;
    border-bottom:1px solid #242424 !important;
    font-size:15px !important;
    letter-spacing:.8px;
    color:#f5f5f5;
  }
  .nav nav a.active{color:var(--red)}
}

@media(max-width:520px){
  .nav{height:68px !important}
  .brand img{width:48px;height:48px}
  .menu-toggle{width:46px;height:46px;flex-basis:46px}
  .nav nav,.nav nav.open{
    top:68px !important;
    height:calc(100dvh - 68px) !important;
    width:88vw !important;
  }
}


/* Máhli Digital site credit */
.site-credit{
  padding:14px 20px 18px;
  text-align:center;
  border-top:1px solid #151515;
  background:#080808;
  color:#666;
  font-size:10px;
  font-weight:700;
  letter-spacing:1.1px;
  text-transform:uppercase;
}
.site-credit a{
  color:var(--red);
  margin:0 5px;
  transition:opacity .2s ease;
}
.site-credit a:hover{opacity:.72}
@media(max-width:520px){
  .site-credit{
    padding:15px 14px 20px;
    font-size:9px;
    line-height:1.7;
    letter-spacing:.8px;
  }
}


/* =========================================================
   MOBILE V4 — Hajdú Gym
   Telefonra optimalizált teljes oldal
   ========================================================= */

@media (max-width: 900px){

  html,body{overflow-x:hidden}
  body{font-size:16px}

  /* Fejléc */
  .nav{
    height:68px !important;
    padding:7px 14px !important;
    background:rgba(5,5,5,.97) !important;
  }
  .brand img{width:48px !important;height:48px !important}
  .menu-toggle{
    width:44px !important;
    height:44px !important;
    flex-basis:44px !important;
  }
  .nav nav,.nav nav.open{
    top:68px !important;
    height:calc(100dvh - 68px) !important;
  }

  /* Kezdőoldal hero:
     a teljes fekvő Hajdú Gym kép külön, jól látható sávban jelenik meg,
     a szöveg pedig alatta — így mobilon sem tűnik el a háttér. */
  .hero{
    min-height:auto !important;
    display:block !important;
    padding:0 20px 48px !important;
    overflow:hidden;
    background:#080808;
  }
  .hero-bg{
    position:relative !important;
    inset:auto !important;
    width:calc(100% + 40px) !important;
    height:56vw !important;
    min-height:205px;
    max-height:370px;
    margin-left:-20px;
    background-image:url("assets/hero-hajdu-gym.png") !important;
    background-size:contain !important;
    background-position:center top !important;
    background-repeat:no-repeat !important;
    background-color:#080808;
    opacity:1 !important;
  }
  .shade{
    pointer-events:none;
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:56vw;
    min-height:205px;
    max-height:370px;
    background:linear-gradient(0deg,#080808 0%,rgba(8,8,8,.10) 23%,rgba(8,8,8,0) 58%) !important;
  }
  .hero .content{
    position:relative;
    max-width:none !important;
    padding-top:22px;
    text-align:left;
  }
  .hero .eyebrow{
    font-size:11px;
    letter-spacing:2.2px;
  }
  .hero h1{
    font-size:clamp(38px,10.8vw,58px) !important;
    line-height:1.00 !important;
    margin:10px 0 18px !important;
  }
  .hero .lead{
    max-width:none;
    font-size:16px !important;
    line-height:1.55 !important;
    color:#d6d6d6;
  }
  .hero .actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    width:100%;
    max-width:none !important;
    margin-top:24px;
  }
  .hero .actions a{
    width:100%;
    text-align:center;
    padding:15px 16px;
  }

  /* Aloldalak fejléce */
  .pagehead{
    padding:56px 20px 42px !important;
  }
  .pagehead h1{
    font-size:clamp(38px,11vw,56px) !important;
    margin-bottom:18px;
  }
  .pagehead p{
    font-size:16px !important;
    line-height:1.58 !important;
  }

  /* Szekciók */
  .section{
    width:100%;
    padding:52px 20px !important;
  }
  .section h2{
    font-size:clamp(34px,9vw,48px) !important;
  }
  .split,
  .contactgrid{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
  .copy p{
    font-size:16px !important;
    line-height:1.62 !important;
  }
  .split img{
    max-height:none;
    border-radius:0;
  }

  /* Kártyák */
  .features{
    grid-template-columns:1fr !important;
    gap:12px !important;
    margin-top:28px;
  }
  .card{
    padding:22px 18px !important;
  }
  .card b{font-size:18px}
  .card p{font-size:15px;line-height:1.55}

  /* Galéria / eredmények */
  .gallery{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }
  .gallery figure{
    border:1px solid #202020;
  }
  .gallery img{
    width:100%;
    aspect-ratio:auto !important;
    max-height:none !important;
    object-fit:contain !important;
    background:#0b0b0b;
  }
  .gallery figcaption{
    padding:14px 16px;
    font-size:14px;
    line-height:1.4;
  }

  /* Becsületkassza */
  .honor{
    margin-top:24px;
    padding:24px 18px !important;
    border-left-width:4px;
  }
  .honor p{
    font-size:16px !important;
    line-height:1.6 !important;
  }

  /* Kapcsolat */
  .contactgrid>img{
    width:min(78vw,360px) !important;
    margin:0 auto;
  }
  .contactbox{
    padding:24px 18px !important;
  }
  .contactbox p{
    font-size:16px;
    line-height:1.58;
    overflow-wrap:anywhere;
  }
  .contactbox .btn,
  .contactbox .ghost{
    width:100%;
    text-align:center;
    margin-top:8px;
  }

  /* Gombok */
  .btn,.ghost{
    min-height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  /* Footer */
  footer{
    padding:22px 20px !important;
    flex-direction:column !important;
    gap:9px !important;
    line-height:1.5;
    text-align:center;
  }
  .site-credit{
    padding:14px 16px 18px !important;
    line-height:1.65;
  }
}

@media (max-width: 520px){
  .hero-bg,
  .shade{
    height:58vw !important;
    min-height:195px;
  }
  .hero{
    padding-left:16px !important;
    padding-right:16px !important;
  }
  .hero-bg{
    width:calc(100% + 32px) !important;
    margin-left:-16px !important;
  }
  .hero h1{
    font-size:clamp(36px,11vw,50px) !important;
  }
  .hero .lead{font-size:15.5px !important}
  .pagehead,.section{
    padding-left:18px !important;
    padding-right:18px !important;
  }
  .nav nav,.nav nav.open{
    width:92vw !important;
  }
}
