/* La Festibox — les sections composées depuis la console
   ---------------------------------------------------------------
   Ces règles reprennent la charte des huit pages : mêmes couleurs,
   mêmes tailles, mêmes espacements. Un bloc créé dans la console
   doit être indiscernable d'un bloc écrit à la main. */

.vit-section{padding:clamp(3.5rem,7vw,6rem) 0}
.sect-ivoire{background:var(--ivoire)}
.sect-blush{background:var(--blush-pale)}
.sect-rose{background:var(--rose);color:#F7EFE1}
.sect-nuit{background:var(--nuit);color:#CDBEB4}

/* Sur fond coloré, le titre passe au crème et son italique au
   sable : c'est le piège que signale le cahier des charges, les
   italiques étant en rose par défaut. */
.sect-rose .titre,.sect-nuit .titre{color:#F7EFE1}
.sect-rose .titre i,.sect-rose .titre em,
.sect-nuit .titre i,.sect-nuit .titre em{color:#F6DFB8}
.sect-rose .intro,.sect-nuit .intro{color:rgba(247,239,225,.86)}
.sect-rose .etiquette-titre,.sect-nuit .etiquette-titre{color:#F6DFB8}
.sect-rose .b-vide,.sect-nuit .b-vide{border-color:rgba(247,239,225,.55);color:#F7EFE1}
.sect-rose .b-rose{background:#F7EFE1;color:var(--rose-fonce)}

/* Texte et image côte à côte */
.vit-duo{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.vit-duo--gauche .vit-duo-txt{order:2}
.vit-duo--gauche .vit-duo-img{order:1}
.vit-duo-img img{width:100%;height:auto;display:block;border-radius:12px}

/* Les cartes en grille */
.vit-grille{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:clamp(1rem,2.2vw,1.8rem);margin-top:clamp(1.6rem,3vw,2.4rem);
}
.vit-carte{
  display:block;text-decoration:none;color:inherit;
  background:var(--blush-pale);border:1px solid var(--trait,#EADFD9);
  border-radius:12px;overflow:hidden;
}
.sect-blush .vit-carte{background:#fff}
a.vit-carte:hover{border-color:var(--rose)}
.vit-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.vit-corps{padding:1rem 1.15rem}
.vit-corps h3{font-family:var(--serif,'Instrument Serif',Georgia,serif);font-weight:400;font-size:1.28rem;margin:0 0 .4rem;line-height:1.2}
.vit-corps p{margin:0;color:var(--gris);font-size:.95rem;line-height:1.6}
/* La date sous la description, en doré : règle éditoriale du cahier. */
.vit-date{margin-top:.6rem !important;color:var(--or) !important;font-size:.85rem !important;letter-spacing:.04em}

@media (max-width:920px){
  .vit-duo{grid-template-columns:1fr;gap:1.8rem}
  .vit-duo--gauche .vit-duo-txt,.vit-duo--gauche .vit-duo-img{order:initial}
}

/* La recherche du catalogue, en tête de la page Location
   ---------------------------------------------------------------
   Elle passe avant les rubriques : avec plus de mille pièces,
   chercher est le geste le plus fréquent, et descendre un arbre le
   plus rare. */
/* Le titre à gauche, la recherche à droite. Sous 920 px la
   recherche passe dessous : à deux colonnes, le champ deviendrait
   trop étroit pour qu'on y lise ce qu'on tape. */
.loc-tete{
  display:grid;grid-template-columns:1.15fr .85fr;
  gap:clamp(1.5rem,4vw,3.5rem);align-items:center;
}
.loc-tete-txt > :last-child{margin-bottom:0}
@media (max-width:920px){
  .loc-tete{grid-template-columns:1fr;gap:1.6rem;align-items:start}
}

.loc-chercher-f{display:flex;gap:.6rem;flex-wrap:wrap}
.loc-chercher-f input{
  flex:1;min-width:14rem;
  font:inherit;font-size:1rem;
  padding:.72rem 1.1rem;
  border:1px solid var(--trait,#EADFD9);border-radius:999px;
  background:#fff;color:var(--encre);
}
.loc-chercher-f input:focus{
  outline:none;border-color:var(--rose);
  box-shadow:0 0 0 3px rgba(154,90,74,.14);
}
.loc-chercher-f button{flex-shrink:0}

/* Les portes d'entrée par ambiance. */
.loc-portes{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;
  margin:1rem 0 0;font-size:.92rem;
}
.loc-portes span{color:var(--gris)}
.loc-portes a{
  color:var(--rose);text-decoration:none;
  border-bottom:1px solid var(--or-clair);padding-bottom:1px;
}
.loc-portes a:hover{color:var(--rose-fonce);border-bottom-color:var(--rose)}

/* Le libellé du champ, lu par les lecteurs d'écran seulement. */
.sr-only{
  position:absolute;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ── Avis Google, en carrousel ─────────────────────────────── */
.avis-google.miroir{background:var(--blush-pale);border-top:1px solid var(--trait);border-bottom:1px solid var(--trait)}
.avis-google .tete{align-items:flex-end}
.ag-oeil{font-size:12px;letter-spacing:.18em;color:var(--or);margin:0 0 .7rem}
.ag-resume{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin:1rem 0 0;color:var(--gris);font-size:15.5px}
.ag-resume strong{color:var(--encre);font-weight:500}
.ag-etoiles{color:var(--or);letter-spacing:.12em;font-size:17px;line-height:1}
.ag-eteintes{color:var(--trait)}
.ag-nav{display:flex;gap:.5rem}
.ag-fleche{width:46px;height:46px;border-radius:50%;border:1px solid var(--trait);background:#fff;color:var(--encre);font-size:18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.ag-fleche:hover{border-color:var(--rose);color:var(--rose)}
.ag-seule-page .ag-nav,.ag-seule-page .ag-points{display:none}

.ag-piste{
  display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2 * 1.25rem) / 3);
  column-gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scrollbar-width:none;padding:2px 2px 4px;margin:0 -2px;overscroll-behavior-x:contain;
}
.ag-piste::-webkit-scrollbar{display:none}
.ag-piste:focus-visible{outline:2px solid var(--or);outline-offset:4px}
@media (max-width:980px){ .ag-piste{grid-auto-columns:calc((100% - 1.25rem) / 2)} }
@media (max-width:640px){ .ag-piste{grid-auto-columns:88%} .ag-nav{display:none} }

.ag-carte{
  position:relative;scroll-snap-align:start;margin:0;background:#fff;border:1px solid var(--trait);
  padding:1.7rem 1.6rem 1.4rem;display:flex;flex-direction:column;gap:1rem;min-width:0;
}
.ag-carte::before{content:"\201C";position:absolute;top:.6rem;right:1.2rem;font-family:var(--serif);font-size:4.2rem;line-height:1;color:var(--blush)}
.ag-texte{margin:0;font-family:var(--serif);font-style:italic;font-size:1.13rem;line-height:1.5;color:var(--encre);
  display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.ag-texte p{margin:0}
.ag-carte.est-ouverte .ag-texte{display:block;-webkit-line-clamp:unset}
.ag-plus{align-self:flex-start;background:none;border:0;padding:0;font:inherit;font-size:14px;color:var(--rose);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ag-auteur{display:flex;align-items:center;gap:.75rem;margin-top:auto;padding-top:.4rem;font-size:15px}
.ag-auteur img,.ag-initiale{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}
.ag-initiale{display:inline-flex;align-items:center;justify-content:center;background:var(--rose);color:#FDF6F3;font-weight:500}
.ag-auteur a{color:var(--encre);text-decoration:none}
.ag-auteur a:hover{color:var(--rose)}
.ag-auteur small{display:block;font-size:12px;letter-spacing:.06em;color:var(--gris)}

.ag-pied{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.8rem}
.ag-points{display:flex;gap:.45rem}
.ag-point{width:9px;height:9px;border-radius:50%;border:0;padding:0;background:var(--trait);cursor:pointer}
.ag-point.est-actif{background:var(--rose)}
@media (max-width:640px){ .ag-pied{justify-content:center} }

/* ── Carrousel de l'extension d'avis (Trustindex), aux couleurs du site ── */
.ag-extension{--ag-fond:#fff}
.ag-extension .ti-widget{font-family:var(--sans)!important}
.ag-extension .ti-widget .ti-review-item>.ti-inner{border-radius:0!important}
.ag-extension .ti-widget .ti-review-item>.ti-inner{
  background:var(--ag-fond)!important;border:1px solid var(--trait)!important;box-shadow:none!important;
}
.ag-extension .ti-widget .ti-review-item>.ti-inner:hover{border-color:var(--rose)!important}
.ag-extension .ti-widget .ti-name{font-family:var(--sans)!important;color:var(--encre)!important;font-weight:500!important}
.ag-extension .ti-widget .ti-date{color:var(--gris)!important}
/* Le texte garde la taille et l'interligne de Trustindex : il calcule
   la hauteur des cartes avec, et les modifier coupait la dernière ligne. */
.ag-extension .ti-widget .ti-review-text-container,
.ag-extension .ti-widget .ti-review-content{color:var(--encre)!important}
.ag-extension .ti-widget .ti-read-more,.ag-extension .ti-widget .ti-read-more span{color:var(--rose)!important;font-weight:500}
.ag-extension .ti-widget .ti-stars .ti-star{filter:sepia(1) saturate(2.2) hue-rotate(-8deg) brightness(.9)}
.ag-extension .ti-widget .ti-controls .ti-next,
.ag-extension .ti-widget .ti-controls .ti-prev{border-radius:50%!important;border:1px solid var(--trait)!important;background:#fff!important}

/* ── Les pages légales (template-legale.php) ─────────────────────
   Le grand titre vient de .page-tete ; ici, le texte : une colonne
   lisible, et le début en gras de chaque paragraphe en intertitre. */
.legale-texte{max-width:72ch;font-size:clamp(1rem,1.15vw,1.06rem);line-height:1.7;color:var(--encre,#2B211D)}
.legale-texte p{margin:0 0 1em}
.legale-texte .legale-intertitre,.festibox-legale .legale-intertitre{display:block;font-family:var(--serif,'Instrument Serif',Georgia,serif);font-weight:400;font-size:clamp(1.2rem,1.8vw,1.45rem);line-height:1.25;color:var(--rose,#9A5A4A);margin:1.8em 0 .35em}
.legale-texte p:first-child .legale-intertitre,.festibox-legale p:first-child .legale-intertitre{margin-top:0}
/* Le même texte dans la case « J'ai lu et j'accepte les conditions » du paiement. */
.festibox-legale p{margin:0 0 1em}
.legale-texte a{color:var(--rose,#9A5A4A);text-decoration:underline;text-underline-offset:3px}

/* ── Les pages de WooCommerce dans le gabarit simple ─────────────
   Le paiement d'une commande (le lien envoyé au client), la commande
   reçue, le compte client : les couleurs de la maison à la place du
   violet de WooCommerce. */
.commerce-texte{max-width:920px;color:var(--encre,#2B211D)}
.commerce-texte a{color:var(--rose,#9A5A4A)}
/* WooCommerce met toutes les images de ses pages à height:auto : le
   logo du bas de page reprenait sa taille d'origine. */
.woocommerce-page .pied-logo{height:56px;max-width:none}
.festibox-page-commerce .woocommerce table.shop_table{border-radius:14px;background:#fff}
body.festibox-page-commerce #payment{background:var(--blush-pale,#FAEFEB);border:1px solid var(--trait,rgba(43,33,29,.14));border-radius:16px}
body.festibox-page-commerce #payment ul.payment_methods{border-bottom-color:var(--trait,rgba(43,33,29,.14))}
body.festibox-page-commerce #payment div.payment_box{background:#fff;color:var(--gris,#6E6058);border-radius:10px}
body.festibox-page-commerce #payment div.payment_box::before{border-bottom-color:#fff}
.festibox-page-commerce .woocommerce button.button,.festibox-page-commerce .woocommerce a.button,.festibox-page-commerce .woocommerce input.button{border-radius:999px;font-family:var(--sans);font-weight:500;padding:.85em 1.7em;background:var(--rose,#9A5A4A);color:#FDF6F3}
.festibox-page-commerce .woocommerce button.button:hover,.festibox-page-commerce .woocommerce a.button:hover,.festibox-page-commerce .woocommerce input.button:hover{background:var(--rose-fonce,#7A4238);color:#FDF6F3}
.festibox-page-commerce .woocommerce button.button.alt,.festibox-page-commerce .woocommerce a.button.alt,.festibox-page-commerce .woocommerce input.button.alt{background:var(--rose,#9A5A4A);color:#FDF6F3}
.festibox-page-commerce .woocommerce button.button.alt:hover,.festibox-page-commerce .woocommerce a.button.alt:hover,.festibox-page-commerce .woocommerce input.button.alt:hover{background:var(--rose-fonce,#7A4238);color:#FDF6F3}
.festibox-page-commerce .woocommerce-info,.festibox-page-commerce .woocommerce-message,.festibox-page-commerce .woocommerce-error{background:var(--blush-pale,#FAEFEB);color:var(--encre,#2B211D);border-top-color:var(--rose,#9A5A4A);border-radius:0 0 12px 12px}
.festibox-page-commerce .woocommerce-error{border-top-color:#a00}
.festibox-page-commerce .woocommerce-info::before,.festibox-page-commerce .woocommerce-message::before{color:var(--rose,#9A5A4A)}
.festibox-page-commerce .woocommerce form .form-row .input-text,.festibox-page-commerce .woocommerce form .form-row select{border:1px solid var(--trait,rgba(43,33,29,.14));border-radius:10px;padding:.7em .9em;background:#fff;font:inherit;color:inherit}
.festibox-page-commerce .woocommerce ul.order_details{padding:0}
