/*
Theme Name: Rocket Theme
Author: Machin Machine
Author URI: https://machinmachine.fr
Description: Rocket Theme brings your site to life :)
Version: 0.1
Text Domain: rocket
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
1.0 Config Theme
2.0 Topbar
3.0 Header
4.0 Home
  4.1 Hero
  4.2 Présentation
  4.3 Prestations
  4.4 Réassurance
  4.5 Actualités
  4.6 Formulaire
5.0 Footer
6.0 Prestations
  6.1 Hero
7.0 Mes massages
  7.1 Bloc Prestations
  7.2 Mon approche
  7.3 Détails prestations
  7.4 Tarifs prestations
  7.5 Infos supp
8.0 Accompagnement spécifique
  8.1 Hero sub
  8.2 Partenariat
9.0 Contact
10.0 Qui suis-je ?
  10.1 Hero
  10.2 Contenu
11.0 Blog
  11.1 Single
  11.2 Sommaire auto
  11.3 Shortcode CTA
  11.4 A propos de l'auteure


/*--------------------------------------------------------------
1.0 Config Theme
--------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');


:root {
  --font-heading: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Poppins', system-ui, -apple-system, sans-serif;
  --bs-body-font-family: var(--font-body);
}

html,
body {
    overflow-x: hidden;
}

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

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--font-heading);
  font-weight: 300;
}
h1 span, .h1 span, h2 span, .h2 span { color: var(--bs-secondary); }

p {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 1rem;
}

@media (min-width: 768px) {
  p {
    font-size: 1.125rem;
  }
}

.radius{ border-radius:25px; }

.read-more__toggle { color: var(--bs-body-color); text-decoration: none; }
.read-more__toggle:hover { text-decoration: underline; }

/*--------------------------------------------------------------
2.0 Topbar
--------------------------------------------------------------*/
.topbar-menu a { color: var(--bs-white); text-decoration: none; }
.topbar-menu a:hover { text-decoration: underline; }
.topbar-menu li::before {
  font-family: "aromazicon" !important;
  content: "\f006";
  font-size: .5rem; /* ajuste à la maquette */
  line-height: 1;
  color: var(--bs-white);
  margin-inline: .7rem; /* même espace de chaque côté du dot */
}
.topbar-menu li { display: flex; align-items: center; }

/*--------------------------------------------------------------
3.0 Header
--------------------------------------------------------------*/
.navbar-brand img { height: 56px; width: auto; }
.navbar .nav-link { text-transform: none; font-size: 1.125rem; /* 18px */ font-weight: 300; letter-spacing: .5px; }
.btn-cta .icon { margin-left: .5rem; vertical-align: middle; }
@media (min-width: 992px) {
  .navbar > .container-fluid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
  }
  /* les enfants du collapse (menu + bouton) deviennent des items de la grille */
  .navbar-expand-lg .navbar-collapse { display: contents !important; }
  .navbar .navbar-nav { justify-self: center; }
  .navbar .btn-cta { justify-self: end; }
  .navbar .dropdown:hover > .dropdown-menu { display: block; margin-top: 0; }
}

