@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400 600;font-display:swap;src:url('../fonts/SourceSerif4-latin.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url('../fonts/IBMPlexSans-latin.woff2') format('woff2');}

:root{
  --ink:#3E5C8F;
  --ink-2:#33507F;
  --ink-3:#28406A;
  --ink-4:#2B3B58;
  --ink-lo:#1E3155;
  --ink-hi:#33507F;
  --paper:#F6EFE1;
  --paper-2:#EEE2CB;
  --brass:#AD7A34;
  --brass-2:#8A5F26;
  --text:#262B35;
  --text-muted:#5B6270;
  --line:rgba(38,43,53,.14);
  --on-ink:#F6EFE1;
  --on-ink-muted:rgba(246,239,225,.72);
  --font-display:'Source Serif 4', Georgia, serif;
  --font-body:'IBM Plex Sans', 'Segoe UI', sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--paper);color:var(--text);font-family:var(--font-body);margin:0;}
[hidden]{display:none !important;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
h1,h2,h3{font-family:var(--font-display);font-weight:600;text-wrap:balance;margin:0;color:var(--ink-3);}
a{color:inherit;}
img{max-width:100%;}

/* language toggle */
.lang{display:inline-flex;border:1px solid var(--line);border-radius:100px;overflow:hidden;font-size:12px;font-weight:500;background:var(--paper);}
.lang button{font:inherit;color:var(--text-muted);background:transparent;border:0;padding:6px 13px;cursor:pointer;}
.lang button.active{background:var(--ink);color:var(--paper);}

/* ===== homepage hero ===== */
/* svh = viewport height with the mobile browser bars shown; unlike vh it does not
   change while the address bar collapses, so the pinned hero no longer jumps on scroll */
.hero-wrap{height:220vh;height:220svh;position:relative;}
/* fills the strip below the pinned hero when the address bar hides; matches the pin colour */
.hero-wrap:not(.quote-hero-wrap){background:var(--hero-gap,var(--ink-3));}
.hero-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:linear-gradient(180deg, var(--ink-hi) 0%, var(--ink-3) 100%);display:flex;align-items:center;justify-content:center;}
.bg-waves{position:absolute;inset:0;pointer-events:none;}
.hero-frame{position:relative;display:inline-block;max-width:100%;max-height:100%;line-height:0;}
.hero-img{max-width:100%;max-height:100vh;max-height:100svh;width:auto;height:auto;object-fit:contain;display:block;}
.hero-frame::after{content:"";position:absolute;left:0;right:0;bottom:0;height:36%;background:linear-gradient(180deg, rgba(20,31,51,0), rgba(20,31,51,.5) 55%, rgba(20,31,51,.68) 100%);pointer-events:none;}
.lang-corner{position:absolute;top:20px;right:20px;z-index:3;}
.hero-text{position:absolute;left:24px;right:24px;bottom:9%;z-index:2;opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);line-height:1.4;}
.hero-text.in{opacity:1;transform:translateY(0);}
.hero-text h2{font-size:clamp(1.6rem,3.6vw,2.3rem);color:var(--on-ink);}
.hero-text p{margin:.5rem 0 0;font-size:1rem;color:var(--on-ink-muted);}
.hero-text blockquote{margin:0;font-family:var(--font-display);font-weight:600;font-style:italic;font-size:clamp(1.5rem,3.4vw,2.2rem);color:var(--on-ink);line-height:1.34;text-wrap:balance;}
.hero-text cite{display:block;margin-top:1rem;font-family:var(--font-body);font-style:normal;font-size:1rem;letter-spacing:.02em;color:var(--on-ink-muted);}
.hero-text cite::before{content:"— ";}
.hero-back{position:absolute;top:20px;left:20px;z-index:3;}
.hero-back .backlink{color:var(--on-ink);}
.scroll-hint{position:absolute;left:50%;bottom:3vh;transform:translateX(-50%);z-index:2;color:var(--text-muted);opacity:0;transition:opacity .6s ease .3s;}
.scroll-hint.in{opacity:1;}
.scroll-hint svg{display:block;animation:bob 1.8s ease-in-out infinite;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}

