/* ===========================================================
   Chromedia — Leistungen / Modul-Detailseiten
   Light editorial (nach Option 1 / chromedia.de 2.0).
   Weiß-dominant · Versal-Headlines · Dot-Idee · S/W-Bildwelt
   · dynamische Reveal/Hover-Motiv.
   =========================================================== */

@font-face{font-family:'Open Sans';src:url('../fonts/OpenSans-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Open Sans';src:url('../fonts/OpenSans-Italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'Open Sans';src:url('../fonts/OpenSans-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Open Sans';src:url('../fonts/OpenSans-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Open Sans';src:url('../fonts/OpenSans-ExtraBold.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap;}
@font-face{font-family:'CF Dots';src:url('../fonts/CFDots-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap;}

:root{
  --accent:#E30053; --accent-dark:#b50042;
  --ink:#1D1E1E; --ink-soft:#3a3b3b; --muted:#7a7b7b;
  --paper:#fff; --paper-2:#E8E8E8; --paper-3:#F2F2F2;
  --line:rgba(29,30,30,.12); --line-2:rgba(29,30,30,.22);
  --display:'Open Sans',system-ui,-apple-system,Arial,sans-serif;
  --body:'Open Sans',system-ui,-apple-system,Arial,sans-serif;
  --dots:'CF Dots','Open Sans',sans-serif;
  --maxw:1320px;
  --gut:clamp(20px,4.5vw,56px);
  --nav-h:72px; --subnav-h:56px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--subnav-h) + 16px);}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
::selection{background:var(--accent);color:#fff;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);}

/* ---------- shared atoms ---------- */
.eyebrow{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:14px;}
.eyebrow::before{content:"";display:block;width:38px;height:1px;background:var(--accent);}
.eyebrow.on-dark{color:#fff;}
.eyebrow.on-dark::before{background:#fff;}
.rubin{color:var(--accent);}

h1,h2,h3,h4{font-family:var(--display);font-weight:800;letter-spacing:-.022em;line-height:1.02;}
.upper{text-transform:none;}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:13px;padding:17px 28px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;transition:background .22s,gap .22s;border-radius:0;}
.btn:hover{background:var(--accent-dark);gap:18px;}
.btn .pl{font-size:18px;line-height:1;}
.btn.full{width:100%;}

.arrow-link{display:inline-flex;align-items:center;gap:11px;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);padding-bottom:6px;border-bottom:1px solid var(--accent);transition:gap .22s,letter-spacing .22s;}
.arrow-link::after{content:"→";}
.arrow-link:hover{gap:16px;letter-spacing:.24em;}

/* reveal-on-scroll */
.rv{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease;}
.rv.in{opacity:1;transform:none;}
.rv.d1{transition-delay:.08s;}.rv.d2{transition-delay:.16s;}.rv.d3{transition-delay:.24s;}.rv.d4{transition-delay:.32s;}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none;}*{animation:none!important;}}

/* pulsing dot */
.pdot{display:inline-block;width:8px;height:8px;background:var(--accent);border-radius:50%;animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.7);opacity:.45;}}

/* grayscale image treatment */
.imgwelt{filter:grayscale(1) contrast(1.05);transition:filter .5s;}
.imgwelt:hover{filter:grayscale(0) contrast(1);}

/* =========================================================
   NAV
   ========================================================= */
.lnav{position:fixed;top:0;left:0;right:0;z-index:60;height:var(--nav-h);display:flex;align-items:center;background:rgba(255,255,255,.86);backdrop-filter:saturate(150%) blur(12px);-webkit-backdrop-filter:saturate(150%) blur(12px);border-bottom:1px solid transparent;transition:border-color .3s,background .3s;}
.lnav.solid{border-bottom-color:var(--line);}
.lnav .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;width:100%;}
.lnav .logo{justify-self:center;}
.lnav .cta{justify-self:end;}
.lnav .logo img{height:38px;width:38px;}
.lnav .back{display:inline-flex;align-items:center;gap:9px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);padding:9px 0;transition:gap .25s,color .25s;}
.lnav .back .ico{font-size:18px;line-height:1;transition:transform .25s;}
.lnav .back:hover{color:var(--accent);gap:13px;}
.lnav .back:hover .ico{transform:translateX(-3px);}
.lnav .spacer{flex:1;}
.lnav .cta{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:12px 20px;background:var(--accent);color:#fff;transition:background .22s;}
.lnav .cta:hover{background:var(--accent-dark);}

/* SUB-NAV (module switcher) */
.subnav{position:fixed;top:var(--nav-h);left:0;right:0;z-index:55;height:var(--subnav-h);background:rgba(255,255,255,.78);backdrop-filter:saturate(150%) blur(12px);-webkit-backdrop-filter:saturate(150%) blur(12px);border-bottom:1px solid var(--line);color:var(--ink);display:flex;align-items:center;}
.subnav .wrap{display:flex;align-items:center;width:100%;overflow:hidden;}
.subnav-track{display:flex;align-items:center;gap:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;flex:1;}
.subnav-track::-webkit-scrollbar{display:none;}
.subnav-btn{position:relative;white-space:nowrap;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:18px 18px;transition:color .25s;display:inline-flex;align-items:center;gap:9px;}
.subnav-btn .n{font-size:10px;color:rgba(29,30,30,.38);font-variant-numeric:tabular-nums;transition:color .25s;}
.subnav-btn::after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;}
.subnav-btn:hover{color:var(--ink);}
.subnav-btn.active{color:var(--ink);}
.subnav-btn.active .n{color:var(--accent);}
.subnav-btn.active::after{transform:scaleX(1);}

