/* ========================================================================
   Scott Farmer Salon Theme. Responsive.css
   Mobile-first breakdowns. Loaded after main.css.
   ======================================================================== */

/* Tablets */
@media (max-width: 1024px) {
	:root { --section-padding: 64px; }

	.container--with-sidebar { grid-template-columns: 1fr; }
	.hero__inner { grid-template-columns: 1fr; }
	.hero__media {
		order: -1;
		max-width: none;
		min-height: 380px;
	}
	.hero__media img { min-height: 380px; aspect-ratio: 16/9; }
	.why__grid { grid-template-columns: 1fr; gap: 32px; }
	.featured__grid { grid-template-columns: 1fr; gap: 32px; }
	.service-hero__inner { grid-template-columns: 1fr; }
	.location__grid { grid-template-columns: 1fr; }
	.contact__grid { grid-template-columns: 1fr; }
	.offer__inner { grid-template-columns: 1fr; }
	.offer__cta { justify-content: flex-start; }
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1120px) {
	.site-header__phone { display: none; }
}

@media (max-width: 940px) {
	.site-nav--desktop { display: none; }
	.mobile-menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
	.brand-lockup__name { font-size: 1.55rem; }
	.brand-lockup__tagline { font-size: .58rem; letter-spacing: .22em; }
}

