/*
Theme Name: Kantrob (Kadence Child)
Theme URI: https://kantroblocks.com
Description: Child theme of Kadence for the Kantrob website. Carries the Kantrob design system, self-hosted fonts and the fit-finder templates, so Kadence updates never overwrite them.
Author: Kantrob
Version: 4.4.0
Template: kadence
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kantrob-child
*/

/* ===============================================================
   KANTROB DESIGN SYSTEM
   Workshop, not showroom. The stamp on the casting is the idea.

   Fonts are self-hosted, NOT loaded from Google's CDN. Serving
   fonts from Google transmits visitor IP addresses to a third
   country and has been found to breach the GDPR in EU case law.
   =============================================================== */

/* ---- 1. FACES ------------------------------------------------ */

/* One variable file carries both roles:
   Archivo        = wdth 100%, weights 400-600  (body)
   Archivo Expand = wdth 125%, weights 700-800  (display)          */
@font-face {
	font-family: 'Archivo Variable';
	src: url('fonts/archivo-variable.woff2') format('woff2-variations');
	font-weight: 400 800;
	font-stretch: 100% 125%;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'IBM Plex Mono';
	src: url('fonts/plex-mono-500.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'IBM Plex Mono';
	src: url('fonts/plex-mono-600.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

/* ---- 2. TOKENS ----------------------------------------------- */

:root {
	/* Palette */
	--ink:        #121412;
	--green:      #7FC24B;
	--green-deep: #4E7D2C;
	--steel:      #6E7671;
	--paper:      #F4F5F2;
	--white:      #FFFFFF;

	/* Families */
	--font-body:    'Archivo Variable', 'Helvetica Neue', Arial, sans-serif;
	--font-display: 'Archivo Variable', 'Arial Narrow', Arial, sans-serif;
	--font-mono:    'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

	/* Type scale — desktop */
	--display-xl: 64px;
	--display-l:  44px;
	--display-m:  30px;
	--heading:    21px;
	--body-l:     19px;
	--body:       17px;
	--small:      15px;
	--stamp:      13px;

	/* Measure */
	--measure: 68ch;
}

@media (max-width: 781px) {
	:root {
		--display-xl: 38px;
		--display-l:  30px;
		--display-m:  24px;
		/* body stays 17px on mobile — deliberately not shrunk */
	}
}

/* ---- 3. BASE ------------------------------------------------- */

body,
.entry-content {
	font-family: var(--font-body);
	font-size: var(--body);
	line-height: 1.65;
	color: var(--ink);
	font-stretch: 100%;
}

body {
	background-color: var(--paper);
}

.entry-content p,
.entry-content li {
	max-width: var(--measure);
}

/* Display type is ALWAYS uppercase. Body is ALWAYS sentence case.
   The contrast between the two is doing the work.                 */
h1, h2, h3,
.k-display-xl, .k-display-l, .k-display-m {
	font-family: var(--font-display);
	font-stretch: 125%;
	text-transform: uppercase;
	color: var(--ink);
	margin-top: 0;
}

h1, .k-display-l {
	font-size: var(--display-l);
	line-height: 1.05;
	font-weight: 700;
}

h2, .k-display-m {
	font-size: var(--display-m);
	line-height: 1.15;
	font-weight: 700;
}

.k-display-xl {
	font-size: var(--display-xl);
	line-height: 0.95;
	font-weight: 800;
	letter-spacing: -0.02em;
}

/* Sub-headings are body face, not display face */
h3, h4, .k-heading {
	font-family: var(--font-body);
	font-stretch: 100%;
	font-size: var(--heading);
	line-height: 1.3;
	font-weight: 600;
	text-transform: none;
	color: var(--ink);
}

.k-body-l  { font-size: var(--body-l); line-height: 1.6; }
.k-small   { font-size: var(--small);  line-height: 1.5; color: var(--steel); }

a { color: var(--green-deep); }
a:hover, a:focus-visible { color: var(--ink); }

/* ---- 4. THE STAMP — the signature element -------------------- */
/* Straight off the casting. The one repeated device on the site.  */

.k-stamp {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: var(--stamp);
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ink);
	background: var(--paper);
	border: 1px solid var(--steel);
	border-radius: 0;
	padding: 0.45em 0.7em;
	white-space: nowrap;
}

.k-stamp--tbc {
	color: var(--steel);
	border-style: dashed;
}

.k-stamp-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

/* Any number a buyer might write down is mono. */
.k-data { font-family: var(--font-mono); font-weight: 500; }

/* Eyebrow — stamp type without the box */
.k-eyebrow {
	font-family: var(--font-mono);
	font-size: var(--stamp);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--steel);
	margin: 0 0 1rem;
}

/* ---- 5. SECTION RULE ----------------------------------------- */
/* 3px green, 64px wide, above every section heading.
   The only decorative element on the site.                        */

.k-rule::before,
.k-section > h2::before {
	content: "";
	display: block;
	width: 64px;
	height: 3px;
	background: var(--green);
	margin: 0 0 1.25rem;
}

/* ---- 6. BUTTONS ---------------------------------------------- */

.k-btn {
	display: inline-block;
	font-family: var(--font-body);
	font-stretch: 100%;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	text-decoration: none;
	padding: 1.05em 1.6em;
	border-radius: 2px;
	border: 2px solid var(--ink);
	background: var(--ink);
	color: var(--white);
	transition: background-color .15s ease, color .15s ease;
	cursor: pointer;
}
.k-btn:hover, .k-btn:focus-visible { background: #000; color: var(--white); }

.k-btn--secondary {
	background: transparent;
	color: var(--ink);
	border-width: 1.5px;
}
.k-btn--secondary:hover, .k-btn--secondary:focus-visible {
	background: var(--ink);
	color: var(--white);
}

/* On dark: green fill, ink text. Never white text on green. */
.k-on-ink .k-btn,
.k-btn--on-dark {
	background: var(--green);
	border-color: var(--green);
	color: var(--ink);
}
.k-on-ink .k-btn:hover,
.k-btn--on-dark:hover {
	background: #8FD25B;
	border-color: #8FD25B;
	color: var(--ink);
}
.k-on-ink .k-btn--secondary {
	background: transparent;
	border-color: var(--paper);
	color: var(--paper);
}
.k-on-ink .k-btn--secondary:hover { background: var(--paper); color: var(--ink); }

/* ---- 7. SURFACES --------------------------------------------- */

.k-on-ink {
	background: var(--ink);
	color: var(--paper);
}
.k-on-ink h1, .k-on-ink h2, .k-on-ink h3,
.k-on-ink .k-display-xl, .k-on-ink .k-display-l, .k-on-ink .k-display-m {
	color: var(--paper);
}
/* Green on ink is fine at display sizes only */
.k-on-ink .k-accent { color: var(--green); }
.k-on-ink .k-eyebrow { color: var(--green); }
.k-on-ink .k-stamp {
	background: transparent;
	border-color: var(--steel);
	color: var(--paper);
}

.k-on-paper { background: var(--paper); color: var(--ink); }

.k-section { padding: clamp(3rem, 7vw, 5.5rem) 0; }

/* ---- 8. PLACEHOLDERS ----------------------------------------- */
/* Unconfirmed content is visibly unconfirmed. Never guessed at.   */

.k-tbc {
	font-family: var(--font-mono);
	font-size: var(--stamp);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--steel);
	background: repeating-linear-gradient(
		45deg, transparent, transparent 6px,
		rgba(110,118,113,.09) 6px, rgba(110,118,113,.09) 12px
	);
	border: 1px dashed var(--steel);
	padding: 0.35em 0.6em;
	display: inline-block;
}

/* Reserved space where the official certification marks go.
   Never redraw, recolour or restyle either mark.                  */
.k-cert-slot {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 96px;
	padding: 1.25rem;
	border: 1px dashed var(--steel);
	background: var(--paper);
	text-align: center;
}

/* ---- 9. FIT FINDER ------------------------------------------- */

.kantrob-fitfinder-filters {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 2.5rem;
	padding: 0;
	list-style: none;
}
.kantrob-filter-btn {
	font-family: var(--font-mono);
	font-size: var(--stamp);
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	cursor: pointer;
	padding: 0.7em 1.1em;
	border: 1px solid var(--steel);
	border-radius: 0;
	background: var(--paper);
	color: var(--ink);
	transition: background-color .15s ease, border-color .15s ease;
}
.kantrob-filter-btn:hover, .kantrob-filter-btn:focus-visible { border-color: var(--ink); }
.kantrob-filter-btn[aria-pressed="true"] {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--paper);
}

