/* gp.css - geneve-psychologue.ch : habillage du site (Bootstrap 5.3.8 charge avant). Reprend l'apparence du site actuel (Mobirise) :
   bandeau et pied de page bleu clair #b5c9e6, texte noir, titres de rubrique centres en Open Sans leger, texte en colonne etroite. */
:root {
	--gp-blue: #b5c9e6;          /* bandeau, menu, pied de page */
	--gp-blue-dark: #0c57bf;     /* boutons, liens, icones */
	--gp-blue-deep: #073677;
	--gp-text: #232323;
	--gp-title: #2b2f36;
	--bs-primary: #0c57bf;
	--bs-primary-rgb: 12, 87, 191;
	--bs-link-color: #0c57bf;
	--bs-link-color-rgb: 12, 87, 191;
	--bs-link-hover-color: #073677;
	--bs-link-hover-color-rgb: 7, 54, 119;
	--bs-body-font-family: 'Open Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
html { scroll-behavior: auto; }   /* le defilement anime est fait par gp.js (vitesse reglable) */
body.gp { font-family: var(--bs-body-font-family); color: var(--gp-text); background: #fff; font-size: 1.06rem; font-weight: 300; line-height: 1.65; }
.gp .btn-primary { --bs-btn-bg: #0c57bf; --bs-btn-border-color: #0c57bf; --bs-btn-hover-bg: #073677; --bs-btn-hover-border-color: #073677; --bs-btn-active-bg: #073677; --bs-btn-active-border-color: #073677; }
.gp .btn-outline-primary { --bs-btn-color: #0c57bf; --bs-btn-border-color: #0c57bf; --bs-btn-hover-bg: #0c57bf; --bs-btn-hover-border-color: #0c57bf; --bs-btn-active-bg: #0c57bf; }

/* ------------------------------------------------------------ bandeau du haut */
.gp-top { background: var(--gp-blue); border-bottom: 1px solid rgba(255,255,255,.55); font-size: 1rem; color: #000; }
.gp-top-in { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: .35rem 0; }
.gp-top a { color: #000; text-decoration: none; padding: .35rem 0; white-space: nowrap; }
.gp-top a:hover { text-decoration: underline; }
.gp-top .bi { font-size: 1.25rem; vertical-align: -.2rem; margin-right: .45rem; }
.gp-top-site { flex: 1 1 auto; }

/* ------------------------------------------------------------ menu */
.gp-header { background: var(--gp-blue); z-index: 1030; }
.gp-header .navbar { padding: .7rem 0; }
.gp-header .navbar-brand { font-size: 1.5rem; line-height: 1.5; color: #000; font-weight: 400; margin-right: 2rem; }
.gp-header .nav-link { color: #000; font-size: 1rem; padding: .5rem 2.3rem; }
.gp-header .nav-link:hover, .gp-header .nav-link:focus { color: #000; text-decoration: underline; text-underline-offset: .35rem; }
.gp-header .nav-link.active { font-weight: 600; text-decoration: underline; text-underline-offset: .35rem; }
.gp-header .navbar-toggler { border: 0; color: #000; padding: .25rem .4rem; }
.gp-header .navbar-toggler:focus { box-shadow: none; }
@media (max-width: 991.98px) {
	.gp-header .navbar-brand { font-size: 1.2rem; margin-right: 0; }
	.gp-header .navbar-collapse { border-top: 1px solid rgba(255,255,255,.6); margin-top: .6rem; padding: .4rem 0; }
	.gp-header .nav-link { padding: .6rem 0; }
}

/* ------------------------------------------------------------ sections */
.gp-body { min-height: 60vh; }
.gp-section { padding: 3.2rem 0; scroll-margin-top: 5.5rem; }
.gp-section.gp-first { padding-top: 5rem; }
.gp-title { text-align: center; font-weight: 300; color: var(--gp-title); font-size: clamp(1.9rem, 1.3rem + 2vw, 3rem); line-height: 1.3; margin: 0 0 2.2rem; }
.gp-row { justify-content: center; row-gap: 1.6rem; }
.gp-text { max-width: 760px; margin-left: auto; margin-right: auto; }
.gp-wide { max-width: none; }
.gp-obj-title { font-weight: 600; font-size: 1.25rem; color: var(--gp-title); margin: 1.2rem 0 .6rem; }
.gp-obj-body > *:first-child { margin-top: 0; }
.gp-obj-body p { margin-bottom: 1.15rem; }
.gp-obj-body ul { padding-left: 1.4rem; }
.gp-obj-body li { margin-bottom: .25rem; }
.gp-obj-body h3 { font-size: 1.15rem; font-weight: 600; margin: 1.8rem 0 .5rem; color: var(--gp-title); }
.gp-obj-body .card-text { font-size: inherit; }
/* coin d'edition (comme waterski) : triangle en haut a droite du bloc, visible au survol - administrateurs connectes */
.gp-obj { position: relative; }
a.gp-edit-ico { position: absolute; top: 0; right: 0; z-index: 6; width: 3rem; height: 3rem; margin: 0; background: var(--gp-blue-dark); clip-path: polygon(0 0, 100% 0, 100% 100%); color: #fff !important; text-decoration: none; opacity: 0; transition: opacity .2s; }
a.gp-edit-ico i { position: absolute; top: .4rem; right: .4rem; font-size: .9rem !important; line-height: 1; }
.gp-obj:hover a.gp-edit-ico, a.gp-edit-ico:focus-visible { opacity: 1; }
a.gp-edit-ico:hover { filter: brightness(1.15); }
/* maj 2026-11-06 20:07:55 : la carte est rentree de la demi-gouttiere de la colonne : le coin se cale sur le bord de la carte */
.row > .gp-obj > a.gp-edit-ico { right: calc(var(--bs-gutter-x, 1.5rem) * .5); }

/* coordonnees (page contact) */
.gp-contact { margin: 0; padding: 0; }
.gp-contact li { display: flex; gap: 1rem; align-items: flex-start; margin: 0 0 1.4rem; font-size: 1.15rem; }
.gp-contact .bi { color: var(--gp-blue-dark); font-size: 1.6rem; line-height: 1.2; flex: 0 0 auto; }
.gp-contact a { color: inherit; }
.gp-contact a:hover { color: var(--gp-blue-deep); }
.gp-map { width: 100%; height: 420px; border: 0; display: block; }

/* formulaire de contact (pxoPfRender) */
.gp-obj-body form .form-control, .gp-obj-body form .form-select { border-radius: .35rem; }
.gp-obj-body form label { font-size: .95rem; }

/* ------------------------------------------------------------ pied de page */
.gp-footer { background: var(--gp-blue); padding: 2rem 0 1.1rem; margin-top: 3rem; text-align: center; color: #000; }
.gp-social a { color: #000; font-size: 1.6rem; margin: 0 .7rem; text-decoration: none; }
.gp-social a:hover { color: var(--gp-blue-deep); }
.gp-copy { margin: .9rem 0 0; font-size: .95rem; line-height: 1.6; }
.gp-copy a { color: #000; }
.gp-login { margin-left: .5rem; opacity: .35; text-decoration: none; }
.gp-login:hover { opacity: 1; }

/* ------------------------------------------------------------ pages techniques (espace perso, erreurs) : cartes simples */
.gp-main .card { border-radius: .6rem; }
.gp-main .news-card { box-shadow: 0 .25rem 1rem rgba(0,0,0,.08) !important; }
.gp-main .news-card .card-body { text-align: left; }
.gp-404-code { color: var(--gp-blue); }
#gpToTop { position: fixed; right: 1.1rem; bottom: 1.1rem; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 0; background: var(--gp-blue-dark); color: #fff; display: none; align-items: center; justify-content: center; z-index: 1020; box-shadow: 0 .2rem .6rem rgba(0,0,0,.25); }
#gpToTop.show { display: flex; }
@media (max-width: 575.98px) { .gp-section { padding: 2.2rem 0; } .gp-section.gp-first { padding-top: 3rem; } .gp-map { height: 320px; } }
/* objet « pleine largeur » avec titre (ex. plan d'acces) : titre centre comme celui d'une rubrique */
.gp-wide .gp-obj-title { text-align: center; font-weight: 300; font-size: clamp(1.9rem, 1.3rem + 2vw, 3rem); margin: 2rem 0 1.6rem; }
.gp-obj .gp-map { margin-top: .5rem; }
@media (min-width: 768px) { .gp-row > .gp-obj.col-md-6 { max-width: 50%; } }

/* carte (plan d'acces) : pleine largeur de la fenetre, bord a bord, collee au pied de page */
.gp-body { overflow-x: hidden; }
.gp-wide .gp-map { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: 0; margin-bottom: 0; height: 450px; }
.gp-section:has(.gp-wide .gp-map) { padding-bottom: 0; }
.gp-section:has(.gp-wide .gp-map) .gp-row { row-gap: 0; }
@media (max-width: 575.98px) { .gp-wide .gp-map { height: 340px; } }

/* police : comme l'ancien site (Open Sans fine, 300, gris tres fonce) ; menu et gras restent plus epais */
.gp-header { font-weight: 400; }
.gp-body strong, .gp-body b, .gp-body th { font-weight: 600; }
.gp-body .form-control { font-weight: 300; }
