/* ==========================================================================
   Toutou Propre : feuille unique. Brun, sable, crème.
   ========================================================================== */
@font-face { font-family: "Instrument Serif"; src: url(../fonts/InstrumentSerif-normal.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Instrument Serif"; src: url(../fonts/InstrumentSerif-italic.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Hanken Grotesk"; src: url(../fonts/HankenGrotesk-normal.woff2) format("woff2"); font-weight: 300 700; font-style: normal; font-display: swap; }

:root {
	--brun: #6b3c2a;
	--brun-f: #4a2619;
	--encre: #2a1c16;
	--texte: #4d3a31;
	--doux: #8a7366;
	--sable: #f1e6d9;
	--lin: #e6d5c3;
	--creme: #fbf6f0;
	--blanc: #fffdfa;
	--caramel: #b9835a;
	--vert: #5f7d55;
	--serif: "Instrument Serif", "Iowan Old Style", Georgia, serif;
	--sans: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
	--l: 1180px;
	--g: clamp(18px, 4vw, 40px);
	--r: 22px;
	--galet: 56% 44% 48% 52% / 46% 54% 46% 54%;
	--ombre: 0 1px 0 rgba(74, 38, 25, .04), 0 18px 40px -22px rgba(74, 38, 25, .28);
	--ease: cubic-bezier(.22, .8, .24, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
body {
	margin: 0; background: var(--creme); color: var(--texte);
	font: 400 clamp(16px, .2vw + 15.4px, 18px)/1.62 var(--sans);
	-webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
img, svg, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--brun); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--brun-f); }
:focus-visible { outline: 2px solid var(--caramel); outline-offset: 3px; border-radius: 6px; }
::selection { background: var(--lin); color: var(--encre); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; color: var(--encre); line-height: 1.04; letter-spacing: -.01em; margin: 0 0 .45em; text-wrap: balance; }
h1 { font-size: clamp(44px, 7.2vw, 96px); }
h2 { font-size: clamp(34px, 4.6vw, 60px); }
h3 { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.12; }
h1 em, h2 em, h3 em { color: var(--brun); font-style: italic; }
p { margin: 0 0 1em; text-wrap: pretty; }
strong { color: var(--encre); font-weight: 600; }
.tp-sr, .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tp-sauter { position: fixed; left: 12px; top: -60px; z-index: 100; background: var(--encre); color: #fff; padding: 10px 16px; border-radius: 99px; }
.tp-sauter:focus { top: 12px; }
.tp-ico { flex: none; vertical-align: -4px; }

/* Petit peigne : la signature du site */
.tp-kicker {
	display: inline-flex; align-items: center; gap: 12px; margin-bottom: 18px;
	font: 600 12px/1.2 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--brun);
}
.tp-kicker::before {
	content: ""; width: 30px; height: 11px; flex: none;
	border-top: 2.5px solid currentColor; border-radius: 3px 3px 0 0;
	background: repeating-linear-gradient(90deg, currentColor 0 1.6px, transparent 1.6px 4.4px);
	-webkit-mask: linear-gradient(#000 0 0); opacity: .85;
}
.tp-lead { font-size: clamp(18px, 1.3vw, 21px); line-height: 1.55; color: var(--texte); max-width: 40ch; }
.tp-small { font-size: .88em; color: var(--doux); }

/* ---------------------------------------------------------------- Bandeau offre */
.tp-offre { background: var(--brun); color: var(--sable); text-align: center; font-size: 13.5px; letter-spacing: .02em; padding: 8px 16px; }

/* ---------------------------------------------------------------- En-tête */
.tp-entete { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; transition: background .35s, box-shadow .35s, backdrop-filter .35s; }
.tp-defile .tp-entete { background: rgba(251, 246, 240, .86); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); box-shadow: 0 1px 0 rgba(107, 60, 42, .1); }
.tp-entete__in { max-width: calc(var(--l) + 2 * var(--g)); margin: 0 auto; padding: 14px var(--g); display: flex; align-items: center; gap: 28px; transition: padding .35s var(--ease); }
.tp-defile .tp-entete__in { padding-block: 8px; }
.tp-marque { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--encre); margin-right: auto; }
.tp-marque img { width: 46px; height: 46px; transition: transform .6s var(--ease); }
.tp-marque:hover img { transform: rotate(-12deg) scale(1.04); }
.tp-marque__nom { font: 400 26px/1 var(--serif); letter-spacing: -.01em; }
.tp-marque__nom em { color: var(--brun); }

.tp-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.tp-menu > li { position: relative; }
.tp-menu a { display: block; padding: 10px 14px; border-radius: 99px; text-decoration: none; color: var(--encre); font-size: 15.5px; font-weight: 500; transition: background .25s, color .25s; }
.tp-menu > li > a:hover, .tp-menu > .current-menu-item > a, .tp-menu > .current-menu-ancestor > a, .tp-menu > .current-page-ancestor > a { background: var(--sable); color: var(--brun-f); }
.tp-menu .sub-menu {
	list-style: none; margin: 0; padding: 10px; position: absolute; left: -10px; top: calc(100% + 6px); min-width: 280px;
	background: var(--blanc); border-radius: 18px; box-shadow: var(--ombre), 0 0 0 1px rgba(107, 60, 42, .07);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .25s, transform .3s var(--ease), visibility .25s;
}
.tp-menu .sub-menu::before { content: ""; position: absolute; inset: -12px 0 auto; height: 12px; }
.tp-menu li:hover > .sub-menu, .tp-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.tp-menu .sub-menu a { padding: 9px 14px; border-radius: 12px; font-size: 15px; display: flex; align-items: center; gap: 10px; }
.tp-menu .sub-menu a::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--lin); transition: background .2s, transform .3s var(--ease); }
.tp-menu .sub-menu a:hover { background: var(--creme); }
.tp-menu .sub-menu a:hover::before { background: var(--brun); transform: scale(1.4); }
.tp-sous { display: none; }
.tp-nav__pied { display: none; }

