/* =====================================================================
   EIA sarl — Système de design
   Palette issue du logo : bleu marine (structure), bleu électrique
   (énergie), orange courant (accent). Signature visuelle : le schéma
   électrique — traits fins, angles droits, points de connexion — en
   écho direct au métier de l'entreprise.
   ===================================================================== */

:root{
  /* Couleurs de marque */
  --navy:        #0D2B5E;
  --navy-deep:   #081D42;
  --blue:        #1B87D3;
  --blue-soft:   #E4F1FB;
  --orange:      #F08A2A;
  --orange-deep: #D9741A;

  /* Neutres */
  --ink:      #232B38;
  --muted:    #626B79;
  --faint:    #93A0AF;
  --line:     #E1E7F0;
  --paper:    #F5F8FC;
  --white:    #FFFFFF;

  /* Typographie */
  --font-display: 'Space Grotesk', 'Helvetica Neue', Arial, sans-serif;
  --font-body:    'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;

  /* Échelle */
  --fs-h1: clamp(2.3rem, 1.55rem + 3.6vw, 3.75rem);
  --fs-h2: clamp(1.7rem, 1.35rem + 1.6vw, 2.5rem);
  --fs-h3: clamp(1.15rem, 1.05rem + 0.5vw, 1.4rem);
  --fs-lead: clamp(1.05rem, 1rem + 0.3vw, 1.2rem);

  /* Mise en page */
  --container: 1180px;
  --radius-s: 4px;
  --radius-m: 8px;
  --shadow-card: 0 1px 2px rgba(13,43,94,.06);
  --shadow-lift: 0 18px 44px rgba(8,29,66,.16);
}

/* ---------------------------------------------------------------------
   Réinitialisation & base
   --------------------------------------------------------------------- */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{ font-family:var(--font-display); color:var(--navy); line-height:1.18; margin:0; font-weight:700; }
p{ margin:0 0 1em; max-width:66ch; }
ul,ol{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; }
:focus-visible{ outline:2.5px solid var(--orange); outline-offset:2px; }

.container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 24px; }
.section{ padding:88px 0; }
.section.tight{ padding:56px 0; }
@media (max-width:760px){
  .section{ padding:60px 0; }
  .section.tight{ padding:40px 0; }
}
.section-bg-paper{ background:var(--paper); }
.section-bg-navy{ background:var(--navy); color:#fff; }
.section-bg-navy h2, .section-bg-navy h3{ color:#fff; }

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-display); font-weight:600; font-size:.8rem;
  letter-spacing:.5px; color:var(--orange); margin-bottom:14px;
}
.eyebrow .stub{ display:inline-block; width:22px; height:2px; background:var(--orange); position:relative; }
.eyebrow .stub::after{
  content:''; position:absolute; right:0; top:-3px; width:8px; height:8px;
  border-radius:50%; background:var(--orange);
}