/*--------------------------------------------------------------
4.0 Home
--------------------------------------------------------------*/
/*--------------------------------------------------------------
4.1 Hero
--------------------------------------------------------------*/
.hero { border-radius: 40px; height: 690px; background: #33383b; }
.hero-bg { object-fit: cover; }
.hero-overlay { background: linear-gradient(83.84deg, #33383bff, #33383b00); opacity: .4;}
.hero-eyebrow,
.hero-title { font-family: var(--font-body); } /* Poppins, à la place de Garamond */
.hero-eyebrow { font-size: 1.375rem; /* 22px */ }
.hero-title { font-size: 3rem; /* 48px */ font-weight: 600; line-height: 1.2; }

@media (max-width: 991.98px) {
  .hero { height: auto; min-height: 520px; padding-block: 3rem; }
  .hero-eyebrow { font-size: 1.125rem; }
  .hero-title { font-size: 2rem; }
}

/*--------------------------------------------------------------
4.2 Présentation
--------------------------------------------------------------*/
.home-presentation { background-color: var(--az-beige); }
.home-presentation-img { object-fit: cover; }
.home-presentation { position: relative; }

.home-presentation-picto {
    position: absolute;
    top: 0;
    left: 0;
    width: 160px;
    color: var(--bs-primary);
    pointer-events: none;
}

.home-presentation-picto svg {
    display: block;
    width: 100%;
    height: auto;
}

/*--------------------------------------------------------------
4.3 Prestations
--------------------------------------------------------------*/
.home-prestations .container {
  padding: 60px 0 120px;
}
.home-prestations h2,
.home-prestations p,
.prestation-title {
  color: var(--az-cream);
}
.prestation-item + .prestation-item {
  margin-top: 2rem;
}
.prestation-title span {
  color: var(--az-beige);
  font-weight:300;
}
.prestation-toggle {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1.25rem;
  width: 100%;
  padding: 0;
  background: none;
  border: 0;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.prestation-rond {
  flex-shrink: 0;
}
.prestation-texte {
  padding: 1rem 0 0 3.7rem
}
@media (max-width: 767.98px) {
  .prestation-texte {
    padding-left: 0;
  }
}
.prestation-rond {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background-color: var(--az-cream);
  color: var(--bs-primary);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1;
}
.prestation-title {
  font-size: 1.3rem;
  font-weight: 300;
}
.home-prestations p {
   font-size: 1rem;
 }
 .prestation-chevron {
   font-size: 1.5rem;
   transition: transform 0.3s ease;
 }
 .prestation-toggle:not(.collapsed) .prestation-chevron {
   transform: rotate(90deg);
 }
 .prestation-texte .btn .icon {
  margin-left: 0.5rem;
  font-size: 0.875em;
  vertical-align: middle;
}
.prestations-picto svg {
  width: 10rem;
  height: auto;
  fill: currentColor;
}

/*--------------------------------------------------------------
4.4 Réassurance
--------------------------------------------------------------*/
.pourquoi-picto svg {
  width: 4rem;
  height: 4rem;
  fill: currentColor;
  color: var(--bs-primary);
}
.pourquoi-label {
  font-size: 1rem;
  line-height: 1.3;
}

/*--------------------------------------------------------------
4.5 Actualités
--------------------------------------------------------------*/
.surtitre {
  font-size: 0.875rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--bs-secondary);
}
.actu-img {
  height: 14rem;
  overflow: hidden;
}
.actu-img img {
  object-fit: cover;
  transition: transform 0.4s ease;
}
.actu-card:hover .actu-img img {
  transform: scale(1.03);
}
.actu-cat {
  font-size: 0.875rem;
  color: var(--bs-primary);
  text-transform: uppercase;
}
.actu-title {
  font-size: 1.5rem;
  line-height: 1.3;
}
.actu-title a {
  color: inherit;
  text-decoration: none;
}
.actu-title a:hover {
  text-decoration: underline;
}
@media (min-width: 768px) {
  .actu-img {
    height: 22rem;
  }
}

/*--------------------------------------------------------------
4.6 Formulaire
--------------------------------------------------------------*/
.content-form {
  padding: 100px 80px 50px;
}

.home-formulaire-visual {
  position: relative;
  height: 100%;
  min-height: 460px;
  border-radius: 25px;
  background-color: var(--az-beige, #eaded0);
  background-size: cover;
  background-position: center;
}

.home-formulaire-coords {
  overflow: hidden;
  position: absolute;
  left: 1.5rem;
  bottom: 1.5rem;
  max-width: calc(100% - 3rem);
  padding: 1.25rem 1.5rem;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(35, 31, 32, 0.12);
}

.home-formulaire-line {
  display: flex;
  align-items: center;
  gap: 0.875rem;
}

.home-formulaire-icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--bs-primary);
  color: #f2f2ea;
  font-size: 1.125rem;
}

.home-formulaire-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bs-secondary);
}

.home-formulaire-phone {
  font-size: 1.125rem;
  font-weight: 700;
  color: #231f20;
  text-decoration: none;
}

.home-formulaire-text {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
}
.home-formulaire-intro p {
  color: var(--az-cream);
  font-size: 1rem;
}

.home-formulaire-deco {
  position: absolute;
  top: 0.75rem;
  right: 0;
  width: 120px;
  color: var(--bs-primary);
  opacity: 0.7;
  line-height: 0;
  pointer-events: none;
}

.home-formulaire-deco svg {
  display: block;
  width: 100%;
  height: auto;
  fill: currentColor;
}

.home-formulaire-line,
.home-formulaire-coords .row {
  position: relative;
}

