/*
Theme Name: PSA Computer Services
Theme URI: https://psa-2.com/
Author: PSA Computer Services
Description: Lightweight, responsive block theme for PSA Computer Services.
Version: 1.0.9
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: psa
*/

/* ---------------------------------------------------------------
   Base
--------------------------------------------------------------- */

html { scroll-behavior: smooth; }

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

:where(a):focus-visible,
:where(button, input, select, textarea, .wp-element-button):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
	border-radius: 4px;
}

img { height: auto; }

.screen-reader-text:focus { z-index: 100000; }

/* ---------------------------------------------------------------
   Header
--------------------------------------------------------------- */

.psa-topbar {
	--psa-topbar-h: 38px; /* Fixed so the sticky header can hide exactly this much. */
	background: var(--wp--preset--color--primary-dark);
	color: #DCE5F5;
	font-size: var(--wp--preset--font-size--small);
	height: var(--psa-topbar-h);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	white-space: nowrap;
	overflow: hidden;
}
.psa-topbar p { margin: 0; }
/* Flex column + auto margins would shrink the row to its content; keep it full width. */
.psa-topbar > .alignwide { width: 100%; }
.psa-topbar a { color: var(--wp--preset--color--white); font-weight: 700; text-decoration: none; }
.psa-topbar a:hover { text-decoration: underline; }

/* Stick the whole header template part (its wrapper is the sticky element's
   containing block, so .psa-header alone can't stick). The 38px top bar scrolls
   away; the logo and menu bar stays pinned. */
header.wp-block-template-part:has(> .psa-header) {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) - 38px);
	z-index: 50;
}
@media (max-width: 781px) {
	header.wp-block-template-part:has(> .psa-header) { top: 0; }
}

.psa-header {
	position: relative;
	z-index: 0; /* Own stacking context keeps the ::before background behind the content. */
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}
/* The frosted background lives on a pseudo-element: backdrop-filter on the
   header itself would trap the full-screen mobile menu inside the header bar. */
.psa-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: saturate(160%) blur(8px);
}

.psa-header__inner { gap: 1.5rem; }

.psa-brand { gap: 0.75rem; align-items: center; }
.psa-brand .wp-block-site-logo img { display: block; }
.psa-brand__text { gap: 0; }
.psa-brand .wp-block-site-title {
	font-size: 1.15rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.2;
	margin: 0;
}
.psa-brand .wp-block-site-title a { color: var(--wp--preset--color--ink); text-decoration: none; }
.psa-brand .wp-block-site-tagline {
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.3;
	margin: 0;
}

.psa-header__nav { gap: 1.5rem; }
.psa-nav .wp-block-navigation-item__content { text-decoration: none; color: var(--wp--preset--color--ink); }
.psa-nav .wp-block-navigation-item__content:hover,
.psa-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--primary); }
.psa-nav .current-menu-item > .wp-block-navigation-item__content {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.4em;
}
.psa-header__cta .wp-block-button__link { padding: 0.6rem 1.15rem; }

/* Mobile overlay menu */
.psa-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem;
}
.psa-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 1.1rem;
	font-size: 1.35rem;
}

@media (max-width: 1080px) {
	.psa-brand .wp-block-site-tagline { display: none; }
}
@media (max-width: 781px) {
	.psa-topbar { display: none; }
	.psa-header__cta { display: none; }
	.psa-brand .wp-block-site-logo img { width: 42px !important; }
	.psa-brand .wp-block-site-title { font-size: 1.05rem; }
}

/* ---------------------------------------------------------------
   Page head banner
--------------------------------------------------------------- */

.psa-main { margin-top: 0; }
.psa-main > :first-child { margin-block-start: 0; }

