.location-hero{
    position:relative;
    min-height:260px;
    color:#fff;
    overflow:hidden;
    background:#173c63;
}
.location-hero img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.location-hero::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(90deg, rgba(18,54,92,.88), rgba(18,54,92,.66), rgba(18,54,92,.25));
}
.location-hero-inner{
    position:relative; z-index:2; max-width:1200px; margin:0 auto; padding:70px 20px;
}
.location-shell{ background:#fff; }
.loc-sticky-bar{
    position:sticky; top:20px; z-index:40; background:#fff; border-bottom:1px solid #e5e7eb;
    box-shadow:0 4px 20px rgba(0,0,0,.04);
}
.loc-wrap{ max-width:1200px; margin:0 auto; padding:0 20px; }
.loc-sticky-bar-inner{
    display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px 0;
}
.loc-main-section{ padding:48px 0 64px; }
.loc-steps{
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:42px;
}
.loc-step{
    background:#fff; border:1px solid #e5e7eb; border-top:4px solid #2E5C8A; border-radius:10px; padding:24px;
}
.loc-step-num{ font-size:42px; line-height:1; font-weight:800; color:#7B2D26; margin-bottom:12px; }
.loc-content-grid{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:32px; align-items:start; }
.loc-search-box,.loc-side-card,.loc-benefits{
    border:1px solid #e5e7eb; border-radius:12px; background:#fff;
}
.loc-search-box{ padding:24px; margin-bottom:24px; }
.loc-search-row{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; margin-bottom:18px; }
.loc-search-input{
    width:100%; border:1px solid #d1d5db; border-radius:10px; padding:12px 14px; font-size:14px;
}
.loc-btn{
    display:inline-flex; align-items:center; justify-content:center; border:none; border-radius:999px;
    padding:12px 20px; font-weight:700; text-decoration:none; cursor:pointer;
}
.loc-btn-primary{ background:#7B2D26; color:#fff; }
.loc-btn-primary:hover{ background:#64231d; color:#fff; }
.loc-btn-secondary{ background:#2E5C8A; color:#fff; }
.loc-btn-secondary:hover{ background:#254a6f; color:#fff; }
.loc-btn-light{ background:#f3f4f6; color:#374151; border:1px solid #d1d5db; }
.loc-filter-list{ display:flex; flex-wrap:wrap; gap:10px; }
.loc-filter-pill{
    display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px;
    border:1px solid #d1d5db; background:#f9fafb; color:#374151; font-weight:600; text-decoration:none;
}
.loc-filter-pill.active{ background:#2E5C8A; color:#fff; border-color:#2E5C8A; }
.loc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.loc-card{
    border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column;
    height:100%; box-shadow:0 6px 20px rgba(0,0,0,.04);
}
.loc-thumb-wrap{ position:relative; aspect-ratio:4/3; background:#f3f4f6; }
.loc-thumb{ width:100%; height:100%; object-fit:cover; display:block; }
.loc-badge{
    position:absolute; top:12px; left:12px; background:#dc3545; color:#fff; padding:6px 10px; border-radius:999px;
    font-size:12px; font-weight:700;
}
.loc-card-body{ padding:18px; display:flex; flex-direction:column; flex-grow:1; }
.loc-card-cat{ font-size:12px; color:#6b7280; margin-bottom:8px; }
.loc-card-title{
    background:none; border:none; padding:0; margin:0 0 10px; font-size:18px; line-height:1.3; font-weight:700; text-align:left;
    color:#173c63;
}
.loc-card-desc{ font-size:14px; color:#4b5563; line-height:1.5; margin-bottom:14px; min-height:63px; }
.loc-qty-row{ display:flex; gap:10px; align-items:end; margin-bottom:14px; }
.loc-qty-label{ display:block; font-size:13px; font-weight:700; color:#111827; margin-bottom:5px; }
.loc-qty-input{
    width:95px; box-sizing:border-box; border:1px solid #d1d5db; border-radius:10px; padding:10px 12px; font-size:14px;
    height:42px;
}
.loc-qty-input[readonly]{
    background:#f9fafb; cursor:default;
    -moz-appearance:textfield;
    appearance:textfield;
}
.loc-qty-input[readonly]::-webkit-outer-spin-button,
.loc-qty-input[readonly]::-webkit-inner-spin-button{
    -webkit-appearance:none;
    margin:0;
}
.loc-qty-hint{ font-size:11px; color:#6b7280; margin-top:4px; min-height:16px; }
.loc-card-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.loc-checkline{ display:flex; align-items:center; gap:8px; font-size:13px; color:#111827; }
.loc-card-footer{
    margin-top:auto; border-top:1px solid #f1f5f9; background:#fafafa; padding:15px 18px; font-size:13px;
}
.loc-price{ font-size:18px; font-weight:800; color:#111827; line-height:1.2; }
.loc-caution{ color:#6b7280; margin-top:4px; }
.loc-subtotals{ margin-top:12px; display:grid; gap:6px; }
.loc-subtotals div{ display:flex; justify-content:space-between; gap:10px; }
.loc-side-card{ position:sticky; top:110px; padding:22px; }
.loc-side-big{ font-size:42px; line-height:1; font-weight:800; color:#7B2D26; margin-bottom:18px; }
.loc-side-sep{ border-top:1px solid #e5e7eb; margin:18px 0; }
.loc-side-items{ max-height:220px; overflow:auto; font-size:12px; color:#374151; }
.loc-side-item{ display:flex; justify-content:space-between; gap:8px; padding:8px 0; border-bottom:1px dashed #e5e7eb; }
.loc-pagination{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-top:28px; }
.loc-page{
    min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px;
    border:1px solid #d1d5db; text-decoration:none; color:#111827; background:#fff; font-weight:600;
}
.loc-page.active{ background:#2E5C8A; border-color:#2E5C8A; color:#fff; }
.loc-page.disabled{ opacity:.45; pointer-events:none; }
.loc-benefits{
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:28px; margin-top:44px; background:#f8fafc;
}
.loc-benefit{ text-align:center; }
.loc-empty{ border:1px dashed #d1d5db; border-radius:12px; padding:28px; color:#6b7280; background:#fafafa; }
.loc-hidden-submit{ display:none; }
.modal-lg { max-width:800px; }
.loc-modal-top { display:flex; flex-wrap:wrap; gap:1rem; }
.loc-modal-left { flex:1 1 260px; max-width:360px; }
.loc-modal-right { flex:1 1 280px; min-width:260px; }
.loc-modal-mainimg-wrap { position:relative; border:1px solid #ddd; overflow:hidden; border-radius:.75rem; background:#fff; }
.loc-modal-mainimg { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; background:#f2f2f2; }
.loc-modal-thumb-row { display:flex; gap:.5rem; margin-top:.75rem; flex-wrap:wrap; }
.loc-modal-thumb-btn { border:1px solid #ddd; padding:0; background:#fff; border-radius:.5rem; overflow:hidden; width:72px; height:72px; cursor:pointer; }
.loc-modal-thumb-btn.active { border-color:#111; box-shadow:0 0 0 2px rgba(0,0,0,.08) inset; }
.loc-modal-thumb { width:100%; height:100%; object-fit:cover; display:block; }
.badge-promo-modal { position:absolute; top:.75rem; left:.75rem; background:#dc3545; color:#fff; padding:.35rem .55rem; font-size:.75rem; line-height:1; border-radius:999px; font-weight:700; }
.loc-modal-meta,.loc-modal-long{ font-size:.92rem; line-height:1.55; color:#444; }
.loc-modal-meta{ margin-bottom:.75rem; }
.loc-modal-long{ margin-bottom:1rem; }
.loc-modal-prix{ font-size:1.15rem; font-weight:800; margin-bottom:.35rem; }
.loc-modal-caution{ font-size:.9rem; color:#666; margin-bottom:.75rem; }
.loc-modal-reduc { display:inline-flex; align-items:center; gap:.35rem; background:#fff3cd; color:#664d03; border:1px solid #ffecb5; border-radius:999px; padding:.35rem .65rem; font-size:.8rem; font-weight:700; margin-bottom:.9rem; }
.loc-modal-qtyblock { margin-top:.5rem; }
.loc-modal-stock-hint { font-size:.75rem; color:#666; margin-top:.25rem; }
.loc-modal-cta-row { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1rem; }
@media (max-width: 1100px){
    .loc-content-grid{ grid-template-columns:1fr; }
    .loc-side-card{ position:static; }
}
@media (max-width: 900px){
    .loc-grid, .loc-steps, .loc-benefits{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px){
    .location-hero-inner{ padding:52px 20px; }
    .loc-grid, .loc-steps, .loc-benefits{ grid-template-columns:1fr; }
    .loc-search-row, .loc-sticky-bar-inner{ grid-template-columns:1fr; display:grid; }
}

.dem-hero{
    position:relative;
    min-height:240px;
    color:#fff;
    overflow:hidden;
    background:#173c63;
}
.dem-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.dem-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(18,54,92,.9), rgba(18,54,92,.68), rgba(18,54,92,.28));}
.dem-hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding:64px 20px;}
.dem-shell{background:#fff;}
.dem-wrap{max-width:1200px;margin:0 auto;padding:0 20px;}
.dem-main{padding:42px 0 64px;}
.dem-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start;}
.dem-card,.dem-side-card,.dem-success,.dem-alert{
    background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.04);
}
.dem-card{padding:24px;margin-bottom:24px;}
.dem-card h2{font-size:1.25rem;line-height:1.25;margin:0 0 18px;font-weight:800;color:#173c63;}
.dem-muted{font-size:.9rem;color:#6b7280;line-height:1.5;}
.dem-kicker{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#eef4fb;color:#2E5C8A;font-weight:700;font-size:.82rem;margin-bottom:16px;}
.dem-side-card{padding:22px;position:sticky;top:110px;}
.dem-side-big{font-size:2.4rem;line-height:1;font-weight:800;color:#7B2D26;margin-bottom:8px;}
.dem-side-line{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed #e5e7eb;font-size:.92rem;}
.dem-side-total{margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb;display:grid;gap:8px;}
.dem-side-total .label{color:#6b7280;}
.dem-side-total .value{font-weight:800;color:#7B2D26;}
.dem-table-wrap{overflow:auto;border:1px solid #eef2f7;border-radius:12px;}
.table-demande{width:100%;border-collapse:separate;border-spacing:0;margin:0;}
.table-demande th{background:#f8fafc;font-size:.8rem;font-weight:800;color:#173c63;padding:14px 12px;border-bottom:1px solid #e5e7eb;white-space:nowrap;}
.table-demande td{font-size:.92rem;padding:14px 12px;border-bottom:1px solid #eef2f7;vertical-align:middle;}
.table-demande tbody tr:last-child td{border-bottom:none;}
.table-demande .article-name{font-weight:700;color:#111827;}
.table-demande .article-stock{margin-top:.35rem;font-size:.78rem;color:#6b7280;}
.table-demande .money-weak{color:#6b7280;}
.dem-qty{
    width:96px;box-sizing:border-box;border:1px solid #d1d5db;border-radius:10px;padding:10px 12px;height:42px;
    font-size:14px;background:#fff;
}
.dem-qty[readonly]{
    background:#f9fafb;
    cursor:default;
}
.dem-qty[readonly]::-webkit-outer-spin-button,
.dem-qty[readonly]::-webkit-inner-spin-button{
    -webkit-appearance:none;
    margin:0;
}
.dem-qty[readonly]{
    -moz-appearance:textfield;
    appearance:textfield;
}
.dem-qty:focus,.dem-input:focus,.dem-textarea:focus{outline:none;border-color:#2E5C8A;box-shadow:0 0 0 3px rgba(46,92,138,.12);}
.dem-total-box{margin-top:18px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:18px;}
.dem-total-line{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;}
.dem-total-line:last-child{margin-bottom:0;}
.dem-total-big{font-size:1.02rem;font-weight:800;color:#7B2D26;}
.dem-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.dem-field-full{grid-column:1 / -1;}
.dem-label{display:block;font-size:.9rem;font-weight:700;color:#111827;margin-bottom:7px;}
.dem-input,.dem-textarea{
    width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:10px;padding:12px 14px;font-size:.95rem;background:#fff;
}
.dem-textarea{min-height:120px;resize:vertical;}
.dem-help{font-size:.8rem;color:#6b7280;line-height:1.45;margin-top:6px;}
.dem-actions{text-align:center;margin:12px 0 0;}
.dem-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;border:none;border-radius:999px;padding:14px 28px;
    font-weight:800;text-decoration:none;cursor:pointer;
}
.dem-btn-primary{background:#7B2D26;color:#fff;}
.dem-btn-primary:hover{background:#64231d;color:#fff;}
.dem-btn-light{background:#f3f4f6;color:#374151;border:1px solid #d1d5db;}
.dem-success{padding:26px;text-align:center;border-color:#b7e4c7;background:#eefaf2;}
.dem-success-title{font-size:1.4rem;font-weight:800;color:#145c32;margin:0 0 10px;}
.dem-success-text{font-size:1rem;color:#145c32;line-height:1.6;margin:0;}
.dem-alert{padding:20px;border-color:#fecaca;background:#fff5f5;}
.dem-alert h2{color:#b42318;margin:0 0 10px;font-size:1.15rem;}
.dem-alert ul{margin:0;padding-left:18px;color:#b42318;font-size:.92rem;}
.dem-empty{text-align:center;padding:34px;border:1px dashed #d1d5db;border-radius:14px;background:#fafafa;color:#6b7280;}
@media (max-width: 1050px){
    .dem-grid{grid-template-columns:1fr;}
    .dem-side-card{position:static;}
}
@media (max-width: 700px){
    .dem-hero-inner{padding:52px 20px;}
    .dem-fields{grid-template-columns:1fr;}
    .table-demande th,.table-demande td{padding:12px 10px;}
}