/* ===== VSG Consulting — identité visuelle (VSG Design System) ===== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

:root{
  --vsg-navy:#27303C; --vsg-ink:#1F2937; --vsg-ink-700:#3F4A5A; --vsg-ink-500:#6B7280;
  --vsg-steel:#6E93AB; --vsg-steel-600:#5A7C93; --vsg-slate:#6F8CAF;
  --vsg-grey-100:#F2F1F2; --vsg-grey-50:#F8F8F8; --vsg-line:#DCDEE2;
}

/* Typographie : Inter partout */
body, p, li, a, span, div, label, input, textarea, select, button,
h1, h2, h3, h4, h5, h6 { font-family:'Inter','Aptos','Segoe UI',system-ui,sans-serif !important; }
body { color:var(--vsg-ink); }
h1, h2, h3, h4, h5, h6 { color:var(--vsg-ink) !important; font-style:normal !important; }
em, i { font-style:normal !important; }
p { line-height:1.6; }

/* Plat : aucune ombre, aucun coin arrondi (sauf pastilles d'icônes) */
* { box-shadow:none !important; text-shadow:none !important; }
.zpbutton, input, textarea, select, .zpform-container input, .zpform-container textarea { border-radius:0 !important; }

/* Liens */
a { color:var(--vsg-steel); }
a:hover { color:var(--vsg-ink); }

