/* Mehlinger Alm – ergänzende Stile zu den globalen Elementor-Einstellungen.
   Farben und Schriften kommen aus dem Elementor-Kit (Website-Einstellungen).
   Hier nur, was Elementor nicht nativ abbildet: Papierkorn, Lichterkette,
   Stempel, schräge Fotos, Wintertafel, Reservierungszettel, Fragen. */

:root {
	--alm-rauch: var(--e-global-color-almrauch, #1E1611);
	--alm-holz: var(--e-global-color-almholz, #3A2A1F);
	--alm-tafel: var(--e-global-color-almtafel, #241B15);
	--alm-kraft: var(--e-global-color-secondary, #CDAE84);
	--alm-kraft-hell: var(--e-global-color-almkrafth, #DCC29E);
	--alm-gold: var(--e-global-color-primary, #E3B25E);
	--alm-schnee: var(--e-global-color-text, #F3ECE0);
	--alm-gluehwein: var(--e-global-color-accent, #8E2F22);
	--alm-rinde: var(--e-global-color-almrinde, #5A4433);
}

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { background: var(--alm-rauch); -webkit-font-smoothing: antialiased; }

/* Sichtbarer Fokus für Tastatur */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, .elementor-tab-title:focus-visible, [tabindex]:focus-visible {
	outline: 2px solid var(--alm-gold);
	outline-offset: 3px;
}

/* Papierkorn auf Kraftpapier-Flächen */
.alm-grain { position: relative; isolation: isolate; }
.alm-grain::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url(../img/papierkorn.png) repeat;
	opacity: .55;
	mix-blend-mode: multiply;
	pointer-events: none;
	z-index: 0;
}
.alm-grain > * { position: relative; z-index: 1; }

/* Lichterkette oben an einer Fläche */
.alm-lichterkette { position: relative; }
.alm-lichterkette::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 80px;
	background: url(../img/lichterkette.svg) center top / 480px 80px repeat-x;
	pointer-events: none;
	z-index: 2;
}
@media (max-width: 767px) {
	.alm-lichterkette::after { height: 48px; background-size: 288px 48px; }
}

/* Fotos */
.alm-foto img { display: block; width: 100%; height: auto; border-radius: 3px; object-fit: cover; }
.alm-foto-schief img { transform: rotate(1.6deg); box-shadow: 0 30px 60px rgba(0, 0, 0, .45); }
.alm-r-1-1 img { aspect-ratio: 1 / 1; }
.alm-r-4-5 img { aspect-ratio: 4 / 5; }
.alm-r-4-3 img { aspect-ratio: 4 / 3; }
.alm-r-9-15 img { aspect-ratio: 9 / 15; }
.alm-r-9-16 img { aspect-ratio: 9 / 16; }
.alm-versatz { margin-top: 72px; }
@media (max-width: 767px) { .alm-versatz { margin-top: 0; } }

/* Stempel über einer Bildkante */
.alm-hero-bild { position: relative; }
.elementor-widget.alm-stempel {
	position: absolute;
	left: -54px;
	bottom: -48px;
	width: 176px;
	transform: rotate(-12deg);
	z-index: 3;
}
.alm-stempel .alm-stempel-innen { position: relative; width: 176px; height: 176px; }
.alm-stempel svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.alm-stempel img { position: absolute; left: 23%; top: 23%; width: 54%; height: 54%; }
@media (max-width: 767px) {
	.elementor-widget.alm-stempel { left: -6px; bottom: -30px; width: 112px; }
	.alm-stempel .alm-stempel-innen { width: 112px; height: 112px; }
}

/* Texte */
.alm-mass-34 { max-width: 34ch; }
.alm-mass-40 { max-width: 40ch; }
.alm-mass-60 { max-width: 60ch; }
.alm-mass-34 p:last-child, .alm-mass-40 p:last-child, .alm-text p:last-child { margin-bottom: 0; }
.alm-text p { margin: 0 0 1em; }
.alm-liste ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.alm-liste li { padding-left: 16px; position: relative; }
.alm-liste li::before { content: ""; position: absolute; left: 0; top: .78em; width: 8px; height: 1.5px; background: var(--alm-gold); }

/* Buttons als unterstrichene Textlinks */
.alm-link-button .elementor-button {
	background: transparent !important;
	padding: 6px 0 !important;
	border-radius: 0 !important;
	text-decoration: underline;
	text-underline-offset: 6px;
	text-decoration-color: var(--alm-gold);
	text-decoration-thickness: 1.5px;
}
.alm-link-button .elementor-button:hover { text-decoration-color: currentColor; }

/* Jahreskalender */
.alm-kalender { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; font-weight: 600; font-size: 14px; text-align: center; color: var(--alm-rauch); }
.alm-kalender span { padding: 10px 0; border: 1.5px solid var(--alm-holz); }
.alm-kalender .aktiv { background: var(--alm-rauch); border-color: var(--alm-rauch); color: var(--alm-gold); }
@media (max-width: 767px) {
	.alm-kalender { grid-template-columns: repeat(6, minmax(0, 1fr)); font-size: 13px; }
}

/* Jahreszeiten-Zeilen */
.alm-zeilen { border-top: 2px solid var(--alm-rauch); }
.alm-zeile { border-bottom: 1px solid #8A6A45; }
a.alm-zeile, a.alm-zeile:hover { color: inherit; }
a.alm-zeile:hover .elementor-heading-title { text-decoration: underline; text-underline-offset: 6px; }

/* Wintertafel */
.alm-tafel { border: 14px solid var(--alm-holz); outline: 1px solid var(--alm-rinde); outline-offset: -22px; }
.alm-tafel-spalte + .alm-tafel-spalte { border-left: 1px dashed #6B5440; }
@media (max-width: 1024px) {
	.alm-tafel { border-width: 8px; outline-offset: -14px; }
	.alm-tafel-spalte + .alm-tafel-spalte { border-left: 0; border-top: 1px dashed #6B5440; }
}

/* Reservierungszettel (Elementor-Pro-Formular) */
.alm-zettel {
	background: var(--alm-schnee);
	border-radius: 2px;
	box-shadow: 0 2px 0 #B8976B, 0 18px 40px rgba(30, 22, 17, .18);
	padding: 44px 40px 36px;
	position: relative;
}
.alm-zettel::before { content: ""; position: absolute; left: 0; right: 0; top: 14px; border-top: 2px dashed var(--alm-kraft); }
.alm-zettel .elementor-field-label { font-weight: 600; font-size: 15px; color: var(--alm-rauch); }
.alm-zettel .elementor-field-textual,
.alm-zettel .elementor-field-group .elementor-select-wrapper select {
	border: 0 !important;
	border-bottom: 1.5px solid var(--alm-holz) !important;
	border-radius: 0 !important;
	background: transparent !important;
	padding: 12px 2px !important;
	color: var(--alm-rauch) !important;
}
.alm-zettel .elementor-field-option label, .alm-zettel .elementor-acceptance-field + label { color: var(--alm-holz); font-size: 15px; }
.alm-zettel input[type="checkbox"] { accent-color: var(--alm-gluehwein); width: 18px; height: 18px; }
.alm-zettel .elementor-button { background: var(--alm-gluehwein) !important; color: var(--alm-schnee) !important; }
@media (max-width: 767px) { .alm-zettel { padding: 36px 20px 28px; } }

/* Häufige Fragen (Toggle) */
.alm-faq .elementor-toggle-item { border-bottom: 1px solid var(--alm-rinde); }
.alm-faq .elementor-toggle .elementor-tab-title { border: 0; padding: 22px 0; font-weight: 600; }
.alm-faq .elementor-toggle .elementor-tab-content { border: 0; padding: 0 0 22px; max-width: 60ch; }
.alm-faq .elementor-toggle { border-top: 1px solid var(--alm-rinde); }

/* Kopfzeile */
.alm-header .elementor-nav-menu--main .elementor-item { padding-left: 0; padding-right: 0; }
.alm-header .elementor-nav-menu--main .elementor-item.elementor-item-anchor.elementor-item-active { color: var(--alm-gold); }

/* Links auf Kraftpapier dunkel, im Footer in Kraftpapier */
.alm-grain a { color: var(--alm-rauch); }
.alm-grain a:hover { color: var(--alm-gluehwein); }
.elementor-location-footer a, .alm-footer a { color: var(--alm-kraft); }
.elementor-location-footer a:hover, .alm-footer a:hover { color: var(--alm-schnee); }

/* Jahreszeiten: Spalte für den Namen fest */
.alm-zeile > .elementor-widget-heading { flex: 0 0 170px; width: 170px; }
@media (max-width: 767px) {
	.alm-zeile > .elementor-widget-heading { flex: 1 1 auto; width: auto; }
	.alm-zeile > .elementor-widget-text-editor:nth-child(2) { order: 3; flex: 1 1 100%; }
}
.alm-faq .elementor-toggle-icon svg { width: 14px; height: 14px; }
.alm-zeile > .elementor-widget-text-editor:nth-child(2) { min-width: 0; }
@media (min-width: 768px) { .alm-zeile > .elementor-widget-text-editor:nth-child(2) { flex: 1 1 0; } }
