/* =========================================================
   Ironline Boxstudio — Design Tokens
========================================================= */
:root{
  --bg: oklch(13% 0.006 260);
  --bg-elevated: oklch(18% 0.008 260);
  --bg-elevated-2: oklch(22% 0.01 260);
  --fg: oklch(96% 0.006 95);
  --fg-dim: oklch(72% 0.01 95);
  --fg-mute: oklch(52% 0.01 260);
  --accent: var(--accent-hex, #d7ff3f);
  --line: oklch(30% 0.01 260 / 0.5);
  --radius: 2px;
  --font-display: 'Anton', 'Bebas Neue', sans-serif;
  --font-body: 'Space Grotesk', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
  --ease-out: cubic-bezier(.16,1,.3,1);
  --ease-punch: cubic-bezier(.34,1.56,.64,1);
  --dur-fast: 150ms;
  --dur-base: 260ms;
  --container: 1360px;
  --edge: clamp(1.25rem, 4vw, 3.5rem);
}

/* =========================================================
   Reset / Base
========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,video,iframe{ max-width:100%; height:auto; display:block; }
svg{ max-width:100%; height:auto; }
.icon{ width:1.4em; height:1.4em; max-width:32px; max-height:32px; flex:0 0 auto; vertical-align:middle; }

a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,p,figure{ margin:0; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

.container{ max-width:var(--container); margin-inline:auto; padding-inline:var(--edge); }

::selection{ background:var(--accent); color:var(--bg); }

:focus-visible{ outline:3px solid var(--accent); outline-offset:3px; }

.skip-link{
  position:absolute; left:-999px; top:0; z-index:200;
  background:var(--accent); color:var(--bg); padding:.8rem 1.4rem; font-weight:700;
}
.skip-link:focus{ left:1rem; top:1rem; }

/* text-wrap for balanced headlines / readable paragraphs */
h1,h2,h3,.headline{ text-wrap:balance; }
p{ text-wrap:pretty; }

/* =========================================================
   Typography
========================================================= */
.kicker{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--font-mono); font-size:.8rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--accent);
}
.kicker::before{
  content:""; width:2rem; height:2px; background:var(--accent);
}

.h-display{
  font-family:var(--font-display);
  font-weight:400;
  text-transform:uppercase;
  line-height:.92;
  letter-spacing:.005em;
}

h2.section-title{
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:clamp(2.2rem, 6vw, 4.4rem);
  line-height:.95;
  margin-top:.5rem;
}

.text-accent{ color:var(--accent); }

.lede{
  font-size:clamp(1.05rem, 2vw, 1.3rem);
  color:var(--fg-dim);
  max-width:46ch;
}

