/*
Theme Name: Solicim
Theme URI: https://solicim.fr
Author: AGT Conseils Marketing
Author URI: https://agt-conseils-marketing.fr
Description: Thème sur-mesure pour SOLICIM, construit sur AGT Base. Couleurs, polices, logo, coordonnées et pied de page se règlent dans Apparence > Personnaliser. Les pages se composent avec les compositions « Solicim » de l'éditeur, et Apparence > Installer les pages crée ou met à jour toutes les pages en un clic.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: solicim
*/

/* ==========================================================================
   Les couleurs et polices viennent d'Apparence > Personnaliser
   (variables --agt-* injectées dans la page). Valeurs par défaut ci-dessous.
   ========================================================================== */

:root {
	--agt-primary: #632664;
	--agt-accent: #feb601;
	--agt-soft: #ffedbf;
	--agt-text: #2b1b2c;
	--agt-bg: #fffbf1;
	--agt-font-heading: Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif;
	--agt-font-body: "Segoe UI", "Helvetica Neue", Arial, sans-serif;

	--agt-content: 44rem;
	--agt-wide: 74rem;
	--agt-gutter: clamp(1.25rem, 4vw, 2.5rem);
	--agt-section-space: clamp(3.5rem, 8vw, 6.5rem);
	--agt-radius: 1.25rem;
	--agt-on-primary: #ffffff;
}

/* ---------- Base ---------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--agt-bg);
	color: var(--agt-text);
	font-family: var(--agt-font-body);
	font-size: 1.125rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

img,
video {
	max-width: 100%;
	height: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--agt-font-heading);
	color: var(--agt-primary);
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 0.6em;
	text-wrap: balance;
}

h1 {
	font-size: clamp(2.4rem, 5.2vw, 4rem);
	line-height: 1.06;
	letter-spacing: -0.015em;
}

h2 {
	font-size: clamp(1.85rem, 3.4vw, 2.6rem);
	letter-spacing: -0.01em;
}

h3 {
	font-size: 1.4rem;
}

p,
ul,
ol,
blockquote,
figure {
	margin: 0 0 1.1em;
}

a {
	color: var(--agt-primary);
	text-decoration-line: underline;
	text-decoration-color: var(--agt-accent);
	text-decoration-thickness: 0.14em;
	text-underline-offset: 0.2em;
}

a:hover {
	text-decoration-color: currentColor;
}

:focus-visible {
	outline: 3px solid var(--agt-accent);
	outline-offset: 3px;
	border-radius: 4px;
}

strong {
	font-weight: 700;
}

.skip-link {
	position: absolute;
	left: 1rem;
	top: -4rem;
	z-index: 100;
	background: var(--agt-primary);
	color: #fff;
	padding: 0.6rem 1rem;
	border-radius: 0.5rem;
}

.skip-link:focus {
	top: 1rem;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ---------- Boutons ---------- */

.btn,
.wp-block-button__link,
.wp-element-button,
input[type="submit"],
button[type="submit"] {
	display: inline-block;
	background: var(--agt-accent);
	color: var(--agt-primary);
	border: 2px solid var(--agt-accent);
	border-radius: 999px;
	padding: 0.8em 1.55em;
	font-family: var(--agt-font-body);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}

.btn:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
	background: var(--agt-primary);
	border-color: var(--agt-primary);
	color: #fff;
}

.btn:focus-visible,
.wp-block-button__link:focus-visible {
	outline-color: var(--agt-primary);
}

.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--agt-primary);
	border-color: var(--agt-primary);
}

.is-style-outline > .wp-block-button__link:hover {
	background: var(--agt-primary);
	color: #fff;
}

.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 1.75rem 0 1.25rem;
}

/* ---------- En-tête ---------- */

.site-header {
	background: var(--agt-bg);
	border-bottom: 1px solid color-mix(in srgb, var(--agt-primary) 12%, transparent);
	position: relative;
	z-index: 20;
}

.site-header__inner {
	max-width: var(--agt-wide);
	margin: 0 auto;
	padding: 1rem var(--agt-gutter);
	display: flex;
	align-items: center;
	gap: 2rem;
}

.site-brand {
	flex-shrink: 0;
}

.site-brand .custom-logo {
	display: block;
	max-height: 64px;
	width: auto;
}