.section{padding:5rem 7vw;}
.eyebrow{font-size:12px;letter-spacing:.10em;text-transform:uppercase;color:var(--brass-2);font-weight:600;margin:0 0 .9rem;}

/* ===== tile menu (homepage) ===== */
.tiles-band{position:relative;overflow:hidden;background:linear-gradient(180deg, var(--ink-3) 0%, var(--ink-lo) 100%);}
.tiles-head{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:2.6rem;}
.tiles-band .eyebrow{color:#D9B87C;}
.tiles-band h2{color:var(--on-ink);font-size:clamp(1.5rem,3.2vw,2.1rem);max-width:18ch;}

.mosaic{position:relative;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);}
.tile{aspect-ratio:1/1;border-radius:4px;position:relative;overflow:hidden;text-decoration:none;display:flex;align-items:flex-end;color:var(--on-ink);background-color:var(--tile-bg,var(--ink-4));background-size:cover;background-position:center;transition:transform .25s ease, outline-color .2s ease;}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(20,31,51,0) 40%, rgba(20,31,51,.72) 100%);}
.tile-label{position:relative;z-index:1;padding:1rem;font-family:var(--font-display);font-weight:600;font-size:1.02rem;overflow-wrap:break-word;hyphens:auto;min-width:0;width:100%;}
.tile-label .badge{display:block;font-family:var(--font-body);font-weight:600;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:var(--brass);padding:3px 8px;border-radius:100px;width:max-content;margin-bottom:.5rem;}
@media (hover:hover) and (pointer:fine){
  .tile:hover{transform:scale(1.045);z-index:2;}
}
.t-tutoring,.t-coaching{--tile-bg:var(--ink);}
.tile-light{--tile-bg:var(--paper);}
.tile-light::after{display:none;}
.tile-light .tile-label{color:var(--ink-3);}

/* ===== subpages ===== */
.subhead{position:sticky;top:0;z-index:5;background:var(--paper);border-bottom:1px solid var(--line);}
.subhead .row{display:flex;align-items:center;justify-content:space-between;padding:14px 7vw;}
.backlink{font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:8px;}
.backlink svg{width:16px;height:16px;}

.sp-hero{aspect-ratio:16/7;background-size:cover;background-position:center;background-color:var(--ink-4);}
.sp-intro{padding:3rem 7vw 0;max-width:640px;}
.sp-intro .eyebrow{margin-top:0;}
.sp-intro h1{font-size:clamp(2.1rem,4.4vw,3rem);margin-bottom:1rem;}
.sp-intro p{margin:0 0 1rem;color:var(--text-muted);line-height:1.7;font-size:1.08rem;text-align:justify;hyphens:auto;}
.sp-intro strong{color:var(--ink-3);font-weight:600;}
.sp-badge{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--brass-2);background:var(--paper-2);padding:4px 10px;border-radius:100px;margin-bottom:1rem;}

/* copy buttons under the donation QR codes (for visitors already on their phone) */
.copy-pay{margin-top:1.4rem;width:100%;max-width:360px;}
.copy-pay-hint{margin:0 0 .7rem;font-size:.95rem;font-weight:600;color:var(--on-ink);}
.copy-btns{display:flex;flex-direction:column;gap:.5rem;}
.copy-btn{font:inherit;font-size:.95rem;font-weight:500;color:var(--on-ink);background:transparent;border:1px solid rgba(246,239,225,.4);border-radius:100px;padding:.7rem 1rem;cursor:pointer;transition:background .2s ease,color .2s ease;}
.copy-btn.copied{background:var(--brass);border-color:var(--brass);color:var(--ink-3);}
.copy-pay-tip{margin:.9rem 0 0;font-size:.85rem;line-height:1.5;color:var(--on-ink-muted);}

