/* Willingen Last Minute – gemeinsames Stylesheet */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-500.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/inter-600.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/inter-700.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/fraunces-400.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/fraunces-500.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/fraunces-600.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/fraunces-700.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:500;font-display:swap;src:url('../fonts/fraunces-500italic.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/jetbrainsmono-400.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/jetbrainsmono-500.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/jetbrainsmono-700.woff2') format('woff2');}

:root{
  --bg:#F6F4EF; --bg-dark:#16261D; --primary:#1F3D2B; --primary-light:#2F4F3E;
  --accent:#C69A3A; --accent-dark:#8F6A1B; --text:#24261F; --text-muted:#5B5A50;
  --line:#DCD6C6; --white:#FFFFFF; --radius:4px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:84px;}
body{font-family:'Inter',system-ui,sans-serif;color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:600;letter-spacing:-0.01em;color:var(--primary);line-height:1.15;}
.mono{font-family:'JetBrains Mono',monospace;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
.eyebrow{font-size:12.5px;text-transform:uppercase;letter-spacing:0.14em;color:var(--accent-dark);font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:10px;}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor;display:inline-block;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.skip{position:absolute;left:-999px;top:8px;background:var(--white);padding:8px 14px;z-index:100;}
.skip:focus{left:8px;}

/* Header */
header.site{position:sticky;top:0;z-index:50;background:rgba(246,244,239,0.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 24px;max-width:1180px;margin:0 auto;}
.logo{display:flex;align-items:center;gap:10px;font-family:'Fraunces',serif;font-weight:600;font-size:18px;color:var(--primary);white-space:nowrap;}
.logo img{width:36px;height:36px;}
.nav-links{display:flex;gap:22px;font-size:14px;font-weight:500;color:var(--text-muted);}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--primary);}
.nav-links a[aria-current="page"]{border-bottom:2px solid var(--accent);}
.nav-cta{background:var(--primary);color:var(--white);padding:9px 18px;border-radius:var(--radius);font-size:13.5px;font-weight:600;white-space:nowrap;}
.nav-cta:hover{background:var(--primary-light);}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;cursor:pointer;}
.menu-btn span{display:block;width:20px;height:2px;background:var(--primary);margin:4px 0;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;border-radius:var(--radius);font-size:15px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:transform .12s ease,background .12s ease;text-align:center;}
.btn:hover{transform:translateY(-1px);}
.btn-accent{background:var(--accent);color:var(--bg-dark);}
.btn-accent:hover{background:#D6AB4C;}
.btn-dark{background:var(--primary);color:var(--white);}
.btn-dark:hover{background:var(--primary-light);}
.btn-ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,0.4);}
.btn-ghost:hover{border-color:var(--white);}
.btn-line{background:transparent;color:var(--primary);border-color:var(--primary);}
.btn-line:hover{background:var(--primary);color:var(--white);}
.btn-sm{padding:9px 16px;font-size:13.5px;}

/* Hero (Startseite) */
.hero{position:relative;color:var(--white);
  background:linear-gradient(180deg,rgba(22,38,29,0.88) 0%,rgba(22,38,29,0.78) 60%,rgba(22,38,29,0.92) 100%),var(--hero-img) center 35%/cover no-repeat;
  background-color:var(--bg-dark);padding:64px 0 56px;}
.hero .eyebrow{color:var(--accent);}
.hero h1{color:var(--white);font-size:clamp(34px,5.2vw,58px);max-width:860px;font-weight:600;}
.hero h1 em{font-style:italic;color:var(--accent);font-weight:500;}
.hero .lede{color:#D8DECF;font-size:17.5px;max-width:620px;margin-top:20px;}
.countdown{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:8px 14px;border:1px solid rgba(198,154,58,0.5);border-radius:100px;font-size:13.5px;color:#EBD9A6;}
.countdown .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);}

