/* ==========================================================================
   carbonWERK SHP – Theme-Styles
   Farben, Schriften und Größen kommen aus theme.json (Design > Stile).
   ========================================================================== */

:root {
	--cw-accent: var(--wp--preset--color--accent, #00ff26);
	--cw-accent-soft: var(--wp--preset--color--accent-soft, #00ff26);
	--cw-surface: var(--wp--preset--color--surface, #111);
	--cw-surface-2: var(--wp--preset--color--surface-2, #1c1c1c);
	--cw-border: var(--wp--preset--color--border, #2a2a2a);
	--cw-muted: var(--wp--preset--color--muted, #b8b8b8);
	--cw-radius: 10px;
	--cw-radius-lg: 28px;
	--cw-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
	--cw-gutter: clamp(1rem, 4vw, 2rem);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }

[id] { scroll-margin-top: 2rem; }

:where(a, button, input, textarea, .wp-block-button__link):focus-visible {
	outline: 2px solid var(--cw-accent);
	outline-offset: 3px;
	border-radius: 4px;
}

.screen-reader-text:not(:focus) {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.wp-site-blocks > * + * { margin-block-start: 0; }

.cw-muted { color: var(--cw-muted); }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.wp-site-blocks > .wp-block-template-part:has(.cw-header:not(.cw-header--simple)) {
	position: absolute;
	inset: 0 0 auto 0;
	z-index: 20;
}

.cw-header {
	align-items: flex-start;
	gap: 1rem;
	padding: 0 !important;
}

.cw-logo-wedge {
	position: relative;
	flex: 0 0 auto;
	width: clamp(250px, 42vw, 540px);
	aspect-ratio: 540 / 255;
	padding: clamp(0.8rem, 2.4vw, 1.9rem) 0 0 clamp(0.9rem, 2.6vw, 2.1rem) !important;
	margin: 0 !important;
}

.cw-logo-wedge::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	clip-path: polygon(0 31%, 11% 0, 73% 0, 100% 39%, 0 100%);
	z-index: -1;
}

.cw-logo-wedge .wp-block-site-logo { margin: 0 !important; max-width: none !important; }
.cw-logo-wedge .wp-block-site-logo img { width: 77% !important; height: auto; }

.cw-nav {
	padding: 1.6rem clamp(1rem, 5.5vw, 4.5rem) 0 0;
	gap: 1.2rem;
}
.cw-nav .wp-block-navigation__container { gap: 1.2rem; }
.cw-nav .wp-block-navigation-item__content { padding: 0.35rem 0; transition: color 200ms ease; }
.cw-nav .wp-block-navigation-item__content:hover { color: var(--cw-accent); }
.cw-nav .wp-block-navigation__responsive-container-open { color: #fff; }
.cw-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: #000 !important;
	color: #fff !important;
	padding: 2rem;
}
.cw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 1.4rem;
	font-size: 1.1rem;
}

.cw-header--simple {
	padding: 2.2rem clamp(1rem, 4vw, 3.2rem) 0 !important;
}
.cw-header--simple .wp-block-site-title { font-weight: 300; letter-spacing: 0.02em; }

/* --------------------------------------------------------------------------
   Kapitel-Leiste (Absatz > Stil "Kapitel-Leiste")
   -------------------------------------------------------------------------- */

.is-style-eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.3rem 1rem;
	border-radius: 999px;
	background: linear-gradient(90deg, #1f1f1f, #262626 30%, #262626 70%, #1f1f1f);
	box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 6px 18px -8px rgba(0,0,0,0.8);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #d8d8d8;
	text-align: center;
}

.is-style-eyebrow::before,
.cw-note::before,
.is-style-dark .wp-block-button__link::before {
	content: "";
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	border: 1.5px solid var(--cw-accent);
	background: radial-gradient(circle, var(--cw-accent) 0 1.6px, transparent 2px);
}

/* --------------------------------------------------------------------------
   Hero (Cover > Stil "Carbon-Hero")
   -------------------------------------------------------------------------- */

.wp-block-cover.is-style-carbon-hero {
	padding: clamp(11rem, 19vw, 16rem) var(--cw-gutter) clamp(2rem, 4vw, 3rem);
	align-items: flex-start;
	overflow: hidden;
}

/* Ringe-Grafik als Lichtreflex über dem Carbon */
.wp-block-cover.is-style-carbon-hero::before {
	content: "";
	position: absolute;
	inset: -5% -10% 10% 5%;
	background: url("../images/hero-ringe.png") center / cover no-repeat;
	mix-blend-mode: screen;
	opacity: 0.2;
	z-index: 1;
	pointer-events: none;
	transform: rotate(-8deg);
}

/* weicher Übergang nach Schwarz */
.wp-block-cover.is-style-carbon-hero::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 28%;
	background: linear-gradient(to bottom, transparent, #000 92%);
	z-index: 1;
	pointer-events: none;
}

.wp-block-cover.is-style-carbon-hero .wp-block-cover__inner-container { z-index: 3 !important; }

.cw-hero__content {
	display: grid;
	grid-template-columns: 1fr minmax(0, 545px) 7%;
	row-gap: 1.4rem;
}
.cw-hero__content > * { grid-column: 2; margin: 0 !important; }
.cw-hero__content .is-style-eyebrow {
	text-transform: none;
	background: linear-gradient(90deg, rgba(255,255,255,0.02), rgba(255,255,255,0.08) 25%, rgba(255,255,255,0.08) 75%, rgba(255,255,255,0.02));
}
.cw-hero__content h1 { margin-top: 0.3rem !important; }
.cw-hero__content .cw-lead { color: #e2e2e2; line-height: 1.45; }
.cw-hero__content .wp-block-buttons { margin-top: 0.4rem !important; }

.cw-hero__section-head {
	margin-top: clamp(6rem, 17vw, 14rem) !important;
	max-width: 1100px !important;
	display: grid;
	gap: 1rem;
}
.cw-hero__section-head h2 { margin: 0; }
.cw-hero__section-head .is-style-eyebrow { width: 100%; max-width: 890px; margin: 0 auto; box-sizing: border-box; }

/* --------------------------------------------------------------------------
   Karten (Gruppe > Stil "Karte")
   -------------------------------------------------------------------------- */

.is-style-card {
	position: relative;
	background: linear-gradient(160deg, #171717 0%, #0d0d0d 55%, #0a0a0a 100%);
	border: 1px solid #1d1d1d;
	border-radius: var(--cw-radius);
	padding: 1.1rem 1.1rem 1.4rem;
	box-shadow: 0 20px 40px -24px rgba(0,0,0,0.9);
	transition: border-color 250ms ease, transform 250ms var(--cw-ease-out);
}
.is-style-card > * { margin-block: 0; }
.is-style-card > * + * { margin-block-start: 0.8rem; }

@media (hover: hover) and (pointer: fine) {
	.is-style-card:hover { border-color: #2f2f2f; }
}

.cw-big-number {
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.01em;
}
.is-style-card h3, .is-style-step h3 { font-weight: 500; margin-top: 0.9rem !important; }

.is-style-card .wp-block-separator {
	border: 0;
	border-top: 1px solid #262626;
	margin: 1.6rem 0 1rem !important;
	width: 100% !important;
	max-width: none !important;
	opacity: 1;
}

/* Leistungen */
.cw-leistungen { padding-top: 0.5rem; padding-bottom: clamp(3rem, 7vw, 6rem); }
.cw-cards { gap: 1rem !important; }
.cw-cards > .wp-block-column { display: flex; }
.cw-cards .is-style-card { flex: 1; display: flex; flex-direction: column; }
.cw-cards .is-style-card .cw-muted { flex: 1; font-size: 0.8rem; line-height: 1.85; }

.cw-note {
	max-width: 560px !important;
	margin-top: 1.75rem !important;
	padding: 1.4rem 1rem 1.6rem !important;
}
.cw-note::before { display: block; margin-bottom: 0.7rem; }
.cw-note p { font-size: 0.82rem; color: #d6d6d6; }

/* --------------------------------------------------------------------------
   Tags (Absatz > Stil "Tag / Pill")
   -------------------------------------------------------------------------- */

.is-style-tag {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 0.7rem 1rem;
	border: 1px solid #2a2a2a;
	border-radius: 999px;
	background: #0e0e0e;
	font-size: 0.72rem;
	font-weight: 400;
	line-height: 1.2;
	color: #ddd;
}
.is-style-card .is-style-tag {
	padding: 0.2rem 0.45rem;
	border-color: #6a6a6a;
	background: transparent;
	font-size: 0.62rem;
}
.cw-tags { gap: 0.45rem 0.4rem !important; }
.cw-tags > * { margin: 0 !important; }

/* --------------------------------------------------------------------------
   Sektionen (Gruppe > Stil "Sektion (abgerundet)")
   -------------------------------------------------------------------------- */

.is-style-panel {
	position: relative;
	margin-top: clamp(3rem, 7vw, 6rem) !important;
	padding-top: clamp(2.5rem, 5vw, 3.5rem) !important;
	padding-bottom: clamp(4rem, 9vw, 8rem) !important;
	border-radius: var(--cw-radius-lg) var(--cw-radius-lg) 0 0;
	background: linear-gradient(to bottom, #0f0f0f 0%, #0a0a0a 45%, #030303 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}
.is-style-panel > .is-style-eyebrow { margin-bottom: 1.2rem; }
.is-style-panel > h2 { margin-top: 0 !important; max-width: 1000px !important; }

.cw-intro { font-size: 0.8rem; margin-top: 0.4rem !important; }

.cw-wide-heading { max-width: 1000px !important; }

/* Branchen */
.cw-branchen {
	margin-top: 2.6rem !important;
	gap: 1rem 1.9rem !important;
}
.cw-branchen { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.cw-branchen > * { min-width: 0; }
.cw-branchen .is-style-card { padding: 1.7rem 1rem 1.9rem; }
.cw-branchen .is-style-card > * + * { margin-block-start: 0.5rem; }
.cw-branchen h3 { margin-top: 1.8rem !important; font-weight: 400; }
.cw-branchen .cw-muted { font-size: 0.78rem; line-height: 1.9; }

.cw-branche-bild { overflow: hidden; border-radius: 2px; }
.cw-branche-bild img {
	width: 100%;
	aspect-ratio: 4.6 / 1;
	object-fit: cover;
	display: block;
	filter: grayscale(1) contrast(1.05);
	transition: transform 600ms var(--cw-ease-out), filter 400ms ease;
}
@media (hover: hover) and (pointer: fine) {
	.cw-branchen .is-style-card:hover .cw-branche-bild img {
		transform: scale(1.04);
		filter: grayscale(0.6) contrast(1.1);
	}
}

/* Über uns */
.cw-about { margin-top: 2.2rem !important; gap: 1.6rem !important; }
.cw-stats { gap: 0.5rem !important; }
.is-style-stat {
	background: #161616;
	border-radius: 4px;
	padding: 1.2rem 0.5rem 1.1rem;
	box-shadow: 0 16px 30px -18px rgba(0,0,0,0.9);
}
.is-style-stat > * { margin: 0; }
.is-style-stat .has-x-large-font-size { line-height: 1.2; font-weight: 400; }
.cw-stat-label {
	margin-top: 0.6rem !important;
	font-size: 0.56rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #c9c9c9;
}
.cw-about-text { margin-top: 2.6rem !important; font-size: 0.78rem; line-height: 1.9; }

/* "Wofür SHP steht" */
.cw-shp {
	margin-top: 1.6rem !important;
	padding: 1rem 1.2rem 1.1rem !important;
	border-left: 2px solid var(--cw-accent) !important;
}
.cw-shp > * + * { margin-block-start: 0.35rem; }
.cw-shp__label {
	font-size: 0.62rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cw-muted);
}
.cw-shp__name { font-weight: 400; letter-spacing: 0.01em; line-height: 1.3; }
.cw-shp__name mark { font-weight: 600; }

.wp-block-image.is-style-framed {
	background: #151515;
	border-radius: var(--cw-radius);
	padding: 1rem;
	box-shadow: 0 30px 50px -20px rgba(0,0,0,0.9), inset 0 1px 0 rgba(255,255,255,0.04);
}
.wp-block-image.is-style-framed img { width: 100%; height: auto; display: block; border-radius: 2px; }

.cw-partner-title { margin-top: 1.4rem !important; font-size: 0.78rem; }
.cw-tags { margin-top: 0.9rem !important; }

/* Maschinenpark (Gruppe > Stil "Linie links") */
.cw-machines { margin-top: clamp(2.5rem, 5vw, 4rem) !important; gap: 1.2rem !important; }
.is-style-step {
	border-left: 1px solid #5a5a5a;
	padding: 0 0.5rem 0 1.3rem;
	height: 100%;
}
.is-style-step > * { margin-block: 0; }
.is-style-step > * + * { margin-block-start: 0.7rem; }
.is-style-step .cw-big-number { font-size: clamp(2rem, 3vw, 2.4rem) !important; }
.is-style-step .cw-muted { font-size: 0.78rem; line-height: 1.9; }

/* Qualität */
.cw-quality { padding-bottom: clamp(3rem, 6vw, 5rem) !important; }
.cw-quality-card { padding: 1.3rem 1.3rem 1.2rem !important; gap: 1.5rem !important; }
.cw-quality-card h3 { margin-top: 0 !important; }
.cw-quality-card .cw-muted { font-size: 0.78rem; max-width: 470px; color: #d0d0d0; }

.cw-quality-card .cw-cert-logo {
	flex: 0 0 auto;
	margin: 0 !important;
	background: #fff;
	padding: 0.3rem;
	border-radius: 2px;
}
.cw-quality-card .cw-cert-logo img { display: block; width: 61px; height: auto; }

/* --------------------------------------------------------------------------
   Call to Action
   -------------------------------------------------------------------------- */

.cw-cta {
	margin-top: 0 !important;
	padding-top: clamp(2.5rem, 5vw, 3.2rem) !important;
	padding-bottom: clamp(2.5rem, 4vw, 2.8rem) !important;
}
.cw-cta__title {
	max-width: 840px !important;
	margin-left: max(0px, calc((100% - 840px) / 2)) !important;
	margin-right: auto !important;
	line-height: 1.45;
	font-weight: 400;
	margin-bottom: 0 !important;
}
.cw-cta .wp-block-buttons { margin-top: 1.6rem !important; margin-left: max(0px, calc((100% - 840px) / 2)) !important; }

.wp-block-button.is-style-dark .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	background: #000;
	color: #fff;
	padding: 0.95rem 1.3rem;
	text-transform: uppercase;
}
.wp-block-button.is-style-dark .wp-block-button__link:hover { background: #1a1a1a; color: #fff; }

/* Buttons: kurzes Press-Feedback */
.wp-block-button__link, .cw-form__submit {
	transition: background-color 200ms ease, transform 160ms var(--cw-ease-out);
}
.wp-block-button__link:active, .cw-form__submit:active { transform: scale(0.97); }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.wp-site-blocks > footer.wp-block-template-part,
.wp-site-blocks > .wp-block-template-part:last-child { margin-top: 0; }

.cw-footer { background: #000; }
.cw-footer__line { border: 0 !important; border-top: 1px solid #1c1c1c !important; margin-block: 0 !important; opacity: 1; width: 100%; }
.cw-footer__cols { margin-block: 0 !important; }
.cw-footer__logo {
	background: #fff;
	padding: 0.55rem 1.8rem;
	width: fit-content;
	margin-bottom: 1.3rem !important;
}
.cw-footer__logo img { width: 160px !important; height: auto; display: block; }
.cw-footer__title {
	font-size: 0.82rem !important;
	font-weight: 500;
	margin: 0.3rem 0 2.2rem !important;
}
.cw-footer .cw-muted { font-size: 0.72rem; line-height: 1.4; color: #b5b5b5; }
.cw-footer__links { line-height: 1.35 !important; }
.cw-footer a:hover { color: var(--cw-accent); }
.cw-footer__copy { margin-top: 1rem !important; color: #9a9a9a; font-size: 0.56rem !important; }

/* --------------------------------------------------------------------------
   Unterseiten
   -------------------------------------------------------------------------- */

.cw-subpage-head { padding-top: clamp(3rem, 5vw, 4rem); }
.cw-subpage-head > * + * { margin-top: 1.6rem !important; }

/* Kontakt */
.cw-contact {
	margin-top: 1.8rem !important;
	padding-top: 1.5rem !important;
	background: transparent;
	box-shadow: none;
}
.cw-contact::before {
	content: "";
	position: absolute;
	inset: 1.6rem 0 0;
	border: 1px solid #1c1c1c;
	border-radius: var(--cw-radius-lg);
	pointer-events: none;
}
.cw-contact__cols { gap: clamp(2rem, 6vw, 4rem) !important; }
.cw-contact h2 { margin-top: 1.9rem !important; margin-bottom: 0.25rem !important; }
.cw-contact h2:first-child { margin-top: 0 !important; }
.cw-contact__text { font-size: 0.75rem; line-height: 2; margin-top: 0 !important; }
.cw-map {
	margin-top: 2.2rem !important;
	min-height: 215px;
	padding: 1rem 1.1rem !important;
}
.cw-map p { max-width: 8.5em; line-height: 1.5; font-weight: 400; }

.cw-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.9rem 1rem;
}
.cw-form__field { margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.cw-form__field--full { grid-column: 1 / -1; }
.cw-form label { font-size: 0.75rem; font-weight: 400; }
.cw-form input[type="text"],
.cw-form input[type="email"],
.cw-form input[type="tel"],
.cw-form textarea {
	width: 100%;
	box-sizing: border-box;
	min-height: 44px;
	padding: 0.7rem 0.9rem;
	background: linear-gradient(100deg, #161616, #050505);
	border: 1px solid #1a1a1a;
	border-radius: 6px;
	color: #fff;
	font: inherit;
	font-size: 0.85rem;
	transition: border-color 200ms ease;
}
.cw-form textarea { min-height: 158px; resize: vertical; }
.cw-form input:hover, .cw-form textarea:hover { border-color: #2c2c2c; }
.cw-form input:focus, .cw-form textarea:focus { outline: none; border-color: var(--cw-accent); }

.cw-form__consent {
	display: flex;
	gap: 0.8rem;
	align-items: flex-start;
	margin: 1.4rem 0 0;
}
.cw-form__consent input {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin-top: 0.3rem;
	accent-color: var(--cw-accent-soft);
}
.cw-form__consent label { font-size: 0.72rem; line-height: 2; font-weight: 300; }
.cw-form__consent a { text-decoration: underline; text-underline-offset: 2px; }

.cw-form__submit {
	margin-top: 1.9rem;
	min-height: 32px;
	padding: 0.45rem 1rem;
	border: 0;
	border-radius: 999px;
	background: var(--cw-accent-soft);
	color: #000;
	font: inherit;
	font-size: 0.8rem;
	font-weight: 400;
	cursor: pointer;
}
.cw-form__submit:hover { background: #00d920; }

.cw-form__hp { position: absolute !important; left: -9999px; }

.cw-form__notice {
	margin: 0 0 1.2rem;
	padding: 0.8rem 1rem;
	border-radius: 6px;
	font-size: 0.8rem;
	border: 1px solid;
}
.cw-form__notice--ok { border-color: var(--cw-accent); color: #cfeed4; }
.cw-form__notice--error { border-color: #d9534f; color: #f3c7c6; }

/* Impressum & Datenschutz */
.cw-legal { padding-top: clamp(2.5rem, 5vw, 3.5rem); padding-bottom: clamp(4rem, 8vw, 7rem); font-size: 0.74rem; line-height: 1.75; }
.cw-legal p { margin-block: 0 1.1rem; }
.cw-legal ul { margin-block: 0 1.1rem; padding-left: 1.3rem; }
.cw-legal li { margin-bottom: 0.35rem; }
.cw-legal li::marker { color: var(--cw-accent); }
.cw-imprint { max-width: 780px !important; gap: 2rem !important; margin-bottom: clamp(4rem, 9vw, 7rem) !important; }
.cw-imprint p { line-height: 1.95; color: #d4d4d4; }
.cw-legal h2 { margin-bottom: 1.5rem !important; font-weight: 400; }
.cw-legal h3 { margin-top: 3.5rem !important; margin-bottom: 1.4rem !important; font-weight: 400; }
.cw-todo { color: #777; font-style: italic; }

/* --------------------------------------------------------------------------
   Scroll-Reveal (nur mit JS, siehe assets/js/carbonwerk.js)
   -------------------------------------------------------------------------- */

.cw-js .cw-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 700ms var(--cw-ease-out), transform 700ms var(--cw-ease-out);
	transition-delay: var(--cw-delay, 0ms);
}
.cw-js .cw-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.cw-js .cw-reveal { transform: none; transition: opacity 300ms ease; }
	.cw-branche-bild img, .is-style-card { transition: none; }
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
	.cw-cards { flex-wrap: wrap !important; }
	.cw-cards > .wp-block-column { flex-basis: calc(50% - 0.5rem) !important; }
	.cw-machines { flex-wrap: wrap !important; }
	.cw-machines > .wp-block-column { flex-basis: calc(50% - 0.6rem) !important; }
	.cw-hero__content { grid-template-columns: 1fr minmax(0, 545px) 3%; }
}

@media (max-width: 781px) {
	.cw-logo-wedge { width: 250px; }
	.cw-nav { padding-top: 1.1rem; }
	.wp-block-cover.is-style-carbon-hero { padding-top: 9.5rem; }
	.cw-hero__content { grid-template-columns: minmax(0, 1fr); }
	.cw-hero__content > * { grid-column: 1; }
	.cw-hero__content h1 { line-height: 1.25; }
	.cw-branchen { grid-template-columns: minmax(0, 1fr) !important; }
	.cw-quality-card { flex-wrap: wrap !important; }
	.cw-form__grid { grid-template-columns: minmax(0, 1fr); }
	.cw-map { min-height: 160px; }
	.cw-stats { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

@media (max-width: 600px) {
	.cw-cards > .wp-block-column,
	.cw-machines > .wp-block-column { flex-basis: 100% !important; }
	.is-style-eyebrow { font-size: 0.68rem; }
	.cw-stat-label { font-size: 0.5rem; }
}

/* --------------------------------------------------------------------------
   Google-Maps-Karte mit Einwilligung ([carbonwerk_karte])
   -------------------------------------------------------------------------- */

.cw-map-consent { margin-top: 2.2rem; }

.cw-map-consent__placeholder {
	min-height: var(--cw-map-height, 320px);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	padding: 1.1rem 1.2rem 1.2rem;
	border: 1px solid #1d1d1d;
	border-radius: var(--cw-radius);
	background:
		radial-gradient(circle at 85% 20%, rgba(0, 255, 38, 0.07), transparent 45%),
		linear-gradient(160deg, #171717 0%, #0d0d0d 55%, #0a0a0a 100%);
}
.cw-map-consent__placeholder[hidden] { display: none; }
.cw-map-consent__placeholder > * { margin: 0; }

.cw-map-consent__title {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 400;
	line-height: 1.3;
}
.cw-map-consent__text {
	margin-top: 0.8rem !important;
	font-size: 0.74rem;
	line-height: 1.8;
	color: var(--cw-muted);
}
.cw-map-consent__text a { text-decoration: underline; text-underline-offset: 2px; }

.cw-map-consent__remember {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-top: auto !important;
	padding-top: 1.2rem;
	font-size: 0.72rem;
}
.cw-map-consent__remember input { width: 16px; height: 16px; margin: 0; accent-color: var(--cw-accent-soft); }

.cw-map-consent__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem 1.2rem;
	margin-top: 0.9rem !important;
}
.cw-map-consent__load {
	min-height: 36px;
	padding: 0.45rem 1.1rem;
	border: 0;
	border-radius: 999px;
	background: var(--cw-accent-soft);
	color: #000;
	font: inherit;
	font-size: 0.8rem;
	cursor: pointer;
	transition: background-color 200ms ease, transform 160ms var(--cw-ease-out);
}
.cw-map-consent__load:hover { background: #00d920; }
.cw-map-consent__load:active { transform: scale(0.97); }
.cw-map-consent__route { font-size: 0.72rem; color: var(--cw-muted); text-decoration: underline; text-underline-offset: 2px; }

.cw-map-consent__frame {
	display: block;
	width: 100%;
	height: var(--cw-map-height, 320px);
	border: 0;
	border-radius: var(--cw-radius);
	filter: grayscale(1) invert(0.92) contrast(0.9);
}

.cw-map-consent__revoke { margin: 0.6rem 0 0; }
.cw-map-consent__revoke-btn {
	padding: 0.3rem 0;
	border: 0;
	background: none;
	color: var(--cw-muted);
	font: inherit;
	font-size: 0.7rem;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}
.cw-map-consent__revoke-btn:hover { color: var(--cw-accent); }