/* Bouton rendez-vous de l'en-tête : pastille + icône qui s'ouvre */
.tp-rdv {
	--fond: var(--brun); --txt: var(--creme); --rond: var(--creme); --ico: var(--brun);
	position: relative; display: inline-flex; align-items: center; gap: 12px; flex: none;
	padding: 6px 20px 6px 6px; border-radius: 99px; background: var(--fond); color: var(--txt);
	text-decoration: none; font-weight: 600; font-size: 15px; letter-spacing: .01em; isolation: isolate; overflow: hidden;
	box-shadow: 0 10px 24px -12px rgba(74, 38, 25, .7); transition: transform .35s var(--ease), box-shadow .35s;
}
.tp-rdv__ico { position: relative; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: var(--ico); }
.tp-rdv__ico::before { content: ""; position: absolute; inset: 0; border-radius: 99px; background: var(--rond); z-index: -1; transition: transform .55s var(--ease); }
.tp-rdv__ico svg { position: relative; }
.tp-rdv__txt { position: relative; transition: color .35s; }
.tp-rdv__coche { stroke-dasharray: 12; stroke-dashoffset: 12; transition: stroke-dashoffset .45s .1s var(--ease); }
.tp-rdv:hover, .tp-rdv:focus-visible { color: var(--txt); transform: translateY(-1px); box-shadow: 0 16px 30px -14px rgba(74, 38, 25, .8); }
.tp-rdv:hover .tp-rdv__ico::before, .tp-rdv:focus-visible .tp-rdv__ico::before { transform: scale(9); }
.tp-rdv:hover .tp-rdv__txt, .tp-rdv:focus-visible .tp-rdv__txt { color: var(--brun-f); }
.tp-rdv:hover .tp-rdv__coche { stroke-dashoffset: 0; }
.tp-rdv.is-chargement .tp-rdv__ico svg { animation: tp-tourne 1s linear infinite; }
.tp-rdv--clair { --fond: var(--creme); --txt: var(--brun-f); --rond: var(--brun); --ico: var(--creme); }
.tp-rdv--clair:hover .tp-rdv__txt { color: var(--creme); }
@keyframes tp-tourne { to { transform: rotate(360deg); } }

.tp-burger { display: none; }

/* ---------------------------------------------------------------- Mise en page générique */
.tp-page { overflow-x: clip; }
.tp-page > .wp-block-group { position: relative; padding: clamp(64px, 9vw, 128px) max(var(--g), calc((100% - var(--l)) / 2)); }
.tp-page > .wp-block-group > h1, .tp-page > .wp-block-group > h2 { max-width: 18ch; }
.tp-page > .wp-block-group > p { max-width: 68ch; }
.tp-page > .wp-block-group > .tp-lead { max-width: 52ch; }
.tp-page > :not(.wp-block-group):not(.tp-ariane) { max-width: var(--l); margin-inline: auto; padding-inline: var(--g); }

.tp-ariane { max-width: calc(var(--l) + 2 * var(--g)); margin: 0 auto; padding: 6px var(--g) 0; font-size: 13.5px; color: var(--doux); display: flex; flex-wrap: wrap; gap: 8px; position: relative; z-index: 2; }
.tp-ariane a { color: var(--doux); text-decoration: none; }
.tp-ariane a:hover { color: var(--brun); }
.tp-ariane span[aria-hidden] { opacity: .5; }

.wp-block-columns { display: flex; gap: clamp(20px, 3vw, 40px); flex-wrap: wrap; margin-block: 0 1.5em; }
.wp-block-column { flex: 1 1 0; min-width: 0; }
.wp-block-image { margin: 0; }
.wp-block-image img { border-radius: var(--r); width: 100%; object-fit: cover; }
.wp-block-list { padding-left: 1.2em; }

/* Boutons Gutenberg */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0; }
.wp-block-buttons:last-child { margin-bottom: 0; }
.wp-block-button__link, .tp-btn {
	display: inline-flex; align-items: center; gap: 10px; padding: 15px 26px; border-radius: 99px;
	background: var(--brun); color: var(--creme); border: 1.5px solid var(--brun); text-decoration: none;
	font: 600 15.5px/1.2 var(--sans); letter-spacing: .01em; cursor: pointer;
	transition: transform .35s var(--ease), background .25s, color .25s, box-shadow .35s;
	box-shadow: 0 12px 26px -16px rgba(74, 38, 25, .75);
}
.wp-block-button__link::after, .tp-btn::after {
	content: ""; width: 16px; height: 10px; flex: none;
	background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M0 5h14M10 1l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%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 16 10'%3E%3Cpath d='M0 5h14M10 1l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
	transition: transform .35s var(--ease);
}
.wp-block-button__link:hover, .tp-btn:hover { background: var(--brun-f); color: var(--creme); transform: translateY(-2px); }
.wp-block-button__link:hover::after, .tp-btn:hover::after { transform: translateX(4px); }
.is-style-outline .wp-block-button__link { background: transparent; color: var(--brun-f); box-shadow: none; border-color: rgba(107, 60, 42, .35); }
.is-style-outline .wp-block-button__link:hover { background: var(--blanc); color: var(--brun-f); border-color: var(--brun); }
.tp-lien { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; color: var(--brun); }
.tp-lien .tp-ico { transition: transform .3s var(--ease); }
.tp-lien:hover .tp-ico { transform: translateX(4px); }

/* ---------------------------------------------------------------- Hero */
.tp-hero { isolation: isolate; padding-top: clamp(28px, 5vw, 64px) !important; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); column-gap: clamp(28px, 5vw, 80px); align-items: center; align-content: center; }
.tp-hero > * { grid-column: 1; }
.tp-hero h1 { margin-bottom: 22px; }
.tp-hero > .wp-block-image { grid-column: 2; grid-row: 1 / span 6; position: relative; }
.tp-hero > .wp-block-image img { aspect-ratio: 4 / 4.6; border-radius: var(--galet); box-shadow: var(--ombre); animation: tp-galet 1.6s var(--ease) both; }
.tp-hero > .wp-block-image::before {
	content: ""; position: absolute; inset: 6% -5% -4% 8%; border-radius: 48% 52% 44% 56% / 55% 45% 55% 45%;
	background: var(--sable); z-index: -1; transform: rotate(-6deg);
}
.tp-hero > .wp-block-image::after {
	content: ""; position: absolute; width: 118px; height: 118px; right: -10px; bottom: 6%;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cpath id='c' d='M60 60m-44 0a44 44 0 1 1 88 0a44 44 0 1 1-88 0' fill='none'/%3E%3Ctext font-family='Georgia,serif' font-size='13.2' letter-spacing='3.2' fill='%236b3c2a'%3E%3CtextPath href='%23c'%3ECAROUGE · CHIENS · CHATS · DOUCEUR · %3C/textPath%3E%3C/text%3E%3Cg fill='%236b3c2a'%3E%3Cellipse cx='60' cy='68' rx='10' ry='8.5'/%3E%3Ccircle cx='47' cy='55' r='4.2'/%3E%3Ccircle cx='55' cy='48' r='4.2'/%3E%3Ccircle cx='65' cy='48' r='4.2'/%3E%3Ccircle cx='73' cy='55' r='4.2'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat, var(--blanc);
	border-radius: 50%; box-shadow: var(--ombre); transition: transform 1.6s var(--ease);
}
.tp-hero > .wp-block-image:hover::after { transform: rotate(-40deg); }
@keyframes tp-galet { from { border-radius: 50%; transform: scale(.94); opacity: 0; } }
.tp-hero .tp-ouvert { margin-top: 4px; justify-self: start; }
.tp-hero--page h1 { font-size: clamp(42px, 6vw, 80px); }
.tp-hero--court { display: block; padding-bottom: clamp(32px, 4vw, 56px) !important; }
.tp-hero--court > h1 { max-width: 16ch; }
.tp-page--accueil .tp-hero { min-height: min(86vh, 820px); }

