
:root{
	--urb-cookie-green:#276c68;
	--urb-cookie-green-dark:#173f3d;
	--urb-cookie-yellow:#e1b217;
	--urb-cookie-text:#222221;
	--urb-cookie-muted:#66706f;
	--urb-cookie-border:#d7e2e1;
	--urb-cookie-soft:#f4f7f6;
}

.urb-cookie-root,
.urb-cookie-root *{
	box-sizing:border-box;
}

.urb-cookie-root{
	position:relative;
	z-index:999999;
	font-family:"DM Sans",Arial,sans-serif;
}

.urb-cookie-banner{
	position:fixed;
	left:24px;
	right:24px;
	bottom:24px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:28px;
	max-width:1380px;
	margin:auto;
	padding:26px 28px;
	border:1px solid rgba(255,255,255,.12);
	border-radius:22px;
	background:
		radial-gradient(circle at 92% 5%,rgba(225,178,23,.18),transparent 28%),
		linear-gradient(145deg,#173f3d,#102f2d);
	color:#fff;
	box-shadow:0 28px 85px rgba(9,35,33,.34);
}

.urb-cookie-banner__content{
	max-width:760px;
}

.urb-cookie-kicker{
	display:inline-flex;
	margin-bottom:9px;
	color:var(--urb-cookie-yellow);
	font-size:11px;
	font-weight:800;
	letter-spacing:1.1px;
}

.urb-cookie-banner h2,
.urb-cookie-modal h2{
	margin:0 0 8px;
	font:800 29px/1.1 "Outfit",Arial,sans-serif;
}

.urb-cookie-banner p,
.urb-cookie-modal p{
	margin:0;
	color:rgba(255,255,255,.72);
	font-size:14px;
	line-height:1.6;
}

.urb-cookie-banner a,
.urb-cookie-modal a{
	color:var(--urb-cookie-yellow);
	font-weight:700;
	text-decoration:none;
}

.urb-cookie-banner__actions,
.urb-cookie-modal__actions{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	justify-content:flex-end;
}

.urb-cookie-btn,
.urb-cookie-inline-button{
	min-height:46px;
	padding:12px 17px;
	border:1px solid transparent;
	border-radius:10px;
	font:800 13px "Outfit",Arial,sans-serif;
	cursor:pointer;
	transition:.2s ease;
}

.urb-cookie-btn:hover,
.urb-cookie-inline-button:hover{
	transform:translateY(-2px);
}

.urb-cookie-btn--accept{
	background:var(--urb-cookie-yellow);
	color:var(--urb-cookie-text);
	border-color:var(--urb-cookie-yellow);
}

.urb-cookie-btn--reject{
	background:#fff;
	color:var(--urb-cookie-green-dark);
	border-color:#fff;
}

.urb-cookie-btn--configure{
	background:transparent;
	color:#fff;
	border-color:rgba(255,255,255,.55);
}

.urb-cookie-btn--save,
.urb-cookie-inline-button{
	background:var(--urb-cookie-green);
	color:#fff;
	border-color:var(--urb-cookie-green);
}

.urb-cookie-backdrop{
	position:fixed;
	inset:0;
	background:rgba(10,30,29,.58);
	backdrop-filter:blur(5px);
}

.urb-cookie-modal{
	position:fixed;
	left:50%;
	top:50%;
	width:min(720px,calc(100vw - 32px));
	max-height:calc(100vh - 42px);
	overflow:auto;
	transform:translate(-50%,-50%);
	padding:28px;
	border:1px solid var(--urb-cookie-border);
	border-radius:24px;
	background:#fff;
	color:var(--urb-cookie-text);
	box-shadow:0 35px 100px rgba(9,35,33,.38);
}

.urb-cookie-modal .urb-cookie-kicker{
	color:var(--urb-cookie-green);
}

.urb-cookie-modal p{
	color:var(--urb-cookie-muted);
}

.urb-cookie-modal__header{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:20px;
	margin-bottom:22px;
}

.urb-cookie-close{
	flex:0 0 40px;
	width:40px;
	height:40px;
	border:1px solid var(--urb-cookie-border);
	border-radius:11px;
	background:var(--urb-cookie-soft);
	color:var(--urb-cookie-text);
	font-size:25px;
	cursor:pointer;
}

.urb-cookie-categories{
	display:grid;
	gap:12px;
}

.urb-cookie-category{
	position:relative;
	display:grid;
	grid-template-columns:1fr auto;
	align-items:center;
	gap:18px;
	padding:18px;
	border:1px solid var(--urb-cookie-border);
	border-radius:14px;
	background:#fff;
}

.urb-cookie-category h3{
	margin:0 0 5px;
	font:800 18px "Outfit",Arial,sans-serif;
}

.urb-cookie-category p{
	font-size:13px;
}

.urb-cookie-category input{
	position:absolute;
	opacity:0;
	pointer-events:none;
}

.urb-cookie-switch{
	position:relative;
	width:48px;
	height:27px;
	border-radius:999px;
	background:#cbd8d6;
	cursor:pointer;
	transition:.2s ease;
}

.urb-cookie-switch:after{
	content:"";
	position:absolute;
	left:4px;
	top:4px;
	width:19px;
	height:19px;
	border-radius:50%;
	background:#fff;
	box-shadow:0 2px 6px rgba(0,0,0,.18);
	transition:.2s ease;
}

.urb-cookie-category input:checked + .urb-cookie-switch{
	background:var(--urb-cookie-green);
}

.urb-cookie-category input:checked + .urb-cookie-switch:after{
	transform:translateX(21px);
}

.urb-cookie-always{
	padding:7px 10px;
	border-radius:999px;
	background:#eaf3f2;
	color:var(--urb-cookie-green);
	font-size:11px;
	font-weight:800;
}

.urb-cookie-modal__links{
	display:flex;
	flex-wrap:wrap;
	gap:16px;
	margin:20px 0;
}

.urb-cookie-modal__links a{
	color:var(--urb-cookie-green);
}

.urb-cookie-modal__actions{
	padding-top:20px;
	border-top:1px solid var(--urb-cookie-border);
}


.urb-cookie-inline-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
}

