.sosms-scope,
.sosms-model-page {
  --sos-primary: #073f32;
  --sos-accent: #08745a;
  --sos-highlight: #f3f756;
  --sos-bg: #f5f2ea;
  --sos-surface: #fff;
  --sos-text: #071b16;
  --sos-muted: #62716c;
  --sos-line: rgba(7, 63, 50, 0.14);
  --sos-shadow: 0 28px 80px rgba(7, 35, 28, 0.12);
  --sos-radius: 22px;
  color: var(--sos-text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.45;
}

.sosms-scope *,
.sosms-model-page * { box-sizing: border-box; }
.sosms-scope button,
.sosms-scope input { font: inherit; }
.sosms-scope button { cursor: pointer; }
.sosms-scope :where(a,button,input,select,textarea,summary):focus-visible,
.sosms-model-page :where(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--sos-highlight);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--sos-primary);
}
.sosms-app { width: min(100%, 1120px); margin: 0 auto; }
.sosms-card {
  position: relative;
  min-height: 620px;
  overflow: hidden;
  padding: clamp(24px, 5vw, 54px);
  border: 1px solid var(--sos-line);
  border-radius: calc(var(--sos-radius) + 8px);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(255, 255, 255, .94)),
    var(--sos-hero-image, none) center/cover;
  box-shadow: var(--sos-shadow);
}
.sosms-card::after {
  position: absolute;
  z-index: 0;
  top: -155px;
  right: -145px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--sos-highlight) 55%, transparent), transparent 67%);
  content: "";
  pointer-events: none;
}
.sosms-card > * { position: relative; z-index: 1; }
.sosms-loading-card,
.sosms-inline-loading { display: grid; min-height: 260px; place-items: center; align-content: center; gap: 14px; color: var(--sos-muted); }
.sosms-inline-loading { min-height: 170px; }
.sosms-loader { width: 32px; height: 32px; border: 3px solid var(--sos-line); border-top-color: var(--sos-accent); border-radius: 50%; animation: sosms-spin .7s linear infinite; }
@keyframes sosms-spin { to { transform: rotate(360deg); } }

.sosms-module-top { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.sosms-logo { display: block; width: auto; max-width: 150px; max-height: 48px; object-fit: contain; }
.sosms-step-count { display: flex; align-items: baseline; gap: 7px; margin-left: auto; color: var(--sos-muted); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.sosms-step-count strong { color: var(--sos-primary); font-size: 16px; }
.sosms-heading { max-width: 690px; margin: 20px 0 18px; }
.sosms-heading > span,
.sosms-model-kicker,
.sosms-section-heading > span { display: block; margin-bottom: 7px; color: var(--sos-accent); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.sosms-heading h2 { margin: 0; color: var(--sos-primary); font-size: clamp(30px, 5vw, 48px); font-weight: 800; letter-spacing: -.04em; line-height: 1.04; }
.sosms-heading p { margin: 10px 0 0; color: var(--sos-muted); font-size: 16px; }
.sosms-progress { height: 4px; margin-bottom: 34px; overflow: hidden; border-radius: 99px; background: #e9eeeb; }
.sosms-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--sos-accent), var(--sos-highlight)); transition: width .25s ease; }
.sosms-back { display: inline-flex; align-items: center; gap: 8px; margin: -12px 0 22px; padding: 5px 0; border: 0; background: transparent; color: var(--sos-primary); font-weight: 750; }
.sosms-back span { transition: transform .18s ease; }
.sosms-back:hover span { transform: translateX(-3px); }

.sosms-label { display: block; margin: 0 0 8px; color: var(--sos-primary); font-size: 13px; font-weight: 800; }
.sosms-search-wrap { position: relative; }
.sosms-search-wrap svg { position: absolute; top: 50%; left: 18px; width: 23px; fill: none; stroke: var(--sos-primary); stroke-width: 1.8; transform: translateY(-50%); }
.sosms-search {
  width: 100%;
  height: 64px;
  padding: 0 20px 0 54px;
  border: 2px solid var(--sos-line);
  border-radius: 17px;
  outline: 0;
  background: var(--sos-surface);
  color: var(--sos-text);
  font-size: 17px;
  font-weight: 650;
  transition: border-color .18s, box-shadow .18s;
}
.sosms-search:focus { border-color: var(--sos-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sos-accent) 14%, transparent); }
.sosms-search::placeholder { color: #6b7773; font-weight: 500; }
.sosms-brands { margin: 25px 0 23px; }
.sosms-brands > span { display: block; margin-bottom: 10px; color: var(--sos-muted); font-size: 13px; font-weight: 700; }
.sosms-brands > div { display: flex; flex-wrap: wrap; gap: 9px; }
.sosms-brands button { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; padding: 7px 15px 7px 8px; border: 1px solid var(--sos-line); border-radius: 99px; background: var(--sos-surface); color: var(--sos-primary); font-size: 13px; font-weight: 750; transition: .18s; }
.sosms-brands button b { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: var(--sos-bg); color: var(--sos-accent); }
.sosms-brands button:hover,
.sosms-brands button.active { border-color: var(--sos-primary); background: var(--sos-primary); color: #fff; transform: translateY(-1px); }
.sosms-brands button.active b { background: var(--sos-highlight); color: var(--sos-primary); }
.sosms-family-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 22px 0 10px; }
.sosms-family-heading strong { color: var(--sos-primary); font-size: 15px; }
.sosms-family-heading span { color: var(--sos-muted); font-size: 12px; }
.sosms-families { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 340px; gap: 9px; overflow: auto; padding-right: 4px; }
.sosms-families button { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 18px; border: 1px solid var(--sos-line); border-radius: 15px; background: var(--sos-surface); color: var(--sos-primary); text-align: left; transition: border-color .18s, transform .18s, box-shadow .18s; }
.sosms-families button:hover { border-color: var(--sos-accent); box-shadow: 0 10px 28px rgba(7, 63, 50, .08); transform: translateY(-2px); }
.sosms-families strong,.sosms-families span { display: block; }
.sosms-families strong { font-size: 16px; }
.sosms-families span { margin-top: 4px; color: var(--sos-muted); font-size: 11px; }
.sosms-families button > b { color: var(--sos-accent); font-size: 20px; }
.sosms-family-back { margin: 2px 0 8px; padding: 8px 0; border: 0; background: transparent; color: var(--sos-accent); font-size: 12px; font-weight: 750; }
.sosms-search-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 22px 0 10px; color: var(--sos-muted); font-size: 12px; }
.sosms-search-meta strong { color: var(--sos-primary); }
.sosms-results { display: grid; max-height: 330px; gap: 8px; overflow: auto; padding-right: 4px; }
.sosms-results button,
.sosms-store-list button { display: grid; width: 100%; grid-template-columns: 1fr auto; align-items: center; gap: 4px 14px; padding: 16px 18px; border: 1px solid var(--sos-line); border-radius: 15px; background: var(--sos-surface); text-align: left; transition: border-color .18s, transform .18s, box-shadow .18s; }
.sosms-results button span { grid-column: 1; color: var(--sos-accent); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.sosms-results button strong { grid-column: 1; color: var(--sos-primary); font-size: 16px; }
.sosms-results button b,
.sosms-repair-grid button > b,
.sosms-store-list button > b { grid-column: 2; grid-row: 1/3; color: var(--sos-accent); font-size: 20px; }
.sosms-results button:hover,
.sosms-store-list button:hover,
.sosms-repair-grid button:hover { border-color: var(--sos-accent); box-shadow: 0 10px 28px rgba(7, 63, 50, .08); transform: translateY(-2px); }
.sosms-help-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; margin-top: 24px; padding: 15px 0; border: 0; border-top: 1px solid var(--sos-line); background: transparent; color: var(--sos-primary); font-weight: 750; text-align: left; }
.sosms-help-toggle span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--sos-bg); color: var(--sos-accent); font-size: 19px; }
.sosms-help { padding: 17px 20px; border-radius: 15px; background: var(--sos-bg); }
.sosms-help strong { color: var(--sos-primary); }
.sosms-help ul { margin: 10px 0 0 18px; padding: 0; color: var(--sos-muted); }
.sosms-help li + li { margin-top: 6px; }

