/* Counsellors NZ: the painted bach world on every page except home (which has home-bach.css).
   Flat house paint, no lap lines (owner, 2026-11-10: lines read busy). Archivo paints, Atkinson speaks.
   Kōwhai is spent on each page's one primary action. Loaded as the `counsellors-astra` handle. */

@font-face { font-family: "CNZ Archivo"; src: url("fonts/archivo-normal-latin.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "CNZ Archivo"; src: url("fonts/archivo-normal-latin-ext.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "CNZ Atkinson"; src: url("fonts/atkinson-normal-latin.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "CNZ Atkinson"; src: url("fonts/atkinson-normal-latin-ext.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "CNZ Atkinson"; src: url("fonts/atkinson-italic-latin.woff2") format("woff2"); font-weight: 200 800; font-style: italic; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122; }

/* ---------- Paint chart ---------- */
.cnz-site {
	--paint-wall: #174e6a;
	--paint-wall-line: #0f3d55;
	--paint-board: #eef3f2;
	--paint-board-line: #d3dddc;
	--paint-red: #c4302b;
	--paint-flax: #2c654b;
	--paint-mint: #a9d6c4;
	--paint-sky: #7fb1d8;
	--paint-timber: #a8713f;
	--paint-timber-dark: #7d5229;
	--paint-iron: #56656b;
	--paint-white: #f7f9f8;
	--paint-kowhai: #f4c430;
	--paint-kowhai-pressed: #e3b11c;
	--paint-lamp: #ffe6a6;
	--ink: #13232b;
	--ink-hover: #22363f;
	--ink-soft: #33454d;
	--on-wall: #ffffff;
	--on-wall-soft: #d6e6ee;
	--gutter: clamp(1rem, 4vw, 3rem);
	--container: 80rem;
	--font-sign: "CNZ Archivo", "Archivo", "Arial Narrow", sans-serif;
	--font-read: "CNZ Atkinson", "Atkinson Hyperlegible Next", "Segoe UI", sans-serif;
	--swing: 450ms cubic-bezier(.16, 1, .3, 1);
	/* Astra's own palette, repainted so anything it draws matches. */
	--ast-global-color-0: #174e6a;
	--ast-global-color-1: #22363f;
	--ast-global-color-2: #13232b;
	--ast-global-color-3: #33454d;
	--ast-global-color-4: #eef3f2;
	--ast-global-color-5: #ffffff;
	--ast-global-color-6: #d3dddc;
	background: var(--paint-board);
	caret-color: var(--paint-wall);
	color: var(--ink);
	font-family: var(--font-read);
	scrollbar-color: var(--ink-soft) var(--paint-board);
}
.cnz-site ::selection { background: var(--paint-wall); color: var(--paint-white); }
html:has(body.cnz-site) { overflow-x: clip; scrollbar-color: var(--ink-soft) var(--paint-board); }

/* Focus: a white ring inside an ink ring reads on every paint. */
.cnz-site :focus-visible {
	border-radius: 2px;
	box-shadow: 0 0 0 6px var(--ink) !important;
	outline: 3px solid var(--paint-white) !important;
	outline-offset: 3px;
}

/* ---------- Type: Archivo paints, Atkinson speaks ---------- */
/* Zero specificity, so every wall's own heading colour wins. */
:where(.cnz-site) :where(h1, h2, h3, h4, h5, h6) {
	color: var(--ink);
	font-family: var(--font-sign);
	letter-spacing: -0.01em;
	text-wrap: balance;
}
.cnz-site :is(p, li, dd, td, label, legend, blockquote, figcaption, input, textarea, select, button) { font-family: var(--font-read); }

.bach-display {
	color: inherit;
	font-family: var(--font-sign);
	font-size: clamp(2.4rem, 6vw, 5rem);
	font-stretch: 125%;
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: .95;
	margin: 0;
	text-transform: uppercase;
	text-wrap: balance;
}
.bach-display--md { font-size: clamp(2rem, 4.2vw, 3.5rem); }

/* Low specificity on purpose: links on painted walls set their own colour. */
:where(.cnz-site .site-content) a:not([class]),
:where(.cnz-site .entry-content) a:where(:not(.wp-block-button__link):not(.button):not(.cnz-assessment-link)) {
	color: var(--paint-wall);
	text-decoration: underline;
	text-decoration-thickness: 1.5px;
	text-underline-offset: .2em;
	transition: text-decoration-thickness 200ms ease-out;
}
:where(.cnz-site .site-content) a:not([class]):hover,
:where(.cnz-site .entry-content) a:where(:not(.wp-block-button__link):not(.button):not(.cnz-assessment-link)):hover { color: var(--ink); text-decoration-thickness: 3px; }

/* ---------- Astra chrome, the same as the home page ---------- */
.cnz-site .ast-primary-header-bar,
.cnz-site .ast-mobile-header-wrap .ast-primary-header-bar,
.cnz-site #ast-mobile-header { background: #ffffff; border-bottom: 3px solid var(--paint-wall); }
.cnz-site .site-header .custom-logo-link img { height: auto; max-width: 13.5rem; width: 100%; }
.cnz-site .site-header .site-logo-img + .ast-site-title-wrap { display: none; }
.cnz-site .ast-button-wrap .menu-toggle,
.cnz-site .ast-button-wrap .menu-toggle:hover,
.cnz-site .ast-button-wrap .menu-toggle:focus { background: transparent; color: var(--ink); }
.cnz-site .ast-button-wrap .menu-toggle .ast-mobile-svg { fill: var(--ink); }
.cnz-site #ast-scroll-top { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 50%; color: var(--ink); }
.cnz-site #ast-scroll-top .ast-icon svg { fill: var(--ink); }
.cnz-site .site-footer,
.cnz-site .site-footer .site-above-footer-wrap,
.cnz-site .site-footer .site-primary-footer-wrap,
.cnz-site .site-footer .site-below-footer-wrap { background: var(--paint-board); border-top-color: var(--paint-board-line); }
.cnz-site .site-footer a { color: var(--ink); text-decoration: underline; text-decoration-color: rgba(19, 35, 43, .35); text-underline-offset: .25em; }
.cnz-site .site-footer a:hover { color: var(--ink); text-decoration-color: currentColor; }
.cnz-site .site-footer,
.cnz-site .site-footer .ast-footer-copyright { color: var(--ink-soft); }
@media (max-width: 57.5rem) {
	.cnz-site .site-header .custom-logo-link img { max-width: 10.5rem; }
}

/* ---------- Page frame ---------- */
.cnz-site .site-content { background: var(--paint-board); }
/* Astra's own 60px top margin (ast-plain-container / ast-no-sidebar) would leave a pale strip above each wall. */
body.cnz-site #primary,
body.cnz-site.ast-no-sidebar #primary,
body.cnz-site.ast-plain-container.ast-no-sidebar #primary { margin-top: 0; }
.cnz-site.ast-separate-container,
.cnz-site.ast-separate-container .site-content { background: var(--paint-board); }
.cnz-site.ast-separate-container .ast-article-single,
.cnz-site.ast-separate-container .ast-article-post,
.cnz-site.ast-separate-container .comments-area { background: transparent; box-shadow: none; padding: 0; }
.cnz-site .ast-container { max-width: calc(var(--container) + 2 * var(--gutter)); padding-inline: var(--gutter); }
.cnz-site.ast-narrow-container .site-content > .ast-container { max-width: calc(52rem + 2 * var(--gutter)); }

/* The page title is painted on a full-width harbour wall. */
.cnz-site:not(.cnz-room) .entry-header:not(.ast-header-without-markup):not(.ast-no-title) {
	background: var(--paint-wall);
	color: var(--on-wall);
	margin: 0 calc(50% - 50vw) clamp(2.5rem, 5vw, 4rem);
	padding: clamp(3rem, 7vw, 5.5rem) calc(50vw - 50%) clamp(2.5rem, 5vw, 4rem);
}
.cnz-site .entry-header .entry-title,
.cnz-site .bach-page-title {
	color: var(--on-wall);
	font-family: var(--font-sign);
	font-size: clamp(2.25rem, 6vw, 4.5rem);
	font-stretch: 125%;
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: .95;
	margin: 0;
	max-width: 17ch;
	text-transform: uppercase;
}
.cnz-site.single-post .entry-header .entry-title { font-size: clamp(2rem, 5vw, 3.75rem); max-width: 22ch; }
.cnz-site .entry-header .entry-meta,
.cnz-site .entry-header .entry-meta :is(span, time) { color: var(--on-wall-soft) !important; font-size: 1rem; }
.cnz-site .entry-header .entry-meta { margin-top: 1.25rem; }
.cnz-site .entry-header .entry-meta a,
.cnz-site .entry-header .entry-meta a .author-name { color: var(--on-wall) !important; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .5); text-underline-offset: .2em; }
.cnz-site .entry-header .entry-meta a:hover { text-decoration-color: currentColor; }
.cnz-site .entry-header .post-thumb img,
.cnz-site .ast-single-post-featured-section img { border-radius: 4px; }
.cnz-site .entry-header + .entry-content { margin-top: 0; }

/* Page walls drawn by our own templates. */
.bach-page-wall { background: var(--paint-wall); color: var(--on-wall); padding: clamp(3rem, 7vw, 5.5rem) 0 clamp(2.5rem, 5vw, 4rem); }
.bach-page-wall__inner,
.bach-wall__inner { margin-inline: auto; max-width: var(--container); padding-inline: var(--gutter); }
.bach-page-wall__back { margin: 1.25rem 0 0; }
.bach-page-wall__back a { color: var(--on-wall); text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .5); text-underline-offset: .25em; }
.bach-wall { background: var(--wall, var(--paint-board)); color: var(--wall-ink, var(--ink)); padding-block: clamp(3.5rem, 8vw, 6.5rem); }
.bach-wall--board { --wall: var(--paint-board); }
.bach-wall--mint { --wall: var(--paint-mint); }
.bach-wall--sky { --wall: var(--paint-sky); }
.bach-wall--flax { --wall: var(--paint-flax); --wall-ink: var(--on-wall); }
.bach-wall--harbour { --wall: var(--paint-wall); --wall-ink: var(--on-wall); }

/* ---------- Reading ---------- */
.cnz-site .entry-content { color: var(--ink); font-size: 1.125rem; line-height: 1.6; }
.cnz-site .entry-content > :where(p, ul, ol, h2, h3, h4, h5, blockquote, dl, .wp-block-table, .wp-block-quote, .wp-block-list, .lwptoc) { max-width: 46rem; }
.cnz-site .entry-content p { margin: 0 0 1.1em; }
.cnz-site .entry-content h2 {
	color: var(--paint-wall);
	font-size: clamp(1.625rem, 3vw, 2.25rem);
	font-stretch: 112%;
	font-weight: 780;
	line-height: 1.1;
	margin: 2.2em 0 .55em;
}
.cnz-site .entry-content h3 { font-size: clamp(1.25rem, 2.1vw, 1.5rem); font-stretch: 106%; font-weight: 750; line-height: 1.2; margin: 1.9em 0 .45em; }
.cnz-site .entry-content h4 { font-size: 1.125rem; font-weight: 750; margin: 1.6em 0 .4em; }
.cnz-site .entry-content > :first-child { margin-top: 0; }
.cnz-site .entry-content :is(ul, ol) { margin: 0 0 1.2em; padding-left: 1.35em; }
.cnz-site .entry-content li { margin-block: .35em; }
.cnz-site .entry-content li::marker { color: var(--paint-wall); font-weight: 700; }
.cnz-site .entry-content :is(blockquote, .wp-block-quote) {
	background: var(--paint-sky);
	border: 0;
	border-radius: 4px;
	color: var(--ink);
	font-size: 1.25rem;
	font-style: normal;
	line-height: 1.5;
	margin: 2rem 0;
	padding: clamp(1.25rem, 3vw, 2rem);
}
.cnz-site .entry-content :is(blockquote, .wp-block-quote) :last-child { margin-bottom: 0; }
.cnz-site .entry-content img { border-radius: 4px; height: auto; max-width: 100%; }
.cnz-site .entry-content hr { background: var(--paint-board-line); border: 0; height: 3px; margin: 3rem 0; max-width: 46rem; }
.cnz-site .entry-content .has-small-font-size { color: var(--ink-soft); font-size: 1rem !important; }

/* Tables are enamel plates. */
.cnz-site .entry-content table,
.cnz-site .woocommerce table.shop_table {
	background: var(--paint-white);
	border: 2px solid var(--ink);
	border-collapse: separate;
	border-radius: 6px;
	border-spacing: 0;
	font-size: 1rem;
	overflow: hidden;
	width: 100%;
}
.cnz-site .entry-content :is(th, td),
.cnz-site .woocommerce table.shop_table :is(th, td) { border: 0; border-bottom: 1px solid var(--paint-board-line); padding: .75rem 1rem; text-align: left; vertical-align: top; }
.cnz-site .entry-content tr:last-child > :is(th, td),
.cnz-site .woocommerce table.shop_table tr:last-child > :is(th, td) { border-bottom: 0; }
.cnz-site .entry-content th,
.cnz-site .woocommerce table.shop_table th { background: var(--paint-board); font-family: var(--font-sign); font-size: .8125rem; font-stretch: 112%; font-weight: 750; letter-spacing: .03em; text-transform: uppercase; }
.cnz-site .wp-block-table { overflow-x: auto; }
.cnz-site .entry-content td { font-variant-numeric: tabular-nums; }

/* Article contents (LuckyWP): an enamel plate. */
.cnz-site .lwptoc .lwptoc_i,
.cnz-site .cnz-contents-sidebar .lwptoc_i {
	background: var(--paint-white) !important;
	border: 2px solid var(--ink);
	border-radius: 6px !important;
	color: var(--ink);
	padding: 1.25rem 1.4rem !important;
}
.cnz-site .lwptoc_title { font-family: var(--font-sign); font-size: .875rem; font-stretch: 112%; font-weight: 750; letter-spacing: .03em; text-transform: uppercase; }
.cnz-site .lwptoc_items a { color: var(--ink) !important; text-decoration: underline; text-decoration-color: rgba(19, 35, 43, .3); text-underline-offset: .2em; }
.cnz-site .lwptoc_items a:hover { text-decoration-color: currentColor; }

