@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/playfairdisplay-nufkd-vyszvivyub_rj3ij__anpxdtnojek72xu.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/playfairdisplay-nufkd-vyszvivyub_rj3ij__anpxdtnogkk7.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/playfairdisplay-nufid-vyszvivyub_rj3ij__anpxdtlygfe_.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/playfairdisplay-nufid-vyszvivyub_rj3ij__anpxdtzyga.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Inter";font-style:italic;font-weight:100 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/inter-ucc53fwrk3iltcvneqg7ca725jhhknnqk6l3uumjng.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Inter";font-style:italic;font-weight:100 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/inter-ucc53fwrk3iltcvneqg7ca725jhhknnqk6l5uum.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/inter-ucc73fwrk3iltehus_nvmrmxcp50sjia25l7suc.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/inter-ucc73fwrk3iltehus_nvmrmxcp50sjia1zl7.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* hugcoon.com — LE THÈME PREMIUM (11 septembre 2026).
   Décliné de la maquette d'accueil validée par le client : encre, crème et or
   de la charte, une section ivoire pour respirer, Playfair Display pour les
   titres, Inter pour le texte, Cinzel pour le logotype. Les textes, titres et
   adresses des pages ne changent pas : seul l'habillage change.
   Les @font-face de Playfair Display et d'Inter (auto-hébergées) sont
   PRÉPENDUES par outils/construire-premium.js ; Cinzel est auto-hébergée
   aussi depuis l'audit v3 (12 sept 2026) — les deux fichiers viennent de
   Google Fonts (statiques/premium/fonts/), copiés sous /medias/premium/fonts/ :
   plus aucun domaine tiers pour afficher la page. */

@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 500 600; font-display: swap; src: url(/medias/premium/fonts/cinzel-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 500 600; font-display: swap; src: url(/medias/premium/fonts/cinzel-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  color-scheme: dark;
  --encre: #0e0d09;
  --fumee: #16150f;
  --brume: #1f1d15;
  --creme: #fffee7;
  --creme-2: #e9e6cf;
  --cendre: #a9a48f;
  --or: #d19e00;
  --or-pale: #eac96a;
  --bronze: #89580a;
  --filet: rgba(209, 158, 0, 0.35);
  --serif: "Playfair Display", "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans: "Inter", "Helvetica Neue", Arial, sans-serif;
  --largeur: 1240px;
  --texte: var(--creme-2);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--encre); color: var(--creme-2); font-family: var(--sans); font-weight: 300; font-size: 17px; line-height: 1.7; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; color: var(--creme); margin: 0; text-wrap: balance; letter-spacing: 0.005em; }
h1 { font-size: clamp(2.4rem, 5vw, 4.4rem); line-height: 1.05; }
h2 { font-size: clamp(1.8rem, 3.2vw, 2.8rem); line-height: 1.12; }
h3 { font-size: 1.45rem; line-height: 1.25; }
h4 { font-size: 1.1rem; }
p { margin: 0; }
em, .it { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--or-pale); }
strong, b { font-weight: 500; color: var(--creme); }
a { color: var(--or-pale); text-decoration: none; }
a:hover { color: var(--creme); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--or-pale); outline-offset: 4px; }
img, video, iframe { max-width: 100%; }
img { display: block; height: auto; }
figure { margin: 0; }
ul, ol { margin: 0; padding-left: 1.2em; }
.sr { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cadre { width: min(var(--largeur), calc(100% - 48px)); margin: 0 auto; }
.oeil { font-family: var(--sans); font-weight: 500; font-size: 0.72rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--or); display: inline-flex; align-items: center; gap: 14px; }
.oeil::before { content: ""; width: 34px; height: 1px; background: var(--or); }
.filet { height: 1px; background: linear-gradient(90deg, transparent, var(--filet) 20%, var(--filet) 80%, transparent); }

/* ——— Boutons ——— */
.bouton, .w-bouton a, .w-form button, .bouton-lien { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 0 30px; border: 1px solid var(--or); border-radius: 999px; background: transparent; color: var(--or-pale); font-family: var(--sans); font-weight: 500; font-size: 0.78rem; letter-spacing: 0.18em; text-transform: uppercase; text-align: center; line-height: 1.3; cursor: pointer; transition: background .35s ease, color .35s ease, transform .35s ease; }
.bouton:hover, .w-bouton a:hover, .w-form button:hover { background: var(--or); color: var(--encre); transform: translateY(-1px); }
.bouton.plein { background: linear-gradient(135deg, var(--or-pale), var(--or) 55%, var(--bronze)); color: var(--encre); border-color: transparent; }
.bouton.plein:hover { background: var(--or-pale); }
.bouton.discret { border-color: rgba(255,254,231,0.25); color: var(--creme); }
.bouton.discret:hover { border-color: var(--or); background: transparent; color: var(--or-pale); }
.bouton .ic { display: inline-flex; } .bouton .ic svg { width: 16px; height: 16px; fill: currentColor; }
.lien { display: inline-flex; align-items: center; gap: 10px; color: var(--or-pale); font-weight: 500; font-size: 0.8rem; letter-spacing: 0.16em; text-transform: uppercase; border-bottom: 1px solid var(--filet); padding-bottom: 6px; transition: gap .3s ease, border-color .3s ease; }
.lien:hover { gap: 18px; border-color: var(--or); }
.lien svg { width: 16px; height: 16px; }

