/*
Theme Name: Anaïs Gnoni, Aime Vis Mange
Description: Thème du site d'Anaïs Gnoni (liberté alimentaire). Design géré sur GitHub, contenu modifiable dans WordPress.
Author: Taozeflow
Version: 2.0.0
Requires at least: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: anais
*/

:root {
	--avm-rose-clair: #FEEAF4;
	--avm-rose-doux: #FBD3E4;
	--avm-rose: #EF385D;
	--avm-bordeaux: #650015;
	--avm-texte: #3B1A21;
	--avm-radius: 22px;
	--avm-shadow: 0 10px 34px -18px rgba(101, 0, 21, 0.28);
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { height: auto; max-width: 100%; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
main.avm-main { margin-block-start: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--avm-rose); outline-offset: 2px; }
strong { color: var(--avm-bordeaux); font-weight: 800; }
.avm-bg-bordeaux strong, .avm-card-bordeaux strong, .avm-test-result strong { color: #fff; }
.avm-card-bordeaux .avm-mockup img, .avm-mockup img { border-radius: 16px; }

/* Words written in italic inside a heading show in pink */
h1 em, h2 em, h3 em, .wp-block-heading em {
	color: var(--avm-rose);
	font-style: normal;
}

/* Handwritten over-title (Caveat) */
.avm-surtitre {
	font-family: var(--wp--preset--font-family--manuscrite);
	font-size: 1.7rem !important;
	line-height: 1.1;
	color: var(--avm-rose);
	margin-bottom: 0.2rem !important;
}
.avm-signature {
	font-family: var(--wp--preset--font-family--manuscrite);
	font-size: 2.1rem;
	line-height: 1.1;
	color: var(--avm-bordeaux);
}
.avm-signature em { font-style: normal; color: var(--avm-rose); }

.avm-lead { font-size: var(--wp--preset--font-size--large); }
.avm-muted { opacity: 0.85; }
.avm-small { font-size: 0.9rem; }
.avm-center { text-align: center; }
.avm-narrow { max-width: 680px; margin-left: auto !important; margin-right: auto !important; }

/* ---------- Header ---------- */
.avm-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(254, 234, 244, 0.95);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(239, 56, 93, 0.12);
}
.admin-bar .avm-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .avm-header { top: 0; } }
.avm-header .wp-block-site-title a { text-decoration: none; color: var(--avm-bordeaux); }
.avm-header .wp-block-navigation a { text-decoration: none; color: var(--avm-bordeaux); }
.avm-header .wp-block-navigation a:hover { color: var(--avm-rose); }
.avm-header .wp-block-navigation .current-menu-item > a { color: var(--avm-rose); }
.avm-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--avm-rose-clair); }
@media (max-width: 600px) { .avm-header .avm-header-cta { display: none; } }

