/**

 * FINAL layout width — single source of truth for the whole site.

 * Desktop rules: @media (min-width: 992px) only.

 * Mobile rules: @media (max-width: 991px) only — never leak to desktop.

 */



/* WordPress wp_die / broken HTML guard — body must span full viewport width */

html body,

html body#error-page {

	max-width: none !important;

	width: 100% !important;

	margin: 0 !important;

	padding-left: 0 !important;

	padding-right: 0 !important;

}



/* Breadcrumb bar — same spacing as blog (clear fixed header, no clipped text) */

.ap-breadcrumb-bar {

	padding: 14px 0 16px !important;

	overflow: visible !important;

}

.ap-breadcrumb-bar .ap-page-shell {

	display: flex;

	align-items: center;

	min-height: 28px;

	overflow: visible !important;

}

.ap-breadcrumb-bar .ap-breadcrumb-list {

	line-height: 1.5 !important;

	overflow: visible !important;

}

.ap-breadcrumb-bar .ap-breadcrumb-item {

	overflow: visible !important;

	align-items: center;

}



/* ── Desktop (≥992px) ── */

@media (min-width: 992px) {

	html body [data-ap-shell="1"],

	html body .ap-page-shell,

	html body .ap-header-inner.ap-page-shell,

	html body .banner_outer .container,

	html body .footer-con .ap-page-shell {

		width: 100% !important;

		max-width: 1400px !important;

		margin-left: auto !important;

		margin-right: auto !important;

		padding-left: 30px !important;

		padding-right: 30px !important;

		box-sizing: border-box !important;

	}



	html body.ap-unified-layout .banner_outer,

	html body.ap-unified-layout .sub_banner,

	html body.ap-unified-layout .ap-page-heading,

	html body.ap-unified-layout .ap-page-heading__inner,

	html body.ap-unified-layout .sub_banner_con,

	html body.ap-unified-layout .ap-breadcrumb-bar,

	html body.ap-unified-layout .aboutpage-con,

	html body.ap-unified-layout .committed-con,

	html body.ap-unified-layout .faq-con,

	html body.ap-unified-layout .case-con,

	html body.ap-unified-layout .practice-con,

	html body.ap-unified-layout .violence-con,

	html body.ap-unified-layout .contact-con,

	html body.ap-unified-layout .ap-mv-hero,

	html body.ap-unified-layout .ap-svc-detail-content,

	html body.ap-unified-layout .ap-mv-related,

	html body.ap-unified-layout .ap-services-hub-grid-section,

	html body.ap-unified-layout .ap-service-cta,

	html body.ap-unified-layout .ap-services-page-cta,

	html body.ap-unified-layout .ap-services-page-seo,

	html body.ap-unified-layout .seo.aboutpage-con,

	html body.ap-unified-layout .blogpage-section,

	html body.ap-unified-layout .singleblog-section,

	html body.ap-unified-layout .footer-con,

	html body.ap-unified-layout .ap-service-single,

	html body.ap-service-route .ap-page-heading,

	html body.ap-service-route .sub_banner,

	html body.ap-service-route .sub_banner_con,

	html body.ap-service-route .ap-breadcrumb-bar,

	html body.ap-service-route .aboutpage-con,

	html body.ap-service-route .ap-service-single,

	html body.ap-service-route .ap-mv-hero,

	html body.ap-service-route .ap-svc-detail-content,

	html body.ap-service-route .ap-mv-related,

	html body.ap-service-route .faq-con,

	html body.ap-service-route .ap-services-hub-grid-section,

	html body.ap-service-route .ap-service-cta,

	html body.ap-service-route .ap-services-page-seo,

	html body.ap-service-route .case-con,

	html body.ap-service-route .practice-con,

	html body.ap-service-route .seo.aboutpage-con,

	html body.ap-mv-payments-page .ap-mv-hero,

	html body.ap-mv-payments-page .ap-breadcrumb-bar,

	html body.ap-mv-payments-page .aboutpage-con,

	html body.ap-mv-payments-page .ap-mv-related,

	html body.ap-mv-payments-page .faq-con,

	html body.ap-mv-payments-page .case-con,

	html body.ap-mv-payments-page .practice-con,

	html body.ap-mv-payments-page .seo.aboutpage-con {

		width: 100% !important;

		max-width: none !important;

	}



	html body.ap-unified-layout .ap-page-heading__intro,

	html body.ap-unified-layout .sub_banner .sub_banner_con p,

	html body.ap-unified-layout .sub_banner_content,

	html body.ap-service-route .ap-page-heading__intro,

	html body.ap-service-route .sub_banner .sub_banner_con p,

	html body.ap-service-route .sub_banner_content {

		max-width: none !important;

		width: 100% !important;

	}



	html body.ap-unified-layout .aboutpage-con .about_content,

	html body.ap-service-route .aboutpage-con .about_content,

	html body.ap-service-route .ap-service-single .about_content {

		max-width: none !important;

		width: 100% !important;

		text-align: left !important;

		padding-left: 0 !important;

		padding-right: 0 !important;

	}



	html body.ap-service-route .aboutpage-con .about_content ul {

		width: auto !important;

		max-width: none !important;

		margin-left: 0 !important;

		margin-right: 0 !important;

	}



	html body.ap-unified-layout .ap-svc-detail-content__inner,

	html body.ap-service-route .ap-svc-detail-content__inner {

		max-width: none !important;

		width: 100% !important;

	}



	html body.ap-unified-layout .ap-mv-hero__copy,

	html body.ap-service-route .ap-mv-hero__copy {

		max-width: none !important;

		width: 100% !important;

	}



	html body.ap-unified-layout .ap-page-shell .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),

	html body.ap-unified-layout .ap-page-shell .wp-block-post-content > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {

		max-width: none !important;

		width: 100% !important;

	}



	html body .ap-page-shell .container,

	html body .ap-page-shell > .container {

		max-width: 100% !important;

		width: 100% !important;

		padding-left: 0 !important;

		padding-right: 0 !important;

		margin-left: 0 !important;

		margin-right: 0 !important;

	}

}



