/*
Theme Name: PPC Neve FSE
Theme URI: http://localhost:10003/
Author: Itsup / Codex
Author URI: http://localhost:10003/
Description: Neve FSE child theme for the Political Parties Commission website, preserving the PPC native block design system and editable templates.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 1.0.0
Template: neve-fse
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ppc-neve-fse
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, wide-blocks, accessibility-ready, government
*/

/*
 * PPC overrides for the Neve FSE child theme.
 * Global tokens live in theme.json; this file keeps container behavior,
 * navigation, forms, dynamic PPC output, and small responsive guards.
 */

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}

/*
 * Prevents unnecessary scrollbars while handling long lines of preformatted text.
 * https://core.trac.wordpress.org/ticket/63875
 */
:where(pre) {
	overflow-x: auto;
}

:root {
	--ppc-container-width: 1200px;
	--ppc-container-gutter: clamp(20px, 3vw, 40px);
	--ppc-container-effective: min(calc(100vw - (var(--ppc-container-gutter) * 2)), var(--ppc-container-width));
	--ppc-md-surface: var(--wp--preset--color--ti-bg);
	--ppc-md-surface-container: color-mix(in srgb, var(--wp--preset--color--ti-bg-alt) 72%, var(--wp--preset--color--ti-bg));
	--ppc-md-surface-container-high: color-mix(in srgb, var(--wp--preset--color--ti-bg-alt) 88%, var(--wp--preset--color--ti-bg));
	--ppc-md-surface-tonal: color-mix(in srgb, var(--wp--preset--color--ti-accent-secondary) 10%, var(--wp--preset--color--ti-bg));
	--ppc-md-outline: color-mix(in srgb, var(--wp--preset--color--ti-fg) 14%, transparent);
	--ppc-md-outline-strong: color-mix(in srgb, var(--wp--preset--color--ti-fg) 24%, transparent);
	--ppc-md-primary-container: color-mix(in srgb, var(--wp--preset--color--ti-accent) 10%, var(--wp--preset--color--ti-bg));
	--ppc-md-secondary-container: color-mix(in srgb, var(--wp--preset--color--accent-3) 10%, var(--wp--preset--color--ti-bg));
	--ppc-md-warning-container: color-mix(in srgb, var(--wp--preset--color--accent-7) 18%, var(--wp--preset--color--ti-bg));
	--ppc-md-error-container: color-mix(in srgb, var(--wp--preset--color--accent-8) 12%, var(--wp--preset--color--ti-bg));
	--ppc-md-radius-sm: 6px;
	--ppc-md-radius-md: 10px;
	--ppc-md-radius-lg: 14px;
	--ppc-md-elevation-1: 0 2px 8px rgb(32 48 64 / 8%);
	--ppc-md-elevation-2: 0 8px 24px rgb(32 48 64 / 10%);
	--ppc-md-elevation-3: 0 16px 40px rgb(32 48 64 / 14%);
	--ppc-md-focus-ring: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--ti-accent-secondary) 32%, transparent);
	--ppc-md-density-padding: clamp(1rem, 2.2vw, 1.5rem);
}

html,
body {
	max-width: 100%;
	overflow-x: clip;
}

