/* ==========================================================================
   Site Stylesheet — Swiss Precision
   Rémi Désert · Courtier immobilier
   Mobile-first · Inter only · Noir & blanc strict
   ========================================================================== */

/* ---------- Design tokens ---------- */
:root {
	--aa-text:       #1a1a1a;
	--aa-text-soft:  #5a5a5a;
	--aa-bg:         #ffffff;
	--aa-bg-alt:     #f6f6f6;
	--aa-bg-dark:    #1a1a1a;
	--aa-border:     #d6d6d6;
	--aa-accent:     #3a3a3a;
	--aa-sans:       'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--aa-transition: 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ---------- Logo override — match live site ---------- */
.site-header__logo .logo-img {
	height: 55px !important;
	width: auto !important;
}

@media (min-width: 768px) {
	.site-header__logo .logo-img {
		height: 80px !important;
	}
}

@media (min-width: 1024px) {
	.site-header__logo .logo-img {
		height: 95px !important;
	}
}

/* Header padding override for V6 */
.site-header__inner {
	padding: 0.35rem 0 !important;
}

/* Header links — dark on white bg for V6 */
.header-phone {
	color: var(--aa-text) !important;
	text-decoration: none;
}

.header-contact-btn {
	color: var(--aa-text) !important;
	border-color: var(--aa-text) !important;
	background: transparent !important;
}

.header-contact-btn:hover {
	background: var(--aa-text) !important;
	color: #fff !important;
}

/* Social icons — neutral colors (not blue) */
.social-icons--header .social-icon {
	color: var(--aa-text) !important;
	opacity: 0.6;
}

.social-icons--header .social-icon:hover {
	opacity: 1;
	color: var(--aa-text) !important;
}

/* Language switcher — dark on white header */
.lang-switch__link {
	opacity: 0.4;
}

.lang-switch__link:hover {
	opacity: 0.7;
}

.lang-switch__link--active {
	opacity: 1;
}

.lang-switch__sep {
	color: var(--aa-border);
}

/* ---------- Eyebrow (shared) ---------- */
.aa-eyebrow {
	display: block;
	font-family: var(--aa-sans);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--aa-accent);
	margin-bottom: 0.75rem;
}

.aa-eyebrow--center {
	text-align: center;
}

/* ==========================================================================
   HERO
   ========================================================================== */
.aa-hero {
	position: relative;
	min-height: 55vh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	color: #fff;
}

.aa-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.aa-hero__bg-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 20%;
}

@media (max-width: 767px) {
	.aa-hero__bg-img {
		object-position: center 15%;
	}
}

@media (min-width: 1024px) {
	.aa-hero__bg-img {
		object-position: center 25%;
	}
}

.aa-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		to top,
		rgba(0, 0, 0, 0.85) 0%,
		rgba(0, 0, 0, 0.55) 35%,
		rgba(0, 0, 0, 0.25) 65%,
		rgba(0, 0, 0, 0.15) 100%
	);
}

.aa-hero__content {
	position: relative;
	z-index: 2;
	padding-bottom: 4rem;
	max-width: 700px;
}

.aa-hero__badge {
	display: inline-block;
	font-family: var(--aa-sans);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	opacity: 0.8;
	margin-bottom: 1.5rem;
	padding: 0.5rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 0;
	backdrop-filter: blur(4px);
}

.aa-hero__title {
	font-family: var(--aa-sans);
	font-size: clamp(2.4rem, 6vw, 4rem);
	font-weight: 800;
	font-style: normal;
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin-bottom: 1.25rem;
	color: #fff;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}

.aa-hero__subtitle {
	font-family: var(--aa-sans);
	font-size: clamp(0.95rem, 1.5vw, 1.15rem);
	font-weight: 400;
	opacity: 0.9;
	margin-bottom: 2.5rem;
	max-width: 520px;
	line-height: 1.7;
}

.aa-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	background: #fff;
	color: var(--aa-text);
	padding: 1rem 2rem;
	font-family: var(--aa-sans);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
	transition: transform var(--aa-transition), box-shadow var(--aa-transition), background var(--aa-transition);
}

.aa-hero__cta:hover {
	background: #e8e8e8;
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
}

/* Hero entrance cascade — CSS pure, zero JS */
@keyframes aa-heroEntrance {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: translateY(0); }
}

.aa-hero__badge {
	opacity: 0;
	animation: aa-heroEntrance 0.8s ease forwards 0.3s;
}

.aa-hero__title {
	opacity: 0;
	animation: aa-heroEntrance 0.8s ease forwards 0.5s;
}

.aa-hero__subtitle {
	opacity: 0;
	animation: aa-heroEntrance 0.8s ease forwards 0.7s;
}

.aa-hero__cta {
	opacity: 0;
	animation: aa-heroEntrance 0.8s ease forwards 0.9s;
}

/* Scroll indicator */
.aa-hero__scroll {
	position: absolute;
	bottom: 1.5rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	color: #fff;
	opacity: 0.5;
}

.aa-hero__scroll span {
	font-size: 0.65rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.aa-hero__scroll::after {
	content: '';
	display: block;
	width: 1px;
	height: 40px;
	background: currentColor;
	animation: aa-scroll 2.2s ease-in-out infinite;
}

@keyframes aa-scroll {
	0%     { transform: scaleY(0); transform-origin: top; opacity: 0; }
	20%    { opacity: 1; }
	50%    { transform: scaleY(1); transform-origin: top; }
	50.01% { transform: scaleY(1); transform-origin: bottom; }
	80%    { opacity: 1; }
	100%   { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}

/* ==========================================================================
   ABOUT — Qui suis-je (WHITE section)
   ========================================================================== */
.aa-about {
	background: var(--aa-bg);
	padding: 5rem 0;
}

.aa-about__grid {
	display: grid;
	gap: 3rem;
	align-items: center;
}

.aa-about__image {
	overflow: hidden;
}
.aa-about__image img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	object-position: center 20%;
}

.aa-about__heading {
	font-family: var(--aa-sans);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.3;
	color: var(--aa-text);
	margin-bottom: 1.5rem;
}

.aa-about__text {
	font-size: 1rem;
	line-height: 1.8;
	color: var(--aa-text-soft);
	margin-bottom: 1.25rem;
	max-width: 540px;
}

.aa-about__text:last-of-type {
	margin-bottom: 2rem;
}

.aa-about__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--aa-text);
	text-decoration: none;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--aa-text);
	transition: gap var(--aa-transition), color var(--aa-transition), border-color var(--aa-transition);
}

.aa-about__link:hover {
	gap: 0.85rem;
	color: var(--aa-accent);
	border-color: var(--aa-accent);
}

/* ==========================================================================
   STEPS — À vos côtés à chaque étape (DARK section)
   ========================================================================== */
.aa-steps {
	position: relative;
	background: var(--aa-bg-dark);
	color: #fff;
	padding: 5rem 0;
	overflow: hidden;
}

.aa-steps__bg {
	display: none;
}

.aa-steps__title {
	font-family: var(--aa-sans);
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 700;
	font-style: normal;
	margin-bottom: 3rem;
	color: #fff;
}

.aa-steps__grid {
	display: grid;
	gap: 2.5rem;
}

.aa-step__number {
	display: block;
	font-family: var(--aa-sans);
	font-size: 3.5rem;
	font-weight: 700;
	opacity: 0.08;
	line-height: 1;
	margin-bottom: 0.75rem;
}

.aa-step__heading {
	font-family: var(--aa-sans);
	font-size: 1.2rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
	color: #fff;
}

.aa-step__text {
	font-size: 1.05rem;
	line-height: 1.7;
	opacity: 0.75;
}

/* ==========================================================================
   VALUES — Les valeurs qui me guident (WHITE section)
   ========================================================================== */
.aa-values {
	background: var(--aa-bg);
	padding: 5rem 0;
}

.aa-values__title {
	font-family: var(--aa-sans);
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	font-weight: 700;
	font-style: normal;
	color: var(--aa-text);
	text-align: center;
	margin-bottom: 1.5rem;
}

.aa-values__intro {
	font-size: 1rem;
	line-height: 1.8;
	color: var(--aa-text-soft);
	max-width: 750px;
	margin: 0 auto 3rem;
	text-align: center;
}

.aa-values__grid {
	display: grid;
	gap: 2rem;
}

.aa-value {
	position: relative;
	padding: 2rem;
	border: 1px solid var(--aa-border);
	border-radius: 0;
	transition: border-color var(--aa-transition);
}

.aa-value::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--aa-text);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--aa-transition);
}

.aa-value:hover {
	border-color: var(--aa-text);
}

.aa-value:hover::before {
	transform: scaleX(1);
}

.aa-value__number {
	font-family: var(--aa-sans);
	font-size: 3rem;
	font-weight: 700;
	font-style: normal;
	color: var(--aa-text);
	opacity: 0.1;
	line-height: 1;
	margin-bottom: 1rem;
	display: block;
}

.aa-value__heading {
	font-family: var(--aa-sans);
	font-size: 1.05rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 0.75rem;
	color: var(--aa-text);
}

.aa-value__text {
	font-size: 0.95rem;
	line-height: 1.7;
	color: var(--aa-text-soft);
}

/* ==========================================================================
   RESOURCES — Outils premium (DARK section)
   ========================================================================== */
.aa-resources {
	background: var(--aa-bg-dark);
	color: #fff;
	padding: 5rem 0;
}

.aa-resources .aa-eyebrow {
	color: rgba(255, 255, 255, 0.5);
}

.aa-resources__title {
	font-family: var(--aa-sans);
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	font-weight: 700;
	font-style: normal;
	color: #fff;
	text-align: center;
	margin-bottom: 1.5rem;
}

.aa-resources__intro {
	font-size: 1rem;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.7);
	max-width: 750px;
	margin: 0 auto 3rem;
	text-align: center;
}

.aa-resources__grid {
	display: grid;
	gap: 2rem;
}

.aa-resource {
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 0;
	overflow: hidden;
	transition: border-color var(--aa-transition), transform var(--aa-transition);
}

.aa-resource:hover {
	border-color: rgba(255, 255, 255, 0.3);
	transform: translateY(-4px);
}

.aa-resource__img-wrap {
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.aa-resource__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.aa-resource:hover .aa-resource__img {
	transform: scale(1.05);
}

.aa-resource__body {
	padding: 1.5rem;
}

.aa-resource__heading {
	font-family: var(--aa-sans);
	font-size: 1.05rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 0.75rem;
	color: #fff;
}

.aa-resource__text {
	font-size: 0.95rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.65);
}

/* ==========================================================================
   VIDEO (LIGHT ALT section)
   ========================================================================== */
.aa-video {
	background: var(--aa-bg-alt);
	padding: 5rem 0;
}

.aa-video__header {
	text-align: center;
	margin-bottom: 3rem;
}

.aa-video__heading {
	font-family: var(--aa-sans);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 700;
	font-style: normal;
	color: var(--aa-text);
}