/* =========================================================
   Buttons
========================================================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1rem 1.8rem;
  font-family:var(--font-body); font-weight:700; font-size:.95rem;
  text-transform:uppercase; letter-spacing:.04em;
  border-radius:var(--radius);
  border:2px solid var(--fg);
  color:var(--fg);
  min-height:44px;
  transition:transform var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
  will-change:transform;
}
.btn-accent{ background:var(--accent); border-color:var(--accent); color:var(--bg); }
.btn-accent:hover{ background:transparent; color:var(--accent); }
.btn:not(.btn-accent):hover{ background:var(--fg); color:var(--bg); }
.btn-lg{ padding:1.3rem 2.4rem; font-size:1.1rem; }

.btn-punch:active{ transform:scale(.94); }
@media (hover:hover){
  .btn-punch:hover{ transform:translateY(-2px); }
}

/* =========================================================
   Header
========================================================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:oklch(13% 0.006 260 / 0.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transition:padding var(--dur-base) var(--ease-out);
}
.header-inner{
  max-width:var(--container); margin-inline:auto; padding-inline:var(--edge);
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
  padding-block:1.4rem;
  transition:padding var(--dur-base) var(--ease-out);
}
.site-header.is-compact .header-inner{ padding-block:.7rem; }

.logo{ display:flex; flex-direction:column; line-height:1; }
.logo-word{
  font-family:var(--font-display); font-size:1.7rem; text-transform:uppercase;
  transition:font-size var(--dur-base) var(--ease-out);
}
.site-header.is-compact .logo-word{ font-size:1.35rem; }
.logo-accent{ color:var(--accent); }
.logo-sub{ font-family:var(--font-mono); font-size:.6rem; letter-spacing:.22em; color:var(--fg-mute); margin-top:.15rem; }

.primary-nav-list{ display:flex; align-items:center; gap:clamp(1.2rem,2vw,2.4rem); }
.primary-nav-list a{
  font-size:.92rem; font-weight:500; text-transform:uppercase; letter-spacing:.04em;
  position:relative; padding-block:.3rem;
}
.primary-nav-list a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--accent);
  transition:right var(--dur-base) var(--ease-out);
}
.primary-nav-list a:hover::after{ right:0; }

.header-actions{ display:flex; align-items:center; gap:1.2rem; }
.header-cta{ padding:.75rem 1.4rem; font-size:.85rem; }

.burger{ display:none; padding:.4rem; }

@media (max-width: 900px){
  .primary-nav{ display:none; }
  .header-cta{ display:none; }
  .burger{ display:block; }
}

.mobile-drawer{
  position:fixed; top:0; right:0; height:100vh; width:min(88vw, 380px);
  background:var(--bg-elevated); border-left:1px solid var(--line);
  transform:translateX(100%); transition:transform var(--dur-base) var(--ease-out);
  z-index:110; padding:6.5rem 2rem 2rem;
  display:flex; flex-direction:column; gap:2rem;
}
.mobile-drawer.is-open{ transform:translateX(0); }
.mobile-nav-list{ display:flex; flex-direction:column; gap:1.4rem; }
.mobile-nav-list a{ font-family:var(--font-display); font-size:1.6rem; text-transform:uppercase; }
.drawer-phone{ font-family:var(--font-mono); color:var(--accent); font-size:1.1rem; }

.drawer-overlay{
  position:fixed; inset:0; background:oklch(0% 0 0 / .55);
  opacity:0; pointer-events:none; transition:opacity var(--dur-base) var(--ease-out); z-index:105;
}
.drawer-overlay.is-open{ opacity:1; pointer-events:auto; }

/* =========================================================
   Marquee Ticker Band (signature element)
========================================================= */
.ticker{
  background:var(--accent); color:var(--bg);
  overflow:hidden; white-space:nowrap;
  transform:skewY(-1.4deg);
  margin-block: clamp(-1.5rem, -3vw, -2.4rem) 0;
  position:relative; z-index:5;
}
.ticker-track{
  display:inline-flex; gap:3rem;
  padding-block:.75rem;
  animation:ticker-scroll 26s linear infinite;
  transform:skewY(1.4deg);
}
.ticker-track span{
  font-family:var(--font-mono); font-weight:700; text-transform:uppercase; letter-spacing:.08em; font-size:.95rem;
  display:inline-flex; align-items:center; gap:1rem;
}
.ticker-track span::after{ content:"●"; font-size:.5rem; opacity:.6; }
@keyframes ticker-scroll{ from{ transform:skewY(1.4deg) translateX(0); } to{ transform:skewY(1.4deg) translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .ticker-track{ animation:none; } }

/* =========================================================
   Hero
========================================================= */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  overflow:hidden; padding-bottom:clamp(3rem,8vw,6rem);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4vw), 0 100%);
}
.hero-slides{ position:absolute; inset:0; z-index:0; }
.hero-slide{
  position:absolute; inset:0; opacity:0; transition:opacity 1.1s var(--ease-out);
}
.hero-slide.is-active{ opacity:1; }
.hero-slide img{
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(1) contrast(1.15) brightness(1.35);
  transform:scale(1.08) translateY(var(--parallax-y, 0px));
}
.hero-slide::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, oklch(13% 0.006 260 / .1) 0%, oklch(13% 0.006 260 / .45) 60%, var(--bg) 100%);
}
.hero-slide::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, var(--accent) 0%, transparent 40%);
  opacity:.14; mix-blend-mode:color-dodge;
}

.hero-content{ position:relative; z-index:2; max-width:var(--container); margin-inline:auto; padding-inline:var(--edge); width:100%; }
.hero-eyebrow{ margin-bottom:1rem; }
.hero-title{
  font-size:clamp(3.6rem, 12vw, 9.5rem);
}
.hero-title .line{ display:block; }
.hero-sub{ margin-top:1.6rem; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:1.2rem; margin-top:2.4rem; }

.hero-dots{ position:absolute; right:var(--edge); bottom:clamp(3rem,8vw,6rem); z-index:3; display:flex; gap:.6rem; }
.hero-dots button{ width:10px; height:10px; border-radius:50%; border:1px solid var(--fg-mute); }
.hero-dots button.is-active{ background:var(--accent); border-color:var(--accent); }

.scroll-cue{
  position:absolute; left:var(--edge); bottom:1.4rem; z-index:3;
  display:flex; align-items:center; gap:.6rem; font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--fg-dim);
}
.scroll-cue .icon{ animation:scroll-bounce 1.6s ease-in-out infinite; }
@keyframes scroll-bounce{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(6px);} }
@media (prefers-reduced-motion: reduce){ .scroll-cue .icon{ animation:none; } }

