/* ==========================================================================
   Ka'Com - Design system
   Source unique de verite pour les couleurs, typographies, formes et espacements.
   Toute page du site doit pouvoir etre construite avec ces variables et ces
   classes utilitaires, sans jamais ecrire de HTML dans un bloc Gutenberg.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */

:root {
	/* Couleurs de marque */
	--kc-terracotta:      #d9a689;
	--kc-terracotta-dark: #c69777;
	--kc-terracotta-deep: #b8875f;
	--kc-caramel:         #c08a66;
	--kc-caramel-soft:    #a8785a;
	--kc-cacao:           #674c3c;
	--kc-cacao-deep:      #4a3527;
	--kc-sable:           #e5cdc0;
	--kc-creme:           #faf2ec;
	--kc-creme-soft:      #f6efe9;
	--kc-creme-input:     #f3e3d8;
	--kc-rose:            #f5b3c4;
	--kc-blanc:           #ffffff;

	/* Texte */
	--kc-text:            #674c3c;
	--kc-text-muted:      #7a6a5c;
	--kc-text-light:      #a08571;
	--kc-text-invert:     #ffffff;

	/* Typographie */
	--kc-font-title: 'League Spartan', 'Helvetica Neue', Arial, sans-serif;
	--kc-font-body:  'Livvic', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--kc-font-mono:  ui-monospace, Menlo, Consolas, monospace;

	/* Echelle typographique (fluide : mobile -> desktop) */
	--kc-fs-h1:      clamp(32px, 5.2vw, 52px);
	--kc-fs-h2:      clamp(26px, 3.6vw, 36px);
	--kc-fs-h3:      clamp(19px, 2.2vw, 23px);
	--kc-fs-lead:    clamp(15.5px, 1.6vw, 17px);
	--kc-fs-body:    16px;
	--kc-fs-small:   14.5px;
	--kc-fs-tiny:    12.5px;
	--kc-fs-giant:   clamp(70px, 15vw, 170px);

	--kc-lh-title:   1.15;
	--kc-lh-body:    1.75;

	/* Formes : la signature visuelle Ka'Com, des coins asymetriques */
	--kc-radius-lg:  24px 38px 10px 38px;
	--kc-radius-md:  14px 22px 6px 22px;
	--kc-radius-sm:  9px 14px 4px 14px;
	--kc-radius-pill: 26px;
	--kc-radius-round: 50%;

	/* Ombres */
	--kc-shadow-card: 0 16px 44px rgba(103, 76, 60, .2);
	--kc-shadow-soft: 0 10px 30px rgba(103, 76, 60, .1);

	/* Rythme */
	--kc-gutter:        clamp(20px, 5vw, 64px);
	--kc-section-y:     clamp(56px, 8vw, 96px);
	--kc-section-y-lg:  clamp(64px, 10vw, 120px);
	--kc-gap-cards:     34px;

	/* Largeurs */
	--kc-container:     1180px;
	--kc-container-narrow: 1120px;
	--kc-measure:       660px;
}

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */

html {
	overflow-x: hidden;
	width: 100%;
}
body {
	font-family: var(--kc-font-body);
	font-size: var(--kc-fs-body);
	line-height: var(--kc-lh-body);
	color: var(--kc-text);
	background: var(--kc-blanc);
	overflow-x: hidden;
	width: 100%;
}

h1, h2, h3, h4, h5, h6,
.wp-block-heading {
	font-family: var(--kc-font-title);
	color: var(--kc-cacao);
	line-height: var(--kc-lh-title);
	text-wrap: pretty;
}

h1, .wp-block-heading.is-style-h1 { font-size: var(--kc-fs-h1); font-weight: 800; }
h2 { font-size: var(--kc-fs-h2); font-weight: 800; }
h3 { font-size: var(--kc-fs-h3); font-weight: 700; }

p { color: var(--kc-text-muted); }

a {
	color: var(--kc-caramel);
	text-underline-offset: 3px;
}

a:hover,
a:focus {
	color: var(--kc-cacao);
}

/* Accessibilite : un focus toujours visible, jamais supprime. */
:where(a, button, input, textarea, select):focus-visible {
	outline: 2px solid var(--kc-caramel);
	outline-offset: 3px;
}

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

/* --------------------------------------------------------------------------
   3. Overrides Kadence : largeurs et rythme
   -------------------------------------------------------------------------- */

:root {
	--global-content-width: var(--kc-container);
	--global-content-narrow-width: var(--kc-measure);
	--global-content-edge-padding: var(--kc-gutter);
	--global-palette1: var(--kc-terracotta);
	--global-palette2: var(--kc-caramel);
	--global-palette3: var(--kc-cacao);
	--global-palette4: var(--kc-text-muted);
	--global-palette5: var(--kc-sable);
	--global-palette6: var(--kc-creme);
	--global-palette7: var(--kc-creme-soft);
	--global-palette8: var(--kc-blanc);
	--global-palette9: var(--kc-blanc);
	--global-primary-nav-padding: 0;
}

.content-area,
.content-container,
.entry-content {
	margin-top: 0;
	margin-bottom: 0;
}

/* Les pages construites en blocs gerent elles-memes leurs marges : on neutralise
   le padding vertical par defaut de Kadence pour coller au pixel a la maquette. */
body.page .content-area {
	padding-top: 0;
	padding-bottom: 0;
}

.entry-content > .alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: 100vw;
	width: auto;
}

/* --------------------------------------------------------------------------
   4. Overrides Gutenberg : boutons, groupes, colonnes
   -------------------------------------------------------------------------- */

.wp-block-button__link,
.kb-button {
	font-family: var(--kc-font-body);
	font-size: var(--kc-fs-small);
	font-weight: 600;
	padding: 15px 30px;
	border-radius: var(--kc-radius-pill);
	border: 0;
	transition: background .25s ease, color .25s ease, transform .25s ease;
}

.wp-block-button__link:hover,
.kb-button:hover {
	transform: translateY(-2px);
}

/* Bouton principal : cacao plein */
.wp-block-button.is-style-fill .wp-block-button__link,
.wp-block-button__link {
	background: var(--kc-cacao);
	color: var(--kc-text-invert);
}

.wp-block-button.is-style-fill .wp-block-button__link:hover,
.wp-block-button__link:hover {
	background: var(--kc-cacao-deep);
	color: var(--kc-text-invert);
}

/* Bouton clair, pose sur une image ou un fond sombre */
.wp-block-button.is-style-kc-light .wp-block-button__link {
	background: var(--kc-creme);
	color: var(--kc-cacao);
}

.wp-block-button.is-style-kc-light .wp-block-button__link:hover {
	background: var(--kc-blanc);
	color: var(--kc-cacao);
}

/* Bouton rose : reserve aux offres de la boutique */
.wp-block-button.is-style-kc-rose .wp-block-button__link {
	background: var(--kc-rose);
	color: var(--kc-cacao);
	font-weight: 700;
	font-size: 13.5px;
	padding: 11px 22px;
	border-radius: 22px;
}

/* Lien souligne : la seconde action, discrete */
.wp-block-button.is-style-kc-underline .wp-block-button__link {
	background: transparent;
	color: var(--kc-text-invert);
	padding: 0 0 2px;
	border-radius: 0;
	border-bottom: 1.5px solid var(--kc-terracotta);
}

.wp-block-button.is-style-kc-underline .wp-block-button__link:hover {
	background: transparent;
	color: var(--kc-terracotta);
}

/* --------------------------------------------------------------------------
   5. Classes utilitaires
   Appliquees depuis le champ "Classes CSS additionnelles" des blocs natifs.
   C'est ce qui permet de tout construire en Gutenberg sans bloc HTML.
   -------------------------------------------------------------------------- */

/* 5.1 Sections */
.kc-section        { padding-block: var(--kc-section-y); padding-inline: var(--kc-gutter); }
.kc-section--lg    { padding-block: var(--kc-section-y-lg); }
.kc-section--creme { background: var(--kc-creme); }
.kc-section--sable { background: var(--kc-sable); }
.kc-section--blanc { background: var(--kc-blanc); }

