
:root{
  --paper:#F7F5FB;
  --paper-2:#EDEAF4;
  --surface:#FFFFFF;
  --ink:#16151A;
  --ink-soft:#565263;
  --ink-faint:#8C8898;
  --line:rgba(22,21,30,.16);
  --line-soft:rgba(22,21,30,.09);
  --accent:#6E5A97;
  --accent-deep:#4E3F7A;
  --accent-tint:#ECE7F4;
  --brass:#A593C5;
  --brass-soft:#BBA9D6;
  --r:14px;
  --maxw:1180px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --hero-photo:url("assets/portrait-hero.jpg");
  --about-photo:url("assets/portrait-ueber-mich.jpg");
  --lake:url("assets/bieler-see.jpg");
}
*{box-sizing:border-box;}
img{max-width:100%;height:auto;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Open Sans",system-ui,sans-serif;
  font-size:clamp(15.5px,.45vw + 14px,17px);
  line-height:1.65;
  font-weight:400;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* warmth + grain atmosphere */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(120% 90% at 82% -10%, rgba(110,90,151,.10), transparent 55%),
    radial-gradient(100% 80% at 8% 4%, rgba(165,147,197,.08), transparent 50%),
    radial-gradient(140% 120% at 50% 120%, rgba(22,21,30,.05), transparent 60%);
}
body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,56px);position:relative;z-index:1;}

/* type helpers */
.serif{font-family:"Playfair Display",Georgia,serif;font-variation-settings:"opsz" 144,"SOFT" 28,"WONK" 0;}
h1,h2,h3,h4{margin:0;font-weight:500;line-height:1.04;letter-spacing:-.015em;}
.eyebrow{
  font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:var(--accent);display:inline-flex;align-items:center;gap:.7em;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--brass);display:inline-block;}
.eyebrow.center::before,.eyebrow.center::after{content:"";width:26px;height:1px;background:var(--brass);}
.eyebrow.center{justify-content:center;}
.muted{color:var(--ink-soft);}
.faint{color:var(--ink-faint);}

a{color:inherit;}
.btn{
  --bg:var(--accent);--fg:#F7F2E6;
  display:inline-flex;align-items:center;gap:.55em;cursor:pointer;
  font-family:"Open Sans",sans-serif;font-weight:600;font-size:.94rem;letter-spacing:.01em;
  padding:.92em 1.5em;border-radius:999px;border:1px solid transparent;
  background:var(--bg);color:var(--fg);text-decoration:none;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s var(--ease);
  box-shadow:0 1px 0 rgba(22,21,30,.04);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -16px rgba(78,63,122,.6);background:var(--accent-deep);}
.btn .arr{transition:transform .35s var(--ease);}
.btn:hover .arr{transform:translateX(4px);}
.btn.ghost{--bg:transparent;--fg:var(--ink);border-color:var(--line);box-shadow:none;}
.btn.ghost:hover{background:rgba(22,21,30,.04);border-color:var(--ink);box-shadow:none;}