/* =========================================================
   Stamp badge (signature element)
========================================================= */
.stamp{
  width:64px; height:64px; border-radius:50%; flex:0 0 auto;
  background:repeating-conic-gradient(var(--accent) 0deg 8deg, transparent 8deg 18deg);
  display:grid; place-items:center;
  transform:rotate(-6deg);
}
.stamp span{
  width:46px; height:46px; border-radius:50%; background:var(--bg);
  display:grid; place-items:center; text-align:center;
  font-family:var(--font-mono); font-size:.62rem; font-weight:700; letter-spacing:.05em;
  color:var(--fg-dim); line-height:1.15;
}

/* =========================================================
   Section rhythm / reveal
========================================================= */
section{ position:relative; }
.section{ padding-block:clamp(4.5rem, 9vw, 8rem); }
.section-head{ display:flex; flex-direction:column; gap:1rem; margin-bottom:clamp(2.5rem,5vw,4rem); }
.section-head-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; flex-wrap:wrap; }

.reveal{ opacity:1; transform:none; }
.js .reveal{ opacity:1; transform:translateY(28px); transition:transform .7s var(--ease-out); }
.js .reveal.is-visible{ transform:none; }
@media (prefers-reduced-motion: reduce){
  .js .reveal{ opacity:1; transform:none; transition:none; }
}

/* diagonal divider used between bands */
.diagonal-top{ clip-path: polygon(0 3vw, 100% 0, 100% 100%, 0 100%); }
.diagonal-bottom{ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 3vw)); }

/* =========================================================
   Scoreboard stats
========================================================= */
.scoreboard{ display:grid; grid-template-columns:repeat(12,1fr); gap:1.5rem; }
.stat-tile{
  grid-column:span 3;
  background:var(--bg-elevated); border-top:2px solid var(--accent); border-radius:var(--radius);
  padding:1.8rem 1.4rem;
}
.stat-value{
  font-family:var(--font-mono); font-weight:700; font-variant-numeric:tabular-nums;
  font-size:clamp(2.2rem,4vw,3.2rem); color:var(--fg);
}
.stat-label{ margin-top:.4rem; font-size:.85rem; color:var(--fg-dim); text-transform:uppercase; letter-spacing:.06em; }

@media (max-width:900px){ .stat-tile{ grid-column:span 6; } }
@media (max-width:600px){ .stat-tile{ grid-column:span 12; } }

/* =========================================================
   Services — editorial bento (not a uniform card grid)
========================================================= */
.services-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:1.5rem; }
.service-card{
  position:relative; border-radius:var(--radius); overflow:hidden;
  background:var(--bg-elevated);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 28px), calc(100% - 28px) 100%, 0 100%);
  min-height:340px;
  display:flex; align-items:flex-end;
}
.service-card:nth-child(1){ grid-column:span 7; }
.service-card:nth-child(2){ grid-column:span 5; margin-top:3rem; }
.service-card:nth-child(3){ grid-column:span 5; }
.service-card:nth-child(4){ grid-column:span 7; margin-top:-2rem; }

.service-card-img{ position:absolute; inset:0; }
.service-card-img img{
  width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.08) brightness(1.2);
  transition:transform .6s var(--ease-out), filter .6s var(--ease-out);
}
.service-card:hover .service-card-img img{ transform:scale(1.06); filter:grayscale(.2) contrast(1.05) brightness(1.25); }
.service-card-img::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, oklch(13% 0.006 260 / .92) 4%, transparent 55%);
}
.service-card-body{ position:relative; z-index:2; padding:1.8rem 2rem 2.2rem; width:100%; }
.service-card-index{ font-family:var(--font-mono); color:var(--accent); font-size:.85rem; }
.service-card-title{ font-family:var(--font-display); text-transform:uppercase; font-size:clamp(1.5rem,2.6vw,2.1rem); margin-top:.3rem; }
.service-card-excerpt{ margin-top:.6rem; color:var(--fg-dim); max-width:42ch; font-size:.95rem; }
.service-card-link{
  margin-top:1rem; display:inline-flex; align-items:center; gap:.5rem;
  font-weight:700; text-transform:uppercase; font-size:.82rem; letter-spacing:.04em;
  border-bottom:2px solid var(--accent); padding-bottom:.15rem;
}

@media (max-width:900px){
  .service-card:nth-child(1),.service-card:nth-child(2),.service-card:nth-child(3),.service-card:nth-child(4){
    grid-column:span 12; margin-top:0;
  }
}

