/*
Theme Name: Balance MediBall
Theme URI: https://balancemediball.hu/
Author: Balance MediBall
Description: Egyedi, AI-barát WordPress block theme a Balance MediBall weboldalhoz.
Version: 0.2.6
Text Domain: balancemediball
Requires at least: 6.4
Requires PHP: 8.0
*/

:root {
  --bm-ink: #17324a;
  --bm-paper: #f6f1e8;
  --bm-white: #ffffff;
  --bm-red: #c74745;
  --bm-red-soft: #ead8d2;
  --bm-mist: #dce6e4;
  --bm-sand: #d7c6aa;
  --bm-muted: #60717e;
  --bm-wide-width: 1180px;
  --bm-serif: 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
  --bm-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bm-paper); color: var(--bm-ink); text-rendering: optimizeLegibility; }
body, button, input, textarea { font-family: var(--bm-sans); }

.bm-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid rgba(23,50,74,.08);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.bm-brand { display: inline-flex; align-items: center; gap: .85rem; color: var(--bm-ink); text-decoration: none; font-weight: 750; letter-spacing: -.02em; }
.bm-brand img { width: 60px; height: 60px; object-fit: contain; border-radius: 50%; }
.bm-brand span { font-size: 1.05rem; line-height: 1; }
.bm-header-actions { gap: 1rem; }
.bm-header-cta .wp-block-button__link { padding: .68rem 1.05rem; font-size: .9rem; white-space: nowrap; }
.bm-site-header .wp-block-navigation-item__content { text-decoration: none; font-size: .93rem; font-weight: 600; }

