/* AK-LOEWEN donor transplant: Coaches + Pricing only.
 * Deliberately scoped to #trainer and #preise; original rendering/data remains dynamic.
 */
#trainer,#preise{position:relative;overflow:clip}
#trainer>.wrap,#preise>.wrap{position:relative}
#trainer>.wrap::before,#preise>.wrap::before{position:absolute;left:clamp(22px,5vw,64px);top:-54px;font:800 11px/1 var(--body);letter-spacing:.22em;color:var(--accent)}
#trainer>.wrap::before{content:"03 / PEOPLE"}
#preise>.wrap::before{content:"05 / MEMBERSHIP"}
#trainer .section-head,#preise .section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.32fr);gap:30px;align-items:end;margin-bottom:46px}
#trainer .section-head h2,#preise .section-head h2{font-size:clamp(54px,7.7vw,120px);line-height:.78;letter-spacing:-.065em;text-transform:uppercase;max-width:8ch}
#trainer .section-head::after,#preise .section-head::after{content:"SCROLL / EXPLORE";justify-self:end;font:700 10px/1.4 var(--body);letter-spacing:.18em;color:var(--ink-3);border-bottom:1px solid var(--line);padding-bottom:10px}
#trainer{background:linear-gradient(180deg,#0a0a0b 0,#141213 45%,#0a0a0b 100%)}
#trainer .grid-2{gap:clamp(28px,5vw,72px);align-items:start;border:0;overflow:clip}
#trainer .trainer-card{display:block;border:0;background:transparent;position:relative;padding:0;gap:0}
#trainer .trainer-card:nth-child(even){margin-top:150px}
#trainer .trainer-card::after{content:"";position:absolute;inset:18px -16px auto auto;width:96px;height:96px;border:1px solid #ffffff20;border-radius:50%;z-index:3}
#trainer .trainer-image{border-radius:32px;aspect-ratio:4/5;background:#1b1b1e;overflow:hidden;position:relative}
#trainer .trainer-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(.12) contrast(1.08);opacity:1}
#trainer .trainer-image.is-portrait img{object-position:50% 18%;filter:none}
#trainer .trainer-image.is-illustration figcaption{position:absolute;z-index:1;left:0;right:0;bottom:0;background:linear-gradient(transparent,#0f0f11);font-size:10px;line-height:1.5;padding:24px 12px 12px;color:#fff}
#trainer .trainer-copy{position:relative;margin:-76px 22px 0;padding:26px 28px;background:rgba(12,12,14,.88);border:1px solid #ffffff18;border-radius:22px;backdrop-filter:blur(16px);z-index:2}
#trainer .trainer-copy h3{font-size:clamp(34px,4vw,54px)}
#trainer .trainer-copy .trainer-role{margin-top:8px}
#trainer .trainer-copy .trainer-approach{border-top-color:#ffffff18}
#preise{background:#f0ede5;color:#121214}
#preise p,#preise .micro,#preise .section-head::after{color:#55545a}
#preise .section-head h2{color:#121214}
#preise .price-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid #171719}
#preise .price-card{min-height:360px;border:0;border-right:1px solid #171719;background:transparent;color:#121214;clip-path:none;padding:30px;display:flex;flex-direction:column;align-items:flex-start}
#preise .price-card:last-child{border-right:0}
#preise .price-card.b{background:#0b3967;color:#fff}
#preise .price-card h3{font-size:clamp(28px,3vw,44px);margin:0 0 auto}
#preise .price-card .amount{font-size:clamp(72px,8vw,126px);line-height:.7;color:inherit;letter-spacing:-.08em}
#preise .price-card .amount span{font-size:inherit;margin-left:0}
#preise .price-card p:not(.amount){color:inherit;opacity:.72}
#preise .price-card .tlink{margin-top:28px;color:inherit;border-color:currentColor}
#preise .trial-line{border:1px solid #171719;border-top:0;margin:0;padding:16px 20px;color:#121214;background:#e85a22;font-weight:800}
@media(prefers-reduced-motion:no-preference){
 @supports(animation-timeline:view()){
  #trainer .trainer-card:nth-child(odd){animation:ak-donor-poster-a linear both;animation-timeline:view();animation-range:entry 0% cover 42%}
  #trainer .trainer-card:nth-child(even){animation:ak-donor-poster-b linear both;animation-timeline:view();animation-range:entry 0% cover 42%}
 }
}
@keyframes ak-donor-poster-a{from{transform:translate3d(-18px,0,0) rotate(-2deg) scale(.985);filter:blur(5px);opacity:.25}to{transform:none;filter:blur(0);opacity:1}}
@keyframes ak-donor-poster-b{from{transform:translate3d(18px,0,0) rotate(2deg) scale(.985);filter:blur(5px);opacity:.25}to{transform:none;filter:blur(0);opacity:1}}
@media(max-width:1000px){
 #preise .price-list{grid-template-columns:1fr}
 #preise .price-card{border-right:0!important;border-bottom:1px solid #171719;min-height:280px}
 #preise .price-card:last-child{border-bottom:0}
}
@media(max-width:760px){
 #trainer .section-head,#preise .section-head{grid-template-columns:1fr}
 #trainer .section-head::after,#preise .section-head::after{display:none}
 #trainer .section-head h2,#preise .section-head h2{font-size:clamp(50px,16vw,82px)}
 #trainer .grid-2{grid-template-columns:1fr}
 #trainer .trainer-card:nth-child(even){margin-top:30px}
 #trainer .trainer-image{border-radius:24px}
 #trainer .trainer-copy{margin:-54px 12px 0;padding:22px}
}
@media(prefers-reduced-motion:reduce){
 #trainer .trainer-card{animation:none!important;transform:none!important}
 #preise .price-card{transform:none!important}
}
[data-theme="light"] #trainer{background:linear-gradient(#f1efe9,#e6e1da,#f1efe9)}
[data-theme="light"] #trainer .trainer-copy{background:#f7f5efdd}

