/* Shared visual language for articles and homepage news. */
.psk-post { padding-block: 0 64px; }
.psk-post-header { padding-block: 28px 36px; }
.psk-post-header > * { margin-block: 14px 0; }
.psk-post-header > :first-child { margin-top: 0; }
.psk-post-header .wp-block-post-title { max-width: 1100px; font-size: clamp(26px, 3.4vw, 48px); font-weight: 700; line-height: 1.12; letter-spacing: -0.035em; }
.psk-post-header .psk-page-intro { max-width: 1000px; color: var(--wp--preset--color--text-muted); font-size: clamp(17px, 1.6vw, 22px); line-height: 1.5; }
.psk-post-header .psk-page-intro p { margin: 0; }
.psk-post-category,
.psk-home-news-category { color: var(--wp--preset--color--brand-green); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.psk-post-category a { color: inherit; text-decoration: none; }
.psk-post-header .wp-block-post-date { color: var(--wp--preset--color--text-muted); font-size: 13px; }
.psk-post-layout { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(260px, 1fr); align-items: start; gap: 32px; margin-block-start: 32px; }
.psk-post-article,
.psk-post-sidebar { min-width: 0; margin: 0; }
.psk-post-cover { margin: 0 0 26px; }
.psk-post-cover img { display: block; width: 100%; height: auto; max-height: 400px; aspect-ratio: 2.35; object-position: center 35%; object-fit: cover; border-radius: 8px; }
.psk-post-copy { font-size: 17px; line-height: 1.65; }
.psk-post-copy > * { margin-block: 0 20px; }
.psk-post-copy :is(h2, h3) { scroll-margin-top: 180px; }
.psk-post .psk-post-copy h2 { margin-block: 36px 16px; font-size: clamp(23px, 2.1vw, 30px); font-weight: 700; line-height: 1.25; letter-spacing: -.025em; }
.psk-post .psk-post-copy h3 { font-size: clamp(19px, 1.7vw, 24px); line-height: 1.3; }
.psk-post-copy a:not(.wp-element-button) { color: var(--wp--preset--color--brand-green); text-underline-offset: 3px; }
.psk-post-copy :is(img, video, iframe) { max-width: 100%; }
.psk-post-copy iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; }
.psk-post-copy .wp-block-image img { height: auto; }
.psk-post-copy .wp-block-gallery { gap: 12px; }
.psk-post-copy .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - 6px); flex-grow: 0; }
.is-style-psk-post-tip,
.psk-post-archive-note { padding: 22px 24px; border-radius: 8px; background: var(--wp--preset--color--surface-green); }
.is-style-psk-post-tip > :first-child { margin-top: 0; }
.is-style-psk-post-tip > :last-child { margin-bottom: 0; }
.psk-post-archive-note { font-size: 15px; }
.psk-post-toc,
.psk-post-help { padding: 26px; border-radius: 8px; background: var(--wp--preset--color--surface-soft); }
.psk-post-toc h2,
.psk-post-help h2 { margin: 0 0 16px; font-size: 20px; font-weight: 700; line-height: 1.3; letter-spacing: -0.02em; }
.psk-post-toc ul { padding: 0; margin: 0; list-style: none; }
.psk-post-toc li + li { border-top: 1px solid var(--wp--preset--color--border); }
.psk-post-toc a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding-block: 10px; color: var(--wp--preset--color--text); font-size: 15px; line-height: 1.5; text-decoration: none; }
.psk-post-toc__level-3 a { padding-inline-start: 14px; }
.psk-post-help { margin-top: 24px; background: var(--wp--preset--color--surface-green); }
.psk-post-help h2::before { content: ""; display: inline-block; width: 28px; height: 28px; margin-right: 10px; vertical-align: middle; background: var(--wp--preset--color--brand-green); mask: url("../images/icons/contact-phone.svg") center / contain no-repeat; }
.psk-post-help p { color: var(--wp--preset--color--text-muted); font-size: 15px; line-height: 1.6; }
.psk-post-help .wp-block-button,
.psk-post-help .wp-block-button__link { width: 100%; box-sizing: border-box; }
.psk-post-help .wp-block-button__link { font-size: 14px; }
.psk-post a:hover { text-decoration: underline; }
.psk-post a:focus-visible { outline: 2px solid var(--wp--preset--color--brand-green); outline-offset: 4px; }
.psk-home-news-card.psk-home-news-card { display: flex; flex-direction: column; border: 0; border-radius: 8px; background: var(--wp--preset--color--surface); box-shadow: none; }
.psk-home-news-card .wp-block-image { overflow: hidden; border-radius: 8px; }
.psk-home-news-card img { aspect-ratio: 16 / 9; object-position: center top; border-radius: 8px; }
.psk-home-news-card .psk-home-news-body { display: flex; flex-grow: 1; flex-direction: column; align-items: start; gap: 12px; padding: 20px 4px 4px; }
.psk-home-news-body > * { margin: 0; }
.psk-home-news-body .psk-home-news-category { margin: 0; }
.psk-home-news-body h3 { font-size: clamp(20px, 1.7vw, 24px); font-weight: 700; line-height: 1.25; letter-spacing: -0.025em; }
.psk-home-news-body > p:not(.psk-home-news-category) { color: var(--wp--preset--color--text-muted); font-size: 15px; line-height: 1.6; }
.psk-home-news-body > p:last-child a { display: inline-flex; align-items: center; min-height: 44px; gap: 8px; color: var(--wp--preset--color--brand-green); font-weight: 600; text-decoration: none; }
.psk-home-news-body a:hover { text-decoration: underline; }
@media (max-width: 781px) {
 .psk-post-header { padding-block: 22px 28px; }
 .psk-post-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; margin-block-start: 24px; }
 .psk-post-copy { font-size: 16px; }
 .psk-post-copy :is(h2, h3) { scroll-margin-top: 110px; }
 .psk-post-toc,
 .psk-post-help { padding: 22px; }
}

