/*
Theme Name:   GymGate Child
Theme URI:    https://gymgate.cz
Description:  Child téma pro Hello Elementor — nese vizuální styl Gym Gate.
Author:       Surface
Template:     hello-elementor
Version:      2.0.0
Text Domain:  gymgate-child
*/

/* ==========================================================================
   GYM GATE — design system
   --------------------------------------------------------------------------
   Elementor drží strukturu a obsah, tento soubor drží vzhled. Hooky jsou
   třídy gg-*, nastavené v Elementoru (Advanced → CSS Classes), takže se nic
   nerozbije, když klient přesune widget nebo přepíše text.

   Fonty: Figtree (nadpisy i text). Google Sans ani Canva Sans z návrhu
   nelze na web licencovat — Figtree je nejbližší volná náhrada.
   Výměna = přepsat --display a --body.

   Fotky: v assets/img/, cesty relativní, takže fungují na jakékoli doméně
   bez nahrávání do Media Library. Výměna = přepsat soubor stejného názvu.

   POZOR na specificitu: Elementor dává containerům .e-con{width:100%}.
   Kde používáme flex:0 0 auto nebo pevný basis, musíme width přebít
   dvojtřídním selektorem (.e-con.gg-x) — jinak se z těch 100 % stane
   flex-basis a rozbije to celý řádek.
   ========================================================================== */

:root{
  --lime:#D7FB00;
  --bg:#111111;
  --bg-alt:#181818;
  --black:#000000;
  --text:#D0D0D0;
  --white:#FFFFFF;
  --line:rgba(255,255,255,.18);
  --line-soft:rgba(119,119,119,.18);
  --display:"Figtree",sans-serif;
  --body:"Figtree",sans-serif;
  --radius:15px;
}

/* ---------- základ ---------- */
body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:18px;line-height:1.55}
h1,h2,h3,h4,h5,h6{font-family:var(--display);color:var(--white);margin:0}
a{text-decoration:none}
img{max-width:100%;height:auto;display:block}
.gg-lime{color:var(--lime)}
.gg-section{width:100%}

/* Kotvy nesmí zmizet pod sticky hlavičkou. */
[id]{scroll-margin-top:96px}

/* ==========================================================================
   TYPOGRAFIE
   ========================================================================== */
.gg-h1 .elementor-heading-title{
  font:800 56px/1.12 var(--display);text-transform:uppercase;
  letter-spacing:-.015em;color:var(--white);
}
.gg-h1--sub .elementor-heading-title{font-size:46px}
.gg-h2 .elementor-heading-title{
  font:800 40px/1.18 var(--display);text-transform:uppercase;
  letter-spacing:-.012em;color:var(--white);
}
.gg-h2--center .elementor-heading-title{text-align:center}

.gg-lead p,.gg-sec-lead p,.gg-hero-lead p,.gg-app-lead p,.gg-hours-lead p{
  font-size:18px;line-height:1.6;color:var(--text);
}
.gg-sec-lead,.gg-hero-lead{text-align:center}
.gg-sec-lead .elementor-widget-container,
.gg-hero-lead .elementor-widget-container{max-width:640px;margin-inline:auto}

.gg-note,.gg-pricing-note p,.gg-slot-note p{
  font-size:15px;line-height:1.6;color:rgba(208,208,208,.75);
}
.gg-pricing-note{text-align:center}
.gg-pricing-note .elementor-widget-container{max-width:760px;margin-inline:auto}

/* pill label */
.gg-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 14px;border:1px solid var(--line);border-radius:50px;
  font:600 13px/1.3 var(--display);text-transform:uppercase;
  letter-spacing:.08em;color:var(--white);white-space:nowrap;
}
.gg-pill i{color:var(--lime);font-size:12px}
.gg-pill-w{display:flex}
.gg-sec-head--center .gg-pill-w{justify-content:center}

.gg-sec-head,.gg-sec-head > .e-con-inner{display:flex;flex-direction:column;gap:18px}
.gg-sec-head--center{align-items:center;text-align:center}

.gg-center-row,.gg-center-row > .e-con-inner{display:flex;justify-content:center}

/* ==========================================================================
   BUTTONY
   ========================================================================== */