.wp-site-blocks main.has-global-padding {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.wp-site-blocks :where(.is-layout-constrained) > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-site-blocks :where(.is-layout-constrained) > .alignwide {
	max-width: var(--ppc-container-width);
}

.wp-site-blocks :where(header, footer) .alignwide,
.wp-site-blocks main > :where(:not(.alignfull)),
.wp-site-blocks main > .wp-block-post-content > :where(:not(.alignfull)),
.wp-site-blocks main .alignwide,
.wp-site-blocks .alignfull > .alignwide {
	box-sizing: border-box;
	max-width: var(--ppc-container-width) !important;
	width: var(--ppc-container-effective);
}

.wp-site-blocks main > .wp-block-post-content {
	box-sizing: border-box;
	max-width: var(--ppc-container-width) !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	width: var(--ppc-container-effective);
}

.wp-site-blocks :where(header, footer) .alignwide,
.wp-site-blocks main > :where(:not(.alignfull)),
.wp-site-blocks main > .wp-block-post-content,
.wp-site-blocks .alignfull > .alignwide {
	margin-left: calc(((100vw - var(--ppc-container-effective)) / 2) - var(--wp--style--root--padding-left, 0px)) !important;
	margin-right: calc(((100vw - var(--ppc-container-effective)) / 2) - var(--wp--style--root--padding-right, 0px)) !important;
}

.wp-site-blocks :where(.has-global-padding) > .alignwide,
.wp-site-blocks :where(.has-global-padding) > .wp-block-post-content,
.wp-site-blocks main.has-global-padding > :where(:not(.alignfull)),
.wp-site-blocks .alignfull.has-global-padding > .alignwide {
	margin-left: calc(((100vw - var(--ppc-container-effective)) / 2) - var(--wp--style--root--padding-left, 0px)) !important;
	margin-right: calc(((100vw - var(--ppc-container-effective)) / 2) - var(--wp--style--root--padding-right, 0px)) !important;
}

.wp-site-blocks main > .wp-block-post-content > :where(:not(.alignfull)) {
	margin-left: auto !important;
	margin-right: auto !important;
}

.wp-site-blocks main > .wp-block-post-content > :where(:not(.alignfull)) :where(.alignwide),
.wp-site-blocks main > :where(:not(.alignfull)) :where(.alignwide) {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: 100% !important;
	width: 100%;
}

.wp-site-blocks :where(.alignfull) {
	max-width: none;
	width: 100%;
}

.wp-site-blocks main > :where(.alignfull),
.wp-site-blocks :where(.ppc-archive-hero.alignfull, .ppc-action-band.alignfull) {
	left: calc(50% - var(--wp--style--root--padding-left, 0px));
	margin-left: -50vw !important;
	margin-right: -50vw !important;
	max-width: 100vw !important;
	position: relative;
	width: 100vw !important;
}

.wp-site-blocks main > .wp-block-post-content > :where(.alignfull),
.wp-site-blocks main > .wp-block-post-content > .ppc-page-hero.alignfull {
	left: 50% !important;
	margin-left: -50vw !important;
	margin-right: -50vw !important;
	max-width: 100vw !important;
	width: 100vw !important;
}

.wp-site-blocks main.has-global-padding > .alignfull {
	left: calc(50% - var(--wp--style--root--padding-left, 0px)) !important;
	margin-left: -50vw !important;
	margin-right: -50vw !important;
	max-width: 100vw !important;
	width: 100vw !important;
}

.wp-site-blocks main > .wp-block-post-content.has-global-padding > .alignfull,
.wp-site-blocks main > .wp-block-post-content > .alignfull {
	left: 50% !important;
	margin-left: -50vw !important;
	margin-right: -50vw !important;
	max-width: 100vw !important;
	width: 100vw !important;
}

.ppc-site-header {
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent);
	box-shadow: 0 2px 8px rgb(32 48 64 / 8%);
	position: relative;
	z-index: 10;
}

.ppc-site-header > .ppc-utility-strip.alignfull {
	max-width: none !important;
	width: 100vw !important;
}

.ppc-utility-strip {
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--small);
	padding-bottom: 6px;
	padding-top: 6px;
}

.ppc-utility-strip p {
	margin: 0;
}

.ppc-utility-strip a {
	color: var(--wp--preset--color--base);
	font-weight: 700;
	text-decoration-color: var(--wp--preset--color--accent-2);
}

.ppc-utility-search {
	margin: 0;
	max-width: 220px;
}

.ppc-utility-search .wp-block-search__inside-wrapper {
	gap: 6px;
}

.ppc-utility-search .wp-block-search__input {
	background: var(--wp--preset--color--base);
	border: 1px solid rgb(255 255 255 / 38%);
	border-radius: 4px;
	font-size: var(--wp--preset--font-size--small);
	min-height: 34px;
	padding: 0 .65rem;
}

.ppc-main-header {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: .35rem;
	padding-bottom: 8px;
	padding-top: 8px;
}

.ppc-main-header > * {
	min-width: 0;
}

.ppc-main-header > .wp-block-group:first-child {
	gap: .75rem;
}

.ppc-task-nav {
	max-width: 100%;
	min-width: 0;
	width: 100%;
}

.ppc-task-nav .wp-block-navigation__responsive-container,
.ppc-task-nav .wp-block-navigation__responsive-close,
.ppc-task-nav .wp-block-navigation__responsive-dialog,
.ppc-task-nav .wp-block-navigation__responsive-container-content {
	max-width: 100%;
	min-width: 0;
	width: 100%;
}

.ppc-task-nav .wp-block-navigation__container {
	flex-wrap: wrap;
	max-width: 100%;
	overflow: visible;
	padding-bottom: 2px;
	width: 100%;
}

.ppc-task-nav .wp-block-navigation-item__content {
	border-radius: 4px;
	padding: .25rem .4rem;
	text-decoration: none;
	white-space: nowrap;
}

.ppc-task-nav .wp-block-navigation-item__content:hover,
.ppc-task-nav .wp-block-navigation-item__content:focus,
.ppc-task-nav .current-menu-item > .wp-block-navigation-item__content,
.ppc-task-nav .current-menu-ancestor > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--accent-6);
	color: var(--wp--preset--color--contrast);
}

.ppc-task-nav .wp-block-navigation__submenu-icon {
	height: .65rem;
	margin-left: .2rem;
	width: .65rem;
}

.ppc-task-nav .has-child .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 8px;
	box-shadow: 0 16px 36px rgba(32, 48, 64, .16);
	color: var(--wp--preset--color--contrast);
	min-width: 230px;
	padding: .45rem;
	z-index: 50;
}

.ppc-task-nav .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	border-radius: 6px;
	display: block;
	line-height: 1.35;
	padding: .55rem .65rem;
	white-space: normal;
	width: 100%;
}