/* Suchmaske */
.search{margin-top:36px;background:var(--bg);color:var(--text);border-radius:6px;padding:22px 24px 20px;box-shadow:0 24px 48px -20px rgba(0,0,0,0.5);max-width:1000px;}
.search h2{font-size:18px;margin-bottom:14px;}
.search-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 0.7fr auto;gap:12px;align-items:end;}
.field label{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:0.08em;font-weight:700;color:var(--text-muted);margin-bottom:6px;}
.field select,.field input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);font:inherit;font-size:15px;color:var(--text);}
.search .btn{height:46px;white-space:nowrap;}
.search-note{margin-top:12px;font-size:12px;color:var(--text-muted);}
.search-note strong{color:var(--primary);}

/* Sections */
section.block{padding:84px 0;}
section.block.tight{padding:64px 0;}
.section-head{max-width:680px;margin-bottom:40px;}
.section-head h2{font-size:clamp(26px,3.4vw,38px);}
.section-head p{color:var(--text-muted);margin-top:12px;font-size:16.5px;}

/* Events */
.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ev{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:24px;display:flex;flex-direction:column;gap:12px;}
.ev .tag{font-size:11px;text-transform:uppercase;letter-spacing:0.09em;font-weight:700;color:var(--accent-dark);}
.ev .date{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
.ev .date .d{font-family:'Fraunces',serif;font-size:34px;color:var(--primary);font-weight:600;line-height:1;}
.ev .date .m{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--text-muted);}
.ev h3{font-size:20px;}
.ev p{font-size:14.5px;color:var(--text-muted);}
.ev .go{margin-top:auto;padding-top:8px;}
.ev.is-past{opacity:.55;}
.ev.is-past .go{display:none;}
.ev.is-past .tag::after{content:" · vorbei";}
.ev-wide{grid-column:1/-1;background:var(--bg-dark);color:var(--white);border-color:var(--bg-dark);display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:30px 32px;}
.ev-wide h3{color:var(--white);font-size:26px;}
.ev-wide p{color:#B7C4AC;max-width:640px;}
.ev-wide .tag{color:var(--accent);}
.ev-wide .date .d{color:var(--white);font-size:40px;}
.ev-wide .date .m{color:#9FB3A2;}

.info-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start;}
.info-grid p{margin-bottom:14px;max-width:560px;}
.hours{width:100%;border-collapse:collapse;font-size:15px;margin:8px 0 18px;}
.hours th,.hours td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:left;}
.hours th{font-weight:600;color:var(--primary);width:46%;}
.hours td{font-family:'JetBrains Mono',monospace;font-size:14px;}
.photo{border-radius:6px;overflow:hidden;}
.photo img{width:100%;height:340px;object-fit:cover;}
.photo figcaption{font-size:12px;color:var(--text-muted);padding-top:8px;}