@media (max-width: 767.98px) {
  .home-formulaire-visual {
    min-height: 0;
    padding-top: 260px;
  }
  .home-formulaire-coords {
    position: relative;
    left: auto;
    bottom: auto;
    max-width: none;
    margin: 0 1rem;
    transform: translateY(1.5rem);
  }
}

/* Contact Form 7 */
.wpcf7-form-control-wrap { display: block; }
.wpcf7-not-valid-tip { margin-top: 0.25rem; font-size: 0.875rem; color: var(--az-cream); }
.wpcf7 .wpcf7-not-valid { border-color: var(--bs-danger); }
.wpcf7-response-output { margin: 1rem 0 0 !important; padding: 0.75rem 1rem !important; border-radius: 12px; font-size: 0.9375rem; }
.wpcf7-spinner { margin-left: 0.75rem; }
.wpcf7 .form-control::placeholder {
  color: var(--bs-primary);
  opacity: 0.6;
}

.home-formulaire p strong {
  color: var(--az-cream);
  font-weight: 600;
}

.home-formulaire-intro.pb-3 a {
  color: var(--az-cream);
}

/*--------------------------------------------------------------
4.6 FAQ
--------------------------------------------------------------*/
.home-faq-accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-border-width: 0;
  --bs-accordion-btn-color: #231f20;
  --bs-accordion-active-color: #231f20;
  --bs-accordion-active-bg: transparent;
  --bs-accordion-btn-bg: transparent;
  --bs-accordion-btn-padding-x: 1.5rem;
  --bs-accordion-btn-padding-y: 1.25rem;
  --bs-accordion-body-padding-x: 1.5rem;
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-btn-icon-width: 36px;
  --bs-accordion-btn-icon-transform: none;
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c745f'%3E%3Cpath fill-rule='evenodd' d='M8 2a.5.5 0 0 1 .5.5v5h5a.5.5 0 0 1 0 1h-5v5a.5.5 0 0 1-1 0v-5h-5a.5.5 0 0 1 0-1h5v-5A.5.5 0 0 1 8 2'/%3E%3C/svg%3E");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c745f'%3E%3Cpath fill-rule='evenodd' d='M2 8a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11A.5.5 0 0 1 2 8'/%3E%3C/svg%3E");
}

.home-faq-accordion .accordion-item h3{

}

.home-faq-accordion .accordion-item {
  margin-bottom: 1rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.35);
  border-radius: 20px;
  overflow: hidden;
}

.home-faq-accordion .accordion-item:last-child {
  margin-bottom: 0;
}

.home-faq-accordion .accordion-button {
  gap: 1rem;
  font-size: 1.125rem;
  font-weight: 400;
  border-radius: 0;
  box-shadow: none;
  font-family: var(--font-body);
}

/* plus / moins dans un rond beige, à droite */
.home-faq-accordion .accordion-button::after {
  flex-shrink: 0;
  height: 36px;
  margin-left: auto;
  border-radius: 50%;
  background-color: var(--az-beige, #eaded0);
  background-size: 14px;
  background-position: center;
  background-repeat: no-repeat;
}

.home-faq-accordion .accordion-body {
  padding-top: 0;
}

.home-faq-accordion .accordion-body > :last-child {
  margin-bottom: 0;
}

/*--------------------------------------------------------------
5.0 Footer
--------------------------------------------------------------*/
.site-footer {
  position: relative;
  margin-top: 60px;
  background: var(--bs-primary);
  color: #f2f2ea;
}

/* wave */
.site-footer-wave {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: 40px;
  color: var(--bs-primary);
  line-height: 0;
  pointer-events: none;
}

.site-footer-wave svg {
  display: block;
  width: 100%;
  height: 100%;
}

.site-footer-main {
  padding: 100px 0 100px;
}

.site-footer-logo {
  display: inline-block;
  color: #f2f2ea;
}

.site-footer-logo img,
.site-footer-logo svg {
  display: block;
  max-width: 220px;
  height: auto;
}

.site-footer-socials {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin: 1.5rem 0 0;
  padding: 0;
}

.site-footer-socials a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(242, 242, 234, 0.5);
  color: #f2f2ea;
  font-size: 1.125rem;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}

.site-footer-socials a:hover {
  background: #f2f2ea;
  color: var(--bs-primary);
}

.site-footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  padding: 1.25rem 0;
  border-top: 1px solid rgba(242, 242, 234, 0.25);
  font-size: 0.875rem;
}

.site-footer-bottom a {
  color: #f2f2ea;
  text-decoration: underline;
}