.aa-video__player {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #000;
	cursor: pointer;
}

.aa-video__thumbnail {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--aa-transition), opacity var(--aa-transition);
}

.aa-video__player:hover .aa-video__thumbnail {
	transform: scale(1.03);
	opacity: 0.85;
}

.aa-video__play-btn {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 80px;
	height: 80px;
	background: rgba(255, 255, 255, 0.95);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--aa-text);
	transition: transform var(--aa-transition), box-shadow var(--aa-transition);
}

.aa-video__play-btn svg {
	margin-left: 4px;
}

.aa-video__player:hover .aa-video__play-btn {
	transform: translate(-50%, -50%) scale(1.1);
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.3);
}

.aa-video__player iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ==========================================================================
   TESTIMONIALS (WHITE section)
   ========================================================================== */
.aa-testimonials {
	background: var(--aa-bg);
	padding: 5rem 0;
}

.aa-testimonials__header {
	text-align: center;
	margin-bottom: 3rem;
}

.aa-testimonials__heading {
	font-family: var(--aa-sans);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 700;
	font-style: normal;
	color: var(--aa-text);
}

.aa-testimonials__widget {
	max-width: 900px;
	margin: 0 auto;
}

/* ==========================================================================
   FAQ (LIGHT ALT section)
   ========================================================================== */
.aa-faq {
	background: var(--aa-bg-alt);
	padding: 5rem 0;
}

.aa-faq__header {
	text-align: center;
	margin-bottom: 3rem;
}

.aa-faq__heading {
	font-family: var(--aa-sans);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 700;
	font-style: normal;
	color: var(--aa-text);
}

.aa-faq__list {
	max-width: 750px;
	margin: 0 auto;
}

.aa-faq__item {
	border-bottom: 1px solid var(--aa-border);
}

.aa-faq__item:first-child {
	border-top: 1px solid var(--aa-border);
}

.aa-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.5rem 0;
	font-family: var(--aa-sans);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--aa-text);
	cursor: pointer;
	list-style: none;
	transition: color var(--aa-transition);
}

.aa-faq__question::-webkit-details-marker {
	display: none;
}

.aa-faq__question::after {
	content: '';
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	margin-left: 1rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform var(--aa-transition);
}

.aa-faq__item[open] .aa-faq__question::after {
	transform: rotate(-135deg);
}

.aa-faq__item[open] .aa-faq__question {
	color: var(--aa-text);
}

.aa-faq__answer {
	padding: 0 0 1.5rem;
}

.aa-faq__answer p {
	font-size: 0.95rem;
	line-height: 1.8;
	color: var(--aa-text-soft);
	max-width: 650px;
}

/* ==========================================================================
   CTA (DARK section)
   ========================================================================== */
.aa-cta {
	background: var(--aa-bg-dark);
	color: #fff;
	padding: 5rem 0;
	text-align: center;
}

.aa-cta__inner {
	max-width: 650px;
	margin: 0 auto;
}

.aa-cta__heading {
	font-family: var(--aa-sans);
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.2;
	margin-bottom: 1rem;
	color: #fff;
}

.aa-cta__text {
	font-size: 1.05rem;
	opacity: 0.75;
	margin-bottom: 2.5rem;
	line-height: 1.7;
}

.aa-cta__btn {
	display: inline-block;
	background: #fff;
	color: var(--aa-text);
	padding: 1.1rem 2.5rem;
	font-family: var(--aa-sans);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background var(--aa-transition), transform var(--aa-transition), color var(--aa-transition);
}

.aa-cta__btn:hover {
	background: #e8e8e8;
	color: #1a1a1a;
	transform: translateY(-2px);
}

.aa-cta__contact {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2rem;
	margin-top: 2.5rem;
	padding-top: 2.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.aa-cta__contact-item {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	font-size: 0.95rem;
	transition: color var(--aa-transition);
}

.aa-cta__contact-item:hover {
	color: #fff;
}

.aa-cta__socials {
	margin-top: 2rem;
}

.aa-cta__socials .social-icons {
	justify-content: center;
}

.aa-cta__socials .social-icon {
	color: rgba(255, 255, 255, 0.5);
	transition: color var(--aa-transition);
}

.aa-cta__socials .social-icon:hover {
	color: #fff;
}

/* ==========================================================================
   RESPONSIVE — Tablet (≥ 768px)
   ========================================================================== */
@media (min-width: 768px) {

	.aa-hero__content {
		padding-bottom: 6rem;
	}

	.aa-about {
		padding: 6rem 0;
	}

	.aa-about__grid {
		grid-template-columns: 0.9fr 1.1fr;
		gap: 4rem;
	}

	.aa-about__image img {
		object-fit: contain;
		object-position: center center;
		transform: scaleX(-1);
	}

	.aa-steps {
		padding: 6rem 0;
	}

	.aa-steps__bg {
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 35%;
		height: 100%;
		z-index: 0;
	}

	.aa-steps__bg-img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center top;
		opacity: 0.6;
	}

	.aa-steps__bg::after {
		content: '';
		position: absolute;
		inset: 0;
		background: linear-gradient(to right, transparent 50%, var(--aa-bg-dark) 100%);
	}

	.aa-steps__content {
		position: relative;
		z-index: 1;
		margin-left: 38%;
		background: rgba(0, 0, 0, 0.95);
		padding: 3rem;
	}

	.aa-steps__grid {
		gap: 3rem;
	}

	.aa-values {
		padding: 6rem 0;
	}

	.aa-values__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.aa-resources {
		padding: 6rem 0;
	}

	.aa-resources__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.aa-video {
		padding: 6rem 0;
	}

	.aa-testimonials {
		padding: 6rem 0;
	}

	.aa-faq {
		padding: 6rem 0;
	}

	.aa-faq__question {
		font-size: 1.1rem;
		padding: 1.75rem 0;
	}

	.aa-cta {
		padding: 6rem 0;
	}
}

/* ==========================================================================
   RESPONSIVE — Desktop (≥ 1024px)
   ========================================================================== */
@media (min-width: 1024px) {

	.aa-hero__content {
		padding-bottom: 8rem;
	}

	.aa-about {
		padding: 7rem 0;
	}

	.aa-about__grid {
		gap: 5rem;
	}

	.aa-steps {
		padding: 7rem 0;
	}

	.aa-values {
		padding: 7rem 0;
	}

	.aa-values__grid {
		grid-template-columns: repeat(4, 1fr);
	}

	.aa-resources {
		padding: 7rem 0;
	}

	.aa-resources__grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.aa-video {
		padding: 7rem 0;
	}

	.aa-video__player {
		max-width: 960px;
		margin: 0 auto;
	}

	.aa-testimonials {
		padding: 7rem 0;
	}

	.aa-faq {
		padding: 7rem 0;
	}

	.aa-cta {
		padding: 7rem 0;
	}
}

/* ==========================================================================
   RESPONSIVE — Mobile adjustments (< 768px)
   ========================================================================== */
@media (max-width: 767px) {

	.aa-hero {
		min-height: 50vh;
	}

	.aa-hero__content {
		padding-bottom: 5rem;
	}

	.aa-hero__badge {
		font-size: 0.65rem;
	}

	.aa-hero__cta {
		padding: 0.9rem 1.75rem;
		font-size: 0.85rem;
	}

	.aa-hero__scroll {
		display: none;
	}

	.aa-about {
		padding: 3.5rem 0;
	}

	.aa-about__image {
		max-width: 320px;
		margin: 0 auto;
	}

	.aa-about__content {
		text-align: center;
	}

	.aa-about__text {
		margin-left: auto;
		margin-right: auto;
	}

	.aa-about__link {
		justify-content: center;
	}

	.aa-steps {
		padding: 3.5rem 0;
	}

	.aa-values {
		padding: 3.5rem 0;
	}

	.aa-values__intro {
		text-align: left;
	}

	.aa-resources {
		padding: 3.5rem 0;
	}

	.aa-video {
		padding: 3.5rem 0;
	}

	.aa-video__play-btn {
		width: 60px;
		height: 60px;
	}

	.aa-video__play-btn svg {
		width: 36px;
		height: 36px;
	}

	.aa-testimonials {
		padding: 3.5rem 0;
	}

	.aa-faq {
		padding: 3.5rem 0;
	}

	.aa-faq__question {
		font-size: 0.95rem;
		padding: 1.25rem 0;
	}

	.aa-cta {
		padding: 3.5rem 0;
	}

	.aa-cta__contact {
		flex-direction: column;
		align-items: center;
		gap: 1rem;
	}
}

/* ==========================================================================
   PAGE ABOUT — V6 redesign
   ========================================================================== */
/* Override page padding and site-main margin for About page */
.page-template-page-about .site-main {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.page-about {
	color: var(--aa-text);
	padding-block: 0 !important;
	padding-block-start: 0 !important;
}

/* Remove container constraint for about page */
.page-about > .container {
	max-width: none;
	padding: 0;
}

/* About Hero — override main.css max-width constraint */
.page-about__hero {
	background: var(--aa-bg-dark) !important;
	color: #fff !important;
	padding: 5rem 2rem 4rem !important;
	text-align: center;
	max-width: none !important;
	margin-inline: 0 !important;
	margin-block-end: 0 !important;
}

.page-about__hero h1 {
	font-family: var(--aa-sans);
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.2;
	margin-bottom: 1.5rem;
	color: #fff;
}

.page-about__hero p {
	font-family: var(--aa-sans);
	font-size: 1rem;
	line-height: 1.8;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	opacity: 0.85;
	color: #fff;
}

/* About sections — override main.css constraints */
.page-about__section {
	padding: 4rem 2rem !important;
	max-width: 900px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-block-end: 0 !important;
	border-bottom: 1px solid var(--aa-border);
}

.page-about__section:nth-child(odd) {
	background: transparent;
}

/* Remove border from form section (last section) */
.page-about__form-section {
	border-bottom: none !important;
}

.page-about__section h2 {
	font-family: var(--aa-sans);
	font-size: clamp(1.4rem, 3vw, 2rem);
	font-weight: 700;
	font-style: normal;
	margin-bottom: 1.25rem;
	color: var(--aa-text);
}

.page-about__section p {
	font-family: var(--aa-sans);
	font-size: 0.95rem;
	line-height: 1.8;
	color: var(--aa-text-soft);
	margin-bottom: 1rem;
}

.page-about__section ul {
	list-style: none;
	padding: 0;
	margin: 1.25rem 0;
}

.page-about__section ul li {
	font-family: var(--aa-sans);
	font-size: 0.95rem;
	line-height: 1.8;
	color: var(--aa-text-soft);
	padding-left: 1.5rem;
	position: relative;
	margin-bottom: 0.5rem;
}

.page-about__section ul li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.65em;
	width: 6px;
	height: 6px;
	background: var(--aa-text);
	border-radius: 50%;
}