.site-title {
	font-family: var(--agt-font-heading);
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--agt-primary);
	text-decoration: none;
	letter-spacing: 0.02em;
}

.main-nav {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 1.75rem;
}

.main-nav .menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 1.5rem;
}

.main-nav .menu li {
	position: relative;
}

.main-nav .menu a {
	display: block;
	padding: 0.4rem 0;
	color: var(--agt-text);
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	border-bottom: 3px solid transparent;
}

.main-nav .menu a:hover,
.main-nav .current-menu-item > a,
.main-nav .current-menu-ancestor > a,
.main-nav .current_page_item > a {
	color: var(--agt-primary);
	border-bottom-color: var(--agt-accent);
}

.main-nav .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0.5rem 0;
	position: absolute;
	top: 100%;
	left: -1rem;
	min-width: 15rem;
	background: #fff;
	border-radius: 0.75rem;
	box-shadow: 0 12px 30px color-mix(in srgb, var(--agt-primary) 18%, transparent);
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity 0.15s, transform 0.15s, visibility 0.15s;
}

.main-nav .menu li:hover > .sub-menu,
.main-nav .menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.main-nav .sub-menu a {
	padding: 0.55rem 1rem;
	border: 0;
	font-weight: 500;
}

.main-nav .sub-menu a:hover {
	background: var(--agt-soft);
}

.btn--header {
	padding: 0.7em 1.3em;
	font-size: 0.95rem;
}

.menu-toggle {
	display: none;
	margin-left: auto;
	align-items: center;
	gap: 0.6rem;
	background: transparent;
	border: 2px solid var(--agt-primary);
	color: var(--agt-primary);
	border-radius: 999px;
	padding: 0.5rem 1rem;
	font: 700 1rem var(--agt-font-body);
	cursor: pointer;
}

.menu-toggle__bars,
.menu-toggle__bars::before,
.menu-toggle__bars::after {
	display: block;
	width: 18px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	position: relative;
}

.menu-toggle__bars::before,
.menu-toggle__bars::after {
	content: "";
	position: absolute;
	left: 0;
}

.menu-toggle__bars::before {
	top: -6px;
}

.menu-toggle__bars::after {
	top: 6px;
}

.menu-open .menu-toggle__bars {
	background: transparent;
}

.menu-open .menu-toggle__bars::before {
	top: 0;
	transform: rotate(45deg);
}

.menu-open .menu-toggle__bars::after {
	top: 0;
	transform: rotate(-45deg);
}

@media (max-width: 900px) {
	.menu-toggle {
		display: inline-flex;
	}

	.main-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 1rem;
		padding: 1rem var(--agt-gutter) 1.75rem;
		background: var(--agt-bg);
		border-bottom: 1px solid color-mix(in srgb, var(--agt-primary) 12%, transparent);
		box-shadow: 0 16px 30px color-mix(in srgb, var(--agt-primary) 12%, transparent);
	}

	.menu-open .main-nav {
		display: flex;
	}

	.main-nav .menu {
		flex-direction: column;
		gap: 0;
	}

	.main-nav .menu a {
		padding: 0.8rem 0;
		font-size: 1.1rem;
		border-bottom: 1px solid color-mix(in srgb, var(--agt-primary) 10%, transparent);
	}

	.main-nav .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		background: transparent;
		padding: 0 0 0 1rem;
	}

	.btn--header {
		text-align: center;
	}
}

/* ---------- Contenu ---------- */

.site-main {
	display: block;
}

.page-header {
	background: var(--agt-soft);
	padding: clamp(2.5rem, 6vw, 4.5rem) 0;
	margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

.page-header__inner {
	max-width: var(--agt-wide);
	margin: 0 auto;
	padding: 0 var(--agt-gutter);
}

.page-title {
	margin: 0;
	max-width: 22ch;
}

.entry-date {
	font-size: 0.95rem;
	color: color-mix(in srgb, var(--agt-text) 70%, transparent);
	margin-bottom: 0.5rem;
}

.entry-thumbnail {
	max-width: var(--agt-wide);
	margin: 0 auto 2.5rem;
	padding: 0 var(--agt-gutter);
}

.entry-thumbnail img {
	border-radius: var(--agt-radius);
	width: 100%;
}

/* Pages classiques : contenu centré, lisible */
.entry-content > * {
	max-width: var(--agt-content);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--agt-gutter);
	padding-right: var(--agt-gutter);
	box-sizing: content-box;
}

