  :root{
    --blush:#f8dcd8;
    --blush-soft: color-mix(in srgb, var(--blush), white 45%);
    --paper:#fffcfa;
    --ink:#221714;
    --burgundy:#5c1a22;
    --crimson:#c22e3d;
    --coral:#e98d80;
    --maxw:1180px;
    --gap: clamp(1.2rem, 3vw, 2.4rem);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Poppins', sans-serif;
    font-weight:300;
    font-size:16px;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3{
    font-family:'Cormorant Garamond', serif;
    font-weight:500;
    margin:0;
    line-height:1.05;
    color:var(--burgundy);
  }
  h1 em, h2 em{font-style:italic; font-weight:500; color:var(--crimson);}

  a{color:inherit;}
  img{max-width:100%; display:block;}
  ::selection{background:var(--coral); color:var(--paper);}
  :focus-visible{outline:2.5px solid var(--crimson); outline-offset:3px;}

  .wrap{max-width:var(--maxw); margin:0 auto; padding-inline:clamp(1.2rem, 5vw, 2.5rem);}

  .eyebrow{
    font-family:'Jost', sans-serif;
    font-size:0.78rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--crimson);
    margin-bottom:1rem;
    display:inline-block;
  }

  /* ---------- botanical divider ---------- */
  .divider{
    display:flex; align-items:center; justify-content:center;
    margin-block: 0.5rem;
  }
  .divider svg{width:120px; height:24px; opacity:0.7;}

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:0.5rem;
    font-family:'Jost', sans-serif; font-weight:500; text-transform:uppercase; letter-spacing:0.12em; font-size:0.78rem;
    background:var(--burgundy); color:var(--paper);
    border:1.5px solid var(--burgundy);
    border-radius:999px;
    padding:0.95rem 2rem;
    text-decoration:none;
    cursor:pointer;
    transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
  }
  .btn:hover{ background:var(--crimson); border-color:var(--crimson); transform:translateY(-2px); box-shadow:0 10px 20px rgba(92,26,34,0.22);}
  .btn.outline{ background:transparent; color:var(--burgundy);}
  .btn.outline:hover{ background:var(--burgundy); color:var(--paper);}
  .btn.on-dark{background:var(--paper); color:var(--burgundy); border-color:var(--paper);}
  .btn.on-dark:hover{background:transparent; color:var(--paper);}

  /* ---------- nav ---------- */
  header.site{
    position:sticky; top:0; z-index:50;
    background:rgba(255,252,250,0.9);
    backdrop-filter: blur(8px);
    border-bottom:1px solid var(--blush);
  }
  .nav-row{ display:flex; align-items:center; justify-content:space-between; padding-block:0.9rem; }
  .logo{ display:flex; align-items:center; gap:0.7rem; text-decoration:none; color:var(--ink); }
  .logo img{width:42px; height:42px; border-radius:50%; object-fit:cover;}
  .logo-text{ display:flex; flex-direction:column; line-height:1.15; }
  .logo-text .name{ font-family:'Jost', sans-serif; font-weight:500; font-size:1.15rem; letter-spacing:0.22em; color:var(--ink); }
  .logo-text .tag{ font-family:'Jost', sans-serif; font-weight:300; font-size:0.68rem; letter-spacing:0.14em; color:var(--crimson); text-transform:uppercase; }

  .nav-links{ display:flex; gap:clamp(1rem, 1.7vw, 2.1rem); white-space:nowrap; list-style:none; margin:0; padding:0; font-family:'Jost', sans-serif; font-weight:400; font-size:0.85rem; letter-spacing:0.04em; }
  .nav-links a{ text-decoration:none; position:relative; padding-bottom:4px; }
  .nav-links a::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:1.5px; background:var(--crimson); transition:width .25s ease; }
  .nav-links a:hover::after{width:100%;}
  .nav-links li.nav-cta-mobile{ display:none; }

  .burger{ display:none; background:none; border:1.5px solid var(--burgundy); border-radius:50%; width:42px; height:42px; cursor:pointer; align-items:center; justify-content:center; }
  .burger span{ display:block; width:16px; height:1.5px; background:var(--burgundy); margin:3px 0; }

  @media (max-width:1080px){
    .nav-links{
      position:fixed; inset:70px 0 auto 0; flex-direction:column; gap:0;
      background:var(--paper); border-bottom:1px solid var(--blush);
      max-height:0; overflow:hidden; transition:max-height .3s ease;
    }
    .nav-links.open{max-height:600px;}
    .nav-links li{border-top:1px solid var(--blush-soft);}
    .nav-links a{display:block; padding:1.1rem 1.4rem;}
    .nav-cta-desktop{display:none;}
    .nav-links li.nav-cta-mobile{display:list-item;}
    .burger{display:flex;}
  }

  /* ---------- hero ---------- */
  .hero{ padding-block:clamp(3rem, 8vw, 5.5rem); position:relative; overflow:hidden; }
  .hero::before{
    content:''; position:absolute; top:-18%; right:-12%; width:52vw; height:52vw; max-width:640px; max-height:640px;
    background:var(--blush); border-radius:50%; z-index:0;
  }
  .hero .wrap{ position:relative; z-index:1; display:grid; grid-template-columns:1.1fr 0.9fr; gap:var(--gap); align-items:center; }
  .hero h1{ font-size:clamp(2.6rem, 6vw, 4.6rem); }
  .hero p.lead{ max-width:44ch; margin-top:1.4rem; font-size:1.05rem; color:var(--ink); opacity:0.85; }
  .hero-ctas{ display:flex; gap:1rem; margin-top:2.2rem; flex-wrap:wrap; }

  .hero-photo{ position:relative; justify-self:center; }
  .halo-frame{
    width:min(360px, 82vw); aspect-ratio:1/1; border-radius:50%;
    overflow:hidden; border:6px solid var(--paper); box-shadow:0 22px 44px rgba(92,26,34,0.18);
    position:relative;
  }
  .halo-frame img{width:100%; height:100%; object-fit:cover;}
  .hero .halo-frame{ perspective:800px; }
  .hero .halo-frame img{ transition: transform .8s ease; transform-style:preserve-3d; }
  .hero .halo-frame:hover img{ transform: rotateY(360deg); }
  .halo-ring{
    position:absolute; width:calc(100% + 34px); height:calc(100% + 34px); left:-17px; top:-17px;
    border:1.5px dashed var(--coral); border-radius:50%;
  }

  /* ---------- stats ---------- */
  .stats{ background:var(--blush-soft); padding-block:clamp(2.4rem, 5vw, 3.4rem); }
  .stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap); text-align:center; }
  .stat-num{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:clamp(2.2rem, 4.5vw, 3.4rem); color:var(--crimson); }
  .stat-label{ font-family:'Jost', sans-serif; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--burgundy); margin-top:0.3rem; }
  @media (max-width:700px){ .stat-row{grid-template-columns:repeat(2,1fr); row-gap:2rem;} }

  /* ---------- section shared ---------- */
  section{padding-block:clamp(3.5rem, 8vw, 6rem);}
  .section-head{ text-align:center; max-width:640px; margin-inline:auto; margin-bottom:clamp(2.2rem, 5vw, 3.2rem); }
  .section-head h2{ font-size:clamp(2rem, 4.2vw, 3rem); }
  .section-head p{ font-family:'Jost', sans-serif; font-size:0.85rem; letter-spacing:0.05em; color:var(--ink); opacity:0.75; margin-top:0.9rem; }

  .js .reveal{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease;}
  .js .reveal.in{opacity:1; transform:translateY(0);}

  /* ---------- about ---------- */
  .about-grid{ display:grid; grid-template-columns:0.75fr 1.25fr; gap:var(--gap); align-items:center; }
  .about-copy p{ margin:0 0 1.1rem; font-size:1rem; }
  .about-copy p:last-child{margin-bottom:0;}
  @media (max-width:860px){ .about-grid, .hero .wrap{grid-template-columns:1fr;} .hero-photo{order:-1;} }

  /* ---------- services / pillars ---------- */
  .pillar-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); align-items:start; }
  .pillar-card{
    background:var(--paper); border-radius:28px; padding:2.4rem 2rem;
    transition:transform .25s ease, box-shadow .25s ease;
    border:1px solid var(--blush);
    display:block; text-decoration:none; color:inherit;
    position:relative;
  }
  .pillar-card::after{
    content:'→'; position:absolute; right:2rem; bottom:2rem;
    color:var(--crimson); font-size:1.1rem; opacity:0; transform:translateX(-6px);
    transition:opacity .2s ease, transform .2s ease;
  }
  .pillar-card:hover::after{ opacity:1; transform:translateX(0); }
  .pillar-card:hover{ transform:translateY(-6px); box-shadow:0 18px 30px rgba(92,26,34,0.14); }
  .pillar-card .icon{
    width:50px; height:50px; border-radius:50%; background:var(--blush-soft);
    display:flex; align-items:center; justify-content:center; margin-bottom:1.2rem;
  }
  .pillar-card .icon svg{width:24px; height:24px; stroke:var(--crimson);}
  .pillar-card h3{ font-size:1.6rem; color:var(--burgundy); margin-bottom:0.3rem; }
  .pillar-card .pillar-sub{ font-family:'Jost', sans-serif; font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--crimson); display:block; margin-bottom:1.3rem; }
  .pillar-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
  .pillar-list li{
    display:flex; align-items:flex-start; gap:0.7rem;
    padding-block:0.85rem;
    border-top:1px solid var(--blush);
    font-size:0.98rem; color:var(--ink);
    line-height:1.6;
  }
  .pillar-list li:first-child{border-top:none;}
  .pillar-list li::before{
    content:''; width:6px; height:6px; border-radius:50%; background:var(--coral); flex:none;
    margin-top:0.55em;
  }

  .focus-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
  .focus-list li{ padding:1rem 0 1rem 1.4rem; border-top:1px solid var(--blush); }
  .focus-list li:first-child{ border-top:none; padding-top:0; }
  .focus-list strong{
    position:relative;
    display:block; font-family:'Cormorant Garamond', serif; font-weight:600;
    color:var(--burgundy); font-size:1.12rem; line-height:1.4; margin-bottom:0.3rem;
  }
  /* gleiches Aufzählzeichen wie bei den Fragezeilen */
  .focus-list strong::before{
    content:''; position:absolute; left:-1.4rem; top:0.55em;
    width:6px; height:6px; border-radius:50%; background:var(--coral);
  }
  .focus-list span{ display:block; color:var(--ink); opacity:0.8; max-width:62ch; line-height:1.7; }
  .section-label{
    font-family:'Jost', sans-serif; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
    color:var(--crimson); margin:1.5rem 0 0.9rem;
  }
  @media (max-width:980px){ .pillar-grid{grid-template-columns:1fr; max-width:520px; margin-inline:auto;} }

  /* ---------- sport (Reit- & Golf-Fitness) ---------- */
  .sport-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--gap); }
  .sport-card{
    background:var(--paper); border:1px solid var(--blush); border-radius:28px; overflow:hidden;
    display:flex; flex-direction:column; text-decoration:none; color:inherit;
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .sport-card:hover{ transform:translateY(-6px); box-shadow:0 18px 30px rgba(92,26,34,0.14); }
  .sport-illu{ margin:0; background:var(--blush-soft); }
  .sport-illu img{ display:block; width:100%; height:auto; aspect-ratio:16 / 10; object-fit:cover; mix-blend-mode:multiply; }
  .sport-body{ padding:1.8rem 2rem 2rem; display:flex; flex-direction:column; flex:1; }
  .sport-body .pillar-sub{ font-family:'Jost', sans-serif; font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--crimson); margin-bottom:0.6rem; }
  .sport-body h3{ font-size:clamp(1.5rem, 2.6vw, 1.9rem); color:var(--burgundy); margin-bottom:0.8rem; }
  .sport-body h3 em{ color:var(--crimson); }
  .sport-body p{ margin:0 0 1.4rem; opacity:0.85; line-height:1.7; }
  .sport-more{
    margin-top:auto; font-family:'Jost', sans-serif; font-size:0.8rem; letter-spacing:0.12em; text-transform:uppercase;
    color:var(--burgundy); font-weight:500;
  }
  .sport-more span{ display:inline-block; transition:transform .2s ease; }
  .sport-card:hover .sport-more span{ transform:translateX(4px); }
  @media (max-width:860px){ .sport-grid{grid-template-columns:1fr; max-width:520px; margin-inline:auto;} }

  /* ---------- leistungen detail ---------- */
  .detail-group{ margin-bottom:clamp(2.6rem, 5vw, 3.6rem); }
  .detail-group:last-child{margin-bottom:0;}
  .detail-pillar-title{
    display:flex; align-items:center; justify-content:center; gap:0.9rem;
    font-size:1.5rem; color:var(--burgundy); margin-bottom:1.2rem;
  }
  .detail-pillar-title .icon{
    width:38px; height:38px; border-radius:50%; background:var(--blush-soft);
    display:flex; align-items:center; justify-content:center; flex:none;
  }
  .detail-pillar-title .icon svg{width:18px; height:18px; stroke:var(--crimson);}
  .detail-item{
    border-top:1px solid var(--blush);
  }
  .detail-group .detail-item:last-child{border-bottom:1px solid var(--blush);}
  .detail-item h4{
    font-family:'Cormorant Garamond', serif; font-weight:500; font-size:1.25rem;
    color:var(--ink); margin:0;
  }
  .detail-summary{
    display:flex; align-items:center; justify-content:space-between; gap:1rem;
    padding-block:1.4rem; cursor:pointer; list-style:none;
  }
  .detail-summary::-webkit-details-marker{ display:none; }
  .detail-summary::marker{ content:''; }
  .detail-item .chevron{
    width:20px; height:20px; stroke:var(--crimson); flex:none;
    transition:transform .25s ease;
  }
  .detail-item[open] .chevron{ transform:rotate(180deg); }
  .detail-item .detail-summary:hover h4{ color:var(--crimson); }
  .item-icon-wrap{ display:flex; align-items:center; gap:0.7rem; }
  .item-icon-wrap .icon{
    width:52px; height:52px; border-radius:50%; background:var(--blush-soft);
    display:flex; align-items:center; justify-content:center; flex:none;
  }
  .item-icon-wrap .icon svg{ width:22px; height:22px; stroke:var(--crimson); }
  /* "Im Detail" liegt auf rosa Grund: Icon-Kreise hell absetzen */
  #leistungen .detail-pillar-title .icon, #leistungen .item-icon-wrap .icon{ background:var(--paper); }
  .detail-body{ padding-bottom:1.8rem; }
  .detail-item p{ margin:0; color:var(--ink); opacity:0.8; max-width:62ch; }
  /* Zwischenüberschrift: muss spezifischer sein als ".detail-item p", sonst wird sie grau und ohne Abstand */
  .detail-item .section-label{ color:var(--crimson); opacity:1; margin:1.8rem 0 0.9rem; max-width:none; }
  .detail-body > .section-label:first-child{ margin-top:0; }
  /* einheitliche Abstände statt Inline-Styles */
  .detail-body p + p{ margin-top:0.9rem; }
  .detail-body p + .focus-list{ margin-top:0.8rem; }
  .detail-body .focus-list + p{ margin-top:1.4rem; }
  .detail-item .cta-line{
    font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.2rem;
    color:var(--burgundy); opacity:1; margin-top:0.9rem;
  }
  .detail-item .cta-line a{ color:var(--crimson); text-decoration:underline; }
  @media (max-width:700px){ .detail-summary h4{ font-size:1.1rem; } }

  .question-list{ list-style:none; margin:0 0 1.1rem; padding:0; display:flex; flex-direction:column; gap:0.6rem; }
  .question-list li{
    display:flex; align-items:baseline; gap:calc(1.4rem - 6px);
    font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:500; font-size:1.15rem; line-height:1.4;
    color:var(--burgundy); opacity:1;
  }
  .question-list li::before{
    content:''; width:6px; height:6px; border-radius:50%; background:var(--coral); flex:none;
    transform:translateY(-2px);
  }

  /* ---------- method ---------- */
  .method-list{ display:flex; flex-direction:column; }
  .method-item{ display:grid; grid-template-columns:90px 1fr; gap:var(--gap); align-items:start; padding-block:1.9rem; border-top:1px solid var(--blush); }
  .method-item:last-child{border-bottom:1px solid var(--blush);}
  .method-num{ font-family:'Cormorant Garamond', serif; font-weight:500; font-size:clamp(2.4rem, 4.6vw, 3.2rem); color:var(--coral); }
  .method-item h3{ font-size:1.35rem; margin-bottom:0.4rem; }
  .method-item p{ margin:0; color:var(--ink); opacity:0.8; max-width:56ch; }
  @media (max-width:640px){ .method-item{grid-template-columns:1fr; gap:0.3rem;} }

  /* ---------- testimonials ---------- */
  .notes-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
  .quote-card{
    background:var(--paper); border:1px solid var(--blush); border-radius:24px;
    padding:2rem 1.8rem; position:relative;
  }
  .quote-card .mark-icon{ font-family:'Cormorant Garamond', serif; font-size:3rem; color:var(--coral); line-height:0.4; display:block; margin-bottom:0.6rem; }
  .quote-card p{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.25rem; color:var(--ink); margin:0; }
  .quote-card cite{ display:block; margin-top:1.2rem; font-style:normal; font-family:'Jost', sans-serif; font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--crimson); }
  @media (max-width:900px){ .notes-grid{grid-template-columns:1fr; max-width:460px; margin-inline:auto;} }

  /* ---------- CTA banner ---------- */
  .cta-banner{ background:linear-gradient(135deg, var(--burgundy), var(--crimson)); color:var(--paper); text-align:center; }
  .cta-banner h2{ color:var(--paper); font-size:clamp(2.1rem, 5.5vw, 3.6rem); }
  .cta-banner p{ font-family:'Jost', sans-serif; margin-top:0.9rem; font-size:0.85rem; letter-spacing:0.14em; text-transform:uppercase; opacity:0.85; }
  .cta-banner .btn{ margin-top:2rem; }
  .balance-question{ position:relative; display:inline-block; cursor:default; }
  .yes-badge{
    position:absolute; top:-0.4rem; right:-2.6rem;
    font-family:'Jost', sans-serif; font-weight:600; font-size:1.6rem; letter-spacing:0.05em;
    color:var(--burgundy); background:var(--paper);
    padding:0.15em 0.5em; border-radius:999px;
    opacity:0; transform:scale(0.5) rotate(-18deg);
    transition:opacity .25s ease, transform .25s ease;
    pointer-events:none;
    box-shadow:0 6px 14px rgba(0,0,0,0.15);
  }
  .balance-question:hover .yes-badge{ opacity:1; transform:scale(1) rotate(-10deg); }
  @media (max-width:600px){ .yes-badge{ font-size:1.1rem; top:-0.2rem; right:-1.8rem; } }
  .cta-form-wrap{
    max-width:440px; margin:2.4rem auto 0; text-align:left;
  }
  .cta-form-wrap .contact-form input,
  .cta-form-wrap .contact-form textarea{
    border-bottom-color: rgba(255,252,250,0.4);
  }

  /* ---------- footer ---------- */
  footer{ background:var(--burgundy); color:var(--paper); padding-block:clamp(3rem, 7vw, 5rem); }
  .footer-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); }
  footer h3{ font-family:'Jost', sans-serif; font-size:0.85rem; text-transform:uppercase; letter-spacing:0.14em; margin-bottom:1.2rem; color:var(--coral); font-weight:500; }
  .timetable{ width:100%; border-collapse:collapse; font-size:0.92rem; }
  .timetable td{ padding:0.6rem 0; border-bottom:1px solid rgba(255,252,250,0.15); }
  .timetable td:last-child{ text-align:right; font-family:'Jost', sans-serif; color:rgba(255,252,250,0.75); }

  form.contact-form{ display:flex; flex-direction:column; gap:1rem; }
  form.contact-form input, form.contact-form textarea{
    background:transparent; border:none; border-bottom:1.5px solid rgba(255,252,250,0.35);
    color:var(--paper); font-family:'Poppins', sans-serif; font-weight:300; font-size:1rem; padding:0.6rem 0;
  }
  form.contact-form input::placeholder, form.contact-form textarea::placeholder{ color:rgba(255,252,250,0.55); }
  form.contact-form input:focus, form.contact-form textarea:focus{ outline:none; border-bottom-color:var(--coral); }
  form.contact-form button{ align-self:flex-start; margin-top:0.5rem; }

  .footer-bottom{
    max-width:var(--maxw); margin:3rem auto 0; padding-inline:clamp(1.2rem,5vw,2.5rem);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
    font-family:'Jost', sans-serif; font-size:0.75rem; letter-spacing:0.04em; color:rgba(255,252,250,0.6);
    border-top:1px solid rgba(255,252,250,0.15); padding-top:1.5rem;
  }
  .footer-bottom a{ text-decoration:none; margin-left:1.2rem; }
  .footer-bottom a:hover{ color:var(--coral); }

  @media (max-width:860px){ .footer-grid{grid-template-columns:1fr; gap:2.5rem;} }