.psk-post-article > .psk-post-toc { margin-bottom: 24px; }

.psk-home-news-body > p:last-child { margin-top: auto; }
.psk-post-video {
	margin-block: 1.5rem;
	background: var(--wp--preset--color--surface-green, #edf5ef);
	border-radius: 12px;
	overflow: hidden;
}

.psk-post-video iframe {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	border: 0;
}

.psk-post-video-notice {
	padding: clamp(1.25rem, 4vw, 2.5rem);
}

.psk-post-video [hidden] {
	display: none;
}

.psk-post-video button {
	padding: .75rem 1rem;
	color: #fff;
	background: var(--wp--preset--color--brand-green, #286348);
	border: 0;
	border-radius: 6px;
	font: inherit;
	cursor: pointer;
}

.psk-post-video button:focus-visible {
	outline: 2px solid var(--wp--preset--color--brand-secondary, #171717);
	outline-offset: 4px;
}

.psk-post-copy .psk-post-highlight {
	margin-block: 28px;
	padding: clamp(22px, 3vw, 32px);
	border-radius: 12px;
	background: var(--wp--preset--color--surface-green);
}

.psk-post-highlight > :first-child { margin-top: 0; }
.psk-post-highlight > :last-child { margin-bottom: 0; }
.psk-post-highlight > p { margin-block: 0 18px; }
.psk-post .psk-post-highlight h2 { margin-top: 0; }
.psk-post-highlight--tip > p { margin-bottom: 0; }
.psk-post .psk-post-highlight--tip > h2 { font-size: 20px; }

.psk-post-contact-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin-block: 24px;
}

.psk-post .psk-post-contact {
	position: relative;
	padding-left: 44px;
	margin-block: 18px;
	color: var(--wp--preset--color--text-muted);
	font-size: 14px;
	line-height: 1.6;
}

.psk-post-contact::before {
	position: absolute;
	top: 4px;
	left: 0;
	width: 27px;
	height: 27px;
	content: "";
	background: var(--wp--preset--color--brand-green);
	mask: url("../images/icons/contact-phone.svg") center / contain no-repeat;
}

.psk-post-contact--home::before { mask-image: url("../images/icons/breadcrumb-home.svg"); }
.psk-post-contact--business::before { mask-image: url("../images/icons/building.svg"); }
.psk-post-contact--email::before { mask-image: url("../images/icons/envelope.svg"); }
.psk-post-contact-grid .psk-post-contact { margin: 0; }
.psk-post .psk-post-contact.psk-post-contact a { display: inline-block; padding-block: 5px; color: var(--wp--preset--color--brand-secondary); font-size: 21px; font-weight: 700; line-height: 1.4; text-decoration: none; }
.psk-post .psk-post-contact.psk-post-contact a::before { display: none; }
.psk-post-contact .psk-service-phone__text { display: flex; flex-direction: column; gap: 5px; }
.psk-post .psk-post-contact .psk-service-phone__label { color: var(--wp--preset--color--text-muted); font-size: 14px; font-weight: 400; line-height: 1.6; }
.psk-post .psk-post-contact .psk-service-phone__number { color: var(--wp--preset--color--brand-secondary); font-size: 21px; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.psk-post .psk-post-contact a:hover { color: var(--wp--preset--color--brand-green); text-decoration: underline; }
.psk-post .psk-post-contact.psk-post-contact--email a { font-size: 16px; overflow-wrap: anywhere; }
.psk-post-help .psk-post-contact { padding-left: 38px; font-size: 13px; }
.psk-post-help .psk-post-contact a { font-size: 21px; }

@media (max-width: 600px) {
	.psk-post-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.psk-post-copy .psk-post-highlight { padding: 22px 20px; }
}