/* About CTA — override main.css border-radius, margin-block */
.page-about__cta {
	background: var(--aa-bg-dark) !important;
	color: #fff !important;
	padding: 5rem 2rem !important;
	text-align: center;
	border-radius: 0 !important;
	margin-block: 0 !important;
	margin-top: -1px !important;
	max-width: none !important;
	position: relative;
	z-index: 1;
}

.page-about__cta h2 {
	font-family: var(--aa-sans);
	font-size: clamp(1.6rem, 3.5vw, 2.4rem);
	font-weight: 700;
	font-style: normal;
	margin-bottom: 1rem;
	color: #fff;
}

.page-about__cta p {
	font-family: var(--aa-sans);
	font-size: 1rem;
	opacity: 0.8;
	margin-bottom: 2rem;
	color: #fff;
}

/* About CTA — social icons centered */
.page-about__cta .social-icons {
	justify-content: center;
}

.page-about__cta .social-icon {
	color: rgba(255, 255, 255, 0.5);
	transition: color var(--aa-transition);
}

.page-about__cta .social-icon:hover {
	color: #fff;
}

/* About form section */
.page-about__form-section {
	padding: 4rem 2rem;
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}

.page-about__form-section h2 {
	font-family: var(--aa-sans);
	font-size: clamp(1.4rem, 3vw, 2rem);
	font-weight: 700;
	font-style: normal;
	margin-bottom: 2rem;
	color: var(--aa-text);
	text-align: center;
}

/* About — phone link */
.page-about .btn--outline-dark {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: transparent;
	color: var(--aa-text);
	border: 2px solid var(--aa-text);
	padding: 0.85rem 2rem;
	font-family: var(--aa-sans);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
	transition: all var(--aa-transition);
}

.page-about .btn--outline-dark:hover {
	background: var(--aa-text);
	color: #fff;
}

/* ==========================================================================
   PAGE CONTACT — V6 redesign
   ========================================================================== */
/* Override page padding and site-main margin for Contact page */
.page-template-page-contact .site-main {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.page-contact {
	color: var(--aa-text);
	padding-block: 0 !important;
	padding-block-start: 0 !important;
}

/* Remove container constraint for contact page */
.page-contact > .container {
	max-width: none;
	padding: 0;
}

/* Contact header — override main.css max-width, margin constraints */
.page-contact__header {
	background: var(--aa-bg-dark) !important;
	color: #fff !important;
	padding: 5rem 2rem 4rem !important;
	text-align: center;
	max-width: none !important;
	margin-inline: 0 !important;
	margin-block-end: 0 !important;
}

.page-contact__header h1 {
	font-family: var(--aa-sans);
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.2;
	margin-bottom: 1.25rem;
	color: #fff;
}

.page-contact__header p {
	font-family: var(--aa-sans);
	font-size: 1rem;
	line-height: 1.8;
	max-width: 680px;
	margin-left: auto;
	margin-right: auto;
	opacity: 0.85;
	color: #fff;
}

/* Contact grid */
.page-contact__grid {
	display: grid;
	gap: 4rem;
	padding: 4rem 2rem;
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}

@media (min-width: 768px) {
	.page-contact__grid {
		grid-template-columns: 1fr 1.2fr;
		gap: 5rem;
	}
}

/* Contact info column */
.contact-info h2 {
	font-family: var(--aa-sans);
	font-size: clamp(1.3rem, 2.5vw, 1.8rem);
	font-weight: 700;
	font-style: normal;
	margin-bottom: 2rem;
	color: var(--aa-text);
}

.contact-info__item {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	margin-bottom: 1.75rem;
}

.contact-info__icon {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	margin-top: 0.2rem;
	color: var(--aa-text);
	opacity: 0.6;
}

.contact-info__label {
	font-family: var(--aa-sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--aa-text-soft);
	margin-bottom: 0.15rem;
}

.contact-info__value {
	font-family: var(--aa-sans);
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--aa-text);
}

.contact-info__value a {
	color: var(--aa-text);
	text-decoration: none;
	border-bottom: 1px solid var(--aa-border);
	transition: border-color var(--aa-transition);
}

.contact-info__value a:hover {
	border-color: var(--aa-text);
}

/* Contact form column — override main.css background, border-radius */
.page-contact__form {
	background-color: transparent !important;
	padding: 0 !important;
	border-radius: 0 !important;
}

.page-contact__form h2 {
	font-family: var(--aa-sans);
	font-size: clamp(1.3rem, 2.5vw, 1.8rem);
	font-weight: 700;
	font-style: normal;
	margin-bottom: 2rem;
	color: var(--aa-text);
}

/* Contact CTA — override main.css border-radius, margin-block-start */
.page-contact__cta {
	background: var(--aa-bg-dark) !important;
	color: #fff !important;
	padding: 4rem 2rem !important;
	text-align: center;
	border-radius: 0 !important;
	margin-block-start: 0 !important;
	max-width: none !important;
}

.page-contact__cta .social-icons {
	justify-content: center;
}

.page-contact__cta .social-icon {
	color: rgba(255, 255, 255, 0.5);
	transition: color var(--aa-transition);
}

.page-contact__cta .social-icon:hover {
	color: #fff;
}

.page-contact__cta h2 {
	font-family: var(--aa-sans);
	font-size: clamp(1.6rem, 3.5vw, 2.4rem);
	font-weight: 700;
	font-style: normal;
	margin-bottom: 1rem;
	color: #fff;
}

.page-contact__cta p {
	font-family: var(--aa-sans);
	font-size: 1rem;
	opacity: 0.8;
	margin-bottom: 2rem;
	color: #fff;
}

/* Contact — Map embed */
.contact-info__map {
	margin-top: 2rem;
	overflow: hidden;
	border: 1px solid var(--aa-border);
}

.contact-info__map iframe {
	display: block;
	width: 100%;
}

/* Contact — Form intro */
.page-contact__form-intro {
	font-family: var(--aa-sans);
	font-size: 0.9rem;
	line-height: 1.7;
	color: var(--aa-text-soft);
	margin-bottom: 2rem;
}

/* ==========================================================================
   FOOTER — V6 white redesign
   ========================================================================== */
.site-footer {
	background-color: var(--aa-bg-alt) !important;
	color: var(--aa-text) !important;
	border-top: 1px solid var(--aa-border);
}

.site-footer__nav-list a {
	color: var(--aa-text) !important;
	opacity: 0.7;
}

.site-footer__nav-list a:hover {
	opacity: 1;
}

.site-footer__legal-links a {
	color: var(--aa-text-soft) !important;
}

.site-footer__copyright {
	color: var(--aa-text) !important;
	opacity: 0.7;
}

.site-footer .social-icon {
	color: var(--aa-text) !important;
	opacity: 0.5;
}

.site-footer .social-icon:hover {
	opacity: 1;
	color: var(--aa-text) !important;
}

.site-footer__credit {
	color: var(--aa-text-soft) !important;
}

.site-footer__credit span[aria-label="amour"] {
	color: #C8102E;
}

.site-footer__separator {
	color: var(--aa-text-soft) !important;
}

/* ==========================================================================
   BLOG ARCHIVE — V6 redesign
   ========================================================================== */
.aa-blog-header {
	background: var(--aa-bg-dark);
	color: #fff;
	padding: 5rem 2rem 4rem;
	text-align: center;
}

.aa-blog-header__title {
	font-family: var(--aa-sans);
	font-size: clamp(1.6rem, 3.5vw, 2.4rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.15;
	margin-bottom: 1.25rem;
	color: #fff;
}

.aa-blog-header__intro {
	font-family: var(--aa-sans);
	font-size: 1rem;
	line-height: 1.8;
	max-width: 680px;
	margin: 0 auto;
	opacity: 0.85;
}

.aa-blog-grid {
	display: grid;
	gap: 2.5rem;
	padding: 4rem 2rem;
	max-width: 1200px;
	margin: 0 auto;
}

@media (min-width: 768px) {
	.aa-blog-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.aa-blog-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.aa-blog-card {
	background: var(--aa-bg);
	border: 1px solid var(--aa-border);
	overflow: hidden;
	transition: transform var(--aa-transition), box-shadow var(--aa-transition);
}

.aa-blog-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
}

.aa-blog-card__thumbnail {
	display: block;
	overflow: hidden;
}

.aa-blog-card__thumbnail img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	display: block;
	transition: transform var(--aa-transition);
}

.aa-blog-card:hover .aa-blog-card__thumbnail img {
	transform: scale(1.03);
}

.aa-blog-card__content {
	padding: 1.5rem;
}

.aa-blog-card__date {
	display: block;
	font-family: var(--aa-sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--aa-text-soft);
	margin-bottom: 0.75rem;
}

.aa-blog-card__title {
	font-family: var(--aa-sans);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.35;
	margin-bottom: 0.75rem;
	color: var(--aa-text);
}

.aa-blog-card__title a {
	color: inherit;
	text-decoration: none;
}

.aa-blog-card__title a:hover {
	opacity: 0.7;
}

.aa-blog-card__excerpt {
	font-family: var(--aa-sans);
	font-size: 0.9rem;
	line-height: 1.65;
	color: var(--aa-text-soft);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-bottom: 1rem;
}

.aa-blog-card__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--aa-sans);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--aa-text);
	text-decoration: none;
	transition: opacity var(--aa-transition);
}

.aa-blog-card__link:hover {
	opacity: 0.6;
}

/* ==========================================================================
   SINGLE POST — V6 overrides
   ========================================================================== */
.single-post .post-header {
	text-align: center;
	max-width: 800px;
	margin: 0 auto 3rem;
	padding-top: 3rem;
}

.single-post .post-title {
	font-family: var(--aa-sans);
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 700;
	line-height: 1.25;
	color: var(--aa-text);
}

.single-post .post-meta {
	font-family: var(--aa-sans);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--aa-text-soft);
}

.single-post .post-featured-img img {
	width: 100%;
	max-height: 500px;
	object-fit: cover;
	display: block;
}

.single-post .post-content {
	max-width: 720px;
	margin: 0 auto;
	padding: 2rem 1.5rem;
	font-family: var(--aa-sans);
	font-size: 1rem;
	line-height: 1.85;
	color: var(--aa-text-soft);
}

.single-post .post-content h2,
.single-post .post-content h3 {
	font-family: var(--aa-sans);
	font-weight: 700;
	color: var(--aa-text);
	margin-top: 2.5rem;
}

.single-post .post-content p {
	margin-bottom: 1.5rem;
}

.single-post .post-content blockquote {
	border-left: 3px solid var(--aa-text);
	padding-left: 1.5rem;
	font-style: italic;
	color: var(--aa-text);
}

/* ==========================================================================
   PAGE ABOUT + CONTACT — Responsive adjustments
   ========================================================================== */
