@charset "utf-8";

:root {
    /* ---- Framework-Variablen: auf Örtlerhof-Brand gemappt ---- */
    --fw-body-background: #f7f3ed; /* Hintergrundfarbe Body (paper) */
    --fw-text-primary: #2c2a24; /* primäre Textfarbe (ink) */
    --fw-font-family-primary: 'Hanken Grotesk', system-ui, -apple-system, sans-serif; /* primäre Font */
    --fw-font-size-primary: 1.15em; /* Primäre Schriftgröße für Article-Bereich */

    --fw-primary: #a8a13f; /* Primäre Farbe (apfelgrün) für Layout, Selection, Datepicker */
    --fw-secondary: #847d2c; /* Zweite Farbe (green-deep) */
    --fw-ternary: #cdc88c; /* Dritte Farbe (green-soft) */

    --fw-link-color: #847d2c; /* Textfarbe Link */
    --fw-link-color-hover: #5f5a26; /* Textfarbe Link-Hover */

    --fw-btn-background: #a8a13f; /* Hintergrundfarbe Buttons */
    --fw-btn-background-hover: #847d2c; /* Hintergrundfarbe Buttons Hover */
    --fw-btn-text: #FFF; /* Textfarbe Buttons */
    --fw-btn-text-hover: #FFF; /* Textfarbe Buttons Hover */
    --fw-btn-bordercolor: #a8a13f; /* Border Buttons */
    --fw-btn-bordercolor-hover: #847d2c; /* Border Buttons Hover */

    --fw-wrapper: 1240px; /* Wrapper-Breite */


    /* Hilfsfarben */
    --fw-blue: #3b7ddd;
    --fw-indigo: #6610f2;
    --fw-purple: #6f42c1;
    --fw-pink: #e83e8c;
    --fw-red: #dc3545;
    --fw-orange: #fd7e14;
    --fw-yellow: #ffc107;
    --fw-green: #28a745;
    --fw-teal: #20c997;
    --fw-cyan: #17a2b8;
    --fw-white: #fff;
    --fw-gray: #6c757d;
    --fw-gray-dark: #343a40;

    /* =========================================================
       ÖRTLERHOF — Design-Tokens (aus Claude Design übernommen)
       Brand: olivgold-apfelgrün #a8a13f + creme #f1eeeb
       Type:  Newsreader (Serif) + Hanken Grotesk (Sans)
       ========================================================= */
    /* Brand */
    --green:        #a8a13f;   /* primär — apple-leaf gold green */
    --green-deep:   #847d2c;   /* hover / strong */
    --green-dark:   #5f5a26;   /* deep sections text on cream */
    --green-soft:   #cdc88c;
    --green-wash:   #ebe8d4;   /* tint blocks */

    /* Warme Neutraltöne */
    --cream:        #f1eeeb;
    --paper:        #f7f3ed;   /* Seitenhintergrund */
    --paper-2:      #efe8dd;   /* alternierende Section */
    --sand:         #e6dccd;
    --ink:          #2c2a24;   /* primärer Text */
    --ink-soft:     #6f6859;   /* muted warm taupe */
    --ink-faint:    #9a9384;
    --line:         rgba(44,42,36,.14);
    --line-soft:    rgba(44,42,36,.08);

    /* Akzent — Geranien-Ton, sparsam */
    --clay:         #b46a44;

    /* Forest-Ton für dunkle Panels */
    --forest:       #34331f;
    --forest-2:     #41401f;

    --shadow-sm: 0 2px 14px rgba(60,55,30,.08);
    --shadow-md: 0 18px 50px -24px rgba(60,55,30,.35);
    --shadow-lg: 0 40px 90px -40px rgba(50,46,24,.5);

    --maxw: 1240px;
    --gutter: clamp(20px, 5vw, 64px);
    --radius: 4px;

    --serif: 'Newsreader', Georgia, 'Times New Roman', serif;
    --sans:  'Hanken Grotesk', system-ui, -apple-system, sans-serif;
}

/* HTML5 display definitions */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
audio:not([controls]) { display: none; height: 0; }
[hidden] { display: none; }

/* Base */
body {
    background: var(--fw-body-background);
    color: var(--fw-text-primary);
    font-family: var(--fw-font-family-primary); font-size: 16px; line-height: 1.231;
    margin: 0;
}
#main, #footer { font-size: var(--fw-font-size-primary); }
#article { hyphens: auto; -webkit-hyphens: auto; -ms-hyphens: auto; }

::selection {
    background: var(--fw-primary);
    color: white;
    text-shadow: none;
}

/* Links */
a { color: var(--fw-link-color); }
a:hover { color: var(--fw-link-color-hover); }
a:focus { outline: none; }
a:active, a:hover { outline: 0; }

h2 a, h3 a {
    color: var(--fw-link-color);
    text-decoration: none;
}

/* Typography */
h1, h2, h3 {
    font-weight: normal;
    line-height: 110%;
    text-align: left;
}
h1 {
    font-size: 2em;
    margin: 0.67em 0;
}
h2 {
    font-size: 1.5em;
    margin: 0.83em 0;
}
h3 {
    font-size: 1.17em;
    margin: 1em 0;
}
h4 {
    font-size: 1em;
    margin: 1.33em 0;
}
h5 {
    font-size: 0.83em;
    margin: 1.67em 0;
}
h6 {
    font-size: 0.67em;
    margin: 2.33em 0;
}

abbr[title] { border-bottom: 1px dotted; }
b, strong { font-weight: bold; }
blockquote { margin: 1em 40px; }
dfn { font-style: italic; }
hr {
    border: none; border-top: 1px dashed #ccc;
    -moz-box-sizing: content-box; box-sizing: content-box; display: block;
    height: 1px;
    margin: 1em 0; padding: 0;
}
mark { background: #ff0; color: #000; }
p, pre { margin: 1em 0; }
code, kbd, pre, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; }
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
q { quotes: none; }
q:before, q:after { content: ''; content: none; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }

/* Lists */
dl, ol, ul { margin: 1em 0; }
dd { margin: 0 0 0 40px; }
ol, ul { padding: 0 0 0 40px; }
nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; }

/* Embedded content */
img { border: 0; -ms-interpolation-mode: bicubic; }
svg:not(:root) { overflow: hidden; }

/* Figures */
figure { margin: 0; }

/* Forms */
form { margin: 0; }
fieldset { border: 0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
legend { border: 0; padding: 0; white-space: normal; *margin-left: -7px; }
button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; }
button, input { line-height: normal; }
button, select { text-transform: none; }
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; cursor: pointer; *overflow: visible; }
button[disabled], html input[disabled] { cursor: default; }
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; *height: 13px; *width: 13px; }
input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
textarea { overflow: auto; vertical-align: top; }

/* Tables */
table { border-collapse: collapse; border-spacing: 0; }

/* CLASSES */
.boxsizing { box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; }
.right { float: right; }
.left { float: left; }

/* Wrapper */
.wrapper {
    box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;
    margin: 0 auto;
    padding: 0 20px;
}

/* 12 Col-Grid-Layout */
.grid-container, .wrapper { width: 100%; max-width: var(--fw-wrapper); }
.grid-container * { box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; }
.row:before, .row:after {
    content: '';
    clear: both;
    display: table;
}
[class*='col-'] {
    display: inline-block;
    float: left;
    margin-left: 2.127659574468085%;
    min-height: 1px;
    padding: 0;
}
[class*='col-']:first-child, .grid-container.nogutter [class*='col-'] { margin-left: 0; }

.row.table {
    display: table;
    table-layout: fixed;
    width: 100%;
}
.row.table > [class*="col-"] {
    display: table-cell;
    float: none;
    margin-left: 0;
    padding: 0.7em 1em;
    vertical-align: middle;
}
.grid-container.nogutter .row.table > [class*="col-"] { padding: 0; }

[class*='col-'].space { padding: 0.7em 1em!important; }
[class*='col-'].space-left { padding-left: 1em!important; }
[class*='col-'].space-right { padding-right: 1em!important; }

