/*
 * Unified responsive layer for Faltgut.
 * Loaded after the component and WooCommerce styles so mobile behavior stays
 * consistent across regular pages, managed areas and shop surfaces.
 */

html {
	scroll-padding-top: 178px;
}

body {
	overflow-wrap: break-word;
}

button,
input,
select,
textarea {
	max-width: 100%;
}

.entry-content img,
.entry__content img,
.woocommerce img {
	height: auto;
}

.entry-content table,
.entry__content table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.entry-content pre,
.entry__content pre {
	max-width: 100%;
	overflow-x: auto;
}

@media (max-width: 1100px) {
	html {
		scroll-padding-top: 94px;
	}

	html.has-mobile-navigation,
	html.has-mobile-navigation body {
		overflow: hidden;
	}

	.site-header::after {
		background: rgba(8, 47, 67, 0.34);
		content: "";
		inset: var(--fg-mobile-nav-top, 74px) 0 0;
		opacity: 0;
		pointer-events: none;
		position: fixed;
		transition: opacity 160ms ease;
		z-index: 101;
	}

	html.has-mobile-navigation .site-header::after {
		opacity: 1;
		pointer-events: auto;
	}

	.site-navigation--mobile {
		-webkit-overflow-scrolling: touch;
		border-bottom: 1px solid var(--fg-color-line);
		inset: var(--fg-mobile-nav-top, 74px) 0 auto;
		max-height: calc(100dvh - var(--fg-mobile-nav-top, 74px));
		overscroll-behavior: contain;
		padding-block: 18px max(24px, env(safe-area-inset-bottom));
		position: fixed;
		z-index: 102;
	}

	.primary-menu--mobile a {
		min-height: 54px;
	}

	.mobile-navigation__utilities a,
	.mobile-navigation__cta {
		min-height: 48px;
	}

	.hub-card:hover,
	.hub-card:focus-visible,
	.hub-more:hover,
	.hub-more:focus-visible,
	.woocommerce ul.products li.product:hover {
		transform: none;
	}
}

@media (max-width: 820px) {
	:root {
		--fg-gutter: 28px;
	}

	.container {
		padding-left: max(var(--fg-gutter), env(safe-area-inset-left));
		padding-right: max(var(--fg-gutter), env(safe-area-inset-right));
	}

	.section {
		padding-block: 68px;
	}

	.section__header {
		margin-bottom: 38px;
	}

	.section__header--split {
		align-items: start;
	}

	.hero h1 {
		font-size: clamp(3.7rem, 10vw, 5rem);
	}

	.page-hero h1,
	.area-hero h1,
	.entry__title,
	.page-header__title {
		font-size: clamp(2.8rem, 8vw, 3.65rem);
	}

	.hub-grid,
	.post-grid {
		gap: 20px;
	}

	.hub-card__body {
		padding: 23px;
	}

	.process-list li {
		min-height: 0;
	}

	.site-footer__main {
		gap: 46px 34px;
	}

	.woocommerce div.product {
		gap: 34px;
	}
}

