/* 2SERVIT — feuille de style du site (charte : pack logo v1.0 du 05/11/2026).
   Bleu nuit #06234A et turquoise #00B39F ; le turquoise n'est jamais utilisé seul pour du texte sur fond clair
   (contraste 2,6:1) : texte et liens en turquoise foncé #007A6C (5,3:1). Police Noto Sans servie localement. */

@font-face { font-family: "Noto Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url(../fonts/noto-sans-regular.woff) format("woff"); }
@font-face { font-family: "Noto Sans"; font-weight: 600; font-style: normal; font-display: swap; src: url(../fonts/noto-sans-semibold.woff) format("woff"); }
@font-face { font-family: "Noto Sans"; font-weight: 800; font-style: normal; font-display: swap; src: url(../fonts/noto-sans-extrabold.woff) format("woff"); }

:root {
  --s2-nuit: #06234A;
  --s2-nuit-2: #0C3366;
  --s2-nuit-3: #12407C;
  --s2-turquoise: #00B39F;
  --s2-turquoise-fonce: #007A6C;
  --s2-turquoise-pale: #E6F7F5;
  --s2-texte: #1B2A3D;
  --s2-texte-doux: #4A5A70;
  --s2-texte-sur-nuit: #CFDCEA;
  --s2-fond: #FFFFFF;
  --s2-fond-2: #F3F6F9;
  --s2-bord: #DCE3EB;
  --s2-ombre: 0 1px 2px rgba(6, 35, 74, .06), 0 8px 24px rgba(6, 35, 74, .08);
  --s2-rayon: 14px;
  --s2-largeur: 1160px;
  --s2-police: "Noto Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body { margin: 0; background: var(--s2-fond); color: var(--s2-texte); font-family: var(--s2-police); font-size: 17px; line-height: 1.65; }
img, svg { max-width: 100%; height: auto; }
a { color: var(--s2-turquoise-fonce); text-underline-offset: .18em; }
a:hover { color: var(--s2-nuit); }
:focus-visible { outline: 3px solid var(--s2-turquoise); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3, h4 { color: var(--s2-nuit); font-weight: 800; line-height: 1.2; letter-spacing: -.01em; margin: 0 0 .5em; }
h1 { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.1rem); }
h2 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem); }
h3 { font-size: 1.22rem; }
p, ul, ol { margin: 0 0 1em; }
.wp-block-heading { margin-top: 0; }

