/* ==========================================================================
   Responsive overrides. Base styles are written for large screens with fluid
   type and spacing; these rules restructure grids at three breakpoints.
   ≤1100px  small laptop / large tablet landscape
   ≤1023px  tablet: mobile navigation
   ≤767px   phone: single column
   ========================================================================== */

@media (max-width: 1100px) {
	.site-nav { gap: var(--sp-4); }
	.site-nav .menu a { padding-inline: 0.55rem; }
	.carousel__track { --per-view: 2; }
}

/* Tablet + mobile navigation ----------------------------------------------- */
@media (max-width: 1023px) {
	:root { --header-h: 68px; }

	.nav-toggle { display: inline-flex; }

	.site-nav {
		position: fixed;
		inset: var(--header-h) 0 0 0;
		z-index: 99;
		display: block;
		margin: 0;
		padding: var(--sp-4) var(--gutter) var(--sp-7);
		overflow-y: auto;
		background: #fff;
		border-top: var(--border);
		visibility: hidden;
		opacity: 0;
		transform: translateY(-6px);
		transition: opacity 0.2s var(--ease), transform 0.2s var(--ease), visibility 0.2s;
	}
	.admin-bar .site-nav { inset-block-start: calc(var(--header-h) + 46px); }
	.site-nav.is-open { visibility: visible; opacity: 1; transform: none; }
	body.nav-open { overflow: hidden; }

	.site-nav .menu { display: block; }
	.site-nav .menu > li { display: flex; flex-wrap: wrap; align-items: center; border-bottom: var(--border); }
	.site-nav .menu > li > a { flex: 1; padding: var(--sp-4) 0; font-family: var(--f-head); font-size: 1.25rem; font-weight: 650; }
	.site-nav .submenu-toggle { width: 48px; height: 48px; }
	.site-nav .sub-menu {
		position: static;
		flex-basis: 100%;
		display: none;
		min-width: 0;
		padding: 0 0 var(--sp-3) var(--sp-4);
		border: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.site-nav li.is-open > .sub-menu { display: block; }
	.site-nav .menu > li:focus-within > .sub-menu { display: none; }
	.site-nav .menu > li.is-open:focus-within > .sub-menu { display: block; }
	.site-nav .sub-menu a { padding: var(--sp-3) 0; font-size: 1.0625rem; color: #3c4043; }
	.site-nav .sub-menu a:hover { background: none; }
	.site-nav__cta { margin-top: var(--sp-6); }
	.site-nav__cta .button { width: 100%; }

	/* Grids that need more room */
	.hero__copy { grid-column: 1 / span 7; }
	.hero__portrait { grid-column: 8 / -1; }
	.section-head--split > :first-child,
	.section-head--split > :last-child:not(:first-child) { grid-column: 1 / -1; }
	.pain__head { grid-column: 1 / -1; position: static; }
	.pain__list,
	.pain__close { grid-column: 1 / -1; }
	.meet__media { grid-column: 1 / span 5; }
	.meet__body { grid-column: 6 / -1; }
	.meet__facts { grid-template-columns: 1fr; gap: var(--sp-3); }
	.approach__side,
	.approach__main { grid-column: 1 / -1; }
	.approach__layout { gap: var(--sp-6); }
	.pathways__list { grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); }
	.pathway { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--sp-5); align-items: center; }
	.pathway__media img { aspect-ratio: 4 / 3; }
	.faq__intro { grid-column: 1 / -1; position: static; }
	.videos__grid { gap: var(--sp-5) var(--sp-4); }
	.video-card__title { font-size: 1rem; }
	.faq__list { grid-column: 1 / -1; }
	.book-feature__cover { grid-column: 1 / span 5; }
	.book-feature__body { grid-column: 6 / -1; }
	.insights__grid > .teaser--feature { grid-column: 1 / -1; grid-row: auto; }
	.insights__grid > .teaser--compact { grid-column: span 6; }
	.insights__grid > .teaser--compact + .teaser--compact { padding-top: 0; border-top: 0; }
	.cta-band__title,
	.cta-band__body { grid-column: 1 / -1; }
	.cta-band__body { max-width: 560px; }
	.service-hero__copy { grid-column: 1 / span 7; }
	.service-hero__media { grid-column: 8 / -1; }
	.contact-page__content,
	.contact-page__side { grid-column: 1 / -1; }
	.contact-page__side { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
	.related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.related__grid > :nth-child(3) { display: none; }
	.site-footer__top { grid-template-columns: 1fr 1fr; }
	.site-footer__brand { grid-column: 1 / -1; }
}

/* Phone -------------------------------------------------------------------- */
@media (max-width: 767px) {
	/* All 12-column grids become a single column on phones. */
	.hero__grid,
	.pain__grid,
	.section-head--split,
	.pathway,
	.meet__grid,
	.approach__layout,
	.faq__grid,
	.book-feature__grid,
	.insights__grid,
	.cta-band__grid,
	.service-hero__grid,
	.about-hero__grid,
	.contact-page__grid,
	.post-list > .teaser { grid-template-columns: minmax(0, 1fr); }

	/* Hero: portrait first, then the message */
	.hero__grid { min-height: 0; gap: var(--sp-5); }
	.admin-bar .hero__grid { min-height: 0; }
	.hero__portrait { grid-column: 1 / -1; order: -1; padding-top: 0; margin-inline: calc(var(--gutter) * -1); }
	.hero__portrait { min-height: 0; }
	.hero__portrait img { position: static; width: 100%; height: auto; aspect-ratio: 4 / 4.4; max-height: 62svh; object-position: 50% 22%; }
	.hero__copy { grid-column: 1 / -1; padding-block: var(--sp-2) var(--sp-7); }
	.hero__title { font-size: clamp(2.375rem, 1.6rem + 4.2vw, 3rem); }
	.hero__actions { flex-direction: column; align-items: stretch; gap: var(--sp-3); }
	.hero__scroll { display: none; }

	.pain__item { grid-template-columns: 2.5rem 1fr; gap: var(--sp-3); padding-block: var(--sp-5); }

	.pathway { display: flex; gap: var(--sp-4); }
	.pathway__media img { aspect-ratio: 16 / 10; }

	.meet__media,
	.meet__body { grid-column: 1 / -1; }
	.meet__media img { aspect-ratio: 1 / 1; }
	.meet__actions .button { width: 100%; }

	.credentials { flex-direction: column; align-items: flex-start; }
	.credentials__list { flex-direction: column; gap: var(--sp-4); }

	.approach__cover img { width: 96px; }

	.carousel__track { --per-view: 1.12; align-items: flex-start; }
	.section-head--inline .carousel__controls .carousel__status { display: none; }

	.faq__actions .button { width: 100%; }
	.videos__grid { grid-template-columns: minmax(0, 1fr); }
	.videos__more .button { width: 100%; }

	.book-feature__cover,
	.book-feature__body { grid-column: 1 / -1; }
	.book-feature__cover img { max-width: 220px; }
	.book-feature__actions { flex-direction: column; align-items: stretch; }

	.insights__grid > .teaser--compact { grid-column: 1 / -1; }
	.insights__grid > .teaser--compact + .teaser--compact { padding-top: var(--sp-5); border-top: var(--border); }

	.cta-band__actions { flex-direction: column; align-items: stretch; }

	.service-hero__copy,
	.service-hero__media { grid-column: 1 / -1; }
	.service-hero .hero__actions { flex-direction: column; align-items: stretch; }
	.other-services__grid { grid-template-columns: 1fr; }

	.about-hero__copy,
	.about-hero__portrait { grid-column: 1 / -1; }
	.about-hero__copy { padding-bottom: 0; }
	.about-hero__portrait img { aspect-ratio: 1 / 1; }

	.contact-page__side { grid-template-columns: 1fr; }

	.post-list > .teaser--list .teaser__media,
	.post-list > .teaser--list .teaser__body,
	.post-list > .teaser--list:not(:has(.teaser__media)) .teaser__body,
	.post-list > .teaser--feature .teaser__media,
	.post-list > .teaser--feature .teaser__body { grid-column: 1 / -1; }

	.related__grid { grid-template-columns: 1fr; }
	.related__grid > :nth-child(3) { display: grid; }

	.entry-content .wp-block-columns { flex-direction: column; }

	.site-footer__top { grid-template-columns: 1fr; gap: var(--sp-6); }
	.site-footer__bottom { flex-direction: column; }

	.search-form { flex-direction: column; }

	.alignleft,
	.alignright { float: none; margin-inline: 0; }
}

@media (max-width: 380px) {
	.site-footer__nav { grid-template-columns: 1fr; gap: var(--sp-5); }
	.brand__name { font-size: 1.0625rem; }
	.brand__mark { width: 30px; height: 30px; }
	.nav-toggle__label { display: none; }
	.nav-toggle { padding: 0 var(--sp-3); }
}

/* Short laptop screens: keep the whole hero inside the first screen */
@media (min-width: 768px) and (max-height: 800px) {
	.hero__copy { padding-block: 1rem 2.75rem; }
	.hero .eyebrow { margin-bottom: var(--sp-4); }
	.hero__title { margin-bottom: var(--sp-4); font-size: min(var(--fs-h1), 7.6vh); }
	.hero__text { font-size: 1.0625rem; line-height: 1.5; }
	.hero__actions { margin-top: var(--sp-5); }
	.hero__note { margin-top: var(--sp-3); }
	.hero__portrait { min-height: 360px; }
}

@media (min-width: 1024px) and (max-width: 1180px) {
	.site-nav__cta .button { padding-inline: 1rem; }
}

/* Print -------------------------------------------------------------------- */
@media print {
	.site-header,
	.site-footer,
	.cta-band,
	.article-cta,
	.related,
	.skip-link { display: none !important; }
	body { font-size: 12pt; color: #000; }
	a { color: #000; }
}