.kantrob-hitch-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1rem;
	margin: 0 0 3rem;
	padding: 0;
	list-style: none;
}
.kantrob-hitch-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--steel);
	background: var(--white);
}
.kantrob-hitch-card__media {
	aspect-ratio: 4 / 3;
	background: var(--paper);
	border-bottom: 1px solid var(--steel);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.kantrob-hitch-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kantrob-hitch-card__body { padding: 1.1rem 1.15rem 1.25rem; }
.kantrob-hitch-card__title {
	font-family: var(--font-display);
	font-stretch: 125%;
	font-weight: 700;
	font-size: var(--heading);
	line-height: 1.15;
	text-transform: uppercase;
	margin: 0 0 .75rem;
}
.kantrob-hitch-card__title a { color: var(--ink); text-decoration: none; }
.kantrob-hitch-card__title a:hover { color: var(--green-deep); }
.kantrob-hitch-card__meta { margin: 0; }

.kantrob-fitfinder__prompt {
	border-top: 1px solid var(--steel);
	padding-top: 2rem;
}

/* ---- 10. HITCH MODEL (single) -------------------------------- */

.kantrob-hitch-single__code {
	font-family: var(--font-display);
	font-stretch: 125%;
	font-weight: 800;
	font-size: var(--display-l);
	line-height: 1.05;
	text-transform: uppercase;
	margin: 0 0 1.25rem;
}
.kantrob-hitch-single__photo { margin: 0 0 2rem; }
.kantrob-hitch-single__photo img {
	max-width: 100%;
	height: auto;
	background: var(--paper);
	border: 1px solid var(--steel);
}
.kantrob-hitch-single__spec {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 2.5rem;
}
.kantrob-hitch-single__spec th,
.kantrob-hitch-single__spec td {
	text-align: left;
	vertical-align: top;
	padding: .8rem .9rem;
	border-bottom: 1px solid var(--steel);
	font-size: var(--body);
}
.kantrob-hitch-single__spec th {
	width: 38%;
	font-weight: 600;
	background: var(--paper);
}
.kantrob-hitch-single__spec td { font-family: var(--font-mono); font-weight: 500; }
.kantrob-hitch-single__locks { margin: 0 0 2.5rem; padding: 0; list-style: none; }
.kantrob-hitch-single__locks li { margin: 0 0 .5rem; }

/* ---- 11. 404 ------------------------------------------------- */

.k-404 { padding: clamp(3rem, 9vw, 7rem) 0; }
.k-404__title {
	font-family: var(--font-display);
	font-stretch: 125%;
	font-weight: 800;
	font-size: var(--display-xl);
	line-height: 0.95;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	margin: 0 0 1.25rem;
}
.k-404__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }

@media (max-width: 480px) {
	.kantrob-hitch-grid { grid-template-columns: 1fr; }
	.kantrob-hitch-single__spec th { width: 45%; }
}


/* ===============================================================
   PAGE SECTION LAYOUTS
   Folded in from Additional CSS. Edit here, not in the Customizer.
   =============================================================== */
.k-wide { max-width: 1180px; margin-inline: auto; padding-inline: clamp(1.25rem, 4vw, 2.5rem); }
.k-hero, .k-certbar, .k-stats-sec, .k-product, .k-steps-sec,
.k-fitprompt, .k-segments-sec, .k-tradestrip { padding-block: clamp(3rem, 7vw, 5.5rem); }

/* ---- HERO: the argument, not the object ---- */
.k-hero { background: var(--ink); color: var(--paper); }
.k-hero__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.k-hero__head { font-family: var(--font-display); font-stretch: 125%; font-weight: 800;
	font-size: var(--display-xl); line-height: .95; letter-spacing: -.02em;
	text-transform: uppercase; color: var(--paper); margin: 0 0 1.25rem; }
.k-hero__body { font-size: var(--body-l); line-height: 1.6; color: #D7DAD5; max-width: 46ch; margin: 0 0 2rem; }
.k-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* The split — every other lock vs Kantrob */
.k-vs { border: 1px solid var(--steel); }
.k-vs__row { display: grid; grid-template-columns: 1fr 1fr; }
.k-vs__row + .k-vs__row { border-top: 1px solid var(--steel); }
.k-vs__cell { padding: 1rem 1.1rem; font-size: var(--small); line-height: 1.45; }
.k-vs__cell + .k-vs__cell { border-left: 1px solid var(--steel); }
.k-vs__head .k-vs__cell { font-family: var(--font-mono); font-size: var(--stamp); font-weight: 600;
	text-transform: uppercase; letter-spacing: .08em; }
.k-vs__cell--them { color: #9AA29C; }
.k-vs__cell--us { color: var(--paper); background: rgba(127,194,75,.10); }
.k-vs__head .k-vs__cell--us { color: var(--green); }

/* ---- CERTIFICATION BAR ---- */
.k-certbar { background: var(--paper); border-block: 1px solid var(--steel); }
.k-certbar__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; align-items: center; }

/* ---- STATS ---- */
.k-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.25rem; margin-top: 2.5rem; }
.k-stat { border: 1px solid var(--steel); background: var(--white); padding: 1.5rem 1.35rem; }
.k-stat__fig { font-family: var(--font-mono); font-weight: 600; font-size: 30px; line-height: 1.1;
	letter-spacing: -.01em; color: var(--ink); display: block; margin-bottom: .6rem; }