.s2-evitement { position: absolute; left: -9999px; top: 0; z-index: 1000; background: var(--s2-nuit); color: #fff; padding: .7em 1.2em; }
.s2-evitement:focus { left: 1rem; top: 1rem; color: #fff; }
.s2-conteneur { width: 100%; max-width: var(--s2-largeur); margin: 0 auto; padding: 0 24px; }

/* Bandeau de recette */
.s2-bandeau-recette { background: var(--s2-turquoise); color: var(--s2-nuit); text-align: center; font-size: .82rem; font-weight: 600; padding: .35em 1em; letter-spacing: .02em; }

/* En-tête et menu */
.s2-entete { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--s2-bord); backdrop-filter: saturate(1.4) blur(6px); }
.admin-bar .s2-entete { top: 32px; }
.s2-entete__barre { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 80px; }
.s2-entete__marque { display: block; flex: 0 0 auto; line-height: 0; }
.s2-logo { width: 190px; height: auto; }
.s2-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.s2-menu > li { position: relative; }
.s2-menu a { display: block; white-space: nowrap; padding: .55em .8em; color: var(--s2-nuit); font-weight: 600; font-size: .95rem; text-decoration: none; border-radius: 8px; }
.s2-menu a:hover, .s2-menu .current-menu-item > a, .s2-menu .current-menu-ancestor > a, .s2-menu .current-page-ancestor > a { color: var(--s2-turquoise-fonce); background: var(--s2-turquoise-pale); }
.s2-menu .menu-item-has-children > a::after { content: ""; display: inline-block; width: .42em; height: .42em; margin-left: .45em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-.2em) rotate(45deg); }
.s2-menu .sub-menu { list-style: none; margin: 0; padding: 8px; position: absolute; left: 0; top: 100%; min-width: 230px; background: #fff; border: 1px solid var(--s2-bord); border-radius: 12px; box-shadow: var(--s2-ombre); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s; }
.s2-menu li:hover > .sub-menu, .s2-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.s2-menu .s2-menu-contact > a { background: var(--s2-nuit); color: #fff; padding-left: 1.1em; padding-right: 1.1em; margin-left: 8px; }
.s2-menu .s2-menu-contact > a:hover, .s2-menu .s2-menu-contact.current-menu-item > a { background: var(--s2-nuit-3); color: #fff; }
.s2-menu-bouton { display: none; align-items: center; gap: .55em; background: none; border: 1px solid var(--s2-bord); border-radius: 10px; padding: .55em .85em; font: 600 .95rem var(--s2-police); color: var(--s2-nuit); cursor: pointer; }
.s2-menu-bouton__icone, .s2-menu-bouton__icone::before, .s2-menu-bouton__icone::after { display: block; width: 20px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .2s, opacity .2s; }
.s2-menu-bouton__icone { position: relative; }
.s2-menu-bouton__icone::before, .s2-menu-bouton__icone::after { content: ""; position: absolute; left: 0; }
.s2-menu-bouton__icone::before { top: -6px; } .s2-menu-bouton__icone::after { top: 6px; }
.s2-menu-ouvert .s2-menu-bouton__icone { background: transparent; }
.s2-menu-ouvert .s2-menu-bouton__icone::before { transform: translateY(6px) rotate(45deg); }
.s2-menu-ouvert .s2-menu-bouton__icone::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1200px) {
  .s2-logo { width: 180px; }
  .s2-entete__barre { min-height: 72px; }
  .s2-menu-bouton { display: inline-flex; }
  .s2-navigation { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--s2-bord); box-shadow: var(--s2-ombre); max-height: calc(100vh - 72px); overflow-y: auto; }
  .s2-menu-ouvert .s2-navigation { display: block; }
  .s2-menu { flex-direction: column; align-items: stretch; padding: 12px 16px 20px; gap: 2px; }
  .s2-menu a { padding: .8em .9em; font-size: 1.02rem; }
  .s2-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; border: 0; box-shadow: none; padding: 0 0 0 16px; min-width: 0; }
  .s2-menu .menu-item-has-children > a::after { display: none; }
  .s2-menu .s2-menu-contact > a { margin: 8px 0 0; text-align: center; }
}

