/* ==========================================================================
   CONINPLAG Core — components (directory tags, courses, forms)
   Colors & fonts come from the theme presets, with fallbacks.
   ========================================================================== */
:root {
	--cnp-petrol: var(--wp--preset--color--petrol, #0e3b3f);
	--cnp-petrol-2: var(--wp--preset--color--petrol-2, #16585c);
	--cnp-signal: var(--wp--preset--color--signal, #ffcd1c);
	--cnp-ink: var(--wp--preset--color--ink, #101b1c);
	--cnp-mist: var(--wp--preset--color--mist, #e8eeec);
	--cnp-paper: var(--wp--preset--color--paper, #f7f9f8);
	--cnp-line: var(--wp--preset--color--line, #c7d3d1);
	--cnp-muted: var(--wp--preset--color--muted, #4c6062);
	--cnp-white: #fff;
	--cnp-danger: #b3261e;
	--cnp-display: var(--wp--preset--font-family--display, "Archivo", system-ui, sans-serif);
	--cnp-body: var(--wp--preset--font-family--body, "Public Sans", system-ui, sans-serif);
	--cnp-mono: var(--wp--preset--font-family--mono, "IBM Plex Mono", ui-monospace, monospace);
	--cnp-r: 10px;
	--cnp-notch: 16px;
}

.cnp-icon { flex: none; vertical-align: middle; }

/* ---------- Buttons ---------- */
.cnp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	min-height: 48px; padding: .7em 1.35em;
	font: 600 1rem/1.1 var(--cnp-body);
	border: 2px solid var(--cnp-petrol); border-radius: 999px;
	background: var(--cnp-petrol); color: var(--cnp-white);
	text-decoration: none; cursor: pointer; box-sizing: border-box;
	transition: background-color .15s, color .15s, transform .15s, border-color .15s;
}
.cnp-btn:hover { background: var(--cnp-petrol-2); border-color: var(--cnp-petrol-2); color: var(--cnp-white); }
.cnp-btn:active { transform: translateY(1px); }
.cnp-btn--signal { background: var(--cnp-signal); border-color: var(--cnp-signal); color: var(--cnp-ink); }
.cnp-btn--signal:hover { background: color-mix(in srgb, var(--cnp-signal) 82%, #fff); border-color: color-mix(in srgb, var(--cnp-signal) 82%, #fff); color: var(--cnp-ink); }
.cnp-btn--ghost { background: transparent; color: var(--cnp-petrol); }
.cnp-btn--ghost:hover { background: var(--cnp-petrol); color: var(--cnp-white); }
.cnp-btn--dark { background: var(--cnp-ink); border-color: var(--cnp-ink); }
.cnp-btn--block { width: 100%; }
.cnp-btn .cnp-icon { width: 18px; height: 18px; }

:where(.cnp-dir, .cnp-finder, .cnp-form, .cnp-tag, .cnp-course, .cnp-program, .cnp-ficha) :focus-visible {
	outline: 3px solid var(--cnp-signal); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cnp-ink);
}

/* ---------- Chips ---------- */
.cnp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.cnp-chips li { font: 500 .78rem/1 var(--cnp-body); padding: .45em .7em; border-radius: 999px; background: var(--cnp-mist); color: var(--cnp-petrol); }
.cnp-chips--lg li { font-size: .9rem; padding: 0; }
.cnp-chips--lg a { display: block; padding: .55em .9em; color: inherit; text-decoration: none; border-radius: 999px; }
.cnp-chips--lg a:hover { background: var(--cnp-petrol); color: var(--cnp-white); }

/* ---------- Grid ---------- */
.cnp-grid { display: grid; gap: clamp(14px, 2vw, 22px); }
.cnp-grid--tags { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }

/* ---------- The tag (signature) ---------- */
.cnp-tag {
	position: relative; display: flex; flex-direction: column;
	background: var(--cnp-white); color: var(--cnp-ink);
	clip-path: polygon(var(--cnp-notch) 0, calc(100% - var(--cnp-notch)) 0, 100% var(--cnp-notch), 100% 100%, 0 100%, 0 var(--cnp-notch));
	border-radius: 0 0 var(--cnp-r) var(--cnp-r);
	box-shadow: inset 0 0 0 1px var(--cnp-line);
	transition: transform .2s ease;
}
.cnp-tag[hidden] { display: none; }
.cnp-tag__strip {
	display: flex; align-items: center; gap: 10px;
	padding: 10px 14px 10px 16px;
	background: var(--cnp-petrol); color: #cfe3e0;
	font: 500 .72rem/1 var(--cnp-mono); letter-spacing: .06em; text-transform: uppercase;
	transition: background-color .2s, color .2s;
}
.cnp-tag__hole {
	width: 12px; height: 12px; border-radius: 50%; flex: none;
	background: var(--cnp-paper); box-shadow: inset 0 0 0 2px rgba(0,0,0,.25);
}
.cnp-tag__code { color: var(--cnp-signal); }
.cnp-tag__code { white-space: nowrap; }
.cnp-tag__loc { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.cnp-tag__loc-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cnp-tag__loc .cnp-icon { width: 14px; height: 14px; }
.cnp-tag__body { display: grid; gap: 12px; padding: 18px 16px 14px; flex: 1; align-content: start; }
.cnp-tag__name { margin: 0; font: 700 1.12rem/1.2 var(--cnp-display); font-stretch: 108%; letter-spacing: -.005em; }
.cnp-tag__name a { color: inherit; text-decoration: none; }
.cnp-tag__name a::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.cnp-tag__actions { position: relative; z-index: 1; display: flex; align-items: center; gap: 4px; padding: 8px 10px 10px; border-top: 1px dashed var(--cnp-line); }
.cnp-tag__actions a { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; color: var(--cnp-petrol); }
.cnp-tag__actions a:hover { background: var(--cnp-mist); }
.cnp-tag__actions .cnp-tag__more { width: auto; margin-left: auto; padding: 0 10px; font: 600 .85rem/1 var(--cnp-body); text-decoration: none; }
.cnp-tag:hover { transform: translateY(-3px); }
.cnp-tag:hover .cnp-tag__strip { background: var(--cnp-signal); color: var(--cnp-ink); }
.cnp-tag:hover .cnp-tag__code { color: var(--cnp-ink); }

.cnp-logo { display: grid; place-items: center; width: 76px; height: 76px; border-radius: 12px; background: var(--cnp-white); box-shadow: inset 0 0 0 1px var(--cnp-line); overflow: hidden; }
.cnp-logo__img { width: 100%; height: 100%; object-fit: contain; padding: 8px; }
.cnp-logo__mono { font: 800 1.6rem/1 var(--cnp-display); font-stretch: 125%; color: var(--cnp-petrol); letter-spacing: -.02em; }
.cnp-logo:not(:has(img)) { background: var(--cnp-mist); box-shadow: none; }
.cnp-logo--lg { width: 132px; height: 132px; }
.cnp-logo--lg .cnp-logo__mono { font-size: 2.6rem; }

/* ---------- Directory filters ---------- */
.cnp-filters {
	display: grid; gap: 12px; grid-template-columns: 1fr;
	padding: 16px; margin-bottom: 14px;
	background: var(--cnp-white); border-radius: var(--cnp-r); box-shadow: inset 0 0 0 1px var(--cnp-line);
}
@media (min-width: 720px) { .cnp-filters { grid-template-columns: 1.6fr 1fr 1fr; align-items: end; } }
.cnp-filters label, .cnp-finder label { display: block; margin-bottom: 6px; font: 500 .72rem/1 var(--cnp-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--cnp-muted); }
.cnp-input-icon { position: relative; }
.cnp-input-icon .cnp-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--cnp-muted); pointer-events: none; }
.cnp-input-icon input { padding-left: 44px !important; }
.cnp-dir__count { margin: 0 0 16px; font: 500 .8rem/1 var(--cnp-mono); color: var(--cnp-muted); letter-spacing: .04em; }
.cnp-dir__count [data-count] { color: var(--cnp-ink); font-weight: 700; }
.cnp-dir__empty { padding: 32px; text-align: center; background: var(--cnp-white); border-radius: var(--cnp-r); box-shadow: inset 0 0 0 1px var(--cnp-line); }
.cnp-dir__empty[hidden] { display: none; }

/* ---------- Shared inputs ---------- */
.cnp-filters input, .cnp-filters select,
.cnp-finder select,
.cnp-form input:not([type=checkbox]):not([type=file]), .cnp-form select, .cnp-form textarea {
	width: 100%; min-height: 48px; padding: 10px 14px;
	font: 400 1rem/1.4 var(--cnp-body); color: var(--cnp-ink);
	background: var(--cnp-paper); border: 1.5px solid var(--cnp-line); border-radius: 8px;
	transition: border-color .15s, background-color .15s;
	box-sizing: border-box;
}
.cnp-filters select, .cnp-finder select, .cnp-form select {
	appearance: none; padding-right: 40px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230e3b3f' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center;
}
.cnp-filters :is(input, select):focus, .cnp-finder select:focus, .cnp-form :is(input, select, textarea):focus { border-color: var(--cnp-petrol); background-color: var(--cnp-white); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--cnp-signal) 55%, transparent); }

/* ---------- Hero finder ---------- */
.cnp-finder { display: grid; gap: 12px; }
.cnp-finder__row { display: grid; gap: 10px; padding: 10px; background: var(--cnp-white); border-radius: 16px; box-shadow: 0 18px 50px -20px rgba(0,0,0,.45); }
.cnp-finder__field { padding: 6px 8px 2px; }
.cnp-finder__field select { background-color: transparent; border-color: transparent; padding-left: 0; font-weight: 600; font-size: 1.05rem; min-height: 40px; }
.cnp-finder__field select:focus { background-color: var(--cnp-paper); padding-left: 8px; }
.cnp-finder label { margin-bottom: 2px; }
.cnp-finder .cnp-btn { min-height: 56px; border-radius: 12px; }
.cnp-finder__note { margin: 0; font: 500 .78rem/1.4 var(--cnp-mono); letter-spacing: .03em; opacity: .85; }
@media (min-width: 760px) {
	.cnp-finder__row { grid-template-columns: 1fr 1fr auto; align-items: center; }
	.cnp-finder__field + .cnp-finder__field { border-left: 1px solid var(--cnp-line); padding-left: 18px; }
}

/* ---------- Empresa single ---------- */
.cnp-ficha { display: grid; gap: 22px; }
.cnp-ficha__badge { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.cnp-ficha__cred { display: grid; gap: 6px; }
.cnp-ficha__cred-label { font: 500 .75rem/1.2 var(--cnp-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--cnp-petrol); background: var(--cnp-signal); padding: 6px 10px; border-radius: 4px; width: fit-content; }
.cnp-ficha__cred-year { font: 500 .85rem/1 var(--cnp-mono); color: var(--cnp-muted); }
.cnp-ficha__cta { display: flex; flex-wrap: wrap; gap: 10px; }
.cnp-facts { display: grid; margin: 0; border-top: 1px solid var(--cnp-line); }
.cnp-facts > div { display: grid; gap: 4px; padding: 14px 0; border-bottom: 1px solid var(--cnp-line); }
@media (min-width: 600px) { .cnp-facts > div { grid-template-columns: 180px 1fr; gap: 16px; } }
.cnp-facts dt { font: 500 .75rem/1.6 var(--cnp-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--cnp-muted); }
.cnp-facts dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
.cnp-facts a { color: var(--cnp-petrol); }

/* ---------- Social ---------- */
.cnp-social { display: flex; gap: 8px; flex-wrap: wrap; }
.cnp-social a { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: currentColor; box-shadow: inset 0 0 0 1.5px currentColor; opacity: .9; transition: background-color .15s, color .15s; }
.cnp-social a:hover { background: var(--cnp-signal); color: var(--cnp-ink); box-shadow: none; opacity: 1; }
.cnp-social--inline a { width: 36px; height: 36px; color: var(--cnp-petrol); }

/* ---------- Contact data ---------- */
.cnp-datos { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.cnp-datos li { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.cnp-datos li:last-child { border-bottom: 0; }
.cnp-datos .cnp-icon { margin-top: 2px; color: var(--cnp-signal); }
.cnp-datos li > span { display: grid; gap: 2px; }
.cnp-datos__label { font: 500 .72rem/1.2 var(--cnp-mono); letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.cnp-datos a { color: inherit; font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 3px; overflow-wrap: anywhere; }

/* ---------- Courses list ---------- */
.cnp-courses { display: grid; gap: 14px; }
.cnp-course {
	display: grid; gap: 16px; grid-template-columns: 1fr;
	padding: 18px; background: var(--cnp-white); color: var(--cnp-ink);
	border-radius: var(--cnp-r); box-shadow: inset 0 0 0 1px var(--cnp-line);
}
@media (min-width: 760px) { .cnp-course { grid-template-columns: 132px 1fr auto; align-items: center; padding: 22px 26px; gap: 28px; } }
.cnp-course__date { display: grid; justify-items: start; align-content: center; gap: 2px; padding: 14px 16px; background: var(--cnp-petrol); color: var(--cnp-white); border-radius: 8px; }
.cnp-course__day { font: 800 3rem/.9 var(--cnp-display); font-stretch: 112%; color: var(--cnp-signal); }
.cnp-course__month { font: 500 .8rem/1.2 var(--cnp-mono); text-transform: uppercase; letter-spacing: .08em; }
.cnp-course__weekday { font: 400 .75rem/1.2 var(--cnp-mono); opacity: .7; text-transform: lowercase; }
.cnp-course__title { margin: 8px 0 6px; font: 700 clamp(1.2rem, 2.2vw, 1.5rem)/1.2 var(--cnp-display); font-stretch: 106%; }
.cnp-course__title a { color: inherit; text-decoration: none; }
.cnp-course__title a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.cnp-course__meta { margin: 0; color: var(--cnp-muted); font-weight: 500; }
.cnp-course__excerpt { margin: 10px 0 0; max-width: 60ch; }
.cnp-course__side { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
@media (min-width: 760px) { .cnp-course__side { flex-direction: column; align-items: flex-end; } }
.cnp-course__mods { font: 500 .78rem/1 var(--cnp-mono); color: var(--cnp-muted); letter-spacing: .05em; text-transform: uppercase; }
.cnp-course.is-done { opacity: .72; }
.cnp-course.is-done .cnp-course__date { background: var(--cnp-mist); color: var(--cnp-ink); }
.cnp-course.is-done .cnp-course__day { color: var(--cnp-muted); }

.cnp-badge { display: inline-flex; align-items: center; gap: 6px; font: 500 .72rem/1 var(--cnp-mono); letter-spacing: .07em; text-transform: uppercase; padding: 6px 9px; border-radius: 4px; background: var(--cnp-mist); color: var(--cnp-petrol); }
.cnp-badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.cnp-badge--abierta { background: #dff3e4; color: #135c2b; }
.cnp-badge--abierta::before { animation: cnp-pulse 1.8s ease-in-out infinite; }
.cnp-badge--proximamente { background: #fff4c7; color: #6b5200; }
.cnp-badge--completa { background: #fde3e1; color: #8c1d18; }
@keyframes cnp-pulse { 50% { opacity: .25; } }

/* ---------- Course single ---------- */
.cnp-program { display: grid; gap: clamp(28px, 4vw, 48px); }
.cnp-section-title { font: 700 1.35rem/1.2 var(--cnp-display); font-stretch: 108%; margin: 0 0 16px; }
.cnp-keyfacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 1px; margin: 0; background: var(--cnp-line); border-radius: var(--cnp-r); overflow: hidden; box-shadow: 0 0 0 1px var(--cnp-line); }
.cnp-keyfacts > div { background: var(--cnp-white); padding: 18px 20px; display: grid; gap: 8px; align-content: start; }
.cnp-keyfacts dt { display: flex; align-items: center; gap: 8px; font: 500 .72rem/1 var(--cnp-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--cnp-muted); }
.cnp-keyfacts dt .cnp-icon { color: var(--cnp-petrol); width: 18px; height: 18px; }
.cnp-keyfacts dd { margin: 0; font-weight: 600; font-size: 1.05rem; line-height: 1.35; }

.cnp-modules__list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--cnp-ink); }
.cnp-modules__list li { border-bottom: 1px solid var(--cnp-line); }
.cnp-modules__list summary { display: flex; align-items: baseline; gap: 18px; padding: 18px 4px; cursor: pointer; list-style: none; font: 700 1.1rem/1.3 var(--cnp-display); font-stretch: 104%; }
.cnp-modules__list summary::-webkit-details-marker { display: none; }
.cnp-modules__list summary::after { content: "+"; margin-left: auto; font: 400 1.5rem/1 var(--cnp-mono); color: var(--cnp-petrol); transition: transform .2s; }
.cnp-modules__list details[open] summary::after { transform: rotate(45deg); }
.cnp-modules__n { font: 500 .8rem/1 var(--cnp-mono); color: var(--cnp-petrol); background: var(--cnp-mist); padding: 5px 7px; border-radius: 4px; flex: none; }
.cnp-modules__list details p { margin: -4px 0 18px 64px; max-width: 62ch; color: var(--cnp-muted); }
@media (max-width: 520px) { .cnp-modules__list details p { margin-left: 4px; } }

.cnp-enroll { padding: clamp(20px, 3vw, 30px); background: var(--cnp-petrol); color: var(--cnp-white); border-radius: 14px; display: grid; gap: 18px; }
.cnp-enroll .cnp-section-title { color: var(--cnp-white); margin: 0; }
.cnp-prices { list-style: none; margin: 0; padding: 0; }
.cnp-prices li { display: grid; gap: 4px; padding: 14px 0; border-bottom: 1px dashed rgba(255,255,255,.28); }
.cnp-prices__who { font: 500 .75rem/1.2 var(--cnp-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--cnp-signal); }
.cnp-prices__val { font-weight: 600; font-size: 1.05rem; }
.cnp-enroll__note { margin: 0; font-size: .9rem; opacity: .85; }

/* ---------- Forms ---------- */
.cnp-form { display: grid; gap: 22px; }
.cnp-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.cnp-form legend { padding: 0; margin-bottom: 14px; font: 700 1.1rem/1.2 var(--cnp-display); font-stretch: 106%; }
.cnp-form__grid { display: grid; gap: 14px 18px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.cnp-form__field { margin: 0; display: grid; gap: 6px; align-content: start; }
.cnp-form__field--wide { grid-column: 1 / -1; }
.cnp-form__field label { font-weight: 600; font-size: .92rem; }
.cnp-form__field label span[aria-hidden] { color: var(--cnp-danger); }
.cnp-form__hint { font-weight: 400; font-size: .85rem; color: var(--cnp-muted); margin: 0; }
.cnp-form [aria-invalid="true"] { border-color: var(--cnp-danger) !important; }
.cnp-form__error { margin: 0; color: var(--cnp-danger); font-size: .88rem; font-weight: 500; }
.cnp-form__alert { padding: 14px 16px; border-radius: 8px; background: #fde3e1; color: #7a1712; font-weight: 500; }
.cnp-form textarea { min-height: 120px; resize: vertical; }
.cnp-form input[type=file] { font: inherit; padding: 10px; border: 1.5px dashed var(--cnp-line); border-radius: 8px; width: 100%; box-sizing: border-box; background: var(--cnp-paper); }
.cnp-form .cnp-btn { justify-self: start; }
.cnp-checks { display: flex; flex-wrap: wrap; gap: 8px; }
.cnp-check { display: inline-flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.cnp-checks .cnp-check { position: relative; }
.cnp-checks .cnp-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cnp-checks .cnp-check span { display: inline-block; padding: .6em 1em; border-radius: 999px; border: 1.5px solid var(--cnp-line); background: var(--cnp-paper); font-weight: 500; transition: all .15s; }
.cnp-checks .cnp-check input:checked + span { background: var(--cnp-petrol); border-color: var(--cnp-petrol); color: var(--cnp-white); }
.cnp-checks .cnp-check input:checked + span::before { content: "✓ "; }
.cnp-checks .cnp-check input:focus-visible + span { outline: 3px solid var(--cnp-signal); outline-offset: 2px; }
.cnp-check--consent input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--cnp-petrol); flex: none; }
.cnp-check--consent[aria-invalid="true"] span { color: var(--cnp-danger); }
.cnp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cnp-form-done { display: flex; gap: 16px; align-items: flex-start; padding: 24px; border-radius: 12px; background: #dff3e4; color: #0f3d1f; }
.cnp-form-done .cnp-icon { width: 32px; height: 32px; padding: 6px; border-radius: 50%; background: #135c2b; color: #fff; }
.cnp-form-done h3 { margin: 0 0 6px; font: 700 1.2rem/1.2 var(--cnp-display); }
.cnp-form-done p { margin: 0; }

.cnp-empty { padding: 20px; border-radius: 10px; background: var(--cnp-mist); }

@media (prefers-reduced-motion: reduce) {
	.cnp-tag, .cnp-btn, .cnp-tag__strip { transition: none; }
	.cnp-tag:hover { transform: none; }
	.cnp-badge--abierta::before { animation: none; }
}

/* ---------- Service index ---------- */
.cnp-services { list-style: none; margin: 0; padding: 0; border-top: 2px solid currentColor; }
.cnp-services a {
	display: grid; grid-template-columns: 1fr auto 28px; align-items: center; gap: 16px;
	padding: clamp(14px, 2vw, 20px) 4px; border-bottom: 1px solid color-mix(in srgb, currentColor 22%, transparent);
	color: inherit; text-decoration: none; transition: padding .2s, background-color .2s;
}
.cnp-services__name { font: 700 clamp(1.2rem, 2.6vw, 1.9rem)/1.1 var(--cnp-display); font-stretch: 112%; letter-spacing: -.01em; }
.cnp-services__count { font: 500 .78rem/1 var(--cnp-mono); letter-spacing: .06em; text-transform: uppercase; opacity: .75; }
.cnp-services .cnp-icon { transition: transform .2s; }
.cnp-services a:hover { padding-left: 14px; background: var(--cnp-signal); color: var(--cnp-ink); }
.cnp-services a:hover .cnp-icon { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) { .cnp-services a, .cnp-services .cnp-icon { transition: none; } }
.cnp-back { margin: 0; }
.cnp-back a { color: var(--cnp-petrol); font-weight: 600; text-decoration: none; }
.cnp-back a:hover { text-decoration: underline; }

/* ---------- Brand mark ---------- */
.cnp-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--cnp-petrol); }
.cnp-brand__logo { display: block; height: 48px; width: auto; max-width: 220px; object-fit: contain; }
.cnp-brand__name { font: 800 1.3rem/1 var(--cnp-display); font-stretch: 118%; letter-spacing: -.01em; }
.cnp-brand--dark { color: var(--cnp-white); }
.cnp-brand--dark .cnp-brand__logo { height: 56px; }
.cnp-brand--dark .cnp-brand__name { font-size: 1.6rem; }
@media (max-width: 600px) { .cnp-brand__logo { height: 40px; } }