.psa-pagehead {
	background:
		radial-gradient(circle at 85% 0%, rgba(91, 130, 196, 0.18), transparent 55%),
		var(--wp--preset--color--surface);
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--50);
	margin-bottom: var(--wp--preset--spacing--50);
}
.psa-pagehead h1,
.psa-pagehead .wp-block-post-title,
.psa-pagehead .wp-block-query-title {
	font-size: var(--wp--preset--font-size--xx-large);
	margin: 0;
}
.psa-pagehead > * + * { margin-top: 0.75rem; }
.psa-pagehead__meta {
	gap: 0.5rem 1rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	font-weight: 600;
}
.psa-pagehead__meta a { text-decoration: none; color: var(--wp--preset--color--primary); }
.psa-pagehead .psa-search { max-width: 520px; }

.psa-lead {
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--muted);
	max-width: 46rem;
}

/* ---------------------------------------------------------------
   Content (pages and articles)
--------------------------------------------------------------- */

.psa-content { padding-bottom: var(--wp--preset--spacing--60); }
.psa-content > * + h2,
.psa-content > * + h3 { margin-top: 2.5rem; }
.psa-content li + li { margin-top: 0.35rem; }

.psa-content table {
	border-collapse: collapse;
	width: 100%;
	font-size: 0.95rem;
}
.psa-content th,
.psa-content td {
	border: 1px solid var(--wp--preset--color--border);
	padding: 0.55rem 0.75rem;
	text-align: left;
}

.psa-content blockquote:not(.wp-block-quote) {
	border-left: 4px solid var(--wp--preset--color--accent);
	background: var(--wp--preset--color--surface);
	border-radius: 0 8px 8px 0;
	margin-left: 0;
	margin-right: 0;
	padding: 1rem 1.25rem;
}

.psa-article h1,
.psa-article h2 { font-size: var(--wp--preset--font-size--x-large); }
.psa-article h3 { font-size: 1.35rem; }
.psa-article h4 { font-size: var(--wp--preset--font-size--large); }

.psa-postfoot {
	padding-bottom: var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--small);
}
.psa-postfoot .wp-block-post-terms a {
	display: inline-block;
	text-decoration: none;
	background: var(--wp--preset--color--accent-soft);
	border-radius: 999px;
	padding: 0.1rem 0.6rem;
	margin: 0.15rem 0;
}
.psa-postfoot .wp-block-post-terms__separator { display: none; }
.psa-postnav {
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: 1.25rem;
	margin-top: 1.5rem;
	gap: 1rem;
}
.psa-postnav a { font-weight: 700; text-decoration: none; }

/* ---------------------------------------------------------------
   Cards and grids
--------------------------------------------------------------- */

.psa-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	box-shadow: 0 1px 2px rgba(20, 33, 61, 0.04);
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
	height: 100%;
}
.psa-card:hover {
	border-color: #C6D3EA;
	box-shadow: 0 10px 30px -12px rgba(20, 33, 61, 0.22);
}
.psa-card > :first-child { margin-top: 0; }
.psa-card > :last-child { margin-bottom: 0; }
.psa-card h3 { font-size: var(--wp--preset--font-size--large); margin-bottom: 0.4rem; }
.psa-card p { color: var(--wp--preset--color--muted); }

.psa-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: var(--wp--preset--color--accent-soft);
	color: var(--wp--preset--color--primary);
	margin-bottom: 0.25rem;
}
.psa-icon svg { width: 24px; height: 24px; }

.psa-badge {
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wp--preset--color--primary-dark);
	background: var(--wp--preset--color--accent-soft);
	border-radius: 999px;
	padding: 0.2rem 0.65rem;
}

/* .psa-grid uses the theme blockGap — core's grid column math assumes it. */

