/* Surcouche commune — charte Inu'Neko v1.2 */
body{color:#1F1A16}                                   /* texte courant : Noir Doux */
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{height:56px;width:auto;display:block}
@media(max-width:600px){.logo img{height:44px}}
footer.site .logo img{height:64px}
footer.site .logo{background:#4C311C;display:inline-flex;padding:0;border-radius:4px}
strong{color:#5C3A21}
h3{font-weight:500}
.btn--plein{background:#DE6523;color:#fff} .btn--plein:hover{background:#B94F15}
nav.nav a[aria-current="page"]{border-color:#DE6523}
/* cadrage vétérinaire */
.cadrage-veto{background:#EDE4D8;border-left:3px solid #5C3A21;padding:1rem 1.25rem;margin:2rem auto;max-width:var(--max);font-size:.95rem;color:#5C3A21;border-radius:0 4px 4px 0}
.cadrage-veto p{margin:0;max-width:none}
/* formulaires : état d'envoi */
.form-message{padding:1rem 1.25rem;border-radius:4px;margin:1rem 0;font-weight:500}
.form-message.ok{background:#F8E5DA;color:#B94F15} .form-message.ko{background:#F6E6E4;color:#8F2F2A}
input:user-invalid,select:user-invalid,textarea:user-invalid{border-color:#B3261E}
/* pages légales */
.legal{max-width:72ch;margin:0 auto;padding:var(--pad) 1.25rem} .legal h2{font-size:1.4rem;margin-top:2rem} .legal .a-completer{background:#FFF3C4;padding:.1em .3em;border-radius:2px}
/* barre d'en-tête : pas de retour à la ligne */
header.site .barre{flex-wrap:nowrap;gap:1.1rem}
nav.nav ul{gap:1.1rem}
nav.nav a,header.site .tel,header.site .btn{white-space:nowrap}
header.site .btn--plein{padding:.65rem 1rem;font-size:.9rem}
.logo img{height:48px}
@media(max-width:1180px){nav.nav,header.site .tel{display:none}.burger{display:grid}}
/* ==========================================================================
   INU'NEKO — COQUILLE COMMUNE (en-tête, navigation, pied de page, pages légales)
   À AJOUTER À LA FIN DE public/assets/site.css — ne rien supprimer au-dessus.
   --------------------------------------------------------------------------
   Raison : chaque page embarque sa propre feuille de style. Celles de
   formulaires.html, confidentialite.html, mentions-legales.html, merci.html et
   droit-a-l-image.html ne contiennent aucune règle pour l'en-tête, la barre de
   navigation, le pied de page ni le corps des pages légales. Le navigateur
   applique alors son style par défaut : menu en liste à puces, liens bleus
   soulignés, texte collé aux bords.

   Toutes les valeurs de couleur et de police sont écrites avec une valeur de
   repli, donc ce bloc fonctionne aussi bien sur les pages qui déclarent leurs
   variables que sur celles qui ne les déclarent pas.

   Aucune règle ci-dessous ne touche au contenu, aux formulaires ni aux
   composants de l'accueil : tout est porté par header.site, footer.site ou
   main.legal.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. EN-TÊTE
   -------------------------------------------------------------------------- */

header.site {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(247, 243, 236, .94);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(92, 58, 33, .15);
}

header.site .wrap,
header.site .barre {
  width: 100%;
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: clamp(1.15rem, 4vw, 2rem);
}

header.site .barre {
  display: flex;
  align-items: center;
  gap: 1.3rem;
  min-height: 76px;
}

header.site .logo {
  margin-right: auto;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-family: var(--display, "Cormorant Garamond", Georgia, serif);
  font-size: 1.45rem;
  letter-spacing: .03em;
  color: var(--brun, #5C3A21);
}

header.site .logo img {
  display: block;
  height: 46px;
  width: auto;
}

header.site nav.nav ul {
  display: flex;
  gap: 1.45rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

header.site nav.nav a {
  font-family: var(--sans, Jost, Verdana, Arial, sans-serif);
  font-size: .9rem;
  letter-spacing: .03em;
  color: var(--brun, #5C3A21);
  text-decoration: none;
  padding-block: .3rem;
  border-bottom: 2px solid transparent;
}

header.site nav.nav a:hover {
  border-color: var(--orange, #DE6523);
}

header.site .tel {
  font-size: .88rem;
  color: var(--brun-doux, #6E5442);
  text-decoration: none;
  white-space: nowrap;
}

header.site .btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .82rem 1.5rem;
  border-radius: 3px;
  border: 1px solid transparent;
  font-family: var(--sans, Jost, Verdana, Arial, sans-serif);
  font-size: .94rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .18s, transform .18s;
}

header.site .btn--plein {
  background: var(--orange, #DE6523);
  color: #fff;
}

header.site .btn--plein:hover {
  background: var(--orange-fonce, #B94F15);
  transform: translateY(-2px);
}

header.site .burger {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(92, 58, 33, .4);
  background: none;
  border-radius: 3px;
  place-items: center;
  cursor: pointer;
}

header.site .burger span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--brun, #5C3A21);
  box-shadow: 0 -6px 0 var(--brun, #5C3A21), 0 6px 0 var(--brun, #5C3A21);
}

@media (max-width: 1040px) {
  header.site nav.nav,
  header.site .tel {
    display: none;
  }
  header.site .burger {
    display: grid;
  }
}

/* --------------------------------------------------------------------------
   2. PIED DE PAGE
   -------------------------------------------------------------------------- */

footer.site {
  background: #5A2C1B;
  color: rgba(255, 255, 255, .78);
  padding-block: 3.2rem 1.3rem;
  font-family: var(--sans, Jost, Verdana, Arial, sans-serif);
  font-size: .92rem;
}

footer.site .wrap {
  width: 100%;
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: clamp(1.15rem, 4vw, 2rem);
}

footer.site h3 {
  font-family: var(--sans, Jost, Verdana, Arial, sans-serif);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #F0B795;
  margin: 0 0 .9rem;
}

footer.site a {
  color: rgba(255, 255, 255, .9);
  text-decoration: none;
}

footer.site a:hover {
  text-decoration: underline;
}

footer.site .logo img {
  display: block;
  height: 40px;
  width: auto;
}

footer.site .pied {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 2rem;
}

footer.site .pied ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .5rem;
}

footer.site .bas {
  margin-top: 2.3rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(255, 255, 255, .18);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: .82rem;
  color: rgba(255, 255, 255, .6);
}

@media (max-width: 880px) {
  footer.site .pied {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 520px) {
  footer.site .pied {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   3. CORPS DES PAGES LÉGALES
   Sans ces règles, le texte des CGV, de la confidentialité, des mentions
   légales et du droit à l'image s'affiche collé aux bords, sans rythme.
   -------------------------------------------------------------------------- */

main.legal {
  width: 100%;
  max-width: 820px;
  margin-inline: auto;
  padding: clamp(2.4rem, 6vw, 4.5rem) clamp(1.15rem, 4vw, 2rem) clamp(3rem, 7vw, 5rem);
}

main.legal h1 {
  font-family: var(--display, "Cormorant Garamond", Georgia, serif);
  color: var(--brun, #5C3A21);
  font-size: clamp(2rem, 4.6vw, 3rem);
  line-height: 1.14;
  margin: 0 0 .35em;
}

main.legal .maj {
  font-size: .86rem;
  color: var(--brun-doux, #6E5442);
  margin: 0 0 2.4rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid rgba(92, 58, 33, .18);
}

main.legal h2 {
  font-family: var(--display, "Cormorant Garamond", Georgia, serif);
  color: var(--brun, #5C3A21);
  font-size: clamp(1.25rem, 2.3vw, 1.6rem);
  line-height: 1.2;
  margin: 2.5rem 0 .7em;
}

main.legal h2:first-of-type {
  margin-top: 1.4rem;
}

main.legal p {
  max-width: none;
  margin: 0 0 1rem;
}

main.legal ul {
  margin: 0 0 1.2rem;
  padding-left: 1.15rem;
  display: grid;
  gap: .45rem;
}

main.legal li::marker {
  color: var(--orange, #DE6523);
}

main.legal .legal-note {
  border-left: 3px solid var(--orange, #DE6523);
  background: rgba(222, 101, 35, .10);
  padding: 1.05rem 1.3rem;
  margin: 0 0 1.4rem;
}

main.legal .legal-note p:last-child {
  margin-bottom: 0;
}

main.legal .identite {
  margin-top: 2.6rem;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(92, 58, 33, .18);
  font-size: .95rem;
}

main.legal .identite ul {
  list-style: none;
  padding-left: 0;
}

/* --------------------------------------------------------------------------
   4. LIEN D'ÉVITEMENT (accessibilité) ET FOCUS VISIBLE
   -------------------------------------------------------------------------- */

.saut {
  position: absolute;
  left: -9999px;
}

.saut:focus {
  position: fixed;
  left: 1rem;
  top: 1rem;
  background: var(--brun, #5C3A21);
  color: #fff;
  padding: .7rem 1rem;
  z-index: 99;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--orange-fonce, #B94F15);
  outline-offset: 3px;
}
footer.site .logo{background:transparent;padding:0;border-radius:0;display:inline-flex}
footer.site .logo img{height:40px;width:auto;display:block}
/* Correctif : menu mobile au-dessus des règles de masquage */
@media (max-width:1180px){body.menu-ouvert header.site nav.nav{display:block;position:fixed;inset:0;background:#F7F3EC;padding:6rem 2rem 2rem;z-index:1000;overflow:auto}body.menu-ouvert header.site nav.nav ul{display:flex;flex-direction:column;gap:1.2rem}body.menu-ouvert header.site nav.nav a{font-size:1.25rem}body.menu-ouvert header.site .burger{position:fixed;top:1rem;right:1rem;z-index:1010;background:#F7F3EC}body.menu-ouvert header.site .burger span{background:transparent;box-shadow:none;position:relative}body.menu-ouvert header.site .burger span::before,body.menu-ouvert header.site .burger span::after{content:'';position:absolute;left:0;top:0;width:20px;height:2px;background:#5C3A21;transform:rotate(45deg)}body.menu-ouvert header.site .burger span::after{transform:rotate(-45deg)}body.menu-ouvert{overflow:hidden}}

/* === Menu deroulant Accompagnements (2026-09-26) === */
header.site nav.nav li.nav-deroulant{position:relative}
header.site nav.nav li.nav-deroulant>a::after{content:" \25BE";font-size:.75em}
header.site nav.nav ul.sous-menu{display:none;position:absolute;top:100%;left:-1rem;min-width:15rem;flex-direction:column;gap:0;margin:0;padding:.5rem 0;list-style:none;background:#F7F3EC;border:1px solid rgba(92,58,33,.15);border-radius:4px;box-shadow:0 10px 28px rgba(92,58,33,.14);z-index:200}
header.site nav.nav li.nav-deroulant:hover>ul.sous-menu,header.site nav.nav li.nav-deroulant:focus-within>ul.sous-menu{display:flex}
header.site nav.nav ul.sous-menu a{display:block;padding:.6rem 1.1rem;border-bottom:none;font-size:.9rem;white-space:nowrap}
header.site nav.nav ul.sous-menu a:hover,header.site nav.nav ul.sous-menu a[aria-current]{background:rgba(222,101,35,.08);color:#DE6523}
body.menu-ouvert header.site nav.nav ul.sous-menu{display:flex;position:static;min-width:0;padding:.7rem 0 0 1.1rem;gap:.8rem;background:none;border:none;box-shadow:none}
body.menu-ouvert header.site nav.nav ul.sous-menu a{font-size:1.05rem;padding:0}
body.menu-ouvert header.site nav.nav li.nav-deroulant>a::after{content:""}
/* Portrait page Precila */
img.portrait-precila{display:block;width:100%;height:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 30%;border-radius:4px}
*:has(> img.portrait-precila){border:0 !important;background:none !important;padding:0 !important}

/* Correctif portrait Precila */
.hero-photo:has(img.portrait-precila),.portrait:has(img.portrait-precila),.photo:has(img.portrait-precila),figure:has(img.portrait-precila){padding:0!important;overflow:hidden!important;background:none!important;border:0!important;min-height:0!important;display:block!important}
img.portrait-precila{display:block!important;width:100%!important;height:100%!important;min-height:100%!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center 30%!important;border-radius:0!important;margin:0!important;padding:0!important}

/* Cadre portrait Precila */
.photo.r34.portrait-precila-cadre{display:block!important;padding:0!important;overflow:hidden!important;border:0!important;background:none!important;aspect-ratio:3/4!important}
.photo.r34.portrait-precila-cadre img.portrait-precila{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 30%!important}

/* Page contact et charte ethique */
.contact-intro{padding-block:clamp(2.4rem,5vw,5rem)}.contact-grille{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(2rem,7vw,6rem);align-items:start}.contact-grille h1{max-width:12ch}.contact-coordonnees{margin:2.25rem 0;padding:1.35rem 0;border-block:1px solid rgba(92,58,33,.2);line-height:1.65}.contact-coordonnees p{margin:.75rem 0}.contact-coordonnees a{color:inherit}.contact-promesse{font-family:var(--serif,Georgia,serif);font-size:1.2rem;font-style:italic;line-height:1.55}.contact-carte{background:#E7D8C2;padding:clamp(1.3rem,4vw,2.5rem);border-radius:5px}.contact-carte h2{margin-top:0}.contact-aide,.interets>p,.contact-legal{font-size:.86rem;line-height:1.55}.contact-carte label,.contact-carte legend{display:block;font-weight:600;margin-bottom:.38rem}.contact-carte input:not([type=checkbox]),.contact-carte textarea,.contact-carte select{box-sizing:border-box;width:100%;border:1px solid rgba(92,58,33,.38);background:#F7F3EC;border-radius:3px;padding:.75rem;font:inherit;color:#5C3A21}.contact-carte textarea{resize:vertical;min-height:9rem}.contact-carte input:focus,.contact-carte textarea:focus,.contact-carte select:focus{outline:3px solid rgba(222,101,35,.35);outline-offset:1px}.contact-champs-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.contact-champs-2 p,.contact-carte form>p{margin:1rem 0}.contact-carte small{font-weight:400}.interets{border:0;border-top:1px solid rgba(92,58,33,.22);border-bottom:1px solid rgba(92,58,33,.22);padding:1rem 0;margin:1.25rem 0}.interets legend{padding:0}.cases-services{display:grid;grid-template-columns:1fr 1fr;gap:.65rem 1rem}.cases-services label,.consentement label{font-size:.91rem;font-weight:400;line-height:1.45}.cases-services input,.consentement input{accent-color:#DE6523}.leurre{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.avis-envoi{padding:.9rem 1rem;background:rgba(247,243,236,.72);border-left:3px solid #DE6523;font-size:.9rem;line-height:1.5}.faq-contact{padding-block:clamp(2rem,5vw,4.5rem)}.faq-contact h2{margin-top:.25rem}.faq-contact-grille{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.faq-contact details{background:#fff;border:1px solid rgba(92,58,33,.16);padding:1.15rem 1.25rem;border-radius:4px}.faq-contact summary{cursor:pointer;font-weight:600}.faq-contact details p{line-height:1.6;margin:.9rem 0 0}.texte-ethique{max-width:52rem;padding-block:clamp(2.4rem,5vw,5rem)}.texte-ethique h2{margin-top:2.6rem}.texte-ethique li,.texte-ethique p{line-height:1.7}.texte-ethique li{margin:.65rem 0}.ethique-contact{margin-top:3rem;padding:1.5rem;background:#E7D8C2;border-radius:4px}.ethique-contact h2{margin-top:0}@media(max-width:800px){.contact-grille,.contact-champs-2,.faq-contact-grille,.cases-services{grid-template-columns:1fr}.contact-grille h1{max-width:none}}

/* Boutons Premier pas */
#premier-pas .rappel .btn.btn--plein {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0.72rem 1.15rem;
  border: 1px solid #df6b27 !important;
  border-radius: 4px;
  background: #df6b27 !important;
  color: #ffffff !important;
  font-family: "Jost", sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.2;
  text-decoration: none !important;
  box-shadow: none;
  transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

#premier-pas .rappel .btn.btn--plein:hover,
#premier-pas .rappel .btn.btn--plein:focus-visible {
  border-color: #b84c16 !important;
  background: #b84c16 !important;
  color: #ffffff !important;
  text-decoration: none !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(93, 47, 24, 0.22);
}

#premier-pas .rappel .btn.btn--plein:focus-visible {
  outline: 3px solid rgba(223, 107, 39, 0.35);
  outline-offset: 3px;
}

/* Boutons Premier pas final */
#premier-pas .rappel p:has(> a.btn.btn--plein) {
  margin-top: 1.35rem;
  margin-bottom: 0;
}

#premier-pas .rappel a.btn.btn--plein,
#premier-pas .rappel a.btn.btn--plein:link,
#premier-pas .rappel a.btn.btn--plein:visited {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.25rem !important;
  border: 1px solid #df6b27 !important;
  border-radius: 5px !important;
  background-color: #df6b27 !important;
  background-image: none !important;
  color: #ffffff !important;
  font-family: "Jost", sans-serif !important;
  font-size: 0.92rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  text-decoration-line: none !important;
  box-shadow: none !important;
}

#premier-pas .rappel a.btn.btn--plein::after {
  content: "→";
  display: inline-block;
  margin-left: 0.7rem;
  font-size: 1.1em;
  line-height: 1;
}

#premier-pas .rappel a.btn.btn--plein:hover,
#premier-pas .rappel a.btn.btn--plein:focus-visible {
  border-color: #b84c16 !important;
  background-color: #b84c16 !important;
  color: #ffffff !important;
  text-decoration: none !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(93, 47, 24, 0.22) !important;
}

#premier-pas .rappel a.btn.btn--plein:focus-visible {
  outline: 3px solid rgba(223, 107, 39, 0.38);
  outline-offset: 3px;
}

/* MENU-UNE-LIGNE : 7 onglets + bouton sur une seule ligne (ordinateur) */
@media (min-width: 1101px) {
  .nav > ul { flex-wrap: nowrap; column-gap: .9rem; }
  .nav > ul > li { margin-left: 0; margin-right: 0; }
  .nav > ul > li > a, .nav > ul > li > button { font-size: .92rem; letter-spacing: 0; white-space: nowrap; }
}

/* ==========================================================================
   INM MENU MOBILE V3 2026-10-01
   Panneau mobile independant. Le menu desktop n'est jamais affiche sur mobile.
   ========================================================================== */
html body header.site .inm-panneau[hidden]{display:none!important}
@media (min-width:1181px){
  html body header.site .inm-panneau{display:none!important}
}
@media (max-width:1180px){
  html body header.site nav.nav{display:none!important}
  html body header.site .barre{display:flex!important;flex-wrap:wrap!important;align-items:center!important;min-height:0!important;gap:.6rem .8rem!important;padding-top:.6rem!important;padding-bottom:.6rem!important}
  html body header.site .barre a.logo{flex:1 1 auto!important;min-width:0!important;margin-right:auto!important;font-size:1.4rem!important}
  html body header.site .barre a.logo img{width:auto!important;height:44px!important;max-width:100%!important;max-height:44px!important}
  html body header.site .barre .burger{display:grid!important;order:2;flex:0 0 44px!important;position:static!important}
  html body header.site .barre > .btn{order:3;flex:1 1 100%!important;justify-content:center!important;min-height:44px;padding:.65rem 1rem!important;font-size:.92rem!important;white-space:normal!important;text-align:center}
  html body header.site .inm-panneau{display:block;background:#F7F3EC;border-top:1px solid rgba(92,58,33,.15);max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain;padding:.3rem clamp(1.15rem,4vw,2rem) 1.2rem}
  html body header.site .inm-liste{list-style:none;margin:0 auto;padding:0;max-width:40rem;width:100%}
  html body header.site .inm-liste > li{border-bottom:1px solid rgba(92,58,33,.15)}
  html body header.site .inm-liste a,
  html body header.site .inm-liste summary{display:block;padding:.95rem .2rem;font-family:"Jost",Verdana,Arial,sans-serif;font-size:1.05rem;line-height:1.3;color:#5C3A21;text-decoration:none;cursor:pointer;white-space:normal;border:0}
  html body header.site .inm-liste summary{list-style:none;position:relative;padding-right:2.5rem}
  html body header.site .inm-liste summary::-webkit-details-marker{display:none}
  html body header.site .inm-liste summary::after{content:"+";position:absolute;right:.2rem;top:50%;transform:translateY(-50%);font-size:1.5rem;line-height:1;color:#DE6523}
  html body header.site .inm-liste details[open] > summary::after{content:"\2212"}
  html body header.site .inm-liste ul{list-style:none;margin:0 0 .8rem;padding:0 0 0 1rem;border-left:2px solid rgba(222,101,35,.55)}
  html body header.site .inm-liste ul a{padding:.6rem .2rem;font-size:.97rem}
  html body header.site .inm-liste a:hover,
  html body header.site .inm-liste a:focus-visible{color:#B94F15}
  html body header.site.inm-ouvert .burger span{background:transparent!important;box-shadow:none!important;position:relative}
  html body header.site.inm-ouvert .burger span::before,
  html body header.site.inm-ouvert .burger span::after{content:"";position:absolute;left:0;top:0;width:20px;height:2px;background:#5C3A21}
  html body header.site.inm-ouvert .burger span::before{transform:rotate(45deg)}
  html body header.site.inm-ouvert .burger span::after{transform:rotate(-45deg)}
}
.avis-envoi:empty{display:none}