/* donation receipts only work for German donors: EN/ES/FR show personal support only */
html:not([lang="de"]) .only-de{display:none !important;}
/* donation boxes always stacked: personal support first, organisation below */
.support-options{grid-template-columns:1fr !important;max-width:560px;margin-left:auto !important;margin-right:auto !important;}

/* PayPal link in the personal-support box */
.paypal{width:100%;max-width:360px;}
.paypal-btn{display:block;text-align:center;font-weight:600;font-size:1rem;color:#1E3155;background:#FFC439;border-radius:100px;padding:.8rem 1rem;text-decoration:none;}
.pay-or{display:flex;align-items:center;gap:.8rem;width:100%;max-width:360px;margin:1.6rem 0 1.2rem;font-size:.85rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--on-ink-muted);}
.pay-or::before,.pay-or::after{content:"";flex:1;height:1px;background:rgba(246,239,225,.25);}
.paypal-hint{margin:.6rem 0 0;font-size:.85rem;line-height:1.5;color:var(--on-ink-muted);}

/* partner logos on the volunteer page */
.partners{text-align:center;padding:1rem 7vw 3.5rem;}
.partners .eyebrow{margin-bottom:1.4rem;}
.partner-logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem 3rem;}
.partner-logos a{display:block;background:#fff;border-radius:8px;padding:1rem 1.4rem;box-shadow:0 1px 0 var(--line);}
.partner-about{max-width:680px;margin:2.6rem auto 0;text-align:left;}
.partner-about h3{font-size:1.35rem;margin:0 0 .8rem;}
.partner-about p{margin:0 0 1rem;color:var(--text-muted);line-height:1.7;font-size:1.05rem;text-align:justify;hyphens:auto;}
.partner-logos img{display:block;width:min(280px,72vw);height:auto;}

/* donation goals (inside the QR boxes) + thank-you wall */
.goal{width:100%;max-width:360px;margin:.4rem 0 1.4rem;text-align:left;}
.goal-head{margin:0 0 .5rem;color:var(--on-ink-muted);font-size:.95rem;}
.goal-sum{font-family:var(--font-display);font-size:1.5rem;color:var(--on-ink);margin-right:.25rem;}
.goal-bar{height:12px;border-radius:100px;background:rgba(246,239,225,.18);overflow:hidden;}
.goal-fill{display:block;height:100%;width:0;border-radius:100px;background:var(--brass);transition:width 1s cubic-bezier(.16,.84,.32,1);}
.dw{max-width:760px;margin:0 auto 3rem;padding:0 7vw;}
.dw-cta{text-align:center;}
.dw-cta .cta-btn{font-size:15px;line-height:1.4;cursor:pointer;border:0;}
.dw-status{min-height:1.4em;margin:.8rem 0 0;font-size:.95rem;color:var(--text-muted);}
.dw-status.ok{color:var(--ink-3);font-weight:600;}
.dw-status.err{color:#9B2C2C;font-weight:600;}
.dw-form{background:var(--paper-2);border-radius:10px;padding:1.6rem;margin:1rem 0 0;}
.dw-target{border:0;padding:0;}
.dw-target legend{font-size:.85rem;font-weight:500;margin-bottom:.4rem;padding:0;}
.dw-form .dw-target label{display:flex;align-items:center;gap:.6rem;font-size:.95rem;margin:.5rem 0;}
.dw-form .dw-target input{width:auto;margin:0;flex:none;}
.dw-consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.85rem;line-height:1.5;color:var(--text-muted);margin:.4rem 0 1.2rem;}
.dw-consent input{margin-top:.2rem;flex:none;}
.dw-form .cta-btn{cursor:pointer;border:0;}
.dw-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.dw-title{font-size:1.6rem;margin:2.6rem 0 1rem;}
.dw-empty{color:var(--text-muted);}
.dw-sub{font-size:1.15rem;margin:0 0 .8rem;color:var(--ink-3);}
.dw-top{list-style:none;margin:0 0 2rem;padding:0;display:grid;gap:.5rem;}
.dw-rank{display:flex;align-items:center;gap:.8rem;background:var(--ink-3);color:var(--on-ink);border-radius:6px;padding:.75rem 1.1rem;}
.dw-rank:first-child{background:var(--ink-lo);box-shadow:0 0 0 2px var(--brass) inset;}
.dw-pos{flex:none;width:2.1rem;height:2.1rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.05rem;color:#fff;}
.dw-pos.r1{background:#D4A72C;color:#1E3155;}
.dw-pos.r2{background:#C3C7CE;color:#1E3155;}
.dw-pos.r3{background:#B0703C;}
.dw-pos.r4{background:#8E6BC8;}
.dw-pos.r5{background:#3E9A61;}
.dw-rank strong{flex:1;min-width:0;font-family:var(--font-display);font-size:1.08rem;overflow-wrap:anywhere;}
.dw-rank .dw-amount{color:#D9B87C;}
.dw-list{list-style:none;margin:0;padding:0;display:grid;gap:.8rem;}
.dw-entry{background:var(--paper-2);border-radius:6px;padding:1rem 1.2rem;}
.dw-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .7rem;}
.dw-head strong{font-family:var(--font-display);font-size:1.1rem;color:var(--ink-3);overflow-wrap:anywhere;}
.dw-amount{font-weight:600;color:var(--brass-2);}
.dw-tag{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--paper);padding:2px 9px;border-radius:100px;}
.dw-msg{margin:.5rem 0 0;color:var(--text);font-style:italic;line-height:1.55;overflow-wrap:anywhere;}

/* ===== quote hero + long-form article (Nachhilfe-style pages) ===== */
.quote-hero-wrap{height:190vh;height:190svh;position:relative;}
.quote-hero-wrap .quote-hero{position:sticky;top:0;min-height:0;height:100vh;height:100svh;}
.quote-hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:stretch;min-height:88vh;}
.quote-hero-text{display:flex;flex-direction:column;justify-content:center;padding:6vh 6vw;opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
.quote-hero-text.in{opacity:1;transform:translateY(0);}
.quote-hero-text blockquote{margin:0;font-family:var(--font-display);font-weight:600;font-style:italic;font-size:clamp(2.1rem,3.8vw,3.1rem);color:var(--ink-3);line-height:1.32;text-wrap:balance;}
.quote-hero-text cite{display:block;margin-top:1.6rem;font-family:var(--font-body);font-style:normal;font-size:1.05rem;letter-spacing:.02em;color:var(--text-muted);}
.quote-hero-text cite::before{content:"— ";}
.quote-hero-photo{background-size:cover;background-position:center;background-color:var(--paper-2);min-height:340px;}
.quote-hero.on-dark{background:#080D1C;}
.quote-hero.on-dark .quote-hero-text blockquote{color:var(--on-ink);}
.quote-hero.on-dark .quote-hero-text cite{color:var(--on-ink-muted);}
.quote-hero .scroll-hint{color:var(--text-muted);}
.quote-hero.on-dark .scroll-hint{color:var(--on-ink-muted);}

.article{max-width:760px;margin:0 auto;padding:1rem 7vw 2rem;}
.article .lede{font-size:1.34rem;color:var(--text);line-height:1.75;margin:0 0 2.4rem;text-align:justify;hyphens:auto;}
.article h2{font-size:1.6rem;margin:3.6rem 0 1.1rem;padding-top:2.2rem;border-top:1px solid var(--line);}
.article .lede + h2,.article > h2:first-child{margin-top:0;padding-top:0;border-top:none;}
.article h3{font-size:1.2rem;margin:1.8rem 0 .6rem;}
.article p{margin:0 0 1.1rem;color:var(--text-muted);line-height:1.75;font-size:1.1rem;text-align:justify;hyphens:auto;}
.article ul,.article ol{margin:0 0 1.1rem;padding-left:1.2rem;color:var(--text-muted);line-height:1.75;font-size:1.1rem;}
.article li{margin-bottom:.4rem;text-align:justify;hyphens:auto;}
.article strong,.row-copy strong,.zz-copy strong{color:var(--ink-3);font-weight:600;}
.article .shout{text-transform:uppercase;letter-spacing:.03em;}
.article .hl,.row-copy .hl{color:var(--ink-3);font-weight:600;}
.article .q-line,.row-copy .q-line,.quote-hero-text .q-line{color:var(--ink-3);font-family:var(--font-display);font-style:italic;font-weight:500;font-size:1.28rem;margin:0 0 .5rem;}
.quote-hero-text .q-line{margin-top:1.6rem;text-align:left;}
.article .q-line:last-of-type{margin-bottom:1.1rem;}

/* offer cards (Coaching / Personal Training / Trainingspläne) */
.offer-tag{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brass-2);background:var(--paper);padding:4px 11px;border-radius:100px;margin-bottom:.9rem;box-shadow:0 0 0 1px var(--line);}
.offer-block{background:var(--paper-2);border-radius:10px;padding:2.2rem 2.4rem;margin:0 0 2.6rem;box-shadow:0 1px 0 rgba(20,31,51,.03);}
.offer-block h3{margin-top:0;}
.offer-block:last-of-type{margin-bottom:0;}
@media (max-width:640px){
  .offer-block{padding:1.6rem 1.4rem;}
}

.results-hero{display:flex;flex-wrap:wrap;gap:2.4rem;align-items:flex-start;margin:0 0 1.8rem;}
.result-big{flex:0 0 auto;text-align:center;}
.result-big .num{display:block;font-family:var(--font-display);font-weight:600;font-size:4rem;color:var(--ink);line-height:1;}
.result-big .label{display:block;margin-top:.5rem;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--brass-2);}
.result-group{flex:1 1 220px;}
.result-group .group-label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--brass-2);font-weight:600;margin-bottom:.7rem;}
.result-group .stats-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));margin-bottom:0;}
@media (max-width:640px){
  .result-big{text-align:left;}
}