.entry-content > .alignwide {
	max-width: var(--agt-wide);
}

.entry-content > .alignfull,
.entry-content > .agt-section {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

.entry:not(.entry--full) .entry-content {
	padding-bottom: var(--agt-section-space);
}

.entry-content > :last-child {
	margin-bottom: 0;
}

/* ---------- Sections (compositions) ---------- */

.agt-section {
	padding: var(--agt-section-space) 0;
	margin: 0;
}

.agt-section:not(.agt-section--soft):not(.agt-section--primary) + .agt-section:not(.agt-section--soft):not(.agt-section--primary) {
	padding-top: 0;
}

.agt-inner {
	max-width: var(--agt-wide);
	margin: 0 auto;
	padding: 0 var(--agt-gutter);
}

.agt-inner > :last-child,
.agt-section .wp-block-column > :last-child {
	margin-bottom: 0;
}

.agt-section--soft {
	background: var(--agt-soft);
}

.agt-section--primary {
	background: var(--agt-primary);
	color: var(--agt-on-primary);
}

.agt-section--primary h1,
.agt-section--primary h2,
.agt-section--primary h3 {
	color: var(--agt-on-primary);
}

.agt-section--primary a {
	color: var(--agt-on-primary);
}

.agt-section--primary .is-style-outline > .wp-block-button__link {
	color: var(--agt-on-primary);
	border-color: var(--agt-on-primary);
}

.agt-lead {
	font-size: clamp(1.15rem, 1.8vw, 1.3rem);
	line-height: 1.6;
	max-width: 36em;
}

.agt-small {
	font-size: 0.95rem;
	color: color-mix(in srgb, var(--agt-text) 78%, transparent);
}

.agt-more {
	margin-top: 1.5rem;
}

.agt-more a {
	font-weight: 700;
}

/* Colonnes : base robuste, complète les styles de WordPress */
.agt-section .wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1.5rem, 4vw, 3rem);
	margin: 0 0 1.5rem;
}

.agt-section .wp-block-column {
	flex: 1 1 16rem;
	min-width: 0;
}

.agt-section .wp-block-image {
	margin: 0;
}

.agt-section .wp-block-image img {
	display: block;
	width: 100%;
}

/* Listes à puces rondes */
.agt-section ul.wp-block-list {
	list-style: none;
	padding: 0;
}

.agt-section ul.wp-block-list li {
	position: relative;
	padding-left: 1.5rem;
	margin-bottom: 0.55rem;
}

.agt-section ul.wp-block-list li::before {
	content: "";
	position: absolute;
	left: 0.1rem;
	top: 0.6em;
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	background: var(--agt-accent);
}

/* ---------- Bannière d'accueil ---------- */

.agt-hero {
	padding-top: clamp(2.5rem, 6vw, 5rem);
	overflow: hidden;
}

.agt-section .agt-hero__cols {
	align-items: center;
	gap: clamp(2rem, 6vw, 5rem);
	margin: 0;
}

.agt-hero__text {
	flex: 1.2 1 22rem !important;
}

.agt-hero__text h1 {
	max-width: 13ch;
}

.agt-hero__media {
	flex: 0.8 1 18rem !important;
	position: relative;
	padding: 2.5rem 0 0 2.5rem;
}

/* Le disque jaune : l'élément signature */
.agt-hero__media::before {
	content: "";
	position: absolute;
	top: 0;
	right: -12%;
	width: 78%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--agt-accent);
}

.agt-hero__media .wp-block-image,
.agt-arch .wp-block-image {
	position: relative;
}

.agt-hero__media img,
.agt-arch img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 999px 999px var(--agt-radius) var(--agt-radius);
}

@media (max-width: 781px) {
	.agt-hero__media {
		max-width: 22rem;
		padding: 1.5rem 0 0 1.5rem;
	}
}

/* ---------- Particuliers / professionnels ---------- */

.agt-section .agt-panels {
	align-items: stretch;
	margin-top: 1.5rem;
}

