/*
Theme Name: CMS Hub
Theme URI: https://cms-hub.co.uk
Author: CMS Hub
Description: A polished, accessible block theme for CMS Hub, the plain-English guide for parents dealing with the Child Maintenance Service, DWP and the First-tier Tribunal on their own. Floating glass navigation, deep teal drapery heroes, serif display type and gentle motion. Edit everything in Appearance > Editor. Pairs with the CMS Hub Toolkit plugin.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
Version: 2.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cms-hub
Tags: block-patterns, full-site-editing, accessibility-ready, custom-colors, editor-style, wide-blocks, blog, three-columns
*/

:root {
	--cmsh-radius: 22px;
	--cmsh-radius-lg: 28px;
	--cmsh-shadow: 0 24px 50px -28px rgba(3, 46, 55, 0.55);
	--cmsh-glass: rgba(255, 255, 255, 0.1);
	--cmsh-glass-line: rgba(255, 255, 255, 0.22);
	--cmsh-on-dark-soft: #b6d0d7;
	--cmsh-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ------------------------------------------------------------------ base */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(h1, h2, h3, h4) { text-wrap: balance; }
:where(p, li) { text-wrap: pretty; }
img { max-width: 100%; height: auto; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--wp--preset--color--marigold); outline-offset: 2px; border-radius: 6px; }
.skip-link.screen-reader-text:focus { background: var(--wp--preset--color--marigold); color: var(--wp--preset--color--ink); }
:where(h2, h3)[id] { scroll-margin-top: 6.5rem; }
.wp-site-blocks { overflow-x: clip; }