.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:0 0 1.6rem;}
.stats-grid.stats-inline{grid-template-columns:repeat(2,minmax(140px,190px));max-width:420px;}
.stat-card{background:var(--paper-2);border-radius:4px;padding:1rem 1.1rem;}
.stat-card .pts{display:block;font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--ink);}
.stat-card .subj{display:block;font-size:.82rem;color:var(--text-muted);margin-top:.15rem;}
.stat-card .lvl{display:block;font-size:.72rem;color:var(--brass-2);text-transform:uppercase;letter-spacing:.04em;margin-top:.2rem;}

.quali-band{background:var(--paper-2);padding:4rem 7vw;margin:3rem 0;}
.quali-band .eyebrow{margin-top:0;}
.quali-band h2{font-size:1.5rem;margin:0 0 2.4rem;max-width:34ch;text-wrap:balance;}
.quali-stats{display:flex;gap:1.25rem;max-width:1080px;}
.quali-stat{background:var(--ink-3);border-radius:4px;padding:2.4rem 1.5rem;text-align:center;box-sizing:border-box;flex-shrink:0;overflow:hidden;transition:width 1.1s cubic-bezier(.16,.84,.32,1);}
.quali-stat .num{display:block;font-family:var(--font-display);font-weight:600;font-style:italic;font-size:clamp(2.4rem,5vw,3.4rem);color:var(--brass);line-height:1;font-variant-numeric:tabular-nums;}
.quali-stat .label{display:block;margin-top:.7rem;font-size:.85rem;color:var(--on-ink-muted);}
@media (max-width:700px){
  .quali-stats{flex-direction:column;gap:1rem;max-width:340px;margin:0 auto;}
  .quali-stat{width:100% !important;}
}

