/* StratLink — sections des pages composées dans le Studio (site public).
   Repris des blocs de DevPrestaDev, aux couleurs et aux composants du site (s-*). */

/* ---------- Colonne de lecture (titres, paragraphes, textes, images, boutons) ---------- */
.sb-flow { padding-top: 44px; padding-bottom: 44px; }
.sb-flow > * { max-width: 820px; }
.sb-flow > :first-child { margin-top: 0; }
.sb-flow h1.sb-heading { margin-top: 0; }
.sb-heading { margin-top: 1.1em; }
h1.sb-heading { font-size: clamp(30px, 4.4vw, 50px); }
.sb-p { font-size: 17.5px; }
.sb-md > :last-child { margin-bottom: 0; }
.sb-hr { border: 0; border-top: 1px solid var(--line); margin: 32px 0; }
.sb-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0; }
.sb-center { justify-content: center; }
.sb-muted { color: var(--muted); font-size: 14px; }
.sb-intro { color: var(--muted); font-size: 17px; margin: -18px 0 26px; max-width: 760px; }
.sb-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sb-anchor { scroll-margin-top: 84px; }
.sb-quote { margin: 32px 0; padding: 0 0 0 24px; border-left: 4px solid var(--brand); }
.sb-quote blockquote { margin: 0; }
.sb-quote blockquote p { font-size: clamp(21px, 2.6vw, 28px); line-height: 1.4; color: var(--ink); font-weight: 650; margin: 0; }
.sb-quote figcaption { margin-top: 12px; color: var(--muted); font-weight: 600; }
.sb-image img { width: 100%; }

