/* Theresa Bontrup – gebaut aus ihrem Design-System (Salbei, Himmel, Sand, Heu · Newsreader + Figtree · runde Formen, viel Luft) */
@font-face{font-family:"Newsreader";src:url(assets/fonts/newsreader-latin-300-normal.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(assets/fonts/newsreader-latin-300-italic.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:"Newsreader";src:url(assets/fonts/newsreader-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Figtree";src:url(assets/fonts/figtree-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Figtree";src:url(assets/fonts/figtree-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Figtree";src:url(assets/fonts/figtree-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --surface:#f7f8f5;--surface-sky:#e4edf1;--surface-meadow:#edf0e6;--sand:#efe4d2;
  --sage:#a7bba9;--sky:#b5cfdd;--sage-deep:#3d5c52;--on-accent:#f7f8f5;--hay:#d6b26e;
  --ink:#27322f;--muted:#5d6965;--line:#27322f1f;
  --display:"Newsreader",Georgia,serif;--sans:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r-sm:6px;--r-lg:28px;--r-pill:999px;
  --gut:max(20px,env(safe-area-inset-left,0px));--gut-r:max(20px,env(safe-area-inset-right,0px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:var(--sage-deep)}
a:focus-visible,.btn:focus-visible{outline:3px solid var(--hay);outline-offset:4px;border-radius:var(--r-sm)}
h1,h2,h3{font-family:var(--display);font-weight:300;line-height:1.08;letter-spacing:-.015em;margin:0;text-wrap:balance}
h1{font-size:clamp(42px,7vw,76px)}
h2{font-size:clamp(34px,4.6vw,52px);margin-bottom:22px}
h3{font-size:28px;font-weight:400;letter-spacing:-.01em}
h1 em,h2 em{font-style:italic;color:var(--sage-deep)}
p{margin:0 0 16px;max-width:62ch}
.label{display:block;font-size:11px;line-height:16px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:12px}
.lead{font-family:var(--display);font-weight:300;font-size:clamp(19px,2.2vw,22px);line-height:1.5}
.wrap{max-width:1160px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
section{padding-block:clamp(72px,10vw,112px)}

/* Kopf */
.top{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:14px}
.top .mark img{height:36px;width:auto}
.top nav{display:flex;gap:26px;font-size:14px;align-items:center}
.top nav a{color:var(--ink);text-decoration:none}
.top nav a:hover{color:var(--sage-deep)}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--sage-deep);color:var(--on-accent);text-decoration:none;font-weight:500;font-size:15px;padding:13px 24px;border-radius:var(--r-pill);border:1px solid var(--sage-deep);transition:transform .2s}
.btn:hover{transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--sage-deep)}
.btn.small{padding:9px 18px;font-size:14px}
.top nav .btn{color:var(--on-accent)}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* Hero */
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,80px);align-items:center}
.hero h1{margin-bottom:24px}
.welcome{display:inline-block;background:var(--sand);border-radius:var(--r-pill);padding:6px 16px;font-size:14px;margin-bottom:22px}
.arch{position:relative;aspect-ratio:4/5;border-radius:999px 999px var(--r-lg) var(--r-lg);overflow:hidden;background:var(--sky)}
.arch img{width:100%;height:100%;object-fit:cover}
.sun{position:absolute;width:64px;height:64px;border-radius:50%;background:var(--hay);top:12%;right:-14px;box-shadow:0 0 0 10px var(--surface)}
.photo-wrap{position:relative;max-width:440px;justify-self:end;width:100%}
.ph{display:flex;align-items:flex-end;justify-content:center;height:100%;padding:28px;color:var(--ink);font-size:13px;text-align:center}
.ph span{background:var(--surface);border-radius:var(--r-pill);padding:6px 14px}

.lang{white-space:nowrap;font-size:12px;letter-spacing:.08em;color:var(--muted)}.lang b{color:var(--ink);font-weight:600}.top nav .lang a{display:inline!important;color:var(--muted)}

/* Angebote */
.offers{background:var(--surface-sky)}
.offers-head h2{margin-bottom:0}
.offers-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:48px}
.offers-head p{margin:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--surface);border-radius:var(--r-lg);padding:34px 30px 30px;display:flex;flex-direction:column}
.card{overflow:hidden}
.card-img{width:calc(100% + 60px);max-width:none;margin:-34px -30px 26px;aspect-ratio:4/3;object-fit:cover}
.card h3{margin-bottom:12px}
.card p{font-size:15px}
.card ul{list-style:none;padding:0;margin:4px 0 22px;font-size:14px}
.card li{padding:9px 0;border-top:1px solid var(--line)}
.card li b{font-weight:600;color:var(--sage-deep);margin-right:6px}
.card .more{margin-top:auto;font-weight:500;font-size:15px;text-decoration:none}
.card .more:hover{text-decoration:underline}