.results-band{background:var(--paper-2);padding:4rem 7vw;margin:3rem 0;}
.results-band .eyebrow{margin-top:0;}
.results-band h2{font-size:1.5rem;margin:0 0 2.4rem;max-width:34ch;text-wrap:balance;}
.results-tiles{display:flex;gap:1.25rem;align-items:stretch;flex-wrap:wrap;}
.rt-big{flex:1 1 260px;background:var(--ink-3);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;text-align:center;transition:transform .25s ease, box-shadow .25s ease;}
.rt-big .num{font-family:var(--font-display);font-weight:600;font-style:italic;font-size:clamp(2.8rem,6vw,4.2rem);color:var(--brass);line-height:1;}
.rt-big .label{margin-top:.7rem;font-size:.85rem;color:var(--on-ink-muted);}
.rt-group{flex:2.2 1 380px;display:grid;gap:1rem;}
.rt-group.rt-exams{grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;}
.rt-group.rt-papers{flex:1.2 1 220px;grid-template-columns:1fr;grid-auto-rows:1fr;}
.rt-tile{background:var(--ink-3);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.2rem .8rem;text-align:center;transition:transform .25s ease, box-shadow .25s ease;}
.rt-tile-label{background:var(--ink-lo);}
.rt-tile-label .subj{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:1.05rem;color:var(--brass);margin-top:0;}
.rt-tile .pts{font-family:var(--font-display);font-weight:600;font-style:italic;font-size:1.7rem;color:var(--brass);line-height:1;}
.rt-tile .subj{margin-top:.4rem;font-size:.78rem;color:var(--on-ink-muted);}
.rt-tile .lvl{display:block;font-size:.65rem;color:var(--on-ink-muted);text-transform:uppercase;letter-spacing:.03em;margin-top:.15rem;opacity:.75;}
@media (hover:hover) and (pointer:fine){
  .rt-big:hover,.rt-tile:hover{transform:scale(1.035);box-shadow:0 0 0 1px rgba(173,122,52,.45), 0 12px 28px -10px rgba(20,31,51,.5);}
}
@media (max-width:900px){
  .results-tiles{flex-direction:column;}
}
@media (max-width:560px){
  .rt-group.rt-exams{grid-template-columns:repeat(2,1fr);}
  .rt-group.rt-papers{grid-template-columns:repeat(2,1fr);}
}

