/* common.css — Site public Plistin Box Stockage : éléments partagés par au moins deux pages.
   Tout ce qui est spécifique à une seule page vit dans son propre fichier (index.css, contact.css,
   faq.css…), chargé en plus de celui-ci par la page concernée. */

:root{
  --color-orange:#ff9900;
  --color-orange-dark:#d97f00;
  --color-navy:#1b2a4a;
  --color-navy-light:#2d4270;
  --color-white:#ffffff;
  --color-grey-light:#f4f5f7;
  --color-grey-mid:#e4e6ea;
  --color-text:#22262e;
  --color-text-soft:#5b6472;
}

*{box-sizing:border-box;}
body{margin:0;font-family:'Inter',system-ui,-apple-system,sans-serif;color:var(--color-text);background:var(--color-white);}
a{color:var(--color-orange-dark);text-decoration:none;}
a:hover{color:var(--color-orange);}
h1,h2,h3{margin:0;}
img{max-width:100%;height:auto;display:block;}
.container{max-width:1200px;margin:0 auto;padding:0 24px;}

/* ── Utilitaires génériques (remplacent les anciens style="" ponctuels) ── */
.u-text-center{text-align:center;}
.u-text-soft{color:var(--color-text-soft);}
.u-mt-22{margin-top:22px;}
.u-mt-40{margin-top:40px;}
.u-mt-48{margin-top:48px;}

/* ── Calque d'image de fond en transparence (zones navy/grey, back-office) ──
   L'image et l'opacité (propres à chaque enregistrement en base) sont lues
   depuis data-bg-image/data-bg-opacity et appliquées en JavaScript via
   element.style — jamais via un attribut style="" dans le HTML, donc hors du
   champ de style-src. Voir index.js. */
/* background-size en 100% largeur (jamais "cover") : l'image occupe toute la
   largeur de la zone et reste centrée verticalement, quitte à perdre le haut
   et le bas si elle est plus haute que la zone — jamais les côtés. */
.bg-layer{position:absolute;inset:0;background-size:100% auto;background-position:center;background-repeat:no-repeat;pointer-events:none;}