/* ---------- Sections ---------- */
.avm-section { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); }
.avm-section.avm-tight { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.avm-bg-white { background: #fff; }
.avm-bg-rose { background: var(--avm-rose-clair); }
.avm-bg-doux { background: var(--avm-rose-doux); }
.avm-bg-bordeaux { background: var(--avm-bordeaux); color: #fff; }
.avm-bg-bordeaux h2, .avm-bg-bordeaux h3, .avm-bg-bordeaux p { color: #fff; }
.avm-bg-bordeaux h2 em { color: #ff8aa3; }
.avm-bg-bordeaux .avm-surtitre { color: #ff9fb4; }
.avm-bg-bordeaux .avm-signature { color: #fff; }

/* ---------- Home banner: photo left, colour fades to the right ---------- */
.avm-banner {
	position: relative;
	overflow: hidden;
	background: var(--avm-rose-clair);
	min-height: min(88vh, 720px);
	display: flex !important;
	align-items: center;
	padding-top: clamp(2.5rem, 6vw, 4.5rem) !important;
	padding-bottom: clamp(2.5rem, 6vw, 4.5rem) !important;
}
.avm-banner > .avm-banner-photo {
	position: absolute;
	inset: 0 auto 0 0;
	width: 58%;
	height: 100%;
	margin: 0 !important;
	max-width: none !important;
	z-index: 0;
}
.avm-banner > .avm-banner-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 30% 25%;
}
.avm-banner::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(90deg, rgba(254, 234, 244, 0) 0%, rgba(254, 234, 244, 0.15) 22%, rgba(254, 234, 244, 0.85) 46%, var(--avm-rose-clair) 58%);
}
.avm-banner > .avm-banner-text {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--wp--style--global--wide-size) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 47% !important;
	padding-right: clamp(1rem, 4vw, 2rem) !important;
}
.avm-banner .avm-banner-text h1 { font-size: clamp(2rem, 3.4vw, 3rem); }
@media (max-width: 860px) {
	.avm-banner { display: block !important; min-height: 0; padding-top: 0 !important; }
	.avm-banner > .avm-banner-photo { position: relative; width: 100%; height: 72vw; max-height: 460px; }
	.avm-banner > .avm-banner-photo img { object-position: 30% 20%; }
	.avm-banner::after { background: linear-gradient(180deg, rgba(254, 234, 244, 0) 0, rgba(254, 234, 244, 0) min(42vw, 270px), var(--avm-rose-clair) min(72vw, 460px)); }
	.avm-banner > .avm-banner-text { padding-left: clamp(1rem, 4vw, 2rem) !important; margin-top: -2.5rem !important; }
}

/* Inner page hero (pink band, text + arched photo) */
.avm-hero { background: var(--avm-rose-clair); padding-top: clamp(2.5rem, 6vw, 4.5rem); padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.avm-hero h1 { margin-top: 0.2rem; }
.avm-arch img {
	border-radius: 999px 999px 26px 26px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
	box-shadow: var(--avm-shadow);
}
.avm-arch { max-width: 400px; margin-left: auto !important; margin-right: auto !important; }
.avm-rounded img {
	border-radius: var(--avm-radius);
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
	box-shadow: var(--avm-shadow);
}
.avm-rounded { max-width: 420px; margin-left: auto !important; margin-right: auto !important; }
.avm-mockup img { width: 100%; filter: drop-shadow(0 18px 30px rgba(101, 0, 21, 0.18)); }

/* ---------- Cards and boxes ---------- */
.avm-card {
	background: #fff;
	border-radius: var(--avm-radius);
	padding: clamp(1.25rem, 3vw, 1.9rem) !important;
	box-shadow: var(--avm-shadow);
}
.avm-card > :first-child { margin-top: 0; }
.avm-card h3 { margin-bottom: 0.5rem; }
.avm-card-rose { background: var(--avm-rose-clair); box-shadow: none; }
.avm-card-bordeaux { background: var(--avm-bordeaux); color: #fff; }
.avm-card-bordeaux h2, .avm-card-bordeaux h3, .avm-card-bordeaux p { color: #fff; }
.avm-card-bordeaux h2 em { color: #ff8aa3; }
.avm-card-bordeaux .avm-surtitre { color: #ff9fb4; }
.avm-cards { gap: 1.5rem !important; }
.avm-cards > .wp-block-column { display: flex; }
.avm-cards > .wp-block-column > .avm-card,
.avm-cards > .wp-block-column > .avm-testimonial { flex: 1; }

.avm-badge {
	display: inline-block;
	background: var(--avm-rose);
	color: #fff;
	font-weight: 800;
	font-size: 0.78rem;
	letter-spacing: 0.02em;
	border-radius: 999px;
	padding: 0.25rem 0.85rem !important;
	margin-bottom: 0.4rem !important;
}
.avm-badge.avm-badge-soft { background: #fff; color: var(--avm-bordeaux); border: 1px solid var(--avm-rose); }

.avm-highlight {
	background: #fff;
	border-left: 4px solid var(--avm-rose);
	border-radius: 0 18px 18px 0;
	padding: 1.1rem 1.4rem !important;
	color: var(--avm-bordeaux);
}
.avm-bg-white .avm-highlight { background: var(--avm-rose-clair); }
.avm-note {
	font-size: 0.88rem;
	font-style: italic;
	opacity: 0.85;
}
.avm-callout {
	background: var(--avm-rose-clair);
	border-radius: var(--avm-radius);
	padding: clamp(1.2rem, 3vw, 1.75rem) !important;
}
.avm-bg-rose .avm-callout { background: #fff; }

/* Lists */
.avm-arrow-list, .avm-check-list, .avm-cross-list { list-style: none; padding-left: 0; }
.avm-arrow-list li, .avm-check-list li, .avm-cross-list li { position: relative; padding-left: 1.9rem; margin-bottom: 0.65rem; }
.avm-arrow-list li::before, .avm-check-list li::before, .avm-cross-list li::before {
	position: absolute; left: 0; top: 0; font-weight: 800; color: var(--avm-rose);
}
.avm-arrow-list li::before { content: "→"; }
.avm-check-list li::before { content: "✓"; }
.avm-cross-list li::before { content: "✕"; color: var(--avm-bordeaux); }
.avm-bg-bordeaux .avm-arrow-list li::before, .avm-bg-bordeaux .avm-check-list li::before { color: #ff8aa3; }

/* Cycle / numbered steps */
.avm-steps { gap: 1rem !important; }
.avm-step {
	background: #fff;
	border-radius: 18px;
	padding: 1.25rem !important;
	box-shadow: var(--avm-shadow);
	height: 100%;
}
.avm-bg-white .avm-step { background: var(--avm-rose-clair); box-shadow: none; }
.avm-step .avm-num {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.4rem; height: 2.4rem; border-radius: 50%;
	background: var(--avm-rose); color: #fff;
	font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: 1.1rem;
	margin: 0 0 0.6rem !important;
}
.avm-step h3 { font-size: 1.1rem; margin: 0 0 0.35rem; }
.avm-step p { margin: 0; font-size: 0.97rem; }
.avm-steps > .wp-block-column { display: flex; }
.avm-steps > .wp-block-column > .avm-step { flex: 1; }

/* Numbers (birth numbers on À propos) */
.avm-big-num {
	font-family: var(--wp--preset--font-family--titres);
	font-size: 2.6rem !important;
	font-weight: 800;
	color: var(--avm-rose);
	line-height: 1;
	margin-bottom: 0.3rem !important;
}

/* Testimonials */
.avm-testimonial {
	background: #fff;
	border-radius: var(--avm-radius);
	padding: clamp(1.4rem, 3vw, 2.2rem) !important;
	box-shadow: var(--avm-shadow);
	position: relative;
}
.wp-block-column > .avm-testimonial:not(:first-child),
.wp-block-column > .avm-card:not(:first-child) { margin-top: 1.5rem; }
.avm-testimonial::before {
	content: "“";
	position: absolute;
	top: -0.4rem;
	left: 1.1rem;
	font-family: var(--wp--preset--font-family--titres);
	font-size: 4.5rem;
	color: var(--avm-rose);
	line-height: 1;
}
.avm-testimonial p { font-style: italic; color: var(--avm-bordeaux); }
.avm-testimonial .avm-author { font-style: normal; font-weight: 800; font-size: 0.92rem; color: var(--avm-rose); margin-top: 0.75rem; }
.avm-bg-white .avm-testimonial { background: var(--avm-rose-clair); box-shadow: none; }

/* Pricing */
.avm-compare { text-align: center; }
.avm-compare .avm-card { padding: 1.25rem !important; }
.avm-compare .avm-price-old { font-family: var(--wp--preset--font-family--titres); font-size: 1.8rem; font-weight: 800; color: var(--avm-bordeaux); margin: 0.3rem 0 0; text-decoration: line-through; text-decoration-color: var(--avm-rose); text-decoration-thickness: 2px; }
.avm-offer { background: #fff; border: 3px solid var(--avm-rose); border-radius: 26px; padding: clamp(1.5rem, 4vw, 2.5rem) !important; box-shadow: var(--avm-shadow); }
.avm-price {
	font-family: var(--wp--preset--font-family--titres);
	font-size: clamp(3rem, 8vw, 4.5rem) !important;
	font-weight: 800;
	color: var(--avm-rose);
	line-height: 1;
	margin: 0.2rem 0 !important;
}

/* Buttons */
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 2px solid var(--avm-rose);
	color: var(--avm-bordeaux);
	background: #fff;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--avm-rose); border-color: var(--avm-rose); color: #fff; }
.avm-bg-bordeaux .wp-block-button.is-style-outline > .wp-block-button__link,
.avm-card-bordeaux .wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; border-color: rgba(255, 255, 255, 0.7); color: #fff; }
.avm-bg-bordeaux .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.14); }
.avm-bg-bordeaux .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: #fff; color: var(--avm-bordeaux); }
.avm-btn-big > .wp-block-button__link { font-size: 1.1rem; padding: 1.05rem 2.2rem; }
.avm-textlink a { font-weight: 800; }

/* FAQ (details block) */
.wp-block-details {
	background: #fff;
	border-radius: 16px;
	padding: 1rem 1.25rem;
	margin-bottom: 0.8rem !important;
	box-shadow: var(--avm-shadow);
}
.avm-bg-white .wp-block-details { background: var(--avm-rose-clair); box-shadow: none; }
.wp-block-details summary {
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	color: var(--avm-bordeaux);
	cursor: pointer;
	list-style: none;
	position: relative;
	padding-right: 2rem;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: 0; top: -0.1rem; font-size: 1.4rem; color: var(--avm-rose); }
.wp-block-details[open] summary::after { content: "−"; }
.wp-block-details > :not(summary) { margin-top: 0.75rem; }

/* Self-test (cycle régime-crise) */
.avm-test { max-width: 760px; margin: 0 auto; }
.avm-test-q { display: flex; gap: 1rem; align-items: center; justify-content: space-between; background: #fff; border-radius: 16px; padding: 0.9rem 1.1rem; margin-bottom: 0.7rem; box-shadow: var(--avm-shadow); }
.avm-test-q p { margin: 0; color: var(--avm-bordeaux); font-weight: 700; }
.avm-test-q .avm-test-n { color: var(--avm-rose); margin-right: 0.35rem; }
.avm-test-btns { display: flex; gap: 0.4rem; flex-shrink: 0; }
.avm-test-btns button { border: 2px solid var(--avm-rose); background: #fff; color: var(--avm-bordeaux); border-radius: 999px; padding: 0.35rem 0.95rem; font: inherit; font-weight: 800; cursor: pointer; }
.avm-test-btns button[aria-pressed="true"] { background: var(--avm-rose); color: #fff; }
.avm-test-result { background: var(--avm-bordeaux); color: #fff; border-radius: var(--avm-radius); padding: 1.5rem 1.75rem; margin-top: 1.25rem; }
.avm-test-result p { color: #fff; }
.avm-test-result strong { color: #fff; }
@media (max-width: 600px) { .avm-test-q { flex-direction: column; align-items: flex-start; } }

/* ---------- Footer ---------- */
.avm-footer { background: #4a0010; color: #f6dde4; }
.avm-footer a { color: #fff; text-decoration: none; }
.avm-footer a:hover { color: #ff9fb4; }
.avm-footer h3 { color: #fff; font-size: 1.05rem !important; }
.avm-footer .wp-block-site-title a { color: #fff; }
.avm-footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.16); font-size: 0.85rem; color: #e9c3cd; }
.avm-footer .avm-note { color: #e9c3cd; }

/* ---------- Blog ---------- */
.avm-post-grid { gap: 1.5rem; }
.avm-post-card { background: #fff; border-radius: var(--avm-radius); overflow: hidden; box-shadow: var(--avm-shadow); height: 100%; }
.avm-post-card .wp-block-post-featured-image { margin: 0; }
.avm-post-card .wp-block-post-featured-image img { aspect-ratio: 1200 / 630; object-fit: cover; width: 100%; }
.avm-post-card .avm-post-body { padding: 1.1rem 1.4rem 1.5rem !important; }
.avm-post-card .wp-block-post-title { font-size: 1.2rem; }
.avm-post-card .wp-block-post-title a { text-decoration: none; color: var(--avm-bordeaux); }
.avm-post-card .wp-block-post-title a:hover { color: var(--avm-rose); }
.avm-post-card .wp-block-post-terms a { color: var(--avm-rose); text-decoration: none; font-weight: 800; font-size: 0.85rem; }
.avm-single .wp-block-post-featured-image img { border-radius: var(--avm-radius); }
.avm-single .wp-block-post-content h2 { font-size: 1.7rem; margin-top: 2.2rem; }
.avm-single .wp-block-post-content h3 { margin-top: 1.6rem; }
.avm-author-box { display: flex !important; gap: 1rem; align-items: center; }
.avm-author-box .wp-block-image { flex: 0 0 72px; margin: 0; }
.avm-author-box .wp-block-image img { width: 72px; height: 72px; object-fit: cover; border-radius: 50%; }
.avm-meta { font-size: 0.9rem; color: var(--avm-bordeaux); }
.avm-meta a { color: var(--avm-rose); text-decoration: none; font-weight: 800; }

/* ---------- Legal pages ---------- */
.avm-legal h2 { font-size: 1.45rem; margin-top: 2rem; }
.avm-legal h3 { font-size: 1.15rem; margin-top: 1.4rem; }
.avm-legal table { font-size: 0.92rem; }
.avm-legal .wp-block-table td, .avm-legal .wp-block-table th { border-color: #f1c9d6; padding: 0.55rem 0.7rem; vertical-align: top; }
.avm-legal .wp-block-table thead { background: var(--avm-rose-clair); border-bottom: 0; }

/* ---------- Forms (contact + questionnaire) ---------- */
.avm-form { max-width: 680px; margin: 0 auto; background: #fff; border-radius: var(--avm-radius); padding: clamp(1.25rem, 4vw, 2.25rem); box-shadow: var(--avm-shadow); }
.avm-form p { margin: 0 0 1rem; }
.avm-form label { display: block; font-weight: 800; font-size: 0.95rem; margin-bottom: 0.35rem; color: var(--avm-bordeaux); }
.avm-form input[type="text"], .avm-form input[type="email"], .avm-form input[type="tel"], .avm-form select, .avm-form textarea {
	box-sizing: border-box;
	width: 100%; font: inherit; color: inherit; background: #fff;
	border: 1px solid #f0c5d3; border-radius: 12px; padding: 0.75rem 0.9rem;
}
.avm-form input:focus, .avm-form select:focus, .avm-form textarea:focus { outline: 2px solid var(--avm-rose); outline-offset: 1px; border-color: transparent; }
.avm-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
@media (max-width: 600px) { .avm-form-row { grid-template-columns: 1fr; } }
.avm-form .avm-consent label { font-weight: 400; display: block; padding-left: 1.75rem; position: relative; color: inherit; }
.avm-form .avm-consent input { position: absolute; left: 0; top: 0.35rem; margin: 0; accent-color: var(--avm-rose); }
.avm-form button { border: 0; cursor: pointer; background: var(--avm-rose); color: #fff; border-radius: 999px; padding: 0.85rem 2rem; font: inherit; font-weight: 800; }
.avm-form button:hover { background: var(--avm-bordeaux); }
.avm-hp { position: absolute !important; left: -9999px !important; height: 1px; overflow: hidden; }
.avm-form-msg { max-width: 680px; margin: 0 auto 1.25rem; border-radius: 14px; padding: 1rem 1.25rem; }
.avm-form-ok { background: var(--avm-rose-clair); color: var(--avm-bordeaux); }
.avm-form-err { background: #ffe0e6; color: var(--avm-bordeaux); }

/* Questionnaire */
.avm-quiz fieldset { border: 0; padding: 0; margin: 0 0 1.5rem; }
.avm-quiz legend { display: block; width: 100%; text-align: center; padding-bottom: 1rem; margin-bottom: 1.25rem; border-bottom: 1px solid #f7d9e3; }
.avm-quiz-title { display: block; font-family: var(--wp--preset--font-family--titres); font-weight: 700; font-size: 1.4rem; color: var(--avm-bordeaux); }
.avm-quiz-sub { display: block; font-size: 0.95rem; }
.avm-req { color: var(--avm-rose); }
.avm-quiz-progress, .avm-quiz-nav, .avm-quiz-error { display: none; }
.avm-quiz.is-js .avm-quiz-progress { display: block; margin-bottom: 1.5rem; }
.avm-quiz.is-js .avm-quiz-nav { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid #f7d9e3; padding-top: 1rem; }
.avm-quiz.is-js .avm-quiz-error:not([hidden]) { display: block; color: var(--avm-rose); text-align: center; }
.avm-quiz:not(.is-js) .avm-quiz-nav { display: block; }
.avm-quiz:not(.is-js) .avm-quiz-prev, .avm-quiz:not(.is-js) .avm-quiz-next { display: none; }
.avm-quiz-progress-text { display: flex; justify-content: space-between; font-size: 0.88rem; margin-bottom: 0.4rem; }
.avm-quiz-pct { color: var(--avm-rose); font-weight: 800; }
.avm-quiz-bar { height: 8px; background: var(--avm-rose-clair); border-radius: 99px; overflow: hidden; }
.avm-quiz-bar span { display: block; height: 100%; background: var(--avm-rose); border-radius: 99px; transition: width 0.4s ease; }
.avm-quiz .avm-quiz-prev { background: transparent; color: var(--avm-bordeaux); padding-left: 0.5rem; padding-right: 0.5rem; }
.avm-quiz .avm-quiz-prev:hover { background: transparent; color: var(--avm-rose); }
.avm-quiz .avm-quiz-prev:disabled { opacity: 0.35; cursor: default; }
.avm-quiz .is-invalid { border-color: var(--avm-rose) !important; }
.avm-quiz-privacy { text-align: center; font-size: 0.82rem; margin-top: 1rem !important; }
.avm-quiz-done { max-width: 680px; margin: 0 auto; text-align: center; border-radius: var(--avm-radius); padding: 2.5rem 1.5rem; box-shadow: var(--avm-shadow); background: #fff; }
.avm-quiz-done .wp-block-buttons { justify-content: center; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.avm-reverse-mobile { flex-direction: column-reverse; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.avm-quiz-bar span { transition: none; }
}
