/* Cañón Lead Banner — brand: #1C2327 (carbón), #FCBA0F (oro), Montserrat */
.clb, .clb-nl {
	--clb-ink: #1C2327; --clb-gold: #FCBA0F; --clb-gold-d: #d99c00; --clb-text: #43464c;
	--clb-muted: #6b6e72; --clb-line: #D6D6D6; --clb-bg: #FFFFFF; --clb-soft: #F8F8F8;
	font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif; color: var(--clb-ink);
	-webkit-font-smoothing: antialiased; line-height: 1.5;
}
.clb *, .clb-nl * { box-sizing: border-box; }
.clb[hidden], .clb [hidden], .clb-nl [hidden] { display: none !important; }
.clb { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: flex-end; justify-content: center; }
.clb-backdrop { position: absolute; inset: 0; background: rgba(28,35,39,.55); opacity: 0; transition: opacity .35s ease; }
.clb-dialog {
	position: relative; width: 100%; max-height: 92vh; overflow-y: auto; background: var(--clb-bg);
	border-radius: 10px 10px 0 0; box-shadow: 0 -10px 40px rgba(0,0,0,.25);
	transform: translateY(24px); opacity: 0; transition: transform .4s cubic-bezier(.2,.7,.2,1), opacity .35s ease; outline: none;
}
.clb.is-open .clb-backdrop { opacity: 1; }
.clb.is-open .clb-dialog { transform: none; opacity: 1; }
.clb-close {
	position: absolute; top: 10px; right: 10px; z-index: 2; width: 40px; height: 40px; border: 0; border-radius: 50%;
	background: transparent; color: #fff; cursor: pointer; display: grid; place-items: center; padding: 0;
}
.clb-close:hover { background: rgba(255,255,255,.12); }
.clb-close:focus-visible { outline: 2px solid var(--clb-gold); outline-offset: 2px; }
.clb-side { background: var(--clb-ink); color: #fff; padding: 26px 56px 22px 24px; }
.clb-logo { max-height: 38px; width: auto; display: block; margin-bottom: 16px; }
.clb-eyebrow { display: block; font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--clb-gold); margin-bottom: 10px; }
.clb-title { font-family: inherit; font-size: 22px; line-height: 1.25; font-weight: 600; margin: 0; color: #fff; letter-spacing: -.01em; }
.clb-rule { display: block; width: 44px; height: 2px; background: var(--clb-gold); margin: 14px 0; }
.clb-intro { margin: 0; font-size: 14px; color: rgba(255,255,255,.78); font-weight: 400; }
.clb-main { padding: 20px 24px 24px; }
.clb-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.clb-f label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--clb-text); margin-bottom: 5px; }
.clb-opt { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--clb-muted); }
.clb-req { color: var(--clb-gold-d); }
.clb input[type=text], .clb input[type=email], .clb input[type=tel], .clb select, .clb textarea,
.clb-nl input[type=text], .clb-nl input[type=email] {
	width: 100%; font: inherit; font-size: 16px; color: var(--clb-ink); background: #fff;
	border: 1px solid var(--clb-line); border-radius: 3px; padding: 11px 12px; min-height: 46px; margin: 0;
	transition: border-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none; box-shadow: none;
}
.clb textarea { min-height: 64px; resize: vertical; }
.clb select { padding-right: 36px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231C2327' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
.clb input:focus, .clb select:focus, .clb textarea:focus, .clb-nl input:focus { outline: none; border-color: var(--clb-ink); box-shadow: 0 0 0 3px rgba(252,186,15,.35); }
.clb [aria-invalid=true], .clb-nl [aria-invalid=true] { border-color: #b3261e !important; }
.clb-check { display: flex; gap: 10px; align-items: flex-start; margin-top: 12px; font-size: 13px; color: var(--clb-text); cursor: pointer; line-height: 1.45; }
.clb-check input { flex: 0 0 18px; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--clb-ink); cursor: pointer; }
.clb-check a { color: var(--clb-ink); text-decoration: underline; text-decoration-color: var(--clb-gold); text-underline-offset: 3px; }
.clb-msg { min-height: 0; margin: 10px 0 0; font-size: 13px; color: #b3261e; }
.clb-msg:empty { display: none; }
.clb-btn {
	display: inline-flex; align-items: center; justify-content: center; width: 100%; margin-top: 16px; min-height: 48px;
	font: inherit; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	background: var(--clb-gold); color: var(--clb-ink); border: 0; border-radius: 3px; padding: 12px 28px; cursor: pointer;
	transition: background .2s, transform .1s;
}
.clb-btn:hover { background: var(--clb-ink); color: #fff; }
.clb-btn:focus-visible { outline: 2px solid var(--clb-ink); outline-offset: 3px; }
.clb-btn[disabled] { opacity: .65; cursor: wait; }
.clb-done { padding: 30px 0 18px; text-align: left; outline: none; }
.clb-done h3 { font-family: inherit; margin: 0 0 8px; font-size: 22px; font-weight: 600; color: var(--clb-ink); }
.clb-done p { margin: 0; color: var(--clb-text); font-size: 15px; }
.clb-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.clb-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

@media (min-width: 600px) {
	.clb-grid { grid-template-columns: 1fr 1fr; gap: 14px 16px; }
	.clb-full { grid-column: 1 / -1; }
	.clb-btn { width: auto; }
}
@media (min-width: 900px) {
	.clb { align-items: center; padding: 24px; }
	.clb-dialog { max-width: 920px; border-radius: 6px; display: grid; grid-template-columns: 330px 1fr; overflow: hidden; max-height: 94vh; }
	.clb-side { padding: 44px 36px; display: flex; flex-direction: column; justify-content: center;
		background: linear-gradient(160deg, #1C2327 0%, #252e33 100%); }
	.clb-title { font-size: 28px; }
	.clb-intro { font-size: 15px; }
	.clb-main { padding: 34px 36px 30px; overflow-y: auto; max-height: 94vh; }
	.clb-close { color: var(--clb-ink); }
	.clb-close:hover { background: var(--clb-soft); }
}
@media (prefers-reduced-motion: reduce) { .clb-dialog, .clb-backdrop { transition: none; } }

/* Newsletter block */
.clb-nl { display: grid; gap: 18px; padding: 28px 24px; border-radius: 4px; border-top: 3px solid var(--clb-gold); }
.clb-nl--dark { background: var(--clb-ink); color: #fff; }
.clb-nl--light { background: var(--clb-soft); }
.clb-nl-title { font-family: inherit; margin: 0 0 6px; font-size: 20px; font-weight: 600; color: inherit; }
.clb-nl-intro { margin: 0; font-size: 14px; opacity: .8; }
.clb-nl-row { display: grid; gap: 10px; }
.clb-nl .clb-btn { margin-top: 0; width: 100%; }
.clb-nl--dark .clb-check { color: rgba(255,255,255,.75); }
.clb-nl--dark .clb-check a { color: #fff; }
.clb-nl--dark .clb-check input { accent-color: var(--clb-gold); }
.clb-nl--dark .clb-btn:hover { background: #fff; color: var(--clb-ink); }
.clb-nl--dark .clb-msg { color: #ffd166; }
.clb-nl .clb-msg.is-ok { color: inherit; }
@media (min-width: 760px) {
	.clb-nl { grid-template-columns: 1fr 1.4fr; align-items: center; padding: 34px 40px; gap: 32px; }
	.clb-nl-row { grid-template-columns: 1fr 1.3fr auto; }
	.clb-nl .clb-btn { width: auto; }
}

/* v1.0.2 — Theme/Elementor overrides: keep brand styles regardless of theme button/input rules. */
#clb.clb .clb-form button.clb-btn, .clb-nl .clb-form button.clb-btn {
	background: #FCBA0F !important; background-color: #FCBA0F !important; color: #1C2327 !important;
	border: 0 !important; border-radius: 3px !important; box-shadow: none !important;
	font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif !important; font-size: 13px !important;
	font-weight: 600 !important; letter-spacing: .14em !important; text-transform: uppercase !important;
	line-height: 1.2 !important; padding: 12px 28px !important; min-height: 48px !important; text-shadow: none !important;
}
#clb.clb .clb-form button.clb-btn:hover, #clb.clb .clb-form button.clb-btn:focus { background: #1C2327 !important; background-color: #1C2327 !important; color: #fff !important; }
.clb-nl.clb-nl--dark .clb-form button.clb-btn:hover { background: #fff !important; color: #1C2327 !important; }
#clb.clb button.clb-close {
	background: transparent !important; background-color: transparent !important; border: 0 !important; box-shadow: none !important;
	border-radius: 50% !important; width: 40px !important; height: 40px !important; min-height: 0 !important; padding: 0 !important; color: #fff !important;
}
#clb.clb button.clb-close:hover { background: rgba(255,255,255,.12) !important; }
@media (min-width: 900px) {
	#clb.clb button.clb-close { color: #1C2327 !important; }
	#clb.clb button.clb-close:hover { background: #F8F8F8 !important; }
}
#clb.clb .clb-check input[type=checkbox], .clb-nl .clb-check input[type=checkbox] {
	-webkit-appearance: checkbox !important; appearance: auto !important; width: 18px !important; height: 18px !important;
	min-height: 0 !important; margin: 1px 0 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important;
	background: none !important; outline-offset: 2px; accent-color: #1C2327; position: static !important; opacity: 1 !important;
}
.clb-nl.clb-nl--dark .clb-check input[type=checkbox] { accent-color: #FCBA0F; }
#clb.clb .clb-check input[type=checkbox]::before, #clb.clb .clb-check input[type=checkbox]::after { content: none !important; display: none !important; }
#clb.clb input:not([type=checkbox]):focus, #clb.clb select:focus, #clb.clb textarea:focus { outline: none !important; border-color: #1C2327 !important; box-shadow: 0 0 0 3px rgba(252,186,15,.35) !important; }

/* v1.0.3 — Logo: keep aspect ratio whatever the theme does to <img>. */
#clb.clb img.clb-logo {
	display: block !important; height: 40px !important; width: auto !important; max-width: 100% !important;
	min-width: 0 !important; max-height: none !important; object-fit: contain !important; object-position: left center !important; align-self: flex-start !important; flex: 0 0 auto !important;
	aspect-ratio: auto !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 0 18px !important; padding: 0 !important;
}
@media (min-width: 900px) { #clb.clb img.clb-logo { height: 44px !important; } }

/* ===== v1.2.0 — Compact banner ===== */
#clb.clb .clb-dialog { max-height: 86vh; }
#clb.clb .clb-side { padding: 16px 52px 14px 20px; }
#clb.clb img.clb-logo { height: 28px !important; margin: 0 0 10px !important; }
#clb.clb .clb-title { font-size: 18px; line-height: 1.25; }
#clb.clb .clb-rule { width: 32px; margin: 8px 0; }
#clb.clb .clb-intro { font-size: 13px; line-height: 1.45; }
#clb.clb .clb-main { padding: 14px 20px 18px; }
#clb.clb .clb-grid { gap: 9px 12px; }
#clb.clb .clb-f label { font-size: 10px; margin-bottom: 3px; letter-spacing: .07em; }
#clb.clb input[type=text], #clb.clb input[type=email], #clb.clb input[type=tel], #clb.clb select, #clb.clb textarea {
	min-height: 40px !important; padding: 8px 10px !important; font-size: 16px !important; line-height: 1.3 !important;
}
#clb.clb textarea { min-height: 44px !important; height: 44px; }
#clb.clb .clb-check { margin-top: 8px; font-size: 12px; gap: 8px; line-height: 1.4; }
#clb.clb .clb-check input[type=checkbox] { width: 16px !important; height: 16px !important; flex-basis: 16px; }
#clb.clb .clb-form button.clb-btn { margin-top: 12px !important; min-height: 42px !important; padding: 10px 24px !important; font-size: 12px !important; }
#clb.clb .clb-done { padding: 18px 0 8px; }
#clb.clb .clb-done h3 { font-size: 19px; }
#clb.clb .clb-done p { font-size: 14px; }
/* Short fields 2-up already from 600px; keep 2-up on wide phones too. */
@media (min-width: 340px) {
	#clb.clb .clb-grid { grid-template-columns: 1fr 1fr; }
	#clb.clb .clb-full { grid-column: 1 / -1; }
}
@media (min-width: 900px) {
	#clb.clb .clb-dialog { display: block; max-width: 500px; max-height: 92vh; overflow-y: auto; border-radius: 6px; }
	#clb.clb .clb-side { display: block; padding: 20px 56px 16px 26px; background: #1C2327; }
	#clb.clb img.clb-logo { height: 30px !important; }
	#clb.clb .clb-title { font-size: 20px; }
	#clb.clb .clb-intro { font-size: 13px; }
	#clb.clb .clb-main { padding: 16px 26px 20px; max-height: none; overflow: visible; }
	#clb.clb input[type=text], #clb.clb input[type=email], #clb.clb input[type=tel], #clb.clb select, #clb.clb textarea { font-size: 14px !important; min-height: 38px !important; }
	#clb.clb textarea { min-height: 40px !important; height: 40px; }
	#clb.clb button.clb-close { color: #fff !important; }
	#clb.clb button.clb-close:hover { background: rgba(255,255,255,.12) !important; }
}

/* ===== Newsletter: footer layout (replaces the Elementor footer form) ===== */
.clb-nl.clb-nl--footer { display: block; padding: 0; background: transparent; border: 0; border-radius: 0; color: #fff; }
.clb-nl--footer .clb-nl-row { display: flex; gap: 0; flex-wrap: nowrap; }
.clb-nl--footer .clb-nl-row input[type=email] {
	flex: 1 1 auto; min-width: 0; min-height: 42px !important; font-size: 14px !important; padding: 8px 12px !important;
	background: #fff !important; color: #1C2327 !important; border: 1px solid #fff !important; border-radius: 2px 0 0 2px !important;
}
.clb-nl--footer .clb-form button.clb-btn { flex: 0 0 auto; width: auto !important; margin: 0 !important; min-height: 42px !important; padding: 8px 16px !important; font-size: 11px !important; border-radius: 0 2px 2px 0 !important; }
.clb-nl--footer .clb-form button.clb-btn:hover { background: #fff !important; color: #1C2327 !important; }
.clb-nl--footer .clb-check { margin-top: 8px; font-size: 11px; line-height: 1.4; color: rgba(255,255,255,.72); }
.clb-nl--footer .clb-check input[type=checkbox] { -webkit-appearance: checkbox !important; appearance: auto !important; width: 14px !important; height: 14px !important; flex: 0 0 14px; margin-top: 1px !important; accent-color: #FCBA0F; }
.clb-nl--footer .clb-check a { color: #fff; }
.clb-nl--footer .clb-msg { font-size: 12px; margin-top: 6px; color: #ffd166; }
.clb-nl--footer .clb-msg.is-ok { color: #fff; }

@media (max-width: 599px) {
	#clb.clb .clb-side { padding: 14px 50px 12px 18px; }
	#clb.clb img.clb-logo { height: 24px !important; margin-bottom: 8px !important; }
	#clb.clb .clb-title { font-size: 17px; }
	#clb.clb .clb-rule { display: none; }
	#clb.clb .clb-intro { font-size: 12.5px; margin-top: 4px; }
	#clb.clb .clb-main { padding: 12px 18px 16px; }
	#clb.clb .clb-grid { gap: 8px 10px; }
	#clb.clb .clb-form button.clb-btn { width: 100% !important; }
}
