/* =========================================================
   Die Schmugglerhütte – Stylesheet
   Marke: Waldgrün / Creme / Salbei / Kastanie / Terrakotta
   Schriften: EB Garamond (Headlines), Lato (Text)
   ========================================================= */

:root{
  --waldgruen:#2F3F2F;
  --creme:#F6F1E8;
  --salbei:#6E7F5C;
  --salbei-hell:#AEB89A;
  --kastanie:#9A5A2E;
  --terrakotta:#C45A2E;
  --anthrazit:#2B2B2B;
  --serif:"EB Garamond", Georgia, serif;
  --sans:"Lato", system-ui, -apple-system, sans-serif;
  --maxw:1180px;
  --radius:3px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  font-weight:400;
  color:var(--anthrazit);
  background:var(--creme);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto;}
a{color:var(--kastanie);}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}

h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.14;margin:0;color:var(--waldgruen);}

.eyebrow{
  font-family:var(--sans);font-weight:400;font-size:.72rem;letter-spacing:.34em;
  text-transform:uppercase;color:var(--salbei);margin:0 0 1rem;
}
.eyebrow--light{color:var(--salbei-hell);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;font-family:var(--sans);font-weight:700;font-size:.86rem;
  letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  padding:.95em 1.7em;border-radius:2px;cursor:pointer;border:0;
  transition:transform .15s ease, background .15s ease, color .15s ease;
}
.btn--primary{background:var(--terrakotta);color:var(--creme);}
.btn--primary:hover{background:#a8491f;}
.btn--ghost{background:transparent;color:var(--creme);border:1px solid rgba(246,241,232,.6);}
.btn--ghost:hover{background:rgba(246,241,232,.12);}
.btn--dark{background:var(--waldgruen);color:var(--creme);}
.btn--dark:hover{background:#243023;}
.btn--sage{background:var(--salbei);color:var(--creme);}
.btn--sage:hover{background:#5c6b4c;}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--kastanie);outline-offset:3px;}

/* ---------- Header ---------- */
.header{position:sticky;top:0;z-index:50;background:var(--waldgruen);color:var(--creme);}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:74px;}
.brand{font-family:var(--serif);font-size:1.45rem;font-weight:600;text-decoration:none;color:var(--creme);letter-spacing:.01em;line-height:1;}
.brand small{display:block;font-family:var(--sans);font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--salbei-hell);font-weight:400;margin-top:3px;}
.nav{display:flex;align-items:center;gap:26px;}
.nav a{font-size:.82rem;letter-spacing:.04em;text-decoration:none;color:var(--creme);opacity:.9;padding:4px 0;}
.nav a:hover,.nav a[aria-current="page"]{opacity:1;border-bottom:1px solid var(--salbei-hell);}
.nav .btn{margin-left:4px;color:var(--creme);}
.nav-toggle{display:none;background:none;border:0;color:var(--creme);font-size:1.7rem;cursor:pointer;line-height:1;}

/* ---------- Hero (Startseite) ---------- */
.hero{position:relative;background:var(--waldgruen) center 60%/cover no-repeat;color:var(--creme);}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,38,28,.42),rgba(28,38,28,.68));}
.hero__inner{position:relative;z-index:2;padding-top:120px;padding-bottom:130px;max-width:680px;}
.hero h1{font-size:clamp(2.6rem,6vw,4.4rem);color:var(--creme);margin-bottom:.5em;}
.hero p{font-size:1.18rem;font-weight:300;max-width:34em;margin:0 0 2.2em;color:#f3efe6;}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;}

/* ---------- Subpage-Hero ---------- */
.subhero{position:relative;background:var(--waldgruen) center/cover no-repeat;color:var(--creme);}
.subhero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,38,28,.45),rgba(28,38,28,.7));}
.subhero__inner{position:relative;z-index:2;padding-top:84px;padding-bottom:88px;max-width:720px;}
.subhero h1{font-size:clamp(2.1rem,4.6vw,3.2rem);color:var(--creme);margin-bottom:.4em;}
.subhero p{font-size:1.1rem;font-weight:300;color:#eee7da;max-width:38em;margin:0;}

/* ---------- Fakten-Band ---------- */
.facts{background:var(--salbei-hell);}
.facts__grid{display:grid;grid-template-columns:repeat(4,1fr);}
.fact{padding:40px 22px;text-align:center;border-right:1px solid rgba(47,63,47,.16);}
.fact:last-child{border-right:0;}
.fact .num{font-family:var(--serif);font-size:clamp(2.1rem,3.6vw,2.9rem);color:var(--waldgruen);line-height:1;}
.fact .lbl{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--waldgruen);margin-top:.7em;opacity:.85;}