/* Post cards */
.psa-postgrid { padding-bottom: var(--wp--preset--spacing--60); }
.psa-postgrid .wp-block-post-template { gap: 1.5rem; }
.psa-postcard { display: flex; flex-direction: column; gap: 0.5rem; }
.psa-postcard > * { margin: 0 !important; }
.psa-postcard__cat { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.psa-postcard__cat a { text-decoration: none; color: var(--wp--preset--color--primary); }
.psa-postcard__cat .wp-block-post-terms__separator { color: var(--wp--preset--color--muted); }
.psa-postcard__title { font-size: 1.2rem !important; line-height: 1.3; }
.psa-postcard__title a:hover { color: var(--wp--preset--color--primary); }
.psa-postcard__excerpt { color: var(--wp--preset--color--muted); font-size: 0.95rem; flex-grow: 1; }
.psa-postcard__excerpt .wp-block-post-excerpt__excerpt { margin: 0; }
.psa-postcard__date { font-size: 0.85rem; color: var(--wp--preset--color--muted); }
.wp-block-query-pagination { margin-top: 2.5rem; font-weight: 700; }
.wp-block-query-pagination a { text-decoration: none; }

/* Search field */
.psa-search .wp-block-search__inside-wrapper {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	background: var(--wp--preset--color--white);
	padding: 4px;
}
.psa-search .wp-block-search__input { border: 0; padding: 0.5rem 0.75rem; font: inherit; background: transparent; }
.psa-search .wp-block-search__button { margin-left: 4px; border-radius: 7px; }

/* ---------------------------------------------------------------
   Landing sections (home page and service pages)
--------------------------------------------------------------- */

.psa-landing > .alignfull { margin-top: 0; margin-bottom: 0; }

.psa-section {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}
.psa-section--tint { background: var(--wp--preset--color--surface); }
.psa-section__head { margin-bottom: var(--wp--preset--spacing--50); }
.psa-section__head h2 { margin-top: 0.4rem; margin-bottom: 0.75rem; }

.psa-eyebrow {
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin-bottom: 0;
}

/* Hero */
.psa-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 90% 10%, rgba(91, 130, 196, 0.22), transparent 45%),
		radial-gradient(circle at 0% 100%, rgba(43, 79, 140, 0.10), transparent 40%),
		var(--wp--preset--color--surface);
	padding-top: clamp(3rem, 8vw, 6.5rem);
	padding-bottom: clamp(3rem, 8vw, 6.5rem);
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.psa-hero h1 { margin-top: 0.5rem; margin-bottom: 1rem; }
.psa-hero .psa-lead { margin-bottom: 1.75rem; }
.psa-hero__cols { gap: clamp(2rem, 5vw, 4rem); align-items: center; }

.psa-facts {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 18px;
	padding: clamp(1.5rem, 3vw, 2rem);
	box-shadow: 0 24px 50px -24px rgba(20, 33, 61, 0.30);
}
.psa-facts h2 { font-size: var(--wp--preset--font-size--large); margin: 0 0 1rem; }
.psa-checklist { list-style: none; padding-left: 0; margin-left: 0; margin-right: 0; }
.psa-checklist li {
	position: relative;
	padding-left: 2rem;
	margin: 0;
}
.psa-checklist li + li { margin-top: 0.8rem; }
.psa-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B4F8C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 0.75rem no-repeat;
}
.psa-facts .psa-checklist strong { display: block; color: var(--wp--preset--color--ink); }
.psa-facts .psa-checklist span { color: var(--wp--preset--color--muted); font-size: 0.95rem; }

/* Service cards on the home page */
.psa-service { display: flex; flex-direction: column; }
.psa-service .wp-block-buttons { margin-top: auto; padding-top: 1rem; }
.psa-service .psa-checklist { margin: 0.75rem 0 0.5rem; }
.psa-service .psa-checklist li { color: var(--wp--preset--color--ink); }

/* Pricing tiles */
.psa-price { text-align: left; }
.psa-price__amount {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--primary);
	line-height: 1.1;
	margin: 0.25rem 0 0.4rem;
}
.psa-price__amount small { font-size: 1rem; font-weight: 700; color: var(--wp--preset--color--muted); }
.psa-note { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }

/* Numbered steps */
.psa-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--white);
	font-weight: 800;
	margin: 0 0 0.5rem;
}

