/* Shared spacing and content order for the stacked site layouts. */
.xfr-site .xfr-portfolio-filters__toggle[hidden],
.xfr-portfolio-filters__fields[hidden] { display: none; }

@media (max-width: 920px) {
	.xfr-site .xfr-section { padding-block: 64px; }
	.xfr-site .xfr-section-heading { margin-bottom: 32px; }
	.xfr-site .xfr-page-hero { padding-block: 64px 48px; }
	.xfr-site .xfr-page-hero h1 { font-size: clamp(32px, 5vw, 44px); }
	.xfr-site .xfr-page-hero__copy { font-size: 17px; }
	.xfr-site .xfr-page-hero__lead { font-size: clamp(21px, 3vw, 26px); }
	.xfr-site :is(h1, h2, h3, p, a) { overflow-wrap: break-word; }
	.xfr-site :is(.xfr-service-detail__summary, .xfr-service-detail__capabilities, .xfr-team-profile__content, .xfr-journal-lead__copy) { min-width: 0; }

	.xfr-home-feature { padding-bottom: 0; }
	.xfr-site .xfr-section.xfr-about { padding-block: 40px; }
	.xfr-about__grid { gap: 0; }
	.xfr-about__logo { display: none; }
	.xfr-site .xfr-about h2 { font-size: 26px; }
	.xfr-site .xfr-section.xfr-why { padding-block: 64px; }
	.xfr-why__grid { gap: 20px; }
	.xfr-why__grid article { padding: 26px; }
	.xfr-site .xfr-section.xfr-testimonials { padding-block: 64px; }
	.xfr-testimonials .xfr-section-heading { margin-bottom: 32px; }
	.xfr-testimonial { padding-inline: 12px; }

	.xfr-team-intro__grid { gap: 32px; }
	.xfr-team-profiles { gap: 72px; }
	.xfr-team-profile { gap: 28px; }
	.xfr-action-box { min-height: 0; padding-block: 64px; }
	.xfr-action-box__inner { grid-template-columns: 1fr; gap: 24px; }
	.xfr-action-box__buttons { flex-wrap: wrap; }
	.xfr-action-box__buttons .xfr-button { justify-content: center; }

	.xfr-service-detail__grid { row-gap: 28px; }
	.xfr-service-detail__capabilities { gap: 16px; }
	.xfr-service-detail__intro { margin-bottom: 24px; }
	.xfr-service-actions { margin-bottom: 0; }
	.xfr-service-actions .xfr-button { justify-content: center; }
	.xfr-service-testimonial { margin-top: 0; align-self: start; }

	.xfr-sector-case { padding-bottom: 64px; }
	.xfr-sector-case__header { padding-block: 28px; margin-bottom: 36px; }
	.xfr-sector-case--heading-only .xfr-sector-case__header { min-height: 0; }
	.xfr-sector-case__intro { margin-bottom: 32px; }
	.xfr-sector-block { padding-block: 36px; }
	.xfr-sector-block__summary { padding: 22px 20px; gap: 16px; }
	.xfr-sector-block__details > .xfr-sector-block__content { padding: 24px 20px; }
	.xfr-partner-group { padding-block: 64px; }
	.xfr-partner-group__heading { margin-bottom: 32px; }
	.xfr-partner-group__heading p { margin-top: 20px; }

	.xfr-journal-lead__grid { gap: 32px; }
	.xfr-journal-lead__image { min-height: 0; aspect-ratio: 16 / 10; }
	.xfr-journal-lead__copy > p { margin-bottom: 24px; }
	.xfr-site .xfr-article__header { padding-block: 64px 40px; }
	.xfr-site .xfr-article__header h1 { font-size: clamp(30px, 5vw, 42px); }
	.xfr-article__image { min-height: 0; aspect-ratio: 16 / 10; margin-top: 32px; }
	.xfr-article__body { width: min(860px, calc(100% - 36px)); padding-block: 48px; overflow-wrap: anywhere; }
	.xfr-article__footer { padding-bottom: 64px; gap: 24px; flex-wrap: wrap; }

	.xfr-contact-layout__grid { gap: 36px; }
	.xfr-map { height: 320px; margin-top: 28px; }
	.xfr-map-directions { min-height: 44px; }
	.xfr-contact-form-wrap form { margin-top: 24px; }
	.xfr-video-card { min-width: min(480px, calc(100vw - 60px)); }
	.xfr-video-card h3 { margin-top: 14px; }
	.xfr-rail-controls { margin-top: 24px; }
	.xfr-nav .xfr-nav__submenu a { display: flex; align-items: center; min-height: 44px; }
}

