/* ChargeBreak theme: component styles. Tokens come from theme.json (--wp--preset--*). No external requests. */

:root { color-scheme: light dark; }
body {
	--cb-gutter: var(--wp--custom--gutter, 1.5rem);
	--cb-r-s: var(--wp--custom--radius--s, 6px);
	--cb-r-m: var(--wp--custom--radius--m, 10px);
	--cb-r-l: var(--wp--custom--radius--l, 18px);
	--cb-c-base: var(--wp--preset--color--base);
	--cb-c-surface: var(--wp--preset--color--surface);
	--cb-c-tint: var(--wp--preset--color--tint);
	--cb-c-ink: var(--wp--preset--color--ink);
	--cb-c-muted: var(--wp--preset--color--muted);
	--cb-c-line: var(--wp--preset--color--line);
	--cb-c-primary: var(--wp--preset--color--primary);
	--cb-c-road: var(--wp--preset--color--road);
	--cb-c-signal: var(--wp--preset--color--signal);
	--cb-c-night: var(--wp--preset--color--night);
	--cb-display: var(--wp--preset--font-family--display);
	--cb-measure: 62ch;
}

/* Dark appearance: same semantic tokens, redefined on body so global-styles order does not matter. */
@media (prefers-color-scheme: dark) {
	body {
		--wp--preset--color--base: #0a1420;
		--wp--preset--color--surface: #101f30;
		--wp--preset--color--tint: #14283d;
		--wp--preset--color--ink: #e7eef6;
		--wp--preset--color--muted: #9db0c4;
		--wp--preset--color--line: #223549;
		--wp--preset--color--primary: #8dbbff;
		--wp--preset--color--primary-strong: #b5d3ff;
		--wp--preset--color--road: #0a3a7a;
		--wp--preset--color--night: #050b13;
		--wp--preset--color--ok: #5bd28c;
		--wp--preset--color--alert: #ff8a80;
	}
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-wrap: break-word; }
img, svg { max-width: 100%; height: auto; }
:where(h1, h2, h3, h4) { text-wrap: balance; }
:where(p, li, summary) { text-wrap: pretty; }
a { text-underline-offset: 0.18em; text-decoration-thickness: 0.08em; }
code { font-family: var(--wp--preset--font-family--mono); font-size: 0.92em; background: var(--cb-c-tint); padding: 0.1em 0.35em; border-radius: 4px; overflow-wrap: anywhere; }
pre code { background: none; padding: 0; }
mark.cb-ph { background: #ffe8a3; color: #3b2a00; padding: 0.05em 0.35em; border-radius: 4px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
@media (prefers-color-scheme: dark) { mark.cb-ph { background: #5b4400; color: #ffe8a3; } }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Focus: one clear ring everywhere */
:where(a, button, summary, input, select, textarea, [tabindex], .wp-block-button__link):focus-visible {
	outline: 3px solid var(--cb-c-primary);
	outline-offset: 3px;
	border-radius: 4px;
}
.cb-on-dark :focus-visible { outline-color: #fff; }
.cb-section--cta :focus-visible { outline-color: #0b1a2b; }
.cb-skip { position: absolute; left: 1rem; top: -5rem; z-index: 1000; background: var(--cb-c-ink); color: var(--cb-c-base); padding: 0.8rem 1.1rem; border-radius: var(--cb-r-m); font-weight: 700; text-decoration: none; }
.cb-skip:focus { top: 1rem; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color 0.15s, color 0.15s, transform 0.15s; }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--cb-c-ink); border: 2px solid currentColor; padding: calc(0.8em - 2px) calc(1.35em - 2px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--cb-c-ink); color: var(--cb-c-base); border-color: var(--cb-c-ink); }
.cb-on-dark .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; }
.cb-on-dark .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: #0b1a2b; border-color: #fff; }
.wp-block-button.is-style-signal > .wp-block-button__link { background: var(--wp--preset--color--signal); color: var(--wp--preset--color--on-signal); box-shadow: inset 0 0 0 2px #0b1a2b; }
.wp-block-button.is-style-signal > .wp-block-button__link:hover { background: #ffc94d; color: #0b1a2b; }
.wp-block-button.is-style-ink > .wp-block-button__link { background: #0b1a2b; color: #fff; }
.wp-block-button.is-style-ink > .wp-block-button__link:hover { background: #1b3552; color: #fff; }
.wp-block-buttons { gap: 0.9rem; }

/* ---------- Header ---------- */
.cb-header__wrap { background: var(--cb-c-base); border-bottom: 1px solid var(--cb-c-line); padding: 0.8rem var(--cb-gutter); position: relative; z-index: 20; }
.cb-header__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.25rem; }
.cb-brand { display: inline-flex; align-items: center; gap: 0.7rem; text-decoration: none; color: var(--cb-c-ink); order: 1; }
.cb-brand:hover .cb-brand__name { text-decoration: underline; text-decoration-thickness: 0.06em; text-underline-offset: 0.12em; }
.cb-brand__mark { width: 40px; height: 40px; flex: none; }
.cb-brand__name { font-family: var(--cb-display); font-weight: 700; font-size: 1.95rem; line-height: 1; letter-spacing: -0.005em; }
.cb-header__bar .cb-lang { order: 2; margin-left: auto; }
.cb-header__bar .cb-nav { order: 3; }
.cb-header__bar .cb-header__cta { order: 4; display: none; margin: 0; }
.cb-header__cta .wp-block-button__link { font-size: 1.2rem; padding-block: 0.65em; }
@media (min-width: 600px) {
	.cb-header__bar .cb-header__cta { display: flex; }
	.cb-header__bar .cb-nav { order: 5; flex: 1 0 100%; justify-content: flex-start; }
	.cb-header__bar .cb-nav .wp-block-navigation__container { gap: 0.4rem 1.6rem; }
}
@media (min-width: 1080px) {
	.cb-header__bar .cb-nav { order: 2; flex: 0 1 auto; margin-left: auto; }
	.cb-header__bar .cb-lang { order: 3; margin-left: 0; }
	.cb-header__bar .cb-header__cta { order: 4; }
	.cb-header__bar .cb-nav .wp-block-navigation__container { gap: 0.2rem 1.4rem; }
}
.cb-nav .wp-block-navigation-item__content { text-decoration: none; color: var(--cb-c-ink); padding: 0.4rem 0.05rem; border-bottom: 3px solid transparent; font-weight: 700; }
.cb-nav .wp-block-navigation-item__content:hover { border-bottom-color: var(--cb-c-primary); }
.cb-nav .wp-block-navigation-item.is-current > .wp-block-navigation-item__content, .cb-nav a[aria-current="page"] { border-bottom-color: var(--cb-c-primary); }
.cb-nav .cb-nav-cta { display: none; }
.cb-nav .is-menu-open .cb-nav-cta, .cb-nav .wp-block-navigation__responsive-container.is-menu-open .cb-nav-cta { display: block; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: var(--cb-c-ink); }
.wp-block-navigation__responsive-container.is-menu-open { background-color: var(--cb-c-base) !important; color: var(--cb-c-ink) !important; padding: 1.5rem var(--cb-gutter); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--cb-display); font-size: 2rem; }
.wp-block-navigation__responsive-container.is-menu-open .cb-nav-cta .wp-block-navigation-item__content { background: var(--cb-c-signal); color: #0b1a2b; padding: 0.4rem 1rem; border-radius: var(--cb-r-m); }

/* Language switch */
.cb-lang { display: inline-flex; border: 2px solid var(--cb-c-ink); border-radius: var(--cb-r-s); overflow: hidden; font-weight: 700; font-size: 0.95rem; line-height: 1; }
.cb-lang__item { padding: 0.45rem 0.7rem; color: var(--cb-c-ink); text-decoration: none; display: inline-block; min-width: 2.4rem; text-align: center; }
a.cb-lang__item:hover { background: var(--cb-c-tint); }
.cb-lang__item.is-current { background: var(--cb-c-ink); color: var(--cb-c-base); }
.cb-on-dark .cb-lang { border-color: #fff; }
.cb-on-dark .cb-lang__item { color: #fff; }
.cb-on-dark a.cb-lang__item:hover { background: rgba(255, 255, 255, 0.16); }
.cb-on-dark .cb-lang__item.is-current { background: #fff; color: #08121e; }

/* ---------- Page head (Mittelstreifen) ---------- */
.cb-pagehead { position: relative; background: var(--cb-c-tint); padding: clamp(2.5rem, 1.4rem + 4.5vw, 5.5rem) var(--cb-gutter) clamp(2.5rem, 1.5rem + 3vw, 4rem); }
.cb-pagehead::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: repeating-linear-gradient(90deg, var(--cb-c-signal) 0 34px, transparent 34px 62px); }
.cb-pagehead__t { margin: 0; font-size: clamp(3rem, 1.5rem + 5.4vw, 6.25rem); line-height: 0.95; }
.cb-pagehead__lead, .cb-pagehead .wp-block-post-excerpt { font-size: var(--wp--preset--font-size--l); line-height: 1.5; max-width: 40rem; margin-top: 1.25rem; color: var(--cb-c-ink); }
.cb-pagehead .wp-block-post-excerpt__excerpt { margin: 0; }
.cb-pagehead--compact { padding-block: clamp(2rem, 1rem + 3vw, 3.5rem) clamp(1.75rem, 1rem + 2vw, 2.75rem); }
.cb-pagehead--compact .cb-pagehead__t { font-size: clamp(2.5rem, 1.5rem + 3.4vw, 4.5rem); }

/* ---------- Sections ---------- */
.cb-section { padding: clamp(3.25rem, 2rem + 5vw, 6.5rem) var(--cb-gutter); }
.cb-section :where(p, li) { max-width: var(--cb-measure); }
.cb-section h2 { margin-bottom: 0.4em; }
.cb-section h3 { margin-top: 1.6em; margin-bottom: 0.35em; }
.cb-section:not([class*="cb-section--"]) { padding-bottom: clamp(2rem, 1.2rem + 3vw, 4rem); }
.cb-section:not([class*="cb-section--"]) + .cb-section:not([class*="cb-section--"]) { padding-top: 0; }
.cb-pagehead + .cb-section:not([class*="cb-section--"]), .cb-main > .wp-block-post-content > .cb-section:first-child:not([class*="cb-section--"]) { padding-top: clamp(2.5rem, 1.5rem + 3vw, 4.5rem); }
.cb-section__head { margin-bottom: clamp(1.75rem, 1rem + 2vw, 3rem); }
.cb-section__head > * { margin-block: 0; }
.cb-section__head > * + * { margin-top: 1rem; }
.cb-lead { font-size: var(--wp--preset--font-size--l); line-height: 1.5; max-width: 40rem; }
.cb-small { font-size: var(--wp--preset--font-size--s); color: var(--cb-c-muted); }
.cb-section--steps, .cb-section--faq { background: var(--cb-c-base); }
.cb-section--audience { background: var(--cb-c-surface); border-block: 1px solid var(--cb-c-line); }
.cb-section--honesty { background: var(--cb-c-tint); }
.cb-section--road { background: var(--cb-c-road); color: #fff; }
.cb-section--road :where(h1, h2, h3, h4, a) { color: #fff; }
.cb-section--road .cb-lead { color: #fff; }
.cb-section--cta { background: var(--cb-c-signal); color: #0b1a2b; }
.cb-section--cta :where(h2, p) { color: #0b1a2b; }
.cb-section--cta .cb-cta { max-width: 52rem; }
.cb-cta__t { margin: 0 0 0.25em; font-size: clamp(3rem, 1.4rem + 5.5vw, 6.25rem); line-height: 0.95; }
.cb-section--legal { background: var(--cb-c-base); }
.cb-legal { padding-block: 0; }
.cb-legal h2 { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem); margin-top: 2.5rem; }
.cb-legal h3 { font-size: 1.4rem; margin-top: 1.75rem; margin-bottom: 0.2em; }
.cb-legal :where(p, li) { max-width: none; }
.cb-legal > .cb-notice { margin-bottom: 2rem; }
.cb-section--listing { background: var(--cb-c-base); }

/* ---------- Hero ---------- */
.cb-hero { position: relative; overflow: hidden; padding-block: clamp(2.5rem, 1rem + 5vw, 6.5rem) clamp(6.5rem, 3rem + 7vw, 10rem); background-color: var(--cb-c-base); }
.cb-hero::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: clamp(64px, 8vw, 120px); pointer-events: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 160' preserveAspectRatio='none' fill='none'%3E%3Cpath d='M-20 118C250 150 420 46 650 78S990 148 1220 34' stroke='%23FFB400' stroke-width='6' stroke-dasharray='34 28' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center bottom / 100% 100%; opacity: 0.8; }
.cb-hero > * { position: relative; }
.cb-split { display: grid; gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: center; }
.cb-split > * { margin: 0; min-width: 0; }
@media (min-width: 62rem) {
	.cb-hero .cb-split { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); }
	.cb-split--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: clamp(3rem, 6vw, 6rem); }
}
.cb-hero__copy > * { margin-block: 0; }
.cb-hero__copy > * + * { margin-top: 1.4rem; }
.cb-display { font-size: clamp(3.1rem, 1.2rem + 5.6vw, 6.25rem); line-height: 0.93; letter-spacing: -0.012em; }
.cb-hero .cb-display { max-width: 11ch; }
.cb-hero__copy .wp-block-buttons { margin-top: 2rem; }
.cb-hero__note { color: var(--cb-c-muted); font-size: var(--wp--preset--font-size--s); }

/* Sign board: the memorable element */
.cb-board { margin: 0; width: 100%; max-width: 31rem; justify-self: end; }
.cb-board__frame { position: relative; background: var(--cb-c-road); color: #fff; border-radius: 22px; padding: 1.55rem 1.7rem 1.7rem; }
.cb-board__frame::before { content: ""; position: absolute; inset: 8px; border: 2px solid rgba(255, 255, 255, 0.95); border-radius: 15px; pointer-events: none; }
.cb-board__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.2rem 1rem; margin: 0 0 0.6rem; padding-bottom: 0.9rem; border-bottom: 1px solid rgba(255, 255, 255, 0.35); }
.cb-board__title { font-family: var(--cb-display); font-weight: 700; font-size: 1.9rem; line-height: 1; }
.cb-board__spec { font-weight: 700; font-size: 0.95rem; opacity: 0.95; }
.cb-board__rows { list-style: none; margin: 0; padding: 0; }
.cb-board__row { display: grid; grid-template-columns: 2.6rem 1fr auto; align-items: center; gap: 0.6rem; padding: 0.62rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.2); max-width: none; }
.cb-board__ico { display: grid; place-items: center; }
.cb-board__ico .cb-ico { width: 28px; height: 28px; }
.cb-board__label { font-weight: 700; font-size: 1.1rem; line-height: 1.2; }
.cb-board__label small { display: block; font-weight: 400; font-size: 0.82rem; opacity: 0.92; }
.cb-board__min { font-family: var(--cb-display); font-weight: 700; font-size: 1.6rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cb-board__scores { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-top: 1.2rem; }
.cb-meter > p { margin: 0; }
.cb-meter__label { font-size: 0.9rem; font-weight: 700; }
.cb-meter__num { font-family: var(--cb-display); font-weight: 700; font-size: 3.1rem; line-height: 1; margin-top: 0.1rem !important; }
.cb-meter__num span { font-family: var(--wp--preset--font-family--body); font-weight: 400; font-size: 0.85rem; margin-left: 0.25rem; opacity: 0.9; }
.cb-meter__bar { display: block; height: 9px; margin-top: 0.55rem; border-radius: 5px; background: rgba(255, 255, 255, 0.28); overflow: hidden; }
.cb-meter__bar::after { content: ""; display: block; height: 100%; width: var(--v); background: #fff; border-radius: 5px; transform-origin: left; animation: cb-grow 1s 0.25s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.cb-meter--conf .cb-meter__bar::after { background: var(--cb-c-signal); }
@keyframes cb-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.cb-board__cap { margin-top: 0.85rem; font-size: 0.85rem; color: var(--cb-c-muted); max-width: 30rem; }
@media (max-width: 30rem) {
	.cb-board__frame { padding: 1.25rem 1.1rem 1.4rem; }
	.cb-board__scores { grid-template-columns: 1fr; }
	.cb-meter__num { font-size: 2.6rem; }
}

/* ---------- Steps (a real sequence: numbered) ---------- */
.cb-steps { list-style: none; counter-reset: step; margin: 2.5rem 0 0; padding: 0; display: grid; gap: 2.5rem 2rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.cb-steps li { counter-increment: step; position: relative; padding-top: 4.6rem; max-width: none; }
.cb-steps li::before { content: counter(step); position: absolute; top: 0; left: 0; width: 3.4rem; height: 3.4rem; display: grid; place-items: center; background: var(--cb-c-road); color: #fff; border-radius: 11px; outline: 2px solid #fff; outline-offset: -5px; font-family: var(--cb-display); font-weight: 700; font-size: 2.1rem; line-height: 1; }
.cb-steps__t { margin: 0 0 0.4rem !important; font-size: 1.7rem; }
.cb-steps p { margin: 0; color: var(--cb-c-ink); }
@media (min-width: 75rem) {
	.cb-steps li:not(:last-child)::after { content: ""; position: absolute; top: 1.6rem; left: 4.3rem; right: -1.4rem; border-top: 4px dashed var(--cb-c-signal); }
}

/* ---------- Audiences ---------- */
.cb-audience { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 clamp(2rem, 5vw, 5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); }
.cb-audience li { display: flex; gap: 1.3rem; padding: 1.75rem 0; border-top: 1px solid var(--cb-c-line); max-width: none; }
.cb-audience .cb-ico { flex: none; box-sizing: content-box; padding: 0.85rem; width: 36px; height: 36px; background: var(--cb-c-road); color: #fff; border-radius: 12px; }
.cb-audience h3 { margin: 0 0 0.3rem !important; font-size: 1.7rem; }
.cb-audience p { margin: 0; }

/* ---------- Weight bars ---------- */
.cb-wbar { list-style: none; margin: 1rem 0; padding: 0; max-width: 40rem; }
.cb-wbar li { display: grid; grid-template-columns: minmax(7rem, 11.5rem) 1fr 3.2rem; align-items: center; gap: 0.2rem 0.9rem; padding: 0.38rem 0; max-width: none; }
.cb-wbar__name { font-weight: 700; font-size: 0.98rem; line-height: 1.25; }
.cb-wbar__track { height: 10px; border-radius: 5px; background: var(--cb-c-line); overflow: hidden; }
.cb-wbar__track > span { display: block; height: 100%; width: var(--v); background: var(--cb-c-primary); border-radius: 5px; }
.cb-wbar__val { font-family: var(--cb-display); font-weight: 700; font-size: 1.3rem; text-align: right; font-variant-numeric: tabular-nums; }
.cb-wbar--dark .cb-wbar__track { background: rgba(255, 255, 255, 0.25); }
.cb-wbar--dark .cb-wbar__track > span { background: var(--cb-c-signal); }
.cb-wbar__title { margin-top: 0 !important; font-size: 1.5rem; }

/* ---------- Principles & facts ---------- */
.cb-principles { list-style: none; margin: 2rem 0; padding: 0; display: grid; gap: 1.75rem clamp(2rem, 5vw, 5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.cb-principles li { display: flex; gap: 1rem; max-width: none; }
.cb-principles__ico { flex: none; box-sizing: content-box; width: 22px; height: 22px; padding: 0.45rem; border-radius: 50%; background: var(--cb-c-primary); color: var(--cb-c-base); margin-top: 0.15rem; }
.cb-principles h3 { margin: 0 0 0.25rem !important; font-size: 1.45rem; }
.cb-principles p { margin: 0; }
.cb-facts { gap: 2rem clamp(1.5rem, 4vw, 3rem) !important; margin-top: 2rem; }
.cb-fact { border-top: 1px solid var(--cb-c-line); padding-top: 1.1rem; position: relative; }
.cb-fact::before { content: ""; position: absolute; left: 0; top: -3px; width: 3.25rem; height: 5px; background: var(--cb-c-signal); }
.cb-fact h3 { margin: 0 0 0.35rem !important; font-size: 1.45rem; }
.cb-fact p { margin: 0; }

/* ---------- FAQ (details) ---------- */
.cb-faq { max-width: 52rem; }
.cb-faq h2 { margin-top: 3rem; }
.cb-faq > h2:first-child { margin-top: 0; }
.cb-faq .wp-block-details { border-top: 1px solid var(--cb-c-line); margin: 0; padding: 0; }
.cb-faq .wp-block-details:last-child, .cb-faq .wp-block-details:has(+ h2) { border-bottom: 1px solid var(--cb-c-line); }
.wp-block-details summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; padding: 1.1rem 0; font-weight: 700; font-size: 1.2rem; line-height: 1.3; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: ""; flex: none; width: 1.4rem; height: 1.4rem; background: var(--cb-c-primary); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform 0.2s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { margin: 0 0 1.25rem; max-width: var(--cb-measure); }
.wp-block-details summary:hover { color: var(--cb-c-primary); }

/* ---------- Notices, CTA, misc boxes ---------- */
.cb-notice { background: var(--cb-c-tint); border-left: 6px solid var(--cb-c-signal); border-radius: 0 var(--cb-r-m) var(--cb-r-m) 0; padding: 1rem 1.25rem; }
.cb-notice > * { margin: 0; max-width: none; }
.cb-notice--draft { border-left-color: var(--wp--preset--color--alert); background: color-mix(in srgb, var(--wp--preset--color--alert) 10%, var(--cb-c-surface)); }
.cb-app-intro, .cb-app-outro { padding: clamp(1.75rem, 1rem + 2.5vw, 3rem) var(--cb-gutter) 1rem; }
.cb-app-outro { padding-bottom: clamp(3rem, 2rem + 3vw, 5rem); }
.cb-app-intro, .cb-app-outro { max-width: 64rem !important; }
.cb-app-intro.cb-app-intro > *, .cb-app-outro.cb-app-outro > * { max-width: 52rem; margin-inline: 0 !important; }
.cb-contactbox { border: 2px solid var(--cb-c-ink); border-radius: var(--cb-r-l); padding: 1.5rem 1.75rem; max-width: 36rem; margin-block: 1.5rem; }
.cb-contactbox p { margin: 0.25rem 0; }
.cb-mail { display: flex; align-items: center; gap: 0.9rem; font-family: var(--cb-display); font-weight: 700; font-size: 1.9rem; line-height: 1.1; margin: 0 0 0.5rem; }
.cb-mail .cb-ico { flex: none; color: var(--cb-c-primary); }
.cb-attrib { margin-top: 2.5rem; padding: 1.5rem; border: 2px solid var(--cb-c-road); border-radius: var(--cb-r-l); max-width: 44rem; }
.cb-attrib h3 { margin-top: 0 !important; }
.cb-attrib p { margin-bottom: 0; }
.cb-404 { max-width: 44rem; }
.cb-formula { white-space: pre-wrap; background: var(--cb-c-tint); border-left: 6px solid var(--cb-c-primary); padding: 1.1rem 1.3rem; border-radius: 0 var(--cb-r-m) var(--cb-r-m) 0; font-size: 1rem; margin: 1.25rem 0; overflow-wrap: anywhere; }
.cb-formula code { font-size: 1rem; }

/* ---------- Tables ---------- */
.wp-block-table { margin: 1.5rem 0; max-width: 100%; }
.wp-block-table table { border-collapse: collapse; width: 100%; table-layout: auto; font-size: 0.98rem; }
.wp-block-table :where(th, td) { text-align: left; vertical-align: top; padding: 0.7rem 0.85rem; border: 0; border-bottom: 1px solid var(--cb-c-line); overflow-wrap: anywhere; }
.wp-block-table th { font-family: var(--cb-display); font-weight: 700; font-size: 1.15rem; background: var(--cb-c-tint); border-bottom: 2px solid var(--cb-c-ink); }
.wp-block-table :where(th, td).has-text-align-right { text-align: right; font-variant-numeric: tabular-nums; }
.wp-block-table figcaption { font-size: 0.9rem; color: var(--cb-c-muted); text-align: left; margin-top: 0.75rem; max-width: var(--cb-measure); }
@media (max-width: 40rem) { .wp-block-table :where(th, td) { padding: 0.55rem 0.5rem; font-size: 0.92rem; } }

/* ---------- Lists in content ---------- */
.cb-section .wp-block-list { padding-left: 1.3rem; }
.cb-section .wp-block-list li { margin-block: 0.5rem; }
.cb-section .wp-block-list li::marker { color: var(--cb-c-primary); }

/* ---------- Footer ---------- */
.cb-footer { background: var(--cb-c-night); color: #dce6f1; padding: clamp(3rem, 2rem + 3vw, 5rem) var(--cb-gutter) 2.25rem; }
.cb-footer a { color: #fff; }
.cb-footer .cb-brand { color: #fff; }
.cb-footer__grid { gap: 2.5rem 2rem !important; }
.cb-footer__blurb { margin: 1rem 0 1.25rem; max-width: 22rem; color: #dce6f1; }
.cb-footer__h { font-family: var(--cb-display); font-size: 1.3rem !important; color: #fff; margin: 0 0 0.6rem; }
.cb-footer__nav .wp-block-navigation__container { gap: 0.15rem; align-items: flex-start; }
.cb-footer__nav .wp-block-navigation-item__content { color: #dce6f1; font-weight: 400; padding: 0.2rem 0; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, 0.35); }
.cb-footer__nav .wp-block-navigation-item__content:hover { color: #fff; text-decoration-color: #fff; }
.cb-footer__legal { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.2); font-size: 0.9rem; }
.cb-footer__legal p { margin: 0 0 0.6rem; color: #c3d1e0; max-width: 60rem; }
.cb-footer__legal a { text-underline-offset: 0.18em; }

/* ---------- Blog ---------- */
.cb-postcard { border-top: 4px solid var(--cb-c-road); padding-top: 1rem; }
.cb-postcard__t { font-size: 1.7rem; margin: 0.2rem 0 0.5rem; }
.cb-postcard__t a { color: var(--cb-c-ink); text-decoration: none; }
.cb-postcard__t a:hover { text-decoration: underline; }
.cb-posts .wp-block-query-pagination { margin-top: 3rem; }
.cb-postnav { margin-top: 3rem; }
.cb-main .wp-block-search__input { border: 2px solid var(--cb-c-ink); border-radius: var(--cb-r-m); background: var(--cb-c-surface); color: var(--cb-c-ink); padding: 0.6rem 0.9rem; min-height: 3rem; }
.cb-main .wp-block-search__button { border-radius: var(--cb-r-m); background: var(--cb-c-primary); color: var(--cb-c-surface); font-family: var(--cb-display); font-weight: 700; font-size: 1.2rem; border: 0; padding: 0.5rem 1.2rem; }

/* ---------- Plugin app inside the theme ---------- */
.wp-block-chargebreak-finder { margin-block: 0; padding-inline: var(--cb-gutter); }
.wp-block-chargebreak-finder .chargebreak-app { max-width: 64rem; margin-inline: auto; background: transparent; }
/* The page already carries the title and the language switch: hide the app's own title row and second language select. */
.chargebreak-app .top { display: none; }
.chargebreak-app .app-main, .chargebreak-app .site-foot { max-width: none; padding-inline: 0; }
.chargebreak-app .card, .chargebreak-app .result, .chargebreak-app fieldset { border-radius: var(--cb-r-l); }

/* ---------- Motion preference ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
@media print {
	.cb-header__wrap, .cb-footer, .cb-skip { display: none; }
	.cb-section, .cb-pagehead { padding-block: 1rem; background: none; color: #000; }
}

/* Template parts and main sit flush against each other; spacing lives inside the sections. */
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks > footer { margin-block-start: 0; }

@media (max-width: 599px) {
	.cb-header__wrap { padding-block: 0.65rem; }
	.cb-header__bar { gap: 0.4rem 0.6rem; flex-wrap: nowrap; }
	.cb-brand { gap: 0.5rem; }
	.cb-brand__mark { width: 34px; height: 34px; }
	.cb-brand__name { font-size: 1.6rem; }
	.cb-lang__item { padding: 0.4rem 0.5rem; min-width: 2rem; font-size: 0.85rem; }
	.cb-header__bar .cb-lang { margin-left: auto; }
}
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.wp-block-navigation__responsive-container-open:not(.always-shown) { padding: 0.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3rem; }
