/* Flyers pleine largeur — photos originales et gestion locale. */
.offers-section{padding:0 0 70px}
.offers-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:35px}
.offers-heading>p{max-width:370px;color:var(--muted);font-size:16px}
.offers-carousel{position:relative;width:100%;background:#f8f9f7}
.offers-viewport{overflow:hidden;width:100%}
.offers-track{display:flex;align-items:stretch;transition:transform .45s ease}
.offer-slide{position:relative;flex:0 0 100%;min-width:0;display:grid;align-items:center;min-height:0;padding:0;isolation:isolate}
.offer-media{position:relative;grid-area:1/1;width:100%;height:700px;z-index:-1;display:grid;overflow:hidden;background:#fff;gap:6px}
.offer-media-cell{min-width:0;min-height:0;overflow:hidden}
.offer-media img{width:100%;height:100%;min-height:0;min-width:0;object-fit:cover;object-position:var(--image-position-x,50%) var(--image-position-y,50%);transform:scale(var(--image-zoom,1));transform-origin:var(--image-position-x,50%) var(--image-position-y,50%)}
.offer-media[data-layout="mosaic"][data-count="2"]{grid-template-columns:1fr 1fr}
.offer-media[data-layout="mosaic"][data-count="3"]{grid-template-columns:1.3fr 1fr;grid-template-rows:1fr 1fr}
.offer-media[data-layout="mosaic"][data-count="3"]>.offer-media-cell:first-child{grid-row:1/3}
.offer-media[data-layout="mosaic"][data-count="4"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.offer-content{grid-area:1/1;width:min(490px,calc(100% - 48px));margin:24px 0;margin-left:calc(24px + (100% - 48px - min(490px,calc(100% - 48px))) * var(--text-position,0));padding:35px 38px;background:rgba(255,255,255,.96);border-top:3px solid var(--gold-light);box-shadow:0 12px 45px #151a1512;overflow-wrap:anywhere}
.offer-content .eyebrow{margin-bottom:15px;text-transform:uppercase}
.offer-content h3{font-size:clamp(32px,3.3vw,46px);line-height:1.13}
.offer-description{font-size:16px;line-height:1.75;color:var(--muted);margin-top:20px;white-space:pre-line}
.offer-prices{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-top:20px}
.offer-discount-only{font-family:var(--serif);font-size:clamp(30px,3vw,42px);line-height:1.15;color:var(--gold);font-weight:500}
.offer-prices strong{font-family:var(--serif);font-size:43px;font-weight:500;line-height:1.2;color:var(--gold)}
.offer-prices del{color:var(--muted);font-size:22px;text-decoration-thickness:1px}
.offer-discount-badge{align-self:center;border:1px solid var(--gold-light);padding:4px 9px;color:var(--gold);font-size:13px;font-weight:700;letter-spacing:.03em}
.offer-dates{font-size:14px;line-height:1.6;color:var(--ink);margin-top:12px}
.offer-example{font-size:13px;line-height:1.6;color:var(--muted);margin-top:13px}
.offer-content .button{margin-top:22px}
.offers-controls{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:3;display:flex;align-items:center;justify-content:center;gap:4px;padding:0;background:transparent;border:0;box-shadow:none;flex-wrap:nowrap}
.offers-arrow,.offers-pause{display:grid;place-items:center;background:transparent;border:0;border-radius:0;box-shadow:none;color:#fff;width:60px;height:60px;min-width:60px;min-height:60px;padding:12px;font-size:22px;line-height:1;opacity:.75;cursor:pointer;transition:opacity .2s ease}
.offers-controls svg{width:36px;height:36px;fill:currentColor;filter:drop-shadow(0 0 4px rgba(255,255,255,.65)) drop-shadow(0 1px 2px rgba(0,0,0,.45))}
.offers-arrow svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.offers-arrow:hover,.offers-pause:hover,.offers-arrow:focus-visible,.offers-pause:focus-visible{background:transparent;opacity:1}
.offers-arrow:focus-visible,.offers-pause:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.offers-dots{display:none}
.offers-dot{width:28px;height:40px;display:grid;place-items:center;border:0;background:transparent;padding:0}
.offers-dot::after{content:"";display:block;width:9px;height:9px;border-radius:50%;border:1px solid var(--gold);background:white;transition:background .2s}
.offers-dot[aria-current="true"]::after{background:var(--gold);width:11px;height:11px}
.offers-section button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.offers-controls button:disabled{opacity:.12}
.offers-management{padding-top:28px}
.offers-management-heading{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.offers-management-heading>span{font-size:15px;font-weight:600}
.offers-management-actions{display:flex;gap:12px;flex-wrap:wrap}
.offers-management-actions .button{font-size:14px;min-height:44px;padding:10px 18px}
#offers-storage-note{font-size:14px;color:var(--muted);margin-top:18px;max-width:900px;line-height:1.7}
.offers-status{font-size:15px;line-height:1.7;color:#775b25;margin-top:15px}
.offers-status:empty{display:none}
.offers-empty{flex:0 0 100%;padding:90px 25px;text-align:center;min-width:0;font-size:18px}
.offer-dialog{width:min(760px,calc(100% - 32px));max-height:90dvh;padding:0;border:1px solid #d4c393;color:var(--ink);background:#fff;overflow:auto;overscroll-behavior:contain}
.offer-dialog::backdrop{background:#1c201f99;backdrop-filter:blur(4px)}
.offer-form{padding:32px}
.offer-dialog-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:25px}
.offer-dialog h2{font-size:35px;line-height:1.2;letter-spacing:-.5px}
.offer-dialog .eyebrow{margin-bottom:10px}
.offer-close{min-width:44px;min-height:44px;border:1px solid var(--line);background:white;font-size:28px;color:var(--ink);line-height:1}
.offer-dialog .form-row{grid-template-columns:1fr 1fr}
.offer-content-toggle label{display:flex;align-items:center;gap:10px;font-size:16px;cursor:pointer}
.offer-content-toggle input[type="checkbox"]{width:20px;height:20px;min-height:20px;margin:0;accent-color:var(--gold)}
.offer-content-toggle .offer-form-help{margin-top:0}
.offer-discount-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.offer-dialog .field textarea{min-height:100px}
.offer-dialog .field input[type="file"]{background:#f8f9f7;padding:14px;font-size:14px}
.offer-form-help,#offer-photos-replacement-help{font-size:14px;line-height:1.7;color:var(--muted);margin-top:7px}
.offer-keyword-field{min-width:0;margin:0;padding:0;border:0}
.offer-keyword-field legend{margin-bottom:8px;font-size:15px;font-weight:600}
.offer-keyword-options{display:flex;flex-wrap:wrap;gap:8px;max-height:150px;overflow:auto;padding:2px}
.offer-keyword-option{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:6px 11px;border:1px solid var(--gold-light);border-radius:999px;background:#fff;color:var(--ink);font-size:14px;cursor:pointer}
.offer-keyword-option:has(input:checked){background:var(--gold);border-color:var(--gold);color:#fff}
.offer-keyword-option input{width:16px;height:16px;margin:0;accent-color:var(--gold)}
.offer-keyword-option:has(input:disabled){opacity:.55;cursor:not-allowed}
.offer-photo-preview{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
.offer-photo-preview>*{width:calc(25% - 9px);min-width:110px;margin:0}
.offer-photo-preview img{width:100%;height:100px;object-fit:cover;border:1px solid var(--line)}
.offer-photo-preview button{font-size:13px;line-height:1.5;background:white;border:1px solid var(--line);padding:7px;width:100%;margin-top:5px}
.offer-form-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:25px}
.offer-position-field input[type="range"]{padding:0;min-height:44px;accent-color:var(--gold);cursor:ew-resize;border:0;background:transparent}
.offer-position-labels{display:flex;justify-content:space-between;font-size:14px;color:var(--muted)}
.offer-position-preview{padding:16px;background-color:#e6e8e2;background-size:cover;background-position:center;border:1px solid var(--line);border-radius:2px}
.offer-position-preview>span{display:block;width:38%;margin-left:calc(12px + (62% - 24px) * var(--text-position,0));padding:25px 8px;background:rgba(255,255,255,.94);border-top:2px solid var(--gold-light);text-align:center;font-size:13px;color:var(--ink)}
.offer-crop-field{margin:20px 0 0;padding:18px;border:1px solid var(--line);min-width:0}
.offer-crop-field legend{padding:0 8px;font-size:16px;font-weight:600}
.offer-crop-field .button{font-size:14px;min-height:44px;padding:10px 15px}
.offer-crop-previews{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.offer-crop-previews>div{min-width:0}
.offer-crop-previews p{font-size:13px;margin-bottom:6px;color:var(--muted)}
.offer-crop-preview{display:grid;width:100%;aspect-ratio:1440/700;overflow:hidden;background:#f4f4f4;gap:3px;font-size:13px;color:var(--muted)}
.offer-crop-preview-mobile{aspect-ratio:16/9}
.offer-crop-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.offer-crop-preview{touch-action:none;cursor:grab;user-select:none}
.offer-crop-preview:active{cursor:grabbing}
.offer-crop-preview:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.offer-crop-cell{min-width:0;min-height:0;overflow:hidden}
.offer-crop-cell img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;user-select:none;-webkit-user-drag:none}
.offer-crop-preview[data-layout="mosaic"][data-count="2"]{grid-template-columns:1fr 1fr}
.offer-crop-preview[data-layout="mosaic"][data-count="3"]{grid-template-columns:1.3fr 1fr;grid-template-rows:1fr 1fr}
.offer-crop-preview[data-layout="mosaic"][data-count="3"]>.offer-crop-cell:first-child{grid-row:1/3}
.offer-crop-preview[data-layout="mosaic"][data-count="4"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.offer-delete-dialog{max-width:530px}
.offer-delete-dialog p:not(.eyebrow){font-size:16px;margin-top:18px;overflow-wrap:anywhere}
.offer-image-error{font-size:16px;color:var(--ink);padding:15px;background:#e6e8e2}
@media(max-width:700px){
  .offers-section{padding-block:0 45px}
  .offers-heading{display:block;margin-bottom:25px}
  .offers-heading>p{margin-top:20px}
  .offer-slide{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:0 16px 60px}
  .offer-media{position:relative;inset:auto;z-index:0;flex:none;width:calc(100% + 32px);height:auto;aspect-ratio:16/9;margin:0 -16px;background:#fff}
  .offer-media>img{object-fit:cover}
  .offer-content{width:100%;margin:0;padding:22px 20px;background:rgba(255,255,255,.98);border-top-width:2px;box-shadow:0 8px 26px #151a1512}
  .offer-content h3{font-size:clamp(25px,7vw,30px);line-height:1.16}
  .offer-description{font-size:15px;line-height:1.6;margin-top:14px}
  .offer-prices{gap:12px;margin-top:15px}
  .offer-prices strong{font-size:32px}
  .offer-prices del{font-size:18px}
  .offer-content .button{margin-top:14px;min-height:44px;padding:9px 14px}
  .offers-dots{flex:0 1 auto;max-width:none;gap:0}
  .offers-dot{width:20px;height:38px}
  .offer-form{padding:23px 20px}
  .offer-dialog .form-row{grid-template-columns:1fr;gap:0}
  .offer-discount-fields{grid-template-columns:1fr;gap:0}
  .offer-dialog h2{font-size:30px}
  .offer-form-actions .button{width:100%}
  .offer-photo-preview>*{width:calc(50% - 6px);min-width:0}
  .offer-crop-previews{grid-template-columns:1fr}
}
@media(max-width:700px) and (orientation:portrait){
  .offer-slide{padding-inline:12px}
  .offer-media{width:calc(100% + 24px);margin-inline:-12px;aspect-ratio:16/9}
  .offer-media>img{object-fit:cover}
  .offer-content{padding:16px 17px}
  .offer-content .eyebrow{margin-bottom:8px}
  .offer-content h3{font-size:clamp(23px,6vw,26px);line-height:1.12}
  .offer-description{font-size:14px;line-height:1.45;margin-top:10px}
  .offer-prices{margin-top:10px}
  .offer-prices strong{font-size:29px}
  .offer-prices del{font-size:17px}
  .offer-dates{font-size:13px;line-height:1.45;margin-top:8px}
  .offer-example{font-size:12px;line-height:1.4;margin-top:8px}
  .offer-content .button{margin-top:10px;min-height:40px;padding:8px 12px}
}
@media(min-width:701px) and (max-width:1000px){
  .offer-slide{display:flex;flex-direction:column;padding:0 24px 60px}
  .offer-media{width:calc(100% + 48px);height:auto;aspect-ratio:16/9;margin:0 -24px;z-index:0}
  .offer-content{width:100%;margin:0;padding:24px}
}
@media(prefers-reduced-motion:reduce){.offers-track,.offers-dot::after{transition:none!important}}