.agt-panel {
	padding: clamp(1.75rem, 3.5vw, 2.75rem);
	border-radius: var(--agt-radius);
}

.agt-panel h3 {
	font-size: clamp(1.5rem, 2.4vw, 1.9rem);
}

.agt-panel--soft {
	background: var(--agt-soft);
}

.agt-panel--soft ul.wp-block-list li::before {
	background: var(--agt-primary);
}

.agt-panel--primary {
	background: var(--agt-primary);
	color: var(--agt-on-primary);
}

.agt-panel--primary h3,
.agt-panel--primary a {
	color: var(--agt-on-primary);
}

/* ---------- Approche ---------- */

.agt-section .agt-split {
	align-items: flex-start;
}

.agt-split > .wp-block-column:first-child {
	flex-grow: 1.3;
}

.agt-facts {
	background: #fff;
	border-radius: var(--agt-radius);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid color-mix(in srgb, var(--agt-primary) 12%, transparent);
}

.agt-facts h3 {
	font-size: 1.25rem;
}

.agt-section .agt-facts ul.wp-block-list li {
	padding: 0.85rem 0 0.85rem 1.5rem;
	margin: 0;
	border-top: 1px solid color-mix(in srgb, var(--agt-primary) 10%, transparent);
}

.agt-section .agt-facts ul.wp-block-list li::before {
	top: 1.45em;
}

.agt-facts strong {
	color: var(--agt-primary);
}

/* ---------- Texte et photo ---------- */

.agt-section .agt-split--media {
	align-items: center;
}

.agt-split--media > .agt-arch {
	flex: 0.7 1 16rem !important;
	max-width: 26rem;
}

/* ---------- Avis ---------- */

.agt-avis .wp-block-quote {
	margin: 0;
	padding: 0;
	border: 0;
	position: relative;
}

.agt-avis .wp-block-quote::before {
	content: "\201C";
	display: block;
	font-family: var(--agt-font-heading);
	font-size: 4.5rem;
	line-height: 0.8;
	height: 2.4rem;
	color: var(--agt-primary);
}

.agt-avis .wp-block-quote p {
	font-family: var(--agt-font-heading);
	font-size: 1.2rem;
	line-height: 1.55;
}

.agt-avis cite {
	font-style: normal;
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--agt-primary);
}

/* ---------- Rendez-vous ---------- */

.agt-section .agt-rdv .agt-split {
	align-items: center;
	margin: 0;
}

.agt-rdv__contact {
	flex: 0.7 1 16rem !important;
}

.agt-rdv__phone {
	font-family: var(--agt-font-heading);
	font-size: clamp(2rem, 4.5vw, 3rem);
	font-weight: 700;
	line-height: 1.1;
	margin-bottom: 0.25rem;
}

.agt-section--primary .agt-rdv__phone a {
	color: var(--agt-accent);
	text-decoration: none;
}

.agt-section--primary .agt-rdv__phone a:hover {
	text-decoration: underline;
}

.agt-rdv .wp-block-buttons {
	margin-top: 1.25rem;
}

/* ---------- En-tête de page et situations ---------- */

.agt-page-head h1 {
	max-width: 20ch;
}

.agt-situations h3 {
	font-size: 1.3rem;
	padding-bottom: 0.6rem;
	border-bottom: 3px solid var(--agt-accent);
}

/* ---------- Liste d'articles ---------- */

.post-list {
	max-width: var(--agt-wide);
	margin: 0 auto;
	padding: 0 var(--agt-gutter) var(--agt-section-space);
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
	gap: 2rem;
}

.post-card {
	background: #fff;
	border-radius: var(--agt-radius);
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--agt-primary) 10%, transparent);
}

.post-card__image img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.post-card__body {
	padding: 1.5rem;
}

.post-card__title {
	font-size: 1.35rem;
}

.post-card__title a {
	text-decoration: none;
}

.pagination {
	grid-column: 1 / -1;
}

.post-nav .nav-links {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 2rem;
}

.post-nav span {
	display: block;
	font-size: 0.85rem;
	color: color-mix(in srgb, var(--agt-text) 70%, transparent);
}

/* ---------- Formulaires ---------- */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
textarea,
select {
	width: 100%;
	font: inherit;
	color: var(--agt-text);
	background: #fff;
	border: 1.5px solid color-mix(in srgb, var(--agt-primary) 30%, transparent);
	border-radius: 0.6rem;
	padding: 0.7rem 0.9rem;
}