@media (max-width: 700px) {
	:root {
		--fg-gutter: 20px;
	}

	html {
		scroll-padding-top: 82px;
	}

	body {
		font-size: 16px;
		line-height: 1.58;
	}

	h1,
	h2,
	h3,
	.hero h1,
	.page-hero h1,
	.area-hero h1,
	.entry__title,
	.page-header__title,
	.more-page-hero h1 {
		hyphens: auto;
		overflow-wrap: anywhere;
	}

	h1 {
		font-size: clamp(2.4rem, 11vw, 2.9rem);
	}

	h2 {
		font-size: clamp(1.85rem, 8vw, 2.2rem);
	}

	.container {
		padding-left: max(var(--fg-gutter), env(safe-area-inset-left));
		padding-right: max(var(--fg-gutter), env(safe-area-inset-right));
	}

	.section {
		padding-block: 56px;
	}

	.section--content {
		padding-block: 46px 60px;
	}

	.section__header {
		margin-bottom: 30px;
	}

	.section__header h2 {
		margin-bottom: 13px;
	}

	.section__header > p:last-child,
	.custom-work__content > p:not(.eyebrow),
	.workshop-section__content > p:not(.eyebrow) {
		font-size: 1rem;
	}

	.eyebrow {
		font-size: 0.72rem;
		margin-bottom: 10px;
	}

	.button-link,
	.wp-element-button,
	.button,
	button.button,
	input[type="submit"] {
		min-height: 50px;
		touch-action: manipulation;
	}

	.site-header {
		box-shadow: 0 5px 18px rgba(8, 47, 67, 0.08);
	}

	.site-header__main-inner {
		gap: 8px;
		min-height: 68px;
	}

	.site-branding__link,
	.site-branding__custom,
	.custom-logo-link {
		gap: 8px;
	}

	.site-branding__logo,
	.custom-logo {
		height: 46px;
		width: 46px;
	}

	.site-header__actions {
		gap: 4px;
	}

	.header-action,
	.menu-toggle {
		height: 44px;
		justify-content: center;
		min-height: 44px;
		min-width: 44px;
		width: 44px;
	}

	.header-action .fg-icon {
		height: 23px;
		width: 23px;
	}

	.cart-count {
		right: -8px;
		top: -7px;
	}

	.site-navigation--mobile {
		padding-top: 14px;
	}

	.product-search--mobile {
		margin-bottom: 12px;
	}

	.product-search {
		height: 48px;
	}

	.primary-menu--mobile a {
		font-size: 1.02rem;
		min-height: 52px;
	}

	.mobile-navigation__utilities {
		padding-top: 16px;
	}

	.mobile-navigation__utilities a {
		align-items: center;
		display: inline-flex;
		font-size: 0.94rem;
	}

	.mobile-navigation__cta {
		margin-top: 16px;
		padding: 13px 15px;
	}

	.hero,
	.hero__inner {
		min-height: min(700px, calc(100svh - 68px));
	}

	.hero__inner {
		align-items: flex-end;
	}

	.hero__content {
		padding-block: 54px 46px;
	}

	.hero h1 {
		font-size: clamp(2.85rem, 14vw, 3.45rem);
		line-height: 0.98;
	}

	.hero__statement {
		font-size: clamp(1.42rem, 7vw, 1.7rem);
		line-height: 1.2;
		margin-bottom: 16px;
	}

	.hero__lead {
		font-size: 1rem;
		line-height: 1.62;
	}

	.hero__actions {
		gap: 9px;
		margin-top: 24px;
	}

	.hero__proof {
		font-size: 0.88rem;
		padding-top: 18px;
	}

	.hero--has-image::before {
		background: linear-gradient(180deg, rgba(6, 40, 56, 0.42) 0%, rgba(6, 40, 56, 0.9) 64%, rgba(6, 40, 56, 0.97) 100%);
	}

	.hero__media img {
		object-position: center center;
	}

	.page-hero,
	.area-hero {
		padding-block: 46px;
	}

	.area-hero--has-image {
		min-height: 360px;
	}

	.area-hero--has-image .container {
		align-content: end;
		display: grid;
		min-height: 268px;
	}

	.area-hero--has-image::before {
		background: linear-gradient(180deg, rgba(6, 40, 56, 0.35), rgba(6, 40, 56, 0.92));
	}

	.page-hero h1,
	.area-hero h1,
	.entry__title,
	.page-header__title {
		font-size: clamp(2.35rem, 11vw, 2.8rem);
	}

	.page-hero p:last-child,
	.area-hero .container > p:last-of-type {
		font-size: 1rem;
		line-height: 1.62;
	}

	.area-hero__action {
		justify-self: stretch;
		margin-top: 22px;
		width: 100%;
	}

	.area-breadcrumbs,
	.page-breadcrumb,
	.woocommerce-breadcrumb {
		line-height: 1.5;
		margin-bottom: 20px;
	}

	.hub-grid,
	.post-grid {
		gap: 18px;
	}

	.hub-card__media,
	.hub-card--featured .hub-card__media {
		aspect-ratio: 3 / 2;
	}

	.hub-card__body,
	.hub-card--featured .hub-card__body {
		min-height: 0;
		padding: 21px 20px 22px;
	}

	.hub-card--compact .hub-card__body {
		min-height: 0;
	}

	.hub-card h3,
	.hub-card.hub-card--featured h3 {
		font-size: 1.28rem;
		margin-bottom: 9px;
	}

	.hub-card p {
		font-size: 0.92rem;
		line-height: 1.55;
		margin-bottom: 18px;
	}

	.hub-card__status {
		left: 12px;
		padding: 6px 9px;
		top: 12px;
	}

	.hub-more {
		padding: 22px 21px 22px 25px;
	}

	.hub-more h3 {
		font-size: 1.4rem;
	}

	.service-highlights__grid > div {
		min-height: 76px;
		padding-block: 20px;
	}

	.custom-work__inner,
	.workshop-section__inner,
	.split-section {
		gap: 34px;
	}

	.custom-work__content .button-link,
	.process-section__action .button-link,
	.workshop-section__actions .button-link,
	.footer-cta .button-link,
	.inquiry-band .button-link {
		width: 100%;
	}

	.custom-work__list {
		padding-left: 20px;
	}

	.custom-work__list li {
		font-size: 0.94rem;
		padding-block: 13px;
	}

	.process-list {
		border-left: 2px solid var(--fg-color-line);
		gap: 0;
		margin-left: 7px;
		padding-left: 27px;
	}

	.process-list li,
	.process-list li + li {
		border-top: 0;
		min-height: 0;
		padding: 0 0 34px;
	}

	.process-list li:last-child {
		padding-bottom: 0;
	}

	.process-list li::before,
	.process-list li + li::before {
		border: 4px solid #ffffff;
		height: 14px;
		left: -35px;
		top: 2px;
		width: 14px;
	}

	.process-list li > span {
		margin-bottom: 9px;
	}

	.process-list h3 {
		margin-bottom: 8px;
	}

	.process-list p {
		margin-bottom: 0;
	}

	.process-section__action {
		margin-top: 30px;
	}

	.workshop-section__actions {
		align-items: stretch;
		display: grid;
		gap: 12px;
	}

	.workshop-section__actions .text-link {
		justify-content: center;
		min-height: 44px;
	}

	.workshop-section__meta {
		gap: 10px;
		margin-top: 26px;
	}

	.workshop-map__canvas {
		aspect-ratio: 4 / 5;
		contain: paint;
		max-width: 100%;
		min-height: 360px;
		min-width: 0;
		overflow: clip;
		width: 100%;
	}

	.workshop-map,
	.workshop-section__inner {
		max-width: 100%;
		min-width: 0;
		width: 100%;
	}

	.workshop-map__location {
		max-width: calc(100% - 32px);
	}

	.workshop-map__marker {
		height: 48px;
		left: 70%;
		top: 49%;
		width: 48px;
	}

	.workshop-map__status {
		left: 16px;
		max-width: none;
		right: 16px;
	}

	.workshop-map__consent .cmplz-consent-area {
		align-items: flex-end;
		justify-content: stretch;
	}

	.workshop-map__consent .cmplz-consent-area > a,
	.workshop-map__consent .cmplz-blocked-content-notice {
		text-align: center;
		width: 100%;
	}

	.area-gallery--showcase {
		padding-block: 56px;
	}

	.area-gallery__header {
		margin-bottom: 28px;
	}

	.area-gallery figcaption {
		padding: 11px 13px 13px;
	}

	.area-inquiry__brief {
		border-radius: var(--fg-radius-sm);
		margin-bottom: 26px;
		overflow: hidden;
	}

	.area-inquiry__brief li {
		padding: 17px 18px;
	}

	.sunshade-planning__grid {
		border: 0;
		gap: 10px;
	}

	.sunshade-planning__grid li,
	.sunshade-planning__grid li + li,
	.sunshade-planning__grid li:nth-child(3) {
		background: var(--fg-color-surface-muted);
		border: 1px solid var(--fg-color-line);
		border-radius: var(--fg-radius-sm);
		padding: 20px;
	}

	.inquiry-page__grid {
		gap: 46px;
	}

	.inquiry-page__aside {
		border-top: 1px solid var(--fg-color-line);
		padding-top: 34px;
	}

	.inquiry-contact {
		margin-top: 28px;
		padding: 20px;
	}

	.more-page-hero {
		padding-top: 58px;
	}

	.more-page-hero h1 {
		font-size: clamp(2.45rem, 12vw, 2.9rem);
	}

	.more-page-hero__scope {
		margin-top: 42px;
	}

	.more-service-card {
		padding: 22px;
	}

	.more-page-inquiry {
		padding-block: 54px;
	}

	.footer-cta {
		padding-block: 42px;
	}

	.footer-cta__inner {
		gap: 26px;
	}

	.footer-cta h2 {
		font-size: 1.8rem;
	}

	.site-footer__main {
		gap: 38px 24px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding-block: 48px;
	}

	.site-footer__brand,
	.site-footer__contact {
		grid-column: 1 / -1;
	}

	.site-footer__brand > p {
		max-width: 520px;
	}

	.site-footer__column h2 {
		margin-bottom: 16px;
	}

	.footer-menu {
		gap: 11px;
	}

	.footer-menu a,
	.legal-menu a,
	.contact-list a {
		display: inline-flex;
		min-height: 32px;
	}

	.site-footer__legal-row {
		gap: 14px;
		padding-block: 20px max(22px, env(safe-area-inset-bottom));
	}

	.legal-menu {
		gap: 8px 16px;
	}

	.nav-links,
	.woocommerce-pagination ul.page-numbers {
		flex-wrap: wrap;
	}
}

