.configurator-shell{margin:30px var(--page) 55px;padding:20px;display:grid;grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr);gap:48px;background:#f2f0ec;border-radius:10px}.config-gallery{position:sticky;top:100px;align-self:start}.config-main-media{aspect-ratio:1/1.02;background:#fff;border-radius:7px;display:grid;place-items:center;overflow:hidden}.config-main-media img{width:100%;height:100%;object-fit:contain}.config-main-media>div{text-align:center;color:var(--muted)}.config-main-media small{display:block;margin-top:8px}.config-thumbs{display:flex;gap:10px;margin-top:12px}.config-thumbs button{width:72px;height:72px;padding:4px;border:1px solid transparent;background:#fff}.config-thumbs button.is-active{border-color:var(--forest)}.config-thumbs img{width:100%;height:100%;object-fit:cover}.gallery-note{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px;margin-top:14px}.config-panel{padding:22px 28px 20px 0}.config-panel h1{font-size:clamp(38px,4vw,58px)}.config-lead{color:var(--muted);font-size:16px;line-height:1.6}.config-price{padding:13px 0 20px;border-bottom:1px solid var(--line)}.config-price span,.config-price small{display:block;color:var(--muted);font-size:12px}.config-price strong{display:block;font:700 30px var(--serif);color:var(--forest);margin:4px 0}.config-step{border-bottom:1px solid var(--line)}.config-step summary{list-style:none;display:flex;gap:13px;padding:19px 0;cursor:pointer}.config-step summary>b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--forest);color:#fff;font-size:12px}.config-step summary>span{font-weight:800}.config-step summary small{display:block;font-weight:400;color:var(--muted);margin-top:3px}.step-content{padding:0 0 22px 40px}.variant-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.variant-grid label,.mount-options label,.option-choice-grid label{cursor:pointer}.variant-grid input,.mount-options input,.option-choice-grid input{position:absolute;opacity:0}.variant-grid label{display:flex;gap:9px;border:1px solid var(--line);padding:8px;background:#fff}.variant-grid label:has(input:checked),.mount-options label:has(input:checked)>span,.option-choice-grid label:has(input:checked)>span{border-color:var(--forest);box-shadow:inset 0 0 0 1px var(--forest)}.variant-grid i{width:38px;height:38px;background:var(--swatch);flex:none}.variant-grid span b,.variant-grid span small{display:block}.variant-grid span small{color:var(--muted);font-size:11px}.step-note{font-size:11px;color:var(--muted)}.mount-options,.option-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.mount-options label>span,.option-choice-grid label>span{display:grid;text-align:center;gap:3px;padding:13px 7px;border:1px solid var(--line);background:#fff}.mount-options i,.option-choice-grid i{font-style:normal;font-size:25px}.mount-options small,.option-choice-grid small{color:var(--muted);font-size:10px}.dimension-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:10px;margin-top:15px}.dimension-grid label{font-size:12px;font-weight:800}.dimension-grid label span{float:right;color:var(--muted)}.dimension-grid input{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid var(--line);background:#fff}.dimension-grid>b{padding-bottom:12px}.measure-help{display:inline-block;margin-top:10px;font-size:12px;text-decoration:underline}.config-total{padding-top:22px}.config-total>div{display:grid;grid-template-columns:1fr auto;gap:3px 20px;margin-bottom:16px}.config-total span{font-weight:800}.config-total strong{font:700 28px var(--serif);color:var(--forest)}.config-total small{grid-column:1/-1;color:var(--muted)}.config-total>a{display:block;text-align:center;font-weight:800;font-size:13px;margin-top:13px}.product-information{padding:70px var(--page);display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw}.product-information h2{font-size:clamp(38px,4.5vw,62px)}.product-copy>p{font-size:18px;line-height:1.75;color:var(--muted)}.spec-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:30px}.spec-grid>div{padding:18px 0;border-top:1px solid var(--line)}.spec-grid span,.spec-grid strong{display:block}.spec-grid span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.legal-note{font-size:12px!important;border-left:3px solid var(--gold);padding-left:15px}
.configurator-shell{width:calc(100% - 48px);max-width:1420px;margin:24px auto 45px;padding:16px;grid-template-columns:minmax(0,.92fr) minmax(430px,.78fr);gap:30px}.config-main-media{aspect-ratio:4/3;max-height:620px}.config-main-media img{object-fit:cover}.config-panel{padding:12px 18px 12px 0}.config-panel h1{font-size:clamp(34px,3.2vw,49px);margin-bottom:10px}.config-lead{font-size:14px;line-height:1.5}.config-price{padding:8px 0 13px}.config-price strong{font-size:25px}.config-step summary{padding:14px 0}.step-content{padding-bottom:15px}.mount-options label>span,.option-choice-grid label>span{padding:9px 6px}.mount-options i,.option-choice-grid i{font-size:20px}.dimension-grid input{padding:9px}.config-total{padding-top:15px}.config-total strong{font-size:24px}.gallery-note{margin-top:9px}.product-information{max-width:1420px;margin:auto;padding-top:55px}
.configurator-shell{border-radius:2px;background:#ebe3d8;border-top:3px solid var(--gold)}.config-main-media{position:relative;border-radius:2px}.config-main-media::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 58px,#ffffff10 58px 59px)}.config-main-media img{transition:transform .7s ease}.config-main-media:hover img{transform:scale(1.02)}.config-panel{background:#f8f5ef;padding:18px}.config-panel>.eyebrow{margin-bottom:7px}.config-price strong{color:var(--gold-dark)}.config-step summary>b{border-radius:2px;background:var(--gold);box-shadow:inset 3px 0 #ffffff4a}.config-step[open] summary>span{color:var(--forest)}.variant-grid label,.mount-options label>span,.option-choice-grid label>span{border-radius:2px;transition:border-color .2s,background .2s,transform .2s}.variant-grid label:hover,.mount-options label:hover>span,.option-choice-grid label:hover>span{transform:translateY(-1px);border-color:var(--sage)}.variant-grid label:has(input:checked),.mount-options label:has(input:checked)>span,.option-choice-grid label:has(input:checked)>span{border-color:var(--gold);box-shadow:inset 3px 0 0 var(--gold);background:#fffaf3}.dimension-grid input{border-radius:2px}.dimension-grid input:focus{outline:2px solid var(--sage);outline-offset:1px}.config-total{margin-top:5px;padding:15px;background:#fff;border-top:3px solid var(--forest)}.config-total strong{color:var(--gold-dark)}.product-information{padding-bottom:55px}.spec-grid>div{border-top-color:var(--gold)}
@media(max-width:960px){.configurator-shell{width:calc(100% - 32px);grid-template-columns:1fr}.config-gallery{position:static}.config-main-media{max-height:560px}.config-panel{padding:15px}.product-information{grid-template-columns:1fr}}
@media(max-width:600px){.configurator-shell{width:100%;margin:10px 0 30px;padding:10px;border-radius:0}.config-main-media{aspect-ratio:4/3;max-height:360px}.variant-grid,.mount-options,.option-choice-grid{grid-template-columns:1fr 1fr}.step-content{padding-left:0}.product-information{padding-top:40px}.spec-grid{grid-template-columns:1fr}.gallery-note{flex-direction:column;gap:4px}}

/* Fiche produit : choix guidés et confirmations visuelles. */
.gallery-note span{display:flex;align-items:center;gap:7px}
.gallery-note span::before{content:'✓';display:grid;place-items:center;width:17px;height:17px;flex:0 0 17px;background:var(--forest);color:#fff;font-size:9px}
.variant-grid label:has(input:focus-visible),.mount-options label:has(input:focus-visible)>span,.option-choice-grid label:has(input:focus-visible)>span{outline:3px solid var(--gold-dark);outline-offset:3px}
.config-step summary:focus-visible,.config-next:focus-visible,.config-total .button:focus-visible{outline:3px solid var(--gold-dark);outline-offset:3px}
.config-price{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 18px}
.config-price>span{align-self:end}
.config-price>strong{grid-row:1/3;grid-column:2;margin:0;white-space:nowrap}
.config-price>small{grid-column:1}
.config-step summary{position:relative;align-items:flex-start;padding-right:34px;transition:background .2s,padding-left .2s}
.config-step summary:hover{padding-left:6px;background:#ffffff75}
.config-step summary::after{content:'+';position:absolute;right:7px;top:15px;color:var(--gold-dark);font-size:20px;font-weight:400;line-height:1}
.config-step[open] summary::after{content:'−'}
.variant-grid label,.mount-options label>span,.option-choice-grid label>span{position:relative}
.variant-tools{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 12px}.variant-tools label{flex:1;font-size:12px;font-weight:800}.variant-tools label span{display:block;margin-bottom:5px}.variant-tools input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);background:#fff;font:inherit}.variant-tools input:focus{outline:2px solid var(--sage);outline-offset:1px}.variant-tools p{margin:0 0 11px;color:var(--muted);font-size:11px;white-space:nowrap}
.variant-tools+.variant-grid{max-height:390px;overflow-y:auto;overscroll-behavior:contain;padding:2px 6px 2px 2px;scrollbar-width:thin;scrollbar-color:var(--sage) #e7e1d8}
.variant-grid label:has(input:checked)::after,.mount-options label:has(input:checked)>span::after,.option-choice-grid label:has(input:checked)>span::after{content:'✓';position:absolute;top:6px;right:7px;display:grid;place-items:center;width:17px;height:17px;background:var(--gold);color:#fff;font-size:9px}
.config-total{box-shadow:0 12px 30px #123c3312}
.config-total .button{font-size:14px;letter-spacing:.01em}
.config-total>a{text-underline-offset:4px}
.config-total>a:hover{text-decoration:underline}
.config-tax-note{margin:0 0 13px;padding:9px 11px;border-left:3px solid var(--sage);background:var(--sage-light);color:var(--forest);font-size:11px;line-height:1.45}
.config-thumbs{max-width:100%;overflow-x:auto;padding:3px 2px 7px;scroll-snap-type:x proximity;scrollbar-width:thin}.config-thumbs button{flex:0 0 72px;scroll-snap-align:center;cursor:pointer}.config-thumbs button:focus-visible{outline:3px solid var(--gold-dark);outline-offset:2px}

@media(max-width:600px){.config-price{grid-template-columns:1fr}.config-price>strong{grid-row:auto;grid-column:auto;margin:3px 0}.config-price>small{grid-column:auto}.gallery-note span{font-size:10px}.config-step summary:hover{padding-left:0;background:transparent}}
@media(max-width:600px){.config-step summary{min-height:54px}.variant-grid label,.mount-options label>span,.option-choice-grid label>span{min-height:56px;align-content:center}.dimension-grid input{min-height:48px;font-size:16px}.measure-help,.config-total>a{display:inline-flex;min-height:44px;align-items:center}.config-next{min-height:44px;padding:10px 0}}
@media(max-width:600px){.variant-tools{display:block}.variant-tools p{margin:7px 0 0}.variant-tools+.variant-grid{max-height:330px;padding-right:3px}}
@media(max-width:800px){.product-page~.mobile-contact{transition:opacity .2s,transform .2s,visibility .2s}.product-page~.mobile-contact.is-context-hidden{visibility:hidden;opacity:0;transform:translateY(calc(100% + 30px));pointer-events:none}}
.product-promotion{display:grid;gap:3px;margin:14px 0;padding:12px 14px;border-left:4px solid #b3452d;background:#fff2ec}.product-promotion strong{color:#9a3624}.product-promotion span{font-size:12px;color:var(--muted)}
.product-promotion small{margin-top:4px;font-size:11px;font-weight:700;color:var(--forest)}.product-promotion.is-ending-soon{border-left-color:#d98b3e;background:#fff7e9}
.product-promotion small b{font:inherit}.product-promotion.is-expired{border-left-color:#777;background:#eee;opacity:.75}.product-promotion.is-expired>span{text-decoration:line-through}
.dimension-limits{margin:8px 0 0;color:var(--muted);font-size:11px}.dimension-grid input:user-invalid{border-color:#b3452d;background:#fff8f5}.dimension-grid input:user-valid{border-color:#7ca590;background:#fbfffc}
.config-next{display:block;margin:16px 0 0 auto;padding:9px 0;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--forest);font-weight:800;cursor:pointer}.config-next:hover{color:var(--gold-dark)}.config-step summary:focus-visible,.config-next:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.config-step.is-complete summary>b{background:var(--forest);box-shadow:inset 3px 0 #ffffff42}.config-step.is-complete summary small{color:#256548;font-weight:700}.config-step.is-complete summary>span::after{content:'\2713';display:inline-grid;place-items:center;width:17px;height:17px;margin-left:8px;border:1px solid #7ca590;border-radius:50%;color:#256548;font:800 10px/1 var(--sans);vertical-align:2px}.config-step[open].is-complete summary>span::after{opacity:.55}
.config-step.is-complete summary>span::after{box-sizing:border-box;padding:0 0 1px;font-family:Arial,sans-serif;font-size:10px;font-weight:800;line-height:1;text-indent:0;vertical-align:2px}
.variant-grid .fabric-preview{display:grid;place-items:center;width:38px;height:38px;flex:none;border:1px dashed #a89f91;background:repeating-linear-gradient(135deg,#f1eee8 0 4px,#e5e0d7 4px 8px);color:var(--muted);font-size:20px;font-style:normal}.variant-grid .fabric-preview.is-blackout{border-color:#54524e;background:repeating-linear-gradient(135deg,#77756f 0 4px,#65635e 4px 8px);color:#fff}
.secondary-fabric{display:block;margin-top:14px;padding:13px;border-left:3px solid var(--gold);background:#fff}.secondary-fabric>span{display:block;margin-bottom:7px;font-size:12px;font-weight:800}.secondary-fabric select{width:100%;min-height:44px;padding:10px;border:1px solid var(--line);background:#fff}.secondary-fabric small{display:block;margin-top:6px;color:var(--muted);font-size:11px}
.config-main-media video{width:100%;height:100%;background:#071b17;object-fit:contain}.config-thumbs button:has(.gallery-video-thumb){display:grid;grid-template-rows:1fr auto;place-items:center;background:var(--forest);color:#fff}.gallery-video-thumb{font-size:22px;line-height:1}.config-thumbs button>small{font-size:9px}.config-thumbs button.is-active:has(.gallery-video-thumb){border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}
.config-main-media [data-gallery-media][hidden]{display:none!important}
.configurator label,.configurator summary,.configurator button,.configurator select,.configurator input,.configurator textarea{font-size:14px}.configurator input,.configurator select,.configurator textarea{font-size:16px}.configurator small,.dimension-limits,.configuration-status{font-size:13px}.configurator p{font-size:15px}
.config-next-step{display:block;margin-top:9px;color:var(--muted);font-size:12px;line-height:1.45;text-align:center}
.configurator-shell{box-sizing:border-box}
.config-gallery,.config-panel{min-width:0}.config-thumbs{max-width:100%;overflow-x:auto;overflow-y:hidden}
/* Configurator text needed to make a purchase decision. */
.config-panel label,.config-panel legend,.config-panel button:not([aria-label]),.config-panel a{font-size:13px}
.config-panel input,.config-panel select,.config-panel textarea{font-size:16px}
.config-panel small,.config-panel .config-note,.config-panel .option-copy{font-size:12px}
.config-tax-note,.legal-note{font-size:13px}
.quick-preset-notice{display:grid;grid-template-columns:1fr auto;gap:4px 18px;margin:18px 0;padding:15px 17px;border-left:4px solid var(--gold);background:var(--sage-light);color:var(--forest)}
.quick-preset-notice strong{font:700 18px var(--serif)}
.quick-preset-notice span{grid-column:1;color:var(--muted);font-size:13px}
.quick-preset-notice button{grid-column:2;grid-row:1/3;border:0;background:transparent;color:var(--forest);font-size:13px;font-weight:900;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
@media(max-width:560px){.quick-preset-notice{grid-template-columns:1fr}.quick-preset-notice button{grid-column:1;grid-row:auto;padding:8px 0;text-align:left}}
@media(max-width:380px){
  .variant-grid{grid-template-columns:minmax(0,1fr)}
  .dimension-grid{grid-template-columns:minmax(0,1fr)}
  .dimension-grid>b{display:none}
  .config-panel{padding-inline:13px}
  .config-step summary>span{min-width:0;overflow-wrap:anywhere}
}