.tag-list{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 1.8rem;}
.tag{background:var(--paper-2);color:var(--text);font-size:1.05rem;font-weight:500;padding:.75rem 1.4rem;border-radius:100px;transition:transform .22s ease;}
.tag .lvl{display:block;font-size:.7rem;color:var(--text-muted);}
@media (hover:hover) and (pointer:fine){
  .tag:hover{transform:scale(1.06);}
}

@media (max-width:760px){
  .quote-hero-wrap{height:auto;}
  .quote-hero-wrap .quote-hero{position:relative;top:auto;height:auto;}
  .quote-hero{grid-template-columns:1fr;min-height:0;}
  /* explicit height (4:5 of the screen width) so the photo never collapses, even where aspect-ratio misbehaves */
  .quote-hero-photo{aspect-ratio:4/5;min-height:125vw;width:100%;}
  .quote-hero-text{padding:4vh 6vw;opacity:1 !important;transform:none !important;}
  .article{padding:1rem 6vw 2rem;}
  .article h2{margin-top:3rem;padding-top:1.8rem;}
}

/* text-image row, alternates direction */
.row{display:grid;grid-template-columns:1fr 1fr;gap:4vw;align-items:center;padding:3rem 7vw;max-width:1120px;margin:0 auto;}
.row.rev .row-copy{order:2;}
.row-copy h2{font-size:1.7rem;margin-bottom:.7rem;}
.row-copy h3{font-size:1.35rem;margin-bottom:.6rem;}
.row-copy p{margin:0 0 .6rem;color:var(--text-muted);line-height:1.7;font-size:1.1rem;text-align:justify;hyphens:auto;}
.row-photo{aspect-ratio:4/3;border-radius:4px;background-size:cover;background-position:center;background-color:var(--paper-2);position:relative;overflow:hidden;}
.row-photo.placeholder::before,.row-photo.placeholder::after,.sp-hero.placeholder::before,.sp-hero.placeholder::after{content:"";position:absolute;inset:0;}
.row-photo.placeholder::before,.sp-hero.placeholder::before,.quote-photo.placeholder::before,.zz-photo.placeholder::before{background:repeating-linear-gradient(45deg, rgba(31,44,68,.10) 0 3px, transparent 3px 14px);}
.row-photo.placeholder::after,.sp-hero.placeholder::after,.quote-photo.placeholder::after,.zz-photo.placeholder::after{background:repeating-linear-gradient(-45deg, rgba(173,122,52,.16) 0 3px, transparent 3px 14px);}
.row-photo.placeholder::before,.row-photo.placeholder::after,.sp-hero.placeholder::before,.sp-hero.placeholder::after,.quote-photo.placeholder::before,.quote-photo.placeholder::after,.zz-photo.placeholder::before,.zz-photo.placeholder::after{content:"";position:absolute;inset:0;}
.sp-hero.placeholder{position:relative;overflow:hidden;}
.cta-band p{color:var(--on-ink-muted);max-width:52ch;margin:0 auto 1.4rem;line-height:1.65;}
.row-photo-tag{position:absolute;z-index:1;left:12px;bottom:12px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);background:rgba(246,239,225,.88);padding:5px 10px;border-radius:100px;}

