:root {
  --paper: #f4ecdc;
  --paper-deep: #e6dac2;
  --paper-light: #fffaf0;
  --forest: #203f33;
  --forest-dark: #112a22;
  --olive: #647052;
  --wine: #80372d;
  --wine-dark: #64271f;
  --gold: #b49b67;
  --ink: #2a2c27;
  --muted: #68685f;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
.login-page {
  align-items: center; background: linear-gradient(rgba(17,42,34,.76), rgba(17,42,34,.76)), url('../img/klippen-luftaufnahme.jpg') center/cover fixed;
  display: flex; justify-content: center; min-height: 100vh; padding: 24px;
}
.login-card { background: var(--paper); border: 1px solid #cdbf9f; box-shadow: 0 24px 70px rgba(0,0,0,.32); max-width: 470px; padding: 48px; position: relative; width: 100%; }
.login-card::after { border: 1px solid rgba(128,55,45,.2); content: ""; inset: 8px; pointer-events: none; position: absolute; }
.login-card > * { position: relative; z-index: 1; }
.login-card > img { height: 76px; margin-bottom: 24px; object-fit: contain; width: 76px; }
.login-card h1 { color: var(--forest-dark); font-size: clamp(2.2rem, 7vw, 3.35rem); line-height: 1; margin-bottom: 18px; }
.login-card > p:not(.eyebrow):not(.login-error) { color: var(--muted); line-height: 1.6; }
.login-card form { display: flex; flex-direction: column; gap: 12px; margin-top: 27px; }
.login-card label { font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.login-card input { background: var(--paper-light); border: 1px solid #c9b995; color: var(--ink); min-height: 52px; padding: 12px 14px; }
.login-card input:focus { border-color: var(--wine); outline: 2px solid rgba(128,55,45,.16); }
.login-card .button { cursor: pointer; margin-top: 6px; }
.login-error { background: #f2d7cf; color: #762c22; font-size: .84rem; margin: 17px 0 0; padding: 11px 13px; }
.site-shell { overflow: hidden; }
.test-warning {
  align-items: center; background: #9e2f24; border-bottom: 3px solid #651c15; color: white;
  display: flex; gap: 16px; justify-content: center; min-height: 58px; padding: 11px 24px;
  text-align: center; text-transform: uppercase;
}
.test-warning strong { font-size: 1rem; letter-spacing: .06em; }
.test-warning span { border-left: 1px solid rgba(255,255,255,.55); font-size: .82rem; letter-spacing: .025em; padding-left: 16px; }
.beta-note {
  align-items: center; background: var(--paper-light); border-bottom: 1px solid #cdbf9f; color: var(--forest-dark);
  display: flex; font-size: .8rem; justify-content: center; letter-spacing: .01em;
  min-height: 40px; padding: 9px 20px; text-align: center;
}
.wrap { width: min(1160px, calc(100% - 48px)); margin-inline: auto; }
.section { padding-block: 105px; }
.paper-texture {
  background-color: var(--paper);
  background-image:
    radial-gradient(circle at 18% 20%, rgba(128, 55, 45, .045) 0 1px, transparent 1.4px),
    radial-gradient(circle at 78% 72%, rgba(32, 63, 51, .045) 0 1px, transparent 1.4px);
  background-size: 24px 24px, 31px 31px;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; }
h1, h2 { font-weight: 400; letter-spacing: -.035em; }
h2 { color: var(--forest-dark); font-size: clamp(2.5rem, 5vw, 4.45rem); line-height: 1.02; margin-bottom: 28px; }
.eyebrow { color: var(--wine); font-size: .7rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 17px; }
.eyebrow.light { color: #ead4ab; }
.centered { text-align: center; }
.centered-text { text-align: center; }
.button {
  align-items: center; background: var(--wine); border: 1px solid var(--wine);
  color: white; display: inline-flex; font-size: .75rem; font-weight: 800; gap: 18px;
  justify-content: center; letter-spacing: .07em; min-height: 50px; padding: 14px 21px;
  text-transform: uppercase; transition: .2s ease;
}
.button:hover { background: var(--wine-dark); border-color: var(--wine-dark); transform: translateY(-1px); }
.button-small { min-height: 42px; padding: 10px 15px; }
.button-cream { background: var(--paper-light); border-color: var(--paper-light); color: var(--forest-dark); }
.button-cream:hover { background: white; border-color: white; }
.button-secondary { background: transparent; border-color: var(--wine); color: var(--wine); }
.button-secondary:hover { background: var(--wine); border-color: var(--wine); color: white; }

.top-ribbon {
  align-items: center; background: var(--forest-dark); color: #d8d0bd; display: flex;
  font-size: .65rem; height: 30px; justify-content: space-between; letter-spacing: .12em;
  padding-inline: 4vw; text-transform: uppercase;
}
.top-ribbon a { color: white; font-weight: 700; }
.top-ribbon-links { align-items: center; display: flex; gap: 16px; }
.top-ribbon-links a + a { border-left: 1px solid rgba(255,255,255,.3); padding-left: 16px; }
.top-ribbon .top-ribbon-help { color: #ead4ab; }
.top-ribbon-help::before { content: "+"; font-size: .82rem; margin-right: 6px; }
.top-ribbon-help:hover { color: white; }
.topbar {
  align-items: center; background: rgba(244, 236, 220, .97); border-bottom: 1px solid #cdbf9f;
  display: flex; height: 78px; justify-content: space-between; padding: 0 4vw; position: relative; z-index: 20;
}
.brand { align-items: center; display: flex; gap: 11px; min-width: 230px; }
.brand img { height: 57px; object-fit: contain; width: 57px; }
.brand span { display: flex; flex-direction: column; font-family: Georgia, "Times New Roman", serif; line-height: 1; }
.brand strong { color: var(--forest-dark); font-size: 1.08rem; }
.brand small { color: var(--wine); font-size: .81rem; margin-top: 5px; }
.desktop-nav { display: flex; gap: clamp(14px, 1.7vw, 30px); }
.desktop-nav a { font-size: .74rem; font-weight: 700; letter-spacing: .035em; padding-block: 29px; }
.desktop-nav a:hover { color: var(--wine); }
.header-actions { align-items: center; display: flex; gap: 17px; }
.language { display: flex; font-size: .68rem; font-weight: 800; gap: 5px; }
.language a { opacity: .48; }
.language a.active { color: var(--wine); opacity: 1; }
.mobile-menu { display: none; position: relative; }

.hero { color: white; min-height: 720px; position: relative; }
.hero-image, .hero-shade { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.hero-image { object-position: center 45%; }
.hero-shade {
  background:
    linear-gradient(90deg, rgba(12, 36, 29, .88), rgba(12, 36, 29, .45) 59%, rgba(12, 36, 29, .12)),
    linear-gradient(0deg, rgba(11, 27, 22, .3), transparent 55%);
}
.hero-content { padding-top: 108px; position: relative; z-index: 2; }
.hero-copy { border-left: 1px solid rgba(234, 212, 171, .72); max-width: 790px; padding: 20px 0 25px 40px; }
.hero h1 { font-size: clamp(3.8rem, 7.2vw, 6.7rem); line-height: .95; margin-bottom: 28px; text-shadow: 0 3px 26px rgba(0,0,0,.28); }
.hero h1 em { color: #ead9b3; font-weight: 400; }
.hero-intro { font-size: 1.07rem; line-height: 1.7; margin-bottom: 32px; max-width: 610px; }
.draft-badge {
  background: var(--paper); border: 1px solid #c7b995; color: var(--forest-dark);
  font-size: .64rem; font-weight: 800; letter-spacing: .12em; padding: 9px 13px;
  position: absolute; right: 4vw; text-transform: uppercase; top: 25px; z-index: 3;
}
.fact-strip {
  background: var(--paper-light); border-top: 4px solid var(--wine); bottom: -48px; box-shadow: 0 16px 34px rgba(21, 31, 26, .16);
  color: var(--ink); display: grid; grid-template-columns: repeat(3, 1fr); left: 50%; max-width: 850px;
  position: absolute; transform: translateX(-50%); width: calc(100% - 48px); z-index: 3;
}
.fact-strip div { align-items: center; border-right: 1px solid #ddd1b8; display: flex; gap: 13px; justify-content: center; min-height: 92px; padding: 17px; }
.fact-strip div:last-child { border: 0; }
.fact-strip strong { color: var(--wine); font-family: Georgia, serif; font-size: 1.75rem; font-weight: 400; }
.fact-strip span { color: var(--forest-dark); font-size: .76rem; font-weight: 800; line-height: 1.3; }

.subpage-hero {
  background: url('../img/stellplatz-hecken.jpg') center 48%/cover;
  color: white; min-height: 360px; position: relative;
}
.subpage-stay { background-image: url('../img/stellplatz-wald.jpg'); }
.subpage-holiday { background-image: url('../img/ferienhaus-aussen.jpg'); }
.subpage-prices { background-image: url('../img/doerenther-klippen.jpg'); }
.subpage-surroundings { background-image: url('../img/hockendes-weib.jpg'); }
.subpage-faq { background-image: url('../img/spielplatz.jpg'); }
.subpage-emergency { background-image: url('../img/teutoburger-wald.jpg'); }
.subpage-contact { background-image: url('../img/teutoburger-wald.jpg'); }
.subpage-imprint, .subpage-privacy, .subpage-booking { background-image: url('../img/klippen-luftaufnahme.jpg'); }
.subpage-shade { background: linear-gradient(90deg, rgba(12,36,29,.88), rgba(12,36,29,.2)); inset: 0; position: absolute; }
.subpage-copy { padding-block: 105px 80px; position: relative; z-index: 1; }
.subpage-copy h1 { font-size: clamp(3rem, 6vw, 5.8rem); line-height: 1; margin: 0; max-width: 900px; text-shadow: 0 3px 24px rgba(0,0,0,.28); }

.welcome { padding-top: 150px; }
.welcome-grid { align-items: center; display: grid; gap: 9%; grid-template-columns: .92fr 1.08fr; }
.lead { color: var(--muted); font-size: 1.04rem; line-height: 1.83; }
blockquote {
  border-left: 3px solid var(--wine); color: var(--forest-dark); font-family: Georgia, serif;
  font-size: 1.21rem; font-style: italic; line-height: 1.58; margin: 31px 0 0; padding-left: 21px;
}
.image-stack { min-height: 550px; position: relative; }
.image-main { border: 8px solid var(--paper-light); box-shadow: 0 18px 38px rgba(36, 37, 30, .15); height: 480px; object-fit: cover; width: 88%; }
.image-small { border: 8px solid var(--paper-light); bottom: 0; box-shadow: 0 12px 28px rgba(36, 37, 30, .16); height: 215px; object-fit: cover; position: absolute; right: 0; width: 43%; }
.qualities-grid { border-block: 1px solid #cdbf9f; display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 78px; }
.qualities-grid article { padding: 38px 38px 34px; position: relative; }
.qualities-grid article + article { border-left: 1px solid #cdbf9f; }
.qualities-grid span { color: var(--gold); font-family: Georgia, serif; font-size: .82rem; }
.qualities-grid h3 { color: var(--forest-dark); font-size: 1.55rem; font-weight: 400; margin: 9px 0 11px; }
.qualities-grid p { color: var(--muted); font-size: .87rem; line-height: 1.65; margin: 0; }

.hero-highlight { color: #ead4ab; font-size: .95rem; font-weight: 700; letter-spacing: .01em; margin: -8px 0 30px; max-width: 610px; }

.explore-more { align-items: center; border-top: 1px solid #cdbf9f; display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 66px; padding-top: 30px; }
.explore-more-label { color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; margin-right: 6px; }
.explore-more a { color: var(--wine); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.explore-more a:hover { color: var(--wine-dark); text-decoration: underline; }

.guest-feedback { background: var(--paper-light); }
.guest-feedback-text { color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; line-height: 1.6; margin: -6px auto 30px; max-width: 640px; text-align: center; }
.guest-feedback-points { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; list-style: none; margin: 0; padding: 0; }
.guest-feedback-points li { background: var(--paper); border: 1px solid #d4c5a7; color: var(--wine); font-size: .72rem; font-weight: 800; letter-spacing: .04em; padding: 12px 22px; text-transform: uppercase; }

.faq-teaser .faq-list { margin-bottom: 0; }
.faq-teaser .faq-intro { margin-bottom: 26px; }

.closing-cta { background: var(--forest-dark); color: white; padding-block: 62px; }
.closing-cta-inner { align-items: center; display: flex; flex-wrap: wrap; gap: 28px; justify-content: space-between; }
.closing-cta h2 { color: white; font-size: clamp(1.8rem, 3.2vw, 2.5rem); margin: 6px 0 8px; }
.closing-cta p:not(.eyebrow) { color: #cbd3cb; margin: 0; }
.closing-cta-buttons { display: flex; flex-wrap: wrap; gap: 16px; }
.closing-cta .button-secondary { border-color: rgba(255, 255, 255, .55); color: white; }
.closing-cta .button-secondary:hover { background: rgba(255, 255, 255, .12); border-color: white; }

.camp-gallery { background: var(--paper-light); }
.gallery-heading { margin-bottom: 34px; max-width: 760px; }
.gallery-heading.centered { margin-inline: auto; text-align: center; }
.gallery-heading > p:not(.eyebrow) { color: var(--muted); line-height: 1.7; }
.camp-gallery-grid { display: grid; gap: 18px; grid-template-columns: 1.3fr 1fr; grid-template-rows: repeat(2, 245px); }
.camp-gallery-grid figure, .holiday-photo-grid figure { margin: 0; overflow: hidden; position: relative; }
.camp-gallery-grid .gallery-large { grid-row: 1 / span 2; }
.camp-gallery-grid img, .holiday-photo-grid img { height: 100%; object-fit: cover; transition: transform .35s ease; width: 100%; }
.camp-gallery-grid figure:hover img, .holiday-photo-grid figure:hover img { transform: scale(1.025); }
.camp-gallery-grid figcaption, .holiday-photo-grid figcaption { background: linear-gradient(transparent, rgba(16,31,25,.82)); bottom: 0; color: white; font-size: .72rem; left: 0; padding: 34px 16px 13px; position: absolute; right: 0; }
.sanitary-feature { align-items: center; background: var(--paper); display: grid; gap: 7%; grid-template-columns: 1.15fr .85fr; margin-top: 55px; padding: 25px; }
.sanitary-feature img { height: 390px; object-fit: cover; width: 100%; }
.sanitary-feature h3 { color: var(--forest-dark); font-size: clamp(2rem, 3vw, 3rem); margin-bottom: 17px; }
.sanitary-feature > div > p:not(.eyebrow) { color: var(--muted); line-height: 1.72; }

.more-gallery { margin-top: 60px; }
.more-gallery .gallery-heading { margin-bottom: 28px; }
.more-gallery-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.more-gallery-grid figure { margin: 0; overflow: hidden; position: relative; }
.more-gallery-grid img { display: block; height: 260px; object-fit: cover; transition: transform .35s ease; width: 100%; }
.more-gallery-grid figure:hover img { transform: scale(1.025); }
.more-gallery-grid figcaption { background: linear-gradient(transparent, rgba(16, 31, 25, .82)); bottom: 0; color: white; font-size: .72rem; left: 0; padding: 34px 16px 13px; position: absolute; right: 0; }

.stays { background: var(--paper-light); text-align: center; }
.section-heading { margin-inline: auto; max-width: 780px; }
.ornament { color: var(--gold); display: block; font-size: .75rem; margin: 6px auto 42px; position: relative; width: 160px; }
.ornament::before, .ornament::after { background: #cdbf9f; content: ""; height: 1px; position: absolute; top: 50%; width: 64px; }
.ornament::before { left: 0; }
.ornament::after { right: 0; }
.stay-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); text-align: left; }
.stay-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.stay-photo-grid { display: grid; gap: 18px; grid-template-columns: 1.45fr 1fr; grid-template-rows: repeat(2, 235px) 300px; margin: 0 0 42px; text-align: left; }
.stay-photo-grid figure { margin: 0; overflow: hidden; position: relative; }
.stay-photo-grid .stay-photo-main { grid-row: 1 / 3; }
.stay-photo-grid .stay-photo-wide { grid-column: 1 / -1; }
.stay-photo-grid img { height: 100%; object-fit: cover; width: 100%; }
.stay-photo-grid .stay-photo-main img { object-position: center 48%; }
.stay-photo-grid figcaption { background: linear-gradient(transparent, rgba(17,42,34,.84)); bottom: 0; color: white; font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem; left: 0; padding: 48px 22px 18px; position: absolute; right: 0; }
.stay-card { background: var(--paper); border: 1px solid #d4c5a7; min-height: 305px; padding: 40px 34px; position: relative; transition: .2s ease; }
.stay-card::after { border: 1px solid rgba(128, 55, 45, .18); content: ""; inset: 7px; pointer-events: none; position: absolute; }
.stay-card:hover { border-color: var(--wine); transform: translateY(-4px); }
.icon { align-items: center; color: var(--wine); display: inline-flex; height: 42px; justify-content: center; margin-bottom: 25px; width: 42px; }
.icon svg, .contact-list svg { fill: none; height: 100%; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; width: 100%; }
.stay-card h3, .useful-item h3, .place-card h3 { color: var(--forest-dark); font-size: 1.45rem; font-weight: 400; margin-bottom: 12px; }
.stay-card p, .useful-item p { color: var(--muted); line-height: 1.67; margin-bottom: 0; }

.useful { padding-block: 65px; }
.useful-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.useful-item { align-items: flex-start; border-right: 1px solid #cdbf9f; display: flex; gap: 16px; padding: 6px 22px; }
.useful-item:last-child { border: 0; }
.useful-item .icon { flex: 0 0 35px; height: 35px; margin: 0; }
.useful-item h3 { font-size: 1.05rem; margin-bottom: 6px; }
.useful-item p { font-size: .82rem; }
.holiday-showcase { background: var(--paper-light); padding-top: 70px; }
.holiday-teaser { background: #e7dcc5; padding: 34px 0; }
.holiday-teaser-inner { align-items: center; display: flex; gap: 45px; justify-content: space-between; }
.holiday-teaser h2 { color: var(--forest-dark); font-size: clamp(1.7rem, 3vw, 2.6rem); margin: 3px 0 9px; }
.holiday-teaser p:not(.eyebrow) { color: var(--muted); line-height: 1.65; margin: 0; max-width: 720px; }
.holiday-teaser .button { flex: 0 0 auto; }
.holiday-photo-grid { display: grid; gap: 16px; grid-template-columns: 1.25fr 1fr 1fr; grid-template-rows: repeat(2, 230px); }
.holiday-photo-grid .holiday-large { grid-row: 1 / span 2; }
.holiday-photo-grid figure:nth-child(2) { grid-column: 2 / span 2; }
.holiday-request { align-items: center; display: flex; gap: 24px; justify-content: center; margin-top: 38px; }
.holiday-request > a:not(.button) { color: var(--wine); font-weight: 800; }

.prices { background: var(--forest-dark); color: white; }
.price-layout { align-items: center; display: grid; gap: 8%; grid-template-columns: .82fr 1.18fr; }
.prices h2 { color: white; }
.price-copy > p:not(.eyebrow) { color: #cbd3cb; line-height: 1.75; }
.price-copy img { border: 6px solid rgba(255,255,255,.1); height: 180px; margin-top: 34px; object-fit: cover; width: 100%; }
.price-card { background: var(--paper-light); box-shadow: 0 17px 40px rgba(0,0,0,.22); color: var(--ink); padding: 15px 37px 28px; }
.price-head, .price-row { align-items: center; display: grid; gap: 12px; grid-template-columns: 1fr 112px 112px; }
.price-head { border-bottom: 2px solid var(--wine); color: var(--forest-dark); font-size: .67rem; letter-spacing: .08em; min-height: 62px; text-align: right; text-transform: uppercase; }
.price-row { border-bottom: 1px solid #ddd1b8; min-height: 61px; }
.price-row span { font-size: .89rem; }
.price-row strong { color: var(--wine); font-family: Georgia, serif; font-size: 1.14rem; font-weight: 400; text-align: right; }
.single-person-notice { background: #f1dfb5; border-left: 5px solid var(--wine); color: var(--forest-dark); font-size: .92rem; font-weight: 800; line-height: 1.5; margin: 20px 0 0; padding: 14px 16px; }
.price-note { color: var(--muted); font-size: .72rem; line-height: 1.5; margin: 18px 0 0; }
.price-more { margin-top: 80px; }
.price-more > h2 { margin-bottom: 34px; text-align: center; }
.price-offer-grid { display: grid; gap: 22px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.price-offer-card { background: var(--paper-light); color: var(--ink); padding: 29px 30px 25px; }
.price-offer-card:last-child { grid-column: 1 / -1; }
.price-offer-card h3 { color: var(--forest-dark); font-size: 1.45rem; margin-bottom: 10px; }
.price-offer-card > p { color: var(--muted); font-size: .82rem; line-height: 1.55; margin: 0 0 18px; }
.offer-rows { border-top: 1px solid #d8cbb0; }
.offer-rows > div { align-items: center; border-bottom: 1px solid #d8cbb0; display: flex; gap: 20px; justify-content: space-between; min-height: 46px; }
.offer-rows span { font-size: .78rem; }
.offer-rows strong { color: var(--wine); font-family: Georgia, serif; font-size: 1.05rem; font-weight: 400; text-align: right; }
.price-facts { background: rgba(255,255,255,.08); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 25px; padding: 24px; }
.price-facts > div { border-left: 1px solid rgba(255,255,255,.18); display: flex; flex-direction: column; gap: 7px; padding: 0 20px; text-align: center; }
.price-facts > div:first-child { border-left: 0; }
.price-facts span { color: #cbd3cb; font-size: .7rem; line-height: 1.35; }
.price-facts strong { color: #f1dfb5; font-family: Georgia, serif; font-size: 1rem; font-weight: 400; }
.price-offers-note { color: #cbd3cb; font-size: .72rem; line-height: 1.5; margin: 20px auto 0; max-width: 850px; text-align: center; }

.gasthof { background: var(--wine); color: white; padding-block: 75px; }
.gasthof-inner { align-items: center; display: grid; gap: 45px; grid-template-columns: 205px 1fr auto; }
.gasthof h2 { color: white; font-size: clamp(2.35rem, 4vw, 3.7rem); margin-bottom: 18px; }
.gasthof p:not(.eyebrow) { line-height: 1.7; margin: 0; max-width: 700px; opacity: .88; }
.gasthof-logo { display: block; height: auto; max-width: 100%; width: 195px; }

.surroundings-head { align-items: end; display: grid; gap: 10%; grid-template-columns: 1fr .85fr; margin-bottom: 48px; }
.surroundings-head h2 { margin-bottom: 0; }
.surroundings-head > p { color: var(--muted); line-height: 1.78; margin-bottom: 3px; }
.place-grid { display: grid; gap: 26px; grid-template-columns: repeat(2, 1fr); }
.place-card { background: var(--paper-light); border: 1px solid #d4c5a7; }
.place-card img { height: 325px; object-fit: cover; width: 100%; }
.place-card div { padding: 26px 29px; }
.place-card h3 { margin-bottom: 7px; }
.place-card p { color: var(--muted); margin: 0; }

.excursion-lead {
  color: var(--muted); font-size: 1.04rem; line-height: 1.78; margin: -18px auto 25px;
  max-width: 800px; text-align: center;
}
.excursion-nav { display: flex; flex-wrap: wrap; gap: 9px; justify-content: center; margin: 0 0 48px; }
.excursion-nav a {
  background: var(--paper-light); border: 1px solid #cdbf9f; color: var(--forest-dark);
  font-size: .68rem; font-weight: 800; letter-spacing: .05em; padding: 10px 14px; text-transform: uppercase;
}
.excursion-nav a:hover { background: var(--wine); border-color: var(--wine); color: white; }
.local-advantage {
  background: var(--forest-dark); color: white; margin-bottom: 78px; padding: 48px 50px 38px;
  position: relative;
}
.local-advantage::after { border: 1px solid rgba(234,212,171,.22); content: ""; inset: 8px; pointer-events: none; position: absolute; }
.local-advantage > * { position: relative; z-index: 1; }
.local-advantage > h3 { color: white; font-size: clamp(2rem, 3.5vw, 3.25rem); font-weight: 400; margin-bottom: 31px; }
.local-advantage-grid { display: grid; gap: 0; grid-template-columns: repeat(3, 1fr); }
.local-advantage-grid article { border-left: 1px solid rgba(255,255,255,.22); padding: 5px 28px 8px; }
.local-advantage-grid article:first-child { border-left: 0; padding-left: 0; }
.local-advantage-grid h4 { color: #ead9b3; font-family: Georgia, serif; font-size: 1.3rem; font-weight: 400; margin: 0 0 9px; }
.local-advantage-grid p { color: #cbd3cb; font-size: .86rem; line-height: 1.65; margin: 0; }
.nature-note { border-top: 1px solid rgba(255,255,255,.2); color: #d8ded9; font-size: .77rem; line-height: 1.55; margin: 32px 0 0; padding-top: 18px; }
.excursion-overview { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.excursion-overview-card {
  background: var(--paper-light); border: 1px solid #d4c5a7; display: flex; flex-direction: column;
  min-height: 285px; padding: 36px 34px 31px; position: relative; transition: .2s ease;
}
.excursion-overview-card::after { border: 1px solid rgba(128,55,45,.14); content: ""; inset: 7px; pointer-events: none; position: absolute; }
.excursion-overview-card > * { position: relative; z-index: 1; }
.excursion-overview-card:hover { border-color: var(--wine); transform: translateY(-4px); }
.excursion-count { color: var(--wine); font-size: .65rem; font-weight: 800; letter-spacing: .1em; margin-bottom: 18px; text-transform: uppercase; }
.excursion-overview-card h3 { color: var(--forest-dark); font-size: 2rem; font-weight: 400; margin-bottom: 14px; }
.excursion-overview-card p { color: var(--muted); line-height: 1.7; margin-bottom: 25px; }
.excursion-overview-card strong { color: var(--wine); font-size: .71rem; letter-spacing: .05em; margin-top: auto; text-transform: uppercase; }
.excursion-group { scroll-margin-top: 24px; margin-bottom: 83px; }
.excursion-group-head { align-items: end; display: grid; gap: 8%; grid-template-columns: .9fr 1.1fr; margin-bottom: 30px; }
.excursion-group-head h2, .excursion-group-head h3 { color: var(--forest-dark); font-size: clamp(2.1rem, 4vw, 3.45rem); font-weight: 400; line-height: 1.05; margin: 0; }
.excursion-group-head > p { color: var(--muted); line-height: 1.72; margin: 0; }
.excursion-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.excursion-card {
  background: var(--paper-light); border: 1px solid #d4c5a7; display: flex; flex-direction: column;
  min-height: 275px; padding: 29px 27px 26px; position: relative; transition: .2s ease;
}
.excursion-card::after { border: 1px solid rgba(128,55,45,.12); content: ""; inset: 6px; pointer-events: none; position: absolute; }
.excursion-card:hover { border-color: var(--wine); transform: translateY(-3px); }
.excursion-card > * { position: relative; z-index: 1; }
.excursion-meta { color: var(--wine) !important; font-size: .62rem !important; font-weight: 800; letter-spacing: .09em; margin: 0 0 13px !important; text-transform: uppercase; }
.excursion-card h3, .excursion-card h4 { color: var(--forest-dark); font-family: Georgia, serif; font-size: 1.38rem; font-weight: 400; line-height: 1.22; margin: 0 0 12px; }
.excursion-card > p:not(.excursion-meta) { color: var(--muted); font-size: .86rem; line-height: 1.67; margin-bottom: 20px; }
.excursion-card a { color: var(--wine); font-size: .7rem; font-weight: 800; letter-spacing: .04em; margin-top: auto; text-transform: uppercase; }
.excursion-card a:hover { color: var(--wine-dark); text-decoration: underline; }
.excursion-final-note { background: #e9dfca; border-left: 4px solid var(--wine); color: var(--muted); font-size: .8rem; line-height: 1.6; margin: -26px 0 0; padding: 17px 20px; }
.excursion-detail .excursion-group-head { margin-bottom: 42px; }
.excursion-detail .excursion-final-note { margin-top: 34px; }
.excursion-back { color: var(--wine); display: inline-block; font-size: .7rem; font-weight: 800; letter-spacing: .06em; margin-bottom: 38px; text-transform: uppercase; }
.excursion-back:hover { color: var(--wine-dark); text-decoration: underline; }

.subpage-walking, .subpage-cycling, .subpage-family, .subpage-climbing, .subpage-nature, .subpage-culture { background-image: url('../img/hockendes-weib.jpg'); }

.faq { background: var(--paper-light); }
.faq-layout { display: grid; gap: 9%; grid-template-columns: .8fr 1.2fr; }
.faq-intro { color: var(--muted); line-height: 1.7; max-width: 420px; }
.faq-list { border-top: 1px solid #cdbf9f; }
.faq-list details { border-bottom: 1px solid #cdbf9f; padding: 0 4px; }
.faq-list summary { align-items: center; color: var(--forest-dark); cursor: pointer; display: flex; font-family: Georgia, serif; font-size: 1.2rem; justify-content: space-between; list-style: none; padding: 23px 0; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--wine); font-family: Arial, sans-serif; font-size: 1.35rem; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { color: var(--muted); line-height: 1.7; margin: -4px 45px 23px 0; }

.contact { background: var(--wine); display: grid; grid-template-columns: 1fr 1fr; min-height: 640px; }
.contact-image { background: url('../img/stellplatz-wald.jpg') center/cover; min-height: 500px; }
.contact-card { align-self: center; color: white; max-width: 650px; padding: 68px 8vw 68px 7vw; }
.contact-card h2 { color: white; font-size: clamp(2.6rem, 4.8vw, 4.25rem); }
.contact-card > p:not(.eyebrow) { line-height: 1.7; opacity: .88; }
.contact-list { border-block: 1px solid rgba(255,255,255,.27); margin-block: 28px; padding-block: 9px; }
.contact-list > div, .contact-list > a { align-items: flex-start; display: flex; gap: 16px; padding: 10px 0; }
.contact-list svg { flex: 0 0 22px; height: 22px; margin-top: 3px; }
.contact-list span { font-size: .89rem; line-height: 1.52; }
.contact-list small { display: block; font-size: .61rem; font-weight: 800; letter-spacing: .12em; opacity: .72; text-transform: uppercase; }
.contact-actions { align-items: center; display: flex; gap: 27px; }
.text-link { border-bottom: 1px solid rgba(255,255,255,.55); font-size: .78rem; font-weight: 800; padding-bottom: 4px; }

.inquiry-layout { align-items: start; display: grid; gap: 7%; grid-template-columns: .72fr 1.28fr; }
.inquiry-intro { position: sticky; top: 35px; }
.inquiry-intro > p:not(.eyebrow) { color: var(--muted); font-size: 1rem; line-height: 1.78; }
.inquiry-note { border-left: 3px solid var(--wine); display: flex; flex-direction: column; gap: 7px; margin-top: 30px; padding: 7px 0 7px 19px; }
.inquiry-note strong { color: var(--forest-dark); font-family: Georgia, serif; font-size: 1.12rem; font-weight: 400; }
.inquiry-note span { color: var(--muted); font-size: .8rem; line-height: 1.55; }
.inquiry-form-card { background: var(--paper-light); border: 1px solid #d4c5a7; box-shadow: 0 18px 42px rgba(36,37,30,.12); padding: 42px; position: relative; }
.inquiry-form-card::after { border: 1px solid rgba(128,55,45,.14); content: ""; inset: 8px; pointer-events: none; position: absolute; }
.inquiry-form-card > * { position: relative; z-index: 1; }
.inquiry-form { display: flex; flex-direction: column; gap: 20px; }
.form-row { display: grid; gap: 17px; }
.form-row-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vehicle-length-field[hidden], .main-tent-size-field[hidden] { display: none; }
.extra-tent-block { background: #f3eee2; border-left: 3px solid var(--gold); margin-bottom: 22px; padding: 20px; }
.extra-tent-block[hidden], .extra-tent-details[hidden] { display: none; }
.extra-tent-explanation { align-self: center; color: var(--muted); font-size: .78rem; line-height: 1.55; margin: 23px 0 0; }
.extra-tent-details { border-top: 1px solid #d8cbb0; margin-top: 18px; padding-top: 18px; }
.extra-tent-people-note { color: var(--muted); font-size: .74rem; line-height: 1.5; margin: 12px 0 0; }
.dog-tent-notice { background: #f7e8e3; border-left: 3px solid var(--wine); color: var(--wine); font-size: .8rem; line-height: 1.55; padding: 15px 17px; }
.dog-tent-notice[hidden], .dog-details[hidden], .dog-entry[hidden] { display: none; }
.dog-details { background: #f3eee2; border-left: 3px solid var(--gold); padding: 20px; }
.dog-details > strong { color: var(--forest-dark); display: block; font-family: Georgia, serif; font-size: 1.05rem; font-weight: 400; margin-bottom: 15px; }
.dog-entry { border-top: 1px solid #d8cbb0; margin-top: 16px; padding-top: 16px; }
.dog-entry:first-of-type { border-top: 0; margin-top: 0; padding-top: 0; }
.dog-entry-title { color: var(--wine); display: block; font-size: .68rem; font-weight: 800; letter-spacing: .08em; margin-bottom: 10px; text-transform: uppercase; }
.inquiry-form input:disabled { background: #e8e3d9; color: #777269; cursor: not-allowed; }
.form-row-three { grid-template-columns: .7fr .7fr 1.6fr; }
.inquiry-form label { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.inquiry-form label > span:first-child, .form-full > span:first-child {
  color: var(--forest-dark); font-size: .67rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase;
}
.field-required > span:first-child::after { color: var(--wine); content: " *"; }
.inquiry-form input:not([type="checkbox"]), .inquiry-form select, .inquiry-form textarea {
  appearance: none; background: #fffdf7; border: 1px solid #cdbf9f; border-radius: 0; color: var(--ink);
  min-height: 51px; padding: 12px 13px; width: 100%;
}
.inquiry-form textarea { line-height: 1.55; min-height: 132px; resize: vertical; }
.inquiry-form select {
  background-image: linear-gradient(45deg, transparent 50%, var(--forest-dark) 50%), linear-gradient(135deg, var(--forest-dark) 50%, transparent 50%);
  background-position: calc(100% - 18px) 22px, calc(100% - 13px) 22px; background-repeat: no-repeat; background-size: 5px 5px, 5px 5px; padding-right: 36px;
}
.inquiry-form input:focus, .inquiry-form select:focus, .inquiry-form textarea:focus { border-color: var(--wine); outline: 2px solid rgba(128,55,45,.13); outline-offset: 1px; }
.inquiry-form input::placeholder, .inquiry-form textarea::placeholder { color: #999589; }
.form-divider { align-items: center; color: var(--wine); display: flex; font-size: .65rem; font-weight: 800; gap: 15px; letter-spacing: .12em; margin: 7px 0 1px; text-transform: uppercase; }
.form-divider::before, .form-divider::after { background: #d8cbb0; content: ""; flex: 1; height: 1px; }
.privacy-check { align-items: flex-start; cursor: pointer; flex-direction: row !important; gap: 11px !important; }
.privacy-check input { accent-color: var(--wine); flex: 0 0 auto; height: 18px; margin: 2px 0 0; width: 18px; }
.privacy-check span { color: var(--muted) !important; font-size: .72rem !important; font-weight: 400 !important; letter-spacing: 0 !important; line-height: 1.5; text-transform: none !important; }
.privacy-check a { color: var(--wine); text-decoration: underline; }
.form-submit { align-items: center; display: flex; gap: 19px; justify-content: space-between; margin-top: 3px; }
.form-submit button { cursor: pointer; }
.form-submit small { color: var(--muted); font-size: .67rem; line-height: 1.4; text-align: right; }
.form-trap { height: 1px; left: -10000px; overflow: hidden; position: absolute; top: auto; width: 1px; }
.form-message { line-height: 1.55; margin-bottom: 25px; padding: 15px 17px; }
.form-message ul { margin: 8px 0 0; padding-left: 20px; }
.form-success { background: #dfead9; border-left: 4px solid var(--forest); color: var(--forest-dark); }
.form-error { background: #f2d7cf; border-left: 4px solid var(--wine); color: #762c22; }
.legal-wrap { max-width: 980px; }
.legal-intro { border-left: 3px solid var(--wine); margin-bottom: 38px; padding: 4px 0 4px 20px; }
.legal-intro p { color: var(--muted); line-height: 1.7; margin: 0 0 7px; }
.legal-intro span { color: var(--wine); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.legal-sections { display: flex; flex-direction: column; gap: 18px; }
.legal-sections article { background: var(--paper-light); border: 1px solid #d4c5a7; padding: 30px 34px; }
.legal-sections h2 { color: var(--forest-dark); font-size: 1.55rem; margin: 0 0 15px; }
.legal-sections p, .legal-sections li { color: var(--muted); font-size: .9rem; line-height: 1.72; }
.legal-sections p { margin: 0 0 12px; }
.legal-sections p:last-child { margin-bottom: 0; }
.legal-sections a { color: var(--wine); text-decoration: underline; }

.emergency-teaser { background: var(--wine); color: white; padding-block: 58px; }
.emergency-teaser-inner { align-items: center; display: flex; gap: 40px; justify-content: space-between; }
.emergency-teaser-inner > div { max-width: 760px; }
.emergency-teaser h2 { color: white; font-size: clamp(2.2rem, 4vw, 3.75rem); margin-bottom: 16px; }
.emergency-teaser p:not(.eyebrow) { line-height: 1.7; margin: 0; opacity: .9; }
.emergency-teaser .button { flex: 0 0 auto; }

.emergency-wrap { max-width: 1080px; }
.emergency-location { align-items: center; background: var(--paper-light); border: 1px solid #d4c5a7; border-left: 6px solid var(--wine); display: flex; gap: 28px; justify-content: space-between; margin-bottom: 72px; padding: 25px 29px; }
.emergency-location div { display: flex; flex-direction: column; gap: 5px; }
.emergency-location .eyebrow { margin-bottom: 4px; }
.emergency-location strong { color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 400; }
.emergency-location span { color: var(--muted); font-size: .88rem; }
.emergency-location > a { color: var(--wine); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.emergency-location > a:hover { text-decoration: underline; }
.emergency-intro { max-width: 760px; }
.emergency-intro > p:not(.eyebrow), .emergency-services-head > p:not(.eyebrow) { color: var(--muted); line-height: 1.75; }
.emergency-number-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 42px 0 92px; }
.emergency-number { background: var(--forest-dark); color: white; display: flex; flex-direction: column; min-height: 360px; padding: 32px 29px 29px; }
.emergency-number-urgent { background: #9e2f24; }
.emergency-number-medical { background: var(--forest); }
.emergency-number > span { color: #ead4ab; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.emergency-number > strong { font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.7rem, 6vw, 5.7rem); font-weight: 400; letter-spacing: -.04em; line-height: 1; margin: 23px 0 18px; }
.emergency-number > p { font-size: .88rem; line-height: 1.65; opacity: .86; }
.emergency-number > a { background: var(--paper-light); color: var(--forest-dark); font-size: .73rem; font-weight: 800; letter-spacing: .06em; margin-top: auto; padding: 15px 17px; text-align: center; text-transform: uppercase; }
.emergency-number > a:hover { background: white; }
.emergency-services-head { max-width: 790px; }
.emergency-service-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 40px; }
.emergency-service-card { background: var(--paper-light); border: 1px solid #d4c5a7; display: flex; flex-direction: column; min-height: 280px; padding: 31px 31px 28px; transition: .2s ease; }
.emergency-service-card:hover { border-color: var(--wine); box-shadow: 0 14px 32px rgba(36,37,30,.11); transform: translateY(-2px); }
.emergency-service-card > span { color: var(--wine); font-size: .65rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.emergency-service-card h3 { color: var(--forest-dark); font-size: 1.55rem; font-weight: 400; line-height: 1.2; margin: 18px 0 13px; }
.emergency-service-card p { color: var(--muted); font-size: .86rem; line-height: 1.65; }
.emergency-service-card > strong { color: var(--wine); font-size: .7rem; letter-spacing: .05em; margin-top: auto; text-transform: uppercase; }
.emergency-local-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 70px; }
.emergency-local-card { background: var(--forest-dark); color: white; padding: 37px 34px; }
.emergency-local-card h3 { color: white; font-size: 2rem; font-weight: 400; margin-bottom: 18px; }
.emergency-local-card > p:not(.eyebrow) { color: #d6ded9; font-size: .9rem; line-height: 1.7; }
.emergency-local-card > div { align-items: center; display: flex; flex-wrap: wrap; gap: 20px; margin-top: 28px; }
.emergency-local-card .text-action { border-bottom: 1px solid rgba(255,255,255,.55); font-size: .72rem; font-weight: 800; padding-bottom: 4px; }
.emergency-note { border-left: 3px solid var(--gold); color: var(--muted); font-size: .76rem; line-height: 1.65; margin: 38px 0 0; padding: 5px 0 5px 18px; }
.footer-emergency { color: #ead4ab; font-weight: 800; }

footer { background: var(--forest-dark); border-top: 1px solid #43584f; color: white; padding-block: 37px; }
.footer-grid { align-items: center; display: grid; gap: 25px; grid-template-columns: 1.4fr .7fr 1fr; }
.footer-brand { display: flex; flex-direction: column; font-family: Georgia, serif; }
.footer-brand span { color: #aebbb4; font-family: Arial, sans-serif; font-size: .72rem; margin-top: 6px; }
.footer-contact, .footer-legal { display: flex; font-size: .74rem; gap: 17px; }
.footer-legal { color: #aebbb4; justify-content: flex-end; }
.footer-legal a:hover { color: white; }

@media (max-width: 1100px) {
  .desktop-nav { gap: 14px; }
  .desktop-nav a { font-size: .69rem; }
}

@media (max-width: 980px) {
  .desktop-nav, .header-actions > .button-small { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu summary { align-items: center; background: var(--forest-dark); border: 2px solid var(--forest-dark); color: white; cursor: pointer; display: flex; font-size: .88rem; font-weight: 800; gap: 10px; justify-content: center; letter-spacing: .04em; list-style: none; min-height: 52px; min-width: 112px; padding: 0 15px; text-transform: uppercase; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu summary::after { content: "☰"; font-size: 1.25rem; font-weight: 400; line-height: 1; }
  .mobile-menu[open] summary::after { content: "×"; font-size: 1.55rem; }
  .mobile-menu summary:hover, .mobile-menu summary:focus-visible { background: var(--wine); border-color: var(--wine); outline: none; }
  .mobile-menu nav { background: var(--paper-light); border: 1px solid #cdbf9f; box-shadow: 0 15px 35px rgba(0,0,0,.16); display: flex; flex-direction: column; padding: 12px; position: absolute; right: 0; top: calc(100% + 8px); width: 235px; }
  .mobile-menu nav a { align-items: center; border-bottom: 1px solid #ded3bd; display: flex; font-size: .9rem; font-weight: 700; min-height: 48px; padding: 12px 13px; }
  .mobile-menu nav a:last-child { border-bottom: 0; }
  .welcome-grid, .price-layout, .faq-layout { gap: 55px; grid-template-columns: 1fr; }
  .welcome-copy { max-width: 730px; }
  .sanitary-feature { gap: 35px; grid-template-columns: 1fr; }
  .image-stack { min-height: 520px; }
  .price-copy img { display: none; }
  .useful-grid { grid-template-columns: 1fr; }
  .useful-item { border-bottom: 1px solid #cdbf9f; border-right: 0; padding: 21px 10px; }
  .gasthof-inner { grid-template-columns: 165px 1fr; }
  .gasthof-logo { width: 160px; }
  .gasthof-inner > .button { grid-column: 2; justify-self: start; }
  .contact-card { padding-inline: 6vw; }
  .inquiry-layout { gap: 50px; grid-template-columns: 1fr; }
  .inquiry-intro { max-width: 720px; position: static; }
  .emergency-number-grid { grid-template-columns: 1fr; }
  .emergency-number { min-height: 300px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-legal { grid-column: 1 / -1; justify-content: flex-start; }
  .excursion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .test-warning { align-items: stretch; flex-direction: column; gap: 4px; min-height: 0; padding: 11px 16px; }
  .test-warning strong { font-size: .85rem; }
  .test-warning span { border-left: 0; font-size: .72rem; padding-left: 0; }
  .beta-note { font-size: .72rem; min-height: 0; padding: 10px 16px; }
  .login-card { padding: 35px 25px; }
  .wrap { width: min(100% - 32px, 1160px); }
  .section { padding-block: 76px; }
  .top-ribbon { font-size: .57rem; height: 30px; justify-content: flex-end; padding-inline: 16px; }
  .top-ribbon > span { display: none; }
  .top-ribbon-links { gap: 12px; }
  .top-ribbon-links a + a { padding-left: 12px; }
  .topbar { height: 69px; padding-inline: 16px; }
  .brand { min-width: 0; }
  .brand img { height: 47px; width: 47px; }
  .brand strong { font-size: .88rem; }
  .brand small { font-size: .67rem; }
  .header-actions { gap: 11px; }
  .language { font-size: .65rem; }
  .mobile-menu summary { min-width: 104px; padding-inline: 12px; }
  .hero { min-height: 710px; }
  .subpage-hero { min-height: 285px; }
  .subpage-copy { padding-block: 75px 58px; }
  .subpage-copy h1 { font-size: clamp(2.55rem, 11vw, 4rem); }
  .hero-content { padding-top: 88px; }
  .hero-copy { border-left: 0; padding-left: 0; }
  .hero h1 { font-size: clamp(3.15rem, 14vw, 4.45rem); }
  .hero-intro { font-size: .95rem; line-height: 1.62; }
  .draft-badge { right: 16px; top: 18px; }
  .fact-strip { bottom: -88px; grid-template-columns: 1fr; width: calc(100% - 32px); }
  .fact-strip div { justify-content: flex-start; min-height: 54px; padding: 9px 19px; }
  .fact-strip strong { font-size: 1.37rem; min-width: 65px; }
  .fact-strip span { font-size: .73rem; }
  .welcome { padding-top: 155px; }
  h2 { font-size: 2.62rem; }
  .welcome-grid { display: flex; flex-direction: column; }
  .image-stack { min-height: 375px; width: 100%; }
  .image-main { height: 325px; width: 92%; }
  .image-small { height: 145px; width: 45%; }
  .qualities-grid, .stay-grid, .place-grid { grid-template-columns: 1fr; }
  .hero-highlight { font-size: .88rem; }
  .explore-more { margin-top: 44px; padding-top: 24px; }
  .guest-feedback-text { font-size: 1.05rem; }
  .guest-feedback-points { flex-direction: column; }
  .closing-cta-inner { flex-direction: column; text-align: center; }
  .closing-cta-buttons { justify-content: center; width: 100%; }
  .closing-cta-buttons .button { flex: 1 1 auto; }
  .stay-photo-grid { grid-template-columns: 1fr; grid-template-rows: 280px 220px 220px 240px; }
  .stay-photo-grid .stay-photo-main { grid-row: auto; }
  .stay-photo-grid .stay-photo-wide { grid-column: auto; }
  .qualities-grid article + article { border-left: 0; border-top: 1px solid #cdbf9f; }
  .qualities-grid article { padding-inline: 15px; }
  .stay-card { min-height: 0; padding: 33px 27px; }
  .price-card { overflow-x: auto; padding: 9px 17px 23px; }
  .price-head, .price-row { grid-template-columns: minmax(135px, 1fr) 90px 90px; }
  .gasthof-inner { grid-template-columns: 1fr; text-align: center; }
  .gasthof-logo { margin-inline: auto; width: 195px; }
  .gasthof-inner > .button { grid-column: auto; justify-self: center; }
  .surroundings-head { align-items: start; grid-template-columns: 1fr; }
  .place-card img { height: 255px; }
  .excursion-lead { margin-top: 0; text-align: left; }
  .excursion-nav { justify-content: flex-start; margin-bottom: 38px; }
  .local-advantage { margin-bottom: 58px; padding: 38px 25px 30px; }
  .local-advantage-grid { grid-template-columns: 1fr; }
  .local-advantage-grid article, .local-advantage-grid article:first-child { border-left: 0; border-top: 1px solid rgba(255,255,255,.2); padding: 19px 0; }
  .local-advantage-grid article:first-child { border-top: 0; padding-top: 0; }
  .excursion-group { margin-bottom: 63px; }
  .excursion-group-head { align-items: start; grid-template-columns: 1fr; }
  .excursion-overview { grid-template-columns: 1fr; }
  .excursion-overview-card { min-height: 0; padding: 30px 27px 27px; }
  .excursion-grid { grid-template-columns: 1fr; }
  .excursion-card { min-height: 0; padding: 27px 24px 24px; }
  .faq-list summary { font-size: 1.08rem; gap: 20px; }
  .emergency-teaser-inner { align-items: flex-start; flex-direction: column; }
  .emergency-location { align-items: flex-start; flex-direction: column; }
  .emergency-number-grid { margin-bottom: 72px; }
  .emergency-service-grid, .emergency-local-grid { grid-template-columns: 1fr; }
  .emergency-service-card { min-height: 0; }
  .emergency-local-card { padding: 32px 25px; }
  .emergency-local-card > div { align-items: stretch; flex-direction: column; }
  .emergency-local-card .button { width: 100%; }
  .contact { grid-template-columns: 1fr; }
  .contact-image { min-height: 315px; }
  .contact-card { padding: 62px 24px; }
  .contact-actions { align-items: flex-start; flex-direction: column; }
  .inquiry-form-card { padding: 30px 22px; }
  .form-row-two, .form-row-three { grid-template-columns: 1fr; }
  .camp-gallery-grid, .holiday-photo-grid { grid-template-columns: 1fr; grid-template-rows: none; }
  .camp-gallery-grid .gallery-large, .holiday-photo-grid .holiday-large, .holiday-photo-grid figure:nth-child(2) { grid-column: auto; grid-row: auto; }
  .camp-gallery-grid figure, .holiday-photo-grid figure { height: 250px; }
  .holiday-teaser-inner { align-items: flex-start; flex-direction: column; gap: 24px; }
  .holiday-request { align-items: stretch; flex-direction: column; text-align: center; }
  .sanitary-feature { padding: 18px; }
  .sanitary-feature img { height: 280px; }
  .more-gallery { margin-top: 44px; }
  .more-gallery-grid { grid-template-columns: 1fr; }
  .more-gallery-grid img { height: 230px; }
  .price-offer-grid, .price-facts { grid-template-columns: 1fr; }
  .price-offer-card:last-child { grid-column: auto; }
  .price-facts > div, .price-facts > div:first-child { border-left: 0; border-top: 1px solid rgba(255,255,255,.18); padding: 15px 0; }
  .price-facts > div:first-child { border-top: 0; padding-top: 0; }
  .extra-tent-block { padding: 18px; }
  .extra-tent-explanation { margin-top: 0; }
  .form-submit { align-items: stretch; flex-direction: column; }
  .form-submit .button { width: 100%; }
  .form-submit small { text-align: left; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-legal { grid-column: auto; flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