/* ---------- fitness-seite ---------- */
.nav-links a[aria-current="page"]{ color:var(--crimson); }
.nav-links a[aria-current="page"]::after{ width:100%; }

/* ---------- artikel (z. B. Reiter-Bereich) ---------- */
.section-head.wide{ max-width:780px; }
.article-title{ font-size:clamp(1.9rem, 4vw, 2.8rem); }
.article{ max-width:760px; margin-inline:auto; }
.article > p{ margin:0 0 1rem; opacity:0.85; }
.article .question-list{ margin-bottom:1.4rem; }
.article .question-list li{ font-size:1.3rem; }
.article-sub{ font-style:italic; font-weight:500; font-size:clamp(1.4rem, 3vw, 1.8rem); margin:2rem 0 0.8rem; }
.benefit-card{
  background:var(--blush-soft); border:1px solid var(--blush); border-radius:28px;
  padding:2rem 2rem 1.2rem; margin:1.8rem 0 2.2rem;
}
.benefit-card .section-label{ margin-top:0; }
.article-closing{ text-align:center; padding-top:0.6rem; }
.article-closing h3{ font-style:italic; font-weight:500; font-size:clamp(1.6rem, 3.4vw, 2.2rem); margin-bottom:0.8rem; }
.article-closing p{ margin:0 auto 1.6rem; max-width:56ch; opacity:0.85; }
@media (max-width:600px){ .benefit-card{ padding:1.6rem 1.3rem 0.8rem; } }