.sosms-unlisted-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 22px; padding: 18px 20px; border: 1px dashed var(--sos-accent); border-radius: 16px; background: color-mix(in srgb,var(--sos-highlight) 14%,var(--sos-surface)); }
.sosms-unlisted-card strong { display: block; color: var(--sos-primary); font-size: 16px; }
.sosms-unlisted-card p { max-width: 590px; margin: 5px 0 0; color: var(--sos-muted); font-size: 12px; }
.sosms-unlisted-card button { display: inline-flex; flex: 0 0 auto; min-height: 46px; align-items: center; gap: 10px; padding: 10px 16px; border: 0; border-radius: 12px; background: var(--sos-primary); color: #fff; font-weight: 800; }
.sosms-unlisted-card button span { color: var(--sos-highlight); font-size: 19px; }
.sosms-unlisted-form textarea { width: 100%; min-height: 106px; margin-top: 7px; padding: 13px 15px; resize: vertical; border: 1.5px solid var(--sos-line); border-radius: 13px; outline: 0; background: var(--sos-surface); color: var(--sos-text); font: inherit; }
.sosms-unlisted-form textarea:focus { border-color: var(--sos-accent); box-shadow: 0 0 0 4px color-mix(in srgb,var(--sos-accent) 12%,transparent); }
.sosms-unlisted-repairs { margin: 18px 0; padding: 0; border: 0; }
.sosms-unlisted-repairs legend { margin-bottom: 9px; color: var(--sos-primary); font-size: 13px; font-weight: 800; }
.sosms-unlisted-repairs > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.sosms-unlisted-repairs label { position: relative; }
.sosms-unlisted-repairs input { position: absolute; opacity: 0; }
.sosms-unlisted-repairs span { display: flex; min-height: 50px; align-items: center; justify-content: center; padding: 10px; border: 1px solid var(--sos-line); border-radius: 12px; background: var(--sos-surface); color: var(--sos-primary); font-size: 13px; font-weight: 800; text-align: center; cursor: pointer; }
.sosms-unlisted-repairs input:checked + span { border-color: var(--sos-primary); background: var(--sos-primary); color: #fff; }
.sosms-unlisted-repairs input:focus-visible + span { outline: 3px solid var(--sos-highlight); outline-offset: 2px; }
.sosms-unlisted-contact-form { margin-top: 18px; }

.sosms-selection { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 22px; padding: 15px 18px; border-radius: 15px; background: var(--sos-bg); }
.sosms-selection span { color: var(--sos-muted); font-size: 12px; font-weight: 700; }
.sosms-selection strong { color: var(--sos-primary); }
.sosms-selection a { margin-left: auto; color: var(--sos-accent); font-size: 12px; font-weight: 750; }
.sosms-selection-stack { align-items: flex-start; flex-direction: column; gap: 3px; }
.sosms-repair-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sosms-repair-grid button { display: grid; min-height: 142px; grid-template-columns: 54px 1fr auto; align-items: center; gap: 14px; padding: 18px; border: 1px solid var(--sos-line); border-radius: var(--sos-radius); background: var(--sos-surface); text-align: left; transition: .18s; }
.sosms-repair-grid button i { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 15px; background: var(--sos-bg); color: var(--sos-accent); }
.sosms-icon,
.sosms-icon-image { display: block; width: 29px; height: 29px; object-fit: contain; }
.sosms-repair-grid button strong { display: block; color: var(--sos-primary); font-size: 17px; }
.sosms-repair-grid button p { margin: 5px 0 0; color: var(--sos-muted); font-size: 13px; }
.sosms-repair-grid button > b { grid-column: 3; grid-row: auto; }
.sosms-repair-grid > .sosms-empty { grid-column: 1/-1; }
.sosms-repair-grid button.is-other { border-style: dashed; background: linear-gradient(135deg,color-mix(in srgb,var(--sos-highlight) 18%,white),var(--sos-surface)); }
.sosms-repair-grid button.is-other.has-no-icon { grid-template-columns: 1fr auto; }
.sosms-repair-grid button.is-other.has-no-icon > b { grid-column: 2; }
.sosms-repair-grid button.is-other svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.sosms-repair-grid button.is-other div > span { display: block; margin-top: 8px; color: var(--sos-accent); font-size: 11px; font-weight: 850; }
.sosms-store-list { display: grid; gap: 11px; }
.sosms-store-list button { grid-template-columns: 40px 1fr auto; padding: 19px; }
.sosms-store-list button > i { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--sos-accent) 12%, white); }
.sosms-store-list button > i span { width: 11px; height: 11px; border: 3px solid var(--sos-accent); border-radius: 50%; box-shadow: 0 0 0 5px color-mix(in srgb, var(--sos-accent) 12%, transparent); }
.sosms-store-list button div { grid-column: 2; }
.sosms-store-list button strong { display: block; color: var(--sos-primary); font-size: 17px; }
.sosms-store-list button p { margin: 4px 0 0; color: var(--sos-muted); font-size: 13px; }
.sosms-store-list button > b { grid-column: 3; grid-row: auto; }

