/* 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):not(.ibc-blog-card__image):not(.ibc-services-directions__image):not(.ibc-expert-card__image):not(.ibc-about-office__image),
.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 .ibc-expert-card__photo img,
.ibc-site img.ibc-expert-card__image,
.ibc-site .ibc-about-office__shot img,
.ibc-site img.ibc-about-office__image {
	max-width: none !important;
	max-height: none !important;
	width: 100%;
	height: 100% !important;
	object-fit: cover !important;
}

.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%;
	}
}

@media (max-width: 520px) {
	.ibc-analytics-card {
		padding: var(--ibc-space-24);
		border-radius: 16px;
	}
}

/* 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;
	}
}