/* ---------- NAV ---------- */
header.nav{position:sticky;top:0;z-index:50;transition:background .4s var(--ease),box-shadow .4s var(--ease),backdrop-filter .4s;}
header.nav.scrolled{background:rgba(247,245,251,.82);backdrop-filter:blur(12px) saturate(140%);box-shadow:0 1px 0 var(--line-soft);}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0;}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;}
.mono{
  width:42px;height:42px;border-radius:50%;border:1px solid var(--accent);
  display:grid;place-items:center;flex:0 0 auto;color:var(--accent);
  font-family:"Playfair Display",serif;font-variation-settings:"opsz" 40,"SOFT" 40;font-weight:500;font-size:1.04rem;letter-spacing:.01em;
  transition:background .3s var(--ease),color .3s var(--ease);
}
.brand:hover .mono{background:var(--accent);color:#F7F2E6;}
.brand .logo-mark{width:50px;height:50px;flex:0 0 auto;display:block;transition:transform .4s var(--ease);}
.brand:hover .logo-mark{transform:scale(1.07);}
.persona-badge .logo-mark{width:38px;height:38px;flex:0 0 auto;}
.ft-logo{display:flex;align-items:center;gap:13px;margin-bottom:12px;}
.ft-logo .logo-mark-ft{width:42px;height:42px;flex:0 0 auto;filter:brightness(1.35) saturate(.9);}
.mobile-menu .logo-mark-mm{width:60px;height:60px;display:block;margin:4px auto 10px;}
.brand .bn{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 30,"SOFT" 24;font-weight:500;font-size:1.06rem;letter-spacing:-.01em;line-height:1;}
.brand .bs{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);}
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a.link{font-size:.86rem;font-weight:500;letter-spacing:.02em;text-decoration:none;color:var(--ink-soft);position:relative;padding:4px 0;}
.nav-links a.link::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--accent);transition:width .35s var(--ease);}
.nav-links a.link:hover{color:var(--ink);}
.nav-links a.link:hover::after{width:100%;}
.nav-cta{display:flex;align-items:center;gap:14px;}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:10px;padding:9px;cursor:pointer;}
.burger span{display:block;width:20px;height:1.6px;background:var(--ink);margin:4px 0;transition:.3s;}

/* ---------- HERO ---------- */
.hero{position:relative;padding:clamp(48px,8vw,104px) 0 clamp(40px,6vw,72px);}
.hero-glyph{
  position:absolute;right:-4%;top:-6%;font-family:"Playfair Display",serif;font-variation-settings:"opsz" 144,"SOFT" 60,"WONK" 1;
  font-size:clamp(20rem,42vw,46rem);line-height:.7;color:var(--accent);opacity:.045;pointer-events:none;user-select:none;z-index:0;
}
.hero-in{position:relative;z-index:1;max-width:980px;}
.hero h1{
  font-family:"Playfair Display",serif;font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 0;
  font-weight:480;font-size:clamp(2.7rem,7.4vw,6.1rem);line-height:.98;letter-spacing:-.025em;
  margin:.42em 0 .04em;
}
.hero h1 em{font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 50,"WONK" 1;color:var(--accent);}
.hero .lede{font-size:clamp(1.06rem,1.6vw,1.32rem);max-width:46ch;margin:.9em 0 0;color:var(--ink-soft);line-height:1.55;}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:2.1em;}
.hero-meta{margin-top:2.4em;display:flex;gap:30px;flex-wrap:wrap;font-size:.82rem;color:var(--ink-faint);letter-spacing:.02em;}
.hero-meta span{display:inline-flex;align-items:center;gap:.5em;}
.hero-meta span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brass);}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);margin-top:clamp(40px,6vw,68px);}
.pillar{padding:30px 30px 30px 0;border-right:1px solid var(--line-soft);}
.pillar:last-child{border-right:0;padding-right:0;}
.pillar .pn{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 30;color:var(--brass);font-size:.82rem;letter-spacing:.04em;}
.pillar h3{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 60,"SOFT" 20;font-weight:500;font-size:1.34rem;margin:.5em 0 .35em;letter-spacing:-.01em;}
.pillar p{margin:0;font-size:.92rem;color:var(--ink-soft);line-height:1.55;}

/* ---------- SECTION SHELL ---------- */
section{position:relative;z-index:1;}
.sec{padding:clamp(56px,9vw,118px) 0;}
.sec-head{max-width:760px;margin-bottom:clamp(34px,5vw,56px);}
.sec-head h2{
  font-family:"Playfair Display",serif;font-variation-settings:"opsz" 144,"SOFT" 26;
  font-weight:480;font-size:clamp(2.1rem,4.6vw,3.5rem);letter-spacing:-.02em;margin:.32em 0 0;line-height:1.02;
}
.sec-head p{margin:1.1em 0 0;color:var(--ink-soft);font-size:1.04rem;max-width:62ch;line-height:1.6;}
.sec-no{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 30;color:var(--brass);font-size:.86rem;letter-spacing:.16em;}

.divider{height:1px;background:var(--line);border:0;margin:0;}