.ppc-task-nav .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.ppc-task-nav .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus {
	background: var(--wp--preset--color--accent-6);
	color: var(--wp--preset--color--contrast);
}

.ppc-site-footer {
	border-top: 4px solid var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--base);
}

.ppc-site-footer a,
.ppc-site-footer .wp-block-navigation-item__content {
	color: var(--wp--preset--color--base);
}

.ppc-site-footer .wp-block-list {
	display: grid;
	gap: .5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ppc-site-footer .wp-block-list a {
	color: color-mix(in srgb, var(--wp--preset--color--base) 88%, transparent);
	font-weight: 700;
	text-decoration-color: transparent;
	text-underline-offset: .2em;
}

.ppc-site-footer .wp-block-list a:hover,
.ppc-site-footer .wp-block-list a:focus {
	color: var(--wp--preset--color--base);
	text-decoration-color: var(--wp--preset--color--accent-2);
}

.ppc-site-footer {
	background: linear-gradient(180deg, #182838, #142331);
}

.ppc-footer-main {
	display: grid;
	gap: clamp(2rem, 5vw, 4rem);
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
	padding-bottom: clamp(1.5rem, 3vw, 2.25rem);
	padding-top: clamp(1.5rem, 3vw, 2.25rem);
}

.ppc-footer-brand {
	max-width: 560px !important;
}

.ppc-footer-eyebrow {
	color: var(--wp--preset--color--accent-2);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .08em;
	margin: 0 0 .55rem;
	text-transform: uppercase;
}

.ppc-footer-title {
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	line-height: 1.15;
	margin-bottom: .7rem;
}

.ppc-footer-office {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
	line-height: 1.45;
	margin-bottom: .65rem;
}

.ppc-footer-summary {
	color: color-mix(in srgb, var(--wp--preset--color--base) 78%, transparent);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	margin-bottom: 1.2rem;
	max-width: 36rem;
}

.ppc-footer-actions {
	gap: .7rem;
}

.ppc-footer-action {
	margin: 0;
}

.ppc-footer-nav {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3rem);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ppc-footer-nav-group {
	margin: 0 !important;
	max-width: none !important;
}

.ppc-site-footer h3,
.ppc-footer-nav-group h3 {
	color: var(--wp--preset--color--accent-2);
	font-size: .82rem !important;
	font-weight: 800;
	letter-spacing: .06em;
	margin: 0 0 .8rem;
	text-transform: uppercase;
}

.ppc-footer-list {
	display: grid;
	gap: .5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ppc-footer-list li {
	margin: 0;
}

.ppc-footer-list a {
	color: color-mix(in srgb, var(--wp--preset--color--base) 88%, transparent);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	text-decoration-color: transparent;
	text-underline-offset: .2em;
}

.ppc-footer-list a:hover,
.ppc-footer-list a:focus {
	color: var(--wp--preset--color--base);
	text-decoration-color: var(--wp--preset--color--accent-2);
}

.ppc-footer-bottom {
	border-top: 1px solid rgb(255 255 255 / 14%);
	color: color-mix(in srgb, var(--wp--preset--color--base) 76%, transparent);
	gap: .75rem 1.5rem;
	padding-bottom: 1rem;
	padding-top: 1rem;
}

.ppc-footer-bottom p {
	margin: 0;
}

.ppc-footer-contact {
	border-left: 4px solid var(--wp--preset--color--accent-2);
	margin-top: 1rem;
	padding-left: 1rem;
}

.ppc-footer-contact p {
	margin: .35rem 0;
}

.ppc-contact-section {
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
	padding-top: clamp(2.5rem, 5vw, 4rem);
}

.ppc-contact-head {
	grid-template-columns: minmax(0, 38%) minmax(0, 1fr) !important;
}

.ppc-contact-head > .wp-block-group,
.ppc-contact-head > .ppc-section-intro {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: 100% !important;
	width: 100%;
}

.ppc-contact-layout {
	align-items: start !important;
	gap: clamp(1.5rem, 4vw, 3rem) !important;
}

.ppc-contact-aside,
.ppc-contact-form-card {
	margin-block-start: 0 !important;
}

.ppc-contact-aside {
	display: grid;
	gap: 1rem;
}

.ppc-contact-panel.is-featured {
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--wp--preset--color--accent-2) 11%, var(--wp--preset--color--base)), var(--wp--preset--color--base));
	border-top: 5px solid var(--wp--preset--color--accent-2);
}

.ppc-contact-panel h2,
.ppc-contact-panel h3,
.ppc-contact-form-card h2,
.ppc-contact-form-card h3 {
	margin-top: 0;
}

.ppc-contact-panel p:last-child,
.ppc-contact-form-card p:last-child {
	margin-bottom: 0;
}

.ppc-contact-list {
	display: grid;
	gap: .75rem;
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
}

.ppc-contact-list li {
	border-left: 3px solid var(--wp--preset--color--accent-2);
	margin: 0;
	padding-left: .8rem;
}

.ppc-contact-list strong {
	display: block;
}