/* =========================================================
   Trainer
========================================================= */
.trainer-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:1.5rem; }
.trainer-card{ grid-column:span 4; }
.trainer-photo{
  aspect-ratio:4/5; border-radius:var(--radius); overflow:hidden; position:relative;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.trainer-photo img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05) brightness(1.25); transition:filter .4s var(--ease-out); }
.trainer-card:hover .trainer-photo img{ filter:grayscale(0) contrast(1) brightness(1.05); }
.trainer-name{ font-family:var(--font-display); text-transform:uppercase; font-size:1.5rem; margin-top:1.2rem; }
.trainer-role{ color:var(--accent); font-family:var(--font-mono); font-size:.82rem; letter-spacing:.04em; text-transform:uppercase; margin-top:.2rem; }
.trainer-bio{ margin-top:.6rem; color:var(--fg-dim); font-size:.92rem; }

@media (max-width:900px){ .trainer-card{ grid-column:span 6; } }
@media (max-width:600px){ .trainer-card{ grid-column:span 12; } }

/* =========================================================
   Testimonials — text cards + monogram badge (no fake stock photos)
========================================================= */
.stories-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:1.5rem; }
.story-card{
  grid-column:span 4; background:var(--bg-elevated); border-radius:var(--radius);
  padding:2rem; display:flex; flex-direction:column; gap:1.2rem;
  border-left:2px solid var(--accent);
}
.story-quote{ font-size:1.05rem; color:var(--fg); }
.story-meta{ display:flex; align-items:center; gap:.9rem; margin-top:auto; }
.story-monogram{
  width:44px; height:44px; border-radius:50%; background:var(--bg-elevated-2);
  border:1px solid var(--accent); color:var(--accent);
  display:grid; place-items:center; font-family:var(--font-mono); font-weight:700;
  flex:0 0 auto;
}
.story-name{ font-weight:700; font-size:.92rem; }
.story-since{ font-size:.78rem; color:var(--fg-mute); font-family:var(--font-mono); }

@media (max-width:900px){ .story-card{ grid-column:span 6; } }
@media (max-width:600px){ .story-card{ grid-column:span 12; } }

/* =========================================================
   CTA band (footer top)
========================================================= */
.footer-cta{
  text-align:center; padding-block:clamp(4rem,10vw,7rem); padding-inline:var(--edge);
  background:var(--bg-elevated);
  clip-path: polygon(0 4vw, 100% 0, 100% 100%, 0 100%);
}
.footer-cta-title{ font-family:var(--font-display); text-transform:uppercase; font-size:clamp(2.2rem,7vw,5rem); line-height:.95; }
.footer-cta .btn{ margin-top:2rem; }

/* =========================================================
   Footer
========================================================= */
.site-footer{ background:var(--bg); }
.footer-main{
  max-width:var(--container); margin-inline:auto; padding:clamp(3rem,6vw,5rem) var(--edge);
  display:grid; grid-template-columns:repeat(12,1fr); gap:2.5rem;
}
.footer-brand{ grid-column:span 4; }
.footer-brand p{ margin-top:1rem; color:var(--fg-dim); max-width:32ch; }
.footer-contact{ grid-column:span 4; }
.footer-nav{ grid-column:span 4; }
.footer-col h3{ font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.1em; font-size:.78rem; color:var(--fg-mute); margin-bottom:1.2rem; }
.contact-line{ display:flex; align-items:center; gap:.6rem; margin-bottom:.8rem; color:var(--fg-dim); }
.contact-line .icon{ flex-shrink:0; color:var(--accent); }
.footer-nav-list{ display:flex; flex-direction:column; gap:.7rem; }
.footer-nav-list a:hover{ color:var(--accent); }

.footer-legal{
  border-top:1px solid var(--line); padding:1.4rem var(--edge);
  display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center;
  font-size:.82rem; color:var(--fg-mute);
}
.footer-legal a:hover{ color:var(--accent); }

@media (max-width:900px){
  .footer-brand,.footer-contact,.footer-nav{ grid-column:span 12; }
}

/* =========================================================
   Generic page hero (subpages)
========================================================= */
.page-hero{
  padding-block:clamp(6rem,14vw,9rem) clamp(3rem,6vw,5rem);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3vw), 0 100%);
  background:var(--bg-elevated);
}
.page-hero-title{ font-family:var(--font-display); text-transform:uppercase; font-size:clamp(2.6rem,8vw,5.5rem); line-height:.95; }