/* Hours table */
.psa-hours table { width: 100%; border-collapse: collapse; font-size: 0.98rem; }
.psa-hours td { padding: 0.5rem 0; border-bottom: 1px solid var(--wp--preset--color--border); }
.psa-hours td:last-child { text-align: right; font-weight: 700; }
.psa-hours tr.is-closed td:last-child { color: var(--wp--preset--color--muted); font-weight: 600; }

/* Call-to-action band */
.psa-cta {
	background:
		radial-gradient(circle at 100% 0%, rgba(91, 130, 196, 0.45), transparent 50%),
		var(--wp--preset--color--primary-dark);
	color: #DCE5F5;
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--50);
}
.psa-cta__inner { gap: 1.5rem 3rem; }
.psa-cta h2 { color: var(--wp--preset--color--white); font-size: var(--wp--preset--font-size--x-large); margin: 0 0 0.35rem; }
.psa-cta p { margin: 0; }
.psa-cta .is-style-psa-light .wp-block-button__link {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--primary-dark);
}
.psa-cta .is-style-psa-light .wp-block-button__link:hover { background: var(--wp--preset--color--accent-soft); }
.psa-cta .is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--white);
	border: 2px solid rgba(255, 255, 255, 0.7);
	background: transparent;
	padding: calc(0.8rem - 2px) calc(1.4rem - 2px);
}
.psa-cta .is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.1); }

/* Outline buttons elsewhere */
.wp-block-button.is-style-outline > .wp-block-button__link {
	border-width: 2px;
	padding: calc(0.8rem - 2px) calc(1.4rem - 2px);
}
:where(.psa-hero, .psa-section, .psa-content) .wp-block-button.is-style-outline > .wp-block-button__link {
	color: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	background: transparent;
}
:where(.psa-hero, .psa-section, .psa-content) .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent-soft);
}

/* Text link with arrow */
.psa-more a { font-weight: 700; text-decoration: none; }
.psa-more a:hover { text-decoration: underline; }

/* ---------------------------------------------------------------
   Footer
--------------------------------------------------------------- */