/* Mobile */
@media (max-width: 768px) {
	html,
	body {
		max-width: 100%;
		overflow-x: hidden;
	}

	.container.container--narrow {
		max-width: 100%;
		min-width: 0;
	}

	.site-header__phone { display: none; }
	.site-header__book { display: none; }
	.brand-lockup { gap: 9px; }
	.brand-lockup__mark {
		width: 38px;
		height: 38px;
		flex-basis: 38px;
		font-size: 1.34rem;
	}

	.hero { padding: 32px 0 36px; }
	.hero__inner { min-height: 0; gap: 28px; }
	.hero__headline { font-size: clamp(2.2rem, 8vw, 3rem); }
	.hero__sub { font-size: 1rem; }
	.home .hero {
		padding: 34px 0 40px;
	}
	.home .hero__inner {
		gap: 30px;
		min-height: 0;
	}
	.home .hero__headline {
		font-size: 2.7rem;
	}
	.home .hero__sub {
		font-size: 1.08rem;
	}
	.home .hero__cta .btn {
		min-height: 52px;
		width: 100%;
	}
	.home .hero__media::before {
		height: 56%;
		left: -8px;
		top: 22%;
	}
	.home .hero__note {
		left: auto;
		max-width: none;
		right: auto;
	}
	.why__copy {
		position: static;
	}
	.single .entry__title {
		font-size: 2.55rem;
	}
	.single .entry__content > p:first-child {
		font-size: 1.06rem;
		padding: 18px 18px 18px 20px;
	}
	.single .entry__content h2 {
		font-size: 1.95rem;
	}
	.page-id-27 .featured__media {
		position: static;
	}
	.page-id-27 .featured__copy {
		padding: 24px 20px;
	}
	.entry__content .related-services li a {
		align-items: flex-start;
		flex-direction: column;
		gap: 6px;
	}
	.article-service-prompt {
		grid-template-columns: 1fr;
		margin-top: 34px;
		padding: 22px 18px;
	}
	.article-service-prompt__title {
		font-size: 1.62rem;
	}
	.article-service-prompt__links {
		flex-direction: column;
	}
	.article-service-prompt__links a.article-service-prompt__actions a {
		justify-content: center;
		width: 100%;
	}
	.hero__cta .btn { flex: 1; }
	.hero__media.hero__media img { min-height: 300px; }
	.hero__note {
		position: static;
		margin-top: 10px;
		box-shadow: var(--shadow-card);
	}

	.gallery-grid { grid-template-columns: repeat(2, 1fr); }
	.gallery-grid__item.gallery-grid__item--0.gallery-grid__item--3 {
		grid-column: span 1;
		aspect-ratio: 1/1;
	}
	.review-grid { grid-template-columns: 1fr; }
	.post-grid { grid-template-columns: 1fr; }
	.site-footer__grid { grid-template-columns: 1fr; }

	.sticky-book-mobile { display: block; }

	.cta-band__inner.booking-cta__inner { flex-direction: column; align-items: flex-start; }
	.cta-band__actions.booking-cta__inner .btn { width: 100%; }
	.cta-band__actions .btn { flex: 1; }

	.trust-bar__list { gap: 18px; font-size: .8rem; }
	.trust-bar__item:not(:last-child)::after { right: -10px; }

	.page-header { padding: 48px 0 16px; }
	.page:not(.home) .page-header { padding: 10px 0 0; }
	.entry__title { font-size: clamp(1.9rem, 7vw, 2.6rem); }
	.entry__content { font-size: 1rem; }

	body { padding-bottom: 80px; } /* leave room for sticky CTA */

	.entry__content > section:first-child {
		padding: 26px 18px 26px 22px;
		width: 100%;
	}

	.entry__content > section:first-child::before {
		height: calc(100% - 28px);
		top: 14px;
		width: 4px;
	}

	.entry__content > section:first-child h1 {
		font-size: 2.35rem;
	}

	.entry__content > section:first-child .lead {
		font-size: 1.05rem;
	}

	.quick-answer {
		grid-template-columns: 1fr;
	}

	.quick-answer__question {
		font-size: 1.55rem;
	}

	.advisor-panel {
		grid-template-columns: 1fr;
		padding: 24px 18px 24px 22px;
	}

	.advisor-panel::before {
		width: 4px;
	}

	.advisor-panel__copy h2 {
		font-size: 2rem;
	}

	.advisor-panel__copy p:not(.section-eyebrow) {
		font-size: 1.02rem;
	}

	.advisor-panel__media {
		grid-column: auto;
		grid-row: auto;
		max-height: 360px;
	}

	.advisor-panel__media img {
		min-height: 260px;
	}

	.advisor-choice-grid {
		grid-template-columns: 1fr;
	}

	.advisor-choice {
		padding: 18px;
	}

	.advisor-cta-row {
		flex-direction: column;
	}

	.advisor-cta-row .button {
		width: 100%;
	}

	.sf-inline-ctas.hero__cta {
		flex-direction: column;
	}

	.entry__content .button.entry__content .wp-block-button__link.sf-inline-ctas .button {
		width: 100%;
	}

	.entry__content table {
		border-collapse: separate;
		min-width: 0;
		overflow: hidden;
	}

	.entry__content table thead {
		display: none;
	}

	.entry__content table tbody.entry__content table tr.entry__content table td {
		display: block;
		width: 100%;
	}

	.entry__content table tr {
		border-bottom: 1px solid var(--color-border);
		padding: 14px 0;
	}

	.entry__content table tr:last-child {
		border-bottom: 0;
	}

	.entry__content table td {
		border-bottom: 0;
		display: grid;
		gap: 12px;
		grid-template-columns: minmax(92px, 34%) 1fr;
		padding: 6px 16px;
	}

	.entry__content th:first-child.entry__content td:first-child {
		width: 100%;
	}

	.entry__content td:last-child {
		white-space: normal;
	}

	.entry__content table td::before {
		color: var(--color-muted);
		content: "Service";
		font-size: .76rem;
		font-weight: 800;
		letter-spacing: .06em;
		text-transform: uppercase;
	}

	.entry__content table:not(:has(th:nth-child(4))) td:nth-child(2)::before {
		content: "Duration";
	}

	.entry__content table:not(:has(th:nth-child(4))) td:nth-child(3)::before.entry__content table:has(th:nth-child(4)) td:nth-child(4)::before {
		content: "Price";
	}

	.entry__content table:has(th:nth-child(4)) td:nth-child(2)::before {
		content: "Category";
	}

	.entry__content table:has(th:nth-child(4)) td:nth-child(3)::before {
		content: "Duration";
	}

	.benefit-grid.related-services.process-list--cards {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.container { padding: 0 16px; }
	.brand-lockup__tagline { display: none; }
	.brand-lockup__name { font-size: 1.45rem; }
	.hero__media img { aspect-ratio: 3/4; }
	.gallery-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
	.location__info { padding: 24px; }
	.location__map-card { position: static; margin-top: 10px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Print */
@media print {
	.site-header.site-footer.sticky-book-mobile.cta-band.booking-cta { display: none; }
	a::after { content: " (" attr(href) ")"; font-size: .85em; color: #666; }
}
