:root{
    --ink:#14151f;
    --indigo:#33409e;
    --indigo-deep:#232c6e;
    --lilac:#9c86c8;
    --lilac-soft:#eee9f7;
    --paper:#ffffff;
    --grey:#42445a;
    --line:#dcd8ea;
    --radius:26px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top:96px;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Fraunces', serif;
    font-weight:480;
    line-height:1.1;
    margin:0 0 .5em;
    letter-spacing:-.01em;
    color:var(--ink);
  }
  p{margin:0 0 1em; color:var(--grey);}
  a{color:inherit;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
  img{max-width:100%; display:block;}

  /* NAV */
  header.site{
    position:sticky; top:0; z-index:50;
    background:rgba(255,255,255,.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 32px; max-width:1120px; margin:0 auto;
  }
  .brand{
    font-family:'Fraunces', serif; font-size:1.25rem; font-weight:600;
    text-decoration:none; color:var(--ink);
  }
  .navlinks{display:flex; gap:28px; list-style:none; margin:0; padding:0; align-items:center; flex-wrap:wrap; justify-content:flex-end;}
  .navlinks a{text-decoration:none; font-size:.95rem; color:var(--ink);}
  .navlinks a.nav-call{
    display:inline-flex; align-items:center; gap:6px;
    background:var(--indigo); color:#fff;
    padding:9px 18px; border-radius:999px;
    font-weight:500; font-size:.9rem;
    transition:background .15s ease;
  }
  .navlinks a.nav-call:hover{background:var(--indigo-deep);}
  .navtoggle{display:none;}
  @media (max-width:760px){
    .navlinks{gap:14px;}
  }
  @media (max-width:640px){
    nav{flex-direction:column; align-items:flex-start; gap:12px; padding:16px 20px;}
    .navlinks{width:100%; justify-content:space-between; gap:4px; flex-wrap:nowrap;}
    .navlinks li{flex:0 0 auto;}
    .navlinks a{padding:10px 6px; font-size:.85rem; display:inline-block;}
    .navlinks a.nav-call{padding:10px 14px; font-size:.85rem; white-space:nowrap;}
  }
  @media (max-width:360px){
    .navlinks a{font-size:.78rem; padding:10px 4px;}
    .navlinks a.nav-call{padding:9px 10px; font-size:.78rem;}
  }

  /* HERO */
  .hero{padding:76px 0 40px;}
  .hero-grid{
    display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;
  }
  .hero h1{font-size:clamp(2.1rem, 4vw, 3.15rem); color:var(--ink);}
  .hero .lede{font-size:1.15rem; max-width:46ch; color:var(--grey);}
  .cta-row{display:flex; gap:16px; margin-top:32px; flex-wrap:wrap;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:14px 26px; border-radius:999px; text-decoration:none;
    font-size:.98rem; font-weight:500; border:1.5px solid transparent;
    transition:transform .15s ease, background .15s ease;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-primary{background:var(--indigo); color:#fff;}
  .btn-primary:hover{background:var(--indigo-deep);}
  .btn-ghost{border-color:var(--ink); color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:#fff;}
  .cta-note{margin-top:14px; font-size:.88rem; color:var(--grey);}

  .portrait-wrap{position:relative;}
  .portrait-blob{
    position:absolute; inset:-8% -14% -14% -8%;
    background:linear-gradient(155deg, var(--lilac) 0%, var(--indigo) 100%);
    border-radius:44% 56% 62% 38% / 46% 40% 60% 54%;
    z-index:0;
  }
  .portrait-wrap img{
    position:relative; z-index:1;
    border-radius:40% 60% 58% 42% / 44% 38% 62% 56%;
    width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 12%;
    box-shadow:0 30px 60px -25px rgba(35,44,110,.45);
  }
  @media (max-width:860px){
    .hero-grid{grid-template-columns:1fr; gap:40px;}
    .portrait-wrap{max-width:340px; margin:0 auto;}
  }

  section{padding:86px 0;}
  .section-head{max-width:56ch; margin-bottom:44px;}
  .section-head h2{font-size:clamp(1.7rem, 3vw, 2.35rem);}

  /* ABOUT */
  .about{border-top:1px solid var(--line);}
  .about-grid{display:grid; grid-template-columns:1.3fr .9fr; gap:64px;}
  .about p{font-size:1.05rem;}
  .credentials{list-style:none; margin:8px 0 0; padding:0; border-top:1px solid var(--line);}
  .credentials li{
    padding:16px 0; border-bottom:1px solid var(--line);
    display:flex; justify-content:space-between; gap:16px; font-size:.98rem;
  }
  .credentials li span.tag{color:var(--indigo); font-size:.85rem; white-space:nowrap;}
  @media (max-width:860px){.about-grid{grid-template-columns:1fr;}}

  /* OFFERS */
  .offers{background:var(--lilac-soft);}
  .offer-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px; grid-auto-flow:row dense;}
  .offer{
    padding:40px; border-radius:var(--radius);
    display:flex; flex-direction:column; gap:14px;
  }
  .offer.a{background:var(--ink); color:#fff;}
  .offer.a p{color:#e6e2f7;}
  .offer.b{background:#fff; border:1.5px solid var(--line);}
  .offer.c{
    grid-column:1 / -1; background:transparent; border:1.5px dashed var(--indigo);
    flex-direction:row; align-items:center; justify-content:space-between; gap:24px;
  }
  .offer.c p{margin-bottom:0;}
  .offer.c .price{margin-top:0; padding-top:0; border-top:none; color:var(--indigo); white-space:nowrap;}
  @media (max-width:640px){.offer.c{flex-direction:column; align-items:flex-start;}}
  .offer h3{font-size:1.4rem;}
  .offer.a h3{color:#fff;}
  .offer .price{
    margin-top:auto; padding-top:18px; border-top:1px solid rgba(255,255,255,.18);
    font-family:'Fraunces',serif; font-size:1.6rem;
  }
  .offer.b .price{border-top-color:var(--line); color:var(--indigo);}
  .offer .unit{font-family:'Work Sans',sans-serif; font-size:.85rem; color:inherit; opacity:.7;}
  .offer.b h3, .offer.c h3{color:var(--ink);}
  @media (max-width:760px){.offer-grid{grid-template-columns:1fr;}}
  .offers-more{margin-top:36px;}

  /* TESTIMONIALS */
  .quotes{border-top:1px solid var(--line);}
  .carousel{position:relative; max-width:680px;}
  .carousel-viewport{overflow:hidden;}
  .carousel-track{display:flex; transition:transform .45s cubic-bezier(.65,0,.35,1);}
  .quote-slide{flex:0 0 100%; padding-right:8px;}
  .quote-slide p{font-family:'Fraunces',serif; font-weight:420; font-style:italic; font-size:1.3rem; color:var(--ink); line-height:1.45;}
  .quote-slide cite{font-style:normal; font-size:.9rem; color:var(--grey);}
  .carousel-controls{display:flex; align-items:center; gap:20px; margin-top:36px;}
  .car-btn{
    width:44px; height:44px; border-radius:50%; border:1.5px solid var(--ink); background:none;
    display:flex; align-items:center; justify-content:center; cursor:pointer; flex:0 0 auto;
    color:var(--ink); font-size:1.1rem; transition:background .15s ease, color .15s ease;
  }
  .car-btn:hover{background:var(--ink); color:#fff;}
  .car-dots{display:flex; gap:9px;}
  .dot{width:8px; height:8px; border-radius:50%; border:none; background:var(--line); padding:0; cursor:pointer;}
  .dot.active{background:var(--indigo); width:22px; border-radius:5px; transition:width .2s ease;}
  @media (prefers-reduced-motion:reduce){.carousel-track{transition:none;}}

  /* CONTACT */
  .contact{background:var(--ink); color:#fff;}
  .contact .section-head h2{color:#fff;}
  .contact .section-head p{color:#ded9f2;}
  .contact-actions{display:flex; gap:16px; flex-wrap:wrap; margin-top:8px;}
  .contact .btn-primary{background:var(--lilac); color:var(--ink);}
  .contact .btn-primary:hover{background:#b3a0d9;}
  .contact .btn-ghost{border-color:rgba(255,255,255,.5); color:#fff;}
  .contact .btn-ghost:hover{background:#fff; color:var(--ink);}
  .contact-note{margin-top:28px; font-size:.9rem; color:#c7c2e3;}

  footer{padding:32px 0; font-size:.85rem; color:var(--grey);}
  footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;}
  footer a{text-decoration:none; color:var(--grey); margin-left:18px;}
  footer a:first-child{margin-left:0;}
  .offers .disclaimer{margin-top:36px; padding-top:28px; border-top:1px solid var(--line); font-size:.85rem; color:var(--grey); max-width:70ch;}

  /* ANGEBOTE-SEITE (Detailseite) */
  .page-hero{padding:56px 0 20px; border-bottom:1px solid var(--line);}
  .page-hero .lede{font-size:1.1rem; max-width:60ch;}
  .breadcrumb{font-size:.88rem; color:var(--grey); margin-bottom:18px;}
  .breadcrumb a{color:var(--indigo); text-decoration:none;}
  .offer-detail{
    display:grid; grid-template-columns:1fr; gap:18px;
    padding:44px; border-radius:var(--radius); margin-bottom:28px;
    background:#fff; border:1.5px solid var(--line);
  }
  .offer-detail.dark{background:var(--ink); color:#fff;}
  .offer-detail.dark p{color:#e6e2f7;}
  .offer-detail.dark h3{color:#fff;}
  .offer-detail .meta{display:flex; gap:24px; flex-wrap:wrap; font-size:.95rem; margin-top:6px;}
  .offer-detail .meta strong{font-family:'Fraunces',serif; font-size:1.3rem; color:inherit;}
  .offer-detail .for-whom{margin-top:10px; font-size:.95rem;}
  .offer-detail .for-whom strong{color:inherit;}
  .offer-media{
    margin-top:8px; border-radius:20px; overflow:hidden;
    aspect-ratio:16/9; background:linear-gradient(155deg, var(--lilac) 0%, var(--indigo) 100%);
    display:flex; align-items:center; justify-content:center;
    color:#fff; font-size:.9rem; text-align:center;
  }
  .offer-media img{width:100%; height:100%; object-fit:cover; display:block;}