@media (max-width: 767px) {
	.page-about__hero {
		padding: 3.5rem 1.25rem 3rem !important;
	}

	.page-about__section {
		padding: 3rem 1.25rem !important;
	}

	.page-about__cta {
		padding: 3.5rem 1.25rem !important;
	}

	.page-about__form-section {
		padding: 3rem 1.25rem;
	}

	.page-contact__header {
		padding: 3.5rem 1.25rem 3rem !important;
	}

	.page-contact__grid {
		padding: 3rem 1.25rem;
	}

	.page-contact__cta {
		padding: 3rem 1.25rem !important;
	}
}

@media (min-width: 768px) {
	.page-about__hero {
		padding: 6rem 3rem 5rem !important;
	}

	.page-about__section {
		padding: 5rem 3rem !important;
	}

	.page-about__cta {
		padding: 6rem 3rem !important;
	}

	.page-about__form-section {
		padding: 5rem 3rem;
	}

	.page-contact__header {
		padding: 6rem 3rem 5rem !important;
	}

	.page-contact__grid {
		padding: 5rem 3rem;
	}

	.page-contact__cta {
		padding: 5rem 3rem !important;
	}
}

/* ==========================================================================
   PAGE LEGAL — Mentions légales, Politique de confidentialité
   ========================================================================== */
.page-template-page-legal .site-main {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.page-legal__header {
	background: var(--aa-bg-dark);
	color: #fff;
	padding: 5rem 2rem 4rem;
	text-align: center;
}

.page-legal__header h1 {
	font-family: var(--aa-sans);
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.2;
	margin-bottom: 1rem;
	color: #fff;
}

.page-legal__updated {
	font-family: var(--aa-sans);
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.6;
}

.page-legal__content {
	max-width: 800px;
	margin: 0 auto;
	padding: 4rem 2rem;
	font-family: var(--aa-sans);
	font-size: 0.95rem;
	line-height: 1.85;
	color: var(--aa-text-soft);
}

.page-legal__content h2 {
	font-family: var(--aa-sans);
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--aa-text);
	margin-top: 2.5rem;
	margin-bottom: 1rem;
}

.page-legal__content h3 {
	font-family: var(--aa-sans);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--aa-text);
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

.page-legal__content p {
	margin-bottom: 1rem;
}

.page-legal__content ul {
	padding-left: 1.5rem;
	margin-bottom: 1rem;
}

.page-legal__content ul li {
	margin-bottom: 0.5rem;
}

.page-legal__content a {
	color: var(--aa-text);
	border-bottom: 1px solid var(--aa-border);
	text-decoration: none;
	transition: border-color var(--aa-transition);
}

.page-legal__content a:hover {
	border-color: var(--aa-text);
}

@media (max-width: 767px) {
	.page-legal__header {
		padding: 3.5rem 1.25rem 3rem;
	}

	.page-legal__content {
		padding: 3rem 1.25rem;
	}
}

@media (min-width: 768px) {
	.page-legal__header {
		padding: 6rem 3rem 5rem;
	}

	.page-legal__content {
		padding: 5rem 3rem;
	}
}

/* ==========================================================================
   CONTACT FORM CTA — Phone/WhatsApp replacement
   ========================================================================== */
.page-contact__form-cta {
	text-align: center;
	padding: 2rem 0;
}

.page-contact__form-cta p {
	font-family: var(--aa-sans);
	font-size: 1rem;
	color: var(--aa-text-soft);
	margin-bottom: 1.5rem;
}

.page-contact__form-cta .btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.85rem 2rem;
	font-family: var(--aa-sans);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
	transition: all var(--aa-transition);
	margin: 0.5rem;
}

.page-contact__form-cta .btn--outline {
	background: transparent;
	color: var(--aa-text);
	border: 2px solid var(--aa-text);
}

.page-contact__form-cta .btn--outline:hover {
	background: var(--aa-text);
	color: #fff;
}

.page-contact__form-cta .btn--whatsapp {
	background: #25D366;
	color: #fff;
	border: 2px solid #25D366;
}

.page-contact__form-cta .btn--whatsapp:hover {
	background: #1da851;
	border-color: #1da851;
}

/* ==========================================================================
   ANIMATIONS — Scroll reveal (per-item stagger)
   ========================================================================== */

/* Base reveal — applied to individual items */
.aa-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

.aa-reveal.aa-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Stagger delays for items within a grid */
.aa-reveal-delay-1 { transition-delay: 0.1s; }
.aa-reveal-delay-2 { transition-delay: 0.2s; }
.aa-reveal-delay-3 { transition-delay: 0.3s; }
.aa-reveal-delay-4 { transition-delay: 0.35s; }

/* ---------- Accessibility: focus-visible ---------- */
.aa-faq__question:focus-visible {
	outline: 2px solid var(--aa-text);
	outline-offset: 2px;
}

.aa-video__player:focus-visible {
	outline: 2px solid var(--aa-text);
	outline-offset: 2px;
}

[tabindex]:focus-visible {
	outline: 2px solid var(--aa-text);
	outline-offset: 2px;
}

/* ==========================================================================
   HEADER — WhatsApp button
   ========================================================================== */
.header-whatsapp-btn {
	display: none;
	font-size: 0.75rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 0.4rem 0.9rem;
	gap: 0.4rem;
	margin-left: 0.5rem;
	background: #25D366 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 0 !important;
}

.header-whatsapp-btn:hover {
	background: #1da851 !important;
	color: #fff !important;
}

@media (min-width: 768px) {
	.header-whatsapp-btn {
		display: inline-flex;
		align-items: center;
	}
}

/* ==========================================================================
   WhatsApp floating button — mobile only
   ========================================================================== */
.whatsapp-float {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 999;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #25D366;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 12px rgba(0,0,0,0.2);
	transition: transform 0.3s ease;
	text-decoration: none;
}

.whatsapp-float:hover {
	transform: scale(1.1);
	color: #fff;
}

.whatsapp-float svg {
	width: 28px;
	height: 28px;
}

@media (min-width: 768px) {
	.whatsapp-float {
		display: none;
	}
}

/* ==========================================================================
   CHATBOT WIDGET
   ========================================================================== */

#rd-chat {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 1000;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

.rd-chat__toggle {
	width: 56px;
	height: 56px;
	background: var(--aa-text);
	color: #fff;
	border: none;
	border-radius: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
	transition: background 0.2s ease;
}

.rd-chat__toggle:hover {
	background: #555;
}

.rd-chat__toggle--open {
	background: #555;
}

.rd-chat__panel {
	position: absolute;
	bottom: 68px;
	right: 0;
	width: 360px;
	max-height: 500px;
	background: #fff;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.rd-chat__header {
	background: var(--aa-text);
	color: #fff;
	padding: 14px 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.rd-chat__header-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.rd-chat__header-info strong {
	font-size: 0.875rem;
	font-weight: 600;
}

.rd-chat__header-info span {
	font-size: 0.7rem;
	opacity: 0.7;
}

.rd-chat__close {
	background: none;
	border: none;
	color: #fff;
	font-size: 1.5rem;
	cursor: pointer;
	line-height: 1;
	opacity: 0.7;
	transition: opacity 0.2s;
}

.rd-chat__close:hover {
	opacity: 1;
}

.rd-chat__messages {
	flex: 1;
	overflow-y: auto;
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-height: 200px;
	max-height: 340px;
	background: #f9f9f9;
}

.rd-chat__msg p {
	margin: 0;
	padding: 10px 14px;
	font-size: 0.85rem;
	line-height: 1.5;
	max-width: 85%;
}

.rd-chat__msg--bot p {
	background: #fff;
	color: var(--aa-text);
	border: 1px solid #e5e5e5;
	align-self: flex-start;
}

.rd-chat__msg--user p {
	background: var(--aa-text);
	color: #fff;
	margin-left: auto;
}

.rd-chat__msg--user {
	display: flex;
	justify-content: flex-end;
}

.rd-chat__msg--loading p {
	background: #fff;
	border: 1px solid #e5e5e5;
}

.rd-chat__dots span {
	animation: rd-dot-blink 1.2s infinite;
	font-size: 1.2rem;
	letter-spacing: 2px;
}

.rd-chat__dots span:nth-child(2) { animation-delay: 0.2s; }
.rd-chat__dots span:nth-child(3) { animation-delay: 0.4s; }

@keyframes rd-dot-blink {
	0%, 20% { opacity: 0.2; }
	50% { opacity: 1; }
	100% { opacity: 0.2; }
}

.rd-chat__input {
	display: flex;
	border-top: 1px solid #e5e5e5;
	background: #fff;
}

.rd-chat__input input {
	flex: 1;
	border: none;
	padding: 12px 14px;
	font-size: 0.85rem;
	font-family: inherit;
	outline: none;
	background: transparent;
}

.rd-chat__input button {
	background: none;
	border: none;
	padding: 12px 14px;
	cursor: pointer;
	color: var(--aa-text);
	transition: color 0.2s;
}

.rd-chat__input button:hover {
	color: #555;
}

.rd-chat__whatsapp {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 8px;
	font-size: 0.75rem;
	color: #25D366;
	text-decoration: none;
	border-top: 1px solid #e5e5e5;
	background: #fff;
	transition: background 0.2s;
}

.rd-chat__whatsapp:hover {
	background: #f0fdf4;
	color: #1da851;
}

/* Hide old WhatsApp buttons — replaced by chatbot */
.header-whatsapp-btn {
	display: none !important;
}

.whatsapp-float {
	display: none !important;
}

/* Mobile: full width panel */
@media (max-width: 480px) {
	#rd-chat {
		bottom: 0;
		right: 0;
		left: 0;
	}

	.rd-chat__toggle {
		position: fixed;
		bottom: 20px;
		right: 20px;
	}

	.rd-chat__panel {
		position: fixed;
		bottom: 0;
		right: 0;
		left: 0;
		width: 100%;
		max-height: 85vh;
		border-radius: 0;
	}
}

/* ==========================================================================
   PAGE ABOUT — Images
   ========================================================================== */

/* Portrait */
.page-about__portrait {
	text-align: center;
	margin: 3rem 0 4rem;
}

.page-about__portrait-img {
	max-width: 400px;
	width: 100%;
	height: auto;
	border-radius: 0;
}

/* Landscape break */
.page-about__image-break {
	margin: 3rem -1rem 4rem;
	overflow: hidden;
}

.page-about__landscape-img {
	width: 100%;
	height: 300px;
	object-fit: cover;
	object-position: center 40%;
	filter: grayscale(100%);
	transition: filter 0.5s ease;
}
.page-about__landscape-img:hover {
	filter: grayscale(0%);
}

/* CTA with background image */
.page-about__cta--bg {
	background-size: cover;
	background-position: center;
	position: relative;
	padding: 4rem 2rem;
}

.page-about__cta--bg::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(26,26,26,0.85);
}

.page-about__cta--bg > * {
	position: relative;
	z-index: 1;
}

