/*
Theme Name: Artisan One Page
Theme URI: https://example.com
Description: Thème WordPress à blocs, une seule page, pour un artisan de petits travaux (robinets, prises, interrupteurs). Design brasserie historique (bleu marine, or, crème, Playfair Display), vérification du code postal, formulaire de devis, données structurées pour Google et les assistants IA.
Author: Domservices
Version: 1.23.1
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: artisan-onepage
*/

html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

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

/* ---------- En-tête ---------- */
.wp-site-blocks > header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
/* Sous 600 px, la barre d’administration WordPress défile avec la page : le bandeau se colle alors tout en haut. */
@media (max-width: 600px) { .wp-site-blocks > header { top: 0; } }
.ao-header { background: var(--ao-h-bg, #ffffff); padding: .7rem max(1.25rem, calc((100% - 780px) / 2)); border-bottom: 1px solid var(--wp--preset--color--accent); align-items: center; gap: 1rem; }
.ao-brand { display: flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--ao-h-fg, var(--wp--preset--color--principale-fonce)); font-family: var(--wp--preset--font-family--texte); font-weight: 700; font-size: 1.1rem; line-height: 1.2; }
.ao-avatar { flex: none; width: 2.5rem; height: 2.5rem; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-weight: 800; background: var(--wp--preset--color--accent); color: var(--wp--preset--color--principale-fonce); }
.ao-brand__txt small { display: block; font-weight: var(--ao-h-hweight, 400); font-size: var(--ao-h-hsize, .8rem); color: var(--ao-h-fg2, #6B7280); }
.ao-header__nav { display: flex; gap: 1.1rem; }
.ao-header__nav a { text-decoration: none; color: var(--ao-h-fg, var(--wp--preset--color--principale-fonce)); font-weight: 500; font-size: .95rem; }
.ao-header__nav a:hover { color: var(--wp--preset--color--accent); text-decoration: underline; text-underline-offset: 4px; }
.ao-brand:focus-visible, .ao-header__nav a:focus-visible { outline: 3px solid var(--wp--preset--color--accent); outline-offset: 3px; }
@media (max-width: 720px) { .ao-header__nav { display: none; } }

/* ---------- Structure des sections : une colonne de discussion ---------- */
.ao-section { padding: var(--wp--preset--spacing--30) 1.25rem; }
.ao-wrap { max-width: 780px; margin-inline: auto; }
.ao-section h2 { margin-top: 0; margin-bottom: 1.2rem; font-size: clamp(1.5rem, 3.4vw, 2rem); max-width: none; }
.ao-section--clair, .ao-section--blanc { background: transparent; }

/* Bulle de l'artisan (à gauche) */
.ao-bub {
  display: block; width: fit-content; max-width: min(100%, 36rem); margin: 0 0 .6rem;
  padding: .9rem 1.15rem; background: var(--wp--preset--color--blanc); color: var(--wp--preset--color--texte);
  border: 1px solid var(--wp--preset--color--filet); border-radius: 3px;
}

/* ---------- Héros ---------- */
.ao-hero { padding-top: clamp(2rem, 6vw, 3.5rem); padding-bottom: 1rem; }
.ao-hero h1.ao-bub { font-size: clamp(1.8rem, 5.4vw, 2.9rem); line-height: 1.1; font-weight: 800; padding: 1.2rem 1.4rem; max-width: min(100%, 36rem); }
.ao-hero__note { color: var(--wp--preset--color--gris); }
.ao-cta-wrap { margin: 1rem 0 0; text-align: right; }
.ao-cta {
  display: inline-block; background: var(--wp--preset--color--bouton); color: var(--wp--preset--color--blanc);
  border: 1px solid var(--wp--preset--color--accent); border-radius: 3px; padding: 1rem 1.5rem;
  font-family: var(--wp--preset--font-family--texte); font-weight: 700; font-size: 1.1rem; text-decoration: none;
}
.ao-cta:hover { background: var(--wp--preset--color--bouton-survol); color: var(--wp--preset--color--blanc); }
.ao-cta:focus-visible { outline: 3px solid var(--wp--preset--color--principale); outline-offset: 3px; }

/* ---------- Services et prix ---------- */
.ao-cols { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.ao-bloc { background: var(--wp--preset--color--blanc); border: 1px solid var(--wp--preset--color--filet); border-radius: 3px; padding: 1.2rem 1.3rem; }
.ao-bloc h3 { margin: 0 0 .4rem; font-size: 1.3rem; }
.ao-list { list-style: none; margin: 0; padding: 0; }
.ao-list li { padding: .75rem 0; border-top: 1px solid var(--wp--preset--color--filet); display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.ao-list li > div { display: flex; flex-direction: column; gap: .15rem; }
.ao-list strong { font-family: var(--wp--preset--font-family--texte); font-weight: 600; color: var(--wp--preset--color--texte); }
.ao-list span { color: var(--wp--preset--color--gris); font-size: .9rem; }
.ao-prix { font-family: var(--wp--preset--font-family--texte); font-weight: 700; color: var(--wp--preset--color--prix); white-space: nowrap; text-align: right; }
.ao-cp-recap { margin: 0; padding: .7rem 1rem; background: var(--wp--preset--color--fond); border-left: 4px solid var(--wp--preset--color--vert); border-radius: 8px; font-size: var(--wp--preset--font-size--petit); color: var(--wp--preset--color--texte); }
.ao-cp-recap[hidden] { display: none; }
.ao-cp-recap strong { color: var(--wp--preset--color--texte); }
.ao-cp-recap a { margin-left: .4rem; color: var(--wp--preset--color--principale); }
.ao-legal { margin: 1rem 0 .75rem; padding-top: .9rem; border-top: 1px solid var(--ao-f-line, rgba(27, 47, 82, .14)); display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; }
.ao-legal details { flex: 1 1 100%; }
.ao-legal summary { cursor: pointer; font-size: .85rem; text-decoration: underline; list-style-position: inside; }
.ao-legal-body { margin-top: .6rem; padding: .8rem 1rem; background: var(--ao-f-panel, rgba(27, 47, 82, .05)); border-radius: 8px; font-size: .8rem; line-height: 1.5; }
.ao-legal-body p { margin: 0 0 .5rem; }
.ao-footer .ao-legal-body strong { font-family: inherit; }
.ao-form-hint { margin: -.4rem 0 0; font-size: .85rem; color: var(--wp--preset--color--gris); }
.ao-send-t { margin: .25rem 0 0; font-weight: 600; }
.ao-send { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (max-width: 720px) { .ao-send > * { flex: 1 1 100%; justify-content: center; text-align: center; } }
.ao-logo { display: block; height: 40px; width: auto; max-width: 180px; object-fit: contain; }
@media (max-width: 720px) { .ao-logo { height: 34px; max-width: 150px; } }
.ao-conge { background: var(--wp--preset--color--accent); color: #14291F; text-align: center; padding: .55rem 1.25rem; font-size: .9rem; font-weight: 600; }
/* Le prix garde le style du prix (la règle .ao-list span ne doit pas le griser). */
.ao-list .ao-prix-val { color: inherit; font-size: inherit; }
/* Prix affichés seulement une fois le code postal validé (sans JavaScript : prix de base visibles). */
.ao-prix-ph { display: none; font-weight: 600; font-size: .9rem; color: var(--wp--preset--color--principale); text-decoration: underline; }
.ao-prix-ask, .ao-prix-set { display: none; margin: 0 0 1rem; color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--petit); }
.ao-js:not(.ao-zoned) .ao-prix--calc .ao-prix-val { display: none; }
.ao-js:not(.ao-zoned) .ao-prix--calc .ao-prix-ph { display: inline; }
.ao-js:not(.ao-zoned) .ao-prix-ask { display: block; }
.ao-js.ao-zoned .ao-prix-set { display: block; }
.ao-note { color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--petit); }
.ao-note strong { color: var(--wp--preset--color--texte); }
.ao-contact-direct { font-size: .95rem; }

/* ---------- Déroulement : vraie séquence, donc numérotée ---------- */
.ao-steps { display: grid; gap: .6rem; grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; counter-reset: etape; }
.ao-steps li {
  counter-increment: etape; position: relative; max-width: 36rem;
  background: var(--wp--preset--color--blanc); border: 1px solid var(--wp--preset--color--filet); border-radius: 3px;
  padding: 1rem 1.2rem 1rem 4rem;
}
.ao-steps li::before {
  content: counter(etape); position: absolute; top: 1rem; left: 1.1rem; width: 2.1rem; height: 2.1rem; border-radius: 50%;
  display: grid; place-items: center; font-family: var(--wp--preset--font-family--texte); font-weight: 800;
  background: var(--wp--preset--color--accent); color: var(--wp--preset--color--principale-fonce);
}
.ao-steps strong { display: block; font-family: var(--wp--preset--font-family--texte); font-size: 1.1rem; color: var(--wp--preset--color--texte); margin-bottom: .1rem; }
.ao-steps p { margin: 0; }

/* ---------- Vérification du code postal ---------- */
.ao-zonecheck { display: grid; gap: .6rem; justify-items: stretch; }
.ao-zonecheck label {
  display: block; width: fit-content; max-width: 100%; padding: .8rem 1.1rem; font-size: 1.2rem; font-weight: 600;
  background: var(--wp--preset--color--blanc); color: var(--wp--preset--color--texte);
  border: 1px solid var(--wp--preset--color--filet); border-radius: 3px;
}
.ao-zonecheck .ao-cp-orange { color: var(--wp--preset--color--orange-fonce); }
.ao-zonecheck input {
  justify-self: end; font-family: var(--wp--preset--font-family--texte); font-weight: 800; font-size: 2.4rem; line-height: 1.1; letter-spacing: .08em;
  width: 8.5ch; padding: .4rem 1.4rem; text-align: center; box-sizing: content-box;
  border: 3px solid var(--wp--preset--color--accent); border-radius: 3px; background: var(--wp--preset--color--blanc); color: var(--wp--preset--color--texte);
}
.ao-zonecheck input::placeholder { font-family: var(--wp--preset--font-family--texte); font-weight: 400; font-size: 1rem; letter-spacing: normal; color: #7A7263; opacity: 1; }
.ao-zonecheck input:focus-visible { outline: 3px solid var(--wp--preset--color--principale); outline-offset: 3px; }
.ao-zone-result { margin: 0; min-height: 1.5em; }

/* Réponses de l'artisan : bulle avec un liseré de couleur (le texte dit aussi oui ou non) */
.ao-msg { display: block; width: fit-content; max-width: min(100%, 36rem); margin: 0 0 .6rem; padding: .9rem 1.15rem; font-weight: 600; background: var(--wp--preset--color--blanc); color: var(--wp--preset--color--texte); border-radius: 3px; }
.ao-msg--ok { box-shadow: inset 0 0 0 2px var(--wp--preset--color--vert); }
.ao-msg--err { box-shadow: inset 0 0 0 2px var(--wp--preset--color--prix); }

/* ---------- Formulaire ---------- */
.ao-form { display: grid; gap: 1rem; }
.ao-form label { display: grid; gap: .3rem; font-weight: 600; color: var(--wp--preset--color--texte); }
.ao-form input[type="text"], .ao-form input[type="email"], .ao-form input[type="tel"], .ao-form textarea {
  font: inherit; font-weight: 400; padding: .75rem .85rem; border: 2px solid #B9A77F; border-radius: 12px;
  background: var(--wp--preset--color--blanc); color: var(--wp--preset--color--texte); width: 100%; box-sizing: border-box;
}
.ao-form input:focus-visible, .ao-form textarea:focus-visible { outline: 3px solid var(--wp--preset--color--principale); outline-offset: 2px; border-color: var(--wp--preset--color--principale); }
.ao-form button {
  font: inherit; font-family: var(--wp--preset--font-family--texte); font-weight: 700; cursor: pointer;
  background: var(--wp--preset--color--bouton); color: var(--wp--preset--color--blanc);
  border: 1px solid var(--wp--preset--color--accent); border-radius: 3px; padding: .9rem 1.6rem; justify-self: start;
}
.ao-form button:hover { background: var(--wp--preset--color--bouton-survol); color: var(--wp--preset--color--blanc); }
.ao-form button:focus-visible { outline: 3px solid var(--wp--preset--color--principale); outline-offset: 3px; }
.ao-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Demande de devis : affichée sous la case, après un code postal accepté */
.ao-devis { margin-top: 1rem; max-width: 640px; }
.ao-contact-gated { background: var(--wp--preset--color--blanc); border: 1px solid var(--wp--preset--color--filet); border-radius: 3px; padding: 1.5rem; }
.ao-contact-gated h3 { margin: 0 0 1rem; }
.ao-js .ao-contact-gated:not(.is-open) { display: none; }
.ao-wa {
  display: inline-flex; align-items: center; gap: .6rem; padding: .8rem 1.25rem; border-radius: 8px;
  background: #25D366; color: #0B2E13; font-weight: 700; text-decoration: none;
}
.ao-wa:hover { background: #1FBE5B; color: #0B2E13; }
.ao-wa:focus-visible { outline: 3px solid var(--wp--preset--color--principale); outline-offset: 2px; }

/* ---------- FAQ : la question est un message du visiteur, la réponse celui de l'artisan ---------- */
.ao-faq details { padding: .35rem 0; border: 0; }
.ao-faq summary {
  display: block; width: fit-content; max-width: 90%; margin-left: auto; cursor: pointer; list-style: none;
  background: var(--wp--preset--color--ardoise); color: var(--wp--preset--color--blanc);
  padding: .75rem 1.1rem; border-radius: 3px; font-family: var(--wp--preset--font-family--texte); font-weight: 600; font-size: 1rem;
}
.ao-faq summary::-webkit-details-marker { display: none; }
.ao-faq summary:focus-visible { outline: 3px solid var(--wp--preset--color--accent); outline-offset: 3px; }
.ao-faq details p { margin: .5rem 0 0; max-width: 36rem; width: fit-content; padding: .8rem 1.1rem; background: var(--wp--preset--color--blanc); border: 1px solid var(--wp--preset--color--filet); border-radius: 3px; }

/* ---------- Contact direct ---------- */
.ao-contact-direct p { display: block; width: fit-content; max-width: 100%; margin: 0 0 .4rem; padding: .45rem .9rem; font-size: .95rem; background: var(--wp--preset--color--blanc); border: 1px solid var(--wp--preset--color--filet); border-radius: 3px; }
.ao-contact-direct a { font-family: var(--wp--preset--font-family--texte); font-weight: 700; font-size: 1rem; color: var(--wp--preset--color--texte); overflow-wrap: anywhere; }
.ao-contact-direct a:hover { color: var(--wp--preset--color--orange-fonce); }

/* ---------- Boutons Appeler / E-mail (numéro et adresse masqués dans le HTML) ---------- */
.ao-contact-direct p.ao-call-wrap { background: none; border: 0; padding: 0; margin: 0 0 .75rem; }
.ao-contact-direct a.ao-call {
  display: inline-flex; align-items: center; gap: .6rem; min-height: 52px; padding: .8rem 1.5rem;
  border-radius: 8px; border: 1px solid var(--wp--preset--color--accent); background: var(--wp--preset--color--bouton);
  color: var(--wp--preset--color--texte); font-size: 1.15rem; font-weight: 700; text-decoration: none;
}
.ao-contact-direct a.ao-call:hover { background: var(--wp--preset--color--bouton-survol); color: var(--wp--preset--color--blanc); }
.ao-contact-direct a.ao-call:focus-visible, .ao-contact-direct a.ao-mail:focus-visible { outline: 3px solid var(--wp--preset--color--principale); outline-offset: 2px; }
.ao-contact-direct a.ao-mail { text-decoration: underline; }
.ao-noscript { font-size: .9rem; }
@media (max-width: 720px) { .ao-contact-direct a.ao-call { width: 100%; justify-content: center; } }
.ao-send .ao-wa { display: none; }
.ao-js .ao-send .ao-wa { display: inline-flex; }

/* ---------- Pied de page ---------- */
.ao-footer { background: var(--ao-f-bg, #F8F9FB); padding: var(--wp--preset--spacing--30) 1.25rem; }
.ao-footer p { margin: 0 0 .4rem; }
.ao-footer .ao-wrap strong { color: var(--ao-f-strong, var(--wp--preset--color--principale-fonce)); font-family: var(--wp--preset--font-family--texte); }
.ao-footer, .ao-footer a { color: var(--ao-f-fg, #4A5568); }
.ao-footer a:hover { color: var(--ao-f-strong, var(--wp--preset--color--principale-fonce)); }

/* ---------- Marques (pied de page) ---------- */
.ao-brands { margin: 1rem 0 .75rem; padding-top: .9rem; border-top: 1px solid var(--ao-f-line, rgba(27, 47, 82, .14)); }
.ao-footer .ao-brands-t { margin: 0 0 .5rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; opacity: .75; }
.ao-brands-l { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.1rem; margin: 0 0 .5rem; padding: 0; list-style: none; font-size: .85rem; font-weight: 700; }
.ao-brands-l img { display: block; height: 22px; width: auto; max-width: 110px; background: #fff; border-radius: 4px; padding: 3px 6px; }
.ao-footer .ao-brands-n { margin: 0; font-size: .7rem; opacity: .65; }

/* ---------- Bouton flottant sur mobile ---------- */
.ao-callbar { display: none; }
@media (max-width: 720px) {
  .ao-callbar {
    display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    background: var(--wp--preset--color--bouton); border-top: 1px solid var(--wp--preset--color--accent); text-align: center;
    padding: .9rem 1rem calc(.9rem + env(safe-area-inset-bottom, 0px));
  }
  .ao-callbar a { color: var(--wp--preset--color--blanc); font-family: var(--wp--preset--font-family--texte); font-weight: 700; text-decoration: none; font-size: 1.1rem; }
  body { padding-bottom: 4rem; }
  .ao-typing .ao-callbar { display: none; }
}

/* ============================================================
   Design « Brasserie historique » (inspiré du site du Café Riche) :
   bleu marine, or, crème, titres Playfair Display, texte Inter, cartes arrondies à ombre douce.
   Seule la présentation change : les classes et les scripts restent les mêmes.
   ============================================================ */
:root { --ao-ombre: 0 4px 18px rgba(27, 47, 82, .09); --ao-rayon: 14px; --ao-or: var(--wp--preset--color--accent); --ao-marine: var(--wp--preset--color--principale-fonce); }
.ao-prix, .ao-zonecheck input, .ao-steps li::before { font-variant-numeric: lining-nums; }

/* En-tête blanc, ombre douce, logo à gauche */
.ao-header { border-bottom: 0; box-shadow: 0 2px 14px rgba(27, 47, 82, .1); }
.ao-brand { font-family: var(--wp--preset--font-family--titres); font-size: 1.2rem; font-weight: 700; }
.ao-avatar { font-family: var(--wp--preset--font-family--titres); font-weight: 700; background: var(--ao-marine); color: var(--ao-or); border: 2px solid var(--ao-or); }
.ao-header__nav a { text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; font-weight: 500; }
.ao-header__nav a:hover { color: var(--wp--preset--color--orange-fonce); text-decoration: none; border-bottom: 1px solid var(--ao-or); }

/* Sections : crème, puis blanc cassé en alternance */
main > .ao-section:nth-child(even) { background: #FCFBF8; }

/* Cartes blanches arrondies, sans filet, ombre douce */
.ao-bub, .ao-bloc, .ao-steps li, .ao-contact-gated, .ao-zonecheck label, .ao-faq details p, .ao-contact-direct p, .ao-msg {
  background: #fff; border: 0; border-radius: var(--ao-rayon); box-shadow: var(--ao-ombre);
}
.ao-bloc { padding: 1.6rem 1.5rem; }
.ao-contact-gated { padding: 1.8rem 1.5rem; }
.ao-msg--ok { box-shadow: var(--ao-ombre), inset 0 0 0 2px var(--wp--preset--color--vert); }
.ao-msg--err { box-shadow: var(--ao-ombre), inset 0 0 0 2px #B3261E; }

/* Titres : serif marine, filet or dégradé centré */
.ao-section h2 { font-family: var(--wp--preset--font-family--titres); font-weight: 700; color: var(--ao-marine); text-align: center; margin-bottom: 1.6rem; }
.ao-section h2::after { content: ""; display: block; width: 7rem; height: 2px; margin: .8rem auto 0; background: linear-gradient(90deg, transparent, var(--ao-or), transparent); }
.ao-bloc h3, .ao-contact-gated h3 { font-family: var(--wp--preset--font-family--titres); font-weight: 700; color: var(--ao-marine); }
.ao-bloc h3 { font-size: 1.35rem; padding-bottom: .3rem; }

/* Héros */
.ao-hero { background: var(--wp--preset--color--fond); padding-bottom: 2rem; }
.ao-hero h1.ao-bub { font-family: var(--wp--preset--font-family--titres); font-weight: 800; letter-spacing: -.01em; color: var(--ao-marine); box-shadow: var(--ao-ombre); }
.ao-hero__note { color: var(--wp--preset--color--gris); }

/* Boutons or, majuscules espacées (texte marine pour un bon contraste) */
.ao-cta, .ao-form button, .ao-contact-direct a.ao-call, .ao-callbar a {
  text-transform: uppercase; letter-spacing: .08em; font-size: .9rem; font-weight: 600; color: var(--ao-marine);
}
.ao-cta, .ao-form button { background: var(--wp--preset--color--bouton); border: 0; border-radius: 8px; padding: 1rem 1.7rem; }
.ao-contact-direct a.ao-call { background: var(--wp--preset--color--bouton); border: 0; border-radius: 8px; }
.ao-cta:hover, .ao-form button:hover, .ao-contact-direct a.ao-call:hover { background: var(--wp--preset--color--bouton-survol); color: var(--ao-marine); }
.ao-callbar { background: var(--wp--preset--color--bouton); border-top: 0; box-shadow: 0 -4px 14px rgba(27, 47, 82, .15); }
.ao-wa { border-radius: 8px; }

/* Tarifs : lignes fines, prix en or foncé */
.ao-list li { border-top: 1px solid var(--wp--preset--color--filet); }
.ao-list strong { font-weight: 600; color: var(--ao-marine); }
.ao-prix { font-family: var(--wp--preset--font-family--titres); font-size: 1.1rem; font-weight: 700; color: var(--wp--preset--color--orange-fonce); }
.ao-prix-ph { color: var(--wp--preset--color--principale); }

/* Étapes : pastille beige, chiffre serif */
.ao-steps li::before { font-family: var(--wp--preset--font-family--titres); background: #F1E9DA; color: var(--wp--preset--color--orange-fonce); }
.ao-steps strong { font-family: var(--wp--preset--font-family--titres); font-size: 1.15rem; color: var(--ao-marine); }

/* Code postal et formulaire */
.ao-zonecheck label { font-family: var(--wp--preset--font-family--titres); font-size: 1.25rem; font-weight: 600; color: var(--ao-marine); }
.ao-zonecheck .ao-cp-orange { color: var(--wp--preset--color--orange-fonce); }
.ao-zonecheck input { font-family: var(--wp--preset--font-family--titres); font-weight: 700; border: 2px solid var(--ao-or); border-radius: 12px; background: #fff; color: var(--ao-marine); box-shadow: var(--ao-ombre); }
.ao-zonecheck input::placeholder { font-family: var(--wp--preset--font-family--texte); }
.ao-form input[type="text"], .ao-form input[type="email"], .ao-form input[type="tel"], .ao-form textarea { border: 1.5px solid #D6CDBB; border-radius: 10px; background: #fff; }
.ao-form label { color: var(--ao-marine); }
.ao-cp-recap { border-radius: 10px; background: #F4EFE6; border-left-color: var(--ao-or); }

/* FAQ : question marine, réponse sur carte blanche */
.ao-faq summary { background: var(--ao-marine); color: #fff; border-radius: var(--ao-rayon); box-shadow: var(--ao-ombre); }
.ao-faq summary::after { content: "+"; margin-left: .8rem; color: var(--ao-or); font-weight: 700; }
.ao-faq details[open] summary::after { content: "\2013"; }

/* Coordonnées directes et pied de page */
.ao-contact-direct a:not(.ao-call):hover { color: var(--wp--preset--color--orange-fonce); }
.ao-footer { border-top: 1px solid var(--wp--preset--color--filet); }
.ao-footer .ao-wrap strong { font-family: var(--wp--preset--font-family--titres); font-size: 1.2rem; }
.ao-legal-body { border-radius: 10px; }

/* 1.19.0 : le code postal remonte dans l'accueil, juste sous le titre. */
.ao-hero { padding-bottom: var(--wp--preset--spacing--30); }
.ao-hero .ao-zone { margin-top: clamp(1.5rem, 4vw, 2.5rem); }
.ao-hero .ao-zone h2 { margin-top: 0; }

/* 1.19.1 : libellé « Votre code postal » et case centrés. */
.ao-zonecheck { justify-items: center; }
.ao-zonecheck label { text-align: center; }
.ao-zonecheck input { justify-self: center; }
.ao-zone-result { text-align: center; }

/* 1.21.2 : questions fréquentes centrées (questions et réponses). */
.ao-faq summary { margin-left: auto; margin-right: auto; max-width: min(100%, 36rem); text-align: center; overflow-wrap: anywhere; }
.ao-faq details p { margin-left: auto; margin-right: auto; max-width: min(100%, 36rem); text-align: center; overflow-wrap: anywhere; }

/* 1.21.2 : compatibilité iOS Safari, Firefox, Chrome, Brave : pas de zoom automatique à la saisie (16 px minimum),
   apparence des champs uniforme, texte non agrandi à la rotation. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.ao-form input[type="text"], .ao-form input[type="email"], .ao-form input[type="tel"], .ao-form textarea, .ao-zonecheck input {
  font-size: max(16px, 1rem); -webkit-appearance: none; appearance: none; max-width: 100%; box-sizing: border-box;
}
.ao-zonecheck input { font-size: 2.4rem; box-sizing: content-box; }
.ao-form button, .ao-cta { -webkit-appearance: none; appearance: none; }
.ao-faq summary { -webkit-tap-highlight-color: transparent; }

/* 1.23.0 : petite photo ronde à côté du titre de l'accueil (facultative). */
.ao-hero-top { display: flex; align-items: flex-start; gap: .9rem; }
.ao-hero-top h1.ao-bub { margin: 0; min-width: 0; flex: 0 1 auto; }
.ao-photo { display: block; flex: 0 0 auto; width: clamp(56px, 14vw, 88px); height: clamp(56px, 14vw, 88px); border-radius: 50%; object-fit: cover; border: 3px solid var(--ao-or, #B89556); box-shadow: var(--ao-ombre, 0 2px 10px rgba(27, 47, 82, .12)); background: #fff; }

/* 1.23.1 : bouton « Appelez-moi au … » en bas de page : seule la première lettre en majuscule, bouton plus petit. */
.ao-contact-direct a.ao-call { text-transform: none; letter-spacing: .01em; font-size: 1rem; font-weight: 700; min-height: 44px; padding: .55rem 1.2rem; gap: .5rem; }
.ao-contact-direct a.ao-call svg { width: 18px; height: 18px; }
@media (max-width: 720px) { .ao-contact-direct a.ao-call { width: auto; } }