@media (max-width: 782px) {
	body.admin-bar .xfr-header { top: 46px; }
	body.admin-bar .xfr-nav,
	body.admin-bar .xfr-anchor-nav { top: 118px; }
}

@media (max-width: 640px) {
	.xfr-site .xfr-section { padding-block: 48px; }
	.xfr-site .xfr-section-heading { margin-bottom: 28px; }
	.xfr-site .xfr-page-hero { padding-block: 48px 40px; }
	.xfr-site .xfr-page-hero h1 { font-size: clamp(30px, 8vw, 38px); margin-bottom: 20px; }
	.xfr-site .xfr-page-hero__copy { font-size: 16px; line-height: 1.65; }
	.xfr-site .xfr-page-hero__lead { font-size: 21px; }
	.xfr-site .xfr-section.xfr-about { padding-block: 32px; }
	.xfr-site .xfr-about h2 { font-size: clamp(22px, 5.8vw, 26px); margin-bottom: 20px; }
	.xfr-about__audience { font-size: 17px; }
	.xfr-site .xfr-section.xfr-why,
	.xfr-site .xfr-section.xfr-testimonials { padding-block: 48px; }
	.xfr-why__grid article { padding: 24px 20px; }
	.xfr-testimonials .xfr-section-heading { margin-bottom: 28px; }
	.xfr-testimonial { padding-inline: 0; }
	.xfr-testimonial blockquote { font-size: 17px; }
	.xfr-testimonial-page { row-gap: 32px; }
	.xfr-testimonial-track { align-items: flex-start; }
	.xfr-testimonial-pages { transition: height .35s ease; }

	.xfr-home-slides__slide { width: calc(100% - 36px); }
	.xfr-home-hero__facts { min-height: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.xfr-home-hero__facts div { padding: 20px 8px; border-bottom: 0; border-right: 1px solid rgba(255, 255, 255, .1); }
	.xfr-home-hero__facts div:last-child { border-right: 0; }
	.xfr-home-hero__facts strong { font-size: 26px; }
	.xfr-home-hero__facts span { font-size: 12px; line-height: 1.45; letter-spacing: .02em; }
	.xfr-services-preview__photo { height: clamp(200px, 55vw, 320px); }
	.xfr-service-cards { margin: -40px 0 0; gap: 16px; }
	.xfr-service-card { padding: 24px 20px; }
	.xfr-sector-tile { min-height: 160px; }
	.xfr-team-profiles { gap: 56px; }
	.xfr-team-profile { gap: 24px; }
	.xfr-team-profile__portrait { width: min(100%, 300px); }
	.xfr-team-profile__bio p,
	.xfr-team-profile__bio ul { margin-bottom: 18px; }
	.xfr-action-box { padding-block: 48px; }
	.xfr-action-box__buttons .xfr-button { width: 100%; }
	.xfr-service-detail { padding-block: 40px; scroll-margin-top: 96px; }
	body.admin-bar .xfr-service-detail,
	body.admin-bar .xfr-sector-case { scroll-margin-top: 142px; }
	.xfr-site .xfr-service-detail__summary h2 { font-size: clamp(28px, 7.7vw, 34px); }
	.xfr-service-detail__intro { padding: 18px; border-radius: 14px; }
	.xfr-service-actions { gap: 10px; }
	.xfr-service-actions .xfr-button { flex: 1 1 140px; font-size: 13px; }
	.xfr-capability { padding: 18px; border-radius: 0 14px 14px 0; }
	.xfr-capability h3 { font-size: 21px; }

	.xfr-sector-case { padding-bottom: 48px; scroll-margin-top: 96px; }
	.xfr-sector-case__header { padding-block: 24px; margin-bottom: 28px; }
	.xfr-sector-case__header h2 { font-size: clamp(28px, 8vw, 36px); }
	.xfr-sector-block { padding-block: 28px; }
	.xfr-sector-block__summary { padding: 20px 18px; }
	.xfr-sector-block__summary h3 { font-size: 23px; }
	.xfr-sector-block__details > .xfr-sector-block__content { padding: 22px 18px; }
	.xfr-partner-group { padding-block: 48px; }
	.xfr-partner-group__heading { margin-bottom: 28px; }
	.xfr-logo-item { min-height: 104px; padding: 12px; }
	.xfr-journal-lead__grid { gap: 24px; }
	.xfr-journal-lead__image,
	.xfr-article__image { border-radius: 18px; }
	.xfr-site .xfr-journal-lead__copy h2 { margin-block: 16px 20px; font-size: 27px; }
	.xfr-journal-lead .xfr-button-row { gap: 16px; }
	.xfr-blog-grid { gap: 24px; }
	.xfr-blog-card__content { padding: 20px; }
	.xfr-site .xfr-article__header h1 { font-size: clamp(28px, 7.7vw, 36px); }
	.xfr-article__body :is(.alignleft, .alignright) { float: none; max-width: 100%; margin: 24px auto; }
	.xfr-article__footer { align-items: flex-start; padding-bottom: 48px; }
	.xfr-map { height: 300px; border-radius: 18px; }
	.xfr-contact-form-wrap .xfr-form-field input,
	.xfr-contact-form-wrap .xfr-form-field textarea { padding: 16px; }
	.xfr-legal__content { font-size: 16px; line-height: 1.75; }
	.xfr-legal__content p { margin-bottom: 20px; }
	.xfr-site .xfr-legal__content :is(h2, h3) { font-size: 24px; margin-block: 30px 16px; }
	.xfr-legal__content :is(ul, ol) { margin-block: 20px; padding-left: 22px; }

	.xfr-footer { padding-top: 48px; }
	.xfr-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; padding-bottom: 32px; }
	.xfr-footer__top > div:first-child { grid-column: 1 / -1; }
	.xfr-footer img { width: min(255px, 100%); margin-bottom: 18px; }
	.xfr-footer__top > div:first-child p { margin-bottom: 0; }
	.xfr-footer__label { margin-bottom: 12px; font-size: 13px; }
	.xfr-footer__top a { display: flex; align-items: center; min-height: 44px; margin: 0; font-size: 15px; }
	.xfr-footer__legal { gap: 4px 20px; padding-top: 12px; }
	.xfr-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; }

	.xfr-site .xfr-portfolio-filters__toggle {
		display: flex;
		width: 100%;
		min-height: 52px;
		padding: 12px 16px;
		border: 1px solid #bac8d9;
		border-radius: 10px;
		background: #fff;
		box-shadow: none;
		color: var(--xfr-ink);
		font: inherit;
		font-weight: 600;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		cursor: pointer;
	}
	.xfr-portfolio-filters__toggle[aria-expanded="true"] { margin-bottom: 20px; }
	.xfr-portfolio-filters__toggle-icon { width: 18px; height: 18px; flex-shrink: 0; transition: transform .2s ease; }
	.xfr-portfolio-filters__toggle[aria-expanded="true"] .xfr-portfolio-filters__toggle-icon { transform: rotate(180deg); }
	.xfr-site .xfr-portfolio-filters__toggle:focus-visible { outline: 2px solid var(--xfr-blue-bright); outline-offset: 4px; }
	.xfr-portfolio-filters__summary { margin-top: 16px; }
	.xfr-portfolio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.xfr-portfolio-card { min-height: 0; padding: 14px 10px; border-radius: 12px; }
	.xfr-portfolio-card__identity { min-height: 56px; margin-bottom: 12px; gap: 6px; }
	.xfr-portfolio-card__identity img { max-width: 100%; max-height: 48px; }
	.xfr-site .xfr-portfolio-card h2 { font-size: clamp(15px, 4.1vw, 17px); line-height: 1.3; }
	.xfr-portfolio-card__confidential { font-size: 13px; }
	.xfr-portfolio-card__capacity { margin-bottom: 12px; font-size: 18px; gap: 4px; }
	.xfr-portfolio-card__capacity > span:not(.screen-reader-text) { min-width: 0; overflow-wrap: anywhere; }
	.xfr-portfolio-card__capacity::before,
	.xfr-portfolio-card__capacity::after { min-width: 0; }
	.xfr-portfolio-card__description { margin-bottom: 14px; font-size: 14px; line-height: 1.5; }
	.xfr-portfolio-card__year { font-size: 16px; margin-bottom: 8px; }
	.xfr-portfolio-card__status { font-size: 13px; line-height: 1.4; }
	.xfr-site a.xfr-portfolio-card__read-more { width: 100%; min-height: 44px; margin-top: 6px; font-size: 13px; }
}

@media (max-width: 420px) {
	.xfr-portfolio-filters__fields { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.xfr-portfolio-filter label,
	.xfr-portfolio-filter__label { min-height: 0; margin-bottom: 8px; }
}

@media (max-width: 640px) and (prefers-reduced-motion: reduce) {
	.xfr-testimonial-pages { transition: none; }
}