/* ── Bandeaux ───────────────────────────────────────────────── */
/* Couleur de fond appliquée en JS (opacité réglable en admin) — voir common.js. */
.site-banner{padding:16px 24px;text-align:center;font-size:13.5px;}
.site-banner-closure{color:#fff;}
.site-banner-closure .site-banner-inner span{display:block;font-weight:400;opacity:.8;font-size:12.5px;margin-top:2px;}
.site-banner-message{color:#fff;font-weight:600;}
.site-banner-text-navy{color:var(--color-navy, #1b2a4a);}
.site-banner-text-navy .site-banner-inner span{opacity:.65;}

/* ── Header ─────────────────────────────────────────────────── */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--color-grey-mid);}
.site-header-inner{max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.site-brand{display:flex;align-items:center;gap:12px;color:inherit;}
.site-brand:hover{color:inherit;}
.site-brand-logo{width:44px;height:46px;flex-shrink:0;display:block;}
.site-brand-logo-sm{width:36px;height:38px;}

/* Repli si public/assets/img/brand/logo-icon.svg est absent (voir inc/fn_brand.php) */
.logo-fallback{border-radius:10px;background:var(--color-orange);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;}
.site-brand-logo.logo-fallback{font-size:20px;}
.site-brand-logo-sm.logo-fallback{font-size:16px;}
.site-brand-text{line-height:1.15;}
.site-brand-name{font-weight:800;font-size:17px;color:var(--color-navy);}
.site-brand-sub{font-size:11px;color:var(--color-text-soft);letter-spacing:.03em;}
.site-nav{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.site-nav a{color:var(--color-text);font-weight:600;font-size:15px;}
.site-nav a.active,.site-nav a:hover{color:var(--color-orange-dark);}
.site-header-actions{display:flex;align-items:center;gap:12px;}
.site-phone-link{display:flex;align-items:center;gap:8px;color:var(--color-navy);font-weight:700;font-size:15px;}
.btn-cta{background:var(--color-orange);color:#fff;font-weight:700;font-size:14px;padding:11px 20px;border-radius:8px;}
.btn-cta:hover{background:var(--color-orange-dark);color:#fff;}

/* ── Boutons génériques (utilisés sur au moins deux pages) ─────── */
.btn-primary{display:inline-block;background:var(--color-orange);color:#fff;font-weight:700;font-size:16px;padding:15px 28px;border-radius:9px;border:none;cursor:pointer;font-family:inherit;}
.btn-primary:hover{background:var(--color-orange-dark);color:#fff;}
.btn-primary.on-navy{background:var(--color-navy);}

/* ── Sections génériques ───────────────────────────────────────── */
.section{padding:80px 24px;}
.section-grey{background:var(--color-grey-light);position:relative;overflow:hidden;}
.section-dots-dark{position:absolute;inset:0;opacity:.07;background-image:radial-gradient(circle,rgba(27,42,74,.9) 1.5px,transparent 1.5px);background-size:24px 24px;pointer-events:none;}
.section-inner{max-width:1200px;margin:0 auto;position:relative;z-index:1;}
.section-head{text-align:center;max-width:620px;margin:0 auto 48px;}
.section-head h2{font-size:32px;color:var(--color-navy);font-weight:800;margin-bottom:14px;}
.section-head p{font-size:16px;color:var(--color-text-soft);line-height:1.6;}

/* ── Cartes tarifs (index + tarifs) ──────────────────────────────── */
.pricing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;}
.pricing-grid.full{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));}
.pricing-card{background:#fff;border-radius:14px;overflow:hidden;border:1px solid var(--color-grey-mid);position:relative;}
.pricing-card.featured{border:2px solid var(--color-orange);}
.pricing-badge{position:absolute;top:14px;right:14px;background:var(--color-orange);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;}
.pricing-photo{aspect-ratio:4/3;background:var(--color-grey-mid);display:flex;align-items:center;justify-content:center;color:var(--color-text-soft);font-size:12px;font-weight:600;text-align:center;padding:12px;}
.pricing-photo img{width:100%;height:100%;object-fit:cover;}
.pricing-body{padding:22px;}
.pricing-label{font-size:17px;font-weight:700;color:var(--color-navy);margin-bottom:4px;}
.pricing-sub{font-size:13px;color:var(--color-text-soft);margin-bottom:14px;}
.pricing-price{font-size:24px;font-weight:800;color:var(--color-orange-dark);}
.pricing-price span{font-size:13px;font-weight:600;color:var(--color-text-soft);}

/* ── Footer ───────────────────────────────────────────────────── */
.site-footer{background:#13203a;}
.site-footer-inner{max-width:1200px;margin:0 auto;padding:56px 24px 32px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;}
.site-footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:#fff;font-weight:700;font-size:15px;}
.site-footer-inner p{font-size:13px;color:rgba(255,255,255,.55);line-height:1.6;}
.site-footer-title{color:#fff;font-weight:700;font-size:13.5px;margin-bottom:14px;}
.site-footer-text{font-size:13px;color:rgba(255,255,255,.6);line-height:2.1;}
.site-footer-text a{color:inherit;text-decoration:none;}
.site-footer-text a:hover{text-decoration:underline;}
.site-footer-links{display:flex;flex-direction:column;gap:9px;font-size:13px;}
.site-footer-links a{color:rgba(255,255,255,.6);}
.site-footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:20px 24px;text-align:center;font-size:12px;color:rgba(255,255,255,.4);}

/* ── Messages de formulaire (contact aujourd'hui, réutilisable ailleurs) ── */
.flash-success{background:rgba(27,42,74,.08);color:var(--color-navy);padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:14px;}
.flash-error{background:#fdecea;color:#c0392b;padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:14px;}

/* ── Pages légales (mentions légales + CGL : structure identique, deux pages) ── */
.legal-page{max-width:760px;margin:0 auto;padding:64px 24px;}
.legal-page h1{font-size:28px;color:var(--color-navy);margin-bottom:24px;}
.legal-content{font-size:15px;line-height:1.8;color:var(--color-text);}

/* ── Responsive (règles communes aux grilles définies ci-dessus) ─────── */
@media (max-width: 900px){
  .pricing-grid,.pricing-grid.full{grid-template-columns:repeat(2,minmax(0,1fr));}
  .site-footer-inner{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 560px){
  .pricing-grid,.pricing-grid.full{grid-template-columns:1fr;}
  .site-footer-inner{grid-template-columns:1fr;}
}