/* Bulles de savon : une volée au chargement */
.tp-bulles { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: -1; max-width: none !important; }
.tp-bulles i {
	position: absolute; left: var(--x); bottom: -60px; width: var(--t); height: var(--t); border-radius: 50%;
	background: radial-gradient(circle at 32% 30%, rgba(255, 255, 255, .95) 0 12%, rgba(255, 255, 255, .18) 30%, rgba(185, 131, 90, .12) 70%, rgba(185, 131, 90, .28) 100%);
	box-shadow: inset 0 0 0 1px rgba(185, 131, 90, .22);
	opacity: 0; animation: tp-bulle var(--v) var(--d) cubic-bezier(.3, .6, .4, 1) forwards;
}
@keyframes tp-bulle {
	12% { opacity: 1; }
	60% { transform: translate(var(--h), -46vh) scale(1); opacity: .9; }
	100% { transform: translate(calc(var(--h) * -1), -72vh) scale(1.15); opacity: 0; }
}

/* Statut d'ouverture */
.tp-ouvert { display: inline-flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 500; color: var(--texte); background: var(--blanc); padding: 8px 16px 8px 12px; border-radius: 99px; box-shadow: 0 0 0 1px rgba(107, 60, 42, .1); margin: 0 0 1em; }
.tp-ouvert__point { width: 9px; height: 9px; border-radius: 50%; background: var(--doux); position: relative; }
.is-ouvert .tp-ouvert__point { background: var(--vert); }
.is-ouvert .tp-ouvert__point::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid var(--vert); animation: tp-pouls 2.4s ease-out 3; opacity: 0; }
.is-bientot .tp-ouvert__point { background: var(--caramel); }
@keyframes tp-pouls { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(1.8); opacity: 0; } }

/* ---------------------------------------------------------------- Bande de réassurance */
.tp-band { padding-block: 0 !important; }
.tp-assure { list-style: none; padding: 26px clamp(20px, 3vw, 40px); margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px 28px; background: var(--blanc); border-radius: var(--r); box-shadow: var(--ombre); position: relative; z-index: 2; }
.tp-assure li { display: flex; flex-direction: column; font-size: 14.5px; color: var(--doux); line-height: 1.35; padding-left: 16px; border-left: 1.5px solid var(--lin); }
.tp-assure strong { font: 400 22px/1.15 var(--serif); color: var(--encre); margin-bottom: 2px; }

/* ---------------------------------------------------------------- Étiquettes de prix */
.tp-tags { margin-block: 40px 28px; gap: clamp(16px, 2vw, 26px) !important; }
.tp-tags > .wp-block-column {
	position: relative; background: var(--blanc); border-radius: 20px; padding: 46px 26px 26px;
	box-shadow: var(--ombre); transform: rotate(var(--rot, -1.1deg)); transform-origin: 50% 0;
	transition: transform .6s var(--ease), box-shadow .4s; min-width: 220px;
}
.tp-tags > .wp-block-column:nth-child(2n) { --rot: .9deg; }
.tp-tags > .wp-block-column:nth-child(3n) { --rot: -.5deg; }
.tp-tags > .wp-block-column::before { content: ""; position: absolute; top: 16px; left: 50%; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: var(--creme); box-shadow: inset 0 1px 2px rgba(74, 38, 25, .25); }
.tp-tags > .wp-block-column::after { content: ""; position: absolute; top: -26px; left: 50%; width: 1.5px; height: 44px; background: linear-gradient(var(--lin), var(--caramel)); transform: rotate(14deg); transform-origin: bottom; opacity: .7; }
.tp-tags > .wp-block-column:hover { transform: rotate(0) translateY(-4px); box-shadow: 0 26px 46px -26px rgba(74, 38, 25, .45); }
.tp-tag__type { font: 600 11.5px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--caramel); margin-bottom: 12px; }
.tp-tags h3 { font-size: 26px; min-height: 2.2em; }
.tp-prix { font: 400 17px/1 var(--sans); color: var(--doux); margin: 4px 0 16px; display: flex; align-items: baseline; gap: 6px; padding-bottom: 16px; border-bottom: 1.5px dashed var(--lin); }
.tp-prix strong { font: 400 64px/.9 var(--serif); color: var(--brun); letter-spacing: -.02em; }
.tp-tags p:last-child { font-size: 15px; margin: 0; }
.tp-note { background: var(--sable); border-radius: 16px; padding: 18px 24px; display: flex; gap: 14px; align-items: center; margin-bottom: 8px; max-width: none !important; }
.tp-note::before { content: ""; width: 34px; height: 34px; flex: none; border-radius: 50%; background: var(--brun) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fbf6f0' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 19c2-6 6-9 12-12M9 15l-3-1M12 12l-1-3'/%3E%3C/svg%3E") center/18px no-repeat; }
.tp-note p { margin: 0; font-size: 15.5px; }

/* ---------------------------------------------------------------- Sélecteur de race */
.tp-picker-sec { background: var(--brun); color: var(--sable); border-radius: clamp(28px, 5vw, 64px); margin: 0 clamp(8px, 2vw, 24px); }
.tp-picker-sec h2 { color: var(--creme); }
.tp-picker-sec > p { color: var(--lin); }
.tp-picker { max-width: 760px; }
.tp-picker__champ { position: relative; margin-top: 26px; }
.tp-picker input {
	width: 100%; padding: 20px 24px 20px 58px; border-radius: 99px; border: 0; font: 400 19px/1.2 var(--sans); color: var(--encre);
	background: var(--creme) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b3c2a' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m16 16 4.5 4.5'/%3E%3C/svg%3E") 22px 50%/22px no-repeat;
	box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .5);
}
.tp-picker input:focus { outline: 3px solid var(--caramel); outline-offset: 3px; }
.tp-picker__liste { list-style: none; margin: 8px 0 0; padding: 8px; position: absolute; inset: 100% 0 auto; z-index: 5; background: var(--blanc); border-radius: 20px; box-shadow: var(--ombre); color: var(--encre); max-height: 320px; overflow: auto; }
.tp-picker__liste li { padding: 11px 16px; border-radius: 12px; cursor: pointer; }
.tp-picker__liste li:hover, .tp-picker__liste li.is-actif { background: var(--sable); }
.tp-picker__liste .is-vide { color: var(--doux); cursor: default; }
.tp-picker__raccourcis { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.tp-picker__raccourcis button { font: 500 14px/1 var(--sans); color: var(--creme); background: rgba(251, 246, 240, .08); border: 1px solid rgba(251, 246, 240, .28); padding: 10px 16px; border-radius: 99px; cursor: pointer; transition: background .25s, color .25s; }
.tp-picker__raccourcis button:hover { background: var(--creme); color: var(--brun-f); }
.tp-picker__res { margin-top: 26px; background: var(--creme); color: var(--texte); border-radius: 26px; padding: 26px 28px; }
.tp-picker__res.is-in { animation: tp-monte .55s var(--ease); }
.tp-picker__titre { font: 400 34px/1 var(--serif); color: var(--encre); margin-bottom: 14px; }
.tp-picker__res ul { list-style: none; margin: 0 0 18px; padding: 0; }
.tp-picker__res li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px dashed var(--lin); }
.tp-picker__res li b { font: 400 24px/1 var(--serif); color: var(--brun); white-space: nowrap; }
.tp-picker__actions { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; margin: 0; }
@keyframes tp-monte { from { opacity: 0; transform: translateY(12px); } }

