/* Igienere Privacy & Cookie Consent — banner styles */
:root{
	--igpc-blue:#163f6c;
	--igpc-blue-dark:#0f2c4c;
	--igpc-accent:#f6c500;
	--igpc-text:#20303f;
	--igpc-muted:#5b6b7a;
	--igpc-bg:#ffffff;
	--igpc-border:#e3e8ee;
	--igpc-radius:14px;
	--igpc-shadow:0 12px 40px rgba(15,44,76,.22);
}

/* ---------- Banner ---------- */
.igpc-banner{
	position:fixed;
	z-index:99999;
	background:var(--igpc-bg);
	color:var(--igpc-text);
	box-shadow:var(--igpc-shadow);
	font-family:inherit;
	line-height:1.5;
	-webkit-font-smoothing:antialiased;
}
.igpc-banner[hidden]{display:none;}

.igpc-box{
	right:20px;
	bottom:20px;
	max-width:420px;
	width:calc(100% - 40px);
	border-radius:var(--igpc-radius);
	border-top:4px solid var(--igpc-accent);
}
.igpc-bar{
	left:0;
	right:0;
	bottom:0;
	width:100%;
	border-top:4px solid var(--igpc-accent);
}

.igpc-banner__inner{padding:22px 24px;}
.igpc-bar .igpc-banner__inner{
	max-width:1180px;
	margin:0 auto;
	display:flex;
	align-items:center;
	gap:24px;
	flex-wrap:wrap;
}
.igpc-bar .igpc-banner__text{flex:1 1 420px;}

.igpc-banner__title{
	margin:0 0 6px;
	font-size:1.05rem;
	font-weight:700;
	color:var(--igpc-blue);
}
.igpc-banner__msg{
	margin:0;
	font-size:.9rem;
	color:var(--igpc-muted);
}
.igpc-banner__msg a{color:var(--igpc-blue);text-decoration:underline;}

.igpc-banner__actions{
	display:flex;
	gap:10px;
	margin-top:16px;
	flex-wrap:wrap;
}
.igpc-bar .igpc-banner__actions{margin-top:0;flex:0 0 auto;}

/* ---------- Buttons ---------- */
.igpc-btn{
	font:inherit;
	font-size:.88rem;
	font-weight:600;
	padding:10px 18px;
	border-radius:999px;
	border:1px solid transparent;
	cursor:pointer;
	transition:transform .06s ease, background .15s ease, color .15s ease, border-color .15s ease;
	line-height:1.2;
}
.igpc-btn:active{transform:translateY(1px);}
.igpc-btn--primary{background:var(--igpc-blue);color:#fff;border-color:var(--igpc-blue);}
.igpc-btn--primary:hover{background:var(--igpc-blue-dark);border-color:var(--igpc-blue-dark);}
.igpc-btn--secondary{background:#eef2f7;color:var(--igpc-blue);border-color:#dbe3ec;}
.igpc-btn--secondary:hover{background:#e2e9f1;}
.igpc-btn--ghost{background:transparent;color:var(--igpc-muted);border-color:transparent;text-decoration:underline;padding-left:8px;padding-right:8px;}
.igpc-btn--ghost:hover{color:var(--igpc-blue);}

/* ---------- Modal ---------- */
.igpc-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;}
.igpc-modal[hidden]{display:none;}
.igpc-modal__overlay{position:absolute;inset:0;background:rgba(15,44,76,.5);backdrop-filter:saturate(120%) blur(2px);}
.igpc-modal__dialog{
	position:relative;
	background:var(--igpc-bg);
	color:var(--igpc-text);
	width:calc(100% - 32px);
	max-width:560px;
	max-height:calc(100vh - 48px);
	overflow:auto;
	border-radius:var(--igpc-radius);
	box-shadow:var(--igpc-shadow);
	padding:26px 28px;
	border-top:4px solid var(--igpc-accent);
}
.igpc-modal__title{margin:0 0 8px;font-size:1.25rem;font-weight:700;color:var(--igpc-blue);}
.igpc-modal__intro{margin:0 0 18px;font-size:.9rem;color:var(--igpc-muted);}

.igpc-cat{padding:14px 0;border-top:1px solid var(--igpc-border);}
.igpc-cat:first-of-type{border-top:none;}
.igpc-cat__head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.igpc-cat__name{font-weight:700;color:var(--igpc-text);font-size:.98rem;}
.igpc-cat__desc{margin:6px 0 0;font-size:.85rem;color:var(--igpc-muted);}
.igpc-cat__badge{
	font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
	color:var(--igpc-blue);background:#eef2f7;border-radius:999px;padding:4px 10px;white-space:nowrap;
}

/* Toggle switch */
.igpc-switch{position:relative;display:inline-block;width:46px;height:26px;flex:0 0 auto;}
.igpc-switch input{opacity:0;width:0;height:0;}
.igpc-slider{position:absolute;inset:0;background:#c9d3de;border-radius:999px;transition:background .2s ease;cursor:pointer;}
.igpc-slider::before{content:"";position:absolute;height:20px;width:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.25);}
.igpc-switch input:checked + .igpc-slider{background:var(--igpc-blue);}
.igpc-switch input:checked + .igpc-slider::before{transform:translateX(20px);}
.igpc-switch input:focus-visible + .igpc-slider{outline:2px solid var(--igpc-accent);outline-offset:2px;}

.igpc-modal__actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid var(--igpc-border);}

/* ---------- Reopen floating button ---------- */
.igpc-reopen{
	position:fixed;left:18px;bottom:18px;z-index:99998;
	width:44px;height:44px;border-radius:50%;
	background:var(--igpc-blue);color:#fff;border:none;cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	box-shadow:0 6px 18px rgba(15,44,76,.3);transition:background .15s ease,transform .1s ease;
}
.igpc-reopen[hidden]{display:none;}
.igpc-reopen:hover{background:var(--igpc-blue-dark);}
.igpc-reopen:active{transform:translateY(1px);}

/* ---------- Legal pages ---------- */
.igpc-legal{max-width:860px;line-height:1.65;color:var(--igpc-text);}
.igpc-legal h2{color:var(--igpc-blue);margin-top:1.8em;font-size:1.5rem;}
.igpc-legal h3{color:var(--igpc-blue-dark);margin-top:1.4em;font-size:1.15rem;}
.igpc-legal p, .igpc-legal li{font-size:1rem;}
.igpc-legal table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.92rem;}
.igpc-legal th, .igpc-legal td{border:1px solid var(--igpc-border);padding:8px 10px;text-align:left;vertical-align:top;}
.igpc-legal th{background:#eef2f7;color:var(--igpc-blue);}
.igpc-legal .igpc-note{background:#fff8dd;border-left:4px solid var(--igpc-accent);padding:12px 16px;border-radius:6px;font-size:.9rem;}

/* ---------- Responsive ---------- */
@media (max-width:600px){
	.igpc-box{right:0;left:0;bottom:0;max-width:none;width:100%;border-radius:0;}
	.igpc-banner__actions .igpc-btn{flex:1 1 auto;text-align:center;}
	.igpc-bar .igpc-banner__actions{width:100%;}
}
@media (prefers-reduced-motion:reduce){
	.igpc-btn,.igpc-slider,.igpc-slider::before,.igpc-reopen{transition:none;}
}