input:focus,
textarea:focus,
select:focus {
	border-color: var(--agt-primary);
	outline: 3px solid color-mix(in srgb, var(--agt-accent) 60%, transparent);
	outline-offset: 0;
}

.search-form {
	display: flex;
	gap: 0.5rem;
}

/* ---------- Pied de page ---------- */

.site-footer {
	background: var(--agt-text);
	color: var(--agt-soft);
	font-size: 1rem;
}

.site-footer a {
	color: var(--agt-soft);
}

.site-footer__inner {
	max-width: var(--agt-wide);
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 4.5rem) var(--agt-gutter) 2rem;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 2.5rem;
}

.site-footer .custom-logo {
	max-height: 70px;
	width: auto;
	background: #fff;
	padding: 0.5rem 0.75rem;
	border-radius: 0.6rem;
}

.site-footer__name {
	font-family: var(--agt-font-heading);
	font-size: 1.6rem;
	font-weight: 700;
	color: #fff;
}

.site-footer__text {
	max-width: 30em;
	margin-top: 1rem;
}

.site-footer__heading {
	font-size: 1.15rem;
	color: #fff;
}

.site-footer__contact p {
	margin-bottom: 0.5rem;
}

.footer-menu,
.social-links {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}

.footer-menu li,
.social-links li {
	margin-bottom: 0.5rem;
}

.site-footer__widgets {
	max-width: var(--agt-wide);
	margin: 0 auto;
	padding: 0 var(--agt-gutter) 2rem;
}

.site-footer__bottom {
	max-width: var(--agt-wide);
	margin: 0 auto;
	padding: 1.5rem var(--agt-gutter) 2rem;
	border-top: 1px solid color-mix(in srgb, var(--agt-soft) 20%, transparent);
	font-size: 0.85rem;
	color: color-mix(in srgb, var(--agt-soft) 80%, transparent);
}

.site-footer__bottom p {
	margin-bottom: 0.4rem;
}

.site-footer__legal {
	max-width: 50em;
}

@media (max-width: 781px) {
	.site-footer__inner {
		grid-template-columns: 1fr;
	}
}

/* ---------- (suite plus bas) ---------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
	}
}

/* ==========================================================================
   Pages intérieures
   ========================================================================== */

/* ---------- Fil d'Ariane (sous-pages) ---------- */

.agt-breadcrumb {
	background: var(--agt-soft);
	font-size: 0.9rem;
}

.agt-breadcrumb ol {
	list-style: none;
	max-width: var(--agt-wide);
	margin: 0 auto;
	padding: 1.1rem var(--agt-gutter) 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.agt-breadcrumb li + li::before {
	content: "/";
	margin-right: 0.35rem;
	color: color-mix(in srgb, var(--agt-primary) 45%, transparent);
}

.agt-breadcrumb a {
	color: var(--agt-text);
}

.agt-breadcrumb [aria-current] {
	color: var(--agt-primary);
	font-weight: 600;
}

/* ---------- En-tête de page composée ---------- */

.agt-page-head {
	padding-top: clamp(2rem, 5vw, 3.5rem);
	padding-bottom: clamp(3rem, 6vw, 5rem);
}

.agt-page-head .agt-lead {
	max-width: 34em;
}

.agt-page-head .agt-hero__media::before {
	background: var(--agt-accent);
}

.agt-page-head--text .agt-inner > * {
	max-width: 46rem;
}

/* ---------- Points clés (grille titre + texte) ---------- */

.agt-points {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
	gap: clamp(1.75rem, 3.5vw, 2.75rem) clamp(1.5rem, 4vw, 3rem);
	margin-top: 2rem;
}

.agt-point {
	border-top: 3px solid var(--agt-accent);
	padding-top: 1.1rem;
}

.agt-point h3 {
	font-size: 1.3rem;
}

.agt-point > :last-child {
	margin-bottom: 0;
}

.agt-section--soft .agt-point {
	border-top-color: var(--agt-primary);
}

/* ---------- Texte et photo (variantes) ---------- */

@media (min-width: 782px) {
	.agt-section .agt-split--reverse {
		flex-direction: row-reverse;
	}
}

.agt-photo img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--agt-radius);
}

