/**
 * BIZ Calgary canonical frontend breakpoint system.
 *
 * Desktop: 1025px and above.
 * Tablet:  768px through 1024px.
 * Mobile:  767px and below.
 *
 * Kadence can begin tablet rules at 720px. BIZ-specific components explicitly
 * own the 720-767px bridge so they remain in the BIZ mobile presentation.
 */

/* Desktop managed header: flexible brand plus intrinsic utility columns. */
@media (min-width: 1025px) {
	body.biz-header-components-managed .biz-managed-header-row__inner {
		grid-template-columns: minmax(260px, 1fr) max-content max-content;
		column-gap: 16px;
		row-gap: 8px;
	}

	body.biz-header-components-managed .biz-managed-header-row__contact,
	body.biz-header-components-managed .biz-managed-header-row__language {
		width: max-content;
		max-width: 100%;
		min-width: 0;
		padding-left: 14px;
		justify-self: start;
	}

	body.biz-header-components-managed .biz-managed-header-row__language {
		justify-self: end;
	}

	body.biz-header-components-managed .biz-managed-header-row .biz-header-contact {
		display: grid;
		grid-template-columns: max-content max-content max-content;
		align-items: center;
		gap: 10px;
		width: max-content;
		max-width: 100%;
	}

	body.biz-header-components-managed .biz-managed-header-row .biz-header-contact__item,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-contact__item a,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-donate {
		min-width: max-content;
		white-space: nowrap;
		word-break: normal;
		overflow-wrap: normal;
	}

	body.biz-header-components-managed .biz-managed-header-row .biz-header-language ul,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-language .biz-header-language-menu,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-language .gtranslate_wrapper,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-language .gt_switcher_wrapper,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-language .gt_languages {
		display: flex;
		flex-flow: row nowrap;
		align-items: center;
		justify-content: flex-end;
		width: max-content;
		max-width: 100%;
		gap: 5px;
	}

	body.biz-header-components-managed .biz-managed-header-row.no-contact.has-language .biz-managed-header-row__inner,
	body.biz-header-components-managed .biz-managed-header-row.has-contact.no-language .biz-managed-header-row__inner {
		grid-template-columns: minmax(340px, 1fr) max-content;
	}

	body.biz-header-components-managed .biz-managed-header-row.no-contact.no-language .biz-managed-header-row__inner {
		grid-template-columns: minmax(340px, 1fr);
	}
}

/* Smaller desktop: preserve intrinsic utilities and give all spare room to branding. */
@media (min-width: 1025px) and (max-width: 1279px) {
	body.biz-header-components-managed .biz-managed-header-row {
		padding: 10px 0;
	}

	body.biz-header-components-managed .biz-managed-header-row__inner {
		grid-template-columns: minmax(235px, 1fr) max-content max-content;
		column-gap: 10px;
		row-gap: 8px;
	}

	body.biz-header-components-managed .biz-managed-header-row__contact,
	body.biz-header-components-managed .biz-managed-header-row__language {
		min-height: 52px;
		padding-left: 10px;
	}

	body.biz-header-components-managed .biz-managed-header-row .biz-header-contact {
		gap: 7px;
		font-size: 11.5px;
	}

	body.biz-header-components-managed .biz-managed-header-row .biz-header-donate {
		min-height: 34px;
		padding: 6px 9px;
	}

	body.biz-header-components-managed .biz-managed-header-row .biz-header-language a,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-language .glink {
		min-height: 30px;
		padding: 5px 6px;
		font-size: 11.5px;
	}

	body.biz-header-components-managed .biz-managed-header-row__brand .custom-logo {
		max-height: 86px;
		transform: scale(1.05);
		transform-origin: left center;
	}
}

/* Wide desktop: increase breathing room without creating empty utility columns. */
@media (min-width: 1280px) {
	body.biz-header-components-managed .biz-managed-header-row__inner {
		grid-template-columns: minmax(320px, 1fr) max-content max-content;
		column-gap: 24px;
		row-gap: 8px;
	}

	body.biz-header-components-managed .biz-managed-header-row__contact {
		padding-left: 18px;
	}

	body.biz-header-components-managed .biz-managed-header-row .biz-header-contact {
		gap: 16px;
	}

	body.biz-header-components-managed .biz-managed-header-row .biz-header-language ul,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-language .biz-header-language-menu,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-language .gtranslate_wrapper,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-language .gt_switcher_wrapper,
	body.biz-header-components-managed .biz-managed-header-row .biz-header-language .gt_languages {
		gap: 6px;
	}

	body.biz-header-components-managed .biz-managed-header-row__brand .custom-logo {
		max-height: 90px;
		transform: scale(1.10);
		transform-origin: left center;
	}
}


/* 2.4.75 — subtle desktop surfaces for managed Contact and Language utilities. */
@media (min-width: 1025px) {
	body.biz-header-components-managed .biz-managed-header-row__contact,
	body.biz-header-components-managed .biz-managed-header-row__language {
		box-sizing: border-box;
		min-height: 60px;
		padding: 10px 14px;
		border: 1px solid #d8e4e9;
		border-radius: 10px;
		background: #f7fafb;
		box-shadow: 0 1px 4px rgba(20, 50, 60, .05);
	}
}