.ppc-contact-note {
	background: color-mix(in srgb, var(--wp--preset--color--accent-6) 72%, var(--wp--preset--color--base));
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	border-radius: 6px;
	padding: 1rem;
}

.ppc-contact-note p {
	margin: 0;
}

.ppc-contact-form-card {
	background: var(--wp--preset--color--base);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	border-radius: 6px;
	box-shadow: 0 16px 36px rgb(32 48 64 / 10%);
	padding: clamp(1.25rem, 3vw, 1.75rem);
}

.ppc-contact-form-intro {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 76%, transparent);
	margin-top: -.35rem;
	max-width: 42rem;
}

.ppc-contact-form-card .ppc-form {
	border: 0;
	padding: 0;
}

.ppc-contact-form-card .ppc-form h3 {
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	margin-bottom: 1rem;
	padding-bottom: .85rem;
}

.ppc-contact-form-card .ppc-form p {
	margin-bottom: 1rem;
	margin-top: 0;
}

.ppc-contact-form-card .ppc-form input,
.ppc-contact-form-card .ppc-form textarea {
	background: color-mix(in srgb, var(--wp--preset--color--accent-6) 42%, var(--wp--preset--color--base));
	border-color: color-mix(in srgb, var(--wp--preset--color--contrast) 20%, transparent);
	box-sizing: border-box;
	min-height: 44px;
}

.ppc-contact-form-card .ppc-form textarea {
	min-height: 150px;
}

.ppc-contact-form-card .ppc-form input:focus,
.ppc-contact-form-card .ppc-form textarea:focus {
	border-color: var(--wp--preset--color--accent-1);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--accent-2) 22%, transparent);
	outline: none;
}

.ppc-breadcrumbs {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 72%, transparent);
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: 0;
	margin-top: 0;
	padding-bottom: .55rem;
	padding-top: .55rem;
}

.ppc-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ppc-breadcrumbs li:not(:last-child)::after {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 42%, transparent);
	content: "/";
	margin-left: .35rem;
}

.ppc-breadcrumbs a {
	font-weight: 700;
}

