:root{
  --ink:#4d5e49;
  --muted:#636764;
  --olive:#73866f;
  --rose:#c48379;
  --pale:#fbf5f2;
  --line:#ece7e2;
  --soft:#f8f8f5;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--muted);font:16px/1.65 'Segoe UI',Arial,sans-serif}
a{color:inherit}
img{max-width:100%;display:block}
.preview-banner{text-align:center;background:#f7efec;color:#836e67;font-size:12px;letter-spacing:.08em;padding:6px 12px}
.section{position:relative;max-width:1180px;margin:0 auto;padding-left:28px;padding-right:28px}
.eyebrow{letter-spacing:.24em;color:#c18178;font-size:12px;font-weight:700}
.centered{text-align:center}
h1,h2{color:var(--ink);font-family:'Segoe Script','URW Chancery L','Brush Script MT',cursive;font-weight:400;line-height:1.06;margin:0}
h1{font-size:clamp(44px,5.6vw,86px)}
h2{font-size:clamp(36px,4vw,62px)}

.hero{height:min(700px,calc(100vh - 30px));min-height:560px;position:relative;overflow:hidden;background:#fdf9f6}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.97) 0%, rgba(255,255,255,.94) 22%, rgba(255,251,247,.82) 38%, rgba(255,249,245,.30) 58%, rgba(255,249,245,.04) 73%, rgba(255,249,245,0) 100%)}
.hero:after{content:"";position:absolute;left:-3%;bottom:-42px;width:106%;height:86px;background:#fff;border-radius:50% 50% 0 0}
.hero-inner{position:relative;z-index:2;height:100%;max-width:1180px;margin:0 auto;padding:36px 28px 80px;display:flex;align-items:flex-start}
.hero-copy{max-width:590px;padding-top:6px;position:relative;z-index:3}
.logo-main{width:min(330px,58vw);margin-left:-18px;margin-bottom:10px}
.hero h1{margin:18px 0 12px}
.hero p{font-size:clamp(18px,2vw,22px);line-height:1.42;margin:0;max-width:420px;color:#5f625e}

.about{display:grid;grid-template-columns:320px minmax(0,1fr) 230px;gap:48px;align-items:center;padding-top:110px;padding-bottom:125px}
.portrait-wrap img{aspect-ratio:1;object-fit:cover;border-radius:50%;border:10px solid #fff;outline:1px solid #e2ddd6;box-shadow:0 8px 32px rgba(80,66,48,.08)}
.about-copy p{margin:0 0 16px;font-size:15px;max-width:620px}
.about-copy h2{margin:10px 0 16px}
.quote{width:230px;height:230px;border-radius:50%;background:#faf3ed;padding:26px 24px;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column;color:var(--ink);justify-self:center}
.quote p{font-family:'Segoe Script','URW Chancery L','Brush Script MT',cursive;font-size:19px;line-height:1.22;margin:5px 0 0;max-width:100%;overflow-wrap:break-word}
.heart{color:var(--rose);font-size:34px;line-height:1}

.offers{max-width:none;background:linear-gradient(#fcfbf9,#faf9f6);padding-top:130px;padding-bottom:150px;padding-left:max(28px,calc((100% - 1180px)/2));padding-right:max(28px,calc((100% - 1180px)/2))}
.offers h2{margin-top:10px;margin-bottom:52px}
.slider-shell{display:flex;gap:18px;align-items:center}
.card-window{flex:1;min-width:0;overflow:hidden}
.card-track{display:flex;gap:22px;transition:transform .45s ease}
.offer-card{flex:0 0 calc((100% - 44px)/3);background:#fff;border-radius:16px;text-align:center;overflow:hidden;box-shadow:0 8px 28px rgba(81,70,57,.05);padding:8px 8px 22px;min-height:386px;display:flex;flex-direction:column;align-items:center;border:1px solid #f3efe9}
.offer-card>img{width:100%;height:178px;object-fit:cover;border-radius:11px}
.offer-card h3{font-size:18px;line-height:1.35;color:#272d29;margin:14px 8px 6px}
.offer-card p{font-size:14px;line-height:1.52;margin:0 14px 16px;flex:1;color:#666864}
.offer-select{background:var(--rose);color:#fff;border:0;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;font-size:21px;text-decoration:none;cursor:pointer;transition:transform .2s ease, background .2s ease}
.offer-select:hover{transform:translateY(-1px);background:#ba7065}
.nav-arrow{border:0;flex-shrink:0;width:42px;height:42px;border-radius:50%;background:var(--olive);color:#fff;font-size:29px;cursor:pointer;transition:transform .2s ease, background .2s ease}
.nav-arrow:hover{transform:translateY(-1px);background:#63785f}
.dots{display:flex;gap:11px;justify-content:center;margin-top:26px}
.dot{width:10px;height:10px;border:0;background:#ead6d1;border-radius:50%;cursor:pointer;padding:0}
.dot.active{background:var(--olive)}

.contact{max-width:none;padding-top:145px;padding-bottom:160px;padding-left:max(28px,calc((100% - 1180px)/2));padding-right:max(28px,calc((100% - 1180px)/2));display:grid;grid-template-columns:1fr 1.05fr;gap:65px;align-items:start;background:linear-gradient(120deg,#fff 0%,#fffaf8 52%,#fff 100%)}
.contact-intro h2{margin-top:14px;margin-bottom:16px}
.contact-intro>p{max-width:500px}
.course-info{background:var(--pale);border-radius:18px;margin-top:38px;padding:25px;display:flex;gap:16px;font-size:14px;border:1px solid #f2e6e1}
.course-info>span{font-size:26px;color:var(--rose)}
.course-info p{margin:0}.course-info a{display:inline-block;margin-top:12px;color:#aa5f55;font-weight:600}
.form{background:#fff;box-shadow:0 10px 40px rgba(176,155,140,.14);border:1px solid #f1eeeb;border-radius:20px;padding:28px;display:grid;grid-template-columns:repeat(6,1fr);gap:14px 20px}
.form label{font-size:12px;grid-column:span 3;color:#474c48}.form label.full,.form .full{grid-column:1/-1}.form label.street{grid-column:span 5}.form label.number{grid-column:span 1}.form label.zip{grid-column:span 2}.form label.town{grid-column:span 4}.form input:not([type=checkbox]),.form select{display:block;width:100%;border:1px solid #d8dedf;border-radius:7px;padding:10px 12px;background:#fff;font:14px 'Segoe UI',sans-serif;color:#454f49;margin-top:5px;min-height:44px}.form em{color:#b65f57;font-style:normal}.form label.consent{display:flex;gap:10px;font-size:12px;line-height:1.45;margin-top:14px}.consent input{align-self:start}.consent a{color:#a65f57}.form-actions{text-align:right}.form-actions button{border:0;border-radius:999px;background:var(--olive);color:#fff;font:15px 'Segoe UI',sans-serif;padding:13px 28px;cursor:pointer}.form-status{font-size:14px;margin:0}

footer{display:flex;align-items:center;justify-content:space-between;max-width:1170px;margin:auto;padding:26px 25px 40px;gap:20px;font-size:12px;text-align:right;border-top:1px solid #f2efeb}
footer img{width:238px;height:auto}
footer a{color:var(--muted)}footer p{font-size:11px;color:#929492;margin:8px 0 0}

.legal{max-width:820px;margin:76px auto 110px;padding:0 24px}.legal h1{font-size:clamp(36px,5vw,64px);margin-bottom:12px}.legal h2{font-size:clamp(30px,4vw,48px);margin:40px 0 10px}.legal p{margin:0 0 14px}.legal a{color:#956a5d}

@media (max-width: 960px){
  .hero{height:620px}
  .about{grid-template-columns:270px 1fr;gap:34px}
  .quote{grid-column:2;max-width:320px}
  .contact{grid-template-columns:1fr;gap:36px}
  .offer-card{flex-basis:calc((100% - 22px)/2)}
}

@media (max-width: 680px){
  .section{padding-left:20px;padding-right:20px}
  .hero{min-height:520px;height:540px}
  .hero-image{object-position:62% center}
  .hero-overlay{background:linear-gradient(90deg,rgba(255,255,255,.9) 0%, rgba(255,255,255,.82) 36%, rgba(255,255,255,.36) 67%, rgba(255,255,255,.08) 100%)}
  .hero-inner{padding:20px 20px 78px;align-items:flex-start}
  .hero-copy{max-width:100%;padding-top:4px}
  .logo-main{width:235px;margin-left:-10px}
  
  
  .about{grid-template-columns:1fr;text-align:center;padding-top:82px;padding-bottom:96px}
  .portrait-wrap{max-width:275px;margin:auto}
  .quote{grid-column:auto;width:230px;height:230px;max-width:100%;margin:auto}
  .quote p{font-size:22px;line-height:1.16}
  
  .offers{padding-top:100px;padding-bottom:112px;padding-left:10px;padding-right:10px}
  .slider-shell{gap:8px}.nav-arrow{height:34px;width:34px;font-size:22px}
  .card-track{gap:12px}.offer-card{flex-basis:100%;min-height:360px}
  .contact{padding-top:102px;padding-bottom:112px;padding-left:20px;padding-right:20px}
  .form{padding:18px;gap:12px}.form label{grid-column:1/-1!important}
  footer{flex-direction:column;text-align:center;padding-left:20px;padding-right:20px}
  footer img{width:210px}
}

/* Formularschutz: Honeypot nur für Bots sichtbar */
.trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.form button:disabled{opacity:.6;cursor:wait}
.form-status[data-kind="error"]{color:#9d493d}
.form-status[data-kind="success"]{color:#3d7653}

/* Desktop-Feinschliff: konsistente, ruhigere Headlines in Windows/Edge.
   Smartphones behalten unverändert ihre bisherige Darstellung. */
@media (min-width: 681px) {
  .hero h1,
  .about h2,
  .offers h2,
  .contact h2 {
    font-family: Georgia, 'Times New Roman', serif;
    font-style: italic;
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: -0.035em;
  }
  .hero h1 { font-size: clamp(42px, 4vw, 58px); }
  .about h2,
  .offers h2,
  .contact h2 { font-size: clamp(34px, 3vw, 43px); }
}

/* Edge/Windows: Text innerhalb des runden Zitatfelds zuverlässig lesbar halten.
   Mobilansicht bleibt unverändert. */
@media (min-width: 681px) {
  .about .quote {
    width: 230px;
    height: 230px;
    flex: 0 0 230px;
    border-radius: 50%;
    padding: 24px 28px;
  }
  .about .quote p {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 15px;
    font-style: italic;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0;
    width: 100%;
    max-width: 174px;
    margin: 5px 0 0;
    overflow-wrap: normal;
    hyphens: auto;
  }
}

/* iPhone / schmale Ansichten: Externe Angebotslinks mit demselben
   Pfeilsymbol wie die übrigen Angebotskarten darstellen.
   Desktop-Ansicht bleibt unverändert. */
@media (max-width: 680px) {
  .offer-card a.offer-select {
    font-size: 0; /* vermeidet die abweichende iOS-Darstellung von ↗ */
    -webkit-appearance: none;
    appearance: none;
    text-decoration: none;
  }
  .offer-card a.offer-select::after {
    content: "\2192";
    font-family: Arial, Helvetica, sans-serif;
    font-size: 21px;
    font-style: normal;
    font-weight: 400;
    line-height: 1;
  }
}

/* Freies Anfragefeld: gleiche Gestaltung wie die übrigen Formularfelder */
.form textarea {
  display:block; width:100%; box-sizing:border-box; min-height:132px;
  resize:vertical; border:1px solid #d8dedf; border-radius:7px;
  padding:11px 12px; background:#fff; color:#454f49;
  font:14px/1.6 'Manrope',Arial,sans-serif; margin-top:5px;
}
.form textarea:focus { outline:2px solid #b3c3ae; outline-offset:1px; }

.offer-planned{margin-top:auto;padding:7px 13px;border-radius:999px;background:#f4efea;color:#777d73;font-size:12px;font-weight:600}

/* iPhone / Safari: Datumsfeld darf die Formularspalte nicht verbreitern. */
.form label { min-width: 0; }
.form input[type="date"] {
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
@media (max-width: 680px) {
  .form { min-width: 0; }
  .form label { min-width: 0; width: 100%; }
  .form input[type="date"] { width: 100%; min-width: 0; max-width: 100%; }
}

/* Safari/iPhone: Grid tracks must be allowed to shrink below date input's native intrinsic width. */
@media (max-width: 680px) {
  .contact, .form { min-width: 0; max-width: 100%; }
  .form { grid-template-columns: minmax(0, 1fr); }
  .form > label { grid-column: 1 / -1 !important; min-width: 0; max-width: 100%; }
  .form label input[type="date"] {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    inline-size: 100%;
    min-inline-size: 0;
    max-inline-size: 100%;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    overflow: hidden;
    font-size: 16px;
  }
}