.psa-footer {
	background: var(--wp--preset--color--ink);
	color: #B9C3D6;
	font-size: 0.95rem;
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--40);
}
.psa-footer a { color: var(--wp--preset--color--white); text-decoration: none; }
.psa-footer a:hover { text-decoration: underline; }
.psa-footer .psa-brand .wp-block-site-title a { color: var(--wp--preset--color--white); }
.psa-footer .psa-brand .wp-block-site-logo img { background: var(--wp--preset--color--white); border-radius: 8px; padding: 3px; }
.psa-footer__cols { gap: 2.5rem; }
.psa-footer__heading {
	color: var(--wp--preset--color--white);
	font-size: 0.82rem !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 1rem;
}
.psa-footer__links { list-style: none; padding: 0; }
.psa-footer__links li + li { margin-top: 0.55rem; }
.psa-footer__phone { font-size: 1.35rem; font-weight: 800; }
.psa-cert img { display: block; border-radius: 8px; background: var(--wp--preset--color--white); padding: 4px; }
.psa-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	margin-top: var(--wp--preset--spacing--50);
	padding-top: 1.25rem;
	font-size: var(--wp--preset--font-size--small);
	gap: 1rem;
}
.psa-footer__bottom p { margin: 0; }
.psa-footer__bottom a { color: #DCE5F5; text-decoration: underline; }
.psa-flag img { display: block; border-radius: 3px; opacity: 0.9; }

/* Sticky call bar on phones */
.psa-callbar { display: none; }
@media (max-width: 781px) {
	.psa-callbar {
		position: fixed;
		left: 1rem;
		right: 1rem;
		bottom: calc(1rem + env(safe-area-inset-bottom));
		z-index: 60;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		padding: 0.9rem 1rem;
		border-radius: 12px;
		background: var(--wp--preset--color--primary);
		color: var(--wp--preset--color--white);
		font-weight: 800;
		text-decoration: none;
		box-shadow: 0 12px 30px -8px rgba(20, 33, 61, 0.55);
	}
	.psa-callbar:hover,
	.psa-callbar:focus { color: var(--wp--preset--color--white); background: var(--wp--preset--color--primary-dark); }
	body { padding-bottom: 5.5rem; }
	.psa-footer__cols { gap: 2rem; }
}

/* ---------------------------------------------------------------
   Contact form (PSA Site Essentials plugin)
--------------------------------------------------------------- */

.psa-form { display: grid; gap: 1.1rem; }
.psa-form__row { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.psa-form label { display: block; font-weight: 700; font-size: 0.95rem; margin-bottom: 0.35rem; }
.psa-form label .psa-form__opt { font-weight: 500; color: var(--wp--preset--color--muted); }
.psa-form input[type="text"],
.psa-form input[type="email"],
.psa-form input[type="tel"],
.psa-form select,
.psa-form textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	border: 1px solid #C3CCDD;
	border-radius: 10px;
	padding: 0.7rem 0.85rem;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.psa-form textarea { min-height: 9rem; resize: vertical; }
.psa-form input:focus,
.psa-form select:focus,
.psa-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 3px rgba(91, 130, 196, 0.3);
}
.psa-form__submit {
	justify-self: start;
	cursor: pointer;
	border: 0;
	font: inherit;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--primary);
	border-radius: 8px;
	padding: 0.85rem 1.6rem;
}
.psa-form__submit:hover { background: var(--wp--preset--color--primary-dark); }
.psa-form__privacy { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); margin: 0; }
.psa-form__hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.psa-notice {
	border-radius: 10px;
	padding: 0.9rem 1.1rem;
	margin-bottom: 1.25rem;
	font-weight: 600;
}
.psa-notice--ok { background: #E7F6EC; color: #14532D; border: 1px solid #A7DDB8; }
.psa-notice--err { background: #FDECEC; color: #7F1D1D; border: 1px solid #F3B4B4; }

/* ---------------------------------------------------------------
   Page-specific pieces
--------------------------------------------------------------- */

/* Latest articles list (home) */
.psa-latest .wp-block-post-template { list-style: none; padding: 0; margin: 1.5rem 0; }
.psa-latest__item {
	border-top: 1px solid var(--wp--preset--color--border);
	padding: 1rem 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.25rem 1.5rem;
}
.psa-latest__item > * { margin: 0 !important; }
.psa-latest__item .wp-block-post-title { font-size: 1.1rem; }
.psa-latest__item .wp-block-post-title a:hover { color: var(--wp--preset--color--primary); }
.psa-latest__item .wp-block-post-date { font-size: 0.85rem; color: var(--wp--preset--color--muted); white-space: nowrap; }
.psa-home-bottom { gap: clamp(2rem, 5vw, 4rem); }
.psa-home-bottom h2 { margin-top: 0.4rem; }

/* External link list */
.psa-linklist { list-style: none; padding: 0; }
.psa-linklist li {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	margin: 0 0 0.6rem !important;
}
.psa-linklist a {
	display: block;
	padding: 0.85rem 1.1rem;
	font-weight: 700;
	text-decoration: none;
}
.psa-linklist a::after { content: " ↗"; color: var(--wp--preset--color--muted); }
.psa-linklist li:hover { border-color: var(--wp--preset--color--accent); background: var(--wp--preset--color--surface); }

/* Content-area grids break out to wide width */
.psa-content > .psa-grid { margin-top: 1.5rem; margin-bottom: 2rem; }
.psa-content .psa-card h3 { margin-top: 0.5rem; }
.psa-content .wp-block-buttons { margin-top: 1.5rem; }

.psa-about-cert { align-items: center; }

.psa-contact-cols { gap: 1.5rem; align-items: flex-start; }
.psa-contact-cols > .wp-block-column:last-child { display: grid; gap: 1.5rem; }
.psa-contact-cols .psa-card h2 { font-size: var(--wp--preset--font-size--x-large); }
.psa-contact-cols .psa-price__amount a { text-decoration: none; }
.psa-card .psa-badge { align-self: flex-start; width: fit-content; }

/* ---------------------------------------------------------------
   Fixes from visual review
--------------------------------------------------------------- */

/* Hours table must not inherit generic content-table borders */
.psa-hours table { border: 0; margin: 0.25rem 0 0.75rem; }
.psa-hours td,
.psa-content .psa-hours td {
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding: 0.5rem 0;
}

/* Form rows: the grid gap provides the spacing */
.psa-form p { margin: 0; }

@media (max-width: 781px) {
	.psa-header__cta { display: none !important; }
}
.psa-card .psa-step__num { color: var(--wp--preset--color--white); }

/* ---------------------------------------------------------------
   Shared left edge: page heads and page/article content line up
   with the wide column (where the logo and page title sit).
   Text keeps a readable measure; cards, grids and columns use the
   full wide width.
--------------------------------------------------------------- */

.psa-pagehead,
.psa-content,
.psa-postfoot {
	/* Distance from the container edge to the wide column. In margins,
	   % resolves against the container, so this tracks the viewport. */
	--psa-gutter: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2));
	--psa-measure: var(--wp--style--global--wide-size);
}

