:root{
    --bg: #FFFFFF;
    --bg-deep: #F7F1E6;
    --surface: #FFFFFF;
    --gold-weak: #F3E4BE;
    --gold-strong: #E7CB8E;
    --heading: #1B6E68;
    --ink: #2B2A27;
    --text-muted: #6F6A5D;
    --gold-1: #F0D48A;
    --gold-2: #C9A24A;
    --gold-3: #9C7A2E;
    --gold-4: #7A5F22;
    --gold: #B8863B;
    --gold-soft: #EBDCB6;
    --gold-line: rgba(184,134,59,0.35);
    --teal-1: #5FD0C6;
    --teal-2: #1F8F86;
    --teal: #2C8F86;
    --teal-soft: #D3ECE8;
    --line: rgba(43,42,39,0.09);
    --radius: 20px;
    --shadow: 0 20px 50px rgba(122,95,34,0.10);
  }
  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0;
    background: var(--bg);
    color: var(--ink);
    font-family:'Jost', sans-serif;
    font-weight:300;
    line-height:1.75;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Cormorant Garamond', serif;
    font-weight:500;
    margin:0;
    color:var(--heading);
  }
  .brand-name{ color:var(--heading); }
  p{ margin:0; }
  a{ color:inherit; }
  img,svg{ display:block; max-width:100%; }
  :focus-visible{ outline:2px solid var(--teal); outline-offset:3px; }
  .wrap{ max-width:1120px; margin:0 auto; padding:0 28px; }
  .eyebrow{
    font-family:'Jost', sans-serif;
    font-size:0.72rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--teal);
    display:block;
  }
  .center{ text-align:center; }

  .gold-text{
    background: linear-gradient(120deg, var(--gold-1), var(--gold-2) 40%, var(--gold-3) 70%, var(--gold-4));
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }

  /* decorative dot divider, echoes the logo's dot-ring motif */
  .dot-divider{ display:flex; align-items:center; justify-content:center; gap:7px; margin:0 0 6px; }
  .dot-divider span{ display:block; border-radius:50%; background: linear-gradient(135deg, var(--gold-1), var(--gold-4)); }
  .dot-divider span:nth-child(1){ width:3px; height:3px; opacity:.45; }
  .dot-divider span:nth-child(2){ width:5px; height:5px; opacity:.7; }
  .dot-divider span:nth-child(3){ width:7px; height:7px; }
  .dot-divider span:nth-child(4){ width:5px; height:5px; opacity:.7; }
  .dot-divider span:nth-child(5){ width:3px; height:3px; opacity:.45; }

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:20;
    background: rgba(243,228,190,0.92);
    backdrop-filter: blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav{ display:flex; align-items:center; justify-content:space-between; padding:16px 0; }
  .brand{ display:flex; align-items:center; gap:12px; line-height:1.1; }
  .brand-logo{ width:34px; height:auto; }
  .brand-name{
    font-family:'Jost', sans-serif; font-weight:500; font-size:1.05rem;
    letter-spacing:0.16em;
  }
  .brand-sub{ font-size:0.6rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--text-muted); margin-top:3px; }
  .navlinks{ display:flex; gap:32px; }
  .navlinks a{
    font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase;
    text-decoration:none; color:var(--text-muted); transition:color .2s ease;
    position:relative; padding-bottom:2px;
  }
  .navlinks a::after{
    content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
    background:var(--gold-2); transition:right .25s ease;
  }
  .navlinks a:hover{ color:var(--ink); }
  .navlinks a:hover::after{ right:0; }
  @media (max-width:760px){ .navlinks{ display:none; } }

  /* ---------- Hero ---------- */
  .hero{ padding:88px 0 84px; text-align:center; position:relative; overflow:hidden; }
  .hero::before{
    content:""; position:absolute; inset:-20% -10% auto -10%; height:640px;
    background: radial-gradient(ellipse at 50% 10%, var(--teal-soft) 0%, transparent 62%);
    opacity:0.6; pointer-events:none;
  }
  .hero::after{
    content:""; position:absolute; inset:-6% -10% auto -10%; height:520px;
    background: radial-gradient(ellipse at 50% 0%, rgba(240,212,138,0.28) 0%, transparent 55%);
    pointer-events:none;
  }
  .hero-inner{ position:relative; z-index:1; }
  .emblem-img{ width:320px; height:auto; margin:22px auto 8px; }
  .hero-logo-full{ width:340px; height:auto; margin:22px auto 8px; display:block; }
  .wordmark{
    font-family:'Jost', sans-serif; font-weight:300; font-size:clamp(2.2rem, 6vw, 3.4rem);
    letter-spacing:0.34em; padding-left:0.34em; /* balance optical letterspacing */
    margin-top:4px;
  }
  .wordmark-tagline{
    margin-top:16px; font-size:0.78rem; letter-spacing:0.26em; text-transform:uppercase;
    color:var(--teal);
  }
  .method-name{
    margin-top:34px; font-size:2rem; font-style:italic; font-family:'Cormorant Garamond', serif;
  }
  .hero-method{
    margin-top:8px; font-size:0.8rem; letter-spacing:0.24em;
    text-transform:uppercase; color:var(--gold-3);
  }
  .hero-tagline{
    margin:24px auto 0; max-width:46ch; color:var(--text-muted); font-size:1.08rem;
  }
  .hero-ctas{ margin-top:40px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
  .btn{
    font-family:'Jost', sans-serif; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase;
    padding:15px 32px; border-radius:999px; cursor:pointer; text-decoration:none;
    transition:transform .25s ease, box-shadow .25s ease; display:inline-block; border:1px solid transparent;
  }
  .btn-gold{
    background: linear-gradient(120deg, var(--gold-2), var(--gold-4));
    color:#fff; box-shadow:0 10px 24px rgba(154,116,44,0.22);
  }
  .btn-gold:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(154,116,44,0.32); }
  .btn-outline{ border-color:var(--ink); color:var(--ink); background:transparent; }
  .btn-outline:hover{ border-color:var(--teal); color:var(--teal); transform:translateY(-2px); }

  /* ---------- Philosophy ---------- */
  .philosophy{ padding:78px 0; border-top:1px solid var(--line); }
  .philosophy-grid{ display:grid; grid-template-columns: 0.9fr 1.4fr; gap:56px; align-items:start; }
  .philosophy h2{ font-size:2.1rem; font-style:italic; max-width:11ch; }
  .philosophy-text{ color:var(--text-muted); }
  .philosophy-text p + p{ margin-top:16px; }
  .philosophy-text strong{ color:var(--heading); font-weight:500; }
  @media (max-width:820px){ .philosophy-grid{ grid-template-columns:1fr; gap:22px; } }

  /* ---------- Outcomes ---------- */
  .outcomes{ padding:78px 0; border-top:1px solid var(--line); background:var(--gold-strong); }
  .outcome-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:22px; margin-top:44px; }
  @media (min-width:1100px){ .outcome-grid{ grid-template-columns:repeat(5,1fr); } }
  .outcome-card{
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
    padding:28px 24px; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  }
  .outcome-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--gold-line); }
  .outcome-num{
    width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    background: linear-gradient(135deg, var(--gold-1), var(--gold-4)); color:#fff;
    font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.05rem; margin-bottom:18px;
  }
  .outcome-card h3{ font-size:1.32rem; font-style:italic; margin-bottom:10px; }
  .outcome-card p{ color:var(--text-muted); font-size:0.9rem; }
  @media (max-width:920px){ .outcome-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .outcome-grid{ grid-template-columns:1fr; } }

  /* ---------- Program overview cards ---------- */
  .programs-overview{ padding:78px 0; border-top:1px solid var(--line); background:var(--gold-strong); }
  .section-head{ max-width:60ch; margin-bottom:48px; }
  .section-head h2{ font-size:2.2rem; font-style:italic; margin-top:10px; }
  .overview-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
  .overview-card{
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
    padding:30px; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  }
  .overview-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--gold-line); }
  .overview-img{
    aspect-ratio:1/1; border-radius:14px; margin-bottom:22px;
    background: radial-gradient(ellipse at 30% 20%, rgba(240,212,138,0.5), transparent 60%), linear-gradient(135deg, var(--teal-soft), #fff);
    border:1px solid var(--gold-line);
    display:flex; align-items:center; justify-content:center;
    color:var(--gold-3); font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase;
  }
  .overview-img-photo{
    width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:14px; margin-bottom:22px;
  }
  .overview-card h3{ font-size:1.55rem; font-style:italic; margin-bottom:10px; }
  .overview-card p{ color:var(--text-muted); font-size:0.95rem; }
  .overview-card p+p{ margin-top:12px; }
  .overview-card .tag{
    display:inline-block; margin-top:16px; font-size:0.72rem; letter-spacing:0.12em;
    text-transform:uppercase; color:var(--teal);
  }
  @media (max-width:760px){ .overview-grid{ grid-template-columns:1fr; } }

  /* ---------- Detail sections ---------- */
  .detail{ padding:82px 0; border-top:1px solid var(--line); }
  #catering{ background:var(--gold-weak); }
  .detail-head{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:42px; }
  .detail-head h2{ font-size:2.2rem; font-style:italic; }
  .detail-head .meta{ font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-3); }
  .detail-intro{ color:var(--text-muted); max-width:68ch; margin:-20px 0 42px; }
  .detail-intro p+p{ margin-top:16px; }

  .feature-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 40px; }
  .feature{
    display:flex; gap:14px; padding:17px 0; border-bottom:1px solid var(--line);
  }
  .feature .dot{
    width:7px; height:7px; border-radius:50%;
    background: linear-gradient(135deg, var(--teal-1), var(--teal-2));
    margin-top:9px; flex:none;
  }
  .feature h4{ font-family:'Jost', sans-serif; font-weight:500; font-size:0.98rem; margin-bottom:4px; }
  .feature p{ color:var(--text-muted); font-size:0.9rem; }
  @media (max-width:760px){ .feature-grid{ grid-template-columns:1fr; } }

  .group-label{
    margin: 38px 0 8px; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--gold-3);
  }
  .group-label:first-of-type{ margin-top:0; }

  .month-block{ margin-bottom:64px; }
  .month-block:last-child{ margin-bottom:0; }
  .month-photo{
    aspect-ratio:21/9; border-radius:var(--radius); margin-bottom:28px;
    background: radial-gradient(ellipse at 25% 25%, rgba(240,212,138,0.5), transparent 60%), linear-gradient(135deg, var(--teal-soft), #fff);
    border:1px dashed var(--gold-line);
    display:flex; align-items:center; justify-content:center;
    color:var(--gold-3); font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase;
  }
  @media (max-width:640px){ .month-photo{ aspect-ratio:4/3; } }
  .month-photo-img{
    width:100%; aspect-ratio:21/9; object-fit:cover; border-radius:var(--radius); margin-bottom:28px;
  }
  @media (max-width:640px){ .month-photo-img{ aspect-ratio:4/3; } }
  @media (max-width:640px){ .img-innere-arbeit{ object-position: 15% center; } }

  /* ---------- Portrait / about ---------- */
  .about{ padding:82px 0; border-top:1px solid var(--line); background:var(--gold-strong); }
  .about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
  .portrait-frame{
    aspect-ratio:4/5; border-radius:var(--radius);
    background: repeating-linear-gradient(135deg, var(--gold-soft), var(--gold-soft) 10px, #fff 10px, #fff 20px);
    border:1px dashed var(--gold-line);
    display:flex; align-items:center; justify-content:center;
    color:var(--gold-3); font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; text-align:center; padding:20px;
  }
  .portrait-photo{
    width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius);
    box-shadow: var(--shadow);
  }
  .about-text h2{ font-size:2rem; font-style:italic; margin-bottom:16px; }
  .about-text p{ color:var(--text-muted); }
  .about-text p + p{ margin-top:14px; }
  @media (max-width:820px){ .about-grid{ grid-template-columns:1fr; } }

  /* ---------- CTA / Kontakt ---------- */
  .cta{ padding:96px 0; text-align:center; border-top:1px solid var(--line); position:relative; overflow:hidden; }
  .cta::before{
    content:""; position:absolute; inset:0 -10% auto -10%; height:420px;
    background: radial-gradient(ellipse at 50% 0%, var(--teal-soft) 0%, transparent 60%);
    opacity:0.5; pointer-events:none;
  }
  .cta > *{ position:relative; z-index:1; }
  .cta h2{ font-size:clamp(1.9rem,4vw,2.7rem); font-style:italic; max-width:18ch; margin:0 auto; }
  .cta-sub{ margin:18px auto 0; max-width:50ch; color:var(--text-muted); }
  .cta-phone{ margin:22px auto 0; font-size:1.3rem; font-style:italic; }
  .cta-phone a{ color:var(--gold-3); text-decoration:none; }
  .cta-phone a:hover{ text-decoration:underline; }
  .cta-note{ margin:10px auto 0; max-width:50ch; color:var(--text-muted); }
  .cta-badge{ width:150px; height:auto; margin:28px auto 0; display:block; opacity:0.92; }
  .cta-role{ display:block; margin-top:5px; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-3); }
  .cert-row{ display:flex; align-items:center; justify-content:center; gap:26px; margin:18px auto 0; flex-wrap:wrap; }
  .cert-row img{ height:34px; width:auto; object-fit:contain; opacity:0.85; }
  .cert-row img.logo-bdvt{ height:27px; }
  .cta-form{ margin:38px auto 0; max-width:460px; display:grid; gap:12px; text-align:left; }
  .cta-form input, .cta-form textarea{
    width:100%; background:var(--surface); border:1px solid var(--line); border-radius:12px;
    padding:13px 16px; font-family:'Jost', sans-serif; font-size:0.92rem; color:var(--ink);
  }
  .cta-form textarea{ min-height:100px; resize:vertical; }
  .cta-form input:focus, .cta-form textarea:focus{ border-color:var(--teal); }
  .cta-form button{ justify-self:center; margin-top:6px; }
  .cta-msg{
    margin-top:16px; font-size:0.82rem; color:var(--teal); min-height:1.2em; text-align:center;
  }

  footer{ border-top:1px solid var(--line); padding:38px 0; }
  .foot-row{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
  .foot-brand{ display:flex; align-items:center; gap:10px; }
  .foot-brand img{ width:22px; height:auto; }
  .foot-brand-text{ display:flex; flex-direction:column; }
  .foot-brand .brand-name{ font-size:0.92rem; }
  .fineprint{ color:var(--text-muted); font-size:0.78rem; max-width:50ch; }

  .impressum-link{
    font-family:'Jost', sans-serif; font-size:0.78rem; letter-spacing:0.04em;
    color:var(--text-muted); text-decoration:underline; text-underline-offset:2px;
    background:none; border:none; cursor:pointer; padding:0; margin-top:8px; display:inline-block;
  }
  .impressum-link:hover{ color:var(--teal); }
  .impressum-overlay{
    position:fixed; inset:0; background:rgba(43,42,39,0.55); backdrop-filter:blur(2px);
    align-items:center; justify-content:center; padding:24px; z-index:100;
  }
  .impressum-overlay:not([hidden]){ display:flex; }
  .impressum-modal{
    background:var(--surface); border-radius:var(--radius); max-width:480px; width:100%;
    max-height:80vh; overflow-y:auto; padding:36px 34px; box-shadow:var(--shadow);
    position:relative;
  }
  .impressum-modal h3{ font-size:1.5rem; font-style:italic; margin-bottom:18px; }
  .impressum-modal p{ color:var(--text-muted); font-size:0.92rem; margin-bottom:4px; }
  .impressum-block + .impressum-block{ margin-top:14px; }
  .impressum-close{
    position:absolute; top:18px; right:18px; width:30px; height:30px; border-radius:50%;
    border:1px solid var(--line); background:var(--bg); color:var(--ink); cursor:pointer;
    font-size:1rem; line-height:1; display:flex; align-items:center; justify-content:center;
  }
  .impressum-close:hover{ border-color:var(--teal); color:var(--teal); }

  /* scroll reveal */
  .reveal{ opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.is-visible{ opacity:1; transform:none; }

  @media (prefers-reduced-motion: reduce){
    *{ transition-duration:0.01ms !important; animation-duration:0.01ms !important; }
  }
