/* SAGOP V14 - interface industrielle Blocksy et Gutenberg */
:root {
  --s13-red: #bd1f2d;
  --s13-red-dark: #971824;
  --s13-ink: #111827;
  --s13-text: #475569;
  --s13-muted: #64748b;
  --s13-line: #dbe3ec;
  --s13-soft: #f4f7fa;
  --s13-dark: #101827;
  --s13-white: #fff;
  --s13-radius: 22px;
  --s13-shadow: 0 18px 55px rgba(15, 23, 42, .09);
  --s13-shadow-hover: 0 24px 65px rgba(15, 23, 42, .14);
  --s13-wide: min(1240px, calc(100vw - 48px));
  --s13-content: min(1120px, calc(100vw - 48px));
}

html { scroll-behavior: smooth; }
body.sagop-starter-page { overflow-x: clip; }
body.sagop-starter-page .site-main,
body.sagop-starter-page .entry-content,
body.sagop-starter-page article { max-width: none !important; width: 100% !important; padding: 0 !important; }
body.sagop-starter-page .entry-header { display: none !important; }
.sagop-v13, .editor-styles-wrapper .sagop-v13 { color: var(--s13-text); overflow-x: clip; }
.sagop-v13 *, .sagop-v13 *::before, .sagop-v13 *::after,
.editor-styles-wrapper .sagop-v13 *, .editor-styles-wrapper .sagop-v13 *::before, .editor-styles-wrapper .sagop-v13 *::after { box-sizing: border-box; }
.sagop-v13 :where(h1,h2,h3,h4), .editor-styles-wrapper .sagop-v13 :where(h1,h2,h3,h4) { color: var(--s13-ink); font-weight: 800; letter-spacing: -.035em; margin-top: 0; }
.sagop-v13 h1, .editor-styles-wrapper .sagop-v13 h1 { font-size: clamp(2.55rem, 4.7vw, 4.85rem); line-height: .98; }
.sagop-v13 h2, .editor-styles-wrapper .sagop-v13 h2 { font-size: clamp(1.75rem, 2.8vw, 2.85rem); line-height: 1.08; }
.sagop-v13 h3, .editor-styles-wrapper .sagop-v13 h3 { font-size: clamp(1.15rem, 1.35vw, 1.48rem); line-height: 1.2; }
.sagop-v13 p, .editor-styles-wrapper .sagop-v13 p { line-height: 1.68; }
.sagop-v13 a { text-underline-offset: 3px; }
.sagop-v13 .alignwide, .editor-styles-wrapper .sagop-v13 .alignwide { width: var(--s13-wide) !important; max-width: var(--s13-wide) !important; margin-left: auto !important; margin-right: auto !important; }
.sagop-v13 .wp-block-columns { margin-bottom: 0; }
.sagop-v13 .wp-block-column { min-width: 0; }

.sagop-v13-eyebrow, .editor-styles-wrapper .sagop-v13-eyebrow {
  color: var(--s13-red) !important;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .17em;
  margin-bottom: 16px !important;
}
.sagop-v13-lead, .editor-styles-wrapper .sagop-v13-lead { font-size: clamp(1.05rem, 1.35vw, 1.32rem); max-width: 820px; color: var(--s13-text); }
.sagop-v13-models { color: var(--s13-muted); font-weight: 650; }
.sagop-v13-card-meta { color: var(--s13-red) !important; font-size: .72rem; text-transform: uppercase; letter-spacing: .13em; font-weight: 800; margin-bottom: 8px !important; }
.sagop-v13-link { margin-top: auto !important; font-weight: 800; }
.sagop-v13-link a { color: var(--s13-red); text-decoration: none; }
.sagop-v13-link a:hover { color: var(--s13-red-dark); }