.sosms-ready { display: flex; align-items: center; gap: 13px; margin: 0 0 22px; color: var(--sos-muted); }
.sosms-ready > i,
.sosms-success > i { display: grid; flex: 0 0 auto; width: 39px; height: 39px; place-items: center; border-radius: 50%; background: var(--sos-highlight); color: var(--sos-primary); font-style: normal; font-weight: 900; }
.sosms-ready strong,
.sosms-ready span { display: block; }
.sosms-ready strong { color: var(--sos-primary); font-size: 14px; }
.sosms-ready span { font-size: 12px; }
.sosms-ready.has-no-icon { display: block; }
.sosms-honey { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.sosms-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sosms-form-grid label { color: var(--sos-primary); font-size: 13px; font-weight: 800; }
.sosms-form-grid label em { margin-left: 4px; color: var(--sos-muted); font-size: 10px; font-style: normal; font-weight: 600; text-transform: uppercase; }
.sosms-form-grid input { width: 100%; height: 57px; margin-top: 7px; padding: 0 15px; border: 1.5px solid var(--sos-line); border-radius: 13px; outline: 0; background: var(--sos-surface); color: var(--sos-text); font-size: 16px; transition: .18s; }
.sosms-form-grid input:focus { border-color: var(--sos-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sos-accent) 12%, transparent); }
.sosms-primary { display: flex; width: 100%; min-height: 58px; align-items: center; justify-content: center; gap: 12px; margin-top: 18px; padding: 14px 20px; border: 0; border-radius: 14px; background: var(--sos-primary); color: #fff; font-weight: 800; box-shadow: 0 10px 25px rgba(7, 63, 50, .18); transition: .18s; }
.sosms-primary:hover:not(:disabled) { background: var(--sos-accent); transform: translateY(-1px); }
.sosms-primary:disabled { cursor: default; opacity: .7; }
.sosms-primary span { color: var(--sos-highlight); font-size: 21px; }
.sosms-privacy { margin: 13px auto 0; max-width: 620px; color: var(--sos-muted); font-size: 11px; text-align: center; }

.sosms-success { display: flex; align-items: center; gap: 15px; margin-bottom: 24px; padding: 17px; border: 1px solid color-mix(in srgb, var(--sos-accent) 28%, transparent); border-radius: 16px; background: color-mix(in srgb, var(--sos-accent) 7%, white); }
.sosms-success span,
.sosms-success p { color: var(--sos-muted); font-size: 12px; }
.sosms-success h3 { margin: 2px 0; color: var(--sos-primary); font-size: 17px; }
.sosms-success p { margin: 0; }
.sosms-offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); align-items: stretch; gap: 12px; }
.sosms-offer-card { position: relative; padding: 24px 18px 20px; border: 1px solid var(--sos-line); border-radius: var(--sos-radius); appearance: none; background: var(--sos-surface); color: var(--sos-text); text-align: left; transition: border-color .18s, box-shadow .18s, transform .18s; }
.sosms-offer-card:hover { border-color: var(--sos-accent); transform: translateY(-2px); }
.sosms-offer-card.selected { border-color: var(--sos-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sos-accent) 14%, transparent); }
.sosms-offer-card.featured { z-index: 1; border: 2px solid var(--sos-accent); background: linear-gradient(180deg, color-mix(in srgb, var(--sos-accent) 7%, white), var(--sos-surface) 48%); box-shadow: 0 20px 42px rgba(7, 63, 50, .15); transform: translateY(-7px); }
.sosms-offer-card.featured.selected { border-color: var(--sos-primary); }
.sosms-badge { position: absolute; top: 0; left: 50%; padding: 6px 14px; border-radius: 0 0 10px 10px; background: var(--sos-accent); color: #fff; font-size: 11px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; transform: translateX(-50%); white-space: nowrap; }
.sosms-tier { margin: 8px 0 9px; color: var(--sos-accent); font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.sosms-offer-card > strong { display: block; color: var(--sos-primary); font-size: 30px; line-height: 1; }
.sosms-offer-card > p { min-height: 38px; margin: 12px 0; color: var(--sos-muted); font-size: 12px; }
.sosms-offers ul { margin: 15px 0 0; padding: 0; border-top: 1px solid var(--sos-line); list-style: none; }
.sosms-offers li { padding-top: 9px; color: var(--sos-muted); font-size: 11px; }
.sosms-offer-choice { display: block; margin-top: 16px; color: var(--sos-accent); font-size: 11px; font-weight: 850; }
.sosms-offer-card.selected .sosms-offer-choice { color: var(--sos-primary); }
.sosms-contact-block { margin-top: 20px; padding: 19px; border-radius: 17px; background: var(--sos-bg); }
.sosms-contact-block.has-no-heading { padding: 12px; }
.sosms-contact-block > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 13px; }
.sosms-contact-block > div:first-child strong { color: var(--sos-primary); }
.sosms-contact-block > div:first-child span { color: var(--sos-muted); font-size: 11px; }
.sosms-contact-actions { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 9px; }
.sosms-contact-action { display: flex; min-height: 62px; flex-direction: column; justify-content: center; padding: 11px 14px; border: 1px solid var(--sos-line); border-radius: 13px; appearance: none; background: var(--sos-surface); color: var(--sos-primary); text-align: left; text-decoration: none; transition: .18s; }
.sosms-contact-action:hover { border-color: var(--sos-accent); box-shadow: 0 8px 22px rgba(7,63,50,.08); transform: translateY(-1px); }
.sosms-contact-action:disabled { opacity: .72; }
.sosms-contact-action span { color: var(--sos-accent); font-size: 11px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.sosms-contact-action strong { margin-top: 2px; font-size: 14px; }
[data-callback-form] { margin-top: 16px; padding: 20px; border: 1px solid var(--sos-line); border-radius: 17px; background: var(--sos-surface); }
.sosms-contact-only { margin-top: 4px; }
.sosms-callback { margin-top: 18px; }
.sosms-restart { display: block; margin: 14px auto 0; padding: 8px 12px; border: 0; background: transparent; color: var(--sos-primary); font-size: 12px; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.sosms-admin-link { margin: 8px 0 0; text-align: center; }
.sosms-admin-link a { color: var(--sos-muted); font-size: 11px; }
.sosms-empty { padding: 28px 20px; border: 1px dashed var(--sos-line); border-radius: var(--sos-radius); background: color-mix(in srgb, var(--sos-bg) 60%, white); text-align: center; }
.sosms-empty strong { color: var(--sos-primary); font-size: 17px; }
.sosms-empty p { margin: 6px 0 0; color: var(--sos-muted); }
.sosms-empty a { display: inline-block; margin-top: 12px; color: var(--sos-accent); font-weight: 750; }
.sosms-error { margin: 14px 0; padding: 12px 15px; border-left: 4px solid #b42318; border-radius: 9px; background: #fff1f0; color: #8a1c15; font-size: 13px; }
.sosms-privacy a { color: var(--sos-primary); font-weight: 750; text-underline-offset: 2px; }
.sosms-other-workflow { margin-bottom: 4px; }
.sosms-other-workflow textarea { width: 100%; min-height: 122px; padding: 13px 14px; border: 1.5px solid var(--sos-line); border-radius: 13px; outline: 0; background: var(--sos-surface); color: var(--sos-text); font: inherit; resize: vertical; }
.sosms-other-workflow textarea:focus { border-color: var(--sos-accent); box-shadow: 0 0 0 4px color-mix(in srgb,var(--sos-accent) 12%,transparent); }

/* Pages modèle : volontairement indépendantes du thème. */
.sosms-model-page { background: var(--sos-bg); }
.sosms-model-page a { text-decoration: none; }
.sosms-model-hero { padding: clamp(70px, 10vw, 132px) max(24px, calc((100vw - 1180px) / 2)); background: radial-gradient(circle at 85% 10%, rgba(243,247,86,.35), transparent 30%), var(--sos-primary); color: #fff; }
.sosms-model-hero .sosms-model-kicker { color: var(--sos-highlight); }
.sosms-model-hero h1 { max-width: 860px; margin: 0; color: #fff; font-size: clamp(42px, 7vw, 78px); letter-spacing: -.055em; line-height: .98; }
.sosms-model-hero p { max-width: 680px; margin: 24px 0; color: rgba(255,255,255,.76); font-size: clamp(16px, 2vw, 20px); }
.sosms-model-primary { display: inline-flex; min-height: 54px; align-items: center; padding: 0 24px; border-radius: 13px; background: var(--sos-highlight); color: var(--sos-primary); font-weight: 850; }
.sosms-model-secondary { display: inline-flex; min-height: 54px; align-items: center; padding: 0 24px; border: 1px solid rgba(255,255,255,.36); border-radius: 13px; color: #fff; font-weight: 800; }
.sosms-store-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.sosms-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 30px; color: rgba(255,255,255,.65); font-size: 12px; }
.sosms-breadcrumbs a { color: #fff; }
.sosms-service-editorial,
.sosms-store-editorial { padding: clamp(48px, 7vw, 82px) max(24px, calc((100vw - 920px) / 2)); background: var(--sos-surface); color: var(--sos-text); }
.sosms-service-editorial > :first-child,
.sosms-store-editorial > :first-child { margin-top: 0; }
.sosms-service-editorial > :last-child,
.sosms-store-editorial > :last-child { margin-bottom: 0; }
.sosms-store-facts { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 12px; padding: 24px max(24px, calc((100vw - 1180px) / 2)); background: var(--sos-surface); }
.sosms-store-facts > div { padding: 18px; border: 1px solid var(--sos-line); border-radius: 15px; background: var(--sos-bg); }
.sosms-store-facts span,.sosms-store-facts strong { display: block; }
.sosms-store-facts span { margin-bottom: 5px; color: var(--sos-muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sosms-store-facts strong,.sosms-store-facts a { color: var(--sos-primary); }
.sosms-service-estimator { padding: clamp(55px,8vw,100px) max(18px,calc((100vw - 1220px) / 2)); background: var(--sos-bg); scroll-margin-top: 88px; }
.sosms-model-repairs { padding: clamp(55px, 8vw, 100px) max(24px, calc((100vw - 1180px) / 2)); }
.sosms-section-heading h2 { max-width: 730px; margin: 0 0 32px; color: var(--sos-primary); font-size: clamp(30px, 4vw, 48px); letter-spacing: -.035em; }
.sosms-model-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }
.sosms-model-grid a { padding: 24px; border: 1px solid var(--sos-line); border-radius: var(--sos-radius); background: var(--sos-surface); color: var(--sos-text); transition: .18s; }
.sosms-model-grid article { position: relative; padding: 24px; border: 1px solid var(--sos-line); border-radius: var(--sos-radius); background: var(--sos-surface); color: var(--sos-text); }
.sosms-model-grid article.is-recommended { border: 2px solid var(--sos-accent); background: linear-gradient(180deg,color-mix(in srgb,var(--sos-accent) 7%,white),var(--sos-surface) 62%); box-shadow: 0 18px 42px rgba(7,63,50,.12); }
.sosms-model-grid article > em { position: absolute; top: 0; right: 18px; padding: 6px 11px; border-radius: 0 0 9px 9px; background: var(--sos-accent); color: #fff; font-size: 11px; font-style: normal; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.sosms-model-grid a:hover { border-color: var(--sos-accent); box-shadow: 0 16px 40px rgba(7,63,50,.08); transform: translateY(-3px); }
.sosms-model-grid i { display: grid; width: 50px; height: 50px; margin-bottom: 20px; place-items: center; border-radius: 14px; background: var(--sos-bg); color: var(--sos-accent); }
.sosms-model-grid strong,
.sosms-model-grid span,
.sosms-model-grid b { display: block; }
.sosms-model-grid strong { color: var(--sos-primary); font-size: 18px; }
.sosms-model-grid span { min-height: 38px; margin: 6px 0 18px; color: var(--sos-muted); font-size: 13px; }
.sosms-model-grid b { color: var(--sos-accent); font-size: 13px; }
.sosms-model-locations { padding: clamp(55px, 8vw, 100px) max(24px, calc((100vw - 1180px) / 2)); background: color-mix(in srgb, var(--sos-primary) 4%, var(--sos-surface)); }
.sosms-location-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.sosms-location-grid article { padding: 28px; border: 1px solid var(--sos-line); border-radius: var(--sos-radius); background: var(--sos-surface); box-shadow: 0 14px 36px rgba(7,63,50,.06); }
.sosms-location-grid article > span { color: var(--sos-accent); font-size: 12px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.sosms-location-grid h3 { margin: 9px 0 10px; color: var(--sos-primary); font-size: 22px; line-height: 1.2; }
.sosms-location-grid p { margin: 0 0 18px; color: var(--sos-muted); }
.sosms-location-grid a { color: var(--sos-accent); font-weight: 800; }
.sosms-model-proof { padding: 55px max(24px, calc((100vw - 920px) / 2)); background: var(--sos-surface); text-align: center; }
.sosms-model-proof h2 { margin: 0; color: var(--sos-primary); font-size: 30px; }
.sosms-model-proof p { max-width: 680px; margin: 12px auto 0; color: var(--sos-muted); }

/* Pages réparation : contenu public, conversion et SEO. */
.sosms-service-hero { padding: clamp(48px, 7vw, 92px) max(24px, calc((100vw - 1180px) / 2)); background: radial-gradient(circle at 90% 0, rgba(243,247,86,.28), transparent 31%), var(--sos-primary); color: #fff; }
.sosms-service-hero-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.65fr); align-items: center; gap: clamp(34px,6vw,80px); }
.sosms-service-hero .sosms-model-kicker { margin-bottom: 14px; color: var(--sos-highlight); font-size: 12px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.sosms-service-hero h1 { max-width: 820px; margin: 0; color: #fff; font-size: clamp(42px,6vw,72px); letter-spacing: -.052em; line-height: .98; }
.sosms-service-hero-grid > div > p { max-width: 690px; margin: 24px 0 28px; color: rgba(255,255,255,.77); font-size: clamp(16px,1.8vw,20px); }
.sosms-service-summary { overflow: hidden; padding: 8px 24px 18px; border: 1px solid rgba(255,255,255,.2); border-radius: calc(var(--sos-radius) + 4px); background: rgba(255,255,255,.09); backdrop-filter: blur(12px); }
.sosms-service-summary > div { padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.sosms-service-summary span,.sosms-service-summary strong { display: block; }
.sosms-service-summary span { margin-bottom: 5px; color: var(--sos-highlight); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.sosms-service-summary strong { color: #fff; font-size: 17px; }
.sosms-service-summary small { display: block; padding-top: 16px; color: rgba(255,255,255,.6); font-size: 11px; }
.sosms-service-page .sosms-section-heading > span,.sosms-quality-section .sosms-section-heading > span { display: block; margin-bottom: 9px; color: var(--sos-accent); font-size: 11px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.sosms-service-page .sosms-section-heading h2 { margin-bottom: 14px; }
.sosms-service-page .sosms-section-heading p { max-width: 720px; margin: 0 0 30px; color: var(--sos-muted); }
.sosms-quality-section,.sosms-service-information,.sosms-service-faq,.sosms-related-repairs { padding: clamp(56px,8vw,102px) max(24px,calc((100vw - 1180px) / 2)); }
.sosms-quality-section { background: var(--sos-surface); }
.sosms-quality-cards { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); align-items: stretch; gap: 14px; }
.sosms-quality-cards article { position: relative; padding: 27px 23px 23px; border: 1px solid var(--sos-line); border-radius: var(--sos-radius); background: var(--sos-bg); }
.sosms-quality-cards article.is-recommended { border: 2px solid var(--sos-accent); background: linear-gradient(155deg,color-mix(in srgb,var(--sos-accent) 9%,white),var(--sos-bg)); box-shadow: 0 18px 45px rgba(7,63,50,.12); transform: translateY(-6px); }
.sosms-quality-cards article > em { position: absolute; top: 0; right: 18px; padding: 6px 11px; border-radius: 0 0 9px 9px; background: var(--sos-accent); color: #fff; font-size: 11px; font-style: normal; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.sosms-quality-cards article > em.is-neutral { background: var(--sos-primary); }
.sosms-quality-cards strong,.sosms-quality-cards span,.sosms-quality-cards b { display: block; }
.sosms-quality-cards strong { color: var(--sos-primary); font-size: 20px; }
.sosms-quality-cards span { min-height: 56px; margin: 11px 0 18px; color: var(--sos-muted); font-size: 13px; }
.sosms-quality-cards b { color: var(--sos-accent); font-size: 22px; }
.sosms-quality-compare { margin-top: 28px; border: 1px solid var(--sos-line); border-radius: var(--sos-radius); background: var(--sos-surface); }
.sosms-quality-compare > summary { position: relative; padding: 20px 58px 20px 22px; color: var(--sos-primary); cursor: pointer; font-weight: 850; list-style: none; }
.sosms-quality-compare > summary::-webkit-details-marker { display: none; }
.sosms-quality-compare > summary::after { position: absolute; top: 50%; right: 22px; content: "+"; color: var(--sos-accent); font-size: 26px; transform: translateY(-50%); }
.sosms-quality-compare[open] > summary::after { content: "−"; }
.sosms-quality-table { display: grid; grid-template-columns: repeat(auto-fit,minmax(235px,1fr)); gap: 0; border-top: 1px solid var(--sos-line); }
.sosms-quality-table article { padding: 24px; border-right: 1px solid var(--sos-line); }
.sosms-quality-table article:last-child { border-right: 0; }
.sosms-quality-table h3 { margin: 0 0 16px; color: var(--sos-primary); }
.sosms-quality-table p { margin: 0; padding: 10px 0; border-top: 1px solid color-mix(in srgb,var(--sos-line) 65%,transparent); color: var(--sos-muted); font-size: 12px; }
.sosms-quality-table p b { display: block; margin-bottom: 3px; color: var(--sos-primary); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.sosms-public-contact-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 13px; }
.sosms-public-contact-actions a { display: inline-flex; min-height: 44px; align-items: center; padding: 0 14px; border-radius: 11px; background: var(--sos-primary); color: #fff; font-size: 13px; font-weight: 800; }
.sosms-public-contact-actions a.is-whatsapp { background: var(--sos-accent); }
.sosms-location-grid .sosms-store-more { display: inline-block; color: var(--sos-primary); font-size: 12px; }
.sosms-service-information { background: var(--sos-bg); }
.sosms-information-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }
.sosms-information-grid article { padding: 28px; border: 1px solid var(--sos-line); border-radius: var(--sos-radius); background: var(--sos-surface); }
.sosms-information-grid h3 { margin: 0 0 10px; color: var(--sos-primary); font-size: 20px; }
.sosms-information-grid p { margin: 0; color: var(--sos-muted); }
.sosms-service-information .sosms-service-editorial { padding: 30px; border: 1px solid var(--sos-line); border-radius: var(--sos-radius); }
.sosms-service-faq { background: var(--sos-surface); }
.sosms-service-faq > div:last-child { max-width: 900px; }
.sosms-service-faq details { border-top: 1px solid var(--sos-line); }
.sosms-service-faq details:last-child { border-bottom: 1px solid var(--sos-line); }
.sosms-service-faq summary { position: relative; padding: 21px 52px 21px 0; color: var(--sos-primary); cursor: pointer; font-size: 17px; font-weight: 800; list-style: none; }
.sosms-service-faq summary::-webkit-details-marker { display: none; }
.sosms-service-faq summary::after { position: absolute; top: 18px; right: 4px; content: "+"; color: var(--sos-accent); font-size: 24px; }
.sosms-service-faq details[open] summary::after { content: "−"; }
.sosms-service-faq details > div { max-width: 750px; padding: 0 0 22px; color: var(--sos-muted); }
.sosms-related-repairs { background: var(--sos-bg); }

/* Pages appareils compactes et parcours sans saut brutal. */
.sosms-model-page { scroll-behavior: smooth; }
.sosms-model-hero-refined { padding-block: clamp(56px,8vw,104px); }
.sosms-model-hero-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.55fr); align-items: end; gap: clamp(35px,7vw,92px); }
.sosms-model-hero-grid > div > p { max-width: 710px; }
.sosms-model-primary span { margin-left: 9px; }
.sosms-device-signpost { padding: 22px; border: 1px solid rgba(255,255,255,.18); border-radius: calc(var(--sos-radius) + 2px); background: rgba(255,255,255,.08); box-shadow: 0 24px 70px rgba(0,0,0,.12); backdrop-filter: blur(12px); }
.sosms-device-signpost > span { color: var(--sos-highlight); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.sosms-device-signpost ol { margin: 16px 0 0; padding: 0; list-style: none; }
.sosms-device-signpost li { display: flex; align-items: center; gap: 11px; padding: 11px 0; border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.82); font-size: 13px; }
.sosms-device-signpost li b { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: var(--sos-highlight); color: var(--sos-primary); font-size: 11px; }
.sosms-model-repairs,.sosms-other-issue { scroll-margin-top: 92px; }
.sosms-repair-explorer { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); align-items: start; gap: clamp(34px,7vw,86px); }
.sosms-section-label { display: block; margin-bottom: 9px; color: var(--sos-accent); font-size: 11px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.sosms-repair-context { position: sticky; top: 112px; }
.sosms-repair-context h2 { margin: 0; color: var(--sos-primary); font-size: clamp(31px,4vw,49px); letter-spacing: -.04em; line-height: 1.05; }
.sosms-repair-context > p { margin: 20px 0; color: var(--sos-muted); }
.sosms-repair-context ul { margin: 0; padding: 0; list-style: none; }
.sosms-repair-context li { position: relative; padding: 8px 0 8px 27px; color: var(--sos-primary); font-size: 13px; font-weight: 720; }
.sosms-repair-context li::before { position: absolute; top: 10px; left: 0; display: grid; width: 17px; height: 17px; place-items: center; border-radius: 50%; background: color-mix(in srgb,var(--sos-accent) 13%,white); color: var(--sos-accent); content: "✓"; font-size: 10px; }
.sosms-repair-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.sosms-repair-choice-grid a { display: grid; min-height: 178px; grid-template-columns: 48px 1fr; align-content: start; gap: 0 14px; padding: 20px; }
.sosms-repair-choice-grid a > i { grid-column: 1; grid-row: 1/3; width: 46px; height: 46px; margin: 0; }
.sosms-repair-choice-grid a > div { min-width: 0; }
.sosms-repair-choice-grid a > div strong { font-size: 17px; }
.sosms-repair-choice-grid a > div span { min-height: 0; margin: 5px 0 13px; font-size: 12px; }
.sosms-repair-choice-grid a > b { grid-column: 2; align-self: end; margin-top: auto; }
.sosms-other-repair-card { border-style: dashed !important; background: linear-gradient(135deg,color-mix(in srgb,var(--sos-highlight) 18%,white),var(--sos-surface)) !important; }
.sosms-repair-choice-grid .sosms-other-repair-card.has-no-icon { grid-template-columns: 1fr; }
.sosms-repair-choice-grid .sosms-other-repair-card.has-no-icon > div,.sosms-repair-choice-grid .sosms-other-repair-card.has-no-icon > b { grid-column: 1; }
.sosms-other-repair-card svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }

.sosms-other-issue { display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); gap: clamp(35px,7vw,90px); padding: clamp(58px,8vw,104px) max(24px,calc((100vw - 1180px) / 2)); background: var(--sos-primary); color: #fff; }
.sosms-other-issue-copy h2 { max-width: 620px; margin: 0; color: #fff; font-size: clamp(34px,4.8vw,58px); letter-spacing: -.045em; line-height: 1.03; }
.sosms-other-issue-copy > p { max-width: 660px; margin: 22px 0; color: rgba(255,255,255,.72); }
.sosms-other-issue .sosms-section-label { color: var(--sos-highlight); }
.sosms-other-examples { display: flex; flex-wrap: wrap; gap: 8px; }
.sosms-other-examples span { padding: 8px 11px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: rgba(255,255,255,.78); font-size: 12px; font-weight: 750; }
.sosms-other-issue-panel { padding: clamp(22px,4vw,34px); border-radius: calc(var(--sos-radius) + 5px); background: var(--sos-surface); box-shadow: 0 30px 80px rgba(0,0,0,.22); color: var(--sos-text); }
.sosms-other-issue-panel > label { display: block; margin-bottom: 7px; color: var(--sos-primary); font-size: 12px; font-weight: 820; }
.sosms-other-issue-panel select,.sosms-other-issue-panel textarea { width: 100%; margin: 0 0 17px; border: 1.5px solid var(--sos-line); border-radius: 13px; outline: 0; background: #fff; color: var(--sos-text); font: inherit; }
.sosms-other-issue-panel select { height: 54px; padding: 0 14px; }
.sosms-other-issue-panel textarea { min-height: 118px; padding: 13px 14px; resize: vertical; }
.sosms-other-issue-panel select:focus,.sosms-other-issue-panel textarea:focus { border-color: var(--sos-accent); box-shadow: 0 0 0 4px color-mix(in srgb,var(--sos-accent) 12%,transparent); }
.sosms-other-contact-copy { margin: 2px 0 12px; }
.sosms-other-contact-copy strong { display: block; color: var(--sos-primary); font-size: 14px; }
.sosms-other-contact-copy p { margin: 3px 0 0; color: var(--sos-muted); font-size: 12px; }
.sosms-other-placeholder { margin: 0; padding: 18px; border: 1px dashed var(--sos-line); border-radius: 13px; color: var(--sos-muted); font-size: 12px; text-align: center; }
.sosms-other-action-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(130px,1fr)); gap: 8px; }
.sosms-other-action { display: flex; min-height: 62px; flex-direction: column; justify-content: center; padding: 11px 13px; border: 1px solid var(--sos-line); border-radius: 12px; appearance: none; background: var(--sos-bg); color: var(--sos-primary); text-align: left; text-decoration: none; transition: .18s; }
.sosms-other-action:hover { border-color: var(--sos-accent); transform: translateY(-1px); }
.sosms-other-action span { color: var(--sos-accent); font-size: 11px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.sosms-other-action strong { margin-top: 2px; font-size: 14px; }
.sosms-other-action.is-whatsapp { border-color: color-mix(in srgb,#25d366 38%,var(--sos-line)); background: color-mix(in srgb,#25d366 8%,white); }
.sosms-other-form { margin-top: 14px; padding-top: 17px; border-top: 1px solid var(--sos-line); }
.sosms-other-status { min-height: 18px; margin-top: 10px; color: #a12c20; font-size: 11px; }
.sosms-other-sent { display: flex; align-items: center; gap: 12px; padding: 15px; border-radius: 13px; background: color-mix(in srgb,var(--sos-accent) 9%,white); }
.sosms-other-sent i { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--sos-highlight); color: var(--sos-primary); font-style: normal; font-weight: 900; }
.sosms-other-sent strong,.sosms-other-sent span { display: block; }
.sosms-other-sent span { margin-top: 2px; color: var(--sos-muted); font-size: 11px; }

/* Comparateur présent directement dans le résultat du parcours. */
.sosms-inline-compare { margin-top: 18px; overflow: hidden; border: 1px solid var(--sos-line); border-radius: 17px; background: var(--sos-surface); }
.sosms-inline-compare > button { display: flex; width: 100%; min-height: 58px; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 18px; border: 0; background: transparent; color: var(--sos-primary); font-weight: 850; text-align: left; }
.sosms-inline-compare > button b { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--sos-bg); color: var(--sos-accent); font-size: 20px; }
.sosms-inline-compare-panel { border-top: 1px solid var(--sos-line); background: color-mix(in srgb,var(--sos-bg) 55%,white); }
.sosms-compare-intro { padding: 20px 20px 4px; }
.sosms-compare-intro strong { color: var(--sos-primary); }
.sosms-compare-intro p { max-width: 760px; margin: 5px 0 0; color: var(--sos-muted); font-size: 11px; }
.sosms-inline-quality-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 10px; padding: 16px; }
.sosms-inline-quality-grid article { position: relative; padding: 18px; border: 1px solid var(--sos-line); border-radius: 14px; background: var(--sos-surface); }
.sosms-inline-quality-grid article.is-recommended { border: 2px solid var(--sos-accent); box-shadow: 0 12px 28px rgba(7,63,50,.09); }
.sosms-inline-quality-grid article > em { position: absolute; top: 0; right: 14px; padding: 4px 8px; border-radius: 0 0 8px 8px; background: var(--sos-accent); color: #fff; font-size: 11px; font-style: normal; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.sosms-inline-quality-grid h4 { margin: 0 0 6px; color: var(--sos-primary); font-size: 17px; }
.sosms-quality-summary { min-height: 48px; margin: 0 0 12px; color: var(--sos-muted); font-size: 11px; }
.sosms-inline-quality-grid dl,.sosms-inline-quality-grid dd { margin: 0; }
.sosms-inline-quality-grid dl > div { padding: 9px 0; border-top: 1px solid var(--sos-line); }
.sosms-inline-quality-grid dt { color: var(--sos-accent); font-size: 11px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.sosms-inline-quality-grid dd { margin-top: 3px; color: var(--sos-muted); font-size: 12px; }

.sosms-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.sosms-hero-reassurance { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 22px; }
.sosms-hero-reassurance span { padding: 7px 10px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: rgba(255,255,255,.82); font-size: 12px; font-weight: 750; }
.sosms-quality-compare > summary small { display: block; margin-top: 4px; color: var(--sos-muted); font-size: 10px; font-weight: 550; }
.sosms-quality-table article.is-recommended { background: color-mix(in srgb,var(--sos-accent) 5%,white); }
.sosms-quality-table h3 { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sosms-quality-table h3 em { padding: 4px 7px; border-radius: 999px; background: var(--sos-accent); color: #fff; font-size: 11px; font-style: normal; letter-spacing: .05em; text-transform: uppercase; }
.sosms-information-grid article > span { display: grid; width: 35px; height: 35px; place-items: center; margin-bottom: 28px; border-radius: 50%; background: color-mix(in srgb,var(--sos-accent) 12%,white); color: var(--sos-accent); font-size: 10px; font-weight: 850; }
.sosms-service-promises { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: 18px; overflow: hidden; border: 1px solid var(--sos-line); border-radius: var(--sos-radius); background: var(--sos-line); }
.sosms-service-promises article { padding: 23px; background: var(--sos-primary); color: #fff; }
.sosms-service-promises strong { color: var(--sos-highlight); font-size: 14px; }
.sosms-service-promises p { margin: 7px 0 0; color: rgba(255,255,255,.72); font-size: 12px; }
.sosms-public-contact-actions a.is-whatsapp { background: #148f55; }
.sosms-public-contact-actions a.is-call { background: var(--sos-primary); }
.sosms-public-contact-actions a.is-lead { background: var(--sos-accent); }
.sosms-service-locations .sosms-location-grid article { display: flex; flex-direction: column; }
.sosms-service-locations .sosms-public-contact-actions { margin-top: auto; padding-top: 8px; }

/* Annuaire modèles : les liens restent rendus côté serveur et utilisables sans JS. */
.sosms-model-directory { display: grid; gap: 24px; }
.sosms-public-brand-list { display: flex; flex-wrap: wrap; gap: 8px; }
.sosms-public-brand-list span { display: inline-flex; min-height: 40px; align-items: center; padding: 7px 15px; border: 1px solid var(--sos-line); border-radius: 999px; background: #fff; color: var(--sos-primary); font-weight: 750; }
.sosms-directory-tools { display: grid; gap: 16px; }
.sosms-directory-search { display: grid; gap: 7px; max-width: 680px; font-weight: 700; }
.sosms-directory-search input { width: 100%; min-height: 54px; padding: 12px 16px; border: 1px solid var(--sos-line); border-radius: 12px; background: #fff; color: var(--sos-primary); font: inherit; }
.sosms-directory-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.sosms-directory-filters button { min-height: 42px; padding: 8px 16px; border: 1px solid var(--sos-line); border-radius: 999px; background: #fff; color: var(--sos-primary); font: inherit; font-weight: 750; cursor: pointer; }
.sosms-directory-filters button[aria-pressed="true"] { border-color: var(--sos-primary); background: var(--sos-primary); color: #fff; }
.sosms-directory-count { margin: 0; color: var(--sos-muted); font-size: 14px; font-weight: 700; }
.sosms-model-directory [hidden] { display: none !important; }
.sosms-directory-empty { margin: 0; padding: 24px; border: 1px solid var(--sos-line); border-radius: 12px; background: #fff; }

@media (max-width: 680px) {
  .sosms-card { min-height: 590px; padding: 23px 18px 28px; border-radius: var(--sos-radius); }
  .sosms-card::after { width: 250px; height: 250px; }
  .sosms-heading h2 { font-size: 32px; }
  .sosms-progress { margin-bottom: 27px; }
  .sosms-search { height: 58px; font-size: 15px; }
  .sosms-brands > div { display: grid; grid-template-columns: repeat(2, 1fr); }
  .sosms-brands button { justify-content: flex-start; }
  .sosms-unlisted-card { align-items: stretch; flex-direction: column; }
  .sosms-unlisted-card button { justify-content: center; }
  .sosms-unlisted-repairs > div { grid-template-columns: 1fr; }
  .sosms-families { grid-template-columns: 1fr; }
  .sosms-repair-grid,
  .sosms-form-grid { grid-template-columns: 1fr; }
  .sosms-repair-grid button { min-height: 112px; }
  .sosms-selection { align-items: flex-start; flex-direction: column; gap: 4px; }
  .sosms-selection a { margin-left: 0; }
  .sosms-search-meta span { display: none; }
  .sosms-offers { grid-template-columns: 1fr; }
  .sosms-offer-card.featured { transform: none; }
  .sosms-offer-card > p { min-height: 0; }
  .sosms-contact-block > div:first-child { align-items: flex-start; flex-direction: column; }
  .sosms-service-hero { padding-top: 38px; }
  .sosms-service-hero-grid { grid-template-columns: 1fr; gap: 30px; }
  .sosms-service-hero h1 { font-size: 40px; }
  .sosms-service-summary { padding-inline: 18px; }
  .sosms-quality-cards,.sosms-information-grid { grid-template-columns: 1fr; }
  .sosms-quality-cards article.is-recommended { transform: none; }
  .sosms-quality-table { grid-template-columns: 1fr; }
  .sosms-quality-table article { border-right: 0; border-bottom: 1px solid var(--sos-line); }
  .sosms-quality-table article:last-child { border-bottom: 0; }
	.sosms-model-hero-grid,.sosms-repair-explorer,.sosms-other-issue { grid-template-columns: 1fr; }
	.sosms-device-signpost { display: none; }
	.sosms-repair-context { position: static; }
	.sosms-repair-choice-grid { grid-template-columns: 1fr; }
	.sosms-repair-choice-grid a { min-height: 142px; }
	.sosms-other-issue { gap: 28px; }
	.sosms-other-issue-panel { padding: 20px 17px; }
	.sosms-other-action-grid,.sosms-inline-quality-grid,.sosms-service-promises { grid-template-columns: 1fr; }
	.sosms-service-promises { gap: 1px; }
	.sosms-hero-actions { align-items: stretch; flex-direction: column; }
	.sosms-hero-actions a { justify-content: center; }
	.sosms-hero-reassurance { gap: 5px; }
	.sosms-inline-quality-grid article { padding: 16px; }
	.sosms-directory-search { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  .sosms-scope *, .sosms-model-page * { scroll-behavior: auto !important; transition: none !important; }
  .sosms-loader { animation: none; }
}