.band{background:var(--primary);color:var(--white);}
.band h2{color:var(--white);}
.band .eyebrow{color:var(--accent);}
.band .section-head p{color:#C9D3C4;}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.step .idx{font-family:'JetBrains Mono',monospace;color:var(--accent);font-size:13px;margin-bottom:10px;}
.step h3{color:var(--white);font-size:19px;margin-bottom:8px;}
.step p{color:#B7C4AC;font-size:15px;}
.band .btn-row{margin-top:36px;}
.disclose{margin-top:18px;font-size:12.5px;color:#9FB3A2;max-width:680px;}

.guide-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.guide-card{background:var(--white);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:block;}
.guide-card:hover{border-color:var(--primary);}
.guide-media{height:130px;overflow:hidden;background:var(--primary);}
.guide-media img{width:100%;height:100%;object-fit:cover;}
.guide-body{padding:16px 18px 20px;}
.guide-body .k{font-size:10.5px;text-transform:uppercase;letter-spacing:0.08em;font-weight:700;color:var(--accent-dark);margin-bottom:6px;}
.guide-body .t{font-family:'Fraunces',serif;font-size:17px;color:var(--primary);font-weight:600;margin-bottom:6px;}
.guide-body p{font-size:13.5px;color:var(--text-muted);line-height:1.5;}

/* Kalender-Seite */
.page-hero{background:linear-gradient(180deg,rgba(22,38,29,0.88),rgba(22,38,29,0.78)),var(--hero-img) center/cover no-repeat;background-color:var(--bg-dark);color:var(--white);padding:52px 0 44px;}
.page-hero h1{color:var(--white);font-size:clamp(30px,4.6vw,46px);max-width:820px;}
.page-hero .dek{color:#D8DECF;font-size:17px;max-width:640px;margin-top:14px;}
.page-hero .eyebrow{color:var(--accent);}
.meta-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:22px;font-size:13px;color:#B7C4AC;}
.meta-row strong{color:var(--white);}
.breadcrumb{font-size:12.5px;color:#9FB3A2;margin-bottom:16px;}
.breadcrumb a:hover{color:var(--white);}
.timeline{max-width:860px;margin:0 auto;padding:0 24px;}
.tl-month{display:flex;align-items:center;gap:14px;margin:44px 0 18px;}
.tl-month:first-child{margin-top:0;}
.tl-month .line{flex:1;height:1px;background:var(--line);}
.tl-month h2{font-size:13px;text-transform:uppercase;letter-spacing:0.12em;color:var(--accent-dark);font-family:'Inter',sans-serif;white-space:nowrap;}
.event-card{display:grid;grid-template-columns:110px 1fr auto;gap:22px;align-items:start;background:var(--white);border:1px solid var(--line);border-radius:6px;padding:22px;margin-bottom:14px;}
.event-card.highlight{border:2px solid var(--accent);background:#FBF6EA;}
.event-card.is-past{opacity:.55;}
.event-date{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--primary);font-weight:700;line-height:1.4;}
.event-date .wd{display:block;font-size:11px;color:var(--text-muted);font-weight:500;}
.event-body h3{font-size:19px;margin-bottom:6px;}
.event-body p{font-size:14.5px;color:var(--text-muted);}
.event-tag{display:inline-block;font-size:10.5px;text-transform:uppercase;letter-spacing:0.08em;font-weight:700;color:var(--accent-dark);background:rgba(198,154,58,0.16);padding:3px 8px;border-radius:2px;margin-bottom:8px;}
.page-search{background:var(--bg);margin-top:-1px;}

/* Ratgeber */
.layout{display:grid;grid-template-columns:1fr 300px;gap:56px;max-width:1080px;margin:0 auto;padding:52px 24px 0;align-items:start;}
.prose h2{font-size:26px;margin:44px 0 16px;}
.prose h2:first-child{margin-top:0;}
.prose h3{font-size:19px;margin:28px 0 10px;color:var(--text);}
.prose p{font-size:16px;margin-bottom:16px;max-width:640px;}
.prose ul,.prose ol{margin:0 0 16px 20px;font-size:16px;max-width:640px;}
.prose li{margin-bottom:8px;}
.prose strong{color:var(--primary);}
.prose a{color:var(--primary);text-decoration:underline;text-underline-offset:2px;}
.prose a.btn{text-decoration:none;}
.prose a.btn-dark{color:var(--white);}
.prose a.btn-accent{color:var(--bg-dark);}
.callout{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:3px;padding:18px 22px;margin:24px 0;max-width:640px;}
.callout .lbl{font-size:11.5px;text-transform:uppercase;letter-spacing:0.1em;font-weight:700;color:var(--accent-dark);margin-bottom:6px;}
.callout p{margin-bottom:0;font-size:15px;}
.sidebar{position:sticky;top:100px;display:flex;flex-direction:column;gap:20px;}
.factbox{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:24px;}
.factbox h3{font-size:14px;text-transform:uppercase;letter-spacing:0.08em;font-family:'Inter',sans-serif;font-weight:700;margin-bottom:16px;}
.factbox dl{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;font-size:13.5px;}
.factbox dt{color:var(--text-muted);font-weight:600;white-space:nowrap;}
.factbox .fb-cta{display:block;margin-top:18px;background:var(--primary);color:var(--white);text-align:center;padding:11px;border-radius:3px;font-size:13.5px;font-weight:600;}
.factbox .fb-cta:hover{background:var(--primary-light);}
.author-box{background:var(--bg-dark);border-radius:6px;padding:22px;}
.author-box h3{color:var(--white);font-size:14px;text-transform:uppercase;letter-spacing:0.08em;font-family:'Inter',sans-serif;margin-bottom:10px;}
.author-box p{font-size:13px;color:#B7C4AC;line-height:1.6;}
.author-box .upd{font-size:12px;color:var(--accent);font-weight:600;margin-top:10px;}
.inline-photo{margin:28px 0;border-radius:4px;overflow:hidden;max-width:640px;}
.inline-photo img{width:100%;height:320px;object-fit:cover;}
.inline-photo figcaption{font-size:12px;color:var(--text-muted);padding:8px 2px 0;}
.sources{max-width:640px;margin:36px 0 8px;font-size:13px;color:var(--text-muted);border-top:1px solid var(--line);padding-top:18px;}
.sources h3{font-size:13px;text-transform:uppercase;letter-spacing:0.08em;font-family:'Inter',sans-serif;margin-bottom:10px;}
.sources li{margin-bottom:5px;list-style:none;}
.sources a{color:var(--primary);text-decoration:underline;text-underline-offset:2px;}
.cross-links{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:44px 0;margin-top:56px;}
.cross-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.cross-card{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:18px;font-size:13.5px;}
.cross-card .k{font-size:11px;text-transform:uppercase;letter-spacing:0.08em;color:var(--accent-dark);font-weight:700;margin-bottom:6px;}
.cross-card .t{font-family:'Fraunces',serif;font-size:16px;color:var(--primary);font-weight:600;}
.cross-card p{margin-top:8px;color:var(--text-muted);}
.cross-card:hover{border-color:var(--primary);}

/* FAQ */
.faq{max-width:760px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%;text-align:left;padding:20px 0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:17px;font-weight:600;color:var(--primary);font-family:'Fraunces',serif;list-style:none;}
.faq-q::-webkit-details-marker{display:none;}
.faq-q .plus{font-family:'Inter',sans-serif;font-size:22px;color:var(--accent-dark);font-weight:400;flex-shrink:0;transition:transform .2s;}
.faq-item[open] .plus{transform:rotate(45deg);}
.faq-a{padding:0 0 20px;color:var(--text-muted);font-size:15px;max-width:640px;}
.faq-a a{text-decoration:underline;color:var(--primary);}
.prose .faq{margin:36px 0;}

/* CTA + Footer */
.final-cta{background:var(--bg-dark);color:var(--white);text-align:center;padding:72px 24px;}
.final-cta h2{color:var(--white);font-size:clamp(24px,3.4vw,34px);max-width:640px;margin:0 auto;}
.final-cta p{color:#B7C4AC;margin-top:12px;}
.final-cta .btn{margin-top:26px;}
footer.site{background:var(--bg-dark);color:#8FA093;border-top:1px solid #2C4636;padding:40px 24px 26px;}
.footer-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;padding-bottom:22px;border-bottom:1px solid #2C4636;}
.footer-logo{font-family:'Fraunces',serif;color:var(--white);font-size:17px;font-weight:600;}
.footer-links{display:flex;gap:22px;font-size:13px;flex-wrap:wrap;}
.footer-links a:hover{color:var(--white);}
.footer-disclosure{font-size:12px;line-height:1.7;padding-top:18px;max-width:900px;}
.footer-disclosure a{text-decoration:underline;}
.footer-bottom{padding-top:16px;font-size:11.5px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

/* Rechtstexte */
.legal{max-width:720px;margin:0 auto;padding:0 24px 20px;}
.legal h2{font-size:22px;margin:40px 0 14px;}
.legal h2:first-child{margin-top:0;}
.legal h3{font-size:16px;margin:22px 0 8px;color:var(--text);}
.legal p,.legal li{font-size:15.5px;margin-bottom:12px;}
.legal ul{margin:0 0 12px 20px;}
.legal a{text-decoration:underline;color:var(--primary);}
.legal address{font-style:normal;font-size:15.5px;line-height:1.7;margin-bottom:12px;}
.legal table{width:100%;border-collapse:collapse;margin:16px 0 20px;font-size:14px;}
.legal th,.legal td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top;}
.legal th{background:var(--white);color:var(--primary);}
.legal .placeholder{background:#FBF6EA;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:3px;padding:14px 18px;font-size:14px;color:var(--text-muted);margin:16px 0;}

@media (max-width:980px){
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);padding:18px 24px;flex-direction:column;gap:16px;}
  .nav-links.open{display:flex;}
  .menu-btn{display:block;}
  .nav-cta{display:none;}
  .search-grid{grid-template-columns:1fr 1fr;}
  .search-grid .field:first-child{grid-column:1/-1;}
  .search-grid .btn{grid-column:1/-1;}
  .focus-grid{grid-template-columns:1fr;}
  .ev-wide{grid-template-columns:1fr;}
  .info-grid,.steps{grid-template-columns:1fr;gap:28px;}
  .guide-grid,.cross-grid{grid-template-columns:repeat(2,1fr);}
  .layout{grid-template-columns:1fr;}
  .sidebar{position:static;}
  .event-card{grid-template-columns:1fr;gap:10px;}
}
@media (max-width:520px){.guide-grid,.cross-grid{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*{transition:none !important;}}

/* Skywalk-Ratgeber: Schnellantwort, Hunde-Regel */
.quick{background:var(--white,#fff);border:2px solid var(--green,#1f5c3a);border-radius:12px;padding:1.25rem 1.5rem;margin:0 0 2rem;}
.quick h2{margin-top:0;font-size:1.3rem;}
.quick dl{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.25rem;margin:0 0 1rem;}
.quick dt{font-weight:700;}
.quick dd{margin:0;}
.quick .no{color:#b3261e;}
.quick .checked{font-size:.9rem;margin:0;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.12);}
.dog-box{background:#fdecea;border-left:6px solid #b3261e;border-radius:8px;padding:1.25rem 1.5rem;margin:2rem 0;}
.dog-box h2{margin-top:0;color:#8c1d18;}
@media (max-width:560px){.quick dl{grid-template-columns:1fr;gap:.1rem}.quick dt{margin-top:.6rem}}

/* Suchmaske: Auswahl Ferienwohnung / Hotel */
.search-type{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap;}
.st-btn{font:inherit;font-weight:600;padding:10px 16px;border:2px solid var(--primary,#1f5c3a);background:transparent;color:var(--primary,#1f5c3a);border-radius:6px;cursor:pointer;}
.st-btn small{font-weight:400;opacity:.75;margin-left:4px;}
.st-btn.active{background:var(--primary,#1f5c3a);color:#fff;}
.st-btn:focus-visible{outline:3px solid var(--accent,#e0a526);outline-offset:2px;}

/* Unterkunft: Ferienwohnung / Hotel */
.acc{display:inline-flex;flex-direction:column;gap:5px;align-items:flex-start;vertical-align:top;}
.acc-lab{font-size:12px;font-weight:600;opacity:.85;}
.acc-btns{display:flex;gap:6px;flex-wrap:wrap;}
.prose .acc a.btn{margin:0;}
.factbox .acc{display:flex;align-items:stretch;margin-top:18px;}
.factbox .acc .acc-btns{flex-direction:column;}
.factbox .acc .fb-cta{margin-top:0;}

/* Unterkunft + Tickets in einer sauberen Zeile */
.acc-row{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:flex-start;margin:18px 0;}
.page-hero .acc-row{margin-top:22px;}
.final-cta .acc-row{justify-content:center;margin:26px 0 0;}
.ev .acc-row,.event-card .acc-row{margin:0;gap:10px 18px;}
.acc .btn{margin:0;}
.band .acc-row{margin-top:36px;}