.col-1  { width: 6.382978723404255%; }
.grid-container.nogutter .col-1, .grid-container .row.table > .col-1 { width: 8.333%; }
.col-2  { width: 14.893617021276595%; }
.grid-container.nogutter .col-2, .grid-container .row.table > .col-2 { width: 16.66%; }
.col-3  { width: 23.404255319148934%; }
.grid-container.nogutter .col-3, .grid-container .row.table > .col-3 { width: 25%; }
.col-4  { width: 31.914893617021278%; }
.grid-container.nogutter .col-4, .grid-container .row.table > .col-4 { width: 33.33%; }
.col-5  { width: 40.42553191489362%; }
.grid-container.nogutter .col-5, .grid-container .row.table > .col-5 { width: 41.66%; }
.col-6  { width: 48.93617021276595%; }
.grid-container.nogutter .col-6, .grid-container .row.table > .col-6 { width: 50%; }
.col-7  { width: 57.44680851063829%; }
.grid-container.nogutter .col-7, .grid-container .row.table > .col-7 { width: 58.33%; }
.col-8  { width: 65.95744680851064%; }
.grid-container.nogutter .col-8, .grid-container .row.table > .col-8 { width: 66.66%; }
.col-9  { width: 74.46808510638297%; }
.grid-container.nogutter .col-9, .grid-container .row.table > .col-9 { width: 75%; }
.col-10 { width: 82.97872340425532%; }
.grid-container.nogutter .col-10, .grid-container .row.table > .col-10 { width: 83.33%; }
.col-11 { width: 91.48936170212765%; }
.grid-container.nogutter .col-11, .grid-container .row.table > .col-11 { width: 91.66%; }
.col-12 { width: 100%; }
.grid-container.nogutter .col-12, .grid-container .row.table > .col-12 { width: 100%; }

.offset12 { margin-left: 104.25531914893617%; }
.offset12:first-child { margin-left: 102.12765957446808%; }
.offset11 { margin-left: 95.74468085106382%; }
.offset11:first-child { margin-left: 93.61702127659574%; }
.offset10 { margin-left: 87.23404255319149%; }
.offset10:first-child { margin-left: 85.1063829787234%; }
.offset9 { margin-left: 78.72340425531914%; }
.offset9:first-child { margin-left: 76.59574468085106%; }
.offset8 { margin-left: 70.2127659574468%; }
.offset8:first-child { margin-left: 68.08510638297872%; }
.offset7 { margin-left: 61.70212765957446%; }
.offset7:first-child { margin-left: 59.574468085106375%; }
.offset6 { margin-left: 53.191489361702125%; }
.offset6:first-child { margin-left: 51.063829787234035%; }
.offset5 { margin-left: 44.68085106382979%; }
.offset5:first-child { margin-left: 42.5531914893617%; }
.offset4 { margin-left: 36.170212765957444%; }
.offset4:first-child { margin-left: 34.04255319148936%; }
.offset3 { margin-left: 27.659574468085104%; }
.offset3:first-child { margin-left: 25.53191489361702%; }
.offset2 { margin-left: 19.148936170212764%; }
.offset2:first-child { margin-left: 17.02127659574468%; }
.offset1 { margin-left: 10.638297872340425%; }
.offset1:first-child { margin-left: 8.51063829787234%; }
/* END 12 Col-Grid-Layout */

/* clearfix */
.cf:before, .cf:after {
    content: "";
    display: table;
}
.cf:after { clear: both; }
/* For IE 6/7 (triggers hasLayout) */
.cf { *zoom: 1; }

.alignright { text-align: right; }
.alignleft { text-align: left; }
.aligncenter { text-align: center; }
.alignjustify { text-align: justify; }
.margintop { margin-top: 1em; }
.marginright { margin-right: 1em; }
.marginbottom { margin-bottom: 1em; }
.marginleft { margin-left: 1em; }

/* msg */
.msg {
    background: #d1e7dd;
    border: 1px solid #badbcc;
    color: #0f5132;
}
.msgerror {
    background: #f8d7da;
    border: 1px solid #f5c2c7;
    color: #842029;
}
.msg, .msgerror { padding: 1em; }
.msg h2, .msgerror h2 { margin: 0 0 0.5em!important; }
.msg ul, .msgerror ul { margin-top: 0; }

/* pagenav */
.pagenav { text-align: center; }
.pagenav span a {
    font-size: 1.214em; vertical-align: bottom;
    padding: 0 2px;
}
.pagenav a, .pagenav strong { margin: 2px; padding: 2px; }
.pagenav a:hover, .pagenav strong {
    border: 1px solid;
    margin: 1px;
}
.pagenav a, .pagenav a:hover { text-decoration: none; }
.pagenav a:hover { border-style: dotted; }

/* button — Default-Button (grüner Pill). Varianten (primary/light/…) siehe Custom-Teil unten */
a.button, button.button, input[type="submit"], input[type="button"] {
    display: inline-flex; align-items: center; justify-content: center; gap: .6em;
    box-sizing: border-box;
    background: var(--fw-btn-background);
    border: 1px solid transparent; border-radius: 100px;
    color: var(--fw-btn-text);
    font-family: var(--sans); font-size: .86rem; font-weight: 600;
    letter-spacing: .08em; text-transform: uppercase;
    hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;
    line-height: 1.2;
    padding: 1.05em 1.9em;
    box-shadow: var(--shadow-sm);
    white-space: nowrap; cursor: pointer;
    text-decoration: none; text-align: center;
    transition: .35s cubic-bezier(.2,.7,.3,1);
}
a.button:hover, button.button:hover, input[type="submit"]:hover, input[type="button"]:hover {
    background: var(--fw-btn-background-hover);
    color: var(--fw-btn-text-hover);
    border-color: transparent;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
a.button:focus, button.button:focus, input[type="submit"]:focus, input[type="button"]:focus { outline: none; }
a.button.next:after, button.button.next:after { content: ' ›'; }
a.button.prev:before, button.button.prev:before { content: '‹ '; }

/* Fancybox Buttons */
.fancybox-button:hover {
    background: transparent!important;
    border: none!important;
}

/* Datepicker */
div .ui-widget-header { background: var(--fw-primary)!important; }

/* Popup */
/* Layout:
<div class="fw-popup">
    <div class="fw-popup-inner">
        <div class="fw-popup-card">
            <div class="fw-popup-title" title="`+title+`"><div>`+title+`</div></div> [Optional]
            <div class="fw-popup-content">`+content+`</div>
            <a href="javascript:;" class="fw-popup-close">&times;</a>
        </div>
    </div>
</div>
 */
.fw-popup {
    background: rgba(0,0,0,0.4);
    opacity: 0;
    transition: opacity .25s linear;
    position: fixed; z-index: 10000000; left: 0; top: 0;
    width: 100%; height: 100%;
}
.fw-popup.show { opacity: 1; }
.fw-popup-inner {
    align-items: center;
    box-sizing: border-box;
    display: flex;
    height: 100%;
    justify-content: center;
    padding: 20px;
}
.fw-popup-card {
    background: #FFF;
    box-sizing: border-box;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    color: rgb(33, 37, 41);
    display: flex; flex-direction: column;
    font-size: 1.1rem; font-family: var(--fw-font-family-primary);
    line-height: 1.5em;
    max-width: 550px; max-height: calc(100vh - 60px);
    transition: transform .3s ease-out;
    padding: 25px; padding-top: 40px;
    position: relative; z-index: 1;
    width: 100%;
}
.fw-popup.show .fw-popup-card { transform: none; }
.fw-popup-title {
    color: #000;
    font-weight: 600; font-size: 1.2em;
    padding-bottom: 1.2rem;
    position: relative; z-index: 1;
    margin-bottom: 1.2rem;
}
.fw-popup-title:after {
    background: var(--fw-primary);
    content: '';
    display: block;
    height: 2px;
    margin: 0 auto;
    max-width: 100px;
    position: absolute; z-index: 1; left: 0; bottom: 0; right: 0;
}
.fw-popup-title > div {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.fw-popup-title, .fw-popup-content { box-sizing: border-box; }
.fw-popup-content {
    font-size: 0.9em;
    max-height: calc(100% - 90px);
    overflow-x: hidden; overflow-y: auto;
}
.fw-popup-title + .fw-popup-content { max-height: calc(100% - 140px); }
.fw-popup-content > p:first-child { margin-top: 0; }
.fw-popup-content > *:last-child { margin-bottom: 0; }
.fw-popup-close {
    color: inherit;
    font-size: 2em;
    position: absolute; z-index: 1; right: 6px; top: 6px;
    text-decoration: none;
}
.fw-popup-close:hover { color: var(--fw-link-color-hover); }

/* START CUSTOM PART */

/* CLASSES */

/* PRIMARY STYLES [layout] */

/* CONTENT */

/* END CUSTOM PART */

/* Responsive Videos */
#article .video-container {
    position: relative; z-index: 1;
    padding-bottom: 56.25%;
    padding-top: 30px;
    height: 0;
    overflow: hidden;
}
#article .video-container iframe,
#article .video-container object,
#article .video-container embed {
    border: none;
    position: absolute; top: 0; left: 0; z-index: 11;
    width: 100%; height: 100%;
}