/* ── Phone / tablet (≤991px) — scoped, does not affect desktop ── */

@media (max-width: 991px) {

	html body [data-ap-shell="1"],

	html body .ap-page-shell,

	html body .ap-breadcrumb-bar .ap-page-shell,

	html body .sub_banner_con .ap-page-shell,

	html body .aboutpage-con .ap-page-shell,

	html body .ap-header-inner.ap-page-shell {

		width: 100% !important;

		max-width: 100% !important;

		margin-left: auto !important;

		margin-right: auto !important;

		padding-left: 20px !important;

		padding-right: 20px !important;

		box-sizing: border-box !important;

	}

}



body.ap-mv-payments-page .ap-mv-hero__photo,

.ap-mv-hero.ap-svc-detail-hero .ap-mv-hero__photo {

	transform: none !important;

}



/* Service routes — compact, tidy blocks (hero, text, cards) */

@media (min-width: 992px) {

	body.ap-service-route .ap-mv-hero,

	body.ap-mv-payments-page .ap-mv-hero {

		padding-top: 32px !important;

		padding-bottom: 36px !important;

	}

	body.ap-service-route .ap-mv-hero .row,

	body.ap-mv-payments-page .ap-mv-hero .row {

		align-items: flex-start !important;

	}

	body.ap-service-route .aboutpage-con > .ap-page-shell > .row,

	body.ap-service-route .aboutpage-con > .container > .row {

		align-items: flex-start !important;

	}

	body.ap-service-route .aboutpage-con .about_wrapper {

		padding-top: 38px;

	}

	body.ap-service-route .aboutpage-con .about_content {

		padding-top: 38px !important;

	}

	body.ap-service-route .ap-mv-hero__content h1,

	body.ap-mv-payments-page .ap-mv-hero__content h1 {

		margin-bottom: 14px;

	}

	body.ap-service-route .ap-mv-intro__text {

		margin-bottom: 18px;

	}

	body.ap-service-route .ap-svc-detail-content,

	body.ap-service-route .aboutpage-con.ap-service-single,

	body.ap-mv-payments-page .aboutpage-con {

		padding-top: 36px !important;

		padding-bottom: 40px !important;

	}

	body.ap-service-route .ap-svc-detail-content--secondary {

		padding-bottom: 44px !important;

	}

	body.ap-service-route .ap-mv-related,

	body.ap-service-route .ap-services-hub-grid-section,

	body.ap-mv-payments-page .ap-mv-related {

		padding-top: 44px !important;

		padding-bottom: 48px !important;

	}

	body.ap-service-route .ap-mv-related__title,

	body.ap-service-route .ap-services-hub-grid__title {

		margin-bottom: 24px;

	}

	body.ap-service-route .ap-mv-related__grid,

	body.ap-service-route .ap-services-hub-grid {

		gap: 16px;

	}

	body.ap-service-route .ap-mv-related__link,

	body.ap-service-route .ap-services-hub-grid__link {

		padding: 18px 16px 16px;

		aspect-ratio: 1.05 / 1;

	}

	body.ap-service-route .ap-mv-related__name {

		padding-top: 48px;

		font-size: 13px;

	}

	body.ap-service-route .ap-services-hub-grid .ap-mv-related__name {

		padding-top: 62px;

		font-size: 16.8px !important;

	}

	body.ap-service-route:not(.ap-mv-payments-page) .ap-mv-hero__photo {

		max-width: 360px;

		width: 100%;

		margin-left: auto;

	}

	body.ap-service-route .ap-service-children-list {

		margin-top: 1.25rem;

		padding-top: 1.25rem;

	}

	body.ap-service-route .ap-service-children-list .service-hub-list {

		display: grid;

		grid-template-columns: repeat(2, minmax(0, 1fr));

		gap: 10px 24px;

		margin: 0;

		padding: 0;

		list-style: none;

	}

	body.ap-service-route .ap-service-children-list .service-hub-list li {

		margin: 0;

	}

}



@media (max-width: 991px) {

	body.ap-service-route .ap-service-children-list .service-hub-list {

		grid-template-columns: 1fr;

		gap: 8px;

	}

}



@media (min-width: 992px) {

	body.ap-mv-payments-page .ap-mv-hero__photo {

		max-width: 360px !important;

		width: 100% !important;

	}

	body.ap-mv-payments-page .ap-mv-about .about_wrapper {

		max-width: 36% !important;

	}

}



/* L2 service detail hero photo — not full column width (pension, military lawyer, etc.) */

@media (min-width: 992px) {

	body.ap-service-route:not(.ap-mv-payments-page) .ap-svc-detail-hero .ap-mv-hero__photo {

		max-width: 360px !important;

		width: 100% !important;

		margin-left: auto !important;

		margin-right: 0 !important;

	}

}



/* Footer CTA overlap — reserve gap so text above is never covered */

.footer-con {

	margin-top: calc(var(--ap-footer-cta-overlap) + var(--ap-footer-cta-gap));

}

.footer-con .upper_portion {

	margin-top: calc(-1 * var(--ap-footer-cta-overlap));

}

@media (max-width: 1440px) {

	:root {

		--ap-footer-cta-overlap: 68px;

	}

}

@media (max-width: 991px) {

	:root {

		--ap-footer-cta-overlap: 80px;

	}

}

