/**
 * Schache – responsive overrides
 * Breakpoints: 981 / 781 / 520 / 390
 */

/* --------------------------------------------------------------------------
   Tablet (≤ 981px)
   -------------------------------------------------------------------------- */

@media (max-width: 981px) {
	/* Brand row: allow wrap so logo + badge + crosslinks fit */
	.schache-header-brandrow .wp-block-group.alignwide.is-layout-flex,
	.schache-header-brandrow .wp-block-group.alignwide {
		flex-wrap: wrap !important;
		row-gap: 0.75rem;
		column-gap: 0.75rem;
	}

	.schache-crosslinks {
		flex-wrap: wrap !important;
		justify-content: flex-end;
		gap: 0.5rem !important;
	}

	.schache-jubilee-badge--header {
		width: clamp(3.5rem, 8vw, 5rem);
	}

	/* Footer / kontakt: stack early (WP columns often stay 3-col on tablet) */
	.schache-footer-columns {
		flex-direction: column !important;
		gap: 1.75rem !important;
	}

	.schache-footer-columns > .wp-block-column {
		/* flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100% !important; */
	}

	.schache-kontakt__grid {
		flex-direction: column !important;
		gap: 1.5rem !important;
	}

	.schache-kontakt__grid > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.schache-kontakt__map,
	.schache-kontakt__map iframe {
		min-height: 18rem;
		width: 100%;
	}

	/* Portal: stack a bit earlier than style.css 900px for iPad portrait */
	.schache-portal-cards,
	.schache-portal-hours__grid,
	.schache-portal-news__grid {
		grid-template-columns: 1fr;
	}

	.schache-portal-cards {
		gap: 2rem;
		padding: 0 1rem 2rem;
	}

	.schache-portal-column {
		display: flex;
		flex-direction: column;
		grid-row: auto;
		grid-template-rows: none;
	}

	.schache-portal-card__head {
		min-height: 0;
		padding-left: 1.15rem;
		padding-right: 1.15rem;
	}

	.schache-portal-card__media {
		aspect-ratio: 4 / 3;
	}

	.schache-portal-hours__grid,
	.schache-portal-news__grid {
		padding-left: 1rem;
		padding-right: 1rem;
		box-sizing: border-box;
	}

	.schache-portal-hero .schache-portal-intro {
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}
}

/* --------------------------------------------------------------------------
   Mobile / small tablet (≤ 781px)
   -------------------------------------------------------------------------- */