.agt-split--media > .agt-photo {
	flex: 0.8 1 18rem !important;
	max-width: 30rem;
}

.agt-section .agt-split--top {
	align-items: flex-start;
}

/* ---------- Encadrés ---------- */

.agt-callout {
	background: var(--agt-soft);
	border-radius: var(--agt-radius);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	margin: 2rem 0 0;
}

.agt-section--soft .agt-callout {
	background: #fff;
}

.agt-callout > :last-child {
	margin-bottom: 0;
}

.agt-callout h3 {
	font-size: 1.3rem;
}

/* Paroles de patients / exemples */
.agt-voices {
	display: grid;
	gap: 1rem;
	margin: 1.75rem 0;
}

.agt-voices p {
	margin: 0;
	padding: 0.2rem 0 0.2rem 1.25rem;
	border-left: 4px solid var(--agt-accent);
	font-family: var(--agt-font-heading);
	font-size: 1.15rem;
	font-style: italic;
	line-height: 1.5;
	color: var(--agt-primary);
}

/* ---------- Parcours / formations ---------- */

.agt-section ul.agt-timeline {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0 0;
	max-width: 52rem;
}

.agt-section ul.agt-timeline li {
	position: relative;
	padding: 1rem 0 1rem 7.5rem;
	margin: 0;
	border-top: 1px solid color-mix(in srgb, var(--agt-primary) 14%, transparent);
	line-height: 1.5;
}

.agt-section ul.agt-timeline li::before {
	display: none;
}

.agt-section ul.agt-timeline li strong:first-child {
	position: absolute;
	left: 0;
	top: 1rem;
	width: 6.5rem;
	font-family: var(--agt-font-heading);
	color: var(--agt-primary);
}

.agt-timeline em {
	display: block;
	font-style: normal;
	font-size: 0.95rem;
	color: color-mix(in srgb, var(--agt-text) 72%, transparent);
	margin-top: 0.15rem;
}

@media (max-width: 600px) {
	.agt-section ul.agt-timeline li {
		padding-left: 0;
	}

	.agt-section ul.agt-timeline li strong:first-child {
		position: static;
		display: block;
		width: auto;
	}
}

/* ---------- Sommaire (liens d'ancre) ---------- */

.agt-section ul.agt-toc {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 1.5rem 0 0;
}

.agt-section ul.agt-toc li {
	padding: 0;
	margin: 0;
}

.agt-section ul.agt-toc li::before {
	display: none;
}

.agt-toc a {
	display: inline-block;
	padding: 0.5rem 1rem;
	border: 1.5px solid color-mix(in srgb, var(--agt-primary) 35%, transparent);
	border-radius: 999px;
	background: #fff;
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: none;
}

.agt-toc a:hover {
	border-color: var(--agt-primary);
	background: var(--agt-primary);
	color: #fff;
}

.wp-block-heading[id] {
	scroll-margin-top: 1.5rem;
}

/* ---------- Logos (références) ---------- */

.agt-logos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
	gap: 1rem;
	margin-top: 2rem;
}

.agt-section .agt-logos .wp-block-image {
	background: #fff;
	border-radius: 0.9rem;
	padding: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 3 / 2;
}

.agt-section .agt-logos .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* ---------- Offres (pour les pros) ---------- */

.agt-offer h2 {
	max-width: 22ch;
}

.agt-offer .agt-facts .wp-block-buttons {
	margin-bottom: 0;
}

.agt-badge img {
	width: 6.5rem !important;
	height: auto;
}

.agt-section .agt-badge {
	margin-top: 1.25rem;
}

/* ---------- Cartes contact ---------- */

.agt-panel .wp-block-image {
	margin: calc(-1 * clamp(1.75rem, 3.5vw, 2.75rem)) calc(-1 * clamp(1.75rem, 3.5vw, 2.75rem)) 1.5rem !important;
}

.agt-panel .wp-block-image img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: var(--agt-radius) var(--agt-radius) 0 0;
}

.agt-panel {
	overflow: hidden;
}

.agt-big {
	font-family: var(--agt-font-heading);
	font-size: clamp(1.6rem, 3vw, 2.1rem);
	font-weight: 700;
	line-height: 1.15;
	margin-bottom: 0.25rem;
}