.k-stat__txt { font-size: var(--small); line-height: 1.5; color: var(--ink); margin: 0 0 .5rem; }
.k-stat__src { font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em;
	text-transform: uppercase; color: var(--steel); margin: 0; }

/* ---- PRODUCT ---- */
.k-product__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: start; }
.k-media-slot { aspect-ratio: 4/3; border: 1px dashed var(--steel); background: var(--paper);
	display: flex; align-items: center; justify-content: center; text-align: center; padding: 1.5rem; }

/* ---- STEPS ---- */
.k-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; margin-top: 2.5rem;
	list-style: none; padding: 0; counter-reset: kstep; }
.k-step { counter-increment: kstep; border-top: 3px solid var(--green); padding-top: 1.1rem; }
.k-step::before { content: counter(kstep, decimal-leading-zero); display: block;
	font-family: var(--font-mono); font-weight: 600; font-size: var(--stamp);
	letter-spacing: .08em; color: var(--green-deep); margin-bottom: .6rem; }
.k-step h3 { font-size: var(--heading); margin: 0 0 .4rem; }
.k-step p { font-size: var(--small); margin: 0; }

/* ---- FIT FINDER PROMPT ---- */
.k-fitprompt { background: var(--white); border-block: 1px solid var(--steel); }
.k-fitprompt__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }

/* ---- SEGMENTS ---- */
.k-segments { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; margin-top: 2.5rem;
	list-style: none; padding: 0; }
.k-segment { border: 1px solid var(--steel); padding: 1.4rem 1.3rem; background: var(--white); }
.k-segment h3 { font-family: var(--font-display); font-stretch: 125%; font-weight: 700;
	text-transform: uppercase; font-size: var(--heading); margin: 0 0 .5rem; }
.k-segment p { font-size: var(--small); margin: 0; }