.entry-content{ max-width:72ch; }
.entry-content > * + *{ margin-top:1.3rem; }
.entry-content h2{ font-family:var(--font-display); text-transform:uppercase; font-size:clamp(1.6rem,3.4vw,2.4rem); margin-top:2.4rem; }
.entry-content h3{ font-family:var(--font-display); text-transform:uppercase; font-size:clamp(1.2rem,2.4vw,1.6rem); margin-top:1.8rem; }
.entry-content ul{ list-style:disc; padding-left:1.4rem; }
.entry-content ul li{ margin-top:.4rem; }
.entry-content a{ text-decoration:underline; text-decoration-color:var(--accent); text-underline-offset:3px; }

/* =========================================================
   Leistungen overview list
========================================================= */
.leistungen-list{ display:grid; grid-template-columns:repeat(12,1fr); gap:1.5rem; }
.leistung-row{
  grid-column:span 12; display:grid; grid-template-columns:subgrid;
  padding-block:1.6rem; border-top:1px solid var(--line);
  align-items:center;
}
.leistung-row:last-child{ border-bottom:1px solid var(--line); }
.leistung-name{ grid-column:span 5; font-family:var(--font-display); text-transform:uppercase; font-size:clamp(1.3rem,2.4vw,1.9rem); }
.leistung-desc{ grid-column:span 5; color:var(--fg-dim); font-size:.92rem; }
.leistung-link{ grid-column:span 2; text-align:right; font-weight:700; text-transform:uppercase; font-size:.82rem; letter-spacing:.04em; }
.leistung-link .icon{ color:var(--accent); }

@media (max-width:900px){
  .leistung-row{ grid-template-columns:1fr; row-gap:.6rem; }
  .leistung-name,.leistung-desc,.leistung-link{ grid-column:auto; text-align:left; }
}

/* =========================================================
   Kontakt page
========================================================= */
.contact-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:2.5rem; }
.contact-info{ grid-column:span 5; }
.contact-form-wrap{ grid-column:span 7; background:var(--bg-elevated); padding:clamp(1.8rem,4vw,3rem); border-radius:var(--radius); border-top:2px solid var(--accent); }
.contact-map{ margin-top:2rem; border-radius:var(--radius); overflow:hidden; filter:grayscale(1) contrast(1.1); border:1px solid var(--line); }
.contact-map iframe{ width:100%; height:280px; border:0; display:block; }

@media (max-width:900px){ .contact-info,.contact-form-wrap{ grid-column:span 12; } }

/* Contact Form 7 restyle (plugin default is unstyled/blue) */
.wpcf7-form{ display:flex; flex-direction:column; gap:1.1rem; }
.wpcf7-form p{ margin:0; }
.wpcf7-form label{ display:block; font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; color:var(--fg-dim); margin-bottom:.4rem; }
.wpcf7-form input[type=text], .wpcf7-form input[type=email], .wpcf7-form input[type=tel], .wpcf7-form textarea{
  width:100%; background:var(--bg); border:1px solid var(--line); color:var(--fg);
  padding:.9rem 1rem; font-family:var(--font-body); font-size:1rem; border-radius:var(--radius);
  min-height:44px;
}
.wpcf7-form textarea{ min-height:140px; resize:vertical; }
.wpcf7-form input:focus, .wpcf7-form textarea:focus{ border-color:var(--accent); outline:2px solid var(--accent); outline-offset:1px; }
.wpcf7-form .wpcf7-submit{
  align-self:flex-start; background:var(--accent); border:2px solid var(--accent); color:var(--bg);
  padding:1rem 2rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; border-radius:var(--radius);
  min-height:44px; cursor:pointer; transition:transform var(--dur-fast) var(--ease-out);
}
.wpcf7-form .wpcf7-submit:hover{ transform:translateY(-2px); }
.wpcf7-response-output{ border-radius:var(--radius) !important; }
.wpcf7-not-valid-tip{ color:oklch(70% 0.19 25); font-size:.82rem; margin-top:.3rem; }

/* =========================================================
   Impressum / Datenschutz plain content page
========================================================= */
.legal-page .entry-content{ max-width:76ch; }

/* =========================================================
   Mobile breakpoints (global safety net)
========================================================= */
@media (max-width:900px){
  .section{ padding-block:clamp(3rem,8vw,5rem); }
}
@media (max-width:600px){
  body{ font-size:15px; }
  .hero{ align-items:flex-end; padding-bottom:2.5rem; }
  .hero-ctas{ flex-direction:column; align-items:stretch; }
  .footer-cta-title br{ display:none; }
}

html, body{ overflow-x:hidden; }