/* ——— En-tête ——— */
.site-entete { position: sticky; top: 0; z-index: 20; background: linear-gradient(180deg, rgba(14,13,9,0.94), rgba(14,13,9,0.78)); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid rgba(209,158,0,0.14); }
.site-entete .cadre { display: flex; align-items: center; justify-content: space-between; min-height: 84px; gap: 24px; }
.logo { display: inline-flex; align-items: center; gap: 12px; line-height: 1; }
.sigle { height: 46px; width: auto; }
.marque-mot { font-family: "Cinzel", "Playfair Display", serif; font-weight: 600; font-size: 1.5rem; letter-spacing: 0.1em; text-transform: uppercase; background: linear-gradient(100deg, #f1d98a, #d19e00 55%, #b07f10); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding-top: 3px; }
.reseaux { display: flex; gap: 10px; }
.reseaux a { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: #fff; transition: transform .3s, box-shadow .3s; }
.reseaux a:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,0.35); color: #fff; }
.reseaux svg { width: 17px; height: 17px; fill: currentColor; }
.reseaux .fb { background: #1877f2; }
.reseaux .ig { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); }
.reseaux .tt { background: #000; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18); }
.reseaux .tt svg { filter: drop-shadow(1px 0 0 #25f4ee) drop-shadow(-1px 0 0 #fe2c55); }

/* Le menu : la structure du site propre (w-menu, hamburger, menu-principal,
   sous-menu, parent), habillée. site.js pilote le hamburger. */
.site-entete .w-menu { position: relative; display: flex; align-items: center; }
.site-entete .menu-principal > ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 26px; }
.site-entete .menu-principal li { position: relative; }
.site-entete .menu-principal a { display: inline-block; color: var(--creme-2); font-size: 0.86rem; font-weight: 400; letter-spacing: 0.03em; padding: 6px 0; position: relative; white-space: nowrap; cursor: pointer; }
.site-entete .menu-principal > ul > li > a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px; background: var(--or); transition: right .3s ease; }
.site-entete .menu-principal > ul > li:hover > a::after, .site-entete .menu-principal > ul > li > a.actif::after, .site-entete .menu-principal > ul > li > a[aria-current]::after { right: 0; }
.site-entete .menu-principal a.actif, .site-entete .menu-principal a[aria-current] { color: var(--creme); }
.site-entete .menu-principal .sous-menu { display: none; position: absolute; top: 100%; left: -18px; z-index: 30; list-style: none; margin: 0; padding: 10px 0; min-width: 260px; width: max-content; background: var(--fumee); border: 1px solid rgba(209,158,0,0.3); border-radius: 4px; box-shadow: 0 18px 40px rgba(0,0,0,0.5); }
.site-entete .menu-principal .sous-menu a { display: block; padding: 10px 20px; }
.site-entete .menu-principal .sous-menu a:hover { background: rgba(209,158,0,0.08); color: var(--or-pale); }
.site-entete .menu-principal li.parent:hover > .sous-menu, .site-entete .menu-principal li.parent:focus-within > .sous-menu { display: block; }
.site-entete .menu-principal li.parent > a::before { content: "▾"; position: absolute; right: -14px; top: 5px; font-size: 0.7rem; color: var(--or); }
.site-entete .menu-principal li.parent { margin-right: 10px; }
.w-menu .hamburger { display: none; width: 44px; height: 44px; border: 1px solid rgba(209,158,0,0.35); border-radius: 50%; background: none; cursor: pointer; padding: 11px; flex-direction: column; align-items: stretch; justify-content: center; gap: 5px; }
.w-menu .hamburger span { display: block; height: 1.5px; background: var(--or-pale); border-radius: 2px; transition: transform .25s, opacity .25s; }
.w-menu.ouvert .hamburger span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.w-menu.ouvert .hamburger span:nth-child(2) { opacity: 0; }
.w-menu.ouvert .hamburger span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
@media (max-width: 1440px) {
  .site-entete .menu-principal > ul { gap: 13px; }
  .site-entete .menu-principal a { font-size: 0.75rem; letter-spacing: 0.01em; }
  .site-entete .menu-principal li.parent { margin-right: 8px; }
  .site-entete .marque-mot { font-size: 1.25rem; } .site-entete .sigle { height: 40px; }
  .site-entete .reseaux { display: none; }
}
@media (max-width: 1200px) {
  .site-entete .reseaux { display: none; }
  .site-entete .w-menu .hamburger { display: flex; }
  .site-entete .menu-principal { display: none; position: fixed; left: 12px; right: 12px; z-index: 40; overflow-y: auto; -webkit-overflow-scrolling: touch; background: var(--fumee); border: 1px solid rgba(209,158,0,0.35); border-radius: 6px; box-shadow: 0 18px 50px rgba(0,0,0,0.6); padding: 10px 0; }
  .site-entete .w-menu.ouvert .menu-principal { display: block; }
  .site-entete .menu-principal > ul { flex-direction: column; align-items: stretch; gap: 0; }
  .site-entete .menu-principal a { display: block; padding: 13px 22px; white-space: normal; font-size: 0.95rem; }
  .site-entete .menu-principal > ul > li > a::after { display: none; }
  .site-entete .menu-principal li.parent > a::before { display: none; }
  .site-entete .menu-principal li.parent { margin-right: 0; }
  .site-entete .menu-principal .sous-menu { display: block; position: static; width: auto; min-width: 0; border: 0; border-left: 1px solid rgba(209,158,0,0.35); border-radius: 0; margin: 0 0 8px 22px; padding: 0; box-shadow: none; background: transparent; }
  .site-entete .menu-principal .sous-menu a { padding: 9px 18px; color: var(--cendre); }
}

/* ——— Le corps des pages ——— */
main { display: block; }
section.bloc { padding: 96px 0; }
section.bloc + section.bloc { padding-top: 0; }
section.bloc.tete-page { padding-top: 80px; }
.pile { display: grid; gap: 28px; }
.pile > .w-titre + .w-texte, .pile > .w-titre + .w-contenu { margin-top: -6px; }
.cols { display: grid; gap: 64px; align-items: center; }
.cols-2 { grid-template-columns: 1fr 1fr; }
.cols-3 { grid-template-columns: repeat(3, 1fr); align-items: start; }
.cols-4 { grid-template-columns: repeat(4, 1fr); align-items: start; }
.col { display: grid; gap: 26px; align-content: start; min-width: 0; }
.col > .cols { gap: 28px; }
.w-texte p + p, .w-contenu p + p { margin-top: 1em; }
.w-texte ul, .w-texte ol, .w-contenu ul, .w-contenu ol { margin: 0.8em 0; display: grid; gap: 0.35em; }
.w-texte li::marker, .w-contenu li::marker { color: var(--or); }
.w-texte img.emoji { display: inline; width: 1em; height: 1em; vertical-align: -0.1em; }

/* Titres de page : le premier bloc porte le H1 en grand, avec un filet. */
.tete-page h1 { font-size: clamp(2.4rem, 5.4vw, 4.6rem); }
.tete-page h1.long { font-size: clamp(1.9rem, 3.6vw, 3.2rem); line-height: 1.12; }
.tete-page h1.long + h2, .tete-page h1 + h2.w-titre { font-size: clamp(1.4rem, 2.2vw, 1.9rem); color: var(--creme-2); font-weight: 400; }
.tete-page .w-titre-page, .tete-page h1.w-titre { padding-bottom: 28px; border-bottom: 1px solid rgba(209,158,0,0.25); margin-bottom: 8px; }
.w-titre a { color: inherit; }
.italic-title { display: block; font-style: italic; font-weight: 400; font-size: 0.72em; color: var(--or-pale); margin-top: 0.3em; }
.w-texte h1, .w-texte h2, .w-texte h3, .w-texte h4 { margin: 1.5em 0 0.5em; } .w-texte h2:first-child, .w-texte h1:first-child { margin-top: 0; } .w-texte h2:empty { display: none; }
.w-texte h1 { font-size: clamp(2rem, 4vw, 3.2rem); padding-bottom: 20px; border-bottom: 1px solid rgba(209,158,0,0.25); }
h2.w-titre, h3.w-titre { position: relative; }

/* Images et vedettes : un cadre d'or fin, comme sur l'accueil. */
.w-image, .w-vedette { position: relative; }
.w-image img, .w-vedette img { width: 100%; border-radius: 2px; }
.col > .w-image::after, .col > .w-vedette::after, .tete-page .w-vedette::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(234,201,106,0.45); pointer-events: none; border-radius: 1px; }
.col > .w-image img, .col > .w-vedette img { aspect-ratio: 3 / 4; object-fit: cover; }
.w-vedette video { width: 100%; border-radius: 2px; display: block; }
.w-video video { width: 100%; border-radius: 2px; display: block; aspect-ratio: 9 / 16; object-fit: cover; }
.tete-page .w-vedette { max-width: 520px; }
.tete-page .w-vedette img { aspect-ratio: 3 / 4; object-fit: cover; }
.w-icone .icone { width: 54px; height: 54px; border: 1px solid var(--or); border-radius: 50%; display: grid; place-items: center; color: var(--or-pale); }
.w-icone svg { width: 24px; height: 24px; fill: currentColor; }

/* Les longs textes des pages Maine Coon et locales. */
.w-contenu { max-width: 74ch; font-size: 1.05rem; }
.w-contenu h2 { margin: 2.2em 0 0.7em; }
.w-contenu h3 { margin: 1.6em 0 0.5em; }
.w-contenu figure { margin: 2.2em auto; max-width: 560px; }
.w-contenu figure img { border-radius: 2px !important; border: 0 !important; }
.w-contenu figcaption { font-family: var(--serif); font-style: italic; color: var(--cendre); font-size: 0.95rem; margin-top: 10px; }
.w-contenu a { border-bottom: 1px solid var(--filet); }
.w-contenu table, .w-texte table { border-collapse: collapse; width: 100%; font-size: 0.92rem; margin: 1.2em 0; }
.w-contenu th, .w-contenu td, .w-texte th, .w-texte td { border: 1px solid rgba(209,158,0,0.22); padding: 10px 12px; vertical-align: top; text-align: left; }
.w-contenu th, .w-texte th { font-family: var(--serif); font-weight: 500; color: var(--or-pale); background: rgba(209,158,0,0.06); }
.w-contenu blockquote, .w-texte blockquote { margin: 1.5em 0; padding-left: 22px; border-left: 2px solid var(--or); font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--creme); }
.tableau-defilant { overflow-x: auto; }

/* Table des matières. */
.w-toc { max-width: 520px; padding: 24px 28px; border: 1px solid rgba(209,158,0,0.3); border-radius: 2px; background: rgba(209,158,0,0.04); }
.w-toc h4 { font-family: var(--sans); font-weight: 500; font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--or); margin-bottom: 14px; }
.w-toc ol { margin: 0; padding-left: 1.3em; display: grid; gap: 8px; }
.w-toc li::marker { color: var(--or); font-family: var(--serif); }
.w-toc a { color: var(--creme-2); font-size: 0.95rem; }
.w-toc a:hover { color: var(--or-pale); }