/* ---------------------------------------------------------------- Trio / duo */
.tp-trio { margin-top: 36px; counter-reset: trio; }
.tp-trio > .wp-block-column { padding-top: 26px; border-top: 1.5px solid var(--lin); counter-increment: trio; position: relative; }
.tp-trio > .wp-block-column::before { content: "0" counter(trio); position: absolute; top: -14px; left: 0; background: var(--creme); padding-right: 12px; font: italic 400 22px/1 var(--serif); color: var(--caramel); }
.tp-trio h3 { font-size: 28px; }
.tp-duo { gap: clamp(28px, 6vw, 96px) !important; }
.tp-num { font: italic 400 20px/1 var(--serif); color: var(--caramel); width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--lin); margin-bottom: 18px; }
.tp-texte h2 { font-size: clamp(30px, 3.6vw, 46px); }
.tp-soft { background: var(--sable); border-radius: clamp(28px, 5vw, 64px); margin: 0 clamp(8px, 2vw, 24px); }
.tp-soft h3 { font-size: clamp(26px, 2.6vw, 34px); }

/* Fréquence conseillée */
.tp-freq { position: relative; background: var(--blanc); border-radius: var(--galet); padding: clamp(36px, 5vw, 64px) clamp(28px, 4vw, 56px); text-align: center; box-shadow: var(--ombre); max-width: 440px; margin: 0 auto; }
.tp-freq__label { font: 600 12px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--caramel); }
.tp-freq__num { margin: 10px 0 4px; }
.tp-freq__num strong { font: 400 clamp(56px, 7vw, 84px)/.95 var(--serif); color: var(--brun); display: block; }
.tp-freq__txt { font-size: 14.5px; color: var(--doux); margin: 12px auto 0; max-width: 32ch; }
.tp-duo--freq { align-items: center; }