@media (min-width: 1025px) and (max-width: 1279px) {
	body.biz-header-components-managed .biz-managed-header-row__contact,
	body.biz-header-components-managed .biz-managed-header-row__language {
		min-height: 52px;
		padding: 8px 10px;
	}
}

/* Tablet article titles and mobile-header presentation. */
@media (min-width: 768px) and (max-width: 1024px) {
	body.single-post h1.entry-title,
	body.page:not(.biz-calgary-home-builder-page) h1.entry-title {
		font-size: 32px;
		line-height: 1.22;
	}

	html body.biz-hf-header-active #mobile-header .site-main-header-inner-wrap,
	html body.biz-hf-header-active #mobile-header .site-main-header-inner-wrap.site-header-row,
	html body.biz-hf-header-active #mobile-header .site-main-header-inner-wrap.site-header-row.site-header-row-no-center {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 44px;
		align-items: center;
		width: 100%;
		min-width: 0;
		max-width: none;
		min-height: 94px;
		column-gap: 8px;
	}

	html body.biz-hf-header-active #mobile-header .site-header-section-left,
	html body.biz-hf-header-active #mobile-header .site-header-section-left > .site-header-item,
	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding,
	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding a {
		min-width: 0;
		max-width: 100%;
		overflow: hidden;
	}

	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding img,
	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding .custom-logo {
		width: auto;
		max-width: min(calc(var(--biz-header-tablet-logo-width) + 56px), calc(100vw - 104px));
		max-height: 88px;
		transform: scale(1.08);
		transform-origin: left center;
	}

	html body.biz-hf-navigation-active #mobile-header .site-header-section-right,
	html body.biz-hf-navigation-active #mobile-header .site-header-section-right .site-header-item,
	html body.biz-hf-navigation-active #mobile-header .site-header-section-right .menu-toggle-open {
		width: 44px;
		min-width: 44px;
		max-width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
	}
}

/* Mobile article titles and final header geometry. */
@media (max-width: 767px) {
	body.single-post h1.entry-title,
	body.page:not(.biz-calgary-home-builder-page) h1.entry-title {
		font-size: 30px;
		line-height: 1.25;
	}

	html body.biz-hf-header-active #mobile-header .site-main-header-wrap .site-header-row-container-inner,
	html body.biz-hf-header-active #mobile-header .site-main-header-wrap .site-header-row-container-inner > .site-container {
		width: 100%;
		max-width: none;
		padding-right: 0;
		padding-left: 0;
	}

	html body.biz-hf-header-active #mobile-header .site-main-header-inner-wrap,
	html body.biz-hf-header-active #mobile-header .site-main-header-inner-wrap.site-header-row,
	html body.biz-hf-header-active #mobile-header .site-main-header-inner-wrap.site-header-row.site-header-row-no-center {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 44px;
		align-items: center;
		width: 100%;
		min-width: 0;
		max-width: none;
		min-height: 94px;
		padding: 5px 8px;
		column-gap: 6px;
		-webkit-text-size-adjust: 100%;
		text-size-adjust: 100%;
	}

	html body.biz-hf-header-active #mobile-header .site-header-section-left,
	html body.biz-hf-header-active #mobile-header .site-header-section-left > .site-header-item,
	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding,
	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding a {
		display: flex;
		align-items: center;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		margin: 0;
		padding: 0;
		overflow: hidden;
	}

	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding img,
	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding .custom-logo {
		display: block;
		width: auto;
		max-width: 100%;
		height: auto;
		max-height: 82px;
		margin: 0;
		object-fit: contain;
		object-position: left center;
	}

	html body.biz-hf-navigation-active #mobile-header .site-header-section-right,
	html body.biz-hf-navigation-active #mobile-header .site-header-section-right .site-header-item,
	html body.biz-hf-navigation-active #mobile-header .site-header-section-right .menu-toggle-open {
		position: static;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		min-width: 44px;
		max-width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
		transform: none;
		overflow: visible;
	}
}


/* 3.0.4 — protect the complete mobile logo from clipping beside the menu toggle.
   Reserve a small safety inset inside the brand track while preserving the
   source image aspect ratio and leaving tablet/desktop geometry unchanged. */
@media (max-width: 767px) {
	html body.biz-hf-header-active #mobile-header .site-main-header-inner-wrap,
	html body.biz-hf-header-active #mobile-header .site-main-header-inner-wrap.site-header-row,
	html body.biz-hf-header-active #mobile-header .site-main-header-inner-wrap.site-header-row.site-header-row-no-center {
		column-gap: 10px;
	}

	html body.biz-hf-header-active #mobile-header .site-header-section-left,
	html body.biz-hf-header-active #mobile-header .site-header-section-left > .site-header-item,
	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding,
	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding a {
		box-sizing: border-box;
		padding-inline-end: 4px;
	}

	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding img,
	html body.biz-hf-header-active #mobile-header .site-header-section-left .site-branding .custom-logo {
		width: calc(100% - 10px) !important;
		max-width: calc(100% - 10px) !important;
		height: auto !important;
		max-height: 76px;
		object-fit: contain;
		object-position: left center;
	}
}