/* Listes d'informations (fiches) et pastilles (cartes). */
.w-liste { list-style: none; margin: 0; padding: 0; display: grid; }
.w-liste li { display: flex; gap: 12px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid rgba(209,158,0,0.18); font-size: 0.98rem; }
.w-liste li:first-child { border-top: 1px solid rgba(209,158,0,0.18); }
.w-liste .ic { display: inline-flex; color: var(--or); }
.w-liste .ic svg { width: 14px; height: 14px; fill: currentColor; }
.w-liste .txt { color: var(--creme-2); }
.w-infos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.w-infos li { border: 1px solid rgba(209,158,0,0.35); border-radius: 999px; padding: 5px 13px; font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--or-pale); }
.w-infos .ic { display: none; }

/* Grilles de cartes (chats, chatons, articles). */
.w-grille .grille { display: grid; gap: 28px; grid-template-columns: repeat(var(--colonnes, 3), 1fr); }
.w-grille.g-4 { --colonnes: 4; } .w-grille.g-3 { --colonnes: 3; } .w-grille.g-2 { --colonnes: 2; }
.carte { position: relative; min-width: 0; background: var(--fumee); border: 1px solid rgba(209,158,0,0.16); border-radius: 3px; overflow: hidden; transition: transform .4s ease, border-color .4s ease; }
.carte:hover { transform: translateY(-4px); border-color: rgba(209,158,0,0.45); }
.carte .corps { display: grid; gap: 14px; padding: 0 0 24px; }
.carte .w-vedette img { aspect-ratio: 3 / 4; object-fit: cover; border-radius: 0; transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.carte:hover .w-vedette img { transform: scale(1.04); }
.carte .w-vedette { overflow: hidden; }
.carte h2, .carte h3 { font-size: 1.25rem; padding: 0 22px; }
.carte h2 a, .carte h3 a { color: var(--creme); }
.carte .w-infos, .carte .w-texte { padding: 0 22px; }
.carte .w-bouton { padding: 4px 22px 0; }
.carte .w-bouton a { min-height: 44px; padding: 0 22px; font-size: 0.72rem; }
.w-bouton a .contenu { display: inline-flex; align-items: center; gap: 10px; }
.w-bouton a .ic svg { width: 14px; height: 14px; }
.carte .badge, .carte .w-texte.abs { position: absolute; z-index: 2; top: 16px; left: 16px; padding: 6px 12px; background: rgba(14,13,9,0.82); border: 1px solid var(--or); border-radius: 999px; color: var(--or-pale); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; }
.carte .badge p, .carte .w-texte.abs p { margin: 0; }

/* Accordéons (FAQ). */
.w-faq { display: grid; gap: 10px; max-width: 900px; }
.w-faq details { border: 1px solid rgba(209,158,0,0.25); border-radius: 2px; background: rgba(209,158,0,0.03); }
.w-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; }
.w-faq summary::-webkit-details-marker { display: none; }
.w-faq .question { font-size: 1.12rem; font-weight: 500; color: var(--creme); }
.w-faq .ico { flex: none; width: 30px; height: 30px; border: 1px solid var(--or); border-radius: 50%; display: grid; place-items: center; color: var(--or-pale); }
.w-faq .ico svg { width: 12px; height: 12px; fill: currentColor; }
.w-faq .ico .e-opened { display: none; } .w-faq .ico .e-closed { display: block; }
.w-faq details[open] .ico .e-opened { display: block; } .w-faq details[open] .ico .e-closed { display: none; }
.w-faq details > div { padding: 0 24px 22px; }
.w-faq details > div p { max-width: 70ch; color: var(--creme-2); }

