/* ==========================================================================
   PICOS — Global responsive layer (load last)
   ========================================================================== */

/* Product hub hero — fluid type & layout */
.picos-hero {
	min-height: auto;
}

.picos-hero__title {
	font-size: clamp(2.125rem, 2.8vw + 1rem, 3.25rem);
	letter-spacing: -0.02em;
}

.picos-home-hero__title {
	font-size: var(--font-hero);
	letter-spacing: -0.02em;
}

.picos-hero__inner {
	min-height: auto;
}

@media (min-width: 1440px) {
	.picos-hero__title {
		font-size: clamp(2.5rem, 2vw + 1.5rem, 3.625rem);
	}
}

@media (max-width: 1023px) {
	.picos-hero__inner {
		padding-top: 32px;
		padding-bottom: 40px;
	}

	.picos-hero__visual {
		min-height: 0;
	}

	.picos-hero__actions .btn,
	.picos-home-hero__actions .btn,
	.picos-cta__actions .btn,
	.picos-pcs-hub__configurator-actions .btn,
	.picos-mon-hub__configurator-actions .btn,
	.picos-sto-hub__configurator-actions .btn {
		width: 100%;
		white-space: normal;
	}

	.picos-hero__actions,
	.picos-home-hero__actions {
		flex-direction: column;
		align-items: stretch;
	}
}

@media (max-width: 767px) {
	.picos-hero__description,
	.picos-home-hero__description {
		max-width: none;
	}
}

/* Homepage grids */
@media (min-width: 1440px) {
	.picos-products__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) and (max-width: 1439px) {
	.picos-products__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	.picos-home-hero__categories {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: none;
	}

	.picos-products__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.picos-home-hero__categories {
		grid-template-columns: 1fr;
	}
}

/* Section headings */
.picos-section-heading__title {
	font-size: var(--font-h2);
}

@media (max-width: 767px) {
	.picos-section-heading {
		margin-bottom: 32px;
	}
}

/* Trust band */
.picos-trust {
	padding-block: clamp(40px, 6vw, 48px);
}

@media (max-width: 767px) {
	.picos-trust__inner {
		text-align: left;
	}
}

/* Advantages — 3 / 2 / 1 */
@media (min-width: 1024px) and (max-width: 1279px) {
	.picos-advantages__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Industries — 3 / 2 */
@media (min-width: 768px) and (max-width: 1023px) {
	.picos-industries__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* CTA */
.picos-cta {
	padding-block: clamp(48px, 8vw, 72px);
}

.picos-cta__title {
	font-size: var(--font-h2);
}

@media (max-width: 1023px) {
	.picos-cta__inner {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* Footer */
@media (max-width: 1279px) {
	.site-footer__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 32px 24px;
	}

	.site-footer__col--brand {
		grid-column: 1 / -1;
		max-width: none;
	}
}

@media (max-width: 767px) {
	.site-footer__main {
		padding: 48px 0 24px;
	}

	.site-footer__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.site-footer__social-link {
		width: var(--touch-target);
		height: var(--touch-target);
	}

	.site-footer__bar-inner {
		flex-direction: column;
		align-items: flex-start;
	}

	.site-footer__legal {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.site-footer__legal a {
		display: inline-block;
		padding-block: 6px;
	}
}

/* Sticky offset helpers */
.site-header + main,
.site-header ~ main {
	scroll-margin-top: var(--site-header-height);
}

/* Card images — transparent PNGs on white card surface */
.picos-product-card__image,
.picos-pcs-card__image,
.picos-mon-card__image,
.picos-sto-card__image,
.picos-category-card__image,
.picos-related-card__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

/* Touch: reduce hover lift on cards */
@media (hover: none) {
	.picos-category-card:hover,
	.picos-product-card:hover,
	.picos-pcs-card:hover,
	.picos-mon-card:hover,
	.picos-sto-card__link:hover {
		transform: none;
	}
}

/* Hub pages — shared breakpoints */
@media (max-width: 1023px) {
	.picos-pcs-hub__faq-inner,
	.picos-mon-hub__faq-inner,
	.picos-sto-hub__faq-inner {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.picos-pcs-hub__configurator-inner,
	.picos-mon-hub__configurator-inner,
	.picos-sto-hub__configurator-inner {
		flex-direction: column;
		align-items: flex-start;
		padding: 32px 24px;
	}
}

@media (max-width: 767px) {
	.picos-pcs-hub__grid--4,
	.picos-mon-hub__grid,
	.picos-sto-hub__grid--ssd,
	.picos-sto-hub__grid--flash {
		grid-template-columns: 1fr;
	}

	.picos-pcs-tech__grid,
	.picos-mon-tech__grid,
	.picos-sto-benefits__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.picos-pcs-apps__grid,
	.picos-mon-apps__grid,
	.picos-sto-apps__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.picos-pcs-resources__list,
	.picos-mon-resources__list,
	.picos-sto-resources__list {
		grid-template-columns: 1fr;
	}

	.picos-sto-hub__trust-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 479px) {
	.picos-pcs-tech__grid,
	.picos-mon-tech__grid,
	.picos-sto-benefits__grid {
		grid-template-columns: 1fr;
	}
}

/* Mobile navigation pass — forms, contact, Einsatzbereiche */
@media (max-width: 767px) {
	.picos-contact-hero__inner {
		grid-template-columns: minmax(0, 1fr);
	}

	.picos-contact-form input[type="text"],
	.picos-contact-form input[type="email"],
	.picos-contact-form input[type="tel"],
	.picos-contact-form textarea,
	.picos-contact-form select,
	.picos-downloads-page .picos-downloads-search__input {
		font-size: 16px;
		min-height: var(--touch-target);
	}

	.picos-einsatzgebiet-gallery__grid,
	.picos-einsatzgebiet-related__grid,
	.picos-einsatzgebiet-index__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.site-header__nav-panel {
		transition: none;
	}
}