/* ------------------------------------------------------------------ type helpers */
.is-style-tag, .cmsh-tag {
	display: inline-block; width: fit-content; font-family: var(--wp--preset--font-family--heading); font-style: italic; font-weight: 500;
	font-size: 0.98rem !important; line-height: 1; padding: 0.45rem 0.85rem; border-radius: 999px;
	background: var(--wp--preset--color--surface); color: var(--wp--preset--color--primary); margin-inline: auto;
}
.has-text-align-left.is-style-tag, .cmsh-left .is-style-tag { margin-inline: 0; }
.is-style-tag a { text-decoration: none; color: inherit; }
.cmsh-dark .is-style-tag, .is-style-tag.is-on-dark, .cmsh-hero-glow .is-style-tag, .cmsh-hero-curtain .is-style-tag, .cmsh-page-hero .is-style-tag { background: rgba(255, 255, 255, 0.12); color: var(--wp--preset--color--pill); }
.is-style-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--wp--preset--color--ink-soft); }
.cmsh-dark .is-style-lead { color: var(--cmsh-on-dark-soft); }
.cmsh-mono, .wp-block-code { font-family: var(--wp--preset--font-family--mono); }
.cmsh-num { font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------------ header (floating glass pill) */
.cmsh-top { position: relative; }
.cmsh-site-header { position: absolute; inset: 0 0 auto 0; z-index: 50; padding-top: 0.9rem; color: #fff; }
.cmsh-site-header .cmsh-utility-line { margin: 0 auto 0.5rem; text-align: center; font-size: 0.8125rem; color: var(--cmsh-on-dark-soft); }
.cmsh-navpill {
	background: var(--cmsh-glass); border: 1px solid var(--cmsh-glass-line); border-radius: 999px;
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); padding: 0.45rem 0.5rem 0.45rem 1.1rem !important;
	transition: background .3s var(--cmsh-ease), box-shadow .3s var(--cmsh-ease);
}
.cmsh-site-header .wp-block-site-title a { color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: .6rem; }
.cmsh-site-header .wp-block-site-title a::before, .cmsh-footer .wp-block-site-title a::before {
	content: ""; width: 2rem; height: 2rem; flex: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M6 20 L20 8 L34 20' fill='none' stroke='%23BFD6DD' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M10 18 V33 H30 V18' fill='none' stroke='%23BFD6DD' stroke-width='2.6' stroke-linejoin='round'/%3E%3Cpath d='M13 21 V30 H27' fill='none' stroke='%23BFD6DD' stroke-width='2' stroke-linecap='round' opacity='.6'/%3E%3Ccircle cx='24' cy='23' r='3.2' fill='%23F6B81A'/%3E%3C/svg%3E") center / contain no-repeat;
}
.cmsh-footer .wp-block-site-title a::before { filter: brightness(0.45) saturate(1.6); width: 2.4rem; height: 2.4rem; }
.cmsh-site-header .wp-block-navigation { color: #fff; }
.cmsh-site-header .wp-block-navigation a { text-decoration: none; opacity: .88; }
.cmsh-site-header .wp-block-navigation a:hover, .cmsh-site-header .wp-block-navigation .current-menu-item > a { opacity: 1; }
.cmsh-site-header .wp-block-navigation .wp-block-navigation__submenu-container {
	color: var(--wp--preset--color--ink) !important; background: #fff !important; border: 0 !important; border-radius: 18px; padding: .5rem !important;
	box-shadow: 0 30px 60px -20px rgba(3, 46, 55, .55); min-width: 17rem !important; margin-top: .6rem;
}
.cmsh-site-header .wp-block-navigation .wp-block-navigation__submenu-container a { opacity: 1; border-radius: 12px; padding: .55rem .8rem !important; }
.cmsh-site-header .wp-block-navigation .wp-block-navigation__submenu-container a:hover { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--primary); }
.cmsh-site-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--navy) !important; color: #fff !important; padding: 1.5rem max(16px, 4vw); }
.cmsh-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; box-shadow: none; color: #fff !important; }
.cmsh-site-header .wp-block-navigation__responsive-container-open, .cmsh-site-header .wp-block-navigation__responsive-container-close { color: #fff; }
.cmsh-site-header .wp-block-search__button { background: transparent; color: #fff; border: 0; }
.cmsh-site-header .wp-block-search.wp-block-search__button-only .wp-block-search__input { border-radius: 999px; border: 0; }
.cmsh-btn-leave .wp-block-button__link { background: var(--wp--preset--color--marigold) !important; color: var(--wp--preset--color--ink) !important; white-space: nowrap; }
.cmsh-btn-leave .wp-block-button__link::before { content: "\2192\00a0"; font-weight: 700; }
.cmsh-btn-start .wp-block-button__link { background: var(--wp--preset--color--pill) !important; color: var(--wp--preset--color--navy) !important; white-space: nowrap; }
/* stuck state after scrolling */
.cmsh-site-header.is-stuck { position: fixed; padding-top: .5rem; animation: cmsh-drop .35s var(--cmsh-ease); }
.cmsh-site-header.is-stuck .cmsh-utility-line { display: none; }
.cmsh-site-header.is-stuck .cmsh-navpill { background: rgba(3, 46, 55, .88); box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .6); }
.admin-bar .cmsh-site-header.is-stuck { top: 32px; }
@keyframes cmsh-drop { from { transform: translateY(-110%); } to { transform: none; } }
@media (max-width: 781px) { .cmsh-site-header .cmsh-utility-line { display: none; } }
@media (max-width: 600px) {
	.cmsh-site-header .cmsh-nav-buttons .cmsh-btn-start { display: none !important; }
	.cmsh-site-header .wp-block-site-title { white-space: nowrap; font-size: 1.25rem !important; }
	.cmsh-site-header .wp-block-search { display: none; }
	.cmsh-navpill { padding-left: .8rem !important; }
}

/* ------------------------------------------------------------------ heroes */
.cmsh-hero-glow, .cmsh-hero-curtain { position: relative; isolation: isolate; overflow: hidden; color: #fff; }
.cmsh-hero-glow { background: var(--wp--preset--color--navy); }
.cmsh-hero-glow::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(70% 90% at 50% 100%, #40828e 0%, #063f4a 45%, #032e37 80%); }
.cmsh-hero-curtain { background: linear-gradient(180deg, #032e37, #063f4a 70%); }
.cmsh-hero-curtain::before {
	content: ""; position: absolute; inset: -20px -60px; z-index: -1; filter: blur(5px);
	background:
		repeating-linear-gradient(90deg, rgba(255,255,255,0) 0 9px, rgba(255,255,255,.06) 15px, rgba(0,0,0,.16) 26px, rgba(255,255,255,0) 37px),
		repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 21px, rgba(0,0,0,.10) 34px, rgba(255,255,255,0) 53px);
	animation: cmsh-drape 26s ease-in-out infinite alternate;
}
.cmsh-hero-curtain::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(80% 70% at 50% 115%, rgba(52,150,166,.55), transparent 65%), linear-gradient(180deg, rgba(3,46,55,.6), transparent 40%); }
@keyframes cmsh-drape { from { transform: translateX(0); } to { transform: translateX(40px); } }
.cmsh-hero-glow :where(h1, h2, h3, p), .cmsh-hero-curtain :where(h1, h2, h3, p), .cmsh-dark :where(h1, h2, h3) { color: #fff; }
.cmsh-hero-curtain .wp-block-post-excerpt, .cmsh-hero-curtain .cmsh-sub, .cmsh-hero-glow .cmsh-sub { color: var(--cmsh-on-dark-soft); }
.cmsh-hero-curtain .wp-block-post-excerpt__more-text { display: none; }
.cmsh-page-hero { padding-top: clamp(9.5rem, 16vw, 11.5rem) !important; padding-bottom: clamp(3.5rem, 7vw, 5.5rem) !important; text-align: center; }
.cmsh-page-hero .wp-block-post-title, .cmsh-page-hero h1 { font-size: clamp(2.6rem, 6vw, 4.1rem); max-width: 18ch; margin-inline: auto; }
.cmsh-page-hero .wp-block-post-excerpt { max-width: 46rem; margin-inline: auto; font-size: var(--wp--preset--font-size--large); }
.cmsh-page-hero .cmsh-breadcrumbs ol { justify-content: center; color: var(--cmsh-on-dark-soft); }
.cmsh-page-hero .cmsh-breadcrumbs a { color: var(--cmsh-on-dark-soft); }
.cmsh-page-hero .cmsh-breadcrumbs [aria-current] { color: #fff; }
.cmsh-page-hero .taxonomy-category a { color: var(--wp--preset--color--pill); }
.cmsh-home-hero { padding-top: clamp(9.5rem, 16vw, 12rem) !important; text-align: center; }
.cmsh-home-hero h1 { font-size: clamp(2.9rem, 7vw, 5.2rem); line-height: 1.02; max-width: 17ch; margin-inline: auto; }
.cmsh-home-hero .cmsh-hero-art { max-width: 720px; margin: 0 auto -1rem; }
.cmsh-home-hero .cmsh-hero-art img { width: 100%; }

/* search pill */
.cmsh-search-pill .wp-block-search__inside-wrapper { background: #fff; border-radius: 999px; padding: .35rem; border: 0 !important; box-shadow: 0 20px 40px -20px rgba(0,0,0,.6); }
.cmsh-search-pill .wp-block-search__input { border: 0 !important; background: transparent; padding: .55rem 1rem !important; font-size: 1rem; color: var(--wp--preset--color--ink); }
.cmsh-search-pill .wp-block-search__button { border-radius: 999px !important; background: var(--wp--preset--color--navy) !important; color: #fff !important; padding: .6rem 1.3rem !important; margin: 0 !important; font-weight: 600; }
.cmsh-search-pill { max-width: 36rem; margin-inline: auto; }
.cmsh-chips { gap: .5rem !important; }
.cmsh-chips .wp-block-button__link { background: transparent !important; border: 1px solid rgba(255,255,255,.3) !important; color: var(--cmsh-on-dark-soft) !important; padding: .35rem .9rem !important; font-weight: 500; }
.cmsh-chips .wp-block-button__link:hover { border-color: var(--wp--preset--color--pill) !important; color: #fff !important; }
.cmsh-chips .wp-block-button__link::after { content: none !important; }

/* ------------------------------------------------------------------ buttons */
.wp-block-button__link { transition: background .2s, transform .2s var(--cmsh-ease); display: inline-flex; align-items: center; gap: .4rem; }
.wp-block-button__link::after { content: "\2197"; font-size: .95em; line-height: 1; transition: transform .2s var(--cmsh-ease); }
.wp-block-button__link:hover::after { transform: translate(2px, -2px); }
.wp-block-button__link:active { transform: scale(.98); }
.wp-block-button.is-style-light .wp-block-button__link { background: var(--wp--preset--color--pill); color: var(--wp--preset--color--navy); }
.wp-block-button.is-style-light .wp-block-button__link:hover { background: #d5e6eb; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 1px solid currentColor; color: inherit; padding: calc(.6rem - 1px) calc(1.15rem - 1px); }

/* ------------------------------------------------------------------ cards */
.wp-block-group.is-style-card, .wp-block-group.is-style-card-highlight {
	border-radius: var(--cmsh-radius-lg); padding: 1.6rem !important; height: 100%; box-sizing: border-box; display: flex; flex-direction: column;
	transition: transform .35s var(--cmsh-ease), background .25s, box-shadow .35s var(--cmsh-ease);
}
.wp-block-group.is-style-card { background: var(--wp--preset--color--surface); }
.wp-block-group.is-style-card:hover { background: var(--wp--preset--color--primary-soft); transform: translateY(-3px); }
.wp-block-group.is-style-card-highlight { background: var(--wp--preset--color--primary); color: #fff; }
.wp-block-group.is-style-card-highlight:hover { transform: translateY(-3px); box-shadow: var(--cmsh-shadow); }
.is-style-card-highlight :where(h2, h3, h4, a) { color: #fff; }
.is-style-card-highlight p { color: var(--cmsh-on-dark-soft); }
.is-style-card-highlight .wp-block-button__link { background: var(--wp--preset--color--pill); color: var(--wp--preset--color--navy); }
.is-style-card > :first-child, .is-style-card-highlight > :first-child { margin-top: 0; }
.is-style-card > .wp-block-buttons:last-child, .is-style-card-highlight > .wp-block-buttons:last-child { margin-top: auto; padding-top: 1rem; }
.is-style-card h3 a, .is-style-card-highlight h3 a { text-decoration: none; }
.wp-block-columns.is-equal-height > .wp-block-column { display: flex; flex-direction: column; }
.wp-block-columns.is-equal-height > .wp-block-column > .wp-block-group { flex: 1; }
.cmsh-icon-tile { width: 2.9rem; height: 2.9rem; border-radius: 14px; display: grid !important; place-items: center; background: var(--wp--preset--color--primary); color: #fff; margin: 0 !important; font-size: 1.25rem; line-height: 1; }
.is-style-card-highlight .cmsh-icon-tile { background: #fff; color: var(--wp--preset--color--primary); }
.cmsh-icon-tile svg { width: 1.35rem; height: 1.35rem; }

.wp-block-group.is-style-panel { background: var(--wp--preset--color--surface); border-radius: var(--cmsh-radius-lg); padding: clamp(1.4rem, 3vw, 2.2rem) !important; }
.wp-block-group.is-style-glass { background: var(--cmsh-glass); border: 1px solid var(--cmsh-glass-line); border-radius: var(--cmsh-radius-lg); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); padding: clamp(1.4rem, 3vw, 2.4rem) !important; color: #fff; }
.is-style-glass :where(h2, h3, p) { color: #fff; }
.is-style-glass p { color: var(--cmsh-on-dark-soft); }

/* ------------------------------------------------------------------ callouts */
.wp-block-group[class*="is-style-callout"] { border-radius: var(--cmsh-radius); padding: 1.3rem 1.4rem 1.3rem 4.4rem !important; position: relative; margin-block: var(--wp--preset--spacing--40); }
.wp-block-group[class*="is-style-callout"]::before { content: "i"; position: absolute; left: 1.2rem; top: 1.25rem; width: 2.3rem; height: 2.3rem; border-radius: 12px; display: grid; place-items: center; font-weight: 700; font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem; color: #fff; background: var(--wp--preset--color--primary); }
.wp-block-group[class*="is-style-callout"] > :first-child { margin-top: 0; }
.wp-block-group[class*="is-style-callout"] > :last-child { margin-bottom: 0; }
.wp-block-group[class*="is-style-callout"] > p:first-child > strong:only-child { font-size: 1.05rem; }
.is-style-callout-info { background: var(--wp--preset--color--primary-soft); }
.is-style-callout-tip { background: var(--wp--preset--color--success-soft); }
.is-style-callout-tip::before { content: "\2713" !important; background: var(--wp--preset--color--success) !important; font-family: var(--wp--preset--font-family--body) !important; }
.is-style-callout-warning { background: var(--wp--preset--color--warning-soft); }
.is-style-callout-warning::before { content: "!" !important; background: var(--wp--preset--color--warning) !important; }
.is-style-callout-deadline { background: var(--wp--preset--color--navy); color: #fff; }
.is-style-callout-deadline::before { content: "\23F1" !important; background: var(--wp--preset--color--marigold) !important; color: var(--wp--preset--color--ink) !important; font-family: var(--wp--preset--font-family--body) !important; font-size: 1.1rem !important; }
.is-style-callout-deadline :where(p, li) { color: var(--cmsh-on-dark-soft); }
.is-style-callout-deadline strong { color: #fff; }
.is-style-callout-deadline a { color: var(--wp--preset--color--pill); }

/* ------------------------------------------------------------------ lists */
ol.is-style-steps { list-style: none; counter-reset: step; padding-left: 0 !important; display: grid; gap: .75rem; }
ol.is-style-steps > li { counter-increment: step; position: relative; padding: 1.1rem 1.25rem 1.1rem 4.4rem; margin: 0 !important; background: var(--wp--preset--color--surface); border-radius: 20px; min-height: 2.6rem; }
ol.is-style-steps > li::before { content: counter(step); position: absolute; left: 1.1rem; top: 1rem; width: 2.4rem; height: 2.4rem; border-radius: 12px; background: var(--wp--preset--color--primary); color: #fff; font-weight: 700; display: grid; place-items: center; font-variant-numeric: tabular-nums; }
ul.is-style-checklist { list-style: none; padding-left: 0 !important; }
ul.is-style-checklist > li { position: relative; padding-left: 2rem; }
ul.is-style-checklist > li + li { margin-top: .5rem; }
ul.is-style-checklist > li::before { content: "\2713"; position: absolute; left: 0; top: .05rem; width: 1.35rem; height: 1.35rem; border-radius: 7px; background: var(--wp--preset--color--primary-soft); color: var(--wp--preset--color--primary); font-weight: 700; font-size: .8rem; display: grid; place-items: center; }
.wp-block-post-content :where(ul, ol):not([class*="is-style"]) { padding-left: 1.3rem; }
.wp-block-post-content li + li { margin-top: .35rem; }

/* ------------------------------------------------------------------ tables */
.wp-block-table { border-radius: 18px; overflow: hidden; overflow-x: auto; box-shadow: inset 0 0 0 1px var(--wp--preset--color--line); }
.wp-block-table table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--small); }
.wp-block-table th, .wp-block-table td { border: 0; padding: .85rem 1.1rem; text-align: left; vertical-align: top; }
.wp-block-table thead th { background: var(--wp--preset--color--navy); color: #fff; font-weight: 600; }
.wp-block-table tbody tr:nth-child(even) { background: var(--wp--preset--color--surface); }
.wp-block-table td:first-child { font-weight: 600; }
.wp-block-table figcaption { padding: .6rem 1rem; }
[class*="is-style-callout"] .wp-block-table { background: #fff; }

/* ------------------------------------------------------------------ FAQ / details */
.wp-block-details { background: var(--wp--preset--color--surface); border-radius: 18px; padding: 0; margin-block: .6rem !important; transition: background .25s, color .25s; }
.wp-block-details summary { cursor: pointer; padding: 1.1rem 4rem 1.1rem 1.3rem; font-weight: 600; list-style: none; position: relative; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: ""; position: absolute; right: 1.1rem; top: 50%; width: 2rem; height: 2rem; margin-top: -1rem; border-radius: 50%;
	background: var(--wp--preset--color--pill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23032E37' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / 1rem no-repeat;
	transition: transform .25s var(--cmsh-ease);
}
.wp-block-details[open] { background: var(--wp--preset--color--primary); color: #fff; }
.wp-block-details[open] summary::after { transform: rotate(180deg); background-color: #fff; }
.wp-block-details[open] > :not(summary) { color: var(--cmsh-on-dark-soft); }
.wp-block-details[open] a { color: #fff; }
.wp-block-details > :not(summary) { padding-inline: 1.3rem; margin-top: 0; }
.wp-block-details > :last-child { padding-bottom: 1.2rem; }

/* ------------------------------------------------------------------ home sections */
.cmsh-section { padding-block: clamp(4rem, 9vw, 6.5rem) !important; }
.cmsh-section-head { text-align: center; max-width: 44rem; margin-inline: auto; }
.cmsh-section-head h2 { font-size: clamp(2.3rem, 5vw, 3.3rem); }
.cmsh-left .cmsh-section-head, .cmsh-section-head.has-text-align-left { text-align: left; margin-inline: 0; }
.cmsh-sources { color: var(--wp--preset--color--ink-soft); }
.cmsh-sources ul { list-style: none; padding: 0 !important; margin: 0; display: flex; flex-wrap: wrap; gap: .6rem 2.6rem; justify-content: center; font-weight: 600; font-size: 1.05rem; opacity: .8; }
.cmsh-sources ul li { margin: 0 !important; }

.cmsh-stats-band { position: relative; }
.cmsh-stats-art { height: 420px; display: flex; justify-content: center; align-items: flex-start; padding-top: 2.2rem; }
.cmsh-stats-art img { height: 260px; width: auto; max-width: 100%; }
.cmsh-stats-bar { margin-top: -140px !important; position: relative; z-index: 2; background: var(--wp--preset--color--navy); border-radius: var(--cmsh-radius-lg); color: #fff; padding: 2rem clamp(1.2rem, 4vw, 2.6rem) !important; box-shadow: 0 30px 60px -30px #032e37; }
.cmsh-stats-bar .wp-block-column { text-align: center; }
.cmsh-stats-bar .wp-block-column + .wp-block-column { border-left: 1px solid rgba(255,255,255,.15); }
@media (max-width: 781px) { .cmsh-stats-bar .wp-block-column + .wp-block-column { border-left: 0; border-top: 1px solid rgba(255,255,255,.15); padding-top: 1rem; } }
.cmsh-stat { font-family: var(--wp--preset--font-family--body); font-size: clamp(2.2rem, 4vw, 2.75rem); font-weight: 700; line-height: 1; letter-spacing: -.02em; margin: 0; color: #fff; font-variant-numeric: tabular-nums; }
.cmsh-stat-label { margin: .5rem 0 0 !important; font-size: .9rem; color: var(--cmsh-on-dark-soft); }
.cmsh-stats-source { border-top: 1px solid rgba(255,255,255,.15); padding-top: 1rem; margin-top: 1.5rem !important; text-align: center; font-size: .82rem; color: var(--cmsh-on-dark-soft); }
.cmsh-stats-source a { color: var(--cmsh-on-dark-soft); }

.cmsh-rows { display: grid; gap: .8rem; }
.cmsh-line-row { background: var(--wp--preset--color--surface); border-radius: var(--cmsh-radius-lg); padding: 1rem 1.2rem !important; transition: background .25s, transform .3s var(--cmsh-ease); }
.cmsh-line-row:hover { background: var(--wp--preset--color--primary-soft); transform: translateX(4px); }
.cmsh-line-row .cmsh-jnum { width: 3.4rem; height: 3.4rem; border-radius: 16px; background: var(--wp--preset--color--primary); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 1.2rem; margin: 0 !important; flex: none; font-variant-numeric: tabular-nums; }
.cmsh-line-row h3 { margin: 0; font-size: 1.15rem; }
.cmsh-line-row .cmsh-limit { margin: 0; color: var(--wp--preset--color--primary); font-weight: 600; font-size: .85rem; }
.cmsh-line-row .cmsh-limit::before { content: "\23F1\00a0"; }
.cmsh-line-row p { margin: 0; }
.cmsh-line-row > .wp-block-columns { margin: 0 !important; align-items: center !important; }

.cmsh-tracker .cmsh-state { display: inline-flex; align-items: center; gap: .4rem; border-radius: 999px; padding: .3rem .8rem; font-size: .8rem; font-weight: 600; white-space: nowrap; margin: 0; }
.cmsh-state::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.cmsh-state.is-in-force { background: var(--wp--preset--color--success-soft); color: var(--wp--preset--color--success); }
.cmsh-state.is-announced { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent); }
.cmsh-state.is-none { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--ink-soft); }
.cmsh-tracker .cmsh-line-row { background: #fff; }

/* ------------------------------------------------------------------ article cards (query loop) */
.cmsh-card-grid .wp-block-post { background: #fff; border-radius: var(--cmsh-radius-lg); overflow: hidden; box-shadow: inset 0 0 0 1px var(--wp--preset--color--line); display: flex; flex-direction: column; position: relative; transition: transform .35s var(--cmsh-ease), box-shadow .35s var(--cmsh-ease); }
.cmsh-card-grid .wp-block-post:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px var(--wp--preset--color--line), var(--cmsh-shadow); }
.cmsh-card-grid .wp-block-post-featured-image { margin: 0; overflow: hidden; }
.cmsh-card-grid .wp-block-post-featured-image img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; transition: transform .6s var(--cmsh-ease); }
.cmsh-card-grid .wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.cmsh-card-grid .taxonomy-category { position: absolute; top: 1rem; right: 1rem; margin: 0; z-index: 2; }
.cmsh-card-grid .taxonomy-category a { display: inline-block; background: var(--wp--preset--color--navy); color: #fff; border-radius: 999px; padding: .3rem .75rem; font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.cmsh-card-grid .taxonomy-category .wp-block-post-terms__separator { display: none; }
.cmsh-card-grid .taxonomy-category a + a { display: none; }
.cmsh-card-grid .wp-block-post-title { margin: 1.3rem 1.4rem 0; font-family: var(--wp--preset--font-family--body); font-weight: 600; font-size: 1.15rem; line-height: 1.35; letter-spacing: 0; }
.cmsh-card-grid .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--ink); }
.cmsh-card-grid .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.cmsh-card-grid .wp-block-post-title a:hover { color: var(--wp--preset--color--primary); }
.cmsh-card-grid .wp-block-post-excerpt { margin: .6rem 1.4rem 0; color: var(--wp--preset--color--ink-soft); font-size: .95rem; flex: 1; }
.cmsh-card-grid .wp-block-post-excerpt__more-text { display: none; }
.cmsh-card-grid .wp-block-post-date { margin: 1.2rem 0 0; border-top: 1px solid var(--wp--preset--color--line); padding: .85rem 1.4rem; font-size: .82rem; color: var(--wp--preset--color--ink-soft); }
.cmsh-cat-chips { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.cmsh-cat-chips li { margin: 0 !important; }
.cmsh-cat-chips a { display: inline-block; background: var(--wp--preset--color--surface); border-radius: 999px; padding: .5rem 1rem; text-decoration: none; color: var(--wp--preset--color--ink); font-weight: 600; font-size: .9rem; }
.cmsh-cat-chips a:hover, .cmsh-cat-chips .current-cat a { background: var(--wp--preset--color--primary); color: #fff; }
.wp-block-query-pagination { gap: .5rem; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { border-radius: 999px; padding: .4rem .9rem; background: var(--wp--preset--color--surface); text-decoration: none; }
.wp-block-query-pagination .current { background: var(--wp--preset--color--primary); color: #fff; }

/* ------------------------------------------------------------------ guide layout */
.cmsh-meta-card { position: relative; z-index: 3; margin-top: -2.6rem !important; background: #fff; border-radius: var(--cmsh-radius-lg); box-shadow: inset 0 0 0 1px var(--wp--preset--color--line), var(--cmsh-shadow); padding: 1.1rem 1.4rem !important; }
.cmsh-meta-card p, .cmsh-meta-card .wp-block-post-date { margin: 0; font-size: .9rem; color: var(--wp--preset--color--ink-soft); }
.cmsh-meta-card .cmsh-reading-time > span { display: none; }
.cmsh-meta-item { display: inline-flex !important; align-items: center; gap: .45rem; }
.cmsh-meta-item::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--wp--preset--color--primary); }
.cmsh-guide-sidebar { position: sticky; top: 6.5rem; }
.cmsh-guide-toc { position: sticky; top: 6.5rem; }
@media (max-width: 1023px) { .cmsh-guide-sidebar, .cmsh-guide-toc { position: static; } .cmsh-guide-cols { flex-wrap: wrap !important; } .cmsh-guide-cols > .wp-block-column { flex-basis: 100% !important; } }
.cmsh-guide-body { font-size: 1.0625rem; }
.cmsh-guide-body .wp-block-post-content > h2 { margin-top: 3.5rem; }
.cmsh-guide-body .wp-block-post-content > .is-style-lead:first-child { font-family: var(--wp--preset--font-family--heading); font-size: 1.65rem; line-height: 1.4; color: var(--wp--preset--color--ink); }
.cmsh-sources-box { background: var(--wp--preset--color--surface); border-radius: var(--cmsh-radius-lg); padding: 1.5rem 1.6rem !important; margin-top: 3rem !important; }
.cmsh-sources-box ul { list-style: none; padding: 0 !important; margin: .8rem 0 0; }
.cmsh-sources-box li { font-family: var(--wp--preset--font-family--mono); font-size: .85rem; padding: .7rem 0 .7rem 1.8rem; border-top: 1px solid var(--wp--preset--color--line); position: relative; margin: 0 !important; color: var(--wp--preset--color--primary); }
.cmsh-sources-box li::before { content: "\00a7"; position: absolute; left: .2rem; font-weight: 700; color: var(--wp--preset--color--primary); }
.cmsh-sources-box li a { color: var(--wp--preset--color--primary); }
.cmsh-deadline-panel { background: var(--wp--preset--color--navy); color: #fff; border-radius: var(--cmsh-radius-lg); padding: 1.6rem !important; }
.cmsh-deadline-panel h2, .cmsh-deadline-panel h3 { color: #fff; font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: 1.7rem; line-height: 1.15; }
.cmsh-deadline-panel p { color: var(--cmsh-on-dark-soft); }
.cmsh-deadline-panel .wp-block-button__link { background: var(--wp--preset--color--pill); color: var(--wp--preset--color--navy); }

/* single posts */
.cmsh-post-figure { margin-top: -3rem !important; position: relative; z-index: 3; }
.cmsh-post-figure img { border-radius: var(--cmsh-radius-lg); box-shadow: var(--cmsh-shadow); }
.cmsh-author { background: var(--wp--preset--color--surface); border-radius: var(--cmsh-radius-lg); padding: 1.4rem 1.6rem !important; }

/* 404 */
.cmsh-404 .is-style-glass { max-width: 30rem; margin-inline: auto; text-align: center; }
.cmsh-404 .cmsh-big { font-family: var(--wp--preset--font-family--body); font-weight: 700; font-size: clamp(4rem, 12vw, 6rem); line-height: 1; letter-spacing: -.03em; margin: 0; }

/* ------------------------------------------------------------------ footer */
.cmsh-footer { background: var(--wp--preset--color--surface); }
.cmsh-footer h2 { font-family: var(--wp--preset--font-family--body); font-weight: 600; font-size: 1.05rem; letter-spacing: 0; }
.cmsh-footer ul { list-style: none; padding: 0 !important; margin: 0; }
.cmsh-footer li + li { margin-top: .55rem; }
.cmsh-footer a { color: var(--wp--preset--color--ink-soft); text-decoration: none; }
.cmsh-footer a:hover { color: var(--wp--preset--color--primary); }
.cmsh-footer .wp-block-site-title a { color: var(--wp--preset--color--ink); }
.cmsh-footer .wp-block-site-title { font-size: 1.9rem; }
.cmsh-safety { background: #fff; border-radius: 18px; padding: 1rem 1.15rem !important; box-shadow: inset 0 0 0 1px var(--wp--preset--color--line); }

/* ------------------------------------------------------------------ motion: reveal on scroll */
.cmsh-motion .cmsh-r { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--cmsh-ease), transform .8s var(--cmsh-ease); transition-delay: var(--d, 0s); }
.cmsh-motion .cmsh-r.is-in { opacity: 1; transform: none; }
.cmsh-hero-art img { animation: cmsh-rise 1.1s var(--cmsh-ease) both .15s; }
.cmsh-home-hero h1 { animation: cmsh-rise .9s var(--cmsh-ease) both; }
@keyframes cmsh-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------------------------ print */
@media print {
	.cmsh-site-header, .cmsh-footer, .cmsh-guide-sidebar, .cmsh-guide-toc, .cmsh-noprint, .wp-block-navigation { display: none !important; }
	.cmsh-hero-curtain, .cmsh-hero-glow { background: none !important; color: #000 !important; }
	.cmsh-hero-curtain::before, .cmsh-hero-curtain::after, .cmsh-hero-glow::before { display: none; }
	.cmsh-page-hero { padding-top: 0 !important; }
	.cmsh-hero-curtain :where(h1, p) { color: #000 !important; }
	body { font-size: 11pt; }
}

/* ------------------------------------------------------------------ icon tiles (mask icons) */
.cmsh-icon-tile::before { content: ""; width: 1.35rem; height: 1.35rem; background: currentColor; -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.cmsh-i-cms { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V10M9 21V10M15 21V10M19 21V10M12 3 2 8h20z'/%3E%3C/svg%3E"); }
.cmsh-i-calc { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Cpath d='M8 6h8M8 11h.01M12 11h.01M16 11h.01M8 15h.01M12 15h.01M16 15h.01M8 19h.01M12 19h4'/%3E%3C/svg%3E"); }
.cmsh-i-care { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01'/%3E%3C/svg%3E"); }
.cmsh-i-challenge { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7L3 8M3 3v5h5'/%3E%3C/svg%3E"); }
.cmsh-i-tribunal { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18M7 21h10M4 7h16M5 7l-3 6a3 3 0 0 0 6 0zM19 7l-3 6a3 3 0 0 0 6 0z'/%3E%3C/svg%3E"); }
.cmsh-i-arrears { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='6' width='20' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M6 12h.01M18 12h.01'/%3E%3C/svg%3E"); }
.cmsh-i-complaints { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zM14 2v6h6'/%3E%3Ccircle cx='11.5' cy='14.5' r='2.5'/%3E%3Cpath d='m13.3 16.3 1.7 1.7'/%3E%3C/svg%3E"); }
.cmsh-i-court { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m14 13-7.5 7.5a2.1 2.1 0 0 1-3-3L11 10M16 16l6-6M8 8l6-6M9 7l8 8M21 11l-8-8'/%3E%3C/svg%3E"); }
.cmsh-i-clock { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.cmsh-i-pen { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E"); }
.cmsh-i-pound { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 7c0-5.3-8-5.3-8 0v10h8M6 13h8M6 17h12'/%3E%3C/svg%3E"); }
.cmsh-i-doc { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zM14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E"); }

/* ------------------------------------------------------------------ small extras */
.cmsh-stat-dark { font-family: var(--wp--preset--font-family--body); font-size: 2.3rem; font-weight: 700; line-height: 1; letter-spacing: -.02em; margin: 0; font-variant-numeric: tabular-nums; }
.is-style-card-highlight .cmsh-stat-dark { color: #fff; }
.cmsh-sources-title { font-family: var(--wp--preset--font-family--heading); font-size: 1.35rem; margin: 0; }
.cmsh-sources { padding-block: 2.2rem !important; border-bottom: 1px solid var(--wp--preset--color--line); }
.cmsh-sources .wp-block-columns { align-items: center !important; margin: 0 !important; }
.cmsh-sources ul { justify-content: flex-end; }
@media (max-width: 781px) { .cmsh-sources ul, .cmsh-sources-title { justify-content: center; text-align: center; } }
.cmsh-sidebar-title { font-family: var(--wp--preset--font-family--heading); font-size: 1.7rem; line-height: 1.15; color: #fff; margin: 0; }
.cmsh-cta-art img { max-width: 460px; width: 100%; margin-inline: auto; display: block; }
.cmsh-hero-glow .wp-block-columns { align-items: center; }
.cmsh-main.cmsh-section { padding-top: clamp(2.5rem, 5vw, 4rem) !important; }
.cmsh-guide-cols { gap: clamp(1.5rem, 3vw, 3rem) !important; margin-top: 2.5rem !important; }
.cmsh-guide-toc .is-style-tag { margin: 0 0 .8rem; }
.cmsh-home-hero .cmsh-sub { max-width: 40rem; margin-inline: auto; font-size: var(--wp--preset--font-size--large); }
.cmsh-home-hero > * + * { margin-top: 1.4rem; }
.cmsh-section-head .cmsh-sub { color: var(--wp--preset--color--ink-soft); }
.cmsh-hero-curtain .cmsh-sub { max-width: 44rem; margin-inline: auto; font-size: var(--wp--preset--font-size--large); }
.cmsh-meta-card .wp-block-post-date::before { content: "\00a0"; }

@media print { .cmsh-motion .cmsh-r { opacity: 1 !important; transform: none !important; } .cmsh-site-header, .cmsh-footer, .cmsh-feedback { display: none; } }

/* v2.0.1 polish */
.has-surface-background-color .is-style-tag:not(.is-on-dark) { background: var(--wp--preset--color--base); }
.wp-site-blocks > footer, .wp-site-blocks > main + footer, .wp-site-blocks > .wp-block-template-part:last-child { margin-block-start: 0 !important; }
.cmsh-footer h2 { margin-bottom: 0.7rem !important; }
.cmsh-cta-art img, .cmsh-stats-img img { filter: drop-shadow(0 18px 30px rgba(0, 20, 26, 0.35)); }
.cmsh-card-grid .wp-block-post-template { padding: 0 !important; margin-inline: 0; list-style: none; }
.cmsh-top > * { margin-block-start: 0 !important; }
@media (max-width: 600px) {
	.cmsh-site-header .cmsh-btn-leave .wp-block-button__link { padding: .6rem .9rem !important; font-size: .9rem !important; }
	.cmsh-site-header .cmsh-btn-leave .wp-block-button__link::after { display: none !important; }
	.cmsh-site-header .cmsh-navpill { gap: .4rem; }
}
.cmsh-guide-sidebar ul { list-style: none; padding-left: 0 !important; margin: 0; }
.cmsh-guide-sidebar li { padding: .35rem 0; border-top: 1px solid var(--wp--preset--color--line); }
.cmsh-guide-sidebar li:first-child { border-top: 0; }
.cmsh-guide-sidebar li a { text-decoration: none; font-weight: 500; }
.cmsh-guide-sidebar li a:hover { text-decoration: underline; }