/* sub-head inside a section */
.subhead{display:flex;align-items:baseline;gap:16px;margin:clamp(40px,5vw,58px) 0 24px;flex-wrap:wrap;}
.subhead .k{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 60,"SOFT" 18;font-weight:500;font-size:clamp(1.4rem,2.6vw,1.95rem);letter-spacing:-.012em;}
.subhead .sub{font-size:.9rem;color:var(--ink-faint);letter-spacing:.01em;}

/* ---------- RATE LIST (hourly / project tables) ---------- */
.rate-list{border-top:1px solid var(--line);}
.rate-row{
  display:grid;grid-template-columns:1.15fr auto;gap:18px 28px;align-items:start;
  padding:20px 0;border-bottom:1px solid var(--line-soft);transition:padding-left .35s var(--ease);
}
.rate-row:hover{padding-left:10px;}
.rate-row .rl .nm{font-weight:600;font-size:1.04rem;letter-spacing:-.005em;}
.rate-row .rl .hint{font-size:.86rem;color:var(--ink-soft);margin-top:.28em;line-height:1.5;max-width:60ch;}
.rate-row .price{
  font-family:"Playfair Display",serif;font-variation-settings:"opsz" 60,"SOFT" 12;font-weight:500;
  font-size:clamp(1.12rem,1.8vw,1.4rem);white-space:nowrap;text-align:right;letter-spacing:-.01em;
}
.rate-row .price .u{display:block;font-family:"Open Sans",sans-serif;font-weight:500;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:.25em;}
.note{font-size:.84rem;color:var(--ink-faint);margin-top:18px;display:flex;gap:.6em;align-items:flex-start;line-height:1.5;}
.note::before{content:"§";font-family:"Playfair Display",serif;color:var(--brass);font-size:.95rem;line-height:1.4;}

/* ---------- PLAN CARDS ---------- */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.plan{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:30px 28px 30px;display:flex;flex-direction:column;position:relative;overflow:hidden;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease);
}
.plan:hover{transform:translateY(-5px);box-shadow:0 24px 48px -28px rgba(22,21,30,.4);border-color:var(--ink);}
.plan .plabel{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);}
.plan .pname{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 72,"SOFT" 20;font-weight:500;font-size:1.42rem;margin:.55em 0 0;letter-spacing:-.012em;line-height:1.08;}
.plan .pscope{font-size:.84rem;color:var(--ink-faint);margin-top:.45em;letter-spacing:.01em;}
.plan .pprice{display:flex;align-items:baseline;gap:.3em;margin:1.05em 0 .15em;flex-wrap:wrap;}
.plan .pprice .amt{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 144,"SOFT" 14;font-weight:500;font-size:clamp(1.9rem,3.6vw,2.45rem);letter-spacing:-.02em;line-height:1;}
.plan .pprice .per{font-size:.86rem;color:var(--ink-soft);font-weight:500;}
.plan .pideal{font-size:.86rem;color:var(--ink-soft);margin:.4em 0 0;padding-bottom:18px;border-bottom:1px solid var(--line-soft);}
.plan .pideal b{font-weight:600;color:var(--ink);}
.plist{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:11px;flex:1;}
.plist li{display:flex;gap:.65em;align-items:flex-start;font-size:.9rem;color:var(--ink-soft);line-height:1.45;}
.plist li svg{flex:0 0 auto;margin-top:.2em;}
.plan .pcta{margin-top:24px;}
.plan .pcta a{
  display:flex;justify-content:space-between;align-items:center;width:100%;
  padding:.82em 1.1em;border-radius:10px;border:1px solid var(--line);text-decoration:none;
  font-weight:600;font-size:.9rem;color:var(--ink);transition:.3s var(--ease);
}
.plan .pcta a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.plan .pcta a .arr{transition:transform .3s var(--ease);}
.plan .pcta a:hover .arr{transform:translateX(4px);}