/* ---------- Buttons: painted boards ---------- */
.bach-button,
.cnz-site .site-content :is(.wp-block-button__link, a.button, button.button, input.button, input[type="submit"], button[type="submit"], .ff-btn, .cnz-ct-btn, .b5-btn, .qmn_btn, .qsm-btn, .wc-backward, .accnz-add-service-button),
.cnz-site :is(.wcfm_popup_wrapper, #wcfm_enquiry_form) :is(input[type="submit"], button, .wcfm_popup_button) {
	align-items: center;
	background: var(--ink);
	border: 0;
	border-radius: 4px;
	box-shadow: none;
	color: var(--paint-white);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--font-sign);
	font-size: 1rem;
	font-stretch: 112%;
	font-weight: 750;
	gap: .5rem;
	justify-content: center;
	letter-spacing: .01em;
	line-height: 1.15;
	min-height: 3.25rem;
	padding: .85rem 1.4rem;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 200ms ease-out;
}
.bach-button:hover,
.cnz-site .site-content :is(.wp-block-button__link, a.button, button.button, input.button, input[type="submit"], button[type="submit"], .ff-btn, .cnz-ct-btn, .b5-btn, .qmn_btn, .qsm-btn, .wc-backward, .accnz-add-service-button):hover,
.cnz-site :is(.wcfm_popup_wrapper, #wcfm_enquiry_form) :is(input[type="submit"], button, .wcfm_popup_button):hover { background: var(--ink-hover); color: var(--paint-white); }
.cnz-site .site-content :is(button, input[type="submit"])[disabled] { cursor: not-allowed; opacity: .45; }

/* The one kōwhai action per page: submit a form, book, pay, start the test. */
.bach-button:not(.bach-button--ink):not(.bach-button--enamel),
.cnz-site .site-content :is(.ff-btn-submit, .accnz-submit-button, .single_add_to_cart_button, #place_order, a.checkout-button, .woocommerce-form-login__submit, #cnz-ct-start),
.cnz-site :is(.wcfm_popup_wrapper, #wcfm_enquiry_form) :is(input[type="submit"], #wcfm_enquiry_submit_button) {
	background: var(--paint-kowhai);
	box-shadow: 0 2px 0 rgba(0, 0, 0, .25), 0 10px 22px -12px rgba(0, 0, 0, .55);
	color: var(--ink);
	min-height: 3.5rem;
	padding-inline: 1.6rem;
}
.bach-button:not(.bach-button--ink):not(.bach-button--enamel):hover,
.cnz-site .site-content :is(.ff-btn-submit, .accnz-submit-button, .single_add_to_cart_button, #place_order, a.checkout-button, .woocommerce-form-login__submit, #cnz-ct-start):hover,
.cnz-site :is(.wcfm_popup_wrapper, #wcfm_enquiry_form) :is(input[type="submit"], #wcfm_enquiry_submit_button):hover { background: var(--paint-kowhai-pressed); color: var(--ink); }
/* WCFM paints every .wcfm_store_enquiry link; ours keep their own paint. */
.cnz-site a.bach-button.wcfm_store_enquiry:not(.bach-button--enamel) { background: var(--paint-kowhai) !important; color: var(--ink) !important; }
.cnz-site a.bach-button.bach-button--enamel.wcfm_store_enquiry { background: var(--paint-white) !important; color: var(--ink) !important; }
.cnz-site a.bach-soft.wcfm_store_enquiry { background: none !important; border: 0 !important; height: auto !important; padding: 0 !important; }
.bach-button--enamel { background: var(--paint-white); border: 2px solid var(--ink); color: var(--ink); }
.bach-button--enamel:hover { background: var(--paint-board-line); color: var(--ink); }

/* A soft action: underlined words. */
.bach-soft {
	color: inherit;
	font-family: var(--font-read);
	font-size: 1.0625rem;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, currentColor 50%, transparent);
	text-decoration-thickness: 2px;
	text-underline-offset: .3em;
	transition: text-decoration-color 200ms ease-out;
}
.bach-soft:hover { color: inherit; text-decoration-color: currentColor; text-decoration-thickness: 3px; }

/* ---------- Forms ---------- */
.cnz-site :is(.site-content, .wcfm_popup_wrapper, #wcfm_enquiry_form) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"], input[type="number"], input[type="search"], input[type="date"], textarea, select) {
	background-color: var(--paint-white);
	border: 2px solid var(--ink);
	border-radius: 4px;
	box-shadow: none;
	color: var(--ink);
	font-family: var(--font-read);
	font-size: 1.0625rem;
	line-height: 1.4;
	max-width: 100%;
	min-height: 3rem;
	padding: .6rem .85rem;
	transition: border-color 200ms ease-out;
}
.cnz-site :is(.site-content, .wcfm_popup_wrapper, #wcfm_enquiry_form) textarea { min-height: 8rem; }
.cnz-site :is(.site-content, .wcfm_popup_wrapper, #wcfm_enquiry_form) select {
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%2313232b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-position: right .75rem center;
	background-repeat: no-repeat;
	background-size: 1.1rem;
	padding-right: 2.5rem;
}
.cnz-site :is(.site-content, .wcfm_popup_wrapper, #wcfm_enquiry_form) :is(input, textarea, select):focus { border-color: var(--paint-wall); outline: none; }
.cnz-site :is(.site-content, .wcfm_popup_wrapper) ::placeholder { color: #5b6b72; opacity: 1; }
.cnz-site :is(.site-content, .wcfm_popup_wrapper) :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--paint-wall); height: 1.2rem; width: 1.2rem; }
.cnz-site .site-content :is(label, .ff-el-input--label label, .accnz-field > label) { color: var(--ink); font-weight: 700; }
.cnz-site .site-content fieldset { border: 0; margin: 0; padding: 0; }
.cnz-site .site-content :is(.description, .ff-el-help-message, .woocommerce-privacy-policy-text) { color: var(--ink-soft); font-size: .9375rem; }

/* Fluent Forms. */
.cnz-site .frm-fluent-form { max-width: 42rem; }
.cnz-site .frm-fluent-form .ff-el-group { margin-bottom: 1.25rem; }
.cnz-site .frm-fluent-form .ff-el-input--label label { font-size: 1.0625rem; }
.cnz-site .frm-fluent-form .ff-el-is-required.asterisk-right label::after,
.cnz-site .frm-fluent-form .ff-el-is-required.asterisk-left label::before { color: var(--ink-soft); }
.cnz-site .frm-fluent-form .ff-el-form-control { width: 100%; }
.cnz-site .frm-fluent-form .ff-el-form-control:focus { border-color: var(--paint-wall) !important; }

/* Errors: a red painted label with white words (red is paint, never type). */
.cnz-site :is(.text-danger, .error.text-danger, .ff-el-is-error .text-danger, .qsm-error-message, .woocommerce-error, .accnz-error) {
	background: var(--paint-red) !important;
	border: 0 !important;
	border-radius: 3px;
	color: var(--paint-white) !important;
	display: inline-block;
	font-size: .9375rem;
	font-weight: 700;
	margin-top: .4rem;
	padding: .35rem .6rem;
}
.cnz-site .ff-el-is-error .ff-el-form-control { border-color: var(--paint-red) !important; }

/* Notices are enamel plates. */
.cnz-site :is(.woocommerce-message, .woocommerce-info, .woocommerce-notice, .ff-message-success, .accnz-notice) {
	background: var(--paint-white);
	border: 2px solid var(--ink);
	border-radius: 6px;
	color: var(--ink);
	padding: 1rem 1.25rem;
}
.cnz-site :is(.woocommerce-message, .woocommerce-info)::before { color: var(--paint-wall); }
.cnz-site ul.woocommerce-error { list-style: none; padding: 1rem 1.25rem; }

/* ACC / Work and Income registration. */
.cnz-site .accnz-registration-form { max-width: 48rem; }
.cnz-site .accnz-registration-form .accnz-field { display: grid; gap: .4rem; margin: 0 0 1.25rem; }
.cnz-site .accnz-registration-form .accnz-field :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea) { width: 100%; }
.cnz-site .accnz-registration-form :is(.accnz-delivery-picker, .accnz-availability-picker) label,
.cnz-site .accnz-registration-form .accnz-checkbox { justify-content: flex-start; text-align: left; width: auto; }
.cnz-site .accnz-registration-form :is(.accnz-delivery-picker, .accnz-availability-picker) label {
	align-items: center;
	background: var(--paint-white);
	border: 2px solid var(--ink);
	border-radius: 4px;
	cursor: pointer;
	display: inline-flex;
	font-weight: 700;
	gap: .5rem;
	margin: 0 .5rem .5rem 0;
	padding: .55rem .8rem;
}
.cnz-site .accnz-registration-form :is(.accnz-delivery-picker, .accnz-availability-picker) label:has(input:checked) { background: var(--paint-mint); }
.cnz-site .accnz-section-heading {
	border-top: 3px solid var(--paint-wall);
	color: var(--paint-wall);
	font-size: clamp(1.375rem, 2.4vw, 1.75rem) !important;
	font-stretch: 112%;
	margin: 2.5rem 0 1rem !important;
	padding-top: 1.25rem;
}
.cnz-site .accnz-funder-section { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; margin: 1.5rem 0; padding: clamp(1.25rem, 3vw, 1.75rem); }
.cnz-site :is(.accnz-funder-picker, .accnz-roles-picker, .accnz-delivery-picker, .accnz-availability-picker, .accnz-tla-group) { display: flex; flex-wrap: wrap; gap: .5rem; }
.cnz-site .accnz-checkbox {
	align-items: center;
	background: var(--paint-white);
	border: 2px solid var(--ink);
	border-radius: 4px;
	cursor: pointer;
	display: inline-flex;
	font-size: .9375rem;
	font-weight: 700;
	gap: .5rem;
	padding: .5rem .75rem;
	transition: background-color 200ms ease-out;
}
.cnz-site .accnz-checkbox:has(input:checked) { background: var(--paint-mint); }
.cnz-site .accnz-extra-service { background: var(--paint-board); border: 2px dashed var(--ink-soft); border-radius: 6px; margin: 1rem 0; padding: 1.25rem; }

/* ---------- Tests and quizzes ---------- */
.cnz-site :is(.cnz-ct-item, .b5-item, fieldset.question, .qsm-question-wrapper) {
	background: var(--paint-white) !important;
	border: 2px solid var(--ink) !important;
	border-radius: 6px;
	margin: 0 0 1.25rem !important;
	max-width: 46rem;
	padding: clamp(1.1rem, 3vw, 1.6rem) !important;
}
.cnz-site :is(.cnz-ct-item, .b5-item, fieldset.question) legend,
.cnz-site .qsm-question-wrapper .mlw_qmn_new_question {
	float: left;
	font-family: var(--font-sign);
	font-size: clamp(1.125rem, 2vw, 1.375rem);
	font-stretch: 106%;
	font-weight: 750;
	line-height: 1.25;
	margin: 0 0 1rem;
	padding: 0;
	width: 100%;
}
.cnz-site :is(.cnz-ct-scale, .b5-scale) { clear: both; display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr)); }
.cnz-site fieldset.question { display: flow-root; }
.cnz-site :is(.cnz-ct-scale, .b5-scale) label,
.cnz-site fieldset.question label,
.cnz-site .qsm-question-wrapper .qmn_mc_answer_wrap {
	align-items: center;
	background: var(--paint-board);
	border: 2px solid var(--ink);
	border-radius: 4px;
	cursor: pointer;
	display: flex !important;
	font-size: 1rem;
	font-weight: 700;
	gap: .55rem;
	line-height: 1.3;
	margin: 0 0 .5rem !important;
	min-height: 3rem;
	padding: .6rem .8rem;
	transition: background-color 200ms ease-out;
}
.cnz-site :is(.cnz-ct-scale, .b5-scale) label { margin: 0 !important; }
.cnz-site :is(.cnz-ct-scale, .b5-scale, fieldset.question) label:has(input:checked),
.cnz-site .qsm-question-wrapper .qmn_mc_answer_wrap:has(input:checked) { background: var(--paint-mint); }
.cnz-site .qsm-question-wrapper .qmn_mc_answer_wrap label { cursor: pointer; flex: 1; font-weight: 700; margin: 0; }
.cnz-site :is(.cnz-ct-progress, .b5-progress) { background: var(--paint-board-line); border-radius: 3px; height: .6rem; max-width: 46rem; overflow: hidden; }
.cnz-site :is(.cnz-ct-progress, .b5-progress) span { background: var(--paint-wall); display: block; height: 100%; }
.cnz-site :is(.cnz-ct-results, .b5-results) { max-width: 52rem; }

/* ---------- Free tools: painted signboards ---------- */
.cnz-site .cnz-intro { color: var(--ink-soft); font-size: clamp(1.125rem, 1.6vw, 1.375rem); line-height: 1.5; max-width: 42rem; }
.cnz-site .cnz-tools-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); margin-top: 2rem; max-width: none !important; }
.cnz-site .cnz-tool-card {
	--board: var(--paint-sky);
	--board-ink: var(--ink);
	background: var(--board);
	border: 0;
	border-radius: 4px;
	color: var(--board-ink);
	display: flex;
	flex-direction: column;
	padding: clamp(1.25rem, 3vw, 2rem);
	position: relative;
}
.cnz-site .cnz-tool-card:nth-child(4n + 2) { --board: var(--paint-flax); --board-ink: var(--paint-white); }
.cnz-site .cnz-tool-card:nth-child(4n + 3) { --board: var(--paint-mint); }
.cnz-site .cnz-tool-card:nth-child(4n + 4) { --board: var(--paint-red); --board-ink: var(--paint-white); }
.cnz-site .entry-content .cnz-tool-card h2 {
	color: var(--board-ink);
	font-size: clamp(1.25rem, 2.1vw, 1.625rem);
	hyphens: auto;
	overflow-wrap: normal;
	word-break: normal;
	font-stretch: 125%;
	font-weight: 800;
	line-height: 1;
	margin: 0 0 .75rem;
	text-transform: uppercase;
}
.cnz-site .cnz-tool-card p { color: var(--board-ink); flex: 1; font-size: 1.0625rem; margin: 0 0 1.25rem; }
.cnz-site .cnz-tool-card p:last-child { flex: 0; margin: 0; }
.cnz-site .cnz-tool-card .cnz-assessment-link {
	background: none;
	color: var(--board-ink);
	font-family: var(--font-read);
	font-size: 1.0625rem;
	font-weight: 700;
	padding: 0;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: .3em;
}
.cnz-site .cnz-tool-card .cnz-assessment-link span[aria-hidden] { display: none; }
.cnz-site .cnz-tool-card .cnz-assessment-link::after { content: ""; inset: 0; position: absolute; }
.cnz-site .cnz-tool-card:hover .cnz-assessment-link { text-decoration-thickness: 4px; }

/* ---------- Articles ---------- */
.cnz-site .cnz-eyebrow { display: none; }
.cnz-site .cnz-section { padding-block: clamp(3rem, 7vw, 5.5rem); }
.cnz-site .cnz-section--tint { background: var(--paint-wall); color: var(--on-wall); }
.cnz-site .cnz-section--tint h1 {
	color: var(--on-wall);
	font-size: clamp(2.25rem, 6vw, 4.5rem);
	font-stretch: 125%;
	font-weight: 800;
	line-height: .95;
	margin: 0 0 1.25rem;
	max-width: 18ch;
	text-transform: uppercase;
}
.cnz-site .cnz-section--tint .cnz-intro { color: var(--on-wall-soft); }
.cnz-site .cnz-shell { margin-inline: auto; max-width: var(--container); padding-inline: var(--gutter); }
.cnz-site .cnz-articles .wp-block-post-template { display: grid; gap: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 3vw, 2rem); grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); list-style: none; margin: 0; padding: 0; }
.cnz-site .cnz-articles .wp-block-post { display: flex; flex-direction: column; gap: .6rem; margin: 0 !important; }
.cnz-site .cnz-articles .wp-block-post-featured-image { margin: 0 0 .4rem; }
.cnz-site .cnz-articles .wp-block-post-featured-image img { aspect-ratio: 3 / 2; border-radius: 4px; object-fit: cover; }
.cnz-site .cnz-articles .wp-block-post-terms a {
	border: 1.5px solid var(--ink);
	border-radius: 3px;
	color: var(--ink);
	display: inline-block;
	font-size: .75rem;
	font-weight: 700;
	line-height: 1;
	padding: .25rem .35rem;
	text-decoration: none;
}
.cnz-site .cnz-articles .wp-block-post-title { font-family: var(--font-read); font-size: clamp(1.25rem, 2.2vw, 1.5rem); font-weight: 700; line-height: 1.25; margin: 0; text-wrap: balance; }
.cnz-site .cnz-articles .wp-block-post-title a { color: var(--ink); text-decoration: none; }
.cnz-site .cnz-articles .wp-block-post-title a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .2em; }
.cnz-site .cnz-articles .wp-block-post-author-name { color: var(--ink-soft); font-size: .9375rem; }
.cnz-site .cnz-articles .wp-block-post-author-name a { color: inherit; }
.cnz-site .cnz-articles .wp-block-post-excerpt { color: var(--ink-soft); font-size: 1rem; margin: 0; }
.cnz-site .cnz-articles .wp-block-post-excerpt__excerpt { margin: 0 0 .4rem; }
.cnz-site .cnz-articles .wp-block-post-excerpt__more-link { color: var(--paint-wall); font-weight: 700; }
.cnz-site :is(.wp-block-query-pagination, .nav-links) { gap: .5rem; margin-top: 3rem; }
.cnz-site :is(.wp-block-query-pagination, .nav-links) :is(a, .page-numbers) {
	align-items: center;
	border: 2px solid var(--ink);
	border-radius: 4px;
	color: var(--ink);
	display: inline-flex;
	font-weight: 700;
	justify-content: center;
	min-height: 2.875rem;
	min-width: 2.875rem;
	padding: .3rem .8rem;
	text-decoration: none;
}
.cnz-site :is(.wp-block-query-pagination, .nav-links) .current { background: var(--ink); color: var(--paint-white); }
.cnz-site .post-navigation { border-top: 3px solid var(--paint-board-line); margin-top: 3rem; padding-top: 1.5rem; }
.cnz-site .post-navigation a { color: var(--ink); font-weight: 700; }

/* ---------- Directory: each counsellor a door-painted plate ---------- */
.cnz-site #wcfmmp-stores-wrap .wcfmmp-stores-listing,
.cnz-site #wcfmmp-stores-wrap .right_side { float: none; width: 100%; }
.cnz-site #wcfmmp-stores-wrap .wcfmmp-store-lists-sorting { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; margin: 0 0 1.5rem; }
.cnz-site #wcfmmp-stores-wrap .woocommerce-result-count { color: var(--ink); font-weight: 700; margin: 0; }
.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap {
	display: grid;
	gap: clamp(1.25rem, 2.5vw, 2rem);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}