@media (max-width: 781px) {
	/* ---- Header brand row ---- */
	.schache-header-brandrow {
		padding-top: 0.85rem !important;
		padding-bottom: 0.85rem !important;
		padding-left: 0.85rem !important;
		padding-right: 0.85rem !important;
	}

	.schache-header-brandrow .schache-brand-logo img {
		width: 64px !important;
		height: auto !important;
	}

	.schache-crosslinks img {
		width: 40px !important;
	}

	.schache-jubilee-badge--header {
		width: 3.75rem;
		margin-right: 0;
	}

	.schache-brand-logo a:hover img,
	.schache-brand-logo a:focus-visible img,
	.schache-crosslinks a:hover img,
	.schache-crosslinks a:focus-visible img {
		transform: none;
	}

	/* ---- Nav bar + Ballonze-style drawer menu ---- */
	.schache-nav-bar {
		flex-wrap: nowrap !important;
		justify-content: flex-start !important;
		align-items: center !important;
		gap: 0.35rem !important;
		padding-left: 0.5rem !important;
		padding-right: 0.5rem !important;
	}

	.schache-nav-bar .wp-block-navigation {
		flex: 0 0 auto;
		min-width: 0;
		order: 1;
	}

	.schache-nav-bar .schache-portal-link {
		margin-left: auto;
		order: 2;
	}

	.schache-nav-bar .schache-portal-link a {
		white-space: normal;
		line-height: 1.15;
		text-align: center;
	}

	.schache-nav-bar .wc-block-mini-cart {
		flex: 0 0 auto;
		order: 3;
	}

	/* Hide always-visible desktop list when overlay mode is active */
	.schache-nav-bar .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}

	/* --- Hamburger (3 bars), white on brand bar --- */
	.schache-nav-bar .wp-block-navigation__responsive-container-open {
		position: relative;
		z-index: 5;
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		margin: 0;
		padding: 0 !important;
		border: 0;
		background: transparent;
		color: #fff !important;
		cursor: pointer;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container-open svg {
		display: none !important;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container-open::before,
	.schache-nav-bar .wp-block-navigation__responsive-container-open::after {
		content: "";
		position: absolute;
		left: 50%;
		width: 26px;
		height: 2px;
		margin-left: -13px;
		background: #fff;
		border-radius: 1px;
		transition: transform 0.35s cubic-bezier(0.84, 0.06, 0.52, 1.8), opacity 0.25s ease;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container-open::before {
		transform: translateY(-7px);
		box-shadow: 0 7px 0 #fff;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container-open::after {
		transform: translateY(7px);
	}

	/* --- Overlay backdrop + left drawer --- */
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open {
		display: block !important;
		position: fixed !important;
		inset: 0 !important;
		z-index: 100040 !important;
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
		padding: 0 !important;
		margin: 0 !important;
		background: rgba(0, 0, 0, 0.28) !important;
		overflow: hidden !important;
		opacity: 1;
		transition: opacity 0.35s ease;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open.is-closing {
		opacity: 0;
		pointer-events: none;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
		position: relative;
		z-index: 1;
		height: 100%;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		position: absolute !important;
		top: 0 !important;
		left: 0 !important;
		right: auto !important;
		bottom: 0 !important;
		display: flex !important;
		flex-direction: column !important;
		width: min(86vw, 360px) !important;
		max-width: min(86vw, 360px) !important;
		height: 100% !important;
		max-height: 100dvh !important;
		margin: 0 !important;
		padding: 0 !important;
		background: #fff !important;
		box-shadow: 12px 0 40px rgba(0, 0, 0, 0.18);
		overflow-x: hidden !important;
		overflow-y: auto !important;
		scrollbar-width: none;
		-ms-overflow-style: none;
		transform: translateX(0);
		animation: schache-nav-drawer-in 0.55s cubic-bezier(0.62, 0.04, 0.3, 1.56) both;
		transition: transform 0.35s ease;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog::-webkit-scrollbar {
		display: none;
		width: 0;
		height: 0;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open.is-closing .wp-block-navigation__responsive-dialog {
		animation: none !important;
		transform: translateX(-100%);
		transition: transform 0.35s ease !important;
	}

	@keyframes schache-nav-drawer-in {
		from {
			transform: translateX(-100%);
			opacity: 0.4;
		}
		to {
			transform: translateX(0);
			opacity: 1;
		}
	}

	/* Close (X) top-right inside drawer */
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position: absolute !important;
		top: 0.65rem !important;
		right: 0.65rem !important;
		left: auto !important;
		z-index: 3;
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0 !important;
		border: 0;
		background: transparent;
		color: var(--schache--color--brand, #c20e1a) !important;
		cursor: pointer;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
		width: 28px;
		height: 28px;
		fill: currentColor;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		width: 100%;
		max-width: 100%;
		padding: 3.25rem 1rem 2.5rem !important;
		box-sizing: border-box;
		overflow-x: hidden;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 0.15rem !important;
		width: 100%;
		max-width: 100%;
		margin: 0;
		padding: 0;
		list-style: none;
		box-sizing: border-box;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		background: transparent !important;
		background-color: transparent !important;
		box-sizing: border-box;
	}

	/* Top-level + submenu links – clean pills, no desktop gray panels */
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item a.wp-block-navigation-item__content {
		display: block !important;
		width: fit-content !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0.55rem 0.75rem !important;
		box-sizing: border-box !important;
		color: var(--schache--color--brand, #c20e1a) !important;
		background: transparent !important;
		background-color: transparent !important;
		font-size: 1.2rem !important;
		font-weight: 700 !important;
		letter-spacing: 0.02em !important;
		line-height: 1.25 !important;
		text-align: left !important;
		text-decoration: none !important;
		text-transform: uppercase !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
		hyphens: auto;
		transition: background-color 0.2s ease, color 0.2s ease;
	}

	/* Top-level hover / active (not submenu) */
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:focus-visible,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content {
		background: var(--schache--color--brand, #c20e1a) !important;
		background-color: var(--schache--color--brand, #c20e1a) !important;
		color: #fff !important;
	}

	/* Submenus: always open, indented, white panel */
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		position: static !important;
		top: auto !important;
		left: auto !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		height: auto !important;
		max-height: none !important;
		visibility: visible !important;
		opacity: 1 !important;
		overflow: visible !important;
		pointer-events: auto !important;
		margin: 0 !important;
		padding: 0.1rem 0 0.35rem 0.85rem !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		background: transparent !important;
		background-color: transparent !important;
		color: inherit !important;
		gap: 0.1rem !important;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item a.wp-block-navigation-item__content {
		font-size: 0.95rem !important;
		font-weight: 700 !important;
		padding: 0.45rem 0.7rem !important;
		color: var(--schache--color--brand, #c20e1a) !important;
		background: transparent !important;
		background-color: transparent !important;
	}

	/* Submenu hover + active – match desktop dropdown (#636463) */
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item:hover,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item:focus-within,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item.current-menu-item,
	body .schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content,
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .current-menu-item > a.wp-block-navigation-item__content {
		background: #636463 !important;
		background-color: #636463 !important;
		color: #fff !important;
	}

	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__label {
		display: inline !important;
		width: auto !important;
		font-weight: 700 !important;
	}

	/* Hide submenu chevron in drawer – items stay expanded */
	.schache-nav-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
		display: none !important;
	}

	html.has-modal-open,
	html.has-modal-open body,
	html.schache-mobile-nav-open,
	html.schache-mobile-nav-open body {
		overflow: hidden !important;
	}

	/* ---- Portal ---- */
	.schache-portal-hero {
		padding: 2rem 1rem 1.5rem;
	}

	.schache-portal-hero h1,
	.schache-portal-hero .schache-portal-welcome {
		font-size: clamp(2.4rem, 11vw, 3rem);
	}

	.schache-portal-hero .schache-portal-intro {
		padding: 0 0.25rem;
	}

	.schache-portal-card__cta,
	.schache-news__button {
		white-space: normal;
		text-align: center;
		max-width: calc(100% - 1.5rem);
		line-height: 1.25;
	}

	/* Jubilee badge on news: stop absolute overflow when stacked */
	.schache-jubilee-badge--news {
		position: static;
		display: block;
		width: 5.5rem;
		margin: 0 auto 0.85rem;
		top: auto;
		left: auto;
	}

	.schache-news__item--jubilee {
		padding-top: 0.25rem;
	}

	/* ---- Section homes ---- */
	.schache-maerit-home__grid,
	.schache-dorfbach-home__grid,
	.schache-biohof-home__grid {
		gap: 1.5rem !important;
	}

	/* ---- Woo ---- */
	.schache-product-layout {
		flex-direction: column !important;
	}

	.schache-product-layout > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.schache-product-grid .wc-block-product-template,
	.schache-product-grid ul.wc-block-product-template {
		gap: 1.25rem !important;
	}

	.schache-product-grid .wc-block-product-template__responsive {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	/* ---- Global content padding ---- */
	.wp-site-blocks > main,
	.schache-section-main,
	.schache-woo-main {
		padding-left: max(0px, env(safe-area-inset-left));
		padding-right: max(0px, env(safe-area-inset-right));
	}

	.entry-content > .alignwide,
	.entry-content > .alignfull,
	.wp-block-group.alignwide,
	.wp-block-columns.alignwide {
		padding-left: 0;
		padding-right: 0;
	}

	/* Extra breathing room if global padding is missing / overridden */
	.schache-section-main:not(.has-global-padding),
	.schache-maerit-home,
	.schache-dorfbach-home,
	.schache-biohof-home,
	.schache-woo-main .entry-content,
	.schache-geschenkkoerbe-intro,
	.schache-team-grid,
	.schache-lieferanten {
		padding-left: max(1rem, env(safe-area-inset-left));
		padding-right: max(1rem, env(safe-area-inset-right));
		box-sizing: border-box;
	}

	.schache-section-main.has-global-padding .schache-maerit-home,
	.schache-section-main.has-global-padding .schache-dorfbach-home,
	.schache-section-main.has-global-padding .schache-biohof-home {
		padding-left: 0;
		padding-right: 0;
	}

	/* Negative pull-up images: disable on small screens */
	figure.img-up,
	.wp-block-image.img-up {
		margin-top: 0 !important;
		margin-block-start: 0 !important;
	}

	/* Kontakt: less empty bottom padding on phone */
	.schache-kontakt {
		padding-bottom: 5rem;
		background-size: 100% 100%, cover;
	}

	.schache-kontakt__map,
	.schache-kontakt__map iframe {
		min-height: 16rem;
	}
}

/* --------------------------------------------------------------------------
   Phone (≤ 520px)
   -------------------------------------------------------------------------- */

@media (max-width: 520px) {
	/* Brand row: logo above, crosslinks centered below */
	.schache-header-brandrow .wp-block-group.alignwide.is-layout-flex,
	.schache-header-brandrow .wp-block-group.alignwide {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		row-gap: 0.65rem;
	}

	.schache-crosslinks {
		justify-content: center !important;
		width: 100%;
	}

	.schache-portal-hero h1,
	.schache-portal-hero .schache-portal-welcome {
		font-size: clamp(2.1rem, 12vw, 2.6rem);
		line-height: 1.05;
	}

	.schache-portal-card__logo {
		width: min(220px, 70%);
	}

	.schache-portal-card__head {
		padding: 1.35rem 1rem 1.25rem;
	}

	.schache-portal-card__cta {
		padding: 0.6rem 1rem;
		font-size: var(--wp--preset--font-size--portal-buttons, 0.8rem);
	}

	/* Product grid → 1 col */
	.schache-product-grid .wc-block-product-template__responsive,
	.schache-product-grid .wc-block-product-template.is-flex-container {
		grid-template-columns: 1fr !important;
	}

	.schache-product-grid .wc-block-product-template.is-flex-container > li {
		width: 100% !important;
		max-width: 100% !important;
	}

	.schache-product-card .wp-block-button__link,
	.schache-product-card .wc-block-components-product-button__button {
		width: 100%;
		text-align: center;
		white-space: normal;
	}

	.schache-team-grid {
		max-width: 20rem;
		margin-left: auto;
		margin-right: auto;
		row-gap: 2rem;
	}

	/* CF7: single-column choices + full-width submit */
	.wpcf7 form .wpcf7-checkbox,
	.wpcf7 form .wpcf7-radio {
		grid-template-columns: 1fr;
	}

	.wpcf7 form .wpcf7-list-item.has-free-text {
		flex-wrap: wrap;
		align-items: center;
		gap: 0.35rem;
	}

	.wpcf7 form .wpcf7-list-item.has-free-text .wpcf7-free-text {
		min-width: 0;
		max-width: 100%;
		width: 100%;
		margin-left: 0;
	}

	.schache-cf7 input[type="submit"],
	.wpcf7 form input[type="submit"] {
		width: 100%;
	}

	.schache-lieferanten__summary {
		padding: 0.85rem 1rem;
		gap: 0.65rem;
	}

	.schache-lieferanten__title {
		min-width: 0;
		overflow-wrap: anywhere;
	}

	.schache-lieferanten__panel-inner {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.schache-checkout-main {
		padding-left: 1rem;
		padding-right: 1rem;
		box-sizing: border-box;
		overflow-x: hidden;
	}

	.schache-footer {
		padding-left: 1rem;
		padding-right: 1rem;
		box-sizing: border-box;
	}
}

/* --------------------------------------------------------------------------
   Small phone (≤ 390px)
   -------------------------------------------------------------------------- */

@media (max-width: 390px) {
	.schache-header-brandrow {
		padding-left: 0.65rem !important;
		padding-right: 0.65rem !important;
	}

	.schache-header-brandrow .schache-brand-logo img {
		width: 56px !important;
	}

	.schache-crosslinks {
		gap: 0.35rem !important;
	}

	.schache-crosslinks img {
		width: 36px !important;
	}

	.schache-jubilee-badge--header {
		width: 3.25rem;
	}

	.schache-nav-bar .schache-portal-link a {
		padding: 0.55rem 0.35rem;
		font-size: 0.68rem;
	}

	.schache-portal-hours__grid,
	.schache-portal-news__grid {
		padding-left: 0.75rem;
		padding-right: 0.75rem;
	}

	.schache-kontakt {
		padding-bottom: 3.5rem;
	}

	.schache-kontakt__map,
	.schache-kontakt__map iframe {
		min-height: 14rem;
	}

	/* Prevent accidental horizontal scroll */
	body {
		overflow-x: clip;
	}

	.wp-site-blocks,
	.schache-portal {
		overflow-x: clip;
	}
}
