/* Amapola Koel — équivalents légers du moteur Framer (v1.6)
   FAQ dépliante, survols, bouton du formulaire, liens ajoutés dans les textes. */

html { scroll-behavior: smooth; }

/* ---------------- FAQ ---------------- */
div[data-framer-name="Question Row"] { cursor: pointer; }

div[data-framer-name="Question Row"] svg {
  transition: transform 0.35s ease;
}

.ak-faq-open > div[data-framer-name="Question Row"] svg {
  transform: rotate(45deg);
}

.ak-faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.45s ease, padding 0.3s ease;
  padding: 0 24px;
}

.ak-faq-open .ak-faq-answer {
  max-height: 600px;
  padding: 0 24px 22px;
}

.ak-faq-p {
  margin: 0;
  font-family: "Inter", "Inter Placeholder", sans-serif;
  font-size: 15px;
  line-height: 1.65;
  color: #6f6a63;
}

/* ---------------- survols (remplacent les variantes JS Framer) ------------- */
a[data-framer-name="Contact Button"],
a[data-framer-name="Book Consultation"],
button[type="submit"],
a.framer-lux5qc {
  transition: transform 0.25s ease, opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease;
}

a[data-framer-name="Contact Button"]:hover,
a[data-framer-name="Book Consultation"]:hover,
a.framer-lux5qc:hover {
  transform: translateY(-2px);
  opacity: 0.92;
}

button[type="submit"]:hover { opacity: 0.88; }
button[type="submit"]:disabled { opacity: 0.6; cursor: wait; }

nav a.framer-text { transition: opacity 0.2s ease; }
nav a.framer-text:hover { opacity: 0.65; }

/* cartes des domaines : léger relief au survol */
section a[data-framer-name]:hover { opacity: 0.96; }

/* ---------------- formulaire de contact : bouton « Envoyer la demande » ----------------
   Le bouton d'origine était gris foncé sur la carte gris foncé : il ne se voyait pas. */