.about-quote{ font-size:clamp(1.6rem,3.4vw,2.3rem); margin-bottom:1.2rem; }
.quote-source{ font-family:'Jost', sans-serif; font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--crimson); display:block; margin-top:0.8rem; }

/* ---------- illustrationen ---------- */
.item-icon-wrap .icon-thumb{ overflow:hidden; border:1px solid var(--blush); background:#fef9f5; }
.item-icon-wrap .icon-thumb img{ width:100%; height:100%; object-fit:cover; object-position:center 45%; }
.detail-item .detail-body:has(.detail-illu){ display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,340px); column-gap:clamp(1.8rem,4vw,3rem); align-items:start; }
.detail-body:has(.detail-illu) > *{ grid-column:1; min-width:0; }
.detail-body:has(.detail-illu) > .detail-illu{ grid-column:2; grid-row:1 / span 40; position:sticky; top:6.5rem; margin:0.4rem 0 0; }
.detail-illu{ border-radius:24px; overflow:hidden; background:#fef9f5; border:1px solid var(--blush); }
.detail-illu img{ display:block; width:100%; height:auto; }
@media (max-width:860px){
  .detail-item .detail-body:has(.detail-illu){ display:block; }
  .detail-body:has(.detail-illu) > .detail-illu{ position:static; width:min(100%,260px); margin:0.2rem auto 1.4rem; }
  .detail-illu img{ max-height:190px; object-fit:contain; }
  .item-icon-wrap .icon{ width:44px; height:44px; }
}
/* Reiter-Fitness: statische, eingebettete Hero-Illustration */
.hero-illu{ margin:0; width:min(500px,92vw); }
.hero-illu img{ display:block; width:100%; height:auto; }
/* Querformat-Illustration quadratisch zuschneiden; weicher Rand blendet den Cremehintergrund aus */
.hero-illu-square img{
  aspect-ratio:1 / 1; object-fit:cover; object-position:center;
  -webkit-mask-image:radial-gradient(closest-side, #000 78%, transparent 100%);
          mask-image:radial-gradient(closest-side, #000 78%, transparent 100%);
}

/* ---------- Weihnachts-Popup ---------- */
.xmas-teaser{ position:fixed; right:18px; bottom:18px; z-index:60; opacity:0; transform:translateY(16px); transition:opacity .4s ease, transform .4s ease; }
.xmas-teaser.show{ opacity:1; transform:none; }
.xmas-open{ display:flex; flex-direction:column; align-items:center; gap:0.45rem; padding:0.55rem 0.55rem 0.7rem; border:1px solid var(--blush); border-radius:18px; background:var(--paper); cursor:pointer; box-shadow:0 14px 34px rgba(92,26,34,0.28); font:inherit; color:var(--burgundy); transition:transform .25s ease, box-shadow .25s ease; }
.xmas-open:hover{ transform:translateY(-4px); box-shadow:0 20px 40px rgba(92,26,34,0.34); }
.xmas-thumb{ display:block; border-radius:8px; overflow:hidden; }
.xmas-cap{ font-family:'Jost',sans-serif; font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; font-weight:500; color:var(--crimson); }
.xmas-dismiss{ position:absolute; top:-12px; right:-12px; width:30px; height:30px; border-radius:50%; border:1px solid var(--blush); background:var(--paper); color:var(--burgundy); font-size:1.15rem; line-height:1; cursor:pointer; box-shadow:0 4px 10px rgba(92,26,34,0.2); }
.xmas-overlay{ position:fixed; inset:0; z-index:100; background:rgba(34,23,20,0.62); display:flex; align-items:center; justify-content:center; padding:1rem; overflow:auto; }
.xmas-overlay[hidden], .xmas-teaser[hidden]{ display:none; }
.xmas-dialog{ position:relative; display:flex; flex-direction:column; align-items:center; gap:1rem; }
.xmas-stage{ border-radius:10px; overflow:hidden; box-shadow:0 30px 70px rgba(0,0,0,0.45); background:#fff; }
.xmas-close{ position:absolute; top:-14px; right:-14px; z-index:2; width:40px; height:40px; border-radius:50%; border:none; background:var(--paper); color:var(--burgundy); font-size:1.6rem; line-height:1; cursor:pointer; box-shadow:0 6px 16px rgba(0,0,0,0.35); }
.xmas-close:hover{ background:var(--blush); }
@media (max-width:600px){ .xmas-teaser{ right:12px; bottom:12px; } .xmas-open{ padding:0.4rem 0.4rem 0.5rem; border-radius:14px; } .xmas-cap{ font-size:0.58rem; letter-spacing:0.08em; } .xmas-close{ top:-10px; right:-6px; } }
@media (prefers-reduced-motion: reduce){ .xmas-teaser{ transition:none; } }
