/*
Theme Name: Euro Fitness Bockenem
Theme URI: https://eurofitness-bockenem.de/
Description: Individuelles, barrierearmes Theme fuer Euro Fitness Bockenem.
Version: 1.0.2
Text Domain: eurofitness-bockenem
*/

:root { --ink:#57585a; --muted:#60708b; --line:#dbe4ef; --orange:#cbab70; --orange-dark:#ac5d00; --gold:#efb94a; --paper:#fffdfa; --navy:#57585a; --cream:#fff8ec; --success:#206c50; --shadow:0 12px 30px rgba(6,34,71,.1); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.5; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
img { max-width:100%; height:auto; }
.screen-reader-text { clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px; overflow:hidden; position:absolute; white-space:nowrap; }
.screen-reader-text:focus { clip:auto; clip-path:none; display:block; height:auto; left:1rem; padding:.7rem 1rem; position:fixed; top:1rem; width:auto; z-index:200; background:#fff; color:var(--ink); }
.site-shell { overflow:hidden; }
.container { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
.topbar { background:#fff; position:relative; z-index:20; border-bottom:1px solid rgba(215,131,19,.18); }
.topbar::after { content:""; position:absolute; height:28px; width:105%; left:-2%; bottom:-25px; z-index:-1; border-bottom:2px solid var(--orange); border-radius:0 0 50% 50%; background:#fff; }
.header-row { min-height:92px; display:flex; align-items:center; gap:2rem; }
.brand { flex:0 0 auto; display:flex; align-items:center; gap:.75rem; min-width:245px; }
.brand-mark { width:54px; height:54px; font-size:30px; font-weight:900; letter-spacing:-7px; color:var(--ink); font-style:italic; transform:skew(-10deg); position:relative; line-height:54px; }
.brand-logo { width:auto; height:70px; display:block; }
.brand-logo img {width:auto; height:70px; }
.brand-mark::after { content:""; width:29px; height:8px; border-radius:1px; background:var(--orange); position:absolute; transform:rotate(-16deg); bottom:8px; right:-5px; }
.brand-name { font-weight:800; font-size:1.1rem; letter-spacing:2px; line-height:1.05; }
.brand-name span { color:var(--orange); display:block; letter-spacing:4px; margin-top:4px; }
.brand-tag { font-size:.57rem; display:block; margin-top:6px; letter-spacing:.2px; }
.primary-nav { margin-left:auto; }
.primary-nav ul { list-style:none; padding:0; margin:0; display:flex; gap:1.9rem; align-items:center; font-size:.9rem; font-weight:700; }
.primary-nav a { padding:.5rem 0; border-bottom:2px solid transparent; }
.primary-nav a:hover,.primary-nav .current-menu-item>a { border-color:var(--orange); }
.header-cta,.button { display:inline-flex; align-items:center; justify-content:center; gap:.65rem; min-height:48px; padding:.7rem 1.2rem; border:0; border-radius:6px; font-weight:800; font-size:.82rem; text-transform:uppercase; cursor:pointer; letter-spacing:.1px; transition:transform .2s, background .2s; }
.header-cta,.button-primary { background:var(--orange); color:#fff; box-shadow:0 6px 14px rgba(215,131,19,.22); }
.header-cta:hover,.button-primary:hover { background:var(--orange-dark); transform:translateY(-1px); }
.button-secondary { background:#fff; color:var(--ink); border:1px solid var(--orange); }
.button-secondary:hover { background:var(--cream); }
.icon-calendar { width:19px; height:19px; border:2px solid currentColor; border-radius:3px; position:relative; }
.icon-calendar::before { content:""; position:absolute; left:3px; right:3px; top:4px; border-top:2px solid currentColor; }
.icon-calendar::after { content:"•••"; letter-spacing:1px; font-size:10px; position:absolute; top:3px; left:1px; }
.nav-toggle { display:none; margin-left:auto; width:44px; height:44px; background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:4px; font-size:1.3rem; }

.hero { min-height:420px; display:grid; grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr); position:relative; margin-top:25px; background:linear-gradient(90deg,#fff 0%,#fff 48%,transparent 62%); }
.hero-copy { padding:72px max(24px, calc((100vw - 1180px)/2)) 76px; padding-right:25px; align-self:center; position:relative; z-index:2; }
.eyebrow { font-size:.78rem; letter-spacing:1.4px; font-weight:800; text-transform:uppercase; margin:0 0 .65rem; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(2.55rem,5vw,4.6rem); line-height:.99; letter-spacing:0; margin-bottom:.85rem; font-weight:900; }
.hero h1 .accent,.accent { color:var(--orange); }
.hero-lead { max-width:500px; font-size:1.05rem; margin-bottom:1.35rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.85rem; }
.hero-image { min-height:420px; background-position:center; background-size:cover; position:relative; }
.hero-image::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.84) 11%,rgba(255,255,255,0) 42%); }
.hero-image::after { content:""; position:absolute; left:-3%; right:-2%; bottom:-1px; height:36px; background:#fff; border-radius:50% 50% 0 0/100% 100% 0 0; }
.hero-badge { position:absolute; right:7%; bottom:48px; width:166px; height:166px; display:grid; place-items:center; border-radius:50%; border:3px solid #fff; outline:2px solid var(--orange); color:var(--orange-dark); background:rgba(255,255,255,.95); text-align:center; padding:18px; transform:rotate(-7deg); font-family:Georgia,serif; font-size:1.15rem; z-index:2; }
.hero-badge strong { color:var(--ink); font-family:Arial,sans-serif; font-size:.85rem; display:block; margin-top:.3rem; }
.page-hero { min-height:290px; grid-template-columns:minmax(0,1fr) minmax(380px,.9fr); }
.page-hero .hero-copy { padding-top:55px; padding-bottom:60px; }
.page-hero h1 { font-size:clamp(2.4rem,4.5vw,3.9rem); }
.page-hero .hero-image { min-height:290px; }

.benefits { background:#fff; padding:19px 0 24px; }
.benefit-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.benefit { min-height:76px; display:flex; align-items:center; gap:.85rem; padding:0 1rem; border-right:1px solid #aab6c8; }
.benefit:last-child { border:0; }
.round-icon { flex:0 0 auto; display:grid; place-items:center; width:54px; height:54px; border-radius:50%; color:#fff; background:linear-gradient(135deg,var(--orange),#f5bc48); font-size:1.45rem; font-weight:800; box-shadow:inset 0 0 0 3px rgba(255,255,255,.25); }
.benefit strong { display:block; font-size:.83rem; text-transform:uppercase; }
.benefit p { font-size:.76rem; margin:.15rem 0 0; }
.section { padding:70px 0; }
.section-compact { padding:46px 0; }
.section-soft { background:linear-gradient(120deg,#fff 0%,#fffaf2 100%); }
.section-heading { max-width:740px; margin-bottom:28px; }
.section-heading .eyebrow { margin-bottom:.35rem; }
h2 { font-size:clamp(2rem,3.3vw,3.15rem); line-height:1.05; margin-bottom:.6rem; letter-spacing:0; }
h2 .accent { color:var(--orange); }
.intro { font-size:1.08rem; }
.two-up { display:grid; grid-template-columns:1.02fr .98fr; gap:48px; align-items:center; }
.image-panel { min-height:420px; background-position:center; background-size:cover; position:relative; }
.image-panel::after { content:""; position:absolute; height:42px; left:-2%; right:-2%; bottom:-2px; background:#fff; border-radius:50% 50% 0 0/100% 100% 0 0; }
.feature-list { list-style:none; margin:1.6rem 0 0; padding:0; display:grid; gap:1.35rem; }
.feature-list li { display:grid; grid-template-columns:54px 1fr; gap:1rem; align-items:start; }
.feature-list h3 { margin:.1rem 0 .25rem; font-size:1rem; text-transform:uppercase; }
.feature-list p { margin:0; font-size:.92rem; }

.pricing-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.price-card { border:1px solid #c8d3e1; border-radius:6px; background:#fff; overflow:hidden; display:flex; flex-direction:column; position:relative; }
.price-card .price-image { display:none; }
.price-card .round-icon { position:static; width:55px; height:55px; background:var(--navy); border:3px solid #fff; margin:14px 14px 0; }
.price-card-body { padding:14px; display:flex; flex-direction:column; flex:1; }
.price-card h3 { font-size:1.08rem; margin:0 0 .65rem; text-transform:uppercase; }
.price-card ul { list-style:none; padding:0; margin:0 0 1rem; display:grid; gap:.42rem; font-size:.84rem; }
.price-card li::before { content:"✓"; color:var(--orange); font-weight:900; margin-right:.5rem; }
.price-card .price { background:var(--navy); color:#fff; border-radius:4px; margin-top:auto; padding:.75rem .6rem; text-align:center; font-weight:800; }
.price-card .price small { font-weight:400; }

.notice { border-left:4px solid var(--orange); background:#fff5e3; padding:1rem 1.15rem; margin:1.3rem 0; }
.notice strong { display:block; }
.filter-row { display:flex; gap:.85rem; flex-wrap:wrap; align-items:end; margin:1.2rem 0 1.5rem; }
.filter-button { border:1px solid var(--line); background:#fff; color:var(--ink); padding:.6rem .9rem; border-radius:6px; cursor:pointer; }
.filter-button.active,.filter-button:hover { background:var(--navy); color:#fff; border-color:var(--navy); }
.schedule-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:7px; background:#fff; }
.schedule { border-collapse:collapse; min-width:860px; width:100%; table-layout:fixed; }
.schedule th,.schedule td { border-right:1px solid #e5ebf3; border-bottom:1px solid #e5ebf3; vertical-align:top; padding:9px; }
.schedule th { background:#fbfcff; text-align:center; font-size:.78rem; }
.schedule tr:last-child td { border-bottom:0; }
.schedule th:last-child,.schedule td:last-child { border-right:0; }
.schedule-time { width:86px; text-align:center; vertical-align:middle!important; font-weight:800; font-size:.8rem; }
.class-chip { text-align:left; display:block; width:100%; border:0; border-left:4px solid var(--orange); border-radius:4px; padding:8px; margin-bottom:7px; color:var(--ink); cursor:pointer; background:#fff2d8; transition:transform .15s,box-shadow .15s; }
.class-chip:hover,.class-chip:focus { transform:translateY(-1px); box-shadow:0 4px 10px rgba(6,34,71,.13); outline:2px solid var(--ink); outline-offset:1px; }
.class-chip.type-yoga { background:#eee8ff; border-color:#8b6de7; }.class-chip.type-cardio { background:#fff1c9; border-color:#d59100; }.class-chip.type-strength { background:#ddecff; border-color:#4777d9; }.class-chip.type-hiit { background:#ffdfdf; border-color:#d55353; }
.class-chip time { display:block; font-size:.67rem; }.class-chip strong { display:block; font-size:.78rem; margin:.18rem 0; }.class-chip span { display:block; font-size:.66rem; }
.course-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.course-card { border:1px solid var(--line); border-radius:6px; padding:15px; background:#fff; display:flex; flex-direction:column; min-height:205px; }
.course-top { display:flex; align-items:center; gap:.75rem; }.course-top .round-icon { width:42px; height:42px; font-size:1.05rem; }
.course-card h3 { margin:0; font-size:1rem; }.course-card p { font-size:.86rem; margin:.75rem 0; }.tag { align-self:flex-start; background:#e9f0ff; padding:.14rem .45rem; border-radius:3px; font-size:.7rem; }.course-card button { background:transparent; color:var(--orange); border:0; padding:0; margin-top:auto; cursor:pointer; font-weight:800; text-align:left; }

.membership-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:32px; align-items:start; }
.rate-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:6px; background:#fff; }.rate-table { border-collapse:collapse; width:100%; min-width:620px; }.rate-table th,.rate-table td { padding:.85rem 1rem; border-bottom:1px solid var(--line); text-align:left; }.rate-table th { background:var(--navy); color:#fff; font-size:.84rem; }.rate-table tbody tr:nth-child(even) { background:#fffaf1; }.rate-table tbody tr:last-child td { border-bottom:0; }.rate-table td { font-size:.9rem; }.extras-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:1rem; }.extra-list { border:1px solid var(--line); background:#fff; border-radius:6px; padding:18px; }.extra-list h3 { margin:0 0 .7rem; font-size:1rem; }.extra-list dl { margin:0; }.extra-list dl div { display:flex; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); padding:.55rem 0; font-size:.85rem; }.extra-list dl div:last-child { border:0; }.extra-list dd { margin:0; font-weight:800; white-space:nowrap; }
.step-heading { display:flex; gap:.85rem; align-items:center; margin-top:34px; }.step-heading:first-child { margin-top:0; }.step-number { display:grid; place-items:center; width:43px; height:43px; border-radius:50%; background:var(--navy); color:#fff; font-size:1.25rem; font-weight:800; flex:0 0 auto; }.step-heading h2 { font-size:1.35rem; margin:0; }.step-heading p { margin:.1rem 0 0; font-size:.83rem; }
.tariff-options { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:1.3rem 0; }.tariff-option { border:1px solid var(--line); border-radius:6px; padding:16px; position:relative; min-height:204px; }.tariff-option.selected { border:2px solid var(--orange); }.tariff-option input { position:absolute; opacity:0; }.tariff-option label { display:block; cursor:pointer; }.tariff-option h3 { margin:.65rem 0; font-size:1rem; }.tariff-option ul { padding:0; list-style:none; font-size:.8rem; margin:.5rem 0; }.tariff-option li::before { content:"✓"; color:var(--orange); margin-right:.45rem; }.tariff-option .price-line { font-size:1.2rem; font-weight:800; margin-top:1rem; }.tariff-option .price-line small { font-size:.75rem; font-weight:400; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:15px 20px; }.form-field { display:grid; gap:.35rem; }.form-field.full { grid-column:1/-1; }.form-field label { font-size:.8rem; font-weight:800; }.form-field input,.form-field select,.form-field textarea { border:1px solid #bac9dc; padding:.7rem .75rem; border-radius:4px; color:var(--ink); background:#fff; min-width:0; }.form-field textarea { min-height:115px; resize:vertical; }.form-field input:focus,.form-field select:focus,.form-field textarea:focus { outline:2px solid var(--orange); outline-offset:1px; }
.check-row { display:flex; gap:.6rem; align-items:flex-start; margin-top:.9rem; font-size:.8rem; }.check-row input { margin-top:.2rem; width:17px; height:17px; }
.upload-box { border:1px dashed var(--ink); border-radius:5px; padding:18px; display:flex; gap:1rem; align-items:center; background:#fbfdff; font-size:.84rem; }.upload-box .round-icon { width:42px; height:42px; }
.membership-followup[hidden],.discount-upload[hidden] { display:none; }.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.form-message { border-radius:5px; padding:.85rem 1rem; margin:1rem 0; }.form-message.success { background:#e8f7ee; color:#14553d; }.form-message.error { background:#fff0ef; color:#9b2720; }
.side-info { background:linear-gradient(135deg,#f6f8fc,#fff); padding:25px; position:sticky; top:16px; }.side-info h3 { font-size:1rem; margin:.15rem 0 .35rem; }.side-info p { font-size:.82rem; margin:0; }.side-info-item { grid-template-columns:42px 1fr; gap:.8rem; margin-bottom:1.5rem; }.side-info .question { margin-top:2rem; padding:22px 16px; background:#fff8ee; }.side-info .question p { margin:.7rem 0; }

.studio-gallery { display:grid; grid-template-columns:1.2fr .8fr; grid-template-rows:220px 220px; gap:14px; }.studio-gallery figure { margin:0; min-height:0; background-position:center; background-size:cover; }.studio-gallery figure:first-child { grid-row:1/3; }.studio-gallery figcaption { background:rgba(3,29,62,.85); color:#fff; display:inline-block; margin:12px; padding:.35rem .55rem; font-size:.75rem; }
.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:42px; }.contact-card { background:var(--navy); color:#fff; padding:28px; }.contact-card h2 { font-size:1.65rem; }.contact-card p { margin:.8rem 0; }.contact-card a { color:#fff; text-decoration:underline; }.map-placeholder { min-height:310px; padding:30px; display:flex; align-items:end; background:linear-gradient(130deg,rgba(6,34,71,.35),rgba(6,34,71,.1)),url('https://eurofitness-bockenem.de/wp-content/uploads/2026/10/google-maps-scaled.jpg') center/cover; color:#fff; }.map-placeholder > div { max-width:350px; }.legal-content { max-width:780px; }.legal-placeholder { border:1px solid var(--orange); background:#fff9ee; padding:20px; border-radius:5px; }

.site-footer { background:var(--navy); color:#fff; padding:35px 0 24px; }.footer-grid { display:grid; grid-template-columns:1.25fr 1.1fr 1.1fr .8fr; gap:24px; }.site-footer .brand { min-width:0; }.site-footer .brand-mark { color:#fff; }.footer-heading { font-weight:800; font-size:.82rem; text-transform:uppercase; margin-bottom:.65rem; }.site-footer p,.site-footer a { font-size:.78rem; margin:.3rem 0; }.site-footer a:hover { color:var(--gold); }.footer-links { display:flex; gap:11px; flex-wrap:wrap; margin-top:1.2rem; }.socials { display:flex; gap:.6rem; }.socials a { display:grid; place-items:center; border:1px solid #fff; width:33px; height:33px; border-radius:50%; font-size:1rem; }.footer-bottom { margin-top:25px; border-top:1px solid rgba(255,255,255,.22); padding-top:12px; font-size:.72rem; color:#d7dfec; }
/* Footer: Öffnungszeiten Studio & Sauna */
.footer-hours-group + .footer-hours-group { margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.22); }
.footer-subheading { color:var(--gold); font-size:.74rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.4rem; }
.footer-hours-list { list-style:none; margin:0; padding:0; }
.footer-hours-list li { font-size:.78rem; line-height:1.5; margin:0 0 .3rem; }
.footer-hours-list li:last-child { margin-bottom:0; }
.dialog { border:0; border-radius:7px; padding:0; max-width:min(500px,calc(100% - 32px)); box-shadow:0 18px 50px rgba(0,0,0,.27); }.dialog::backdrop { background:rgba(3,29,62,.6); }.dialog-inner { padding:24px; position:relative; }.dialog-close { position:absolute; right:12px; top:12px; background:transparent; border:0; font-size:1.5rem; cursor:pointer; color:var(--ink); }

@media (max-width:1000px) { .primary-nav ul { gap:1rem; }.header-cta { padding:.65rem .8rem; font-size:.72rem; }.pricing-grid,.course-grid { grid-template-columns:repeat(2,1fr); }.hero { grid-template-columns:1fr .83fr; }.membership-layout { grid-template-columns:1fr; }.side-info { position:static; display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }.side-info-item { margin:0; }.side-info .question { grid-column:1/-1; margin:0; }.footer-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px) { .container { width:min(100% - 32px,1180px); }.header-row { min-height:76px; gap:.65rem; }.brand { min-width:0; gap:.45rem; }.brand-mark { width:43px; height:43px; line-height:43px; font-size:25px; }.brand-name { font-size:.85rem; letter-spacing:1.5px; }.brand-name span { letter-spacing:2.8px; }.brand-tag { display:none; }.header-cta { display:none; }.nav-toggle { display:block; }.primary-nav { display:none; position:fixed; inset:76px 0 0; padding:28px 24px; background:#fff; }.menu-open .primary-nav { display:block; }.primary-nav ul { display:grid; gap:0; font-size:1.05rem; }.primary-nav a { display:block; padding:1rem 0; border-bottom:1px solid var(--line); }.topbar::after { bottom:-17px; height:19px; }.hero,.page-hero { margin-top:17px; min-height:0; grid-template-columns:1fr; background:#fff; }.hero-copy,.page-hero .hero-copy { padding:45px 16px 28px; max-width:none; }.hero-image,.page-hero .hero-image { min-height:235px; }.hero-image::before { background:linear-gradient(90deg,rgba(255,255,255,.2),rgba(255,255,255,0)); }.hero-badge { width:127px; height:127px; right:5%; bottom:35px; font-size:.85rem; }.benefit-grid { grid-template-columns:1fr 1fr; }.benefit { padding:13px 4px; min-height:82px; border-bottom:1px solid var(--line); }.benefit:nth-child(2n) { border-right:0; }.round-icon { width:42px; height:42px; font-size:1.1rem; }.benefit strong { font-size:.7rem; }.benefit p { font-size:.67rem; }.section { padding:48px 0; }.two-up,.contact-grid { grid-template-columns:1fr; gap:26px; }.image-panel { min-height:280px; }.pricing-grid,.course-grid,.extras-grid { grid-template-columns:1fr; }.price-card .price-image { height:145px; }.price-card .round-icon { top:111px; }.studio-gallery { grid-template-columns:1fr; grid-template-rows:220px 180px 180px; }.studio-gallery figure:first-child { grid-row:auto; }.tariff-options,.form-grid { grid-template-columns:1fr; }.form-field.full { grid-column:auto; }.side-info { display:block; }.side-info-item { margin-bottom:1.25rem; }.site-footer { padding-top:28px; }.footer-grid { grid-template-columns:1fr; gap:20px; }.footer-bottom { margin-top:15px; }.upload-box { align-items:flex-start; }.button { width:100%; }.hero-actions { display:grid; }.schedule-wrap { margin-left:-16px; margin-right:-16px; border-radius:0; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
.hero {
  position: relative;
}

.hero-action-image {
  position: absolute;
  z-index: 2;
  top: 20px;
  left: 20px;
  display: block;
  width: clamp(120px, 27vw, 260px);
}

.hero-action-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* Mobil: Grafik kleiner halten und Abstand zum Rand bewahren */
@media (max-width: 600px) {
  .hero-action-image {
    top: 12px;
    left: 12px;
    width: clamp(90px, 25vw, 150px);
  }
}