.ppc-kicker {
	color: var(--wp--preset--color--accent-3);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.ppc-official-hero {
	background:
		linear-gradient(110deg, rgb(32 48 64 / 96%) 0%, rgb(48 64 160 / 92%) 52%, rgb(0 176 240 / 76%) 100%),
		var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	overflow: hidden;
	position: relative;
}

.ppc-official-hero::after {
	background: linear-gradient(135deg, transparent 0 55%, rgb(48 128 64 / 22%) 55% 72%, transparent 72%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.ppc-official-hero > * {
	position: relative;
	z-index: 1;
}

.ppc-official-hero a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--base);
}

.ppc-page-hero {
	background: linear-gradient(120deg, var(--wp--preset--color--contrast), var(--wp--preset--color--accent-1));
	color: var(--wp--preset--color--base);
}

.ppc-hero--legal {
	background: linear-gradient(120deg, #172536, #274a78);
}

.ppc-hero--service {
	background: linear-gradient(120deg, #1d3142, #3040a0);
}

.ppc-hero--records {
	background: linear-gradient(120deg, #203040, #226f8f);
}

.ppc-hero--education {
	background: linear-gradient(120deg, #1f3c48, #308040);
}

.ppc-hero--contact {
	background: linear-gradient(120deg, #203040, #3040a0 60%, #285f76);
}

.ppc-page-hero a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--base);
}

.ppc-page-hero.ppc-section,
.ppc-official-hero.ppc-section {
	padding-bottom: clamp(1.2rem, 2.4vw, 2.05rem);
	padding-top: clamp(1.2rem, 2.4vw, 2.05rem);
}

.ppc-page-hero h1 {
	font-size: clamp(1.9rem, 3.5vw, 2.65rem);
	line-height: 1.1;
	max-width: 820px;
}

.ppc-page-hero .wp-block-buttons {
	margin-top: 1.2rem;
}

.ppc-home-hero.ppc-section {
	padding-bottom: clamp(2rem, 4vw, 3.75rem);
	padding-top: clamp(2rem, 4vw, 3.75rem);
}

.ppc-home-hero-layout {
	align-items: center;
	display: grid;
	gap: clamp(1.5rem, 4vw, 3rem);
	grid-template-columns: minmax(0, .94fr) minmax(320px, .72fr);
}

.ppc-home-hero-copy {
	max-width: 46rem;
}

.ppc-home-hero-media {
	margin: 0;
	max-width: 520px;
	justify-self: end;
	width: 100%;
}

.ppc-home-hero-media img {
	aspect-ratio: 4 / 3;
	border: 1px solid rgb(255 255 255 / 28%);
	border-radius: 12px;
	box-shadow: 0 24px 56px rgb(0 0 0 / 26%);
	display: block;
	height: clamp(260px, 28vw, 380px);
	object-fit: cover;
	width: 100%;
}

.ppc-hero-label {
	background: rgb(255 255 255 / 14%);
	border-left: 4px solid var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--base);
	display: inline-block;
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .08em;
	padding: .45rem .7rem;
	text-transform: uppercase;
}

.ppc-lede {
	font-size: clamp(1.08rem, 2vw, 1.28rem);
	line-height: 1.55;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: 760px;
}

.ppc-section {
	padding-bottom: var(--wp--preset--spacing--60);
	padding-top: var(--wp--preset--spacing--60);
}

.ppc-section + .ppc-section {
	padding-top: clamp(1.8rem, 4vw, 3.25rem);
}

.ppc-service-process {
	counter-reset: process-step;
}

.ppc-service-process > .wp-block-group {
	counter-increment: process-step;
	position: relative;
}

.ppc-service-process > .wp-block-group::before {
	background: var(--wp--preset--color--accent-1);
	border-radius: 999px;
	color: var(--wp--preset--color--base);
	content: counter(process-step, decimal-leading-zero);
	display: inline-grid;
	font-size: .78rem;
	font-weight: 800;
	height: 2rem;
	margin-bottom: .75rem;
	place-items: center;
	width: 2rem;
}

.ppc-page-note {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 72%, transparent);
	font-size: .95rem;
}

.ppc-section-tight {
	padding-bottom: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--50);
}

.ppc-split-narrative,
.ppc-process-band,
.ppc-text-band,
.ppc-link-list-band {
	margin-block-start: 0;
}

.ppc-split-narrative {
	align-items: center;
	gap: clamp(1.5rem, 4vw, 3rem);
}

.ppc-split-narrative > .wp-block-group {
	max-width: 44rem;
}

.ppc-svg-illustration {
	margin: 0;
}

.ppc-svg-illustration img {
	aspect-ratio: 3 / 2;
	border: 1px solid var(--ppc-md-outline, #d8e3ec);
	border-radius: 12px;
	display: block;
	height: auto;
	max-height: 300px;
	object-fit: contain;
	width: 100%;
}

.ppc-process-band {
	background: color-mix(in srgb, var(--wp--preset--color--accent-6) 55%, var(--wp--preset--color--base));
	border-bottom: 1px solid var(--ppc-md-outline, #d8e3ec);
	border-top: 1px solid var(--ppc-md-outline, #d8e3ec);
	padding: clamp(1rem, 2.5vw, 1.5rem);
}

.ppc-process-row {
	align-items: flex-start;
	gap: 1rem;
	margin-block-start: 0 !important;
	padding: clamp(1rem, 2vw, 1.35rem) 0;
}

.ppc-process-row + .ppc-process-row {
	border-top: 1px solid var(--ppc-md-outline, #d8e3ec);
}

.ppc-process-number {
	align-items: center;
	background: var(--wp--preset--color--accent-1);
	border-radius: 999px;
	color: var(--wp--preset--color--base);
	display: inline-flex;
	flex: 0 0 2.15rem;
	font-weight: 800;
	height: 2.15rem;
	justify-content: center;
	line-height: 1;
	margin: .1rem 0 0;
	width: 2.15rem;
}

.ppc-process-row h2,
.ppc-process-row h3 {
	font-size: clamp(1.05rem, 1.6vw, 1.25rem);
	margin-bottom: .35rem;
	margin-top: 0;
}

.ppc-process-row p:last-child,
.ppc-text-band p:last-child {
	margin-bottom: 0;
}

.ppc-text-band {
	border-left: 4px solid var(--wp--preset--color--accent-2);
	padding-left: clamp(1rem, 2vw, 1.4rem);
}

.ppc-context-grid {
	align-items: start;
	display: grid;
	gap: clamp(1.5rem, 4vw, 3rem);
	grid-template-columns: minmax(0, .95fr) minmax(280px, .72fr);
}

.ppc-context-grid > * {
	margin-block-start: 0 !important;
}

.ppc-topic-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.ppc-topic-grid > * {
	margin-block-start: 0 !important;
}

.ppc-plain-panel,
.ppc-data-panel,
.ppc-notice-panel,
.ppc-action-panel {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--ppc-md-outline, #d8e3ec);
	border-radius: 8px;
	margin-block-start: 0 !important;
	padding: clamp(1rem, 2vw, 1.35rem);
}

.ppc-plain-panel {
	box-shadow: none;
}

.ppc-data-panel {
	background: color-mix(in srgb, var(--wp--preset--color--accent-6) 55%, var(--wp--preset--color--base));
}

.ppc-notice-panel {
	border-left: 4px solid var(--wp--preset--color--accent-7);
}

.ppc-action-panel {
	border-left: 4px solid var(--wp--preset--color--accent-2);
	box-shadow: 0 10px 24px rgb(32 48 64 / 7%);
}

.ppc-plain-panel h2,
.ppc-plain-panel h3,
.ppc-data-panel h2,
.ppc-data-panel h3,
.ppc-notice-panel h2,
.ppc-notice-panel h3,
.ppc-action-panel h2,
.ppc-action-panel h3 {
	margin-top: 0;
}

.ppc-data-list,
.ppc-resource-filter-list {
	display: grid;
	gap: .65rem;
	list-style: none;
	margin-left: 0;
	padding-left: 0;
}

.ppc-data-list li,
.ppc-resource-filter-list li {
	border-bottom: 1px solid var(--ppc-md-outline, #d8e3ec);
	padding-bottom: .65rem;
}

.ppc-data-list li:last-child,
.ppc-resource-filter-list li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.ppc-stat-strip {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.ppc-stat-strip > * {
	background: color-mix(in srgb, var(--wp--preset--color--accent-6) 60%, var(--wp--preset--color--base));
	border-left: 4px solid var(--wp--preset--color--accent-2);
	margin-block-start: 0 !important;
	padding: 1rem;
}

.ppc-native-list {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--ppc-md-outline, #d8e3ec);
	border-radius: 8px;
	padding: clamp(1rem, 2vw, 1.35rem);
}

.ppc-dynamic-section > * {
	margin-block-start: 0 !important;
}

.ppc-link-list-band {
	background: var(--wp--preset--color--base);
	border-top: 1px solid var(--ppc-md-outline, #d8e3ec);
	padding-top: 1rem;
}

.ppc-link-list-band ul {
	columns: 2 16rem;
	gap: 2rem;
}

.ppc-task-grid,
.ppc-card-grid-government {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.ppc-task-section {
	padding-bottom: clamp(2.25rem, 4vw, 4rem);
	padding-top: clamp(2.25rem, 4vw, 4rem);
}

.ppc-home-task-section {
	overflow: hidden;
}

.ppc-home-task-grid {
	align-items: stretch;
	display: grid !important;
	gap: clamp(.875rem, 2vw, 1.25rem);
	grid-template-areas:
		"primary primary primary primary"
		"register duties learn contact";
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ppc-home-task-grid.has-global-padding {
	padding-left: 0;
	padding-right: 0;
}

.ppc-home-task-grid > .wp-block-group {
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-block-start: 0 !important;
	max-width: none !important;
	min-height: 0;
	width: auto !important;
}

.ppc-home-task-primary,
.ppc-home-task-card {
	display: flex;
	flex-direction: column;
	gap: .7rem;
}

.ppc-home-task-primary.is-style-ppc-material-bento-primary,
.ppc-home-task-card.is-style-ppc-material-service-card {
	min-height: 0;
}

.ppc-home-task-primary.is-style-ppc-material-bento-primary {
	padding: clamp(1.1rem, 2.4vw, 1.5rem);
}

.ppc-home-task-card.is-style-ppc-material-service-card {
	padding: 1rem;
}

.ppc-home-task-primary {
	grid-area: primary;
}

.ppc-home-task-register {
	grid-area: register;
}

.ppc-home-task-duties {
	grid-area: duties;
}

.ppc-home-task-learn {
	grid-area: learn;
}

.ppc-home-task-contact {
	grid-area: contact;
}

.ppc-home-task-primary > :first-child,
.ppc-home-task-card > :first-child {
	margin-top: 0;
}

.ppc-home-task-primary > :last-child,
.ppc-home-task-card > :last-child {
	margin-bottom: 0;
}

.ppc-home-task-primary .wp-block-buttons,
.ppc-home-task-card .wp-block-buttons {
	margin-top: auto;
}

.ppc-home-task-chips {
	gap: .45rem;
}

.ppc-home-task-card .wp-block-heading {
	font-size: clamp(1.02rem, 1.35vw, 1.2rem);
	line-height: 1.18;
}

.ppc-home-task-primary .wp-block-heading {
	font-size: clamp(1.45rem, 2.2vw, 1.9rem) !important;
	line-height: 1.12;
}

.ppc-home-task-primary p:not(.is-style-ppc-material-chip),
.ppc-home-task-card p:not(.is-style-ppc-material-chip) {
	font-size: clamp(.9rem, 1.05vw, 1rem);
	line-height: 1.45;
}

.ppc-section-head {
	align-items: end;
	display: grid;
	gap: .75rem clamp(1.5rem, 4vw, 3rem);
	grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
	margin-bottom: 1.35rem;
}

.ppc-section-head .ppc-kicker,
.ppc-section-head h2,
.ppc-section-head p {
	margin-bottom: 0;
	margin-top: 0;
}

.ppc-section-intro {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 76%, transparent);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.55;
}

.ppc-service-finder {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.ppc-task-grid > *,
.ppc-card-grid-government > * {
	margin-block-start: 0 !important;
}

.ppc-task-card,
.ppc-info-panel,
.ppc-resource-panel,
.ppc-contact-panel,
.ppc-step,
.ppc-stat {
	background: var(--wp--preset--color--base);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	border-radius: 6px;
	box-shadow: 0 10px 24px rgb(32 48 64 / 8%);
	padding: 1.25rem;
}

.ppc-task-card {
	border-top: 4px solid var(--wp--preset--color--accent-2);
	display: flex;
	flex-direction: column;
	gap: .85rem;
	min-height: 100%;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.ppc-task-card:hover,
.ppc-task-card:focus-within {
	border-top-color: var(--wp--preset--color--accent-3);
	box-shadow: 0 16px 36px rgb(32 48 64 / 14%);
	transform: translateY(-2px);
}

.ppc-task-card h2,
.ppc-task-card h3,
.ppc-info-panel h2,
.ppc-info-panel h3,
.ppc-resource-panel h2,
.ppc-resource-panel h3,
.ppc-step h2,
.ppc-step h3 {
	margin-top: 0;
}

.ppc-task-card h3 {
	font-size: clamp(1.02rem, 1.6vw, 1.22rem);
	line-height: 1.18;
	margin-bottom: 0;
}

.ppc-task-card p {
	margin-bottom: 0;
	margin-top: 0;
}

.ppc-card-topline {
	align-items: center;
	display: flex;
	gap: .65rem;
	justify-content: space-between;
}

.ppc-card-number {
	align-items: center;
	background: var(--wp--preset--color--accent-6);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent-2) 42%, transparent);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	font-size: .78rem;
	font-weight: 800;
	height: 2rem;
	justify-content: center;
	letter-spacing: .04em;
	line-height: 1;
	width: 2rem;
}

.ppc-card-meta {
	color: var(--wp--preset--color--accent-3);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ppc-card-body {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 82%, transparent);
	font-size: .95rem;
	line-height: 1.55;
}

.ppc-card-action {
	margin-top: auto !important;
	padding-top: .25rem;
}

.ppc-task-card a,
.ppc-resource-panel a {
	font-weight: 700;
}

.ppc-task-card .ppc-card-action a {
	align-items: center;
	background: color-mix(in srgb, var(--wp--preset--color--accent-1) 10%, var(--wp--preset--color--base));
	border-radius: 4px;
	color: var(--wp--preset--color--accent-1);
	display: inline-flex;
	line-height: 1.2;
	padding: .65rem .75rem;
	text-decoration: none;
}

.ppc-task-card .ppc-card-action a::after {
	content: "\2192";
	font-weight: 800;
	margin-left: .5rem;
}

.ppc-task-card .ppc-card-action a:hover,
.ppc-task-card .ppc-card-action a:focus {
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
}

.ppc-definition {
	background: color-mix(in srgb, var(--wp--preset--color--accent-2) 11%, var(--wp--preset--color--base));
	border-left: 5px solid var(--wp--preset--color--accent-2);
	padding: 1rem 1.25rem;
}

.ppc-notice {
	background: color-mix(in srgb, var(--wp--preset--color--accent-7) 18%, var(--wp--preset--color--base));
	border-left: 5px solid var(--wp--preset--color--accent-7);
	padding: 1rem 1.25rem;
}

.ppc-action-band {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.ppc-action-band a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--base);
}

.ppc-step-list {
	counter-reset: ppc-step;
	display: grid;
	gap: 1rem;
}

.ppc-step {
	align-items: start;
	counter-increment: ppc-step;
	display: grid;
	grid-template-columns: 2rem minmax(0, 1fr);
	gap: 1rem;
}

.ppc-step > * {
	grid-column: 2;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: 100% !important;
	min-width: 0;
	width: 100%;
}

.ppc-step > * > :first-child {
	margin-top: 0;
}

.ppc-step > * > :last-child {
	margin-bottom: 0;
}

.ppc-step::before {
	align-items: center;
	background: var(--wp--preset--color--accent-1);
	border-radius: 999px;
	color: var(--wp--preset--color--base);
	content: counter(ppc-step);
	display: inline-flex;
	font-weight: 700;
	height: 2rem;
	justify-content: center;
	line-height: 1;
	width: 2rem;
}

.ppc-table-panel {
	background: var(--wp--preset--color--base);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	border-radius: 6px;
	overflow: hidden;
}

.ppc-archive-hero {
	background: linear-gradient(120deg, var(--wp--preset--color--contrast), var(--wp--preset--color--accent-1));
	color: var(--wp--preset--color--base);
	padding-bottom: clamp(2rem, 4vw, 3.25rem);
	padding-top: clamp(2rem, 4vw, 3.25rem);
}

.ppc-archive-hero a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--base);
}

.ppc-archive-actions,
.ppc-action-row,
.ppc-list-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .7rem;
}

.ppc-list-actions {
	margin-bottom: 0;
	margin-top: 1rem;
}

.ppc-detail-grid {
	align-items: start;
	display: grid;
	gap: clamp(1.2rem, 4vw, 2rem);
	grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
	margin-bottom: var(--wp--preset--spacing--60);
	margin-top: var(--wp--preset--spacing--50);
}

.ppc-detail-main,
.ppc-detail-aside {
	background: var(--wp--preset--color--base);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	border-radius: 6px;
	box-shadow: 0 10px 24px rgb(32 48 64 / 8%);
	padding: clamp(1.1rem, 3vw, 1.75rem);
}

.ppc-detail-aside {
	border-top: 5px solid var(--wp--preset--color--accent-2);
}

.ppc-detail-main h2:first-child,
.ppc-detail-aside h2:first-child {
	margin-top: 0;
}

.ppc-form-notice {
	border-radius: 6px;
	margin-bottom: 1rem;
	padding: 1rem 1.2rem;
}

.ppc-form-notice.is-success {
	background: color-mix(in srgb, var(--wp--preset--color--accent-3) 14%, var(--wp--preset--color--base));
	border-left: 5px solid var(--wp--preset--color--accent-3);
}

.ppc-form-notice.is-error {
	background: color-mix(in srgb, var(--wp--preset--color--accent-8) 12%, var(--wp--preset--color--base));
	border-left: 5px solid var(--wp--preset--color--accent-8);
}

.ppc-resource-feature {
	background: linear-gradient(135deg, var(--wp--preset--color--base), color-mix(in srgb, var(--wp--preset--color--accent-2) 13%, var(--wp--preset--color--base)));
	border-top: 6px solid var(--wp--preset--color--accent-4);
}

.ppc-mini-list {
	display: grid;
	gap: .65rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ppc-mini-list li {
	border-left: 3px solid var(--wp--preset--color--accent-4);
	padding-left: .75rem;
}

.ppc-pdf-cover {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent);
	box-shadow: 0 12px 28px rgb(32 48 64 / 16%);
}

:where(.wp-site-blocks *:focus-visible) {
	outline: 3px solid var(--wp--preset--color--accent-7);
	outline-offset: 3px;
}

@media (max-width: 1100px) {
	.ppc-section-head {
		grid-template-columns: 1fr;
	}

	.ppc-footer-main {
		grid-template-columns: 1fr;
	}

	.ppc-contact-layout {
		flex-direction: column;
		grid-template-columns: 1fr !important;
	}

	.ppc-contact-head {
		grid-template-columns: 1fr !important;
	}

	.ppc-home-hero-layout {
		grid-template-columns: 1fr;
	}

	.ppc-context-grid {
		grid-template-columns: 1fr;
	}

	.ppc-home-hero-media {
		justify-self: start;
		max-width: 100%;
	}

	.ppc-split-narrative {
		grid-template-columns: 1fr !important;
	}

	.ppc-contact-layout > .wp-block-column {
		flex-basis: auto !important;
		width: 100%;
	}

	.ppc-service-finder {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ppc-home-task-grid {
		grid-template-areas:
			"primary primary"
			"register duties"
			"learn contact";
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	.ppc-main-header {
		align-items: flex-start;
		gap: .35rem;
		padding-bottom: 8px;
		padding-top: 8px;
	}

	.ppc-main-header .wp-block-site-tagline {
		display: none;
	}

	.ppc-utility-strip {
		padding-bottom: 5px;
		padding-top: 5px;
	}

	.ppc-utility-strip > .wp-block-group > .wp-block-group {
		display: none;
	}

	.ppc-utility-search {
		display: none;
	}

	.ppc-task-nav .wp-block-navigation__responsive-container-open {
		margin-left: auto;
	}

	.ppc-task-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		gap: .35rem;
		overflow: visible;
	}

	.ppc-task-nav .wp-block-navigation__responsive-container.is-menu-open .has-child .wp-block-navigation__submenu-container {
		border: 0;
		border-left: 3px solid var(--wp--preset--color--accent-2);
		border-radius: 0;
		box-shadow: none;
		min-width: 0;
		padding: .25rem 0 .25rem .75rem;
	}

	.ppc-task-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		white-space: normal;
	}

	.ppc-page-hero.ppc-section,
	.ppc-official-hero.ppc-section,
	.ppc-archive-hero {
		padding-bottom: 1.5rem;
		padding-top: 1.5rem;
	}

	.ppc-detail-grid {
		grid-template-columns: 1fr;
	}

	.ppc-step {
		gap: .75rem;
		grid-template-columns: 2rem minmax(0, 1fr);
		padding: 1rem;
	}

	.ppc-task-section {
		padding-bottom: 2rem;
		padding-top: 2rem;
	}

	.ppc-home-task-grid {
		grid-template-areas:
			"primary"
			"register"
			"duties"
			"learn"
			"contact";
		grid-template-columns: 1fr;
	}

	.ppc-service-finder {
		grid-template-columns: 1fr;
	}

	.ppc-link-list-band ul {
		columns: 1;
	}

	.ppc-task-card {
		padding: 1rem;
	}

	.ppc-footer-main {
		padding-bottom: 1.75rem;
		padding-top: 1.75rem;
	}

	.ppc-footer-nav {
		grid-template-columns: 1fr;
	}

	.ppc-footer-bottom {
		align-items: flex-start;
		flex-direction: column;
	}

	.ppc-contact-section {
		padding-bottom: 2rem;
		padding-top: 2rem;
	}

	.ppc-contact-form-card,
	.ppc-contact-panel,
	.ppc-contact-note {
		padding: 1rem;
	}
}