/* Races */
.tp-races { list-style: none; padding: 0; margin: 36px 0 24px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.tp-races li { margin: 0; }
.tp-races a {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 76px; padding: 18px 22px;
	background: var(--blanc); border-radius: 18px; text-decoration: none; color: var(--encre); font: 400 23px/1.1 var(--serif);
	box-shadow: 0 0 0 1px rgba(107, 60, 42, .08); transition: background .3s, color .3s, transform .4s var(--ease), border-radius .5s var(--ease);
}
.tp-races a::after { content: ""; width: 34px; height: 34px; flex: none; border-radius: 50%; background: var(--sable) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M0 5h14M10 1l4 4-4 4' fill='none' stroke='%236b3c2a' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/14px no-repeat; transition: transform .4s var(--ease), background-color .3s; }
.tp-races a:hover { background: var(--brun); color: var(--creme); transform: translateY(-3px); border-radius: 28px 18px 28px 18px; }
.tp-races a:hover::after { background-color: var(--creme); transform: rotate(-45deg); }

/* Étapes */
.tp-steps { list-style: none; padding: 0; counter-reset: etape; margin: 40px 0 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; position: relative; }
.tp-steps::before { content: ""; position: absolute; left: 4%; right: 4%; top: 27px; border-top: 1.5px dashed var(--lin); }
.tp-steps li { counter-increment: etape; position: relative; font-size: 15px; color: var(--doux); }
.tp-steps li::before { content: counter(etape); display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 18px; border-radius: 50%; background: var(--creme); border: 1.5px solid var(--brun); color: var(--brun); font: italic 400 26px/1 var(--serif); position: relative; }
.tp-steps li strong { display: block; font: 400 24px/1.1 var(--serif); color: var(--encre); margin-bottom: 6px; }

/* Split image / texte */
.tp-split { align-items: center; gap: clamp(28px, 6vw, 96px) !important; }
.tp-split .wp-block-image img { aspect-ratio: 5 / 4; border-radius: 40% 60% 46% 54% / 52% 44% 56% 48%; }
.tp-split > .wp-block-column:first-child { flex-basis: 46%; flex-grow: 0; }

/* Avant / après */
.tp-ba { margin: 34px 0 0; max-width: 860px; }
.tp-ba__cadre { position: relative; aspect-ratio: 16 / 10; border-radius: 30px; overflow: hidden; background: var(--sable); box-shadow: var(--ombre); --pos: 50%; touch-action: pan-y; }
.tp-ba { --pos: 50%; }
.tp-ba__p { position: absolute; inset: 0; display: grid; place-items: center; }
.tp-ba__p img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.tp-ba__apres { clip-path: inset(0 0 0 var(--pos)); }
.tp-ba--vide .tp-ba__avant { background: repeating-linear-gradient(135deg, var(--sable) 0 14px, #ecdccb 14px 28px); }
.tp-ba--vide .tp-ba__apres { background: var(--blanc); }
.tp-ba__vide { font: italic 400 22px/1.2 var(--serif); color: var(--doux); padding: 20px; text-align: center; }
.tp-ba__vide { position: absolute; top: 50%; width: 50%; transform: translateY(-50%); }
.tp-ba__avant .tp-ba__vide { left: 0; }
.tp-ba__apres .tp-ba__vide { right: 0; }
.tp-ba__poignee { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: var(--blanc); pointer-events: none; }
.tp-ba__poignee i { position: absolute; top: 50%; left: 50%; width: 22px; height: 76px; margin: -38px 0 0 -11px; border-radius: 8px; background: var(--brun); box-shadow: 0 8px 20px rgba(74, 38, 25, .35); }
.tp-ba__poignee i::before { content: ""; position: absolute; inset: 10px 5px; background: repeating-linear-gradient(0deg, var(--creme) 0 2px, transparent 2px 6px); border-radius: 2px; }
.tp-ba__tag { position: absolute; bottom: 16px; font: 600 11.5px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; background: rgba(42, 28, 22, .72); color: var(--creme); padding: 8px 12px; border-radius: 99px; pointer-events: none; }
.tp-ba__tag--g { left: 16px; }
.tp-ba__tag--d { right: 16px; }
.tp-ba__range { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
.tp-ba__range:focus-visible + * { outline: none; }
.tp-ba__cadre:focus-within .tp-ba__poignee i { outline: 3px solid var(--caramel); outline-offset: 3px; }
.tp-ba.is-indice .tp-ba__cadre { animation: tp-indice 1.6s var(--ease); }
@keyframes tp-indice { 30% { --pos: 38%; } 65% { --pos: 60%; } }
@property --pos { syntax: "<percentage>"; inherits: true; initial-value: 50%; }
.tp-ba figcaption { text-align: center; margin-top: 14px; font-size: 14.5px; color: var(--doux); }

/* Avis */
.tp-avis { display: grid; gap: 22px; margin-top: 30px; }
.tp-avis__agenda { background: var(--blanc); border-radius: var(--r); padding: 10px; box-shadow: var(--ombre); }
.tp-avis__agenda iframe { display: block; width: 100%; border: 0; min-height: 420px; }
.tp-avis__carte { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 26px; padding: 22px 28px; border-radius: var(--r); border: 1.5px solid var(--lin); }
.tp-avis__etoiles { display: flex; gap: 3px; color: var(--caramel); margin: 0; }
.tp-avis__etoiles .tp-ico { fill: currentColor; }
.tp-avis__note { margin: 0; font: 400 46px/1 var(--serif); color: var(--encre); }
.tp-avis__note span { font-size: .45em; color: var(--doux); }
.tp-avis__txt, .tp-avis__nb { margin: 0; flex: 1 1 260px; }
.tp-note-admin { font-size: 13px; color: var(--doux); background: repeating-linear-gradient(135deg, transparent 0 8px, rgba(185, 131, 90, .07) 8px 16px); border: 1px dashed var(--caramel); padding: 10px 14px; border-radius: 10px; margin: 0; }

/* Réservation */
.tp-resa-sec { background: linear-gradient(var(--creme), var(--sable)); }
.tp-agenda { margin-top: 30px; }
.tp-agenda__cadre { background: var(--blanc); border-radius: 28px; padding: clamp(6px, 1.2vw, 14px); box-shadow: var(--ombre); }
.tp-agenda iframe { display: block; width: 100%; min-height: 640px; border: 0; border-radius: 20px; }
.tp-agenda__alt { font-size: 14px; color: var(--doux); margin: 14px 0 0; text-align: center; }
.tp-resa-page { padding-top: clamp(28px, 4vw, 56px) !important; }
.tp-resa-page > .tp-agenda { max-width: 980px; }

/* Accès */
.tp-acces { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 16px; margin-top: 28px; }
.tp-acces__bloc { background: var(--blanc); border-radius: var(--r); padding: 26px; box-shadow: 0 0 0 1px rgba(107, 60, 42, .08); }
.tp-acces__bloc h3 { font-size: 26px; display: flex; align-items: center; gap: 10px; }
.tp-acces__bloc h3 .tp-ico { color: var(--caramel); }
.tp-acces__bloc p a { display: inline-flex; gap: 10px; align-items: center; text-decoration: none; overflow-wrap: anywhere; }
.tp-acces__bloc a[href^="mailto"] { font-size: 13.5px; letter-spacing: -.01em; white-space: nowrap; }
.tp-acces__bloc a[href^="mailto"] .tp-ico { width: 17px; height: 17px; }
.tp-acces__contact { margin-top: 18px; padding-top: 16px; border-top: 1px dotted var(--lin); }
.tp-acces__liens { margin: 14px 0 0; }
.tp-acces__tel { font: 400 26px/1 var(--serif); color: var(--encre) !important; }
.tp-acces .tp-ouvert { background: var(--creme); }
.tp-horaires { margin: 0; font-size: 15px; }
.tp-horaires div { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px dotted var(--lin); }
.tp-horaires dt { color: var(--doux); }
.tp-horaires dd { margin: 0; color: var(--encre); font-weight: 500; }
.tp-horaires .is-auj dt, .tp-horaires .is-auj dd { color: var(--brun); font-weight: 700; }
.tp-reseaux { display: flex; gap: 10px; margin: 14px 0 0; }
.tp-reseaux a { width: 42px; height: 42px; border-radius: 50%; display: grid !important; place-items: center; background: var(--sable); color: var(--brun); transition: background .25s, color .25s, transform .35s var(--ease); }
.tp-reseaux a:hover { background: var(--brun); color: var(--creme); transform: translateY(-2px); }
.tp-carte { position: relative; min-height: 300px; border-radius: var(--r); overflow: hidden; display: grid; place-items: center; align-content: center; gap: 10px; text-align: center; background: var(--sable); }
.tp-carte__fond { position: absolute; inset: 0; opacity: .55; background:
	radial-gradient(circle at 54% 46%, var(--brun) 0 7px, transparent 8px),
	linear-gradient(105deg, transparent 47%, #fff 47% 50%, transparent 50%),
	linear-gradient(15deg, transparent 58%, #fff 58% 60.5%, transparent 60.5%),
	linear-gradient(160deg, transparent 30%, #fff 30% 31.5%, transparent 31.5%),
	repeating-linear-gradient(90deg, transparent 0 46px, rgba(107, 60, 42, .07) 46px 47px),
	repeating-linear-gradient(0deg, transparent 0 46px, rgba(107, 60, 42, .07) 46px 47px); }
.tp-carte__btn { position: relative; display: inline-flex; gap: 8px; align-items: center; font: 600 15px/1 var(--sans); background: var(--brun); color: var(--creme); border: 0; padding: 14px 22px; border-radius: 99px; cursor: pointer; }
.tp-carte__info { position: relative; font-size: 12.5px; color: var(--doux); margin: 0; }
.tp-carte iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Tableaux de prix */
.wp-block-table { margin: 24px 0 0; overflow-x: auto; }
.wp-block-table table { width: 100%; border-collapse: collapse; font-size: 15.5px; background: var(--blanc); border-radius: 18px; overflow: hidden; box-shadow: 0 0 0 1px rgba(107, 60, 42, .08); }
.wp-block-table th { text-align: left; font: 600 12px/1.3 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--doux); padding: 16px 18px; background: var(--sable); }
.wp-block-table td { padding: 13px 18px; border-top: 1px solid rgba(107, 60, 42, .07); color: var(--encre); }
.wp-block-table td:first-child { font-weight: 600; }
.wp-block-table td:not(:first-child), .wp-block-table th:not(:first-child) { text-align: right; white-space: nowrap; }
.wp-block-table tbody tr { transition: background .2s; }
.wp-block-table tbody tr:hover { background: var(--creme); }
.tp-table-sec > .wp-block-table { max-width: var(--l); }
.tp-filtre { margin-top: 18px; }
.tp-filtre input { width: min(100%, 420px); padding: 14px 20px 14px 50px; border-radius: 99px; border: 1.5px solid var(--lin); background: var(--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b3c2a' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m16 16 4.5 4.5'/%3E%3C/svg%3E") 18px 50%/20px no-repeat; font: 400 16px/1.2 var(--sans); color: var(--encre); }
.tp-filtre input:focus { outline: none; border-color: var(--brun); }

/* FAQ */
.tp-faq > h2 { margin-bottom: 30px; }
.wp-block-details { border-top: 1.5px solid var(--lin); max-width: 860px; }
.wp-block-details:last-child { border-bottom: 1.5px solid var(--lin); }
.wp-block-details summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0; font: 400 clamp(22px, 2vw, 27px)/1.2 var(--serif); color: var(--encre); }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: ""; width: 38px; height: 38px; flex: none; border-radius: 50%; border: 1.5px solid var(--lin); background: linear-gradient(var(--brun), var(--brun)) center/14px 1.6px no-repeat, linear-gradient(var(--brun), var(--brun)) center/1.6px 14px no-repeat; transition: transform .4s var(--ease), background-color .3s; }
.wp-block-details[open] summary::after { transform: rotate(135deg); background-color: var(--sable); }
.wp-block-details summary:hover::after { border-color: var(--brun); }
.wp-block-details > p { max-width: 70ch; padding-bottom: 6px; }
.wp-block-details[open] > p { animation: tp-monte .45s var(--ease); }

/* Appel final */
.tp-cta { text-align: center; background: var(--brun); color: var(--lin); border-radius: clamp(28px, 5vw, 64px); margin: 0 clamp(8px, 2vw, 24px) clamp(8px, 2vw, 24px); overflow: hidden; }
.tp-cta::before { content: ""; position: absolute; width: 420px; height: 420px; right: -120px; top: -160px; border-radius: var(--galet); background: rgba(251, 246, 240, .06); }
.tp-cta h2 { color: var(--creme); margin-inline: auto; max-width: 16ch; }
.tp-cta > p { margin-inline: auto; max-width: 48ch; }
.tp-cta .wp-block-buttons { justify-content: center; }
.tp-cta .wp-block-button__link { background: var(--creme); color: var(--brun-f); border-color: var(--creme); }
.tp-cta .wp-block-button__link:hover { background: var(--blanc); color: var(--brun-f); }
.tp-cta .is-style-outline .wp-block-button__link { background: transparent; color: var(--creme); border-color: rgba(251, 246, 240, .4); }
.tp-cta .is-style-outline .wp-block-button__link:hover { border-color: var(--creme); background: rgba(251, 246, 240, .08); }


/* Bandeau de note + citations d'avis */
.tp-avis__polas { display: flex; flex: none; margin-right: 6px; }
.tp-avis__polas img { width: 74px; height: 86px; object-fit: cover; padding: 5px 5px 16px; background: var(--blanc); border-radius: 4px; box-shadow: 0 8px 18px -10px rgba(74, 38, 25, .55); transform: rotate(-7deg); transition: transform .5s var(--ease); }
.tp-avis__polas img + img { margin-left: -22px; transform: rotate(6deg) translateY(6px); }
.tp-avis__carte:hover .tp-avis__polas img { transform: rotate(-11deg) translateX(-4px); }
.tp-avis__carte:hover .tp-avis__polas img + img { transform: rotate(10deg) translate(6px, 4px); }
.tp-avis__carte { background: var(--blanc); }
.tp-avis-liste { columns: 3 300px; column-gap: 18px; margin-top: 26px; }
.tp-avis-liste .wp-block-quote {
	break-inside: avoid; margin: 0 0 18px; padding: 26px 26px 22px; background: var(--creme); border-radius: 22px 22px 22px 6px;
	position: relative; border: 0; box-shadow: 0 0 0 1px rgba(107, 60, 42, .07);
}
.tp-avis-sec--court .tp-avis-liste .wp-block-quote, .tp-soft .tp-avis-liste .wp-block-quote { background: var(--blanc); }
.tp-avis-liste .wp-block-quote::before { content: "★★★★★"; display: block; letter-spacing: 3px; color: var(--caramel); font-size: 13px; margin-bottom: 12px; }
.tp-avis-liste .wp-block-quote::after { content: "“"; position: absolute; right: 20px; top: 4px; font: italic 400 82px/1 var(--serif); color: var(--lin); pointer-events: none; }
.tp-avis-liste .wp-block-quote p { font: 400 21px/1.32 var(--serif); color: var(--encre); margin: 0 0 14px; max-width: none; }
.tp-avis-liste .wp-block-quote cite { font: 500 13.5px/1.3 var(--sans); font-style: normal; color: var(--doux); display: flex; align-items: center; gap: 8px; }
.tp-avis-liste .wp-block-quote cite::before { content: ""; width: 18px; height: 1.5px; background: var(--caramel); }
.tp-avis-sec--court { padding-block: clamp(48px, 7vw, 96px) !important; }

/* Fenêtre de réservation sur le site (liens directs vers une prestation Agenda.ch) */
.tp-modal { border: 0; padding: 0; width: min(760px, 100vw); height: min(860px, 100dvh); max-width: 100vw; max-height: 100dvh; border-radius: 26px; background: var(--blanc); box-shadow: 0 40px 90px -30px rgba(42, 28, 22, .6); overflow: hidden; }
.tp-modal::backdrop { background: rgba(42, 28, 22, .55); }
.tp-modal[open] { animation: tp-monte .45s var(--ease); }
.tp-modal iframe { width: 100%; height: 100%; border: 0; display: block; }
.tp-modal__fermer { position: absolute; top: 12px; right: 12px; width: 42px; height: 42px; border-radius: 50%; border: 0; background: var(--brun); color: var(--creme); font-size: 22px; line-height: 1; cursor: pointer; z-index: 2; }
@media (max-width: 760px) { .tp-modal { border-radius: 0; width: 100vw; height: 100dvh; } }
.tp-tags .wp-block-buttons { margin: 18px 0 0; }
.tp-tags .wp-block-button__link { padding: 11px 18px; font-size: 14.5px; }


/* Note Google du hero */
.tp-note-google { margin: 0 0 12px; }
.tp-note-google a { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--texte); font-size: 14.5px; }
.tp-note-google__etoiles { color: var(--caramel); letter-spacing: 2px; font-size: 15px; }
.tp-note-google strong { font: 400 24px/1 var(--serif); color: var(--encre); }
.tp-note-google a:hover span:last-child { text-decoration: underline; }
.tp-hero .tp-note-google { justify-self: start; }

/* Communes desservies */
.tp-communes { list-style: none; padding: 0; margin: 24px 0 8px; display: flex; flex-wrap: wrap; gap: 8px; max-width: 860px; }
.tp-communes li { padding: 9px 16px; border-radius: 99px; background: var(--blanc); box-shadow: 0 0 0 1px rgba(107, 60, 42, .1); font-size: 14.5px; color: var(--encre); }
.tp-communes li:first-child { background: var(--brun); color: var(--creme); box-shadow: none; }
.tp-zone-sec .tp-trio { margin-top: 44px; }

/* « Autres races » dans le sélecteur */
.tp-picker__autres { font: 500 14px/1 var(--sans); color: var(--creme); padding: 10px 16px; border-radius: 99px; border: 1px dashed rgba(251, 246, 240, .45); text-decoration: none; }
.tp-picker__autres:hover { background: var(--creme); color: var(--brun-f); border-style: solid; }
.tp-races a[href="/toilettage-chien/"] { background: var(--encre); color: var(--creme); box-shadow: none; align-content: center; justify-content: center; gap: 14px; font-size: clamp(30px, 3vw, 40px); font-style: italic; }
.tp-races a[href="/toilettage-chien/"]::before { display: none; }
.tp-races a[href="/toilettage-chien/"]::after { background-color: var(--creme); }
.tp-races a[href="/toilettage-chien/"]:hover { background: var(--brun); }


/* Cartes races avec photo (images dans assets/img/races/) */
.tp-races { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; }
.tp-races a { flex-wrap: wrap; align-content: flex-start; min-height: 0; padding: 10px 10px 16px; border-radius: 22px; position: relative; }
.tp-races a::before {
	content: ""; flex: 0 0 100%; aspect-ratio: 1 / .86; margin-bottom: 14px; border-radius: 16px 16px 16px 16px;
	background: var(--img, none) center / cover no-repeat, var(--sable); transition: border-radius .6s var(--ease), transform .6s var(--ease);
}
.tp-races a:hover::before { border-radius: var(--galet); transform: scale(.97); }
.tp-races a { padding-inline: 10px; font-size: 21px; }
.tp-races a::after { margin-right: 6px; }
.tp-races a[href*="bichons"] { --img: url(../img/races/bichons.webp); }
.tp-races a[href*="spitz"] { --img: url(../img/races/spitz.webp); }
.tp-races a[href*="yorkshire"] { --img: url(../img/races/yorkshire.webp); }
.tp-races a[href*="caniche"] { --img: url(../img/races/caniche.webp); }
.tp-races a[href*="cavalier"] { --img: url(../img/races/cavalier.webp); }
.tp-races a[href*="golden"] { --img: url(../img/races/golden.webp); }
.tp-races a[href*="berger"] { --img: url(../img/races/berger.webp); }
.tp-races a[href*="labradoodle"] { --img: url(../img/races/labradoodle.webp); }
.tp-races a[href*="toilettage-chat"] { --img: url(../img/races/chat.webp); }


/* Bloc « Prix par race » compact */
.tp-page > .tp-picker-sec { padding-block: clamp(36px, 5vw, 60px); display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 40px; align-items: end; }
.tp-picker-sec > h2 { grid-column: 1 / -1; max-width: none; margin-bottom: 0; font-size: clamp(30px, 3.4vw, 44px); white-space: nowrap; }
.tp-picker-sec h2 em { color: var(--caramel); }
.tp-picker-sec > .tp-picker { grid-column: 1; max-width: 760px; }
.tp-picker-sec .tp-picker__champ { margin-top: 18px; }
.tp-picker-sec .tp-picker input { padding-block: 16px; }
.tp-picker-sec .tp-picker__raccourcis { margin-top: 12px; }
.tp-picker-sec > .wp-block-buttons { grid-column: 2; margin: 0 0 4px; align-self: end; }
.tp-picker-sec .is-style-outline .wp-block-button__link, .tp-picker-sec .is-style-outline .wp-block-button__link:hover {
	background: var(--creme); color: var(--brun-f); border-color: var(--creme); box-shadow: 0 12px 26px -16px rgba(0, 0, 0, .55);
}
.tp-picker-sec .is-style-outline .wp-block-button__link:hover { background: var(--blanc); }
@media (max-width: 760px) {
	.tp-page > .tp-picker-sec { display: block; }
	.tp-picker-sec > h2 { white-space: normal; }
	.tp-picker-sec > .wp-block-buttons { margin-top: 20px; }
	.tp-picker-sec > .wp-block-buttons .wp-block-button, .tp-picker-sec > .wp-block-buttons .wp-block-button__link { width: 100%; justify-content: center; }
}

/* Sections à fond */
.tp-offres { padding-bottom: clamp(40px, 6vw, 80px) !important; }
.tp-pourquoi, .tp-avis-sec { background: var(--blanc); }

/* ---------------------------------------------------------------- Pied de page */
.tp-pied { background: var(--brun); color: var(--lin); padding: clamp(56px, 8vw, 100px) var(--g) 0; margin-top: clamp(8px, 2vw, 24px); }
.tp-pied__in { max-width: var(--l); margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }
.tp-pied h2 { font: 600 12px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--caramel); margin-bottom: 20px; }
.tp-pied a { color: var(--creme); text-decoration: none; }
.tp-pied a:hover { color: #fff; text-decoration: underline; }
.tp-pied p { font-size: 15.5px; }
.tp-pied .tp-small { color: rgba(230, 213, 195, .7); }
.tp-pied__mot { font: 400 clamp(32px, 3.4vw, 44px)/1.05 var(--serif); color: var(--creme); margin: 20px 0 26px; }
.tp-pied__mot em { color: var(--caramel); }
.tp-pied .tp-rdv--clair, .tp-pied .tp-rdv--clair:hover { color: var(--brun-f); text-decoration: none; }
.tp-pied .tp-rdv--clair:hover .tp-rdv__txt { color: var(--creme); }
.tp-pied__liens { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 15.5px; }
.tp-pied .tp-ouvert { background: rgba(251, 246, 240, .08); color: var(--creme); box-shadow: none; }
.tp-pied .tp-horaires div { border-color: rgba(230, 213, 195, .14); }
.tp-pied .tp-horaires dt { color: rgba(230, 213, 195, .7); }
.tp-pied .tp-horaires dd, .tp-pied .tp-horaires .is-auj dt, .tp-pied .tp-horaires .is-auj dd { color: var(--creme); }
.tp-pied .tp-reseaux a { background: rgba(251, 246, 240, .1); color: var(--creme); }
.tp-pied .tp-reseaux a:hover { background: var(--creme); color: var(--brun-f); text-decoration: none; }
.tp-pied__bas { max-width: var(--l); margin: 56px auto 0; padding: 22px 0 28px; border-top: 1px solid rgba(230, 213, 195, .14); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; font-size: 13.5px; color: rgba(230, 213, 195, .6); }
.tp-pied__bas p { margin: 0; font-size: 13.5px; }

/* Barre mobile */
.tp-barre { display: none; }

/* Apparitions */
.js .tp-apparait { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--ease) var(--d, 0ms), transform .9s var(--ease) var(--d, 0ms); }
.js .tp-apparait.is-vu { opacity: 1; transform: none; }

/* ==========================================================================
   Tablette et mobile
   ========================================================================== */
@media (max-width: 1080px) {
	.tp-entete__in { gap: 14px; }
	.tp-burger { display: grid; place-content: center; gap: 6px; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--sable); cursor: pointer; flex: none; position: relative; z-index: 3; }
	.tp-burger span { display: block; width: 20px; height: 1.8px; background: var(--encre); border-radius: 2px; transition: transform .4s var(--ease); }
	.tp-menu-ouvert .tp-burger span:first-child { transform: translateY(3.9px) rotate(45deg); }
	.tp-menu-ouvert .tp-burger span:last-child { transform: translateY(-3.9px) rotate(-45deg); }
	.tp-nav {
		position: fixed; inset: 0; z-index: 2; background: var(--creme); padding: 104px var(--g) 32px; overflow-y: auto;
		display: flex; flex-direction: column; clip-path: circle(0 at calc(100% - 44px) 40px); visibility: hidden;
		transition: clip-path .7s var(--ease), visibility 0s .7s;
	}
	.tp-menu-ouvert .tp-nav { clip-path: circle(150% at calc(100% - 44px) 40px); visibility: visible; transition: clip-path .7s var(--ease); }
	.tp-menu-ouvert { overflow: hidden; }
	.tp-menu { flex-direction: column; gap: 0; }
	.tp-menu > li { border-bottom: 1px solid var(--lin); display: flex; flex-wrap: wrap; align-items: center; }
	.tp-menu > li > a { flex: 1; padding: 16px 0; font: 400 34px/1.1 var(--serif); background: none !important; border-radius: 0; }
	.tp-menu > .current-menu-item > a { color: var(--brun); }
	.tp-sous { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--lin); background: none; cursor: pointer; }
	.tp-sous::before { content: ""; width: 10px; height: 10px; border: solid var(--brun); border-width: 0 1.6px 1.6px 0; transform: translateY(-2px) rotate(45deg); transition: transform .35s var(--ease); }
	.is-ouvert > .tp-sous::before { transform: translateY(2px) rotate(-135deg); }
	.tp-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: none; padding: 0 0 14px; min-width: 0; flex-basis: 100%; display: none; columns: 2; column-gap: 12px; }
	.tp-menu .is-ouvert > .sub-menu { display: block; }
	.tp-menu .sub-menu a { padding: 8px 0; font-size: 16px; break-inside: avoid; }
	.tp-nav__pied { display: block; margin-top: auto; padding-top: 30px; color: var(--doux); font-size: 15px; }
	.tp-nav__pied a { display: inline-flex; gap: 10px; align-items: center; font: 400 26px/1 var(--serif); color: var(--encre); text-decoration: none; margin-bottom: 8px; }
	.tp-rdv { position: relative; z-index: 3; }
	.tp-assure { grid-template-columns: repeat(2, 1fr); }
	.tp-steps { grid-template-columns: 1fr; gap: 22px; }
	.tp-steps::before { left: 27px; right: auto; top: 20px; bottom: 20px; border-top: 0; border-left: 1.5px dashed var(--lin); }
	.tp-steps li { display: grid; grid-template-columns: 54px 1fr; column-gap: 20px; }
	.tp-steps li::before { grid-row: 1 / span 3; margin: 0; }
	.tp-acces { grid-template-columns: 1fr 1fr; }
	.tp-pied__in { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
	h1 { font-size: clamp(44px, 12.5vw, 64px); }
	.tp-marque__nom { font-size: 22px; }
	.tp-marque img { width: 40px; height: 40px; }
	.tp-rdv { padding: 5px; }
	.tp-entete .tp-rdv__txt { display: none; }
	.tp-entete .tp-rdv { padding: 4px; }
	.tp-defile .tp-entete .tp-rdv { opacity: 0; pointer-events: none; }
	.tp-hero { display: block; padding-top: 18px !important; }
	.tp-page--accueil .tp-hero { min-height: 0; }
	.tp-hero > .wp-block-image { margin: 34px 3% 0; }
	.tp-hero > .wp-block-image img { aspect-ratio: 5 / 4; }
	.tp-hero .tp-kicker { font-size: 11px; letter-spacing: .12em; }
	.tp-hero h1 { margin-bottom: 16px; }
	.tp-hero > .wp-block-image::after { width: 92px; height: 92px; right: -4%; bottom: -8%; }
	.tp-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.tp-hero .wp-block-button__link { justify-content: center; width: 100%; }
	.wp-block-columns { flex-direction: column; }
	.wp-block-column { flex-basis: auto !important; }
	.tp-tags { flex-direction: row !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(var(--g) * -1) !important; padding: 34px var(--g) 18px; scrollbar-width: none; }
	.tp-tags::-webkit-scrollbar { display: none; }
	.tp-tags > .wp-block-column { flex: 0 0 78% !important; min-width: 0; scroll-snap-align: center; }
	.tp-tags h3 { min-height: 0; }
	.tp-assure { grid-template-columns: 1fr 1fr; padding: 20px; gap: 16px; }
	.tp-assure strong { font-size: 19px; }
	.tp-acces { grid-template-columns: 1fr; }
	.tp-races { grid-template-columns: 1fr 1fr; gap: 10px; }
	.tp-races a { font-size: 18px; padding: 8px 8px 12px; }
	.tp-races a::after { width: 26px; height: 26px; background-size: 11px; }
	.tp-avis-liste { columns: auto; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin-inline: calc(var(--g) * -1); padding: 4px var(--g) 10px; scrollbar-width: none; }
	.tp-avis-liste::-webkit-scrollbar { display: none; }
	.tp-avis-liste .wp-block-quote { flex: 0 0 84%; scroll-snap-align: center; margin: 0; }
	.tp-avis__polas img { width: 60px; height: 70px; }

	.tp-pied__in { grid-template-columns: 1fr; gap: 30px; }
	.tp-picker input { font-size: 17px; padding: 18px 20px 18px 52px; }
	.tp-picker__res { padding: 22px; }
	.wp-block-table table { font-size: 14px; }
	.wp-block-table td, .wp-block-table th { padding: 11px 12px; }
	.tp-ba__cadre { aspect-ratio: 4 / 5; }
	.tp-agenda iframe { min-height: 720px; }
	.tp-barre {
		display: flex; gap: 10px; position: fixed; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); z-index: 40;
		padding: 8px; background: rgba(42, 28, 22, .92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 99px;
		box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .55); transform: translateY(140%); transition: transform .5s var(--ease);
	}
	.tp-defile .tp-barre { transform: none; }
	.tp-sans-barre .tp-barre, .tp-menu-ouvert .tp-barre { display: none; }
	.tp-barre a { display: grid; place-items: center; border-radius: 99px; text-decoration: none; font-weight: 600; }
	.tp-barre__tel { width: 50px; height: 50px; background: rgba(251, 246, 240, .12); color: var(--creme); }
	.tp-barre__rdv { flex: 1; background: var(--creme); color: var(--brun-f); font-size: 16px; }
	.tp-pied { padding-bottom: 80px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
	.tp-entete, .tp-barre, .tp-pied, .tp-agenda, .tp-carte, .tp-offre { display: none !important; }
}