/* before/after transformation pair */
.transform-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:760px;margin:1.6rem 0 .6rem;}
.tp-photo{aspect-ratio:3/4;border-radius:4px;background-size:cover;background-position:center;background-color:var(--paper-2);position:relative;overflow:hidden;}
.tp-caption{font-size:.85rem;color:var(--text-muted);margin:0 0 1.6rem;text-align:left;}
@media (max-width:480px){
  .transform-pair{max-width:340px;}
}

/* zigzag transformation timeline */
.zigzag{max-width:1180px;margin:0 auto;padding:1rem 7vw 3rem;display:flex;flex-direction:column;gap:3.2rem;}
.zz-stop{display:flex;align-items:center;gap:2.2rem;width:82%;}
.zz-stop:nth-child(2n){align-self:flex-end;flex-direction:row-reverse;text-align:right;}
.zz-stop:nth-child(2n+1){align-self:flex-start;}
.zz-photo{flex:0 0 340px;aspect-ratio:3/4;border-radius:4px;background-size:cover;background-position:center;background-color:var(--paper-2);position:relative;overflow:hidden;box-shadow:0 14px 32px -16px rgba(20,31,51,.35);}
.zz-copy{flex:1 1 auto;min-width:0;}
.zz-year{display:block;font-family:var(--font-display);font-weight:600;font-style:italic;font-size:1.7rem;color:var(--brass-2);line-height:1;margin-bottom:.5rem;}
.zz-copy h3{font-size:1.22rem;margin-bottom:.5rem;}
.zz-copy p{margin:0;color:var(--text-muted);line-height:1.65;font-size:1rem;text-align:justify;hyphens:auto;}
@media (max-width:760px){
  .zz-stop,.zz-stop:nth-child(2n){width:100%;align-self:stretch;flex-direction:column;text-align:left;gap:1.1rem;}
  .zz-photo{width:100%;flex:none;aspect-ratio:16/10;}
}

/* step list */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;padding:1rem 7vw 3rem;max-width:1120px;margin:0 auto;}
.step{padding:1.5rem;background:var(--paper-2);border-radius:4px;}
.step .num{font-family:var(--font-display);font-size:1.4rem;color:var(--brass-2);display:block;margin-bottom:.4rem;}
.step p{margin:0;color:var(--text-muted);font-size:.94rem;line-height:1.6;text-align:justify;hyphens:auto;}