/* Stage 2 · rounded surfaces and three distinct entrance choreographies.
 * Only the requested cards, Anar's portrait and the membership footer are scoped here.
 * The static state is always visible; motion never gates content or controls.
 */

/* Match the trainers' 32px image corners and layered, softly lit panels. */
#kampfsport .polish-card,
#first-visit .polish-card,
#kontakt .polish-card {
  --card-rgb: 232, 90, 34;
  position: relative;
  isolation: isolate;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 32px;
  background: linear-gradient(145deg, #ffffff07, #ffffff00 55%), var(--surface);
  box-shadow: inset 0 1px 0 #ffffff08, 0 18px 48px #0000001f;
  transition: transform .48s cubic-bezier(.16,1,.3,1), border-color .35s ease, box-shadow .4s ease;
}
#kampfsport .discipline {
  overflow: hidden;
  align-self: stretch;
}
#kampfsport .disciplines {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 24px;
}
#kampfsport .discipline > summary {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 360px;
  height: 100%;
  padding: clamp(24px,3vw,34px);
  border-radius: inherit;
  background: transparent;
}
#kampfsport .discipline summary > p {
  min-height: 0;
  margin-bottom: 28px;
}
#kampfsport .discipline-meta {
  width: 100%;
  margin-top: auto;
  padding-top: 24px;
}
#kampfsport .discipline[open] > summary { min-height: 0; height: auto; }
#kampfsport .discipline > summary:focus-visible { outline-offset: -7px; }
#kampfsport .detail-content { background: color-mix(in srgb,var(--surface-2) 82%,transparent); }
#kampfsport .plus {
  display: inline-grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  line-height: 1;
  border: 1px solid rgba(var(--card-rgb),.32);
  border-radius: 50%;
  transition: transform .42s cubic-bezier(.16,1,.3,1), background .3s ease;
}

/* Decorations live in the render tree, so language morphing retains the same nodes. */
.polish-fx {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none;
  user-select: none;
}
#kampfsport .discipline summary > :not(.polish-fx),
#first-visit .polish-card > :not(.polish-fx),
#kontakt .polish-card > :not(.polish-fx) { position: relative; z-index: 1; }
.polish-fx::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(320px circle at var(--pointer-x,72%) var(--pointer-y,12%),rgba(var(--card-rgb),.15),transparent 72%);
  opacity: .35;
  transition: opacity .4s ease;
}
.polish-fx::after {
  content: "";
  position: absolute;
  left: 32px;
  right: 32px;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg,transparent,rgba(var(--card-rgb),.95),transparent);
  opacity: .72;
}
.polish-sheen {
  position: absolute;
  top: -45%;
  left: -65%;
  width: 45%;
  height: 190%;
  background: linear-gradient(90deg,transparent,rgba(var(--card-rgb),.13),#ffffff14,transparent);
  transform: translateX(-40%) rotate(24deg);
  opacity: 0;
}
.polish-ring {
  position: absolute;
  right: -42px;
  top: -48px;
  width: 168px;
  height: 168px;
  border: 1px solid rgba(var(--card-rgb),.22);
  border-radius: 50%;
  opacity: .65;
}
.polish-trace {
  position: absolute;
  left: 32px;
  right: 32px;
  bottom: 0;
  height: 1px;
  transform-origin: left center;
  background: linear-gradient(90deg,transparent,rgba(var(--card-rgb),.65),transparent);
  opacity: .6;
}

/* 01 · IMPACT: opposing 3D entrances and a diagonal orange light sweep. */
#kampfsport .polish-ring {
  box-shadow: 0 0 0 22px rgba(var(--card-rgb),.035), 0 0 0 44px rgba(var(--card-rgb),.018);
}
#kampfsport .discipline .details-label { transition: color .3s ease; }
#kampfsport .discipline:focus-within .details-label { color: var(--accent); }