body.urb-cookie-modal-open{
	overflow:hidden;
}

@media(max-width:900px){
	.urb-cookie-banner{
		flex-direction:column;
		align-items:flex-start;
	}
	.urb-cookie-banner__actions{
		width:100%;
		justify-content:flex-start;
	}
}

@media(max-width:600px){
	.urb-cookie-banner{
		left:12px;
		right:12px;
		bottom:12px;
		padding:21px;
		border-radius:18px;
	}
	.urb-cookie-banner__actions{
		display:grid;
		grid-template-columns:1fr;
	}
	.urb-cookie-btn{
		width:100%;
	}
	.urb-cookie-modal{
		padding:22px;
	}
	.urb-cookie-category{
		grid-template-columns:1fr auto;
		padding:16px;
	}
	.urb-cookie-modal__actions{
		display:grid;
		grid-template-columns:1fr;
	}
}


/* v1.0.1 — respetar el atributo hidden aunque el componente tenga display:flex */
.urb-cookie-root[hidden],
.urb-cookie-banner[hidden],
.urb-cookie-backdrop[hidden],
.urb-cookie-modal[hidden]{
	display:none !important;
}

/* v1.1.0 */
.urb-cookie-category input:focus-visible + .urb-cookie-switch,
.urb-cookie-btn:focus-visible,
.urb-cookie-inline-button:focus-visible,
.urb-cookie-close:focus-visible,
.urb-cookie-modal a:focus-visible,
.urb-cookie-banner a:focus-visible{
	outline:3px solid var(--urb-cookie-yellow);
	outline-offset:3px;
}
.urb-cookie-placeholder{
	padding:24px;
	border:1px dashed var(--urb-cookie-border);
	border-radius:14px;
	background:var(--urb-cookie-soft);
	text-align:center;
}
.urb-cookie-placeholder p{margin:0 0 14px;color:var(--urb-cookie-muted);}
.urb-cookie-table-wrap{overflow-x:auto;}
.urb-cookie-declaration{width:100%;border-collapse:collapse;}
.urb-cookie-declaration th,.urb-cookie-declaration td{padding:12px;border:1px solid var(--urb-cookie-border);text-align:left;vertical-align:top;}
.urb-cookie-declaration th{background:var(--urb-cookie-soft);}

