@font-face{font-family:"Instrument Serif";src:url(fonts/iserif-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(fonts/iserif-400i.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(fonts/hanken-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(fonts/hanken-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"DM Mono";src:url(fonts/dmmono-500.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --bg:#F1EEE6; --ink:#1E1E1A; --muted:#69665D; --line:rgba(30,30,26,.16); --accent:#3F6B3A;
  --gut:clamp(20px,5vw,64px);
  --serif:"Instrument Serif",Georgia,serif;
  --sans:"Hanken Grotesk",system-ui,sans-serif;
  --mono:"DM Mono",ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--sans);overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
em{font-style:italic;color:var(--muted)}
.wrap{max-width:1180px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
.label{font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.h2{font:400 clamp(38px,5.2vw,68px)/1.02 var(--serif);letter-spacing:-.01em;max-width:18ch}

.btn{display:inline-flex;align-items:center;height:48px;padding:0 24px;border-radius:999px;background:var(--accent);color:#F7F5EF;font:600 15px/1 var(--sans);text-decoration:none;transition:background-color .2s}
.btn:hover{background:var(--ink)}
.link{font-weight:600;color:var(--accent);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px;white-space:nowrap;transition:color .2s}
.link:hover{color:var(--ink)}
a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* Nav */
.nav{position:fixed;inset:0 0 auto;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:16px var(--gut);background:rgba(241,238,230,.86);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid transparent;transition:border-color .3s}
.nav.scrolled{border-bottom-color:var(--line)}
.nav-logo img{width:44px;height:44px;border-radius:50%;mix-blend-mode:multiply}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{text-decoration:none;font-weight:600;font-size:15px}
.nav-links a:hover{color:var(--accent)}
.nav-shop{color:var(--accent);border-bottom:1px solid currentColor}

/* Hero */
.hero{padding-top:clamp(140px,22vh,220px);padding-bottom:clamp(48px,8vh,88px)}
.hero-title{font:400 clamp(54px,9.4vw,138px)/.98 var(--serif);letter-spacing:-.02em;margin-top:24px}
.ln{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.ln>span{display:inline-block}
.hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-top:40px}
.hero-sub{max-width:40ch;color:var(--muted);font-size:18px}
.hero-photo{height:min(86vh,820px);overflow:hidden;margin:0 auto;clip-path:inset(0 var(--gut));will-change:clip-path}
.hero-photo img{width:100%;height:118%;object-fit:cover;object-position:50% 62%}

/* Intro */
.intro{padding-top:clamp(96px,14vh,160px)}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut);margin-top:28px;align-items:start}
.intro-grid p+p{margin-top:16px}
.intro-grid p{max-width:46ch}
.facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(56px,8vh,96px);border-top:1px solid var(--line)}
.facts>div{padding:20px 0 0}
.facts dt{font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.facts dd{font:400 clamp(30px,3.4vw,44px)/1.1 var(--serif);margin-top:6px}

/* Kaffee */
.kaffee,.cafe,.besuch{padding-top:clamp(112px,16vh,180px)}
.sec-head .h2{margin-top:20px}
.sec-sub{color:var(--muted);margin-top:20px;max-width:46ch}
.sorten{list-style:none;margin-top:56px}
.sorte{position:relative;display:grid;grid-template-columns:72px minmax(150px,1.1fr) 2.4fr auto;gap:28px;align-items:center;padding:24px 0}
.sorte::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);transform-origin:left;transform:scaleX(var(--line-x,1))}
.sorte:last-child{border-bottom:1px solid var(--line)}
.sorte img{width:72px;height:96px;object-fit:cover;mix-blend-mode:multiply}
.s-name h3{font:400 clamp(30px,3vw,40px)/1 var(--serif);margin-top:6px}
.s-data{display:grid;grid-template-columns:.8fr .8fr 1.6fr;gap:20px}
.s-data dt{font:500 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.s-data dd{margin-top:4px;font-size:16px}
.s-buy{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.price{font:500 14px/1 var(--mono)}
.gutschein{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:40px;color:var(--muted)}
.gutschein strong{color:var(--ink);font-weight:600}

/* Café */
.karte{list-style:none;display:grid;grid-template-columns:1fr 1fr;column-gap:var(--gut);margin-top:48px;max-width:900px}
.karte li{display:flex;align-items:baseline;gap:12px;padding:16px 0;border-top:1px solid var(--line);font-size:18px}
.dots{flex:1;border-bottom:1px dotted var(--muted);opacity:.5;transform:translateY(-4px)}

/* Besuch */
.besuch-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--gut);margin-top:24px;align-items:end}
.besuch-links{display:flex;align-items:center;gap:24px;margin-top:36px;flex-wrap:wrap}
.zeiten>div{display:flex;justify-content:space-between;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.zeiten>div:last-child{border-bottom:1px solid var(--line)}
.zeiten dt{font-weight:600}
.zeiten dd{font:500 15px/1.6 var(--mono)}

/* Footer */
.footer{padding-top:clamp(120px,18vh,200px);padding-bottom:28px}
.footer-word{font:400 clamp(96px,22vw,300px)/.8 var(--serif);letter-spacing:-.03em;color:var(--accent);padding-bottom:.1em}
.footer-row{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:32px}
.footer-row nav{display:flex;gap:20px}
.footer-row a{text-decoration:none}
.footer-row a:hover{color:var(--ink)}
.footer-note{font:500 11px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:20px;max-width:70ch}

/* Mobil */
@media (max-width:820px){
  body{font-size:16px}
  .nav-links{gap:18px}
  .nav-links a:not(.nav-shop):nth-child(2){display:none}
  .hero-row{flex-direction:column;align-items:flex-start;gap:24px}
  .hero-photo{height:62vh;height:62svh}
  .intro-grid,.besuch-grid{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr 1fr;row-gap:24px}
  .sorte{grid-template-columns:64px 1fr;gap:16px 18px;align-items:start;padding:22px 0}
  .sorte img{width:64px;height:86px;grid-row:span 2}
  .s-data{grid-column:2;grid-template-columns:1fr 1fr;gap:12px}
  .s-data>div:last-child{grid-column:1 / -1}
  .s-buy{grid-column:2;flex-direction:row;justify-content:space-between;align-items:center}
  .gutschein{flex-direction:column;align-items:flex-start}
  .karte{grid-template-columns:1fr}
  .karte li{font-size:17px}
}

@media (prefers-reduced-motion:reduce){ .hero-photo{clip-path:none} }