/* Buttons */
.sagop-v13 .wp-block-button__link,
.editor-styles-wrapper .sagop-v13 .wp-block-button__link {
  border-radius: 10px !important;
  padding: 14px 22px !important;
  font-size: .78rem !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: .07em;
  text-transform: uppercase;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.sagop-v13 .is-style-sagop-primary .wp-block-button__link,
.editor-styles-wrapper .sagop-v13 .is-style-sagop-primary .wp-block-button__link { background: var(--s13-red) !important; color: #fff !important; box-shadow: 0 12px 25px rgba(189,31,45,.18); }
.sagop-v13 .is-style-sagop-primary .wp-block-button__link:hover { background: var(--s13-red-dark) !important; transform: translateY(-2px); box-shadow: 0 16px 32px rgba(189,31,45,.26); }
.sagop-v13 .is-style-sagop-secondary .wp-block-button__link,
.editor-styles-wrapper .sagop-v13 .is-style-sagop-secondary .wp-block-button__link { background: #fff !important; color: var(--s13-ink) !important; border: 1px solid #cbd5e1; }
.sagop-v13 .is-style-sagop-secondary .wp-block-button__link:hover { border-color: var(--s13-red); color: var(--s13-red) !important; transform: translateY(-2px); }
.sagop-v13 .wp-block-buttons { gap: 12px; }

/* Header compatibility */
.ct-header { z-index: 999; }
.ct-header .menu > li > a { font-weight: 700; font-size: .78rem; }
.ct-header .menu-item-has-children > .sub-menu { border-radius: 14px; box-shadow: var(--s13-shadow); border: 1px solid var(--s13-line); overflow: hidden; }
.ct-header .menu-item-has-children > .sub-menu a { padding: 11px 18px; }
.ct-header .sagop-menu-quote > a { background: var(--s13-red) !important; color: #fff !important; border-radius: 8px; padding: 12px 16px !important; }

/* Hero / homepage */
.sagop-v13-hero {
  padding: clamp(52px, 6vw, 92px) 0 clamp(44px, 5vw, 78px);
  background:
    linear-gradient(120deg, rgba(255,255,255,.98) 0%, rgba(248,250,252,.97) 58%, rgba(255,245,246,.86) 100%),
    radial-gradient(circle at 88% 15%, rgba(189,31,45,.14), transparent 28%);
  border-bottom: 1px solid var(--s13-line);
}
.sagop-v13-hero-intro { margin-bottom: clamp(30px, 4vw, 52px) !important; }
.sagop-v13-hero-intro h1 { max-width: 930px; margin-left: auto; margin-right: auto; }
.sagop-v13-hero-intro .sagop-v13-lead { margin-left: auto; margin-right: auto; }
.sagop-v13-universes { gap: clamp(20px, 2.8vw, 34px); }
.sagop-v13-universe {
  min-height: 520px;
  padding: 24px 28px 30px;
  border-radius: var(--s13-radius);
  background: #fff;
  border: 1px solid var(--s13-line);
  box-shadow: var(--s13-shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.sagop-v13-universe:hover { transform: translateY(-5px); box-shadow: var(--s13-shadow-hover); border-color: rgba(189,31,45,.3); }
.sagop-v13-universe .sagop-v13-universe-image { margin: -24px -28px 26px !important; height: 220px; overflow: hidden; background: #f3f6f9; }
.sagop-v13-universe-image img { width: 100% !important; height: 100% !important; object-fit: contain !important; padding: 22px; display: block; }
.sagop-v13-universe-service .sagop-v13-universe-image img { object-fit: cover !important; padding: 0; }
.sagop-v13-universe h2 { font-size: clamp(2rem, 3vw, 3rem); }
.sagop-v13-universe .wp-block-buttons { margin-top: auto; }
.sagop-v13-stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-top: 24px !important; }
.sagop-v13-stats > .wp-block-group { padding: 18px 20px; border-radius: 14px; background: rgba(255,255,255,.82); border: 1px solid var(--s13-line); backdrop-filter: blur(10px); }
.sagop-v13-stats strong { display: block; color: var(--s13-ink); font-size: 1.55rem; line-height: 1; margin-bottom: 6px; }
.sagop-v13-stats span { font-size: .84rem; color: var(--s13-muted); }

/* Page heroes */
.sagop-v13-page-hero, .sagop-v13-subcontract-hero {
  padding: clamp(54px, 6vw, 92px) 0;
  background: linear-gradient(120deg, #fff 0%, #f7f9fc 70%, #fff4f5 100%);
  border-bottom: 1px solid var(--s13-line);
}
.sagop-v13-page-hero .wp-block-columns { gap: clamp(34px, 5vw, 76px); }
.sagop-v13-page-hero h1 { font-size: clamp(2.55rem, 4.25vw, 4.35rem); max-width: 820px; }
.sagop-v13-hero-product, .sagop-v13-service-hero-image { margin: 0 !important; border-radius: 20px; background: #fff; border: 1px solid var(--s13-line); box-shadow: var(--s13-shadow); min-height: 330px; display: grid; place-items: center; overflow: hidden; }
.sagop-v13-hero-product img { width: 100%; height: 100%; max-height: 420px; object-fit: contain; padding: 34px; }
.sagop-v13-service-hero-image img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; }

/* Sections */
.sagop-v13-section { padding: clamp(46px, 5vw, 78px) 0; }
.sagop-v13-section-tight { padding-top: clamp(30px, 3.4vw, 52px); padding-bottom: clamp(30px, 3.4vw, 52px); }
.sagop-v13-section-soft { background: var(--s13-soft); border-top: 1px solid var(--s13-line); border-bottom: 1px solid var(--s13-line); }
.sagop-v13-section-dark { background: var(--s13-dark); color: #dbe4ef; }
.sagop-v13-section-dark :where(h1,h2,h3), .editor-styles-wrapper .sagop-v13-section-dark :where(h1,h2,h3) { color: #fff !important; }
.sagop-v13-section-dark p { color: #c5d0dc; }
.sagop-v13-section-dark .sagop-v13-eyebrow { color: #ff7180 !important; }
.sagop-v13-section-head { text-align: center; margin-bottom: clamp(24px, 3vw, 40px) !important; }
.sagop-v13-section-head > * { max-width: 820px; margin-left: auto !important; margin-right: auto !important; }
.sagop-v13-section-head h1 { max-width: 1000px; }

/* Cards and grids */
.sagop-v13-card-grid { display: grid !important; gap: 22px; }
.sagop-v13-card-grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.sagop-v13-card-grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.sagop-v13-card {
  padding: 22px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid var(--s13-line);
  box-shadow: 0 10px 35px rgba(15,23,42,.055);
  display: flex;
  flex-direction: column;
  min-width: 0;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.sagop-v13-card:hover { transform: translateY(-4px); box-shadow: var(--s13-shadow-hover); border-color: rgba(189,31,45,.28); }
.editor-styles-wrapper .sagop-v13-card:hover { transform: none; }
.sagop-v13-card > .wp-block-image { height: 170px; margin: -22px -22px 20px !important; border-radius: 18px 18px 0 0; overflow: hidden; background: #f4f6f8; }
.sagop-v13-card > .wp-block-image img { width: 100%; height: 100%; object-fit: contain; padding: 18px; }
.sagop-v13-card-grid-3 .sagop-v13-card > .wp-block-image img { object-fit: cover; padding: 0; }
.sagop-v13-product-card { min-height: 410px; }
.sagop-v13-product-card > .wp-block-image { height: 150px; }
.sagop-v13-catalog-card { min-height: 470px; }
.sagop-v13-catalog-card > .wp-block-image { height: 190px; }
.sagop-v13-catalog-card > .wp-block-image img { object-fit: contain; padding: 24px; }
.sagop-v13-info-band { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 32px; padding: clamp(30px,4vw,52px); background: #fff; border: 1px solid var(--s13-line); border-radius: var(--s13-radius); box-shadow: var(--s13-shadow); }

/* Subcontracting above fold */
.sagop-v13-subcontract-hero { padding-bottom: clamp(34px,4vw,58px); }
.sagop-v13-subcontract-intro { text-align: center; max-width: 980px !important; margin-bottom: 32px !important; }
.sagop-v13-subcontract-intro h1 { max-width: 930px; margin-left: auto; margin-right: auto; font-size: clamp(2.45rem, 4vw, 4.15rem); }
.sagop-v13-subcontract-intro .sagop-v13-lead { margin-left: auto; margin-right: auto; }
.sagop-v13-subcontract-intro .wp-block-buttons { justify-content: center; }
.sagop-v13-above-fold-services { gap: 18px; }
.sagop-v13-capability-card { min-height: 330px; background: #fff; border: 1px solid var(--s13-line); border-radius: 18px; padding: 20px; box-shadow: var(--s13-shadow); display: flex; flex-direction: column; }
.sagop-v13-capability-card > .wp-block-image { height: 150px; overflow: hidden; margin: -20px -20px 18px !important; border-radius: 18px 18px 0 0; }
.sagop-v13-capability-card img { width: 100%; height: 100%; object-fit: cover; }
.sagop-v13-capability-card h2 { font-size: clamp(1.45rem,1.9vw,1.95rem); }
.sagop-v13-capacity-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.sagop-v13-capacity-grid > div { padding: 20px; border-radius: 14px; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.06); }
.sagop-v13-capacity-grid strong { display: block; color: #fff; font-size: 1.15rem; margin-bottom: 6px; }
.sagop-v13-capacity-grid span { color: #cbd5e1; }
.sagop-v13-process { display: grid !important; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 14px; }
.sagop-v13-process > div { position: relative; padding: 24px 20px; border: 1px solid var(--s13-line); border-radius: 16px; background: #fff; }
.sagop-v13-process span { color: var(--s13-red); font-weight: 900; letter-spacing: .12em; }

/* Product page */
.sagop-v13-benefits { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.sagop-v13-benefits > div { min-height: 120px; padding: 20px; border: 1px solid var(--s13-line); border-radius: 15px; background: #fff; box-shadow: 0 8px 24px rgba(15,23,42,.04); }
.sagop-v13-benefits span, .sagop-v13-detail-grid span { color: var(--s13-red); font-weight: 900; letter-spacing: .12em; }
.sagop-v13-benefits p { margin-bottom: 0; color: var(--s13-ink); font-weight: 700; }
.sagop-v13-gallery { display: grid !important; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: 20px; }
.sagop-v13-gallery .wp-block-image { margin: 0 !important; min-height: 260px; background: #fff; border: 1px solid var(--s13-line); border-radius: 18px; display: grid; place-items: center; overflow: hidden; }
.sagop-v13-gallery img { max-height: 300px; width: 100%; object-fit: contain; padding: 20px; }
.sagop-v13-tech-sections { display: grid; gap: 42px; }
.sagop-v13-tech-section { min-width: 0; }
.sagop-v13-tech-section > h3 { margin-bottom: 8px; }
.sagop-v13-table { overflow-x: auto; border: 1px solid var(--s13-line); border-radius: 14px; box-shadow: 0 10px 30px rgba(15,23,42,.04); margin-top: 18px !important; }
.sagop-v13-table table { border-collapse: collapse; width: 100%; min-width: 660px; background: #fff; }
.sagop-v13-table th, .sagop-v13-table td { padding: 13px 14px; border: 0 !important; border-bottom: 1px solid var(--s13-line) !important; border-right: 1px solid var(--s13-line) !important; text-align: left; vertical-align: top; }
.sagop-v13-table th { background: #f1f5f9; color: var(--s13-ink); font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; white-space: nowrap; }
.sagop-v13-table tr:last-child td { border-bottom: 0 !important; }
.sagop-v13-table td:last-child, .sagop-v13-table th:last-child { border-right: 0 !important; }
.sagop-v13-note { padding: 28px; border-radius: 16px; background: #fff8f8; border: 1px solid #f4c7cc; }
.sagop-v13-video { margin: 0 !important; border-radius: 18px; overflow: hidden; box-shadow: var(--s13-shadow); }
.sagop-v13-video iframe { width: 100%; aspect-ratio: 16 / 9; }

/* Service detail */
.sagop-v13-detail-grid { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.sagop-v13-detail-grid .sagop-v13-card { min-height: 160px; }
.sagop-v13-checklist { padding: 28px; border-radius: 18px; background: #fff; border: 1px solid var(--s13-line); box-shadow: var(--s13-shadow); }
.sagop-v13-checklist p { margin: 0 0 10px; color: var(--s13-ink); font-weight: 650; }

/* Proofs / timeline */
.sagop-v13-proof-section { background: #fff; }
.sagop-v13-proof-grid { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--s13-line); border-radius: 20px; overflow: hidden; box-shadow: var(--s13-shadow); }
.sagop-v13-proof-grid > div { padding: 28px; border-right: 1px solid var(--s13-line); background: linear-gradient(180deg,#fff,#fbfcfe); }
.sagop-v13-proof-grid > div:last-child { border-right: 0; }
.sagop-v13-proof-grid span { color: var(--s13-red); font-weight: 900; letter-spacing: .12em; }
.sagop-v13-timeline { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.sagop-v13-timeline > div { padding: 28px; border-radius: 18px; border: 1px solid var(--s13-line); background: #fff; }
.sagop-v13-timeline span { display: block; font-size: 1.8rem; color: var(--s13-red); font-weight: 900; margin-bottom: 16px; }

/* Contact */
.sagop-v13-contact-layout { gap: 24px; align-items: flex-start; }
.sagop-v13-contact-card { position: sticky; top: 110px; padding: 30px; border-radius: 18px; background: #fff; border: 1px solid var(--s13-line); box-shadow: var(--s13-shadow); }
.sagop-native-form-wrap { border-radius: 18px !important; border: 1px solid var(--s13-line) !important; box-shadow: var(--s13-shadow); background: #fff; padding: clamp(22px,3vw,36px); }
.sagop-form-progress { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.sagop-form-progress span { border-radius: 999px !important; padding: 12px !important; text-align: center; background: #eef2f7 !important; color: #64748b !important; }
.sagop-form-progress span.is-active { background: var(--s13-red) !important; color: #fff !important; }
.sagop-form-choice-grid { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.sagop-form-choice-grid label { display: grid !important; grid-template-columns: 22px minmax(0,1fr); align-items: start; gap: 12px; min-width: 0; padding: 18px !important; border-radius: 14px !important; border: 1px solid var(--s13-line) !important; background: #fff; }
.sagop-form-choice-grid input[type="radio"] { appearance: auto !important; width: 18px !important; height: 18px !important; min-width: 18px !important; margin: 3px 0 0 !important; border-radius: 50% !important; }
.sagop-form-choice-grid span { min-width: 0; font-weight: 800; color: var(--s13-ink); }
.sagop-form-choice-grid small { display: block; font-weight: 400; color: var(--s13-muted); margin-top: 4px; line-height: 1.45; }
.sagop-form-grid { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.sagop-form-grid .is-wide { grid-column: 1 / -1; }
.sagop-native-form :where(input:not([type="radio"]),select,textarea) { width: 100%; border: 1px solid #cbd5e1; border-radius: 10px; padding: 12px 14px; background: #fff; color: var(--s13-ink); }
.sagop-native-form :where(input,select,textarea):focus { outline: 2px solid rgba(189,31,45,.16); border-color: var(--s13-red); }
.sagop-form-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 20px; }
.sagop-form-actions button { border: 0; border-radius: 9px; padding: 13px 20px; font-weight: 800; cursor: pointer; }
.sagop-form-next, .sagop-form-submit { background: var(--s13-red); color: #fff; margin-left: auto; }
.sagop-form-prev { background: #eef2f7; color: var(--s13-ink); }

/* CTA */
.sagop-v13-cta-section { background: var(--s13-soft); border-top: 1px solid var(--s13-line); }
.sagop-v13-cta { padding: clamp(30px,4vw,52px); border-radius: var(--s13-radius); background: #fff; border: 1px solid var(--s13-line); box-shadow: var(--s13-shadow); }

/* Footer */
.sagop-v13-footer { padding: 54px 0 18px; background: #e9eef4; color: #465569; border-top: 1px solid var(--s13-line); }
.sagop-v13-footer-grid { gap: 34px; }
.sagop-v13-footer h3 { font-size: 1.05rem; letter-spacing: -.01em; }
.sagop-v13-footer a { color: #334155; text-decoration: none; }
.sagop-v13-footer a:hover { color: var(--s13-red); }
.sagop-v13-footer-logo { width: 200px; margin: 0 0 20px !important; }
.sagop-v13-footer-logo img { max-width: 100%; height: auto; }
.sagop-v13-footer-bottom { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid #cbd5e1; margin-top: 32px !important; padding-top: 18px; font-size: .78rem; }

/* Editor clarity */
.editor-styles-wrapper .sagop-v13 { max-width: none !important; }
.editor-styles-wrapper .sagop-v13 .alignfull { width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
.editor-styles-wrapper .sagop-v13 .sagop-v13-card,
.editor-styles-wrapper .sagop-v13 .sagop-v13-universe,
.editor-styles-wrapper .sagop-v13 .sagop-v13-capability-card { min-height: 0; }

@media (max-width: 1100px) {
  .sagop-v13-card-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sagop-v13-card-grid-3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sagop-v13-benefits, .sagop-v13-proof-grid, .sagop-v13-detail-grid, .sagop-v13-timeline { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sagop-v13-proof-grid > div:nth-child(2) { border-right: 0; }
  .sagop-v13-proof-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--s13-line); }
  .sagop-v13-process { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 781px) {
  :root { --s13-wide: min(100% - 28px, 680px); --s13-content: min(100% - 28px, 680px); }
  .sagop-v13 h1 { font-size: clamp(2.25rem,10vw,3.45rem); }
  .sagop-v13 h2 { font-size: clamp(1.7rem,7.5vw,2.5rem); }
  .sagop-v13-hero, .sagop-v13-page-hero, .sagop-v13-subcontract-hero { padding-top: 42px; padding-bottom: 42px; }
  .sagop-v13-universes, .sagop-v13-above-fold-services { display: grid !important; grid-template-columns: 1fr; }
  .sagop-v13-universe { min-height: 0; }
  .sagop-v13-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sagop-v13-card-grid-4, .sagop-v13-card-grid-3, .sagop-v13-benefits, .sagop-v13-proof-grid, .sagop-v13-detail-grid, .sagop-v13-timeline, .sagop-v13-process, .sagop-v13-capacity-grid { grid-template-columns: 1fr; }
  .sagop-v13-info-band { grid-template-columns: 1fr; }
  .sagop-v13-proof-grid > div { border-right: 0; border-bottom: 1px solid var(--s13-line); }
  .sagop-v13-proof-grid > div:last-child { border-bottom: 0; }
  .sagop-v13-gallery { grid-template-columns: 1fr; }
  .sagop-v13-contact-card { position: static; }
  .sagop-form-choice-grid, .sagop-form-grid { grid-template-columns: 1fr !important; }
  .sagop-form-grid .is-wide { grid-column: auto; }
  .sagop-v13-footer-bottom { flex-direction: column; }
  .sagop-v13 .wp-block-buttons { flex-direction: column; align-items: stretch; }
  .sagop-v13 .wp-block-button, .sagop-v13 .wp-block-button__link { width: 100%; text-align: center; }
}

@media (max-width: 480px) {
  .sagop-v13-stats { grid-template-columns: 1fr; }
  .sagop-v13-universe { padding: 20px; }
  .sagop-v13-universe .sagop-v13-universe-image { margin: -20px -20px 22px !important; }
  .sagop-v13-card { padding: 18px; }
  .sagop-v13-card > .wp-block-image { margin: -18px -18px 18px !important; }
  .sagop-form-progress { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   SAGOP V14 - refined scale, reliable videos and direct quote forms
---------------------------------------------------------------------------- */
.sagop-v14 .sagop-v13-section-head > * {
  max-width: 760px;
}

.sagop-v14 .sagop-v13-section-head h2,
.editor-styles-wrapper .sagop-v14 .sagop-v13-section-head h2 {
  max-width: 720px;
}

.sagop-v14-section-head-compact {
  margin-bottom: 28px !important;
}

.sagop-v14-service-hero {
  padding-top: clamp(44px, 5vw, 72px);
  padding-bottom: clamp(44px, 5vw, 72px);
}

.sagop-v14-service-hero-grid {
  gap: clamp(30px, 4vw, 58px) !important;
}

.sagop-v14-service-hero-image {
  margin: 0 !important;
  min-height: 300px;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid var(--s13-line);
  background: #fff;
  box-shadow: var(--s13-shadow);
}

.sagop-v14-service-hero-image img {
  width: 100% !important;
  height: 100% !important;
  min-height: 300px;
  object-fit: cover !important;
  display: block;
}

.sagop-v14-capability-highlight {
  margin: -2px 0 10px !important;
  color: var(--s13-red) !important;
  font-size: 1rem;
}

.sagop-v14-facts-section {
  background: #fff;
}

.sagop-v14-facts-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.sagop-v14-fact-card {
  min-width: 0;
  padding: 24px;
  border: 1px solid var(--s13-line);
  border-radius: 17px;
  background: linear-gradient(180deg, #fff, #fbfcfe);
  box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.sagop-v14-fact-label {
  margin: 0 0 16px !important;
  color: var(--s13-red) !important;
  font-size: .73rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .11em;
}

.sagop-v14-fact-value {
  margin: 0 0 10px !important;
  font-size: clamp(1.35rem, 1.8vw, 1.75rem) !important;
  letter-spacing: -.025em !important;
}

.sagop-v14-fact-note {
  margin: 0 !important;
  color: var(--s13-muted) !important;
  font-size: .92rem;
}

.sagop-v14-scope-grid {
  gap: 22px !important;
}

.sagop-v14-scope-panel {
  height: 100%;
  padding: clamp(28px, 3vw, 42px);
  border: 1px solid var(--s13-line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 36px rgba(15, 23, 42, .055);
}

.sagop-v14-scope-panel-dark {
  color: #dbe4ef;
  background: var(--s13-dark);
  border-color: rgba(255,255,255,.13);
}

.sagop-v14-scope-panel-dark :where(h2,h3) {
  color: #fff !important;
}

.sagop-v14-scope-panel-dark .sagop-v13-eyebrow {
  color: #ff7180 !important;
}

.sagop-v14-scope-panel-dark li {
  color: #dbe4ef;
}

.sagop-v14-clean-list,
.sagop-v14-quote-points {
  margin: 24px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.sagop-v14-clean-list li,
.sagop-v14-quote-points li {
  position: relative;
  margin: 0;
  padding: 12px 0 12px 28px;
  border-bottom: 1px solid rgba(148,163,184,.24);
}

.sagop-v14-clean-list li:last-child,
.sagop-v14-quote-points li:last-child {
  border-bottom: 0;
}

.sagop-v14-clean-list li::before,
.sagop-v14-quote-points li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 21px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--s13-red);
}

/* Direct quote section */
.sagop-v14-quote-section {
  padding: clamp(48px, 5vw, 78px) 0;
  color: #dbe4ef;
  background:
    radial-gradient(circle at 10% 20%, rgba(189,31,45,.24), transparent 28%),
    var(--s13-dark);
  border-top: 1px solid rgba(255,255,255,.09);
  border-bottom: 1px solid rgba(255,255,255,.09);
  scroll-margin-top: 110px;
}

.sagop-v14-quote-section-light {
  color: var(--s13-text);
  background: var(--s13-soft);
  border-top-color: var(--s13-line);
  border-bottom-color: var(--s13-line);
}

.sagop-v14-quote-section :where(h2,h3) {
  color: #fff !important;
}

.sagop-v14-quote-section-light :where(h2,h3) {
  color: var(--s13-ink) !important;
}

.sagop-v14-quote-section .sagop-v13-eyebrow {
  color: #ff7180 !important;
}

.sagop-v14-quote-section-light .sagop-v13-eyebrow {
  color: var(--s13-red) !important;
}

.sagop-v14-quote-layout {
  gap: clamp(28px, 4vw, 58px) !important;
}

.sagop-v14-quote-form-wrap {
  padding: clamp(22px, 2.6vw, 34px);
  border-radius: 20px;
  background: #fff;
  color: var(--s13-text);
  border: 1px solid var(--s13-line);
  box-shadow: var(--s13-shadow);
}

.sagop-v14-quote-topic {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 22px;
  padding: 14px 16px;
  border-radius: 12px;
  background: #fff5f6;
  border: 1px solid #f3c7cc;
}

.sagop-v14-quote-topic span {
  color: var(--s13-muted);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 750;
}

.sagop-v14-quote-topic strong {
  color: var(--s13-red);
}

.sagop-v14-quote-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.sagop-v14-quote-grid label {
  min-width: 0;
  color: var(--s13-ink);
  font-size: .88rem;
  font-weight: 700;
}

.sagop-v14-quote-grid label > span {
  color: var(--s13-red);
}

.sagop-v14-quote-grid label.is-wide {
  grid-column: 1 / -1;
}

.sagop-v14-quote-grid :where(input,select,textarea) {
  width: 100%;
  min-height: 46px;
  margin-top: 7px;
  padding: 11px 13px;
  color: var(--s13-ink);
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  font: inherit;
}

.sagop-v14-quote-grid textarea {
  min-height: 132px;
  resize: vertical;
}

.sagop-v14-quote-grid input[type="file"] {
  padding: 9px;
}

.sagop-v14-quote-grid small {
  display: block;
  margin-top: 6px;
  color: var(--s13-muted);
  font-weight: 400;
  line-height: 1.4;
}

.sagop-v14-quote-grid :where(input,select,textarea):focus {
  outline: 3px solid rgba(189,31,45,.12);
  border-color: var(--s13-red);
}

.sagop-v14-quote-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 20px;
}

.sagop-v14-quote-actions p {
  max-width: 420px;
  margin: 0 !important;
  color: var(--s13-muted) !important;
  font-size: .78rem;
}

.sagop-v14-quote-actions button {
  flex: 0 0 auto;
  border: 0;
  border-radius: 10px;
  padding: 14px 20px;
  color: #fff;
  background: var(--s13-red);
  box-shadow: 0 12px 28px rgba(189,31,45,.2);
  font-weight: 850;
  cursor: pointer;
}

.sagop-v14-quote-actions button:hover {
  background: var(--s13-red-dark);
}

/* Reliable video player */
.sagop-v14-video-player {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  background: #050a12;
  box-shadow: var(--s13-shadow);
}

.sagop-v14-video-player iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
}

.sagop-v14-video-fallback {
  margin: 0 !important;
  padding: 11px 16px;
  background: #fff;
  text-align: right;
  font-size: .8rem;
}

.sagop-v14-video-fallback a {
  color: var(--s13-red) !important;
  font-weight: 750;
  text-decoration: none;
}

/* Better tables and service-card rhythm */
.sagop-v14 .sagop-v13-tech-sections {
  gap: 34px;
}

.sagop-v14 .sagop-v13-table th,
.sagop-v14 .sagop-v13-table td {
  padding: 11px 12px;
}

.sagop-v14 .sagop-v13-capability-card {
  min-height: 0;
}

.sagop-v14 .sagop-v13-capability-card .sagop-v13-link {
  margin-top: auto !important;
}

@media (max-width: 1100px) {
  .sagop-v14-facts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 781px) {
  .sagop-v14-service-hero-image,
  .sagop-v14-service-hero-image img {
    min-height: 230px;
  }

  .sagop-v14-facts-grid,
  .sagop-v14-quote-grid {
    grid-template-columns: 1fr;
  }

  .sagop-v14-quote-grid label.is-wide {
    grid-column: auto;
  }

  .sagop-v14-quote-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .sagop-v14-quote-actions button {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .sagop-v14-fact-card,
  .sagop-v14-scope-panel,
  .sagop-v14-quote-form-wrap {
    padding: 20px;
  }
}

/* V14 final typography lock: prevent Blocksy/global heading scales from re-enlarging technical pages. */
.sagop-v14 h1,
.editor-styles-wrapper .sagop-v14 h1 {
  font-size: clamp(2.25rem, 4vw, 3.9rem) !important;
  line-height: 1.02 !important;
}

.sagop-v14 h2,
.editor-styles-wrapper .sagop-v14 h2 {
  font-size: clamp(1.65rem, 2.45vw, 2.4rem) !important;
  line-height: 1.1 !important;
}

.sagop-v14 h3,
.editor-styles-wrapper .sagop-v14 h3 {
  font-size: clamp(1.08rem, 1.25vw, 1.38rem) !important;
}

.sagop-v14 .sagop-v13-universe h2,
.editor-styles-wrapper .sagop-v14 .sagop-v13-universe h2 {
  font-size: clamp(1.75rem, 2.45vw, 2.35rem) !important;
}

.sagop-v14 .sagop-v13-section-head {
  margin-bottom: clamp(22px, 2.5vw, 34px) !important;
}

@media (max-width: 781px) {
  .sagop-v14 h1,
  .editor-styles-wrapper .sagop-v14 h1 {
    font-size: clamp(2rem, 10vw, 3rem) !important;
  }

  .sagop-v14 h2,
  .editor-styles-wrapper .sagop-v14 h2 {
    font-size: clamp(1.55rem, 7vw, 2.1rem) !important;
  }
}

.sagop-v14-consent {
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
  font-weight: 500 !important;
  line-height: 1.45;
}

.sagop-v14-consent input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px !important;
  min-height: 18px !important;
  height: 18px;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  accent-color: var(--s13-red);
}

.sagop-v14-consent > span {
  color: var(--s13-muted) !important;
  font-size: .8rem;
}

.sagop-v14-consent strong {
  color: var(--s13-red);
}

/* --------------------------------------------------------------------------
   SAGOP V15 — audit de stabilisation et mise en page cohérente
---------------------------------------------------------------------------- */
.sagop-v15 :where(h1),
.editor-styles-wrapper .sagop-v15 :where(h1) {
  font-size: clamp(2.35rem, 4vw, 4.1rem) !important;
  line-height: 1.01 !important;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.sagop-v15 :where(h2),
.editor-styles-wrapper .sagop-v15 :where(h2) {
  font-size: clamp(1.65rem, 2.45vw, 2.5rem) !important;
  line-height: 1.1 !important;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.sagop-v15 :where(h3),
.editor-styles-wrapper .sagop-v15 :where(h3) {
  font-size: clamp(1.08rem, 1.25vw, 1.35rem) !important;
  line-height: 1.22 !important;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.sagop-v15 .sagop-v13-page-hero,
.sagop-v15 .sagop-v13-subcontract-hero {
  padding-top: clamp(42px, 5vw, 72px);
  padding-bottom: clamp(42px, 5vw, 72px);
}

.sagop-v15 .sagop-v13-section {
  padding-top: clamp(42px, 4.6vw, 68px);
  padding-bottom: clamp(42px, 4.6vw, 68px);
}

/* Equal-height Gutenberg grids and cards. */
.sagop-v15-equal-grid,
.editor-styles-wrapper .sagop-v15-equal-grid {
  align-items: stretch !important;
  grid-auto-rows: 1fr;
}

.sagop-v15-equal-grid > .wp-block-group,
.sagop-v15-equal-grid > .wp-block-column,
.editor-styles-wrapper .sagop-v15-equal-grid > .wp-block-group,
.editor-styles-wrapper .sagop-v15-equal-grid > .wp-block-column {
  min-width: 0;
  height: 100%;
}

.sagop-v15-equal-card,
.editor-styles-wrapper .sagop-v15-equal-card {
  height: 100%;
  min-height: 0 !important;
}

.sagop-v15 .sagop-v13-product-card,
.sagop-v15 .sagop-v13-catalog-card,
.sagop-v15 .sagop-v15-service-card,
.editor-styles-wrapper .sagop-v15 .sagop-v13-product-card,
.editor-styles-wrapper .sagop-v15 .sagop-v13-catalog-card,
.editor-styles-wrapper .sagop-v15 .sagop-v15-service-card {
  display: flex !important;
  flex-direction: column;
}

.sagop-v15 .sagop-v13-product-card > .wp-block-image,
.sagop-v15 .sagop-v13-catalog-card > .wp-block-image,
.editor-styles-wrapper .sagop-v15 .sagop-v13-product-card > .wp-block-image,
.editor-styles-wrapper .sagop-v15 .sagop-v13-catalog-card > .wp-block-image {
  height: 180px !important;
  flex: 0 0 180px;
}

.sagop-v15 .sagop-v13-product-card > .wp-block-image img,
.sagop-v15 .sagop-v13-catalog-card > .wp-block-image img,
.editor-styles-wrapper .sagop-v15 .sagop-v13-product-card > .wp-block-image img,
.editor-styles-wrapper .sagop-v15 .sagop-v13-catalog-card > .wp-block-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  padding: 18px !important;
}

.sagop-v15 .sagop-v13-product-card h3,
.sagop-v15 .sagop-v13-catalog-card h2,
.editor-styles-wrapper .sagop-v15 .sagop-v13-product-card h3,
.editor-styles-wrapper .sagop-v15 .sagop-v13-catalog-card h2 {
  min-height: 2.55em;
  margin-bottom: 12px !important;
}

.sagop-v15 .sagop-v15-service-card > .wp-block-image,
.sagop-v15 .sagop-v13-capability-card > .wp-block-image,
.editor-styles-wrapper .sagop-v15 .sagop-v15-service-card > .wp-block-image,
.editor-styles-wrapper .sagop-v15 .sagop-v13-capability-card > .wp-block-image {
  height: 215px !important;
  flex: 0 0 215px;
  overflow: hidden;
}

.sagop-v15 .sagop-v15-service-card > .wp-block-image img,
.sagop-v15 .sagop-v13-capability-card > .wp-block-image img,
.editor-styles-wrapper .sagop-v15 .sagop-v15-service-card > .wp-block-image img,
.editor-styles-wrapper .sagop-v15 .sagop-v13-capability-card > .wp-block-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  padding: 0 !important;
}

.sagop-v15 .sagop-v15-service-card h3,
.sagop-v15 .sagop-v13-capability-card h2,
.editor-styles-wrapper .sagop-v15 .sagop-v15-service-card h3,
.editor-styles-wrapper .sagop-v15 .sagop-v13-capability-card h2 {
  min-height: 2.55em;
}

.sagop-v15 .sagop-v13-capability-card,
.editor-styles-wrapper .sagop-v15 .sagop-v13-capability-card {
  display: flex !important;
  flex-direction: column;
  height: 100%;
  min-height: 560px;
}

.sagop-v15 .sagop-v13-capability-card .sagop-v13-link,
.sagop-v15 .sagop-v13-card .sagop-v13-link {
  margin-top: auto !important;
  padding-top: 14px;
}

.sagop-v15 .sagop-v15-compact-card {
  min-height: 260px;
}

/* Product pages: real photos, no generic machine illustration. */
.sagop-v15 .sagop-v15-product-hero .sagop-v13-hero-product {
  min-height: 350px;
  background: #fff;
}

.sagop-v15 .sagop-v15-product-hero .sagop-v13-hero-product img {
  width: 100% !important;
  height: 100% !important;
  max-height: 420px !important;
  object-fit: contain !important;
  object-position: center !important;
  padding: clamp(20px, 3vw, 38px) !important;
}

.sagop-v15 .sagop-v13-gallery > .wp-block-image {
  min-height: 300px;
  background: #fff;
}

.sagop-v15 .sagop-v13-gallery img {
  object-fit: contain !important;
  background: #fff;
}

/* Native Gutenberg video embeds. */
.sagop-v15-video,
.editor-styles-wrapper .sagop-v15-video {
  width: 100%;
  margin: 0 !important;
}

.sagop-v15-video .wp-block-embed__wrapper {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 18px;
  background: #05070a;
  box-shadow: 0 18px 50px rgba(0,0,0,.28);
}

.sagop-v15-video iframe {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  border: 0;
}

.sagop-v15-video figcaption {
  color: #cbd5e1;
  text-align: left;
}

/* Tables remain Gutenberg-native and usable on smaller screens. */
.sagop-v15 .wp-block-table,
.editor-styles-wrapper .sagop-v15 .wp-block-table {
  max-width: 100%;
  overflow-x: auto;
  border-radius: 14px;
  -webkit-overflow-scrolling: touch;
}

.sagop-v15 .wp-block-table table {
  min-width: 680px;
}

.sagop-v15 .sagop-v13-tech-section {
  overflow: hidden;
}

/* Cleaner first-fold subcontracting cards. */
.sagop-v15 .sagop-v13-above-fold-services {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: 34px !important;
}

.sagop-v15 .sagop-v13-above-fold-services > .wp-block-group {
  min-width: 0;
}

/* Statistics align precisely. */
.sagop-v15 .sagop-v13-stats {
  align-items: stretch;
  grid-auto-rows: 1fr;
}

.sagop-v15 .sagop-v13-stats > .wp-block-group {
  height: 100%;
  min-height: 118px;
  display: flex;
  align-items: center;
}

.sagop-v15 .sagop-v13-stats p {
  margin: 0;
}

/* Editor: prevent full-width sections from looking broken. */
.editor-styles-wrapper .sagop-v15 {
  width: 100% !important;
  max-width: none !important;
}

.editor-styles-wrapper .sagop-v15 .alignwide {
  width: min(100%, 1240px) !important;
  max-width: min(100%, 1240px) !important;
}

@media (max-width: 1100px) {
  .sagop-v15 .sagop-v13-above-fold-services {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sagop-v15 .sagop-v13-above-fold-services > :last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 781px) {
  .sagop-v15 :where(h1),
  .editor-styles-wrapper .sagop-v15 :where(h1) {
    font-size: clamp(2.1rem, 10vw, 3rem) !important;
  }

  .sagop-v15 :where(h2),
  .editor-styles-wrapper .sagop-v15 :where(h2) {
    font-size: clamp(1.55rem, 7vw, 2.15rem) !important;
  }

  .sagop-v15 .sagop-v13-above-fold-services {
    grid-template-columns: 1fr;
  }

  .sagop-v15 .sagop-v13-above-fold-services > :last-child {
    grid-column: auto;
  }

  .sagop-v15 .sagop-v13-capability-card {
    min-height: 0;
  }

  .sagop-v15 .sagop-v13-product-card h3,
  .sagop-v15 .sagop-v13-catalog-card h2,
  .sagop-v15 .sagop-v15-service-card h3,
  .sagop-v15 .sagop-v13-capability-card h2 {
    min-height: 0;
  }
}

/* White cards inside dark homepage section keep a readable light-card palette. */
.sagop-v15-home-services .sagop-v13-card {
  background: #fff;
  color: var(--s13-text);
}

.sagop-v15-home-services .sagop-v13-card :where(h2,h3),
.editor-styles-wrapper .sagop-v15-home-services .sagop-v13-card :where(h2,h3) {
  color: var(--s13-ink) !important;
}

.sagop-v15-home-services .sagop-v13-card p {
  color: var(--s13-text);
}

.sagop-v15-home-services .sagop-v13-card .sagop-v13-card-meta,
.sagop-v15-home-services .sagop-v13-card .sagop-v13-link a {
  color: var(--s13-red) !important;
}

/* --------------------------------------------------------------------------
   V16 — canonical product pages and display stabilization
---------------------------------------------------------------------------- */
.sagop-v16,
.editor-styles-wrapper .sagop-v16 {
  --s16-container: min(1180px, calc(100vw - 40px));
  overflow-x: clip;
}

.sagop-v16 :where(h1, h2, h3, p, li, a, td, th) {
  overflow-wrap: anywhere;
}

.sagop-v16-product-hero,
.editor-styles-wrapper .sagop-v16-product-hero {
  padding: clamp(46px, 6vw, 88px) 0;
  background:
    radial-gradient(circle at 88% 18%, rgba(189, 31, 45, .08), transparent 26%),
    linear-gradient(135deg, #ffffff 0%, #f6f8fb 100%);
  border-bottom: 1px solid var(--s13-line);
}

.sagop-v16-product-hero-inner,
.editor-styles-wrapper .sagop-v16-product-hero-inner {
  width: var(--s16-container) !important;
  max-width: var(--s16-container) !important;
  margin-inline: auto !important;
  gap: clamp(30px, 5vw, 72px) !important;
}

.sagop-v16-product-hero h1,
.editor-styles-wrapper .sagop-v16-product-hero h1 {
  font-size: clamp(2.8rem, 5.6vw, 5.4rem) !important;
  line-height: .96 !important;
  letter-spacing: -.045em;
  max-width: 760px;
}

.sagop-v16-models,
.editor-styles-wrapper .sagop-v16-models {
  color: var(--s13-red);
  font-weight: 700;
  line-height: 1.5;
}

.sagop-v16-product-media,
.editor-styles-wrapper .sagop-v16-product-media {
  min-height: 360px;
  display: grid;
  place-items: center;
  background: #fff;
  border: 1px solid var(--s13-line);
  border-radius: 24px;
  padding: clamp(22px, 3vw, 42px);
  box-shadow: 0 24px 60px rgba(15, 23, 42, .10);
  overflow: hidden;
}

.sagop-v16-product-media .wp-block-image,
.editor-styles-wrapper .sagop-v16-product-media .wp-block-image {
  width: 100%;
  height: 100%;
  margin: 0 !important;
  display: grid;
  place-items: center;
}

.sagop-v16-product-media img,
.editor-styles-wrapper .sagop-v16-product-media img {
  width: 100% !important;
  height: 100% !important;
  max-height: 360px !important;
  object-fit: contain !important;
  object-position: center !important;
  padding: 0 !important;
}

.sagop-v16-section,
.editor-styles-wrapper .sagop-v16-section {
  padding: clamp(44px, 5.4vw, 78px) 0;
}

.sagop-v16-section-tight,
.editor-styles-wrapper .sagop-v16-section-tight {
  padding-block: clamp(28px, 3.2vw, 46px);
}

.sagop-v16-section-soft,
.editor-styles-wrapper .sagop-v16-section-soft {
  background: #f6f8fb;
  border-block: 1px solid var(--s13-line);
}

.sagop-v16-section-heading,
.editor-styles-wrapper .sagop-v16-section-heading {
  width: var(--s16-container) !important;
  max-width: var(--s16-container) !important;
  margin-inline: auto !important;
  margin-bottom: clamp(24px, 3vw, 42px) !important;
}

.sagop-v16-section-heading h2,
.editor-styles-wrapper .sagop-v16-section-heading h2 {
  max-width: 760px;
  font-size: clamp(2rem, 3.6vw, 3.7rem) !important;
  line-height: 1.02 !important;
}

.sagop-v16-facts,
.editor-styles-wrapper .sagop-v16-facts {
  width: var(--s16-container) !important;
  max-width: var(--s16-container) !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.sagop-v16-fact,
.editor-styles-wrapper .sagop-v16-fact {
  min-width: 0;
  min-height: 148px;
  padding: 24px;
  border: 1px solid var(--s13-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .05);
}

.sagop-v16-fact-number {
  color: var(--s13-red);
  font-size: .86rem;
  font-weight: 800;
  letter-spacing: .14em;
}

.sagop-v16-fact-text {
  margin-top: 16px !important;
  color: var(--s13-ink);
  font-weight: 700;
  line-height: 1.45;
}

.sagop-v16-content-grid,
.editor-styles-wrapper .sagop-v16-content-grid {
  width: var(--s16-container) !important;
  max-width: var(--s16-container) !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

.sagop-v16-content-panel,
.editor-styles-wrapper .sagop-v16-content-panel {
  background: #fff;
  border: 1px solid var(--s13-line);
  border-radius: 22px;
  padding: clamp(26px, 3vw, 42px);
  box-shadow: 0 18px 44px rgba(15, 23, 42, .06);
}

.sagop-v16-section-lead {
  font-size: 1.1rem;
  line-height: 1.75;
}

.sagop-v16-check-list {
  display: grid;
  gap: 10px;
  margin-top: 22px !important;
  padding-left: 0 !important;
  list-style: none;
}

.sagop-v16-check-list li {
  position: relative;
  padding-left: 26px;
}

.sagop-v16-check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--s13-red);
  font-weight: 900;
}

.sagop-v16-gallery,
.editor-styles-wrapper .sagop-v16-gallery {
  width: var(--s16-container) !important;
  max-width: var(--s16-container) !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
}

.sagop-v16-gallery-card,
.editor-styles-wrapper .sagop-v16-gallery-card {
  min-height: 320px;
  display: grid;
  place-items: center;
  background: #fff;
  border: 1px solid var(--s13-line);
  border-radius: 22px;
  padding: 24px;
  overflow: hidden;
}

.sagop-v16-gallery-card .wp-block-image,
.editor-styles-wrapper .sagop-v16-gallery-card .wp-block-image {
  width: 100%;
  height: 100%;
  margin: 0 !important;
  display: grid;
  place-items: center;
}

.sagop-v16-gallery-card img,
.editor-styles-wrapper .sagop-v16-gallery-card img {
  width: 100% !important;
  height: 100% !important;
  max-height: 300px !important;
  object-fit: contain !important;
  padding: 0 !important;
}

.sagop-v16-tech-list,
.editor-styles-wrapper .sagop-v16-tech-list {
  width: var(--s16-container) !important;
  max-width: var(--s16-container) !important;
  margin-inline: auto !important;
  display: grid !important;
  gap: 24px;
}

.sagop-v16-tech-panel,
.editor-styles-wrapper .sagop-v16-tech-panel {
  min-width: 0;
  background: #fff;
  border: 1px solid var(--s13-line);
  border-radius: 22px;
  padding: clamp(22px, 3vw, 36px);
  box-shadow: 0 14px 38px rgba(15, 23, 42, .05);
}

.sagop-v16-tech-panel h3 {
  font-size: clamp(1.45rem, 2.2vw, 2rem) !important;
  margin-bottom: 10px !important;
}

.sagop-v16-tech-panel .wp-block-table {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  margin-top: 22px !important;
  border-radius: 14px;
  -webkit-overflow-scrolling: touch;
}

.sagop-v16-tech-panel table {
  width: 100%;
  min-width: 660px;
  border-collapse: collapse;
}

.sagop-v16-tech-panel th,
.sagop-v16-tech-panel td {
  padding: 13px 14px;
  border: 1px solid #dbe2ea;
  text-align: left;
  vertical-align: top;
}

.sagop-v16-tech-panel th {
  background: #111827;
  color: #fff;
  font-weight: 750;
}

.sagop-v16-tech-panel tbody tr:nth-child(even) td {
  background: #f8fafc;
}

.sagop-v16-video-section,
.editor-styles-wrapper .sagop-v16-video-section {
  background: #111827;
  color: #fff;
}

.sagop-v16-video-section h2,
.editor-styles-wrapper .sagop-v16-video-section h2 {
  color: #fff !important;
}

.sagop-v16-video-layout,
.editor-styles-wrapper .sagop-v16-video-layout {
  width: var(--s16-container) !important;
  max-width: var(--s16-container) !important;
  margin-inline: auto !important;
  gap: clamp(28px, 4vw, 56px) !important;
}

.sagop-v16-quote-section,
.editor-styles-wrapper .sagop-v16-quote-section {
  background: linear-gradient(180deg, #fff, #f7f9fc);
}

.sagop-v16-quote-shell,
.editor-styles-wrapper .sagop-v16-quote-shell {
  width: var(--s16-container) !important;
  max-width: var(--s16-container) !important;
  margin-inline: auto !important;
}

/* Catalogue cards: same visual baseline and no title drift. */
.sagop-v16 .sagop-v13-card-grid,
.editor-styles-wrapper .sagop-v16 .sagop-v13-card-grid {
  align-items: stretch;
  grid-auto-rows: 1fr;
}

.sagop-v16 .sagop-v13-catalog-card,
.editor-styles-wrapper .sagop-v16 .sagop-v13-catalog-card {
  min-height: 520px !important;
  height: 100%;
}

.sagop-v16 .sagop-v13-catalog-card > .wp-block-image,
.editor-styles-wrapper .sagop-v16 .sagop-v13-catalog-card > .wp-block-image {
  height: 190px !important;
  flex-basis: 190px !important;
}

.sagop-v16 .sagop-v13-catalog-card h2,
.editor-styles-wrapper .sagop-v16 .sagop-v13-catalog-card h2 {
  min-height: 2.35em;
  font-size: clamp(1.55rem, 2vw, 2rem) !important;
}

@media (max-width: 980px) {
  .sagop-v16-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sagop-v16-product-hero-inner {
    flex-wrap: wrap !important;
  }

  .sagop-v16-product-hero-inner > .wp-block-column {
    flex-basis: 100% !important;
  }

  .sagop-v16-product-media {
    min-height: 300px;
  }
}

@media (max-width: 640px) {
  .sagop-v16,
  .editor-styles-wrapper .sagop-v16 {
    --s16-container: min(100% - 24px, 1180px);
  }

  .sagop-v16-product-hero h1,
  .editor-styles-wrapper .sagop-v16-product-hero h1 {
    font-size: clamp(2.3rem, 13vw, 3.5rem) !important;
  }

  .sagop-v16-facts {
    grid-template-columns: 1fr;
  }

  .sagop-v16-fact {
    min-height: 0;
  }

  .sagop-v16-product-media {
    min-height: 240px;
    padding: 18px;
  }

  .sagop-v16-gallery {
    grid-template-columns: 1fr;
  }

  .sagop-v16-gallery-card {
    min-height: 240px;
  }

  .sagop-v16 .sagop-v13-catalog-card,
  .editor-styles-wrapper .sagop-v16 .sagop-v13-catalog-card {
    min-height: 0 !important;
  }

  .sagop-v16 .sagop-v13-catalog-card h2,
  .editor-styles-wrapper .sagop-v16 .sagop-v13-catalog-card h2 {
    min-height: 0;
  }
}

/* --------------------------------------------------------------------------
   V17 — alignement typographique et égalisation des cartes produit
---------------------------------------------------------------------------- */

/* Les titres de section doivent suivre exactement l'alignement de l'eyebrow
   et du contenu, sans recentrage automatique du layout Gutenberg contraint. */
.sagop-v16-section-heading,
.editor-styles-wrapper .sagop-v16-section-heading {
  text-align: left !important;
}

.sagop-v16-section-heading > *,
.editor-styles-wrapper .sagop-v16-section-heading > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.sagop-v16-section-heading h2,
.editor-styles-wrapper .sagop-v16-section-heading h2 {
  max-width: 900px !important;
  font-size: clamp(1.85rem, 2.65vw, 3rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
  text-align: left !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

.sagop-v16-section-heading > p:not(.sagop-v13-eyebrow),
.editor-styles-wrapper .sagop-v16-section-heading > p:not(.sagop-v13-eyebrow) {
  max-width: 980px !important;
  font-size: clamp(1rem, 1.3vw, 1.18rem) !important;
  line-height: 1.65 !important;
}

/* Hero produit plus mesuré : le produit reste prioritaire sans écraser le visuel. */
.sagop-v16-product-hero h1,
.editor-styles-wrapper .sagop-v16-product-hero h1 {
  font-size: clamp(2.55rem, 4.55vw, 4.55rem) !important;
  line-height: 1 !important;
  letter-spacing: -.04em !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

/* Les quatre bénéfices partagent toujours la même hauteur, y compris quand
   une formulation occupe deux lignes comme « Blocage du bloc écrou… ». */
.sagop-v16-facts,
.editor-styles-wrapper .sagop-v16-facts {
  grid-auto-rows: 1fr !important;
  align-items: stretch !important;
}

.sagop-v16-fact,
.editor-styles-wrapper .sagop-v16-fact {
  height: 100% !important;
  min-height: 170px !important;
  align-self: stretch !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  padding: clamp(20px, 2vw, 26px) !important;
}

.sagop-v16-fact > *,
.editor-styles-wrapper .sagop-v16-fact > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.sagop-v16-fact-number,
.editor-styles-wrapper .sagop-v16-fact-number {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  flex: 0 0 auto;
}

.sagop-v16-fact-text,
.editor-styles-wrapper .sagop-v16-fact-text {
  margin-top: 22px !important;
  margin-bottom: 0 !important;
  font-size: clamp(1rem, 1.18vw, 1.16rem) !important;
  line-height: 1.4 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: auto !important;
}

/* Les titres des panneaux restent plus discrets que les titres de section. */
.sagop-v16-content-panel h2,
.editor-styles-wrapper .sagop-v16-content-panel h2 {
  font-size: clamp(1.55rem, 2vw, 2.05rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -.02em !important;
}

.sagop-v16-tech-panel h3,
.editor-styles-wrapper .sagop-v16-tech-panel h3 {
  overflow-wrap: normal !important;
  word-break: normal !important;
}

/* Le titre de la demande technique conserve le même axe gauche que son label. */
.sagop-v16-quote-section .sagop-v16-section-heading,
.editor-styles-wrapper .sagop-v16-quote-section .sagop-v16-section-heading {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (max-width: 980px) {
  .sagop-v16-product-hero h1,
  .editor-styles-wrapper .sagop-v16-product-hero h1 {
    font-size: clamp(2.35rem, 7vw, 3.65rem) !important;
  }

  .sagop-v16-section-heading h2,
  .editor-styles-wrapper .sagop-v16-section-heading h2 {
    font-size: clamp(1.75rem, 4.6vw, 2.6rem) !important;
  }

  .sagop-v16-fact,
  .editor-styles-wrapper .sagop-v16-fact {
    min-height: 150px !important;
  }
}

@media (max-width: 640px) {
  .sagop-v16-product-hero h1,
  .editor-styles-wrapper .sagop-v16-product-hero h1 {
    font-size: clamp(2.15rem, 11vw, 3rem) !important;
  }

  .sagop-v16-section-heading h2,
  .editor-styles-wrapper .sagop-v16-section-heading h2 {
    font-size: clamp(1.7rem, 8.5vw, 2.25rem) !important;
  }

  .sagop-v16-fact,
  .editor-styles-wrapper .sagop-v16-fact {
    min-height: 0 !important;
  }
}