/* ---- TRADE STRIP ---- */
.k-tradestrip { background: var(--ink); color: var(--paper); }
.k-tradestrip__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 3.5rem); }
.k-tradestrip h2 { color: var(--paper); }
.k-tradestrip p { color: #D7DAD5; font-size: var(--small); }

@media (max-width: 900px) {
	.k-hero__grid, .k-product__grid, .k-fitprompt__grid, .k-tradestrip__grid { grid-template-columns: 1fr; }
	.k-hero__grid { gap: 2.25rem; }
}

/* --- patches applied live after first visual review --- */

/* Dark surfaces also get the on-dark button treatment.
   Without this an outline button renders ink-on-ink and vanishes. */
.k-hero .k-btn, .k-tradestrip .k-btn { background: var(--green); border-color: var(--green); color: var(--ink); }
.k-hero .k-btn:hover, .k-tradestrip .k-btn:hover { background: #8FD25B; border-color: #8FD25B; color: var(--ink); }
.k-hero .k-btn--secondary, .k-tradestrip .k-btn--secondary { background: transparent; border-color: var(--paper); color: var(--paper); }
.k-hero .k-btn--secondary:hover, .k-tradestrip .k-btn--secondary:hover { background: var(--paper); border-color: var(--paper); color: var(--ink); }

/* The 64px green rule sits above EVERY section heading.
   Section h2s live inside .k-wide, so target that. */
.k-wide > h2::before { content: ""; display: block; width: 64px; height: 3px; background: var(--green); margin: 0 0 1.25rem; }
.k-tradestrip .k-wide > div > h2::before, .k-tradestrip h2::before { content: ""; display: block; width: 64px; height: 3px; background: var(--green); margin: 0 0 1.25rem; }

/* CONTRACTORS breaks mid-word in a narrow card at 21px expanded. */
.k-segment h3 { font-size: 19px; letter-spacing: -0.01em; }
.k-segments { grid-template-columns: repeat(auto-fit, minmax(238px, 1fr)); }

/* ---- Certification cards (security page) ---- */
.k-certgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 1.5rem; margin: 2rem 0; }
.k-certcard { border: 1px solid var(--steel); background: var(--white); padding: 1.5rem 1.4rem; }
.k-certcard .k-cert-slot { margin-bottom: 1.25rem; }
.k-certcard h3 { font-family: var(--font-display); font-stretch: 125%; font-weight: 700; text-transform: uppercase; font-size: 19px; margin: 0 0 .9rem; }
.k-media-slot--video { aspect-ratio: 16 / 9; }
.k-section + .k-section { border-top: 1px solid rgba(110,118,113,.35); }

/* ---- 12. FILLED ASSET SLOTS ---------------------------------- */
/* A slot loses its "awaiting artwork" dashed treatment the moment
   real artwork lands in it. Both the :has() rule and the explicit
   class are kept so older browsers still get the right result.   */
.k-cert-slot:has(img),
.k-media-slot:has(img),
.k-slot--filled {
	border: 0;
	padding: 0;
	background: none;
	aspect-ratio: auto;
	min-height: 0;
	display: block;
}

.k-cert-slot:has(img),
.k-cert-slot.k-slot--filled {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	min-height: 96px;
}

.k-certbar__grid .k-cert-slot img { max-height: 104px; width: auto; height: auto; }
.k-certcard .k-cert-slot img { max-height: 88px; width: auto; height: auto; }

.k-media-slot img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
}

/* The product cut-outs carry their own transparency, so they sit
   straight on whatever surface the section uses. A soft ground
   shadow stops them floating.                                    */
.k-media-slot img.k-cutout {
	filter: drop-shadow(0 18px 22px rgba(18, 20, 18, 0.18));
}

.k-segment .k-media-slot { margin-bottom: 1.1rem; }
.k-segment .k-media-slot img { max-height: 220px; width: auto; margin: 0 auto; }

/* The flyer's LOCK IT OR LOSE IT badge. Official artwork, used
   as supplied — never redrawn or recoloured.                     */
.k-lockup { display: block; width: 128px; height: auto; margin-top: 1.75rem; }

@media (max-width: 900px) {
	.k-segment .k-media-slot img { max-height: 180px; }
}

/* Footer trademark note - quieter than the copyright line above it. */
.k-footnote { display: block; margin-top: .5rem; font-size: 12.5px; line-height: 1.55; opacity: .78; max-width: 62ch; }