/* featured */
.plan.feat{background:var(--accent);border-color:var(--accent);color:#EDE6D5;box-shadow:0 26px 56px -30px rgba(78,63,122,.85);}
.plan.feat:hover{transform:translateY(-8px);box-shadow:0 34px 64px -28px rgba(78,63,122,.9);border-color:var(--accent);}
.plan.feat .plabel{color:var(--brass-soft);}
.plan.feat .pname,.plan.feat .pprice .amt{color:#FCF8EE;}
.plan.feat .pscope,.plan.feat .pprice .per,.plan.feat .pideal,.plan.feat .plist li{color:#D7D2C2;}
.plan.feat .pideal{border-color:rgba(247,242,230,.18);}
.plan.feat .pideal b{color:#FCF8EE;}
.plan.feat .pcta a{border-color:rgba(247,242,230,.28);color:#FCF8EE;}
.plan.feat .pcta a:hover{background:#F7F2E6;color:var(--accent-deep);border-color:#F7F2E6;}
.plan.feat .badge{
  position:absolute;top:18px;right:18px;font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent-deep);background:var(--brass-soft);padding:.42em .8em;border-radius:999px;
}
.plan .badge.alt{position:absolute;top:18px;right:18px;font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);border:1px solid var(--brass);padding:.4em .78em;border-radius:999px;}

/* business vs privat band */
.band{position:relative;}
.band.privat{background:var(--paper-2);}
.band.privat::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,21,30,.025),transparent 30%);pointer-events:none;}

/* avg tag for privat packages */
.avgtag{font-size:.72rem;font-weight:600;letter-spacing:.05em;color:var(--brass);text-transform:uppercase;margin-top:.3em;}

/* ---------- ABOUT ---------- */
.about{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(34px,6vw,80px);align-items:center;}
.about-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(28px,4vw,42px);
  position:relative;
}
.about-card .quote{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 144,"SOFT" 32;font-weight:420;font-style:italic;font-size:clamp(1.45rem,2.7vw,2.05rem);line-height:1.22;letter-spacing:-.015em;}
.about-card .quote::first-letter{color:var(--accent);}
.about-card .sig{margin-top:1.6em;display:flex;align-items:center;gap:14px;}
.about-card .sig .nm{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 40,"SOFT" 20;font-weight:500;font-size:1.05rem;}
.about-card .sig .ro{font-size:.78rem;color:var(--ink-faint);letter-spacing:.02em;}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:22px;}
.about-stats .st{background:var(--surface);padding:20px 22px;}
.about-stats .st .v{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 72,"SOFT" 16;font-weight:500;font-size:1.7rem;color:var(--accent);letter-spacing:-.01em;}
.about-stats .st .l{font-size:.8rem;color:var(--ink-soft);margin-top:.2em;}
.about-text h2{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 144,"SOFT" 26;font-weight:480;font-size:clamp(1.9rem,4vw,3rem);letter-spacing:-.02em;line-height:1.04;margin:.3em 0 0;}
.about-text p{color:var(--ink-soft);font-size:1.04rem;line-height:1.65;margin:1.1em 0 0;}

/* ---------- PHOTO PLACEHOLDERS ---------- */
.ph{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:linear-gradient(150deg,var(--accent-tint),var(--paper-2));display:grid;place-items:center;}
.ph::before{content:"";position:absolute;inset:9px;border:1px solid rgba(165,147,197,.35);border-radius:calc(var(--r) - 5px);pointer-events:none;z-index:3;}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:2;}
.ph-label{position:relative;z-index:1;text-align:center;color:var(--ink-faint);padding:24px;}
.ph-label .t{display:block;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;margin-top:.85em;}
.ph.portrait{aspect-ratio:4/5;}
.ph.wide{aspect-ratio:4/3;}
.ph.photo-hero{background:var(--hero-photo) center 8%/cover no-repeat;}
.ph.photo-about{background:var(--about-photo) center 12%/cover no-repeat;}
.ph.photo-hero .ph-label,.ph.photo-about .ph-label{display:none;}
.ph.lake{background:var(--lake) center/cover;aspect-ratio:3/2;}
.gallery figcaption{color:var(--ink-faint);font-size:.93rem;margin-top:.9em;text-align:center;letter-spacing:.01em;}
.values .vtext{display:inline;}