@media (min-width: 768px) {
  .site-footer { margin-top: 100px; }
  .site-footer-wave { height: 70px; }
}

.footer-credit-coeur {
  color: #ffc9c4;
  font-size: 0.85em;
  margin: 0 0.15em;
}

/*--------------------------------------------------------------
6.0 Prestations
--------------------------------------------------------------*/
/*--------------------------------------------------------------
6.1 Hero
--------------------------------------------------------------*/
.hero-presta .hero-subtitle {
	font-size: 1.5rem;
	color: var(--bs-body-color);
}

.hero-presta .hero-overlay {
	background: linear-gradient(90deg, #ffffffff 16%, #ffffff90 30%, #33383b00 100%);
  opacity: 1;
}

@media (max-width: 991.98px) {
	.hero-presta .hero-overlay {
		background: linear-gradient(180deg, #ffffffff 16%, #ffffff90 30%, #33383b00 100%);
	}
}
/*--------------------------------------------------------------
7.0 Mes massages
--------------------------------------------------------------*/
/*--------------------------------------------------------------
7.1 Bloc Prestations
--------------------------------------------------------------*/
.presta-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}

.presta-card .stretched-link {
	margin-top: auto;
  font-weight: 600;
}

.presta-card-icon {
	width: 80px;
	height: 80px;
}

.presta-card-title {
	font-size: 1.75rem; /* 28px */
}
.presta-card-icon svg {
	width: 40px;
	height: 40px;
	fill: currentColor;
}
/*--------------------------------------------------------------
7.2 Mon approche
--------------------------------------------------------------*/
.approche-massage {
  padding-top: 100px;
}
.approche-massage .massages-texte h2 {
  margin-bottom: 1.5rem;
}
.approche-massage .massages-texte {
  padding: 80px 50px;

}
.approche-massage .massages-texte p strong {
  color: var(--bs-body-color);
  font-weight: 600;
}
.massages-picto {
	pointer-events: none;
  right: 8px;
  top: 9px;
}

.massages-picto svg {
	display: block;
  width: 170px;
	height: auto;
}

@media (max-width: 991.98px) {
	.massages-picto svg {
		width: 80px;
	}
}

/*--------------------------------------------------------------
7.3 Détails prestations
--------------------------------------------------------------*/
.massage-detail-head {
    line-height: 1;
}

.massage-detail-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--bs-primary);
    color: #FFF;
    font-weight: 700;
    flex-shrink: 0;
}

.massage-detail-surtitre {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .875rem;
    font-weight: 600;
    color: var(--bs-primary);
}

.massage-detail-meta {
    font-weight: 600;
    color: var(--bs-primary);
    font-family: var(--font-heading);
    font-size: 1.5rem;
}

/* Variante fond primary */
.massage-detail-primary .massage-detail-titre,
.massage-detail-primary .massage-detail-texte,
.massage-detail-primary .massage-detail-texte p,
.massage-detail-primary .massage-detail-texte a:not(.btn) {
    color: #fff;
}

.massage-detail-primary .massage-detail-surtitre,
.massage-detail-primary .massage-detail-meta {
    color: var(--az-beige);
}
.massage-detail-primary .massage-detail-surtitre span{
    font-weight: 600;
}

.massage-detail-primary .massage-detail-num {
  background: transparent;
  background: var(--az-beige);
  color: var(--bs-body-color);
}
.massage-detail-primary .massage-detail-texte p strong {
    color: #fff;
    font-weight: 600;
}

/*--------------------------------------------------------------
7.4 Tarifs prestations
--------------------------------------------------------------*/
/* .massage-tarifs {
    position: relative;
    overflow: hidden;
    background: var(--az-cream);
} */

.massage-tarifs-deco {
    position: absolute;
    top: 0;
    right: 0;
    width: 220px;
    color: var(--bs-primary);
    opacity: .25;
    pointer-events: none;
}

.massage-tarifs-deco svg {
    display: block;
    width: 100%;
    height: auto;
    fill: currentColor;
}

.massage-tarifs-item {
    padding: 1.25rem 0;
    border-bottom: 1px solid rgba(var(--bs-primary-rgb), .25);
}

.massage-tarifs-item:first-child {
    padding-top: 0;
}

.massage-tarifs-item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.massage-tarifs-presta {
    font-size: 1.125rem;
}