/* review cards */
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;padding:1rem 7vw 3rem;max-width:1120px;margin:0 auto;}
.review-card{background:var(--paper-2);border-radius:4px;padding:1.5rem;}
.review-card .stars{color:var(--brass);letter-spacing:2px;margin-bottom:.6rem;}
.review-card p{margin:0 0 .8rem;color:var(--text);line-height:1.6;text-align:justify;hyphens:auto;}
.review-card .who{font-size:.85rem;color:var(--text-muted);}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:4vw;padding:1rem 7vw 4rem;max-width:1120px;margin:0 auto;}
.form-field{margin-bottom:1rem;}
.form-field label{display:block;font-size:.85rem;font-weight:500;margin-bottom:.4rem;}
.form-field input,.form-field select,.form-field textarea{width:100%;font:inherit;font-size:.95rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--text);}
.form-field textarea{min-height:120px;resize:vertical;}
.contact-side{background:var(--paper-2);border-radius:4px;padding:1.75rem;}
.contact-side p{margin:0 0 .8rem;color:var(--text-muted);line-height:1.6;text-align:justify;hyphens:auto;}
.contact-side .label{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--brass-2);font-weight:600;margin:1rem 0 .2rem;}
.contact-side .label:first-child{margin-top:0;}

/* timeline (Lebenslauf) */
.timeline{padding:1rem 7vw 4rem;max-width:760px;margin:0 auto;}
.tl-group{margin-bottom:2.2rem;}
.tl-group h2{font-size:1.15rem;color:var(--brass-2);margin-bottom:1rem;}
.tl-item{display:grid;grid-template-columns:90px 1fr;gap:1rem;padding:.9rem 0;border-top:1px solid var(--line);}
.tl-item:first-child{border-top:none;}
.tl-item .yr{font-weight:600;color:var(--ink);}
.tl-item h3{font-size:1rem;margin-bottom:.2rem;}
.tl-item p{margin:0;color:var(--text-muted);font-size:.92rem;line-height:1.55;text-align:justify;hyphens:auto;}

/* CTA */
.cta-band{background:var(--ink);text-align:center;padding:5rem 7vw;}
.cta-band h2{color:var(--on-ink);font-size:clamp(1.6rem,3.4vw,2.2rem);margin-bottom:1.1rem;}
.cta-btn{display:inline-block;font-family:var(--font-body);font-weight:600;font-size:14px;color:var(--paper);background:var(--ink-3);border:1px solid rgba(246,239,225,.3);padding:.8rem 1.8rem;border-radius:4px;text-decoration:none;}
.cta-btn.solid{background:var(--brass);color:var(--ink-3);border-color:transparent;}
.cta-fine{margin-top:1.4rem;font-size:12px;color:var(--on-ink-muted);}

footer.site-footer{padding:2.5rem 7vw;text-align:center;font-size:12.5px;color:var(--text-muted);}
.footer-legal{display:block;margin-top:.6rem;}
.footer-legal a{color:inherit;text-decoration:underline;text-underline-offset:2px;}

@media (max-width:1100px){
  .mosaic{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:760px){
  .mosaic{grid-template-columns:1fr;}
  .section{padding:3.5rem 6vw;}
  .row,.contact-grid{grid-template-columns:1fr;padding:2.5rem 6vw;}
  .row.rev .row-copy{order:0;}
  .sp-intro{padding:2.5rem 6vw 0;}
  .steps,.reviews-grid,.contact-grid,.timeline{padding-left:6vw;padding-right:6vw;}
  .support-options{grid-template-columns:1fr !important;max-width:400px !important;gap:1.5rem !important;}
}
@media (prefers-reduced-motion:reduce){
  .hero-text,.scroll-hint{transition:none !important;}
  html{scroll-behavior:auto;}
}