.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap::before,
.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap::after { content: none; }
.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li.wcfmmp-single-store {
	--leaf: var(--paint-red);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	float: none;
	margin: 0 !important;
	overflow: visible;
	padding: 0;
	width: auto !important;
}
/* The paint cycle carries the base rule's full selector, so each door keeps its own paint. */
.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li.wcfmmp-single-store:nth-child(7n + 2) { --leaf: var(--paint-mint); }
.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li.wcfmmp-single-store:nth-child(7n + 3) { --leaf: var(--paint-flax); }
.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li.wcfmmp-single-store:nth-child(7n + 4) { --leaf: var(--paint-sky); }
.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li.wcfmmp-single-store:nth-child(7n + 5) { --leaf: var(--paint-white); }
.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li.wcfmmp-single-store:nth-child(7n + 6) { --leaf: var(--paint-timber); }
.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li.wcfmmp-single-store:nth-child(7n + 7) { --leaf: #2f3d43; }
/* The listing sits straight on the wall: no panel, shadow or inset around it.
   #wcfmmp-stores-lists wraps the whole listing (outside #wcfmmp-stores-wrap) and carries WCFM's shadow and 40px inset. */
body.cnz-site #wcfmmp-stores-lists,
body.cnz-site #wcfmmp-stores-wrap-holder { background: transparent !important; border: 0 !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; width: 100% !important; }
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-wrapper { box-shadow: none !important; }
.cnz-site #wcfmmp-stores-wrap,
.cnz-site #wcfmmp-stores-wrap :is(.wcfmmp-stores-listing, .wcfmmp-stores-content-holder, .wcfmmp-stores-content, .right_side) {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}
/* Colour-only badges (the blue verified tick) and empty star rows: marks here are words. */
.cnz-site :is(.wcfm_vendor_badges, .wcfm_vendor_badge, .wcfmmp-store-rating, .bd_rating) { display: none !important; }
/* ACC map card services: no coloured edge stripe; a board-line rule between stacked services. */
.cnz-site .accnz-card-service { border-left: 0 !important; padding-left: 0 !important; }
.cnz-site .accnz-card-service + .accnz-card-service { border-top: 1px solid var(--paint-board-line); padding-top: .4rem; }
.cnz-site #wcfmmp-stores-wrap .store-wrapper {
	background: var(--paint-white);
	border: 2px solid var(--ink);
	border-radius: 6px;
	box-shadow: none;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	position: relative;
}
.cnz-site #wcfmmp-stores-wrap .store-wrapper::before { background: var(--leaf); border-bottom: 2px solid var(--ink); content: ""; height: 12rem; inset: 0 0 auto; position: absolute; }
.cnz-site #wcfmmp-stores-wrap .store-content { display: none; }
.cnz-site #wcfmmp-stores-wrap .store-footer {
	background: transparent !important;
	display: flex !important;
	flex: 1;
	flex-direction: column;
	height: auto !important;
	min-height: 0 !important;
	padding: 1.5rem 1.25rem 1.25rem !important;
	position: relative;
}
.cnz-site #wcfmmp-stores-wrap .store-avatar {
	align-self: center;
	aspect-ratio: 4 / 5;
	background: var(--paint-white);
	border: 3px solid rgba(0, 0, 0, .14);
	border-radius: 999px 999px 4px 4px;
	float: none !important;
	height: auto !important;
	margin: 0 !important;
	overflow: hidden;
	position: static !important;
	width: 7.5rem !important;
}
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer .store-avatar { border-radius: 999px 999px 4px 4px !important; }
.cnz-site #wcfmmp-stores-wrap .store-avatar img { border: 0 !important; border-radius: 0 !important; height: 100% !important; margin: 0 !important; object-fit: cover; object-position: 50% 25%; width: 100% !important; }
/* The glass keeps its size whatever is in it. The photo fills the arched glass edge to edge
   (WCFM's own 6px padding and white rim removed), and glass + name plaque both stand on the painted leaf. */
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer > .store-avatar {
	background: #dfe9ec !important;
	box-shadow: none !important;
	display: block !important;
	height: 9.375rem !important;
	padding: 0 !important;
}
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer > .store-avatar img { border-radius: inherit !important; display: block; max-width: none !important; padding: 0 !important; }
/* Tall enough for a two-line name plate to stand fully on the leaf. */
.cnz-site #wcfmmp-stores-wrap .store-wrapper::before { height: 16.75rem; }
body.cnz-site #wcfmmp-stores-wrap .store-footer > .store-data-container { margin-top: 1rem !important; }
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-data h2 {
	background: var(--paint-white) !important;
	border: 2px solid var(--ink) !important;
	color: var(--ink) !important;
	margin: 0 0 2.75rem !important;
}
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer > .store-data-container,
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-data { padding-top: 0 !important; }
/* Counsellors who sell sessions already have "View pricing & book"; the directory's own profile button would repeat it. */
body.cnz-site.page-id-278748 #wcfmmp-stores-wrap [class*="view-profile"] { display: none !important; }
/* No photo uploaded (a placeholder, not an upload): an empty pane of glass rather than a white gap. */
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer > .store-avatar:not(:has(img[src*="/uploads/"])) { background: #dfe9ec !important; }
.cnz-site #wcfmmp-stores-wrap .store-avatar img:not([src*="/uploads/"]) { visibility: hidden; }
.cnz-site #wcfmmp-stores-wrap .store-data-container { float: none !important; margin: 0 !important; padding: 0 !important; width: auto !important; }
.cnz-site #wcfmmp-stores-wrap .store-data { display: flex; flex-direction: column; gap: .55rem; padding: 0 !important; }
.cnz-site #wcfmmp-stores-wrap .store-data h2 {
	align-self: center;
	background: var(--paint-white);
	border: 2px solid var(--ink);
	border-radius: 6px;
	font-family: var(--font-sign);
	font-size: .9375rem !important;
	font-stretch: 88%;
	font-weight: 750;
	letter-spacing: .01em;
	line-height: 1.12 !important;
	margin: -1.1rem 0 .4rem !important;
	padding: .45rem 1rem !important;
	position: relative;
	text-align: center;
	text-transform: uppercase;
}
.cnz-site #wcfmmp-stores-wrap .store-data h2 a { color: var(--ink) !important; text-decoration: none; }
.cnz-site #wcfmmp-stores-wrap .store-data h2 a::after { content: ""; inset: 0; position: absolute; }
.cnz-site #wcfmmp-stores-wrap .store-data h2 .wcfm_vendor_badges { display: none; }
.cnz-site #wcfmmp-stores-wrap .store-avatar { margin-top: .25rem !important; }
.cnz-site #wcfmmp-stores-wrap .store-footer > .store-avatar { margin-bottom: 0 !important; }
.cnz-site #wcfmmp-stores-wrap .store-footer > .store-data-container { margin-top: 1.5rem !important; }
.cnz-site #wcfmmp-stores-wrap .bd_rating { display: none; }
.cnz-site #wcfmmp-stores-wrap .store-address { color: var(--ink-soft) !important; font-size: .9375rem !important; line-height: 1.35; margin: 0 !important; }
.cnz-site #wcfmmp-stores-wrap .store-address::before { display: none; }
.cnz-site .accnz-availability-badge {
	align-self: flex-start;
	background: transparent !important;
	border: 1.5px solid var(--ink) !important;
	border-radius: 3px !important;
	color: var(--ink) !important;
	display: inline-block;
	font-size: .75rem !important;
	font-weight: 700;
	line-height: 1;
	margin: 0 !important;
	padding: .3rem .4rem !important;
}
.cnz-site .accnz-card-services { display: grid; gap: .3rem; margin: 0; }
.cnz-site .accnz-card-service-title { color: var(--ink) !important; font-weight: 700; }
.cnz-site .accnz-card-service-roles { color: var(--ink-soft); display: block; font-size: .875rem; }
.cnz-site #wcfmmp-stores-wrap .store-enquiry { margin: 0 !important; order: 10; position: relative; z-index: 1; }
.cnz-site #wcfmmp-stores-wrap .store-enquiry a,
.cnz-site #wcfmmp-stores-wrap a.wcfm_catalog_enquiry,
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer p.store-enquiry a.wcfm_catalog_enquiry {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--ink) !important;
	font-size: .9375rem !important;
	font-weight: 700;
	padding: 0 !important;
	text-decoration: underline !important;
	text-underline-offset: .25em;
}
.cnz-site #wcfmmp-stores-wrap .store-enquiry .wcfmfa { display: none; }
/* The hidden icon leaves a non-breaking space; zero the link's own text size so only the label shows and underlines. */
body.cnz-site #wcfmmp-stores-wrap .store-enquiry a,
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer p.store-enquiry a.wcfm_catalog_enquiry,
body.cnz-site #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-data p.store-enquiry a.wcfm_catalog_enquiry { font-size: 0 !important; text-decoration: none !important; }
body.cnz-site #wcfmmp-stores-wrap .store-enquiry a .add_enquiry_label { font-size: .9375rem; text-decoration: underline; text-underline-offset: .25em; }
.cnz-site #wcfmmp-stores-wrap a.wcfmmp-visit-store,
.cnz-site #wcfmmp-stores-wrap .accnz-view-profile {
	align-items: center;
	background: var(--ink) !important;
	border: 0 !important;
	border-radius: 4px !important;
	bottom: auto !important;
	color: var(--paint-white) !important;
	display: flex !important;
	float: none !important;
	font-family: var(--font-sign);
	font-size: .9375rem !important;
	font-stretch: 112%;
	font-weight: 750 !important;
	justify-content: center;
	margin: auto 0 0 !important;
	min-height: 3rem;
	padding: .7rem 1rem !important;
	position: relative !important;
	right: auto !important;
	text-decoration: none !important;
	text-transform: uppercase !important;
	width: 100% !important;
	z-index: 1;
}
.cnz-site #wcfmmp-stores-wrap a.wcfmmp-visit-store:hover { background: var(--ink-hover) !important; }
.cnz-site #wcfmmp-stores-wrap .store-footer > .spacer { flex: 1; }
.cnz-site #wcfmmp-stores-wrap .store-footer > a.wcfmmp-visit-store { margin-top: 1rem !important; }
.cnz-site #wcfmmp-stores-wrap .wcfmmp-store-list-map { border: 2px solid var(--ink); border-radius: 6px; margin-bottom: 2rem; overflow: hidden; }
.cnz-site .cnz-booking-intro { color: var(--on-wall-soft); font-size: clamp(1.125rem, 1.6vw, 1.375rem); line-height: 1.5; margin: 1.25rem 0 0; max-width: 40rem; }

/* ACC and Work and Income directory filters: a sky signboard. */
.cnz-site .accnz-directory-intro { max-width: 46rem; }
.cnz-site .accnz-directory-filters {
	background: var(--paint-sky);
	border-radius: 4px;
	display: grid;
	gap: 1rem;
	margin: 1.5rem 0 2.5rem;
	padding: clamp(1.25rem, 3vw, 2rem);
}
.cnz-site :is(.accnz-directory-filters-primary, .accnz-directory-filters-secondary) { align-items: end; display: flex; flex-wrap: wrap; gap: 1rem; }
.cnz-site .accnz-directory-filters label { display: grid; font-weight: 700; gap: .35rem; }
.cnz-site .accnz-directory-filters select { min-width: min(100%, 14rem); }
.cnz-site .accnz-directory-filters-secondary-label { font-weight: 700; width: 100%; }

/* ---------- Shop, booking, account ---------- */
body.cnz-site.single-product #primary,
body.cnz-site.single-product.ast-plain-container.ast-no-sidebar #primary { margin-top: clamp(2.5rem, 5vw, 4rem); }
/* The practitioner's photo on a booking page hangs in the same arched glass as their door. */
.cnz-site.woocommerce div.product div.images .woocommerce-product-gallery__image img {
	border: 3px solid rgba(0, 0, 0, .14);
	border-radius: 999px 999px 4px 4px;
}
.cnz-site.single-product div.product .product_title {
	font-family: var(--font-sign);
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	font-stretch: 125%;
	font-weight: 800;
	line-height: .98;
	text-transform: uppercase;
}
.cnz-site .woocommerce-breadcrumb { color: var(--ink-soft); font-size: .9375rem; }
.cnz-site .woocommerce-breadcrumb a { color: var(--ink); }
.cnz-site.woocommerce div.product p.price,
.cnz-site.woocommerce div.product span.price,
.cnz-site .woocommerce ul.products li.product .price { color: var(--ink); font-size: 1.375rem; font-variant-numeric: tabular-nums; font-weight: 700; }
.cnz-site .price .duration { color: var(--ink-soft); font-size: .9375rem; font-weight: 400; }
.cnz-site.woocommerce div.product div.images img { border-radius: 4px; }
.cnz-site .wc-appointments-appointment-form { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; padding: clamp(1rem, 3vw, 1.5rem); }
.cnz-site .wc-appointments-appointment-form :is(label, legend) { font-weight: 700; }
.cnz-site .ui-datepicker td a,
.cnz-site .ui-datepicker td span { border-radius: 3px; }
.cnz-site .ui-datepicker td.ui-datepicker-current-day a,
.cnz-site .ui-datepicker td a.ui-state-active,
.cnz-site .slot-picker li.selected a,
.cnz-site .slot-picker li a:hover { background: var(--paint-wall) !important; color: var(--paint-white) !important; }
.cnz-site .slot-picker li a { border: 2px solid var(--ink); border-radius: 4px; color: var(--ink); }
.cnz-site.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; }
.cnz-site.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--ink-soft); font-family: var(--font-sign); font-stretch: 112%; font-weight: 750; text-transform: uppercase; }
.cnz-site.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); box-shadow: inset 0 -3px 0 var(--paint-wall); }
.cnz-site .woocommerce ul.products li.product { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; padding: 1rem; }
.cnz-site .woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--font-read); font-size: 1.25rem; font-weight: 700; }
.cnz-site .woocommerce ul.products li.product .ast-on-card-button { display: none; }
.cnz-site .wcfmmp_sold_by_container { color: var(--ink-soft); font-size: .9375rem; }
/* Product page "Send an enquiry": a secondary ink board beside the kōwhai booking. */
body.cnz-site.single-product .wcfm_catalog_enquiry,
body.cnz-site.single-product a.wcfm_catalog_enquiry_button {
	align-items: center;
	background: var(--ink) !important;
	border: 0 !important;
	border-radius: 4px !important;
	color: var(--paint-white) !important;
	display: inline-flex !important;
	font-family: var(--font-sign);
	font-stretch: 112%;
	font-weight: 750 !important;
	gap: .4rem;
	min-height: 3rem;
	padding: .7rem 1.2rem !important;
	text-transform: uppercase;
}
body.cnz-site.single-product .wcfm_catalog_enquiry .wcfmfa { display: none; }
.cnz-site.woocommerce-cart .cart-collaterals .cart_totals,
.cnz-site #order_review,
.cnz-site .woocommerce-checkout #customer_details { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; padding: clamp(1rem, 3vw, 1.75rem); }
.cnz-site .woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.cnz-site .woocommerce-MyAccount-navigation li a { border-bottom: 2px solid var(--paint-board-line); color: var(--ink); display: block; font-weight: 700; padding: .75rem 0; text-decoration: none; }
.cnz-site .woocommerce-MyAccount-navigation li.is-active a { border-bottom-color: var(--paint-wall); color: var(--paint-wall); }
.cnz-site .woocommerce form.login,
.cnz-site .woocommerce form.register { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; padding: clamp(1.25rem, 3vw, 2rem); }
.cnz-site .woocommerce form .form-row input.input-text { width: 100%; }

/* ---------- A practitioner's room ---------- */
.cnz-room .site-content,
.cnz-room #primary,
.cnz-room .site-main { margin: 0; padding: 0; }
.cnz-room .site-content > .ast-container { display: block; margin: 0; max-width: none; padding: 0; }
.bach-room-page,
.bach-room-page__inner { background: transparent; margin: 0; max-width: none; padding: 0; width: 100%; }
.bach-room-page * { box-sizing: border-box; }
.bach-room-page p { line-height: inherit; }