.massage-tarifs-prix {
    flex-shrink: 0;
    padding: .375rem 1.25rem;
    border-radius: 25px;
    background: #cebca4;
    font-weight: 600;
    white-space: nowrap;
    color: #FFF;
}

@media (max-width: 767.98px) {
    .massage-tarifs-deco {
        width: 140px;
    }
}

/*--------------------------------------------------------------
7.5 Infos supp
--------------------------------------------------------------*/
.massages-infos {
  margin-top: 120px;
}
.massages-infos-texte p strong {
  color: var(--bs-body-color);
  font-weight: 600;
}
.massages-infos-titre-wrap {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 1rem;
}
.massages-infos-puce {
    display: flex;
    flex-shrink: 0;
    width: 21px;
    line-height: 0;
}
.massages-infos-puce svg {
    display: block;
    width: 21px;
    height: auto;
}
.massages-infos-titre {
  margin: 0;
  font-size: 1.75rem;
}
.massages-infos-wave {
    color: rgba(var(--bs-primary-rgb), 0.12);
    line-height: 0;
    margin-top: 0;
}
.massages-infos-wave svg {
    display: block;
    width: 100%;
    height: 12vw;
}
.massages-infos-row:not(:last-child) {
    padding-bottom: 80px;
}
.massages-infos-row:not(:last-child) {
    padding-bottom: 40px;
}
@media (min-width: 768px) {
    .massages-infos-row:not(:last-child) {
        padding-bottom: 80px;
    }
}

.page-id-2 .home-formulaire {
  margin-top: -10rem;
}

/*--------------------------------------------------------------
8.0 Accompagnement spécifique
--------------------------------------------------------------*/
.page-id-49 .massages-infos, .page-id-153 .massages-infos,
.page-id-155 .massages-infos, .page-id-157 .massages-infos{
  margin-top: 0;
}

/* Première section : uniquement le padding-bottom */
.accompagnement-detail.accompagnement-detail-first {
    padding-top: 0;
}

.accompagnement-detail-head {
    line-height: 1;
}

.accompagnement-detail-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--bs-primary);
    color: #FFF;
    font-weight: 700;
    flex-shrink: 0;
}

/* Variante fond primary */
.accompagnement-detail-primary .accompagnement-detail-titre,
.accompagnement-detail-primary .accompagnement-detail-texte,
.accompagnement-detail-primary .accompagnement-detail-texte p,
.accompagnement-detail-primary .accompagnement-detail-texte a:not(.btn) {
    color: #fff;
}

.accompagnement-detail-primary .accompagnement-detail-num {
    background: var(--az-beige);
    color: var(--bs-body-color);
}

.accompagnement-detail-primary .accompagnement-detail-texte p strong {
    color: #fff;
    font-weight: 600;
}

.accompagnement-detail-texte p strong {
    color: var(--bs-body-color);
    font-weight: 600;
}

/*--------------------------------------------------------------
8.1 Hero sub
--------------------------------------------------------------*/
.hero-sub-back {
	font-size: 0.875rem;
	letter-spacing: 0.05em;
	color: var(--bs-secondary);
	text-decoration: none;
}

.hero-sub-back:hover {
	color: var(--bs-primary);
}

.hero-sub-back-icon {
	font-size: 0.75rem;
	margin-right: 0.5rem;
	transform: rotate(180deg);
}

.hero-sub-title {
	font-size: clamp(2rem, 4vw, 2.75rem);
}

.hero-sub-subtitle {
	font-size: 1.25rem;
}