.psa-pagehead.is-layout-constrained > *,
.psa-content.is-layout-constrained > :not(.alignfull),
.psa-postfoot.is-layout-constrained > * {
	max-width: var(--wp--style--global--wide-size) !important;
	margin-left: var(--psa-gutter) !important;
	margin-right: auto !important;
}

.psa-content.is-layout-constrained > :not(.alignwide):not(.alignfull),
.psa-postfoot.is-layout-constrained > *,
.psa-pagehead.is-layout-constrained > .psa-lead {
	max-width: var(--psa-measure) !important;
}

.psa-pagehead .psa-search .wp-block-search__inside-wrapper { max-width: 520px; }
.psa-content blockquote { box-sizing: border-box; }

/* Footer bottom bar badges: CompTIA A+ beside the flag */
.psa-badges { gap: 0.9rem; align-items: center; }
.psa-badges .psa-cert img { width: 40px; height: 40px; padding: 3px; border-radius: 6px; }
.psa-badges .psa-flag img { height: 32px; width: auto; }

/* Avoid single-word last lines in paragraphs and headings */
p, li, h1, h2, h3, h4 { text-wrap: pretty; }

/* ---------------------------------------------------------------
   Article number, review date, archive notice
--------------------------------------------------------------- */
.psa-pagehead__meta p { margin: 0; }
.psa-article-meta { display: inline-flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center; }
.psa-article-no {
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--primary-dark);
	background: var(--wp--preset--color--accent-soft);
	border-radius: 999px;
	padding: 0.1rem 0.6rem;
}
.psa-reviewed::before { content: "✓ "; color: var(--wp--preset--color--primary); }

.psa-archive-wrap { padding-bottom: 0 !important; }
.psa-archive-wrap:not(:has(.psa-archive-notice)) { display: none; }
.psa-archive-notice {
	box-sizing: border-box;
	background: #FFF7E6;
	border: 1px solid #F3D59B;
	border-left: 4px solid #D99A1E;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	color: #5C3D00;
}
.psa-archive-notice a { color: #5C3D00; font-weight: 700; }

/* Security Alerts Archive list */
.psa-alert-list { list-style: none; padding-left: 0; }
.psa-alert-list li {
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding: 0.9rem 0;
	margin: 0 !important;
}
.psa-alert-meta {
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--wp--preset--color--muted);
	margin-left: 0.4rem;
	white-space: nowrap;
}
.psa-content > .psa-archive-notice,
.psa-content > .wp-block-html > .psa-archive-notice { margin-bottom: 1.5rem; }

/* "More in this series" box at the end of a series article */
.psa-series {
	box-sizing: border-box;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	margin-top: 2.5rem !important;
}
.psa-series .psa-series__title {
	font-size: 0.82rem !important;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin: 0 0 0.6rem !important;
}
.psa-series__list { margin: 0; padding-left: 1.2rem; }
.psa-series__list li + li { margin-top: 0.3rem; }