.lede{ font-size:var(--fs-lead); color:var(--muted); max-width:56ch; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-body); font-weight:600; font-size:.95rem;
  padding:13px 26px; border-radius:var(--radius-s); border:1.5px solid transparent;
  cursor:pointer; text-decoration:none; transition:background .15s ease, color .15s ease, border-color .15s ease, transform .1s ease;
  line-height:1.2;
}
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--orange); color:#fff; }
.btn-primary:hover{ background:var(--orange-deep); }
.btn-outline-light{ border-color:rgba(255,255,255,.55); color:#fff; }
.btn-outline-light:hover{ border-color:#fff; background:rgba(255,255,255,.08); }
.btn-outline-navy{ border-color:var(--navy); color:var(--navy); }
.btn-outline-navy:hover{ background:var(--navy); color:#fff; }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.6; cursor:not-allowed; }
.btn-row{ display:flex; gap:14px; flex-wrap:wrap; }

/* ---------------------------------------------------------------------
   En-tête
   --------------------------------------------------------------------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--navy-deep);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:box-shadow .2s ease;
}
.site-header.is-solid{
  box-shadow:0 6px 24px rgba(0,0,0,.22);
  backdrop-filter:blur(8px);
}
.site-header .bar{ display:flex; align-items:center; justify-content:space-between; height:78px; }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand img{ height:34px; }
.brand .word{ font-family:var(--font-display); font-weight:700; color:#fff; font-size:1rem; letter-spacing:.2px; }

.main-nav{ display:flex; align-items:center; gap:6px; }
.main-nav a{
  color:#D9E3F2; text-decoration:none; font-size:.92rem; font-weight:500;
  padding:9px 14px; border-radius:6px; transition:color .15s ease, background .15s ease;
}
.main-nav a:hover{ color:#fff; background:rgba(255,255,255,.08); }
.main-nav a.active{ color:#fff; }
.header-actions{ display:flex; align-items:center; gap:14px; }
.header-phone{
  color:#fff; text-decoration:none; font-size:.9rem; font-weight:600;
  display:flex; align-items:center; gap:7px;
}
.header-phone svg{ width:16px; height:16px; flex:none; }

.nav-toggle{
  display:none; background:none; border:none; padding:6px; cursor:pointer;
}
.nav-toggle span{ display:block; width:24px; height:2px; background:#fff; margin:5px 0; transition:transform .2s ease, opacity .2s ease; }

@media (max-width:920px){
  .main-nav{
    position:fixed; inset:78px 0 0 0; background:var(--navy-deep);
    flex-direction:column; align-items:stretch; padding:18px; gap:2px;
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
  }
  .main-nav.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .main-nav a{ padding:14px 10px; border-bottom:1px solid rgba(255,255,255,.08); border-radius:0; }
  .nav-toggle{ display:block; }
  .header-phone .txt{ display:none; }
}

/* ---------------------------------------------------------------------
   Bandeau de page (pages intérieures)
   --------------------------------------------------------------------- */
.page-hero{
  background:var(--navy); color:#fff; padding:64px 0 56px;
  background-image:
    linear-gradient(rgba(13,43,94,.94), rgba(13,43,94,.94)),
    linear-gradient(rgba(255,255,255,.5) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.5) 1px, transparent 1px);
  background-size:auto, 34px 34px, 34px 34px;
  position:relative; overflow:hidden;
}

.page-hero .container{ position:relative; z-index:1; }
.page-hero .eyebrow{ color:var(--orange); }
.page-hero h1{ color:#fff; font-size:var(--fs-h1); max-width:16ch; }
.page-hero .lede{ color:#C8D6EA; margin-top:14px; }
.breadcrumb{ font-size:.82rem; color:#9FB3D0; margin-bottom:18px; }
.breadcrumb a{ color:#C8D6EA; text-decoration:none; }
.breadcrumb a:hover{ text-decoration:underline; }

/* ---------------------------------------------------------------------
   Hero d'accueil
   --------------------------------------------------------------------- */
.hero{
  position:relative; overflow:hidden; color:#fff;
  background:
    radial-gradient(ellipse 900px 500px at 82% -10%, rgba(27,135,211,.35), transparent 60%),
    linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 62%, #0B2450 100%);
  padding:72px 0 0;
}
.hero-grid{
  position:absolute; inset:0; opacity:.16; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.5) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.5) 1px, transparent 1px);
  background-size:38px 38px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.9), transparent 85%);
}
.hero-inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; }
.hero-copy h1{
  color:#fff; font-size:var(--fs-h1); max-width:15ch; letter-spacing:-.5px;
}
.hero-copy h1 em{ color:var(--orange); font-style:normal; }
.hero-copy .lede{ color:#C8D6EA; margin:20px 0 30px; max-width:48ch; }
.hero-diagram{ position:relative; }
.hero-diagram svg{ width:100%; height:auto; display:block; }

.hero-trace path{
  fill:none; stroke:var(--orange); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:900; stroke-dashoffset:900;
  animation:draw 2.6s cubic-bezier(.65,0,.35,1) .4s forwards;
}
.hero-trace .trace-blue{ stroke:var(--blue); stroke-dasharray:600; stroke-dashoffset:600; animation:draw 2.2s cubic-bezier(.65,0,.35,1) .9s forwards; }
.hero-trace circle{ opacity:0; animation:pop .4s ease forwards; }
.hero-trace .n1{ animation-delay:1.5s; } .hero-trace .n2{ animation-delay:1.9s; }
.hero-trace .n3{ animation-delay:2.3s; } .hero-trace .n4{ animation-delay:2.7s; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
@keyframes pop{ from{ opacity:0; transform:scale(.4); } to{ opacity:1; transform:scale(1); } }
@media (prefers-reduced-motion: reduce){
  .hero-trace path{ animation:none; stroke-dashoffset:0; }
  .hero-trace circle{ animation:none; opacity:1; }
}

.stat-strip{
  position:relative; z-index:1; margin-top:56px; border-top:1px solid rgba(255,255,255,.14);
  background:rgba(4,14,34,.55);
}
.stat-strip .container{ display:grid; grid-template-columns:repeat(4,1fr); }
.stat-cell{
  padding:22px 20px; border-left:1px solid rgba(255,255,255,.12); text-align:left;
}
.stat-cell:first-child{ border-left:none; }
.stat-cell .v{ font-family:var(--font-display); font-size:1.7rem; font-weight:700; color:#fff; }
.stat-cell .v span{ color:var(--orange); }
.stat-cell .l{ font-size:.78rem; color:#9FB3D0; margin-top:2px; letter-spacing:.2px; }

@media (max-width:920px){
  .hero-inner{ grid-template-columns:1fr; }
  .hero-diagram{ order:-1; max-width:340px; margin:0 auto; }
  .stat-strip .container{ grid-template-columns:repeat(2,1fr); }
  .stat-cell:nth-child(3){ border-left:none; }
}
@media (max-width:640px){
  .hero-diagram{ display:none; }
}

/* ---------------------------------------------------------------------
   Bloc "à propos" avec portrait
   --------------------------------------------------------------------- */
.about-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center; }
.about-portrait{ position:relative; z-index:0; }
.about-portrait img{ border-radius:var(--radius-m); width:100%; }
.about-portrait::before{
  content:''; position:absolute; top:-16px; left:-16px; width:100%; height:100%;
  border:2px solid var(--orange); border-radius:var(--radius-m); z-index:-1;
}
.pull-quote{
  border-left:3px solid var(--orange); padding:4px 0 4px 22px; margin:26px 0;
}
.pull-quote p{ font-family:var(--font-display); font-size:1.25rem; color:var(--navy); font-weight:600; line-height:1.4; margin:0; max-width:none;}
@media (max-width:860px){
  .about-grid{ grid-template-columns:1fr; gap:36px; }
  .about-portrait{ max-width:340px; margin:0 auto; }
}
.devis-grid{ grid-template-columns:1.4fr 1fr; align-items:flex-start; }
@media (max-width:860px){ .devis-grid{ grid-template-columns:1fr; } }

.reverse-desktop .order-list{ order:2; }
.reverse-desktop .order-heading{ order:1; }
@media (max-width:860px){
  .reverse-desktop .order-list{ order:1; }
  .reverse-desktop .order-heading{ order:0; }
}

/* ---------------------------------------------------------------------
   Liste des pôles de service (feuille de spécifications, pas des cartes)
   --------------------------------------------------------------------- */
.pole-list{ border-top:1px solid var(--line); }
.pole-row{
  display:grid; grid-template-columns:64px 1fr; gap:26px;
  padding:34px 0; border-bottom:1px solid var(--line);
}
.pole-icon{
  width:56px; height:56px; border-radius:var(--radius-m); background:var(--blue-soft);
  display:flex; align-items:center; justify-content:center; flex:none;
}
.pole-icon svg{ width:28px; height:28px; }
.pole-row h3{ font-size:var(--fs-h3); margin-bottom:8px; }
.pole-row p{ color:var(--muted); margin-bottom:12px; }
.pole-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.pole-tags span{
  font-size:.78rem; color:var(--navy); background:var(--paper); border:1px solid var(--line);
  padding:4px 10px; border-radius:12px;
}
@media (max-width:640px){
  .pole-row{ grid-template-columns:1fr; }
}

/* ---------------------------------------------------------------------
   Méthode — séquence réelle en 4 étapes, reliées par un trait
   --------------------------------------------------------------------- */
.method-rail{ display:flex; justify-content:space-between; position:relative; counter-reset:step; }
.method-rail::before{
  content:''; position:absolute; top:19px; left:5%; right:5%; height:2px;
  background:repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 14px);
}
.method-step{ position:relative; flex:1; padding:0 14px; text-align:left; }
.method-step .dot{
  width:40px; height:40px; border-radius:50%; background:#fff; border:2px solid var(--orange);
  color:var(--orange); font-family:var(--font-display); font-weight:700; font-size:1rem;
  display:flex; align-items:center; justify-content:center; margin-bottom:18px; position:relative; z-index:1;
}
.method-step h4{ font-family:var(--font-display); color:var(--navy); font-size:1.02rem; margin-bottom:6px; }
.method-step p{ font-size:.92rem; color:var(--muted); }
@media (max-width:820px){
  .method-rail{ flex-direction:column; gap:28px; }
  .method-rail::before{ top:5%; bottom:5%; left:19px; right:auto; width:2px; height:auto; background:repeating-linear-gradient(180deg, var(--line) 0 8px, transparent 8px 14px); }
  .method-step{ padding:0 0 0 58px; }
  .method-step .dot{ position:absolute; left:0; top:0; margin-bottom:0; }
}

/* ---------------------------------------------------------------------
   Contexte / chiffres clés
   --------------------------------------------------------------------- */
.context-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.context-cell{ background:#fff; padding:30px 26px; }
.context-cell .big{ font-family:var(--font-display); font-size:2.1rem; color:var(--orange); font-weight:700; }
.context-cell h4{ font-size:1rem; margin:10px 0 8px; }
.context-cell p{ font-size:.9rem; color:var(--muted); margin:0; }
@media (max-width:760px){ .context-grid{ grid-template-columns:1fr; } }

/* ---------------------------------------------------------------------
   Réalisations — études de cas + galerie terrain (photos inclinées)
   --------------------------------------------------------------------- */
.case{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; padding:50px 0; border-bottom:1px solid var(--line); }
.case:last-child{ border-bottom:none; }
.case.reverse .case-media{ order:-1; }
.case-tag{
  display:inline-block; font-size:.76rem; font-weight:700; letter-spacing:.4px;
  color:var(--navy); background:var(--blue-soft); padding:4px 11px; border-radius:12px; margin-bottom:14px;
}
.case h3{ font-size:1.5rem; margin-bottom:12px; }
.case ul{ margin:16px 0; }
.case ul li{ position:relative; padding-left:20px; margin-bottom:8px; font-size:.94rem; color:var(--muted); }
.case ul li::before{ content:''; position:absolute; left:0; top:9px; width:7px; height:7px; background:var(--orange); }
.case-stats{ display:flex; gap:26px; margin-top:18px; }
.case-stats div{ font-family:var(--font-display); font-size:1.5rem; color:var(--navy); font-weight:700; }
.case-stats span{ display:block; font-family:var(--font-body); font-size:.76rem; color:var(--muted); font-weight:400; }
.case-media{ position:relative; z-index:0; min-height:260px; }
.case-media img{
  position:absolute; border:6px solid #fff; box-shadow:var(--shadow-lift); border-radius:2px;
}
.case-media .p1{ width:64%; top:0; left:2%; transform:rotate(-3deg); z-index:2; }
.case-media .p2{ width:52%; bottom:0; right:0; transform:rotate(4deg); z-index:1; }
@media (max-width:860px){
  .case{ grid-template-columns:1fr; gap:30px; }
  .case-media{ width:100%; min-height:220px; max-width:380px; margin:0 auto; order:-1; }
}

.field-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:34px; margin-top:20px; }
.field-photo{ text-align:center; }
.field-photo img{
  border:6px solid #fff; box-shadow:var(--shadow-lift); border-radius:2px; margin:0 auto 14px;
}
.field-photo:nth-child(1) img{ transform:rotate(-2.5deg); }
.field-photo:nth-child(2) img{ transform:rotate(2deg); }
.field-photo:nth-child(3) img{ transform:rotate(-1.5deg); }
.field-photo .cap{ font-size:.85rem; color:var(--muted); }
@media (max-width:760px){ .field-gallery{ grid-template-columns:1fr; max-width:280px; margin-left:auto; margin-right:auto; } }

/* ---------------------------------------------------------------------
   Bandeau CTA
   --------------------------------------------------------------------- */
.cta-band{ background:var(--orange); color:#fff; padding:52px 0; }
.cta-band .container{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.cta-band h2{ color:#fff; font-size:1.6rem; max-width:20ch; }
.cta-band .btn-primary{ background:#fff; color:var(--orange-deep); }
.cta-band .btn-primary:hover{ background:#fff3e8; }

/* ---------------------------------------------------------------------
   Formulaires
   --------------------------------------------------------------------- */
.form-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-m); padding:34px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-field{ margin-bottom:18px; }
.form-field.full{ grid-column:1 / -1; }
.form-field label{ display:block; font-size:.85rem; font-weight:600; color:var(--navy); margin-bottom:7px; }
.form-field .optional{ font-weight:400; color:var(--faint); }
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:var(--radius-s);
  font-family:inherit; font-size:.95rem; color:var(--ink); background:#fff;
  transition:border-color .15s ease;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  border-color:var(--blue); outline:none;
}
.form-field textarea{ resize:vertical; min-height:120px; }
.form-hint{ font-size:.78rem; color:var(--faint); margin-top:5px; }
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.form-banner{
  display:none; align-items:flex-start; gap:12px; padding:14px 16px; border-radius:var(--radius-s);
  font-size:.92rem; margin-bottom:22px;
}
.form-banner.show{ display:flex; }
.form-banner.success{ background:#E5F6ED; color:#1E7A46; border:1px solid #BFE7CF; }
.form-banner.error{ background:#FDECEA; color:#B23A2E; border:1px solid #F5C6C0; }

@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } .form-card{ padding:24px; } }

/* ---------------------------------------------------------------------
   Contact — coordonnées
   --------------------------------------------------------------------- */
.contact-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:48px; align-items:start; }
.contact-info-list{ margin-top:22px; }
.contact-info-item{ display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); }
.contact-info-item:first-child{ padding-top:0; }
.contact-info-item .ico{
  width:42px; height:42px; border-radius:50%; background:var(--blue-soft); flex:none;
  display:flex; align-items:center; justify-content:center;
}
.contact-info-item .ico svg{ width:20px; height:20px; }
.contact-info-item h4{ font-size:.95rem; margin-bottom:4px; }
.contact-info-item p{ font-size:.9rem; color:var(--muted); margin:0; }
.contact-info-item a{ color:var(--blue); text-decoration:none; }
.contact-info-item a:hover{ text-decoration:underline; }
.map-frame{ border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; margin-top:26px; }
.map-frame iframe{ width:100%; height:260px; border:0; display:block; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }

/* ---------------------------------------------------------------------
   Pied de page
   --------------------------------------------------------------------- */
.site-footer{ background:var(--navy-deep); color:#B9C7DD; padding:64px 0 0; }
.footer-top{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.1); }
.footer-brand img{ height:32px; margin-bottom:14px; }
.footer-brand p{ font-size:.88rem; color:#93A5C2; max-width:34ch; }
.footer-col h5{ color:#fff; font-family:var(--font-display); font-size:.88rem; margin-bottom:16px; letter-spacing:.3px; }
.footer-col ul li{ margin-bottom:10px; }
.footer-col a{ color:#B9C7DD; text-decoration:none; font-size:.9rem; }
.footer-col a:hover{ color:#fff; text-decoration:underline; }
.footer-newsletter p{ font-size:.88rem; color:#93A5C2; margin-bottom:14px; }
.newsletter-form{ display:flex; gap:8px; }
.newsletter-form input{
  flex:1; min-width:0; padding:11px 13px; border-radius:var(--radius-s); border:1.5px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06); color:#fff; font-size:.88rem;
}
.newsletter-form input::placeholder{ color:#8296B5; }
.newsletter-form input:focus{ outline:none; border-color:var(--orange); }
.newsletter-form button{
  background:var(--orange); border:none; color:#fff; padding:0 16px; border-radius:var(--radius-s);
  cursor:pointer; font-size:1.1rem; line-height:1; display:flex; align-items:center; justify-content:center;
}
.newsletter-form button:hover{ background:var(--orange-deep); }
.footer-newsletter .form-banner{ margin-top:10px; margin-bottom:0; padding:10px 12px; font-size:.82rem; }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap;
  padding:22px 0; font-size:.78rem; color:#7488A6;
}
.footer-bottom a{ color:#93A5C2; text-decoration:none; }
.footer-bottom a:hover{ text-decoration:underline; }
.footer-legal{ display:flex; gap:16px; flex-wrap:wrap; }
@media (max-width:860px){
  .footer-top{ grid-template-columns:1fr 1fr; gap:32px; }
}
@media (max-width:560px){
  .footer-top{ grid-template-columns:1fr; }
}

/* ---------------------------------------------------------------------
   Utilitaires
   --------------------------------------------------------------------- */
.text-center{ text-align:center; }
.mx-auto{ margin-left:auto; margin-right:auto; }
.mt-0{ margin-top:0; }
.section-head{ max-width:640px; margin-bottom:48px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