.hero-sub-image {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/*--------------------------------------------------------------
8.2 Partenariat
--------------------------------------------------------------*/
.partenariat-card {
    padding: 3rem 1.5rem;
    background: rgba(var(--bs-primary-rgb), .12);
}

.partenariat-deco {
    position: absolute;
    top: 7px;
    right: 0;
    width: 180px;
    color: var(--bs-primary);
    opacity: .2;
    pointer-events: none;
}

.partenariat-deco svg {
    display: block;
    width: 100%;
    height: auto;
    fill: currentColor;
}

.partenariat-surtitre {
    display: block;
    margin-bottom: .75rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .875rem;
    font-weight: 600;
    color: var(--bs-primary);
}

.partenariat-titre {
    margin-bottom: 1rem;
}

.partenariat-accroche {
    font-weight: 600;
    color: var(--bs-secondary);
}

.partenariat-devis {
    padding-left: 1rem;
    border-left: 3px solid var(--bs-secondary);
    font-weight: 600;
}

@media (min-width: 992px) {
    .partenariat-card {
        padding: 4rem 4.5rem;
    }
}

@media (max-width: 767.98px) {
    .partenariat-deco {
        width: 110px;
    }
}

/*--------------------------------------------------------------
9.0 Contact
--------------------------------------------------------------*/
.hero-contact-texte {
  max-width: 640px;
  margin: 0 auto 2rem;
}

.hero-contact h1 {
  margin-bottom: 1.5rem;
}

.hero-contact-texte,
.hero-contact-texte p {
  font-size: 1.5rem;
}

.contact-formulaire-contenu h2 {
  font-size: 1.75rem;
}

.contact-formulaire-contenu p {
  font-size: 1.125rem;
}

.contact-formulaire-form {
  margin-top: 2rem;
}

.contact-info-card {
  /* min-height: 270px; */
  height: 100%;
  padding: 2rem;
  border: 1px solid rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.contact-info-card h3 {
  font-size: 2.25rem;
  font-weight: normal;
}

.contact-info-card p,
.contact-info-card a {
  font-size: 0.875rem;
  color: #979797;
}

.contact-info-card a {
  text-decoration: none;
}

.btn-contact-map {
  margin-top: auto;
  border: 1px solid #979797;
  color: var(--bs-primary);
  background: transparent;
  border-radius: 25px;
}

.btn-contact-map:hover,
.btn-contact-map:focus {
  border-color: var(--bs-primary);
  color: var(--bs-primary);
}

.contact-map-wrap {
  display: grid;
  grid-template-rows: 0fr;
  margin-top: 0;
  opacity: 0;
  visibility: hidden;
  transition: grid-template-rows 0.6s ease, opacity 0.6s ease, margin-top 0.6s ease, visibility 0s 0.6s;
}

.contact-map-wrap.is-open {
  grid-template-rows: 1fr;
  margin-top: 1.5rem;
  opacity: 1;
  visibility: visible;
  transition: grid-template-rows 0.6s ease, opacity 0.6s ease, margin-top 0.6s ease, visibility 0s;
}

.contact-map-inner {
  min-height: 0;
  overflow: hidden;
}

.contact-map {
  position: relative;
  z-index: 0;
  height: 400px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  overflow: hidden;
  background: #f2f2ea;
}

.contact-map .leaflet-tile-pane {
  filter: grayscale(0.55) sepia(0.15) saturate(0.7) brightness(1.04) contrast(0.95);
}

.contact-map .leaflet-control-zoom {
  border: 0;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}

.contact-map .leaflet-control-zoom a {
  color: var(--bs-primary);
}

.contact-marker {
  display: block;
  position: relative;
  width: 22px;
  height: 22px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--bs-primary);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.contact-marker::after {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: var(--bs-primary);
  opacity: 0.35;
  animation: contact-marker-pulse 2.4s ease-out infinite;
}

@keyframes contact-marker-pulse {
  to {
    transform: scale(2.6);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-map-wrap,
  .contact-map-wrap.is-open {
    transition: none;
  }

  .contact-marker::after {
    animation: none;
  }
}

.alert-icon {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.alert-icon > [class^="icon-"],
.alert-icon > [class*=" icon-"] {
  flex-shrink: 0;
  font-size: 1.25rem;
  line-height: 1.5;
}


/*--------------------------------------------------------------
10.0 Qui suis-je ?
--------------------------------------------------------------*/

/*--------------------------------------------------------------
10.1 Hero
--------------------------------------------------------------*/
.hero-portrait {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 480px;
	overflow: hidden;
	background-color: var(--bs-primary);
}

.hero-portrait-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 70% center;
}

.hero-portrait::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(35, 31, 32, 0.45);
}

.hero-portrait-contenu {
	position: relative;
	z-index: 2;
	padding-top: var(--section-spacing);
	padding-bottom: var(--section-spacing);
}

.hero-portrait h1,
.hero-portrait p {
	color: #fff;
}

.hero-portrait-soustitre {
	font-size: 1.5rem;
}

/* Accroche du hero : citation avec icone quote */
.hero-portrait-accroche {
	position: relative;
	max-width: 520px;
	margin: 2rem 0 0;
	padding: 0 0 0 3.5rem;
	border: 0;
}

.hero-portrait-accroche::before {
	content: "";
	position: absolute;
	top: 0.15rem;
	left: 0;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, 0.65);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 5C6.5 5 4 7.5 4 10.5V19h6.5v-6.5h-3c0-1.7 1.3-3 3-3V5h-1zm10 0c-3 0-5.5 2.5-5.5 5.5V19H20v-6.5h-3c0-1.7 1.3-3 3-3V5h-.5z'/%3E%3C/svg%3E") center / 16px no-repeat;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

.hero-portrait-accroche p {
	margin: 0;
	font-size: 1.125rem;
	font-style: italic;
	line-height: 1.6;
}

@media (min-width: 768px) {
	.hero-portrait {
		min-height: 600px;
	}

	.hero-portrait::before {
		background: linear-gradient(90deg, rgba(35, 31, 32, 0.65) 0%, rgba(35, 31, 32, 0) 70%);
	}

  .hero-portrait-accroche {
    padding-left: 4.25rem;
  }

  .hero-portrait-accroche::before {
    width: 44px;
    height: 44px;
    background-size: 18px;
  }
}

/*--------------------------------------------------------------
10.2 Contenu
--------------------------------------------------------------*/
.apropos-section img {
    width: 100%;
    height: auto;
}

.apropos-section p:last-child {
    margin-bottom: 0;
}

/* Citation page A propos */
.apropos-section blockquote {
	position: relative;
	max-width: 820px;
	margin: 3.5rem auto 2.5rem;
	padding: 3.25rem 1.5rem 1.75rem;
	border: 0;
	border-radius: 25px;
	background-color: #fff;
	text-align: center;
}

/* Icone quote dans un rond primary, a cheval sur le haut de la carte */
.apropos-section blockquote::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	background: var(--bs-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 5C6.5 5 4 7.5 4 10.5V19h6.5v-6.5h-3c0-1.7 1.3-3 3-3V5h-1zm10 0c-3 0-5.5 2.5-5.5 5.5V19H20v-6.5h-3c0-1.7 1.3-3 3-3V5h-.5z'/%3E%3C/svg%3E") center / 24px no-repeat;
}

.apropos-section blockquote p {
	margin: 0;
	font-size: 1rem;
	font-style: italic;
	line-height: 1.5;
}

@media (min-width: 768px) {
	.apropos-section blockquote {
		padding: 3.5rem 3rem 2.25rem;
	}

	.apropos-section blockquote p {
    font-size: 1.25rem;
	}
}

/*--------------------------------------------------------------
11.0 Blog
--------------------------------------------------------------*/
/* .actu-hero {
  padding: 30px 0;
} */
.actu-hero-texte {
  max-width: 40rem;
  font-size: 1.5rem;
}
.actu-filtres .btn {
  border-radius: 25px;
}

/* Article a la une */
.actu-une-img {
  height: 18rem;
  overflow: hidden;
  background: var(--az-beige);
}
.actu-une-img img {
  object-fit: cover;
  transition: transform 0.4s ease;
}
.actu-une:hover .actu-une-img img {
  transform: scale(1.03);
}
.actu-une-meta {
  font-size: 0.875rem;
  color: var(--bs-secondary);
}
.actu-une-cat {
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.actu-une-title {
  font-size: 2rem;
  line-height: 1.25;
}
.actu-une-title a {
  color: inherit;
  text-decoration: none;
}
.actu-une-title a:hover {
  text-decoration: underline;
}
@media (min-width: 768px) {
  .actu-une-img {
    height: 28rem;
  }
  .actu-une-title {
    font-size: 2.5rem;
  }
}

/* Repli quand un article n'a pas d'image a la une */
.actu-img {
  background: var(--az-beige);
}

/* Pagination */
.actu-prev {
  display: inline-block;
  transform: rotate(180deg);
}
.pagination .page-link .icon {
  font-size: 0.75rem;
}


/*--------------------------------------------------------------
11.1 Single
--------------------------------------------------------------*/
.single-hero-texte {
  max-width: 48rem;
}
.single-hero-meta {
  font-size: 0.875rem;
  color: var(--bs-secondary);
}
.single-hero-img {
  height: 20rem;
  overflow: hidden;
  background: var(--az-beige);
}
.single-hero-img img {
  object-fit: cover;
}
@media (min-width: 768px) {
  .single-hero-img {
    height: 31rem;
  }
}

/* Contenu de l'article */
.single-contenu {
  font-size: 1.125rem;
}
.single-contenu h2 {
  font-size: 1.75rem;
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}
.single-contenu h3 {
  font-size: 1.5rem;
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}
.single-contenu > *:first-child {
  margin-top: 0;
}
.single-contenu ul,
.single-contenu ol {
  margin-bottom: 1.5rem;
  padding-left: 1.5rem;
}
.single-contenu li {
  margin-bottom: 0.5rem;
}
.single-contenu a {
  color: var(--bs-secondary);
}
.single-contenu img {
  max-width: 100%;
  height: auto;
  border-radius: 25px;
}
.single-contenu figure {
  margin: 2rem 0;
}
.single-contenu figcaption {
  font-size: 0.875rem;
  color: #979797;
  margin-top: 0.5rem;
}
.single-contenu blockquote {
  margin: 2rem 0;
  padding: 0.5rem 0 0.5rem 1.5rem;
  border-left: 3px solid var(--bs-primary);
  font-size: 1.25rem;
  font-style: italic;
}
.single-contenu blockquote p:last-child {
  margin-bottom: 0;
}

/* Partage */
.single-share-label {
  font-size: 0.875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bs-secondary);
}
.single-share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--bs-primary);
  border-radius: 50%;
  background: transparent;
  color: var(--bs-primary);
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.single-share-btn:hover,
.single-share-btn:focus-visible {
  background: var(--bs-primary);
  color: #f2f2ea;
}
.single-share-ok {
  font-size: 0.875rem;
  color: var(--bs-secondary);
}

/* Precedent / suivant */
.single-nav {
  border-top: 1px solid rgba(0, 0, 0, 0.15);
}
.single-nav-lien {
  display: block;
  color: inherit;
  text-decoration: none;
}
.single-nav-label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bs-secondary);
}
.single-nav-titre {
  display: block;
  font-size: 1.25rem;
  line-height: 1.3;
}
.single-nav-lien:hover .single-nav-titre {
  text-decoration: underline;
}