@media (max-width: 560px) {
	.section--shop,
	.section--product {
		padding-block: 32px 58px;
	}

	.page-header--shop {
		margin-bottom: 26px;
		padding: 22px 18px;
	}

	.page-header--shop .page-header__title,
	.woocommerce div.product .product_title {
		font-size: clamp(1.9rem, 9vw, 2.2rem);
	}

	.woocommerce ul.products,
	.section--products .woocommerce ul.products,
	.area-products .woocommerce ul.products {
		gap: 28px 12px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce ul.products li.product img,
	.area-products .woocommerce ul.products li.product img {
		padding: 6px;
	}

	.woocommerce-loop-product__title,
	.area-products .woocommerce-loop-product__title {
		font-size: 0.9rem;
		overflow-wrap: anywhere;
	}

	.woocommerce ul.products li.product .button,
	.area-products .woocommerce ul.products li.product .button {
		font-size: 0.76rem;
		min-height: 44px;
	}

	.woocommerce div.product div.images .flex-control-thumbs {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.woocommerce div.product .summary {
		padding-top: 21px;
	}

	.woocommerce div.product p.price,
	.woocommerce div.product span.price {
		font-size: 1.35rem;
		margin-bottom: 18px;
	}

	.woocommerce div.product form.cart:not(.variations_form),
	.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
		display: grid;
		grid-template-columns: 66px minmax(0, 1fr);
	}

	.woocommerce div.product form.cart .single_add_to_cart_button {
		min-width: 0;
		width: 100%;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs {
		gap: 22px;
		overflow-x: auto;
		scrollbar-width: thin;
		-webkit-overflow-scrolling: touch;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li {
		flex: 0 0 auto;
	}

	.woocommerce div.product .related,
	.woocommerce div.product .upsells {
		padding-top: 42px;
	}

	.woocommerce div.product .related > h2,
	.woocommerce div.product .upsells > h2 {
		font-size: 1.65rem;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: flex;
		gap: 6px;
		min-width: max-content;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation li {
		flex: 0 0 auto;
	}

	.woocommerce table.shop_table_responsive tr td,
	.woocommerce-page table.shop_table_responsive tr td {
		min-height: 46px;
	}

	.wc-block-components-sidebar-layout,
	.wc-block-cart .wc-block-components-sidebar-layout,
	.wc-block-checkout .wc-block-components-sidebar-layout {
		display: block !important;
	}

	.wc-block-components-main,
	.wc-block-components-sidebar {
		padding-inline: 0 !important;
		width: 100% !important;
	}

	.wc-block-components-sidebar {
		margin-top: 30px !important;
	}

	.wc-block-cart-items td,
	.wc-block-cart-items th {
		padding-inline: 8px !important;
	}

	.wc-block-components-button {
		min-height: 50px !important;
	}

	.wc-block-components-text-input input,
	.wc-block-components-combobox .wc-block-components-combobox-control input,
	.wc-block-components-address-form select {
		font-size: 16px !important;
	}

	.wc-block-components-order-summary-item__image {
		width: 56px !important;
	}
}

@media (max-width: 430px) {
	:root {
		--fg-gutter: 16px;
	}

	.site-branding__logo,
	.custom-logo {
		height: 43px;
		width: 43px;
	}

	.site-header__actions {
		gap: 1px;
	}

	.header-action,
	.menu-toggle {
		min-width: 42px;
		width: 42px;
	}

	.hero__content {
		padding-block: 46px 38px;
	}

	.hero h1 {
		font-size: clamp(2.65rem, 15vw, 3.05rem);
	}

	.hero__proof li {
		align-items: flex-start;
	}

	.page-hero,
	.area-hero {
		padding-block: 40px;
	}

	.area-holding {
		padding-block: 48px 56px;
	}

	.area-holding h1 {
		font-size: clamp(2.15rem, 12vw, 2.55rem);
	}

	.area-holding__panel {
		padding: 26px 20px;
	}

	.hub-card__body,
	.hub-card--featured .hub-card__body {
		padding: 19px 18px 20px;
	}

	.workshop-map__canvas {
		min-height: 340px;
	}

	.workshop-map__location {
		font-size: 0.9rem;
		padding: 12px 14px;
	}

	.site-footer__main {
		grid-template-columns: 1fr;
	}

	.site-footer__brand,
	.site-footer__contact {
		grid-column: auto;
	}

	.footer-brand {
		font-size: 1.4rem;
	}

	.legal-menu {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
	}

	.legal-menu a {
		align-items: center;
	}

	.woocommerce ul.products,
	.section--products .woocommerce ul.products,
	.area-products .woocommerce ul.products {
		gap: 26px 10px;
	}

	.woocommerce ul.products li.product .button,
	.area-products .woocommerce ul.products li.product .button {
		font-size: 0.72rem;
		padding-inline: 4px;
	}

	.woocommerce-price-suffix {
		line-height: 1.25;
	}
}

@media (max-width: 360px) {
	.site-branding__logo,
	.custom-logo {
		height: 40px;
		width: 40px;
	}

	.header-action,
	.menu-toggle {
		min-width: 39px;
		width: 39px;
	}

	.hero__actions .button-link,
	.more-page-hero__actions .button-link {
		padding-inline: 0.9rem;
	}

	.woocommerce-loop-product__title,
	.area-products .woocommerce-loop-product__title {
		font-size: 0.84rem;
	}

	.woocommerce ul.products li.product .price,
	.area-products .woocommerce ul.products li.product .price {
		font-size: 0.88rem;
	}
}

@media (hover: none) and (pointer: coarse) {
	.hub-card:hover,
	.hub-more:hover,
	.woocommerce ul.products li.product:hover,
	.button-link:hover,
	.button:hover,
	input[type="submit"]:hover {
		transform: none;
	}

	a,
	button,
	input,
	select,
	textarea {
		-webkit-tap-highlight-color: rgba(47, 145, 173, 0.16);
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}