/* =========================================================
   PANELS
   ========================================================= */
.panel{display:none;}
.panel.active{display:block;animation:panelIn .45s ease;}
@keyframes panelIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.page-top{height:calc(var(--nav-h) + var(--subnav-h));}

section{padding:clamp(56px,8vw,116px) 0;position:relative;}
section.grey{background:var(--paper-2);}
section.soft{background:var(--paper-3);}
.invest-section{padding-top:clamp(34px,4.5vw,56px);padding-bottom:clamp(34px,4.5vw,56px);}
.benefits-section{padding-bottom:0;}
@media(min-width:880px){section.forwhom-band{padding-top:clamp(108px,11.6vw,205px);}}
section.dark{background:var(--ink);color:#fff;}
.sec-head{max-width:880px;margin-bottom:clamp(36px,4.5vw,60px);}
.sec-head h2{font-size:clamp(28px,4vw,54px);margin-top:18px;line-height:1.06;text-wrap:balance;}

/* ---------- MODULE HERO ---------- */
/* Header sits on top; the collage drops into a lower body row and floats
   down to overlap the grey "Für wen" band (flat — overlap, not shadow). */
.mhero{padding:clamp(40px,5vw,72px) 0 0;position:relative;z-index:3;}
@media(min-width:880px){.mhero{margin-bottom:clamp(-150px,-9vw,-80px);}}
.mhero-head{display:grid;grid-template-columns:1fr;gap:clamp(22px,3vw,40px);align-items:end;}
@media(min-width:880px){.mhero-head{grid-template-columns:1fr auto;gap:56px;}}
.ad-echo{font-family:var(--display);font-weight:700;font-size:clamp(12px,1.1vw,14px);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:14px;margin-bottom:20px;}
.ad-echo::before{content:"";display:block;width:38px;height:1px;background:var(--accent);flex:0 0 auto;}
.mhero h1{font-size:clamp(38px,5.6vw,82px);line-height:1.02;text-wrap:balance;}
.mhero-body{display:grid;grid-template-columns:1fr;gap:clamp(32px,4.5vw,56px);align-items:start;margin-top:clamp(34px,4.5vw,58px);}
@media(min-width:880px){.mhero-body{grid-template-columns:1.1fr 0.9fr;column-gap:clamp(40px,5vw,72px);align-items:center;}}
.mhero-lead{max-width:none;}
.mhero-lead .hero-sub{max-width:32em;}
.mhero .hero-sub{font-size:clamp(17px,1.45vw,21px);line-height:1.6;color:var(--ink-soft);}
.sig{display:flex;align-items:center;gap:10px;margin-top:30px;}
.sig::before{content:"";width:13px;height:13px;border-radius:50%;background:var(--accent);flex:0 0 auto;}
.sig::after{content:"";width:84px;height:3px;background:var(--accent);}
.hero-meta{display:flex;flex-wrap:nowrap;gap:0;margin-top:clamp(30px,3.5vw,40px);}
.hero-meta>div{display:flex;flex-direction:column;gap:6px;padding:14px clamp(14px,2vw,30px);border-right:1.5px dotted var(--line-2);min-width:0;flex:0 0 auto;}
.hero-meta>div:first-child{padding-left:0;}
.hero-meta>div:last-child{border-right:0;padding-right:0;}
.hero-meta .k{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.hero-meta .v{font-family:var(--display);font-weight:800;font-size:clamp(13px,1.45vw,19px);letter-spacing:-.01em;white-space:nowrap;}

/* hero collage */
.mhero-visual{position:relative;z-index:3;}
.mhero-collage{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;}
.mhero-collage>img{display:block;width:100%;height:auto;background:var(--paper-3);filter:grayscale(1) contrast(1.04);object-fit:cover;}
.mc-wide{grid-column:span 2;aspect-ratio:16/9;}
.mc-tall{aspect-ratio:3/4;}
.mc-accent{aspect-ratio:3/4;background:var(--accent);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(18px,2vw,26px);}
.mc-accent .s{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.9;}
.mc-accent .q{font-family:var(--display);font-weight:800;font-size:clamp(17px,1.7vw,24px);line-height:1.12;letter-spacing:-.01em;}
.hero-dot{position:absolute;z-index:4;right:-20px;top:-24px;width:clamp(78px,9vw,112px);height:clamp(78px,9vw,112px);pointer-events:none;}
.hero-dot img{width:100%;height:100%;}

/* ---------- FÜR WEN ---------- */
.forwhom{max-width:18em;}
.forwhom-text{font-family:var(--display);font-weight:800;letter-spacing:-.02em;font-size:clamp(24px,3.4vw,46px);line-height:1.12;margin-top:22px;text-wrap:balance;max-width:none;}
.forwhom-text .rubin{display:inline;}

/* ---------- BENEFITS (cards, landing-page vocabulary) ---------- */
.benefits-grid{display:grid;grid-template-columns:1fr;gap:clamp(14px,1.6vw,20px);margin-top:8px;}
@media(min-width:760px){.benefits-grid{grid-template-columns:1fr 1fr;}}
.benefit-item{padding:clamp(26px,2.7vw,40px);background:var(--paper-3);border:1px solid var(--line);border-radius:20px;position:relative;overflow:hidden;transition:transform .3s,border-color .3s;}
.benefit-item::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.benefit-item:hover{transform:translateY(-5px);border-color:var(--accent);}
.benefit-item:hover::before{transform:scaleX(1);}
.benefit-num{font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.18em;color:var(--accent);}
.benefit-item h4{font-size:clamp(18px,1.8vw,23px);margin-top:14px;line-height:1.16;}
.benefit-item p{font-size:15px;color:var(--ink-soft);line-height:1.62;margin-top:12px;max-width:32em;}

/* ---------- STEPS (Wie es läuft) ---------- */
.steps{margin-top:8px;border-top:1.5px dotted var(--line-2);}
.step{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,40px);padding:clamp(26px,3vw,38px) 0;border-bottom:1.5px dotted var(--line-2);align-items:start;}
.step-num{font-family:var(--display);font-weight:800;font-size:clamp(40px,5vw,72px);line-height:.9;color:var(--paper-2);-webkit-text-stroke:1.5px var(--accent);color:transparent;transition:color .35s,-webkit-text-stroke-color .35s;}
.step:hover .step-num{color:var(--accent);-webkit-text-stroke-color:var(--accent);}
.step-tag{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.step h4{font-size:clamp(18px,1.9vw,24px);margin-top:8px;}
.step p{font-size:15px;color:var(--ink-soft);line-height:1.66;margin-top:10px;max-width:46em;}

/* ---------- INVEST ---------- */
.invest-grid{display:grid;grid-template-columns:1fr;gap:0;margin-top:8px;}
@media(min-width:680px){.invest-grid{grid-template-columns:repeat(3,1fr);}}
.invest-item{padding:30px 0;border-bottom:1.5px solid var(--ink);display:flex;flex-direction:column;gap:10px;}
@media(min-width:680px){
  .invest-item{padding:36px 32px 36px 0;border-bottom:0;border-right:1.5px dotted var(--line-2);}
  .invest-item:last-child{border-right:0;}
  .invest-item:not(:first-child){padding-left:32px;}
}
.invest-item .k{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.invest-item .v{font-family:var(--display);font-weight:800;font-size:clamp(17px,1.9vw,24px);letter-spacing:-.01em;line-height:1.1;white-space:nowrap;}

/* ---------- PAKETE (Basic & Advanced) ---------- */
.pakete-grid{display:grid;grid-template-columns:1fr;gap:clamp(14px,1.6vw,20px);margin-top:8px;}
@media(min-width:760px){.pakete-grid{grid-template-columns:1fr 1fr;}}
.paket-item{padding:clamp(28px,3vw,42px);border-radius:20px;border:1px solid var(--line);background:var(--paper-3);}
.paket-item.adv{background:var(--ink);color:#fff;border-color:var(--ink);}
.paket-tag{display:inline-block;font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.paket-item h4{font-family:var(--display);font-weight:800;font-size:clamp(20px,2vw,26px);margin-bottom:20px;line-height:1.1;}
.paket-item ul{list-style:none;display:flex;flex-direction:column;gap:13px;}
.paket-item li{font-size:clamp(14px,1.1vw,15.5px);line-height:1.55;color:var(--ink-soft);padding-left:22px;position:relative;}
.paket-item.adv li{color:rgba(255,255,255,.82);}
.paket-item li::before{content:"—";position:absolute;left:0;color:var(--accent);font-weight:700;}

/* ---------- BOOKING ---------- */
.mbooking .book-inner{display:grid;grid-template-columns:1fr;gap:clamp(34px,5vw,60px);align-items:center;}
@media(min-width:880px){.mbooking .book-inner{grid-template-columns:1.05fr .95fr;}}
.mbooking h2{font-size:clamp(32px,4.6vw,64px);line-height:1.02;}
.mbooking .intro{font-size:clamp(16px,1.2vw,18px);color:var(--ink-soft);margin-top:22px;max-width:28em;line-height:1.7;}
.card{background:#fff;border:1px solid var(--line);padding:clamp(26px,3vw,40px);}
.card h3{font-size:22px;}
.card .sub{font-size:13.5px;color:var(--muted);margin-top:6px;margin-bottom:24px;}
.form-grid{display:flex;flex-direction:column;gap:20px;}
.field-row{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;}
.field{display:flex;flex-direction:column;gap:7px;min-width:0;}
.field label{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.field input{border:0;border-bottom:1.5px solid var(--ink);background:transparent;padding:11px 0;min-height:44px;font-family:var(--body);font-size:16px;color:var(--ink);outline:none;border-radius:0;width:100%;min-width:0;box-sizing:border-box;}
.field input::placeholder{color:#b3b4b5;}
.field input:focus{border-bottom-color:var(--accent);}
.card .form-grid + .btn{margin-top:28px;}
.card .fineprint{margin-top:16px;font-size:12px;color:var(--muted);line-height:1.5;}

/* ---------- placeholder panels ---------- */
.soon{min-height:60vh;display:flex;align-items:center;}
.soon .inner{max-width:34em;}
.soon h1{font-size:clamp(34px,5vw,68px);margin-top:18px;line-height:1.02;}
.soon p{font-size:clamp(16px,1.3vw,19px);color:var(--ink-soft);line-height:1.7;margin-top:22px;}

/* ---------- back section ---------- */
.back-section{padding:clamp(34px,4vw,56px) 0;border-top:1px solid var(--line);}
.back-link{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:gap .25s,color .25s;}
.back-link .ico{font-size:18px;transition:transform .25s;}
.back-link:hover{color:var(--accent);gap:14px;}
.back-link:hover .ico{transform:translateX(-3px);}

/* =========================================================
   FOOTER
   ========================================================= */
.foot{background:var(--ink);color:#fff;padding:clamp(52px,6vw,84px) 0 28px;}
.foot-top{display:grid;grid-template-columns:1fr;gap:36px;margin-bottom:clamp(40px,5vw,64px);}
@media(min-width:760px){.foot-top{grid-template-columns:2fr 1fr 1fr;}}
.foot-brand img{height:32px;margin-bottom:20px;}
.foot-claim{font-family:var(--display);font-weight:800;letter-spacing:-.01em;font-size:clamp(22px,2.2vw,30px);line-height:1.1;max-width:12em;}
.foot-claim .rubin{text-transform:none;}
.foot-brand .arrow-link{margin-top:22px;color:#fff;border-bottom-color:var(--accent);}
.foot h6{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;}
.foot .foot-link{font-size:14px;color:rgba(255,255,255,.78);line-height:1.95;display:block;transition:color .2s;}
.foot .foot-link:hover{color:#fff;}
.foot-word{padding:clamp(18px,2.6vw,36px) 0;overflow:hidden;border-top:1px solid rgba(255,255,255,.14);}
.foot-word .word{font-family:var(--display);font-weight:800;font-size:clamp(58px,17vw,230px);line-height:.82;letter-spacing:-.04em;color:#fff;white-space:nowrap;display:block;}
.foot-word .word::after{content:".";color:var(--accent);}
.foot-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55);}
.foot-meta a{color:rgba(255,255,255,.55);transition:color .2s;}
.foot-meta a:hover{color:#fff;}

/* to-top */
.to-top{position:fixed;right:clamp(18px,3vw,32px);bottom:calc(clamp(18px,3vw,32px) + env(safe-area-inset-bottom,0px));z-index:80;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--accent);box-shadow:0 10px 28px -10px rgba(227,0,83,.7);opacity:0;visibility:hidden;transform:translateY(12px) scale(.92);transition:opacity .3s,transform .3s,visibility .3s,background .2s;}
.to-top.show{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:var(--accent-dark);}

@media(max-width:560px){
  .lnav .cta{display:none;}
  .hero-meta{flex-direction:column;gap:0;}
  .hero-meta>div{padding:14px 0;border-right:0;border-bottom:1.5px dotted var(--line-2);}
  .hero-meta>div:first-child{padding-top:0;}
  .hero-meta>div:last-child{border-bottom:0;padding-bottom:0;}
}
