/*
Theme Name: Yoga mit ThOMas
Theme URI: https://yoga-thomasremele.at/
Author: Thomas Remele / Webdesign
Description: Individuelles WordPress-Theme für Yoga mit ThOMas in Bruck an der Mur. Mit dynamischer Terminverwaltung, Kontaktformular und Rank-Math-Kompatibilität.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: yoga-mit-thomas
*/

:root {
  --red: #e51a16;
  --red-dark: #b70f0b;
  --ink: #201d1b;
  --muted: #6c6661;
  --paper: #fffdfa;
  --soft: #f5f1ec;
  --line: #e9e1d9;
  --warm: #efe4d7;
  --shadow: 0 20px 60px rgba(44, 35, 28, .10);
  --radius: 22px;
  --shell: min(1180px, calc(100% - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.shell { width: var(--shell); margin-inline: auto; }
.skip-link {
  position: fixed; left: 12px; top: -100px; z-index: 9999;
  background: #fff; color: #000; padding: 10px 14px; border-radius: 8px;
}
.skip-link:focus { top: 12px; }

.site-header {
  position: sticky; top: 0; z-index: 1000;
  background: rgba(255,253,250,.94);
  border-bottom: 1px solid rgba(229,225,219,.85);
  backdrop-filter: blur(12px);
}
.header-inner {
  width: var(--shell); margin: auto; min-height: 82px;
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
}
.brand { display: inline-flex; align-items: center; gap: 12px; min-width: 0; }
.brand-om { width: 52px; height: 52px; object-fit: contain; }
.brand-copy { display: flex; flex-direction: column; min-width: 0; }
.brand-copy strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem; line-height: 1.1; font-weight: 500;
}
.brand-copy small { font-size: .78rem; color: var(--muted); margin-top: 4px; }
.main-nav { display: flex; align-items: center; gap: 24px; font-size: .94rem; }
.main-nav a { padding: 8px 0; }
.main-nav a:hover { color: var(--red); }
.nav-cta {
  background: var(--red); color: #fff !important; padding: 10px 18px !important;
  border-radius: 999px;
}
.menu-toggle { display:none; background:none; border:0; padding:9px; }
.menu-toggle span { display:block; width:26px; height:2px; background:#222; margin:5px 0; }

.hero {
  position: relative; min-height: min(720px, 76vh);
  display: grid; align-items: center; overflow: hidden;
}
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-shade {
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(22,17,14,.62) 0%, rgba(22,17,14,.26) 43%, rgba(22,17,14,.06) 75%);
}
.hero-content { position:relative; z-index:2; width:var(--shell); margin:auto; padding:64px 0; }
.hero-card {
  max-width: 620px; color:#fff;
  text-shadow: 0 2px 16px rgba(0,0,0,.24);
}
.hero-om { width: 88px; filter: drop-shadow(0 4px 14px rgba(0,0,0,.16)); margin-bottom: 20px; }
.eyebrow, .section-kicker {
  margin:0 0 12px; font-size:.78rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.13em; color:var(--red);
}
.hero .eyebrow { color:#fff; opacity:.92; }
.hero h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.7rem, 8vw, 7.2rem);
  line-height: .9; letter-spacing:-.045em; font-weight:400; margin:0;
}
.hero-lead { font-size:clamp(1.08rem,2vw,1.38rem); max-width:560px; margin:26px 0 28px; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }

.button {
  min-height:48px; padding:12px 22px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; border:1px solid transparent; font-weight:700; cursor:pointer; transition:.2s ease;
}
.button-red { background:var(--red); color:#fff; box-shadow:0 10px 26px rgba(229,26,22,.22); }
.button-red:hover { background:var(--red-dark); transform:translateY(-1px); }
.button-light { background:rgba(255,255,255,.94); color:#27211d; }
.button-light:hover { background:#fff; transform:translateY(-1px); }
.button-wide { width:100%; }

section { padding: 92px 0; }
.section-intro { max-width: 760px; margin-bottom: 44px; }
.section-intro.centered { text-align:center; margin-inline:auto; }
.section-intro.compact { margin-bottom:32px; }
.section-intro h2, .intro-copy h2, .about-copy h2, .contact-copy h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight:400; font-size:clamp(2.2rem,4.5vw,4rem); line-height:1.04;
  letter-spacing:-.03em; margin:0 0 16px;
}
.section-intro p, .split-heading > p { color:var(--muted); font-size:1.06rem; }
.split-heading { max-width:none; display:grid; grid-template-columns:1fr minmax(260px,420px); align-items:end; gap:40px; }
.split-heading > p { margin:0 0 10px; }

.schedule-section { background: #fff; }
.flyer-layout {
  display:grid; grid-template-columns:minmax(0, .94fr) minmax(360px, .66fr);
  gap:44px; align-items:center;
}
.flyer-card {
  background:#fff; padding:18px; border:1px solid var(--line);
  box-shadow:var(--shadow); border-radius:14px;
}
.flyer-card img { width:100%; height:auto; border-radius:4px; }
.schedule-copy {
  border-top: 6px solid var(--red); padding: 32px 0 0;
}
.schedule-top { display:flex; align-items:center; gap:14px; color:#246c9a; font-weight:700; }
.schedule-om { width:54px; }
.schedule-copy h3 {
  font-family: Georgia, "Times New Roman", serif;
  color:var(--red); font-weight:400; font-size:clamp(2.5rem,5vw,4.6rem); line-height:.98; margin:18px 0 8px;
}
.units { font-size:1.12rem; margin:0 0 28px; color:#333; }
.date-block { padding:24px 0; border-top:1px solid var(--line); display:grid; gap:4px; }
.date-block strong { color:var(--red); font-size:1.18rem; }
.date-block span { color:#4e4843; }
.date-block b { font-size:1.18rem; margin-top:4px; }
.schedule-contact { border-top:1px solid var(--line); padding-top:26px; }
.schedule-contact p { margin:0 0 20px; }
.schedule-contact strong { color:var(--red); font-size:1.22rem; }
.schedule-contact a:not(.button):hover { color:var(--red); text-decoration:underline; }

.intro-section { background: var(--soft); }
.intro-grid { display:grid; grid-template-columns:minmax(0,.82fr) minmax(380px,1.18fr); gap:60px; align-items:center; }
.large-copy { font-size:1.16rem; line-height:1.75; color:#37312d; }
.quick-points { display:flex; flex-wrap:wrap; gap:9px; margin-top:28px; }
.quick-points span { background:#fff; border:1px solid var(--line); padding:8px 13px; border-radius:999px; font-size:.9rem; }
.intro-image {
  margin:0; background:#fff; border:1px solid var(--line); padding:12px;
  box-shadow:var(--shadow); border-radius:18px; overflow:hidden;
}
.intro-image img { border-radius:10px; }

.gallery-section { overflow:hidden; }
.slider { position:relative; }
.slider-viewport { overflow:hidden; border-radius:20px; background:#ece7e1; box-shadow:var(--shadow); }
.slider-track { display:flex; transition:transform .55s cubic-bezier(.22,.7,.2,1); }
.slide { min-width:100%; margin:0; position:relative; background:#ddd; }
.slide img { width:100%; height:clamp(360px,56vw,690px); object-fit:cover; }
.slide figcaption {
  position:absolute; left:22px; right:22px; bottom:22px; max-width:max-content;
  color:#fff; background:rgba(24,19,16,.72); backdrop-filter:blur(8px);
  padding:11px 16px; border-radius:999px; font-size:.92rem;
}
.slider-arrow {
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:50px; height:50px; border-radius:50%; border:0;
  background:rgba(255,255,255,.92); color:#111; font-size:2rem; line-height:1; cursor:pointer;
  box-shadow:0 6px 20px rgba(0,0,0,.14);
}
.slider-arrow:hover { background:#fff; }
.slider-arrow.prev { left:18px; }
.slider-arrow.next { right:18px; }
.slider-dots { display:flex; gap:8px; justify-content:center; margin-top:18px; }
.slider-dots button { width:9px; height:9px; border:0; padding:0; border-radius:50%; background:#c9c1b8; cursor:pointer; }
.slider-dots button.active { background:var(--red); transform:scale(1.22); }

.about-section { background:#fff; }
.about-grid { display:grid; grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr); gap:72px; align-items:center; }
.portrait-frame {
  margin:0; border-radius:var(--radius); overflow:hidden; background:#eee;
  box-shadow:var(--shadow); position:relative;
}
.portrait-frame:after {
  content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(0,0,0,.05);
}
.portrait-frame img { width:100%; aspect-ratio:3/4; object-fit:cover; }
.about-card {
  margin-top:30px; padding:20px; border:1px solid var(--line); border-radius:18px;
  display:flex; align-items:center; gap:18px; background:var(--soft);
}
.about-om { width:68px; flex:0 0 auto; }
.about-card div { display:grid; }
.about-card strong { font-family:Georgia,"Times New Roman",serif; font-size:1.3rem; font-weight:400; }
.about-card span { color:var(--muted); font-size:.9rem; }
.about-card a { color:var(--red); font-size:.9rem; margin-top:4px; }

.locations-section { background:#f6f2ed; padding-top:72px; padding-bottom:72px; }
.location-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.location-grid article {
  min-height:150px; padding:24px; display:flex; flex-direction:column; justify-content:flex-end;
  border-radius:18px; background:#fff; border:1px solid var(--line);
}
.location-grid strong { font-family:Georgia,"Times New Roman",serif; font-size:1.32rem; font-weight:400; }
.location-grid span { color:var(--muted); font-size:.88rem; margin-top:5px; }

.contact-section { background:#24201d; color:#fff; }
.contact-grid { display:grid; grid-template-columns:.76fr 1.24fr; gap:72px; align-items:start; }
.light-kicker { color:#ff6c66; }
.contact-copy p { color:#d5cdc7; font-size:1.05rem; max-width:520px; }
.contact-direct { display:grid; gap:6px; margin-top:28px; }
.contact-direct a { font-size:1.15rem; }
.contact-direct a:hover { color:#ff6c66; }
.contact-form {
  background:#fff; color:#221e1b; padding:30px; border-radius:22px;
}
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form label { display:grid; gap:8px; margin-bottom:16px; }
.contact-form label > span:first-child { font-size:.84rem; font-weight:700; }
.contact-form input, .contact-form select, .contact-form textarea {
  width:100%; border:1px solid #d9d1ca; border-radius:12px; padding:13px 14px; background:#fff; color:#222;
  outline:none; transition:.18s ease;
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus {
  border-color:var(--red); box-shadow:0 0 0 3px rgba(229,26,22,.10);
}
.consent { display:flex !important; grid-template-columns:auto 1fr; align-items:flex-start; gap:10px !important; }
.consent input { width:18px; height:18px; margin-top:3px; }
.consent span { font-weight:400 !important; color:#5d5550; }
.form-note { font-size:.78rem; color:#7c746e; margin:13px 0 0; }

.site-footer { background:#181512; color:#fff; border-top:1px solid rgba(255,255,255,.08); }
.footer-inner { min-height:116px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.footer-brand { display:flex; align-items:center; gap:12px; }
.footer-om { width:46px; }
.footer-brand div { display:grid; }
.footer-brand strong { font-family:Georgia,"Times New Roman",serif; font-weight:400; font-size:1.1rem; }
.footer-brand span { color:#a9a19b; font-size:.78rem; }
.footer-links { display:flex; gap:20px; flex-wrap:wrap; font-size:.84rem; color:#c5beb8; }
.footer-links a:hover { color:#fff; }

@media (max-width: 980px) {
  :root { --shell: min(100% - 30px, 900px); }
  .main-nav {
    position:fixed; top:82px; right:15px; left:15px; display:none; flex-direction:column;
    align-items:stretch; gap:0; background:#fff; padding:12px; border:1px solid var(--line);
    border-radius:16px; box-shadow:var(--shadow);
  }
  .main-nav.open { display:flex; }
  .main-nav a { padding:13px 14px; border-radius:10px; }
  .nav-cta { margin-top:6px; text-align:center; }
  .menu-toggle { display:block; }
  .flyer-layout, .intro-grid, .about-grid, .contact-grid { grid-template-columns:1fr; }
  .flyer-layout { gap:32px; }
  .schedule-copy { max-width:720px; margin:auto; width:100%; }
  .intro-grid, .about-grid, .contact-grid { gap:40px; }
  .intro-image { order:-1; }
  .portrait-frame { max-width:620px; margin:auto; }
  .split-heading { grid-template-columns:1fr; gap:8px; }
  .location-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 640px) {
  :root { --shell: calc(100% - 24px); }
  .header-inner { min-height:72px; }
  .main-nav { top:72px; }
  .brand-om { width:42px; height:42px; }
  .brand-copy strong { font-size:1.12rem; }
  .brand-copy small { display:none; }
  .hero { min-height:650px; align-items:end; }
  .hero-shade {
    background:linear-gradient(0deg, rgba(20,15,12,.76) 0%, rgba(20,15,12,.3) 55%, rgba(20,15,12,.08) 100%);
  }
  .hero-content { padding:90px 0 44px; }
  .hero-om { width:70px; }
  .hero h1 { font-size:clamp(3.6rem,19vw,5.3rem); }
  .hero-lead { font-size:1.04rem; line-height:1.55; }
  .hero-actions { display:grid; grid-template-columns:1fr; }
  .button { width:100%; }
  section { padding:68px 0; }
  .section-intro { margin-bottom:30px; }
  .flyer-card { padding:8px; border-radius:10px; }
  .schedule-copy h3 { font-size:2.75rem; }
  .date-block { padding:20px 0; }
  .intro-grid { gap:30px; }
  .quick-points { gap:7px; }
  .quick-points span { font-size:.82rem; }
  .slide img { height:64vw; min-height:290px; }
  .slide figcaption { left:12px; right:12px; bottom:12px; max-width:calc(100% - 24px); font-size:.82rem; border-radius:12px; }
  .slider-arrow { width:42px; height:42px; font-size:1.7rem; }
  .slider-arrow.prev { left:8px; }
  .slider-arrow.next { right:8px; }
  .location-grid { grid-template-columns:1fr; }
  .field-row { grid-template-columns:1fr; gap:0; }
  .contact-form { padding:20px; }
  .footer-inner { padding:28px 0; align-items:flex-start; flex-direction:column; }
}

.single-location {
  grid-template-columns: minmax(280px, 520px);
  justify-content: center;
}
.single-location article {
  text-align: center;
  justify-content: center;
}


/* =========================================================
   Rechtliche Unterseiten
   ========================================================= */
.legal-header{position:sticky;top:0;z-index:100;background:rgba(255,253,250,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.legal-header-inner{width:var(--shell);min-height:76px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}
.legal-brand{display:inline-flex;align-items:center;gap:12px}
.legal-brand img{width:44px;height:44px;object-fit:contain}
.legal-brand strong{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:1.2rem}
.legal-back{color:var(--red);font-weight:700;font-size:.9rem}
.legal-hero{padding:68px 0 28px;background:linear-gradient(180deg,#f7f2ed 0%,#fffdfa 100%)}
.legal-hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(2.8rem,7vw,5.7rem);line-height:.98;letter-spacing:-.035em;margin:0 0 16px}
.legal-hero p{max-width:760px;color:var(--muted);font-size:1.04rem}
.legal-content{padding:42px 0 90px}
.legal-layout{width:min(920px,calc(100% - 40px));margin-inline:auto}
.legal-section{padding:28px 0;border-bottom:1px solid var(--line)}
.legal-section:last-child{border-bottom:0}
.legal-section h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.7rem,3vw,2.45rem);font-weight:400;line-height:1.1;margin:0 0 15px}
.legal-section h3{font-size:1.04rem;margin:22px 0 8px}
.legal-section p,.legal-section li{color:#4d4742}
.legal-section a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.legal-list{padding-left:1.2rem}
.legal-box{margin:22px 0;padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}
.legal-box.ai-box{border-left:5px solid var(--red)}
.legal-meta{font-size:.86rem;color:var(--muted)}
.legal-footer{background:#181512;color:#fff;padding:34px 0}
.legal-footer-inner{width:var(--shell);margin-inline:auto;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.legal-footer-links{display:flex;gap:18px;flex-wrap:wrap;color:#c9c1bb;font-size:.85rem}
.legal-footer-links a:hover{color:#fff}
.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.status-page{min-height:75vh;display:grid;place-items:center;text-align:center}
.status-card{width:min(680px,calc(100% - 28px));margin-inline:auto}
.status-card img{width:86px;margin:0 auto 20px}
.status-card h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(2.5rem,7vw,4.8rem);line-height:1;margin:0 0 18px}
.status-card p{color:var(--muted)}
@media(max-width:640px){.legal-layout{width:calc(100% - 24px)}.legal-header-inner{min-height:68px}.legal-back{font-size:0}.legal-back::after{content:"Zurück";font-size:.86rem}.legal-hero{padding-top:48px}}

.consent a{color:var(--red);text-decoration:underline;text-underline-offset:2px}


/* WordPress integration */
body.admin-bar .site-header{top:32px}
.wp-site-blocks{padding:0}
.term-status{display:inline-flex;margin-top:8px;padding:5px 10px;border-radius:999px;background:#f5f1ec;color:#6c6661;font-size:.78rem;font-weight:700}
.term-status.status-ausgebucht,.term-status.status-abgesagt{background:#fff0ef;color:#a51612}
.term-status.status-geaendert{background:#fff7df;color:#815d00}
.notice-inline{margin:0 0 22px;padding:14px 16px;border-radius:12px;background:#f2f8f3;color:#276235;border:1px solid #cfe4d3}
.notice-inline.error{background:#fff1f0;color:#9c211c;border-color:#efcfcc}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.legal-page .site-header{position:sticky}
.wp-legal-content{width:min(920px,calc(100% - 40px));margin-inline:auto;padding:70px 0 90px}
.wp-legal-content h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.8rem,7vw,5.4rem);font-weight:400;line-height:1;margin:0 0 28px}
.wp-legal-content h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.65rem,3vw,2.35rem);font-weight:400;line-height:1.15;margin:34px 0 12px}
.wp-legal-content p,.wp-legal-content li{color:#4d4742}
.wp-legal-content a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.wp-legal-box{margin:20px 0;padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}
.wp-legal-box.ai-box{border-left:5px solid var(--red)}
@media(max-width:782px){body.admin-bar .site-header{top:46px}}
@media(max-width:640px){.wp-legal-content{width:calc(100% - 24px);padding-top:50px}}
