/* =========================================================
   GeoGood — thème clair et épuré (refonte 2026)
   Chargé en dernier dans <head> (pages2/nav_entete.php)
   --gg-accent est défini dynamiquement (couleur choisie par le visiteur)
   ========================================================= */
:root {
  --gg-accent: #7A3FC2;
  --gg-bg: #F6F7FB;
  --gg-surface: #FFFFFF;
  --gg-text: #1B1E2B;
  --gg-muted: #636B7E;
  --gg-border: #E4E7EE;
  --gg-soft: #F1F0FB;
  --gg-radius: 14px;
  --gg-radius-sm: 10px;
  --gg-shadow: 0 1px 2px rgba(16,24,40,.05), 0 4px 16px rgba(16,24,40,.06);
  --gg-shadow-lg: 0 2px 4px rgba(16,24,40,.06), 0 16px 40px rgba(16,24,40,.10);
  --gg-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* ---------- Base ---------- */
body.gg {
  font-family: var(--gg-font) !important;
  font-size: 16px;
  line-height: 1.55;
  color: var(--gg-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.gg-portail { background: var(--gg-bg) !important; }
body.gg [class^="gg-"], body.gg [class*=" gg-"], body.gg .gg-search *, body.gg .gg-auth *, body.gg .gg-footer * { box-sizing: border-box; }
body.gg a { color: var(--gg-accent); text-decoration: none; }
body.gg a:hover { text-decoration: underline; }
body.gg h1, body.gg h2, body.gg h3 { font-family: var(--gg-font); letter-spacing: -.01em; }
body.gg hr { border: 0; border-top: 1px solid var(--gg-border); height: 0; margin: 20px 0; background: none; }
body.gg ::selection { background: color-mix(in srgb, var(--gg-accent) 22%, transparent); }

/* ---------- Barre du haut ---------- */
body.gg .grandPremierDivHoriz {
  position: sticky; top: 0; z-index: 1000;
  background: rgba(255,255,255,.92) !important;
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  backdrop-filter: saturate(180%) blur(10px);
  border-bottom: 1px solid var(--gg-border);
}
body.gg .header {
  width: auto !important; max-width: 1160px; height: auto !important; min-height: 64px;
  margin: 0 auto; padding: 10px 20px;
  display: flex; align-items: center; gap: 20px;
}
body.gg #logo.gg-brand { flex: 0 0 auto; width: auto; float: none; margin: 0; padding: 0; height: auto; }
body.gg #logo.gg-brand a, body.gg .gg-brand a { width: auto; font-size: inherit; display: flex; align-items: center; gap: 8px; color: var(--gg-text); text-decoration: none; }
body.gg .gg-brand-icon { color: var(--gg-accent); flex: 0 0 auto; }
body.gg .gg-brand-txt { display: flex; flex-direction: column; font-weight: 800; font-size: 21px; line-height: 1.05; letter-spacing: -.02em; }
body.gg .gg-brand-txt small { font-weight: 500; font-size: 11.5px; color: var(--gg-muted); letter-spacing: 0; margin-top: 2px; }

body.gg .gg-search-form { flex: 1 1 auto; margin: 0; max-width: 560px; }
body.gg #search.gg-search { position: relative; display: flex; align-items: center; float: none; top: auto; width: 100%; margin: 0; }
body.gg .gg-search-icon { position: absolute; left: 14px; color: var(--gg-muted); pointer-events: none; }
body.gg .gg-search input#q {
  width: 100% !important; height: 44px !important;
  padding: 0 112px 0 42px !important;
  font: 500 15px/1 var(--gg-font) !important; color: var(--gg-text) !important;
  text-transform: none !important;
  background: #F2F3F7 !important; border: 1px solid transparent !important; border-radius: 999px !important;
  box-shadow: none !important; margin: 0 !important; outline: none;
  transition: background .15s, border-color .15s, box-shadow .15s;
}
body.gg .gg-search input#q::placeholder { color: #8A90A2; font-weight: 400; }
body.gg .gg-search input#q:focus { background: #fff !important; border-color: var(--gg-accent) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--gg-accent) 15%, transparent) !important; }
body.gg .gg-search input#imgsearch {
  width: auto; margin: 0;
  position: absolute; right: 4px; top: 4px; height: 36px; padding: 0 16px;
  border: 0 !important; border-radius: 999px !important; cursor: pointer;
  background: var(--gg-accent) !important; color: #fff !important;
  font: 600 14px/1 var(--gg-font) !important; box-shadow: none !important;
}
body.gg .gg-search input#imgsearch:hover { filter: brightness(1.08); }

body.gg .gg-actions { margin-left: auto; display: flex; gap: 8px; flex: 0 0 auto; }

/* ---------- Boutons ---------- */
body.gg .gg-btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 42px; padding: 0 18px; border-radius: 999px;
  font: 600 14.5px/1 var(--gg-font); white-space: nowrap; text-decoration: none !important;
  transition: background .15s, color .15s, border-color .15s, box-shadow .15s, transform .15s;
}
body.gg .gg-btn-primary { background: var(--gg-accent); color: #fff !important; box-shadow: 0 1px 2px rgba(16,24,40,.12); }
body.gg .gg-btn-primary:hover { filter: brightness(1.07); box-shadow: 0 4px 14px color-mix(in srgb, var(--gg-accent) 35%, transparent); }
body.gg .gg-btn-ghost { color: var(--gg-text) !important; border: 1px solid var(--gg-border); background: #fff; }
body.gg .gg-btn-ghost:hover { border-color: var(--gg-accent); color: var(--gg-accent) !important; }

/* Boutons existants du site */
body.gg .btninput, body.gg .btnvisible, body.gg input[type=submit]:not(#imgsearch), body.gg input[type=button], body.gg button {
  font-family: var(--gg-font) !important; font-weight: 600 !important;
  border-radius: 999px !important; cursor: pointer;
}
body.gg-portail .btninput, body.gg-portail input[type=submit]:not(#imgsearch), body.gg-portail input[type=button] {
  background: var(--gg-accent) !important; color: #fff !important; border: 0 !important;
  padding: 10px 20px !important; font-size: 15px !important; box-shadow: 0 1px 2px rgba(16,24,40,.12);
}
body.gg-portail .btninput:hover, body.gg-portail input[type=submit]:not(#imgsearch):hover, body.gg-portail input[type=button]:hover { filter: brightness(1.07); }

/* ---------- Mise en page ---------- */
body.gg .container2 {
  width: auto !important; max-width: 1160px;
  margin: 0 auto; padding: 0 20px;
}
body.gg-portail .container2 { background: transparent !important; }
body.gg #apDivMain { width: auto !important; max-width: 100%; }

/* ---------- Formulaires (pages du portail) ---------- */
body.gg-portail input[type=text], body.gg-portail input[type=email], body.gg-portail input[type=password],
body.gg-portail input[type=tel], body.gg-portail input[type=url], body.gg-portail input[type=number],
body.gg-portail input:not([type]), body.gg-portail select, body.gg-portail textarea,
body.gg-portail .inputinscription {
  font: 400 15px/1.4 var(--gg-font) !important; color: var(--gg-text) !important;
  background-color: #fff; border: 1px solid #D5D9E2; border-radius: var(--gg-radius-sm) !important;
  padding: 11px 14px !important; min-height: 46px; box-shadow: none !important; outline: none;
  transition: border-color .15s, box-shadow .15s;
}
body.gg-portail textarea { min-height: 110px; }
body.gg-portail input:focus, body.gg-portail select:focus, body.gg-portail textarea:focus {
  border-color: var(--gg-accent) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--gg-accent) 14%, transparent) !important;
}
body.gg-portail input::placeholder, body.gg-portail textarea::placeholder { color: #9AA0B0; font-weight: 400; }
body.gg-portail select { padding-right: 34px !important; }

/* Vitrines : on garde le style de chaque page, on adoucit seulement les champs */
body.gg-vitrine input[type=text], body.gg-vitrine input[type=email], body.gg-vitrine input:not([type]),
body.gg-vitrine textarea, body.gg-vitrine select {
  font-family: var(--gg-font) !important; font-weight: 400 !important; font-size: 15px !important;
  border: 1px solid #CDD2DC !important; border-radius: 8px !important; padding: 8px 10px !important;
}

/* ---------- Accueil (hero) ---------- */
body.gg .gg-hero { text-align: center; padding: 64px 0 24px; max-width: 880px; margin: 0 auto; }
body.gg .gg-eyebrow {
  display: inline-block; margin: 0 0 18px; padding: 6px 14px; border-radius: 999px;
  background: color-mix(in srgb, var(--gg-accent) 10%, #fff); color: var(--gg-accent);
  font-size: 13px; font-weight: 600; letter-spacing: .01em;
}
body.gg .gg-hero h1 {
  margin: 0 0 16px; font-size: clamp(32px, 5vw, 52px); line-height: 1.08; font-weight: 800;
  color: var(--gg-text) !important; letter-spacing: -.03em;
}
body.gg .gg-lead { margin: 0 auto 40px; max-width: 620px; font-size: 18px; color: var(--gg-muted); }

body.gg .gg-choices { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; text-align: left; }
body.gg a.gg-choice {
  /* neutralise les anciens styles .inscriptionPart / .inscriptionPro */
  all: unset; box-sizing: border-box; cursor: pointer;
  display: flex; flex-direction: column; gap: 6px;
  padding: 28px; border-radius: 20px; background: #fff; border: 1px solid var(--gg-border);
  box-shadow: var(--gg-shadow); transition: transform .18s, box-shadow .18s, border-color .18s;
}
body.gg a.gg-choice:hover { transform: translateY(-3px); box-shadow: var(--gg-shadow-lg); border-color: color-mix(in srgb, var(--gg-accent) 45%, var(--gg-border)); text-decoration: none; }
body.gg a.gg-choice:focus-visible { outline: 3px solid color-mix(in srgb, var(--gg-accent) 40%, transparent); outline-offset: 2px; }
body.gg .gg-choice-icon {
  width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; margin-bottom: 12px;
  background: color-mix(in srgb, var(--gg-accent) 10%, #fff); color: var(--gg-accent);
}
body.gg .gg-choice-pro .gg-choice-icon { background: #E9F6F1; color: #0F8A62; }
body.gg .gg-choice-title { font-size: 21px; font-weight: 700; color: var(--gg-text); letter-spacing: -.01em; }
body.gg .gg-choice-txt { color: var(--gg-muted); font-size: 15.5px; }
body.gg .gg-choice-cta { margin-top: 14px; font-weight: 600; color: var(--gg-accent); font-size: 15px; }
body.gg .gg-choice-pro .gg-choice-cta { color: #0F8A62; }

body.gg .gg-perks { list-style: none; padding: 0; margin: 36px 0 0; display: flex; flex-wrap: wrap; gap: 10px 28px; justify-content: center; color: var(--gg-muted); font-size: 14.5px; }
body.gg .gg-perks li { display: flex; align-items: center; gap: 8px; }
body.gg .gg-perks li::before {
  content: ""; width: 18px; height: 18px; border-radius: 50%; flex: 0 0 auto;
  background: #E9F6F1 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%230F8A62' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/12px no-repeat;
}
body.gg .gg-already { margin: 22px 0 0; color: var(--gg-muted); font-size: 15px; }
body.gg .gg-already a { font-weight: 600; }

/* Bandeau d'information */
body.gg .gg-notice {
  display: flex; gap: 12px; align-items: flex-start; max-width: 880px; margin: 32px auto 8px;
  padding: 14px 18px; border-radius: var(--gg-radius); background: #fff; border: 1px solid var(--gg-border);
  color: var(--gg-muted); font-size: 14px; line-height: 1.5;
}
body.gg .gg-notice svg { color: var(--gg-accent); flex: 0 0 auto; margin-top: 2px; }
body.gg .gg-notice p { margin: 0; text-align: left; }
body.gg .gg-notice b { color: var(--gg-text); font-weight: 600; }

/* ---------- Titres et textes hérités ---------- */
body.gg-portail .textbleu { text-align: left; }
body.gg-portail .textbleu, body.gg-portail .textbleu h1, body.gg-portail .textbleu h2, body.gg-portail .textbleu h3 { color: var(--gg-text); font-family: var(--gg-font); }
body.gg-portail .container2 > h1, body.gg-portail .container2 h1 { font-size: 28px; font-weight: 800; color: var(--gg-text) !important; }
body.gg-portail .container2 h2 { font-size: 21px; font-weight: 700; color: var(--gg-text) !important; }
body.gg-portail .container2 h3 { font-size: 17px; font-weight: 700; color: var(--gg-text) !important; }
body.gg .remarques { font-family: var(--gg-font); color: var(--gg-muted); font-style: normal; font-size: 13.5px; }

/* ---------- Menu compte (connecté) ---------- */
body.gg #MenuBar2 { list-style: none; margin: 0 0 0 auto; padding: 0; }
body.gg #MenuBar2 li { width: auto !important; list-style: none; position: relative; background: transparent !important; }
body.gg #MenuBar2 > div > li > a, body.gg #MenuBar2 > li > a {
  display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 16px; border-radius: 999px;
  background: #fff !important; border: 1px solid var(--gg-border); color: var(--gg-text) !important;
  font: 600 14.5px/1 var(--gg-font); text-decoration: none;
}
body.gg #MenuBar2 ul {
  background: #fff !important; border: 1px solid var(--gg-border) !important; border-radius: var(--gg-radius);
  box-shadow: var(--gg-shadow-lg); padding: 6px !important; min-width: 300px;
}
/* fermé par défaut (Spry ajoute MenuBarSubmenuVisible au survol) */
body.gg #MenuBar2 ul:not(.MenuBarSubmenuVisible) { left: -1000em !important; right: auto !important; }
body.gg #MenuBar2 ul.MenuBarSubmenuVisible,
body.gg #MenuBar2 li:hover > ul, body.gg #MenuBar2 li:focus-within > ul { left: auto !important; right: 0 !important; top: 100%; position: absolute; z-index: 1100; }
body.gg #MenuBar2 li:hover > ul::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
body.gg #MenuBar2 ul li a {
  display: flex !important; align-items: center; gap: 10px; padding: 10px 12px !important; border-radius: 8px;
  background: transparent !important; color: var(--gg-text) !important; font: 500 14px/1.3 var(--gg-font) !important;
}
body.gg #MenuBar2 ul li a:hover { background: var(--gg-bg) !important; text-decoration: none; }
body.gg #MenuBar2 ul hr { margin: 4px 0; }

/* Message "connexion réussie" */
body.gg .connexionreussi {
  font-family: var(--gg-font); border-radius: 999px !important; box-shadow: var(--gg-shadow-lg);
}

/* ---------- Pied de page ---------- */
body.gg .gg-footer { margin-top: 56px; border-top: 1px solid var(--gg-border); background: transparent; font-family: var(--gg-font); }
body.gg-vitrine .gg-footer { margin-top: 24px; }
body.gg .gg-footer-in {
  max-width: 1160px; margin: 0 auto; padding: 24px 0;
  display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between;
  font-size: 14px; color: var(--gg-muted);
}
body.gg .gg-footer-brand a { font-weight: 700; color: var(--gg-text) !important; }
body.gg .gg-footer-links { display: flex; flex-wrap: wrap; gap: 6px 20px; }
body.gg #liensbas a, body.gg #liensbas a:link, body.gg #liensbas a:visited, body.gg a.liensbas {
  color: var(--gg-muted) !important; font-size: 14px !important; text-decoration: none !important;
}
body.gg #liensbas a:hover { color: var(--gg-accent) !important; }

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
  /* photos : on réduit sans déformer */
  body.gg img { max-width: 100%; height: auto; }
  body.gg-portail .container2 [style*="width"], body.gg-portail .container2 table, body.gg-portail .container2 .inscriptiondiv { max-width: 100% !important; }
  body.gg-portail .container2 table { width: 100% !important; }
  body.gg .header { flex-wrap: wrap; gap: 10px 12px; padding: 10px 16px; }
  body.gg .gg-actions, body.gg #MenuBar2 { margin-left: auto; }
  body.gg .gg-search-form { order: 3; flex-basis: 100%; max-width: none; }
  body.gg .container2 { padding: 0 16px; }
  body.gg .gg-choices { grid-template-columns: 1fr; }
  body.gg .gg-hero { padding: 36px 0 12px; }
  body.gg .gg-lead { font-size: 16.5px; margin-bottom: 28px; }
  body.gg #apDivLeft, body.gg #apDivCenter, body.gg #apDivRight, body.gg #apDivRight2 {
    float: none !important; position: static !important; width: auto !important; left: auto !important;
  }
}
@media (max-width: 480px) {
  body.gg .gg-hide-sm { display: none; }
  body.gg .gg-brand-txt small { display: none; }
  body.gg .gg-btn { height: 38px; padding: 0 14px; font-size: 14px; }
  body.gg .gg-actions .gg-btn-ghost { padding: 0 12px; }
  body.gg .gg-search input#q { padding-right: 16px !important; }
  body.gg .gg-search input#imgsearch { display: none; }
  body.gg a.gg-choice { padding: 22px; }
}