/* ---- 13. LEGAL PAGES ------------------------------------------ */
/* Policy pages are list-heavy and read at length, so the measure is
   held tighter than a marketing section and the lists get room.    */
.k-list { margin: 1.1rem 0 1.4rem; padding-left: 1.15rem; max-width: 68ch; }
.k-list li { margin-bottom: .7rem; line-height: 1.6; }
.k-list li:last-child { margin-bottom: 0; }
.k-section h3 { font-family: var(--font-display); font-stretch: 125%; font-weight: 700;
	text-transform: uppercase; font-size: 17px; letter-spacing: -.01em; margin: 2rem 0 .6rem; }
.k-wide > p, .k-wide > h2 + p { max-width: 68ch; }

/* ---- 14. CONSENT BANNER --------------------------------------- */
/* Complianz draws the banner entirely from its own custom
   properties, so the palette is set here rather than by fighting
   its rules. !important because load order between the plugin's
   generated stylesheet and this one is not guaranteed.          */
:root {
	--cmplz_banner_width: 460px !important;
	--cmplz_banner_background_color: #F4F5F2 !important;
	--cmplz_banner_border_color: #121412 !important;
	--cmplz_banner_border_width: 1px 1px 1px 1px !important;
	--cmplz_banner_border_radius: 0 0 0 0 !important;
	--cmplz_text_color: #121412 !important;
	--cmplz_hyperlink_color: #4E7D2C !important;
	--cmplz_title_font_size: 18px !important;
	--cmplz_text_font_size: 14px !important;
	--cmplz_button_font_size: 12px !important;
	--cmplz_button_border_radius: 0 0 0 0 !important;
	--cmplz_button_accept_background_color: #7FC24B !important;
	--cmplz_button_accept_border_color: #7FC24B !important;
	--cmplz_button_accept_text_color: #121412 !important;
	--cmplz_button_deny_background_color: transparent !important;
	--cmplz_button_deny_border_color: #121412 !important;
	--cmplz_button_deny_text_color: #121412 !important;
	--cmplz_button_settings_background_color: transparent !important;
	--cmplz_button_settings_border_color: #121412 !important;
	--cmplz_button_settings_text_color: #121412 !important;
	--cmplz_category_header_always_active_color: #4E7D2C !important;
	--cmplz_slider_active_color: #7FC24B !important;
}

/* Type treatment, so the banner speaks the same language as the site. */
.cmplz-cookiebanner .cmplz-title { font-family: var(--font-display); font-stretch: 125%;
	font-weight: 700; text-transform: uppercase; letter-spacing: -.01em; }
.cmplz-cookiebanner .cmplz-btn { font-family: var(--font-mono); font-weight: 600;
	letter-spacing: .08em; text-transform: uppercase; }
.cmplz-cookiebanner .cmplz-category-title { font-family: var(--font-mono);
	letter-spacing: .05em; text-transform: uppercase; }
.cmplz-cookiebanner .cmplz-link { font-family: var(--font-mono); letter-spacing: .05em; text-transform: uppercase; }

/* ---- 15. CONSENT BANNER SUPPRESSED ----------------------------- */
/* This site sets only functional cookies. No analytics, no marketing,
   no advertising, no third-party embeds - Complianz itself reports a
   single Functional category. Strictly necessary cookies need no
   consent under the GDPR and ePrivacy, so the banner is suppressed.
   The plugin stays active because it generates the cookie policy,
   and the Manage Consent control on /cookies/ still works.

   REVERSE THIS the day any analytics or marketing script is added,
   Google Analytics included. Consent is required from that moment,
   and Complianz's cookie blocker will hold the new script until a
   visitor can agree to it - which a hidden banner never lets them do.
   Delete this whole block and the banner returns, already styled.  */
#cmplz-cookiebanner-container,
.cmplz-cookiebanner,
.cmplz-blocked-content-notice { display: none !important; }
/* The Manage Consent link belongs on the cookie policy page only. */
body:not(.page-template) .cmplz-manage-consent { display: none !important; }
