/*
Theme Name:  Smallwood's Tire (Kadence Child)
Theme URI:   https://smallwoodstire.com
Description: Child theme of Kadence for Smallwood's Tire, Rochester PA. Red / white / black brand styling.
Author:      Keystone Digital Solutions
Template:    kadence
Version:     1.0.0
Text Domain: kadence-child
*/

:root {
	--sw-red: var(--global-palette1, #c8102e);
	--sw-red-dark: var(--global-palette2, #9b0d23);
	--sw-black: var(--global-palette3, #111);
	--sw-charcoal: var(--global-palette4, #2a2a2a);
	--sw-muted: var(--global-palette6, #6b6b6b);
	--sw-line: var(--global-palette7, #e2e2e2);
	--sw-light: var(--global-palette8, #f4f4f4);
	--sw-white: var(--global-palette9, #fff);
	--sw-heading-font: "Oswald", "Arial Narrow", Arial, sans-serif;
	--sw-body-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--sw-gutter: clamp(1rem, 4vw, 2rem);
}

/* ---------- Typography ---------- */
body {
	font-family: var(--sw-body-font);
}
h1, h2, h3, h4, h5, h6,
.site-title,
.main-navigation .primary-menu-container > ul > li.menu-item > a,
.header-button,
.wp-block-button__link {
	font-family: var(--sw-heading-font);
}
h1, h2, h3 {
	text-transform: uppercase;
	letter-spacing: 0.01em;
	line-height: 1.1;
}
h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }

.sw-eyebrow {
	margin-bottom: 0.5rem !important;
	color: var(--sw-red);
	font-family: var(--sw-heading-font);
	font-size: 0.95rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
}
/* Accessibility (WCAG AA): the brand red on a dark background only has enough contrast for
   "large" text, so red text there is at least 19px bold. */
.sw-hero .sw-eyebrow,
.sw-page-hero .sw-eyebrow,
.sw-dark .sw-eyebrow {
	font-size: 1.1875rem;
	font-weight: 700;
}
.sw-hero .sw-lead strong {
	font-size: 1.1875rem;
}

/* ---------- Header ---------- */
.site-top-header-wrap .header-html,
.site-top-header-wrap .header-html a {
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.85rem;
}
.site-top-header-wrap .header-html a:hover {
	color: #fff;
}
.site-main-header-wrap .site-header-row-container-inner {
	border-bottom: 4px solid var(--sw-red);
}
.main-navigation .primary-menu-container > ul > li.menu-item > a {
	font-size: 1.05rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.header-button,
.mobile-header-button-wrap .button {
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	white-space: nowrap;
}
/* Smaller laptops: tighten the menu so it stays on one line next to the call button. */
@media (min-width: 1025px) and (max-width: 1279px) {
	.main-navigation .primary-menu-container > ul > li.menu-item > a {
		padding-left: 0.45rem;
		padding-right: 0.45rem;
		font-size: 0.95rem;
	}
	.header-button {
		font-size: 1rem;
	}
}
@media (min-width: 1025px) and (max-width: 1099px) {
	.main-navigation .primary-menu-container > ul > li.menu-item > a {
		padding-left: 0.35rem;
		padding-right: 0.35rem;
		font-size: 0.9rem;
	}
	.site-branding .custom-logo {
		max-width: 260px;
	}
}

/* ---------- Buttons ---------- */
.wp-block-button__link {
	border-radius: 4px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 2px solid currentColor;
	background: transparent;
}
.entry-content .sw-dark .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color),
.entry-content .sw-hero .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color) {
	color: #fff;
}
.entry-content .sw-dark .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover,
.entry-content .sw-hero .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover {
	background: #fff;
	color: var(--sw-black);
}

/* ---------- Sections ---------- */
.entry-content > .sw-section {
	margin-top: 0;
	margin-bottom: 0;
	padding: clamp(2.5rem, 5vw, 4rem) var(--sw-gutter);
}
/* The section padding is the gap; don't add the last block's bottom margin to it. */
.entry-content > .sw-section > .wp-block-group__inner-container > :last-child,
.entry-content > .sw-section .wp-block-column > :last-child,
.sw-steps > li:last-child {
	margin-bottom: 0;
}
.sw-light { background: var(--sw-light); }
.sw-dark {
	background: var(--sw-black);
	color: rgba(255, 255, 255, 0.85);
}
.sw-dark h1, .sw-dark h2, .sw-dark h3, .sw-dark h4,
.sw-red h1, .sw-red h2, .sw-red h3 {
	color: #fff;
}
.sw-dark a:not(.wp-block-button__link) { color: #fff; }
.sw-red {
	background: var(--sw-red);
	color: #fff;
}
.sw-red .sw-eyebrow { color: rgba(255, 255, 255, 0.8); }
.sw-red .wp-block-button__link {
	background: var(--sw-black);
	color: #fff;
}
.sw-red .wp-block-button__link:hover {
	background: #fff;
	color: var(--sw-black);
}
.sw-center { text-align: center; }
.sw-lead {
	font-size: 1.15rem;
}
/* Only centered sections get a narrower measure; elsewhere a max-width would knock text out of line with headings. */
.sw-center .sw-lead {
	max-width: 46rem;
}

/* Home hero */
.entry-content > .sw-hero {
	position: relative;
	margin-top: 0;
	margin-bottom: 0;
	padding: clamp(3.5rem, 9vw, 7rem) var(--sw-gutter);
	overflow: hidden;
	background-color: var(--sw-black);
	background-image:
		linear-gradient(100deg, rgba(10, 10, 10, 0.93) 0%, rgba(10, 10, 10, 0.75) 50%, rgba(10, 10, 10, 0.45) 100%),
		var(--sw-hero-image, none);
	background-position: center;
	background-size: cover;
	color: rgba(255, 255, 255, 0.88);
}
.sw-hero::after {
	content: "";
	position: absolute;
	right: -10%;
	bottom: 0;
	width: 55%;
	height: 10px;
	background: var(--sw-red);
	transform: skewX(-30deg);
}
.sw-hero h1 {
	color: #fff;
}
.sw-hero h1 strong {
	color: var(--sw-red);
	font-weight: inherit;
}
.sw-hero .sw-lead strong {
	color: var(--sw-red);
	font-weight: 700;
}
/* Out-the-door price note tied to the Call / Stop In buttons above it. */
.sw-hero .sw-hero-note {
	max-width: 34rem;
	margin-top: 1.5rem;
	padding-left: 1rem;
	border-left: 3px solid var(--sw-red);
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.95rem;
	line-height: 1.6;
}
.sw-hero .sw-hero-note strong {
	display: block;
	color: #fff;
}
/* Keep phrases like "Tire Shop" and "You Can Trust" together on one line. */
.sw-hero h1 strong,
.sw-nowrap {
	white-space: nowrap;
}
.sw-hero .wp-block-columns {
	align-items: center;
	gap: clamp(2rem, 5vw, 4rem);
}
/* Desktop: keep the hero and the stats strip below it in one screen. */
@media (min-width: 1025px) {
	/* Grow on tall screens so the stats strip lands at the bottom edge
	   (248px = header + stats strip) and the next section stays below the fold. */
	.entry-content > .sw-hero {
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-height: calc(100svh - 248px);
		padding-top: 2.25rem;
		padding-bottom: 2.5rem;
	}
	.entry-content > .sw-hero > .wp-block-columns {
		width: 100%;
		align-items: flex-start;
	}
	/* Line the tire finder up with the headline; the eyebrow line sits above both. */
	.entry-content > .sw-hero .wp-block-column + .wp-block-column {
		margin-top: 2.4375rem; /* the eyebrow line plus its gap */
	}
	.sw-hero h1 {
		font-size: clamp(2.6rem, 3.6vw, 3.1rem);
		margin-bottom: 0;
	}
	.sw-hero .wp-block-column > * {
		margin-block-start: 0;
		margin-block-end: 0;
	}
	.sw-hero .wp-block-column > * + * {
		margin-block-start: 1rem;
	}
	.sw-hero .wp-block-column > .sw-eyebrow + .wp-block-heading {
		margin-block-start: 0.25rem !important;
	}
	.sw-hero .sw-hero-note {
		margin-block-start: 1.25rem;
	}
	.entry-content > .sw-hero + .sw-strip {
		padding-top: 1.25rem;
		padding-bottom: 1.25rem;
	}
	.entry-content > .sw-hero + .sw-strip .wp-block-columns {
		margin-top: 0;
		margin-bottom: 0;
	}
}

/* Inner page title band */
.entry-content > .sw-page-hero {
	margin-top: 0;
	margin-bottom: 0;
	padding: clamp(2.75rem, 6vw, 4.5rem) var(--sw-gutter);
	border-bottom: 6px solid var(--sw-red);
	background-color: var(--sw-black);
	background-image:
		linear-gradient(90deg, rgba(10, 10, 10, 0.94) 0%, rgba(10, 10, 10, 0.8) 55%, rgba(10, 10, 10, 0.5) 100%),
		var(--sw-bg, linear-gradient(135deg, transparent 0 70%, rgba(200, 16, 46, 0.18) 70% 100%));
	background-position: center;
	background-size: cover;
	color: rgba(255, 255, 255, 0.85);
}

/* Page hero photos (free Pexels images, see images/CREDITS.md). */
.sw-hero { --sw-hero-image: url(images/hero.jpg); }
.sw-bg-tires { --sw-bg: url(images/hero-tires.jpg); }
.sw-bg-services { --sw-bg: url(images/hero-services.jpg); }
.sw-bg-mounting { --sw-bg: url(images/hero-mounting.jpg); }
.sw-bg-repair { --sw-bg: url(images/hero-repair.jpg); }
.sw-bg-guide { --sw-bg: url(images/hero-guide.jpg); }
.sw-bg-about { --sw-bg: url(images/hero-about.jpg); }
.sw-bg-contact { --sw-bg: url(images/hero-contact.jpg); }

/* In-content photos */
.sw-photo {
	overflow: hidden;
	margin-bottom: 1.5rem;
	border-radius: 6px;
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.25);
}
.entry-content .sw-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 0.6s ease;
}
.sw-photo:hover img { transform: scale(1.04); }
.entry-content .sw-photo--wide img { aspect-ratio: 21 / 8; }
/* Brand ads with text and logos: show the whole image, no crop or hover zoom. */
.entry-content .sw-photo--full { margin-bottom: 0; }
.entry-content .sw-photo--full img { aspect-ratio: auto; }
.sw-photo--full:hover img { transform: none; }
.sw-page-hero h1 { color: #fff; margin-bottom: 0.5rem; }
.sw-page-hero p { font-size: 1.15rem; margin-bottom: 0; }
.sw-page-hero p + p { margin-top: 0.75rem; }
/* Shorter title band on desktop (Tires page) so the tire finder below fits on screen. */
@media (min-width: 1025px) {
	.entry-content > .sw-page-hero--compact {
		padding-top: 2.25rem;
		padding-bottom: 2.5rem;
	}
	.entry-content > .sw-page-hero--compact + .sw-section.sw-tight-top {
		padding-top: 2rem;
	}
}

/* Trust strip */
.sw-stats {
	gap: 1.5rem;
	text-align: center;
}
.sw-stats .sw-stat-num {
	margin: 0;
	color: var(--sw-red);
	font-family: var(--sw-heading-font);
	font-size: clamp(2.2rem, 4vw, 3rem);
	font-weight: 700;
	line-height: 1;
}
.sw-stats p:not(.sw-stat-num) {
	margin: 0.35rem 0 0;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.85rem;
}
.entry-content > .sw-strip {
	margin-top: 0;
	margin-bottom: 0;
	padding: 2rem var(--sw-gutter);
	border-bottom: 1px solid var(--sw-line);
}

/* Cards */
.sw-cards {
	gap: 1.5rem;
}
.sw-card {
	padding: 2rem 1.75rem;
	border: 1px solid var(--sw-line);
	border-top: 4px solid var(--sw-red);
	border-radius: 6px;
	background: var(--sw-white);
	color: var(--sw-charcoal);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.05);
}
.sw-card h3 { margin-top: 0; }
.sw-card h3 a { color: inherit; text-decoration: none; }
.sw-card h3 a:hover { color: var(--sw-red); }
.sw-card .sw-icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	margin: 0 0 1.1rem;
	border-radius: 50%;
	background: var(--sw-black);
	color: #fff;
	font-family: var(--sw-heading-font);
	font-size: 1.4rem;
	font-weight: 700;
}
.sw-card a.sw-more,
.sw-more a {
	color: var(--sw-red);
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.9rem;
}

/* Reviews */
.sw-reviews { gap: 1.5rem; }
.sw-review {
	margin: 0;
	padding: 1.75rem;
	border: 0;
	border-left: 4px solid var(--sw-red);
	border-radius: 0 6px 6px 0;
	background: rgba(255, 255, 255, 0.06);
}
.sw-review p {
	font-size: 1.1rem;
	font-style: italic;
}
.sw-review p::before {
	content: "★★★★★";
	display: block;
	margin-bottom: 0.6rem;
	color: #f5b301;
	font-style: normal;
	letter-spacing: 0.15em;
}
.sw-review cite {
	color: #fff;
	font-style: normal;
	font-weight: 700;
}
.sw-light .sw-review { background: var(--sw-white); }
.sw-light .sw-review cite { color: var(--sw-black); }

/* Numbered steps */
.entry-content ol.sw-steps {
	counter-reset: sw-step;
	margin: 0;
	padding: 0;
	list-style: none;
}
ol.sw-steps > li {
	position: relative;
	margin: 0 0 1.25rem;
	padding-left: 3.5rem;
	counter-increment: sw-step;
}
ol.sw-steps > li::before {
	content: counter(sw-step);
	position: absolute;
	top: -0.1rem;
	left: 0;
	display: grid;
	place-items: center;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: var(--sw-red);
	color: #fff;
	font-family: var(--sw-heading-font);
	font-weight: 700;
}

/* Check list */
.entry-content ul.sw-checks {
	padding: 0;
	list-style: none;
}
ul.sw-checks > li {
	position: relative;
	margin-bottom: 0.65rem;
	padding-left: 2rem;
}
ul.sw-checks > li::before {
	content: "";
	position: absolute;
	top: 0.35em;
	left: 0;
	width: 1.1rem;
	height: 0.6rem;
	border-bottom: 3px solid var(--sw-red);
	border-left: 3px solid var(--sw-red);
	transform: rotate(-45deg);
}

/* FAQ (core Details block) */
.sw-faq .wp-block-details {
	margin: 0 0 0.75rem;
	padding: 0;
	border: 1px solid var(--sw-line);
	border-radius: 6px;
	background: var(--sw-white);
}
.sw-faq .wp-block-details summary {
	position: relative;
	padding: 1.1rem 3rem 1.1rem 1.25rem;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.sw-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.sw-faq .wp-block-details summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 1.25rem;
	color: var(--sw-red);
	font-size: 1.5rem;
	line-height: 1;
	transform: translateY(-50%);
}
.sw-faq .wp-block-details[open] summary::after { content: "–"; }
.sw-faq .wp-block-details > :not(summary) {
	margin: 0;
	padding: 0 1.25rem 1.1rem;
}

/* Guide (Know Your Tires) */
.entry-content ul.sw-toc {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.sw-toc li a {
	display: inline-block;
	padding: 0.45em 0.9em;
	border: 1px solid var(--sw-line);
	border-radius: 999px;
	background: var(--sw-white);
	color: var(--sw-black);
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}
.sw-toc li a:hover {
	border-color: var(--sw-red);
	color: var(--sw-red);
}
.sw-size-diagram {
	padding: 1.75rem;
	border-radius: 6px;
	background: var(--sw-black);
	color: #fff;
	text-align: center;
}
.sw-size-diagram .sw-size-code {
	margin: 0 0 1rem;
	font-family: var(--sw-heading-font);
	font-size: clamp(2rem, 6vw, 3.25rem);
	font-weight: 700;
	letter-spacing: 0.06em;
}
.sw-size-code span { color: var(--sw-red); }
.sw-callout {
	padding: 1.25rem 1.5rem;
	border-left: 4px solid var(--sw-red);
	border-radius: 0 6px 6px 0;
	background: var(--sw-light);
}
.sw-callout > :last-child { margin-bottom: 0; }
.sw-table table {
	border-collapse: collapse;
	width: 100%;
}
.sw-table th,
.sw-table td {
	padding: 0.75rem 1rem;
	border: 1px solid var(--sw-line);
	text-align: left;
}
.sw-table thead th {
	background: var(--sw-black);
	color: #fff;
}

/* Hours table + map */
.sw-hours {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
}
.sw-hours th,
.sw-hours td {
	padding: 0.65rem 0;
	border: 0;
	border-bottom: 1px solid var(--sw-line);
	text-align: left;
	font-weight: 400;
}
.sw-hours th { font-weight: 600; }
.sw-hours td { text-align: right; }
.sw-hours tr.is-today th,
.sw-hours tr.is-today td {
	color: var(--sw-red);
	font-weight: 700;
}
.sw-dark .sw-hours th,
.sw-dark .sw-hours td,
.site-footer .sw-hours th,
.site-footer .sw-hours td {
	border-bottom-color: rgba(255, 255, 255, 0.15);
}
.sw-map {
	overflow: hidden;
	border-radius: 6px;
	aspect-ratio: 4 / 3;
	background: var(--sw-light);
}
.sw-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}
.sw-contact-list p {
	margin: 0 0 1rem;
}
.sw-contact-list strong {
	display: block;
	color: var(--sw-muted);
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.sw-contact-list a {
	color: var(--sw-black);
	font-size: 1.15rem;
	font-weight: 700;
}

/* ---------- Footer band ---------- */
.sw-footer-band {
	padding: clamp(3rem, 6vw, 4.5rem) var(--sw-gutter) 2.5rem;
	border-top: 6px solid var(--sw-red);
	background: var(--sw-black);
	color: rgba(255, 255, 255, 0.75);
}
.sw-footer-band__inner {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr 0.8fr;
	gap: 2.5rem;
	max-width: var(--global-content-width, 1290px);
	margin: 0 auto;
}
.sw-footer-band h2 {
	margin: 0 0 1rem;
	color: #fff;
	font-size: 1.15rem;
	letter-spacing: 0.06em;
}
.sw-footer-band .sw-footer-brand {
	color: #fff;
	font-family: var(--sw-heading-font);
	font-size: 1.6rem;
	font-weight: 700;
	text-transform: uppercase;
}
.sw-footer-band .sw-footer-brand span { color: var(--sw-red); }
.sw-footer-band .sw-footer-logo {
	display: block;
	width: 280px;
	max-width: 100%;
	height: auto;
	margin-bottom: 1rem;
}
.sw-footer-band a { color: #fff; }
.sw-footer-band a:hover { color: var(--sw-red); }
.sw-footer-band ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.sw-footer-band li { margin-bottom: 0.5rem; }
.sw-footer-band .sw-hours th,
.sw-footer-band .sw-hours td { padding: 0.4rem 0; }
.sw-footer-band .sw-hours tr.is-today th,
.sw-footer-band .sw-hours tr.is-today td { color: #fff; }
.sw-footer-band .sw-phone {
	font-family: var(--sw-heading-font);
	font-size: 1.5rem;
	font-weight: 700;
	text-decoration: none;
}
.site-footer .site-bottom-footer-wrap {
	font-size: 0.85rem;
}
.site-footer .site-bottom-footer-wrap .footer-html,
.site-footer .site-bottom-footer-wrap .footer-html a {
	color: rgba(255, 255, 255, 0.6);
}
/* "Find us on Facebook (f)" link under Get Directions; text and icon highlight together on one line. */
.sw-footer-band .sw-social a {
	text-decoration: none;
}
.sw-footer-band .sw-social__end {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	white-space: nowrap;
	vertical-align: middle;
}
.sw-footer-band .sw-social__text {
	text-decoration: underline;
}
.sw-footer-band .sw-social a:hover .sw-social__icon,
.sw-footer-band .sw-social a:focus-visible .sw-social__icon {
	color: #fff;
}
.sw-footer-band .sw-social__icon {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 50%;
	color: #fff;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}
.sw-footer-band .sw-social a:hover .sw-social__icon,
.sw-footer-band .sw-social a:focus-visible .sw-social__icon {
	border-color: var(--sw-red);
	background: var(--sw-red);
}
/* Images can't be dragged out or long-press saved on phones (see js/protect.js). */
.entry-content img,
.site-footer img {
	-webkit-user-drag: none;
	-webkit-touch-callout: none;
	user-select: none;
}
/* Legal pages: readable text column with modest headings. */
.sw-legal h2 {
	margin-top: 2.25rem;
	margin-bottom: 0.5rem;
	font-size: 1.5rem;
}
.sw-legal > :first-child {
	margin-top: 0;
}
.sw-legal li {
	margin-bottom: 0.6rem;
}
/* Developer credit: small line under the copyright text. */
.site-footer .footer-html-inner p:has(> .sw-credit) {
	margin-top: 0.5rem;
}
.site-footer .site-bottom-footer-wrap .footer-html a.sw-credit {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: rgba(255, 255, 255, 0.45);
	font-size: 0.8rem;
	text-decoration: none;
	opacity: 0.8;
	transition: opacity 0.15s ease;
}
.site-footer .site-bottom-footer-wrap .footer-html a.sw-credit:hover,
.site-footer .site-bottom-footer-wrap .footer-html a.sw-credit:focus-visible {
	opacity: 1;
}
.sw-credit img {
	display: block;
	width: 95px;
	height: auto;
}

/* ---------- Mobile call bar ---------- */
.sw-callbar { display: none; }

@media (max-width: 1024px) {
	.sw-footer-band__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767px) {
	.sw-callbar {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 999;
		display: grid;
		grid-template-columns: 1fr 1fr;
		box-shadow: 0 -4px 14px rgba(0, 0, 0, 0.2);
	}
	.sw-callbar a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		min-height: 56px;
		color: #fff;
		font-family: var(--sw-heading-font);
		font-size: 1.05rem;
		font-weight: 600;
		text-decoration: none;
		text-transform: uppercase;
		letter-spacing: 0.04em;
	}
	.sw-callbar svg { width: 20px; height: 20px; }
	.sw-callbar__call { background: var(--sw-red); }
	.sw-callbar__map { background: var(--sw-black); }
	body { padding-bottom: 56px; }
	.sw-footer-band__inner { grid-template-columns: 1fr; gap: 2rem; }
	.sw-hero::after { width: 90%; }
}

/* Eyebrow sits tight above its heading. */
.entry-content .sw-eyebrow + .wp-block-heading {
	margin-top: 0.25rem !important;
}

/* ---------- Motion ---------- */
.wp-block-button__link,
.header-button,
.sw-btn {
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.wp-block-button__link:hover,
.header-button:hover,
.sw-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(200, 16, 46, 0.3);
}
.sw-card {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.sw-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.1);
}
.sw-card .sw-icon { transition: background-color 0.25s ease; }
.sw-card:hover .sw-icon { background: var(--sw-red); }
.sw-more a,
a.sw-more { transition: letter-spacing 0.2s ease; }
.sw-more a:hover,
a.sw-more:hover { letter-spacing: 0.08em; }

/* Sticky header gets a shadow once the page scrolls. */
.item-is-stuck .site-header-row-container-inner {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

/* Home hero: text and finder rise in on load. */
@keyframes sw-rise {
	from { opacity: 0; transform: translateY(28px); }
	to { opacity: 1; transform: none; }
}
@keyframes sw-slide {
	from { transform: translateX(40%) skewX(-30deg); }
	to { transform: skewX(-30deg); }
}
.sw-hero .wp-block-column > *,
.sw-page-hero > * {
	animation: sw-rise 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
.sw-hero .wp-block-column > :nth-child(2),
.sw-page-hero > :nth-child(2) { animation-delay: 0.1s; }
.sw-hero .wp-block-column > :nth-child(3),
.sw-page-hero > :nth-child(3) { animation-delay: 0.2s; }
.sw-hero .wp-block-column > :nth-child(4) { animation-delay: 0.3s; }
.sw-hero .wp-block-column + .wp-block-column > * { animation-delay: 0.35s; }
.sw-hero::after { animation: sw-slide 1s 0.3s cubic-bezier(0.2, 0.7, 0.2, 1) both; }

/* Scroll reveal (classes added by js/motion.js; content stays visible without JS). */
.sw-js .sw-reveal {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
	transition-delay: var(--sw-delay, 0s);
}
.sw-js .sw-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
	}
	.sw-js .sw-reveal {
		opacity: 1;
		transform: none;
	}
}

/* Know Your Tires: keep the topic buttons close to the first section. */
.entry-content > .sw-toc-band {
	padding-top: 2rem;
	padding-bottom: 2rem;
}
.entry-content > .sw-toc-band + .sw-section {
	padding-top: 2.5rem;
}

/* Four cards in one row on desktop; two per row on tablets where four would be too narrow. */
@media (min-width: 782px) and (max-width: 1099px) {
	.wp-block-columns.sw-cards-4 {
		flex-wrap: wrap !important;
	}
	.wp-block-columns.sw-cards-4 > .wp-block-column {
		flex-basis: 40% !important;
	}
}

/* Sections that should start close to the hero (e.g. Mounting & Balancing). */
.entry-content > .sw-section.sw-tight-top {
	padding-top: 2.5rem;
}

/* Jump links stop below the sticky header, leaving room for the eyebrow label above headings. */
.entry-content .wp-block-heading[id] {
	scroll-margin-top: 150px;
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

/* Footer hours: keep each day label and its hours on one line. */
.sw-footer-band .sw-hours th,
.sw-footer-band .sw-hours td {
	white-space: nowrap;
	font-size: 0.95rem;
}
.sw-footer-band .sw-hours th {
	padding-right: 1rem;
}