/* Responsive Images */
.responsiveimages a:first-child { margin-left: 0!important; }
.responsiveimages.fullwidth a { margin-left: 0; }
.responsiveimages.portrait a { width: 100%; max-width: 516px; }

.responsiveimages a img {
    height: auto;
    vertical-align: middle;
    width: 100%;
}

/* Bilder mit Fließtext */
#article .imgandtext {
    clear: both;
    overflow: auto;
}
#article .imgandtext.img_left > img, #article .imgandtext.img_left .responsiveimages {
    float: left;
    margin-right: 0.5em;
}
#article .imgandtext.img_right > img, #article .imgandtext.img_right .responsiveimages {
    float: right;
    margin-left: 0.5em;
}
#article .imgandtext > img, #article .imgandtext .responsiveimages {
    margin-top: 0.4em;
    width: 40%;
}
#article .imgandtext p { margin-top: 0; }

/* Table-Container */
.tablecontainer { overflow: auto; }

/* Fancybox */
.fancybox-slide--iframe .fancybox-content {
    height: 1133px; max-height: 80%;
    margin: 0;
    width: 800px!important; max-width: 80%!important;
}
.fancybox-button { min-width: 0; }
.fancybox-button--left, .fancybox-button--right { display: inline-block!important; }
.fancybox-button[disabled], .fancybox-button[disabled]:hover { background: none!important; }

/* Tiny-Slider */
.tns-outer { position: relative; z-index: 1; }
.tns-nav { text-align: center; }
.tns-nav > * {
    background: #FFF;
    border: 1px solid #000;
    display: inline-block;
    outline: none;
    width: 16px; height: 16px;
}
.tns-nav > *.tns-nav-active { background: #000; }
.tns-nav > * + * { margin-left: 8px; }
.tns-controls > * {
    background: #000;
    border: none;
    color: #FFF;
    display: inline-block;
    font-size: 80px;
    outline: none;
    position: absolute; z-index: 1000; top: 50%;
    transform: translateY(-50%);
    width: 40px;
}
.tns-controls > *:first-child { left: 0; }
.tns-controls > *:last-child { right: 0; }

/* Cookie Hint */
#cookiehint {
    background: #000; background: rgba(0, 0, 0, 0.8);
    box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;
    width: calc(100% - 20px); max-width: 400px;
    color: #fff!important;
    line-height: 20px;
    padding: 0.5em;
    position: fixed; z-index: 10000; left: 10px; bottom: 10px;
}
#cookiehint.bottom-higher { bottom: 40px; }
#cookiehint p {
    margin: 0; margin-right: 38px;
    color: #fff!important;
}
#cookiehint a {
    border: none!important;
    color: #fff!important;
    text-decoration: underline!important;
}
#cookiehint a[href="javascript:;"] { position: absolute; z-index: 1; right: 5px; top: 5px; }
#cookiehint a:hover { text-decoration: none!important; }
#cookiehint.light { background: #fff; background: rgba(255, 255, 255, 0.8); }
#cookiehint.light, #cookiehint.light p, #cookiehint.light a { color: var(--fw-text-primary)!important; }
#cookiehint.top { top: 10px; bottom: initial; }

/* Advanced Cookie Hint */
#advanced-cookiehint-overlay {
	background: rgba(0, 0, 0, 0.5);
	position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: 10000;
}
#advanced-cookiehint {
	background: #fff;
	box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;
	color: #000!important;
	font-size: 1em;
	line-height: 120%;
	max-height: calc(100vh - 20px);
	overflow: auto;
	padding: 1.5em;
	position: fixed; z-index: 10000; left: 50%; top: 50%; z-index: 101;
	transform: translate(-50%, -50%);
	width: calc(100% - 20px); max-width: 700px;
}
#advanced-cookiehint h2 {
	font-size: 1em; font-weight: bold;
	margin: 0 0 0.75em;
}
#advanced-cookiehint p {
	color: #000!important;
	font-size: 0.9em;
	line-height: 130%;
	margin: 0;
}
#advanced-cookiehint-actions {
	display: flex;
	font-size: 1em;
	gap: 20px;
	margin: 1.5em 0 0;
}
#advanced-cookiehint-actions a {
	border: none!important;
	text-decoration: none!important; text-align: center;
}
#advanced-cookiehint-privacy { margin: 0.5em 0 0.75em!important; }
#advanced-cookiehint-privacy a {
	display: block;
	font-size: 0.9em;
	margin-top: 1em;
}
.advanced-cookiehint-switch {
    display: inline-block;
    margin-top: 0.75em;
    white-space: nowrap;
}
.advanced-cookiehint-switch .label {
	cursor: pointer;
	font-size: 0.9em;
	margin: 0;
}
#tracking-switch, #essential-switch { margin-left: 1em; }
#advanced-cookiehint-save {
	background: #f1f1f1;
	border-radius: 0px;
	display: inline-block;
	font-size: 0.8125rem; font-family: var(--fw-font-family-primary); font-weight: 600;
	hyphens: none;
	letter-spacing: 0.86px;
	line-height: 1.2em;
	padding: 0.7em 2.7em 0.44em;
	text-transform: uppercase; text-align: center;
}
#advanced-cookiehint p a { text-decoration: underline!important; }
#advanced-cookiehint.light { background: #fff; background: rgba(255, 255, 255, 0.8); }
#advanced-cookiehint.light, #advanced-cookiehint.light p, #advanced-cookiehint.light a:not(.button) { color: #333!important; }
@media screen and (max-width: 510px) {
    #advanced-cookiehint-actions, #advanced-cookiehint-actions a { display: block; }
    #advanced-cookiehint-actions a + a  { margin-top: 0.75em; }
}

