/*
 * Protect Framework 1.5.0 — Design Premium
 * Couche visuelle cumulative : aucune structure métier n'est remplacée.
 */

:root {
	--protect-blue: #1769aa;
	--protect-green: #2e7d32;
	--protect-green-dark: #174c40;
	--protect-danger: #b42318;
	--protect-warning: #b86b00;
	--protect-ink: #18201d;
	--protect-muted: #5e6a65;
	--protect-surface: #ffffff;
	--protect-surface-soft: #f4f8f5;
	--protect-border: #dce6df;
	--protect-shadow-sm: 0 10px 28px rgba(20, 48, 35, .08);
	--protect-shadow-lg: 0 22px 60px rgba(20, 48, 35, .15);
	--protect-radius-md: 18px;
	--protect-radius-lg: 28px;
}

/* Boutons : profondeur, focus visible et mouvement discret. */
.btn,
.protect-rats-button {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	box-shadow: 0 8px 22px rgba(32, 94, 47, .16);
	transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease, color .22s ease, border-color .22s ease;
}

.btn:hover,
.btn:focus-visible,
.protect-rats-button:hover,
.protect-rats-button:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(32, 94, 47, .24);
}

.btn:focus-visible,
.protect-rats-button:focus-visible,
.service-card a:focus-visible,
.protect-rats-faq__item button:focus-visible {
	outline: 3px solid rgba(23, 105, 170, .42);
	outline-offset: 3px;
}

/* Hero premium : lumière, relief et séparation organique. */
.hero {
	isolation: isolate;
	padding-bottom: clamp(5.5rem, 9vw, 8.5rem);
}

.hero::before {
	content: "";
	position: absolute;
	inset: -20% auto auto -12%;
	z-index: -1;
	width: min(520px, 55vw);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(67, 160, 71, .17), rgba(67, 160, 71, 0) 68%);
	pointer-events: none;
}

.hero::after {
	content: "";
	position: absolute;
	left: -3%;
	bottom: -1px;
	z-index: 3;
	width: 106%;
	height: clamp(40px, 6vw, 78px);
	background: var(--protect-surface);
	clip-path: polygon(0 48%, 12% 62%, 27% 43%, 43% 68%, 60% 45%, 76% 61%, 89% 40%, 100% 56%, 100% 100%, 0 100%);
	pointer-events: none;
}

.hero--background::after {
	background: var(--protect-surface);
}

.hero-content > * {
	animation: protect-premium-rise .65s both;
}

.hero-content > :nth-child(2) { animation-delay: .07s; }
.hero-content > :nth-child(3) { animation-delay: .13s; }
.hero-content > :nth-child(4) { animation-delay: .18s; }
.hero-content > :nth-child(5) { animation-delay: .23s; }
.hero-content > :nth-child(6) { animation-delay: .28s; }
.hero-content > :nth-child(7) { animation-delay: .33s; }

.hero-badge {
	box-shadow: inset 0 0 0 1px rgba(46, 125, 50, .12), 0 8px 18px rgba(46, 125, 50, .08);
}

.hero-media::before {
	content: "";
	position: absolute;
	inset: 8% -8% -7% 8%;
	z-index: -1;
	border-radius: 32px;
	background: linear-gradient(145deg, rgba(46, 125, 50, .18), rgba(23, 105, 170, .08));
	transform: rotate(3deg);
}

.hero-image {
	transition: transform .65s cubic-bezier(.2,.75,.2,1), box-shadow .35s ease;
}

.hero-media:hover .hero-image {
	transform: scale(1.018);
	box-shadow: 0 34px 80px rgba(23, 58, 25, .22);
}

.hero-stats .stat {
	box-shadow: 0 10px 28px rgba(20, 48, 35, .06);
	transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.hero-stats .stat:hover {
	transform: translateY(-3px);
	border-color: rgba(46, 125, 50, .32);
	box-shadow: var(--protect-shadow-sm);
}

/* Titres de section plus cohérents. */
.section-title h2,
.protect-rats-section h2 {
	letter-spacing: -.025em;
}

.section-title span,
.protect-rats-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
}

.section-title span::before,
.protect-rats-eyebrow::before {
	content: "";
	width: 24px;
	height: 3px;
	border-radius: 999px;
	background: currentColor;
}