/* v1.1.1 — aislamiento tipográfico frente a estilos globales de Elementor/Astra */
#urb-cookie-root.urb-cookie-root #urb-cookie-banner.urb-cookie-banner h2,
#urb-cookie-root.urb-cookie-root #urb-cookie-modal.urb-cookie-modal h2{
	position:static !important;
	display:block !important;
	width:auto !important;
	max-width:100% !important;
	margin:0 0 8px !important;
	padding:0 !important;
	font-family:"Outfit",Arial,sans-serif !important;
	font-size:29px !important;
	font-style:normal !important;
	font-weight:800 !important;
	line-height:1.12 !important;
	letter-spacing:0 !important;
	text-align:left !important;
	text-indent:0 !important;
	text-transform:none !important;
	white-space:normal !important;
	word-break:normal !important;
	overflow-wrap:anywhere !important;
	transform:none !important;
}

#urb-cookie-root.urb-cookie-root .urb-cookie-banner__content,
#urb-cookie-root.urb-cookie-root .urb-cookie-modal__header > div{
	min-width:0;
}

#urb-cookie-root.urb-cookie-root .urb-cookie-kicker{
	position:static !important;
	display:inline-flex !important;
	margin:0 0 9px !important;
	padding:0 !important;
	font-family:"DM Sans",Arial,sans-serif !important;
	font-size:11px !important;
	font-style:normal !important;
	font-weight:800 !important;
	line-height:1.3 !important;
	letter-spacing:1.1px !important;
	text-transform:uppercase !important;
	transform:none !important;
}

#urb-cookie-root.urb-cookie-root #urb-cookie-banner.urb-cookie-banner p,
#urb-cookie-root.urb-cookie-root #urb-cookie-modal.urb-cookie-modal p{
	position:static !important;
	margin:0 !important;
	padding:0 !important;
	font-family:"DM Sans",Arial,sans-serif !important;
	font-size:14px !important;
	font-style:normal !important;
	font-weight:400 !important;
	line-height:1.6 !important;
	letter-spacing:0 !important;
	text-transform:none !important;
	white-space:normal !important;
	word-break:normal !important;
	overflow-wrap:anywhere !important;
	transform:none !important;
}

#urb-cookie-root.urb-cookie-root .urb-cookie-category h3{
	position:static !important;
	display:block !important;
	margin:0 0 5px !important;
	padding:0 !important;
	font-family:"Outfit",Arial,sans-serif !important;
	font-size:18px !important;
	font-style:normal !important;
	font-weight:800 !important;
	line-height:1.18 !important;
	letter-spacing:0 !important;
	text-transform:none !important;
	white-space:normal !important;
	word-break:normal !important;
	overflow-wrap:anywhere !important;
	transform:none !important;
}

@media(max-width:600px){
	#urb-cookie-root.urb-cookie-root #urb-cookie-banner.urb-cookie-banner{
		max-height:calc(100dvh - 24px);
		overflow-y:auto;
		overscroll-behavior:contain;
		gap:18px;
		padding:22px 21px;
	}

	#urb-cookie-root.urb-cookie-root #urb-cookie-banner.urb-cookie-banner h2,
	#urb-cookie-root.urb-cookie-root #urb-cookie-modal.urb-cookie-modal h2{
		font-size:clamp(27px,8vw,32px) !important;
		line-height:1.12 !important;
		margin-bottom:8px !important;
	}

	#urb-cookie-root.urb-cookie-root #urb-cookie-modal.urb-cookie-modal{
		width:calc(100vw - 20px);
		max-height:calc(100dvh - 20px);
		padding:20px 15px;
		border-radius:20px;
		overscroll-behavior:contain;
	}

	#urb-cookie-root.urb-cookie-root .urb-cookie-modal__header{
		display:grid;
		grid-template-columns:minmax(0,1fr) 48px;
		align-items:start;
		gap:12px;
		margin-bottom:20px;
	}

	#urb-cookie-root.urb-cookie-root .urb-cookie-close{
		justify-self:end;
		flex:0 0 48px;
		width:48px;
		height:40px;
		font-size:22px;
		line-height:1 !important;
	}

	#urb-cookie-root.urb-cookie-root .urb-cookie-category{
		grid-template-columns:minmax(0,1fr) auto;
		gap:12px;
		padding:15px 16px;
	}

	#urb-cookie-root.urb-cookie-root .urb-cookie-category h3{
		font-size:18px !important;
		line-height:1.18 !important;
	}

	#urb-cookie-root.urb-cookie-root .urb-cookie-category p{
		font-size:13px !important;
		line-height:1.55 !important;
	}

	#urb-cookie-root.urb-cookie-root .urb-cookie-modal__links{
		gap:10px 18px;
		margin:18px 0;
	}
}