/* START Switch */
.cl-switch input[type="checkbox"] {
	display: none;
	visibility: hidden;
}
.cl-switch .switcher {
	display: inline-block;
	border-radius: 100px;
	width: 35px;
	height: 15px;
	background-color: #ccc;
	position: relative;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	vertical-align: middle;
	cursor: pointer;
}
.cl-switch .switcher:before {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	background-color: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
	border-radius: 50%;
	margin-top: -2.5px;
	position: absolute;
	top: 0;
	left: 0;
	box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box;
	margin-right: 0;
	transition: all 0.2s; -webkit-transition: all 0.2s; -moz-transition: all 0.2s; -ms-transition: all 0.2s; -o-transition: all 0.2s;
}
.cl-switch .switcher:active:before {
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6), 0 0 0 10px rgba(63, 81, 181, 0.3);
	transition: all, 0.1s;
}
.cl-switch .label {
	font-family: "Roboto", sans-serif;
	cursor: pointer;
	vertical-align: middle;
	margin: 0 5px;
}
.cl-switch input[type="checkbox"]:checked + .switcher { background-color: #8591d5; }
.cl-switch input[type="checkbox"]:checked + .switcher:before {
	left: 100%;
	margin-left: -20px;
	background-color: #3f51b5;
}
.cl-switch [disabled]:not([disabled="false"]) + .switcher { background: #ccc !important; }
.cl-switch [disabled]:not([disabled="false"]) + .switcher:active:before { box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2) !important; }
.cl-switch [disabled]:not([disabled="false"]) + .switcher:before {
	background-color: #e2e2e2 !important;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2) !important;
}
.cl-switch.cl-switch-large .switcher {
	width: 52px;
	height: 22px;
}
.cl-switch.cl-switch-large .switcher:before {
	width: 30px;
	height: 30px;
	margin-top: -4px;
}
.cl-switch.cl-switch-large .label { font-size: 18px; }
.cl-switch.cl-switch-large input[type="checkbox"]:checked + .switcher:before { margin-left: -30px; }
.cl-switch.cl-switch-xlarge .switcher {
	width: 87px;
	height: 37px;
}
.cl-switch.cl-switch-xlarge .switcher:before {
	width: 50px;
	height: 50px;
	margin-top: -6px;
}
.cl-switch.cl-switch-xlarge .label { font-size: 24px; }
.cl-switch.cl-switch-xlarge input[type="checkbox"]:checked + .switcher:before { margin-left: -50px; }
.cl-switch.cl-switch-black input[type="checkbox"]:checked + .switcher { background-color: #676767; }
.cl-switch.cl-switch-black input[type="checkbox"]:checked + .switcher:before { background-color: #343434; }
.cl-switch.cl-switch-black .switcher:active:before { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6), 0 0 0 10px rgba(52, 52, 52, 0.3); }
.cl-switch.cl-switch-red input[type="checkbox"]:checked + .switcher { background-color: #ffcece; }
.cl-switch.cl-switch-red input[type="checkbox"]:checked + .switcher:before { background-color: #ff6868; }
.cl-switch.cl-switch-red .switcher:active:before { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6), 0 0 0 10px rgba(255, 104, 104, 0.3); }
.cl-switch.cl-switch-green input[type="checkbox"]:checked + .switcher { background-color: #77e4c0; }
.cl-switch.cl-switch-green input[type="checkbox"]:checked + .switcher:before { background-color: #29cc97; }
.cl-switch.cl-switch-green .switcher:active:before { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6), 0 0 0 10px rgba(41, 204, 151, 0.3); }
.cl-switch.cl-switch-orange input[type="checkbox"]:checked + .switcher { background-color: #ffc166; }
.cl-switch.cl-switch-orange input[type="checkbox"]:checked + .switcher:before { background-color: #ff9800; }
.cl-switch.cl-switch-orange .switcher:active:before { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6), 0 0 0 10px rgba(255, 152, 0, 0.3); }
/* END Switch */

/* Media Queries */
/* Mobil bzw. Touchscreen */
@media screen and (max-width: 1023px), (any-hover: none) {
}
@media screen and (max-width: 800px) {
    /* medium grid */
    .col-m-1  { width: 6.382978723404255%; }
    .grid-container.nogutter .col-m-1, .grid-container .row.table > .col-m-1 { width: 8.333%; }
    .col-m-2  { width: 14.893617021276595%; }
    .grid-container.nogutter .col-m-2, .grid-container .row.table > .col-m-2 { width: 16.66%; }
    .col-m-3  { width: 23.404255319148934%; }
    .grid-container.nogutter .col-m-3, .grid-container .row.table > .col-m-3 { width: 25%; }
    .col-m-4  { width: 31.914893617021278%; }
    .grid-container.nogutter .col-m-4, .grid-container .row.table > .col-m-4 { width: 33.33%; }
    .col-m-5  { width: 40.42553191489362%; }
    .grid-container.nogutter .col-m-5, .grid-container .row.table > .col-m-5 { width: 41.66%; }
    .col-m-6  { width: 48.93617021276595%; }
    .grid-container.nogutter .col-m-6, .grid-container .row.table > .col-m-6 { width: 50%; }
    .col-m-7  { width: 57.44680851063829%; }
    .grid-container.nogutter .col-m-7, .grid-container .row.table > .col-m-7 { width: 58.33%; }
    .col-m-8  { width: 65.95744680851064%; }
    .grid-container.nogutter .col-m-8, .grid-container .row.table > .col-m-8 { width: 66.66%; }
    .col-m-9  { width: 74.46808510638297%; }
    .grid-container.nogutter .col-m-9, .grid-container .row.table > .col-m-9 { width: 75%; }
    .col-m-10 { width: 82.97872340425532%; }
    .grid-container.nogutter .col-m-10, .grid-container .row.table > .col-m-10 { width: 83.33%; }
    .col-m-11 { width: 91.48936170212765%; }
    .grid-container.nogutter .col-m-11, .grid-container .row.table > .col-m-11 { width: 91.66%; }
    .col-m-12 { width: 100%; }
    .grid-container.nogutter .col-m-12, .grid-container .row.table > .col-m-12 { width: 100%; }

    .m-space { margin-left: 2.127659574468085%!important; margin-right: 2.127659574468085%!important; }
    .row.table .m-space { padding: 0.7em 1em!important; }
    .m-space-left { margin-left: 2.127659574468085%!important; }
    .row.table .m-space-left { padding-left: 1em!important; }
    .m-space-right { margin-right: 2.127659574468085%!important; }
    .row.table .m-space-right { padding-right: 1em!important; }

    .m-clearspace { margin: 0!important;}
    .row.table .m-clearspace { padding: 0; }
    .m-clearspace-left { margin-left: 0!important; }
    .row.table .m-clearspace-left { padding-left: 0!important; }
    .m-clearspace-right { margin-right: 0!important; }
    .row.table .m-clearspace-right { padding-right: 0!important; }
}
@media screen and (max-width: 585px) {
    /* small grid */
    .col-s-1  { width: 6.382978723404255%; }
    .grid-container.nogutter .col-s-1, .grid-container .row.table > .col-s-1 { width: 8.333%; }
    .col-s-2  { width: 14.893617021276595%; }
    .grid-container.nogutter .col-s-2, .grid-container .row.table > .col-s-2 { width: 16.66%; }
    .col-s-3  { width: 23.404255319148934%; }
    .grid-container.nogutter .col-s-3, .grid-container .row.table > .col-s-3 { width: 25%; }
    .col-s-4  { width: 31.914893617021278%; }
    .grid-container.nogutter .col-s-4, .grid-container .row.table > .col-s-4 { width: 33.33%; }
    .col-s-5  { width: 40.42553191489362%; }
    .grid-container.nogutter .col-s-5, .grid-container .row.table > .col-s-5 { width: 41.66%; }
    .col-s-6  { width: 48.93617021276595%; }
    .grid-container.nogutter .col-s-6, .grid-container .row.table > .col-s-6 { width: 50%; }
    .col-s-7  { width: 57.44680851063829%; }
    .grid-container.nogutter .col-s-7, .grid-container .row.table > .col-s-7 { width: 58.33%; }
    .col-s-8  { width: 65.95744680851064%; }
    .grid-container.nogutter .col-s-8, .grid-container .row.table > .col-s-8 { width: 66.66%; }
    .col-s-9  { width: 74.46808510638297%; }
    .grid-container.nogutter .col-s-9, .grid-container .row.table > .col-s-9 { width: 75%; }
    .col-s-10 { width: 82.97872340425532%; }
    .grid-container.nogutter .col-s-10, .grid-container .row.table > .col-s-10 { width: 83.33%; }
    .col-s-11 { width: 91.48936170212765%; }
    .grid-container.nogutter .col-s-11, .grid-container .row.table > .col-s-11 { width: 91.66%; }
    .col-s-12 { width: 100%; }
    .grid-container.nogutter .col-s-12, .grid-container .row.table > .col-s-12 { width: 100%; }

    .s-space { margin-left: 2.127659574468085%!important; margin-right: 2.127659574468085%!important;  }
    .row.table .s-space { padding: 0.7em 1em!important; }
    .s-space-left { margin-left: 2.127659574468085%!important; }
    .row.table .s-space-left { padding-left: 1em!important; }
    .s-space-right { margin-right: 2.127659574468085%!important; }
    .row.table .s-space-right { padding-right: 1em!important; }

    .s-clearspace { margin: 0!important;}
    .row.table .s-clearspace { padding: 0; }
    .s-clearspace-left { margin-left: 0!important; }
    .row.table .s-clearspace-left { padding-left: 0!important; }
    .s-clearspace-right { margin-right: 0!important; }
    .row.table .s-clearspace-right { padding-right: 0!important; }
}

/* PRINT STYLES */
@media print {
    * { background: transparent!important; color: black!important; text-shadow: none!important; filter:none!important; -ms-filter: none!important; }
    a, a:visited { text-decoration: underline; }
    a[href]:after { content: " [" attr(href) "]"; }
    abbr[title]:after { content: " [" attr(title) "]"; }
    .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }  /* Don't show links for images, or javascript/internal links */
    pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
    thead { display: table-header-group; }
    tr, img { page-break-inside: avoid; }
    img { max-width: 100%!important; }
    @page { margin: 1.5cm; }
    p, h2, h3 { orphans: 3; widows: 3; }
    h2, h3 { page-break-after: avoid; }
    /* custom print styles */
    #header, #menu, #subheader, #aside, #footer, #copyright { display: none; }
    main { background: none; box-shadow: none; margin: 0; }
    main article  { float: none; font-size: 16pt; padding: 0; width: 100%; }
    .slidebox dd { display: block!important; }
}

/* =================================================================
   ============  ÖRTLERHOF — CUSTOM (aus Claude Design)  ============
   Header · Panorama/Hero · Footer · Buttons · Sektionen · Widgets
   Design-Tokens siehe :root oben. Content-Sektionen (Cards, Split,
   Stats …) sind vorbereitet und werden Schritt für Schritt befüllt.
   ================================================================= */

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  font-size:17px;
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
::selection{background:var(--green);color:#fff}

/* ---------- Layout ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.wrap-wide{max-width:1440px}
.section{padding-block:clamp(72px,11vw,150px)}
.section-tight{padding-block:clamp(48px,7vw,90px)}
.bg-paper-2{background:var(--paper-2)}
.bg-green-wash{background:var(--green-wash)}
.bg-forest{background:var(--forest);color:var(--cream)}

/* ---------- Typography ---------- */
.display,h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.04;letter-spacing:-.01em;color:var(--ink)}
.display{font-size:clamp(2.9rem,6.6vw,6rem);font-weight:300}
h1{font-size:clamp(2.6rem,5.4vw,4.6rem);font-weight:300}
h2{font-size:clamp(2.1rem,3.9vw,3.5rem);font-weight:300}
h3{font-size:clamp(1.4rem,2vw,1.9rem)}
.lede{font-family:var(--serif);font-weight:300;font-size:clamp(1.3rem,2.1vw,1.85rem);line-height:1.45;color:var(--ink);letter-spacing:-.01em}
em,.it{font-style:italic}
.serif{font-family:var(--serif)}

.eyebrow{
  font-family:var(--sans);
  font-size:.74rem;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;
  color:var(--green-deep);
  display:inline-flex;align-items:center;gap:.7em;
}
.eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.6}
.eyebrow.center::after{content:"";width:26px;height:1px;background:currentColor;opacity:.6}
.eyebrow.center{justify-content:center}

p{max-width:64ch;text-wrap:pretty}
.muted{color:var(--ink-soft)}
.measure{max-width:58ch}
.center{text-align:center}
.center p{margin-inline:auto}

/* ---------- Button-Varianten (bauen auf der Default-Klasse .button auf) ---------- */
.button.primary{background:var(--green);color:#fff;border-color:transparent;box-shadow:var(--shadow-sm)}
.button.primary:hover{background:var(--green-deep);color:#fff}
.button.ghost{background:rgba(255,255,255,.4);color:var(--ink);border-color:var(--line);box-shadow:none}
.button.ghost:hover{background:#fff;color:var(--green-deep);border-color:var(--green)}
.button.light{background:var(--cream);color:var(--ink);border-color:transparent;box-shadow:none}
.button.light:hover{background:#fff;color:var(--ink)}
.button.outline-light{background:transparent;color:var(--cream);border-color:rgba(255,255,255,.45);box-shadow:none}
.button.outline-light:hover{background:rgba(255,255,255,.12);color:#fff;border-color:#fff}

/* Text-Link mit Pfeil (kein Button) */
.button-text{
  font-family:var(--sans);font-weight:600;font-size:.82rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--green-deep);
  display:inline-flex;align-items:center;gap:.55em;
}
.button-text .arr{transition:transform .35s}
.button-text:hover .arr{transform:translateX(6px)}

/* ---------- Bild-Cover ---------- */
img.cover,.ph{width:100%;height:100%;object-fit:cover}
.media{position:relative;overflow:hidden;border-radius:var(--radius)}
.media img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- Navigation ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:18px var(--gutter);
  transition:background .4s,box-shadow .4s,padding .4s;
}
.nav--over{color:var(--cream);text-shadow:0 1px 8px rgba(14,12,6,.45)}
.nav--solid{background:rgba(247,243,237,.93);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line-soft);color:var(--ink)}
.nav__logo{display:flex;align-items:center;gap:12px;z-index:2}
.nav__logo img{height:50px;width:auto;transition:.4s;filter:drop-shadow(0 1px 3px rgba(0,0,0,.25))}
.nav--over .nav__logo img{filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.nav__logo-text{display:flex;flex-direction:column;line-height:1}
.nav__logo-text b{font-family:var(--serif);font-weight:400;font-size:1.3rem;letter-spacing:.02em}
.nav__logo-text span{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;opacity:.7;margin-top:3px}
.nav__menu{display:none}
.nav__menu a{
  font-size:.82rem;font-weight:500;letter-spacing:.06em;
  position:relative;padding:6px 0;transition:color .3s;
}
.nav__menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s}
.nav__menu a:hover::after,.nav__menu a.active::after{transform:scaleX(1)}
.nav__right{display:flex;align-items:center;gap:16px;z-index:2}
.nav__actions{display:flex;align-items:center;gap:10px}
.nav__anfragen{display:inline-flex;align-items:center;justify-content:center;padding:.62em 1.2em;border-radius:100px;border:1px solid currentColor;color:inherit;font-weight:600;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;opacity:.92;transition:.3s;white-space:nowrap}
.nav__anfragen:hover{opacity:1;background:rgba(255,255,255,.12)}
.nav--solid .nav__anfragen{border-color:var(--line);color:var(--ink);opacity:1}
.nav--solid .nav__anfragen:hover{border-color:var(--green);color:var(--green-deep);background:#fff}
.nav .nav__buchen{padding:.66em 1.35em;font-size:.76rem;letter-spacing:.08em}
/* Header-Hover: Framework-Link-Hover (dunkelgrün) neutralisieren, sonst auf dem
   dunklen Panorama fast unsichtbar. Stattdessen dezentes Feedback. */
.nav a:hover{color:inherit}
.nav__logo,.nav__phone{transition:opacity .3s}
.nav__logo:hover{opacity:.85}
.nav__phone:hover{opacity:.65}
.lang{display:flex;gap:2px;font-size:.72rem;letter-spacing:.1em;font-weight:600}
.lang a{opacity:.5;padding:4px 5px;transition:opacity .3s}
.lang a.on,.lang a.active,.lang a:hover{opacity:1}
.lang a.on,.lang a.active{color:var(--green-deep)}
.nav--over .lang a.on,.nav--over .lang a.active{color:#fff;text-decoration:underline;text-underline-offset:4px}
.nav__phone{font-size:.82rem;font-weight:500;letter-spacing:.02em;white-space:nowrap}
.burger{display:inline-flex;align-items:center;gap:11px;z-index:2;color:inherit}
.burger__txt{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.burger__lines{display:flex;flex-direction:column;gap:5px;width:26px}
.burger__lines span{height:2px;background:currentColor;border-radius:2px;transition:.3s}
@media(max-width:560px){.burger__txt{display:none}}

/* ===== Fullscreen-Menü-Overlay ===== */
.mobile{position:fixed;inset:0;z-index:70;background:var(--forest);color:var(--cream);display:flex;flex-direction:column;transform:translateY(-100%);transition:transform .6s cubic-bezier(.7,0,.2,1);overflow-y:auto}
.mobile.open{transform:translateY(0)}
.menu-top{display:flex;align-items:center;justify-content:space-between;padding:18px var(--gutter);border-bottom:1px solid rgba(255,255,255,.1)}
.menu-top .nav__logo img{height:46px;filter:none}
.menu-top .nav__logo-text b{color:var(--cream)}
.menu-top .nav__logo-text span{color:rgba(241,238,235,.7)}
.menu-close{display:inline-flex;align-items:center;gap:9px;color:var(--cream);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;border:1px solid rgba(255,255,255,.25);padding:.72em 1.2em;border-radius:100px;transition:.3s}
.menu-close:hover{background:rgba(255,255,255,.1)}
.menu-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(26px,3vw,46px);padding:clamp(32px,6vh,72px) var(--gutter);max-width:1500px;margin:0 auto;width:100%;flex:1}
.menu-col h4{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--green-soft);font-weight:600;margin-bottom:16px;padding-bottom:13px;border-bottom:1px solid rgba(255,255,255,.12)}
.menu-col h4 a{color:inherit;transition:color .25s}
.menu-col h4 a:hover{color:#fff}
.menu-col ul li.active>a{color:#fff}
.menu-col ul{list-style:none;display:flex;flex-direction:column;gap:4px}
.menu-col ul a{font-family:var(--serif);font-weight:300;font-size:1.16rem;line-height:1.25;color:rgba(241,238,235,.9);padding:5px 0;display:inline-block;transition:color .25s,transform .25s}
.menu-col ul a:hover{color:#fff;transform:translateX(5px)}
.menu-foot{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:22px var(--gutter) 32px;border-top:1px solid rgba(255,255,255,.1)}
.menu-contact{font-size:.92rem;color:rgba(241,238,235,.78);line-height:1.85}
.menu-contact b{color:var(--cream)}
.menu-contact a:hover{color:#fff}
@media(max-width:900px){.menu-grid{grid-template-columns:1fr 1fr;gap:28px 36px}}
@media(max-width:560px){.menu-grid{grid-template-columns:1fr;padding-block:30px}.menu-col ul a{font-size:1.05rem}.menu-top .nav__logo-text{display:none}}

/* ---------- Hero / Panorama ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;color:var(--cream);overflow:hidden;background:var(--forest)}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media img,.hero__media .ph{width:100%;height:100%;object-fit:cover}
/* Panorama-Slider (Hero): tiny-slider-Struktur auf volle Höhe zwingen */
.hero__slider{height:100%;position:relative;z-index:1}
.hero__media .tns-outer,.hero__media .tns-inner,.hero__media .tns-slider,.hero__media .tns-item{height:100%}
/* Im Slider: sanfter langsamer Zoom über die eigenständige scale-Property
   (kollidiert nicht mit tiny-sliders transform → kein Pulsieren). Einzelbild nutzt weiter Ken-Burns. */
@keyframes heroZoom{from{scale:1.02}to{scale:1.1}}
@media(prefers-reduced-motion:reduce){.hero__media .tns-slider img{animation:none;scale:1}}
/* Panorama-Slider Punkte — dezent unten rechts, über dem Verlauf (stören Text/Scroll nicht) */
.hero__dots{position:absolute;right:var(--gutter);bottom:38px;z-index:3;display:flex;gap:9px;align-items:center;line-height:0}
.hero__dots button{width:9px;height:9px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.4);cursor:pointer;transition:background .3s,transform .3s;-webkit-appearance:none;appearance:none;box-shadow:0 1px 5px rgba(0,0,0,.35)}
.hero__dots button:hover{background:rgba(255,255,255,.75)}
.hero__dots button.tns-nav-active{background:#fff;transform:scale(1.25)}
@media(max-width:560px){.hero__dots{bottom:22px}}
/* Seiten ohne Hero (Infoseite): Content unter den fixierten Header rücken */
#content.content--nohero{padding-top:clamp(88px,10vh,110px)}
.hero__media::after{content:"";position:absolute;inset:0;z-index:2;background:
  linear-gradient(102deg, rgba(20,18,10,.74) 0%, rgba(20,18,10,.5) 32%, rgba(20,18,10,.2) 54%, rgba(20,18,10,0) 76%),
  linear-gradient(180deg, rgba(20,18,10,.5) 0%, rgba(20,18,10,.05) 20%, rgba(20,18,10,0) 46%, rgba(18,16,9,.72) 100%)}
.hero h1,.hero .eyebrow,.hero__sub{text-shadow:0 2px 28px rgba(14,12,6,.6),0 1px 5px rgba(14,12,6,.45)}
.hero__inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(120px,16vh,180px)}
.hero h1{color:var(--cream);max-width:16ch}
.hero .eyebrow{color:var(--green-soft)}
.hero__sub{color:rgba(255,255,255,.88);font-size:1.1rem;max-width:46ch;margin-top:22px}
.hero__scroll{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);z-index:2;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.7);display:flex;flex-direction:column;align-items:center;gap:10px}
.hero__scroll .bar{width:1px;height:42px;background:linear-gradient(rgba(255,255,255,.7),transparent);animation:scrolldn 2.2s ease-in-out infinite}
@keyframes scrolldn{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- Generic zwei-Spalten-Feature ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:center}
.split--wide-img{grid-template-columns:1.15fr .85fr}
.split__media{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md)}
.split__media.land{aspect-ratio:5/4}
.split__media img{width:100%;height:100%;object-fit:cover;display:block}
/* Vertikaler Abstand für Text&Bild-Vorlagen im Seiteninhalt */
#article .split{margin-block:clamp(48px,7vw,90px)}

/* Hintergrund-Bänder (Vorlagen) — vollflächig über die ganze Breite */
.bg-sand{background:var(--sand)}
#article .contentband{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-block:clamp(48px,7vw,90px);padding-block:clamp(56px,8vw,110px)}
#article .contentband>.wrap>*:first-child{margin-top:0}
#article .contentband>.wrap>*:last-child{margin-bottom:0}
#article .contentband .split{margin-block:0}
/* Lesbarkeit auf dunkelbraunem Band */
.bg-forest h2,.bg-forest h3,.bg-forest h4{color:var(--cream)}
.bg-forest .eyebrow{color:var(--green-soft)}
.bg-forest p,.bg-forest .muted,.bg-forest li{color:rgba(241,238,235,.85)}
.bg-forest a:not(.button):not(.chip){color:var(--green-soft)}

/* Button-Reihe (Vorlagen) — ein oder mehrere Buttons nebeneinander */
#article .button-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-block:1.4em}

/* Kicker (.eyebrow.center) — von Elementen (Cards/Reviews) fest zentriert genutzt */
#article .eyebrow.center{display:flex;max-width:none}
/* Kicker im Content: Zentrierung über den Editor (text-align:center) → Flex-Zentrierung + rechte Linie */
#article .eyebrow[style*="text-align: center"],#article .eyebrow[style*="text-align:center"]{display:flex;justify-content:center;max-width:none}
#article .eyebrow[style*="text-align: center"]::after,#article .eyebrow[style*="text-align:center"]::after{content:"";width:26px;height:1px;background:currentColor;opacity:.6}
/* Vom Editor zentrierte Absätze: max-width-Box selbst mittig setzen (sonst klebt sie links) */
#article p[style*="text-align: center"],#article p[style*="text-align:center"]{margin-inline:auto}
/* Bewusst auf volle Breite gesetzte Absätze dürfen die 64ch-Grenze überschreiben */
#article p[style*="width: 100%"],#article p[style*="width:100%"]{max-width:none}

/* Kleine Buttons / Chips (Vorlagen) — einzeln & inline; hell & dunkel */
.chip{display:inline-block;vertical-align:middle;transition:border-color .25s,color .25s,background .25s}
#article .chip{margin:0 6px 10px 0}
#article .chips .chip{margin:0}
.chip.chip--dark{border-color:rgba(255,255,255,.22);color:rgba(241,238,235,.85);background:rgba(255,255,255,.05)}
/* Hover: beide grün gefüllt, weißer Text */
.chip:hover,.chip.chip--dark:hover{border-color:var(--green);background:var(--green);color:#fff}

/* Stats-Element (ContentControl) — Spaltenzahl je nach befüllten Kacheln */
#article .stats{margin-block:1.6em}
#article .stats--3{grid-template-columns:repeat(3,1fr)}
#article .stats--2{grid-template-columns:repeat(2,1fr)}
#article .stats--1{grid-template-columns:1fr}
@media(max-width:760px){#article .stats--3,#article .stats--4{grid-template-columns:1fr 1fr}}

/* Cards-Element (ContentControl) — Kopf + Kartengrid */
#article .element-cards{margin-block:clamp(48px,7vw,90px)}
#article .element-cards .cards-head{margin-bottom:clamp(32px,5vw,56px)}
#article .cards-1{grid-template-columns:1fr;max-width:480px;margin-inline:auto}
.card__media img{width:100%;height:100%;object-fit:cover;display:block}
/* zentrierte Überschrift in .center-Containern (Framework-Basis setzt h-Tags sonst linksbündig) */
.center h1,.center h2,.center h3{text-align:center}

/* Logo-Band-Element (ContentControl) — Full-Bleed: festes Logo links, Text mittig, Button rechts */
#article .element-logoband{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-block:clamp(48px,7vw,90px);padding-block:clamp(40px,6vw,64px)}
#article .element-logoband .logoband__inner{display:flex;align-items:center;gap:36px;flex-wrap:wrap;justify-content:space-between}
.logoband__main{display:flex;align-items:center;gap:26px}
.logoband__logo{height:74px;width:auto;flex:none}
.element-logoband h3{margin:6px 0 0}
.element-logoband .eyebrow{margin-bottom:2px}
.element-logoband .muted{margin-top:6px;max-width:52ch}
@media(max-width:600px){.logoband__logo{height:54px}#article .element-logoband .logoband__inner{gap:22px}}

/* Rezensionen-Element (ContentControl) — dunkles Band, Zitat-Slider + Werte-Reihe */
#article .element-reviews{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-block:clamp(48px,7vw,90px);padding-block:clamp(64px,10vw,120px)}
#article .element-reviews .wrap{max-width:980px}
.element-reviews .eyebrow{color:var(--green-soft)}
.reviews__slider{margin-top:24px;text-align:center}
.reviews__slider .tns-item{text-align:center}
.reviews__slider .quote{color:var(--cream);text-align:center;margin-inline:auto}
.reviews__slider .quote cite{color:var(--green-soft)}
.reviews__stats{display:flex;gap:40px;justify-content:center;flex-wrap:wrap;margin-top:48px;padding-top:40px;border-top:1px solid rgba(255,255,255,.14)}
.reviews__stat b{display:block;font-family:var(--serif);font-weight:300;font-size:2.4rem;color:var(--green-soft);line-height:1}
.reviews__stat-label{display:block;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(241,238,235,.7);font-weight:600;margin-top:6px}
/* Slider-Punkte (tiny-slider verschiebt .tns-nav aus .reviews__slider heraus) */
.element-reviews .tns-nav{text-align:center;margin-top:28px;line-height:0}
.element-reviews .tns-nav button{width:9px;height:9px;padding:0;margin:0 5px;border:none;border-radius:50%;background:rgba(255,255,255,.28);cursor:pointer;transition:background .3s,transform .3s;-webkit-appearance:none;appearance:none;box-shadow:none}
.element-reviews .tns-nav button:hover{background:rgba(255,255,255,.55)}
.element-reviews .tns-nav button.tns-nav-active{background:var(--green-soft);transform:scale(1.15)}

/* Newsletter-Inhaltbox (Showcase) — Full-Bleed-Band (Layout .nl__* kommt aus dem Design) */
#aside,#box-container,#box-slider{margin:0;padding:0}
.element-nl{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-block:clamp(56px,9vw,110px)}

/* Nur ZWISCHEN zwei Hintergrund-Bändern kein Abstand (sie berühren sich direkt).
   Zwischen Band und normalem Content (Cards, Split, Text) bleibt der Abstand erhalten. */
#article :is(.contentband,.element-nl,.element-reviews,.element-logoband):has(+ :is(.contentband,.element-nl,.element-reviews,.element-logoband)){margin-bottom:0}
#article :is(.contentband,.element-nl,.element-reviews,.element-logoband) + :is(.contentband,.element-nl,.element-reviews,.element-logoband){margin-top:0}
/* Abstand zwischen Seiteninhalt und Newsletter-Showcase (#aside):
   Letztes Content-Element ohne unteren Margin — der Abstand kommt allein vom #aside. */
#content:has(#aside) #article > *:last-child{margin-bottom:0}
#content #aside{margin-top:clamp(48px,7vw,90px)}
/* … außer wenn direkt davor ein Hintergrund-Band steht: dann nahtloser Übergang (kein Abstand) */
#content:has(#article > :is(.contentband,.element-reviews,.element-logoband):last-child) #aside{margin-top:0}

/* Meldungen (.msg = Erfolg, .msgerror = Fehler) — Örtlerhof-Design statt Bootstrap-Pink */
#article .msg,#article .msgerror{border:1px solid transparent;border-radius:var(--radius);padding:clamp(20px,3vw,28px) clamp(22px,3.5vw,32px)!important;margin:0 0 clamp(24px,3vw,34px);font-size:.98rem;line-height:1.6}
#article .msg{background:var(--green-wash);border-color:rgba(95,90,38,.2);color:var(--green-dark)}
#article .msgerror{background:rgba(180,106,68,.1);border-color:rgba(180,106,68,.32);color:#7a4025}
#article .msg h2,#article .msgerror h2{font-family:var(--sans)!important;font-size:1.1rem!important;font-weight:600!important;letter-spacing:0;line-height:1.3;margin:0 0 .5em!important;color:inherit;text-align:left}
#article .msg ul,#article .msgerror ul{margin:.3em 0 0;padding-left:1.25em}
#article .msg li,#article .msgerror li{margin:.2em 0}
#article .msg a,#article .msgerror a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* Zitat (Vorlage) — Serif mit grünem Balken; Farbe erbt (hell & dunkel) */
#article .pagequote{font-family:var(--serif);font-weight:300;font-size:clamp(1.3rem,2.1vw,1.85rem);line-height:1.45;letter-spacing:-.01em;border-left:2px solid var(--green);padding-left:24px;margin:1.6em 0;max-width:46ch}

/* Aufzählung (Vorlage) — EIN Punkt je Einfügung (DIV-Block). Mehrere untereinander ergeben die Liste.
   Grid: Nummer links (grün), Überschrift + Text rechts; Trennlinie oben. */
#article .numlist__item{display:grid;grid-template-columns:45px 1fr;column-gap:16px;padding:18px 0;border-top:1px solid var(--line)}
/* Abstand zwischen aufeinanderfolgenden Punkten kommt nur aus padding/border — Stack-Margin neutralisieren */
#article .numlist__item + .numlist__item{margin-top:0}
#article .numlist__item .num{grid-column:1;grid-row:1 / -1;align-self:start;font-family:var(--serif);font-size:1rem;line-height:1.5;color:var(--green)}
#article .numlist__title{grid-column:2;color:var(--ink);font-family:var(--sans);font-weight:600;font-size:1.05rem;line-height:1.35;margin-bottom:2px}
#article .numlist__text{grid-column:2;color:var(--ink-soft);font-size:.95rem;line-height:1.6}
/* auf dunklem Band lesbar */
.bg-forest .numlist__item .num{color:var(--green-soft)}
.bg-forest .numlist__title{color:var(--cream)}
.bg-forest .numlist__text{color:rgba(241,238,235,.82)}
.stack-sm>*+*{margin-top:18px}
.stack-md>*+*{margin-top:26px}

/* ---------- Stat-Reihe ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-block:1px solid var(--line)}
.stat{background:var(--paper);padding:34px 22px;text-align:center}
.stat b{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,4vw,3.2rem);color:var(--green-deep);line-height:1}
.stat span{display:block;margin-top:10px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr}}

/* ---------- Cards ---------- */
.cards{display:grid;gap:30px}
.cards-3{grid-template-columns:repeat(3,1fr)}
.cards-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--cream);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:.45s cubic-bezier(.2,.7,.3,1);display:flex;flex-direction:column}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.card__media{aspect-ratio:3/2;overflow:hidden;position:relative}
.card__media img,.card__media .ph{transition:transform 1.1s cubic-bezier(.2,.7,.3,1)}
.card:hover .card__media img{transform:scale(1.06)}
.card__body{padding:26px 28px 30px;display:flex;flex-direction:column;gap:12px;flex:1}
.card__body h3{margin-bottom:2px}
.card__tag{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--green-deep);font-weight:600}
.card__foot{margin-top:auto;padding-top:16px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);gap:14px}
.card__price{font-family:var(--serif);color:var(--ink)}
.card__price b{font-size:1.4rem;font-weight:400}
.card__price small{color:var(--ink-soft);font-family:var(--sans);font-size:.74rem;letter-spacing:.04em}

/* ---------- Feature-Liste ---------- */
.flist{display:flex;flex-direction:column;gap:0}
.flist li{display:flex;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);list-style:none;align-items:flex-start}
.flist li:first-child{border-top:1px solid var(--line)}
.flist .ix{font-family:var(--serif);font-size:.95rem;color:var(--green-deep);min-width:32px;padding-top:2px}
.flist h4{font-size:1.05rem;font-weight:600;margin-bottom:3px}
.flist p{font-size:.95rem;color:var(--ink-soft);max-width:48ch}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{font-size:.78rem;letter-spacing:.02em;padding:.5em 1.05em;border:1px solid var(--line);border-radius:100px;color:var(--ink-soft);background:rgba(255,255,255,.4)}
.chip svg{vertical-align:-2px;margin-right:6px;opacity:.6}

/* quote */
.quote{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(1.6rem,3.2vw,2.7rem);line-height:1.32;letter-spacing:-.01em;text-wrap:balance}
.quote cite{display:block;margin-top:26px;font-family:var(--sans);font-style:normal;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green-deep);font-weight:600}

/* ---------- Gallery-Strip ---------- */
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.strip .media{aspect-ratio:1}
.strip .media.tall{grid-row:span 2;aspect-ratio:auto}
@media(max-width:760px){.strip{grid-template-columns:1fr 1fr}}

/* ---------- Footer ---------- */
.footer{background:var(--forest);color:var(--cream);padding-block:clamp(64px,8vw,100px) 36px}
.footer a:hover{color:#fff}
.footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer__brand img{height:80px;opacity:.97;margin-bottom:20px}
.footer__partners{padding-top:34px;margin-top:8px;border-top:1px solid rgba(255,255,255,.12)}
.footer__partners h5{margin-bottom:20px}
.partner-row{display:flex;flex-wrap:wrap;gap:14px;align-items:stretch}
.partner{display:flex;align-items:center;justify-content:center;min-height:58px;padding:10px 22px;border:1px solid rgba(255,255,255,.16);border-radius:4px;background:rgba(255,255,255,.03);color:rgba(241,238,235,.82);font-family:var(--serif);font-size:1.02rem;letter-spacing:.01em;line-height:1.2;text-align:center;transition:.3s}
.partner:hover{border-color:var(--green);color:#fff;background:rgba(255,255,255,.06)}
.partner img{max-height:34px;width:auto;display:block}
.footer h5{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--green-soft);margin-bottom:20px;font-weight:600}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.footer ul a{color:rgba(241,238,235,.78);font-size:.95rem;transition:color .3s}
.footer__contact{font-size:.95rem;color:rgba(241,238,235,.82);line-height:1.9}
.footer__contact b{color:var(--cream);font-weight:600}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:28px;font-size:.8rem;color:rgba(241,238,235,.55);flex-wrap:wrap}
.footer__bottom a{color:rgba(241,238,235,.7)}
.social{display:flex;gap:14px}
.social a{width:38px;height:38px;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.3s}
.social a:hover{background:var(--green);border-color:var(--green)}

/* Seiten-Hero (interior) */
.phero{position:relative;min-height:64vh;display:flex;align-items:flex-end;color:var(--cream);overflow:hidden;background:var(--forest)}
.phero__media{position:absolute;inset:0}
.phero__media img,.phero__media .ph{width:100%;height:100%;object-fit:cover}
.phero__media::after{content:"";position:absolute;inset:0;background:
  linear-gradient(100deg, rgba(20,18,10,.66) 0%, rgba(20,18,10,.34) 38%, rgba(20,18,10,.05) 66%, rgba(20,18,10,0) 82%),
  linear-gradient(180deg, rgba(20,18,10,.5) 0%, rgba(20,18,10,0) 42%, rgba(18,16,9,.66) 100%)}
.phero__inner{position:relative;z-index:2;padding-bottom:clamp(48px,8vh,80px)}
.phero h1{color:var(--cream);max-width:none;margin:0}
.phero h1,.phero .eyebrow,.phero__sub,.breadcrumb{text-shadow:0 2px 26px rgba(14,12,6,.55),0 1px 5px rgba(14,12,6,.4)}
.phero .eyebrow{color:var(--green-soft);display:inline-flex;margin-bottom:16px}
.phero__sub{color:rgba(255,255,255,.88);max-width:52ch;margin-top:22px}
.breadcrumb{font-size:.76rem;letter-spacing:.1em;color:rgba(255,255,255,.7);margin-bottom:24px}
.breadcrumb a:hover{color:#fff}

/* ---------- Reveal-on-Scroll ---------- */
html.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.3,1)}
html.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html.js .reveal{opacity:1;transform:none;transition:none}.hero__scroll .bar{animation:none}}

/* Divider / misc */
.rule{height:1px;background:var(--line);border:none}
.kicker-num{font-family:var(--serif);font-size:.85rem;color:var(--green-deep);letter-spacing:.05em}
.tag-row{display:flex;gap:20px;flex-wrap:wrap;align-items:center;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}
.tag-row .dot{width:4px;height:4px;border-radius:50%;background:var(--green)}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .nav__phone{display:none}
  .footer__top{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  body{font-size:16px}
  .split{grid-template-columns:1fr;gap:36px}
  .split__media{aspect-ratio:4/3;max-height:62vh}
  .cards-3{grid-template-columns:1fr}
  .cards-2{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  :root{--gutter:20px}
  .footer__top{grid-template-columns:1fr}
  .strip{grid-template-columns:1fr 1fr}
}

/* ================================================================
   ADD-ONS: Ken-Burns · Popup · Newsletter · Wetter · Scroll-Top
   ================================================================ */

/* ---- Ken-Burns langsamer Zoom auf Hero & Feature-Bildern ---- */
@media(prefers-reduced-motion:no-preference){
  .phero__media img,.phero__media .ph{
    animation:kenburns 26s ease-in-out infinite alternate;
    transform-origin:center;
  }
  .split__media img,.split__media.land img{
    transition:transform 1.4s cubic-bezier(.2,.7,.3,1);
  }
  .split__media:hover img{transform:scale(1.05)}
}
@keyframes kenburns{
  from{transform:scale(1.02)}
  to{transform:scale(1.12)}
}
.hero__media,.phero__media{overflow:hidden}

/* ---- Scroll-to-Top-Pfeil ---- */
.to-top{
  position:fixed;right:22px;bottom:22px;z-index:58;
  width:52px;height:52px;border-radius:50%;
  background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-md);
  opacity:0;visibility:hidden;transform:translateY(14px);
  transition:opacity .4s,transform .4s,background .3s,visibility .4s;
  cursor:pointer;
}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--green-deep);transform:translateY(-3px)}
.to-top svg{display:block}
@media(max-width:560px){.to-top{right:16px;bottom:16px;width:46px;height:46px}}