/* The door, opened a little, on the harbour wall. */
.bach-room-hero { background: var(--paint-wall); color: var(--on-wall); overflow: clip; padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(3rem, 7vw, 5.5rem); }
.bach-room-hero__inner {
	align-items: center;
	display: grid;
	gap: clamp(2rem, 5vw, 5rem);
	grid-template-columns: minmax(12rem, 20rem) minmax(0, 1fr);
	margin-inline: auto;
	max-width: var(--container);
	padding-inline: var(--gutter);
}
.bach-room-door { --leaf: var(--paint-red); --leaf-edge: rgba(0, 0, 0, .18); --glass-ground: #dfe9ec; display: block; width: 100%; }
.door--red { --leaf: var(--paint-red); }
.door--mint { --leaf: var(--paint-mint); }
.door--flax { --leaf: var(--paint-flax); }
.door--sky { --leaf: var(--paint-sky); }
.door--white { --leaf: var(--paint-white); }
.door--timber { --leaf: var(--paint-timber); }
.door--iron { --leaf: #2f3d43; }
.bach-room-door .door__frame {
	aspect-ratio: 5 / 8.6;
	background: var(--paint-timber);
	border-radius: 3px 3px 0 0;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15);
	display: block;
	padding: .8rem .8rem 0;
	perspective: 1200px;
	position: relative;
}
.bach-room-door .door__room { background: var(--paint-lamp); display: block; inset: .8rem .8rem 0; position: absolute; }
.bach-room-door .door__leaf {
	background: var(--leaf);
	box-shadow: inset 0 0 0 1px var(--leaf-edge), 14px 0 22px -12px rgba(0, 0, 0, .35);
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 11% 12% 0;
	position: relative;
	transform: rotateY(-16deg);
	transform-origin: left center;
	transition: transform var(--swing);
	z-index: 1;
}
.bach-room-door .door__leaf::after { background: rgba(0, 0, 0, .08); content: ""; height: 3px; left: 0; position: absolute; right: 0; top: 78%; }
.bach-room-door .door__glass {
	aspect-ratio: 4 / 5;
	background: var(--glass-ground);
	border: 3px solid rgba(0, 0, 0, .14);
	border-radius: 999px 999px 4px 4px;
	display: block;
	overflow: hidden;
	position: relative;
}
.bach-room-door .door__glass img { display: block; height: 100%; object-fit: cover; object-position: 50% 25%; width: 100%; }
.bach-room-door .door__glass--logo { background: var(--paint-white); }
.bach-room-door .door__glass--logo img { object-fit: contain; object-position: 50% 50%; padding: 14% 10%; }
.bach-room-door .door__initials { align-items: center; color: var(--paint-wall); display: flex; font-family: var(--font-sign); font-size: clamp(2.5rem, 6vw, 4rem); font-stretch: 125%; font-weight: 800; height: 100%; justify-content: center; }
.bach-room-door .door__plaque { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; color: var(--ink); display: block; margin-top: 12%; padding: .5rem 1.1rem; position: relative; text-align: center; }
.bach-room-door .door__plaque::before,
.bach-room-door .door__plaque::after { background: #8b979b; border-radius: 50%; content: ""; height: 5px; position: absolute; top: calc(50% - 2.5px); width: 5px; }
.bach-room-door .door__plaque::before { left: .4rem; }
.bach-room-door .door__plaque::after { right: .4rem; }
.bach-room-door .door__name { display: block; font-family: var(--font-sign); font-size: clamp(.875rem, 1.4vw, 1.0625rem); font-stretch: 88%; font-weight: 750; letter-spacing: .01em; line-height: 1.12; text-transform: uppercase; }
.bach-room-door .door__knob { background: #c99a2e; border-radius: 50%; box-shadow: inset 0 0 0 2px #8c6a1c; height: 1rem; position: absolute; right: 9%; top: 84%; width: 1rem; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.bach-room-hero:hover .door__leaf { transform: rotateY(-28deg); }
}
@media (prefers-reduced-motion: reduce) {
	.bach-room-door .door__leaf { transition: none; }
}

.bach-room-hero__copy { min-width: 0; }
.bach-room-hero__name { color: var(--on-wall); font-size: clamp(2.5rem, 7vw, 5.5rem); max-width: 14ch; overflow-wrap: anywhere; }
.bach-room-hero__role { color: var(--on-wall-soft); font-size: clamp(1.125rem, 1.8vw, 1.375rem); line-height: 1.45; margin: 1rem 0 0; max-width: 38rem; }
.bach-room-hero__facts { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.bach-town {
	background: var(--paint-white);
	border-radius: 3px;
	color: var(--paint-wall);
	font-family: var(--font-sign);
	font-size: .9375rem;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1;
	padding: .55rem .75rem;
	text-transform: uppercase;
}
.bach-mark { border: 1.5px solid var(--ink); border-radius: 3px; color: var(--ink); font-size: .8125rem; font-weight: 700; line-height: 1; padding: .4rem .5rem; }
.bach-mark--on-wall { border-color: rgba(255, 255, 255, .8); color: var(--on-wall); }
.bach-room-hero__fee { color: var(--on-wall); font-size: clamp(1.125rem, 1.8vw, 1.375rem); font-variant-numeric: tabular-nums; font-weight: 700; margin: 1.5rem 0 0; }
.bach-room-hero__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem 1.75rem; margin-top: 1.75rem; }
.bach-room-hero__actions .bach-soft { color: var(--on-wall); }

.bach-room-lede { color: var(--ink-soft); font-size: clamp(1.0625rem, 1.5vw, 1.25rem); line-height: 1.5; margin: 1rem 0 0; max-width: 40rem; }
.bach-sessions { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); list-style: none; margin: clamp(2rem, 4vw, 2.75rem) 0 0; padding: 0; }
.bach-session { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; display: flex; flex-direction: column; gap: .6rem; padding: clamp(1.25rem, 3vw, 1.6rem); }
.bach-session__name { font-family: var(--font-read) !important; font-size: 1.25rem; font-weight: 700; line-height: 1.25; margin: 0; }
.bach-session__price { font-size: 1.25rem; font-variant-numeric: tabular-nums; font-weight: 700; margin: 0; }
.bach-session__price del { color: var(--ink-soft); font-weight: 400; }
.bach-session__price .duration { color: var(--ink-soft); display: block; font-size: .9375rem; font-weight: 400; margin-top: .15rem; }
.bach-session__summary { color: var(--ink-soft); flex: 1; font-size: 1rem; line-height: 1.5; margin: 0; }
.bach-session .bach-button { align-self: flex-start; margin-top: .4rem; }

.bach-room-about__inner { display: grid; gap: clamp(1.5rem, 4vw, 4rem); grid-template-columns: minmax(0, 18rem) minmax(0, 1fr); }
.bach-room-about h2 { color: var(--ink); }
.bach-prose { font-size: 1.125rem; line-height: 1.6; max-width: 44rem; }
.bach-prose p { margin: 0 0 1em; }
.bach-prose :is(h2, h3, h4) { font-size: 1.25rem; font-stretch: 106%; font-weight: 750; margin: 1.6em 0 .4em; text-transform: none; }
.bach-prose a { color: var(--ink); text-decoration: underline; text-underline-offset: .2em; }
.bach-room-credentials { margin-top: 1.75rem; max-width: 44rem; }
.bach-room-credentials .accnz-professional-title { display: none; }
.bach-room-credentials h3 { font-size: .875rem; font-stretch: 112%; font-weight: 750; letter-spacing: .03em; margin: 0 0 .5rem; text-transform: uppercase; }
.bach-room-credentials .accnz-qualifications { font-size: 1.0625rem; }
.bach-room-credentials .accnz-qualifications p { margin: 0 0 .35em; }
.bach-room-credentials .accnz-provider-website a { color: var(--ink); font-weight: 700; text-decoration: underline; text-underline-offset: .25em; }

/* Services from the directory plugin: enamel plates on the flax wall. */
.bach-room-services h2.bach-display { color: var(--on-wall); margin-bottom: clamp(1.75rem, 4vw, 2.5rem); max-width: 18ch; }
.bach-room-services .accnz-services { display: grid; gap: 1.25rem; }
.bach-room-services .accnz-services-heading { display: none; }
.bach-room-services .accnz-service {
	background: var(--paint-white);
	border: 2px solid var(--ink);
	border-radius: 6px;
	color: var(--ink);
	display: grid;
	gap: .75rem clamp(1.5rem, 4vw, 3.5rem);
	grid-auto-flow: row dense;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	margin: 0;
	padding: clamp(1.25rem, 3vw, 2rem);
}
/* Badges, role and status run across; the description reads on the left, the practical facts sit beside it. */
.bach-room-services .accnz-service > * { grid-column: 1 / -1; justify-self: start; }
.bach-room-services .accnz-service > .accnz-service-description { grid-column: 1; justify-self: stretch; }
.bach-room-services .accnz-service > .accnz-service-meta { align-self: start; border-left: 0; grid-column: 2; justify-self: stretch; list-style: none; margin: 0; padding: 0; }
.bach-room-services .accnz-service:not(:has(> .accnz-service-description)) > .accnz-service-meta { grid-column: 1 / -1; }
.bach-room-services .accnz-service-meta li { margin: 0 0 .45rem; }
/* The Work and Income facts: a mint board inside the plate (no coloured edge stripe). */
.bach-room-services .accnz-service > .accnz-service-winz {
	background: var(--paint-mint);
	border: 0 !important;
	border-radius: 4px;
	grid-column: 1 / -1;
	justify-self: stretch;
	padding: clamp(1rem, 2.5vw, 1.4rem) !important;
}
.bach-room-services .accnz-service-winz h4 { font-family: var(--font-sign); font-size: 1rem; font-stretch: 112%; font-weight: 750; letter-spacing: .02em; margin: 0 0 .6rem; text-transform: uppercase; }
.bach-room-services .accnz-service-winz .accnz-service-meta { list-style: none; margin: 0 0 .6rem; padding: 0; }
.bach-room-services .accnz-service-winz .accnz-winz-guide-link { margin: 0; }
.bach-room-services .accnz-service-winz a { color: var(--ink); }
@media (max-width: 48rem) {
	.bach-room-services .accnz-service { grid-template-columns: 1fr; }
	.bach-room-services .accnz-service > .accnz-service-meta { grid-column: 1; }
}
.bach-room-services .accnz-service :is(h2, h3) { font-family: var(--font-sign); font-size: clamp(1.25rem, 2.2vw, 1.625rem); font-stretch: 112%; font-weight: 750; grid-column: 1 / -1; margin: 0; text-transform: none; }
.bach-room-services .accnz-service p { margin: 0 0 .5em; }
.bach-room-services .accnz-service a { color: var(--paint-wall); font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.bach-room-services .accnz-funder-badges { display: flex; flex-wrap: wrap; gap: .4rem; grid-column: 1 / -1; }
.bach-room-services .accnz-funder-badge,
.bach-room-services .accnz-availability-badge { background: transparent !important; border: 1.5px solid var(--ink) !important; border-radius: 3px !important; color: var(--ink) !important; font-size: .8125rem !important; font-weight: 700; padding: .35rem .45rem !important; }
.bach-room-services .accnz-service-roles { font-weight: 700; grid-column: 1 / -1; }
.bach-room-services .accnz-service-description { font-size: 1.0625rem; line-height: 1.6; }
.bach-room-services .accnz-service-meta { display: grid; font-size: 1rem; gap: .3rem; }
.bach-room-services .accnz-service-meta :is(dt, strong) { font-weight: 700; }
.bach-room-services .accnz-service-meta dd { margin: 0 0 .5rem; }

/* Close: the way in, on the harbour wall. */
.bach-room-close { background: var(--paint-wall); color: var(--on-wall); padding-block: clamp(4rem, 9vw, 7rem); }
.bach-room-close__inner { align-items: start; display: grid; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); }
.bach-room-close h2 { color: var(--on-wall); max-width: 14ch; }
.bach-room-close__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.bach-room-contact { display: grid; gap: 0; margin: 0; }
.bach-room-contact > div { border-top: 2px solid rgba(255, 255, 255, .35); display: grid; gap: .25rem 1.5rem; grid-template-columns: 7rem minmax(0, 1fr); padding-block: 1rem; }
.bach-room-contact > div:last-child { border-bottom: 2px solid rgba(255, 255, 255, .35); }
.bach-room-contact dt { font-family: var(--font-sign); font-size: .875rem; font-stretch: 112%; font-weight: 750; letter-spacing: .03em; padding-top: .2rem; text-transform: uppercase; }
.bach-room-contact dd { font-size: 1.0625rem; margin: 0; overflow-wrap: anywhere; }
.bach-room-contact a { color: var(--on-wall); text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .5); text-underline-offset: .25em; }
.bach-room-contact a:hover { text-decoration-color: currentColor; text-decoration-thickness: 2px; }
.bach-room-contact__social { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; }
.bach-room-policy { border: 2px solid rgba(255, 255, 255, .5); border-radius: 6px; margin-top: clamp(2.5rem, 5vw, 3.5rem); max-width: 52rem; }
.bach-room-policy summary { cursor: pointer; font-family: var(--font-sign); font-size: 1rem; font-stretch: 112%; font-weight: 750; letter-spacing: .02em; padding: 1rem 1.25rem; text-transform: uppercase; }
.bach-room-policy .bach-prose { color: var(--on-wall-soft); font-size: 1rem; padding: 0 1.25rem 1.25rem; }
.bach-room-policy .bach-prose :is(h2, h3) { color: var(--on-wall); }
.bach-room-policy .bach-prose a { color: var(--on-wall); }
.bach-room-close .bach-safety { border-top: 2px solid rgba(255, 255, 255, .3); color: var(--on-wall-soft); font-size: 1rem; line-height: 1.55; margin-top: clamp(2.5rem, 5vw, 4rem); max-width: 44rem; padding-top: 1.5rem; }
.bach-room-back { margin: 1.5rem 0 0; }
.bach-room-back .bach-soft { color: var(--on-wall); }
.bach-room__tab-body { margin-inline: auto; max-width: var(--container); padding: clamp(2.5rem, 6vw, 4rem) var(--gutter); }