.kc-container        { max-width: var(--kc-container); margin-inline: auto; }
.kc-container--narrow{ max-width: var(--kc-container-narrow); margin-inline: auto; }
.kc-measure          { max-width: var(--kc-measure); margin-inline: auto; }

/* 5.2 Cartes : la forme signature */
.kc-card {
	background: var(--kc-creme);
	border-radius: var(--kc-radius-lg);
	padding: 30px;
	box-sizing: border-box;
	height: 100%;
	transition: transform .3s ease, box-shadow .3s ease;
}

.kc-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--kc-shadow-card);
}

.kc-card--center { text-align: center; }

.kc-card img,
.kc-card .wp-block-image img {
	border-radius: var(--kc-radius-md);
}

.kc-card h3 { margin-block: 0 0; }

/* 5.3 Media : coins arrondis signature sur les images */
.kc-media img   { border-radius: var(--kc-radius-md); }
.kc-media--lg img { border-radius: var(--kc-radius-lg); }

/* 5.4 Etiquettes et puces */
.kc-eyebrow {
	font-size: var(--kc-fs-tiny);
	letter-spacing: 1px;
	font-weight: 600;
	color: var(--kc-caramel);
	text-transform: none;
}

.kc-tag {
	display: inline-block;
	border: 1px solid var(--kc-terracotta);
	color: var(--kc-caramel-soft);
	font-size: 13.5px;
	padding: 8px 18px;
	border-radius: 20px;
	line-height: 1;
}

.kc-price {
	font-family: var(--kc-font-title);
	font-weight: 800;
	font-size: 22px;
	color: var(--kc-cacao);
}

/* 5.5 Le mot KA'COM en contour, signature de la marque */
.kc-watermark {
	font-family: var(--kc-font-title);
	font-weight: 900;
	font-size: var(--kc-fs-giant);
	line-height: .72;
	white-space: nowrap;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--kc-terracotta);
	letter-spacing: 6px;
	pointer-events: none;
	user-select: none;
	max-width: 94vw;
	overflow: hidden;
}

.kc-watermark--right { text-align: right; }

/* 5.6 Blocs image de fond facon "hero" */
.kc-hero {
	position: relative;
	color: var(--kc-text-invert);
}

.kc-hero :where(h1, h2, h3, p) {
	color: var(--kc-text-invert);
	text-shadow: 0 2px 18px rgba(103, 76, 60, .5);
}

.kc-hero--overlay::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(103, 76, 60, .3), rgba(103, 76, 60, .58));
	pointer-events: none;
}

.kc-hero > * { position: relative; z-index: 2; }

/* 5.7 Grilles de cartes */
.kc-grid-3 > .wp-block-column,
.kc-grid-2 > .wp-block-column {
	display: flex;
	flex-direction: column;
}

/* --------------------------------------------------------------------------
   6. En-tete et pied de page
   -------------------------------------------------------------------------- */

.kc-header {
	background: var(--kc-terracotta);
}

.kc-header a {
	color: var(--kc-text-invert);
	text-decoration: none;
	font-size: 14px;
}

.kc-header a:hover {
	color: var(--kc-creme);
}

/* Le logo en medaillon arrondi, ancre au centre de la barre. */
.kc-header__badge {
	width: 126px;
	height: 126px;
	border-radius: 0 0 63px 63px;
	background: var(--kc-terracotta);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 16px;
	box-sizing: border-box;
}

.kc-footer {
	background: var(--kc-terracotta-dark);
	color: var(--kc-text-invert);
}

.kc-footer :where(a, p, h2, h3, .wp-block-heading) {
	color: var(--kc-text-invert);
}

.kc-footer a { text-decoration: none; font-size: 14px; }
.kc-footer a:hover { text-decoration: underline; }

.kc-footer__bottom {
	background: var(--kc-terracotta-deep);
	color: var(--kc-text-invert);
	font-size: var(--kc-fs-tiny);
	text-align: center;
	padding: 18px var(--kc-gutter);
}

/* Champs du formulaire newsletter, facon pilule creme */
.kc-footer .kb-form input[type="text"],
.kc-footer .kb-form input[type="email"] {
	height: 44px;
	border-radius: 22px;
	background: var(--kc-creme-input);
	border: 0;
	padding-inline: 20px;
	font-size: 14px;
	color: var(--kc-text-light);
}

/* --------------------------------------------------------------------------
   7. Formulaires Kadence Blocks
   -------------------------------------------------------------------------- */

.kb-form input[type="text"],
.kb-form input[type="email"],
.kb-form input[type="tel"],
.kb-form textarea,
.kb-form select {
	font-family: var(--kc-font-body);
	border: 1px solid var(--kc-sable);
	border-radius: 18px;
	padding: 13px 18px;
	background: var(--kc-blanc);
	color: var(--kc-text);
}

.kb-form textarea { border-radius: 18px 24px 8px 24px; }

.kb-form input:focus,
.kb-form textarea:focus {
	border-color: var(--kc-terracotta);
	outline: none;
}

/* --------------------------------------------------------------------------
   7b. Composants de page (maquette Ka'Com)
   Tous appliques via "Classes CSS additionnelles" sur des blocs natifs.
   -------------------------------------------------------------------------- */

/* Pages en pleine largeur : Kadence ne doit rien contraindre */
body.page .entry-content-wrap { padding: 0; }
body.page .entry-content { margin: 0; }
body.page .site-main > article { box-shadow: none; }

/* Sections : marges laterales et contenu centre */
.entry-content > .wp-block-group.alignfull.kc-section,
.entry-content > .wp-block-cover.alignfull {
	padding-left: var(--kc-gutter);
	padding-right: var(--kc-gutter);
	margin-top: 0;
	margin-bottom: 0;
}

.kc-section > :where(*) {
	max-width: var(--kc-container);
	margin-left: auto;
	margin-right: auto;
}

.kc-section--narrow > :where(*) { max-width: 1000px; }
.kc-section--wide > :where(*) { max-width: 1560px; }
.kc-section--tight  { padding-block: clamp(48px, 6vw, 70px); }
.kc-section--rose-sable, .kc-section--sable { background: var(--kc-sable); }

.kc-section > .wp-block-heading,
.kc-section > p { margin-top: 0; }

/* Titres de section centres */
.kc-section-head { text-align: center; margin-bottom: clamp(36px, 5vw, 54px) !important; }
.kc-section-head .kc-lead { max-width: 620px; margin-inline: auto; }

.kc-eyebrow {
	font-size: 13px;
	letter-spacing: 1px;
	font-weight: 600;
	color: var(--kc-caramel-soft);
	margin: 0 0 12px;
}

.kc-lead { font-size: var(--kc-fs-lead); line-height: 1.75; color: var(--kc-text-muted); }
.kc-note { font-size: 13.5px; color: var(--kc-caramel-soft); text-align: center; }

/* Hero des pages internes, avec le mot KA'COM en contour a cheval */
.kc-hero-page {
	position: relative;
	background: var(--kc-creme);
	padding-top: clamp(64px, 9vw, 110px) !important;
	padding-bottom: clamp(70px, 8vw, 100px) !important;
	overflow: visible;
	z-index: 2;
}

.kc-hero-page h1 { font-size: clamp(34px, 4.6vw, 48px); margin: 0 0 22px; }
.kc-hero-page .wp-block-columns { gap: clamp(32px, 6vw, 70px); }

.kc-hero-page .kc-watermark {
	position: absolute;
	left: -14px;
	bottom: 0;
	transform: translateY(50%);
	margin: 0;
	max-width: none;
	z-index: 3;
}

.kc-watermark { font-size: clamp(64px, 12vw, 170px); overflow: hidden; }

.kc-hero-image img {
	width: 100%;
	height: clamp(260px, 30vw, 380px);
	object-fit: cover;
	border-radius: var(--kc-radius-lg);
	background: var(--kc-sable);
}