/* ---- Wetter-Chip (in nav) ---- */
.weather{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;font-weight:500;letter-spacing:.01em;white-space:nowrap}
.weather svg{opacity:.85}
.weather b{font-weight:600}
.weather .wx-place{opacity:.7;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:1200px){.weather .wx-place{display:none}}
@media(max-width:1080px){.weather{display:none}}

/* ---- Angebots-Popup ---- */
.promo{
  position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(26,24,14,.55);backdrop-filter:blur(4px);
  opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s;
}
.promo.show{opacity:1;visibility:visible}
.promo__card{
  position:relative;display:grid;grid-template-columns:.82fr 1fr;
  width:min(760px,100%);background:var(--cream);border-radius:8px;overflow:hidden;
  box-shadow:var(--shadow-lg);transform:translateY(18px) scale(.98);transition:transform .5s cubic-bezier(.2,.7,.3,1);
}
.promo.show .promo__card{transform:none}
.promo__card--nomedia{grid-template-columns:1fr}
.promo__media{position:relative;min-height:340px;overflow:hidden}
.promo__media img,.promo__media .ph{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.promo__badge{position:absolute;top:18px;left:18px;z-index:2;background:var(--clay);color:#fff;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:.5em 1em;border-radius:100px}
.promo__body{padding:clamp(30px,4vw,46px);display:flex;flex-direction:column;justify-content:center;gap:14px}
.promo__body .eyebrow{margin-bottom:2px}
.promo__body h3{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.promo__body p{font-size:.98rem;color:var(--ink-soft)}
.promo__list{list-style:none;display:flex;flex-direction:column;gap:8px;margin:4px 0 8px}
.promo__list li{font-size:.92rem;color:var(--ink);padding-left:22px;position:relative}
.promo__list li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;background:var(--green)}
.promo__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px;align-items:center}
.promo__close{position:absolute;top:14px;right:14px;z-index:3;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1;transition:.25s;box-shadow:var(--shadow-sm)}
.promo__close:hover{background:#fff;transform:rotate(90deg)}
.promo__dismiss{font-size:.8rem;letter-spacing:.02em;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.promo__dismiss:hover{color:var(--ink)}
@media(max-width:640px){
  .promo__card{grid-template-columns:1fr;max-height:88vh;overflow-y:auto}
  .promo__media{min-height:200px}
}

/* ---- Newsletter-Sektion ---- */
.nl{position:relative;overflow:hidden}
.nl__inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.nl__form-wrap{max-width:460px}
.nl-consent{font-size:.78rem;color:var(--ink-faint);margin-top:14px;max-width:44ch}
.nl-consent a{text-decoration:underline;text-underline-offset:2px}
.nl__media{aspect-ratio:5/4;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md)}
.nl__media img{width:100%;height:100%;object-fit:cover}
@media(max-width:820px){.nl__inner{grid-template-columns:1fr}.nl__media{display:none}}

/* =================================================================
   RESPONSIVE FEINSCHLIFF — Header · Hero · Menü · Footer
   ================================================================= */

/* Hero: mobiltaugliche Höhe (svh gegen ein-/ausblendende Browser-Leisten) */
.hero{min-height:100vh;min-height:100svh}

/* Sprachwahl im mobilen Menü-Footer */
.menu-foot__actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.lang--menu a{opacity:.6;color:var(--cream)}
.lang--menu a.on,.lang--menu a.active,.lang--menu a:hover{opacity:1;color:#fff}
.lang--menu a.on,.lang--menu a.active{text-decoration:underline;text-underline-offset:4px}

/* Header stufenweise entschlacken (Inhalte bleiben über das Menü erreichbar) */
@media(max-width:900px){
  .nav__anfragen{display:none}            /* „Anfragen" liegt im Fullscreen-Menü */
}
@media(max-width:820px){
  .nav{padding:14px var(--gutter)}
  .nav__logo img{height:44px}
  .nav__right{gap:12px}
  .hero__inner{padding-bottom:clamp(96px,15vh,150px)}
  .hero__sub{font-size:1.02rem}
}
@media(max-width:560px){
  .nav .lang{display:none}                /* Sprachwahl liegt im Menü-Footer */
  .nav__logo-text span{display:none}      /* Untertitel ausblenden */
  .nav__logo img{height:40px}
  .nav__logo-text b{font-size:1.12rem}
  .nav .nav__buchen{padding:.62em 1.05em;font-size:.72rem}
  .nav__right{gap:9px}
  .hero__scroll{display:none}
}
@media(max-width:360px){
  .nav__logo-text{display:none}           /* nur Logo-Icon + Buchen + Burger */
}

/* Footer auf Mobil zentrierter & luftiger */
@media(max-width:560px){
  .footer__brand img{height:64px}
  .footer__bottom{justify-content:center;text-align:center}
  .menu-foot__actions{width:100%;justify-content:space-between}
}
/* ============  ENDE ÖRTLERHOF — CUSTOM  ============ */