/* Sanfte Mobil-Optimierung - greift nur auf Smartphones (Bootstrap xs), Desktop/Tablet bleiben unveraendert */
@media (max-width: 767px) {
	body {
		font-size: 16px;
		line-height: 1.5;
	}

	/* Header: Logo links, Menue-Icon rechts in einer Zeile */
	#header {
		margin-bottom: 0;
	}
	#logo .siteLogoText {
		width: 78%;
		margin-top: 15px;
		margin-bottom: 10px;
	}
	.menu_over {
		position: static;
		margin: 0;
		padding: 0;
		max-width: none;
	}
	.menu_over .menu_open {
		position: absolute;
		top: 12px;
		right: 15px;
		min-width: 44px;
		min-height: 44px;
		text-align: center;
	}
	.menu_over .menu_open .icon {
		font-size: 28px;
	}
	.menu_over .menu_open span {
		display: none;
	}
	.menu_over .menu {
		width: 100%;
		border-top: 1px solid #ffd001;
		border-bottom: 1px solid #ffd001;
	}
	.menu_over .menu li {
		padding: 0;
	}
	.menu_over .menu li a {
		display: block;
		padding: 12px 0;
	}

	/* Texte */
	.homeHeader {
		font-size: 28px!important;
		line-height: 1.2;
	}
	.homeHeader br {
		display: none;
	}
	.homeText {
		font-size: 16px;
		line-height: 1.55;
	}
	.top-textblock {
		margin-bottom: 25px;
	}
	.top-textblock h2 {
		font-size: 28px!important;
		line-height: 1.2;
	}
	.top-textblock p {
		font-size: 17px;
	}

	/* Buttons: groessere Tippflaeche, Registrieren als Hauptaktion hervorgehoben */
	.rb2 {
		height: 48px;
		line-height: 44px;
		font-size: 16px;
	}
	#btns-row {
		margin-top: 10px;
	}
	.clear[style*="height: 75px"] {
		height: 40px!important;
	}

	/* Registrierungsformular */
	.sfForm {
		padding: 15px 0;
	}
	#regFormContainer {
		height: auto;
		min-height: 0;
	}
	.sfForm p.introduction {
		font-size: 16px;
		font-weight: normal;
		line-height: 1.5;
	}
	.sfForm form {
		margin-top: 15px;
	}
	.sfForm label {
		float: none;
		display: block;
		width: auto;
		margin: 0 0 4px;
		padding: 0;
		font-size: 15px;
	}
	.sfForm .form-element {
		padding-top: 6px;
		padding-bottom: 6px;
	}
	.sfForm .form-element div.divider {
		float: none;
	}
	.sfForm input[type="text"],
	.sfForm input[type="email"],
	.sfForm input[type="tel"],
	.sfForm input.InputPLZ,
	.sfForm input.InputOrt {
		width: 100%;
		height: 46px;
		margin: 0;
		padding: 8px 12px;
		font-size: 16px;
		border: 1px solid #bfbfbf;
		border-radius: 6px;
		-webkit-appearance: none;
		appearance: none;
	}
	.sfForm input:focus {
		border-color: #004b98;
		outline: none;
		box-shadow: 0 0 0 3px rgba(0, 75, 152, .15);
	}
	.sfForm .form-element .divider + .divider {
		margin-top: 12px;
	}

	/* Codes: Felder mit Abstand, Plus als beschrifteter Button */
	.form-element .codes {
		display: flex;
		gap: 8px;
		width: 100%;
		margin: 0;
	}
	.form-element .codes + .codes,
	.form-element .codes.row2 {
		margin-top: 8px;
	}
	.form-element .codes input {
		flex: 1 1 0;
		min-width: 0;
		max-width: none;
		text-align: center;
		text-transform: uppercase;
		letter-spacing: 1px;
		border-width: 2px!important;
	}
	.form-element .codes input.error {
		border-color: red!important;
	}
	.left_margin {
		margin-left: 0;
	}
	.form-element.over_code .add .plus {
		position: static;
		margin-top: 12px;
		padding: 10px;
		font-size: 16px;
		font-weight: bold;
		text-align: center;
		border: 2px dashed #bfbfbf;
		border-radius: 6px;
		color: #004b98;
	}
	.form-element.over_code .add .plus .plusText {
		display: inline;
		margin-left: 6px;
	}

	/* Checkboxen: groesser, Text neben der Box (ganze Zeile antippbar) */
	.sfForm .terms-container label {
		display: flex;
		align-items: flex-start;
		gap: 10px;
		margin-bottom: 12px;
		font-weight: normal;
		cursor: pointer;
	}
	.sfForm .terms-container input[type="checkbox"] {
		float: none!important;
		flex: 0 0 auto;
		width: 22px;
		height: 22px;
		margin: 0;
	}
	.sfForm .termsText {
		position: static;
		float: none!important;
		line-height: 1.4;
	}

	/* Absenden: volle Breite, gleiche Optik wie Hauptbutton */
	.sfForm .form-element-right {
		float: none;
		width: 100%;
	}
	.sfForm input[type="submit"] {
		float: none;
		width: 100%;
		height: 50px;
		margin: 10px 0 0;
		border: 2px solid #004b98;
		border-radius: 6px;
		background: #004b98;
		color: #fff;
		font-size: 17px;
		-webkit-appearance: none;
		appearance: none;
	}
	span.closeButton {
		float: none;
		width: 100%;
		margin-right: 0;
	}

	/* Gewinn-Code pruefen (mobil) */
	#checkCodeMobile .lblShort {
		width: auto!important;
	}
	#checkCodeMobile .txtShort {
		width: 100%!important;
		margin: 0;
	}
	#checkCodeMobile .btnCheck {
		float: none!important;
		width: 100%;
		height: 48px!important;
		line-height: 44px!important;
		margin-top: 10px;
	}

	/* Adventkalender: 4 Spalten, kompakter */
	.adventCalendar {
		gap: 9px;
		margin-bottom: 40px;
		padding: 12px;
		border-radius: 12px;
	}
	.door,
	.door .doorPanel {
		border-radius: 8px;
	}
	.door .doorPanel {
		font-size: 30px;
	}
	.door .doorInside {
		font-size: 18px;
	}
	.door.isToday::after {
		top: -7px;
		right: -4px;
		padding: 1px 6px;
		font-size: 9px;
	}
	.top-textblock h3 {
		font-size: 22px;
	}

	/* Gewinne: horizontal wischbar statt sehr langer Liste */
	#gewinneNeu > div {
		width: 100%;
		margin-bottom: 0;
		padding: 0;
	}
	#gewinneNeu > div > .row {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;
		margin: 0;
		padding: 0 7% 10px;
		gap: 12px;
		scrollbar-width: none;
	}
	#gewinneNeu > div > .row::-webkit-scrollbar {
		display: none;
	}
	#gewinneNeu > div > .row > div {
		flex: 0 0 78%;
		scroll-snap-align: center;
		float: none;
		padding: 15px 10px;
		border: 1px solid #f0e3a3;
		border-radius: 10px;
	}
	#gewinneNeu .imgGewinn {
		max-width: 75%;
		height: auto;
	}
	#gewinneNeu p {
		margin: 10px 0;
	}

	/* Sponsoren: einheitliche Kacheln */
	#partners-block {
		display: flex;
		flex-wrap: wrap;
	}
	#partners-block > .clearfix {
		display: none!important;
	}
	#partners-block > div {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 50%;
		height: 90px;
		padding: 8px 12px;
	}
	#partners-block > div img {
		width: auto;
		max-width: 100%;
		max-height: 74px;
	}

	/* Popups (Impressum, AGB, Datenschutz): fast volle Breite */
	.fancybox-slide--html {
		padding: 10px 8px;
	}
	.fancybox-slide--html .fancybox-content {
		width: 100%;
		min-width: 0;
	}
	#impressum span.text,
	#agb span.text,
	#datenschutz span.text {
		padding: 18px 16px;
	}
	.fancybox-slide--html .fancybox-content h1,
	.fancybox-slide--html .fancybox-content h2 {
		font-size: 22px!important;
		line-height: 1.25;
		overflow-wrap: break-word;
		-webkit-hyphens: auto;
		hyphens: auto;
	}

	/* Footer */
	.footer-strip {
		margin-left: 0;
		padding: 16px 18px!important;
		font-size: 15px;
		line-height: 1.5;
	}
	.footer-strip h3 {
		font-size: 15px;
		line-height: 1.4;
	}
	.footer-strip h3 br {
		display: none;
	}
	.logo-footer,
	.footer-links {
		width: 100%;
		text-align: center;
	}
	.logo-footer img {
		max-width: 90px;
	}
	.footer-links {
		margin-top: 15px;
	}
	.footer-links a {
		display: inline-block;
		padding: 10px 6px;
		font-size: 15px;
	}
	.footer-links br {
		display: none;
	}
	.footerMadeBy {
		margin-top: 15px;
		text-align: center;
	}
	.footerMadeBy .bytext {
		margin-right: 8px;
		line-height: 30px;
	}
	.footerMadeBy img {
		height: 26px;
		vertical-align: middle;
	}
}