/* ---------- HERO PORTRAIT ---------- */
.hero-grid{display:grid;grid-template-columns:1.32fr .68fr;gap:clamp(28px,5vw,60px);align-items:center;}
.hero-portrait{position:relative;animation:rise .95s var(--ease) both;animation-delay:.46s;}
.hero-portrait .tag{position:absolute;left:-12px;bottom:26px;background:var(--accent);color:#F7F2E6;font-family:"Playfair Display",serif;font-variation-settings:"opsz" 30,"SOFT" 20;font-size:.84rem;letter-spacing:.01em;padding:.55em 1.05em;border-radius:999px;box-shadow:0 16px 32px -18px rgba(78,63,122,.8);z-index:4;}

/* ---------- PERSONA / ÜBER MICH ---------- */
.persona{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(30px,5vw,72px);align-items:start;}
.persona-photo{position:relative;}
.persona-badge{display:flex;align-items:center;gap:12px;margin:-30px 0 0 24px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:9px 20px 9px 11px;width:max-content;max-width:calc(100% - 24px);box-shadow:0 16px 34px -22px rgba(22,21,30,.55);position:relative;z-index:5;}
.persona-badge .mono{width:38px;height:38px;font-size:.9rem;}
.persona-badge .nm{font-size:1rem;line-height:1;}
.persona-badge .ro{font-size:.72rem;color:var(--ink-faint);letter-spacing:.02em;}
.persona-text .lead{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 144,"SOFT" 32,"WONK" 0;font-style:italic;font-weight:420;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.2;letter-spacing:-.015em;margin:0 0 1.1em;color:var(--ink);}
.persona-text .lead::first-letter{color:var(--accent);}
.persona-text p{color:var(--ink-soft);font-size:1.05rem;line-height:1.66;margin:0 0 1.05em;}
.persona-text p b{color:var(--ink);font-weight:600;}
.edit{color:var(--brass);border-bottom:1px dashed var(--brass-soft);}
.values{list-style:none;margin:1.5em 0 0;padding:0;display:flex;flex-direction:column;gap:13px;}
.values li{display:flex;gap:.7em;align-items:flex-start;font-size:.98rem;color:var(--ink-soft);line-height:1.45;}
.values li b{color:var(--ink);font-weight:600;}
.values li svg{flex:0 0 auto;margin-top:.2em;}

/* ---------- GALLERY ---------- */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.gallery figure{margin:0;}
.gallery figure .ph{transition:transform .45s var(--ease),box-shadow .45s var(--ease);}
.gallery figure:hover .ph{transform:translateY(-4px);box-shadow:0 22px 44px -28px rgba(22,21,30,.4);}
.gallery figcaption{margin-top:.75em;font-size:.84rem;line-height:1.4;}

@media (max-width:880px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-portrait{max-width:330px;margin-top:8px;}
  .persona{grid-template-columns:1fr;}
  .persona-photo{max-width:380px;}
  .gallery{grid-template-columns:1fr;max-width:430px;}
}

/* ---------- CONTACT ---------- */
.contact{background:var(--accent);color:#EDE6D5;border-radius:clamp(16px,3vw,28px);padding:clamp(40px,6vw,76px) clamp(28px,5vw,68px);position:relative;overflow:hidden;}
.contact::before{content:"";position:absolute;right:-6%;bottom:-30%;font-family:"Playfair Display",serif;font-size:30rem;opacity:.05;}
.contact .cglyph{position:absolute;right:-2%;top:-30%;font-family:"Playfair Display",serif;font-variation-settings:"opsz" 144,"SOFT" 60,"WONK" 1;font-size:clamp(16rem,30vw,34rem);line-height:.7;color:#F7F2E6;opacity:.05;pointer-events:none;}
.contact .eyebrow{color:var(--brass-soft);}
.contact .eyebrow::before{background:var(--brass-soft);}
.contact h2{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 0;font-weight:460;font-size:clamp(2.1rem,5vw,3.7rem);letter-spacing:-.025em;line-height:1.02;color:#FCF8EE;margin:.35em 0 0;max-width:18ch;position:relative;z-index:1;}
.contact h2 em{font-style:italic;color:var(--brass-soft);font-variation-settings:"opsz" 144,"SOFT" 50,"WONK" 1;}
.contact p{color:#D7D2C2;font-size:1.06rem;line-height:1.6;max-width:52ch;margin:1.1em 0 0;position:relative;z-index:1;}
.contact-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:2em;position:relative;z-index:1;}
.btn.light{--bg:#F7F2E6;--fg:var(--accent-deep);}
.btn.light:hover{--bg:#fff;box-shadow:0 16px 34px -18px rgba(0,0,0,.5);}
.btn.outline-light{--bg:transparent;--fg:#F7F2E6;border-color:rgba(247,242,230,.35);box-shadow:none;}
.btn.outline-light:hover{background:rgba(247,242,230,.1);border-color:#F7F2E6;box-shadow:none;}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(247,242,230,.18);border:1px solid rgba(247,242,230,.18);border-radius:var(--r);overflow:hidden;margin-top:2.6em;position:relative;z-index:1;}
.contact-grid .ci{background:var(--accent);padding:22px 24px;}
.contact-grid .ci .lab{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-soft);}
.contact-grid .ci .val{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 40,"SOFT" 16;font-weight:500;font-size:1.06rem;margin-top:.4em;color:#FCF8EE;word-break:break-word;}

/* ---------- FOOTER ---------- */
footer.ft{padding:clamp(40px,6vw,64px) 0 48px;}
.ft-top{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-start;}
.ft-brand .bn{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 40,"SOFT" 24;font-weight:500;font-size:1.3rem;}
.ft-brand p{color:var(--ink-soft);font-size:.9rem;max-width:34ch;margin:.8em 0 0;line-height:1.55;}
.ft-cols{display:flex;gap:clamp(28px,5vw,64px);flex-wrap:wrap;}
.ft-col h4{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin-bottom:14px;}
.ft-col a{display:block;text-decoration:none;color:var(--ink-soft);font-size:.92rem;padding:5px 0;transition:color .25s;}
.ft-col a:hover{color:var(--accent);}
.ft-fine{margin-top:clamp(34px,5vw,52px);padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:.8rem;color:var(--ink-faint);line-height:1.6;}
.legal-note{max-width:70ch;font-size:.82rem;color:var(--ink-faint);background:rgba(22,21,30,.03);border:1px solid var(--line-soft);border-radius:12px;padding:16px 20px;margin-top:26px;line-height:1.6;}

/* ---------- AGB ---------- */
.agb-wrap{max-width:860px;}
.agb-note{font-size:.86rem;color:var(--ink-soft);background:rgba(165,147,197,.08);border:1px solid rgba(165,147,197,.3);border-radius:12px;padding:16px 20px;line-height:1.6;margin-bottom:16px;}
.agb-note b{color:var(--ink);}
.agb details{border-bottom:1px solid var(--line-soft);}
.agb details:first-child{border-top:1px solid var(--line);}
.agb summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:20px 2px;font-family:"Playfair Display",serif;font-variation-settings:"opsz" 48,"SOFT" 16;font-weight:500;font-size:1.12rem;letter-spacing:-.01em;color:var(--ink);transition:color .25s;}
.agb summary::-webkit-details-marker{display:none;}
.agb summary:hover{color:var(--accent);}
.agb summary .sx{font-family:"Playfair Display",serif;color:var(--brass);font-size:.82rem;margin-right:.55em;font-variation-settings:"opsz" 20;}
.agb summary .plus{flex:0 0 auto;font-family:"Open Sans",sans-serif;font-weight:400;font-size:1.35rem;color:var(--accent);line-height:1;transition:transform .35s var(--ease);}
.agb details[open] summary .plus{transform:rotate(45deg);}
.agb .agb-body{padding:0 2px 24px;color:var(--ink-soft);font-size:.97rem;line-height:1.68;max-width:74ch;}
.agb .agb-body p{margin:0 0 .8em;}
.agb .agb-body p:last-child{margin-bottom:0;}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.08s;}
.reveal.d2{transition-delay:.16s;}
.reveal.d3{transition-delay:.24s;}
.reveal.d4{transition-delay:.32s;}

/* hero staggered load */
@keyframes rise{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
.hero-in > *{animation:rise .95s var(--ease) both;}
.hero-in > *:nth-child(1){animation-delay:.05s;}
.hero-in > *:nth-child(2){animation-delay:.16s;}
.hero-in > *:nth-child(3){animation-delay:.27s;}
.hero-in > *:nth-child(4){animation-delay:.38s;}
.hero-in > *:nth-child(5){animation-delay:.49s;}
.pillar{animation:rise .95s var(--ease) both;}
.pillar:nth-child(1){animation-delay:.55s;}
.pillar:nth-child(2){animation-delay:.66s;}
.pillar:nth-child(3){animation-delay:.77s;}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  .reveal{opacity:1;transform:none;}
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:880px){
  .plans{grid-template-columns:1fr;}
  .plan.feat{order:-1;}
  .about{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .pillars{grid-template-columns:1fr;}
  .pillar{border-right:0;border-bottom:1px solid var(--line-soft);padding:24px 0;}
  .pillar:last-child{border-bottom:0;}
  .nav-links,.nav-cta .btn{display:none;}
  .burger{display:block;}
  .mobile-menu.open ~ * {}
}
@media (max-width:560px){
  .brand .logo-mark{width:44px;height:44px;}
  .rate-row{grid-template-columns:1fr;gap:6px;}
  .rate-row .price{text-align:left;}
  .hero-meta{gap:14px 22px;}
}

/* mobile menu */
.mobile-menu{display:none;}
.mobile-menu.open{display:block;position:fixed;inset:0;z-index:60;background:var(--paper);padding:90px 28px 40px;}
.mobile-menu a{display:block;font-family:"Playfair Display",serif;font-variation-settings:"opsz" 60,"SOFT" 20;font-weight:500;font-size:2rem;padding:14px 0;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-soft);}
.mobile-menu .mclose{position:absolute;top:24px;right:24px;background:none;border:1px solid var(--line);border-radius:10px;width:42px;height:42px;cursor:pointer;font-size:1.4rem;color:var(--ink);}
.mobile-menu .btn{margin-top:24px;width:100%;justify-content:center;}

/* ---------- KOSTEN ---------- */
.pl-back{display:inline-flex;align-items:center;gap:.5em;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;margin-bottom:clamp(18px,3vw,30px);transition:color .3s var(--ease),gap .3s var(--ease);}
.pl-back:hover{color:var(--accent);gap:.8em;}
.pl-back .arr{transition:transform .3s var(--ease);}
.pl-back:hover .arr{transform:translateX(-3px);}
.kosten-deeper{margin-top:clamp(26px,4vw,40px);padding-top:clamp(20px,3vw,28px);border-top:1px solid var(--line-soft);}
.kosten-deeper a{display:inline-flex;align-items:center;gap:.55em;font-size:.95rem;color:var(--accent);text-decoration:none;font-weight:500;transition:gap .3s var(--ease);}
.kosten-deeper a:hover{gap:.9em;}
.kosten-deeper .arr{transition:transform .3s var(--ease);}
.kosten-deeper a:hover .arr{transform:translateX(4px);}
.kosten-deeper .hint{display:block;font-size:.82rem;color:var(--ink-faint);margin-top:.4em;}
.kost-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,64px);align-items:start;}
.kfact-list{border-top:1px solid var(--line);}
.kfact{padding:20px 0;border-bottom:1px solid var(--line-soft);transition:padding-left .35s var(--ease);}
.kfact:hover{padding-left:10px;}
.kfact .nm{font-weight:600;font-size:1.04rem;letter-spacing:-.005em;}
.kfact .hint{font-size:.88rem;color:var(--ink-soft);margin-top:.3em;line-height:1.55;max-width:62ch;}
.klogic{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(26px,3.4vw,38px);box-shadow:0 22px 44px -30px rgba(22,21,30,.35);position:sticky;top:96px;}
.klogic h3{font-family:"Playfair Display",serif;font-variation-settings:"opsz" 60,"SOFT" 20;font-weight:500;font-size:1.34rem;margin:0 0 .8em;letter-spacing:-.01em;}
.klogic ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px;}
.klogic li{display:flex;gap:.65em;align-items:flex-start;font-size:.92rem;color:var(--ink-soft);line-height:1.5;}
.klogic li::before{content:"";flex:0 0 auto;width:14px;height:14px;margin-top:.22em;background:no-repeat center/contain url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="%236E5A97" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>');}
.kost-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(30px,4vw,44px);}
@media (max-width:880px){
  .kost-grid{grid-template-columns:1fr;}
  .klogic{position:static;}
}

/* legal prose */
.legal-prose{max-width:760px;}
.legal-prose p{color:var(--ink-soft);font-size:1.02rem;line-height:1.75;margin:0 0 1.1em;}
.legal-prose p b{color:var(--ink);font-weight:600;}
.legal-prose a{color:var(--accent);}
/* language switcher */
.lang{display:inline-flex;align-items:center;gap:7px;font-size:.74rem;font-weight:600;letter-spacing:.08em;color:var(--ink-faint);margin-right:4px;}
.lang button{background:none;border:0;cursor:pointer;color:var(--ink-faint);font:inherit;letter-spacing:inherit;padding:3px 1px;transition:color .2s;}
.lang button.on{color:var(--accent);}
.lang button:hover{color:var(--ink);}
.lang i{font-style:normal;opacity:.35;}
@media (max-width:880px){ .nav-cta .lang{display:none;} }
.mobile-menu .lang{display:flex;margin:0 0 22px;font-size:1.05rem;gap:14px;}

/* 4-col stats grid */
.stats-4{grid-template-columns:repeat(4,1fr);}

/* ---------- RESPONSIVE FIXES ---------- */
@media (max-width:880px){
  .stats-4{grid-template-columns:repeat(2,1fr);}
  .ft-top{flex-direction:column;}
  .ft-cols{gap:28px 40px;}
  .ft-fine{flex-direction:column;gap:10px;}
  .contact-actions{gap:10px;}
  .persona-badge{margin-left:0;}
}
@media (max-width:560px){
  .stats-4{grid-template-columns:1fr 1fr;}
  .about-stats{grid-template-columns:1fr 1fr;}
  .ft-cols{flex-direction:column;gap:24px;}
  .contact h2{font-size:clamp(1.6rem,6vw,2.4rem);}
  .contact{padding:clamp(28px,5vw,40px) clamp(20px,4vw,32px);}
  .contact-actions{flex-direction:column;}
  .contact-actions .btn{width:100%;justify-content:center;text-align:center;}
  .contact-grid{grid-template-columns:1fr;}
  .hero h1{font-size:clamp(2rem,8vw,2.7rem);}
  .hero .lede{font-size:1rem;}
  .hero-meta{flex-direction:column;gap:10px;}
  .hero-cta{flex-direction:column;}
  .hero-cta .btn{width:100%;justify-content:center;text-align:center;}
  .hero-portrait{max-width:260px;}
  .sec-head h2{font-size:clamp(1.6rem,6vw,2.4rem);}
  .subhead .k{font-size:clamp(1.2rem,4vw,1.6rem);}
  .persona-badge{padding:8px 14px 8px 8px;gap:8px;}
  .persona-badge .nm{font-size:.88rem;}
  .persona-text .lead{font-size:clamp(1.15rem,4vw,1.5rem);}
  .plan{padding:24px 20px;}
  .kost-cta{flex-direction:column;}
  .kost-cta .btn{width:100%;justify-content:center;}
  .mobile-menu a{font-size:1.5rem;padding:12px 0;}
  .agb summary{font-size:.98rem;padding:16px 2px;}
  .legal-prose p{font-size:.95rem;}
}
@media (max-width:380px){
  .wrap{padding:0 16px;}
  .brand .logo-mark{width:38px;height:38px;}
  .brand .bn{font-size:.92rem;}
  .brand .bs{font-size:.58rem;}
  .plan .pprice .amt{font-size:1.6rem;}
  .contact-grid .ci{padding:16px 18px;}
}

/* multipage additions */
.nav-links a.active{color:var(--accent);}
.mobile-menu a.active{color:var(--accent);}
