/* ==========================================================================
   Sucrerie Busque — Revamp B « Menu de la semaine » (2026)
   Loaded last (functions.php, priority 99). Older CSS stays; this file covers it.
   Sections: 1 Tokens & foundations · 2 Buttons & fields · 3 Order page head & steps
             4 Step 1 · 5 Steps 2–4 · 6 Frame (header/footer) · 7 Other pages
   ========================================================================== */

/* 1 · Tokens & foundations ------------------------------------------------- */
:root {
  --sbb-ink: #231d18;
  --sbb-soft: #71665b;
  --sbb-gold: #8e7044;
  --sbb-gold2: #c09659;
  --sbb-gold-wash: #f3ead9;
  --sbb-red: #b01115;
  --sbb-line: #ece4d8;
  --sbb-wash: #faf7f2;
  --sbb-white: #fff;
  --sbb-serif: "Cormorant Garamond", Georgia, serif;
  --sbb-sans: "Montserrat", Arial, sans-serif;
  --sbb-radius: 14px;
  --sbb-radius-lg: 20px;
  --sbb-gutter: 16px;
}
@media (min-width: 900px) { :root { --sbb-gutter: 56px; } }

body, html { font-family: var(--sbb-sans); color: var(--sbb-ink); font-size: 15px; line-height: 1.55; background: var(--sbb-white); }
body { -webkit-font-smoothing: antialiased; }
/* Bootstrap 4 reboot neutralisation (blue links, grey headings) */
a, .gold { color: var(--sbb-gold); }
a:hover, a:focus { color: var(--sbb-ink); text-decoration: underline; }
h1, h2, h3, h4, h5, h6 { color: inherit; }
:focus-visible { outline: 2px solid var(--sbb-gold); outline-offset: 2px; }
.sbb-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
[hidden] { display: none !important; }

/* 2 · Buttons & fields ----------------------------------------------------- */
.btn_step_wrap { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 14px; }
.btn_step_bg_next, .btn_step_bg_prev { background: none !important; filter: none; margin: 0; display: flex; flex: 1 1 auto; }
.btn_step_bg_next:after, .btn_step_bg_prev:after { display: none !important; }
.step_btn_next, .step_btn_prev {
  -webkit-appearance: none; appearance: none; width: 100%; min-height: 50px; height: auto !important; line-height: 1.2 !important;
  padding: 14px 22px !important; border-radius: var(--sbb-radius) !important; border: 1px solid transparent;
  font-family: var(--sbb-sans); font-size: 15px; font-weight: 700; letter-spacing: .01em; text-transform: none;
  cursor: pointer; transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.step_btn_next { background: var(--sbb-gold) !important; color: #fff !important; }
.step_btn_next:hover, .step_btn_next:focus-visible { background: #7a6039 !important; }
.step_btn_next:disabled { opacity: .6; cursor: wait; }
.step_btn_prev { background: #fff !important; color: var(--sbb-ink) !important; border-color: var(--sbb-line); }
.step_btn_prev:hover { border-color: var(--sbb-gold); }

/* 3 · Order page head & steps --------------------------------------------- */
.sbb-repas { max-width: 1240px; margin: 0 auto; }
.sbb-repas #menus_semaine { padding: 0 !important; max-width: none !important; width: auto !important; margin: 0 !important; }
.sbb-head { display: grid; gap: 18px; padding: 26px var(--sbb-gutter) 6px; }
.sbb-kick { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--sbb-gold); font-weight: 700; }
.sbb-title { font-family: var(--sbb-serif); font-weight: 600; font-size: 42px; line-height: 1.02; color: var(--sbb-ink); margin: 6px 0 10px; text-transform: none; letter-spacing: 0; }
.sbb-title em { font-style: italic; font-weight: 500; color: var(--sbb-gold); }
.sbb-intro { color: var(--sbb-soft); max-width: 56ch; }
.sbb-intro p { margin: 0 0 8px; }
.sbb-intro .siteorigin-panels-stretch, .sbb-intro .panel-grid, .sbb-intro .panel-grid-cell { margin: 0 !important; padding: 0 !important; background: none !important; }
.sbb-intro .textwidget > h1:first-child, .sbb-intro .textwidget > h2:first-child { display: none; }
.sbb-intro, .sbb-intro p { font-size: 15px; line-height: 1.6; color: var(--sbb-soft); }
.sbb-intro a { font-weight: 600; }
.sbb-photo { border-radius: 18px; aspect-ratio: 16 / 7; background-size: cover; background-position: center 60%; }
@media (min-width: 900px) {
  .sbb-photo { aspect-ratio: 16 / 10; }
  .sbb-head { grid-template-columns: 1.05fr 1fr; align-items: center; gap: 48px; padding-top: 44px; }
  .sbb-title { font-size: 64px; }
}
.sbb-repas .frame_warning { margin: 30px var(--sbb-gutter); padding: 22px; border: 1px solid var(--sbb-line); border-radius: var(--sbb-radius-lg); background: var(--sbb-wash); color: var(--sbb-ink); font-family: var(--sbb-sans); font-size: 18px; }

/* Steps: 4 segments, the current one and the previous ones filled */
.sbb-repas #steps { zoom: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 16px var(--sbb-gutter) 0; background: none; text-align: left; }
.sbb-repas #steps .clear { display: none; }
.sbb-repas .step, .sbb-repas .step.step_on { all: unset; display: block; color: var(--sbb-soft); font-size: 12px; line-height: 1.3; }
.sbb-repas .step:after { display: none; }
.sbb-repas .sbb-step-bar { display: block; height: 4px; border-radius: 4px; background: var(--sbb-gold); margin-bottom: 6px; }
.sbb-repas .step_on ~ .step .sbb-step-bar { background: var(--sbb-line); }
.sbb-repas .word_step { display: none !important; }
.sbb-repas .sbb-step-label { display: none; }
.sbb-repas .step_on .sbb-step-label { display: inline; color: var(--sbb-ink); font-weight: 700; }
@media (max-width: 599px) {
  .sbb-repas #steps { position: relative; padding-bottom: 18px; }
  .sbb-repas .step_on .sbb-step-label { position: absolute; left: 0; bottom: 0; white-space: nowrap; }
}
@media (min-width: 600px) { .sbb-repas .sbb-step-label { display: inline; } }
.sbb-repas #repas-1, .sbb-repas #repas-2, .sbb-repas #repas-3, .sbb-repas #repas-4 { padding: 0; }

/* 4 · Step 1 --------------------------------------------------------------- */
.sbb-step1 { display: grid; gap: 22px; padding: 22px var(--sbb-gutter) 34px;
  grid-template-areas: "choose" "menu" "panel"; }
.sbb-aside { display: contents; }
.sbb-choose { grid-area: choose; }
.sbb-menu { grid-area: menu; }
.sbb-panel { grid-area: panel; }
.sbb-h { font-family: var(--sbb-serif); font-weight: 600; font-size: 28px; line-height: 1.1; color: var(--sbb-ink); text-transform: none; letter-spacing: 0; margin: 0 0 10px; }
.sbb-h3 { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sbb-soft); margin: 0 0 10px; }
.sbb-sub { color: var(--sbb-soft); margin: -4px 0 6px; font-size: 14px; }
.sbb-ml { list-style: none; margin: 0; padding: 0; }
.sbb-ml li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--sbb-line); }
.sbb-num { font-family: var(--sbb-serif); font-style: italic; font-weight: 600; font-size: 42px; line-height: .9; color: var(--sbb-gold2); }
.sbb-meal { font-family: var(--sbb-sans); font-weight: 600; font-size: 16px; line-height: 1.35; text-transform: none; letter-spacing: 0; color: var(--sbb-ink); margin: 0; }
.sbb-ml .specs { display: block; color: var(--sbb-soft); font-size: 14px; margin-top: 2px; text-transform: none; }