/* Formulaires : mêmes champs, servis par notre serveur. */
.w-form .champs { display: grid; gap: 14px; }
.w-form .groupe { display: grid; gap: 6px; }
.w-form .champ { width: 100%; padding: 15px 18px; background: rgba(255,254,231,0.04); border: 1px solid rgba(209,158,0,0.3); border-radius: 2px; color: var(--creme); font-family: var(--sans); font-size: 1rem; font-weight: 300; }
.w-form .champ::placeholder { color: var(--cendre); }
.w-form .champ:focus { outline: none; border-color: var(--or); background: rgba(255,254,231,0.06); }
.w-form textarea.champ { min-height: 140px; resize: vertical; }
.w-form .groupe-envoi { padding-top: 6px; }
.w-form button { width: 100%; }
.w-form .reponse { margin-top: 12px; font-size: 0.95rem; }
.w-form .reponse:empty { display: none; }
.w-form .reponse.ok { color: #7fd48c; } .w-form .reponse.erreur { color: #e28a7a; }

/* Carte Google du pied, avis, carrousel. */
.w-carte-google iframe { display: block; width: 100%; height: 220px; border: 0; border-radius: 3px; filter: grayscale(0.3) contrast(1.05); }
.w-carrousel .piste { display: grid; grid-auto-flow: column; grid-auto-columns: 300px; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 20px; }
.w-carrousel figure { scroll-snap-align: start; } .w-carrousel img { aspect-ratio: 3 / 4; object-fit: cover; border-radius: 2px; }
dialog.visionneuse { border: 0; background: rgba(14,13,9,0.96); padding: 0; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; display: grid; place-items: center; }
dialog.visionneuse[open] { display: grid; }
dialog.visionneuse img { max-width: 92vw; max-height: 92vh; object-fit: contain; }
dialog.visionneuse .visionneuse-fermer { position: fixed; top: 20px; right: 24px; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--or); background: none; color: var(--creme); font-size: 1.6rem; cursor: pointer; }

