/* Cross-page fluid layout and overflow guards */

[class*='__container'] {
	width: 100%;
	min-width: 0;
}

.ibc-site img:not(.ibc-property__gallery-image):not(.ibc-hero__image):not(.ibc-header__logo-img):not(.ibc-event-banner__image):not(.ibc-ecosystem__banner-image):not(.ibc-projects-showcase__thumb-image):not(.ibc-clients__logo),
.ibc-site video,
.ibc-site svg:not(.ibc-header__logo-img):not(.ibc-footer__social-icon):not(.ibc-footer__icon) {
	max-width: 100%;
	height: auto;
}

.ibc-site iframe {
	max-width: 100%;
}

.entry-content,
.ibc-page__content,
.ibc-legal-page__content,
.ibc-seo-text__body,
.ibc-property__about {
	overflow-wrap: anywhere;
	word-break: break-word;
}

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

/* Generic WordPress pages (page.php) */
.ibc-page {
	background: var(--ibc-bg-page);
}

.ibc-page__article {
	padding: var(--ibc-section-padding-y) 0;
}

.ibc-page__header,
.ibc-page__content {
	max-width: var(--ibc-container-max);
	margin: 0 auto;
	padding: 0 var(--ibc-container-padding);
}

.ibc-page__title {
	margin: 0 0 var(--ibc-space-32);
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 700;
	line-height: 1.15;
	color: var(--ibc-text-primary);
}

.ibc-page__content {
	font-size: 16px;
	line-height: 1.6;
	color: var(--ibc-text-secondary);
}

/* Stacked primary actions on narrow screens */
@media (max-width: 640px) {
	.ibc-hero__actions,
	.ibc-error__actions,
	.ibc-about-contacts__actions,
	.ibc-team__actions,
	.ibc-projects__actions,
	.ibc-analytics-report__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.ibc-hero__actions .ibc-btn,
	.ibc-error__actions .ibc-btn,
	.ibc-about-contacts__actions .ibc-btn,
	.ibc-team__actions .ibc-btn,
	.ibc-projects__actions .ibc-btn,
	.ibc-analytics-report__actions .ibc-btn,
	.ibc-footer__cta {
		width: 100%;
	}
}

/* Analytics scope cards — stack on phones */
@media (max-width: 520px) {
	.ibc-analytics-scope .ibc-tasks__card {
		flex-direction: column;
		align-items: stretch;
	}

	.ibc-analytics-scope__media {
		flex-basis: auto;
		width: 100%;
		max-width: none;
	}

	.ibc-analytics-scope__image {
		width: 100%;
		max-height: none;
		aspect-ratio: 16 / 10;
		object-fit: cover;
	}

	.ibc-analytics-card {
		padding: var(--ibc-space-24);
		border-radius: 16px;
	}
}

/* Services sticky nav — full bleed scroll */
@media (max-width: 640px) {
	.ibc-services-nav__container {
		padding-inline: var(--ibc-container-padding-sm);
	}
}

/* Footer — tighter gutters on phones */
@media (max-width: 640px) {
	.ibc-footer__container {
		padding-inline: var(--ibc-container-padding-sm);
	}

	.ibc-footer__contact .ibc-btn {
		width: 100%;
	}
}

/* Legal pages — use site gutters */
@media (max-width: 640px) {
	.ibc-legal-page__container {
		padding-inline: var(--ibc-container-padding-sm);
	}

	.ibc-legal-page__content h2 {
		font-size: 18px;
	}
}

/* About — body copy scale-down */
@media (max-width: 640px) {
	.ibc-about-intro__body p,
	.ibc-about-workflow__step-text,
	.ibc-about-services__card-text {
		font-size: 16px;
	}
}

/* Homepage — unified container gutters on tablet/mobile */
@media (max-width: 1024px) {
	body.ibc-front-page-active #primary [class*='__container'] {
		padding-inline: var(--ibc-container-padding-sm);
	}

	body.ibc-front-page-active .ibc-hero__content {
		padding-inline: var(--ibc-container-padding-sm);
	}

	body.ibc-front-page-active .ibc-event-banner {
		--ibc-event-banner-carousel-padding: var(--ibc-container-padding-sm);
	}

	body.ibc-front-page-active .ibc-ecosystem {
		--ibc-ecosystem-carousel-padding: var(--ibc-container-padding-sm);
	}
}

/* Property / project detail — gallery and map */
@media (max-width: 640px) {
	.ibc-property__gallery-main {
		border-radius: 12px;
	}

	.ibc-property__map iframe,
	.ibc-property__map > div {
		min-height: 240px;
	}
}