.bm-home-section { position: relative; overflow: hidden; }
.bm-section-inner { width: min(calc(100% - 3rem), var(--bm-wide-width)); margin-inline: auto; }
.bm-kicker { margin: 0 0 .8rem; color: var(--bm-red); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.bm-section-title { max-width: 820px; margin-top: 0; font-family: var(--bm-serif); font-size: clamp(2.25rem, 5vw, 4.7rem); font-weight: 500; line-height: 1.02; letter-spacing: -.04em; text-wrap: balance; }
.bm-section-lead { max-width: 720px; color: #42596a; font-size: clamp(1.05rem, 1.8vw, 1.28rem); }

.bm-hero-section {
  min-height: 760px;
  display: flex;
  align-items: center;
  padding: clamp(4rem, 8vw, 7rem) 0 clamp(5rem, 9vw, 8rem);
  background: radial-gradient(circle at 78% 22%, rgba(220,230,228,.85), transparent 30%), linear-gradient(180deg,#faf7f0 0%,var(--bm-paper) 100%);
}
.bm-hero-grid { width: min(calc(100% - 3rem), var(--bm-wide-width)); margin-inline: auto; gap: clamp(2rem,5vw,5rem); align-items: center; }
.bm-hero-copy { position: relative; z-index: 3; }
.bm-hero-title { margin: .3rem 0 1.25rem; font-family: var(--bm-serif); font-size: clamp(3.25rem, 6.8vw, 6.6rem); font-weight: 500; line-height: .92; letter-spacing: -.055em; text-wrap: balance; }
.bm-hero-lead { max-width: 650px; margin-bottom: 1.65rem; color: #40596c; font-size: clamp(1.1rem, 2vw, 1.35rem); line-height: 1.6; }
.bm-hero-note { margin-top: .85rem; color: var(--bm-muted); font-size: .92rem; }
.bm-hero-note strong { color: var(--bm-ink); }
.bm-primary-cta .wp-block-button__link { box-shadow: 0 14px 32px rgba(23,50,74,.16); transition: transform .2s ease, box-shadow .2s ease; }
.bm-primary-cta .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 18px 38px rgba(23,50,74,.22); }

/* A fő vizuális motívum: markáns, kalligrafikus ecsetívek. */
.bm-hero-art { position: relative; min-height: 590px; isolation: isolate; }
.bm-hero-art::before,
.bm-hero-art::after {
  content: '';
  position: absolute;
  z-index: 1;
  pointer-events: none;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  mix-blend-mode: multiply;
}
.bm-hero-art::before {
  width: 760px;
  height: 590px;
  top: -18px;
  left: 49%;
  transform: translateX(-54%) rotate(-7deg);
  background-image: url('assets/brush-arc-blue.svg');
  opacity: 1;
}
.bm-hero-art::after {
  width: 560px;
  height: 430px;
  top: 112px;
  left: 57%;
  transform: translateX(-37%) rotate(21deg);
  background-image: url('assets/brush-arc-red.svg');
  opacity: .72;
}
.bm-hero-photo { position: absolute; z-index: 2; width: min(370px,72%); left: 50%; top: 54px; transform: translateX(-50%); margin: 0; }
.bm-hero-photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: center top; border-radius: 48% 48% 44% 44% / 42% 42% 58% 58%; filter: saturate(.78) contrast(.98); box-shadow: 0 28px 70px rgba(23,50,74,.16); }
.bm-orbit-ball { position: absolute; z-index: 5; width: 28px; height: 28px; border-radius: 50%; background: var(--bm-red); top: 102px; right: 11%; box-shadow: 0 8px 20px rgba(199,71,69,.28); animation: bm-float 4.8s ease-in-out infinite; }
.bm-hero-word { position: absolute; z-index: 4; right: 2%; bottom: 68px; color: rgba(23,50,74,.54); font-family: var(--bm-serif); font-size: 1.15rem; line-height: 1.55; writing-mode: vertical-rl; letter-spacing: .12em; }

.bm-trust-strip { margin-top: -2.3rem; position: relative; z-index: 6; }
.bm-trust-grid { width: min(calc(100% - 3rem), 1020px); margin-inline: auto; padding: 1.15rem 1.35rem; background: rgba(255,255,255,.9); border: 1px solid rgba(23,50,74,.08); border-radius: 999px; box-shadow: 0 18px 55px rgba(23,50,74,.08); }
.bm-trust-grid .wp-block-column { margin: 0; padding: .35rem .75rem; text-align: center; border-right: 1px solid rgba(23,50,74,.08); }
.bm-trust-grid .wp-block-column:last-child { border-right: 0; }
.bm-trust-grid p { margin: 0; font-size: .88rem; font-weight: 700; }

.bm-flow-section { padding: clamp(6rem,10vw,9rem) 0; }
.bm-flow-section::before {
  content: '';
  position: absolute;
  z-index: 0;
  width: 760px;
  height: 500px;
  right: -255px;
  top: 20px;
  pointer-events: none;
  background: url('assets/brush-arc-blue.svg') center/contain no-repeat;
  opacity: .46;
  transform: rotate(16deg);
  mix-blend-mode: multiply;
}
.bm-flow-section .bm-section-inner { position: relative; z-index: 1; }
.bm-flow-card { margin-top: 2.5rem; padding: clamp(2rem,5vw,4rem); background: rgba(255,255,255,.68); border: 1px solid rgba(23,50,74,.08); border-radius: 56px 18px 56px 18px; box-shadow: 0 24px 80px rgba(23,50,74,.06); }
.bm-flow-scale { position: relative; display: flex; justify-content: space-between; gap: 1rem; margin: 2rem 0 1.1rem; padding-top: 1.25rem; font-family: var(--bm-serif); font-size: 1.2rem; }
.bm-flow-scale::before { content: ''; position: absolute; top: 0; left: 2%; right: 2%; height: 2px; background: linear-gradient(90deg, rgba(23,50,74,.2), var(--bm-red), rgba(23,50,74,.2)); }
.bm-flow-scale::after { content: ''; position: absolute; top: -8px; left: 51%; width: 18px; height: 18px; border-radius: 50%; background: var(--bm-red); box-shadow: 0 0 0 8px var(--bm-red-soft); }

.bm-video-section { padding: 0 0 clamp(6rem,9vw,8rem); }
.bm-video-frame { min-height: 410px; position: relative; display: grid; place-items: center; overflow: hidden; border-radius: 30px 80px 30px 80px; background: linear-gradient(135deg,#18364f,#284b63); color: white; box-shadow: 0 28px 70px rgba(23,50,74,.16); }
.bm-video-frame::before { content: ''; position: absolute; width: 650px; height: 440px; right: -170px; top: -45px; background: url('assets/brush-arc-blue.svg') center/contain no-repeat; opacity: .24; transform: rotate(12deg); }
.bm-video-placeholder { position: relative; z-index: 2; max-width: 520px; padding: 2rem; text-align: center; }
.bm-video-play { width: 72px; height: 72px; margin: 0 auto 1rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; font-size: 1.4rem; }

.bm-first-section { padding: clamp(6rem,9vw,8rem) 0; background: #fbf8f2; }
.bm-first-section::after {
  content: '';
  position: absolute;
  z-index: 0;
  width: 690px;
  height: 450px;
  left: -245px;
  bottom: -100px;
  pointer-events: none;
  background: url('assets/brush-arc-red.svg') center/contain no-repeat;
  opacity: .38;
  transform: rotate(-23deg);
  mix-blend-mode: multiply;
}
.bm-first-section .bm-section-inner { position: relative; z-index: 1; }
.bm-steps { margin-top: 2.5rem; gap: 1rem; }
.bm-step { height: 100%; padding: 1.5rem; border-top: 1px solid rgba(23,50,74,.14); }
.bm-step-number { margin-bottom: .55rem; color: var(--bm-red); font-family: var(--bm-serif); font-size: 2.2rem; }
.bm-step h3 { margin: .2rem 0 .55rem; font-family: var(--bm-serif); font-size: 1.5rem; font-weight: 500; }
.bm-step p { margin: 0; color: #536878; font-size: .96rem; }

.bm-start-section { padding: clamp(6rem,10vw,9rem) 0; }
.bm-start-section::before {
  content: '';
  position: absolute;
  z-index: 0;
  width: 640px;
  height: 420px;
  right: -210px;
  top: 20px;
  pointer-events: none;
  background: url('assets/brush-arc-blue.svg') center/contain no-repeat;
  opacity: .28;
  transform: rotate(150deg);
  mix-blend-mode: multiply;
}
.bm-start-section .bm-section-inner { position: relative; z-index: 1; }
.bm-start-card { position: relative; padding: clamp(2.2rem,6vw,5rem); overflow: hidden; border-radius: 18px 80px 18px 80px; background: var(--bm-mist); }
.bm-start-card::after { content: ''; position: absolute; right: -110px; bottom: -140px; width: 360px; height: 360px; background: url('assets/brush-arc-red.svg') center/contain no-repeat; opacity: .2; transform: rotate(18deg); }
.bm-start-card .wp-block-heading { max-width: 750px; font-size: clamp(2.4rem,5vw,4.5rem); }

.bm-benefits-section { padding: 0 0 clamp(6rem,9vw,8rem); }
.bm-benefits-section::after {
  content: '';
  position: absolute;
  z-index: 0;
  width: 620px;
  height: 400px;
  left: -250px;
  bottom: -105px;
  pointer-events: none;
  background: url('assets/brush-arc-blue.svg') center/contain no-repeat;
  opacity: .22;
  transform: rotate(-10deg);
  mix-blend-mode: multiply;
}
.bm-benefits-section .bm-section-inner { position: relative; z-index: 1; }
.bm-benefit-cloud { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.bm-benefit-chip { padding: .75rem 1rem; border: 1px solid rgba(23,50,74,.12); border-radius: 999px; background: rgba(255,255,255,.62); font-weight: 650; }

.bm-competition-section { padding: clamp(6rem,9vw,8rem) 0; background: var(--bm-ink); color: white; }
.bm-competition-section::before {
  content: '';
  position: absolute;
  z-index: 0;
  width: 820px;
  height: 520px;
  right: -260px;
  top: -150px;
  pointer-events: none;
  background: url('assets/brush-arc-red.svg') center/contain no-repeat;
  opacity: .58;
  transform: rotate(7deg);
}
.bm-competition-section .bm-kicker { color: #f09b96; }
.bm-competition-section .bm-section-lead { color: #d6e0e6; }
.bm-competition-card { position: relative; z-index: 1; overflow: hidden; }
.bm-competition-card::after { content: ''; position: absolute; right: 4%; top: 10%; width: 120px; height: 120px; border-radius: 50%; background: var(--bm-red); box-shadow: 0 0 0 42px rgba(199,71,69,.08), 0 0 0 86px rgba(199,71,69,.04); }

.bm-instructors-section { padding: clamp(6rem,9vw,8rem) 0; }
.bm-instructor-grid { gap: 1.25rem; margin-top: 2rem; }
.bm-instructor-card { height: 100%; padding: 1.8rem; background: rgba(255,255,255,.65); border: 1px solid rgba(23,50,74,.08); border-radius: 32px 12px 32px 12px; }
.bm-instructor-card h3 { margin-top: .25rem; font-family: var(--bm-serif); font-size: 1.7rem; font-weight: 500; }
.bm-instructor-role { color: var(--bm-red); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.bm-session-section { padding: clamp(6rem,9vw,8rem) 0; background: #fbf8f2; }
.bm-session-card { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(2rem,6vw,5rem); align-items: center; padding: clamp(2rem,5vw,4rem); background: white; border-radius: 60px 18px 60px 18px; box-shadow: 0 24px 70px rgba(23,50,74,.07); }
.bm-session-facts { display: grid; gap: .75rem; }
.bm-session-fact { padding-bottom: .75rem; border-bottom: 1px solid rgba(23,50,74,.09); }
.bm-session-fact strong { display: block; font-family: var(--bm-serif); font-size: 1.35rem; font-weight: 500; }

.bm-equipment-section { padding: clamp(6rem,9vw,8rem) 0; }
.bm-equipment-card { padding: clamp(2rem,5vw,4rem); border: 1px solid rgba(23,50,74,.09); border-radius: 18px 70px 18px 70px; background: linear-gradient(145deg,rgba(220,230,228,.55),rgba(255,255,255,.5)); }

.bm-faq-section { padding: 0 0 clamp(6rem,9vw,8rem); }
.bm-faq-section details { margin: 0 0 .75rem; padding: 1rem 0; border-bottom: 1px solid rgba(23,50,74,.12); }
.bm-faq-section summary { cursor: pointer; font-family: var(--bm-serif); font-size: 1.25rem; }
.bm-faq-section details p { color: #536878; }

.bm-final-cta { padding: clamp(6rem,10vw,9rem) 0; text-align: center; background: radial-gradient(circle at center,rgba(220,230,228,.75),transparent 52%); }
.bm-final-cta::before {
  content: '';
  position: absolute;
  z-index: 0;
  width: 760px;
  height: 500px;
  left: 50%;
  top: 50%;
  pointer-events: none;
  background: url('assets/brush-arc-blue.svg') center/contain no-repeat;
  opacity: .2;
  transform: translate(-50%,-49%) rotate(-13deg);
  mix-blend-mode: multiply;
}
.bm-final-cta .bm-section-inner { position: relative; z-index: 1; }
.bm-final-cta .bm-section-title, .bm-final-cta .bm-section-lead { margin-left: auto; margin-right: auto; }

.bm-site-footer { background: var(--bm-ink); color: white; }
.bm-site-footer a { color: white; }
.bm-footer-brand { font-family: var(--bm-serif); font-size: 1.6rem; }

@keyframes bm-float { 0%,100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(-12px,16px,0); } }

@media (max-width: 900px) {
  .bm-brand img { width: 54px; height: 54px; }
  .bm-header-cta { display: none; }
  .bm-hero-section { min-height: auto; padding-top: 3rem; }
  .bm-hero-art { min-height: 500px; }
  .bm-hero-art::before { width: 610px; height: 480px; left: 50%; }
  .bm-hero-art::after { width: 470px; height: 360px; top: 106px; }
  .bm-flow-section::before { width: 620px; right: -300px; opacity: .34; }
  .bm-first-section::after { width: 560px; left: -310px; opacity: .28; }
  .bm-start-section::before { right: -320px; opacity: .2; }
  .bm-benefits-section::after { left: -320px; opacity: .17; }
  .bm-competition-section::before { width: 670px; right: -350px; opacity: .42; }
  .bm-trust-grid { border-radius: 28px; }
  .bm-trust-grid .wp-block-columns { flex-wrap: wrap !important; }
  .bm-trust-grid .wp-block-column { flex-basis: 48% !important; border-right: 0; }
  .bm-session-card { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .bm-brand { gap: .65rem; }
  .bm-brand img { width: 50px; height: 50px; }
  .bm-brand span { font-size: .96rem; }
  .bm-section-inner, .bm-hero-grid { width: min(calc(100% - 2rem), var(--bm-wide-width)); }
  .bm-hero-title { font-size: clamp(3rem,15vw,4.4rem); }
  .bm-hero-art { min-height: 410px; }
  .bm-hero-art::before { width: 430px; height: 355px; top: 2px; left: 49%; opacity: .9; }
  .bm-hero-art::after { width: 330px; height: 265px; top: 90px; left: 55%; opacity: .62; }
  .bm-hero-photo { width: 220px; top: 48px; }
  .bm-orbit-ball { right: 5%; }
  .bm-hero-word { display: none; }
  .bm-flow-section::before { width: 430px; height: 300px; right: -260px; top: 15px; opacity: .22; }
  .bm-first-section::after { width: 420px; height: 290px; left: -265px; bottom: -55px; opacity: .2; }
  .bm-start-section::before { width: 430px; height: 290px; right: -275px; top: 30px; opacity: .16; }
  .bm-benefits-section::after { width: 400px; height: 280px; left: -270px; bottom: -60px; opacity: .13; }
  .bm-competition-section::before { width: 500px; height: 330px; right: -315px; top: -80px; opacity: .34; }
  .bm-final-cta::before { width: 480px; height: 320px; opacity: .14; }
  .bm-trust-grid .wp-block-column { flex-basis: 100% !important; }
  .bm-flow-card, .bm-start-card, .bm-session-card, .bm-equipment-card { border-radius: 28px 10px 28px 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