/*--------------------------------------------------------------
11.2 Sommaire
--------------------------------------------------------------*/
.single-contenu h2 {
  scroll-margin-top: 6rem;
}
.single-sommaire {
  margin-bottom: 2.5rem;
  padding: 1.5rem 2rem;
}
.single-sommaire-titre {
  margin-bottom: 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bs-secondary);
}
.single-contenu .single-sommaire ol {
  margin: 0;
  padding-left: 1.25rem;
}
.single-contenu .single-sommaire li {
  margin-bottom: 0.5rem;
}
.single-contenu .single-sommaire li:last-child {
  margin-bottom: 0;
}
.single-contenu .single-sommaire a {
  color: inherit;
  text-decoration: none;
}
.single-contenu .single-sommaire a:hover {
  text-decoration: underline;
}

/*--------------------------------------------------------------
11.3 Shortcode CTA
--------------------------------------------------------------*/
.single-cta {
  margin: 2.5rem 0;
  padding: 2rem;
}
.single-cta-texte {
  margin-bottom: 1.25rem;
  font-size: 1.25rem;
}
.single-cta a {
  color: #FFF;
}

/*--------------------------------------------------------------
11.4 A propos de l'auteure
--------------------------------------------------------------*/
.single-auteure {
    padding: 1.75rem;
    margin-block: 2.5rem;
}