.gg-btn .elementor-button{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 26px;border-radius:50px;border:0;
  background:var(--lime);color:#000;fill:#000;
  font:700 15px/1.4 var(--display);text-transform:uppercase;
  letter-spacing:.02em;transition:.3s;
}
.gg-btn .elementor-button:hover{background:var(--white);color:#000}
.gg-btn--lime .elementor-button{background:var(--lime);color:#000;fill:#000}
.gg-btn--ghost .elementor-button{
  background:transparent;color:var(--lime);fill:var(--lime);
  border:1px solid var(--lime);
}
.gg-btn--ghost .elementor-button:hover{background:var(--lime);color:#000;fill:#000}
.gg-btn--block,.gg-btn--block .elementor-button{width:100%}
.gg-btn .elementor-button-icon{font-size:13px}

.gg-btn-plain{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 26px;border-radius:50px;background:var(--lime);color:#000;
  font:700 15px/1.4 var(--display);text-transform:uppercase;
  letter-spacing:.02em;transition:.3s;
}
.gg-btn-plain:hover{background:var(--white)}

/* ==========================================================================
   HEADER
   ========================================================================== */
.gg-header{position:absolute;inset:0 0 auto;z-index:100;background:transparent}
.gg-header.is-stuck{
  position:fixed;background:rgba(17,17,17,.94);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft);
}
.gg-header-bar,
.gg-header-bar > .e-con-inner{display:flex;align-items:center;gap:20px;min-height:84px}
.gg-logo{
  font:800 27px/1 var(--display);letter-spacing:-.02em;
  color:var(--white);white-space:nowrap;
}
.gg-logo sup{color:var(--lime);font-size:.5em;margin-left:2px;top:-.7em}
/* Prvky hlavicky jsou flex-deti v radku: width:100% by je nechalo
   proporcionalne stlacit (navigace by se zlomila na dva radky). */
.e-con.gg-logo-w,.gg-logo-w{flex:0 0 auto;width:auto}
.e-con.gg-nav-w,.gg-nav-w{flex:1 1 auto;width:auto;min-width:0}
.e-con.gg-burger-w,.gg-burger-w{flex:0 0 auto;width:auto}
.gg-header-bar .gg-btn{flex:0 0 auto;width:auto}
.gg-header-bar .elementor-button{white-space:nowrap}
.gg-nav ul{display:flex;justify-content:center;margin:0;padding:0;list-style:none;flex-wrap:wrap}
.gg-nav a{
  display:block;padding:8px 11px;
  font:600 13px/1.4 var(--display);text-transform:uppercase;
  letter-spacing:.03em;color:var(--white);transition:.3s;white-space:nowrap;
}
.gg-nav a:hover,.gg-nav li.is-active a{color:var(--lime)}
.gg-burger-w{display:none}
.gg-burger{
  display:block;width:44px;height:44px;border:1px solid var(--line);
  border-radius:10px;background:none;cursor:pointer;
}
.gg-burger span{display:block;width:20px;height:2px;background:var(--white);margin:4px auto}

/* ==========================================================================
   FOTOGRAFICKÉ SEKCE (hero, page hero, tour)
   ========================================================================== */
.gg-hero{
  position:relative;min-height:880px;
  background:url("assets/img/hero.webp") center/cover no-repeat;
}
.gg-hero-inner{position:relative;z-index:2}
.gg-hero-stack,
.gg-hero-stack > .e-con-inner{
  display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center;
}
.gg-hero-actions,
.gg-hero-actions > .e-con-inner{
  display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;
}
.e-con.gg-hero-actions{width:auto;flex:0 0 auto}

.gg-pagehero{
  position:relative;
  background:url("assets/img/hero.webp") center/cover no-repeat;
}
.gg-pagehero-stack,
.gg-pagehero-stack > .e-con-inner{
  display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;
}

.gg-tour{
  position:relative;
  background:url("assets/img/tour-band.webp") center/cover no-repeat;
}
.gg-tour-stack,
.gg-tour-stack > .e-con-inner{
  display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;
}

/* ==========================================================================
   BENEFITY
   ========================================================================== */
.gg-benefits,
.gg-benefits > .e-con-inner{display:flex;gap:18px;align-items:stretch;margin-top:70px}
.gg-benefit{
  flex:1 1 0;min-width:0;min-height:212px;padding:22px 18px;text-align:center;
  border:1px solid var(--line-soft);border-bottom:0;border-radius:16px 16px 0 0;
  background:linear-gradient(180deg,rgba(17,17,17,.32),rgba(17,17,17,.76));
}
.gg-benefit-box .elementor-icon{
  width:54px;height:54px;display:grid;place-items:center;margin:0 auto 14px;
  border-radius:50%;border:1px solid var(--line-soft);
  background:rgba(215,251,0,.07);color:var(--lime);fill:var(--lime);font-size:22px;
}
.gg-benefit-box .elementor-icon-box-title{
  font:700 18px/1.3 var(--display);color:var(--white);margin-bottom:8px;
}
.gg-benefit-box .elementor-icon-box-description{font-size:14px;line-height:1.5;color:var(--text)}

/* varianta jako samostatné karty */
.gg-benefits--cards,
.gg-benefits--cards > .e-con-inner{margin-top:0;flex-wrap:wrap}
.gg-benefits--cards .gg-benefit{
  border:1px solid var(--line-soft);border-radius:var(--radius);
  background:var(--bg);min-height:0;flex:1 1 240px;
}

/* ==========================================================================
   FOTO PANELY
   ========================================================================== */
.gg-media{
  border-radius:var(--radius);background-color:#1b1b1b;
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
.e-con.gg-media--about,.gg-media--about{
  flex:0 0 560px;max-width:560px;width:560px;min-height:580px;
  background-image:url("assets/img/about.webp");
}
.e-con.gg-media--hours,.gg-media--hours{
  flex:0 0 560px;max-width:560px;width:560px;min-height:480px;
  background-image:url("assets/img/hours.webp");
}
.e-con.gg-media--faq,.gg-media--faq{
  flex:0 0 520px;max-width:520px;width:520px;min-height:640px;
  background-image:url("assets/img/faq.webp");
  background-size:contain;background-position:center bottom;
}

/* slot pro fotky, které klient ještě nedodal */
.gg-photo-slot{
  aspect-ratio:3/2;border-radius:var(--radius);
  background-color:#1b1b1b;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D7FB00' stroke-width='1.1' stroke-linecap='round' opacity='.45'%3E%3Cpath d='M4 5.5h16v13H4zM4 15l4.5-4.5 5 5M14 12l2.5-2.5L20 13'/%3E%3C/svg%3E"),
    repeating-linear-gradient(45deg,rgba(215,251,0,.04) 0 14px,transparent 14px 28px);
  background-repeat:no-repeat,repeat;
  background-position:center,0 0;background-size:52px,auto;
  border:1px dashed rgba(215,251,0,.28);
}
.gg-photo-grid,
.gg-photo-grid > .e-con-inner{display:flex;gap:20px;flex-wrap:wrap}
.gg-photo-col{flex:1 1 320px;display:flex;flex-direction:column;gap:10px}
.gg-slot-note p{text-align:center}

/* ==========================================================================
   O NÁS / FILOZOFIE
   ========================================================================== */
.gg-about-grid,
.gg-about-grid > .e-con-inner{display:flex;gap:36px;align-items:stretch}
.gg-about-body{flex:1 1 auto;display:flex;flex-direction:column;gap:20px;justify-content:center}
.gg-about-text p + p{margin-top:16px}
.gg-about-text strong{color:var(--white)}
.gg-about-actions,
.gg-about-actions > .e-con-inner{display:flex;gap:14px;flex-wrap:wrap}
.e-con.gg-about-actions{width:auto;flex:0 0 auto}

/* ==========================================================================
   ZÓNY
   ========================================================================== */
.gg-zones,
.gg-zones > .e-con-inner{display:flex;gap:20px;align-items:stretch}
.gg-zone{
  flex:1 1 0;min-width:0;border-radius:var(--radius);overflow:hidden;
  border-top:3px solid var(--lime);background:var(--bg);
}
.gg-zone-img{
  min-height:330px;background-color:#1b1b1b;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  transition:.4s;
}
.gg-zone:hover .gg-zone-img{filter:brightness(1.12)}
.gg-zone-img--silova{background-image:url("assets/img/zone-silova.webp")}
.gg-zone-img--cardio{background-image:url("assets/img/zone-cardio.webp")}
.gg-zone-img--funkcni{background-image:url("assets/img/zone-funkcni.webp")}
.gg-zone-body{padding:24px 22px 28px;display:flex;flex-direction:column;gap:12px}
.gg-zone-head,
.gg-zone-head > .e-con-inner{display:flex;align-items:center;gap:12px}
.gg-zone-icon .elementor-icon{color:var(--lime);fill:var(--lime);font-size:22px}
.gg-zone-title .elementor-heading-title{
  font:800 21px/1.25 var(--display);text-transform:uppercase;color:var(--white);
}
.gg-zone-desc p{font-size:16px;line-height:1.55}

/* fakta pod zónami */
.gg-facts{
  display:flex;gap:20px;flex-wrap:wrap;
  border-top:1px solid var(--line-soft);padding-top:28px;
}
.gg-facts > div{flex:1 1 180px;text-align:center}
.gg-facts b{
  display:block;font:800 30px/1.1 var(--display);color:var(--lime);
  letter-spacing:-.02em;
}
.gg-facts span{
  display:block;margin-top:6px;font-size:13px;color:var(--text);
  text-transform:uppercase;letter-spacing:.06em;
}

/* ==========================================================================
   CENÍK — 5 karet: (1250 − 4×20) / 5 = 234 px
   ========================================================================== */
.gg-plans,
.gg-plans > .e-con-inner{display:flex;gap:20px;align-items:stretch}
.gg-plan{
  flex:1 1 0;min-width:0;background:var(--bg-alt);
  border:1px solid var(--line-soft);border-radius:var(--radius);
  padding:22px 20px;display:flex;flex-direction:column;gap:18px;transition:.3s;
}
.gg-plan:hover{border-color:var(--line)}
.gg-plan--featured{border:2px solid var(--lime);box-shadow:0 0 0 4px rgba(215,251,0,.08)}
.gg-plan-head{display:flex;flex-direction:column;gap:6px}
.gg-plan-name .elementor-heading-title{
  font:700 16px/1.3 var(--display);text-transform:uppercase;
  letter-spacing:.02em;color:var(--white);
}
.gg-plan-price{font:800 26px/1.15 var(--display);color:var(--white);letter-spacing:-.02em}
.gg-plan-price small{
  display:block;margin-top:3px;font:400 13px/1.3 var(--body);color:var(--text);
}
.gg-plan-student{
  align-self:flex-start;padding:4px 11px;border-radius:50px;
  background:rgba(215,251,0,.12);border:1px solid rgba(215,251,0,.35);
  font:700 11px/1.4 var(--display);text-transform:uppercase;
  letter-spacing:.05em;color:var(--lime);
}
.gg-plan-feats .elementor-icon-list-items{display:flex;flex-direction:column;gap:9px}
.gg-plan-feats .elementor-icon-list-item{
  align-items:flex-start;font-size:14px;line-height:1.5;color:var(--text);
}
.gg-plan-feats .elementor-icon-list-icon{padding-top:4px}
.gg-plan-feats .elementor-icon-list-icon i{color:var(--lime);font-size:11px}
.gg-plan .gg-btn{margin-top:auto}
.gg-plan .gg-btn .elementor-button{padding:13px 16px;font-size:13px}

/* ==========================================================================
   APLIKACE — store badge, kroky, telefon
   ========================================================================== */
.gg-app-grid,
.gg-app-grid > .e-con-inner{display:flex;gap:40px;align-items:center}
.gg-app-body{flex:1 1 auto;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.e-con.gg-app-media,.gg-app-media{flex:0 0 250px;max-width:250px;width:250px}
.gg-app-phone{
  aspect-ratio:604/800;
  background:url("assets/img/app-phone.webp") center/contain no-repeat;
}
.e-con.gg-app-phone--big,.gg-app-phone--big{max-width:320px;width:320px;flex-basis:320px}

.gg-stores{display:flex;gap:12px;flex-wrap:wrap}
.gg-store{
  display:inline-flex;align-items:center;gap:12px;
  padding:11px 20px 11px 16px;border-radius:12px;
  background:var(--white);color:#000;transition:.3s;
}
.gg-store:hover{background:var(--lime)}
.gg-store i{font-size:26px}
.gg-store span{display:flex;flex-direction:column;line-height:1.15}
.gg-store small{font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.7}
.gg-store b{font:700 15px/1.2 var(--display)}

.gg-steps-grid,
.gg-steps-grid > .e-con-inner{display:flex;gap:48px;align-items:center}
.gg-steps-body{flex:1 1 auto;display:flex;flex-direction:column;gap:26px;align-items:flex-start}
.gg-steps,
.gg-steps > .e-con-inner{display:flex;flex-direction:column;gap:20px}
.gg-step,
.gg-step > .e-con-inner{display:flex;gap:18px;align-items:flex-start}
.gg-step-num{
  display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;
  border-radius:50%;background:var(--lime);color:#000;
  font:800 18px/1 var(--display);
}
.e-con.gg-step-num-w,.gg-step-num-w{width:auto;flex:0 0 auto}
.gg-step-text{flex:1 1 auto;display:flex;flex-direction:column;gap:6px}
.gg-step-title .elementor-heading-title{
  font:700 19px/1.3 var(--display);text-transform:uppercase;
  letter-spacing:.02em;color:var(--white);
}
.gg-step-desc p{font-size:16px;line-height:1.55}

.gg-steps--row,
.gg-steps--row > .e-con-inner{flex-direction:row;gap:20px;flex-wrap:wrap}
.gg-step--card{
  flex:1 1 280px;background:var(--bg-alt);border:1px solid var(--line-soft);
  border-radius:var(--radius);padding:26px 24px;
}

/* ==========================================================================
   TRENÉŘI
   ========================================================================== */
.gg-trainers,
.gg-trainers > .e-con-inner{display:flex;gap:20px;align-items:stretch;flex-wrap:wrap}
.gg-trainer{flex:1 1 0;min-width:220px;display:flex;flex-direction:column;gap:16px}
/* Fotky trenérů mají tmavý rámeček zapečený už v obrázku (export z Canvy),
   proto tu žádný border ani padding nepřidáváme — dubloval by se. */
.gg-trainer-photo{
  aspect-ratio:632/609;background-color:transparent;
  background-size:contain;background-position:center;background-repeat:no-repeat;
}
.gg-trainer-photo--1{background-image:url("assets/img/trainer-1.webp")}
.gg-trainer-photo--2{background-image:url("assets/img/trainer-2.webp")}
.gg-trainer-photo--3{background-image:url("assets/img/trainer-3.webp")}
.gg-trainer-photo--4{background-image:url("assets/img/trainer-4.webp")}
.gg-trainer-info{
  background:var(--bg-alt);border:1px solid var(--line-soft);
  border-radius:var(--radius);padding:20px;flex:1 1 auto;
  display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center;
}
.gg-socials{display:flex;gap:8px;justify-content:center}
.gg-socials a{
  width:32px;height:32px;border-radius:8px;display:grid;place-items:center;
  background:var(--lime);color:#000;font-size:14px;transition:.3s;
}
.gg-socials a:hover{background:var(--white)}
.gg-rule{display:block;width:80px;height:1px;background:var(--lime)}
.gg-trainer-name .elementor-heading-title{font:700 18px/1.3 var(--display);color:var(--white)}
.gg-trainer-spec{
  font:600 13px/1.4 var(--display);text-transform:uppercase;
  letter-spacing:.06em;color:var(--lime);
}
.gg-trainer-desc p{font-size:15px;line-height:1.55}
.gg-trainers--detail .gg-trainer{min-width:260px}

/* manažer trenérů */
.gg-manager-grid,
.gg-manager-grid > .e-con-inner{display:flex;gap:40px;align-items:center}
.e-con.gg-manager-photo,.gg-manager-photo{
  flex:0 0 420px;max-width:420px;width:420px;min-height:460px;
  border-radius:var(--radius);
  background:#1b1b1b url("assets/img/visit-marian.webp") center/cover no-repeat;
}
.gg-manager-body{flex:1 1 auto;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.gg-manager-text p + p{margin-top:14px}
.gg-manager-actions,
.gg-manager-actions > .e-con-inner{display:flex;gap:14px;flex-wrap:wrap}
.e-con.gg-manager-actions{width:auto;flex:0 0 auto}

/* ==========================================================================
   DOMLUV SI PROHLÍDKU
   ========================================================================== */
.gg-visit-grid,
.gg-visit-grid > .e-con-inner{display:flex;gap:40px;align-items:center}
.gg-visit-body{flex:1 1 auto;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.gg-visit-text strong{color:var(--white)}
.e-con.gg-visit-media,.gg-visit-media{flex:0 0 380px;max-width:380px;width:380px}
.gg-visit-photo{
  aspect-ratio:3/2;border-radius:var(--radius);
  background:#1b1b1b url("assets/img/visit-marian.webp") center/cover no-repeat;
}
.gg-visit-actions,
.gg-visit-actions > .e-con-inner{display:flex;gap:14px;flex-wrap:wrap}
.e-con.gg-visit-actions{width:auto;flex:0 0 auto}

/* ==========================================================================
   OTEVÍRACÍ DOBA
   ========================================================================== */
.gg-hours-grid,
.gg-hours-grid > .e-con-inner{display:flex;gap:40px;align-items:center}
.gg-hours-body{flex:1 1 auto;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
ul.gg-hours{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;width:100%}
ul.gg-hours li{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--line-soft);
}
ul.gg-hours li:last-child{border-bottom:0;padding-bottom:0}
ul.gg-hours span{
  font:600 16px/1.4 var(--display);text-transform:uppercase;
  letter-spacing:.03em;color:var(--white);
}
ul.gg-hours b{font:800 18px/1.35 var(--display);color:var(--lime);letter-spacing:-.01em}
ul.gg-hours--foot li{padding-bottom:9px}
ul.gg-hours--foot span{font-size:13px}
ul.gg-hours--foot b{font-size:15px}

/* ==========================================================================
   POUKAZY
   ========================================================================== */
.gg-voucher-grid,
.gg-voucher-grid > .e-con-inner{display:flex;gap:48px;align-items:center}
.gg-voucher-body{flex:1 1 auto;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.e-con.gg-voucher-art,.gg-voucher-art{
  flex:0 0 180px;max-width:180px;width:180px;display:grid;place-items:center;
}
.gg-gift-icon .elementor-icon{color:var(--lime);fill:var(--lime);font-size:88px;opacity:.9}
.gg-voucher-actions,
.gg-voucher-actions > .e-con-inner{display:flex;gap:14px;flex-wrap:wrap}
.e-con.gg-voucher-actions{width:auto;flex:0 0 auto}

/* ==========================================================================
   FAQ
   ========================================================================== */
.gg-faq-grid,
.gg-faq-grid > .e-con-inner{display:flex;gap:40px;align-items:stretch}
.gg-faq-body{flex:1 1 auto;display:flex;flex-direction:column;gap:22px;justify-content:center}
.gg-acc .elementor-accordion{display:flex;flex-direction:column;gap:12px}
.gg-acc .elementor-accordion-item{border:0}
.gg-acc .elementor-tab-title{
  background:var(--bg-alt);border:1px solid var(--line-soft);
  border-radius:var(--radius);padding:15px 20px;transition:.3s;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  flex-direction:row-reverse;
}
.gg-acc .elementor-tab-title a,
.gg-acc .elementor-tab-title .elementor-accordion-title{
  font:600 16px/1.45 var(--display);color:var(--white);flex:1 1 auto;
}
.gg-acc .elementor-accordion-icon{color:var(--lime);font-size:13px;transition:.3s}
.gg-acc .elementor-tab-title.elementor-active{background:var(--lime);border-color:var(--lime)}
.gg-acc .elementor-tab-title.elementor-active a,
.gg-acc .elementor-tab-title.elementor-active .elementor-accordion-title{color:#000}
.gg-acc .elementor-tab-title.elementor-active .elementor-accordion-icon{
  color:#000;transform:rotate(180deg);
}
.gg-acc .elementor-tab-content{
  background:var(--bg);border:1px solid var(--line-soft);
  border-radius:var(--radius);margin-top:10px;padding:18px 20px;
  color:var(--text);font-size:16px;line-height:1.65;
}

/* ==========================================================================
   KONTAKT
   ========================================================================== */
.gg-contact-grid,
.gg-contact-grid > .e-con-inner{display:flex;gap:48px;align-items:flex-start}
.gg-contact-body{flex:1 1 auto;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.e-con.gg-contact-hours,.gg-contact-hours{
  flex:0 0 380px;max-width:380px;width:380px;
  background:var(--bg-alt);border:1px solid var(--line-soft);
  border-radius:var(--radius);padding:28px;
  display:flex;flex-direction:column;gap:18px;
}
ul.gg-contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
ul.gg-contact-list li{display:flex;gap:14px;align-items:flex-start;font-size:17px;line-height:1.5}
ul.gg-contact-list i{
  color:var(--lime);font-size:17px;width:22px;text-align:center;
  padding-top:3px;flex:0 0 auto;
}
ul.gg-contact-list b{color:var(--white)}
ul.gg-contact-list a{color:var(--text);transition:.3s}
ul.gg-contact-list a:hover{color:var(--lime)}
.gg-contact-actions,
.gg-contact-actions > .e-con-inner{display:flex;gap:14px;flex-wrap:wrap}
.e-con.gg-contact-actions{width:auto;flex:0 0 auto}

/* mapa a Matterport */
.gg-map-embed,.gg-matterport{
  width:100%;border-radius:var(--radius);overflow:hidden;
  background:var(--bg-alt);border:1px solid var(--line-soft);
}
.gg-map-embed iframe,.gg-matterport iframe{display:block;width:100%;border:0}
.gg-map-embed iframe{height:420px}
.gg-matterport{aspect-ratio:16/9}
.gg-matterport iframe{height:100%}
.gg-embed-empty{
  min-height:360px;display:grid;place-items:center;padding:32px;text-align:center;
  color:var(--text);font-size:16px;line-height:1.6;
}
.gg-embed-empty code{
  background:rgba(215,251,0,.10);color:var(--lime);
  padding:2px 7px;border-radius:5px;font-size:14px;
}

/* ==========================================================================
   IFRAME KONEKTOR DO APLIKACE  ([gymgate_app])
   ========================================================================== */
.gg-app-frame{
  position:relative;width:100%;background:var(--bg-alt);
  border:1px solid var(--line-soft);border-radius:var(--radius);overflow:hidden;
}
.gg-app-frame__iframe{display:block;width:100%;border:0;transition:height .35s ease}
.gg-app-frame__loader{
  position:absolute;inset:0;z-index:2;display:flex;align-items:center;
  justify-content:center;gap:12px;background:var(--bg-alt);color:var(--text);
  font:500 16px/1.4 var(--body);transition:opacity .3s ease,visibility .3s ease;
}
.gg-app-frame.is-loaded .gg-app-frame__loader{opacity:0;visibility:hidden}
.gg-app-frame__loader span{
  width:22px;height:22px;flex:0 0 auto;border-radius:50%;
  border:2px solid rgba(215,251,0,.25);border-top-color:var(--lime);
  animation:gg-spin .8s linear infinite;
}
@keyframes gg-spin{to{transform:rotate(360deg)}}
.gg-app-frame--empty{padding:28px;color:var(--text)}
.gg-app-frame--empty p{margin:0 0 8px}
.gg-app-frame--empty code{
  background:rgba(215,251,0,.10);color:var(--lime);
  padding:2px 6px;border-radius:4px;font-size:14px;
}
.gg-app-frame__fallback{
  display:inline-flex;align-items:center;gap:10px;padding:15px 26px;
  border-radius:50px;background:var(--lime);color:#000;
  font:700 15px/1.4 var(--display);text-transform:uppercase;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.gg-footer{background:var(--black)}
.gg-foot-cols,
.gg-foot-cols > .e-con-inner{display:flex;gap:44px;align-items:flex-start}
.gg-foot-brand{flex:1.5 1 0;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.gg-foot-col{flex:1 1 0;display:flex;flex-direction:column;gap:16px}
.gg-foot-text p{font-size:15px;line-height:1.6}
.gg-foot-text p + p{margin-top:10px}
.gg-foot-text strong{color:var(--lime)}
.gg-foot-title .elementor-heading-title{
  font:700 17px/1.3 var(--display);text-transform:uppercase;
  letter-spacing:.06em;color:var(--white);
}
.gg-foot-list .elementor-icon-list-items{display:flex;flex-direction:column;gap:9px}
.gg-foot-list .elementor-icon-list-item a{font-size:15px;color:var(--text);transition:.3s}
.gg-foot-list .elementor-icon-list-item a:hover{color:var(--lime)}
.gg-foot-list .elementor-icon-list-icon i{color:var(--lime);font-size:11px}
ul.gg-foot-contact{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
ul.gg-foot-contact li{display:flex;gap:11px;align-items:flex-start;font-size:15px;line-height:1.5}
ul.gg-foot-contact i{color:var(--lime);width:16px;text-align:center;padding-top:3px;flex:0 0 auto}
ul.gg-foot-contact a{color:var(--text);transition:.3s}
ul.gg-foot-contact a:hover{color:var(--lime)}
.gg-legal{
  display:flex;gap:24px;justify-content:center;align-items:center;flex-wrap:wrap;
  padding-top:24px;border-top:1px solid var(--line-soft);
}
.gg-legal span,.gg-legal a{font-size:14px;color:rgba(208,208,208,.6)}
.gg-legal a{transition:.3s}
.gg-legal a:hover{color:var(--lime)}

/* ==========================================================================
   SCROLL REVEAL
   ========================================================================== */
.gg-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.gg-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .gg-reveal{opacity:1;transform:none;transition:none}
}

/* pomocné wrappery bez vlastního vzhledu */
.gg-shortcode,.gg-app-frame-row,.gg-matterport-row,.gg-map-row,
.gg-facts-row,.gg-facts-w,.gg-pricing-note-row,
.gg-hours-w,.gg-legal-w,.gg-foot-contact-w,.gg-foot-socials,
.gg-contact-socials,.gg-trainer-socials,.gg-rule-w,.gg-plan-price-w,
.gg-plan-student-w,.gg-trainer-spec-w,.gg-stores-w,
.gg-contact-list-w{width:100%}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1300px){
  .gg-nav a{padding:8px 8px;font-size:12px}
  .gg-logo{font-size:24px}
}
@media (max-width:1200px){
  .gg-h1 .elementor-heading-title{font-size:48px}
  .gg-h1--sub .elementor-heading-title{font-size:38px}
  .gg-h2 .elementor-heading-title{font-size:34px}
  .e-con.gg-media--about,.gg-media--about,
  .e-con.gg-media--hours,.gg-media--hours,
  .e-con.gg-media--faq,.gg-media--faq{flex-basis:44%;max-width:44%;width:44%}
  .e-con.gg-manager-photo,.gg-manager-photo{flex-basis:40%;max-width:40%;width:40%}
  .gg-benefits,.gg-benefits > .e-con-inner,
  .gg-plans,.gg-plans > .e-con-inner{flex-wrap:wrap}
  .e-con.gg-benefit,.gg-benefit,
  .e-con.gg-plan,.gg-plan{flex:1 1 30%;width:30%;max-width:none}
  .gg-about-grid,.gg-about-grid > .e-con-inner,
  .gg-hours-grid,.gg-hours-grid > .e-con-inner{gap:28px}
}
@media (max-width:1024px){
  .gg-nav-w,.gg-header-bar .gg-btn{display:none}
  .gg-burger-w{display:block;margin-left:auto;width:auto}
  .gg-header.nav-open{background:var(--bg)}
  .gg-header.nav-open .gg-nav-w{display:block;flex-basis:100%;order:5;width:100%}
  .gg-header.nav-open .gg-header-bar,
  .gg-header.nav-open .gg-header-bar > .e-con-inner{flex-wrap:wrap}
  .gg-header.nav-open .gg-nav ul{
    flex-direction:column;padding:8px 0 18px;border-top:1px solid var(--line-soft);
  }
  .gg-header.nav-open .gg-nav a{padding:13px 0;font-size:15px}

  .gg-hero{min-height:0}
  .gg-hero-inner{padding-top:150px !important;padding-bottom:60px !important}
  .gg-section .gg-inner{padding-top:70px !important;padding-bottom:70px !important}
  .gg-pagehero .gg-pagehero-inner{padding-top:150px !important;padding-bottom:70px !important}

  .gg-about-grid,.gg-about-grid > .e-con-inner,
  .gg-hours-grid,.gg-hours-grid > .e-con-inner,
  .gg-faq-grid,.gg-faq-grid > .e-con-inner,
  .gg-zones,.gg-zones > .e-con-inner,
  .gg-visit-grid,.gg-visit-grid > .e-con-inner,
  .gg-app-grid,.gg-app-grid > .e-con-inner,
  .gg-steps-grid,.gg-steps-grid > .e-con-inner,
  .gg-manager-grid,.gg-manager-grid > .e-con-inner,
  .gg-voucher-grid,.gg-voucher-grid > .e-con-inner,
  .gg-contact-grid,.gg-contact-grid > .e-con-inner,
  .gg-foot-cols,.gg-foot-cols > .e-con-inner{flex-wrap:wrap}

  .e-con.gg-media--about,.gg-media--about,
  .e-con.gg-media--hours,.gg-media--hours,
  .e-con.gg-media--faq,.gg-media--faq,
  .e-con.gg-manager-photo,.gg-manager-photo,
  .e-con.gg-visit-media,.gg-visit-media,
  .e-con.gg-contact-hours,.gg-contact-hours,
  .e-con.gg-app-media,.gg-app-media,
  .e-con.gg-voucher-art,.gg-voucher-art{flex-basis:100%;max-width:100%;width:100%}
  .e-con.gg-media--about,.gg-media--about,
  .e-con.gg-media--hours,.gg-media--hours{min-height:400px}
  .e-con.gg-media--faq,.gg-media--faq{min-height:420px}
  .e-con.gg-manager-photo,.gg-manager-photo{min-height:420px}
  .gg-app-phone,.e-con.gg-app-phone--big,.gg-app-phone--big{
    max-width:260px;width:260px;margin-inline:auto;
  }
  .e-con.gg-zone,.gg-zone,
  .e-con.gg-trainer,.gg-trainer{flex:1 1 45%;width:45%;max-width:none}
  .gg-facts > div{flex:1 1 40%}
}
@media (max-width:640px){
  .gg-h1 .elementor-heading-title{font-size:34px}
  .gg-h1--sub .elementor-heading-title{font-size:28px}
  .gg-h2 .elementor-heading-title{font-size:26px}
  /* Elementor dava .e-con{width:100%}; u karet potrebujeme mit sirku
     i flex-basis pod kontrolou, jinak radek nezlomi. */
  .e-con.gg-benefit,.gg-benefit,
  .e-con.gg-plan,.gg-plan,
  .e-con.gg-zone,.gg-zone,
  .e-con.gg-trainer,.gg-trainer{
    flex:1 1 100%;width:100%;max-width:100%;min-width:100%;
  }
  .gg-benefits,.gg-benefits > .e-con-inner{margin-top:44px}
  .gg-hero-actions,.gg-hero-actions > .e-con-inner,
  .gg-visit-actions,.gg-visit-actions > .e-con-inner,
  .gg-manager-actions,.gg-manager-actions > .e-con-inner,
  .gg-contact-actions,.gg-contact-actions > .e-con-inner,
  .gg-about-actions,.gg-about-actions > .e-con-inner{
    flex-direction:column;align-items:stretch;
  }
  .e-con.gg-hero-actions,.e-con.gg-visit-actions,.e-con.gg-manager-actions,
  .e-con.gg-contact-actions,.e-con.gg-about-actions{width:100%}
  .gg-btn .elementor-button{width:100%}
  ul.gg-hours li{flex-direction:column;gap:2px;align-items:flex-start}
  .gg-facts > div{flex:1 1 100%}
  .gg-facts b{font-size:26px}
  .gg-steps--row,.gg-steps--row > .e-con-inner{flex-direction:column}
  .gg-map-embed iframe{height:320px}
  .gg-store{flex:1 1 100%}
  .gg-legal{gap:12px}
}