/* Cartes services premium. */
.services {
	background: linear-gradient(180deg, #fff 0%, var(--protect-surface-soft) 100%);
}

.service-card {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border: 1px solid rgba(46, 125, 50, .13);
	border-radius: var(--protect-radius-md);
	background: rgba(255, 255, 255, .94);
	box-shadow: var(--protect-shadow-sm);
	transition: transform .28s cubic-bezier(.2,.75,.2,1), box-shadow .28s ease, border-color .28s ease;
}

.service-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	z-index: -1;
	height: 5px;
	background: linear-gradient(90deg, var(--protect-green), #69b86d, var(--protect-blue));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s ease;
}

.service-card::after {
	content: "";
	position: absolute;
	right: -50px;
	bottom: -55px;
	z-index: -1;
	width: 150px;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(46, 125, 50, .10), transparent 70%);
	transition: transform .35s ease;
}

.service-card:hover,
.service-card:focus-within {
	transform: translateY(-8px);
	border-color: rgba(46, 125, 50, .3);
	box-shadow: var(--protect-shadow-lg);
}

.service-card:hover::before,
.service-card:focus-within::before {
	transform: scaleX(1);
}

.service-card:hover::after,
.service-card:focus-within::after {
	transform: scale(1.25);
}

.service-icon {
	display: grid;
	width: 62px;
	height: 62px;
	place-items: center;
	border-radius: 18px;
	background: linear-gradient(145deg, #eef8ef, #fff);
	box-shadow: inset 0 0 0 1px rgba(46, 125, 50, .12), 0 10px 24px rgba(46, 125, 50, .10);
	font-size: 1.7rem;
	transition: transform .28s ease;
}

.service-card:hover .service-icon,
.service-card:focus-within .service-icon {
	transform: translateY(-3px) rotate(-3deg) scale(1.05);
}

.service-card a {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	margin-top: auto;
	font-weight: 800;
	color: var(--protect-green);
	transition: gap .2s ease, color .2s ease;
}

.service-card a:hover {
	gap: .6rem;
	color: var(--protect-green-dark);
}

/* Fiche Rats : cartes, alertes et CTA homogènes. */
.protect-rats-section--soft {
	background: linear-gradient(180deg, #f7faf8, #eef5f0);
}

.protect-rats-card {
	position: relative;
	overflow: hidden;
	border-color: var(--protect-border);
	box-shadow: var(--protect-shadow-sm);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.protect-rats-card:hover {
	transform: translateY(-5px);
	border-color: rgba(46, 125, 50, .28);
	box-shadow: var(--protect-shadow-lg);
}

.protect-rats-notice {
	position: relative;
	border: 1px solid transparent;
	box-shadow: var(--protect-shadow-sm);
}

.protect-rats-notice--danger {
	border-color: rgba(180, 35, 24, .17);
	border-left: 6px solid var(--protect-danger);
	background: linear-gradient(135deg, #fff4f2, #fff);
}

.protect-rats-notice--info {
	border-color: rgba(23, 105, 170, .17);
	border-left: 6px solid var(--protect-blue);
	background: linear-gradient(135deg, #eff8ff, #fff);
}

.protect-rats-notice--tip {
	border-color: rgba(46, 125, 50, .18);
	border-left: 6px solid var(--protect-green);
	background: linear-gradient(135deg, #eff9f0, #fff);
}

.protect-rats-faq__item {
	border: 1px solid var(--protect-border);
	border-radius: 14px;
	margin-bottom: 12px;
	padding-inline: 20px;
	background: #fff;
	box-shadow: 0 7px 20px rgba(20, 48, 35, .05);
	transition: border-color .22s ease, box-shadow .22s ease;
}

.protect-rats-faq__item.is-open {
	border-color: rgba(46, 125, 50, .35);
	box-shadow: var(--protect-shadow-sm);
}

.protect-rats-faq__item button span {
	display: grid;
	width: 28px;
	height: 28px;
	place-items: center;
	border-radius: 50%;
	background: #edf7ee;
	color: var(--protect-green);
	transition: transform .22s ease, background-color .22s ease;
}

.protect-rats-cta {
	position: relative;
	overflow: hidden;
	box-shadow: 0 25px 65px rgba(23, 76, 64, .25);
}

.protect-rats-cta::after {
	content: "";
	position: absolute;
	right: -70px;
	top: -90px;
	width: 260px;
	aspect-ratio: 1;
	border-radius: 50%;
	background: rgba(255,255,255,.09);
	pointer-events: none;
}

@keyframes protect-premium-rise {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 700px) {
	.hero::after {
		height: 42px;
	}

	.service-card:hover,
	.service-card:focus-within,
	.protect-rats-card:hover {
		transform: translateY(-3px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.hero-content > *,
	.btn,
	.protect-rats-button,
	.hero-image,
	.hero-stats .stat,
	.service-card,
	.service-card::before,
	.service-card::after,
	.service-icon,
	.protect-rats-card {
		animation: none !important;
		transition: none !important;
	}
}
/* Protect Framework 1.7.0 - Content library */
.protect-guide-hero{background:linear-gradient(135deg,#1f2933,#344652);color:#fff;padding:clamp(4rem,8vw,7rem) 0}.protect-guide-hero h1{max-width:900px;color:#fff;font-size:clamp(2.1rem,5vw,4rem);line-height:1.08;margin:.5rem 0 1rem}.protect-guide-hero p{max-width:760px;color:#eef4f1;font-size:1.12rem}.protect-guide-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;padding-top:64px;padding-bottom:72px}.protect-guide-content{font-size:1.08rem;line-height:1.75}.protect-guide-content h2{margin-top:2.2em}.protect-guide-aside{align-self:start;position:sticky;top:110px;background:#edf8f3;border:1px solid #cde8dc;border-radius:20px;padding:26px}.protect-guide-aside h2{font-size:1.35rem;margin-top:0}.protect-infographic{margin:2.5rem 0;background:#f7faf9;border:1px solid #e0e8e4;border-radius:22px;padding:14px}.protect-infographic img{display:block;width:100%;height:auto;border-radius:14px}.protect-infographic figcaption{text-align:center;font-size:.84rem;color:#65716b;margin-top:10px}.protect-rats-guides{padding:70px 0;background:#f5f8f7}.protect-rats-guides h2{margin-bottom:28px}.protect-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.protect-guide-card{background:#fff;border:1px solid #e3ebe7;border-radius:20px;padding:26px;box-shadow:0 12px 30px rgba(22,45,35,.07);transition:transform .2s ease,box-shadow .2s ease}.protect-guide-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(22,45,35,.11)}.protect-guide-card h2,.protect-guide-card h3{margin-top:0}.protect-guide-card a{text-decoration:none}.protect-guide-link{font-weight:700;color:#167b5a}.protect-guide-archive-grid{padding-top:60px;padding-bottom:70px}@media(max-width:900px){.protect-guide-layout{grid-template-columns:1fr}.protect-guide-aside{position:static}.protect-guide-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.protect-guide-grid{grid-template-columns:1fr}}

/* Protect Framework 1.8.2 — contrast and accessibility polish for advice cards. */
.protect-guide-card,
.protect-guide-card:hover,
.protect-guide-card:focus-within {
  background-color: #ffffff;
  color: #24332c;
}

.protect-guide-card h2,
.protect-guide-card h3,
.protect-guide-card h2 a,
.protect-guide-card h3 a,
.protect-guide-card h2 a:visited,
.protect-guide-card h3 a:visited {
  color: #1f332a !important;
}

.protect-guide-card h2 a:hover,
.protect-guide-card h3 a:hover,
.protect-guide-card h2 a:focus-visible,
.protect-guide-card h3 a:focus-visible {
  color: #116747 !important;
}

.protect-guide-card p {
  color: #4b5f55;
}

.protect-guide-card .protect-guide-link,
.protect-guide-card .protect-guide-link:visited {
  color: #116747 !important;
}

.protect-guide-card a:focus-visible {
  outline: 3px solid #efb52d;
  outline-offset: 4px;
  border-radius: 3px;
}

.protect-guide-aside,
.protect-guide-aside h2 {
  color: #1f332a;
}

/* Protect Framework 1.8.4 — pest sheets aligned with the Rats visual language. */
.protect-pest-single-header h1,
.protect-pest-single-header .protect-pest-single-intro {
  color: #ffffff !important;
}

.protect-pest-single-header-grid--text-only {
  grid-template-columns: minmax(0, 900px);
}

.protect-pest-single-header-grid--text-only > div:first-child {
  max-width: 900px;
}

.protect-pack-section {
  margin: 0 0 2rem;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border: 1px solid #e1e6e3;
  border-radius: 20px;
  background: #ffffff;
  box-shadow: 0 14px 35px rgba(18,36,29,.06);
}

.protect-pack-section h2 {
  color: #24342a;
}

.protect-pack-alert {
  margin: 2rem 0 0;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border-left: 5px solid #b33a3a;
  border-radius: 20px;
  background: #fff1f1;
}

.protect-pack-alert h2 {
  margin-top: 0;
  color: #7f1d1d;
}