/* WCFM's enquiry popup, painted to match. */
.cnz-site :is(#wcfm_enquiry_form, .wcfm_popup_wrapper) { color: var(--ink); font-family: var(--font-read); }
.cnz-site :is(#wcfm_enquiry_form, .wcfm_popup_wrapper, #cboxLoadedContent) :is(h2, h3, .wcfm_popup_heading, .wcfm-popup-heading) {
	color: var(--ink) !important;
	font-family: var(--font-sign) !important;
	font-stretch: 112%;
	font-style: normal !important;
	font-weight: 750 !important;
	letter-spacing: .02em;
	text-transform: uppercase;
}
.cnz-site #cboxLoadedContent { font-family: var(--font-read); }
.cnz-site #cboxLoadedContent label { color: var(--ink); font-weight: 700; }
.cnz-site :is(#wcfm_enquiry_form, .wcfm_popup_wrapper) :is(input, textarea) { width: 100%; }

/* ---------- Narrow screens ---------- */
@media (max-width: 48rem) {
	.bach-room-hero__inner { grid-template-columns: 1fr; }
	.bach-room-door { max-width: 14rem; }
	.bach-room-about__inner { grid-template-columns: 1fr; }
	.bach-room-contact > div { grid-template-columns: 1fr; }
}

/* ---------- My results (plugin cnz-member-results): a member's saved tool results ---------- */
/* On a tool page: what will happen to the result, and what did. */
.cnz-site .cnz-mr-note { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; color: var(--ink); max-width: 46rem; padding: .85rem 1.1rem; }
.cnz-site .cnz-mr-saved { background: var(--paint-mint); border: 2px solid var(--ink); border-radius: 6px; color: var(--ink); max-width: 46rem; padding: .85rem 1.1rem; }
.cnz-site .cnz-mr-saved p { margin: 0; }
.cnz-site :is(.cnz-mr-note, .cnz-mr-saved, .cnz-mr) a:not(.bach-button) { color: var(--ink); text-decoration: underline; text-underline-offset: .2em; }
.cnz-site .cnz-mr-linkbtn { color: var(--ink) !important; text-underline-offset: .2em; }

/* The page. */
.cnz-site .cnz-mr { color: var(--ink); }
.cnz-site .cnz-mr :is(h2, h3) { color: var(--ink); }
.cnz-site .cnz-mr > section > h2 { font-size: clamp(1.5rem, 3vw, 2rem); font-stretch: 112%; font-weight: 800; margin: 3rem 0 1rem; }
.cnz-site .cnz-mr-intro p { font-size: 1.0625rem; max-width: 46rem; }
.cnz-site .cnz-mr-muted { color: var(--ink-soft); }
.cnz-site .cnz-mr-jump a { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 4px; color: var(--ink); display: inline-flex; font-family: var(--font-sign); font-size: .8125rem; font-stretch: 112%; font-weight: 750; gap: .5rem; letter-spacing: .03em; padding: .45rem .75rem; text-decoration: none; text-transform: uppercase; }
.cnz-site .cnz-mr-jump a:hover { background: var(--paint-board-line); }
.cnz-site .cnz-mr-jump a span { color: var(--paint-wall); }

/* Each tool is an enamel plate. */
.cnz-site :is(.cnz-mr-tool, .cnz-mr-person, .cnz-mr-empty) { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; padding: clamp(1.1rem, 3vw, 1.75rem); }
.cnz-site .cnz-mr-tool { scroll-margin-top: 6rem; }
.cnz-site .cnz-mr-tool__head h3 { font-size: 1.375rem; font-stretch: 112%; font-weight: 800; }
.cnz-site .cnz-mr-tool__again { font-weight: 700; }
.cnz-site .cnz-mr-tool__latest { margin: .75rem 0 1.25rem; }
.cnz-site .cnz-mr-tool__latest span,
.cnz-site .cnz-mr-trend__title,
.cnz-site .cnz-mr-status { color: var(--ink-soft); display: block; font-family: var(--font-sign); font-size: .8125rem; font-stretch: 112%; font-weight: 750; letter-spacing: .03em; margin: 0 0 .2rem; text-transform: uppercase; }
.cnz-site .cnz-mr-tool__latest strong { font-family: var(--font-sign); font-size: 1.25rem; font-stretch: 112%; font-weight: 800; }
.cnz-site .cnz-mr-trend { background: var(--paint-board); border-radius: 4px; margin: 0 0 1.25rem; padding: 1rem 1.1rem; }
.cnz-site .cnz-mr-trend__label { font-weight: 700; }
.cnz-site .cnz-mr-trend__vals { font-variant-numeric: tabular-nums; }
.cnz-site .cnz-mr-trend__vals small { color: var(--ink-soft); }
.cnz-site .cnz-mr-spark { color: var(--paint-wall); }
.cnz-site .cnz-mr-table { border: 2px solid var(--paint-board-line); border-collapse: separate; border-radius: 6px; border-spacing: 0; font-size: .9375rem; overflow: hidden; }
.cnz-site .cnz-mr-table :is(th, td) { border: 0; border-bottom: 1px solid var(--paint-board-line); padding: .6rem .8rem; }
.cnz-site .cnz-mr-table tr:last-child td { border-bottom: 0; }
.cnz-site .cnz-mr-table th { background: var(--paint-board); font-family: var(--font-sign); font-size: .75rem; font-stretch: 112%; font-weight: 750; letter-spacing: .03em; text-transform: uppercase; }
.cnz-site .cnz-mr-table td { font-variant-numeric: tabular-nums; }
.cnz-site .cnz-mr-table form { margin: 0; }

/* Sharing: the consent words sit on sky, like a pull quote; a counsellor being shared with gets a flax edge. */
.cnz-site .cnz-mr-consent { background: var(--paint-sky); border-radius: 4px; margin: 0 0 1.5rem; max-width: 46rem; padding: clamp(1rem, 3vw, 1.5rem); }
.cnz-site .cnz-mr-consent p:last-child { margin-bottom: 0; }
.cnz-site .cnz-mr-person.is-sharing { border-color: var(--paint-flax); }
.cnz-site .cnz-mr-person__head h3 { font-size: 1.25rem; font-stretch: 112%; font-weight: 800; }
.cnz-site .cnz-mr-person__head h3 a { text-decoration: none; }
.cnz-site .cnz-mr-status { margin: 0; }
.cnz-site .cnz-mr-status--on { background: var(--paint-flax); border-radius: 4px; color: var(--paint-white); padding: .25rem .55rem; }
.cnz-site .cnz-mr-grant summary { color: var(--ink); }
.cnz-site .cnz-mr-grant legend { font-weight: 700; }
.cnz-site .cnz-mr-check input { accent-color: var(--paint-wall); height: 1.15rem; width: 1.15rem; }
.cnz-site .cnz-mr-check--consent { background: var(--paint-board); border-radius: 4px; padding: .75rem .9rem; }
.cnz-site .cnz-mr-empty { max-width: 46rem; }
.cnz-site .cnz-mr-empty h3 { font-size: 1.375rem; font-stretch: 112%; font-weight: 800; }
.cnz-site .cnz-mr .cnz-mr-jump ul { padding-left: 0; }
.cnz-site .cnz-mr .cnz-mr-jump a { text-decoration: none; }
.cnz-site .cnz-mr :is(.cnz-mr-tool__head, .cnz-mr-person__head) h3 { margin: 0; }
.cnz-site .site-content .cnz-mr button.bach-button--enamel { background: var(--paint-white); border: 2px solid var(--ink); color: var(--ink); }
.cnz-site .site-content .cnz-mr button.bach-button--enamel:hover { background: var(--paint-board-line); color: var(--ink); }

/* EAP companies, moved from the home door panel into the room (2026-11-10). */
body.cnz-site .bach-room-hero__eap { margin: .6rem 0 0; color: var(--on-wall-soft); font-size: .95rem; }

/* ---------- 2026-11-12 review fixes ---------- */
/* The header "Book a session" is a board, not a "Book now" pill (DESIGN.md). */
body .ast-primary-header-bar .main-header-menu > .cnz-menu-cta > .menu-link,
body .ast-mobile-header-content .cnz-menu-cta > .menu-link { border-radius: 4px !important; }

/* Articles index: a painted panel with the author's face replaces stock or repeated pictures. */
.cnz-site .cnz-articles .cnz-card-panel { margin: 0 0 .4rem; }
.cnz-site .cnz-card-panel > a {
	align-items: flex-end;
	aspect-ratio: 3 / 2;
	background: var(--panel, var(--paint-wall));
	border-radius: 4px;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	overflow: hidden;
	padding: 1rem 1.1rem 0;
	text-decoration: none;
}
.cnz-site .cnz-card-panel--wall { --panel: var(--paint-wall); --panel-ink: var(--paint-white); }
.cnz-site .cnz-card-panel--flax { --panel: var(--paint-flax); --panel-ink: var(--paint-white); }
.cnz-site .cnz-card-panel--red { --panel: var(--paint-red); --panel-ink: var(--paint-white); }
.cnz-site .cnz-card-panel--sky { --panel: var(--paint-sky); --panel-ink: var(--ink); }
.cnz-site .cnz-card-panel--mint { --panel: var(--paint-mint); --panel-ink: var(--ink); }
.cnz-site .cnz-card-panel--timber { --panel: var(--paint-timber); --panel-ink: var(--paint-white); }
.cnz-site .cnz-card-panel__window {
	align-items: center;
	align-self: flex-end;
	background: var(--paint-white);
	border: 4px solid var(--paint-white);
	border-bottom: 0;
	border-radius: 999px 999px 0 0;
	color: var(--ink);
	display: flex;
	flex: 0 0 auto;
	font-family: var(--font-sign);
	font-size: 2rem;
	font-stretch: 125%;
	font-weight: 800;
	height: 82%;
	justify-content: center;
	overflow: hidden;
	width: 42%;
}
.cnz-site .cnz-card-panel__window img { aspect-ratio: auto; border-radius: 0; height: 100%; object-fit: cover; object-position: 50% 20%; width: 100%; }
.cnz-site .cnz-card-panel__label {
	align-self: flex-start;
	color: var(--panel-ink);
	font-family: var(--font-sign);
	font-size: clamp(1.125rem, 2vw, 1.5rem);
	font-stretch: 125%;
	font-weight: 800;
	line-height: 1;
	order: -1;
	text-align: left;
	text-transform: uppercase;
}

/* Our counsellors: the card facts match the home doors; the result count is noise for four people. */
body.page-id-278748 .woocommerce-result-count,
body.page-id-278748 .wcfmmp-store-count,
body.page-id-278748 [class*="result-count"] { display: none !important; }
body.page-id-278748 #wcfmmp-stores-wrap select.orderby,
body.page-id-278748 select.orderby,
body.page-id-278748 #wcfmmp_store_orderby { min-width: 18rem !important; padding-right: 2.5rem !important; width: auto !important; }
.cnz-site .cnz-card-facts { display: flex; flex-direction: column; gap: .15rem; margin: .9rem 0 .25rem; text-align: left; }
.cnz-site .cnz-card-facts__role { color: var(--ink); font-size: .9375rem; font-weight: 700; line-height: 1.25; }
.cnz-site .cnz-card-facts__place { color: var(--ink-soft); font-size: .875rem; }
.cnz-site .cnz-card-facts__ways { border-top: 1px solid var(--paint-board-line); color: var(--ink); font-size: .875rem; font-weight: 600; margin-top: .45rem; padding-top: .45rem; }
.cnz-site .cnz-card-facts__fund { color: #11667e; font-size: .8125rem; font-weight: 700; }
.cnz-site .cnz-card-facts__fund::before { content: "✓ "; font-weight: 800; }
.cnz-site .cnz-card-facts__fee { border-top: 1px solid var(--paint-board-line); color: var(--ink); font-family: var(--font-sign); font-size: .9375rem; font-weight: 750; margin-top: .45rem; padding-top: .45rem; }
.cnz-site .cnz-card-facts__fee small { color: var(--ink-soft); font-family: var(--font-read); font-size: .8125rem; font-weight: 500; }

/* ACC map and Work and Income list: readable small label, selects wide enough for their words, the Filter is the page's one action. */
.cnz-site .accnz-directory-filters-secondary-label { color: var(--ink-soft) !important; }
.cnz-site .accnz-directory-filters select { min-width: 12.5rem; padding-right: 2.25rem; }
.cnz-site .accnz-directory-filters button[type="submit"] { background: var(--paint-kowhai, #f4c430) !important; border-color: var(--ink) !important; color: var(--ink) !important; }
.cnz-site .accnz-directory-filters button[type="submit"]:hover,
.cnz-site .accnz-directory-filters button[type="submit"]:focus-visible { background: #e3b11c !important; }
.cnz-site .cnz-region-pick { margin-top: clamp(2rem, 4vw, 3rem); }
.cnz-site .cnz-region-pick__title { color: var(--paint-wall); font-family: var(--font-sign); font-size: clamp(1.375rem, 2.2vw, 1.75rem); font-stretch: 112%; font-weight: 750; line-height: 1.1; margin: 0 0 1rem; text-transform: none; }
.cnz-site .cnz-region-pick ul { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.cnz-site .cnz-region-pick li { margin: 0; }
.cnz-site .cnz-region-pick a { background: var(--paint-wall); border-radius: 3px; color: var(--paint-white); display: inline-flex; align-items: center; font-family: var(--font-sign); font-size: .9375rem; font-weight: 700; letter-spacing: .02em; min-height: 2.75rem; padding: .55rem .85rem; text-decoration: none; text-transform: uppercase; }
.cnz-site .cnz-region-pick a:hover,
.cnz-site .cnz-region-pick a:focus-visible { background: var(--ink); color: var(--paint-white); text-decoration: underline; }

/* ---------- v1.10 (review 2026-11-12): one header and one page width everywhere ---------- */
/* Header and page content share the home page's frame: an 80rem container with the gutter inside it. */
.cnz-site .ast-container { max-width: var(--container); }
.cnz-site .ast-primary-header-bar .ast-builder-grid-row { min-height: 5.25rem; }
.ast-desktop.cnz-site .ast-primary-header-bar .main-header-menu > .menu-item > .menu-link { color: var(--ink); font-size: .92rem; font-weight: 650; min-height: 5.25rem; }
.ast-desktop.cnz-site .ast-primary-header-bar .main-header-menu > .current-menu-item:not(.cnz-menu-cta) > .menu-link,
.ast-desktop.cnz-site .ast-primary-header-bar .main-header-menu > .menu-item:not(.cnz-menu-cta) > .menu-link:hover { color: #11667e; }
.ast-desktop.cnz-site .ast-primary-header-bar .main-header-menu > .current-menu-item:not(.cnz-menu-cta) > .menu-link { box-shadow: inset 0 -3px 0 #11667e; }
.ast-desktop.cnz-site .ast-primary-header-bar .main-header-menu > .cnz-menu-cta > .menu-link { font-weight: 650; }
@media (max-width: 57.5rem) {
	.cnz-site .ast-primary-header-bar .ast-builder-grid-row { min-height: 4.5rem; }
}

/* ---------- Tools: two groups, the checks on calm enamel plates, time and length on every board ---------- */
.cnz-site .entry-content .cnz-tool-card :is(h2, h3) {
	color: var(--board-ink);
	font-size: clamp(1.25rem, 2.1vw, 1.625rem);
	font-stretch: 125%;
	font-weight: 800;
	hyphens: auto;
	line-height: 1;
	margin: 0 0 .75rem;
	overflow-wrap: normal;
	text-transform: uppercase;
	word-break: normal;
}
.cnz-site .entry-content h2.cnz-tools-group {
	color: var(--paint-wall);
	font-family: var(--font-sign);
	font-size: clamp(1.625rem, 3.2vw, 2.5rem);
	font-stretch: 125%;
	font-weight: 800;
	line-height: 1;
	margin: clamp(2.5rem, 5vw, 3.5rem) 0 0;
	max-width: none;
	text-transform: uppercase;
}
.cnz-site .entry-content .cnz-tools-group + .cnz-tools-grid { margin-top: 1.25rem; }
.cnz-site .cnz-tools-note { color: var(--ink-soft); font-size: 1.0625rem; margin: .75rem 0 0; max-width: 46rem; }
.cnz-site .cnz-tools-note + .cnz-tools-grid { margin-top: 1.25rem; }
.cnz-site .cnz-tool-card p.cnz-tool-card__meta { flex: 0; font-size: .9375rem; font-weight: 700; margin: 0 0 1rem; }
.cnz-site .cnz-tools-grid--check .cnz-tool-card,
.cnz-site .cnz-tools-grid--check .cnz-tool-card:nth-child(n) { --board: var(--paint-white); --board-ink: var(--ink); border: 2px solid var(--ink); }
.cnz-site .entry-content .cnz-tools-grid--check .cnz-tool-card :is(h2, h3) { color: var(--paint-wall); }
.cnz-site .cnz-tools-crisis { color: var(--ink); font-size: 1.0625rem; font-weight: 600; margin: clamp(2rem, 4vw, 2.75rem) 0 0; max-width: 46rem; }

/* ---------- ACC providers by area: regions first, the form as "narrow it down" ---------- */
.cnz-site .entry-content h2.cnz-acc-heading,
.cnz-site .entry-content .accnz-directory-intro h2 {
	color: var(--paint-wall);
	font-family: var(--font-sign);
	font-size: clamp(1.625rem, 3.2vw, 2.5rem);
	font-stretch: 125%;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
}
.cnz-site .cnz-region-pick--first { margin-top: clamp(1.75rem, 3.5vw, 2.5rem); }
.cnz-site .entry-content h2.cnz-narrow-title { color: var(--ink); font-family: var(--font-read); font-size: 1.25rem; font-weight: 700; line-height: 1.3; margin: clamp(2rem, 4vw, 2.75rem) 0 0; text-transform: none; }
.cnz-site .cnz-narrow-title + .accnz-directory-filters { margin-top: .75rem; }
.cnz-site .accnz-directory-filters button[type="submit"] { justify-self: start; min-width: 9rem; width: auto; }
.cnz-site .accnz-directory-filters-secondary { background: transparent !important; border: 0 !important; padding: 0 !important; }

/* ---------- Articles: topics row, one label above the title, even excerpts ---------- */
.cnz-site .cnz-topics { margin: 0 0 clamp(2rem, 4vw, 2.75rem); }
.cnz-site .entry-content h2.cnz-topics__title { color: var(--ink); font-family: var(--font-read); font-size: 1.125rem; font-weight: 700; line-height: 1.3; margin: 0 0 .75rem; text-transform: none; }
.cnz-site .cnz-topics ul { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; max-width: none !important; padding: 0; }
.cnz-site .cnz-topics li { margin: 0; }
.cnz-site .cnz-topics a { align-items: center; background: var(--paint-white); border: 2px solid var(--ink); border-radius: 4px; color: var(--ink); display: inline-flex; font-size: .9375rem; font-weight: 700; min-height: 2.75rem; padding: .45rem .85rem; text-decoration: none; }
.cnz-site .cnz-topics a:hover,
.cnz-site .cnz-topics a:focus-visible { background: var(--ink); color: var(--paint-white); }
.cnz-site .cnz-articles .wp-block-post-terms { display: none; }
.cnz-site .cnz-articles .wp-block-post-excerpt__excerpt { -webkit-box-orient: vertical; -webkit-line-clamp: 3; display: -webkit-box; line-clamp: 3; overflow: hidden; }

/* ---------- Rooms: larger marks, one session as a full plate, qualifications beside the bio ---------- */
.bach-mark { font-size: .9375rem; padding: .45rem .6rem; }
.bach-sessions--one { grid-template-columns: 1fr; }
.bach-session__text { display: flex; flex: 1; flex-direction: column; gap: .6rem; }
@media (min-width: 48rem) {
	.bach-sessions--one .bach-session { align-items: center; flex-direction: row; gap: clamp(1.5rem, 4vw, 3rem); }
	.bach-sessions--one .bach-session__summary { max-width: 52rem; }
	.bach-sessions--one .bach-session .bach-button { align-self: center; flex: 0 0 auto; margin-top: 0; }
}
.bach-room-facts { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; margin: 0 0 1.75rem; padding: 1.1rem 1.25rem; }
.bach-room-facts > div + div { margin-top: 1rem; }
.bach-room-facts dt { font-size: .875rem; font-stretch: 112%; font-weight: 750; letter-spacing: .03em; margin: 0 0 .4rem; text-transform: uppercase; }
.bach-room-facts dd { font-size: 1.0625rem; line-height: 1.4; margin: 0 0 .25rem; }
@media (min-width: 64rem) {
	.bach-room-about__body--facts { align-items: start; display: grid; gap: 0 clamp(2rem, 4vw, 3rem); grid-template-columns: minmax(0, 1fr) 17rem; }
	.bach-room-about__body--facts > .bach-room-facts { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
	.bach-room-about__body--facts > :not(.bach-room-facts) { grid-column: 1; }
}
.cnz-site .accnz-directory-filters-primary { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
.cnz-site .cnz-tools-grid--self { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.5rem), 1fr)); }
.cnz-site .cnz-tools-note { margin-top: 1rem; }
.cnz-mobile-book { border-radius: 4px !important; }
/* ACC form on phones: one field per row, full width, left aligned. */
@media (max-width: 40rem) {
	.cnz-site :is(.accnz-directory-filters-primary, .accnz-directory-filters-secondary) { align-items: stretch; flex-direction: column; }
	.cnz-site .accnz-directory-filters label { width: 100%; }
	.cnz-site .accnz-directory-filters select { min-width: 0; width: 100%; }
}

/* ---------- v1.11 (review r2, 2026-11-12) ---------- */
/* Tools: room under each group heading; check titles a size down; the crisis line as a plate before the checks. */
.cnz-site .entry-content h2.cnz-tools-group { margin-bottom: 0; }
.cnz-site .entry-content h2.cnz-tools-group + .cnz-tools-note { margin-top: 1rem; }
.cnz-site .entry-content .cnz-tools-grid--check .cnz-tool-card :is(h2, h3) { font-size: clamp(1.0625rem, 1.5vw, 1.25rem); font-stretch: 112%; line-height: 1.1; }
.cnz-site .cnz-tools-crisis { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; margin: 1.25rem 0 0; padding: 1rem 1.25rem; }
.cnz-site .cnz-tools-crisis + .cnz-tools-grid { margin-top: 1.5rem; }

/* ACC providers by area: one big heading, then two step labels in the same style; regions read as places. */
.cnz-site .entry-content .cnz-region-pick--first .cnz-region-pick__title { color: var(--ink); font-family: var(--font-read); font-size: 1.25rem; font-stretch: 100%; font-weight: 700; line-height: 1.3; margin: 0 0 .85rem; text-transform: none; }
.cnz-site .cnz-region-pick a { background: var(--paint-white); border: 2px solid var(--paint-wall); color: var(--paint-wall); font-family: var(--font-read); font-size: 1rem; letter-spacing: 0; text-transform: none; }
.cnz-site .cnz-region-pick a:hover,
.cnz-site .cnz-region-pick a:focus-visible { background: var(--paint-wall); border-color: var(--paint-wall); color: var(--paint-white); }

/* Articles: a panel without a face carries just its topic. */
.cnz-site .cnz-card-panel:not(:has(.cnz-card-panel__window)) .cnz-card-panel__label { max-width: none; }

/* Rooms: a single qualification as a line above the bio. */
.bach-room-quals-line { font-size: 1.0625rem; margin: 0 0 1.25rem; max-width: 44rem; }
.bach-room-quals-line span { display: block; font-size: .875rem; font-stretch: 112%; font-weight: 750; letter-spacing: .03em; margin-bottom: .2rem; text-transform: uppercase; }

/* ---------- v1.12 (owner, 2026-11-12): ACC and Work and Income directories, after findsupport.co.nz ---------- */
/* The plugin's intro: no repeated heading, just the lede. */
.cnz-site .accnz-directory-intro p { color: var(--ink); font-size: clamp(1.0625rem, 1.5vw, 1.25rem); line-height: 1.5; margin: 0; max-width: 44rem; }

/* One filter bar on a sky band, full width of the page frame. */
.cnz-site form.cnz-dir-filters { background: var(--paint-sky) !important; border: 0 !important; border-radius: 6px !important; display: block !important; margin: clamp(1.5rem, 3vw, 2rem) 0 clamp(1.75rem, 3.5vw, 2.5rem) !important; padding: clamp(1rem, 2.5vw, 1.5rem) clamp(1rem, 2.5vw, 1.75rem) !important; }
.cnz-dir-filters__bar { align-items: end; display: flex; flex-wrap: wrap; gap: 1rem 1.25rem; }
.cnz-dir-filters__field { display: grid; flex: 1 1 14rem; gap: .35rem; margin: 0; max-width: 20rem; }
.cnz-dir-filters__field > span { color: var(--ink); font-size: .9375rem; font-weight: 700; }
.cnz-site .cnz-dir-filters select { background-color: var(--paint-white); border: 2px solid var(--ink) !important; border-radius: 4px !important; color: var(--ink); font-size: 1rem; min-height: 2.875rem; min-width: 0 !important; padding: .55rem 2.25rem .55rem .75rem; width: 100% !important; }
.cnz-dir-filters__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-left: auto; }
.cnz-site .cnz-dir-filters :is(.cnz-dir-filters__more, .cnz-dir-filters__go, .cnz-dir-filters__close) {
	align-items: center;
	border: 2px solid var(--ink) !important;
	border-radius: 4px !important;
	cursor: pointer;
	display: inline-flex;
	font-family: var(--font-read);
	font-size: 1rem !important;
	font-weight: 700 !important;
	gap: .5rem;
	justify-content: center;
	letter-spacing: 0 !important;
	line-height: 1.1;
	min-height: 2.875rem;
	padding: .6rem 1.1rem !important;
	text-transform: none !important;
	width: auto !important;
}
.cnz-site .cnz-dir-filters :is(.cnz-dir-filters__more, .cnz-dir-filters__close) { background: var(--paint-white) !important; color: var(--ink) !important; }
.cnz-site .cnz-dir-filters :is(.cnz-dir-filters__more, .cnz-dir-filters__close):hover { background: var(--paint-board-line) !important; }
.cnz-site .cnz-dir-filters .cnz-dir-filters__more[aria-expanded="true"] { background: var(--ink) !important; color: var(--paint-white) !important; }
.cnz-site .cnz-dir-filters .cnz-dir-filters__go { background: var(--paint-kowhai, #f4c430) !important; color: var(--ink) !important; }
.cnz-site .cnz-dir-filters .cnz-dir-filters__go:hover { background: #e3b11c !important; }

/* More filters: pill groups under the bar. */
.cnz-dir-filters__panel { border-top: 2px solid rgba(19, 35, 43, .25); display: grid; gap: 1.25rem; margin-top: 1.25rem; padding-top: 1.25rem; }
.cnz-dir-filters__panel[hidden] { display: none; }
.cnz-dir-filters__group { border: 0; display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; min-width: 0; padding: 0; }
.cnz-dir-filters__group legend { color: var(--ink); float: left; font-size: .9375rem; font-weight: 700; margin: 0 0 .5rem; padding: 0; width: 100%; }
.cnz-pill { cursor: pointer; display: inline-flex; margin: 0; position: relative; }
.cnz-pill input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.cnz-pill span { align-items: center; background: var(--paint-white); border: 2px solid var(--ink); border-radius: 999px; color: var(--ink); display: inline-flex; font-size: .9375rem; font-weight: 700; min-height: 2.75rem; padding: .4rem 1rem; }
.cnz-pill:hover span { background: var(--paint-board-line); }
.cnz-pill input:checked + span { background: var(--ink); color: var(--paint-white); }
.cnz-pill input:checked + span::before { content: "✓\00a0"; }
.cnz-pill input:focus-visible + span { outline: 3px solid var(--ink); outline-offset: 3px; }
.cnz-dir-filters__panel-foot { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; }
.cnz-site .cnz-dir-filters__clear { color: var(--ink) !important; font-weight: 700; text-decoration: underline; text-underline-offset: .25em; }

/* Before a search: what happens next, and the regions with provider counts. */
.cnz-dir-start__lede { color: var(--ink); font-size: 1.0625rem; margin: 0 0 1rem; max-width: 44rem; }
.cnz-site .cnz-dir-start .cnz-region-pick { margin-top: 0; }
.cnz-region-pick__n { background: var(--paint-wall); border-radius: 999px; color: var(--paint-white); display: inline-block; font-size: .8125rem; font-weight: 700; line-height: 1; margin-left: .4rem; min-width: 1.5rem; padding: .25rem .45rem; text-align: center; }
.cnz-site .cnz-region-pick a:hover .cnz-region-pick__n,
.cnz-site .cnz-region-pick a:focus-visible .cnz-region-pick__n { background: var(--paint-white); color: var(--paint-wall); }

/* Results: a count, then the list beside a map that stays in view. */
.cnz-dir-count { color: var(--ink); font-size: 1.125rem; margin: 0 0 1.25rem; }
.cnz-site .accnz-directory-results .wcfmmp-store-lists-sorting { display: none !important; }
.cnz-site .accnz-directory-results .accnz-no-results { margin-bottom: 1rem; }
@media (min-width: 64rem) {
	.cnz-site .accnz-directory-results #wcfmmp-stores-lists { align-items: start; display: grid !important; gap: 2rem; grid-template-columns: minmax(0, 1fr) minmax(20rem, 27rem); }
	.cnz-site .accnz-directory-results #wcfmmp-store-list-map { grid-column: 2; grid-row: 1; height: min(72vh, 36rem) !important; margin: 0 !important; position: sticky; top: 1.5rem; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap-holder { grid-column: 1; grid-row: 1; }
}
.cnz-site .accnz-directory-results #wcfmmp-store-list-map { border: 2px solid var(--ink); border-radius: 6px; height: 18rem; margin-bottom: 1.5rem; overflow: hidden; }

/* Result cards as rows: the painted leaf with the face on the left, details beside it, the profile button at the end. */
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap ul.wcfmmp-store-wrap { display: flex; flex-direction: column; gap: 1rem; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-wrapper::before { border-bottom: 0; border-right: 2px solid var(--ink); height: auto; inset: 0 auto 0 0; width: 9rem; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer { column-gap: 1.5rem; display: grid !important; grid-template-columns: 6.5rem minmax(0, 1fr); padding: 1.25rem 1.25rem 1.25rem 1.25rem !important; row-gap: 1rem; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer > .spacer,
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .wcfm-clearfix { display: none; }
body.cnz-site .accnz-directory-results #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer > .store-avatar { align-self: start; grid-column: 1; grid-row: 1 / span 2; height: 8.125rem !important; width: 6.5rem !important; }
body.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer > .store-data-container { grid-column: 2; margin: 0 !important; }
body.cnz-site .accnz-directory-results #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-data h2 {
	align-self: flex-start;
	background: transparent !important;
	border: 0 !important;
	font-size: 1.25rem !important;
	font-stretch: 100%;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left;
	text-transform: none;
}
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-data h2 a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: .2em; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap a.wcfmmp-visit-store { grid-column: 2; justify-self: start; margin: 0 !important; min-width: 11rem; width: auto !important; }
@media (min-width: 48rem) {
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer { align-items: center; grid-template-columns: 6.5rem minmax(0, 1fr) auto; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap a.wcfmmp-visit-store { align-self: center; grid-column: 3; grid-row: 1 / span 2; }
}
@media (max-width: 30rem) {
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-wrapper::before { width: 6.75rem; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer { column-gap: 1.1rem; grid-template-columns: 4.5rem minmax(0, 1fr); padding: 1rem !important; }
	body.cnz-site .accnz-directory-results #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer > .store-avatar { height: 5.75rem !important; width: 4.5rem !important; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap a.wcfmmp-visit-store { grid-column: 1 / -1; justify-self: stretch; }
	.cnz-dir-filters__field { max-width: none; }
	.cnz-dir-filters__actions { margin-left: 0; width: 100%; }
	.cnz-site .cnz-dir-filters :is(.cnz-dir-filters__more, .cnz-dir-filters__go) { flex: 1 1 auto; }
}
/* The older directory-form rules (labels as grids, full-width fields on phones) must not reach the pills. */
.cnz-site .cnz-dir-filters label.cnz-pill { display: inline-flex !important; font-weight: 400; gap: 0; width: auto !important; }
.cnz-site .cnz-dir-filters label.cnz-dir-filters__field { width: auto; }
@media (max-width: 40rem) { .cnz-site .cnz-dir-filters label.cnz-dir-filters__field { width: 100%; } }
/* Card text clears the painted strip with room to spare. */
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer { column-gap: 2rem; }
@media (max-width: 30rem) {
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-wrapper::before { width: 6rem; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer { column-gap: 1.5rem; }
}

/* ---------- v1.13 (review r4, 2026-11-12) ---------- */
/* Tools: signboard titles a size down, so the longest word keeps its margin on four boards a row. */
.cnz-site .entry-content .cnz-tools-grid--self .cnz-tool-card :is(h2, h3) { font-size: clamp(1.0625rem, 1.55vw, 1.375rem); }
.cnz-site .cnz-tools-next { color: var(--ink); font-size: 1.125rem; font-weight: 600; margin: clamp(2rem, 4vw, 2.75rem) 0 0; max-width: 46rem; }
.cnz-site .cnz-tools-next a { color: var(--ink) !important; font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25em; }

/* Rooms: qualifications as an enamel plate under the About heading. */
.bach-room-about__side { min-width: 0; }
.bach-room-about__side .bach-room-facts { margin: 1.5rem 0 0; }

/* Articles: a panel without a face shows the author's name in the arched window. */
.cnz-site .cnz-card-panel__window--name { font-size: clamp(.9375rem, 1.3vw, 1.125rem); font-stretch: 100%; line-height: 1.1; padding: 1rem .6rem 0; text-align: center; text-transform: uppercase; }

/* Directories on phones: the list first, the map after it. */
@media (max-width: 63.99rem) {
	.cnz-site .accnz-directory-results #wcfmmp-stores-lists { display: flex !important; flex-direction: column; }
	.cnz-site .accnz-directory-results #wcfmmp-store-list-map { margin: 1.5rem 0 0 !important; order: 2; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap-holder { order: 1; }
}
.cnz-site .entry-content p.cnz-tools-next { margin-top: clamp(2rem, 4vw, 2.75rem); }

/* ---------- v1.15 site sweep (2026-11-12): pages the redesign had not reached ---------- */

/* ACC counsellors by region (SEO landing pages, /acc-counsellors/ and each region): the same painted title wall,
   the regions as enamel plates, the map link as the page's one kōwhai action. */
.cnz-seo-landing .cnz-landing { display: flex; flex-direction: column; }
.cnz-seo-landing .cnz-landing > h1 {
	background: var(--paint-wall);
	box-shadow: 0 0 0 100vmax var(--paint-wall);
	clip-path: inset(0 -100vmax);
	color: var(--on-wall);
	font-family: var(--font-sign);
	font-size: clamp(2.25rem, 6vw, 4.5rem);
	font-stretch: 125%;
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: .95;
	margin: 0 0 clamp(2.5rem, 5vw, 4rem);
	max-width: none;
	order: -1;
	padding: clamp(3rem, 7vw, 5.5rem) 0 clamp(2.5rem, 5vw, 4rem);
	text-transform: uppercase;
}
.cnz-seo-landing .cnz-landing__crumbs { color: var(--ink-soft); font-size: .9375rem; margin: 0 0 1.25rem; order: 0; }
.cnz-seo-landing .cnz-landing__crumbs a { color: var(--ink); }
.cnz-seo-landing .cnz-landing > :not(h1):not(.cnz-landing__crumbs) { order: 1; }
.cnz-seo-landing .cnz-landing__intro p { color: var(--ink); font-size: 1.0625rem; line-height: 1.6; max-width: 46rem; }
.cnz-site .cnz-landing__cta {
	align-items: center;
	align-self: flex-start;
	background: var(--paint-kowhai, #f4c430) !important;
	border: 2px solid var(--ink) !important;
	border-radius: 4px !important;
	color: var(--ink) !important;
	display: inline-flex;
	font-family: var(--font-sign);
	font-size: 1rem;
	font-stretch: 112%;
	font-weight: 800;
	min-height: 3rem;
	padding: .7rem 1.4rem;
	text-decoration: none !important;
	text-transform: uppercase;
}
.cnz-site .cnz-landing__cta:hover { background: #e3b11c !important; }
.cnz-seo-landing .cnz-landing h2 { color: var(--paint-wall); font-family: var(--font-sign); font-size: clamp(1.625rem, 3.2vw, 2.5rem); font-stretch: 125%; font-weight: 800; line-height: 1; margin-top: clamp(2.5rem, 5vw, 3.5rem); text-transform: uppercase; }
.cnz-site .cnz-regions { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); list-style: none; margin: 1.25rem 0 0; padding: 0; }
.cnz-site .cnz-regions li { margin: 0; }
.cnz-site .cnz-regions a { align-items: baseline; background: var(--paint-white) !important; border: 2px solid var(--ink) !important; border-radius: 6px !important; box-shadow: none !important; color: var(--ink) !important; display: flex; gap: .75rem; justify-content: space-between; min-height: 3.25rem; padding: .8rem 1rem; text-decoration: none !important; }
.cnz-site .cnz-regions a span { font-weight: 700; }
.cnz-site .cnz-regions a small { color: var(--ink-soft); font-size: .875rem; text-align: right; }
.cnz-site .cnz-regions a:hover { background: var(--paint-board-line) !important; }

/* Category and other post archives: the archive title on the wall; posts as plain cards like the articles page,
   with no painted header behind each post's byline. */
.cnz-site.archive .ast-archive-description {
	background: var(--paint-wall) !important;
	border: 0 !important;
	box-shadow: 0 0 0 100vmax var(--paint-wall);
	clip-path: inset(0 -100vmax);
	margin: 0 0 clamp(2.5rem, 5vw, 4rem) !important;
	padding: clamp(3rem, 7vw, 5.5rem) 0 clamp(2.5rem, 5vw, 4rem) !important;
}
.cnz-site.archive .ast-archive-description .page-title,
.cnz-site.archive .ast-archive-description h1 { color: var(--on-wall); font-family: var(--font-sign); font-size: clamp(2.25rem, 6vw, 4.5rem); font-stretch: 125%; font-weight: 800; line-height: .95; margin: 0; text-transform: uppercase; }
.cnz-site.archive .ast-archive-description :is(p, .ast-archive-description-content) { color: var(--on-wall-soft) !important; font-size: clamp(1.0625rem, 1.5vw, 1.25rem); margin-top: 1rem; max-width: 40rem; }
.cnz-site.archive .ast-row { display: grid !important; gap: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 3vw, 2rem); grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); margin: 0 !important; }
.cnz-site.archive .ast-row::before,
.cnz-site.archive .ast-row::after { content: none !important; }
.cnz-site.archive .ast-row > article { background: transparent !important; box-shadow: none !important; margin: 0 !important; max-width: none !important; padding: 0 !important; width: auto !important; }
.cnz-site.archive .ast-article-inner,
.cnz-site.archive .ast-article-post .post-content { background: transparent !important; box-shadow: none !important; padding: 0 !important; }
.cnz-site.archive .ast-article-post .post-content { display: flex; flex-direction: column; gap: .6rem; }
.cnz-site.archive .post-thumb img { aspect-ratio: 3 / 2; border-radius: 4px; height: auto; object-fit: cover; width: 100%; }
.cnz-site.archive .ast-blog-featured-section { margin: 0 0 .4rem !important; }
.cnz-site.archive .cat-links { display: none; }
.cnz-site.archive .entry-title { font-family: var(--font-read) !important; font-size: clamp(1.25rem, 2.2vw, 1.5rem) !important; font-weight: 700; line-height: 1.25; margin: 0 !important; text-transform: none; }
.cnz-site.archive .entry-title a { color: var(--ink) !important; text-decoration: none; }
.cnz-site.archive .entry-title a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .2em; }
body.cnz-site.archive .entry-header.ast-blog-meta-container,
body.cnz-site.blog .entry-header.ast-blog-meta-container {
	background: transparent !important;
	color: var(--ink-soft) !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.cnz-site.archive .entry-header.ast-blog-meta-container :is(.entry-meta, .entry-meta *) { color: var(--ink-soft) !important; font-size: .9375rem; }
body.cnz-site.archive .entry-header.ast-blog-meta-container a { color: var(--ink) !important; text-decoration-color: rgba(19, 35, 43, .4); }
.cnz-site.archive .ast-excerpt-container,
.cnz-site.archive .entry-content { color: var(--ink-soft); font-size: 1rem; margin: 0 !important; }
.cnz-site.archive .ast-excerpt-container p { -webkit-box-orient: vertical; -webkit-line-clamp: 3; display: -webkit-box; margin: 0; overflow: hidden; }
.cnz-site.archive .ast-pagination { margin-top: clamp(2.5rem, 5vw, 3.5rem); }

/* The older quizzes: the site's own ink buttons, no empty red error bars, no blog byline on a quiz. */
body.cnz-site .site-content a.qsm-btn.qmn_btn,
body.cnz-site .site-content .qsm-btn.qmn_btn,
body.cnz-site .site-content input.qsm-btn {
	background: var(--ink) !important;
	border: 2px solid var(--ink) !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	color: var(--paint-white) !important;
}
body.cnz-site .site-content .qsm-btn.qmn_btn:hover { background: var(--ink-hover, #22343c) !important; }
.cnz-site .qsm-error-message:empty,
.cnz-site .qmn_error_message_section:empty { display: none !important; }
.cnz-site.single-qsm_quiz .entry-header .entry-meta { display: none; }
.cnz-site.archive .ast-blog-featured-section, .cnz-site.archive .post-thumb-img-content, .cnz-site.archive .post-thumb { margin-inline: 0 !important; max-width: 100%; }

/* ---------- v1.16 (review r6, 2026-11-12) ---------- */

/* ACC results: the whole card is the link (no black VIEW PROFILE), a bigger face, status as a coloured dot,
   waitlisting after available and unavailable last and quieter. */
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap a.wcfmmp-visit-store { display: none !important; }
body.cnz-site .accnz-directory-results #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-data h2 { position: static !important; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-data h2 a::after { content: ""; inset: 0; position: absolute; z-index: 0; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-wrapper { transition: border-color 150ms ease-out, box-shadow 150ms ease-out; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap li:hover .store-wrapper,
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap li:focus-within .store-wrapper { box-shadow: 0 0 0 3px var(--ink) !important; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-wrapper::before { width: 10.5rem; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer { grid-template-columns: 8rem minmax(0, 1fr) !important; padding-left: 1.25rem !important; }
body.cnz-site .accnz-directory-results #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer > .store-avatar { height: 10rem !important; width: 8rem !important; }
.cnz-site .accnz-directory-results .accnz-availability-badge { align-items: center; border: 0 !important; display: inline-flex !important; font-size: .875rem !important; gap: .45rem; padding: 0 !important; }
.cnz-site .accnz-directory-results .accnz-availability-badge::before { background: #2e7d4f; border-radius: 50%; content: ""; flex: 0 0 auto; height: .7rem; width: .7rem; }
.cnz-site .accnz-directory-results .accnz-availability-badge--waitlisting::before { background: #d39b0a; }
.cnz-site .accnz-directory-results .accnz-availability-badge--unavailable::before { background: #8a969b; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap li:has(.accnz-availability-badge--waitlisting) { order: 1; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap li:has(.accnz-availability-badge--unavailable) { order: 2; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap li:has(.accnz-availability-badge--unavailable) .store-wrapper { opacity: .78; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-enquiry,
.cnz-site .accnz-directory-results .accnz-card-service-title { position: relative; z-index: 1; }
@media (max-width: 30rem) {
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-wrapper::before { width: 7.25rem; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer { grid-template-columns: 5.5rem minmax(0, 1fr) !important; padding-left: 1rem !important; }
	body.cnz-site .accnz-directory-results #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer > .store-avatar { height: 7rem !important; width: 5.5rem !important; }
}

/* Map pins in the house colours, a number where providers share an address, lit when their card is pointed at. */
.cnz-pin { background: transparent; border: 0; }
.cnz-pin span { align-items: center; background: var(--paint-wall); border: 2px solid var(--paint-white); border-radius: 50% 50% 50% 0; box-shadow: 0 1px 3px rgba(19, 35, 43, .45); display: flex; height: 30px; justify-content: center; transform: rotate(-45deg); transition: background-color 150ms ease-out; width: 30px; }
.cnz-pin b { color: var(--paint-white); font-family: var(--font-read); font-size: .875rem; font-weight: 700; line-height: 1; transform: rotate(45deg); }
.cnz-pin.is-lit span { background: var(--paint-kowhai, #f4c430); }
.cnz-pin.is-lit b { color: var(--ink); }
.cnz-pin__rule { border: 0; border-top: 1px solid var(--paint-board-line); margin: .5rem 0; }

/* ACC counsellors by region: on the standard page frame, no pale strip, readable text, even tiles. */
.cnz-seo-landing .cnz-landing { max-width: none !important; padding-top: 0 !important; }
body.cnz-seo-landing #primary,
body.cnz-seo-landing .site-content > .ast-container { margin-top: 0 !important; padding-top: 0 !important; }
body.cnz-seo-landing.ast-separate-container .site-content { padding-top: 0; }
.cnz-seo-landing .cnz-landing__intro { font-size: 1.0625rem; max-width: 46rem; }
.cnz-seo-landing .cnz-landing__intro p { color: var(--ink) !important; }
.cnz-site .cnz-regions small { color: var(--ink) !important; opacity: 1 !important; white-space: normal !important; }
.cnz-site .cnz-regions a { align-items: flex-start; flex-direction: column; gap: .2rem; justify-content: flex-start; }

/* Articles and topics: a date under the author, so newest-first is visible. */
.cnz-site .cnz-articles .wp-block-post-date { color: var(--ink-soft); font-size: .875rem; margin-top: -.45rem; }
.cnz-site .cnz-topics a[aria-current="page"] { background: var(--ink); color: var(--paint-white); }
.cnz-site .cnz-topic-page .cnz-articles .wp-block-post-template { display: grid; gap: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 3vw, 2rem); grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); list-style: none; margin: 0; padding: 0; }
.cnz-site .cnz-topic-page .navigation.pagination { margin-top: clamp(2.5rem, 5vw, 3.5rem); }

/* Tools: the five checks in one row on wide screens; the closing line as a plate. */
@media (min-width: 64rem) {
	.cnz-site .cnz-tools-grid--check { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.cnz-site .entry-content p.cnz-tools-next { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; padding: 1.1rem 1.25rem; }
/* Tools: the five checks as two full rows (three, then two wider) instead of five cramped columns. */
@media (min-width: 64rem) {
	.cnz-site .cnz-tools-grid--check { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.cnz-site .cnz-tools-grid--check > .cnz-tool-card { grid-column: span 2; }
	.cnz-site .cnz-tools-grid--check > .cnz-tool-card:nth-child(n + 4) { grid-column: span 3; }
}

/* ---------- v1.17 (review r7, 2026-11-12) ---------- */
/* Topics row: one style on the index and on topic pages, small enough to sit on one line on a laptop. */
.cnz-site h2.cnz-topics__title { color: var(--ink); font-family: var(--font-read); font-size: 1.125rem; font-stretch: 100%; font-weight: 700; letter-spacing: 0; line-height: 1.3; margin: 0 0 .75rem; text-transform: none; }
.cnz-site .cnz-topics a { font-size: .875rem; min-height: 2.75rem; padding: .4rem .75rem; }
.cnz-site .cnz-articles .wp-block-post-excerpt__more-link { color: var(--paint-wall) !important; font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25em; }

/* Article tiles: a long topic wraps instead of pushing the face off the tile's edge. */
.cnz-site .cnz-card-panel__label { flex: 1 1 0; hyphens: auto; min-width: 0; overflow-wrap: break-word; }
.cnz-site .cnz-card-panel__window { flex-shrink: 0; }

/* ACC results: where each provider works. */
.cnz-covers { color: var(--ink); font-size: .9375rem; line-height: 1.4; margin: 0 !important; }
.cnz-covers span { font-weight: 700; margin-right: .25rem; }

/* ACC counsellors by region: online-only cover set quieter than real local counts. */
.cnz-site .cnz-regions small.cnz-regions__online { color: var(--ink-soft) !important; font-style: italic; }

/* Tools: the length line never splits on a card. */
@media (min-width: 64rem) {
	.cnz-site .cnz-tool-card p.cnz-tool-card__meta { font-size: .875rem; white-space: nowrap; }
}

/* Prices and dates in the signwriter face: no slashed zeros in money. */
.cnz-site :is(.bach-room-hero__fee, .bach-session__price, .cnz-card-facts__fee, .cnz-articles .wp-block-post-date) { font-family: var(--font-sign); font-stretch: 100%; letter-spacing: 0; }
/* Tile labels fit whole words: smaller type and a slimmer face window, never a break mid-word. */
.cnz-site .cnz-card-panel__label { font-size: clamp(.875rem, 1.2vw, 1.125rem) !important; hyphens: manual; overflow-wrap: normal; }
.cnz-site .cnz-card-panel__window { width: 38%; }
/* Topics row: tight enough to sit on one line at laptop width. */
.cnz-site .cnz-topics ul { gap: .4rem; }
.cnz-site .cnz-topics a { padding: .4rem .6rem; }

/* ---------- v1.18 (review r8, 2026-11-12) ---------- */
/* Articles and topic pages end on a route to a person: a mint band across the page. */
.cnz-talk-band {
	background: var(--paint-mint);
	box-shadow: 0 0 0 100vmax var(--paint-mint);
	clip-path: inset(0 -100vmax);
	color: var(--ink);
	margin: clamp(3.5rem, 7vw, 5rem) 0 0;
	padding: clamp(3rem, 6vw, 4.5rem) 0;
}
.cnz-site h2.cnz-talk-band__title { color: var(--ink); font-family: var(--font-sign); font-size: clamp(1.75rem, 3.6vw, 2.75rem); font-stretch: 125%; font-weight: 800; line-height: 1; margin: 0; max-width: 20ch; text-transform: uppercase; }
.cnz-talk-band__lede { color: var(--ink); font-size: 1.125rem; line-height: 1.5; margin: 1rem 0 0; max-width: 40rem; }
.cnz-talk-band__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin: 1.75rem 0 0; }
.cnz-site .cnz-talk-band__soft { color: var(--ink) !important; font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25em; }
.cnz-talk-band__safety { border-top: 2px solid rgba(19, 35, 43, .2); color: var(--ink); font-size: .9375rem; margin: 2rem 0 0; max-width: 44rem; padding-top: 1rem; }
/* The topic page's own band sits under the cards; the index's follows the query. */
.cnz-site .cnz-articles + .cnz-talk-band,
.cnz-site .wp-block-query + .cnz-talk-band { margin-top: clamp(3.5rem, 7vw, 5rem); }

/* Tools: three equal columns; the "talk a result through" note fills the sixth slot as a painted panel. */
@media (min-width: 64rem) {
	.cnz-site .cnz-tools-grid--check { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.cnz-site .cnz-tools-grid--check > .cnz-tool-card,
	.cnz-site .cnz-tools-grid--check > .cnz-tool-card:nth-child(n + 4) { grid-column: auto !important; }
}
.cnz-site .cnz-tools-talk { background: var(--paint-mint); border-radius: 4px; color: var(--ink); display: flex; flex-direction: column; justify-content: center; padding: clamp(1.25rem, 3vw, 2rem); }
.cnz-site .entry-content .cnz-tools-talk h3 { color: var(--ink); font-family: var(--font-sign); font-size: clamp(1.0625rem, 1.5vw, 1.25rem); font-stretch: 112%; font-weight: 800; line-height: 1.1; margin: 0 0 .75rem; text-transform: uppercase; }
.cnz-site .cnz-tools-talk p { font-size: 1rem; margin: 0; }
.cnz-site .cnz-tools-talk a { color: var(--ink) !important; font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25em; }

/* Lower halves: things you read sit on painted boards (a coloured top edge); thick black outlines are kept for
   things you press. */
.cnz-site .cnz-tools-crisis { background: var(--paint-white); border: 0 !important; box-shadow: none; }

/* No slashed zeros in counts, dates, addresses or the footer year. */
.cnz-site :is(.cnz-tool-card__meta, .wp-block-post-date, .cnz-dir-count, .cnz-region-pick__n, .bach-room-contact dd, .site-footer .ast-footer-copyright, .cnz-card-facts__fee) { font-family: var(--font-sign); font-stretch: 100%; letter-spacing: 0; }

/* Room hero: the town reads as a fact like the marks beside it, not a pressed button. */
.cnz-site .bach-town { background: transparent; border: 1.5px solid rgba(255, 255, 255, .8); color: var(--on-wall); font-family: var(--font-read); font-size: .9375rem; letter-spacing: 0; padding: .45rem .6rem; text-transform: none; }
/* v1.19 (review r10): one qualifications layout; the plugin list is not repeated under the bio. */
.bach-room-about:has(.bach-room-facts) .bach-room-credentials :is(h3, .accnz-qualifications) { display: none; }
/* Topic tiles without a label keep the face on the right, as on the articles index. */
.cnz-site .cnz-card-panel > a:not(:has(.cnz-card-panel__label)) { justify-content: flex-end; }

/* ---------- v1.20 (review r11, 2026-11-12) ---------- */
/* Closing band: room between heading and text; the button is a button, never underlined. */
.cnz-site h2.cnz-talk-band__title { margin-bottom: 0 !important; }
.cnz-site .cnz-talk-band p.cnz-talk-band__lede { margin-top: 1.25rem !important; }
.cnz-site .cnz-talk-band a.bach-button { text-decoration: none !important; }
/* Directory cards: initials on empty glass; height follows the content. */
body.cnz-site .accnz-directory-results #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer > .store-avatar { align-items: center; display: flex !important; height: 8.75rem !important; justify-content: center; position: relative !important; width: 7rem !important; }
.cnz-site .accnz-directory-results .cnz-initials { color: var(--ink); font-family: var(--font-sign); font-size: 1.75rem; font-stretch: 125%; font-weight: 800; inset: 0; position: absolute; display: flex; align-items: center; justify-content: center; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-wrapper::before { width: 9.5rem; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer { grid-template-columns: 7rem minmax(0, 1fr) !important; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap li,
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-wrapper { height: auto !important; min-height: 0 !important; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer { align-items: start !important; min-height: 0 !important; }
.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-data { gap: .4rem; }
@media (max-width: 30rem) {
	body.cnz-site .accnz-directory-results #wcfmmp-stores-wrap ul.wcfmmp-store-wrap li .store-footer > .store-avatar { height: 7rem !important; width: 5.5rem !important; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-wrapper::before { width: 7.25rem; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-footer { grid-template-columns: 5.5rem minmax(0, 1fr) !important; }
	.cnz-site .accnz-directory-results .cnz-initials { font-size: 1.375rem; }
}

/* ---------- v1.22 (review r12, 2026-11-12) ---------- */
/* Rooms: the Sessions heading in harbour blue like every heading on a light wall. */
.bach-room-sessions h2.bach-display { color: var(--paint-wall); }
/* Rooms: a "Where" value without a link reads as plain text. */
.bach-room-contact dd:not(:has(a)) { color: var(--on-wall); }

/* Topic pages: shorter covers so the titles carry the page; the face becomes an author chip. */
.cnz-site .cnz-topic-page .cnz-card-panel > a { aspect-ratio: 3 / 1; padding: .75rem .9rem 0; }
.cnz-site .cnz-topic-page .cnz-card-panel__window { height: 92%; width: 26%; }

/* ACC counsellors by region: the tiles look like links. */
.cnz-site .cnz-regions a span::after { content: "\00a0→"; }
.cnz-site .cnz-regions a:hover span,
.cnz-site .cnz-regions a:focus-visible span { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .2em; }

/* Words that must not split at a hyphen. */
.cnz-nowrap { white-space: nowrap; }

/* ---------- v1.23 (review r13, 2026-11-12) ---------- */
/* One kōwhai button everywhere: the primary style (lip shadow, no rim, signwriter capitals). */
.cnz-site .cnz-landing__cta,
.cnz-site .cnz-dir-filters .cnz-dir-filters__go {
	background: var(--paint-kowhai) !important;
	border: 0 !important;
	border-radius: 4px !important;
	box-shadow: 0 2px 0 rgba(0, 0, 0, .25), 0 10px 22px -12px rgba(0, 0, 0, .55) !important;
	color: var(--ink) !important;
	font-family: var(--font-sign) !important;
	font-size: 1rem !important;
	font-stretch: 112%;
	font-weight: 750 !important;
	letter-spacing: .01em !important;
	min-height: 3.25rem;
	padding: .85rem 1.4rem !important;
	text-transform: uppercase !important;
}
.cnz-site .cnz-landing__cta:hover,
.cnz-site .cnz-dir-filters .cnz-dir-filters__go:hover { background: var(--paint-kowhai-pressed, #e3b11c) !important; }

/* Rooms: the facts a visitor compares, on one enamel plate under the name. */
.bach-glance { background: var(--paint-white); border: 2px solid var(--ink); border-radius: 6px; color: var(--ink); display: grid; gap: 0; margin: 1.5rem 0 0; max-width: 34rem; padding: .35rem 1.1rem; }
.bach-glance > div { border-top: 1px solid var(--paint-board-line); display: grid; gap: .25rem 1rem; grid-template-columns: 7.5rem minmax(0, 1fr); padding: .55rem 0; }
.bach-glance > div:first-child { border-top: 0; }
.bach-glance dt { font-size: .8125rem; font-stretch: 112%; font-weight: 750; letter-spacing: .03em; margin: 0; padding-top: .1rem; text-transform: uppercase; }
.bach-glance dd { font-size: 1rem; font-weight: 600; line-height: 1.4; margin: 0; }
@media (max-width: 30rem) {
	.bach-glance > div { grid-template-columns: 1fr; gap: .1rem; }
}

/* Topic page covers: a touch taller, so the arch reads as a door light, not a strip. */
.cnz-site .cnz-topic-page .cnz-card-panel > a { aspect-ratio: 2 / 1; }
.cnz-site .cnz-topic-page .cnz-card-panel__window { width: 30%; }

/* ---------- v1.24 (review r14) ---------- */
/* ACC counsellors by region (index): normal reading rhythm, the map button beside the text on wide screens. */
.cnz-seo-landing-index .cnz-landing__intro p { margin: 0 0 1rem !important; }
@media (min-width: 64rem) {
	.cnz-seo-landing-index .cnz-landing { column-gap: clamp(2rem, 5vw, 4rem); display: grid !important; grid-template-columns: minmax(0, 46rem) minmax(0, 1fr); }
	.cnz-seo-landing-index .cnz-landing > * { grid-column: 1 / -1; }
	.cnz-seo-landing-index .cnz-landing > h1 { grid-row: 1; }
	.cnz-seo-landing-index .cnz-landing > .cnz-landing__crumbs { grid-row: 2; }
	.cnz-seo-landing-index .cnz-landing > .cnz-landing__intro { grid-column: 1; grid-row: 3; }
	.cnz-seo-landing-index .cnz-landing > .cnz-landing__cta { align-self: end; grid-column: 2; grid-row: 3; justify-self: start; margin-bottom: 1rem; }
}
/* v1.25: the ACC map button back in reading order under the intro (r15: it floated alone on the right). */
@media (min-width: 64rem) {
	.cnz-seo-landing-index .cnz-landing { display: flex !important; }
}
/* No hairline between the header and the landing title wall. */
body.cnz-seo-landing .site-content,
body.cnz-seo-landing #primary { border-top: 0 !important; }
body.cnz-seo-landing .cnz-landing > h1 { margin-top: -1px; }
.cnz-seo-landing-index .cnz-landing > .cnz-landing__cta { align-self: flex-start !important; justify-self: auto !important; margin-bottom: 0 !important; }

/* ---------- v1.26 (review r15, toward 9.7) ---------- */
/* Room closing wall: the way in on the left, contact details and the crisis line on the right. */
.bach-room-close__inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) !important; }
@media (max-width: 48rem) { .bach-room-close__inner { grid-template-columns: 1fr !important; } }
.bach-room-close__inner .bach-room-policy { margin-top: 1.75rem; max-width: none; }
.bach-room-close__inner .bach-room-back { margin: 1.5rem 0 0; }
.bach-room-close__aside { display: grid; gap: 1.5rem; align-content: start; }
.bach-room-close__aside .bach-room-contact { margin: 0; }
.cnz-site .bach-room-close__safety { background: rgba(255, 255, 255, .08); border: 0 !important; border-radius: 4px; color: var(--on-wall) !important; margin: 0 !important; max-width: none; padding: 1.1rem 1.25rem !important; }

/* Article closing band: words and buttons on the left, the crisis line beside them. */
@media (min-width: 64rem) {
	.cnz-talk-band { column-gap: clamp(2rem, 5vw, 4rem); display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
	.cnz-talk-band > :not(.cnz-talk-band__safety) { grid-column: 1; }
	.cnz-talk-band .cnz-talk-band__safety { align-self: end; background: rgba(255, 255, 255, .55); border-radius: 4px; border-top: 0 !important; grid-column: 2; grid-row: 1 / span 3; margin: 0 !important; padding: 1.1rem 1.25rem !important; }
}

/* ACC providers, before a search: two reading boards under the regions. */
.cnz-dir-help { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.cnz-dir-help__board { background: var(--paint-white); border-radius: 4px; color: var(--ink); padding: clamp(1.1rem, 2.5vw, 1.5rem); }
.cnz-site .entry-content h2.cnz-dir-help__title { color: var(--paint-wall); font-family: var(--font-sign); font-size: clamp(1.125rem, 2vw, 1.375rem); font-stretch: 112%; font-weight: 800; line-height: 1.1; margin: 0 0 .6rem; text-transform: uppercase; }
.cnz-dir-help__board p { font-size: 1rem; margin: 0 0 .6rem; max-width: none !important; }
.cnz-dir-help__board p:last-child { margin-bottom: 0; }
.cnz-site .cnz-dir-help__board a { color: var(--paint-wall) !important; font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25em; }

/* ---------- v1.27 (review r16, toward 9.7) ---------- */
/* One crisis line everywhere: a white reading board, ink words, no rim, top-aligned. */
.cnz-crisis,
.cnz-site .bach-safety,
.cnz-site .cnz-tools-crisis,
.cnz-site .bach-room-close__safety {
	background: var(--paint-white) !important;
	border: 0 !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	color: var(--ink) !important;
	font-size: 1rem !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	max-width: 44rem;
	padding: 1rem 1.25rem !important;
}
.cnz-site .bach-safety::before { content: none !important; }
.cnz-crisis p { color: var(--ink); font-size: 1rem; margin: 0 !important; max-width: none !important; }
.cnz-crisis strong { font-weight: 700; }
@media (min-width: 64rem) {
	.cnz-talk-band > .cnz-crisis { align-self: start; grid-column: 2; grid-row: 1 / span 3; margin: 0; }
}
.cnz-talk-band > .cnz-crisis { margin-top: 1.5rem; }
.cnz-talk-band__actions { align-items: flex-start !important; flex-direction: column; }
.cnz-dir-help > .cnz-crisis { align-self: stretch; max-width: none; }
.cnz-seo-landing .cnz-dir-help { margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.cnz-site .accnz-directory-results + .cnz-dir-help,
.cnz-site .cnz-dir-help { margin-top: clamp(2rem, 4vw, 3rem); }

/* Regions with nobody local: say "online", not a blank. */
.cnz-region-pick__n--online { background: transparent !important; border: 1.5px solid currentColor; color: inherit !important; font-weight: 600; }

/* ACC results: the card's details use the whole card (place and enquiry in a right-hand column). */
@media (min-width: 64rem) {
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-data { column-gap: 2rem; display: grid !important; grid-auto-flow: row dense; grid-template-columns: minmax(0, 1fr) minmax(0, 13rem); }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-data > * { grid-column: 1; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-data > .cnz-covers { grid-column: 2; grid-row: 1 / span 2; }
	.cnz-site .accnz-directory-results #wcfmmp-stores-wrap .store-data > .store-enquiry { align-self: start; grid-column: 2; grid-row: 3; }
}

/* Topic pages: the same tile as the articles index (label top-left, face right). */
.cnz-site .cnz-topic-page .cnz-card-panel > a { aspect-ratio: 3 / 2; padding: 1rem 1.1rem 0; }
.cnz-site .cnz-topic-page .cnz-card-panel__window { height: 82%; width: 38%; }
/* Card titles fill the card width rather than balancing into narrow shapes. */
.cnz-site .cnz-articles .wp-block-post-title { text-wrap: pretty !important; }

/* Rooms: links in the close match the rest of the site; a close with no details is one calm column. */
.bach-room-contact__social a { font-weight: 700; text-decoration-thickness: 2px !important; }
.bach-room-close__inner:not(:has(.bach-room-contact)) { grid-template-columns: minmax(0, 1fr) !important; }
.bach-room-close__inner:not(:has(.bach-room-contact)) .bach-room-close__aside { max-width: 44rem; }

/* ---------- v1.28 (review r17) ---------- */
/* Crisis line: sized to its words, top-aligned, one width, the lead-in always bold. */
.cnz-crisis, .cnz-site .cnz-tools-crisis { align-self: start !important; height: auto !important; max-width: 44rem !important; }
.cnz-site .cnz-tools-crisis strong { font-weight: 700; }
/* ACC help: one column, the crisis line under "Not sure ACC covers you?" at the same width. */
.cnz-dir-help { grid-template-columns: minmax(0, 44rem) !important; }
.cnz-dir-help > .cnz-crisis { align-self: start; max-width: none !important; }
/* "Not sure ACC covers you?" is one component on the map page and the region pages. */
.cnz-site .cnz-dir-help__board { margin: 0 !important; }
.cnz-site .cnz-dir-help h2.cnz-dir-help__title { color: var(--paint-wall) !important; font-family: var(--font-sign) !important; font-size: clamp(1.125rem, 2vw, 1.375rem) !important; font-stretch: 112% !important; font-weight: 800 !important; letter-spacing: 0 !important; line-height: 1.1 !important; margin: 0 0 .6rem !important; padding: 0 !important; text-align: left !important; text-transform: uppercase !important; }
/* Rooms with no contact details: one reading width, one left and one right edge. */
.bach-room-close__inner:not(:has(.bach-room-contact)) > * { max-width: 45rem; width: 100%; }
.bach-room-close__inner:not(:has(.bach-room-contact)) .bach-room-close__aside { max-width: 45rem; }
.bach-room-close__inner:not(:has(.bach-room-contact)) .cnz-crisis { max-width: none !important; }
/* Card excerpts are cut at a whole word in PHP; the clamp is only a safety net now. */
.cnz-site .cnz-articles .wp-block-post-excerpt__excerpt { -webkit-line-clamp: 4; line-clamp: 4; }

/* ---------- v1.29 (review r18) ---------- */
/* Reading boards on the light wall are painted mint, so they separate from the wall (Plate Rule paints). */
.cnz-site .cnz-dir-help__board,
.cnz-site .cnz-dir-help > .cnz-crisis,
.cnz-site .cnz-tools-crisis { background: var(--paint-mint) !important; }
/* ACC help boards share the result cards' right edge. */
.cnz-dir-help { grid-template-columns: minmax(0, 45rem) !important; }
/* Region page title wall: one painted source, so no hairline at its fractional bottom edge. */
.cnz-seo-landing .cnz-landing > h1 { background: transparent !important; box-shadow: inset 0 0 0 100vmax var(--paint-wall), 0 0 0 100vmax var(--paint-wall) !important; }
/* Rooms with no contact details: the crisis note sits in the right column, as on every other room (review r19). */
@media (min-width: 48.01rem) {
	.bach-room-close__inner:not(:has(.bach-room-contact)) { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) !important; }
	.bach-room-close__inner:not(:has(.bach-room-contact)) > * { max-width: none; }
}

/* A crisis board that ends a page (FAQ, Contact) keeps clear of the footer (owner, 2026-11-12). */
.cnz-site .entry-content > .cnz-crisis { margin-block: 1.5rem clamp(2.5rem, 5vw, 4rem); }