.sbb-seg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; background: #fff; border: 1px solid var(--sbb-line); border-radius: var(--sbb-radius); padding: 4px; gap: 4px; }
.sbb-seg-btn { border: 0; background: transparent; border-radius: 10px; padding: 11px 4px; font-family: var(--sbb-sans); font-size: 15px; font-weight: 700; color: var(--sbb-soft); cursor: pointer; line-height: 1.2; }
.sbb-seg-btn small { display: block; font-weight: 500; font-size: 11px; margin-top: 2px; }
.sbb-seg-btn:hover { color: var(--sbb-ink); background: var(--sbb-wash); }
.sbb-seg-btn.is-on, .sbb-seg-btn.is-on:hover { background: var(--sbb-ink); color: #fff; }

.sbb-panel { border: 1px solid var(--sbb-line); border-radius: var(--sbb-radius-lg); padding: 18px; background: var(--sbb-wash); }
.sbb-forfaits { display: grid; gap: 8px; }
.sbb-fr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--sbb-line); border-radius: var(--sbb-radius); padding: 12px 12px 12px 14px; }
.sbb-fr.is-sel { border-color: var(--sbb-gold); box-shadow: 0 0 0 1px var(--sbb-gold); }
.sbb-fr-txt { display: block; margin: 0; cursor: pointer; }
.sbb-fr-l { display: block; font-weight: 600; font-size: 14px; color: var(--sbb-ink); }
.sbb-fr-p { display: block; font-size: 13px; color: var(--sbb-soft); font-variant-numeric: tabular-nums; }
.sbb-fr-p b { color: var(--sbb-ink); }
.sbb-fr-p span { white-space: nowrap; }
.sbb-price-legacy { display: none !important; }
.sbb-stepper { display: inline-flex; align-items: center; gap: 2px; }
.sbb-stepper button { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--sbb-line); background: #fff; font-size: 18px; line-height: 1; color: var(--sbb-ink); cursor: pointer; font-family: var(--sbb-sans); padding: 0; }
.sbb-stepper button:hover { border-color: var(--sbb-gold); }
.sbb-stepper input.quantite { width: 38px; height: 36px; border: 0; background: transparent; text-align: center; font-family: var(--sbb-sans); font-weight: 700; font-size: 16px; color: var(--sbb-ink); padding: 0; border: 0 !important; box-shadow: none !important; border-radius: 0; -moz-appearance: textfield; appearance: textfield; }
.sbb-stepper input.quantite::-webkit-outer-spin-button, .sbb-stepper input.quantite::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.sbb-stepper input.quantite::placeholder { color: var(--sbb-soft); opacity: 1; }
.sbb-note { margin: 10px 0 0; padding: 10px 12px; border-radius: 10px; background: #fdf1f1; color: var(--sbb-red); font-size: 13px; }
.sbb-recap { margin-top: 16px; border-top: 1px solid var(--sbb-line); padding-top: 12px; font-size: 14px; display: grid; gap: 4px; }
.sbb-row { display: flex; justify-content: space-between; gap: 10px; font-variant-numeric: tabular-nums; }
.sbb-empty { color: var(--sbb-soft); }
.sbb-tot { font-weight: 700; font-size: 17px; margin-top: 4px; }
.sbb-help { font-size: 13px; color: var(--sbb-soft); margin: 12px 0 0; text-align: center; }
.sbb-panel .btn_step_wrap { position: static; display: flex; }
.sbb-panel .btn_step_bg_next { width: 100%; }

.sbb-mbar { position: sticky; bottom: 0; z-index: 50; background: #fff; border-top: 1px solid var(--sbb-line); padding: 10px var(--sbb-gutter); display: flex; align-items: center; gap: 12px; box-shadow: 0 -4px 14px rgba(35, 29, 24, .06); }
.sbb-mbar-s { flex: 1; font-size: 13px; color: var(--sbb-soft); }
.sbb-mbar-s b { display: block; color: var(--sbb-ink); font-size: 17px; font-variant-numeric: tabular-nums; }
.sbb-go { border: 0; border-radius: var(--sbb-radius); background: var(--sbb-gold); color: #fff; font-family: var(--sbb-sans); font-weight: 700; font-size: 15px; height: 46px; padding: 0 22px; cursor: pointer; }
.sbb-go:hover { background: #7a6039; }

@media (min-width: 900px) {
  .sbb-step1 { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-template-areas: "menu aside"; gap: 56px; padding-top: 30px; padding-bottom: 56px; }
  .sbb-aside { display: block; grid-area: aside; position: sticky; top: 110px; align-self: start; border: 1px solid var(--sbb-line); border-radius: var(--sbb-radius-lg); padding: 24px; background: var(--sbb-wash); }
  .sbb-aside .sbb-panel { border: 0; padding: 0; background: none; margin-top: 18px; }
  .sbb-mbar { display: none; }
}

/* 5 · Steps 2–4 ------------------------------------------------------------ */
.sbb-repas #repas-2, .sbb-repas #repas-3, .sbb-repas #repas-4 { max-width: 760px; margin: 0 auto; padding: 24px var(--sbb-gutter) 40px; }
@media (min-width: 900px) { .sbb-repas #repas-2, .sbb-repas #repas-3, .sbb-repas #repas-4 { padding-left: 16px; padding-right: 16px; } }
.sbb-repas .box_border, .sbb-card { border: 1px solid var(--sbb-line) !important; border-radius: var(--sbb-radius-lg); background: var(--sbb-wash); padding: 20px !important; margin: 0 0 18px !important; color: var(--sbb-ink) !important; }
.sbb-repas #repas-4 > .box_border { background: #fff; }
.sbb-card-kick { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--sbb-gold); font-weight: 700; margin: 0 0 6px; font-family: var(--sbb-sans); }
.sbb-subst-title { margin-bottom: 14px; }
.sbb-field { display: grid; gap: 6px; margin-top: 16px; }
.sbb-field label { display: grid; gap: 6px; margin: 0; }
.sbb-label { font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--sbb-soft); }
.sbb-repas textarea, .sbb-repas select, .sbb-repas input[type="text"]:not(.sbb-price-legacy) { border: 1px solid var(--sbb-line) !important; border-radius: 12px !important; background: #fff; padding: 12px 14px; font-family: var(--sbb-sans); font-size: 15px; color: var(--sbb-ink); width: 100%; }
.sbb-repas textarea:focus, .sbb-repas select:focus { border-color: var(--sbb-gold) !important; outline: none; box-shadow: 0 0 0 3px rgba(142, 112, 68, .15); }

/* select2 (steps 2 and 3) */
.sbb-repas .select2-container { width: 100% !important; }
.sbb-repas .select2-container--default .select2-selection--single,
.sbb-repas .select2-container--default .select2-selection--multiple { min-height: 48px; border: 1px solid var(--sbb-line) !important; border-radius: 12px !important; background: #fff; padding: 6px 10px; display: flex; align-items: center; }
.sbb-repas .select2-container--default.select2-container--focus .select2-selection--multiple,
.sbb-repas .select2-container--default.select2-container--open .select2-selection { border-color: var(--sbb-gold) !important; box-shadow: 0 0 0 3px rgba(142, 112, 68, .15); }
.sbb-repas .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--sbb-ink); line-height: 1.3; padding-left: 4px; }
.sbb-repas .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }
.sbb-repas .select2-container--default .select2-selection--multiple .select2-selection__choice { background: var(--sbb-gold-wash) !important; border: 1px solid #e6d6b9 !important; color: #6d5330 !important; border-radius: 999px !important; padding: 4px 10px 4px 26px !important; font-size: 13px; font-weight: 600; margin: 3px 6px 3px 0; }
.sbb-repas .select2-selection--multiple .select2-selection__rendered { display: inline; }
.sbb-repas .select2-selection--multiple .select2-search--inline { display: inline-block; flex: 1; min-width: 14em; }
.sbb-repas .select2-container--default .select2-search--inline .select2-search__field { width: 100% !important;  font-family: var(--sbb-sans); font-size: 14px; margin: 0; height: 28px; }
.select2-dropdown { border: 1px solid var(--sbb-line) !important; border-radius: 12px !important; overflow: hidden; box-shadow: 0 12px 24px rgba(35, 29, 24, .1); font-family: var(--sbb-sans); }
.select2-container--default .select2-results__option { padding: 10px 14px; font-size: 14px; background: #fff; border-bottom: 1px solid var(--sbb-line); color: var(--sbb-ink); }
.select2-container--default .select2-results__option--selected { background: var(--sbb-gold-wash) !important; color: var(--sbb-ink) !important; }
.select2-container--default .select2-results__option div { color: var(--sbb-ink) !important; }
.select2-container--default .select2-results__option div + div { color: var(--sbb-soft) !important; font-size: 12px; }
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: var(--sbb-gold) !important; color: #fff !important; }
.select2-container--default .select2-results__option--highlighted div { color: #fff !important; }
.select2-results__option .avertissement, .select2-results__option .avertissement2, .select2-results__option .frais_additionnels { border-radius: 999px; padding: 1px 8px; font-size: 11px; font-weight: 700; margin-left: 6px; }

/* Step 3 extras */
.sbb-repas .sbb-livraison, .sbb-repas ._half_center { width: auto !important; max-width: none !important; float: none !important; }
.sbb-repas .points-cueillette { background: none !important; text-align: center; padding: 6px 0 !important; margin: 0 0 14px !important; }
.sbb-repas .points-cueillette a { color: var(--sbb-gold) !important; font-weight: 600; text-decoration: underline; }

/* Step 4: summary tables */
.sbb-repas .tbl_repas { width: 100%; border-collapse: collapse; margin: 6px 0 0; }
.sbb-repas .tbl_repas tr { border-bottom: 1px solid var(--sbb-line); }
.sbb-repas .tbl_repas td { padding: 12px 8px 12px 0 !important; vertical-align: top; color: var(--sbb-ink); text-align: left; width: auto !important; display: table-cell !important; }
.sbb-repas .tbl_repas .td_repas { width: 110px !important; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sbb-gold) !important; white-space: nowrap; }
@media (max-width: 600px) {
  /* Long labels (POINT DE LIVRAISON…) were widening the label column and squeezing the dishes */
  .sbb-repas .tbl_repas { table-layout: fixed; }
  .sbb-repas .tbl_repas .td_repas { width: 92px !important; white-space: normal; overflow-wrap: anywhere; line-height: 1.35; }
}
.sbb-repas .tbl_repas h3 { font-family: var(--sbb-sans); font-size: 15px; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--sbb-ink); margin: 0; }
.sbb-repas .tbl_repas .specs { display: block; font-size: 13px; color: var(--sbb-soft); text-transform: none; }
.sbb-repas .text_stroke h3, .sbb-repas .text_stroke .specs { text-decoration: line-through; color: var(--sbb-soft) !important; }
.sbb-repas .text_stroke + td, .sbb-repas tr:has(.text_stroke) + tr h3 { color: var(--sbb-gold); }
.sbb-repas .tbl_repas label { font-weight: 600; }
.sbb-repas #repas-4 hr { border: 0; height: 1px; background: var(--sbb-line); margin: 18px 0; }
.sbb-repas .tbl_repas_order { width: 100%; max-width: 420px; margin: 0 0 0 auto; float: none !important; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.sbb-repas .tbl_repas_order th { font-size: 11px; font-weight: 700; letter-spacing: .08em; color: var(--sbb-soft); text-align: left; padding: 0 6px 6px 0; }
.sbb-repas .tbl_repas_order td { padding: 6px 6px 6px 0 !important; color: var(--sbb-ink) !important; font-size: 14px; border: 0 !important; background: none !important; }
.sbb-repas .tbl_repas_order td.type_order { text-transform: none !important; }
.sbb-repas .tbl_repas_order td.input_price, .sbb-repas .tbl_repas_order td.dollars_sign { text-align: right; white-space: nowrap; }
.sbb-repas .small_gold_line { display: block; height: 1px; background: var(--sbb-line); width: 100%; margin: 4px 0; }

/* Step 4: payment */
.sbb-repas #payment-container { margin-top: 10px; }
.sbb-repas #card_wrapper { width: auto !important; max-width: none !important; float: none !important; border: 1px solid var(--sbb-line) !important; border-radius: 12px; background: #fff; padding: 14px; margin: 10px 0 6px; }
.sbb-repas #card-errors { color: var(--sbb-red); font-size: 13px; }
.sbb-repas .has-js .label_check, .has-js .sbb-repas .label_check { display: block; position: relative; background: none !important; padding: 0 0 0 32px; margin: 14px 0; font-size: 13px; line-height: 1.55; color: var(--sbb-soft) !important; }
.has-js .sbb-repas .label_check::before { content: ""; position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid var(--sbb-gold); background: #fff; }
.has-js .sbb-repas .label_check.c_on::before { background: var(--sbb-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat; border-color: var(--sbb-ink); }
.sbb-repas label.error, .sbb-repas .error { color: var(--sbb-red); font-size: 13px; }
.sbb-repas .warning { border-radius: 12px; background: #fdf1f1; padding: 12px; margin: 12px 0; }
.sbb-repas .warning p { margin: 0; padding: 0; }

/* Steps 2–4: prev/next — inline on desktop, white bottom bar on phones */
@media (max-width: 1001px) {
  .sbb-repas #repas-2 .btn_step_wrap, .sbb-repas #repas-3 .btn_step_wrap, .sbb-repas #repas-4 .btn_step_wrap { position: sticky; bottom: 0; z-index: 50; background: #fff; border-top: 1px solid var(--sbb-line); padding: 10px var(--sbb-gutter); margin: 18px calc(-1 * var(--sbb-gutter)) 0; box-shadow: 0 -4px 14px rgba(35, 29, 24, .06); flex-wrap: nowrap; width: auto !important; left: auto !important; }
  .sbb-repas .btn_step_bg_prev { flex: 0 0 auto; width: auto !important; }
  .sbb-repas .btn_step_bg_next { flex: 1 1 auto; width: auto !important; }
  .sbb-repas .step_btn_prev, .sbb-repas .step_btn_next { min-height: 48px !important; height: auto !important; line-height: 1.2 !important; border-radius: var(--sbb-radius) !important; }
  .sbb-repas .step_btn_next { background: var(--sbb-gold) !important; }
  .sbb-repas .step_btn_prev { background: #fff !important; }
  /* Long labels ("Continuer vers le paiement") must fit beside "Retour" at 320–375 px */
  .sbb-repas .btn_step_bg_next { min-width: 0; }
  .sbb-repas .step_btn_prev { padding: 14px 16px !important; }
  .sbb-repas .step_btn_next { min-width: 0; padding: 14px 12px !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
@media (max-width: 400px) {
  .sbb-repas .step_btn_prev, .sbb-repas .step_btn_next { font-size: 14px; }
}

/* 6 · Frame: header & footer ---------------------------------------------- */
.sbb-skip { position: absolute; left: -9999px; top: 0; z-index: 1000; background: #fff; padding: 10px 14px; }
.sbb-skip:focus { left: 10px; }
#header.sbb-header { position: sticky !important; top: 0; z-index: 500; height: auto !important; background: #fff !important; border-bottom: 1px solid var(--sbb-line); padding: 0 !important; transition: box-shadow .2s ease; }
#header.sbb-header.mask { box-shadow: 0 6px 18px rgba(35, 29, 24, .07); }
body.admin-bar #header.sbb-header { top: 0; }
.sbb-util { display: none; }
#header #menu { position: static !important; height: auto !important; width: auto !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; top: auto !important; }
#header .sbb-bar { position: relative; display: flex; align-items: center; gap: 10px; height: 62px; max-width: none !important; padding: 0 var(--sbb-gutter) !important; margin: 0 !important; }
#header #main_logo { position: static !important; display: block; width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; transform: none !important; top: auto !important; left: auto !important; }
#header #main_logo img { display: block; height: 42px !important; width: auto !important; max-width: none; }
#header .nav { position: static !important; order: 3; display: flex; align-items: center; width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; background: none !important; }
#header .nav-mobile { position: static !important; display: flex !important; align-items: center; justify-content: center; width: 42px !important; height: 42px !important; margin: 0 !important; padding: 0 !important; background: none !important; cursor: pointer; border-radius: 10px; }
#header .nav-mobile:hover { background: var(--sbb-wash) !important; }
#header .nav-mobile span { position: static !important; display: block; width: 22px !important; height: 2px !important; margin: 0 !important; background: var(--sbb-ink) !important; box-shadow: 0 -7px 0 var(--sbb-ink), 0 7px 0 var(--sbb-ink); font-size: 0 !important; color: transparent !important; overflow: visible; }
#header .nav-mobile span::before, #header .nav-mobile span::after, #header .nav-mobile i { display: none !important; }
#header .nav-list { display: none; position: absolute !important; left: 0; right: 0; top: 62px; margin: 0 !important; padding: 8px var(--sbb-gutter) 16px !important; background: #fff !important; border-bottom: 1px solid var(--sbb-line); box-shadow: 0 12px 24px rgba(35, 29, 24, .08); list-style: none; width: auto !important; height: auto !important; max-height: calc(100vh - 62px); overflow-y: auto; }
#header .nav-list > li { display: block; float: none !important; position: relative; border-bottom: 1px solid var(--sbb-line); margin: 0 !important; padding: 0 !important; background: none !important; }
#header .nav-list > li:last-child { border-bottom: 0; }
#header .nav-list a { display: block; padding: 14px 0 !important; font-family: var(--sbb-sans); font-size: 14px !important; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--sbb-ink) !important; background: none !important; line-height: 1.3 !important; text-decoration: none; cursor: pointer; height: auto !important; }
#header .nav-list a, #header .nav-list li { text-align: left !important; border-top: 0 !important; border-left: 0 !important; border-right: 0 !important; }
#header .nav-list > li > a { border-bottom: 0 !important; }
#header .nav-list a:hover, #header .nav-list .current-menu-item > a, #header .nav-list .current_page_item > a { color: var(--sbb-gold) !important; }
#header .nav-list .sub-menu { display: none; position: static !important; list-style: none; margin: 0 0 8px !important; padding: 0 0 0 14px !important; background: none !important; box-shadow: none !important; width: auto !important; }
#header .nav-list .sub-menu a { text-transform: none; letter-spacing: 0; font-weight: 500; padding: 9px 0 !important; color: var(--sbb-soft) !important; }
#header .nav-click { position: absolute !important; right: 0; top: 4px !important; width: 40px !important; height: 40px !important; display: flex !important; align-items: center; justify-content: center; cursor: pointer; background: none !important; border: 0 !important; color: var(--sbb-ink); z-index: 2; }
#header .nav-click .nav-rotate { transform: rotate(180deg); }
#header #btns_wrapper { display: flex !important; align-items: center; gap: 4px; margin: 0 4px 0 0 !important; padding: 0 !important; height: auto !important; background: none !important; float: none !important; position: static !important; }
#header #btns_wrapper a, #header #btns_wrapper button { display: inline-flex !important; align-items: center; gap: 6px; height: 40px !important; line-height: 1 !important; padding: 0 10px !important; margin: 0 !important; border: 0 !important; border-radius: 10px; background: none !important; color: var(--sbb-ink) !important; font-family: var(--sbb-sans) !important; font-size: 13px !important; font-weight: 600; text-transform: none; width: auto !important; cursor: pointer; text-decoration: none; }
#header #btns_wrapper a:hover, #header #btns_wrapper button:hover { background: var(--sbb-wash) !important; color: var(--sbb-gold) !important; }
#header #btns_wrapper a span, #header #btns_wrapper button span { display: none; margin: 0 !important; }
#header #btns_wrapper form { margin: 0; display: flex; }
#header #btns_wrapper #btn_facebook, #header .sbb-logout { display: none !important; }
#header #two_btns { position: static !important; order: 2; display: flex !important; align-items: center; gap: 8px; margin: 0 0 0 auto !important; padding: 0 !important; width: auto !important; height: auto !important; background: none !important; top: auto !important; }
#header #two_btns .clear { display: none; }
#header #two_btns .btn_step_bg_next, #header #two_btns .btn_step_bg_squares { display: flex; flex: none; width: auto !important; margin: 0 !important; background: none !important; filter: none; }
#header #two_btns .btn_step_bg_next:after, #header #two_btns .btn_step_bg_squares:after { display: none !important; }
#header #two_btns a { display: inline-flex !important; align-items: center; height: 40px !important; min-height: 0 !important; line-height: 1 !important; padding: 0 16px !important; border-radius: 999px !important; font-family: var(--sbb-sans); font-size: 13px !important; font-weight: 700 !important; letter-spacing: .02em; text-transform: none !important; text-decoration: none; white-space: nowrap; width: auto !important; }
#header #two_btns .step_btn_next { background: var(--sbb-gold) !important; color: #fff !important; }
#header #two_btns .step_btn_next:hover { background: #7a6039 !important; }
#header #two_btns .step_btn_squares { background: var(--sbb-ink) !important; color: #fff !important; }
#header #two_btns .step_btn_squares:hover { background: var(--sbb-red) !important; }
/* Mobile: on the order page the "Repas préparés" pill is redundant */
@media (max-width: 1001px) {
  body.page-template-page-repas #header #two_btns .btn_step_bg_next { display: none; }
  #header .nav-list.sbb-open { display: block !important; }
}
@media (max-width: 420px) {
  #header #main_logo img { height: 36px !important; }
  #header #two_btns a { padding: 0 12px !important; }
  /* Both pills + account + menu must fit in 320–420 px: "Repas préparés" becomes "Repas" */
  #header #two_btns { gap: 6px; }
  #header #two_btns .sbb-xs-hide { display: none; }
  #header #main_logo img { height: 32px !important; }
  #header .sbb-bar { gap: 6px; }
  #header #btns_wrapper { margin: 0 !important; }
  #header #btns_wrapper a, #header #btns_wrapper button { padding: 0 8px !important; }
  #header .nav-mobile { width: 38px !important; }
}
@media (min-width: 1002px) {
  .sbb-util { display: flex; justify-content: space-between; background: var(--sbb-ink); color: #e8dfd2; font-size: 12px; padding: 7px var(--sbb-gutter); letter-spacing: .02em; }
  .sbb-util a { color: #fff; }
  #header .sbb-bar { height: 78px; gap: 26px; }
  #header #main_logo img { height: 54px !important; }
  #header .nav { order: 1; flex: 1; justify-content: space-between; }
  #header .nav-mobile { display: none !important; }
  #header .nav-list { display: flex !important; position: static !important; order: 1; gap: 24px; padding: 0 !important; border: 0; box-shadow: none; background: none !important; max-height: none; overflow: visible; }
  #header .nav-list > li { border: 0; }
  #header .nav-list > li.menu-home { display: none; }
  #header .nav-list > li > a { padding: 30px 0 !important; font-size: 12px !important; }
  #header .nav-click { display: none !important; }
  #header .nav-list .sub-menu { display: block !important; position: absolute !important; left: -16px; top: 100%; min-width: 230px; padding: 8px 16px !important; margin: 0 !important; background: #fff !important; border: 1px solid var(--sbb-line); border-radius: 12px; box-shadow: 0 12px 24px rgba(35, 29, 24, .1) !important; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s ease, transform .15s ease, visibility .15s; }
  #header .nav-list > li:hover > .sub-menu, #header .nav-list > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
  #header #btns_wrapper { order: 2; }
  #header #btns_wrapper a span, #header #btns_wrapper button span { display: inline; }
  #header #btns_wrapper #btn_facebook, #header .sbb-logout { display: flex !important; }
  #header #two_btns { order: 2; margin: 0 !important; }
}

/* Footer */
#footer { position: relative; background: #fff !important; color: var(--sbb-soft) !important; border-top: 1px solid var(--sbb-line); padding: 30px 0 34px !important; font-size: 13px; text-align: left !important; }
#footer::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 4px; background: url("../images/bg_footer.png") 0 0 / 200px auto repeat-x; }
#footer .window_padding { max-width: 1240px; margin: 0 auto; padding: 0 var(--sbb-gutter) !important; }
#footer .pos_rel { display: grid; gap: 16px; align-items: center; }
#footer #footer_B, #footer #footer_open, #footer #footer_contacts { position: static !important; float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; text-align: left !important; color: var(--sbb-soft) !important; border: 0 !important; }
#footer #footer_B img { width: 72px; height: auto; }
#footer .gold { color: var(--sbb-gold) !important; }
#footer a { color: var(--sbb-ink) !important; }
#footer .footer_phone { font-size: 18px; font-weight: 700; }
#footer .Vline { display: inline-block; width: 1px; height: 12px; background: var(--sbb-line); margin: 0 8px; vertical-align: middle; border: 0; }
#footer .signature, #footer .signature a { font-size: 12px; color: var(--sbb-soft) !important; }
#footer .clear { display: none; }
@media (min-width: 900px) { #footer .pos_rel { grid-template-columns: auto 1fr 1.6fr; gap: 40px; } }

/* Back-to-top button */
#btn_top { width: 44px !important; height: 44px !important; right: 14px !important; bottom: 96px !important; top: auto !important; border-radius: 50% !important; background: #fff !important; border: 1px solid var(--sbb-line) !important; box-shadow: 0 4px 14px rgba(35, 29, 24, .12); padding: 0 !important; color: var(--sbb-gold) !important; font-size: 22px !important; line-height: 42px !important; text-align: center; text-indent: 0 !important; z-index: 400; }
@media (max-width: 899px) { #footer #footer_B { display: none !important; } }

/* 7 · Other pages ---------------------------------------------------------- */
/* Banner: rounded photo inside the page gutter (all templates using .small_banner) */
.small_banner { max-width: 1240px; margin: 18px auto 0 !important; padding: 0 var(--sbb-gutter); }
.small_banner img { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 5; object-fit: cover; border-radius: var(--sbb-radius-lg); }
@media (max-width: 599px) { .small_banner img { aspect-ratio: 16 / 7; border-radius: 16px; } }
.sbb-page { max-width: 1240px; margin: 0 auto; padding: 0 var(--sbb-gutter) 48px; }
.sbb-page .window_padding { padding: 0 !important; max-width: none !important; width: auto !important; }
.sbb-page-head { padding: 26px 0 18px; max-width: 760px; }
.sbb-page-head .sbb-title { margin-top: 6px; }
@media (min-width: 900px) { .sbb-page-head { padding-top: 40px; } }

/* Fields shared by account pages */
.sbb-page .sbb-card { background: var(--sbb-wash); }
.sbb-page .sbb-h { margin-bottom: 6px; }
.sbb-page .sbb-sub { margin: 0 0 14px; }
.sbb-page .form_full, .sbb-page #loginform p { margin: 0 0 14px; padding: 0; width: auto; float: none; }
.sbb-page .form_full > label:not(.label_check), .sbb-page #loginform label[for] { display: block; font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--sbb-soft); margin: 0 0 6px; }
.sbb-page input[type="text"], .sbb-page input[type="email"], .sbb-page input[type="tel"], .sbb-page input[type="password"] {
  display: block; width: 100% !important; height: auto !important; min-height: 48px; border: 1px solid var(--sbb-line) !important; border-radius: 12px !important; background: #fff !important;
  padding: 12px 14px !important; font-family: var(--sbb-sans); font-size: 16px; color: var(--sbb-ink); box-shadow: none; margin: 0 !important; }
.sbb-page input:focus { border-color: var(--sbb-gold) !important; box-shadow: 0 0 0 3px rgba(142, 112, 68, .15) !important; outline: 0; }
.sbb-page input:disabled { background: var(--sbb-wash) !important; color: var(--sbb-soft); }
.sbb-page label.error, .sbb-page .error { display: block; color: var(--sbb-red); font-size: 13px; margin-top: 4px; text-transform: none; letter-spacing: 0; font-weight: 500; }
.sbb-page input.error { border-color: var(--sbb-red) !important; }
.sbb-fields-2 { display: grid; gap: 0 12px; }
@media (min-width: 600px) { .sbb-fields-2 { grid-template-columns: 1fr 1fr; } }
.sbb-hint { font-size: 13px; color: var(--sbb-soft); margin: -4px 0 14px; }
.sbb-form-actions { margin: 18px 0 0; display: flex; }
.sbb-form-actions .btn_step_bg_next { flex: 1 1 auto; }
/* Custom checkbox (same look as the order page) */
.has-js .sbb-page .label_check { display: block; position: relative; background: none !important; padding: 0 0 0 32px; margin: 4px 0; font-size: 13px; line-height: 1.55; color: var(--sbb-soft) !important; text-transform: none; letter-spacing: 0; cursor: pointer; }
.has-js .sbb-page .label_check::before { content: ""; position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid var(--sbb-gold); background: #fff; }
.has-js .sbb-page .label_check.c_on::before { background: var(--sbb-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat; border-color: var(--sbb-ink); }

/* Login + sign-up (page-connexion.php) and Mon compte (page-mon-compte.php) */
.sbb-auth-grid { display: grid; gap: 18px; align-items: start; }
.sbb-auth-grid > .clear { display: none; }
.sbb-auth-grid .half_left, .sbb-auth-grid .half_right, .sbb-auth-grid .half_center { float: none !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.sbb-auth-grid .box_border { border: 1px solid var(--sbb-line) !important; border-radius: var(--sbb-radius-lg); padding: 22px !important; margin: 0 !important; color: var(--sbb-ink) !important; }
@media (min-width: 900px) {
  .sbb-auth-grid { grid-template-columns: 1fr 1.25fr; gap: 28px; }
  .sbb-auth-grid .box_border { padding: 30px !important; }
  .sbb-auth-single { grid-template-columns: minmax(0, 620px); }
}
.sbb-page #loginform .login-remember label { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--sbb-soft); text-transform: none; letter-spacing: 0; font-weight: 500; }
.sbb-page #loginform .login-remember input { width: 18px; height: 18px; accent-color: var(--sbb-ink); margin: 0; }
.sbb-page #loginform .text_center { text-align: left !important; font-size: 13px; }
.sbb-page #loginform .login-submit { margin: 18px 0 0; background: none !important; filter: none; height: auto !important; padding: 0 !important; }
.sbb-page #loginform .login-submit::after, .sbb-page #loginform .login-submit::before { display: none !important; }
.sbb-page #loginform #wp-submit { -webkit-appearance: none; appearance: none; width: 100% !important; height: auto !important; min-height: 50px; line-height: 1.2 !important; border: 0; border-radius: var(--sbb-radius) !important; background: var(--sbb-gold) !important; color: #fff !important; font-family: var(--sbb-sans); font-size: 15px !important; font-weight: 700; letter-spacing: .01em; cursor: pointer; padding: 14px 22px !important; text-transform: none !important; box-shadow: none; text-shadow: none; }
.sbb-page #loginform #wp-submit:hover, .sbb-page #loginform #wp-submit:focus-visible { background: #7a6039; }
.sbb-card-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.sbb-link-out { font-size: 13px; font-weight: 600; white-space: nowrap; }

/* Owner-edited SiteOrigin content (page.php, points de cueillette, info page) */
.sbb-std, .sbb-prose { color: var(--sbb-ink); }
.sbb-std .textwidget h1, .sbb-prose .textwidget h1 { font-family: var(--sbb-serif); font-weight: 600; font-size: 42px; line-height: 1.05; color: var(--sbb-ink); text-transform: none; letter-spacing: 0; margin: 0 0 8px; text-align: left !important; }
.sbb-std .textwidget h2 { font-family: var(--sbb-sans); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--sbb-gold); margin: 0 0 18px; }
.sbb-std .textwidget h3 { font-family: var(--sbb-serif); font-weight: 600; font-size: 26px; line-height: 1.15; text-transform: none; letter-spacing: 0; margin: 26px 0 8px; }
.sbb-std .textwidget h3 span[style] { color: inherit !important; }
.sbb-std .textwidget p, .sbb-std .textwidget li { font-size: 16px; line-height: 1.65; color: var(--sbb-soft); }
.sbb-std .textwidget strong { color: var(--sbb-ink); }
.sbb-std .textwidget a { font-weight: 600; }
.sbb-std > .panel-layout { padding-top: 26px; }
@media (min-width: 900px) {
  .sbb-std > .panel-layout { padding-top: 40px; }
  .sbb-std .textwidget h1, .sbb-prose .textwidget h1 { font-size: 56px; }
}
.sbb-prose .panel-grid, .sbb-prose .panel-grid-cell, .sbb-prose .so-panel { margin: 0 !important; padding: 0 !important; }
.sbb-prose .textwidget > p:empty, .sbb-prose .textwidget > p:only-of-type:not(:has(*)) { display: none; }

/* Points de cueillette: card grid */
.sbb-points-grid { display: grid; gap: 16px; }
.sbb-points-grid > .clear { display: none; }
@media (min-width: 700px) { .sbb-points-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .sbb-points-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sbb-point { border: 1px solid var(--sbb-line); border-radius: var(--sbb-radius-lg); background: var(--sbb-wash); padding: 18px; }
.sbb-point h2 { font-family: var(--sbb-sans); font-weight: 700; font-size: 15px; line-height: 1.35; text-transform: uppercase; letter-spacing: .02em; color: var(--sbb-ink) !important; margin: 0 0 6px !important; }
.sbb-point p { font-size: 14px; color: var(--sbb-soft); margin: 0; }
.sbb-point { display: flex; flex-direction: column; }
.sbb-point p { margin-bottom: 14px; }
.sbb-point .acf-map { margin-top: auto !important; flex: none; }
/* page.php: SiteOrigin stretches rows itself — keep its own widths, only the typography changes */
.sbb-page.sbb-std { max-width: none; padding: 0 0 24px; }

/* ========================================================================== */
/* 7 · Session 4 — thème « Papier crème » (piste 1)                            */
/* ========================================================================== */
:root { --sbb-paper: #f5efe5; --sbb-card-line: #eadfcc; --sbb-card-shadow: 0 10px 30px rgba(110, 80, 40, .10); }
body, html { background: var(--sbb-paper); }
#header.sbb-header { background: #fffdf9 !important; border-bottom-color: var(--sbb-card-line); }
.sbb-repas .box_border, .sbb-card, .sbb-panel, .sbb-point { background: #fff; border-color: var(--sbb-card-line) !important; box-shadow: var(--sbb-card-shadow); }
.sbb-repas #repas-4 > .box_border { background: #fff; }
.sbb-photo { box-shadow: 0 18px 36px rgba(110, 80, 40, .22); }
.sbb-repas .step_on ~ .step .sbb-step-bar { background: #e4d8c4; }
.sbb-ml li { border-bottom-color: #e7dccb; }
@media (min-width: 900px) {
  .sbb-aside { background: #fff; border-color: var(--sbb-card-line); box-shadow: var(--sbb-card-shadow); }
  .sbb-aside .sbb-panel { box-shadow: none; }
}

/* ========================================================================== */
/* 8 · Session 4 — listes select2 : style A5 (cases + compteur)                */
/* ========================================================================== */
/* Le champ : une seule ligne pleine largeur, sans « rond » intérieur (le textarea de recherche de select2 héritait du style des champs) */
.sbb-repas .select2-container--default .select2-selection--multiple { display: block; min-height: 50px; padding: 0 40px 0 14px; cursor: pointer; position: relative; }
.sbb-repas .select2-container--default .select2-selection--multiple::after { content: ""; position: absolute; right: 16px; top: 50%; width: 8px; height: 8px; margin-top: -6px; border-right: 2px solid var(--sbb-gold); border-bottom: 2px solid var(--sbb-gold); transform: rotate(45deg); pointer-events: none; }
.sbb-repas .select2-container--open .select2-selection--multiple::after { transform: rotate(-135deg); margin-top: -2px; }
.sbb-repas .select2-selection--multiple .select2-selection__rendered { display: block !important; margin: 0; padding: 0; }
.sbb-repas .select2-selection--multiple .select2-selection__choice { display: none !important; }   /* les choix s'affichent en paires (B5) */
.sbb-repas .select2-selection--multiple .select2-selection__clear { display: none !important; }
.sbb-repas .select2-selection--multiple .select2-search--inline { display: block !important; width: 100%; min-width: 0; margin: 0; }
.sbb-repas .select2-container--default .select2-selection--multiple .select2-search__field,
.sbb-repas .select2-container .select2-search--inline textarea.select2-search__field { display: block; width: 100% !important; height: 48px !important; min-height: 0; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; outline: none !important; resize: none; overflow: hidden; font-family: var(--sbb-sans); font-size: 14px; line-height: 48px !important; color: var(--sbb-ink); cursor: pointer; }
.sbb-repas .select2-search__field::placeholder { color: var(--sbb-soft); opacity: 1; }
.sbb-repas .select2-container--open .select2-selection--multiple { border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; }

/* La liste ouverte (toutes les listes select2) : survol pâle, texte toujours foncé */
.select2-dropdown { border-color: var(--sbb-gold) !important; }
.select2-container--open .select2-dropdown--below { border-top: 0 !important; border-radius: 0 0 12px 12px !important; }
.select2-container--open .select2-dropdown--above { border-bottom: 0 !important; border-radius: 12px 12px 0 0 !important; }
.select2-container--default .select2-results > .select2-results__options { max-height: 340px; }
.select2-container--default .select2-results__option { padding: 11px 16px; }
.select2-container--default .select2-results__option div { color: var(--sbb-ink) !important; font-weight: 600; font-size: 14px; }
.select2-container--default .select2-results__option div + div { color: var(--sbb-soft) !important; font-weight: 400; font-size: 12px; }
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: #fbf8f3 !important; color: var(--sbb-ink) !important; }
.select2-container--default .select2-results__option--highlighted div { color: var(--sbb-ink) !important; }
.select2-container--default .select2-results__option--highlighted div + div { color: var(--sbb-soft) !important; }
.select2-container--default .select2-results__option--selected { background: #fff !important; }
.select2-container--default .select2-results__option--selected.select2-results__option--highlighted { background: #fbf8f3 !important; }
/* Cases à cocher : seulement dans les listes « à remplacer » / « remplacer par » */
ul[id^="select2-select2-repas-"] .select2-results__option--selectable,
ul[id^="select2-select2-substitut-"] .select2-results__option--selectable { position: relative; padding-left: 48px; }
ul[id^="select2-select2-repas-"] .select2-results__option--selectable::before,
ul[id^="select2-select2-substitut-"] .select2-results__option--selectable::before { content: ""; position: absolute; left: 16px; top: 50%; width: 20px; height: 20px; margin-top: -10px; border-radius: 5px; border: 1.5px solid #cdbb9c; background: #fff; box-sizing: border-box; }
ul[id^="select2-select2-repas-"] .select2-results__option--selected::before,
ul[id^="select2-select2-substitut-"] .select2-results__option--selected::before { background: var(--sbb-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat; border-color: var(--sbb-gold); }
.sbb-s2-head { display: flex; justify-content: space-between; gap: 10px; padding: 9px 16px; background: var(--sbb-wash); border-bottom: 1px solid var(--sbb-line); font-family: var(--sbb-sans); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--sbb-soft); }
.sbb-s2-head strong { color: var(--sbb-gold); white-space: nowrap; }
.select2-results__message { color: var(--sbb-soft); font-size: 13px; }

/* ========================================================================== */
/* 9 · Session 4 — substitutions en paires (B5)                                */
/* ========================================================================== */
.sbb-pairs { display: grid; grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr); gap: 8px 10px; align-items: center; margin: 16px 0 4px; }
.sbb-pairs[hidden] { display: none !important; }
.sbb-pairs-h { font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--sbb-soft); }
.sbb-pairs-arrow { color: var(--sbb-gold); font-size: 20px; text-align: center; line-height: 1; }
.sbb-pair { display: flex; align-items: center; gap: 8px; min-height: 52px; background: #fff; border: 1px solid var(--sbb-card-line); border-radius: 12px; padding: 8px 8px 8px 12px; }
.sbb-pair-t { flex: 1; min-width: 0; font-size: 13px; font-weight: 600; line-height: 1.3; text-transform: uppercase; color: var(--sbb-ink); }
.sbb-pair-t small { display: block; font-size: 11px; font-weight: 400; color: var(--sbb-soft); }
.sbb-pair.is-out .sbb-pair-t { color: var(--sbb-soft); text-decoration: line-through; text-decoration-color: rgba(176, 17, 21, .55); }
.sbb-pair.is-empty { border-style: dashed; background: transparent; }
.sbb-pair.is-empty .sbb-pair-t { font-weight: 500; text-transform: none; color: var(--sbb-soft); font-size: 13px; }
.sbb-pair-x { flex: none; width: 28px; height: 28px; border-radius: 50%; border: 0; padding: 0; background: var(--sbb-gold-wash); color: var(--sbb-gold); font-family: var(--sbb-sans); font-size: 17px; font-weight: 700; line-height: 1; cursor: pointer; }
.sbb-pair-x:hover, .sbb-pair-x:focus-visible { background: var(--sbb-red); color: #fff; }
.sbb-pairs-warn { grid-column: 1 / -1; margin: 2px 0 0; padding: 8px 12px; border-radius: 10px; background: #fdf1f1; color: var(--sbb-red); font-size: 13px; }
@media (min-width: 640px) {
  .sbb-subst .sbb-card > div.sbb-subst-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
}
@media (max-width: 639px) {
  .sbb-pairs { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .sbb-pairs-h, .sbb-pairs-sp { display: none; }
  .sbb-pairs-arrow { transform: rotate(90deg); height: 18px; }
  .sbb-pairs .sbb-pair-row-end { margin-bottom: 10px; }
}
/* L'ancien style.css force un fond pêche et une bordure brune sur chaque option (!important) */
.select2-container .select2-results__option--selectable { border: 0 !important; border-bottom: 1px solid var(--sbb-line) !important; background-color: #fff !important; }
.select2-container .select2-results__option--selectable:last-child { border-bottom: 0 !important; }
.select2-container .select2-results__option--selectable.select2-results__option--highlighted { background-color: #fbf8f3 !important; }
.sbb-repas .select2-container--open.select2-container--above .select2-selection--multiple { border-radius: 0 0 12px 12px !important; }

/* ========================================================================== */
/* 10 · Session 4 — compte express (étape 4, visiteur non connecté)            */
/* ========================================================================== */
.sbb-express { margin: 0 0 22px; padding: 0 0 20px; border-bottom: 1px solid var(--sbb-line); }
.sbb-express[data-mode="new"] .sbb-x-login, .sbb-express[data-mode="login"] .sbb-x-new { display: none !important; }
.sbb-x-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 12px; margin-top: 12px; }
.sbb-x-f { display: grid; gap: 6px; min-width: 0; }
.sbb-x-wide { grid-column: 1 / -1; }
@media (max-width: 520px) { .sbb-x-grid { grid-template-columns: 1fr; } }
.sbb-express input[type="text"], .sbb-express input[type="email"], .sbb-express input[type="tel"], .sbb-express input[type="password"] { width: 100%; height: 48px; border: 1px solid #dccfb9 !important; border-radius: 12px !important; background: #fff; padding: 0 14px; font-family: var(--sbb-sans); font-size: 15px; color: var(--sbb-ink); box-shadow: none; margin: 0; }
.sbb-express input:focus { border-color: var(--sbb-gold) !important; outline: none; box-shadow: 0 0 0 3px rgba(142, 112, 68, .15); }
.sbb-express input.sbb-x-err { border-color: var(--sbb-red) !important; box-shadow: 0 0 0 3px rgba(176, 17, 21, .12); }
.sbb-x-pw { position: relative; }
.sbb-x-pw input { padding-right: 96px !important; }
.sbb-x-eye { position: absolute; right: 6px; top: 6px; height: 36px; padding: 0 12px; border: 0; border-radius: 9px; background: var(--sbb-wash); color: var(--sbb-gold); font-family: var(--sbb-sans); font-size: 13px; font-weight: 700; cursor: pointer; }
.sbb-x-check { display: flex; gap: 10px; align-items: flex-start; margin: 14px 0 0; font-size: 13px; color: var(--sbb-soft); cursor: pointer; font-weight: 400; }
.sbb-x-check input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--sbb-gold); flex: none; }
.sbb-x-msg { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: #fdf1f1; color: var(--sbb-red); font-size: 13px; }
.sbb-x-switch { margin: 12px 0 0; font-size: 13px; color: var(--sbb-soft); }
.sbb-x-switch a { font-weight: 600; }
.sbb-x-done { margin: 10px 0 0; padding: 10px 12px; border-radius: 10px; background: #eef6ec; color: #2d6a2a; font-size: 14px; font-weight: 600; }

/* ========================================================================== */
/* 11 · Session 5 — survol des autres pages sur fond crème                    */
/* ========================================================================== */
/* Historique : les années (or clair #c09659) étaient trop pâles sur le crème */
.date_list p em { color: var(--sbb-gold); }

/* Boutons tartan des pages SiteOrigin : sur deux lignes, l'ancienne hauteur de ligne de 60 px donnait un bouton de 120 px */
.sbb-std .btn_step_bg_squares .step_btn_squares { line-height: 22px !important; padding-top: 19px !important; padding-bottom: 19px !important; height: auto !important; }
.sbb-std .btn_step_bg_squares::after { top: 12px !important; bottom: 12px !important; height: auto !important; display: flex !important; align-items: center; justify-content: center; line-height: 1 !important; }
/* Pied de page : même blanc chaud que l'en-tête */
#footer { background: #fffdf9 !important; }
/* Formulaire Contact (Contact Form 7) : le message suit le style des deux autres champs */
.sbb-std .wpcf7 textarea { display: block; width: 100% !important; box-sizing: border-box; min-height: 120px; border: 1px solid var(--sbb-line) !important; border-radius: 12px !important; background: #fff !important; padding: 12px 14px !important; font-family: var(--sbb-sans); font-size: 16px; color: var(--sbb-ink); box-shadow: none; }
.sbb-std .wpcf7 textarea:focus { border-color: var(--sbb-gold) !important; box-shadow: 0 0 0 3px rgba(142, 112, 68, .15); outline: 0; }

/* ========================================================================== */
/* 12 · Session 5 — étape 4 en trois cartes (facture / coordonnées / paiement) */
/* ========================================================================== */
/* La grande boîte devient transparente ; chaque partie a sa propre carte blanche, séparées par le fond crème */
.sbb-repas #repas-4 > .box_border { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; border-radius: 0; }
.sbb-repas #repas-4 #details_commande_container, .sbb-repas #repas-4 .sbb-express, .sbb-repas #repas-4 .sbb-pay-card { background: #fff; border: 1px solid var(--sbb-card-line); border-radius: var(--sbb-radius-lg); box-shadow: var(--sbb-card-shadow); padding: 20px; margin: 0 0 22px; }
@media (min-width: 600px) { .sbb-repas #repas-4 #details_commande_container, .sbb-repas #repas-4 .sbb-express, .sbb-repas #repas-4 .sbb-pay-card { padding: 26px 28px; } }
.sbb-repas #repas-4 .sbb-express { border-bottom: 1px solid var(--sbb-card-line); }
.sbb-repas #repas-4 #payment-container { margin-top: 0; }
.sbb-repas #repas-4 .sbb-pay-card { margin-bottom: 0; }
.sbb-repas #repas-4 .sbb-pay-card > .sbb-h:first-child { margin-top: 0; }
.sbb-repas #repas-4 #details_commande_container > hr:last-child { display: none; }   /* trait final inutile : la carte se ferme */
.sbb-repas #repas-4 #details_commande_container > table:last-child, .sbb-repas #repas-4 #details_commande_container > :nth-last-child(2) { margin-bottom: 0; }

/* ========================================================================== */
/* 13 · Session 5 — substitutions : les listes directement sous les titres     */
/* ========================================================================== */
/* Les deux listes d'origine restent dans le formulaire (ce sont elles qui sont envoyées), mais cachées */
.sbb-subst.is-enh .sbb-subst-fields { display: none !important; }
.sbb-subst .sbb-pairs { margin-top: 18px; }
.sbb-dd { position: relative; min-width: 0; }
.sbb-dd.is-open { z-index: 450; }   /* au-dessus du pied de page (356) et de la barre collante, sous l’en-tête (500) */
.sbb-dd-btn { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 56px; margin: 0; padding: 8px 44px 8px 14px; background: #fff; border: 1px solid var(--sbb-card-line); border-radius: 12px; text-align: left; cursor: pointer; font-family: var(--sbb-sans); color: var(--sbb-ink); position: relative; }
.sbb-dd.has-val .sbb-dd-btn { padding-right: 84px; }
.sbb-dd-btn:hover { border-color: #d9c7a6; }
.sbb-dd-btn:focus-visible, .sbb-dd.is-open .sbb-dd-btn { border-color: var(--sbb-gold); box-shadow: 0 0 0 3px rgba(142, 112, 68, .15); outline: 0; }
.sbb-dd.is-open .sbb-dd-btn { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.sbb-dd-t { display: block; flex: 1; min-width: 0; font-size: 13px; font-weight: 600; line-height: 1.3; text-transform: uppercase; color: var(--sbb-ink); }
.sbb-dd-t small { display: block; font-size: 11px; font-weight: 400; color: var(--sbb-soft); }
.sbb-dd.is-out.has-val .sbb-dd-btn > .sbb-dd-t { color: var(--sbb-soft); text-decoration: line-through; text-decoration-color: rgba(176, 17, 21, .55); }
.sbb-dd-t.sbb-dd-ph { font-size: 14px; font-weight: 500; text-transform: none; color: var(--sbb-soft); }
.sbb-dd-chev { position: absolute; right: 16px; top: 50%; width: 8px; height: 8px; margin-top: -6px; border-right: 2px solid var(--sbb-gold); border-bottom: 2px solid var(--sbb-gold); transform: rotate(45deg); pointer-events: none; }
.sbb-dd.is-open .sbb-dd-chev { transform: rotate(-135deg); margin-top: -2px; }
.sbb-dd-x { position: absolute; right: 40px; top: 50%; margin-top: -14px; width: 28px; height: 28px; border-radius: 50%; border: 0; padding: 0; background: var(--sbb-gold-wash); color: var(--sbb-gold); font-family: var(--sbb-sans); font-size: 17px; font-weight: 700; line-height: 1; cursor: pointer; z-index: 2; }
.sbb-dd-x:hover, .sbb-dd-x:focus-visible { background: var(--sbb-red); color: #fff; outline: 0; }
.sbb-dd-menu { position: absolute; left: 0; right: 0; top: 100%; z-index: 60; max-height: 340px; overflow-y: auto; background: #fff; border: 1px solid var(--sbb-gold); border-top: 0; border-radius: 0 0 12px 12px; box-shadow: 0 12px 24px rgba(35, 29, 24, .12); }
.sbb-dd-opt { display: flex; align-items: center; gap: 10px; width: 100%; margin: 0; padding: 11px 14px 11px 44px; background: #fff; border: 0; border-bottom: 1px solid var(--sbb-line); text-align: left; cursor: pointer; font-family: var(--sbb-sans); position: relative; }
.sbb-dd-opt:last-child { border-bottom: 0; }
.sbb-dd-opt::before { content: ""; position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%; border: 1.5px solid #cdbb9c; box-sizing: border-box; background: #fff; }
.sbb-dd-opt.is-sel::before { border: 5px solid var(--sbb-gold); }
.sbb-dd-opt:hover, .sbb-dd-opt:focus { background: #fbf8f3; outline: 0; }
.sbb-dd-opt[disabled] { cursor: default; background: #fff; }
.sbb-dd-opt[disabled] .sbb-dd-t, .sbb-dd-opt[disabled]::before { opacity: .45; }
.sbb-dd-opt em { flex: none; font-style: normal; font-size: 11px; font-weight: 600; color: var(--sbb-soft); }
@media (max-width: 639px) {
  .sbb-subst .sbb-pairs-h { display: none; }
  .sbb-dd-menu { max-height: 300px; }
}

/* ========================================================================== */
/* 14 · Session 5 — couleurs « Feuille posée » (piste 1 de couleurs-11.html)    */
/* ========================================================================== */
/* Marges taupe pâle ; colonne centrale de 1240 px plus claire, avec une ombre douce sur les
   quatre côtés. La colonne est dessinée par un pseudo-élément de .sbb-col (enveloppe ouverte
   dans header.php, fermée dans footer.php) : aucun élément du contenu ne bouge. Seul ajout
   d'espace : 48 px sous la colonne, pour que l'ombre du bas soit identique à celle des côtés. */
:root { --sbb-margin: #e6dccb; --sbb-col: #f8f3ea; }
body, html { background: var(--sbb-margin); }
.sbb-col { position: relative; isolation: isolate; background: var(--sbb-col); }
@media (min-width: 1280px) {
  .sbb-col { background: none; padding-bottom: 48px; }
  .sbb-col::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 48px; left: 50%; width: 1240px; margin-left: -620px; background: var(--sbb-col); box-shadow: 0 0 40px rgba(90, 60, 25, .20); pointer-events: none; }
}

/* 15 · Session 5 — étape 2 plus large : moins de noms de plats coupés sur plusieurs lignes */
@media (min-width: 900px) { .sbb-repas #repas-2 { max-width: 1140px; } }

/* ========================================================================== */
/* 16 · Session 5 — page Galerie photos (page-galerie.php)                     */
/* ========================================================================== */
.sbb-gal-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 6px 0 26px; }
.sbb-gal-links a { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--sbb-card-line); border-radius: 16px; padding: 14px 16px; box-shadow: var(--sbb-card-shadow); color: var(--sbb-ink); text-decoration: none; transition: border-color .15s, transform .15s; }
.sbb-gal-links a:hover, .sbb-gal-links a:focus-visible { border-color: var(--sbb-gold); transform: translateY(-1px); text-decoration: none; }
.sbb-gal-ic { flex: none; width: 40px; height: 40px; border-radius: 12px; background: var(--sbb-gold-wash); color: var(--sbb-gold); display: grid; place-items: center; font-size: 20px; }
.sbb-gal-links b { display: block; font-size: 15px; }
.sbb-gal-links small { display: block; font-size: 12px; color: var(--sbb-soft); }
.sbb-galerie > .sbb-gal-links:last-child { margin: 30px 0 10px; }
.sbb-gal-tabs { display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid var(--sbb-card-line); margin: 0 0 18px; }
.sbb-gal-tabs button { font: 600 14px var(--sbb-sans); color: var(--sbb-soft); background: none; border: 0; border-bottom: 3px solid transparent; padding: 10px 14px; margin-bottom: -1px; cursor: pointer; }
.sbb-gal-tabs button[aria-selected="true"] { color: var(--sbb-ink); border-bottom-color: var(--sbb-gold); }
.sbb-gal-tabs button:hover { color: var(--sbb-ink); }
.sbb-gal.is-js .sbb-gal-h { display: none; }
.sbb-gal-sec { margin: 0 0 30px; }
.sbb-gal-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.sbb-gal-chips button { font: 600 13px var(--sbb-sans); border: 1px solid var(--sbb-card-line); background: #fff; color: var(--sbb-ink); border-radius: 999px; padding: 6px 14px; cursor: pointer; }
.sbb-gal-chips button.is-on { background: var(--sbb-ink); color: #fff; border-color: var(--sbb-ink); }
.sbb-gal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.sbb-gal-it { display: block; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: var(--sbb-gold-wash); }
.sbb-gal-it[hidden] { display: none; }
.sbb-gal-it img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.sbb-gal-it:hover img { transform: scale(1.04); }
@media (max-width: 699px) {
  .sbb-gal-links { grid-template-columns: 1fr; gap: 8px; }
  .sbb-gal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .sbb-gal-tabs { flex-wrap: nowrap; overflow-x: auto; }
  .sbb-gal-tabs button { white-space: nowrap; padding: 10px; }
}

/* ========================================================================== */
/* 17 · Session 6 — étape 4 : récapitulatif « Facture » (piste 19 de recapitulatif-20.html, valeurs reprises telles quelles) */
/* ========================================================================== */
/* La carte blanche « Récapitulatif » (§ 12) contient un reçu dentelé de 620 px ; le choix du jour est sous le reçu. */
#details_commande_container > .sbb-h { text-align: left; margin: 0 0 4px; }
#details_commande_container > .sbb-card-kick { margin: 0; }
#details_commande_container .sbb-rc { --rc: #fffdf8; position: relative; max-width: 620px; margin: 28px auto 10px; background: var(--rc); border: 1px solid var(--sbb-line); padding: 24px 26px; font-size: 13px; line-height: 1.5; color: var(--sbb-ink); }
#details_commande_container .sbb-rc::before, #details_commande_container .sbb-rc::after { content: ""; position: absolute; left: 0; right: 0; height: 10px; background: radial-gradient(circle at 6px 0, transparent 6px, var(--rc) 6.5px) 0 0 / 12px 10px repeat-x; }
#details_commande_container .sbb-rc::before { top: -10px; transform: rotate(180deg); }
#details_commande_container .sbb-rc::after { bottom: -10px; }
#details_commande_container .sbb-rc p { margin: 0; }
#details_commande_container .sbb-rc-title { font-family: var(--sbb-serif); font-size: 26px; font-weight: 600; line-height: 1.2; text-align: center; color: var(--sbb-ink); }
#details_commande_container .sbb-rc-box { text-align: center; color: var(--sbb-soft); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 12px !important; }
/* lignes à points de conduite */
#details_commande_container .sbb-ln { display: flex; gap: 6px; align-items: baseline; padding: 4px 0; }
#details_commande_container .sbb-ln-d { flex: 1 1 16px; min-width: 16px; border-bottom: 1px dotted #cdbb9c; transform: translateY(-4px); }
#details_commande_container .sbb-ln-v { flex: none; text-align: right; }
#details_commande_container .sbb-ln-v.is-strong { font-weight: 600; flex: 0 1 auto; }
#details_commande_container .sbb-ln-nm { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .01em; flex: 0 1 auto; }
#details_commande_container .sbb-ln.is-out .sbb-ln-nm { color: var(--sbb-mute, #9a8d7e); text-decoration: line-through; }
#details_commande_container .sbb-ln.is-sub .sbb-ln-nm { color: var(--sbb-gold); padding-left: 1.5em; }
#details_commande_container .sbb-rc-hr { border-top: 1px dashed #cdbb9c; margin: 10px 0; }
#details_commande_container .sbb-rc-info .sbb-ln-k { flex: none; }
/* montants : colonnes Qté / Forfait / Montant */
#details_commande_container .sbb-rc-qty { display: grid; grid-template-columns: 40px 1fr 90px; font-size: 12px; padding: 4px 0; }
#details_commande_container .sbb-rc-qty.is-head { font-size: 10px; font-weight: 700; letter-spacing: .1em; color: var(--sbb-mute, #9a8d7e); }
#details_commande_container .sbb-rc-qty span:last-child { text-align: right; }
#details_commande_container .sbb-rc-qty-box { font-size: 11px; color: var(--sbb-soft); }
#details_commande_container .sbb-rc-total { font-weight: 700; font-size: 16px; }
/* jour de cueillette : boutons radio, centrés sous le reçu */
#details_commande_container .sbb-rc-jour-h { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--sbb-soft); text-align: center; margin: 22px 0 10px; }
#details_commande_container .sbb-jours { position: relative; display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 22px; }
#details_commande_container .sbb-jours > div { position: static; display: flex; align-items: center; gap: 8px; }
#details_commande_container .sbb-jours input[type="radio"] { margin: 0; width: 16px; height: 16px; accent-color: var(--sbb-ink); cursor: pointer; }
/* le message « Ce champ est obligatoire. » est placé par jQuery dans le label[style] du 1er jour : centré sous la rangée */
#details_commande_container .sbb-jours label[style] { position: absolute !important; margin: 4px 0 0 !important; left: 0; right: 0; top: 100%; text-align: center; pointer-events: none; }
#details_commande_container .sbb-jours label[for^="point-livraison-jour-semaine-"]:not(.error) { margin: 0; font-size: 14px; font-weight: 600 !important; color: var(--sbb-ink) !important; text-transform: none; cursor: pointer; }
#details_commande_container .sbb-jours label.error { position: static !important; display: inline-block; margin: 0; color: var(--sbb-red) !important; font-size: 12px; font-weight: 500; white-space: nowrap; }
#details_commande_container .sbb-jours-box { text-align: center; font-size: 12px; color: var(--sbb-soft); margin: 14px 0 6px; }
#details_commande_container .sbb-rc-jour-h + .sbb-jours-box { margin-top: 0; }
#details_commande_container .sbb-jours + .sbb-jours-box { margin-top: 26px; }
#details_commande_container .sbb-rc-box:not(:first-of-type) { margin-top: 4px; }
#details_commande_container > hr { display: none; }
@media (max-width: 599px) {
  #details_commande_container .sbb-rc { padding: 20px 16px; }
  #details_commande_container .sbb-rc-qty { grid-template-columns: 30px 1fr 80px; }
}

/* ========================================================================== */
/* 18 · Session 6 — pages SiteOrigin : le contenu reste dans la colonne « Feuille posée » sur grand écran */
/* ========================================================================== */
/* Les rangées « pleine largeur » (carte et photos de Contact, Historique, Services, Menus…) s'étiraient sur tout l'écran et
   débordaient de la colonne de 1240 px (texte coupé par la limite colonne / marge au-delà d'environ 1600 px).
   La page est maintenant limitée à la colonne, et SiteOrigin étire ses rangées jusqu'à elle (filtre dans functions.php). */
@media (min-width: 1280px) {
  .sbb-col > .main.sbb-std, .sbb-col > .main.sbb-points { max-width: 1240px; margin-left: auto; margin-right: auto; }
}

/* ========================================================================== */
/* 19 · Session 6 — menu : 3e niveau (« Repas préparés » sous Services) */
/* ========================================================================== */
/* Sur ordinateur, seul le 2e niveau s'ouvrait au survol ; le 3e restait caché (opacity 0) → clic sans effet sur « Repas préparés »
   (élément sans lien : c'est un titre de groupe). Le 3e niveau s'affiche maintenant dans la même liste, en retrait sous son titre. */
@media (min-width: 1002px) {
  #header .nav-list .sub-menu .sub-menu { position: static !important; display: block !important; opacity: 1; visibility: inherit; transform: none; min-width: 0; margin: 0 0 4px !important; padding: 0 0 0 12px !important; border: 0; border-left: 2px solid var(--sbb-line); border-radius: 0; box-shadow: none !important; background: none !important; }
  #header .nav-list .sub-menu .sub-menu a { padding: 6px 0 !important; font-size: 12px !important; }
  #header .nav-list .sub-menu > li.menu-item-has-children > a:not([href]) { cursor: default; color: var(--sbb-ink) !important; }
}

/* ========================================================================== */
/* 20 · Session 6 — derniers restes de l'ancienne police « Arial, cursive » (contrôle mobile de toutes les pages) */
/* ========================================================================== */
.sbb-std h5, .sbb-std h6 { font-family: var(--sbb-sans) !important; font-weight: 600; letter-spacing: .01em; line-height: 1.35; }
body.error404 .main h1 { font-family: var(--sbb-serif) !important; font-weight: 600; }

/* § 21 — 2026-10 : « Continuer » de l'étape 1 inactif sans boîte choisie (le :disabled général affiche un curseur d'attente). */
#btn_to_etape_2:disabled { opacity: .45 !important; cursor: not-allowed !important; }
#btn_to_etape_2:disabled:hover { background: var(--sbb-gold) !important; }