.agt-big a {
	text-decoration: none;
}

.agt-panel--primary .agt-big a {
	color: var(--agt-accent);
}

.agt-section .agt-coords ul.wp-block-list li {
	padding-left: 0;
}

.agt-section .agt-coords ul.wp-block-list li::before {
	display: none;
}

/* ---------- Formulaire de contact ---------- */

.agt-form-card {
	background: #fff;
	border-radius: var(--agt-radius);
	padding: clamp(1.5rem, 3.5vw, 2.5rem);
	border: 1px solid color-mix(in srgb, var(--agt-primary) 12%, transparent);
}

.agt-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.1rem 1.25rem;
}

.agt-form__field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin: 0;
}

.agt-form__field--full {
	grid-column: 1 / -1;
}

.agt-form label {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--agt-primary);
}

.agt-form .agt-form__req {
	color: color-mix(in srgb, var(--agt-text) 65%, transparent);
	font-weight: 400;
}

.agt-form textarea {
	min-height: 9rem;
	resize: vertical;
}

.agt-form__consent {
	grid-column: 1 / -1;
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	font-size: 0.9rem;
	line-height: 1.45;
}

.agt-form__consent label {
	font-weight: 400;
	color: var(--agt-text);
}

.agt-form__consent input {
	margin-top: 0.2rem;
	width: 1.1rem;
	height: 1.1rem;
	accent-color: var(--agt-primary);
	flex-shrink: 0;
}

.agt-form__hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.agt-form__actions {
	grid-column: 1 / -1;
}

.agt-notice {
	grid-column: 1 / -1;
	border-radius: 0.75rem;
	padding: 0.9rem 1.1rem;
	margin: 0 0 1.25rem;
	font-weight: 600;
}

.agt-notice--ok {
	background: color-mix(in srgb, var(--agt-accent) 25%, #fff);
	color: var(--agt-primary);
}

.agt-notice--error {
	background: #fde8e8;
	color: #8a1c1c;
}

@media (max-width: 600px) {
	.agt-form {
		grid-template-columns: 1fr;
	}
}

/* ---------- Pages simples (mentions légales…) ---------- */

.entry:not(.entry--full) .entry-content h2 {
	margin-top: 1.6em;
	font-size: clamp(1.5rem, 2.6vw, 1.9rem);
}

/* ---------- Divers ---------- */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

/* ---------- Ajustements ---------- */

.agt-page-head h1 {
	font-size: clamp(2.2rem, 4.4vw, 3.4rem);
}

.wp-block-column.agt-callout {
	margin-top: 0;
}

.agt-section ul.agt-list-cols {
	columns: 2 18rem;
	column-gap: 3rem;
	max-width: 60rem;
}

.agt-section ul.agt-list-cols li {
	break-inside: avoid;
}

.agt-panel h2 {
	font-size: clamp(1.5rem, 2.4vw, 1.9rem);
}

.agt-panel--primary h2 {
	color: var(--agt-on-primary);
}

.agt-section .agt-logos .wp-block-image {
	border: 1px solid color-mix(in srgb, var(--agt-primary) 10%, transparent);
}

/* ---------- Groupes : enveloppe ajoutée par WordPress ----------
   Sans theme.json, WordPress place le contenu des blocs Groupe dans
   .wp-block-group__inner-container. On la rend « transparente » pour
   que les grilles et les marges s'appliquent aux blocs eux-mêmes. */

.agt-section .wp-block-group__inner-container {
	display: contents;
}

.agt-section .wp-block-group__inner-container > :last-child,
.agt-point > :last-child,
.agt-callout > :last-child {
	margin-bottom: 0;
}

.agt-page-head .agt-hero__text h1 {
	max-width: 20ch;
}

.agt-split--media h3 {
	font-size: clamp(1.45rem, 2.4vw, 1.85rem);
}

/* ---------- Widgets du pied de page ---------- */

.site-footer__widgets {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	gap: 2rem;
}

.site-footer__widgets h2,
.site-footer__widgets h3,
.site-footer__widgets .wp-block-heading {
	font-size: 1.15rem;
	color: #fff;
}

.site-footer__widgets ul {
	list-style: none;
	padding: 0;
}