/* 02 · STEPS: staggered rising panels, numbered medallions and drawing paths. */
#first-visit .first-visit-steps { gap: 24px; }
#first-visit .first-visit-steps > li { padding: clamp(24px,3vw,32px); }
#first-visit .first-visit-number {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-bottom: 26px;
  border: 1px solid rgba(var(--card-rgb),.4);
  border-radius: 50%;
  background: rgba(var(--card-rgb),.075);
  box-shadow: inset 0 0 18px rgba(var(--card-rgb),.045);
  font-size: 12px;
  letter-spacing: .08em;
}
#first-visit .polish-trace {
  left: 96px;
  right: 32px;
  top: 55px;
  bottom: auto;
  background: linear-gradient(90deg,rgba(var(--card-rgb),.62),rgba(var(--card-rgb),.04));
}
#first-visit .polish-ring {
  width: 220px;
  height: 220px;
  right: -150px;
  top: auto;
  bottom: -150px;
  border-color: rgba(var(--card-rgb),.25);
  box-shadow: 0 0 0 28px rgba(var(--card-rgb),.035), 0 0 0 56px rgba(var(--card-rgb),.018);
}

/* 03 · SIGNAL: paired contact panels, expanding orbits and cascading contact rows. */
#kontakt .grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
#kontakt .contact-card { padding: clamp(24px,3vw,34px); }
#kontakt .contact-card.b {
  --card-rgb: 244, 204, 70;
  background: linear-gradient(145deg,#174b772b,transparent 62%), var(--b-bg);
  border-color: #f4cc4638;
}
#kontakt .polish-ring {
  width: 234px;
  height: 234px;
  right: -130px;
  top: -118px;
  border-color: rgba(var(--card-rgb),.36);
  box-shadow: 0 0 0 24px rgba(var(--card-rgb),.05), 0 0 0 48px rgba(var(--card-rgb),.025);
}
#kontakt .polish-trace { left: 34px; right: 34px; bottom: 20px; opacity: .4; }
#kontakt .contact-logo { border-radius: 12px; }
#kontakt .contact-link { border-top-color: color-mix(in srgb,var(--line) 82%,transparent); }
#kontakt .contact-card.b .contact-link { border-top-color: #ffffff1f; }
#kontakt .contact-link strong { transition: transform .3s cubic-bezier(.16,1,.3,1), color .3s ease; }
#kontakt .contact-card.b .btn { border-radius: 14px; clip-path: none; }
#kontakt .contact-card.b .tlink { line-height: 1.6; }

/* The orange bar spans the complete pricing grid, not the global 65ch p limit. */
#preise .trial-line {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 18px 24px;
  background: #e85a22;
  color: #121214;
  text-align: center;
  text-wrap: balance;
  line-height: 1.6;
}
/* Preserve the supplied full portrait, with no old placeholder caption. */
#trainer [data-trainer="anar"] .trainer-image img { object-position: 50% 18%; }
#trainer .trainer-image picture { width: 100%; height: 100%; }

@media (hover:hover) and (pointer:fine) {
  #kampfsport .polish-card:hover,
  #first-visit .polish-card:hover,
  #kontakt .polish-card:hover {
    border-color: rgba(var(--card-rgb),.52);
    box-shadow: inset 0 1px 0 #ffffff0c, 0 24px 64px #00000030, 0 0 34px rgba(var(--card-rgb),.065);
  }
  .polish-card:hover .polish-fx::before { opacity: 1; }
  #kampfsport .discipline:hover .details-label { color: var(--accent); }
  #kampfsport .discipline:hover .plus { background: rgba(var(--card-rgb),.09); }
  #kontakt a.contact-link:hover strong { transform: translateX(5px); }
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  #kampfsport .polish-card:not([open]):hover,
  #first-visit .polish-card:hover,
  #kontakt .polish-card:hover {
    transform: perspective(1200px) translateY(-6px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg));
  }
}
/* Do not move cards underneath keyboard focus. */
#kampfsport .polish-card:focus-within,
#first-visit .polish-card:focus-within,
#kontakt .polish-card:focus-within { transform: none !important; }

[data-theme="light"] #kampfsport .polish-card,
[data-theme="light"] #first-visit .polish-card,
[data-theme="light"] #kontakt .contact-card:not(.b) {
  background: linear-gradient(145deg,#ffffff,#f8f5ef);
  border-color: #d5cfc5;
  box-shadow: inset 0 1px 0 #ffffff, 0 16px 42px #3022150d;
}
[data-theme="light"] .polish-fx::before { opacity: .22; }