.single-auteure h2 {
    margin: 0;
}

.single-auteure-inner {
    max-width: 100%;
}

.single-auteure-contenu {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
}

.single-auteure-avatar {
    width: 100px;
    aspect-ratio: 1;
}

.single-auteure-photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.single-auteure-texte {
    min-width: 0;
}

.single-auteure-titre {
    margin: 0 0 0.75rem;
    font-size: 1.35rem;
    line-height: 1.3;
}

.single-auteure-presentation,
.single-auteure-texte-personnalise {
    line-height: 1.7;
}

.single-auteure-presentation > :last-child,
.single-auteure-texte-personnalise > :last-child {
    margin-bottom: 0;
}

/* .single-auteure-texte-personnalise {
    margin-top: 0.75rem;
} */

.single-auteure-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.single-auteure-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.single-auteure .btn.btn-primary {
  color: #FFF;
  font-weight: 300;
}
.single-auteure .btn.btn-outline-primary {
  color: var(--az-outline);
  font-weight: 300;
}

/* Mobile */
@media (max-width: 575.98px) {
    .single-auteure {
        padding: 1.25rem;
    }

    .single-auteure-contenu {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .single-auteure-avatar {
        width: 80px;
    }

    .single-auteure-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .single-auteure-actions .btn {
        width: 100%;
    }
}