/* Retreat */
.retreat{background:var(--surface-meadow)}
.retreat .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.facts{background:var(--sand);border-radius:var(--r-lg);padding:34px}
.facts dl{display:grid;grid-template-columns:auto 1fr;gap:12px 22px;margin:0 0 24px;font-size:15px}
.facts dt{font-weight:600;color:var(--sage-deep);font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding-top:3px}
.facts dd{margin:0}
.past{margin-top:22px;font-size:14px;color:var(--muted)}

.also{margin-top:30px;padding:26px 28px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}
.also h3{margin-bottom:8px}.also p{font-size:15px}.also .more{font-weight:500;font-size:15px;text-decoration:none}

.retreat-side{display:grid;gap:20px}
.retreat-photo{margin:0;position:relative}
.retreat-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:999px 999px var(--r-lg) var(--r-lg)}
.retreat-photo figcaption{position:absolute;left:16px;bottom:14px;background:var(--surface);border-radius:var(--r-pill);padding:4px 12px;font-size:12px}

/* Momente */
.moments{padding-top:0}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:8px}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-lg)}
.gallery figcaption{font-size:13px;color:var(--muted);margin-top:8px}

/* Über mich */
.about .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,90px);align-items:start}
.portrait img{width:100%;height:100%;object-fit:cover}
.portrait{aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--sage);max-width:360px;position:relative}
.quote{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(26px,3vw,34px);color:var(--sage-deep);margin:28px 0 0;line-height:1.25}
.edu{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:0}
.edu li{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 0;border-top:1px solid var(--line);font-size:15px}
.edu li:last-child{border-bottom:1px solid var(--line)}
.edu b{font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage-deep);padding-top:3px}

/* Bekannt aus */
.seen{background:var(--sand);padding-block:56px}
.seen ul{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:24px 36px}
.seen li{font-size:14px;line-height:1.5}
.seen li strong{display:block;font-family:var(--display);font-weight:400;font-size:20px;line-height:1.25;margin-bottom:6px}

.seen-grid{display:grid;grid-template-columns:220px 1fr;gap:44px;align-items:center}
.mag{width:100%;border-radius:var(--r-lg);aspect-ratio:4/5;object-fit:cover}

.watch{display:inline-block;margin-top:8px;font-weight:600;font-size:14px;color:var(--sage-deep)}

/* Kontakt */
.contact{background:var(--sage-deep);color:var(--on-accent);text-align:center}
.contact .label{color:var(--hay)}
.contact h2 em{color:var(--sky)}
.contact p{margin-left:auto;margin-right:auto}
.contact .btns{justify-content:center}
.contact .btn{background:var(--surface);color:var(--sage-deep);border-color:var(--surface)}
.contact .btn.ghost{background:transparent;color:var(--surface);border-color:#f7f8f570}
.mail{display:block;margin-top:22px;font-size:15px;opacity:.85;user-select:all}
.topics{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:28px auto 0;max-width:720px;padding:0;list-style:none}
.topics li{border:1px solid #f7f8f550;border-radius:var(--r-pill);padding:6px 14px;font-size:13px}

footer{padding-block:34px;font-size:13px;color:var(--muted)}
footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
footer nav{display:flex;gap:20px}
footer a{color:var(--muted)}
footer img{height:22px;width:auto}

/* Rechtliches */
.legal{padding-block:64px 96px}
.legal h1{font-size:clamp(38px,5vw,56px);margin-bottom:32px}
.legal h2{font-size:24px;font-weight:400;margin:36px 0 10px}
.legal p,.legal li{font-size:15px;max-width:70ch}

/* Platzhalter bis Theresa ergänzt */
.todo{background:#d6b26e55;border-radius:4px;padding:0 4px}

@media(max-width:900px){
  .cards{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .top nav a:not(.btn){display:none}
  .hero .wrap,.retreat .wrap,.about .wrap{grid-template-columns:1fr}
  .photo-wrap{justify-self:start;max-width:320px}
  .sun{right:-8px;width:52px;height:52px}
  .top nav{gap:16px}
  .top .mark img{height:30px}
  .hero{padding-top:44px}
  .portrait{max-width:220px}
  .edu li{grid-template-columns:1fr;gap:2px}
  .facts{padding:26px 22px}
  .facts dl{grid-template-columns:1fr;gap:2px}
  .facts dd{margin-bottom:10px}
  .seen ul{grid-template-columns:1fr}
  .seen-grid{grid-template-columns:1fr;gap:24px}
  .mag{max-width:220px}
  .gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);gap:12px}
  .gallery figure{flex:0 0 62%;scroll-snap-align:start}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}