/* Section avec le mot KA'COM a cheval en bas a droite */
.kc-has-watermark { position: relative; overflow: visible; z-index: 1; }
.kc-has-watermark > .kc-watermark {
	position: absolute;
	right: -14px;
	left: auto;
	bottom: 0;
	transform: translateY(50%);
	margin: 0;
	max-width: none;
	text-align: right;
}

/* Hero d'accueil : image de fond + voile cacao */
.kc-cover-hero { min-height: clamp(480px, 48vw, 640px) !important; }
.kc-cover-hero .wp-block-cover__background,
.kc-cover-band .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(103, 76, 60, .35), rgba(103, 76, 60, .62)) !important;
	opacity: 1 !important;
}
.kc-cover-hero .wp-block-cover__inner-container { max-width: 860px; text-align: center; }
.kc-cover-hero h1 { color: #fff; font-size: var(--kc-fs-h1); text-shadow: 0 2px 18px rgba(103, 76, 60, .5); margin-bottom: 20px; }
.kc-cover-hero p  { color: #fff; font-size: 17px; max-width: 660px; margin: 0 auto 34px; text-shadow: 0 1px 12px rgba(103, 76, 60, .6); }
.kc-cover-band { min-height: 230px !important; }
.kc-cover-band p { color: #fff; font-family: var(--kc-font-title); font-weight: 700; font-size: clamp(22px, 2.6vw, 28px); line-height: 1.35; text-align: center; max-width: 720px; margin: 0 auto; text-shadow: 0 2px 14px rgba(103, 76, 60, .55); }

/* Cartes */
.kc-card h3 { font-size: 19px; line-height: 1.35; margin: 0 0 10px; }
.kc-card p  { font-size: 15px; line-height: 1.7; margin: 0 0 12px; }
.kc-card > :last-child { margin-bottom: 0; }
.kc-card--center { text-align: center; }
.kc-card--white { background: var(--kc-blanc); }
.kc-card--sm { padding: 28px; }
.kc-card--sm h3 { font-size: 17px; line-height: 1.4; }
.kc-card--sable { background: var(--kc-sable); }
.kc-card--terracotta { background: var(--kc-terracotta); box-shadow: var(--kc-shadow-card); }
.kc-card--terracotta :where(h3, p, li, a) { color: #fff; }

/* Pastilles de couleur (icones de la maquette) */
.kc-blob {
	width: 46px;
	height: 46px;
	min-height: 0 !important;
	border-radius: 12px 18px 5px 18px;
	background: var(--kc-terracotta);
	margin: 0 0 18px !important;
	padding: 0 !important;
}
.kc-card--center .kc-blob { margin-inline: auto !important; }
.kc-blob--rose   { background: var(--kc-rose); }
.kc-blob--sable  { background: var(--kc-sable); }
.kc-blob--caramel{ background: var(--kc-terracotta-dark); }

/* Numeros 01 02 03 */
.kc-num {
	font-family: var(--kc-font-title);
	font-weight: 900;
	font-size: 34px !important;
	line-height: 1 !important;
	color: var(--kc-terracotta) !important;
	opacity: .55;
	margin: 0 0 12px !important;
}

/* Etiquette de tarif */
.kc-pill {
	display: inline-block;
	background: var(--kc-sable);
	color: var(--kc-cacao) !important;
	font-size: 13px !important;
	font-weight: 700;
	padding: 6px 14px;
	border-radius: 20px;
	margin-top: 6px !important;
}

/* Etiquettes (ChatGPT, Gemini...) */
.kc-tags { gap: 12px !important; }
.kc-tags p.kc-tag { margin: 0; }

/* Listes a coches et a puces */
.kc-checklist, .kc-bullets { list-style: none; padding: 0 !important; margin: 0 0 26px !important; }
.kc-checklist li, .kc-bullets li { position: relative; padding-left: 26px; margin-left: 0 !important; margin-bottom: 8px; font-size: 15px; line-height: 1.6; color: var(--kc-cacao); }
.kc-checklist li::before { content: "✓"; position: absolute; left: 0; top: 1px; line-height: 1.6; color: var(--kc-caramel); font-weight: 700; }
.kc-bullets li::before { content: "•"; position: absolute; left: 4px; color: var(--kc-terracotta-dark); font-weight: 700; }

/* Portrait ovale */
.kc-portrait img {
	width: 290px;
	max-width: 100%;
	aspect-ratio: 346 / 426;
	object-fit: cover;
	border-radius: 50%;
}
.kc-portrait--sm img { width: 110px; }

/* Carrousel "Vous n'etes plus seul" : defilement horizontal natif */
.kc-carousel {
	flex-wrap: nowrap !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	gap: 22px !important;
	padding: 10px 4px 26px;
	scrollbar-color: var(--kc-terracotta) var(--kc-creme);
}
.kc-carousel > .wp-block-column {
	flex: 0 0 min(300px, 80vw) !important;
	scroll-snap-align: start;
}

/* Rangee prix + bouton dans les cartes produit */
.kc-price-row { justify-content: space-between; align-items: center; margin-top: auto; }
.kc-price-row .kc-price { margin: 0; }
.kc-card.kc-product { display: flex; flex-direction: column; }

/* Bouton rose */
.wp-block-button.is-style-kc-rose .wp-block-button__link:hover { background: #f09db3; color: var(--kc-cacao); }

/* Bouton souligne : lisible partout */
.wp-block-button.is-style-kc-underline .wp-block-button__link {
	color: var(--kc-caramel-soft);
	font-weight: 700;
}
.kc-cover-hero .is-style-kc-underline .wp-block-button__link,
.kc-card--terracotta .is-style-kc-underline .wp-block-button__link { color: #fff; }

/* Avis clients */
.kc-author { gap: 14px !important; align-items: center; margin-bottom: 18px; }
.kc-author .kc-blob { width: 52px; height: 52px; border-radius: 50%; margin: 0 !important; background: var(--kc-sable); flex-shrink: 0; }
.kc-author p { margin: 0 !important; }
.kc-author .kc-author__name { font-family: var(--kc-font-title); font-weight: 700; font-size: 17px; color: var(--kc-cacao); }
.kc-author .kc-author__role { font-size: 13px; color: var(--kc-caramel-soft); }

/* Etapes numerotees (contact) */
.kc-steps { list-style: none; counter-reset: kc; padding: 0; margin: 0; }
.kc-steps li { counter-increment: kc; position: relative; padding-left: 30px; margin-bottom: 12px; font-size: 15px; line-height: 1.6; color: var(--kc-cacao); }
.kc-steps li::before { content: counter(kc, decimal-leading-zero); position: absolute; left: 0; font-size: 12.5px; color: var(--kc-caramel-soft); top: 2px; }

/* Derniers articles en cartes */
.kc-posts.wp-block-latest-posts__list { padding: 0; gap: 24px; }
.kc-posts.wp-block-latest-posts__list.is-grid li {
	background: var(--kc-creme);
	border-radius: var(--kc-radius-lg);
	padding: 30px;
	box-sizing: border-box;
	text-align: center;
	margin: 0 !important;
	transition: transform .3s ease, box-shadow .3s ease;
}
.kc-posts li:hover { transform: translateY(-4px); box-shadow: var(--kc-shadow-card); }
.kc-posts .wp-block-latest-posts__featured-image { margin: 0 0 22px; }
.kc-posts .wp-block-latest-posts__featured-image img { width: 100%; height: 140px; object-fit: cover; border-radius: var(--kc-radius-md); }
.kc-posts .wp-block-latest-posts__post-title { font-family: var(--kc-font-title); font-weight: 700; font-size: 15px; line-height: 1.4; color: var(--kc-cacao); text-decoration: none; }
.kc-posts .wp-block-latest-posts__post-excerpt { font-size: 14.5px; color: var(--kc-text-muted); margin-top: 10px; }

/* Reseaux sociaux */
.kc-social.wp-block-social-links { gap: 14px; }
.kc-social .wp-social-link { background: var(--kc-terracotta) !important; color: #fff !important; border-radius: 12px 18px 5px 18px !important; }
.kc-social .wp-social-link a { padding: 12px; }
.kc-social .wp-social-link svg { width: 23px; height: 23px; }

/* Section cacao (newsletter) : texte clair */
.kc-section--cacao { background: var(--kc-cacao); padding-bottom: clamp(30px, 4vw, 46px) !important; }
.kc-section--cacao :where(h2, h3, p, li) { color: #fff; }
.kc-section--cacao .kc-checklist li::before { color: var(--kc-rose); }
.kc-section--cacao .kc-checklist li { color: #fff; }

/* Carte claire posee sur un fond cacao (bloc newsletter IAventuriers) :
   le texte de la carte reste toujours sombre et lisible, meme si la
   section qui l'entoure impose du blanc a ses titres/paragraphes. */
.kc-section--cacao .kc-card--white :where(h2, h3, h4, p, li) { color: var(--kc-cacao); }
.kc-section--cacao .kc-card--white .kc-note { color: var(--kc-caramel-soft); }

/* Prompts depliables */
.wp-block-details.kc-prompt { margin-top: 14px; border-top: 1px solid var(--kc-sable); padding-top: 12px; }
.wp-block-details.kc-prompt summary { cursor: pointer; font-weight: 700; font-size: 14.5px; color: var(--kc-caramel-soft); }
.wp-block-details.kc-prompt p { background: var(--kc-blanc); border-radius: var(--kc-radius-sm); padding: 16px; margin-top: 12px; font-size: 14px; color: var(--kc-cacao); }
.kc-prompt-copy {
	margin-top: 14px;
	border-top: 1px solid var(--kc-sable);
	padding-top: 12px;
	width: 100%;
	background: none;
	border-left: 0; border-right: 0; border-bottom: 0;
	text-align: left;
	cursor: pointer;
	font-family: var(--kc-font-body);
	font-weight: 700;
	font-size: 14.5px;
	color: var(--kc-caramel-soft);
}
.kc-prompt-copy:hover { color: var(--kc-cacao); }
.kc-prompt-copy.is-copied { color: var(--kc-terracotta-deep); }

/* --------------------------------------------------------------------------
   11. WooCommerce — panier
   -------------------------------------------------------------------------- */

.woocommerce-cart .entry-content { max-width: var(--kc-container); margin-inline: auto; padding-inline: var(--kc-gutter); padding-bottom: 80px; }
.woocommerce-cart-form { margin-bottom: 34px; }
.woocommerce-cart-form table.shop_table {
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	background: var(--kc-creme);
	border-radius: var(--kc-radius-lg);
	overflow: hidden;
	width: 100%;
}
.woocommerce-cart-form table.shop_table thead th {
	background: transparent;
	border: 0;
	padding: 22px 20px 14px;
	font-family: var(--kc-font-title);
	font-size: 13px;
	letter-spacing: .5px;
	color: var(--kc-caramel-soft);
	text-transform: uppercase;
}
.woocommerce-cart-form table.shop_table td {
	border: 0;
	border-top: 1px solid rgba(103, 76, 60, .08);
	padding: 18px 20px;
	vertical-align: middle;
}
.woocommerce-cart-form td.product-thumbnail img {
	border-radius: var(--kc-radius-sm);
	width: 72px;
	height: 72px;
	object-fit: cover;
}
.woocommerce-cart-form td.product-name a {
	color: var(--kc-cacao);
	font-weight: 700;
	text-decoration: none;
}
.woocommerce-cart-form .quantity .qty {
	width: 64px;
	height: 42px;
	border-radius: 21px;
	border: 1px solid var(--kc-sable);
	background: #fff;
	text-align: center;
	font-family: var(--kc-font-body);
	color: var(--kc-cacao);
}
.woocommerce-cart-form td.product-remove a.remove {
	background: transparent !important;
	color: var(--kc-caramel-soft) !important;
	font-size: 20px;
	border-radius: 50%;
	width: 30px;
	height: 30px;
	line-height: 30px !important;
	display: inline-block;
	text-align: center;
}
.woocommerce-cart-form td.product-remove a.remove:hover { background: var(--kc-sable) !important; color: var(--kc-cacao) !important; }
.woocommerce-cart-form td.product-subtotal { font-weight: 700; color: var(--kc-cacao); }
.woocommerce-cart-form .coupon { display: flex; gap: 12px; align-items: center; padding: 22px 20px; flex-wrap: wrap; }
.woocommerce-cart-form .coupon label { display: none; }
.woocommerce-cart-form .coupon #coupon_code {
	height: 46px;
	border-radius: 23px;
	border: 1px solid var(--kc-sable);
	background: #fff;
	padding: 0 20px;
	font-size: 14px;
	color: var(--kc-cacao);
	min-width: 220px;
}
.woocommerce-cart-form .coupon .button,
.woocommerce-cart-form > .button {
	background: var(--kc-cacao) !important;
	color: #fff !important;
	border-radius: var(--kc-radius-pill) !important;
	padding: 12px 26px !important;
	font-weight: 600;
	font-size: 14px;
	border: 0 !important;
	opacity: 1 !important;
	cursor: pointer;
}
.woocommerce-cart-form .coupon .button:disabled,
.woocommerce-cart-form > .button:disabled { opacity: .5 !important; cursor: not-allowed; }
.woocommerce-cart-form > .button { margin: 0 20px 22px; }
.cart-collaterals { margin-top: 0 !important; }
.cart-collaterals .cart_totals {
	background: var(--kc-sable);
	border-radius: var(--kc-radius-lg);
	padding: 34px;
	max-width: 420px;
	margin-left: auto;
	float: none !important;
	width: auto !important;
}
.cart_totals h2 { font-size: 22px; margin: 0 0 20px; }
.cart_totals table.shop_table { background: transparent; border: 0; }
.cart_totals table.shop_table th,
.cart_totals table.shop_table td { border: 0; border-top: 1px solid rgba(103, 76, 60, .15); padding: 14px 0; color: var(--kc-cacao); }
.cart_totals table.shop_table tr:first-child th,
.cart_totals table.shop_table tr:first-child td { border-top: 0; }
.cart_totals .order-total .woocommerce-Price-amount { font-weight: 800; font-size: 20px; }
.wc-proceed-to-checkout { margin-top: 24px; }
.wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--kc-cacao) !important;
	color: #fff !important;
	border-radius: var(--kc-radius-pill) !important;
	padding: 16px !important;
	font-weight: 700;
	font-size: 15px;
}
.woocommerce-cart .cross-sells { margin-top: 60px; }
.woocommerce-cart .cross-sells h2 { font-size: 22px; text-align: center; margin-bottom: 26px; }
.woocommerce-cart .cross-sells ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce-cart .cross-sells ul.products li.product {
	background: var(--kc-creme);
	border-radius: var(--kc-radius-lg);
	padding: 20px;
	text-align: left;
}
.woocommerce-cart .cross-sells ul.products li.product img { border-radius: var(--kc-radius-md); margin-bottom: 12px; width: 100%; height: auto; display: block; }
.woocommerce-cart .cross-sells ul.products li.product .woocommerce-loop-product__title { font-family: var(--kc-font-title); font-size: 16px; color: var(--kc-cacao); margin: 0 0 6px; }
.woocommerce-cart .cross-sells ul.products li.product .price { color: var(--kc-caramel-soft); font-weight: 700; font-size: 15px; }
.woocommerce-cart .cross-sells ul.products li.product .button {
	border-radius: 20px; background: var(--kc-rose); color: var(--kc-cacao);
	padding: 8px 18px; font-weight: 600; font-size: 13px; text-decoration: none; display: inline-block; margin-top: 10px;
}
@media (max-width: 781px) { .woocommerce-cart .cross-sells ul.products { grid-template-columns: 1fr; } }
@media (max-width: 781px) {
	.woocommerce-cart-form table.shop_table thead { display: none; }
	.woocommerce-cart-form table.shop_table td { display: flex; align-items: center; gap: 14px; border-top: 0; padding: 10px 16px; }
	.cart_totals { max-width: 100%; margin-left: 0; }
}

/* Checkout : le texte de confidentialite genere par WooCommerce est trop pale par defaut */
.woocommerce-checkout .woocommerce-privacy-policy-text,
.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-checkout #order_review_heading + p,
.woocommerce-terms-and-conditions-wrapper p {
	color: var(--kc-text-muted) !important;
	font-size: 13.5px;
}
.woocommerce-checkout .woocommerce-privacy-policy-text a { color: var(--kc-caramel-soft); text-decoration: underline; }

/* Checkout : habillage du bloc de paiement (WooPayments/Stripe).
   Le contenu des champs carte est un iframe securise que le CSS ne peut pas
   changer (police, taille) : on habille tout ce qui l'entoure. */
#payment, .woocommerce-checkout-payment, .wc-payment-form { background: transparent !important; border: 0 !important; border-radius: 0 !important; }
.wc_payment_methods { list-style: none; padding: 0; margin: 0; }
.wc_payment_method {
	background: var(--kc-creme);
	border-radius: var(--kc-radius-md);
	padding: 18px 20px;
	margin-bottom: 12px;
	border: 1px solid var(--kc-sable);
}
.wc_payment_method label { font-family: var(--kc-font-title); font-weight: 700; color: var(--kc-cacao); }
.wc_payment_method .payment_box {
	background: #fff !important;
	border-radius: var(--kc-radius-sm);
	margin-top: 14px !important;
	padding: 20px !important;
	border: 0 !important;
}
.wc_payment_method .payment_box:before { display: none !important; }
.payment_box p,
.payment_box label { color: var(--kc-cacao); font-size: 14px; }
.payment_box .form-row { margin-bottom: 16px; }
.payment_box label { font-weight: 600; display: block; margin-bottom: 6px; }
/* Conteneurs des champs Stripe (l'iframe a l'interieur reste stylable seulement via l'API Stripe) */
.payment_box .wcpay-card-element,
.payment_box .wcpay-upe-element,
.payment_box #wcpay-card-element,
.payment_box .__PrivateStripeElement,
.payment_box .StripeElement,
.payment_box iframe {
	background: var(--kc-creme-input) !important;
	border: 1px solid var(--kc-sable) !important;
	border-radius: 18px !important;
	padding: 12px 16px !important;
}
.payment_box input[type="checkbox"] { accent-color: var(--kc-terracotta); width: 16px; height: 16px; }
.payment_box .woocommerce-SavedPaymentMethods-saveNew { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--kc-text-muted); }
#place_order,
.woocommerce-checkout #payment #place_order {
	background: var(--kc-cacao) !important;
	color: #fff !important;
	border-radius: var(--kc-radius-pill) !important;
	width: 100%;
	padding: 16px !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	border: 0 !important;
}

/* Boutons de paiement express (Apple Pay / Google Pay) : espacement propre autour,
   le style du bouton lui-meme (noir, coins) est impose par Apple/Google, non modifiable en CSS. */
.wcpay-express-checkout-wrapper,
#wcpay-express-checkout-element,
.woocommerce-checkout .wc-express-checkout-methods {
	margin-bottom: 24px;
}
.wcpay-express-checkout-wrapper + p,
#wcpay-express-checkout-element + p {
	display: flex;
	align-items: center;
	gap: 14px;
	color: var(--kc-caramel-soft);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 1px;
}
.wcpay-express-checkout-wrapper + p::before,
.wcpay-express-checkout-wrapper + p::after,
#wcpay-express-checkout-element + p::before,
#wcpay-express-checkout-element + p::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--kc-sable);
}

/* Grille d'articles (bloc Boucle de requete) */
.kc-query .wp-block-post-template { gap: 34px; }
.kc-query .kc-card { height: 100%; }
.kc-query .wp-block-post-featured-image img { border-radius: var(--kc-radius-md); aspect-ratio: 1 / 1; object-fit: cover; }
.kc-query .wp-block-post-title { font-size: 17px; line-height: 1.4; margin: 10px 0 14px; }
.kc-query .wp-block-post-title a { color: var(--kc-cacao); text-decoration: none; }
.kc-query .kc-eyebrow { margin: 16px 0 0; }
.kc-query .kc-eyebrow a { color: var(--kc-caramel-soft); text-decoration: none; }
.kc-readmore { font-weight: 700; color: var(--kc-caramel-soft); font-size: 14.5px; }
.kc-query .wp-block-query-pagination { margin-top: 40px; }

/* Article a la une */
.kc-posts--featured.wp-block-latest-posts__list li {
	background: var(--kc-sable);
	border-radius: var(--kc-radius-lg);
	padding: 34px;
	display: flex;
	align-items: center;
	gap: 40px;
	max-width: 780px;
	margin: 0 auto !important;
}
.kc-posts--featured .wp-block-latest-posts__featured-image.alignleft { max-width: 190px; flex-shrink: 0; margin: 0; }
.kc-posts--featured .wp-block-latest-posts__featured-image img { border-radius: var(--kc-radius-lg); width: 190px; height: 190px; object-fit: cover; }
.kc-posts--featured .wp-block-latest-posts__post-title { font-family: var(--kc-font-title); font-weight: 800; font-size: clamp(20px, 2.2vw, 25px); line-height: 1.3; color: var(--kc-cacao); text-decoration: none; display: block; margin-top: 0; }
.kc-posts--featured .wp-block-latest-posts__post-excerpt { font-size: 15px; color: var(--kc-caramel-soft); }

@media (max-width: 781px) {
	.kc-posts--featured.wp-block-latest-posts__list li { flex-direction: column; text-align: center; }
	.kc-posts--featured .wp-block-latest-posts__featured-image.alignleft { max-width: 100%; margin: 0 0 20px; }
	.kc-query .wp-block-post-template { grid-template-columns: 1fr !important; }
}

/* --- Colonnes : cartes toujours de meme hauteur et meme largeur --- */
.wp-block-columns:has(> .kc-card) { align-items: stretch !important; }
.wp-block-columns > .wp-block-column.kc-card {
	height: auto;
	align-self: stretch;
	display: flex;
	flex-direction: column;
	flex-basis: 0;
	flex-grow: 1;
}
.wp-block-columns > .wp-block-column.kc-card[style*="flex-basis"] { flex-grow: 0; }
.wp-block-column.kc-card > .wp-block-buttons:last-child,
.wp-block-column.kc-card > .kc-price-row:last-child { margin-top: auto; padding-top: 12px; }
.wp-block-column.kc-card--center > .wp-block-image { margin-bottom: 20px; }
.wp-block-column.kc-card--center > .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: contain;
}
.kc-product > .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.kc-card--center > h3 { flex-grow: 1; }

.kc-card--wide:hover { transform: none; }

/* --- Carrousel (active par assets/js/carousel-v2.js) --- */
.kc-carousel__stage { position: relative; display: flex; flex-direction: column; align-items: center; gap: 28px; }
.kc-carousel.is-enhanced {
	position: relative;
	display: block !important;
	overflow: visible;
	width: 100%;
	padding: 0;
	min-height: 320px;
}
.kc-carousel.is-enhanced > .wp-block-column {
	position: absolute !important;
	top: 0;
	left: 50%;
	width: 280px;
	max-width: 78%;
	min-height: 100%;
	transform: translate(-50%, 0) scale(0.7);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	z-index: 1;
	justify-content: center;
	transition: opacity 0.5s ease, transform 0.5s ease, visibility 0.5s;
}
.kc-carousel.is-enhanced > .wp-block-column.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(-50%, 0) scale(1);
	z-index: 3;
}
.kc-carousel.is-enhanced > .wp-block-column.is-prev,
.kc-carousel.is-enhanced > .wp-block-column.is-next {
	opacity: 0.45;
	visibility: visible;
	z-index: 2;
}
.kc-carousel.is-enhanced > .wp-block-column.is-prev { transform: translate(-92%, 16px) scale(0.7); }
.kc-carousel.is-enhanced > .wp-block-column.is-next { transform: translate(-8%, 16px) scale(0.7); }
.kc-carousel__arrows { display: flex; gap: 14px; margin-top: 10px; }
.kc-carousel__arrow {
	width: 44px; height: 44px; border-radius: 50%;
	border: 1px solid var(--kc-terracotta); background: #fff; color: var(--kc-caramel);
	font-size: 17px; cursor: pointer; display: flex; align-items: center; justify-content: center;
	transition: background .2s ease, color .2s ease;
}
.kc-carousel__arrow:hover { background: var(--kc-terracotta); color: #fff; }
.kc-carousel__dots { display: flex; gap: 10px; }
.kc-carousel__dot { width: 9px; height: 9px; border-radius: 5px; border: 0; padding: 0; background: #ddd4cd; cursor: pointer; transition: width .3s, background .3s; }
.kc-carousel__dot.is-active { width: 26px; background: var(--kc-terracotta); }
.kc-card--terracotta .kc-num {
	font-family: var(--kc-font-mono);
	font-weight: 400;
	font-size: 12px !important;
	letter-spacing: 1px;
	color: #fff !important;
	opacity: .85;
	margin-bottom: 14px !important;
}
.kc-card--terracotta h3 { font-size: 23px; line-height: 1.3; margin-bottom: 14px; }

/* --- Mot KA'COM a cheval sur le HAUT d'une section --- */
.kc-has-watermark-top { position: relative; overflow: visible; }
.kc-has-watermark-top > .kc-watermark {
	position: absolute;
	left: -14px;
	top: 0;
	transform: translateY(-50%);
	margin: 0;
	max-width: none;
	z-index: 3;
}
.kc-has-watermark-top { padding-top: clamp(90px, 10vw, 130px) !important; }

/* Le mot ne doit jamais etre coupe */
.kc-watermark { overflow: visible; pointer-events: none; user-select: none; }
body.page .content-area,
body.page .site-main,
body.page .entry-content-wrap,
body.page article.entry { overflow: visible; }
.kc-hero-page { padding-bottom: clamp(56px, 6vw, 80px) !important; }
.kc-hero-page + .kc-section,
.kc-hero-page + .wp-block-group { position: relative; z-index: 1; }

/* Emplacement photo du hero : la photo remplit l'espace, sans cadre en plus */
.kc-hero-image .wp-block-image { margin: 0; }
.kc-hero-image img { background: none; }

/* --- Icones dans les pastilles (classe kc-icon-xxx sur la pastille) --- */
.kc-blob[class*="kc-icon-"] { position: relative; }
.kc-blob[class*="kc-icon-"]::before {
	content: "";
	position: absolute;
	inset: 11px;
	background: #fff;
	-webkit-mask: var(--kc-icon) center / contain no-repeat;
	mask: var(--kc-icon) center / contain no-repeat;
}
.kc-blob--sable[class*="kc-icon-"]::before { background: var(--kc-cacao); }
.kc-icon-eye      { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.kc-icon-award    { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.5 13 17 22l-5-3-5 3 1.5-9'/%3E%3C/svg%3E"); }
.kc-icon-heart    { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8l1 1.1L12 21l7.8-7.5 1-1.1a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E"); }
.kc-icon-chart    { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='m7 15 4-4 3 3 6-6'/%3E%3Cpath d='M15 8h5v5'/%3E%3C/svg%3E"); }
.kc-icon-compass  { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m16.2 7.8-2.1 6.3-6.3 2.1 2.1-6.3z'/%3E%3C/svg%3E"); }
.kc-icon-gear     { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v3M12 19v3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M2 12h3M19 12h3M4.9 19.1 7 17M17 7l2.1-2.1'/%3E%3C/svg%3E"); }
.kc-icon-clock    { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }
.kc-icon-globe    { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3C/svg%3E"); }
.kc-icon-graduate { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5z'/%3E%3Cpath d='M6 12v5c3 2 9 2 12 0v-5'/%3E%3C/svg%3E"); }
.kc-icon-star     { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.8-6.2-3.2L5.8 21 7 14.2 2 9.3l6.9-1z'/%3E%3C/svg%3E"); }
.kc-icon-tools    { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18l3 3 6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2.4-.6-.6-2.4z'/%3E%3C/svg%3E"); }
.kc-icon-message  { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E"); }
.kc-icon-rocket   { --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 16.5c-1.5 1.3-2 5-2 5s3.7-.5 5-2c.7-.8.7-2.1-.1-2.9a2.2 2.2 0 0 0-2.9-.1z'/%3E%3Cpath d='m12 15-3-3a22 22 0 0 1 2-4A13 13 0 0 1 22 2c0 2.7-.8 7.5-6 11a22 22 0 0 1-4 2z'/%3E%3C/svg%3E"); }

/* --- Pied de page --- */
.kc-footer__social-cta {
	background: var(--kc-blanc);
	text-align: center;
	padding: 70px var(--kc-gutter) 90px;
}
.kc-footer__social-title {
	font-size: 36px !important;
	margin: 0 0 30px !important;
}
.kc-site-footer { background: var(--kc-terracotta-dark); color: #fff; margin-top: 0; }
.kc-site-footer .kc-footer { padding: 0; }
.kc-site-footer .wp-block-columns.kc-footer__cols {
	padding: 60px var(--kc-gutter) 40px !important;
	max-width: 1400px;
	margin: 0 auto !important;
	gap: 32px !important;
	flex-wrap: wrap !important;
	align-items: flex-start !important;
}
.kc-site-footer .wp-block-columns.kc-footer__cols > .wp-block-column { min-width: 160px; flex-basis: 0 !important; flex-grow: 1 !important; }
.kc-site-footer .kc-form-inscription { max-width: 260px; }
.kc-site-footer .wp-block-column > * + * { margin-top: 16px; }
.kc-site-footer .kc-footer__fake-input {
	height: 44px;
	border-radius: 22px;
	background: var(--kc-creme-input);
	display: flex;
	align-items: center;
	padding: 0 20px;
	font-size: 14px;
	color: var(--kc-text-light);
}
.kc-site-footer .wp-block-social-links { margin-top: 20px !important; }
.kc-site-footer .wp-block-buttons { margin-top: 18px !important; }
.kc-site-footer :where(p, h3, li, a) { color: #fff; }
.kc-site-footer p { font-size: 14px; line-height: 1.6; }
.kc-footer__title { font-size: 16px !important; margin: 0 0 16px !important; }
.kc-footer__links { list-style: none; padding: 0; margin: 0; }
.kc-footer__links li { margin-bottom: 12px; font-size: 14px; }
.kc-footer__links a { text-decoration: none; }
.kc-footer__links a:hover { text-decoration: underline; color: #fff; }
.kc-site-footer .wp-block-button__link { background: var(--kc-cacao); padding: 12px 30px; }
.kc-footer__legal { font-size: 11.5px !important; line-height: 1.45 !important; color: rgba(255, 255, 255, .82) !important; margin-top: 10px; }
.kc-footer__bottom { background: var(--kc-terracotta-deep); font-size: 12.5px !important; padding: 18px var(--kc-gutter); margin: 0 !important; }
.kc-social--sm .wp-social-link { background: rgba(255, 255, 255, .24) !important; border-radius: 9px 14px 4px 14px !important; }
.kc-social--sm .wp-social-link a { padding: 8px; }
.kc-social--sm .wp-social-link svg { width: 18px; height: 18px; }
.kc-site-footer .wp-block-site-logo img { width: 86px; height: auto; border-radius: 9px 14px 4px 14px; }

/* Cartes "Comment ca se passe" et "Me joindre" */
.kc-stack > * + * { margin-top: 26px; }
/* La colonne kc-stack empile des cartes a hauteur naturelle : elle ne doit
   jamais etre etiree par la regle generale de stretch des cartes voisines. */
.wp-block-columns:has(> .kc-stack) { align-items: flex-start !important; }

/* --------------------------------------------------------------------------
   8. Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
	.kc-watermark { font-size: clamp(60px, 13vw, 110px); }
}

@media (max-width: 781px) {
	.kc-hero-page .kc-watermark,
	.kc-has-watermark > .kc-watermark { left: -8px; right: auto; }
	.kc-portrait img { width: 220px; }
	.kc-price-row { flex-wrap: wrap; }
}

@media (max-width: 781px) {
	.kc-card { padding: 24px; }

	.kc-header__badge {
		width: 96px;
		height: 96px;
		border-radius: 0 0 48px 48px;
		padding-top: 12px;
	}

	/* La colonne image passe avant le texte : on garde la lecture naturelle. */
	.kc-stack-reverse { flex-direction: column-reverse; }
}

/* --------------------------------------------------------------------------
   9. Preferences utilisateur
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}

	.kc-card:hover,
	.wp-block-button__link:hover { transform: none; }
}

/* ==========================================================================
   10. Nouveaux blocs sur mesure Ka'Com (bibliotheque blocks/)
   ========================================================================== */

/* Bandeau d'accueil : image de fond + voile + titre, entierement autonome */
.kc-hero-accueil { position: relative; overflow: hidden; height: clamp(480px, 48vw, 640px); }
.kc-hero-accueil__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kc-hero-accueil__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(103, 76, 60, .35), rgba(103, 76, 60, .62)); }
.kc-hero-accueil__inner { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 0 var(--kc-gutter); }
.kc-hero-accueil h1 { color: #fff; font-size: var(--kc-fs-h1); max-width: 860px; margin: 0 auto 20px; text-shadow: 0 2px 18px rgba(103, 76, 60, .5); }
.kc-hero-accueil p { color: #fff; font-size: 17px; max-width: 660px; margin: 0 auto 34px; text-shadow: 0 1px 12px rgba(103, 76, 60, .6); }
.kc-hero-accueil__actions.wp-block-buttons { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; justify-content: center; margin: 0 auto; }

/* Bandeau citation : meme principe, plus bas */
.kc-bandeau-citation { position: relative; overflow: hidden; min-height: 230px; display: flex; align-items: center; justify-content: center; }
.kc-bandeau-citation__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kc-bandeau-citation__overlay { position: absolute; inset: 0; background: rgba(103, 76, 60, .58); }
.kc-bandeau-citation__inner { position: relative; z-index: 2; padding: 0 var(--kc-gutter); text-align: center; }
.kc-bandeau-citation p { color: #fff; font-family: var(--kc-font-title); font-weight: 700; font-size: clamp(22px, 2.6vw, 28px); line-height: 1.35; max-width: 720px; margin: 0 auto; text-shadow: 0 2px 14px rgba(103, 76, 60, .55); }

/* Bloc hero-page en disposition "colonne" : image ou boite decorative de repli */
.kc-hero-image__placeholder { width: 100%; height: clamp(260px, 30vw, 380px); border-radius: var(--kc-radius-lg); background: var(--kc-sable); }

/* Grille de cartes : vraie grille CSS (autant de rangees que necessaire),
   independante des colonnes natives pour eviter tout conflit de mise en page. */
.kc-grille-cartes { display: grid; grid-template-columns: repeat(var(--kc-cols, 3), minmax(0, 1fr)); gap: var(--kc-gap-cards); }
.kc-grille-cartes > .kc-card { display: flex; flex-direction: column; align-items: center; }
.kc-grille-cartes > .kc-card .kc-card-link { margin-top: auto; padding-top: 8px; align-self: center; color: var(--kc-caramel-soft); text-decoration: none; font-weight: 600; font-size: 14.5px; border-bottom: 1.5px solid var(--kc-terracotta); width: fit-content; }
.kc-grille-cartes img.kc-media { width: 100%; height: 190px; object-fit: cover; border-radius: var(--kc-radius-md); display: block; margin: 0 0 20px; }
@media (max-width: 1024px) { .kc-grille-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px)  { .kc-grille-cartes { grid-template-columns: 1fr; } }

/* CTA scinde, variante "carte encadree" */
.kc-cta-scinde-card { max-width: var(--kc-container); margin-inline: auto; padding: 48px; }
@media (max-width: 781px) { .kc-cta-scinde-card { padding: 30px; } }

/* Avis clients : l'entete auteur (avatar + nom + role) est un vrai conteneur flex */
.kc-author { display: flex; }
.kc-author img.kc-blob { object-fit: cover; }

/* Deux boutons de deplacement empiles, dans les repeteurs de l'editeur (canvas uniquement,
   mais la regle vit ici car elle ne cible que des elements sans equivalent au front) */
.ed-move-btn + .ed-move-btn { margin-top: 2px; }

/* Grille de produits WooCommerce, habillee aux couleurs Ka'Com (memes proportions que .kc-card). */
.kc-woo-grid ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; list-style: none; margin: 0; padding: 0; }
.kc-woo-grid ul.products li.product { background: var(--kc-creme); border-radius: 24px 38px 10px 38px; padding: 24px; text-align: left; }
.kc-woo-grid ul.products li.product img { border-radius: 14px 22px 6px 22px; margin-bottom: 16px; width: 100%; height: auto; display: block; }
.kc-woo-grid ul.products li.product .woocommerce-loop-product__title { font-family: var(--kc-font-title); font-size: 19px; color: var(--kc-cacao); margin: 0 0 8px; }
.kc-woo-grid ul.products li.product .price { color: var(--kc-caramel-soft); font-weight: 700; font-size: 18px; }
.kc-woo-grid ul.products li.product .button { border-radius: 20px; background: var(--kc-rose); color: var(--kc-cacao); padding: 10px 22px; font-weight: 600; text-decoration: none; display: inline-block; margin-top: 12px; }
@media (max-width: 1024px) { .kc-woo-grid ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px)  { .kc-woo-grid ul.products { grid-template-columns: 1fr; } }

/* Formulaire d'inscription (nom + e-mail), envoi reel par e-mail sans plugin.
   Champs toujours empiles verticalement, quelle que soit la largeur de la colonne. */
.kc-form-inscription { display: flex; flex-direction: column; gap: 12px; margin: 18px 0; max-width: 360px; }
.kc-form-inscription input[type="text"],
.kc-form-inscription input[type="email"] {
	display: block;
	height: 46px;
	border-radius: 23px;
	border: 1px solid var(--kc-sable);
	background: #fff;
	padding: 0 20px;
	font-family: var(--kc-font-body);
	font-size: 14px;
	color: var(--kc-text);
	width: 100%;
	box-sizing: border-box;
}
.kc-form-inscription input:focus { border-color: var(--kc-terracotta); outline: none; }
.kc-form-inscription .wp-block-buttons { margin: 4px 0 0; justify-content: flex-start; }
.kc-form-inscription button.wp-block-button__link { border: 0; cursor: pointer; font-family: var(--kc-font-body); }
.kc-form-inscription__ok { font-weight: 700; color: var(--kc-cacao); }
.kc-form-inscription__error { font-size: 13px; color: var(--kc-caramel-soft); margin-top: 4px; }
.kc-site-footer .kc-form-inscription input,
.kc-section--cacao .kc-form-inscription input {
	background: var(--kc-creme-input);
	border: 0;
	color: var(--kc-cacao);
}
.kc-site-footer .kc-form-inscription input::placeholder,
.kc-section--cacao .kc-form-inscription input::placeholder {
	color: var(--kc-caramel-soft);
	opacity: 1;
}
.kc-section--cacao .kc-form-inscription__ok { color: #fff; }
.kc-site-footer .kc-form-inscription { max-width: 100%; }
.kc-site-footer .kc-form-inscription .wp-block-buttons { margin-top: 4px !important; }
.kc-site-footer .kc-form-inscription button.wp-block-button__link {
	background: var(--kc-rose) !important;
	color: var(--kc-cacao) !important;
	padding: 11px 22px !important;
	font-weight: 700 !important;
	font-size: 13.5px !important;
	border-radius: 22px !important;
	display: inline-block;
}

/* ==========================================================================
   12. Correctifs de recette (21/09)
   ========================================================================== */

/* Carrousel "Vous n'etes plus seul" : titre et colonnes dans le meme conteneur,
   donc le titre demarre exactement au meme bord que le sous-titre. */
.kc-section > .kc-carrousel__inner {
	max-width: var(--kc-container);
	margin-left: auto !important;
	margin-right: auto !important;
}
.kc-carrousel__title {
	max-width: none !important;
	margin: 0 0 clamp(28px, 3vw, 40px) !important;
	padding: 0 !important;
	text-align: left !important;
}

/* Mot KA'COM centre, a cheval sur la limite entre deux sections */
.entry-content .kc-has-watermark-top.kc-watermark-center > p.kc-watermark {
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
	text-align: center !important;
}
@media (max-width: 781px) {
	.entry-content .kc-has-watermark-top.kc-watermark-center > p.kc-watermark { left: 50% !important; }
}

/* Groupes natifs : Kadence ajoute un .wp-block-group__inner-container entre la
   section et son contenu. Le mot KA'COM est dedans : on vise aussi ce cas. */
.entry-content .kc-has-watermark-top.kc-watermark-center > .wp-block-group__inner-container > p.kc-watermark {
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
	text-align: center !important;
}
@media (max-width: 781px) {
	.entry-content .kc-has-watermark-top:not(.kc-watermark-center) > .wp-block-group__inner-container > p.kc-watermark { left: -8px !important; }
}
.kc-has-watermark > .wp-block-group__inner-container > .kc-watermark {
	position: absolute;
	right: -14px;
	left: auto;
	bottom: 0;
	transform: translateY(50%);
	margin: 0;
	max-width: none;
	text-align: right;
}

/* Page contact : section Calendly sur fond creme, widget dans une carte blanche */
.kc-rdv { background: var(--kc-sable); }
.kc-calendly {
	max-width: 1000px;
	margin: 0 auto;
	background: #fff;
	border-radius: var(--kc-radius-lg);
	box-shadow: var(--kc-shadow-soft);
	overflow: hidden;
	padding: 8px;
}
.kc-calendly .calendly-inline-widget { width: 100%; }
.kc-card .kc-calendly { max-width: none; margin: 0; padding: 4px; }
.kc-rdv .kc-note { margin-top: 22px; }

/* Bloc "Retrouvez Ka'Com sur les reseaux sociaux" : fond creme, pour le
   detacher de la section blanche qui le precede */
.kc-footer__social-cta { background: var(--kc-creme) !important; }

/* Bouton sous une grille de cartes (ex. "Voir tous mes services") */
.kc-grille-cartes__cta.wp-block-buttons {
	display: flex;
	justify-content: center;
	margin-top: clamp(36px, 4vw, 52px) !important;
}

/* Avis clients suivi d'une autre section blanche : pas de double marge */
.wp-block-kacom-avis-clients.kc-section--blanc { padding-bottom: clamp(24px, 3vw, 40px); }
.wp-block-kacom-avis-clients.kc-section--blanc + .kc-section--blanc { padding-top: clamp(24px, 3vw, 40px) !important; }

/* Mot KA'COM "a cheval" sur le haut de la section : position imposee partout,
   y compris dans les compositions synchronisees. */
.entry-content .kc-has-watermark-top { position: relative !important; overflow: visible !important; }
.entry-content .kc-has-watermark-top > p.kc-watermark,
.entry-content .kc-has-watermark-top > .wp-block-group__inner-container > p.kc-watermark {
	position: absolute !important;
	top: 0 !important;
	left: -14px !important;
	right: auto !important;
	transform: translateY(-50%) !important;
	margin: 0 !important;
	max-width: none !important;
	width: auto !important;
	text-align: left !important;
	z-index: 3;
}
@media (max-width: 781px) {
	.entry-content .kc-has-watermark-top > p.kc-watermark,
.entry-content .kc-has-watermark-top > .wp-block-group__inner-container > p.kc-watermark { left: -8px !important; }
}

/* Bouton "Copier le prompt" : lien texte sobre, sans le fond et l'ombre
   que Kadence applique a tous les boutons au survol et au clic. */
.kc-prompt-copy,
.kc-prompt-copy:hover,
.kc-prompt-copy:focus,
.kc-prompt-copy:active {
	background: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	transform: none !important;
	padding: 12px 0 0 !important;
	display: flex;
	align-items: center;
	gap: 8px;
}
.kc-prompt-copy::before {
	content: "";
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E") center / contain no-repeat;
}
.kc-prompt-copy { color: var(--kc-caramel-soft) !important; transition: color .2s ease; }
.kc-prompt-copy:hover,
.kc-prompt-copy:focus { color: var(--kc-cacao) !important; }
.kc-prompt-copy:focus:not(:focus-visible) { outline: none; }
.kc-prompt-copy.is-copied { color: var(--kc-cacao) !important; }
.kc-prompt-copy.is-copied::before { display: none; }

/* Visuels de ressources (mockups, couvertures) : taille homogene, jamais recadres.
   Accueil + toute grille de cartes portant la classe kc-grille--visuels (23/09) */
body.home .kc-grille-cartes img.kc-media,
.kc-grille--visuels .kc-grille-cartes img.kc-media {
	width: auto !important;
	max-width: 75%;
	height: 170px !important;
	object-fit: contain;
	border-radius: 0;
	display: block;
	margin: 0 auto 20px;
}
@media (max-width: 767px) {
	body.home .kc-grille-cartes img.kc-media,
	.kc-grille--visuels .kc-grille-cartes img.kc-media { height: 140px !important; }
}

/* Logos d'outils : petits carres arrondis */
.kc-grille--logos .kc-grille-cartes img.kc-media {
	width: 84px !important;
	height: 84px !important;
	object-fit: contain;
	border-radius: 22px;
	background: #fff;
	margin: 0 auto 18px;
}
.kc-grille--logos .kc-card h3 { font-size: 17px; }
.kc-grille--logos .kc-card p { font-size: 14.5px; }

/* Pages de remerciement : carte centree */
.kc-merci { max-width: 760px; margin-inline: auto; padding: clamp(32px, 5vw, 56px) !important; }
.kc-merci h1 { font-size: clamp(28px, 4vw, 40px); margin: 0 0 18px; }
.kc-merci .kc-eyebrow { text-align: center; }
.kc-merci .kc-note { margin-top: 18px; }

/* Page liens reseaux sociaux (lien en bio) */
.kc-liens { max-width: 520px; margin-inline: auto; text-align: center; }
.kc-liens .kc-portrait img { width: 150px; }
.kc-liens .wp-block-buttons { flex-direction: column; align-items: stretch; gap: 14px; }
.kc-liens .wp-block-button { width: 100%; }
.kc-liens .wp-block-button__link { display: block; width: 100%; text-align: center; box-sizing: border-box; }

/* Accueil : mot KA'COM de la section Blog cale a droite (23/09) */
body.home .entry-content .kc-has-watermark-top.kc-watermark-center > p.kc-watermark,
body.home .entry-content .kc-has-watermark-top.kc-watermark-center > .wp-block-group__inner-container > p.kc-watermark {
	left: auto !important;
	right: -14px !important;
	transform: translateY(-50%) !important;
	text-align: right !important;
}
@media (max-width: 781px) {
	body.home .entry-content .kc-has-watermark-top.kc-watermark-center > p.kc-watermark,
	body.home .entry-content .kc-has-watermark-top.kc-watermark-center > .wp-block-group__inner-container > p.kc-watermark { right: -8px !important; }
}