/* ---------- Sections ---------- */
.sb-sec { position: relative; padding: 72px 0; }
.sb-sec.sp-compact { padding: 40px 0; }
.sb-sec.sp-large { padding: 104px 0; }
.sb-sec.sb-sec-cta:not(.sp-compact):not(.sp-large) { padding: 54px 0; }
.sb-sec.has-pt { padding-top: var(--sec-pt); }
.sb-sec.has-pb { padding-bottom: var(--sec-pb); }
.sb-sec.has-mt { margin-top: var(--sec-mt); }
.sb-sec.has-mb { margin-bottom: var(--sec-mb); }
.sb-sec.w-narrow .sb-sec-inner { max-width: 820px; }
.sb-sec.w-wide .sb-sec-inner { max-width: 1320px; }
.sb-sec.w-full .sb-sec-inner { max-width: none; padding: 0 clamp(16px, 4vw, 56px); }
.sb-sec-inner > :last-child { margin-bottom: 0; }
.sb-sec.al-center { text-align: center; }
.sb-sec.al-center .s-head, .sb-sec.al-center .sb-intro { margin-left: auto; margin-right: auto; }
.sb-sec.al-center .sb-actions, .sb-sec.al-center .sb-cta-actions, .sb-sec.al-center .s-head-row { justify-content: center; }
.sb-sec.al-center .s-card .s-ico { display: block; margin: 0 auto 14px; }
.sb-sec.bg-surface { background: var(--alt); }
.sb-sec.bg-accent { background: linear-gradient(120deg, var(--brand), #115e59); color: #e6fffb; }
.sb-sec.bg-dark { background: radial-gradient(1000px 420px at 85% -10%, rgba(45, 212, 191, .16), transparent 60%), linear-gradient(160deg, var(--dark), var(--dark-2)); color: #c9d8dc; }
.sb-sec.bg-image { background: linear-gradient(rgba(8, 16, 22, .7), rgba(8, 16, 22, .54)), var(--sec-image) center / cover no-repeat; color: #eef4f5; }
/* Fonds foncés : textes clairs, cartes translucides, boutons inversés */
.sb-sec:is(.bg-accent, .bg-dark, .bg-image) { --ink: #ffffff; --muted: rgba(230, 244, 246, .82); --line: rgba(255, 255, 255, .18); }
.sb-sec:is(.bg-accent, .bg-dark, .bg-image) :is(h1, h2, h3, h4, strong) { color: #ffffff; }
.sb-sec:is(.bg-accent, .bg-dark, .bg-image) :is(.s-card, .s-steps li, .s-checks li, .s-plan, .s-offer:not(.s-offer-dark), .s-faq details, .sb-review, .sb-stat, .sb-counter, .sb-team-card, .sb-iconbox, .sb-col-card, .sb-contact-card) {
  background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .16); box-shadow: none; color: inherit;
}
.sb-sec:is(.bg-accent, .bg-dark, .bg-image) :is(.s-card .s-ico, .s-checks .s-ico, .sb-iconbox .s-ico, .s-tag) { color: #5eead4; }
.sb-sec:is(.bg-accent, .bg-dark, .bg-image) .s-btn:not(.s-btn-ghost):not(.s-btn-light):not(.s-btn-outline-light) { background: #ffffff; color: #0f1d26; border-color: #ffffff; }
.sb-sec:is(.bg-accent, .bg-dark, .bg-image) .s-btn-ghost { color: #ffffff; border-color: rgba(255, 255, 255, .55); background: transparent; }
.sb-sec:is(.bg-accent, .bg-dark, .bg-image) .s-link, .sb-sec:is(.bg-accent, .bg-dark, .bg-image) a:not(.s-btn) { color: #a7f3d0; }
.sb-sec.bg-accent .s-step-n { background: #ffffff; color: var(--brand); }

/* ---------- Bandeau d'accueil ---------- */
.sb-hero { position: relative; overflow: hidden; isolation: isolate; }
.sb-hero-in { padding-top: 56px; padding-bottom: 60px; }
.sb-hero.z-large .sb-hero-in { padding-top: 72px; padding-bottom: 80px; }
.sb-hero.t-dark { background: radial-gradient(1200px 500px at 85% -10%, rgba(45, 212, 191, .22), transparent 60%), linear-gradient(160deg, var(--dark), var(--dark-2)); color: #dbe7ea; }
.sb-hero.t-dark :is(h1, h2) { color: #ffffff; }
.sb-hero.t-light { background: linear-gradient(180deg, var(--alt), #ffffff 92%); }
.sb-hero.t-light .s-lead { color: var(--muted); }
.sb-hero.t-light .s-hero-points .s-ico { color: var(--brand); }
.sb-hero :is(h1, h2) { font-size: clamp(30px, 4.4vw, 50px); max-width: 860px; }
.sb-hero.has-media.l-split .sb-hero-in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 48px; align-items: center; }
.sb-hero.has-media.l-split.side-left .sb-hero-in > :last-child { order: -1; }
.sb-hero-media { margin: 0; }
.sb-hero-media img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 18px; box-shadow: 0 30px 60px rgba(0, 0, 0, .3); }
.sb-hero.l-center { text-align: center; }
.sb-hero.l-center .sb-hero-text > * { margin-left: auto; margin-right: auto; }
.sb-hero.l-center :is(.s-hero-actions, .s-hero-points) { justify-content: center; }
.sb-hero.l-center.has-media .sb-hero-media { margin-top: 26px; }
.sb-hero.l-center.has-media .sb-hero-media img { aspect-ratio: 21 / 8; }
.sb-hero.l-overlay { background: radial-gradient(1200px 500px at 85% -10%, rgba(45, 212, 191, .22), transparent 60%), linear-gradient(160deg, var(--dark), var(--dark-2)); color: #e7f0f2; }
.sb-hero.l-overlay.has-bg { background: linear-gradient(rgba(8, 16, 22, .72), rgba(8, 16, 22, .5)), var(--hero-image) center / cover no-repeat; }
.sb-hero.l-overlay .sb-hero-in { padding-top: 110px; padding-bottom: 110px; }
.sb-hero.l-overlay :is(h1, h2) { color: #ffffff; }

/* ---------- Bandeau d'appel à l'action ---------- */
.sb-cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.sb-cta h2 { margin-bottom: 6px; }
.sb-cta p { margin: 0; max-width: 640px; }
.sb-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.sb-sec.al-center .sb-cta { flex-direction: column; justify-content: center; }
.sb-sec.al-center .sb-cta p { margin: 0 auto; }

/* ---------- Encadré avec icône ---------- */
.sb-iconbox-block p { font-size: 17px; color: var(--muted); max-width: 760px; }

/* ---------- Atouts, étapes, offres ---------- */
.sb-cards.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sb-cards.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sb-strip { gap: 14px; }
.sb-strip.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sb-strip.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sb-strip.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sb-strip li span { color: var(--muted); }
.sb-strip li strong { color: var(--ink); }
.sb-steps.n-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sb-steps.n-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sb-steps.n-1 { grid-template-columns: minmax(0, 1fr); }
.sb-offers.n-1 { grid-template-columns: minmax(0, 640px); }
.sb-offers.n-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sb-sec.al-center .sb-offers.n-1 { justify-content: center; }
.sb-sec.al-center .s-offer { text-align: left; }

/* ---------- Colonnes libres ---------- */
.sb-layout > h2 { margin-bottom: 26px; }
.sb-layout-grid { display: grid; gap: 40px; align-items: start; }
.sb-layout.gap-none .sb-layout-grid { gap: 0; }
.sb-layout.gap-small .sb-layout-grid { gap: 16px; }
.sb-layout.gap-large .sb-layout-grid { gap: 64px; }
.sb-layout.va-center .sb-layout-grid { align-items: center; }
.sb-layout.va-bottom .sb-layout-grid { align-items: end; }
.sb-layout.cols-2 .sb-layout-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.sb-layout.cols-2.ratio-1-2 .sb-layout-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.sb-layout.cols-2.ratio-2-1 .sb-layout-grid { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.sb-layout.cols-2.ratio-1-3 .sb-layout-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); }
.sb-layout.cols-2.ratio-3-1 .sb-layout-grid { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }
.sb-layout.cols-3 .sb-layout-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sb-layout.cols-4 .sb-layout-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sb-col { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.sb-col.al-center { text-align: center; align-items: center; }
.sb-col.al-right { text-align: right; align-items: flex-end; }
.sb-col.cbg-surface { background: var(--alt); border-radius: var(--radius); padding: 26px; }
.sb-col.cbg-card { background: #ffffff; border: 1px solid var(--line); border-radius: var(--radius); padding: 26px; box-shadow: var(--shadow); }
.sb-col.cbg-accent { background: linear-gradient(140deg, var(--brand), #115e59); color: #e6fffb; border-radius: var(--radius); padding: 26px; --ink: #ffffff; --muted: rgba(230, 244, 246, .85); }
.sb-col.cbg-dark { background: linear-gradient(160deg, var(--dark), var(--dark-2)); color: #c9d8dc; border-radius: var(--radius); padding: 26px; --ink: #ffffff; --muted: rgba(230, 244, 246, .8); }
.sb-col:is(.cbg-accent, .cbg-dark) :is(h2, h3, h4, strong) { color: #ffffff; }
.sb-el > :first-child { margin-top: 0; }
.sb-el > :last-child { margin-bottom: 0; }
.sb-el :is(h2, h3, h4) { margin: 0; }
.sb-el p { margin: 0; color: var(--muted); font-size: 17px; }
.sb-el .s-list { margin: 0; }
.sb-el .sb-actions { margin: 4px 0 0; }
.sb-col.al-center .sb-actions { justify-content: center; }
.sb-el-figure { margin: 0; }
.sb-el-figure img { width: 100%; border-radius: var(--radius); }
.sb-el-figure figcaption { font-size: 14px; color: var(--muted); margin-top: 8px; }
.sb-iconbox { display: flex; gap: 14px; align-items: flex-start; text-align: left; background: #ffffff; border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; }
.sb-iconbox .s-ico { color: var(--brand); flex: none; }
.sb-iconbox strong { display: block; color: var(--ink); }
.sb-iconbox p { margin: 3px 0 0; color: var(--muted); font-size: 15.5px; }
.sb-iconbox strong + p { margin-top: 3px; }
.sb-col:not(.cbg-none) .sb-iconbox { background: transparent; border: 0; padding: 0; }
.sb-spacer { display: block; }

/* ---------- Colonnes (cartes) et prestations ---------- */
.sb-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 26px; margin-top: 22px; }
.sb-col-card figure { margin: 0 0 12px; }
.sb-col-card img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius); }
.sb-col-card p { color: var(--muted); margin: 0; }
.sb-services.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sb-service.has-photo { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.sb-service .sb-card-body { display: flex; flex-direction: column; flex: 1; }
.sb-service.has-photo .sb-card-body { padding: 20px 22px 22px; }
.sb-card-media { margin: 0; }
.sb-card-media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.sb-card-media.is-empty { aspect-ratio: 16 / 10; display: grid; place-items: center; background: linear-gradient(135deg, var(--brand), #2dd4bf); }
.sb-card-media.is-empty span { font-size: 42px; font-weight: 800; color: #ffffff; }
.sb-card-link { display: inline-block; margin-top: 14px; }

/* ---------- Tarifs, comparateur, compteurs, chiffres ---------- */
.sb-price { position: relative; }
.sb-price.is-highlight { border: 2px solid var(--brand); box-shadow: 0 16px 40px rgba(15, 29, 38, .12); }
.sb-price-badge { position: absolute; top: -13px; left: 22px; margin: 0; padding: 3px 12px; border-radius: 999px; background: var(--brand); color: #ffffff; font-size: 13px; font-weight: 700; }
.sb-price .s-list { margin-top: 10px; }
.sb-compare { overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--line); background: #ffffff; }
.sb-compare table { width: 100%; border-collapse: collapse; min-width: 480px; color: var(--text); }
.sb-compare :is(th, td) { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: center; }
.sb-compare tbody th { text-align: left; font-weight: 600; color: var(--ink); }
.sb-compare thead th { font-size: 16.5px; color: var(--ink); }
.sb-compare tr:last-child :is(th, td) { border-bottom: 0; }
.sb-compare .is-hl { background: rgba(15, 118, 110, .07); }
.sb-compare thead .is-hl { color: var(--brand); }
.sb-sec:is(.bg-accent, .bg-dark, .bg-image) .sb-compare { background: #ffffff; --ink: #0f1d26; --line: #e3e8ec; }
.sb-sec:is(.bg-accent, .bg-dark, .bg-image) .sb-compare :is(th, strong) { color: #0f1d26; }
.sb-yes, .sb-no { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; font-weight: 800; font-size: 14px; }
.sb-yes { background: #dcfce7; color: #166534; }
.sb-no { background: #fee2e2; color: #991b1b; }
.sb-counters { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 18px; }
.sb-counter { display: flex; flex-direction: column; gap: 6px; text-align: center; }
.sb-counters.style-cards .sb-counter, .sb-el .sb-counter { background: #ffffff; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 14px; box-shadow: var(--shadow); }
.sb-counter strong { font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1; color: var(--brand); font-variant-numeric: tabular-nums; }
.sb-counter > span { color: var(--muted); font-size: 15px; }
.sb-sec:is(.bg-accent, .bg-dark, .bg-image) .sb-counter strong { color: #ffffff; }
.sb-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 18px; }
.sb-stat { background: #ffffff; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow); }
.sb-stat strong { display: block; font-size: clamp(30px, 3.6vw, 42px); line-height: 1.1; color: var(--ink); }
.sb-stat span { color: var(--muted); }

/* ---------- Équipe, logos, avis, galerie, avant / après, vidéo ---------- */
.sb-team { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px; }
.sb-team-card { text-align: center; background: #ffffff; border: 1px solid var(--line); border-radius: var(--radius); padding: 26px 18px; box-shadow: var(--shadow); }
.sb-team-card img, .sb-team-initial { width: 112px; height: 112px; margin: 0 auto 14px; border-radius: 50%; object-fit: cover; }
.sb-team-initial { display: flex; align-items: center; justify-content: center; background: var(--alt); color: var(--brand); font-size: 40px; font-weight: 800; }
.sb-team-card h3 { margin-bottom: 4px; }
.sb-team-card p { margin: 0; color: var(--muted); font-size: 15px; }
.sb-logos { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 26px 44px; }
.sb-logos img { max-height: 56px; max-width: 160px; width: auto; filter: grayscale(1); opacity: .75; transition: filter .2s, opacity .2s; }
.sb-logos img:hover { filter: none; opacity: 1; }
.sb-reviews { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.sb-review { margin: 0; background: #ffffff; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow); }
.sb-review p { color: var(--text); font-size: 16.5px; margin: 8px 0 0; }
.sb-review footer { margin-top: 12px; color: var(--muted); font-size: 14px; font-weight: 600; }
.sb-stars { color: #f5a623; letter-spacing: 2px; }
.sb-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.sb-gallery figure { margin: 0; }
.sb-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; transition: transform .2s; }
.sb-gallery a:hover img { transform: scale(1.02); }
.sb-gallery figcaption { font-size: 14px; color: var(--muted); margin-top: 6px; }
.sb-gallery.is-masonry { display: block; columns: 3 220px; column-gap: 12px; }
.sb-gallery.is-masonry figure { break-inside: avoid; margin-bottom: 12px; }
.sb-gallery.is-masonry img { aspect-ratio: auto; }
.sb-zoom { display: block; cursor: zoom-in; }
.sb-ba-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sb-ba-grid figure { margin: 0; position: relative; }
.sb-ba-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); }
.sb-ba-grid figcaption { position: absolute; left: 12px; top: 12px; background: #ffffff; color: var(--ink); font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; padding: 6px 10px; border-radius: 99px; }
.sb-ba-slider { position: relative; overflow: hidden; border-radius: var(--radius); aspect-ratio: 16 / 10; background: var(--alt); user-select: none; touch-action: pan-y; }
.sb-ba-slider img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sb-ba-before { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.sb-ba-handle { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 3px; margin-left: -1.5px; background: #ffffff; box-shadow: 0 0 0 1px rgba(0, 0, 0, .15); pointer-events: none; }
.sb-ba-handle::after { content: "⟷"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 44px; height: 44px; border-radius: 50%; background: #ffffff; color: #111111; display: grid; place-items: center; font-size: 20px; box-shadow: 0 4px 16px rgba(0, 0, 0, .25); }
.sb-ba-range { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
.sb-ba-slider:focus-within .sb-ba-handle { box-shadow: 0 0 0 3px var(--brand); }
.sb-ba-tag { position: absolute; top: 12px; padding: 4px 10px; border-radius: 999px; background: rgba(0, 0, 0, .62); color: #ffffff; font-size: 13px; font-weight: 600; pointer-events: none; }
.sb-ba-tag.is-before { left: 12px; }
.sb-ba-tag.is-after { right: 12px; }
.sb-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; background: radial-gradient(circle at 30% 30%, #134e4a, #0e1b24); }
.sb-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sb-video-play { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: var(--brand) !important; text-decoration: none; }
.sb-video-play span { color: #ffffff; font-weight: 700; }
.sb-video-note { font-size: 13px; color: var(--muted); margin: 8px 0 0; }
.sb-video-block { margin: 24px 0; }

/* ---------- Image + texte ---------- */
.sb-imgtext { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 64px); align-items: center; }
.sb-imgtext.side-right .sb-imgtext-media { order: 2; }
.sb-imgtext.no-media { grid-template-columns: minmax(0, 1fr); }
.sb-imgtext-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 18px; box-shadow: 0 18px 44px rgba(15, 29, 38, .14); }
.sb-imgtext-body p { color: var(--muted); font-size: 17px; }

/* ---------- Coordonnées, formulaire, sections automatiques vides ---------- */
.sb-contact-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(22px, 4vw, 56px); align-items: center; background: #ffffff; border: 1px solid var(--line); border-radius: 18px; padding: clamp(24px, 4vw, 44px); box-shadow: var(--shadow); }
.sb-contact-card p { color: var(--muted); }
.sb-contact-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; }
.sb-contact-list li { display: flex; gap: 14px; align-items: center; }
.sb-contact-list .s-ico { color: var(--brand); flex: none; }
.sb-contact-list li > div { display: flex; flex-direction: column; min-width: 0; }
.sb-contact-list a { font-weight: 700; overflow-wrap: anywhere; color: var(--ink); text-decoration: none; }
.sb-owner-hint { border: 2px dashed var(--line); border-radius: var(--radius); padding: 22px 24px; background: rgba(15, 118, 110, .04); }
.sb-owner-hint > p { margin: 0; color: var(--muted); }

/* ---------- Diaporama ---------- */
.sb-slider { position: relative; overflow: hidden; background: var(--dark); color: #ffffff; isolation: isolate; }
.sb-slider.h-medium { --slider-h: clamp(380px, 62vh, 640px); }
.sb-slider.h-large { --slider-h: clamp(440px, 80vh, 860px); }
.sb-slider.h-full { --slider-h: max(480px, calc(100svh - 68px)); }
.sb-slides { position: relative; height: var(--slider-h); touch-action: pan-y; }
.sb-slide { position: absolute; inset: 0; display: flex; align-items: center; opacity: 0; visibility: hidden; transition: opacity .9s ease, transform .9s ease, visibility 0s linear .9s; }
.sb-slide.is-active { opacity: 1; visibility: visible; z-index: 1; transition: opacity .9s ease, transform .9s ease, visibility 0s; }
.sb-slide-bg { position: absolute; inset: 0; z-index: -1; background: var(--slide-image, none) center / cover no-repeat, linear-gradient(135deg, var(--brand) 0%, var(--dark) 100%); }
.sb-slide-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 16, 22, var(--ov, .55)) 0%, rgba(8, 16, 22, calc(var(--ov, .55) * .55)) 70%, rgba(8, 16, 22, calc(var(--ov, .55) * .35)) 100%); }
.sb-slider.al-center .sb-slide-bg::after { background: rgba(8, 16, 22, var(--ov, .55)); }
.sb-slide.no-image .sb-slide-bg::after { background: rgba(8, 16, 22, .18); }
.sb-slider.ov-light { --ov: .32; }
.sb-slider.ov-medium { --ov: .52; }
.sb-slider.ov-strong { --ov: .7; }
.sb-slide-content { position: relative; width: 100%; }
.sb-slide-content > * { max-width: 720px; }
.sb-slider.al-center .sb-slide-content { text-align: center; }
.sb-slider.al-center .sb-slide-content > * { margin-left: auto; margin-right: auto; }
.sb-slide-title { font-size: clamp(32px, 5.4vw, 62px); line-height: 1.08; margin: 0 0 18px; color: #ffffff; text-shadow: 0 2px 24px rgba(0, 0, 0, .25); }
.sb-slide-text { font-size: clamp(17px, 2vw, 21px); margin: 0 0 26px; color: rgba(255, 255, 255, .92); }
.sb-slide-actions { margin: 0; }
.sb-slider.fx-slide .sb-slide { opacity: 1; transform: translateX(100%); transition: transform .8s cubic-bezier(.65, 0, .35, 1), visibility 0s linear .8s; }
.sb-slider.fx-slide .sb-slide.is-active { transform: translateX(0); transition: transform .8s cubic-bezier(.65, 0, .35, 1), visibility 0s; }
.sb-slider.fx-slide .sb-slide.is-leaving { transform: translateX(-100%); visibility: visible; }
.sb-slider.fx-slide.is-reverse .sb-slide:not(.is-active):not(.is-leaving) { transform: translateX(-100%); }
.sb-slider.fx-slide.is-reverse .sb-slide.is-leaving { transform: translateX(100%); }
.sb-slider.fx-zoom .sb-slide { transform: scale(1.08); }
.sb-slider.fx-zoom .sb-slide.is-active { transform: scale(1); }
.sb-slider.kenburns .sb-slide.is-active .sb-slide-bg { animation: sb-kenburns 12s ease-out both; }
.sb-slider.kenburns .sb-slide:nth-child(even).is-active .sb-slide-bg { animation-name: sb-kenburns-alt; }
@keyframes sb-kenburns { from { transform: scale(1); } to { transform: scale(1.12) translate(-1.5%, -1%); } }
@keyframes sb-kenburns-alt { from { transform: scale(1.12) translate(1.5%, 1%); } to { transform: scale(1); } }
.sb-slide.is-active .sb-slide-content > * { animation: sb-in-fade-up .9s cubic-bezier(.2, .7, .2, 1) both; }
.sb-slide.is-active .sb-slide-content > :nth-child(2) { animation-delay: .18s; }
.sb-slide.is-active .sb-slide-content > :nth-child(3) { animation-delay: .36s; }
.sb-slider.ta-slide-left .sb-slide.is-active .sb-slide-content > * { animation-name: sb-in-slide-left; }
.sb-slider.ta-zoom .sb-slide.is-active .sb-slide-content > * { animation-name: sb-in-zoom; }
.sb-slider.ta-none .sb-slide.is-active .sb-slide-content > * { animation: none; }
@keyframes sb-in-fade-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes sb-in-slide-left { from { opacity: 0; transform: translateX(-48px); } to { opacity: 1; transform: none; } }
@keyframes sb-in-zoom { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: none; } }
.sb-slider-arrow { position: absolute; top: 50%; z-index: 4; width: 48px; height: 48px; margin-top: -24px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .16); color: #ffffff; font: 400 34px/44px var(--font); cursor: pointer; transition: background .2s; }
.sb-slider-arrow:hover, .sb-slider-arrow:focus-visible { background: rgba(255, 255, 255, .32); }
.sb-slider-prev { left: 18px; }
.sb-slider-next { right: 18px; }
.sb-slider-dots { position: absolute; left: 0; right: 0; bottom: 22px; z-index: 4; display: flex; justify-content: center; gap: 10px; }
.sb-slider-dot { width: 11px; height: 11px; padding: 0; border: 2px solid #ffffff; border-radius: 50%; background: transparent; cursor: pointer; transition: transform .2s, background .2s; }
.sb-slider-dot.is-active { background: #ffffff; transform: scale(1.15); }
.sb-slider-pause { position: absolute; left: 18px; bottom: 16px; z-index: 4; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .16); color: #ffffff; font: 700 12px/1 var(--font); padding: 8px 11px; cursor: pointer; }
.sb-slider-pause.is-paused span { font-size: 0; }
.sb-slider-pause.is-paused span::before { content: "▶"; font-size: 12px; }
.sb-slider:not(.js-ready) :is(.sb-slider-arrow, .sb-slider-dots, .sb-slider-pause) { display: none; }
@media (min-width: 861px) { .sb-slider:not(.is-single) .sb-slide-content { padding-left: 84px; padding-right: 84px; } }

/* ---------- Photos en grand ---------- */
html.sb-lightbox-open { overflow: hidden; }
.sb-lightbox { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(12, 14, 18, .94); color: #ffffff; overflow: hidden; }
.sb-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.sb-lightbox::backdrop { background: rgba(12, 14, 18, .94); }
.sb-lightbox-figure { margin: 0; padding: 64px 76px 24px; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; }
.sb-lightbox-img { max-width: 100%; max-height: calc(100% - 44px); width: auto; height: auto; object-fit: contain; border-radius: 6px; }
.sb-lightbox-caption { margin: 0; font-size: 15px; color: #f3f4f6; text-align: center; }
.sb-lightbox-btn { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #ffffff; font: 400 32px/1 var(--font); cursor: pointer; }
.sb-lightbox-close { top: 12px; right: 12px; }
.sb-lightbox-prev { left: 14px; top: 50%; transform: translateY(-50%); }
.sb-lightbox-next { right: 14px; top: 50%; transform: translateY(-50%); }
.sb-lightbox.is-single :is(.sb-lightbox-prev, .sb-lightbox-next) { display: none; }

/* ---------- Apparition au défilement et sections masquées selon l'écran ---------- */
.sb-reveal-pending { opacity: 0; transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--rv-delay, 0ms); }
.sb-reveal-pending[data-reveal="fade-up"] { transform: translateY(36px); }
.sb-reveal-pending[data-reveal="zoom"] { transform: scale(.95); }
.sb-reveal-pending[data-reveal="slide-left"] { transform: translateX(-48px); }
.sb-reveal-pending.is-visible { opacity: 1; transform: none; }
.sb-reveal-pending.rv-fast { transition-duration: .45s; }
.sb-reveal-pending.rv-slow { transition-duration: 1.6s; }
@media (max-width: 640px) { .hide-mobile { display: none !important; } }
@media (min-width: 641px) and (max-width: 1024px) { .hide-tablet { display: none !important; } }
@media (min-width: 1025px) { .hide-desktop { display: none !important; } }

/* ---------- Écrans ---------- */
@media (max-width: 1020px) {
  .sb-cards.cols-4, .sb-strip.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sb-steps.n-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sb-offers.n-3 { grid-template-columns: minmax(0, 1fr); }
  .sb-layout.cols-4 .sb-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .sb-hero.has-media.l-split .sb-hero-in, .sb-imgtext, .sb-contact-card { grid-template-columns: minmax(0, 1fr); }
  .sb-hero.has-media.l-split.side-left .sb-hero-in > :last-child { order: 0; }
  .sb-imgtext.side-right .sb-imgtext-media { order: 0; }
  .sb-layout .sb-layout-grid, .sb-layout.cols-2 .sb-layout-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .sb-layout.cols-4 .sb-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .sb-layout.is-reverse .sb-layout-grid > .sb-col:first-child { order: 2; }
  .sb-cards.cols-2, .sb-services.cols-2, .sb-strip.cols-2, .sb-strip.cols-4 { grid-template-columns: minmax(0, 1fr); }
  .sb-hero.l-overlay .sb-hero-in { padding-top: 70px; padding-bottom: 70px; }
  .sb-slider-arrow { display: none !important; }
}
@media (max-width: 600px) {
  .sb-sec { padding: 52px 0; }
  .sb-sec.sp-large { padding: 70px 0; }
  .sb-cards.cols-4, .sb-strip.cols-3, .sb-steps.n-2, .sb-steps.n-3, .sb-ba-grid { grid-template-columns: minmax(0, 1fr); }
  .sb-layout.cols-4 .sb-layout-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .sb-cta-actions, .sb-cta-actions .s-btn { width: 100%; }
  .sb-lightbox-figure { padding: 64px 10px 84px; }
}
@media (prefers-reduced-motion: reduce) {
  .sb-slide, .sb-slide.is-active, .sb-slider.fx-slide .sb-slide { transition: none !important; transform: none !important; }
  .sb-slide-bg, .sb-slide-content > * { animation: none !important; }
  .sb-reveal-pending { opacity: 1 !important; transform: none !important; transition: none !important; }
}
@media print { .sb-slider-arrow, .sb-slider-dots, .sb-slider-pause { display: none !important; } }
