<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Guide Beauté votre référence experte en soins visage, routines anti-âge, beauté naturelle & chirurgie esthétique. Conseils de spécialistes, tests produits, avis vérifiés.">
<meta name="robots" content="index, follow">
<meta property="og:title" content="Guide Beauté : Soins, Anti-âge & Bien-être | Le Guide Expert">
<meta property="og:description" content="Découvrez les meilleures routines beauté, soins anti-âge, conseils d'expertes et avis produits 100% vérifiés. Votre allié beauté au quotidien.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.guide-beaute.com/">
<meta property="og:image" content="https://www.guide-beaute.com/images/guide-beaute-og.jpg">
<meta property="og:locale" content="fr_FR">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Guide Beauté — Soins, Anti-âge & Bien-être">
<meta name="twitter:description" content="Votre référence experte en beauté naturelle, soins du visage et bien-être féminin.">
<link rel="canonical" href="https://www.guide-beaute.com/">
<title>Guide Beauté : Soins Visage, Anti-âge & Bien-être</title>
<!-- Preconnect to Google Fonts for performance -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Jost:wght@300;400;500;600&display=swap" rel="stylesheet">
<!-- Schema.org structured data (E-E-A-T signals) -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Guide Beauté",
"url": "https://www.guide-beaute.com",
"description": "Guide expert en soins beauté, anti-âge, bien-être et esthétique médicale pour femmes",
"potentialAction": {
"@type": "SearchAction",
"target": "https://www.guide-beaute.com/recherche?q={search_term_string}",
"query-input": "required name=search_term_string"
},
"publisher": {
"@type": "Organization",
"name": "Guide Beauté",
"logo": {
"@type": "ImageObject",
"url": "https://www.guide-beaute.com/images/logo.png"
}
}
}
</script>
<style>
/* ===== CSS CUSTOM PROPERTIES ===== */
:root {
--c-cream: #faf6f1;
--c-rose: #e8c4b8;
--c-blush: #d4968a;
--c-terracotta: #b5614e;
--c-deep: #2c1a15;
--c-charcoal: #3d2b25;
--c-warm: #7a5347;
--c-gold: #c9a96e;
--c-goldlt: #e8d5b0;
--c-sage: #8a9e8c;
--c-sage-lt: #d5e0d6;
--c-white: #ffffff;
--c-light: #f5ede8;
--f-display: 'Cormorant Garamond', Georgia, serif;
--f-body: 'Jost', sans-serif;
--r-sm: .5rem;
--r-md: 1rem;
--r-lg: 2rem;
--r-xl: 4rem;
--transition: .35s cubic-bezier(.4,0,.2,1);
--shadow-soft: 0 4px 32px rgba(44,26,21,.08);
--shadow-card: 0 8px 48px rgba(44,26,21,.12);
}
/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
font-family: var(--f-body);
background: var(--c-cream);
color: var(--c-deep);
line-height: 1.7;
overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
/* ===== UTILITY ===== */
.container {
max-width: 1280px;
margin-inline: auto;
padding-inline: clamp(1rem, 4vw, 3rem);
}
.section-label {
display: inline-block;
font-family: var(--f-body);
font-size: .7rem;
font-weight: 600;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--c-blush);
margin-bottom: .75rem;
}
.section-title {
font-family: var(--f-display);
font-size: clamp(2rem, 4vw, 3.2rem);
font-weight: 400;
line-height: 1.15;
color: var(--c-deep);
}
.section-title em { font-style: italic; color: var(--c-blush); }
.section-intro {
font-size: 1rem;
color: var(--c-warm);
max-width: 540px;
margin-top: .75rem;
}
.btn {
display: inline-flex;
align-items: center;
gap: .5rem;
padding: .85rem 2rem;
font-family: var(--f-body);
font-size: .8rem;
font-weight: 600;
letter-spacing: .12em;
text-transform: uppercase;
border-radius: 50px;
transition: var(--transition);
}
.btn-primary {
background: var(--c-deep);
color: var(--c-cream);
}
.btn-primary:hover {
background: var(--c-terracotta);
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(181,97,78,.3);
}
.btn-outline {
border: 1.5px solid var(--c-deep);
color: var(--c-deep);
}
.btn-outline:hover {
background: var(--c-deep);
color: var(--c-cream);
transform: translateY(-2px);
}
.btn-gold {
background: var(--c-gold);
color: var(--c-deep);
}
.btn-gold:hover {
background: var(--c-terracotta);
color: var(--c-white);
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(201,169,110,.4);
}
.tag {
display: inline-block;
padding: .2rem .75rem;
background: var(--c-light);
color: var(--c-warm);
border-radius: 50px;
font-size: .7rem;
font-weight: 600;
letter-spacing: .08em;
text-transform: uppercase;
}
/* ===== TOP BAR ===== */
.topbar {
background: var(--c-deep);
color: var(--c-goldlt);
text-align: center;
font-size: .72rem;
letter-spacing: .1em;
padding: .55rem 1rem;
}
.topbar a { color: var(--c-gold); text-decoration: underline; }
/* ===== HEADER / NAV ===== */
.site-header {
position: sticky;
top: 0;
z-index: 100;
background: rgba(250,246,241,.95);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border-bottom: 1px solid rgba(232,196,184,.3);
transition: box-shadow var(--transition);
}
.site-header.scrolled { box-shadow: var(--shadow-soft); }
.nav-inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
height: 72px;
}
.logo {
font-family: var(--f-display);
font-size: 1.65rem;
font-weight: 600;
letter-spacing: .03em;
color: var(--c-deep);
flex-shrink: 0;
}
.logo span { color: var(--c-blush); }
/* Desktop nav */
.nav-links {
display: flex;
align-items: center;
gap: 0;
}
.nav-item {
position: relative;
}
.nav-link {
display: block;
padding: .5rem 1rem;
font-size: .8rem;
font-weight: 500;
letter-spacing: .06em;
text-transform: uppercase;
color: var(--c-charcoal);
transition: color var(--transition);
white-space: nowrap;
}
.nav-link:hover, .nav-item.active > .nav-link { color: var(--c-terracotta); }
/* Dropdown */
.dropdown {
position: absolute;
top: calc(100% + .5rem);
left: 50%;
transform: translateX(-50%) translateY(8px);
min-width: 220px;
background: var(--c-white);
border-radius: var(--r-md);
box-shadow: var(--shadow-card);
padding: .75rem 0;
opacity: 0;
pointer-events: none;
transition: opacity .2s, transform .2s;
}
.nav-item:hover .dropdown {
opacity: 1;
pointer-events: auto;
transform: translateX(-50%) translateY(0);
}
.dropdown a {
display: flex;
align-items: center;
gap: .5rem;
padding: .6rem 1.25rem;
font-size: .82rem;
color: var(--c-charcoal);
transition: background var(--transition), color var(--transition);
}
.dropdown a:hover { background: var(--c-light); color: var(--c-terracotta); }
.dropdown-icon { font-size: 1rem; }
/* Nav actions */
.nav-actions {
display: flex;
align-items: center;
gap: .75rem;
flex-shrink: 0;
}
.nav-search-btn {
width: 38px; height: 38px;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
background: var(--c-light);
color: var(--c-charcoal);
font-size: 1rem;
transition: var(--transition);
}
.nav-search-btn:hover { background: var(--c-rose); }
/* Burger */
.burger {
display: none;
flex-direction: column;
gap: 5px;
width: 36px;
height: 36px;
align-items: center;
justify-content: center;
border-radius: var(--r-sm);
background: var(--c-light);
transition: var(--transition);
}
.burger span {
display: block;
width: 20px;
height: 2px;
background: var(--c-deep);
border-radius: 2px;
transition: var(--transition);
transform-origin: center;
}
.burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
/* Mobile menu */
.mobile-nav {
display: none;
position: fixed;
inset: 0;
top: 73px;
background: var(--c-cream);
z-index: 99;
overflow-y: auto;
padding: 1.5rem var(--container-px, 1.5rem) 4rem;
transform: translateX(100%);
transition: transform .35s cubic-bezier(.4,0,.2,1);
}
.mobile-nav.open { transform: translateX(0); }
.mobile-nav-section { margin-bottom: 2rem; }
.mobile-nav-section h3 {
font-family: var(--f-body);
font-size: .65rem;
letter-spacing: .18em;
text-transform: uppercase;
color: var(--c-blush);
margin-bottom: .75rem;
padding-bottom: .5rem;
border-bottom: 1px solid var(--c-rose);
}
.mobile-nav-link {
display: block;
padding: .75rem 0;
font-size: 1.1rem;
font-family: var(--f-display);
color: var(--c-deep);
border-bottom: 1px solid rgba(232,196,184,.25);
}
.mobile-nav-link:last-child { border-bottom: none; }
/* ===== HERO ===== */
.hero {
min-height: 92vh;
display: grid;
grid-template-columns: 1fr 1fr;
position: relative;
overflow: hidden;
}
.hero-content {
display: flex;
flex-direction: column;
justify-content: center;
padding: clamp(3rem, 8vw, 6rem) clamp(1.5rem, 5vw, 5rem);
position: relative;
z-index: 2;
}
.hero-badge {
display: inline-flex;
align-items: center;
gap: .5rem;
background: var(--c-light);
border: 1px solid var(--c-rose);
border-radius: 50px;
padding: .4rem 1rem;
font-size: .7rem;
font-weight: 600;
letter-spacing: .1em;
text-transform: uppercase;
color: var(--c-blush);
margin-bottom: 1.5rem;
width: fit-content;
}
.hero-badge::before {
content: '';
width: 6px; height: 6px;
background: var(--c-blush);
border-radius: 50%;
animation: pulse 2s infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: .6; transform: scale(1.3); }
}
.hero-title {
font-family: var(--f-display);
font-size: clamp(3rem, 6vw, 5.5rem);
font-weight: 300;
line-height: 1.08;
color: var(--c-deep);
margin-bottom: 1.5rem;
}
.hero-title .accent {
font-style: italic;
color: var(--c-terracotta);
display: block;
}
.hero-desc {
font-size: 1.05rem;
color: var(--c-warm);
max-width: 460px;
margin-bottom: 2.5rem;
line-height: 1.8;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 3rem; }
.hero-stats {
display: flex;
gap: 2rem;
flex-wrap: wrap;
}
.stat {
display: flex;
flex-direction: column;
}
.stat-num {
font-family: var(--f-display);
font-size: 2.2rem;
font-weight: 600;
color: var(--c-deep);
line-height: 1;
}
.stat-label {
font-size: .72rem;
font-weight: 500;
letter-spacing: .08em;
text-transform: uppercase;
color: var(--c-warm);
margin-top: .15rem;
}
/* Hero image side */
.hero-visual {
position: relative;
overflow: hidden;
}
.hero-img-wrap {
position: absolute;
inset: 0;
}
.hero-img-wrap img {
width: 100%; height: 100%;
object-fit: cover;
object-position: center top;
filter: saturate(.92);
}
/* Decorative overlay */
.hero-img-wrap::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(250,246,241,.15) 0%, transparent 50%);
z-index: 1;
}
/* Floating card on hero */
.hero-card {
position: absolute;
bottom: 2.5rem;
left: -2rem;
background: var(--c-white);
border-radius: var(--r-md);
box-shadow: var(--shadow-card);
padding: 1rem 1.25rem;
z-index: 3;
display: flex;
align-items: center;
gap: .75rem;
min-width: 220px;
animation: float 4s ease-in-out infinite;
}
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-8px); }
}
.hero-card-icon { font-size: 1.8rem; }
.hero-card-text { font-size: .78rem; }
.hero-card-text strong { display: block; color: var(--c-deep); font-weight: 600; font-size: .85rem; }
.hero-card-text span { color: var(--c-warm); }
/* Decorative bg element */
.hero-bg-circle {
position: absolute;
right: -15%;
top: -10%;
width: 600px; height: 600px;
border-radius: 50%;
background: radial-gradient(circle, rgba(232,196,184,.2) 0%, transparent 70%);
pointer-events: none;
}
/* ===== TRUST BAR ===== */
.trust-bar {
background: var(--c-deep);
padding: 1.5rem 0;
}
.trust-bar-inner {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 1rem 3rem;
}
.trust-item {
display: flex;
align-items: center;
gap: .6rem;
color: var(--c-goldlt);
font-size: .78rem;
font-weight: 500;
letter-spacing: .06em;
text-transform: uppercase;
}
.trust-item span:first-child { font-size: 1.1rem; }
/* ===== FEATURED CATEGORIES ===== */
.categories { padding: 6rem 0 5rem; }
.categories-header {
text-align: center;
max-width: 600px;
margin-inline: auto;
margin-bottom: 3.5rem;
}
.categories-header .section-intro { margin-inline: auto; text-align: center; }
.cat-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1.25rem;
}
.cat-card {
position: relative;
border-radius: var(--r-lg);
overflow: hidden;
aspect-ratio: 3/4;
cursor: pointer;
group: true;
}
.cat-card img {
width: 100%; height: 100%;
object-fit: cover;
transition: transform .6s cubic-bezier(.4,0,.2,1);
}
.cat-card:hover img { transform: scale(1.06); }
.cat-card::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(44,26,21,.75) 0%, rgba(44,26,21,.1) 60%, transparent 100%);
transition: opacity var(--transition);
}
.cat-card:hover::after { opacity: .85; }
.cat-card-body {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 1.5rem;
z-index: 2;
transform: translateY(0);
transition: transform var(--transition);
}
.cat-card:hover .cat-card-body { transform: translateY(-6px); }
.cat-card-label {
font-size: .65rem;
font-weight: 600;
letter-spacing: .18em;
text-transform: uppercase;
color: var(--c-rose);
margin-bottom: .25rem;
}
.cat-card-title {
font-family: var(--f-display);
font-size: 1.4rem;
font-weight: 400;
color: var(--c-white);
line-height: 1.2;
}
.cat-card-arrow {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px; height: 32px;
background: var(--c-blush);
border-radius: 50%;
color: var(--c-white);
font-size: .8rem;
margin-top: .75rem;
opacity: 0;
transform: translateX(-8px);
transition: opacity .2s .05s, transform .2s .05s;
}
.cat-card:hover .cat-card-arrow { opacity: 1; transform: translateX(0); }
/* Large featured card */
.cat-card.featured { aspect-ratio: unset; grid-row: span 2; }
/* ===== EDITORIAL STRIP ===== */
.editorial-strip {
background: var(--c-light);
padding: 2.5rem 0;
overflow: hidden;
}
.strip-track {
display: flex;
gap: 3rem;
align-items: center;
animation: strip-scroll 30s linear infinite;
white-space: nowrap;
width: max-content;
}
@keyframes strip-scroll {
from { transform: translateX(0); }
to { transform: translateX(-50%); }
}
.strip-track:hover { animation-play-state: paused; }
.strip-item {
display: flex;
align-items: center;
gap: 1rem;
font-family: var(--f-display);
font-size: 1.1rem;
font-style: italic;
color: var(--c-warm);
flex-shrink: 0;
}
.strip-dot {
width: 6px; height: 6px;
border-radius: 50%;
background: var(--c-blush);
flex-shrink: 0;
}
/* ===== FEATURED ARTICLES ===== */
.articles { padding: 6rem 0; }
.articles-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
margin-bottom: 3rem;
gap: 1rem;
flex-wrap: wrap;
}
.articles-grid {
display: grid;
grid-template-columns: 1.5fr 1fr 1fr;
gap: 1.5rem;
align-items: start;
}
/* Main article (large) */
.article-card {
border-radius: var(--r-lg);
overflow: hidden;
background: var(--c-white);
box-shadow: var(--shadow-soft);
transition: transform var(--transition), box-shadow var(--transition);
}
.article-card:hover {
transform: translateY(-6px);
box-shadow: var(--shadow-card);
}
.article-img {
position: relative;
overflow: hidden;
}
.article-img img {
width: 100%; height: 100%;
object-fit: cover;
transition: transform .5s ease;
}
.article-card:hover .article-img img { transform: scale(1.04); }
.article-card.main .article-img { height: 340px; }
.article-card:not(.main) .article-img { height: 200px; }
.article-body { padding: 1.5rem; }
.article-meta {
display: flex;
align-items: center;
gap: .75rem;
margin-bottom: .75rem;
}
.article-author {
display: flex;
align-items: center;
gap: .4rem;
font-size: .72rem;
color: var(--c-warm);
}
.article-author img {
width: 24px; height: 24px;
border-radius: 50%;
object-fit: cover;
}
.article-date { font-size: .7rem; color: #999; }
.article-title {
font-family: var(--f-display);
font-size: 1.4rem;
font-weight: 400;
line-height: 1.25;
color: var(--c-deep);
margin-bottom: .5rem;
transition: color var(--transition);
}
.article-card.main .article-title { font-size: 1.8rem; }
.article-card:hover .article-title { color: var(--c-terracotta); }
.article-excerpt { font-size: .87rem; color: var(--c-warm); line-height: 1.7; margin-bottom: 1rem; }
.article-read-more {
font-size: .75rem;
font-weight: 600;
letter-spacing: .1em;
text-transform: uppercase;
color: var(--c-terracotta);
display: flex;
align-items: center;
gap: .4rem;
}
.article-read-more::after {
content: '→';
transition: transform var(--transition);
}
.article-card:hover .article-read-more::after { transform: translateX(4px); }
/* Expert badge */
.expert-badge {
position: absolute;
top: 1rem;
right: 1rem;
background: var(--c-deep);
color: var(--c-goldlt);
font-size: .65rem;
font-weight: 600;
letter-spacing: .1em;
text-transform: uppercase;
padding: .3rem .75rem;
border-radius: 50px;
}
/* ===== ROUTINE BUILDER (interactive) ===== */
.routine { padding: 6rem 0; background: var(--c-deep); position: relative; overflow: hidden; }
.routine::before {
content: '';
position: absolute;
right: -200px; top: -200px;
width: 600px; height: 600px;
border-radius: 50%;
background: radial-gradient(circle, rgba(181,97,78,.15) 0%, transparent 70%);
}
.routine-inner {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 5rem;
align-items: center;
position: relative;
z-index: 1;
}
.routine-content .section-label { color: var(--c-blush); }
.routine-content .section-title { color: var(--c-cream); }
.routine-content .section-intro { color: var(--c-goldlt); opacity: .8; }
.skin-quiz {
background: rgba(255,255,255,.05);
border: 1px solid rgba(232,196,184,.2);
border-radius: var(--r-lg);
padding: 2.5rem;
}
.quiz-step { display: none; }
.quiz-step.active { display: block; }
.quiz-title {
font-family: var(--f-display);
font-size: 1.4rem;
color: var(--c-cream);
margin-bottom: 1.5rem;
font-style: italic;
}
.quiz-options {
display: grid;
grid-template-columns: 1fr 1fr;
gap: .75rem;
margin-bottom: 1.5rem;
}
.quiz-opt {
padding: .85rem 1rem;
border: 1.5px solid rgba(232,196,184,.25);
border-radius: var(--r-md);
color: var(--c-goldlt);
font-size: .85rem;
text-align: center;
cursor: pointer;
transition: var(--transition);
background: transparent;
}
.quiz-opt:hover, .quiz-opt.selected {
border-color: var(--c-blush);
background: rgba(232,196,184,.1);
color: var(--c-rose);
}
.quiz-progress {
display: flex;
gap: .4rem;
margin-bottom: 1.5rem;
}
.quiz-dot {
height: 3px;
flex: 1;
background: rgba(255,255,255,.15);
border-radius: 3px;
transition: background .3s;
}
.quiz-dot.done { background: var(--c-blush); }
.routine-result {
display: none;
text-align: center;
}
.routine-result.show { display: block; }
.result-type {
font-family: var(--f-display);
font-size: 2rem;
font-style: italic;
color: var(--c-rose);
margin-bottom: .5rem;
}
.result-desc { color: var(--c-goldlt); font-size: .9rem; margin-bottom: 1.5rem; }
/* ===== EXPERTS SECTION (E-E-A-T) ===== */
.experts { padding: 6rem 0; }
.experts-header { text-align: center; max-width: 600px; margin-inline: auto; margin-bottom: 3.5rem; }
.experts-header .section-intro { margin-inline: auto; text-align: center; }
.experts-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1.5rem;
}
.expert-card {
background: var(--c-white);
border-radius: var(--r-lg);
overflow: hidden;
box-shadow: var(--shadow-soft);
transition: transform var(--transition), box-shadow var(--transition);
text-align: center;
}
.expert-card:hover {
transform: translateY(-6px);
box-shadow: var(--shadow-card);
}
.expert-img {
width: 100%;
height: 200px;
object-fit: cover;
object-position: top center;
}
.expert-body { padding: 1.25rem 1rem; }
.expert-name {
font-family: var(--f-display);
font-size: 1.15rem;
font-weight: 400;
color: var(--c-deep);
margin-bottom: .15rem;
}
.expert-title {
font-size: .72rem;
font-weight: 600;
letter-spacing: .08em;
text-transform: uppercase;
color: var(--c-blush);
margin-bottom: .75rem;
}
.expert-bio { font-size: .82rem; color: var(--c-warm); line-height: 1.6; margin-bottom: 1rem; }
.expert-creds {
display: flex;
flex-wrap: wrap;
gap: .4rem;
justify-content: center;
}
.expert-cred {
font-size: .65rem;
font-weight: 600;
letter-spacing: .06em;
text-transform: uppercase;
background: var(--c-light);
color: var(--c-warm);
padding: .2rem .6rem;
border-radius: 50px;
}
/* ===== PRODUCT SELECTION ===== */
.products { padding: 6rem 0; background: var(--c-light); }
.products-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
margin-bottom: 3rem;
flex-wrap: wrap;
gap: 1rem;
}
.products-tabs {
display: flex;
gap: .5rem;
flex-wrap: wrap;
}
.tab-btn {
padding: .5rem 1.25rem;
border-radius: 50px;
font-size: .75rem;
font-weight: 600;
letter-spacing: .08em;
text-transform: uppercase;
color: var(--c-warm);
background: transparent;
border: 1.5px solid transparent;
transition: var(--transition);
}
.tab-btn.active, .tab-btn:hover {
background: var(--c-white);
color: var(--c-deep);
border-color: var(--c-rose);
box-shadow: var(--shadow-soft);
}
.products-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1.25rem;
}
.product-card {
background: var(--c-white);
border-radius: var(--r-lg);
overflow: hidden;
transition: transform var(--transition), box-shadow var(--transition);
}
.product-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-card);
}
.product-img-wrap {
position: relative;
aspect-ratio: 1;
overflow: hidden;
background: var(--c-cream);
}
.product-img-wrap img {
width: 100%; height: 100%;
object-fit: cover;
transition: transform .5s ease;
}
.product-card:hover .product-img-wrap img { transform: scale(1.05); }
.product-badge {
position: absolute;
top: .75rem;
left: .75rem;
background: var(--c-terracotta);
color: var(--c-white);
font-size: .65rem;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
padding: .25rem .65rem;
border-radius: 50px;
}
.product-body { padding: 1rem; }
.product-brand { font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--c-blush); }
.product-name { font-family: var(--f-display); font-size: 1.1rem; color: var(--c-deep); margin: .15rem 0 .4rem; }
.product-stars { color: var(--c-gold); font-size: .85rem; letter-spacing: .05em; }
.product-reviews { font-size: .7rem; color: #999; margin-left: .3rem; }
.product-price {
display: flex;
align-items: center;
gap: .6rem;
margin-top: .5rem;
}
.price-current { font-weight: 600; font-size: 1rem; color: var(--c-deep); }
.price-old { font-size: .85rem; color: #aaa; text-decoration: line-through; }
/* ===== TESTIMONIALS ===== */
.testimonials { padding: 6rem 0; }
.testimonials-header { text-align: center; max-width: 540px; margin-inline: auto; margin-bottom: 3.5rem; }
.testimonials-header .section-intro { margin-inline: auto; text-align: center; }
.testimonials-track-wrap { overflow: hidden; }
.testimonials-track {
display: flex;
gap: 1.5rem;
transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.testimonial-card {
flex: 0 0 calc(33.33% - 1rem);
background: var(--c-white);
border-radius: var(--r-lg);
padding: 2rem;
box-shadow: var(--shadow-soft);
position: relative;
}
.testimonial-card::before {
content: '\201C';
font-family: var(--f-display);
font-size: 5rem;
color: var(--c-rose);
line-height: .8;
position: absolute;
top: 1rem;
right: 1.5rem;
opacity: .4;
}
.testimonial-stars { color: var(--c-gold); font-size: 1rem; margin-bottom: .75rem; }
.testimonial-text { font-size: .92rem; color: var(--c-charcoal); line-height: 1.75; margin-bottom: 1.25rem; font-style: italic; }
.testimonial-author { display: flex; align-items: center; gap: .75rem; }
.testimonial-author img {
width: 44px; height: 44px;
border-radius: 50%;
object-fit: cover;
border: 2px solid var(--c-rose);
}
.testimonial-name { font-weight: 600; font-size: .88rem; color: var(--c-deep); }
.testimonial-info { font-size: .72rem; color: var(--c-warm); }
.testimonial-verified {
display: inline-flex;
align-items: center;
gap: .3rem;
font-size: .65rem;
font-weight: 600;
letter-spacing: .08em;
text-transform: uppercase;
color: var(--c-sage);
margin-top: .2rem;
}
.testimonials-nav {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
margin-top: 2rem;
}
.testi-btn {
width: 44px; height: 44px;
border-radius: 50%;
border: 1.5px solid var(--c-rose);
background: transparent;
color: var(--c-deep);
font-size: 1rem;
display: flex;
align-items: center;
justify-content: center;
transition: var(--transition);
}
.testi-btn:hover { background: var(--c-rose); color: var(--c-white); }
.testi-dots {
display: flex;
gap: .4rem;
}
.testi-dot {
width: 8px; height: 8px;
border-radius: 50%;
background: var(--c-rose);
opacity: .4;
cursor: pointer;
transition: var(--transition);
}
.testi-dot.active { opacity: 1; transform: scale(1.25); background: var(--c-terracotta); }
/* ===== NEWSLETTER ===== */
.newsletter {
background: linear-gradient(135deg, var(--c-deep) 0%, #3d1c15 100%);
padding: 6rem 0;
position: relative;
overflow: hidden;
}
.newsletter::before {
content: '';
position: absolute;
left: -100px; bottom: -100px;
width: 500px; height: 500px;
border-radius: 50%;
background: radial-gradient(circle, rgba(201,169,110,.1) 0%, transparent 70%);
}
.newsletter-inner {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 5rem;
align-items: center;
position: relative;
z-index: 1;
}
.newsletter-content .section-label { color: var(--c-blush); }
.newsletter-content .section-title { color: var(--c-cream); }
.newsletter-desc { color: var(--c-goldlt); opacity: .8; margin-top: .75rem; margin-bottom: 2rem; }
.newsletter-perks { display: flex; flex-direction: column; gap: .75rem; }
.perk {
display: flex;
align-items: center;
gap: .75rem;
color: var(--c-goldlt);
font-size: .87rem;
}
.perk-icon {
width: 32px; height: 32px;
border-radius: 50%;
background: rgba(255,255,255,.08);
display: flex;
align-items: center;
justify-content: center;
font-size: .9rem;
flex-shrink: 0;
}
.nl-form { display: flex; flex-direction: column; gap: 1rem; }
.nl-row { display: flex; gap: .75rem; }
.nl-input {
flex: 1;
padding: .95rem 1.25rem;
background: rgba(255,255,255,.08);
border: 1.5px solid rgba(232,196,184,.2);
border-radius: 50px;
color: var(--c-cream);
font-family: var(--f-body);
font-size: .9rem;
outline: none;
transition: border-color var(--transition);
}
.nl-input::placeholder { color: rgba(250,246,241,.4); }
.nl-input:focus { border-color: var(--c-blush); }
.nl-privacy { font-size: .72rem; color: rgba(250,246,241,.4); }
.nl-privacy a { color: var(--c-gold); }
/* ===== FOOTER ===== */
.site-footer {
background: #1a0f0c;
color: var(--c-goldlt);
padding: 5rem 0 2rem;
}
.footer-grid {
display: grid;
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 3rem;
padding-bottom: 3rem;
border-bottom: 1px solid rgba(255,255,255,.07);
}
.footer-brand .logo { margin-bottom: 1rem; }
.footer-desc { font-size: .85rem; color: rgba(250,246,241,.5); line-height: 1.7; max-width: 280px; margin-bottom: 1.5rem; }
.footer-social { display: flex; gap: .75rem; }
.social-link {
width: 36px; height: 36px;
border-radius: 50%;
border: 1px solid rgba(255,255,255,.12);
display: flex;
align-items: center;
justify-content: center;
color: var(--c-goldlt);
font-size: .9rem;
transition: var(--transition);
}
.social-link:hover { background: var(--c-blush); border-color: var(--c-blush); color: var(--c-white); }
.footer-col h4 {
font-size: .7rem;
font-weight: 600;
letter-spacing: .18em;
text-transform: uppercase;
color: var(--c-cream);
margin-bottom: 1.25rem;
}
.footer-col ul { display: flex; flex-direction: column; gap: .6rem; }
.footer-col ul li a {
font-size: .85rem;
color: rgba(250,246,241,.5);
transition: color var(--transition);
}
.footer-col ul li a:hover { color: var(--c-blush); }
.footer-bottom {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 1.5rem;
flex-wrap: wrap;
gap: 1rem;
}
.footer-bottom p { font-size: .78rem; color: rgba(250,246,241,.3); }
.footer-legal { display: flex; gap: 1.5rem; }
.footer-legal a { font-size: .78rem; color: rgba(250,246,241,.3); transition: color var(--transition); }
.footer-legal a:hover { color: var(--c-blush); }
/* ===== SCROLL TO TOP ===== */
.scroll-top {
position: fixed;
bottom: 2rem;
right: 2rem;
width: 44px; height: 44px;
background: var(--c-deep);
color: var(--c-cream);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
box-shadow: var(--shadow-card);
z-index: 50;
transition: var(--transition);
opacity: 0;
transform: translateY(10px);
pointer-events: none;
}
.scroll-top.visible {
opacity: 1;
transform: translateY(0);
pointer-events: auto;
}
.scroll-top:hover { background: var(--c-terracotta); transform: translateY(-3px); }
/* ===== ANIMATIONS (Intersection Observer driven) ===== */
.reveal {
opacity: 0;
transform: translateY(28px);
transition: opacity .6s ease, transform .6s ease;
}
.reveal.in-view {
opacity: 1;
transform: translateY(0);
}
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.reveal-delay-4 { transition-delay: .4s; }
/* ===== RESPONSIVE ===== */
@media (max-width: 1100px) {
.cat-grid { grid-template-columns: repeat(2, 1fr); }
.cat-card.featured { grid-row: auto; }
.articles-grid { grid-template-columns: 1fr 1fr; }
.article-card.main { grid-column: span 2; }
.experts-grid { grid-template-columns: repeat(2, 1fr); }
.products-grid { grid-template-columns: repeat(2, 1fr); }
.footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
.hero { grid-template-columns: 1fr; min-height: auto; }
.hero-visual { display: none; }
.hero-content { padding: 5rem 1.5rem 3rem; min-height: 85vh; }
.hero-bg-circle { display: none; }
.routine-inner { grid-template-columns: 1fr; gap: 3rem; }
.newsletter-inner { grid-template-columns: 1fr; gap: 3rem; }
}
@media (max-width: 768px) {
.nav-links { display: none; }
.burger { display: flex; }
.mobile-nav { display: block; }
.articles-grid { grid-template-columns: 1fr; }
.article-card.main { grid-column: auto; }
.article-card.main .article-img { height: 240px; }
.testimonial-card { flex: 0 0 100%; }
.trust-bar-inner { gap: .75rem 1.5rem; }
.cat-grid { grid-template-columns: 1fr 1fr; gap: .75rem; }
.experts-grid { grid-template-columns: 1fr 1fr; }
.products-grid { grid-template-columns: 1fr 1fr; }
.footer-grid { grid-template-columns: 1fr; gap: 2rem; }
.nl-row { flex-direction: column; }
.quiz-options { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
.cat-grid { grid-template-columns: 1fr; }
.experts-grid { grid-template-columns: 1fr; }
.products-grid { grid-template-columns: 1fr 1fr; }
.hero-stats { gap: 1.5rem; }
}
/* ===== SEARCH OVERLAY ===== */
.search-overlay {
position: fixed;
inset: 0;
background: rgba(44,26,21,.6);
backdrop-filter: blur(8px);
z-index: 200;
display: flex;
align-items: flex-start;
justify-content: center;
padding-top: 15vh;
opacity: 0;
pointer-events: none;
transition: opacity .3s;
}
.search-overlay.open { opacity: 1; pointer-events: auto; }
.search-box {
background: var(--c-white);
border-radius: var(--r-lg);
padding: 2rem;
width: 90%;
max-width: 600px;
box-shadow: 0 32px 80px rgba(44,26,21,.3);
}
.search-box-inner {
display: flex;
align-items: center;
gap: .75rem;
border-bottom: 2px solid var(--c-rose);
padding-bottom: .75rem;
margin-bottom: 1.25rem;
}
.search-icon { font-size: 1.2rem; color: var(--c-blush); }
.search-input {
flex: 1;
border: none;
outline: none;
font-family: var(--f-display);
font-size: 1.3rem;
color: var(--c-deep);
}
.search-input::placeholder { color: var(--c-rose); }
.search-close { font-size: .9rem; color: var(--c-warm); cursor: pointer; }
.search-suggestions h4 { font-size: .7rem; letter-spacing: .15em; text-transform: uppercase; color: var(--c-blush); margin-bottom: .75rem; }
.search-tags { display: flex; flex-wrap: wrap; gap: .5rem; }
</style>
</head>
<body>
<!-- ===== TOP BAR ===== -->
<div class="topbar" role="banner">
✨ Nouveau : Notre guide <strong>Routine Anti-âge 40+</strong> est en ligne — <a href="/anti-age">Lire maintenant</a>
</div>
<!-- ===== HEADER ===== -->
<header class="site-header" id="site-header" role="banner">
<div class="container">
<nav class="nav-inner" role="navigation" aria-label="Navigation principale">
<a href="/" class="logo" aria-label="Guide Beauté - Accueil">Guide <span>Beauté</span></a>
<!-- Desktop nav -->
<ul class="nav-links" role="list">
<li class="nav-item">
<a href="/soins-visage" class="nav-link">Soins Visage</a>
<div class="dropdown" role="menu">
<a href="/soins-visage/anti-age" role="menuitem"><span class="dropdown-icon">✦</span>Anti-âge & Rides</a>
<a href="/soins-visage/hydratation" role="menuitem"><span class="dropdown-icon">✦</span>Hydratation</a>
<a href="/soins-visage/eclat" role="menuitem"><span class="dropdown-icon">✦</span>Éclat & Teint</a>
<a href="/soins-visage/acne" role="menuitem"><span class="dropdown-icon">✦</span>Acné & Pores</a>
<a href="/soins-visage/contour-yeux" role="menuitem"><span class="dropdown-icon">✦</span>Contour des Yeux</a>
</div>
</li>
<li class="nav-item">
<a href="/corps-bien-etre" class="nav-link">Corps & Bien-être</a>
<div class="dropdown" role="menu">
<a href="/corps-bien-etre/minceur" role="menuitem"><span class="dropdown-icon">✦</span>Minceur & Raffermissement</a>
<a href="/corps-bien-etre/cellulite" role="menuitem"><span class="dropdown-icon">✦</span>Anti-cellulite</a>
<a href="/corps-bien-etre/massage" role="menuitem"><span class="dropdown-icon">✦</span>Massage & Relaxation</a>
<a href="/corps-bien-etre/sport-beaute" role="menuitem"><span class="dropdown-icon">✦</span>Sport & Beauté</a>
</div>
</li>
<li class="nav-item">
<a href="/esthetique-medicale" class="nav-link">Esthétique Méd.</a>
<div class="dropdown" role="menu">
<a href="/esthetique-medicale/injections" role="menuitem"><span class="dropdown-icon">✦</span>Injections & Botox</a>
<a href="/esthetique-medicale/chirurgie-visage" role="menuitem"><span class="dropdown-icon">✦</span>Chirurgie du Visage</a>
<a href="/esthetique-medicale/chirurgie-corps" role="menuitem"><span class="dropdown-icon">✦</span>Chirurgie du Corps</a>
<a href="/esthetique-medicale/laser-lumiere" role="menuitem"><span class="dropdown-icon">✦</span>Laser & Lumière Pulsée</a>
<a href="/esthetique-medicale/trouver-chirurgien" role="menuitem"><span class="dropdown-icon">✦</span>Trouver un Chirurgien</a>
</div>
</li>
<li class="nav-item">
<a href="/cheveux-ongles" class="nav-link">Cheveux & Ongles</a>
<div class="dropdown" role="menu">
<a href="/cheveux-ongles/soin-cheveux" role="menuitem"><span class="dropdown-icon">✦</span>Soins Capillaires</a>
<a href="/cheveux-ongles/colorations" role="menuitem"><span class="dropdown-icon">✦</span>Colorations & Balayage</a>
<a href="/cheveux-ongles/chute-cheveux" role="menuitem"><span class="dropdown-icon">✦</span>Chute de Cheveux</a>
<a href="/cheveux-ongles/onglerie" role="menuitem"><span class="dropdown-icon">✦</span>Onglerie</a>
</div>
</li>
<li class="nav-item">
<a href="/makeup" class="nav-link">Maquillage</a>
<div class="dropdown" role="menu">
<a href="/makeup/teint" role="menuitem"><span class="dropdown-icon">✦</span>Fond de Teint & BB Cream</a>
<a href="/makeup/yeux" role="menuitem"><span class="dropdown-icon">✦</span>Yeux</a>
<a href="/makeup/levres" role="menuitem"><span class="dropdown-icon">✦</span>Lèvres</a>
<a href="/makeup/tendances" role="menuitem"><span class="dropdown-icon">✦</span>Tendances Saison</a>
</div>
</li>
<li class="nav-item">
<a href="/tests-produits" class="nav-link">Tests Produits</a>
</li>
<li class="nav-item">
<a href="/blog" class="nav-link">Blog</a>
</li>
</ul>
<div class="nav-actions">
<button class="nav-search-btn" id="searchBtn" aria-label="Rechercher">🔍</button>
<a href="/newsletter" class="btn btn-primary" style="display:none" aria-label="S'inscrire à la newsletter" id="nav-cta">S'abonner</a>
<button class="burger" id="burgerBtn" aria-label="Menu" aria-expanded="false" aria-controls="mobileNav">
<span></span><span></span><span></span>
</button>
</div>
</nav>
</div>
<!-- Mobile nav -->
<nav class="mobile-nav" id="mobileNav" aria-label="Menu mobile" role="navigation">
<div class="mobile-nav-section">
<h3>Soins & Beauté</h3>
<a href="/soins-visage" class="mobile-nav-link">Soins Visage</a>
<a href="/soins-visage/anti-age" class="mobile-nav-link">Anti-âge & Rides</a>
<a href="/corps-bien-etre" class="mobile-nav-link">Corps & Bien-être</a>
<a href="/makeup" class="mobile-nav-link">Maquillage</a>
<a href="/cheveux-ongles" class="mobile-nav-link">Cheveux & Ongles</a>
</div>
<div class="mobile-nav-section">
<h3>Esthétique Médicale</h3>
<a href="/esthetique-medicale/injections" class="mobile-nav-link">Injections & Botox</a>
<a href="/esthetique-medicale/chirurgie-visage" class="mobile-nav-link">Chirurgie du Visage</a>
<a href="/esthetique-medicale/chirurgie-corps" class="mobile-nav-link">Chirurgie du Corps</a>
<a href="/esthetique-medicale/trouver-chirurgien" class="mobile-nav-link">Trouver un Chirurgien</a>
</div>
<div class="mobile-nav-section">
<h3>Ressources</h3>
<a href="/tests-produits" class="mobile-nav-link">Tests Produits</a>
<a href="/blog" class="mobile-nav-link">Blog & Conseils</a>
<a href="/experts" class="mobile-nav-link">Nos Expertes</a>
<a href="/newsletter" class="mobile-nav-link">Newsletter Beauté</a>
</div>
</nav>
</header>
<!-- ===== SEARCH OVERLAY ===== -->
<div class="search-overlay" id="searchOverlay" role="dialog" aria-modal="true" aria-label="Recherche">
<div class="search-box">
<div class="search-box-inner">
<span class="search-icon">🔍</span>
<input type="search" class="search-input" placeholder="Rechercher un soin, un produit…" id="searchInput" autocomplete="off">
<button class="search-close" id="searchClose" aria-label="Fermer la recherche">✕</button>
</div>
<div class="search-suggestions">
<h4>Recherches populaires</h4>
<div class="search-tags">
<a href="/soins-visage/anti-age" class="tag">Anti-âge</a>
<a href="/soins-visage/hydratation" class="tag">Crème hydratante</a>
<a href="/esthetique-medicale/injections" class="tag">Botox</a>
<a href="/corps-bien-etre/cellulite" class="tag">Anti-cellulite</a>
<a href="/cheveux-ongles/chute-cheveux" class="tag">Chute de cheveux</a>
<a href="/makeup/teint" class="tag">Fond de teint</a>
<a href="/soins-visage/acne" class="tag">Soins acné</a>
</div>
</div>
</div>
</div>
<main id="main-content">
<!-- ===== HERO ===== -->
<section class="hero" aria-label="Section principale">
<div class="hero-bg-circle"></div>
<div class="hero-content">
<div class="hero-badge">Mis à jour Juin 2026</div>
<h1 class="hero-title">
La beauté,<br>
<span class="accent">c'est un art</span>
qui se maîtrise.
</h1>
<p class="hero-desc">
Conseils d'expertes, routines personnalisées, avis produits vérifiés et guides esthétique médicale. Tout ce dont vous avez besoin pour rayonner — à chaque étape de votre vie.
</p>
<div class="hero-actions">
<a href="/test-peau" class="btn btn-primary" aria-label="Découvrir ma routine personnalisée">Mon Diagnostic Peau ✦</a>
<a href="/blog" class="btn btn-outline" aria-label="Lire nos derniers articles">Nos Articles</a>
</div>
<div class="hero-stats" role="list" aria-label="Nos chiffres clés">
<div class="stat" role="listitem">
<span class="stat-num" data-target="840">0</span>
<span class="stat-label">Articles Experts</span>
</div>
<div class="stat" role="listitem">
<span class="stat-num" data-target="120">0</span>
<span class="stat-label">Produits Testés</span>
</div>
<div class="stat" role="listitem">
<span class="stat-num" data-target="38">0</span>
<span class="stat-label">Spécialistes</span>
</div>
</div>
</div>
<!-- Hero visual (right column) -->
<div class="hero-visual" aria-hidden="true">
<div class="hero-img-wrap">
<img
src="https://images.unsplash.com/photo-1596462502278-27bfdc403348?w=900&q=80&auto=format&fit=crop"
alt="Femme élégante appliquant un soin visage naturel"
width="900" height="1200"
loading="eager"
fetchpriority="high"
>
</div>
<!-- Floating card -->
<div class="hero-card" role="complementary" aria-label="Article mis en avant">
<span class="hero-card-icon">🌿</span>
<div class="hero-card-text">
<strong>Nouveau Guide</strong>
<span>Routine anti-âge naturelle 40+</span>
</div>
</div>
</div>
</section>
<!-- ===== TRUST BAR ===== -->
<aside class="trust-bar" aria-label="Nos engagements">
<div class="trust-bar-inner">
<div class="trust-item"><span>✓</span><span>Contenus Vérifiés par des Médecins</span></div>
<div class="trust-item"><span>✓</span><span>Produits Testés en Laboratoire</span></div>
<div class="trust-item"><span>✓</span><span>Avis Lecteurs 100% Authentiques</span></div>
<div class="trust-item"><span>✓</span><span>Mise à Jour Continue 2026</span></div>
<div class="trust-item"><span>✓</span><span>Sans Publicité Déguisée</span></div>
</div>
</aside>
<!-- ===== CATEGORIES ===== -->
<section class="categories" aria-labelledby="cat-heading">
<div class="container">
<div class="categories-header reveal">
<span class="section-label">Explorez</span>
<h2 class="section-title" id="cat-heading">Votre univers <em>beauté</em> complet</h2>
<p class="section-intro">Du soin quotidien aux gestes experts, découvrez toutes nos rubriques.</p>
</div>
<div class="cat-grid">
<!-- Featured large -->
<div class="cat-card featured reveal reveal-delay-1" role="article">
<img
src="https://images.unsplash.com/photo-1570172619644-dfd03ed5d881?w=600&q=80&auto=format&fit=crop"
alt="Soins visage anti-âge - femme appliquant une crème"
width="600" height="800"
loading="lazy"
>
<div class="cat-card-body">
<p class="cat-card-label">★ Incontournable</p>
<a href="/soins-visage/anti-age">
<h3 class="cat-card-title">Soins<br>Anti-âge</h3>
<span class="cat-card-arrow">→</span>
</a>
</div>
</div>
<div class="cat-card reveal reveal-delay-2" role="article">
<img
src="https://images.unsplash.com/photo-1522337360788-8b13dee7a37e?w=400&q=80&auto=format&fit=crop"
alt="Maquillage tendance - palette de teintes naturelles"
width="400" height="533"
loading="lazy"
>
<div class="cat-card-body">
<p class="cat-card-label">Tendances</p>
<a href="/makeup">
<h3 class="cat-card-title">Maquillage</h3>
<span class="cat-card-arrow">→</span>
</a>
</div>
</div>
<div class="cat-card reveal reveal-delay-3" role="article">
<img
src="https://images.unsplash.com/photo-1559757175-0eb30cd8c063?w=400&q=80&auto=format&fit=crop"
alt="Bien-être corps - rituel spa et massage"
width="400" height="533"
loading="lazy"
>
<div class="cat-card-body">
<p class="cat-card-label">Rituels</p>
<a href="/corps-bien-etre">
<h3 class="cat-card-title">Corps &<br>Bien-être</h3>
<span class="cat-card-arrow">→</span>
</a>
</div>
</div>
<div class="cat-card reveal reveal-delay-2" role="article">
<img
src="https://images.unsplash.com/photo-1634449571010-02389ed0f9b0?w=400&q=80&auto=format&fit=crop"
alt="Esthétique médicale - médecin esthétique consultation"
width="400" height="533"
loading="lazy"
>
<div class="cat-card-body">
<p class="cat-card-label">Guide Expert</p>
<a href="/esthetique-medicale">
<h3 class="cat-card-title">Esthétique<br>Médicale</h3>
<span class="cat-card-arrow">→</span>
</a>
</div>
</div>
<div class="cat-card reveal reveal-delay-3" role="article">
<img
src="https://images.unsplash.com/photo-1522338242992-e1a54906a8da?w=400&q=80&auto=format&fit=crop"
alt="Soins capillaires - cheveux brillants et sains"
width="400" height="533"
loading="lazy"
>
<div class="cat-card-body">
<p class="cat-card-label">Cheveux</p>
<a href="/cheveux-ongles">
<h3 class="cat-card-title">Cheveux<br>& Ongles</h3>
<span class="cat-card-arrow">→</span>
</a>
</div>
</div>
</div>
</div>
</section>
<!-- ===== EDITORIAL STRIP ===== -->
<div class="editorial-strip" aria-hidden="true">
<div class="strip-track">
<!-- Duplicated for infinite loop -->
<span class="strip-item"><span class="strip-dot"></span> Routine du matin</span>
<span class="strip-item"><span class="strip-dot"></span> Glow naturel</span>
<span class="strip-item"><span class="strip-dot"></span> Anti-âge doux</span>
<span class="strip-item"><span class="strip-dot"></span> Peaux sensibles</span>
<span class="strip-item"><span class="strip-dot"></span> Clean beauty</span>
<span class="strip-item"><span class="strip-dot"></span> SPF & protection</span>
<span class="strip-item"><span class="strip-dot"></span> Soins biorésorbables</span>
<span class="strip-item"><span class="strip-dot"></span> Ingrédients actifs</span>
<span class="strip-item"><span class="strip-dot"></span> Beauté holistique</span>
<span class="strip-item"><span class="strip-dot"></span> Routine du matin</span>
<span class="strip-item"><span class="strip-dot"></span> Glow naturel</span>
<span class="strip-item"><span class="strip-dot"></span> Anti-âge doux</span>
<span class="strip-item"><span class="strip-dot"></span> Peaux sensibles</span>
<span class="strip-item"><span class="strip-dot"></span> Clean beauty</span>
<span class="strip-item"><span class="strip-dot"></span> SPF & protection</span>
<span class="strip-item"><span class="strip-dot"></span> Soins biorésorbables</span>
<span class="strip-item"><span class="strip-dot"></span> Ingrédients actifs</span>
<span class="strip-item"><span class="strip-dot"></span> Beauté holistique</span>
</div>
</div>
<!-- ===== ARTICLES ===== -->
<section class="articles" aria-labelledby="articles-heading">
<div class="container">
<div class="articles-header">
<div class="reveal">
<span class="section-label">À Lire</span>
<h2 class="section-title" id="articles-heading">Nos derniers <em>articles experts</em></h2>
</div>
<a href="/blog" class="btn btn-outline reveal">Tout voir</a>
</div>
<div class="articles-grid">
<!-- Main article -->
<article class="article-card main reveal" itemscope itemtype="https://schema.org/Article">
<div class="article-img">
<img
src="https://images.unsplash.com/photo-1487412947147-5cebf100ffc2?w=800&q=80&auto=format&fit=crop"
alt="Femme 40 ans avec belle peau grâce à routine anti-âge"
width="800" height="340"
loading="lazy"
itemprop="image"
>
<span class="expert-badge">✓ Validé par une dermatologue</span>
</div>
<div class="article-body">
<div class="article-meta">
<span class="tag">Anti-âge</span>
<div class="article-author" itemprop="author" itemscope itemtype="https://schema.org/Person">
<img src="https://i.pravatar.cc/48?img=47" alt="Dr. Sophie Martin" width="24" height="24" loading="lazy">
<span itemprop="name">Dr. Sophie Martin</span>
</div>
<span class="article-date">
<time itemprop="datePublished" datetime="2026-05-28">28 mai 2026</time>
</span>
</div>
<h3 class="article-title" itemprop="headline">
<a href="/soins-visage/anti-age/routine-40-ans">Routine Anti-âge 40 ans : les 7 gestes que les dermatologues recommandent vraiment</a>
</h3>
<p class="article-excerpt" itemprop="description">
Acide hyaluronique, rétinol, SPF… La dermatologue Sophie Martin démêle le vrai du faux et compose pour vous une routine personnalisée en fonction de votre type de peau. Résultats visibles en 4 semaines.
</p>
<span class="article-read-more">Lire l'article</span>
</div>
</article>
<!-- Article 2 -->
<article class="article-card reveal reveal-delay-1" itemscope itemtype="https://schema.org/Article">
<div class="article-img">
<img
src="https://images.unsplash.com/photo-1512290923902-8a9f81dc236c?w=500&q=80&auto=format&fit=crop"
alt="Crème hydratante naturelle - textures et ingrédients"
width="500" height="200"
loading="lazy"
itemprop="image"
>
</div>
<div class="article-body">
<div class="article-meta">
<span class="tag">Tests Produits</span>
<span class="article-date"><time datetime="2026-05-20">20 mai 2026</time></span>
</div>
<h3 class="article-title" itemprop="headline">
<a href="/tests-produits/meilleures-cremes-hydratantes-2026">Test : les 10 meilleures crèmes hydratantes testées en laboratoire (2026)</a>
</h3>
<p class="article-excerpt">Notre équipe a passé 60 produits au crible pendant 8 semaines. Voici le classement objectif.</p>
<span class="article-read-more">Lire l'article</span>
</div>
</article>
<!-- Article 3 -->
<article class="article-card reveal reveal-delay-2" itemscope itemtype="https://schema.org/Article">
<div class="article-img">
<img
src="https://images.unsplash.com/photo-1616394584738-fc6e612e71b9?w=500&q=80&auto=format&fit=crop"
alt="Injection botox médecin consultation esthétique"
width="500" height="200"
loading="lazy"
itemprop="image"
>
<span class="expert-badge">✓ Validé Médical</span>
</div>
<div class="article-body">
<div class="article-meta">
<span class="tag">Esthétique Méd.</span>
<span class="article-date"><time datetime="2026-05-15">15 mai 2026</time></span>
</div>
<h3 class="article-title" itemprop="headline">
<a href="/esthetique-medicale/injections/botox-guide-complet">Botox : tout ce qu'il faut savoir avant de se lancer (prix, risques, durée)</a>
</h3>
<p class="article-excerpt">Notre guide médical complet pour décider en toute connaissance de cause, avec l'avis de 5 chirurgiens esthétiques.</p>
<span class="article-read-more">Lire l'article</span>
</div>
</article>
</div>
</div>
</section>
<!-- ===== SKIN QUIZ / ROUTINE BUILDER ===== -->
<section class="routine" aria-labelledby="routine-heading">
<div class="container">
<div class="routine-inner">
<div class="routine-content reveal">
<span class="section-label">Personnalisé</span>
<h2 class="section-title" id="routine-heading">Votre <em>routine</em><br>sur-mesure</h2>
<p class="section-intro">Répondez à 4 questions et découvrez la routine beauté parfaite pour votre peau. Créé avec nos dermatologues partenaires.</p>
<br><br>
<div style="display:flex; flex-direction:column; gap:.75rem;">
<div style="display:flex; align-items:center; gap:.75rem; color: var(--c-goldlt);">
<span style="font-size:1.3rem;">🎯</span>
<span style="font-size:.9rem;">Résultats personnalisés en 2 minutes</span>
</div>
<div style="display:flex; align-items:center; gap:.75rem; color: var(--c-goldlt);">
<span style="font-size:1.3rem;">👩⚕️</span>
<span style="font-size:.9rem;">Validé par des dermatologues</span>
</div>
<div style="display:flex; align-items:center; gap:.75rem; color: var(--c-goldlt);">
<span style="font-size:1.3rem;">🌿</span>
<span style="font-size:.9rem;">Produits sélectionnés sans parabène ni perturbateur endocrinien</span>
</div>
</div>
</div>
<!-- Skin Quiz Widget -->
<div class="skin-quiz reveal reveal-delay-2" role="form" aria-label="Quiz diagnostic peau">
<div class="quiz-progress" role="progressbar" aria-valuemin="0" aria-valuemax="4" aria-valuenow="1">
<div class="quiz-dot done" id="qd1"></div>
<div class="quiz-dot" id="qd2"></div>
<div class="quiz-dot" id="qd3"></div>
<div class="quiz-dot" id="qd4"></div>
</div>
<!-- Step 1 -->
<div class="quiz-step active" id="qs1">
<p class="quiz-title">Quel est votre type de peau ?</p>
<div class="quiz-options">
<button class="quiz-opt" data-step="1" data-val="normale">Normale</button>
<button class="quiz-opt" data-step="1" data-val="seche">Sèche</button>
<button class="quiz-opt" data-step="1" data-val="mixte">Mixte</button>
<button class="quiz-opt" data-step="1" data-val="grasse">Grasse</button>
</div>
</div>
<!-- Step 2 -->
<div class="quiz-step" id="qs2">
<p class="quiz-title">Votre principale préoccupation ?</p>
<div class="quiz-options">
<button class="quiz-opt" data-step="2" data-val="rides">Rides & Anti-âge</button>
<button class="quiz-opt" data-step="2" data-val="eclat">Éclat & Teint terne</button>
<button class="quiz-opt" data-step="2" data-val="acne">Acné & Pores</button>
<button class="quiz-opt" data-step="2" data-val="hydrat">Déshydratation</button>
</div>
</div>
<!-- Step 3 -->
<div class="quiz-step" id="qs3">
<p class="quiz-title">Votre tranche d'âge ?</p>
<div class="quiz-options">
<button class="quiz-opt" data-step="3" data-val="20s">20 – 30 ans</button>
<button class="quiz-opt" data-step="3" data-val="30s">30 – 40 ans</button>
<button class="quiz-opt" data-step="3" data-val="40s">40 – 50 ans</button>
<button class="quiz-opt" data-step="3" data-val="50+">50 ans et +</button>
</div>
</div>
<!-- Step 4 -->
<div class="quiz-step" id="qs4">
<p class="quiz-title">Votre budget mensuel ?</p>
<div class="quiz-options">
<button class="quiz-opt" data-step="4" data-val="eco">Moins de 30€</button>
<button class="quiz-opt" data-step="4" data-val="mid">30€ – 80€</button>
<button class="quiz-opt" data-step="4" data-val="prem">80€ – 150€</button>
<button class="quiz-opt" data-step="4" data-val="lux">150€ et plus</button>
</div>
</div>
<!-- Result -->
<div class="routine-result" id="quizResult">
<div class="result-type" id="resultType">Votre routine : Éclat & Jeunesse</div>
<p class="result-desc" id="resultDesc">Basée sur vos réponses, voici notre programme sur-mesure validé par nos experts.</p>
<a href="/routine-sur-mesure" class="btn btn-gold" style="width:100%; justify-content:center;">Voir ma routine complète ✦</a>
</div>
</div>
</div>
</div>
</section>
<!-- ===== EXPERTS (E-E-A-T) ===== -->
<section class="experts" aria-labelledby="experts-heading">
<div class="container">
<div class="experts-header reveal">
<span class="section-label">Notre Équipe</span>
<h2 class="section-title" id="experts-heading">Des <em>expertes</em> à votre service</h2>
<p class="section-intro">Chaque article de Guide Beauté est rédigé ou validé par un professionnel de santé ou un expert beauté certifié. C'est notre engagement.</p>
</div>
<div class="experts-grid">
<article class="expert-card reveal reveal-delay-1" itemscope itemtype="https://schema.org/Person">
<img
class="expert-img"
src="https://i.pravatar.cc/300?img=47"
alt="Dr. Sophie Martin, Dermatologue"
width="300" height="200"
loading="lazy"
itemprop="image"
>
<div class="expert-body">
<h3 class="expert-name" itemprop="name">Dr. Sophie Martin</h3>
<p class="expert-title" itemprop="jobTitle">Dermatologue — Paris</p>
<p class="expert-bio" itemprop="description">15 ans d'expérience en dermatologie esthétique. Spécialiste des peaux matures et du traitement des hyperpigmentations.</p>
<div class="expert-creds">
<span class="expert-cred">Anti-âge</span>
<span class="expert-cred">Laser</span>
<span class="expert-cred">CPCP</span>
</div>
</div>
</article>
<article class="expert-card reveal reveal-delay-2" itemscope itemtype="https://schema.org/Person">
<img
class="expert-img"
src="https://i.pravatar.cc/300?img=44"
alt="Isabelle Renard, Cosméticienne Clinique"
width="300" height="200"
loading="lazy"
itemprop="image"
>
<div class="expert-body">
<h3 class="expert-name" itemprop="name">Isabelle Renard</h3>
<p class="expert-title" itemprop="jobTitle">Cosméticienne Clinique</p>
<p class="expert-bio" itemprop="description">Formulatrice de soins naturels et clean beauty. Co-autrice de "La peau, miroir de santé" (Éditions Albin Michel).</p>
<div class="expert-creds">
<span class="expert-cred">Clean Beauty</span>
<span class="expert-cred">Formulation</span>
</div>
</div>
</article>
<article class="expert-card reveal reveal-delay-3" itemscope itemtype="https://schema.org/Person">
<img
class="expert-img"
src="https://i.pravatar.cc/300?img=32"
alt="Dr. Camille Leroux, Chirurgienne Esthétique"
width="300" height="200"
loading="lazy"
itemprop="image"
>
<div class="expert-body">
<h3 class="expert-name" itemprop="name">Dr. Camille Leroux</h3>
<p class="expert-title" itemprop="jobTitle">Chirurgienne Esthétique</p>
<p class="expert-bio" itemprop="description">Chirurgienne plasticienne certifiée. Expertise en lifting, rhinoplastie et interventions mini-invasives. Membre de la SOFCEP.</p>
<div class="expert-creds">
<span class="expert-cred">Chirurgie</span>
<span class="expert-cred">SOFCEP</span>
</div>
</div>
</article>
<article class="expert-card reveal reveal-delay-4" itemscope itemtype="https://schema.org/Person">
<img
class="expert-img"
src="https://i.pravatar.cc/300?img=25"
alt="Marie Dupont, Experte Maquillage & Colorimétrie"
width="300" height="200"
loading="lazy"
itemprop="image"
>
<div class="expert-body">
<h3 class="expert-name" itemprop="name">Marie Dupont</h3>
<p class="expert-title" itemprop="jobTitle">Maquilleuse Professionnelle</p>
<p class="expert-bio" itemprop="description">20 ans en backstage fashion weeks et cinema. Colorimétrie & techniques personnalisées pour toutes carnations.</p>
<div class="expert-creds">
<span class="expert-cred">Makeup</span>
<span class="expert-cred">Colorimétrie</span>
</div>
</div>
</article>
</div>
<div style="text-align:center; margin-top:3rem;" class="reveal">
<a href="/experts" class="btn btn-outline">Rencontrer toute l'équipe</a>
</div>
</div>
</section>
<!-- ===== PRODUCTS ===== -->
<section class="products" aria-labelledby="products-heading">
<div class="container">
<div class="products-header">
<div class="reveal">
<span class="section-label">Sélection 2026</span>
<h2 class="section-title" id="products-heading">Produits <em>testés</em> & approuvés</h2>
</div>
<div class="products-tabs reveal" role="tablist" aria-label="Catégories de produits">
<button class="tab-btn active" role="tab" aria-selected="true" data-tab="visage">Visage</button>
<button class="tab-btn" role="tab" aria-selected="false" data-tab="corps">Corps</button>
<button class="tab-btn" role="tab" aria-selected="false" data-tab="cheveux">Cheveux</button>
<button class="tab-btn" role="tab" aria-selected="false" data-tab="makeup">Makeup</button>
</div>
</div>
<div class="products-grid" role="list">
<article class="product-card reveal reveal-delay-1" role="listitem" itemscope itemtype="https://schema.org/Product">
<div class="product-img-wrap">
<img
src="https://images.unsplash.com/photo-1556228578-8c89e6adf883?w=400&q=80&auto=format&fit=crop"
alt="Crème anti-âge luxe en flacon blanc"
width="400" height="400"
loading="lazy"
itemprop="image"
>
<span class="product-badge">Coup de ♥</span>
</div>
<div class="product-body">
<p class="product-brand" itemprop="brand">La Mer</p>
<h3 class="product-name" itemprop="name">Crème de La Mer</h3>
<div>
<span class="product-stars">★★★★★</span>
<span class="product-reviews">(482 avis)</span>
</div>
<div class="product-price">
<span class="price-current" itemprop="price">189€</span>
</div>
</div>
</article>
<article class="product-card reveal reveal-delay-2" role="listitem" itemscope itemtype="https://schema.org/Product">
<div class="product-img-wrap">
<img
src="https://images.unsplash.com/photo-1598440947619-2c35fc9aa908?w=400&q=80&auto=format&fit=crop"
alt="Sérum vitamine C en compte-gouttes ambré"
width="400" height="400"
loading="lazy"
itemprop="image"
>
<span class="product-badge">Meilleure vente</span>
</div>
<div class="product-body">
<p class="product-brand" itemprop="brand">The Ordinary</p>
<h3 class="product-name" itemprop="name">Sérum Vitamine C 23%</h3>
<div>
<span class="product-stars">★★★★☆</span>
<span class="product-reviews">(1 204 avis)</span>
</div>
<div class="product-price">
<span class="price-current" itemprop="price">13,90€</span>
<span class="price-old">17€</span>
</div>
</div>
</article>
<article class="product-card reveal reveal-delay-3" role="listitem" itemscope itemtype="https://schema.org/Product">
<div class="product-img-wrap">
<img
src="https://images.unsplash.com/photo-1620916566398-39f1143ab7be?w=400&q=80&auto=format&fit=crop"
alt="Huile sèche corps dorée en flacon vaporisateur"
width="400" height="400"
loading="lazy"
itemprop="image"
>
</div>
<div class="product-body">
<p class="product-brand" itemprop="brand">Nuxe</p>
<h3 class="product-name" itemprop="name">Huile Prodigieuse® Or</h3>
<div>
<span class="product-stars">★★★★★</span>
<span class="product-reviews">(3 871 avis)</span>
</div>
<div class="product-price">
<span class="price-current" itemprop="price">28,50€</span>
</div>
</div>
</article>
<article class="product-card reveal reveal-delay-4" role="listitem" itemscope itemtype="https://schema.org/Product">
<div class="product-img-wrap">
<img
src="https://images.unsplash.com/photo-1571781926291-c477ebfd024b?w=400&q=80&auto=format&fit=crop"
alt="Masque tissu hydratant - soin visage coréen"
width="400" height="400"
loading="lazy"
itemprop="image"
>
<span class="product-badge">Nouveau</span>
</div>
<div class="product-body">
<p class="product-brand" itemprop="brand">Avène</p>
<h3 class="product-name" itemprop="name">Masque Cicalfate Repair+</h3>
<div>
<span class="product-stars">★★★★☆</span>
<span class="product-reviews">(268 avis)</span>
</div>
<div class="product-price">
<span class="price-current" itemprop="price">22€</span>
<span class="price-old">25€</span>
</div>
</div>
</article>
</div>
<div style="text-align:center; margin-top:2.5rem;" class="reveal">
<a href="/tests-produits" class="btn btn-outline">Tous nos tests produits →</a>
</div>
</div>
</section>
<!-- ===== TESTIMONIALS ===== -->
<section class="testimonials" aria-labelledby="testi-heading">
<div class="container">
<div class="testimonials-header reveal">
<span class="section-label">Témoignages</span>
<h2 class="section-title" id="testi-heading">Elles nous font <em>confiance</em></h2>
<p class="section-intro">Plus de 42 000 lectrices nous font confiance chaque mois. Voici leurs retours authentiques.</p>
</div>
<div class="testimonials-track-wrap">
<div class="testimonials-track" id="testiTrack">
<div class="testimonial-card" itemscope itemtype="https://schema.org/Review">
<div class="testimonial-stars">★★★★★</div>
<p class="testimonial-text" itemprop="reviewBody">"Grâce à la routine anti-âge recommandée par Dr. Martin, ma peau a retrouvé un éclat que je n'avais plus depuis mes 30 ans. Les conseils sont clairs, les produits accessibles. Je recommande à toutes mes amies !"</p>
<div class="testimonial-author">
<img src="https://i.pravatar.cc/88?img=12" alt="Claire B." width="44" height="44" loading="lazy">
<div>
<p class="testimonial-name" itemprop="author">Claire B.</p>
<p class="testimonial-info">Lectrice depuis 3 ans · Lyon</p>
<p class="testimonial-verified">✓ Avis vérifié</p>
</div>
</div>
</div>
<div class="testimonial-card" itemscope itemtype="https://schema.org/Review">
<div class="testimonial-stars">★★★★★</div>
<p class="testimonial-text" itemprop="reviewBody">"Le guide sur le botox m'a permis de poser les bonnes questions à mon médecin. J'ai trouvé un praticien recommandé via votre annuaire et tout s'est parfaitement passé. Un site de confiance !"</p>
<div class="testimonial-author">
<img src="https://i.pravatar.cc/88?img=9" alt="Nathalie D." width="44" height="44" loading="lazy">
<div>
<p class="testimonial-name" itemprop="author">Nathalie D.</p>
<p class="testimonial-info">Lectrice depuis 5 ans · Paris</p>
<p class="testimonial-verified">✓ Avis vérifié</p>
</div>
</div>
</div>
<div class="testimonial-card" itemscope itemtype="https://schema.org/Review">
<div class="testimonial-stars">★★★★★</div>
<p class="testimonial-text" itemprop="reviewBody">"Le quiz de diagnostic peau m'a bluffée. Ma routine suggérée est parfaitement adaptée à mes 50 ans et à ma peau sèche. En 6 semaines, mes collègues m'ont demandé ce que je faisais différemment !"</p>
<div class="testimonial-author">
<img src="https://i.pravatar.cc/88?img=21" alt="Sylvie M." width="44" height="44" loading="lazy">
<div>
<p class="testimonial-name" itemprop="author">Sylvie M.</p>
<p class="testimonial-info">Lectrice depuis 2 ans · Bordeaux</p>
<p class="testimonial-verified">✓ Avis vérifié</p>
</div>
</div>
</div>
<div class="testimonial-card" itemscope itemtype="https://schema.org/Review">
<div class="testimonial-stars">★★★★☆</div>
<p class="testimonial-text" itemprop="reviewBody">"J'apprécie énormément la rigueur scientifique des articles. Chaque affirmation est sourcée et validée par un médecin. C'est rare sur le web beauté et ça fait toute la différence !"</p>
<div class="testimonial-author">
<img src="https://i.pravatar.cc/88?img=28" alt="Émilie R." width="44" height="44" loading="lazy">
<div>
<p class="testimonial-name" itemprop="author">Émilie R.</p>
<p class="testimonial-info">Lectrice depuis 4 ans · Nantes</p>
<p class="testimonial-verified">✓ Avis vérifié</p>
</div>
</div>
</div>
</div>
</div>
<div class="testimonials-nav" aria-label="Navigation témoignages">
<button class="testi-btn" id="testiPrev" aria-label="Témoignage précédent">←</button>
<div class="testi-dots" role="list">
<div class="testi-dot active" data-idx="0" role="listitem"></div>
<div class="testi-dot" data-idx="1" role="listitem"></div>
</div>
<button class="testi-btn" id="testiNext" aria-label="Témoignage suivant">→</button>
</div>
</div>
</section>
<!-- ===== NEWSLETTER ===== -->
<section class="newsletter" aria-labelledby="nl-heading">
<div class="container">
<div class="newsletter-inner">
<div class="newsletter-content reveal">
<span class="section-label">Newsletter</span>
<h2 class="section-title" id="nl-heading">La beauté <em>experte</em><br>dans votre boîte mail</h2>
<p class="newsletter-desc">Rejoignez 42 000 abonnées qui reçoivent chaque semaine les meilleurs conseils beauté, soins anti-âge et nouveautés produits.</p>
<div class="newsletter-perks">
<div class="perk"><div class="perk-icon">🎁</div> Le guide PDF "30 soins naturels maison" offert à l'inscription</div>
<div class="perk"><div class="perk-icon">📧</div> 1 email par semaine, pas de spam, désinscription en 1 clic</div>
<div class="perk"><div class="perk-icon">🔒</div> Vos données restent confidentielles (RGPD)</div>
</div>
</div>
<div class="reveal reveal-delay-2">
<form class="nl-form" id="nlForm" novalidate aria-label="Formulaire d'inscription newsletter">
<div class="nl-row">
<input type="text" class="nl-input" placeholder="Votre prénom" autocomplete="given-name" required aria-label="Votre prénom">
</div>
<div class="nl-row">
<input type="email" class="nl-input" placeholder="Votre adresse email" autocomplete="email" required aria-label="Votre adresse email" id="nlEmail">
<button type="submit" class="btn btn-gold" aria-label="S'abonner à la newsletter">Je m'abonne</button>
</div>
<p class="nl-privacy">En vous inscrivant, vous acceptez nos <a href="/confidentialite">conditions de confidentialité</a>. Désinscription possible à tout moment.</p>
</form>
<div id="nlSuccess" style="display:none; text-align:center; padding:2rem 0;">
<div style="font-size:2.5rem; margin-bottom:.5rem;">💌</div>
<p style="font-family:var(--f-display); font-size:1.5rem; color:var(--c-cream); font-style:italic;">Bienvenue dans la communauté !</p>
<p style="color:var(--c-goldlt); font-size:.9rem; margin-top:.5rem;">Votre guide PDF arrive dans quelques minutes.</p>
</div>
</div>
</div>
</div>
</section>
</main>
<!-- ===== FOOTER ===== -->
<footer class="site-footer" role="contentinfo">
<div class="container">
<div class="footer-grid">
<div class="footer-brand">
<a href="/" class="logo" aria-label="Guide Beauté - Accueil">Guide <span>Beauté</span></a>
<p class="footer-desc">Votre référence experte en soins beauté, anti-âge et esthétique médicale. Contenus validés par des professionnels de santé depuis 2018.</p>
<div class="footer-social" aria-label="Nos réseaux sociaux">
<a href="https://instagram.com/guidebeaute" class="social-link" aria-label="Instagram Guide Beauté" target="_blank" rel="noopener">📸</a>
<a href="https://tiktok.com/@guidebeaute" class="social-link" aria-label="TikTok Guide Beauté" target="_blank" rel="noopener">♪</a>
<a href="https://pinterest.com/guidebeaute" class="social-link" aria-label="Pinterest Guide Beauté" target="_blank" rel="noopener">📌</a>
<a href="https://youtube.com/guidebeaute" class="social-link" aria-label="YouTube Guide Beauté" target="_blank" rel="noopener">▶</a>
</div>
</div>
<div class="footer-col">
<h4>Soins & Beauté</h4>
<ul>
<li><a href="/soins-visage/anti-age">Anti-âge & Rides</a></li>
<li><a href="/soins-visage/hydratation">Hydratation</a></li>
<li><a href="/soins-visage/eclat">Éclat du Teint</a></li>
<li><a href="/soins-visage/acne">Soins Acné</a></li>
<li><a href="/corps-bien-etre">Corps & Bien-être</a></li>
<li><a href="/makeup">Maquillage</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Esthétique Médicale</h4>
<ul>
<li><a href="/esthetique-medicale/injections">Injections & Botox</a></li>
<li><a href="/esthetique-medicale/chirurgie-visage">Chirurgie Visage</a></li>
<li><a href="/esthetique-medicale/chirurgie-corps">Chirurgie Corps</a></li>
<li><a href="/esthetique-medicale/laser-lumiere">Laser & IPL</a></li>
<li><a href="/esthetique-medicale/trouver-chirurgien">Annuaire Chirurgiens</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Guide Beauté</h4>
<ul>
<li><a href="/a-propos">À Propos</a></li>
<li><a href="/experts">Notre Équipe Experte</a></li>
<li><a href="/tests-produits">Tests Produits</a></li>
<li><a href="/blog">Blog & Conseils</a></li>
<li><a href="/newsletter">Newsletter</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>© 2026 Guide Beauté — Tous droits réservés.</p>
<nav class="footer-legal" aria-label="Liens légaux">
<a href="/mentions-legales">Mentions légales</a>
<a href="/confidentialite">Politique de confidentialité</a>
<a href="/cookies">Gestion des cookies</a>
<a href="/sitemap.xml">Sitemap</a>
</nav>
</div>
</div>
</footer>
<!-- ===== SCROLL TO TOP ===== -->
<button class="scroll-top" id="scrollTop" aria-label="Retour en haut de page">↑</button>
<!-- ===== JAVASCRIPT ===== -->
<script>
(function() {
'use strict';
/* ---- Sticky header shadow ---- */
const header = document.getElementById('site-header');
const navCta = document.getElementById('nav-cta');
window.addEventListener('scroll', () => {
const s = window.scrollY > 60;
header.classList.toggle('scrolled', s);
if (navCta) navCta.style.display = s ? 'inline-flex' : 'none';
}, { passive: true });
/* ---- Burger menu ---- */
const burger = document.getElementById('burgerBtn');
const mobileNav = document.getElementById('mobileNav');
burger.addEventListener('click', () => {
const open = burger.classList.toggle('open');
mobileNav.classList.toggle('open', open);
burger.setAttribute('aria-expanded', open);
document.body.style.overflow = open ? 'hidden' : '';
});
// Close on outside click
document.addEventListener('click', (e) => {
if (!header.contains(e.target) && mobileNav.classList.contains('open')) {
burger.classList.remove('open');
mobileNav.classList.remove('open');
burger.setAttribute('aria-expanded', 'false');
document.body.style.overflow = '';
}
});
/* ---- Search overlay ---- */
const searchBtn = document.getElementById('searchBtn');
const searchOverlay = document.getElementById('searchOverlay');
const searchClose = document.getElementById('searchClose');
const searchInput = document.getElementById('searchInput');
searchBtn.addEventListener('click', () => {
searchOverlay.classList.add('open');
setTimeout(() => searchInput.focus(), 100);
});
const closeSearch = () => searchOverlay.classList.remove('open');
searchClose.addEventListener('click', closeSearch);
searchOverlay.addEventListener('click', (e) => { if (e.target === searchOverlay) closeSearch(); });
document.addEventListener('keydown', (e) => { if (e.key === 'Escape') closeSearch(); });
/* ---- Hero counter animation ---- */
const counters = document.querySelectorAll('[data-target]');
const runCounters = () => {
counters.forEach(el => {
const target = +el.dataset.target;
const suffix = target >= 100 ? '+' : '+';
let current = 0;
const step = Math.ceil(target / 60);
const tick = () => {
current = Math.min(current + step, target);
el.textContent = current + suffix;
if (current < target) requestAnimationFrame(tick);
};
tick();
});
};
// Trigger when hero is visible
const heroObs = new IntersectionObserver((entries) => {
if (entries[0].isIntersecting) { runCounters(); heroObs.disconnect(); }
}, { threshold: .3 });
const heroSection = document.querySelector('.hero');
if (heroSection) heroObs.observe(heroSection);
/* ---- Scroll reveal (Intersection Observer) ---- */
const revealObs = new IntersectionObserver((entries) => {
entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('in-view'); revealObs.unobserve(e.target); } });
}, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' });
document.querySelectorAll('.reveal').forEach(el => revealObs.observe(el));
/* ---- Skin Quiz ---- */
const quizData = {};
let currentStep = 1;
const totalSteps = 4;
document.querySelectorAll('.quiz-opt').forEach(btn => {
btn.addEventListener('click', () => {
const step = +btn.dataset.step;
// Mark selected
btn.closest('.quiz-options').querySelectorAll('.quiz-opt').forEach(b => b.classList.remove('selected'));
btn.classList.add('selected');
quizData[step] = btn.dataset.val;
setTimeout(() => {
if (step < totalSteps) {
document.getElementById('qs' + step).classList.remove('active');
currentStep = step + 1;
document.getElementById('qs' + currentStep).classList.add('active');
// Update progress dots
document.getElementById('qd' + currentStep).classList.add('done');
document.querySelector('.quiz-progress').setAttribute('aria-valuenow', currentStep);
} else {
// Show result
document.getElementById('qs' + step).style.display = 'none';
const result = document.getElementById('quizResult');
result.classList.add('show');
// Compose result text
const concerns = { rides: 'Anti-âge & Éclat', eclat: 'Glow & Luminosité', acne: 'Pureté & Équilibre', hydrat: 'Hydratation Intense' };
document.getElementById('resultType').textContent = 'Votre routine : ' + (concerns[quizData[2]] || 'Beauté Complète');
document.getElementById('resultDesc').textContent = 'Basée sur vos réponses, voici notre programme sur-mesure pour une peau ' + btn.dataset.val + ', validé par nos experts.';
}
}, 280);
});
});
/* ---- Testimonials slider ---- */
const track = document.getElementById('testiTrack');
const dots = document.querySelectorAll('.testi-dot');
let testiIdx = 0;
const cards = track ? track.querySelectorAll('.testimonial-card') : [];
const isMobile = () => window.innerWidth < 769;
const getVisibleCount = () => isMobile() ? 1 : (window.innerWidth < 1100 ? 2 : 3);
const setSlide = (idx) => {
const vis = getVisibleCount();
const maxIdx = Math.ceil(cards.length / vis) - 1;
testiIdx = Math.max(0, Math.min(idx, maxIdx));
const pct = testiIdx * (100 / vis);
track.style.transform = 'translateX(-' + pct + '%)';
dots.forEach((d, i) => d.classList.toggle('active', i === testiIdx));
};
document.getElementById('testiPrev')?.addEventListener('click', () => setSlide(testiIdx - 1));
document.getElementById('testiNext')?.addEventListener('click', () => setSlide(testiIdx + 1));
dots.forEach(d => d.addEventListener('click', () => setSlide(+d.dataset.idx)));
// Auto-play
let autoPlay = setInterval(() => setSlide(testiIdx + 1 > (isMobile() ? cards.length - 1 : 1) ? 0 : testiIdx + 1), 5000);
track?.parentElement.addEventListener('mouseenter', () => clearInterval(autoPlay));
track?.parentElement.addEventListener('mouseleave', () => { autoPlay = setInterval(() => setSlide(testiIdx + 1 > (isMobile() ? cards.length - 1 : 1) ? 0 : testiIdx + 1), 5000); });
/* ---- Products tabs (visual toggle only, no fetch) ---- */
document.querySelectorAll('.tab-btn').forEach(btn => {
btn.addEventListener('click', () => {
document.querySelectorAll('.tab-btn').forEach(b => { b.classList.remove('active'); b.setAttribute('aria-selected', 'false'); });
btn.classList.add('active');
btn.setAttribute('aria-selected', 'true');
});
});
/* ---- Newsletter form ---- */
const nlForm = document.getElementById('nlForm');
const nlSuccess = document.getElementById('nlSuccess');
nlForm?.addEventListener('submit', (e) => {
e.preventDefault();
const email = document.getElementById('nlEmail').value;
if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
document.getElementById('nlEmail').style.borderColor = '#e57373';
return;
}
nlForm.style.display = 'none';
nlSuccess.style.display = 'block';
});
/* ---- Scroll to top ---- */
const scrollTopBtn = document.getElementById('scrollTop');
window.addEventListener('scroll', () => {
scrollTopBtn.classList.toggle('visible', window.scrollY > 500);
}, { passive: true });
scrollTopBtn.addEventListener('click', () => window.scrollTo({ top: 0, behavior: 'smooth' }));
/* ---- Reduce motion support ---- */
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelectorAll('.strip-track, .hero-card').forEach(el => {
el.style.animation = 'none';
});
}
})();
</script>
</body>
</html>