@media (min-width: 768px) {
	.page-about__portrait-img {
		max-width: 500px;
	}

	.page-about__landscape-img {
		height: 400px;
	}

	.page-about__image-break {
		margin-left: -2rem;
		margin-right: -2rem;
	}
}

/* ==========================================================================
   PAGE CONTACT — Aerial image
   ========================================================================== */
.page-contact__hero-image {
	margin: 2rem 0 3rem;
	overflow: hidden;
}

.page-contact__hero-image img {
	width: 100%;
	height: 250px;
	object-fit: cover;
	object-position: center 60%;
	filter: grayscale(100%);
	transition: filter 0.5s ease;
}
.page-contact__hero-image img:hover {
	filter: grayscale(0%);
}

@media (min-width: 768px) {
	.page-contact__hero-image img {
		height: 350px;
	}
}

@media (min-width: 1024px) {
	.page-contact__hero-image img {
		height: 400px;
	}
}

/* Mobile: no hover, show color directly for grayscale-to-color images */
@media (hover: none) {
	.page-about__landscape-img,
	.page-contact__hero-image img {
		filter: grayscale(0%);
	}
}

/* ==========================================================================
   PAGE PROPERTIES
   ========================================================================== */

/* Hero */
.page-properties__hero {
	background: var(--aa-bg-dark);
	color: #fff;
	padding: 5rem 0 4rem;
	text-align: center;
}

.page-properties__hero h1 {
	font-family: var(--aa-sans);
	font-weight: 700;
	font-size: clamp(1.75rem, 4vw, 2.8rem);
	line-height: 1.15;
	color: #fff;
	margin-bottom: 1.5rem;
	letter-spacing: -0.02em;
}

.page-properties__hero p {
	color: rgba(255,255,255,0.75);
	max-width: 680px;
	margin: 0 auto;
	font-size: 1.05rem;
	line-height: 1.7;
}

/* Sections */
.page-properties__section {
	max-width: 800px;
	margin: 0 auto;
	padding: 3rem 0;
}

.page-properties__section h2 {
	font-family: var(--aa-sans);
	font-weight: 700;
	font-size: clamp(1.3rem, 3vw, 1.75rem);
	color: var(--aa-text);
	margin-bottom: 1.25rem;
	letter-spacing: -0.01em;
}

.page-properties__section p {
	color: var(--aa-text-soft);
	line-height: 1.75;
	margin-bottom: 1rem;
}

.page-properties__section ul {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0;
}

.page-properties__section ul li {
	position: relative;
	padding-left: 1.5rem;
	margin-bottom: 0.75rem;
	color: var(--aa-text-soft);
	line-height: 1.6;
}

.page-properties__section ul li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 6px;
	height: 6px;
	background: var(--aa-accent);
}

/* Alt bg section */
.page-properties__section--alt {
	background: var(--aa-bg-alt);
	max-width: none;
	padding: 3rem 2rem;
	margin: 0 -1rem;
}

.page-properties__section--alt h2,
.page-properties__section--alt p,
.page-properties__section--alt ul {
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}

/* CTA Catalog */
.page-properties__cta-catalog {
	text-align: center;
	padding: 4rem 0;
	border-top: 1px solid var(--aa-border);
	border-bottom: 1px solid var(--aa-border);
}

.page-properties__cta-catalog h2 {
	font-family: var(--aa-sans);
	font-weight: 700;
	font-size: clamp(1.3rem, 3vw, 1.75rem);
	color: var(--aa-text);
	margin-bottom: 1rem;
}

.page-properties__cta-catalog p {
	color: var(--aa-text-soft);
	max-width: 600px;
	margin: 0 auto 2rem;
	line-height: 1.7;
}

/* CTA buttons container */
.page-properties__cta-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
}

.page-properties__cta-buttons .btn svg {
	margin-left: 0.4rem;
}

/* CTA Final */
.page-properties__cta-final {
	text-align: center;
	padding: 4rem 0 5rem;
	background: var(--aa-bg-dark);
	color: #fff;
	margin: 0 -1rem;
	padding-left: 2rem;
	padding-right: 2rem;
}

.page-properties__cta-final h2 {
	font-family: var(--aa-sans);
	font-weight: 700;
	font-size: clamp(1.3rem, 3vw, 1.75rem);
	color: #fff;
	margin-bottom: 1rem;
}

.page-properties__cta-final p {
	color: rgba(255,255,255,0.75);
	max-width: 600px;
	margin: 0 auto 2rem;
	line-height: 1.7;
}

.page-properties__cta-final .btn--outline {
	color: #fff !important;
	border-color: rgba(255,255,255,0.4) !important;
}

.page-properties__cta-final .btn--outline:hover {
	background: #fff !important;
	color: var(--aa-text) !important;
}

@media (min-width: 768px) {
	.page-properties__hero {
		padding: 7rem 0 5rem;
	}

	.page-properties__section {
		padding: 4rem 0;
	}

	.page-properties__section--alt {
		padding: 4rem 3rem;
		margin: 0 -2rem;
	}

	.page-properties__cta-final {
		margin: 0 -2rem;
		padding: 5rem 3rem;
	}
}

@media (min-width: 1024px) {
	.page-properties__section--alt {
		margin: 0 calc(-50vw + 50%);
		padding: 4rem calc(50vw - 50%);
	}

	.page-properties__cta-final {
		margin: 0 calc(-50vw + 50%);
		padding: 5rem calc(50vw - 50%);
	}
}

/* ==========================================================================
   Landing Pages SEA — Google Ads
   ========================================================================== */

/* --- Landing Hero --- */
.landing-hero {
	padding: 4rem 0 3rem;
	text-align: center;
	background: var(--aa-bg-alt);
}

.landing-hero .aa-eyebrow {
	display: inline-block;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aa-text-soft);
	margin-bottom: 1rem;
}

.landing-hero h1 {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 700;
	line-height: 1.2;
	color: var(--aa-text);
	max-width: 720px;
	margin: 0 auto 1.25rem;
}

.landing-hero__sub {
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--aa-text-soft);
	max-width: 600px;
	margin: 0 auto 2rem;
}

.landing-hero .btn--primary {
	display: inline-block;
	padding: 0.875rem 2rem;
	background: #111;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	border-radius: 0;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.85rem;
	transition: background 0.3s ease;
}

.landing-hero .btn--primary:hover {
	background: #333;
}

/* --- Landing Arguments --- */
.landing-arguments {
	padding: 4rem 0;
}

.landing-arguments h2 {
	text-align: center;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	margin-bottom: 2.5rem;
}

.landing-arguments__grid {
	display: grid;
	gap: 2rem;
}

.landing-argument {
	text-align: center;
	padding: 2rem 1.5rem;
	background: var(--aa-bg-alt);
}

.landing-argument__icon {
	width: 40px;
	height: 40px;
	color: var(--aa-accent);
	margin-bottom: 1rem;
}

.landing-argument h3 {
	font-size: 1.125rem;
	font-weight: 600;
	margin-bottom: 0.75rem;
}

.landing-argument p {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--aa-text-soft);
}

@media (min-width: 768px) {
	.landing-arguments__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* --- Landing Process (Steps) --- */
.landing-process {
	padding: 4rem 0;
	background: var(--aa-bg-alt);
}

.landing-process h2 {
	text-align: center;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	margin-bottom: 2.5rem;
}

.landing-process__steps {
	display: grid;
	gap: 1.5rem;
	max-width: 800px;
	margin: 0 auto;
}

.landing-step {
	display: flex;
	gap: 1.25rem;
	align-items: flex-start;
	padding: 1.5rem;
	background: var(--aa-bg);
}

.landing-step__num {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: var(--aa-accent);
	color: #fff;
	font-weight: 700;
	font-size: 0.9375rem;
}

.landing-step h3 {
	font-size: 1.0625rem;
	font-weight: 600;
	margin-bottom: 0.375rem;
}

.landing-step p {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--aa-text-soft);
}

/* --- Landing Form --- */
.landing-form {
	padding: 4rem 0;
}

.landing-form h2 {
	text-align: center;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	margin-bottom: 0.75rem;
}

.landing-form > .container > p {
	text-align: center;
	color: var(--aa-text-soft);
	margin-bottom: 2rem;
}

.landing-form .wpforms-container {
	max-width: 560px;
	margin: 0 auto;
}

/* --- Landing Trust --- */
.landing-trust {
	padding: 3rem 0;
	background: var(--aa-bg-alt);
	border-top: 1px solid var(--aa-border);
	border-bottom: 1px solid var(--aa-border);
}

.landing-trust__grid {
	display: flex;
	justify-content: center;
	gap: 3rem;
	flex-wrap: wrap;
	text-align: center;
}

.landing-trust__item strong {
	display: block;
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--aa-text);
}

.landing-trust__item span {
	font-size: 0.875rem;
	color: var(--aa-text-soft);
}

/* --- Landing CTA --- */
.landing-cta {
	padding: 4rem 0;
	text-align: center;
	background: var(--aa-bg-dark);
	color: #fff;
}

.landing-cta h2 {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	color: #fff !important;
	margin-bottom: 0.75rem;
}

.landing-cta p {
	color: rgba(255, 255, 255, 0.85) !important;
	margin-bottom: 2rem;
}

.landing-cta__buttons {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
}

.landing-cta .btn--outline {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 0;
	color: #fff;
	padding: 0.75rem 1.5rem;
	font-weight: 600;
	font-size: 0.85rem;
	text-decoration: none;
	transition: border-color 0.3s ease, background 0.3s ease;
}

.landing-cta .btn--outline:hover {
	border-color: #fff;
	background: rgba(255, 255, 255, 0.1);
}

.landing-cta .btn--whatsapp {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: #25D366;
	color: #fff;
	border: 1px solid #25D366;
	border-radius: 0;
	padding: 0.75rem 1.5rem;
	font-weight: 600;
	font-size: 0.85rem;
	text-decoration: none;
	transition: background 0.3s ease;
}

.landing-cta .btn--whatsapp:hover {
	background: #1da851;
}