form[data-framer-name="Contact Form"] button[type="submit"] {
  background-color: #faf8f5 !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}
form[data-framer-name="Contact Form"] button[type="submit"] p.framer-text {
  color: #3d3d3d !important;
}
form[data-framer-name="Contact Form"] button[type="submit"] svg {
  --1m973uw: #3d3d3d !important;
}
form[data-framer-name="Contact Form"] button[type="submit"]:hover {
  background-color: #567052 !important;
  opacity: 1;
  transform: translateY(-2px);
}
form[data-framer-name="Contact Form"] button[type="submit"]:hover p.framer-text {
  color: #fffdf8 !important;
}
form[data-framer-name="Contact Form"] button[type="submit"]:hover svg {
  --1m973uw: #fffdf8 !important;
}

/* ---------------- accessibilité (v1.7) ----------------
   Contrastes WCAG AA : le vert sauge des sur-titres (2,5:1 sur crème) et le gris des textes
   sur les cartes beiges (4,4:1) sont légèrement assombris pour le texte uniquement ;
   les fonds, lignes et cercles décoratifs gardent la teinte d'origine. */
body { --token-f513181d-5cc9-4a11-a2ff-924d9c097f7b: #66615a !important; } /* jeton « texte doux » (#6f6a63) */
.framer-text[style*="rgb(111, 106, 99)"],
.framer-text[style*="rgb(111,106,99)"],
.framer-text[style*="#6f6a63" i],
.framer-text.framer-styles-preset-64prwo,
.framer-text[style*="--token-f513181d-5cc9-4a11-a2ff-924d9c097f7b"] { --framer-text-color: #66615a !important; }
.framer-text[style*="rgb(143, 165, 140)"],
.framer-text[style*="rgb(143,165,140)"],
.framer-text[style*="#8fa58c" i],
.framer-text.framer-styles-preset-5wm1ju { --framer-text-color: #567052 !important; }
/* sur la carte sombre « Prise de rendez-vous », le sur-titre garde sa teinte claire */
[data-framer-name="Contact Card"] .framer-text.framer-styles-preset-5wm1ju[style*="rgb(213, 220, 207)"] { --framer-text-color: rgb(213, 220, 207) !important; }
.ak-faq-p { color: #66615a; }
form[data-framer-name="Contact Form"] .framer-form-input-wrapper,
form[data-framer-name="Contact Form"] .framer-form-text-input { --framer-input-placeholder-color: #c9c7c2 !important; }

/* indicateur de focus visible au clavier (Framer le supprimait sur les champs) */
a:focus-visible, button:focus-visible, [tabindex="0"]:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid #3d3d3d !important;
  outline-offset: 3px;
}
form[data-framer-name="Contact Form"] :is(input, textarea, button):focus-visible,
[data-framer-name="Contact Card"] a:focus-visible {
  outline-color: #fffdf8 !important;
  outline-offset: 2px;
}
main#ak-content:focus { outline: none; }

/* lien d'évitement (visible uniquement au clavier) */
.ak-skip {
  position: absolute; left: 12px; top: -80px; z-index: 2147483000;
  background: #3d3d3d; color: #fffdf8; padding: 10px 16px; border-radius: 100px;
  font: 600 14px/1.2 "Inter", "Inter Placeholder", sans-serif; text-decoration: none;
}
.ak-skip:focus, .ak-skip:focus-visible { top: 12px; }

/* zone principale : même disposition que la racine Framer (colonne centrée) */
main#ak-content { display: flex; flex-direction: column; align-items: center; width: 100%; }

/* consentement RGPD du formulaire de contact */
.ak-consent {
  display: flex; gap: 10px; align-items: flex-start; margin: 2px 0 4px; width: 100%;
  font: 500 13px/1.5 "Inter", "Inter Placeholder", sans-serif; color: #d5dccf; cursor: pointer;
}
.ak-consent input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: #8fa58c; cursor: pointer; }
.ak-consent a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* ---------------- liens ajoutés depuis « Modification du site » ---------------- */
.framer-text a:not([class]),
.framer-text a.framer-text:not([data-styles-preset]) {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: #8fa58c;
}

/* ---------------- header identique sur toutes les pages ---------------- */
@media (min-width: 1200px) {
  nav[data-framer-name="Navigation"] {
    width: 98% !important;
    max-width: 1240px !important;
    position: sticky !important;
    top: 0;
  }
}

/* ---------------- photos personnalisées : jamais rognées ----------------
   Les photos choisies dans « Modification du site → Images » sont affichées entières.
   - cartes décoratives (accueil, sexologie, accompagnements, bande adresse) : la photo
     est ajustée à l'intérieur du cadre (le fond du cadre reste visible autour si le format diffère) ;
   - page Tarifs (photo du cabinet, logos) : la hauteur du cadre s'adapte à la photo. */
img.ak-slot-img { object-fit: contain !important; }
.framer-1uaZx :is(div[data-framer-name^="ChatGPT Image"], div[data-framer-name="Syndicat"], div[data-framer-name="Site rdv"]) {
  aspect-ratio: auto !important;
  height: auto !important;
}
.framer-1uaZx :is(div[data-framer-name^="ChatGPT Image"], div[data-framer-name="Syndicat"], div[data-framer-name="Site rdv"]) > [data-framer-background-image-wrapper] {
  position: relative !important;
  inset: auto !important;
}
.framer-1uaZx :is(div[data-framer-name^="ChatGPT Image"], div[data-framer-name="Syndicat"], div[data-framer-name="Site rdv"]) img {
  height: auto !important;
}

/* ---------------- page Tarifs, carte « Prise de RDV » : le logo Sexologues France occupe la colonne
   de droite (la photo du cabinet, déjà affichée plus haut, en a été retirée en v1.6.2) ---------------- */
.framer-1uaZx div[data-framer-name="Contact Card"] > div[data-framer-name="Contact Details"] {
  align-self: center !important;
  align-items: center !important;
  justify-content: center !important;
}
.framer-1uaZx div[data-framer-name="Contact Details"] > div[data-framer-name="Site rdv"] {
  align-self: center !important;
  place-self: center !important;
}

/* ---------------- menu mobile (bouton ajouté par site.js sur les pages sans menu Framer) ---------------- */
.ak-burger {
  display: none;
  flex: 0 0 42px;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
  gap: 5px;
  width: 42px;
  height: 42px;
  padding: 0 9px;
  margin-left: auto;
  background: none;
  border: 1px solid #e3dad0;
  border-radius: 100px;
  cursor: pointer;
}
.ak-burger span { display: block; height: 2px; background: #3d3d3d; border-radius: 2px; }

/* ================= pages exportées sans version tablette/mobile =================
   Sexologie clinique (.framer-6sdKV), Accompagnements (.framer-sX6t2), Tarifs et consultations (.framer-1uaZx).
   Les autres pages ont leurs propres variantes Framer. */
@media (max-width: 1199.98px) {
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx)[data-framer-root] {
    width: 100% !important;
    min-width: 0 !important;
    overflow-x: clip !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) nav[data-framer-name="Navigation"] {
    width: calc(100% - 24px) !important;
    max-width: 1098px;
    box-sizing: border-box;
    position: sticky;
    top: 0;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) nav div[data-framer-name="Navigation Links"] { gap: 12px !important; }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) footer[data-framer-name="Footer"] {
    width: 100% !important;
    max-width: 1180px;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) div[data-framer-name="Contact Card"] {
    width: 100% !important;
    box-sizing: border-box;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) div[data-framer-name="Reasons Grid"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) :is(div[data-framer-name="Approach Cards"], div[data-framer-name="Service Cards"]) {
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) :is(div[data-framer-name^="ChatGPT Image"], div[data-framer-name="Syndicat"], div[data-framer-name="Site rdv"]) {
    max-width: 100% !important;
  }
}

@media (max-width: 809.98px) {
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) section {
    padding: 56px 18px !important;
    gap: 32px !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) section section {
    padding: 48px 0 0 !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) :is(div[data-framer-name="Hero Content"], div[data-framer-name="Definition Content"], div[data-framer-name="Contact Card"]) {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) :is(div[data-framer-name="Reasons Grid"], div[data-framer-name="Approach Cards"], div[data-framer-name="Service Cards"]) {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    grid-auto-rows: auto !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) :is(div[data-framer-name="Reasons Grid"], div[data-framer-name="Approach Cards"], div[data-framer-name="Service Cards"]) > div {
    height: auto !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) div[data-framer-name="Contact Card"] {
    padding: 26px 20px !important;
    border-radius: 26px !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) div[data-framer-name="Editorial Placeholder"] {
    min-height: 0 !important;
    padding: 24px !important;
    border-radius: 26px !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) div[data-framer-name="Definition Copy"] {
    padding: 24px !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) div[data-framer-name^="Card / "] {
    min-height: 0 !important;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) div[data-framer-name="Hero Actions"] {
    flex-wrap: wrap;
  }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) :is(div[data-framer-name="Footer Top"], div[data-framer-name="Footer Bottom"]) {
    flex-wrap: wrap;
    gap: 12px;
  }
}

/* ================= téléphone : navigation identique sur toutes les pages =================
   marque à gauche, bouton menu (☰, ajouté par site.js) et « Prendre rendez-vous » à droite. */
@media (max-width: 809.98px) {
  nav[data-framer-name="Navigation"] {
    flex-flow: row nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: calc(100% - 24px) !important;
    max-width: none !important;
    box-sizing: border-box;
    padding: 12px 14px !important;
    gap: 10px !important;
    position: sticky !important;
    top: 0 !important;      /* la variante mobile Framer de l'accueil/actualités impose top:unset */
    z-index: 5 !important;
  }
  nav[data-framer-name="Navigation"] div[data-framer-name="Navigation Links"] { display: none !important; }
  nav[data-framer-name="Navigation"] div[data-framer-name="Brand"] {
    width: auto !important;
    flex: 0 1 auto !important;
    justify-content: flex-start !important;
    margin: 0 !important;
  }
  nav[data-framer-name="Navigation"] .ak-burger { display: inline-flex; }
  nav[data-framer-name="Navigation"] a[data-framer-name="Contact Button"] {
    display: flex !important;
    padding: 10px 14px !important;
    margin-left: 0 !important;
    flex-shrink: 0;
  }
  nav[data-framer-name="Navigation"] a[data-framer-name="Contact Button"] p.framer-text {
    --framer-font-size: 13px !important;
  }
  /* sur-titres des cartes (« Cabinet à Valence… », « Écoute · Confidentialité… ») :
     le texte passe à la ligne au lieu de pousser l'icône hors du cadre */
  :is(div[data-framer-name="Atmosphere Note"], div[data-framer-name="Panel Note"]) > div {
    white-space: normal !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }
  :is(div[data-framer-name="Atmosphere Note"], div[data-framer-name="Panel Note"]) p.framer-text {
    white-space: normal !important;
  }
  :is(div[data-framer-name="Atmosphere Note"], div[data-framer-name="Panel Note"]) svg { flex: none !important; }
}
@media (max-width: 479.98px) {
  /* petits écrans : le nom à côté du logo est masqué pour laisser la place au bouton */
  nav[data-framer-name="Navigation"] div[data-framer-name="Brand"] > :not([data-framer-name="Amapola Mark"]) {
    display: none !important;
  }
  /* titres : tailles de l'ordinateur ramenées au format téléphone */
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) h1.framer-text[style*="--framer-font-size:86px"] { --framer-font-size: 42px !important; }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) h2.framer-text[style*="--framer-font-size:54px"] { --framer-font-size: 34px !important; }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) h2.framer-text[style*="--framer-font-size:38px"] { --framer-font-size: 28px !important; }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) h3.framer-text[style*="--framer-font-size:34px"] { --framer-font-size: 24px !important; }
  :is(.framer-6sdKV, .framer-sX6t2, .framer-1uaZx) h3.framer-text[style*="--framer-font-size:27px"] { --framer-font-size: 22px !important; }
}