/* Fiches de chats : histoire et pedigree. */
.fiche-histoire { max-width: 74ch !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 14px; }
.fiche-histoire h2 { margin-top: 1.4em; font-size: 1.6rem; }
.fiche-histoire h2:first-child { margin-top: 0; }
.pedigree-table { font-size: 0.82rem; }
.pedigree-table td strong { color: var(--or-pale); font-weight: 500; }

/* Pages en HTML nu (mentions, politique, archives). */
.site-main .page-content, .site-main .entry-content { max-width: 74ch; margin: 0 auto; padding: 80px 24px; display: grid; gap: 18px; }
.site-main h1 { padding-bottom: 24px; border-bottom: 1px solid rgba(209,158,0,0.25); }
.site-main h2 { margin-top: 1.4em; font-size: 1.6rem; }
.site-main .entry-title { font-size: 2rem; }

/* La section ivoire : les FAQ, pour respirer entre deux blocs sombres. */
.ivoire { background: #f3efe2; color: #2a271c; }
.ivoire h1, .ivoire h2, .ivoire h3, .ivoire h4, .ivoire strong, .ivoire b { color: #1a180f; }
.ivoire p, .ivoire li { color: #3f3b2f; }
.ivoire a { color: var(--bronze); }
.ivoire .oeil { color: var(--bronze); } .ivoire .oeil::before { background: var(--bronze); }
.ivoire .it, .ivoire em { color: var(--bronze); }
.ivoire .w-faq details { border-color: rgba(137,88,10,0.3); background: rgba(255,255,255,0.45); }
.ivoire .w-faq .question { color: #1a180f; }
.ivoire .w-faq .ico { border-color: var(--bronze); color: var(--bronze); }
.ivoire .w-faq details > div p { color: #3f3b2f; }
.ivoire .bouton, .ivoire .w-bouton a { border-color: var(--bronze); color: var(--bronze); }
.ivoire .bouton:hover, .ivoire .w-bouton a:hover { background: var(--bronze); color: #fff; }
.ivoire .w-infos li { border-color: rgba(137,88,10,0.4); color: var(--bronze); }
.ivoire .w-liste li { border-color: rgba(137,88,10,0.25); } .ivoire .w-liste .txt { color: #3f3b2f; }
.ivoire .portrait::after, .ivoire .col > .w-image::after { border-color: rgba(137,88,10,0.45); }
section.bloc.ivoire { padding: 96px 0; }
section.bloc.ivoire + section.bloc { padding-top: 96px; }

/* ——— L'accueil (maquette validée) ——— */
.heros { position: relative; padding: 72px 0 0; background: radial-gradient(70% 60% at 50% 0%, rgba(209,158,0,0.10), transparent 70%); }
.heros .cadre { display: grid; gap: 64px; }
.heros .tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.heros .texte { display: grid; gap: 28px; max-width: 900px; justify-items: start; }
.heros h1 { font-size: clamp(2.8rem, 6.6vw, 6rem); line-height: 1.02; }
.heros p { font-size: 1.15rem; color: var(--creme-2); max-width: 58ch; }
.heros .actions { display: flex; flex-wrap: wrap; gap: 16px; padding-top: 6px; }
.heros .tableau { position: relative; }
.heros .tableau img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; object-position: 50% 45%; border-radius: 3px; }
.heros .tableau::before { content: ""; position: absolute; inset: 16px; border: 1px solid rgba(234,201,106,0.45); pointer-events: none; z-index: 1; }
.heros .pieds { display: flex; flex-wrap: wrap; gap: 20px 40px; padding: 28px 0 0; border-top: 1px solid rgba(255,254,231,0.14); margin-top: 28px; color: var(--cendre); font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase; }
.heros .pieds > span { display: inline-flex; align-items: center; gap: 12px; }
.heros .pieds > span::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--or); }
.rappel-google { flex: none; margin-bottom: 4px; display: inline-flex; align-items: center; gap: 10px; background: #fff; color: #202124; border-radius: 999px; padding: 7px 16px 7px 10px; letter-spacing: 0; text-transform: none; }
.rappel-google:hover { color: #202124; }
.rappel-google .g { width: 22px; height: 22px; } .rappel-google .et { color: #fbbc05; font-size: 0.95rem; letter-spacing: 0.06em; } .rappel-google .n { font-weight: 500; font-size: 0.95rem; font-variant-numeric: tabular-nums; }
.deux { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.duo { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 80px; align-items: center; }
.colonne { display: grid; gap: 26px; }
.colonne p + p { margin-top: -6px; }
.colonne p { max-width: 62ch; }
.portrait { position: relative; }
.portrait img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 2px; }
.portrait::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(234,201,106,0.45); pointer-events: none; border-radius: 1px; }
.portrait .legende { position: absolute; left: 30px; bottom: 30px; right: 30px; color: var(--creme); font-family: var(--serif); font-style: italic; font-size: 1.05rem; text-shadow: 0 2px 18px rgba(0,0,0,0.6); }
.portrait.paysage img { aspect-ratio: 4 / 3; }
.decale { transform: translateY(40px); }
.diptyque { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.diptyque .portrait:last-child { transform: translateY(40px); }
.manifeste { padding: 120px 0 90px; text-align: center; background: radial-gradient(60% 80% at 50% 0%, rgba(209,158,0,0.10), transparent 70%); }
.manifeste blockquote { margin: 0 auto; max-width: 18ch; font-family: var(--serif); font-size: clamp(2.2rem, 5vw, 4.4rem); line-height: 1.12; color: var(--creme); font-weight: 400; }
.manifeste .oeil { justify-content: center; margin-bottom: 28px; }
.manifeste .oeil::after { content: ""; width: 34px; height: 1px; background: var(--or); }
.avis-tete { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 56px; }
.note { display: flex; align-items: center; gap: 18px; padding: 18px 24px; background: #fff; border-radius: 12px; color: #202124; } .note > div { display: grid; gap: 2px; } .note .g { width: 44px; height: 44px; }
.note .chiffre { font-family: var(--sans); font-weight: 500; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: #202124; }
.note .etoiles { color: #fbbc05; letter-spacing: 0.12em; font-size: 1.15rem; line-height: 1.1; }
.note .source { color: #5f6368; font-size: 0.82rem; } .note .source strong { color: #202124; font-weight: 500; }
.avis { columns: 3; column-gap: 28px; }
.avis article { break-inside: avoid; margin-bottom: 28px; padding: 34px 32px 30px; background: var(--fumee); border: 1px solid rgba(209,158,0,0.14); border-radius: 2px; position: relative; }
.avis article::before { content: "\201C"; position: absolute; top: 10px; left: 24px; font-family: var(--serif); font-size: 4.4rem; line-height: 1; color: rgba(209,158,0,0.35); }
.avis .qui { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; padding-top: 10px; }
.avis .ini { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--or); color: var(--or-pale); display: grid; place-items: center; font-family: var(--serif); font-size: 1.15rem; }
.avis .nom { color: var(--creme); font-weight: 500; font-size: 0.95rem; }
.avis .date { color: var(--cendre); font-size: 0.78rem; letter-spacing: 0.06em; } .avis .qui .g { width: 18px; height: 18px; margin-left: auto; }
.avis p { font-size: 0.97rem; line-height: 1.65; color: var(--creme-2); max-width: none; }
.galerie { display: grid; grid-auto-flow: column; grid-auto-columns: 300px; gap: 22px; overflow-x: auto; padding: 8px 24px 30px; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--bronze) transparent; width: 100vw; margin-left: calc(50% - 50vw); padding-left: max(24px, calc((100vw - var(--largeur)) / 2)); }
.galerie figure { margin: 0; scroll-snap-align: start; position: relative; overflow: hidden; border-radius: 2px; }
.galerie img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.galerie figure:hover img { transform: scale(1.05); }
.galerie figure:nth-child(even) { margin-top: 44px; }
.robes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(209,158,0,0.18); border: 1px solid rgba(209,158,0,0.18); margin-top: 60px; }
.robe { background: var(--encre); padding: 46px 40px 42px; display: grid; gap: 18px; transition: background .4s ease; }
.robe:hover { background: var(--fumee); }
.robe .teinte { height: 6px; width: 72px; border-radius: 3px; }
.robe p { color: var(--cendre); font-size: 1rem; }
.robe h3 em { font-size: 0.6em; vertical-align: super; }
.ivoire .robes { background: rgba(137,88,10,0.22); border-color: rgba(137,88,10,0.22); }
.ivoire .robe { background: #f3efe2; } .ivoire .robe:hover { background: #ebe6d6; }
.ivoire .robe p { color: #6b6553; }
.ivoire .lien { color: var(--bronze); border-color: rgba(137,88,10,0.4); }
.tests { display: grid; gap: 16px; padding: 26px 0 6px; border-top: 1px solid rgba(209,158,0,0.25); }
.tests ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.tests li { display: grid; gap: 2px; padding: 14px 16px; border: 1px solid rgba(209,158,0,0.3); border-radius: 2px; background: rgba(209,158,0,0.05); }
.tests b { font-family: var(--serif); font-weight: 500; font-size: 1.15rem; color: var(--or-pale); letter-spacing: 0.02em; }
.tests small { font-size: 0.74rem; color: var(--cendre); letter-spacing: 0.04em; }
.videos { padding-top: 20px; }
.films { display: grid; grid-template-columns: repeat(2, minmax(0, 420px)); gap: 28px; justify-content: center; }
.films figure { margin: 0; position: relative; }
.films video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 3px; background: var(--fumee); display: block; }
.films figure::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(234,201,106,0.45); pointer-events: none; }
.films figcaption { position: absolute; left: 30px; bottom: 30px; right: 30px; color: var(--creme); font-family: var(--serif); font-style: italic; font-size: 1.1rem; text-shadow: 0 2px 18px rgba(0,0,0,0.7); }

/* ——— Le pied : la bande contact puis les colonnes ——— */
.contact { position: relative; overflow: hidden; }
.contact .fond { position: absolute; inset: 0; z-index: 0; }
.contact .fond img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; opacity: 0.32; }
.contact .fond::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--encre) 0%, rgba(14,13,9,0.85) 45%, rgba(14,13,9,0.45) 100%); }
.contact .cadre { position: relative; z-index: 1; display: grid; gap: 28px; padding: 130px 0; max-width: 760px; margin-left: max(24px, calc((100% - var(--largeur)) / 2)); }
.contact p { font-size: 1.12rem; max-width: 58ch; }
.contact .actions { display: flex; gap: 16px; flex-wrap: wrap; }
.pied { border-top: 1px solid rgba(209,158,0,0.18); padding: 80px 0 40px; background: var(--fumee); }
.pied-grille { display: grid; grid-template-columns: 1.4fr 1fr 0.8fr 1.1fr; gap: 48px; }
.pied-grille h3 { font-size: 0.75rem; font-family: var(--sans); font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--or); margin-bottom: 20px; }
.pied-grille ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pied-grille li a { color: var(--creme-2); font-size: 0.92rem; }
.pied-grille li a:hover { color: var(--or-pale); }
.pied-grille .w-menu .hamburger { display: none; }
.pied-grille .menu-principal ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pied-grille .menu-principal a { color: var(--creme-2); font-size: 0.92rem; }
.pied-grille .menu-principal a:hover { color: var(--or-pale); }
.marque { display: grid; gap: 18px; justify-items: start; }
.logo.empile { display: grid; justify-items: start; gap: 8px; } .logo.empile .sigle { height: 64px; } .logo.empile .marque-mot { font-size: 1.7rem; }
.marque p { color: var(--cendre); font-size: 0.95rem; max-width: 34ch; }
.coordonnees { display: grid; gap: 10px; font-size: 0.92rem; color: var(--creme-2); margin-bottom: 18px; }
.coordonnees a { color: var(--creme-2); } .coordonnees a:hover { color: var(--or-pale); }
.bas { margin-top: 60px; padding-top: 24px; border-top: 1px solid rgba(255,254,231,0.1); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; color: var(--cendre); font-size: 0.8rem; }

/* ——— La bulle WhatsApp (structure du site propre, mesures d'origine) ——— */
.w-whatsapp { position: fixed; right: 25px; bottom: 25px; z-index: 9000; display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; gap: 12px; font-family: var(--sans); }
.w-whatsapp .wa-bouton { position: relative; width: 55px; height: 55px; padding: 0; border-radius: 50%; border: 0; background: #25D366; color: #fff; fill: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 10px 30px rgba(0,0,0,.45); transition: transform .3s; }
.w-whatsapp .wa-bouton:hover, .w-whatsapp .wa-bouton:focus { transform: scale(1.08); }
.w-whatsapp .wa-bouton svg { width: 32px; height: 32px; }
.w-whatsapp .wa-bouton::after { content: ""; position: absolute; top: 0; right: 0; width: 14px; height: 14px; border-radius: 50%; background: #e0362c; border: 2px solid var(--encre); }
.w-whatsapp .wa-fenetre { width: min(360px, 90vw); background: #fff; color: #1c2448; border-radius: 20px; overflow: hidden; }
.w-whatsapp .wa-tete { display: flex; align-items: center; gap: 20px; padding: 20px; background: #008069; color: #fff; position: relative; }
.w-whatsapp .wa-tete img { width: 75px; height: 75px; border-radius: 50%; object-fit: cover; }
.w-whatsapp .wa-titre { margin: 0; font-size: 24px; font-weight: 700; line-height: 1.5; color: #fff; }
.w-whatsapp .wa-fermer { position: absolute; top: 20px; right: 20px; background: transparent; border: 0; color: #fff; font-size: 22px; line-height: 1; cursor: pointer; width: 24px; height: 24px; padding: 0; }
.w-whatsapp .wa-bulle { padding: 25px 20px; padding-inline-start: 40px; background: #fff; }
.w-whatsapp .wa-corps { background: #D9FDD3; border-radius: 15px; padding: 20px; color: #1c2448; position: relative; }
.w-whatsapp .wa-corps::after { content: ""; position: absolute; top: 0; left: -20px; width: 0; height: 0; border-style: solid; border-width: 0 40px 40px 0; border-color: transparent #D9FDD3 transparent transparent; }
.w-whatsapp .wa-nom { margin: 0 0 8px; font-size: 20px; font-weight: 600; line-height: 25px; }
.w-whatsapp .wa-message { margin: 0 0 8px; font-size: 20px; line-height: 25px; }
.w-whatsapp .wa-contact { padding: 0 20px 20px; background: #fff; }
.w-whatsapp .wa-contact p { margin: 0 0 15px; font-size: 20px; font-weight: 400; color: #1c2448; line-height: 1.25; }
.w-whatsapp .wa-liens { display: flex; gap: 12px; }
.w-whatsapp .wa-liens a { display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 50px; background: #25D366; color: #fff; fill: #fff; transition: transform .3s; }
.w-whatsapp .wa-liens a:hover, .w-whatsapp .wa-liens a:focus { transform: scale(1.1); color: #fff; }
.w-whatsapp .wa-liens svg { width: 28px; height: 28px; }

/* ——— Apparitions ——— */
.rev { opacity: 1; transform: none; transition: opacity .9s ease, transform .9s ease; }
.js .rev { opacity: 0; transform: translateY(22px); }
.js .rev.vu { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .rev { opacity: 1; transform: none; transition: none; } }

/* ——— Écrans étroits ——— */
@media (max-width: 980px) {
  .cols-2, .cols-3, .cols-4, .deux, .duo { grid-template-columns: 1fr; gap: 44px; }
  .col > .w-image img, .col > .w-vedette img { aspect-ratio: 4 / 5; }
  .w-grille .grille { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .decale { transform: none; }
  .diptyque .portrait:last-child { transform: none; }
  .avis { columns: 1; }
  .robes { grid-template-columns: 1fr; }
  .pied-grille { grid-template-columns: 1fr 1fr; }
  section.bloc { padding: 72px 0; }
  section.bloc.ivoire, section.bloc.ivoire + section.bloc { padding: 72px 0; }
  .heros { padding-top: 48px; }
  .heros .cadre { gap: 40px; }
  .heros .tete { flex-direction: column-reverse; align-items: flex-start; }
  /* Sur téléphone la photo de la portée s'affiche ENTIÈRE (client, 12 sept :
     « on ne voit qu'une partie, floue ») — le recadrage portrait 4/5 ne
     montrait que le centre de la photo 2/1, agrandi. */
  .heros .tableau img { aspect-ratio: 2 / 1; object-position: 50% 50%; }
  .galerie { grid-auto-columns: 240px; }
  .films { grid-template-columns: 1fr 1fr; gap: 14px; } .films figcaption { left: 22px; bottom: 22px; font-size: 0.95rem; }
  .contact .cadre { padding: 90px 0; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .w-grille .grille { grid-template-columns: 1fr; }
  .pied-grille { grid-template-columns: 1fr; }
  .heros .actions .bouton { width: 100%; }
  .robe { padding: 34px 26px; }
  .tests ul { grid-template-columns: 1fr 1fr; }
  .w-faq summary { padding: 16px 18px; } .w-faq details > div { padding: 0 18px 18px; }
  .carte h2, .carte h3, .carte .w-infos, .carte .w-texte, .carte .w-bouton { padding-left: 16px; padding-right: 16px; }
}

/* 404 */
.p-404 main .bloc { padding: 120px 0; text-align: center; font-family: var(--serif); font-size: 1.4rem; color: var(--creme); }