/* Landing V10 overrides */
.landing-hero { background: #f6f6f6; }
.landing-hero h1 { color: #111; }
.landing-hero .aa-eyebrow { color: #888; }
.landing-hero__sub { color: #333; }
.landing-arguments h2 { color: #111; }
.landing-argument { background: #f6f6f6; }
.landing-argument h3 { color: #111; }
.landing-argument p { color: #333; }
.landing-argument__icon { color: #111; }
.landing-process { background: #f6f6f6; }
.landing-process h2 { color: #111; }
.landing-step { background: #fff; }
.landing-step__num { background: #111; }
.landing-step h3 { color: #111; }
.landing-step p { color: #333; }
.landing-form h2 { color: #111; }
.landing-form > .container > p { color: #333; }
.landing-trust { background: #f6f6f6; border-color: #e0e0e0; }
.landing-trust__item strong { color: #111; }
.landing-trust__item span { color: #333; }
.landing-cta { background: #111; }

/* Zero border-radius sur tous les boutons landing */
.page-landing .btn,
.page-landing a[class*="btn"],
.page-landing button,
.page-landing input[type="submit"] {
	border-radius: 0 !important;
}

/* Landing WPForms V10 */
.landing-form .wpforms-submit,
.landing-form .wpforms-form button[type="submit"] {
	background: #111 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0.875rem 2rem !important;
	font-weight: 600 !important;
	font-size: 0.85rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
}
.landing-form .wpforms-submit:hover,
.landing-form .wpforms-form button[type="submit"]:hover {
	background: #333 !important;
}

/* --- Landing Hero CTAs --- */
.landing-hero__ctas {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
}

.landing-hero .btn--ghost {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.875rem 2rem;
	border: 1px solid #111;
	color: #111;
	font-weight: 600;
	font-size: 0.85rem;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	transition: background 0.3s ease, color 0.3s ease;
}

.landing-hero .btn--ghost:hover {
	background: #111;
	color: #fff;
}

/* --- Landing Social Proof --- */
.landing-social-proof {
	padding: 3rem 0;
	text-align: center;
}

.landing-testimonial {
	max-width: 640px;
	margin: 0 auto 1.5rem;
	padding: 0;
	border: none;
}

.landing-testimonial p {
	font-size: 1.0625rem;
	line-height: 1.7;
	font-style: italic;
	color: #333;
}

.landing-testimonial cite {
	display: block;
	margin-top: 0.75rem;
	font-size: 0.875rem;
	font-style: normal;
	color: #888;
	font-weight: 600;
}

.landing-social-proof__badge {
	display: inline-block;
	padding: 0.5rem 1.25rem;
	background: #f6f6f6;
	font-size: 0.8125rem;
	color: #333;
}

.landing-social-proof__badge strong {
	color: #111;
}

/* --- Landing FAQ --- */
.landing-faq {
	padding: 4rem 0;
	background: #f6f6f6;
}

.landing-faq h2 {
	text-align: center;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	color: #111;
	margin-bottom: 2.5rem;
}

.landing-faq__list {
	max-width: 700px;
	margin: 0 auto;
}

.landing-faq__item {
	border-bottom: 1px solid #e0e0e0;
}

.landing-faq__item summary {
	padding: 1.25rem 0;
	font-size: 1rem;
	font-weight: 600;
	color: #111;
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.landing-faq__item summary::after {
	content: '+';
	font-size: 1.25rem;
	font-weight: 400;
	color: #888;
	transition: transform 0.2s ease;
}

.landing-faq__item[open] summary::after {
	content: '\2212';
}

.landing-faq__item summary::-webkit-details-marker {
	display: none;
}

.landing-faq__item p {
	padding: 0 0 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: #333;
}

/* --- Landing Argument hover --- */
.landing-argument {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.landing-argument:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

/* --- Landing Step hover --- */
.landing-step {
	transition: transform 0.2s ease;
}

.landing-step:hover {
	transform: translateX(4px);
}

/* Landing responsive */
@media (max-width: 767px) {
	.landing-hero { padding: 2.5rem 0 2rem; }
	.landing-arguments { padding: 3rem 0; }
	.landing-process { padding: 3rem 0; }
	.landing-form { padding: 3rem 0; }
	.landing-cta { padding: 3rem 0; }
	.landing-faq { padding: 3rem 0; }
	.landing-social-proof { padding: 2rem 0; }
	.landing-hero__ctas { flex-direction: column; align-items: center; }
}

/* ========== Single Post ========== */

.sp-progress { position: fixed; top: 0; left: 0; width: 0; height: 3px; background: #111; z-index: 9999; transition: width 0.1s linear; }

.sp-hero { position: relative; background: #111; overflow: hidden; }
.sp-hero__img { width: 100%; height: 50vh; min-height: 350px; max-height: 500px; object-fit: cover; display: block; opacity: 0.5; }
.sp-hero--no-img { padding: 4rem 0 3rem; }
.sp-hero__overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 2rem 1.5rem 3rem; }
.sp-hero__overlay .container { max-width: 1200px; margin: 0 auto; width: 100%; }
.sp-hero__category { display: inline-block; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #111; background: #fff; padding: 0.3rem 0.75rem; margin-bottom: 1rem; }
.sp-hero__title { font-size: clamp(1.6rem, 5vw, 2.5rem); font-weight: 700; color: #fff; line-height: 1.2; margin: 0 0 1.25rem; }
.sp-hero__meta { display: flex; gap: 1.5rem; flex-wrap: wrap; font-size: 0.8rem; color: rgba(255,255,255,0.7); }
.sp-hero__meta svg { margin-right: 0.3rem; vertical-align: -2px; }

.sp-breadcrumb { font-size: 0.8rem; color: #888; max-width: 1200px; margin: 2rem auto 0; padding: 0 1.5rem; }
.sp-breadcrumb a { color: #333; text-decoration: none; }
.sp-breadcrumb a:hover { text-decoration: underline; }
.sp-breadcrumb__sep { color: #ccc; margin: 0 0.5rem; }
.sp-breadcrumb__current { color: #111; }

.sp-article { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }

.single-post__content p { color: #333; line-height: 1.85; margin-bottom: 1.5rem; font-size: 1.08rem; }
.single-post__content h2 { color: #111; font-size: 1.5rem; margin: 3rem 0 1rem; font-weight: 700; padding-top: 1rem; border-top: 1px solid #e0e0e0; }
.single-post__content h2:first-of-type { border-top: none; padding-top: 0; }
.single-post__content h3 { color: #111; font-size: 1.25rem; margin: 2rem 0 0.75rem; font-weight: 600; }
.single-post__content a { color: #111; text-decoration: underline; text-underline-offset: 3px; }
.single-post__content a:hover { color: #333; }
.single-post__content blockquote { border-left: 3px solid #111; padding: 1.25rem 1.5rem; margin: 2rem 0; font-style: italic; color: #444; background: #f9f9f9; }
.single-post__content img { max-width: 100%; height: auto; display: block; margin: 2rem 0; }
.single-post__content ul,
.single-post__content ol { padding-left: 1.5rem; margin-bottom: 1.5rem; }
.single-post__content li { color: #333; line-height: 1.85; margin-bottom: 0.5rem; font-size: 1.05rem; }
.single-post__content strong { color: #111; }

.sp-takeaway { background: #f6f6f6; border-left: 3px solid #111; padding: 1.5rem 2rem; margin: 2.5rem 0; }
.sp-takeaway__title { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #111; margin: 0 0 0.75rem; }
.sp-takeaway p { color: #333; font-size: 0.95rem; line-height: 1.7; margin: 0; }

.sp-author { display: flex; gap: 1.5rem; align-items: center; border-top: 1px solid #e0e0e0; border-bottom: 1px solid #e0e0e0; padding: 2rem 0; margin-top: 3rem; }
.sp-author__portrait { width: 80px; height: 80px; object-fit: cover; flex-shrink: 0; }
.sp-author__info { flex: 1; }
.sp-author__label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: #888; margin: 0 0 0.3rem; }
.sp-author__name { font-size: 1.1rem; font-weight: 700; color: #111; margin: 0 0 0.4rem; }
.sp-author__bio { font-size: 0.9rem; color: #333; line-height: 1.6; margin: 0; }

.sp-share { padding-top: 2rem; margin-top: 2rem; }
.sp-share__label { font-size: 0.85rem; font-weight: 600; color: #111; margin-bottom: 1rem; }
.sp-share__buttons { display: flex; gap: 1rem; flex-wrap: wrap; }
.sp-share__btn { display: inline-flex; align-items: center; gap: 0.5rem; border: 1px solid #d6d6d6; padding: 0.5rem 1rem; color: #111; font-size: 0.8rem; text-decoration: none; background: none; cursor: pointer; font-family: inherit; transition: background 0.2s; }
.sp-share__btn:hover { background: #f6f6f6; }
.sp-share__btn--whatsapp { border-color: #25D366; color: #25D366; }
.sp-share__btn--whatsapp:hover { background: rgba(37,211,102,0.05); }

.sp-related { border-top: 1px solid #e0e0e0; padding: 3rem 0 0; margin-top: 2rem; }
.sp-related__title { font-size: 1.4rem; font-weight: 700; color: #111; margin-bottom: 2rem; }
.sp-related__grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 600px) { .sp-related__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .sp-related__grid { grid-template-columns: repeat(3, 1fr); } }
.sp-related .ab-card { border: 1px solid #e0e0e0; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; text-decoration: none; color: inherit; display: block; }
.sp-related .ab-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,0.08); }
.sp-related .ab-card__thumb img { width: 100%; height: 220px; object-fit: cover; display: block; }
.sp-related .ab-card__body { padding: 1.25rem; }
.sp-related .ab-card__date { display: block; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: #888; font-weight: 600; margin-bottom: 0.5rem; }
.sp-related .ab-card__title { font-size: 1.05rem; font-weight: 600; color: #111; line-height: 1.4; margin: 0.5rem 0; }
.sp-related .ab-card__title a { color: #111; text-decoration: none; }
.sp-related .ab-card__title a:hover { text-decoration: underline; }

.sp-cta { background: #111; padding: 4rem 1.5rem; text-align: center; }
@media (min-width: 768px) { .sp-cta { padding: 5rem 2rem; } }
.sp-cta__inner { max-width: 640px; margin: 0 auto; }
.sp-cta__heading { font-size: 1.8rem; font-weight: 700; color: #fff; margin: 0 0 1rem; }
.sp-cta__text { font-size: 1rem; line-height: 1.7; color: rgba(255,255,255,0.75); margin: 0 0 2rem; }
.sp-cta__btn { display: inline-block; padding: 0.875rem 2rem; background: #fff; color: #111; font-weight: 600; text-decoration: none; text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.85rem; transition: background 0.3s ease; }
.sp-cta__btn:hover { background: #e0e0e0; }

/* Inline CTA box in articles */
.sp-inline-cta { background: #f6f6f6; border: 1px solid #e0e0e0; padding: 2rem; margin: 2.5rem 0; text-align: center; }
.sp-inline-cta__heading { font-size: 1.15rem; font-weight: 700; color: #111; margin: 0 0 0.5rem; }
.sp-inline-cta__text { font-size: 0.9375rem; color: #333; margin: 0 0 1.25rem; line-height: 1.6; }
.sp-inline-cta__btn { display: inline-block; padding: 0.75rem 1.75rem; background: #111; color: #fff; font-weight: 600; font-size: 0.85rem; text-decoration: none; text-transform: uppercase; letter-spacing: 0.05em; transition: background 0.3s ease; }
.sp-inline-cta__btn:hover { background: #333; }

@media (max-width: 600px) {
	.sp-hero__img { height: 40vh; min-height: 280px; }
	.sp-hero__overlay { padding: 1.5rem 1rem 2rem; }
	.sp-author { flex-direction: column; text-align: center; }
	.sp-author__portrait { width: 64px; height: 64px; }
}

/* ---------- Accessibility: prefers-reduced-motion ---------- */
@media (prefers-reduced-motion: reduce) {
	.aa-hero__badge,
	.aa-hero__title,
	.aa-hero__subtitle,
	.aa-hero__cta {
		animation: none;
		opacity: 1;
	}

	.aa-reveal {
		transition: none;
		opacity: 1;
		transform: none;
	}
}

/* ==========================================================================
   Page Properties (.pp-*)
   ========================================================================== */

.pp-container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }

/* Hero dark (compact) */
.pp-hero { background: #111; padding: 3.5rem 0 3rem; text-align: center; }
.pp-hero__eyebrow { display: block; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,0.6); margin-bottom: 0.75rem; }
.pp-hero h1 { color: #fff; font-size: clamp(1.8rem, 4vw, 2.4rem); font-weight: 700; margin: 0 0 1rem; }
.pp-hero p { color: rgba(255,255,255,0.75); max-width: 640px; margin: 0 auto; line-height: 1.7; font-size: 1.05rem; }

/* Biens list */
.pp-biens { padding: 5rem 0; background: #fff; }
.pp-biens__eyebrow { display: block; text-align: center; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: #888; margin-bottom: 0.75rem; }
.pp-biens h2 { text-align: center; color: #111; font-size: 1.8rem; font-weight: 700; margin: 0 0 2.5rem; }
.pp-biens__list { display: flex; flex-direction: column; gap: 2rem; margin-bottom: 2.5rem; }
.pp-bien { display: grid; grid-template-columns: 1fr; gap: 0; border: 1px solid #e0e0e0; overflow: hidden; text-decoration: none; color: inherit; transition: box-shadow 0.3s ease; }
.pp-bien:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.08); }
@media (min-width: 768px) { .pp-bien { grid-template-columns: 5fr 7fr; } }
.pp-bien__media { position: relative; overflow: hidden; }
.pp-bien__media img, .pp-bien__media video { width: 100%; height: 100%; min-height: 220px; object-fit: cover; display: block; }
.pp-bien__badge { position: absolute; top: 1rem; left: 1rem; padding: 0.3rem 0.75rem; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.pp-bien__badge--vendu { background: #111; color: #fff; }
.pp-bien__badge--vente { background: #fff; color: #111; border: 1px solid #111; }
.pp-bien__badge--offmarket { background: #888; color: #fff; }
.pp-bien__body { padding: 1.5rem 2rem; display: flex; flex-direction: column; justify-content: center; }
.pp-bien__location { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: #888; margin: 0 0 0.5rem; }
.pp-bien__title { font-size: 1.2rem; font-weight: 700; color: #111; margin: 0 0 0.75rem; line-height: 1.3; }
.pp-bien__details { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.pp-bien__detail { font-size: 0.85rem; color: #333; display: flex; align-items: center; gap: 0.4rem; }
.pp-bien__detail svg { color: #888; flex-shrink: 0; }
.pp-bien__desc { font-size: 0.9rem; color: #333; line-height: 1.6; margin: 0; }
.pp-bien__price { font-size: 1.1rem; font-weight: 700; color: #111; margin-top: 0.75rem; }
.pp-biens__more { text-align: center; }
.pp-biens__more a { color: #111; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; font-size: 1rem; }
.pp-biens__partner { display: flex; align-items: center; justify-content: center; gap: 0.75rem; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #e0e0e0; font-size: 0.8rem; color: #888; }
.pp-biens__partner img { height: 22px; width: auto; opacity: 0.7; transition: opacity 0.3s; }
.pp-biens__partner:hover img { opacity: 1; }

/* CTA dark */
.pp-cta { background: #111; padding: 4rem 0; text-align: center; }
.pp-cta h2 { color: #fff; font-size: 1.8rem; font-weight: 700; margin: 0 0 1rem; }
.pp-cta p { color: rgba(255,255,255,0.75); max-width: 600px; margin: 0 auto 2rem; line-height: 1.7; font-size: 1rem; }
.pp-cta__buttons { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
.pp-cta__btn-phone { display: inline-flex; align-items: center; gap: 0.5rem; border: 1px solid #fff; background: transparent; color: #fff; padding: 0.75rem 1.5rem; font-weight: 600; text-decoration: none; font-size: 0.9rem; }
.pp-cta__btn-wa { display: inline-flex; align-items: center; gap: 0.5rem; background: #25D366; color: #fff; padding: 0.75rem 1.5rem; font-weight: 600; text-decoration: none; font-size: 0.9rem; border: 1px solid #25D366; }
.pp-cta__btn-email { display: inline-flex; align-items: center; gap: 0.5rem; border: 1px solid #fff; background: transparent; color: #fff; padding: 0.75rem 1.5rem; font-weight: 600; text-decoration: none; font-size: 0.9rem; }

/* Section eyebrow */
.pp-section-eyebrow { display: block; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: #888; margin-bottom: 0.75rem; }

/* Approche — two-column layout */
.pp-approche { background: #f6f6f6; padding: 5rem 0; }
.pp-approche__inner { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 768px) { .pp-approche__inner { grid-template-columns: 1fr 1fr; } }
.pp-approche__content h2 { color: #111; font-size: 1.8rem; font-weight: 700; margin: 0 0 1rem; }
.pp-approche__content p { color: #333; line-height: 1.7; font-size: 1rem; margin-bottom: 1rem; }

/* Off-market — two-column layout (reversed) */
.pp-offmarket { padding: 5rem 0; background: #fff; }
.pp-offmarket__inner { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 768px) { .pp-offmarket__inner { grid-template-columns: 1fr 1fr; } }
.pp-offmarket__content h2 { color: #111; font-size: 1.8rem; font-weight: 700; margin: 0 0 1rem; }
.pp-offmarket__content p { color: #333; line-height: 1.7; font-size: 1rem; max-width: none; margin-bottom: 1rem; }

/* Photo placeholder */
.pp-photo-placeholder { margin: 0; }
.pp-photo-placeholder__box { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem; background: #f0f0f0; border: 2px dashed #ccc; min-height: 300px; text-align: center; padding: 2rem; }
.pp-photo-placeholder__box span { font-size: 0.9rem; font-weight: 600; color: #888; }
.pp-photo-placeholder__box small { font-size: 0.8rem; color: #aaa; }

/* Mandat — two-column with steps */
.pp-mandat { background: #f6f6f6; padding: 5rem 0; }
.pp-mandat__inner { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 768px) { .pp-mandat__inner { grid-template-columns: 1fr 1fr; } }
.pp-mandat__content h2 { color: #111; font-size: 1.8rem; font-weight: 700; margin: 0 0 1rem; }
.pp-mandat__content p { color: #333; line-height: 1.7; font-size: 1rem; margin-bottom: 1rem; }
.pp-mandat__steps { display: flex; flex-direction: column; gap: 1.5rem; }
.pp-mandat__step { display: flex; gap: 1.25rem; align-items: flex-start; }
.pp-mandat__step-num { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: #111; color: #fff; font-size: 0.85rem; font-weight: 700; flex-shrink: 0; }
.pp-mandat__step strong { display: block; font-size: 1rem; color: #111; margin-bottom: 0.25rem; }
.pp-mandat__step p { font-size: 0.9rem; color: #555; margin: 0; line-height: 1.5; }

/* CTA — override full-width for new structure */
.pp-cta { background: #111; padding: 4rem 0; text-align: center; }

/* Archive Blog (.ab-*) */
.ab-header { background: #fff; text-align: center; padding: 3rem 0 2rem; }
.ab-header__inner { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.ab-header__eyebrow { display: block; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: #888; margin-bottom: 0.75rem; }
.ab-header__title { font-size: clamp(1.8rem, 4vw, 2.4rem); font-weight: 700; color: #111; margin: 0 0 1rem; }
.ab-header__intro { max-width: 640px; margin: 0 auto; font-size: 1rem; line-height: 1.7; color: #333; }
.ab-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; max-width: 1200px; margin: 0 auto; padding: 2rem 1.5rem; }
@media (min-width: 600px) { .ab-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .ab-grid { grid-template-columns: repeat(3, 1fr); } }
.ab-card { border: 1px solid #e0e0e0; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; text-decoration: none; color: inherit; display: block; }
.ab-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,0.08); }
.ab-card__thumb { display: block; }
.ab-card__thumb img { width: 100%; height: 220px; object-fit: cover; display: block; }
.ab-card__body { padding: 1.25rem; }
.ab-card__date { display: block; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: #888; font-weight: 600; margin-bottom: 0.5rem; }
.ab-card__title { font-size: 1.05rem; font-weight: 600; color: #111; line-height: 1.4; margin: 0.5rem 0; }
.ab-card__title a { color: #111; text-decoration: none; }
.ab-card__title a:hover { text-decoration: underline; }
.ab-card__excerpt { font-size: 0.875rem; color: #333; line-height: 1.6; margin: 0 0 0.75rem; }
.ab-card__link { font-size: 0.8rem; font-weight: 600; color: #111; text-decoration: underline; text-underline-offset: 3px; }
.ab-pagination { display: flex; gap: 0.5rem; justify-content: center; margin-top: 3rem; padding-bottom: 3rem; flex-wrap: wrap; }
.ab-pagination .page-numbers { display: inline-block; padding: 0.5rem 1rem; border: 1px solid #d6d6d6; color: #111; text-decoration: none; font-size: 0.875rem; }
.ab-pagination .page-numbers.current { background: #111; color: #fff; border-color: #111; }
.ab-pagination .page-numbers:hover:not(.current) { background: #f6f6f6; }
.ab-cta { background: #111; padding: 4rem 1.5rem; text-align: center; }
@media (min-width: 768px) { .ab-cta { padding: 5rem 2rem; } }
.ab-cta__inner { max-width: 640px; margin: 0 auto; }
.ab-cta__heading { font-size: 1.8rem; font-weight: 700; color: #fff; margin: 0 0 1rem; }
.ab-cta__text { font-size: 1rem; line-height: 1.7; color: rgba(255,255,255,0.75); margin: 0 0 2rem; }
.ab-cta__btn { display: inline-block; padding: 0.875rem 2rem; background: #fff; color: #111; font-weight: 600; text-decoration: none; text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.85rem; transition: background 0.3s ease; }
.ab-cta__btn:hover { background: #e0e0e0; }
.ab-card__thumb-placeholder { display: flex; align-items: center; justify-content: center; height: 220px; background: #f0f0f0; }
.ab-card__category { display: inline-block; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #fff; background: #111; padding: 0.15rem 0.5rem; margin-bottom: 0.5rem; }

/* ==========================================================================
   Archive Blog — Hero Dark + Featured Article
   ========================================================================== */

.ab-hero { background: #111; padding: 4rem 0 3.5rem; text-align: center; }
.ab-hero__inner { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.ab-hero__eyebrow { display: block; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,0.5); margin-bottom: 0.75rem; }
.ab-hero__title { color: #fff; font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 700; margin: 0 0 1rem; }
.ab-hero__intro { max-width: 640px; margin: 0 auto; font-size: 1.05rem; line-height: 1.7; color: rgba(255,255,255,0.7); }

/* Featured article */
.ab-featured { display: grid; grid-template-columns: 1fr; max-width: 1200px; margin: 0 auto; border: 1px solid #e0e0e0; overflow: hidden; transition: box-shadow 0.3s ease; }
@media (min-width: 768px) { .ab-featured { grid-template-columns: 1fr 1fr; } }
.ab-featured:hover { box-shadow: 0 12px 32px rgba(0,0,0,0.1); }
.ab-featured__thumb { display: block; overflow: hidden; }
.ab-featured__thumb img { width: 100%; height: 100%; min-height: 300px; object-fit: cover; display: block; transition: transform 0.5s ease; }
.ab-featured:hover .ab-featured__thumb img { transform: scale(1.03); }
.ab-featured__body { padding: 2.5rem; display: flex; flex-direction: column; justify-content: center; }
.ab-featured__badge { display: inline-block; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #fff; background: #111; padding: 0.2rem 0.6rem; margin-bottom: 1rem; align-self: flex-start; }
.ab-featured__date { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: #888; font-weight: 600; margin-bottom: 0.5rem; }
.ab-featured__title { font-size: 1.5rem; font-weight: 700; color: #111; line-height: 1.3; margin: 0 0 1rem; }
.ab-featured__title a { color: inherit; text-decoration: none; }
.ab-featured__title a:hover { text-decoration: underline; }
.ab-featured__excerpt { font-size: 1rem; color: #333; line-height: 1.7; margin: 0 0 1.5rem; }
.ab-featured__link { font-size: 0.85rem; font-weight: 600; color: #111; text-decoration: none; text-transform: uppercase; letter-spacing: 0.05em; display: inline-flex; align-items: center; gap: 0.5rem; }
.ab-featured__link::after { content: '\2192'; transition: transform 0.2s; }
.ab-featured__link:hover::after { transform: translateX(4px); }

/* Categories filter bar */
.ab-categories { max-width: 1200px; margin: 0 auto; padding: 2rem 1.5rem 0; }
.ab-categories__inner { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.ab-categories__tag { display: inline-block; padding: 0.4rem 1rem; border: 1px solid #d6d6d6; color: #555; font-size: 0.8rem; font-weight: 600; text-decoration: none; transition: all 0.2s ease; }
.ab-categories__tag:hover { border-color: #111; color: #111; }
.ab-categories__tag--active { background: #111; color: #fff; border-color: #111; }

/* ==========================================================================
   Single Post — TOC + Layout + Nav
   ========================================================================== */

/* Two-column layout with sticky TOC */
.sp-layout { display: grid; grid-template-columns: 1fr; max-width: 1200px; margin: 0 auto; padding: 2.5rem 0 3rem; gap: 3rem; }
@media (min-width: 900px) { .sp-layout { grid-template-columns: 220px 1fr; } }
.sp-layout__main { min-width: 0; }

/* Table of Contents */
.sp-toc { display: none; }
@media (min-width: 900px) {
	.sp-toc { display: block; position: sticky; top: 2rem; align-self: start; max-height: calc(100vh - 4rem); overflow-y: auto; }
}
.sp-toc__title { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #888; margin: 0 0 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid #e0e0e0; }
.sp-toc__list { list-style: none; padding: 0; margin: 0; }
.sp-toc__list li { margin-bottom: 0.5rem; }
.sp-toc__link { display: block; font-size: 0.8rem; color: #888; text-decoration: none; line-height: 1.4; padding: 0.25rem 0 0.25rem 0.75rem; border-left: 2px solid transparent; transition: all 0.2s ease; }
.sp-toc__link:hover { color: #111; }
.sp-toc__link--active { color: #111; font-weight: 600; border-left-color: #111; }

/* Reading bar */
.sp-reading-bar { max-width: 1200px; margin: 1rem auto 0; padding: 0 1.5rem; }
.sp-reading-bar__time { font-size: 0.75rem; color: #888; font-weight: 500; display: inline-flex; align-items: center; gap: 0.4rem; }

/* Post navigation prev/next */
.sp-nav-posts { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; padding: 2.5rem 0; margin-top: 2rem; border-top: 1px solid #e0e0e0; }
.sp-nav-posts__item { text-decoration: none; color: inherit; padding: 1rem; transition: background 0.2s; }
.sp-nav-posts__item:hover { background: #f6f6f6; }
.sp-nav-posts__item--next { text-align: right; }
.sp-nav-posts__label { display: block; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #888; margin-bottom: 0.4rem; }
.sp-nav-posts__title { font-size: 0.95rem; font-weight: 600; color: #111; line-height: 1.4; }
@media (max-width: 600px) { .sp-nav-posts { grid-template-columns: 1fr; } }

/* Author links */
.sp-author__links { display: flex; gap: 1rem; margin-top: 0.75rem; }
.sp-author__links a { font-size: 0.8rem; color: #111; text-decoration: underline; text-underline-offset: 3px; font-weight: 500; }

/* ==========================================================================
   Landing Pages — Premium Additions
   ========================================================================== */

/* Landing hero with background placeholder */
.landing-hero--visual { position: relative; padding: 5rem 0 4rem; background: #111; overflow: hidden; }
.landing-hero__bg-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 0.5rem; background: #1a1a1a; opacity: 0.3; }
.landing-hero__bg-placeholder span { font-size: 0.85rem; color: #666; }
.landing-hero--visual .container { position: relative; z-index: 1; }
.landing-hero--visual h1 { color: #fff; }
.landing-hero--visual .landing-hero__sub { color: rgba(255,255,255,0.75); }
.landing-hero--visual .aa-eyebrow { color: rgba(255,255,255,0.5); }
.landing-hero--visual .btn--primary { background: #fff; color: #111; }
.landing-hero--visual .btn--ghost { border-color: rgba(255,255,255,0.5); color: #fff; }
.landing-hero--visual .btn--ghost:hover { background: rgba(255,255,255,0.1); }

/* Argument stats */
.landing-argument__stat { font-size: 2rem; font-weight: 800; color: #111; line-height: 1; margin: 0 0 0.5rem; }

/* Urgency section */
.landing-urgency { padding: 3rem 0; background: #111; text-align: center; }
.landing-urgency__inner { max-width: 640px; margin: 0 auto; }
.landing-urgency__icon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin: 0 auto 1.25rem; border: 2px solid rgba(255,255,255,0.3); }
.landing-urgency__heading { font-size: 1.25rem; font-weight: 700; color: #fff; margin: 0 0 0.75rem; }
.landing-urgency__text { font-size: 1rem; line-height: 1.7; color: rgba(255,255,255,0.7); margin: 0; }

/* Social proof enhanced */
.landing-social-proof__logos { display: flex; align-items: center; justify-content: center; gap: 2rem; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #e0e0e0; }
.landing-social-proof__logo { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #aaa; }
.landing-testimonial--second { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid #e0e0e0; }

/* Form reassurance */
.landing-form__reassurance { display: flex; align-items: center; justify-content: center; gap: 0.5rem; margin-top: 1rem; font-size: 0.8rem; color: #888; }
.landing-form__reassurance svg { flex-shrink: 0; }

/* Landing hero background */
.landing-hero__bg { position: absolute; inset: 0; z-index: 0; display: flex; align-items: center; justify-content: center; }
.landing-hero__bg-label { font-size: 0.85rem; color: #555; text-align: center; }
.landing-hero { position: relative; overflow: hidden; }
.landing-hero .container { position: relative; z-index: 1; }

/* Dark hero modifier — texte blanc sur fond sombre */
.landing-hero--dark { background: #1a1a1a; }
.landing-hero--dark h1 { color: #fff !important; }
.landing-hero--dark .aa-eyebrow { color: rgba(255,255,255,0.6) !important; }
.landing-hero--dark .landing-hero__sub { color: rgba(255,255,255,0.85) !important; }
.landing-hero--dark .btn--primary { background: #fff; color: #111; }
.landing-hero--dark .btn--primary:hover { background: #e0e0e0; }
.landing-hero--dark .btn--ghost { border-color: rgba(255,255,255,0.4) !important; color: #fff !important; }
.landing-hero--dark .btn--ghost:hover { background: rgba(255,255,255,0.1); }

/* Landing approach (2-col) */
.landing-approach { padding: 4rem 0; }
.landing-approach__content { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; margin-top: 1.5rem; }
@media (min-width: 768px) { .landing-approach__content { grid-template-columns: 1fr 1fr; } }
.landing-approach__text p { color: #333; line-height: 1.7; font-size: 1rem; margin-bottom: 1rem; }

/* Social proof logo placeholders */
.landing-social-proof__logo-placeholder { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: #aaa; }

/* Photo placeholder (shared) */
.landing-photo-placeholder { margin: 2rem 0; }
.landing-photo-placeholder__box { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem; background: #f0f0f0; border: 2px dashed #ccc; min-height: 250px; text-align: center; padding: 2rem; }
.landing-photo-placeholder__box span { font-size: 0.9rem; font-weight: 600; color: #888; }
.landing-photo-placeholder__box small { font-size: 0.8rem; color: #aaa; }

/* ==========================================================================
   Global Premium Polish — Hover States, Transitions, Micro-interactions
   ========================================================================== */

/* Smooth button hover transitions (all btn elements) */
.btn, .pp-offmarket__cta, .sp-cta__btn, .ab-cta__btn, .sp-inline-cta__btn { transition: all 0.25s ease; }
.btn:hover, .pp-offmarket__cta:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.12); }

/* Card image zoom on hover */
.ab-card__thumb img, .pp-bien__media img, .pp-bien__media video { transition: transform 0.5s ease; }
.ab-card:hover .ab-card__thumb img, .pp-bien:hover .pp-bien__media img, .pp-bien:hover .pp-bien__media video { transform: scale(1.04); }

/* Link arrow animations */
.ab-card__link { display: inline-flex; align-items: center; gap: 0.4rem; transition: gap 0.2s ease; }
.ab-card:hover .ab-card__link { gap: 0.7rem; }

/* Focus visible for accessibility */
.btn:focus-visible, .ab-card:focus-visible, .pp-bien:focus-visible, .sp-share__btn:focus-visible { outline: 2px solid #111; outline-offset: 2px; }

/* Selection color */
::selection { background: #111; color: #fff; }

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Print styles */
@media print {
	.site-header, .site-footer, .sp-progress, .sp-toc, .sp-share, .sp-inline-cta, .sp-cta, .sp-related, .sp-nav-posts, .ab-cta { display: none !important; }
	.sp-layout { display: block; }
	.sp-article, .sp-layout__main { max-width: 100%; padding: 0; }
}