/* Boutons */
.zpbutton.zpbutton-type-primary { background:var(--vsg-navy) !important; border-color:var(--vsg-navy) !important; color:#fff !important; font-weight:600 !important; letter-spacing:.01em; transition:background-color .2s ease, color .2s ease; }
.zpbutton.zpbutton-type-primary:hover { background:var(--vsg-steel-600) !important; border-color:var(--vsg-steel-600) !important; color:#fff !important; }

/* Accueil (hero) : panneau marine plein */
.theme-banner .zphero { background:#111214 !important; }
/* image de bannière : fournie par Virginia */
.theme-banner h1, .theme-banner h2, .theme-banner p { color:#fff !important; }
.theme-banner h1 span, .theme-banner h2 span { color:var(--vsg-steel) !important; }
.theme-banner h5 { color:var(--vsg-steel) !important; font-size:15px !important; font-weight:700 !important; text-transform:uppercase; letter-spacing:.08em; font-style:normal !important; }
.theme-banner p { color:rgba(255,255,255,.82) !important; font-size:18px !important; max-width:620px; }
.theme-banner .zpbutton.zpbutton-type-primary { background:#fff !important; border-color:#fff !important; color:var(--vsg-navy) !important; }
.theme-banner .zpbutton.zpbutton-type-primary:hover { background:var(--vsg-steel) !important; border-color:var(--vsg-steel) !important; color:#fff !important; }

/* Icônes : pastilles circulaires marine, pictogramme blanc */
.zpicon-container .zpicon { background:var(--vsg-navy) !important; border-color:var(--vsg-navy) !important; border-radius:50% !important; }
.zpicon-container .zpicon svg, .zpicon-container .zpicon svg path { fill:#fff !important; }

/* Arrière-plans de sections */
[data-element-id="elm_bgYG0GGPkqfVSLQGMnsOBQ"] { background:var(--vsg-grey-100) !important; }
[data-element-id="elm_705TWg4VftAdrdeb1FVl7w"], [data-element-id="elm_a5ANc25xgyszUEZK-9-4EQ"] { background:var(--vsg-grey-50) !important; }

/* Titres de section */
.theme-content-area h2 { font-weight:400 !important; letter-spacing:-.01em; }
.zpicon-heading { font-weight:600 !important; }

/* En-tête : fond blanc, logo compact */
.theme-header { background:#fff !important; border-bottom:1px solid var(--vsg-line); }
.theme-logo-parent img { height:48px !important; width:auto !important; max-height:48px !important; }
.theme-header .zpcontainer { padding-top:14px !important; padding-bottom:14px !important; }
.theme-site-name, .theme-site-name a, .theme-header [class*="site-name"] a { color:var(--vsg-ink) !important; font-weight:600 !important; letter-spacing:.02em; }
.theme-header nav a, .theme-header [class*="menu"] a { color:var(--vsg-ink) !important; font-weight:500 !important; }
.theme-header nav a:hover, .theme-header [class*="menu"] a:hover { color:var(--vsg-steel) !important; }
.theme-banner { padding-top:77px; }

/* Titre principal */
.theme-banner h1, .theme-banner h2 { font-size:clamp(34px,5.2vw,58px) !important; font-weight:400 !important; line-height:1.15 !important; letter-spacing:-.015em; }
.theme-banner h1 span, .theme-banner h2 span { font-weight:700 !important; }

/* Titres et blocs de contenu */
.theme-content-area h2 { font-size:clamp(28px,3.4vw,40px) !important; line-height:1.2 !important; }
.zpicon-heading { font-size:19px !important; line-height:1.35 !important; margin-top:18px !important; margin-bottom:10px !important; }
.zpicon-text-container p { font-size:15px !important; line-height:1.6 !important; color:var(--vsg-ink-700) !important; }
.zpicon-container .zpicon { width:52px !important; height:52px !important; padding:0 !important; display:inline-flex !important; align-items:center; justify-content:center; }
.zpicon-container .zpicon svg { width:22px !important; height:22px !important; }
.zshover-column-box { border:0 !important; }
.zpelem-box { background:#fff !important; border:1px solid var(--vsg-line) !important; padding:32px 24px !important; height:100%; }

/* Formulaire */
.zpform-container input, .zpform-container textarea { border:1px solid var(--vsg-line) !important; background:#fff !important; }
.zpform-container input:focus, .zpform-container textarea:focus { border-color:var(--vsg-steel) !important; outline:none; }

/* Mobile */
@media (max-width: 767px) {
  .theme-banner { padding-top:64px; }
  .theme-logo-parent img { height:40px !important; }
  .theme-banner p { font-size:16px !important; }
}

/* Contact + formulaire : un seul bloc */
[data-element-id="elm_705TWg4VftAdrdeb1FVl7w"] { padding-bottom:0 !important; }
[data-element-id="elm_a5ANc25xgyszUEZK-9-4EQ"] { padding-top:8px !important; }
.zpform-info { display:none !important; }
input[type="reset"].zpbutton { display:none !important; }
.zpform-container input[type="submit"], input[type="submit"].zpbutton { border-radius:0 !important; padding-left:32px !important; padding-right:32px !important; }

/* Pied de page : bandeau marine */
.theme-footer-area, .theme-footer-area .zpsection, .theme-footer-area [data-element-type="section"] { background:var(--vsg-navy) !important; }
.theme-footer-area h1, .theme-footer-area h2, .theme-footer-area h3 { color:#fff !important; font-size:18px !important; font-weight:600 !important; text-transform:uppercase; letter-spacing:.08em; }
.theme-footer-area p { color:rgba(255,255,255,.78) !important; font-size:14px !important; }
.theme-footer-area a { color:#fff !important; }
.theme-footer-area a:hover { color:var(--vsg-steel) !important; }

/* Ajustements finaux */
.theme-banner { background:#111214 !important; }
.theme-content-area .zpheading-style-type2::after { display:none !important; }
.theme-footer-area .zpheading::after { background:var(--vsg-steel) !important; }
@media (min-width: 992px) { .zpelem-box { min-height:320px; } }

/* Photo de bannière : panneau photo à droite, texte sur fond marine à gauche */
.theme-banner .zpslider-img { background-size:auto 100% !important; background-position:right -160px center !important; background-repeat:no-repeat !important; }
.theme-banner [data-element-type="column"] { max-width:540px !important; }
.theme-banner h1 { font-size:clamp(34px,4.2vw,50px) !important; }
@media (max-width: 991px) {
  .theme-banner .zpslider-img { background-size:cover !important; background-position:70% top !important; }
  .theme-banner .zpslider-img::after { content:""; position:absolute; inset:0; background:rgba(17,18,20,.72); pointer-events:none; }
  .theme-banner [data-element-type="column"] { max-width:none !important; position:relative; z-index:2; }
}

/* Logo seul, visible sur toutes les tailles d'écran */
.theme-logo-parent, .theme-logo-parent.theme-disable-logo-mobile, .theme-logo-parent a, .theme-logo-parent picture, .theme-logo-parent img { display:block !important; visibility:visible !important; }
@media (max-width: 991px) { .theme-logo-parent img { height:40px !important; width:auto !important; } }

/* Tablette et mobile : l'en-tête n'est pas superposé, pas d'espace au-dessus de la photo */
@media (max-width: 991px) { .theme-banner { padding-top:0 !important; } }