/* ---------- Sektionen ---------- */
.section{padding:88px 0;}
.section--tint{background:#fff;}
.section__head{max-width:660px;margin-bottom:48px;}
.section__head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section__head h2{font-size:clamp(1.9rem,3.8vw,2.7rem);margin-bottom:.35em;}
.section__head p{font-size:1.06rem;color:#4a4a44;margin:0;}

.prose{max-width:720px;font-size:1.05rem;color:#3a3a34;}
.prose p{margin:0 0 1.1em;}
.prose h3{font-size:1.5rem;margin:1.8em 0 .5em;}
.lead{font-size:1.18rem;color:#3a3a34;}

/* ---------- USP-Karten ---------- */
.usp{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.card{background:#fff;border:1px solid rgba(110,127,92,.28);border-radius:var(--radius);padding:36px 30px;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease;}
.section--tint .card{background:var(--creme);}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(47,63,47,.12);}
.card .knr{font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--kastanie);margin-bottom:1rem;}
.card h3{font-size:1.45rem;margin-bottom:.5em;}
.card p{margin:0 0 1.4em;color:#4a4a44;font-size:.98rem;}
.card .more{margin-top:auto;font-weight:700;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--terrakotta);text-decoration:none;}
.card .more:hover{text-decoration:underline;}

/* ---------- Split ---------- */
.split{display:grid;grid-template-columns:1.05fr 1fr;align-items:stretch;background:var(--waldgruen);color:var(--creme);}
.split--rev{grid-template-columns:1fr 1.05fr;}
.split--rev .split__media{order:2;}
.split__media{min-height:440px;background-size:cover;background-position:center;background-color:var(--kastanie);}
.split__body{padding:72px 58px;display:flex;flex-direction:column;justify-content:center;}
.split__body h2{color:var(--creme);font-size:clamp(1.8rem,3.2vw,2.4rem);margin-bottom:.5em;}
.split__body p{color:#dfe3d8;font-weight:300;font-size:1.05rem;margin:0 0 1em;}
.split__body .btn{align-self:flex-start;margin-top:1.1rem;}

/* ---------- Feature-Liste ---------- */
.features{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 48px;}
.feat h4{font-size:1.2rem;margin-bottom:.5em;}
.feat ul{list-style:none;padding:0;margin:0;}
.feat li{position:relative;padding-left:22px;margin-bottom:.4em;color:#3a3a34;font-size:.98rem;}
.feat li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--salbei);}

/* ---------- Aktivitäten ---------- */
.acts{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
.act{background:#fff;border-left:3px solid var(--salbei);padding:26px 28px;border-radius:0 var(--radius) var(--radius) 0;}
.act h3{font-size:1.35rem;margin-bottom:.4em;}
.act p{margin:0;color:#4a4a44;font-size:.98rem;}
.act .season{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--kastanie);display:block;margin-bottom:.6em;}

/* ---------- Galerie ---------- */
.gal-group{margin-bottom:56px;}
.gal-group h2{font-size:1.7rem;margin-bottom:20px;}
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.gal-grid img{width:100%;height:260px;object-fit:cover;border-radius:var(--radius);}

/* ---------- Bewertungen ---------- */
.trust{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin:0 auto 48px;color:#4a4a44;font-size:.95rem;}
.trust .score{font-family:var(--serif);font-size:2rem;color:var(--waldgruen);line-height:1;}
.stars{color:var(--terrakotta);letter-spacing:2px;}
.trust .sep{width:1px;height:26px;background:rgba(47,63,47,.2);}
.revs{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
.rev{background:var(--creme);border:1px solid rgba(110,127,92,.28);border-radius:var(--radius);padding:32px 30px;display:flex;flex-direction:column;}
.section--tint .rev{background:#fff;}
.rev__stars{color:var(--terrakotta);letter-spacing:2px;font-size:.95rem;margin-bottom:14px;}
.rev__text{font-family:var(--serif);font-size:1.18rem;font-style:italic;color:var(--waldgruen);line-height:1.5;margin:0 0 22px;}
.rev__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.rev__who{font-size:.9rem;font-weight:700;color:var(--anthrazit);}
.rev__who span{display:block;font-weight:400;color:#7a7a70;font-size:.78rem;margin-top:2px;}
.src{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--salbei);border:1px solid var(--salbei-hell);border-radius:2px;padding:4px 9px;white-space:nowrap;}

/* ---------- Buchungs-Band / Widgets ---------- */
.booking{background:var(--terrakotta);color:var(--creme);text-align:center;padding:80px 0;}
.booking h2{color:var(--creme);font-size:clamp(1.9rem,3.8vw,2.6rem);margin-bottom:.4em;}
.booking p{font-weight:300;font-size:1.08rem;max-width:30em;margin:0 auto 1.8em;}
.widget-panel{background:#fff;border-radius:var(--radius);padding:26px;box-shadow:0 12px 34px rgba(47,63,47,.1);}
.widget-panel .booking-title{text-align:center;font-size:1.5rem;margin-bottom:16px;}
.calendarWidget{margin-top:8px;}
/* Fix: Smoobu-Kalender wird ohne iFrame direkt eingebettet und erbt sonst
   unsere dunkle Überschriftenfarbe auf dem dunklen Smoobu-Monatsbalken. */
.calendarWidget h1,.calendarWidget h2,.calendarWidget h3,.calendarWidget h4{color:#fff !important;}

/* ---------- Info-Boxen / Tabellen ---------- */
.note{background:#fff;border:1px solid rgba(110,127,92,.28);border-radius:var(--radius);padding:22px 26px;font-size:.96rem;color:#3a3a34;}
.note strong{color:var(--waldgruen);}
.price-table{width:100%;border-collapse:collapse;font-size:1rem;}
.price-table th,.price-table td{text-align:left;padding:14px 12px;border-bottom:1px solid rgba(47,63,47,.14);}
.price-table th{font-family:var(--sans);font-weight:700;color:var(--waldgruen);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;}
.price-table .amount{font-family:var(--serif);font-size:1.2rem;color:var(--kastanie);white-space:nowrap;}

/* ---------- FAQ ---------- */
.faq details{border-bottom:1px solid rgba(47,63,47,.16);padding:6px 0;}
.faq summary{cursor:pointer;list-style:none;padding:18px 40px 18px 0;font-family:var(--serif);font-size:1.25rem;color:var(--waldgruen);position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:6px;top:16px;font-size:1.5rem;color:var(--salbei);transition:transform .2s ease;}
.faq details[open] summary::after{content:"–";}
.faq details p{margin:0 0 18px;color:#3a3a34;max-width:60em;}

/* ---------- Gastgeber ---------- */
.host{display:grid;grid-template-columns:0.9fr 1.1fr;gap:48px;align-items:center;}
.host img{width:100%;border-radius:var(--radius);object-fit:cover;}

/* ---------- Karte ---------- */
.map-embed{width:100%;height:380px;border:0;border-radius:var(--radius);}

/* ---------- Footer ---------- */
.footer{background:var(--waldgruen);color:var(--creme);padding:66px 0 32px;}
.footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px;}
.footer h4{font-family:var(--serif);font-size:1.25rem;font-weight:500;margin:0 0 .8rem;color:var(--creme);}
.footer p{color:#dfe3d8;font-weight:300;font-size:.92rem;margin:.2rem 0 0;}
.footer .claim{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--salbei-hell);margin-top:.9rem;}
.footer ul{list-style:none;padding:0;margin:0;}
.footer li{margin-bottom:.5rem;}
.footer a{font-size:.9rem;text-decoration:none;color:#dfe3d8;}
.footer a:hover{color:var(--creme);text-decoration:underline;}
.footer__col span.h{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--salbei-hell);display:block;margin-bottom:.9rem;}
.footer__bottom{border-top:1px solid rgba(174,184,154,.25);margin-top:44px;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.78rem;color:#b9c2ac;}
.footer__bottom a{color:#b9c2ac;}

/* ---------- Sticky mobile CTA ---------- */
.sticky-cta{display:none;}

/* ---------- Utilities ---------- */
.center{text-align:center;}
.mt-s{margin-top:1.4rem;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .nav{position:absolute;top:74px;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:var(--waldgruen);padding:0 28px;max-height:0;overflow:hidden;transition:max-height .25s ease;}
  .nav.open{max-height:460px;padding:12px 28px 22px;}
  .nav a{width:100%;padding:12px 0;border-bottom:1px solid rgba(174,184,154,.18);}
  .nav .btn{margin:14px 0 0;width:100%;text-align:center;}
  .nav-toggle{display:block;}
  .usp,.acts,.revs,.features{grid-template-columns:1fr;}
  .split,.split--rev{grid-template-columns:1fr;}
  .split--rev .split__media{order:0;}
  .split__media{min-height:260px;}
  .split__body{padding:52px 30px;}
  .gal-grid{grid-template-columns:1fr 1fr;}
  .host,.grid-2{grid-template-columns:1fr;}
  .footer__grid{grid-template-columns:1fr 1fr;}
  .sticky-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--terrakotta);text-align:center;padding:12px;box-shadow:0 -4px 16px rgba(0,0,0,.14);}
  .sticky-cta a{color:var(--creme);text-decoration:none;font-weight:700;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase;}
  body{padding-bottom:52px;}
}
@media(max-width:560px){
  .facts__grid{grid-template-columns:1fr 1fr;}
  .fact:nth-child(-n+2){border-bottom:1px solid rgba(47,63,47,.16);}
  .fact:nth-child(2){border-right:0;}
  .gal-grid{grid-template-columns:1fr;}
  .footer__grid{grid-template-columns:1fr;}
  .hero__inner{padding-top:88px;padding-bottom:96px;}
  /* Smoobu-Widgets brauchen auf schmalen Screens jeden Pixel Breite,
     sonst bricht deren eigene Kalendernavigation ab. */
  .wrap--tight{padding-left:8px;padding-right:8px;}
  .widget-panel{padding:14px 8px;}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important;}}