/* ---------- Connexion ---------- */
body.gg .gg-auth {
  max-width: 440px; margin: 56px auto 8px; padding: 36px; text-align: left;
  background: #fff; border: 1px solid var(--gg-border); border-radius: 20px; box-shadow: var(--gg-shadow);
}
body.gg .gg-auth h1 { margin: 0 0 4px; font-size: 28px !important; font-weight: 800; color: var(--gg-text) !important; }
body.gg .gg-auth-sub { margin: 0 0 26px; color: var(--gg-muted); }
body.gg .gg-field { display: block; margin: 0 0 18px; }
body.gg .gg-field > span { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 7px; font-size: 14px; font-weight: 600; color: var(--gg-text); }
body.gg .gg-field-link { font-weight: 500; font-size: 13.5px; }
body.gg .gg-field input { width: 100% !important; }
body.gg .gg-auth .gg-auth-submit { width: 100%; height: 48px; margin-top: 6px; font-size: 15.5px !important; }
body.gg .gg-auth-alt { margin: 22px 0 0; text-align: center; color: var(--gg-muted); font-size: 14.5px; }
body.gg .gg-auth-alt a { font-weight: 600; }

/* ---------- Pages d'inscription (particulier / professionnel) ---------- */
body.gg-portail .inscriptiondiv, body.gg-portail .inscriptiondiv:hover {
  background: #fff !important; border: 1px solid var(--gg-border) !important; border-radius: 20px !important;
  box-shadow: var(--gg-shadow); padding: 28px !important; max-width: 100%;
}
body.gg-portail .inscriptiondiv h1, body.gg-portail .inscriptiondiv h2 { font-size: 22px !important; line-height: 1.25; margin: 0 0 6px; }
body.gg-portail .grandTitreGras, body.gg-portail .textbleu, body.gg-portail p { text-align: left !important; }
body.gg-portail .grandTitreGras { font-size: 17px; line-height: 1.6; font-weight: 500; color: var(--gg-text); word-spacing: 0; }
body.gg-portail div.inscriptionPart, body.gg-portail div.inscriptionPro {
  all: unset; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; text-align: center;
  padding: 14px 22px; margin: 12px 0; border-radius: 14px; cursor: pointer;
  background: var(--gg-soft); color: var(--gg-accent); font: 600 15px/1.4 var(--gg-font);
  border: 1px solid color-mix(in srgb, var(--gg-accent) 25%, transparent);
}
body.gg-portail div.inscriptionPart:hover, body.gg-portail div.inscriptionPro:hover { background: color-mix(in srgb, var(--gg-accent) 14%, #fff); }
body.gg-portail .menu_hz2 { background: transparent !important; font-weight: 700; font-size: 17px; padding: 6px 0 !important; color: var(--gg-text); }
body.gg-portail .emplacementDiv { background: #fff !important; border: 1px solid var(--gg-border) !important; border-radius: var(--gg-radius) !important; box-shadow: var(--gg-shadow); }
body.gg-portail table[bgcolor="#EEEEEE"], body.gg-portail table[bgcolor="#eeeeee"] { background: #fff !important; border: 1px solid var(--gg-border); border-radius: 18px !important; box-shadow: var(--gg-shadow); }
body.gg-portail img[src*="/gif2/"][width] { border-radius: 0; }
body.gg-portail .container2 img:not([src*="/gif2/"]) { border-radius: 12px; }
body.gg-portail .container2 input, body.gg-portail .container2 select, body.gg-portail .container2 textarea { max-width: 100%; }
body.gg-portail .container2 input[type=button], body.gg-portail .container2 input[type=submit] { white-space: normal; height: auto; line-height: 1.3; }

/* ---------- Résultats de recherche ---------- */
body.gg .gg-page-title { margin: 36px 0 20px; font-size: 26px !important; }
body.gg .gg-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
body.gg .gg-results-sep { grid-column: 1 / -1; margin: 18px 0 2px; font-size: 15px !important; color: var(--gg-muted) !important; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
body.gg a.gg-result {
  display: flex; align-items: center; gap: 14px; padding: 12px 14px;
  background: #fff; border: 1px solid var(--gg-border); border-radius: var(--gg-radius);
  color: var(--gg-text); text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s;
}
body.gg a.gg-result:hover { border-color: color-mix(in srgb, var(--gg-accent) 45%, var(--gg-border)); box-shadow: var(--gg-shadow); transform: translateY(-1px); text-decoration: none; }
body.gg a.gg-result img { width: 48px; height: 48px; border-radius: 12px !important; object-fit: cover; flex: 0 0 auto; background: var(--gg-bg); }
body.gg .gg-result-title { flex: 1 1 auto; font-weight: 600; font-size: 15px; line-height: 1.35; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
body.gg .gg-result-tag { flex: 0 0 auto; font-size: 12px; font-weight: 600; color: var(--gg-accent); background: var(--gg-soft); padding: 4px 9px; border-radius: 999px; }
body.gg .gg-empty { padding: 40px 0; text-align: center; color: var(--gg-muted); }
body.gg #MenuBar2, body.gg #MenuBar2 > div { background: transparent !important; }
body.gg-portail input, body.gg-portail select, body.gg-portail textarea { box-sizing: border-box; }