@media (max-width:760px) {
  #kampfsport .polish-card,
  #first-visit .polish-card,
  #kontakt .polish-card { border-radius: 24px; }
  #kampfsport .disciplines,
  #kontakt .grid-2 { grid-template-columns: minmax(0,1fr); gap: 20px; }
  #kampfsport .discipline > summary { min-height: 0; padding: 26px 24px; }
  #kampfsport .discipline h3 { font-size: clamp(29px,7vw,36px); }
  #kampfsport .detail-content { padding: 24px; }
  #first-visit .first-visit-steps { gap: 20px; }
  #first-visit .polish-trace { left: 86px; right: 24px; top: 47px; }
  #kontakt .contact-card { padding: 26px 24px; }
  #preise .trial-line { padding: 17px 20px; font-size: 13px; }
}
@media (prefers-reduced-motion:reduce) {
  #kampfsport .polish-card,
  #first-visit .polish-card,
  #kontakt .polish-card,
  #kontakt .contact-link strong { transform: none !important; transition: none !important; }
  .polish-sheen { display: none; }
}

/* Membership follows the rounded dark surfaces used by nearby sections. */
#preise { background: transparent; color: var(--ink); }
#preise p, #preise .micro { color: var(--ink-2); }
#preise .section-head { display: block; margin-bottom: 24px; }
#preise .section-head::after { content: none; }
#preise .section-head h2 {
  max-width: 17ch;
  color: var(--ink);
  font-size: clamp(38px,4.2vw,58px);
  line-height: 1.08;
  letter-spacing: 0;
  text-transform: none;
}
#preise .section-intro { margin: 0 0 30px; }
#preise .price-list {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 20px;
  border: 0;
}
#preise .price-card {
  min-width: 0;
  min-height: 320px;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 18px 42px #00000020;
}
#preise .price-card:first-child {
  background: #9b3d1d;
  border-color: #f1783e;
  color: #fffaf4;
}
#preise .price-card:last-child {
  background: #9b3d1d;
  border-color: #f1783e;
  color: #fffaf4;
}
#preise .price-card.b {
  background: var(--b-bg);
  border-color: #f4cc4652;
  color: var(--b-ink);
}
#preise .price-card h3 { font-size: clamp(26px,2.5vw,34px); margin-bottom: 34px; }
#preise .price-card .amount {
  font-size: clamp(62px,6vw,84px);
  line-height: 1;
  letter-spacing: 0;
}
#preise .price-card .amount span { font-size: .48em; margin-left: 5px; }
#preise .price-card p:not(.amount) { opacity: 1; color: var(--ink-2); }
#preise .price-card:first-child p:not(.amount),
#preise .price-card:last-child p:not(.amount) { color: #ffe0c8; }
#preise .price-card.b p:not(.amount) { color: #d3e0ed; }
#preise .price-card .tlink { margin-top: auto; padding-top: 12px; color: inherit; border-color: var(--accent); }
#preise .price-card.b .tlink { border-color: var(--b-accent); }
#preise .trial-line {
  width: 100%;
  max-width: none;
  margin-top: 24px;
  padding: 12px 18px;
  border: 1px solid color-mix(in srgb,var(--accent) 45%,var(--line));
  border-radius: 12px;
  background: color-mix(in srgb,var(--accent) 12%,var(--surface));
  color: var(--ink);
  text-align: center;
  font-size: 13px;
  font-weight: 700;
}
@media(max-width:900px) {
  #preise .price-list { grid-template-columns: 1fr; }
  #preise .price-card { min-height: 0; padding: 26px; }
}
@media(max-width:540px) {
  #preise .section-head h2 { font-size: clamp(36px,10vw,48px); }
  #preise .price-list { gap: 14px; }
  #preise .price-card { border-radius: 20px; padding: 24px; }
  #preise .price-card h3 { margin-bottom: 20px; }
  #preise .price-card .amount { font-size: 68px; }
  #preise .trial-line { margin-top: 18px; }
}
[data-theme="light"] #preise { background: transparent; }
[data-theme="light"] #preise .price-card:not(.b) { color: #fff7f1; }
[data-theme="light"] #preise .price-card:first-child,
[data-theme="light"] #preise .price-card:last-child { background: #9b3d1d; }
[data-theme="light"] #preise .price-card:first-child p:not(.amount),
[data-theme="light"] #preise .price-card:last-child p:not(.amount) { color: #ffe0c8; }
[data-theme="light"] #preise .price-card.b p:not(.amount) { color: #d3e0ed; }