/* Mise en page des sections (blocs de l'éditeur) */
.s2-principal { display: block; }
.s2-contenu > *:not(.s2-section):not(.alignfull) { max-width: var(--s2-largeur); margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; }
.s2-section { padding: 76px 0; }
.s2-section > .wp-block-group__inner-container, .s2-section > .s2-int { max-width: var(--s2-largeur); margin: 0 auto; padding: 0 24px; }
.wp-block-group.s2-section { margin: 0; }
.s2-section--gris { background: var(--s2-fond-2); }
.s2-section--nuit { background: var(--s2-nuit); color: var(--s2-texte-sur-nuit); }
.s2-section--nuit h1, .s2-section--nuit h2, .s2-section--nuit h3 { color: #fff; }
.s2-section--nuit a:not(.wp-block-button__link):not(.s2-bouton) { color: #7FE3D6; }
.s2-section--serree { padding: 52px 0; }
.s2-surtitre { color: var(--s2-turquoise-fonce); font-weight: 800; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: .8em; }
.s2-section--nuit .s2-surtitre { color: var(--s2-turquoise); }
.s2-chapeau { font-size: 1.16rem; color: var(--s2-texte-doux); max-width: 46em; }
.s2-section--nuit .s2-chapeau { color: var(--s2-texte-sur-nuit); }
.s2-centre { text-align: center; }
.s2-centre .s2-chapeau { margin-left: auto; margin-right: auto; }
.s2-texte { max-width: 52em; }
.s2-intro { margin-bottom: 40px; }

/* Bandeau d'accueil */
.s2-heros { position: relative; overflow: hidden; background: radial-gradient(1100px 520px at 88% 10%, rgba(0, 179, 159, .22), transparent 60%), linear-gradient(160deg, var(--s2-nuit) 0%, #041A38 100%); color: var(--s2-texte-sur-nuit); padding: 104px 0 96px; }
.s2-heros::after { content: ""; position: absolute; right: -60px; bottom: -90px; width: 460px; height: 570px; background: url(../img/symbole-inverse.svg) no-repeat center / contain; opacity: .07; pointer-events: none; }
.s2-heros > .wp-block-group__inner-container, .s2-heros > .s2-int { position: relative; z-index: 1; max-width: var(--s2-largeur); margin: 0 auto; padding: 0 24px; }
.s2-heros h1 { color: #fff; max-width: 15em; }
.s2-heros .s2-chapeau { color: var(--s2-texte-sur-nuit); font-size: 1.22rem; }
.s2-heros .s2-surtitre { color: var(--s2-turquoise); }
.s2-entete-page { padding: 64px 0 56px; background: linear-gradient(180deg, var(--s2-fond-2), #fff); border-bottom: 1px solid var(--s2-bord); }
.s2-entete-page h1 { max-width: 18em; }
.s2-ariane { max-width: var(--s2-largeur); margin: 0 auto; padding: 18px 24px 0; font-size: .88rem; color: var(--s2-texte-doux); }
.s2-ariane a { color: var(--s2-texte-doux); }
.s2-page:has(.s2-ariane) .s2-entete-page { padding-top: 40px; }

/* Boutons (bloc Boutons et liens .s2-bouton) */
.wp-block-buttons { gap: 12px; margin-top: 28px; }
.wp-block-button__link, .s2-bouton { display: inline-flex; align-items: center; justify-content: center; gap: .5em; padding: .82em 1.45em; border-radius: 10px; font: 600 1rem/1.2 var(--s2-police); text-decoration: none; border: 2px solid transparent; transition: background .15s, color .15s, border-color .15s, transform .15s; cursor: pointer; }
.wp-block-button__link:hover, .s2-bouton:hover { transform: translateY(-1px); }
.wp-block-button__link, .s2-bouton--plein { background: var(--s2-nuit); color: #fff; }
.wp-block-button__link:hover, .s2-bouton--plein:hover { background: var(--s2-nuit-3); color: #fff; }
.is-style-s2-accent .wp-block-button__link, .s2-bouton--accent { background: var(--s2-turquoise); color: var(--s2-nuit); }
.is-style-s2-accent .wp-block-button__link:hover, .s2-bouton--accent:hover { background: #12C7B2; color: var(--s2-nuit); }
.is-style-s2-contour .wp-block-button__link, .s2-bouton--contour { background: transparent; color: var(--s2-nuit); border-color: var(--s2-nuit); }
.is-style-s2-contour .wp-block-button__link:hover, .s2-bouton--contour:hover { background: var(--s2-nuit); color: #fff; }
.s2-section--nuit .is-style-s2-contour .wp-block-button__link, .s2-heros .is-style-s2-contour .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .7); }
.s2-section--nuit .is-style-s2-contour .wp-block-button__link:hover, .s2-heros .is-style-s2-contour .wp-block-button__link:hover { background: #fff; color: var(--s2-nuit); }

/* Grilles de cartes : groupe .s2-grille contenant des groupes .s2-carte */
.s2-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.s2-grille > .wp-block-group__inner-container { display: contents; }
.s2-grille--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.s2-grille--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.s2-carte { position: relative; background: #fff; border: 1px solid var(--s2-bord); border-radius: var(--s2-rayon); padding: 28px 26px 22px; box-shadow: 0 1px 2px rgba(6, 35, 74, .04); transition: box-shadow .2s, border-color .2s, transform .2s; }
.s2-carte:hover { box-shadow: var(--s2-ombre); border-color: #C5D2DF; }
.s2-carte h3 { margin-bottom: .4em; }
.s2-carte p { color: var(--s2-texte-doux); margin-bottom: .7em; }
.s2-carte p:last-child { margin-bottom: 0; }
.s2-carte .s2-lien-suite a { font-weight: 600; text-decoration: none; }
.s2-carte .s2-lien-suite a::after { content: " →"; }
.s2-carte .s2-lien-suite a::before { content: ""; position: absolute; inset: 0; border-radius: var(--s2-rayon); }
.s2-section--nuit .s2-carte { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .14); }
.s2-section--nuit .s2-carte p { color: var(--s2-texte-sur-nuit); }

/* Pictogrammes (masques SVG colorés par la charte) : classe s2-ic-<nom> sur la carte */
[class*="s2-ic-"]::before { content: ""; display: block; width: 52px; height: 52px; margin-bottom: 18px; border-radius: 14px; background-color: var(--s2-turquoise-pale); background-image: var(--s2-ic); background-repeat: no-repeat; background-position: center; background-size: 28px 28px; }
.s2-section--nuit [class*="s2-ic-"]::before { background-color: #fff; }
.s2-ic-telecom { --s2-ic: url(../icones/telecom.svg); }
.s2-ic-reseau { --s2-ic: url(../icones/reseau.svg); }
.s2-ic-cyber { --s2-ic: url(../icones/cyber.svg); }
.s2-ic-hebergement { --s2-ic: url(../icones/hebergement.svg); }
.s2-ic-mobile { --s2-ic: url(../icones/mobile.svg); }
.s2-ic-distribution { --s2-ic: url(../icones/distribution.svg); }
.s2-ic-vps { --s2-ic: url(../icones/vps.svg); }
.s2-ic-dedie { --s2-ic: url(../icones/dedie.svg); }
.s2-ic-france { --s2-ic: url(../icones/france.svg); }
.s2-ic-interlocuteur { --s2-ic: url(../icones/interlocuteur.svg); }
.s2-ic-supervision { --s2-ic: url(../icones/supervision.svg); }
.s2-ic-cadenas { --s2-ic: url(../icones/cadenas.svg); }
.s2-ic-commande { --s2-ic: url(../icones/commande.svg); }
.s2-ic-sauvegarde { --s2-ic: url(../icones/sauvegarde.svg); }
.s2-ic-sim { --s2-ic: url(../icones/sim.svg); }
.s2-ic-outils { --s2-ic: url(../icones/outils.svg); }

/* Étapes numérotées */
ol.s2-etapes { list-style: none; counter-reset: s2e; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(var(--s2-n, 4), minmax(0, 1fr)); gap: 22px; }
ol.s2-etapes > li { counter-increment: s2e; position: relative; padding: 64px 4px 0 0; }
ol.s2-etapes > li::before { content: counter(s2e); position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--s2-turquoise); color: var(--s2-nuit); font-weight: 800; font-size: 1.1rem; }
ol.s2-etapes > li:not(:last-child)::after { content: ""; position: absolute; left: 56px; right: 12px; top: 22px; height: 2px; background: linear-gradient(90deg, var(--s2-turquoise), rgba(0, 179, 159, .15)); }
ol.s2-etapes strong { display: block; color: var(--s2-nuit); font-size: 1.08rem; margin-bottom: .3em; }
.s2-section--nuit ol.s2-etapes strong { color: #fff; }
ol.s2-etapes.s2-etapes--3 { --s2-n: 3; }

/* Étapes dans une colonne : verticales, numéro à gauche */
.wp-block-column ol.s2-etapes { grid-template-columns: 1fr; gap: 18px; }
.wp-block-column ol.s2-etapes > li { padding: 4px 0 0 62px; min-height: 48px; }
.wp-block-column ol.s2-etapes > li::after { display: none; }

/* Listes cochées */
ul.s2-coches { list-style: none; padding: 0; }
ul.s2-coches > li { position: relative; padding-left: 34px; margin-bottom: .65em; }
ul.s2-coches > li::before { content: ""; position: absolute; left: 0; top: .32em; width: 20px; height: 20px; border-radius: 50%; background: var(--s2-turquoise-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.2l3 3 6-6.4' fill='none' stroke='%23007A6C' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px no-repeat; }
.s2-section--nuit ul.s2-coches > li::before { background-color: rgba(0, 179, 159, .2); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.2l3 3 6-6.4' fill='none' stroke='%2300B39F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.s2-colonnes-coches ul.s2-coches { columns: 2; column-gap: 40px; }
.s2-colonnes-coches ul.s2-coches > li { break-inside: avoid; }

/* Colonnes (bloc Colonnes) */
.wp-block-columns.s2-colonnes { gap: 48px; margin-bottom: 0; align-items: flex-start; }
.s2-encadre { background: var(--s2-fond-2); border: 1px solid var(--s2-bord); border-radius: var(--s2-rayon); padding: 28px; }
.s2-section--gris .s2-encadre { background: #fff; }
.s2-encadre h3 { font-size: 1.1rem; }

/* Bandeau d'appel à l'action */
.s2-appel { background: linear-gradient(120deg, var(--s2-nuit) 0%, var(--s2-nuit-2) 100%); color: var(--s2-texte-sur-nuit); border-radius: 22px; padding: 48px 52px; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; position: relative; overflow: hidden; }
.s2-appel > .wp-block-group__inner-container { display: contents; }
.s2-appel::after { content: ""; position: absolute; right: -40px; top: -60px; width: 240px; height: 300px; background: url(../img/symbole-inverse.svg) no-repeat center / contain; opacity: .08; }
.s2-appel h2 { color: #fff; margin-bottom: .2em; font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); }
.s2-appel p { margin: 0; }
.s2-appel .wp-block-buttons { margin-top: 0; position: relative; z-index: 1; }

/* Catalogue d'offres ([2servit_offres]) */
.s2-offres { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; margin: 8px 0 0; }
.s2-offre { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--s2-bord); border-radius: var(--s2-rayon); padding: 26px 24px 20px; }
.s2-offre--avant { border: 2px solid var(--s2-turquoise); box-shadow: var(--s2-ombre); }
.s2-offre__badge { position: absolute; top: -13px; left: 22px; margin: 0; background: var(--s2-turquoise); color: var(--s2-nuit); font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: .25em .75em; border-radius: 99px; }
.s2-offre__nom { font-size: 1.3rem; margin-bottom: .25em; }
.s2-offre__accroche { color: var(--s2-texte-doux); font-size: .95rem; margin-bottom: .9em; }
.s2-offre__carac { list-style: none; padding: 0; margin: 0 0 1.1em; border-top: 1px solid var(--s2-bord); }
.s2-offre__carac li { padding: .5em 0 .5em 26px; border-bottom: 1px solid var(--s2-bord); font-size: .95rem; position: relative; }
.s2-offre__carac li::before { content: ""; position: absolute; left: 2px; top: .95em; width: 12px; height: 7px; border-left: 2.2px solid var(--s2-turquoise-fonce); border-bottom: 2.2px solid var(--s2-turquoise-fonce); transform: rotate(-45deg); }
.s2-offre__prix { margin-top: auto; font-weight: 800; color: var(--s2-nuit); font-size: 1.12rem; margin-bottom: .7em; }
.s2-offre__annuel { display: block; font-weight: 600; font-size: .85rem; color: var(--s2-turquoise-fonce); margin-top: .3em; }
.s2-offre__action { margin: 0 0 .6em; }
.s2-offre__action .s2-bouton { width: 100%; }
.s2-offre__code { margin: 0; font-size: .78rem; color: var(--s2-texte-doux); letter-spacing: .04em; }
.s2-offres-note { margin-top: 18px; color: var(--s2-texte-doux); font-size: .95rem; border-left: 3px solid var(--s2-turquoise); padding-left: 14px; }

/* Tableau d'options ([2servit_offres style="tableau"]) */
.s2-options-cadre { overflow-x: auto; border: 1px solid var(--s2-bord); border-radius: var(--s2-rayon); background: #fff; }
table.s2-options { width: 100%; border-collapse: collapse; font-size: .95rem; }
table.s2-options th, table.s2-options td { text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--s2-bord); vertical-align: top; }
table.s2-options thead th { background: var(--s2-fond-2); color: var(--s2-nuit); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
table.s2-options tbody tr:last-child > * { border-bottom: 0; }
table.s2-options tbody th { color: var(--s2-nuit); font-weight: 600; min-width: 190px; }
.s2-options__code { display: block; font-weight: 400; font-size: .76rem; color: var(--s2-texte-doux); margin-top: 2px; }
table.s2-options td { color: var(--s2-texte-doux); }
td.s2-options__prix { white-space: nowrap; font-weight: 700; color: var(--s2-nuit); }
@media (max-width: 640px) {
  table.s2-options thead { display: none; }
  table.s2-options tr { display: block; padding: 12px 16px; border-bottom: 1px solid var(--s2-bord); }
  table.s2-options th, table.s2-options td { display: block; padding: 2px 0; border: 0; }
  td.s2-options__prix { white-space: normal; margin-top: 4px; }
}

/* Questions fréquentes (bloc Détails) */
.wp-block-details { border-bottom: 1px solid var(--s2-bord); padding: 16px 0; }
.wp-block-details summary { cursor: pointer; font-weight: 600; color: var(--s2-nuit); font-size: 1.05rem; }
.wp-block-details > *:not(summary) { margin-top: .7em; color: var(--s2-texte-doux); }

/* Formulaire de contact (Contact Form 7) */
.s2-formulaire .wpcf7-form p { margin-bottom: 1.1em; }
.s2-formulaire label { display: block; font-weight: 600; color: var(--s2-nuit); font-size: .95rem; }
.s2-formulaire input[type="text"], .s2-formulaire input[type="email"], .s2-formulaire input[type="tel"], .s2-formulaire select, .s2-formulaire textarea { width: 100%; margin-top: .35em; padding: .75em .9em; border: 1px solid #B8C5D3; border-radius: 10px; font: 400 1rem var(--s2-police); color: var(--s2-texte); background: #fff; }
.s2-formulaire textarea { min-height: 160px; resize: vertical; }
.s2-formulaire input:focus, .s2-formulaire select:focus, .s2-formulaire textarea:focus { border-color: var(--s2-turquoise-fonce); outline: 3px solid rgba(0, 179, 159, .25); outline-offset: 0; }
.s2-formulaire .s2-deux { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.s2-formulaire .wpcf7-acceptance label { font-weight: 400; font-size: .9rem; color: var(--s2-texte-doux); }
.s2-formulaire .wpcf7-submit { background: var(--s2-nuit); color: #fff; border: 0; border-radius: 10px; padding: .85em 1.6em; font: 600 1rem var(--s2-police); cursor: pointer; }
.s2-formulaire .wpcf7-submit:hover { background: var(--s2-nuit-3); }
.s2-formulaire .wpcf7-not-valid-tip { color: #B42318; font-size: .88rem; }
.s2-formulaire .wpcf7-response-output { border-radius: 10px; margin: 1em 0 0 !important; }
.s2-champ-piege { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.s2-mention { font-size: .85rem; color: var(--s2-texte-doux); }

/* Mentions légales */
.s2-legal h2 { font-size: 1.4rem; margin-top: 1.8em; }
.s2-legal h2:first-child { margin-top: 0; }
.s2-legal p, .s2-legal li { color: var(--s2-texte); }

/* Pied de page */
.s2-pied { background: var(--s2-nuit); color: var(--s2-texte-sur-nuit); padding: 64px 0 0; margin-top: 0; font-size: .95rem; }
.s2-pied a { color: #fff; text-decoration: none; }
.s2-pied a:hover { color: var(--s2-turquoise); text-decoration: underline; }
.s2-pied__grille { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.1fr; gap: 40px; padding-bottom: 44px; }
.s2-pied__marque .s2-logo { width: 190px; margin-bottom: 14px; }
.s2-pied__marque p { max-width: 24em; }
.s2-pied__titre { color: #fff; font-weight: 800; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 1em; }
.s2-pied ul { list-style: none; padding: 0; margin: 0; }
.s2-pied li { margin-bottom: .55em; }
.s2-pied__legal { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 20px; padding-bottom: 28px; font-size: .85rem; }
.s2-pied__legal p { margin: 0; }

/* Adaptation aux petits écrans */
@media (max-width: 1080px) {
  .s2-grille--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  ol.s2-etapes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  ol.s2-etapes > li::after { display: none; }
  .s2-pied__grille { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .s2-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .s2-conteneur, .s2-section > .wp-block-group__inner-container, .s2-section > .s2-int, .s2-heros > .wp-block-group__inner-container, .s2-heros > .s2-int, .s2-ariane { padding-left: 16px; padding-right: 16px; }
  .s2-contenu > *:not(.s2-section):not(.alignfull) { padding-left: 16px; padding-right: 16px; }
  .s2-section { padding: 52px 0; }
  .s2-heros { padding: 64px 0 60px; }
  .s2-heros::after { width: 260px; height: 320px; right: -80px; bottom: -60px; }
  .s2-grille, .s2-grille--2, .s2-grille--4 { grid-template-columns: 1fr; }
  ol.s2-etapes { grid-template-columns: 1fr; }
  ol.s2-etapes > li { padding: 4px 0 0 60px; min-height: 48px; }
  .s2-appel { padding: 32px 24px; border-radius: 16px; }
  .s2-colonnes-coches ul.s2-coches { columns: 1; }
  .s2-formulaire .s2-deux { grid-template-columns: 1fr; }
  .s2-pied__grille { grid-template-columns: 1fr; gap: 28px; }
  .wp-block-buttons .wp-block-button { width: 100%; }
  .wp-block-buttons .wp-block-button__link { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }
@media print { .s2-entete, .s2-pied, .s2-bandeau-recette, .wp-block-buttons { display: none; } }
