*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f3efe7;color:#1f1d1a;font-family:"DM Sans",sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:20px 4vw;background:rgba(243,239,231,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(31,29,26,.12)}.brand{font-weight:700;letter-spacing:.15em;font-size:.95rem}.site-header nav{display:flex;gap:28px;font-size:.92rem}.site-header nav a:hover{opacity:.55}.cart-button{border:1px solid #1f1d1a;background:transparent;padding:10px 14px;cursor:pointer}.cart-button span{display:inline-flex;align-items:center;justify-content:center;margin-left:7px;background:#1f1d1a;color:#fff;border-radius:50%;width:22px;height:22px;font-size:.75rem}.hero{min-height:78vh;display:grid;grid-template-columns:1.05fr .95fr;padding:7vw 7vw 6vw;align-items:center;gap:5vw}.eyebrow{font-size:.73rem;font-weight:700;letter-spacing:.18em;margin-bottom:24px}.hero h1,.section h2,.about h2,.contact h2{font-family:"Playfair Display",serif;font-weight:600;line-height:1.02;margin:0}.hero h1{font-size:clamp(3.2rem,6vw,6.5rem)}.hero-text{max-width:560px;font-size:1.08rem;line-height:1.7;margin:30px 0}.button{display:inline-block;border:0;padding:14px 22px;cursor:pointer;font-weight:600}.primary{background:#1f1d1a;color:#fff}.primary:hover{opacity:.82}.hero-art{height:560px;position:relative;overflow:hidden;background:#d6c7af}.art-shape{position:absolute;border-radius:50%}.one{width:420px;height:420px;background:#b88f68;right:-70px;top:40px}.two{width:300px;height:300px;background:#6c7568;left:-60px;bottom:-40px}.art-card{position:absolute;right:40px;bottom:40px;width:260px;padding:28px;background:#f3efe7;display:grid;gap:8px}.art-card span{font-size:.75rem;opacity:.55}.art-card strong{font-family:"Playfair Display",serif;font-size:1.55rem}.art-card small{line-height:1.5}.intro-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(31,29,26,.2);border-bottom:1px solid rgba(31,29,26,.2)}.intro-strip span{text-align:center;padding:18px;border-right:1px solid rgba(31,29,26,.2);font-size:.85rem;font-weight:700;font-style:italic;letter-spacing:.01em}.intro-strip span:last-child{border-right:0}.section{padding:8vw 7vw}.section-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:6vw;margin-bottom:50px}.section-heading h2,.about h2,.contact h2{font-size:clamp(2.4rem,4.2vw,4.8rem)}.section-heading>p{max-width:520px;line-height:1.7;margin:0 0 8px}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.product-card{background:#fff;border:1px solid rgba(31,29,26,.08);transition:transform .2s ease}.product-card:hover{transform:translateY(-4px)}.product-image{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden}.product-image span{font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;background:rgba(255,255,255,.65);padding:8px 11px}.img1{background:linear-gradient(135deg,#c8b39a,#7e735f)}.img2{background:linear-gradient(135deg,#9ca59a,#d5c6b4)}.img3{background:linear-gradient(135deg,#c89f7a,#ead8c5)}.img4{background:linear-gradient(135deg,#7c6f62,#b7a18a)}.img5{background:linear-gradient(135deg,#b5b59a,#687063)}.img6{background:linear-gradient(135deg,#d5b7a2,#91725e)}.product-info{padding:22px;display:flex;flex-direction:column;justify-content:space-between;min-height:190px}.product-info h3{font-family:"Playfair Display",serif;font-size:1.5rem;margin:0 0 8px}.product-info p{font-size:.9rem;line-height:1.55;opacity:.72}.product-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.product-bottom strong{font-size:1.1rem}.add-to-cart{border:1px solid #1f1d1a;background:transparent;padding:8px 13px;cursor:pointer}.add-to-cart:hover{background:#1f1d1a;color:#fff}.about{display:grid;grid-template-columns:.25fr 1fr 1fr;gap:5vw;padding:8vw 7vw;background:#1f1d1a;color:#f3efe7}.about-number{font-size:.8rem;opacity:.6}.about-copy{align-self:end;max-width:520px}.about-copy p{line-height:1.75;opacity:.82}.contact{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.contact>div>p:last-child{line-height:1.7;max-width:500px}.contact-form{display:grid;gap:12px}.contact-form input,.contact-form textarea{width:100%;padding:16px 2px;border:0;border-bottom:1px solid rgba(31,29,26,.35);background:transparent;outline:none}.contact-form textarea{resize:vertical}.contact-form .button{justify-self:start;margin-top:12px}.cart-drawer{position:fixed;z-index:40;right:0;top:0;height:100%;width:min(430px,92vw);background:#f8f6f1;transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column;padding:26px}.cart-drawer.open{transform:translateX(0)}.cart-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd;padding-bottom:18px}.cart-header h2{font-family:"Playfair Display",serif;margin:0}.cart-header button{border:0;background:transparent;font-size:2rem;cursor:pointer}.cart-items{flex:1;overflow:auto;padding:15px 0}.cart-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:16px 0;border-bottom:1px solid #ddd}.cart-item p{margin:0}.cart-item small{opacity:.65}.remove-item{border:0;background:transparent;cursor:pointer;text-decoration:underline;font-size:.8rem}.empty-cart{opacity:.55}.cart-footer{border-top:1px solid #ddd;padding-top:18px}.cart-total{display:flex;justify-content:space-between;margin-bottom:18px}.checkout{width:100%}.cart-footer small{display:block;margin-top:12px;line-height:1.4;opacity:.6}.overlay{position:fixed;z-index:30;inset:0;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .25s}.overlay.show{opacity:1;pointer-events:auto}footer{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:30px 4vw;border-top:1px solid rgba(31,29,26,.2);font-size:.82rem}footer p:nth-child(2){text-align:center}footer p:last-child{text-align:right}@media(max-width:900px){.site-header nav{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding-top:12vw}.hero-art{height:420px}.intro-strip{grid-template-columns:repeat(2,1fr)}.intro-strip span:nth-child(2){border-right:0}.intro-strip span:nth-child(-n+2){border-bottom:1px solid rgba(31,29,26,.2)}.section-heading,.contact{grid-template-columns:1fr}.product-grid{grid-template-columns:repeat(2,1fr)}.about{grid-template-columns:1fr}.about-number{display:none}footer{grid-template-columns:1fr;gap:10px;text-align:center!important}footer p{margin:0!important;text-align:center!important}}@media(max-width:600px){.site-header{padding:16px 20px}.hero,.section,.about{padding-left:20px;padding-right:20px}.hero h1{font-size:3rem}.hero-art{height:340px}.art-card{right:18px;bottom:18px;width:220px}.product-grid{grid-template-columns:1fr}.intro-strip{font-size:.75rem}.section{padding-top:75px;padding-bottom:75px}}

.category-card{cursor:pointer}
.category-info{padding:18px 22px}
.category-info h3{font-family:"Playfair Display",serif;font-size:1.45rem;margin:0}
.category-card .product-image span{font-size:.9rem;font-weight:700;background:rgba(255,255,255,.78);padding:10px 14px}

.category-price{margin:7px 0 0;font-size:.85rem;font-weight:600;opacity:.62}


/* --- Configurateur de plaques --- */
.configurator{background:#ebe4d8;border-top:1px solid rgba(31,29,26,.14);border-bottom:1px solid rgba(31,29,26,.14)}
.configurator[hidden]{display:none}
.configurator-back{border:0;background:transparent;padding:0 0 28px;cursor:pointer;font-weight:600;color:#1f1d1a;opacity:.65}
.configurator-back:hover{opacity:1}
.configurator-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:7vw;align-items:start}
.plaque-preview-wrap{position:sticky;top:115px}
.live-plaque{width:min(100%,620px);aspect-ratio:1.58;margin-top:16px;padding:30px 34px;background:linear-gradient(115deg,#efefeb 0%,#babcb7 45%,#e8e8e4 72%,#c3c4c0 100%);border:1px solid rgba(31,29,26,.22);box-shadow:0 28px 55px rgba(31,29,26,.18);color:#151714;display:flex;flex-direction:column;justify-content:space-between}
.live-plaque-top{display:flex;justify-content:space-between;gap:20px;font-size:.65rem;font-weight:700;letter-spacing:.15em}
.live-plaque-art{height:42%;display:flex;align-items:end}
.live-plaque-art svg{width:100%;height:100%}
.live-plaque>strong{font-family:"Playfair Display",serif;font-size:clamp(1.75rem,3.3vw,3.5rem);line-height:.95;text-transform:uppercase}
.live-plaque-data{display:flex;gap:18px;flex-wrap:wrap;padding-top:12px;border-top:1px solid rgba(31,29,26,.28);font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.product-reassurance{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:28px;border:1px solid rgba(31,29,26,.16)}
.product-reassurance span{padding:13px 15px;font-size:.78rem;text-align:center;border-right:1px solid rgba(31,29,26,.14);border-bottom:1px solid rgba(31,29,26,.14)}
.product-reassurance span:nth-child(2n){border-right:0}
.product-reassurance span:nth-child(n+3){border-bottom:0}
.configurator-panel{background:#f8f6f1;padding:38px}
.configurator-panel h2{font-family:"Playfair Display",serif;font-size:clamp(2.6rem,4vw,4.6rem);line-height:1;margin:0}
.configurator-intro{line-height:1.65;opacity:.66;margin:18px 0 30px}
.dynamic-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}
.field-group{display:grid;gap:8px}
.field-group.full{grid-column:1/-1}
.field-group label{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.field-group input,.field-group select,.field-group textarea{width:100%;border:1px solid rgba(31,29,26,.22);background:#fff;padding:13px 14px;outline:none}
.field-group input:focus,.field-group select:focus,.field-group textarea:focus{border-color:#1f1d1a}.field-group textarea{resize:vertical;min-height:92px}
.field-hint{font-size:.7rem;opacity:.55}
.configurator-price-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:34px;padding-top:25px;border-top:1px solid rgba(31,29,26,.2)}
.configurator-price-row>div{display:grid;gap:4px}
.configurator-price-row span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;opacity:.58}
.configurator-price-row strong{font-size:1.2rem}
.category-card.active{outline:2px solid #1f1d1a;outline-offset:3px}
@media(max-width:900px){.configurator-grid{grid-template-columns:1fr}.plaque-preview-wrap{position:static}.configurator-panel{padding:30px}.dynamic-fields{grid-template-columns:1fr}.field-group.full{grid-column:auto}}
@media(max-width:600px){.configurator{padding-left:20px;padding-right:20px}.live-plaque{padding:22px 20px}.live-plaque-top{font-size:.52rem}.live-plaque-data{font-size:.58rem}.product-reassurance{grid-template-columns:1fr 1fr}.configurator-panel{padding:24px 18px}.configurator-price-row{align-items:stretch;flex-direction:column}.configurator-price-row .button{width:100%;text-align:center}}


.field-group input[type="file"]{padding:10px;background:#fff}
.field-group input[type="file"]::file-selector-button{border:1px solid rgba(31,29,26,.25);background:#f3efe7;padding:9px 12px;margin-right:12px;cursor:pointer;font-weight:600}


.size-selector-block{display:grid;gap:8px;margin-bottom:26px;padding:18px;border:1px solid rgba(31,29,26,.16);background:#fff}
.size-selector-block label{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.size-selector-block select{width:100%;border:1px solid rgba(31,29,26,.22);background:#fff;padding:13px 14px;outline:none}
.size-selector-block select:focus{border-color:#1f1d1a}



.info-counter{margin:2px 0 0;font-size:.78rem;font-weight:600;opacity:.68}
.info-counter.warning{color:#8a2d20;opacity:1}
.fields-heading{display:grid;gap:4px;margin:0 0 16px}
.fields-heading strong{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.fields-heading span{font-size:.75rem;line-height:1.45;opacity:.58}
.configurator-price-row .button:disabled{opacity:.38;cursor:not-allowed}


.field-group.field-disabled{opacity:.42}
.field-group.field-disabled input,
.field-group.field-disabled select{background:#e7e3dc;cursor:not-allowed}
.field-group.field-disabled label{cursor:not-allowed}


.packaging-selector-block{display:grid;gap:8px;margin:0 0 28px}
.packaging-selector-block>label{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.packaging-selector-block select{width:100%;border:1px solid rgba(31,29,26,.22);background:#fff;padding:13px 14px;outline:none}
.packaging-selector-block select:focus{border-color:#1f1d1a}



.compare-link{justify-self:start;border:0;background:transparent;padding:0;color:#1f1d1a;font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.compare-link:hover{opacity:.6}
.compare-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:22px}
.compare-modal.open{display:flex}
.compare-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.compare-modal-dialog{position:relative;z-index:1;width:min(720px,94vw);max-height:90vh;overflow:auto;background:#f8f6f1;padding:34px;box-shadow:0 28px 80px rgba(0,0,0,.25)}
.compare-modal-close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:2rem;line-height:1;cursor:pointer}
.compare-modal-dialog h2{font-family:"Playfair Display",serif;font-size:clamp(2rem,4vw,3.4rem);margin:0 0 24px}
.compare-photo-placeholder{min-height:320px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#d8d0c3,#aaa89f);border:1px solid rgba(31,29,26,.14);color:#1f1d1a}
.compare-photo-placeholder span{background:rgba(248,246,241,.82);padding:10px 14px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.compare-modal-copy{margin:18px 0 0;line-height:1.65;opacity:.72}
@media(max-width:600px){.compare-modal-dialog{padding:28px 18px 22px}.compare-photo-placeholder{min-height:230px}}


.selector-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.selector-heading label{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.selector-heading .compare-link{justify-self:auto;white-space:nowrap;font-size:.68rem;font-weight:500;opacity:.58;text-decoration:underline;text-underline-offset:2px}

.selector-heading .compare-link:hover{opacity:.9}


/* --- Panier : récapitulatif sobre --- */
.cart-item{display:block;padding:22px 0;border-bottom:1px solid rgba(31,29,26,.14)}
.cart-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.cart-item-title{margin:0;font-family:"Playfair Display",serif;font-size:1.08rem;font-weight:600}
.cart-item-packaging{margin:5px 0 0;font-size:.76rem;opacity:.56}
.cart-item-price{font-size:.92rem;white-space:nowrap;font-weight:600}
.cart-item-details{margin:17px 0 13px;padding:0;display:grid;gap:7px}
.cart-detail-row{display:grid;grid-template-columns:minmax(105px,.8fr) 1.2fr;gap:12px;font-size:.78rem;line-height:1.4}
.cart-detail-row dt{margin:0;opacity:.52}
.cart-detail-row dd{margin:0;text-align:right;color:#1f1d1a;overflow-wrap:anywhere}
.cart-item .remove-item{display:block;margin-left:auto;padding:0;border:0;background:transparent;font-size:.72rem;opacity:.48;text-decoration:none;border-bottom:1px solid currentColor}
.cart-item .remove-item:hover{opacity:.9}
.cart-total{font-size:.95rem}
.cart-total strong{font-size:1.08rem}
@media(max-width:420px){
  .cart-detail-row{grid-template-columns:1fr}
  .cart-detail-row dd{text-align:left}
}


/* --- Finalisation de commande --- */
.checkout-modal{position:fixed;inset:0;z-index:110;display:none;align-items:center;justify-content:center;padding:24px}
.checkout-modal.open{display:flex}
.checkout-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.42)}
.checkout-dialog{position:relative;z-index:1;width:min(1050px,96vw);max-height:92vh;overflow:auto;background:#f8f6f1;padding:34px}
.checkout-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:1px solid rgba(31,29,26,.14)}
.checkout-heading h2{font-family:"Playfair Display",serif;font-size:clamp(2rem,4vw,3.6rem);line-height:1;margin:0}
.checkout-close{border:0;background:transparent;font-size:2rem;line-height:1;cursor:pointer}
.checkout-layout{display:grid;grid-template-columns:1fr .8fr;gap:44px;padding-top:30px}
.checkout-form{display:grid;gap:28px}
.checkout-section{display:grid;gap:13px}
.checkout-section h3,.checkout-summary h3{font-family:"Playfair Display",serif;font-size:1.2rem;margin:0 0 3px}
.checkout-section h3 span,.checkout-section label span{font-family:"DM Sans",sans-serif;font-size:.7rem;font-weight:400;opacity:.5}
.checkout-form label{display:grid;gap:7px;font-size:.76rem;font-weight:600}
.checkout-form input,.checkout-form select,.checkout-form textarea{width:100%;border:1px solid rgba(31,29,26,.18);background:#fff;padding:12px 13px;outline:none;color:#1f1d1a}
.checkout-form input:focus,.checkout-form select:focus,.checkout-form textarea:focus{border-color:#1f1d1a}
.checkout-form textarea{resize:vertical}
.checkout-two-columns,.checkout-address-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.checkout-payment-button{width:100%;margin-top:2px}
.checkout-payment-note{margin:-17px 0 0;text-align:center;font-size:.7rem;opacity:.5}
.checkout-summary{align-self:start;position:sticky;top:0;border-left:1px solid rgba(31,29,26,.14);padding-left:32px}
.checkout-summary-item{padding:16px 0;border-bottom:1px solid rgba(31,29,26,.12)}
.checkout-summary-item:first-of-type{padding-top:8px}
.checkout-summary-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.checkout-summary-item-title{margin:0;font-size:.86rem;font-weight:700}
.checkout-summary-item-sub{margin:3px 0 0;font-size:.69rem;opacity:.52}
.checkout-summary-item-price{font-size:.82rem;white-space:nowrap}
.checkout-summary-detail{display:flex;justify-content:space-between;gap:15px;margin-top:6px;font-size:.7rem}
.checkout-summary-detail span:first-child{opacity:.48}
.checkout-summary-detail span:last-child{text-align:right;overflow-wrap:anywhere}
.checkout-summary-total{display:flex;justify-content:space-between;gap:15px;padding:20px 0 8px;font-size:.96rem}
.checkout-summary-total strong{font-size:1.08rem}
.checkout-summary-note{font-size:.7rem;line-height:1.5;opacity:.52}
@media(max-width:800px){
  .checkout-dialog{padding:26px 20px}
  .checkout-layout{grid-template-columns:1fr}
  .checkout-summary{position:static;border-left:0;border-top:1px solid rgba(31,29,26,.14);padding:26px 0 0}
}
@media(max-width:520px){
  .checkout-modal{padding:8px}
  .checkout-dialog{width:100%;max-height:96vh}
  .checkout-two-columns,.checkout-address-grid{grid-template-columns:1fr}
}


/* Centre la catégorie "Autre" sur la dernière ligne */
.category-card[data-category="autre"]{grid-column:2}
@media(max-width:900px){
  .category-card[data-category="autre"]{grid-column:auto}
}
@media(max-width:600px){
  .category-card[data-category="autre"]{grid-column:auto}
}


/* --- Livraison --- */
.shipping-section{padding-top:3px}
.shipping-intro{margin:-2px 0 3px;font-size:.72rem;line-height:1.5;opacity:.55}
.shipping-options{display:grid;gap:9px}
.shipping-option{position:relative;display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;border:1px solid rgba(31,29,26,.16);background:#fff;padding:13px 14px;cursor:pointer}
.shipping-option.active{border-color:#1f1d1a;background:#f3efe7}
.shipping-option input{width:auto!important;margin:0}
.shipping-option>span{display:grid;gap:2px}
.shipping-option strong{font-size:.8rem}
.shipping-option small{font-size:.68rem;font-weight:400;opacity:.54}
.shipping-option b{font-size:.78rem;font-weight:600}
.relay-note{margin:0;font-size:.68rem;line-height:1.45;opacity:.5}
.checkout-summary-shipping{display:flex;justify-content:space-between;gap:15px;padding:16px 0 4px;border-top:1px solid rgba(31,29,26,.12);font-size:.78rem}
.checkout-summary-shipping strong{font-weight:600}







.category-title{display:inline-flex;align-items:center;justify-content:center;width:100%}
.category-icon{display:none!important}
.category-info h3{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;margin:0}


/* --- Course à pied : photo produit + modèle par taille --- */
.course-visual-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px;width:min(100%,720px);margin-top:16px}
.course-visual-gallery[hidden]{display:none!important}
.course-visual-card{background:#f8f6f1;border:1px solid rgba(31,29,26,.14);padding:12px;display:grid;gap:10px}
.course-visual-heading{display:flex;align-items:center;justify-content:center;min-height:34px;text-align:center;padding:2px 8px 5px}
.course-visual-heading strong{font-family:"DM Sans",sans-serif;font-size:.94rem;font-weight:650;letter-spacing:.025em;line-height:1.25;color:#1f1d1a}
.course-visual-heading span{display:none}
.course-visual-frame{position:relative;overflow:hidden;background:#e9e5dd;border:1px solid rgba(31,29,26,.09)}
.product-photo-frame{aspect-ratio:4/3;background:#0d1c2b}
.model-frame{aspect-ratio:3/2;background:#fff}
.course-visual-frame img{display:block;width:100%;height:100%;object-fit:cover}
.model-frame img{object-fit:contain;background:#fff}
.course-model-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:24px;text-align:center;background:#f2efe9;color:#1f1d1a}
.course-model-placeholder[hidden]{display:none!important}
.course-model-placeholder strong{font-family:"Playfair Display",serif;font-size:1.35rem}
.course-model-placeholder span{font-size:.76rem;line-height:1.5;opacity:.58}
.course-visual-note{grid-column:1/-1;margin:0;padding:12px 14px;border:1px solid rgba(31,29,26,.12);background:rgba(248,246,241,.72);font-size:.72rem;line-height:1.55;opacity:.72}
.live-plaque[hidden]{display:none!important}
@media(max-width:700px){.course-visual-gallery{grid-template-columns:1fr}.course-visual-note{grid-column:auto}.product-photo-frame{aspect-ratio:4/3}.course-visual-heading span{font-size:.62rem}}

.personalization-note{margin-top:6px;font-size:.73rem!important;line-height:1.5!important;opacity:.72!important;font-style:italic}


/* --- Alignement strict des champs sur 2 colonnes --- */
@media(min-width:901px){
  .dynamic-fields{align-items:start}
  .field-group:not(.full){grid-template-rows:32px 48px auto;align-content:start}
  .field-group:not(.full)>label{height:32px;display:flex;align-items:flex-end;line-height:1.15}
  .field-group:not(.full)>input:not([type="file"]),
  .field-group:not(.full)>select{height:48px;min-height:48px}
  .field-group:not(.full)>.field-hint{min-height:1em}
}

.contact-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.contact-status{min-height:1.35em;margin:4px 0 0;font-size:.88rem;line-height:1.45}.contact-status.success{color:#2f5d3a}.contact-status.error{color:#8a2f2f}.contact-form .button[disabled]{opacity:.55;cursor:wait}

/* Avis clients */
.reviews{border-top:1px solid rgba(31,29,26,.14)}
.reviews-heading{margin-bottom:38px}
.reviews-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:start}
.reviews-list{min-height:330px;border:1px solid rgba(31,29,26,.14);background:rgba(255,255,255,.45);padding:34px}
.reviews-empty{min-height:260px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;max-width:500px}
.reviews-stars{font-size:1.2rem;letter-spacing:.16em;margin-bottom:18px}
.reviews-empty h3,.review-box h3{font-family:"Playfair Display",serif;font-size:2rem;margin:0 0 12px}
.reviews-empty p{margin:0;line-height:1.7;opacity:.68}
.review-box{background:#fff;padding:34px;border:1px solid rgba(31,29,26,.08)}
.review-box .eyebrow{margin-bottom:14px}
.review-form{display:grid;gap:12px;margin-top:24px}
.review-form input,.review-form textarea{width:100%;padding:16px 2px;border:0;border-bottom:1px solid rgba(31,29,26,.35);background:transparent;outline:none}
.review-form textarea{resize:vertical}
.rating-field{padding:10px 0 6px;border-bottom:1px solid rgba(31,29,26,.35)}
.rating-field>span{display:block;font-size:.82rem;opacity:.68;margin-bottom:6px}
.star-rating{display:flex;gap:4px}
.star{border:0;background:transparent;padding:0 2px;font-size:1.7rem;line-height:1;color:#1f1d1a;cursor:pointer}
.star:hover{transform:translateY(-1px)}
.star.active{font-weight:700}
.review-form .button{justify-self:start;margin-top:10px}
.review-note{font-size:.78rem;line-height:1.5;opacity:.58;margin:2px 0 0}
.review-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.review-status{min-height:1.35em;margin:2px 0 0;font-size:.88rem;line-height:1.45}
.review-status.success{color:#2f5d3a}.review-status.error{color:#8a2f2f}
.review-form .button[disabled]{opacity:.55;cursor:wait}
@media(max-width:900px){.reviews-layout{grid-template-columns:1fr}.reviews-list{min-height:auto}.reviews-empty{min-height:200px}}
@media(max-width:600px){.review-box,.reviews-list{padding:24px 20px}.reviews-empty h3,.review-box h3{font-size:1.7rem}}


/* Galerie universelle + zoom photo produit */
.course-visual-frame[type="button"]{padding:0;width:100%;font:inherit;color:inherit;text-align:inherit;cursor:pointer}
.zoomable-photo{appearance:none;-webkit-appearance:none;position:relative}
.zoomable-photo:not(.is-empty):hover img{transform:scale(1.025)}
.zoomable-photo img{transition:transform .22s ease}
.zoom-hint{position:absolute;right:10px;bottom:10px;padding:6px 9px;background:rgba(20,20,20,.72);color:#fff;font-size:.68rem;letter-spacing:.02em;pointer-events:none}
.zoomable-photo.is-empty{cursor:default}
.zoomable-photo.is-empty .zoom-hint{display:none}
.course-product-placeholder,.course-model-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:7px;background:#eeeae2;color:#1f1d1a}
.course-product-placeholder[hidden],.course-model-placeholder[hidden]{display:none!important}
.course-product-placeholder strong,.course-model-placeholder strong{font-family:"Playfair Display",serif;font-size:1rem;font-weight:600}
.course-product-placeholder span,.course-model-placeholder span{font-size:.72rem;line-height:1.45;opacity:.58;max-width:220px}
.photo-lightbox{position:fixed;inset:0;z-index:10000;background:#0b0b0b;display:flex;align-items:center;justify-content:center;padding:48px;isolation:isolate}
.photo-lightbox[hidden]{display:none!important}
.photo-lightbox img{display:block;max-width:min(78vw,920px);max-height:74vh;width:auto;height:auto;object-fit:contain;background:transparent;box-shadow:0 18px 60px rgba(0,0,0,.48)}
.photo-lightbox-close{position:absolute;top:18px;right:22px;z-index:2;border:0;background:transparent;color:#fff;font-size:2.3rem;line-height:1;cursor:pointer;padding:8px}
body.lightbox-open{overflow:hidden}
@media(max-width:700px){.photo-lightbox{padding:28px 18px}.photo-lightbox img{max-width:90vw;max-height:70vh}.photo-lightbox-close{top:8px;right:10px}.zoom-hint{font-size:.62rem}}
\n\n

/* Recherche d’activité compacte dans l’en-tête */
.header-activity-search{display:flex;align-items:center;gap:7px;width:145px;border-bottom:1px solid rgba(31,29,26,.28);padding:2px 0 4px;margin-left:2px;transition:border-color .18s ease}
.header-activity-search:focus-within{border-color:#1f1d1a}
.header-search-icon{width:16px;height:16px;flex:0 0 16px;opacity:.62}
.header-activity-search input{width:100%;min-width:0;border:0;background:transparent;outline:none;padding:0;font:inherit;font-size:.86rem;color:#1f1d1a}
.header-activity-search input::placeholder{color:rgba(31,29,26,.5)}
.header-activity-search input::-webkit-search-cancel-button{display:none}
@media(max-width:1080px){.site-header nav{gap:18px}.header-activity-search{width:125px}}
@media(max-width:900px){.site-header nav{display:flex;gap:12px}.site-header nav>a{display:none}.header-activity-search{width:min(38vw,170px);margin-left:auto}.cart-button{padding:9px 11px}}

/* --- Ajustements : recherche header + avis minimalistes --- */
.header-activity-search{display:flex!important;flex-direction:row!important;align-items:center!important;gap:7px!important;width:158px!important;min-width:158px!important;white-space:nowrap!important;padding:2px 0 4px!important}
.header-search-icon{display:block!important;width:15px!important;height:15px!important;flex:0 0 15px!important}
.header-activity-search input{display:block!important;line-height:1.2!important;white-space:nowrap!important}
@media(max-width:1080px){.header-activity-search{width:142px!important;min-width:142px!important}}
@media(max-width:900px){.header-activity-search{width:min(42vw,165px)!important;min-width:0!important}}

.reviews-compact{padding:44px 7vw 48px;border-top:1px solid rgba(31,29,26,.14);background:rgba(255,255,255,.22)}
.reviews-compact-head{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:start}
.reviews-compact .eyebrow{margin:0 0 10px}
.reviews-compact-titleline{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.reviews-compact-titleline h2{font-family:"Playfair Display",serif;font-size:clamp(1.7rem,2.8vw,2.5rem);font-weight:600;line-height:1;margin:0}
.reviews-compact .reviews-stars{font-size:.9rem;letter-spacing:.12em;margin:0}
.reviews-compact-copy{max-width:650px;margin:10px 0 0;font-size:.82rem;line-height:1.55;opacity:.66}
.review-details{width:min(390px,34vw)}
.review-details summary{list-style:none;cursor:pointer;border:1px solid rgba(31,29,26,.35);padding:10px 14px;font-size:.8rem;font-weight:600;text-align:center;background:transparent}
.review-details summary::-webkit-details-marker{display:none}
.review-details[open] summary{background:#1f1d1a;color:#fff}
.review-box-compact{margin-top:10px;padding:18px;background:#fff;border:1px solid rgba(31,29,26,.1)}
.review-box-compact .review-form{margin:0;gap:9px}
.review-fields-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.review-box-compact .review-form input,.review-box-compact .review-form textarea{padding:10px 2px;font-size:.8rem}
.review-box-compact .rating-field{padding:6px 0 4px}
.review-box-compact .rating-field>span{font-size:.72rem;margin-bottom:3px}
.review-box-compact .star{font-size:1.35rem}
.review-submit-row{display:flex;align-items:center;gap:12px;margin-top:3px}
.review-submit-row .button{margin:0;padding:10px 14px;font-size:.78rem;white-space:nowrap}
.review-submit-row .review-note{margin:0;font-size:.66rem;line-height:1.35}
.reviews-list-compact{min-height:0!important;margin-top:22px;padding-top:16px;border:0!important;border-top:1px solid rgba(31,29,26,.1)!important;background:transparent!important}
.reviews-list-compact p{margin:0;font-size:.75rem;opacity:.5}
@media(max-width:900px){
  .reviews-compact{padding:38px 20px 42px}
  .reviews-compact-head{grid-template-columns:1fr;gap:18px}
  .review-details{width:100%}
}
@media(max-width:520px){.review-fields-row{grid-template-columns:1fr}.review-submit-row{align-items:flex-start;flex-direction:column}}


/* Harmonisation configurateur : titres côte à côte + étapes 1/2/3 alignées */
.configurator-top-labels{display:block;margin:0 0 18px}
.configurator-top-labels .eyebrow{margin:0;text-align:left}
.configurator-panel{background:transparent;padding:0}
.size-selector-block,.packaging-selector-block{display:grid;gap:8px;margin:0 0 28px;padding:0;border:0;background:transparent}
.size-selector-block select,.packaging-selector-block select{background:#fff}
.fields-heading{margin:0 0 16px}
@media(max-width:900px){
  .configurator-top-labels{display:block;margin-bottom:18px}
  .plaque-preview-wrap::before,.configurator-panel::before{content:none;display:none}
  .configurator-panel{padding:0}
}

/* Ajustements accueil - identité plus épurée */
.hero-content{text-align:center;}
.hero-text{margin:30px auto;font-style:italic;}
.section-heading{grid-template-columns:1fr;text-align:center;justify-items:center;gap:14px;}
.section-heading>div{width:100%;text-align:center;}
.section-heading>p{margin:0 auto;max-width:520px;text-align:center;}

.category-info{text-align:center}

/* --- Hero : deux visuels compacts, montagne + produit --- */
.hero-art.hero-art-split{
  position:relative;
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:8px;
  height:410px;
  overflow:hidden;
  background:transparent;
}
.hero-split-image{
  min-height:0;
  background-size:cover;
  background-position:center;
  border-radius:0;
  overflow:hidden;
}
.hero-split-mountain{
  background-image:linear-gradient(rgba(18,24,30,.05),rgba(18,24,30,.05)),url("assets/hero-montagne.jpg");
  background-position:center 48%;
  border-radius:16px 16px 0 0;
}
.hero-split-product{
  background-image:linear-gradient(rgba(10,12,14,.10),rgba(10,12,14,.18)),url("assets/hero-produit-3-formats.jpg");
  background-position:center 54%;
  background-size:cover;
  background-repeat:no-repeat;
  background-color:#101214;
  border-radius:0 0 16px 16px;
}
.hero-product-title{
  position:absolute;
  left:50%;
  top:calc(50% + 16px);
  transform:translateX(-50%);
  z-index:2;
  margin:0;
  padding:0;
  border:0;
  background:none;
  box-shadow:none;
  color:#fff;
  font-size:.82rem;
  font-weight:600;
  line-height:1.15;
  letter-spacing:.035em;
  text-align:center;
  white-space:nowrap;
  text-shadow:0 1px 5px rgba(0,0,0,.72);
}
@media(max-width:900px){
  .hero-art.hero-art-split{height:360px;gap:7px}
  .hero-product-title{top:calc(50% + 14px);font-size:.76rem}
}
@media(max-width:600px){
  .hero-art.hero-art-split{height:320px;gap:6px}
  .hero-product-title{
    top:calc(50% + 12px);
    width:92%;
    font-size:.7rem;
    white-space:normal;
  }
}



/* --- Contact : formulaire compact aligné sur le bloc texte --- */
@media (min-width:901px){
  .contact{align-items:start}
  .contact-form{
    align-self:start;
    margin-top:47px;
    gap:6px;
  }
  .contact-form input,
  .contact-form textarea{
    padding:9px 2px;
    line-height:1.25;
  }
  .contact-form input{height:38px}
  .contact-form textarea{
    height:64px;
    min-height:64px;
    max-height:64px;
    resize:none;
  }
  .contact-form .button{
    margin-top:4px;
    padding:11px 18px;
    min-height:40px;
  }
  .contact-status{
    min-height:0;
    height:14px;
    margin:0;
    font-size:.75rem;
    line-height:1.15;
  }
}


/* --- Rythme accueil : même respiration avant/après le bandeau --- */
@media (min-width:901px){
  .hero{padding-bottom:64px;}
  #creations{padding-top:64px;}
}
@media (max-width:900px){
  .hero{padding-bottom:44px;}
  #creations{padding-top:44px;}
}






/* --- Plaques détourées : intégration homogène dans Rendu final --- */
.product-photo-frame{display:grid;place-items:center}
.product-photo-frame img{width:90%;height:90%;object-fit:contain;margin:0;padding:0}


/* --- Accueil : plaques détourées centrées dans les cases couleur --- */
.activity-card-with-plaque{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  overflow:hidden;
}
.activity-card-plaque{
  display:block;
  width:86%;
  height:auto;
  max-width:86%;
  max-height:86%;
  object-fit:contain;
  margin:0;
  padding:0;
  filter:drop-shadow(0 10px 12px rgba(31,29,26,.22));
}
@media(max-width:600px){
  .activity-card-with-plaque{padding:14px}
  .activity-card-plaque{width:86%;max-width:86%;max-height:86%}
}

/* Correction ancres avec en-tête sticky */
#creations{scroll-margin-top:110px;}


/* --- Essai fin de page : contact bandeau + avis éditoriaux --- */
.contact-banner{
  margin:0 7vw;
  padding:38px 0;
  border-top:1px solid rgba(31,29,26,.16);
  border-bottom:1px solid rgba(31,29,26,.16);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:54px;
}
.contact-banner-copy{max-width:760px}
.contact-banner h2{font-family:"Playfair Display",serif;font-size:clamp(2rem,3.4vw,3.8rem);font-weight:600;line-height:1;margin:0 0 12px}
.contact-banner-copy p{margin:0;max-width:690px;font-size:.88rem;line-height:1.65;opacity:.68}
.contact-details{position:relative;width:min(420px,34vw)}
.contact-details summary,.review-details-editorial summary{
  list-style:none;
  cursor:pointer;
  border:1px solid rgba(31,29,26,.48);
  padding:12px 18px;
  font-size:.8rem;
  font-weight:650;
  text-align:center;
  background:transparent;
}
.contact-details summary::-webkit-details-marker,.review-details-editorial summary::-webkit-details-marker{display:none}
.contact-details[open] summary,.review-details-editorial[open] summary{background:#1f1d1a;color:#fff}
.contact-form-wrap{position:absolute;z-index:6;right:0;top:calc(100% + 10px);width:min(420px,88vw);padding:20px;background:#f8f6f1;border:1px solid rgba(31,29,26,.12);box-shadow:0 18px 45px rgba(31,29,26,.13)}
.contact-banner .contact-form{margin:0;gap:8px}
.contact-banner .contact-form input,.contact-banner .contact-form textarea{padding:11px 2px}
.contact-banner .contact-form textarea{height:82px;min-height:82px;resize:none}
.contact-banner .contact-form .button{margin-top:6px}

.reviews-editorial{
  padding:38px 7vw 52px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:48px;
  align-items:start;
  background:rgba(255,255,255,.2);
}
.reviews-editorial-main{min-width:0}
.reviews-editorial-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:24px}
.reviews-scoreline{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.reviews-scoreline h2{font-family:"Playfair Display",serif;font-size:clamp(1.85rem,3vw,3rem);font-weight:600;line-height:1;margin:0}
.reviews-editorial .reviews-stars{margin:0;font-size:.88rem;letter-spacing:.14em}
.reviews-editorial-head>p{margin:0;max-width:360px;text-align:right;font-size:.75rem;line-height:1.5;opacity:.55}
.reviews-list-editorial{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:0!important;margin:0!important;border:0!important;background:transparent!important;min-height:0!important}
.review-preview{padding:18px 0 0;border-top:1px solid rgba(31,29,26,.16)}
.review-preview p{margin:10px 0 12px;font-family:"Playfair Display",serif;font-size:1rem;line-height:1.45;opacity:.82}
.review-preview>span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;opacity:.45}
.review-preview-muted{opacity:.62}
.review-details-editorial{width:190px;margin-top:3px}
.review-details-editorial .review-box-compact{position:absolute;right:7vw;width:min(420px,88vw);z-index:5;box-shadow:0 18px 45px rgba(31,29,26,.13)}

@media(max-width:900px){
  .contact-banner{margin:0 20px;padding:30px 0;grid-template-columns:1fr;gap:20px}
  .contact-details{width:100%}
  .contact-form-wrap{position:static;width:100%;margin-top:10px}
  .reviews-editorial{padding:34px 20px 44px;grid-template-columns:1fr;gap:22px}
  .reviews-editorial-head{align-items:flex-start;flex-direction:column;gap:10px}
  .reviews-editorial-head>p{text-align:left}
  .review-details-editorial{width:100%}
  .review-details-editorial .review-box-compact{position:static;width:100%;margin-top:10px}
}
@media(max-width:620px){.reviews-list-editorial{grid-template-columns:1fr}.review-preview-muted{display:none}}


/* --- Avis clients : carrousel horizontal automatique --- */
.reviews-carousel{position:relative;overflow:hidden;width:100%;min-width:0}
.reviews-carousel-track{display:flex;width:100%;transition:transform .48s cubic-bezier(.22,.61,.36,1);will-change:transform}
.reviews-carousel .review-preview{flex:0 0 100%;min-width:100%;padding:18px 2px 5px;border-top:1px solid rgba(31,29,26,.16)}
.reviews-carousel .review-preview p{max-width:760px;margin:10px 0 12px;font-family:"Playfair Display",serif;font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.48;opacity:.82}
.reviews-carousel .review-preview>span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;opacity:.45}
.reviews-carousel-dots{display:flex;gap:6px;margin-top:15px}
.reviews-carousel-dots span{display:block;width:20px;height:2px;background:rgba(31,29,26,.18);transition:background .25s ease,width .25s ease}
.reviews-carousel-dots span.active{width:34px;background:#1f1d1a}
.reviews-carousel:hover .reviews-carousel-track,.reviews-carousel:focus-within .reviews-carousel-track{will-change:auto}
@media(prefers-reduced-motion:reduce){.reviews-carousel-track{transition:none}}

.reviews-list-editorial{display:block!important;}


/* --- Avis : titre allégé + carrousel centré --- */
.reviews-carousel .review-preview{text-align:center;}
.reviews-carousel .review-preview p{margin-left:auto;margin-right:auto;}
.reviews-carousel-dots{justify-content:center;}


/* --- Zoom produit : modal top-level opaque, taille contenue --- */
.photo-lightbox{position:fixed!important;inset:0!important;z-index:2147483647!important;background:#0a0a0a!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:40px!important;opacity:1!important;isolation:isolate!important}
.photo-lightbox[hidden]{display:none!important}
.photo-lightbox::before{content:"";position:absolute;inset:0;background:#0a0a0a;z-index:-1}
.photo-lightbox img{display:block!important;width:auto!important;height:auto!important;max-width:min(50vw,620px)!important;max-height:50vh!important;object-fit:contain!important;background:#0a0a0a!important;opacity:1!important;box-shadow:none!important}
.photo-lightbox-close{position:fixed!important;top:18px!important;right:22px!important;z-index:2147483647!important;color:#fff!important}
body.lightbox-open>main,body.lightbox-open>.site-header,body.lightbox-open>footer{visibility:hidden!important}
@media(max-width:700px){.photo-lightbox{padding:24px!important}.photo-lightbox img{max-width:70vw!important;max-height:50vh!important}}

/* --- Section matière : ajout éditorial sans modifier la structure existante --- */
.material-story{
  padding:74px 7vw 78px;
  border-top:1px solid rgba(31,29,26,.10);
  background:#f8f6f1;
}
.material-story-heading{
  max-width:760px;
  margin:0 auto 38px;
  text-align:center;
}
.material-story-heading .eyebrow{
  margin:0 0 14px;
  font-family:"Playfair Display",serif;
  font-size:clamp(1.85rem,3vw,3.15rem);
  font-weight:600;
  line-height:1.05;
  letter-spacing:.04em;
  opacity:.95;
}
.material-story-heading>p:last-child{
  max-width:720px;
  margin:0 auto;
  font-size:clamp(1rem,1.35vw,1.22rem);
  line-height:1.55;
  opacity:.72;
}
.material-story-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px;
  max-width:1080px;
  margin:0 auto;
}
.material-story-card{
  min-width:0;
}
.material-story-image{
  overflow:visible;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
.material-story-image img{
  display:block;
  width:min(100%,250px);
  aspect-ratio:1 / 1;
  height:auto;
  object-fit:contain;
  background:transparent;
  border:0;
  box-shadow:none;
  filter:saturate(.82) contrast(1.03) brightness(.93);
  transition:transform .65s cubic-bezier(.22,.61,.36,1),filter .4s ease;
}.material-story-card:hover .material-story-image img{
  transform:scale(1.012);
  filter:saturate(.88) contrast(1.03) brightness(.96);
}
.material-story-copy{
  padding:18px 2px 0;
  width:min(100%,250px);
  margin:0 auto;
  text-align:center;
}
.material-story-copy h3{
  margin:0 0 8px;
  font-size:.92rem;
  font-weight:650;
  letter-spacing:.01em;
}
.material-story-copy p{
  margin:0 auto;
  max-width:250px;
  font-size:.76rem;
  line-height:1.58;
  opacity:.62;
}
@media(max-width:900px){
  .material-story{padding:58px 20px 62px}
  .material-story-grid{grid-template-columns:1fr;gap:34px;max-width:620px}
  .material-story-heading{margin-bottom:30px}
  .material-story-copy{padding-top:15px}
  .material-story-copy{width:min(100%,300px)}
  .material-story-copy p{max-width:300px}
  .material-story-image img{width:min(100%,300px);height:auto}
}
@media(prefers-reduced-motion:reduce){
  .material-story-image img{transition:none}
  .material-story-card:hover .material-story-image img{transform:none}
}

/* --- Essai configurateur premium : aperçu direct conservé --- */
@media (min-width:901px){
  .configurator-grid{
    grid-template-columns:minmax(0,1.03fr) minmax(360px,.97fr);
    gap:5vw;
  }
  .configurator-panel{
    padding-left:38px;
    border-left:1px solid rgba(31,29,26,.14);
  }
}

.configurator-panel h2{
  font-size:clamp(2.35rem,3.2vw,3.7rem);
  letter-spacing:-.015em;
}
.configurator-intro{
  max-width:520px;
  margin:12px 0 28px;
  font-size:.9rem;
  line-height:1.6;
  opacity:.58;
}

.size-selector-block,
.packaging-selector-block{
  position:relative;
  margin:0 0 14px;
  padding:16px 0 18px;
  border:0;
  border-bottom:1px solid rgba(31,29,26,.14);
  background:transparent;
}
.size-selector-block{
  border-top:1px solid rgba(31,29,26,.14);
}
.selector-heading{
  align-items:baseline;
}
.selector-heading label,
.fields-heading strong{
  font-size:.72rem;
  letter-spacing:.11em;
}
.selector-heading .compare-link{
  font-size:.66rem;
  text-decoration:none;
  border-bottom:1px solid rgba(31,29,26,.35);
  padding-bottom:2px;
}
.size-selector-block select,
.packaging-selector-block select{
  border:0;
  border-bottom:1px solid rgba(31,29,26,.22);
  background:rgba(255,255,255,.42);
  padding:12px 10px;
  border-radius:0;
}
.size-selector-block select:focus,
.packaging-selector-block select:focus{
  border-bottom-color:#1f1d1a;
  box-shadow:0 1px 0 #1f1d1a;
}
.info-counter{
  font-size:.7rem;
  font-weight:500;
  opacity:.52;
}

.fields-heading{
  margin:24px 0 18px;
  gap:6px;
}
.fields-heading span{
  max-width:560px;
  font-size:.72rem;
}
.fields-heading .personalization-note{
  margin-top:2px;
  opacity:.46;
}
.dynamic-fields{
  gap:14px 14px;
}
.field-group{
  gap:6px;
}
.field-group label{
  font-size:.7rem;
  letter-spacing:.08em;
}
.field-group input,
.field-group select,
.field-group textarea{
  border:1px solid rgba(31,29,26,.14);
  background:rgba(255,255,255,.58);
  padding:12px 13px;
  transition:border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.field-group input:focus,
.field-group select:focus,
.field-group textarea:focus{
  border-color:rgba(31,29,26,.48);
  background:#fff;
  box-shadow:0 0 0 2px rgba(31,29,26,.035);
}
.field-hint{
  font-size:.66rem;
}

.configurator-price-row{
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid rgba(31,29,26,.16);
}
.configurator-price-row span{
  font-size:.66rem;
  letter-spacing:.14em;
}
.configurator-price-row strong{
  font-family:"Playfair Display",serif;
  font-size:1.45rem;
  font-weight:600;
}
.configurator-price-row .button{
  min-width:180px;
  padding:13px 20px;
}

.plaque-preview-wrap{
  align-self:start;
}
.course-visual-gallery{
  gap:12px;
  margin-top:14px;
}
.course-visual-heading{
  min-height:24px;
}
.course-visual-heading strong{
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.course-visual-note{
  margin-top:0;
  font-size:.68rem;
  opacity:.5;
}
.product-reassurance{
  margin-top:20px;
  border-color:rgba(31,29,26,.11);
}
.product-reassurance span{
  padding:11px 12px;
  font-size:.7rem;
  border-color:rgba(31,29,26,.1);
}

@media(max-width:900px){
  .configurator-panel{
    border-left:0;
    padding:0;
  }
  .configurator-intro{margin-bottom:22px}
  .size-selector-block,.packaging-selector-block{padding:14px 0 16px}
}

/* À propos — lecture plus aérée */
.about-copy-airy{display:grid;gap:22px}
.about-copy-airy p{margin:0;line-height:1.8}
.about-copy-airy .about-lead strong{font-weight:700;color:#f3efe7}

/* --- Mobile : 2 activités par ligne, sans modifier le desktop --- */
@media (max-width:600px){
  #creations .product-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  #creations .category-info{
    padding:12px 8px 13px;
  }
  #creations .category-info h3{
    font-size:1.05rem;
    line-height:1.15;
  }
  #creations .category-price{
    margin-top:5px;
    font-size:.72rem;
  }
  #creations .product-image{
    aspect-ratio:4/3;
  }
}

/* --- Mobile uniquement : parcours de vente plus compact --- */
@media (max-width:600px){
  #personnalisation.configurator{
    padding-top:54px;
    padding-bottom:62px;
  }
  #personnalisation .configurator-back{
    padding-bottom:16px;
    font-size:.78rem;
  }
  #personnalisation .configurator-top-labels{
    margin-bottom:10px;
  }
  #personnalisation .configurator-top-labels .eyebrow{
    font-size:.64rem;
    letter-spacing:.12em;
  }
  #personnalisation .configurator-grid{
    gap:24px;
  }
  #personnalisation .live-plaque{
    margin-top:8px;
    padding:18px 16px;
    box-shadow:0 16px 32px rgba(31,29,26,.14);
  }

  /* Les deux visuels produit restent côte à côte sur téléphone. */
  #personnalisation .course-visual-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:12px;
    width:100%;
  }
  #personnalisation .course-visual-card{
    min-width:0;
    padding:7px;
    gap:6px;
  }
  #personnalisation .course-visual-heading{
    min-height:32px;
    padding:0 2px 3px;
  }
  #personnalisation .course-visual-heading strong{
    font-size:.58rem;
    line-height:1.2;
    letter-spacing:.035em;
  }
  #personnalisation .course-visual-frame,
  #personnalisation .product-photo-frame,
  #personnalisation .model-frame{
    aspect-ratio:4/3;
  }
  #personnalisation .zoom-hint{
    font-size:.52rem;
    padding:4px 6px;
  }
  #personnalisation .course-visual-note{
    grid-column:1/-1;
    padding:8px 10px;
    font-size:.62rem;
    line-height:1.4;
  }
  #personnalisation .product-reassurance{
    margin-top:12px;
  }
  #personnalisation .product-reassurance span{
    padding:8px 7px;
    font-size:.61rem;
  }

  #personnalisation .configurator-panel h2{
    font-size:2.15rem;
  }
  #personnalisation .configurator-intro{
    margin:8px 0 18px;
    font-size:.82rem;
  }
  #personnalisation .size-selector-block,
  #personnalisation .packaging-selector-block{
    padding:11px 0 13px;
    margin-bottom:10px;
  }
  #personnalisation .fields-heading{
    margin:18px 0 14px;
  }
  #personnalisation .dynamic-fields{
    gap:11px;
  }
  #personnalisation .configurator-price-row{
    margin-top:22px;
    padding-top:18px;
    gap:12px;
  }
}


/* Mobile uniquement : agrandissement des deux visuels du configurateur */
.model-zoomable{appearance:none;-webkit-appearance:none;border:0;font:inherit;color:inherit;width:100%;padding:0;position:relative;background:transparent}
.model-zoom-hint{display:none}
@media(max-width:700px){
  #personnalisation .product-photo-frame,
  #personnalisation .model-zoomable{cursor:zoom-in}
  #personnalisation .model-zoom-hint{display:block;position:absolute;right:6px;bottom:6px;padding:4px 6px;background:rgba(20,20,20,.72);color:#fff;font-size:.52rem;letter-spacing:.02em;pointer-events:none;z-index:2}
}
@media(min-width:701px){
  #personnalisation .model-zoomable{cursor:default}
}

/* --- Pages légales : CGV --- */
.footer-legal a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(31,29,26,.35)}
.footer-legal a:hover{border-bottom-color:currentColor}
.legal-page{background:#f5f0e7;color:#1f1d1a}
.legal-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:20px 4vw;background:rgba(245,240,231,.94);border-bottom:1px solid rgba(31,29,26,.14);backdrop-filter:blur(10px)}
.legal-back{font-size:.78rem;font-weight:600;color:inherit;text-decoration:none;border-bottom:1px solid rgba(31,29,26,.35);padding-bottom:2px}
.legal-main{width:min(960px,92vw);margin:0 auto;padding:86px 0 110px}
.legal-intro{text-align:center;max-width:760px;margin:0 auto 50px}
.legal-intro h1{font-family:"Playfair Display",serif;font-size:clamp(2.6rem,6vw,5rem);line-height:1;margin:10px 0 16px;font-weight:500}
.legal-version{font-size:.78rem;opacity:.58;margin:0 0 28px}
.legal-draft-warning{display:grid;gap:7px;text-align:left;padding:18px 20px;border:1px solid rgba(123,81,38,.34);background:#eee0ca;font-size:.82rem;line-height:1.55}
.legal-draft-warning strong{font-size:.84rem}
.legal-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(31,29,26,.13);border:1px solid rgba(31,29,26,.13);margin:0 0 70px}
.legal-summary a{background:#f5f0e7;color:inherit;text-decoration:none;padding:13px 15px;font-size:.72rem;line-height:1.3}
.legal-summary a:hover{background:#fff}
.legal-content{max-width:790px;margin:0 auto}
.legal-section{scroll-margin-top:100px;padding:0 0 48px;margin:0 0 48px;border-bottom:1px solid rgba(31,29,26,.14)}
.legal-section:last-child{margin-bottom:0}
.legal-section h2{font-family:"Playfair Display",serif;font-size:clamp(1.65rem,3vw,2.25rem);font-weight:500;margin:0 0 22px}
.legal-section p,.legal-section li{font-size:.91rem;line-height:1.78}
.legal-section p{margin:0 0 16px}
.legal-section ul{margin:15px 0 0;padding-left:19px}
.legal-section li+li{margin-top:8px}
.legal-placeholder-box,.legal-important-box,.legal-guarantee-draft,.legal-guarantee-box{margin:22px 0;padding:20px 22px;border:1px solid rgba(31,29,26,.16);background:rgba(255,255,255,.45)}
.legal-placeholder-box.compact{padding:16px 20px}
.legal-placeholder-box p{margin:0;font-size:.82rem;line-height:1.65}
.legal-placeholder-box p+p{margin-top:7px}
.legal-placeholder-box span{background:#efe0c5;padding:1px 4px}
.legal-important-box{border-color:rgba(31,29,26,.4);background:#fff}
.legal-important-box>strong{display:block;font-family:"Playfair Display",serif;font-size:1.25rem;font-weight:500;margin-bottom:10px}
.legal-important-box p:last-child{margin-bottom:0}
.legal-guarantee-draft{background:#eee9df;border-style:dashed}
.legal-guarantee-box{background:#eee9df;border:1px solid rgba(31,29,26,.22);border-radius:14px}
.legal-guarantee-box strong{color:#1f1d1a}
.legal-guarantee-box .legal-source-link{margin-bottom:0;font-size:.92em}
.legal-guarantee-draft .eyebrow{margin-bottom:12px}
.shipping-legal-grid{display:grid;grid-template-columns:1fr;gap:9px;margin:22px 0}
.shipping-legal-grid>div{display:grid;grid-template-columns:minmax(230px,1fr) auto auto;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid rgba(31,29,26,.15);font-size:.8rem}
.shipping-legal-grid span{text-align:right;white-space:nowrap}
.legal-final-check{border:0;background:#1f1d1a;color:#f8f4ec;padding:30px 32px;margin-top:10px}
.legal-final-check h2{color:inherit}
.legal-footer{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:30px 4vw;border-top:1px solid rgba(31,29,26,.2);font-size:.82rem}
.legal-footer p:nth-child(2){text-align:center}.legal-footer p:last-child{text-align:right}
@media(max-width:760px){
  .legal-header{padding:17px 20px}
  .legal-header .brand{font-size:.84rem}
  .legal-main{width:auto;padding:58px 20px 80px}
  .legal-intro{margin-bottom:36px}
  .legal-intro h1{font-size:2.7rem}
  .legal-summary{grid-template-columns:1fr 1fr;margin-bottom:52px}
  .legal-summary a{font-size:.67rem;padding:11px 12px}
  .legal-section{padding-bottom:36px;margin-bottom:36px}
  .legal-section p,.legal-section li{font-size:.86rem;line-height:1.72}
  .shipping-legal-grid>div{grid-template-columns:1fr;gap:5px}
  .shipping-legal-grid span{text-align:left}
  .legal-footer{grid-template-columns:1fr;gap:10px;text-align:center}
  .legal-footer p{margin:0!important;text-align:center!important}
}

/* --- Réseaux sociaux : centrés et discrets dans le footer --- */
.footer-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}
.footer-center p{margin:0}
.footer-socials{display:flex;align-items:center;justify-content:center;gap:12px;min-height:20px}
.footer-social{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:inherit;text-decoration:none;border:0!important;opacity:.72;transition:opacity .2s ease,transform .2s ease}
.footer-social svg{display:block;width:16px;height:16px}
.footer-tiktok svg{width:14px;height:16px}
.footer-instagram svg{width:17px;height:17px}
.footer-social:hover{opacity:1;transform:translateY(-1px)}
.footer-social:focus-visible{outline:1px solid currentColor;outline-offset:4px;border-radius:3px}
.footer-social.is-disabled{opacity:.38;cursor:default}
.footer-social.is-disabled:hover{opacity:.38;transform:none}
@media(max-width:900px){footer .footer-center{gap:7px}.footer-socials{margin-top:1px}}

/* Adresse de contact officielle */
.contact-banner-copy .contact-direct-email{margin-top:10px;font-size:.8rem;line-height:1.5;opacity:.82}
.contact-direct-email a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(31,29,26,.35);padding-bottom:1px}
.contact-direct-email a:hover{border-bottom-color:currentColor}
.legal-placeholder-box a,.legal-section a{color:inherit;text-underline-offset:3px}
@media(max-width:600px){.contact-banner-copy .contact-direct-email{font-size:.76rem;margin-top:9px}}


/* --- Information confidentialité dans les formulaires --- */
.privacy-inline-note{margin:4px 0 0;font-size:.67rem;line-height:1.45;opacity:.58}
.privacy-inline-note a{text-decoration:underline;text-underline-offset:2px}
.checkout-privacy-note{margin:2px 0 12px}
.review-note a{text-decoration:underline;text-underline-offset:2px}


/* --- Pages juridiques : navigation claire, titres centrés, respiration --- */
.legal-tabs{
  width:min(720px,100%);
  margin:0 auto 64px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(31,29,26,.16);
  border-bottom:1px solid rgba(31,29,26,.16);
}
.legal-tabs a{
  color:inherit;
  text-decoration:none;
  text-align:center;
  padding:16px 12px;
  font-size:.76rem;
  font-weight:600;
  letter-spacing:.025em;
  opacity:.55;
  transition:opacity .18s ease,background .18s ease;
}
.legal-tabs a+a{border-left:1px solid rgba(31,29,26,.12)}
.legal-tabs a:hover{opacity:1;background:rgba(255,255,255,.35)}
.legal-tabs a.active{opacity:1;background:#1f1d1a;color:#f8f4ec}
.legal-intro{max-width:790px;margin:0 auto 42px;text-align:center}
.legal-intro .eyebrow{margin-bottom:18px;text-align:center}
.legal-intro .legal-lead{max-width:650px;margin:20px auto 0;font-size:.96rem;line-height:1.75;opacity:.7}
.legal-content{max-width:820px;margin:0 auto}
.legal-section{
  padding:0 22px 58px;
  margin:0 0 58px;
}
.legal-section h2{
  text-align:center;
  margin:0 auto 28px;
  max-width:680px;
  line-height:1.18;
}
.legal-section>p,.legal-section>ul,.legal-section>.legal-placeholder-box,.legal-section>.legal-important-box,.legal-section>.legal-guarantee-draft,.legal-section>.legal-guarantee-box,.legal-section>.shipping-legal-grid{
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
}
.legal-section p{margin-bottom:18px}
.legal-section ul{padding-left:23px}
.legal-summary{margin-bottom:64px}
.legal-placeholder-box,.legal-important-box,.legal-guarantee-draft,.legal-guarantee-box{margin-top:26px;margin-bottom:26px}
.legal-final-check{text-align:center;padding:36px 34px}
.legal-final-check p,.legal-final-check ul{max-width:660px;margin-left:auto;margin-right:auto;text-align:left}

@media(max-width:700px){
  .legal-main{padding-top:52px}
  .legal-tabs{margin-bottom:46px}
  .legal-tabs a{padding:13px 6px;font-size:.66rem}
  .legal-section{padding-left:0;padding-right:0;padding-bottom:42px;margin-bottom:42px}
  .legal-section h2{font-size:1.65rem;margin-bottom:22px}
  .legal-summary{margin-bottom:48px}
}


/* --- Repères de prépublication : visibles uniquement pendant la phase de travail --- */
.dev-note{color:#b3261e!important;font-style:italic!important;font-weight:400!important;opacity:1!important}
.legal-draft-warning.dev-note,.legal-placeholder-box.dev-note,.legal-final-check.dev-note{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important}
.legal-draft-warning.dev-note{display:block;text-align:center;margin:22px auto 0;max-width:760px}
.legal-draft-warning.dev-note strong{display:block;margin-bottom:4px}
.legal-placeholder-box.dev-note span{background:transparent!important;padding:0!important}
.legal-final-check.dev-note{margin-top:30px;text-align:center}
.legal-final-check.dev-note h2{color:#b3261e!important;font-size:1rem!important;font-family:"DM Sans",sans-serif!important;font-style:italic;font-weight:500!important}
.legal-final-check.dev-note ul{max-width:650px;margin:12px auto 0;padding-left:20px;text-align:left}
.compare-photo-placeholder span,.compare-modal-copy{color:#b3261e!important;font-style:italic!important;opacity:1!important}

/* --- Checkout : consentement légal + état bouton paiement --- */
.checkout-legal-consent{display:flex;align-items:flex-start;gap:10px;margin:4px 0 10px;font-size:.78rem;line-height:1.45;font-weight:500}
.checkout-legal-consent input{width:16px;height:16px;margin-top:2px;flex:0 0 auto}
.checkout-legal-consent a{color:inherit;text-underline-offset:2px}
.checkout-payment-button:disabled{opacity:.62;cursor:wait}


/* --- Panier / récapitulatif : version plus épurée --- */
.cart-drawer{width:min(460px,94vw);padding:30px 30px 24px;background:#f7f3ec}
.cart-header{padding-bottom:20px;border-bottom:1px solid rgba(31,29,26,.14)}
.cart-header h2{font-size:1.75rem;font-weight:600}
.cart-items{padding:4px 0 10px}
.cart-item{padding:26px 0 24px;border-bottom:1px solid rgba(31,29,26,.13)}
.cart-item-head{gap:22px}
.cart-item-main{min-width:0}
.cart-item-kicker{margin:0 0 5px;font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.48}
.cart-item-title{font-family:"Playfair Display",serif;font-size:1.32rem;line-height:1.05;margin:0;font-weight:600}
.cart-item-packaging{margin:7px 0 0;font-size:.72rem;opacity:.52}
.cart-item-price{font-size:.9rem;padding-top:2px}
.cart-item-divider{height:1px;background:rgba(31,29,26,.09);margin:18px 0 13px}
.cart-item-details-title{margin:0 0 10px;font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.44}
.cart-item-details{margin:0;display:grid;gap:8px}
.cart-detail-row{grid-template-columns:minmax(95px,.75fr) 1.25fr;gap:16px;font-size:.74rem;line-height:1.35}
.cart-detail-row dt{opacity:.46}
.cart-detail-row dd{text-align:right;font-weight:500}
.cart-item-actions{display:flex;justify-content:flex-end;margin-top:16px}
.cart-item .remove-item{margin:0;font-size:.68rem;opacity:.42;border-bottom:0;text-decoration:underline;text-underline-offset:3px}
.cart-footer{padding-top:20px;border-top:1px solid rgba(31,29,26,.16)}
.cart-total{margin-bottom:16px;align-items:baseline}
.cart-total span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;opacity:.52}
.cart-total strong{font-family:"Playfair Display",serif;font-size:1.45rem;font-weight:600}
.cart-footer .checkout{padding:14px 18px;letter-spacing:.02em}

/* Récapitulatif de finalisation cohérent avec le panier */
.checkout-summary h3{font-size:1.35rem;margin-bottom:14px}
.checkout-summary-item{padding:19px 0}
.checkout-summary-item-kicker{margin:0 0 4px;font-size:.61rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.45}
.checkout-summary-item-title{font-family:"Playfair Display",serif;font-size:1rem;font-weight:600}
.checkout-summary-item-sub{margin-top:5px;text-transform:none}
.checkout-summary-details{margin-top:13px;padding-top:11px;border-top:1px solid rgba(31,29,26,.08)}
.checkout-summary-detail{font-size:.69rem;margin-top:7px}
.checkout-summary-detail span:first-child{opacity:.44}
.checkout-summary-item-price{font-size:.8rem;font-weight:600}
.checkout-summary-shipping{margin-top:4px;padding-top:18px}
.checkout-summary-total{padding-top:17px}
.checkout-summary-total span{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;opacity:.56}
.checkout-summary-total strong{font-family:"Playfair Display",serif;font-size:1.35rem;font-weight:600}
.checkout-summary-note{margin-top:10px;text-align:center;font-style:italic}

@media(max-width:520px){
  .cart-drawer{padding:24px 20px 20px}
  .cart-item{padding:22px 0}
  .cart-detail-row{grid-template-columns:42% 58%;gap:10px}
  .cart-detail-row dd{text-align:right}
}


/* --- Panier : hiérarchie activité / style / packaging + données en liste --- */
.cart-item-activity{margin:0 0 20px;font-family:"Playfair Display",serif;font-size:1.12rem;line-height:1.25;font-weight:600}
.cart-item-activity span{font-family:"DM Sans",sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.02em;opacity:.52;margin-right:5px}
.cart-item-meta{margin:4px 0 0;font-size:.76rem;line-height:1.4}
.cart-item-meta span{font-weight:600;opacity:.58;margin-right:4px}
.cart-item-divider{height:1px;background:rgba(31,29,26,.14);margin:17px 0 14px}
.cart-item-details{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.cart-detail-line{position:relative;padding-left:14px;font-size:.74rem;line-height:1.45;color:#1f1d1a}
.cart-detail-line::before{content:"–";position:absolute;left:0;top:0;opacity:.55}
.cart-detail-line span{font-weight:500;opacity:.58}
@media(max-width:520px){
  .cart-item-activity{font-size:1.04rem}
  .cart-item-meta{font-size:.74rem}
  .cart-detail-line{font-size:.72rem}
}


/* --- Sélecteur de point relais Sendcloud / Mondial Relay --- */
.relay-picker{margin-top:16px;padding-top:16px;border-top:1px solid rgba(31,29,26,.12)}
.relay-picker-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.relay-picker-head>div{display:grid;gap:4px}
.relay-picker-head strong{font-size:.9rem}
.relay-picker-head small,.relay-picker-help{font-size:.74rem;line-height:1.45;opacity:.58}
.relay-picker-help{margin:8px 0 0}
.relay-search-button{border:1px solid rgba(31,29,26,.3);background:transparent;padding:9px 13px;cursor:pointer;font-size:.76rem;font-weight:700;white-space:nowrap}
.relay-search-button:hover{background:#1f1d1a;color:#fff}
.relay-search-button:disabled{opacity:.45;cursor:wait}
.relay-results{display:grid;gap:8px;margin-top:12px;max-height:285px;overflow:auto;padding-right:3px}
.relay-result{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;border:1px solid rgba(31,29,26,.12);background:rgba(255,255,255,.55);padding:12px 13px;cursor:pointer;color:inherit}
.relay-result:hover{border-color:rgba(31,29,26,.35)}
.relay-result.selected{border-color:#1f1d1a;background:#fff;box-shadow:inset 3px 0 0 #1f1d1a}
.relay-result-main{display:grid;gap:4px}
.relay-result-main strong{font-size:.82rem}
.relay-result-main small{font-size:.7rem;line-height:1.4;opacity:.66}
.relay-result-meta{font-size:.7rem;font-weight:700;opacity:.58;white-space:nowrap}
.relay-empty,.relay-loading{margin:0;padding:12px 0;font-size:.76rem;line-height:1.5;opacity:.62}
@media(max-width:600px){.relay-picker-head{align-items:flex-start;flex-direction:column}.relay-search-button{width:100%}.relay-results{max-height:240px}}
\n\n/* --- Finitions navigation / À propos / avis / panier --- */\n.about{grid-template-columns:1fr 1fr;gap:7vw}\n#creations,#avis{scroll-margin-top:78px}\n#avis{position:relative}\n.dynamic-fields .field-group{scroll-margin-block:35vh}\n\n/* Panier : Activité et sa valeur ont exactement la même typographie. */\n.cart-item-activity{\n  margin:0 0 24px!important;\n  font-family:"DM Sans",sans-serif!important;\n  font-size:.94rem!important;\n  line-height:1.35!important;\n  font-weight:600!important;\n}\n.cart-item-activity span{\n  font:inherit!important;\n  letter-spacing:0!important;\n  opacity:1!important;\n  margin-right:4px!important;\n}\n.cart-item-meta:first-of-type{margin-top:0!important}\n\n/* Récapitulatif checkout : “Plaque Grande” reste une donnée, pas un titre. */\n.checkout-summary-item-title{\n  font-family:"DM Sans",sans-serif!important;\n  font-size:.74rem!important;\n  line-height:1.45!important;\n  font-weight:400!important;\n  margin:4px 0 0!important;\n}\n.checkout-summary-item-sub{font-size:.74rem!important;font-weight:400!important}\n\n@media(max-width:900px){\n  .about{grid-template-columns:1fr}\n}\n@media(max-width:600px){\n  .cart-item-activity{font-size:.9rem!important;margin-bottom:22px!important}\n}\n

/* --- Correctif À propos : conserver la mise en page historique sans afficher "02" --- */
.about{grid-template-columns:.25fr 1fr 1fr!important;gap:5vw!important}
.about-number{visibility:hidden!important}
@media(max-width:900px){
  .about{grid-template-columns:1fr!important}
  .about-number{display:none!important}
}

/* --- Récapitulatif panier : modèle validé --- */
.cart-item-activity{
  margin:0!important;
  font-family:"DM Sans",sans-serif!important;
  font-size:.82rem!important;
  line-height:1.45!important;
  font-weight:400!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
.cart-item-activity span{
  font:inherit!important;
  font-weight:600!important;
  letter-spacing:.02em!important;
  opacity:1!important;
  margin-right:4px!important;
}
.cart-item-meta-block{margin-top:20px!important;display:grid;gap:4px}
.cart-item-meta{margin:0!important;font-size:.78rem!important;line-height:1.45!important;font-weight:400!important}
.cart-item-meta span{font:inherit!important;font-weight:500!important;opacity:.72!important;margin-right:4px!important}
.cart-item-divider{margin:17px 0 14px!important}

/* Même hiérarchie dans le récapitulatif de finalisation */
.checkout-summary-activity{
  margin:0;
  font-family:"DM Sans",sans-serif;
  font-size:.76rem;
  line-height:1.45;
  font-weight:400;
}
.checkout-summary-activity span{font-weight:600;letter-spacing:.02em;margin-right:4px}
.checkout-summary-meta-block{margin-top:18px;display:grid;gap:4px}
.checkout-summary-meta{margin:0;font-size:.74rem;line-height:1.45;font-weight:400}
.checkout-summary-meta span{font-weight:500;opacity:.72;margin-right:4px}
.checkout-summary-item-title,.checkout-summary-item-sub{font:inherit!important}

/* Navigation Avis : arrivée propre au début du bloc « Un projet particulier ? » */
#contact{scroll-margin-top:78px}


/* --- À propos : titre sur 2 lignes et séparation éditoriale --- */
.about .about-title{
  font-size:clamp(2.15rem,3.35vw,3.75rem)!important;
  max-width:10.8em;
  line-height:1.04!important;
}
.about-divider{
  width:100%;
  height:1px;
  background:rgba(243,239,231,.24);
  margin:2px 0 0;
}
@media(max-width:900px){
  .about .about-title{max-width:11em}
}
@media(max-width:600px){
  .about .about-title{font-size:clamp(2rem,10vw,2.7rem)!important;max-width:10.5em}
}


/* --- À propos : frise verticale de 8 pictogrammes fondus dans le bandeau --- */
.about-icons{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  min-width:44px;
  padding:4px 0;
  opacity:.27;
  pointer-events:none;
}
.about-icons img{
  display:block;
  width:34px;
  height:34px;
  object-fit:contain;
  filter:grayscale(1);
}
@media(max-width:1100px) and (min-width:901px){
  .about-icons img{width:30px;height:30px}
  .about-icons{min-width:40px;opacity:.24}
}
@media(max-width:900px){
  .about-icons{display:none!important}
}

/* --- Projet sur mesure : rubrique Autre uniquement --- */
.custom-project-status{
  margin:14px 0 0;
  font-size:.82rem;
  line-height:1.55;
  color:#5b554d;
}
.custom-project-status.success{color:#315b3d}
.custom-project-status.error{color:#9d2f2f}
.custom-project-status.preview{color:#9d2f2f;font-style:italic}
#personnalisation .field-group textarea{min-height:120px;line-height:1.55}

/* --- Projet "Autre" : un seul visuel représentatif --- */
.autre-project-card-image{padding:0;background:#0d1c2b}
.autre-project-card-image img{width:100%;height:100%;object-fit:cover;display:block}
.course-visual-gallery.single-custom-visual{grid-template-columns:1fr;width:min(100%,720px)}
.course-visual-gallery.single-custom-visual .course-visual-card:not([hidden]){max-width:100%}
.course-visual-gallery.single-custom-visual .product-photo-frame{aspect-ratio:3/2}
.course-visual-card[hidden],.course-visual-note[hidden]{display:none!important}
@media(max-width:700px){
  #personnalisation .course-visual-gallery.single-custom-visual{grid-template-columns:1fr}
  #personnalisation .course-visual-gallery.single-custom-visual .product-photo-frame{aspect-ratio:3/2}
}

/* --- Autre : plaque détourée sur la couleur d'origine de la carte --- */
/* La carte utilise les mêmes proportions et le même centrage que les autres activités. */

/* Dans le configurateur Autre : uniquement la photo, sans liseré bleu autour. */
.course-visual-gallery.single-custom-visual .product-photo-frame{
  background:transparent;
  border:0;
  aspect-ratio:auto;
  overflow:visible;
}
.course-visual-gallery.single-custom-visual .product-photo-frame img{
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
}
@media(max-width:700px){
  #personnalisation .course-visual-gallery.single-custom-visual .product-photo-frame{aspect-ratio:auto}
}

/* --- Nos réalisations : galerie légère, sans recadrage --- */
#realisations{scroll-margin-top:78px}
.realisations-section{
  padding:78px 7vw 86px;
  border-top:1px solid rgba(31,29,26,.10);
  background:#eee8de;
}
.realisations-heading{
  max-width:720px;
  margin:0 auto 38px;
  text-align:center;
}
.realisations-heading .eyebrow{
  margin:0 0 12px;
  font-size:.7rem;
  letter-spacing:.18em;
  opacity:.58;
}
.realisations-heading h2{
  margin:0;
  font-family:"Playfair Display",serif;
  font-size:clamp(2.25rem,4vw,4rem);
  font-weight:600;
  line-height:1.03;
}
.realisations-heading>p:last-child{
  margin:14px auto 0;
  font-size:.92rem;
  line-height:1.6;
  opacity:.62;
}
.realisations-grid{
  column-count:3;
  column-gap:16px;
  max-width:1400px;
  margin:0 auto;
}
.realisations-item{
  display:block;
  width:100%;
  margin:0 0 16px;
  padding:0;
  border:0;
  background:transparent;
  break-inside:avoid;
  cursor:zoom-in;
  overflow:hidden;
}
.realisations-item img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  object-fit:contain;
  background:transparent;
  transition:transform .25s ease,filter .25s ease;
}
.realisations-item:hover img,.realisations-item:focus-visible img{
  transform:scale(1.012);
  filter:contrast(1.02);
}
.realisations-item:focus-visible{outline:1px solid #1f1d1a;outline-offset:4px}
.photo-lightbox.gallery-mode img{
  max-width:min(92vw,1280px)!important;
  max-height:88vh!important;
}
@media(max-width:1050px){
  .site-header nav{gap:16px}
  .realisations-grid{column-count:2}
}
@media(max-width:700px){
  .realisations-section{padding:58px 20px 64px}
  .realisations-heading{margin-bottom:26px}
  .realisations-grid{column-gap:10px}
  .realisations-item{margin-bottom:10px}
  .photo-lightbox.gallery-mode img{max-width:92vw!important;max-height:82vh!important}
}
@media(max-width:480px){
  .realisations-grid{column-count:1}
}

/* --- Galerie sur page dédiée --- */
.gallery-standalone{min-height:calc(100vh - 78px);padding-top:96px}
.realisations-heading h1{margin:0;font-family:"Playfair Display",serif;font-size:clamp(2.25rem,4vw,4rem);font-weight:600;line-height:1.03}
.gallery-page .site-header nav a[aria-current="page"]{border-bottom:1px solid currentColor}
.gallery-return{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:700px){.gallery-standalone{padding-top:72px}.gallery-page .gallery-return{display:none}}

/* --- Un projet particulier : mise en page plus aérée --- */
.contact-banner{
  padding:58px 0 62px;
  gap:72px;
}
.contact-banner-copy{max-width:820px}
.contact-banner h2{margin-bottom:22px}
.contact-banner-copy p{
  max-width:720px;
  font-size:.92rem;
  line-height:1.8;
}
.contact-banner-copy .contact-direct-email{
  margin-top:20px;
}
.contact-details summary{
  padding:14px 22px;
}
@media(max-width:900px){
  .contact-banner{
    padding:46px 0 50px;
    gap:28px;
  }
  .contact-banner h2{margin-bottom:18px}
  .contact-banner-copy .contact-direct-email{margin-top:16px}
}
@media(max-width:600px){
  .contact-banner{
    padding:38px 0 42px;
  }
  .contact-banner-copy p{line-height:1.72}
}

/* --- Contact : vraie fenêtre modale premium --- */
.contact-open-button{
  appearance:none;
  border:1px solid rgba(31,29,26,.5);
  background:transparent;
  color:inherit;
  padding:15px 24px;
  min-width:170px;
  font:600 .82rem/1 "DM Sans",sans-serif;
  cursor:pointer;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
.contact-open-button:hover{background:#1f1d1a;color:#fff;border-color:#1f1d1a;transform:translateY(-1px)}
.contact-modal[hidden]{display:none!important}
.contact-modal{position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:28px}
.contact-modal-backdrop{position:absolute;inset:0;background:rgba(18,17,15,.58);backdrop-filter:blur(4px)}
.contact-modal-panel{
  position:relative;
  z-index:1;
  width:min(680px,96vw);
  max-height:min(760px,92vh);
  overflow:auto;
  background:#f8f6f1;
  border:1px solid rgba(31,29,26,.12);
  box-shadow:0 30px 90px rgba(18,17,15,.3);
  padding:42px 44px 38px;
}
.contact-modal-close{
  position:absolute;top:16px;right:18px;
  width:38px;height:38px;border:0;background:transparent;color:#1f1d1a;
  font-size:1.9rem;line-height:1;cursor:pointer;opacity:.65
}
.contact-modal-close:hover{opacity:1}
.contact-modal-heading{padding-right:42px;margin-bottom:28px}
.contact-modal-kicker{display:block;margin-bottom:10px;font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.48}
.contact-modal-heading h2{font-family:"Playfair Display",serif;font-size:clamp(2rem,4vw,3.25rem);font-weight:600;line-height:1.02;margin:0 0 14px}
.contact-modal-heading p{margin:0;max-width:560px;font-size:.9rem;line-height:1.7;opacity:.68}
.contact-modal-form{gap:18px}
.contact-modal-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-modal-form label{display:grid;gap:7px}
.contact-modal-form label>span{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.58}
.contact-modal-form input,.contact-modal-form select,.contact-modal-form textarea{
  width:100%;border:1px solid rgba(31,29,26,.18);background:#fff;padding:13px 14px;outline:none;color:#1f1d1a;border-radius:0
}
.contact-modal-form input:focus,.contact-modal-form select:focus,.contact-modal-form textarea:focus{border-color:rgba(31,29,26,.7);box-shadow:0 0 0 2px rgba(31,29,26,.05)}
.contact-modal-form textarea{min-height:128px;resize:vertical}
.contact-modal-actions{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:18px;margin-top:2px}
.contact-modal-actions .button{margin:0;white-space:nowrap}
.contact-modal-actions .privacy-inline-note{margin:0;font-size:.67rem;line-height:1.45;opacity:.55}
body.contact-modal-open{overflow:hidden}

/* Avis : l'ancre doit présenter tout le bandeau au centre de la zone visible. */
#avis{scroll-margin-top:0}

@media(max-width:700px){
  .contact-modal{padding:14px}
  .contact-modal-panel{width:100%;max-height:94vh;padding:34px 22px 28px}
  .contact-modal-row{grid-template-columns:1fr;gap:16px}
  .contact-modal-actions{grid-template-columns:1fr;gap:12px}
  .contact-modal-actions .button{width:100%}
  .contact-open-button{width:100%}
}

/* --- À propos : photographie éditoriale sous le titre --- */
.about-heading-block{min-width:0}
.about-feature-image{
  display:block;
  width:100%;
  aspect-ratio:3/2;
  object-fit:cover;
  object-position:center;
  margin-top:34px;
  box-shadow:0 18px 42px rgba(0,0,0,.18);
}
@media(max-width:900px){
  .about-feature-image{width:min(100%,760px);margin-top:28px}
}
@media(max-width:600px){
  .about-feature-image{margin-top:22px}
}

/* --- À propos : alignement du texte avec la photographie --- */
@media(min-width:901px){
  .about-copy.about-copy-airy{
    align-self:start!important;
    padding-top:56px;
  }
  .about-copy.about-copy-airy .about-divider{
    margin-top:2px;
  }
}

/* --- Apparition progressive des cartes d'activités au défilement --- */
#creations .category-card.activity-reveal-ready{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .42s ease, transform .42s cubic-bezier(.22,.61,.36,1);
  will-change:opacity,transform;
}
#creations .category-card.activity-reveal-ready.activity-reveal-visible{
  opacity:1;
  transform:translateY(0);
}
@media(prefers-reduced-motion:reduce){
  #creations .category-card.activity-reveal-ready{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}
@media(max-width:900px){
  .about-copy.about-copy-airy{padding-top:0!important}
}

/* --- Accueil : micro-zoom tactile de la plaque au survol --- */
#creations .category-card .activity-card-plaque{
  transform:scale(1);
  transform-origin:center center;
  transition:transform .22s cubic-bezier(.22,.61,.36,1), filter .22s ease;
  will-change:transform;
}
@media (hover:hover) and (pointer:fine){
  #creations .category-card:hover .activity-card-plaque,
  #creations .category-card:focus-visible .activity-card-plaque{
    transform:scale(1.028);
    filter:drop-shadow(0 12px 14px rgba(31,29,26,.26));
  }
  #creations .category-card:active .activity-card-plaque{
    transform:scale(1.018);
    transition-duration:.1s;
  }
}
@media(prefers-reduced-motion:reduce){
  #creations .category-card .activity-card-plaque{
    transition:none!important;
  }
}


/* --- Aperçu packaging : photos réelles optimisées --- */
.compare-photo-placeholder.has-image{
  min-height:0;
  display:block;
  background:transparent;
  border:0;
}
.packaging-preview-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  max-width:900px;
  margin:0 auto;
  align-items:start;
}
.packaging-preview-card{
  margin:0;
  background:#fff;
  border:1px solid rgba(31,29,26,.12);
  overflow:hidden;
}
.packaging-preview-card img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.packaging-preview-card figcaption{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:9px 10px 10px;
  color:#1f1d1a;
}
.packaging-preview-card figcaption strong{
  font-size:.74rem;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.packaging-preview-card figcaption span{
  padding:0;
  background:transparent;
  font-size:.74rem;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
}
.packaging-preview-card-standard{grid-column:auto}
@media(max-width:760px){
  .packaging-preview-grid{grid-template-columns:1fr;gap:12px;max-width:430px}
}

/* --- Centrage aperçu packaging --- */
#compareModalTitle{
  text-align:center;
}
.packaging-preview-card figcaption{
  text-align:center;
  align-items:center;
}


/* --- Aperçu des tailles : photo comparative réelle --- */
.size-guide-preview{
  width:100%;
  margin:0 auto;
}
.size-guide-preview img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}


/* --- Aperçu des tailles : ouverture directement centrée sur l'image --- */
.compare-modal.size-preview-mode{
  align-items:center;
  justify-content:center;
  padding:18px;
}
.compare-modal.size-preview-mode .compare-modal-dialog{
  width:min(980px,96vw);
  max-height:96vh;
  padding:0;
  overflow:visible;
  background:transparent;
  box-shadow:none;
  display:flex;
  align-items:center;
  justify-content:center;
}
.compare-modal.size-preview-mode #compareModalEyebrow,
.compare-modal.size-preview-mode #compareModalTitle,
.compare-modal.size-preview-mode #compareModalCopy{
  display:none;
}
.compare-modal.size-preview-mode .compare-photo-placeholder{
  width:100%;
  min-height:0;
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
}
.compare-modal.size-preview-mode .size-guide-preview{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.compare-modal.size-preview-mode .size-guide-preview img{
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:90vh;
  object-fit:contain;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.compare-modal.size-preview-mode .compare-modal-close{
  position:fixed;
  top:18px;
  right:22px;
  z-index:3;
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(248,246,241,.94);
  color:#1f1d1a;
  box-shadow:0 6px 22px rgba(0,0,0,.22);
}
@media(max-width:600px){
  .compare-modal.size-preview-mode{padding:10px}
  .compare-modal.size-preview-mode .compare-modal-dialog{width:98vw;max-height:98vh}
  .compare-modal.size-preview-mode .size-guide-preview img{max-height:92vh}
  .compare-modal.size-preview-mode .compare-modal-close{top:10px;right:10px}
}

/* Empreinte Outdoor — symbole de marque */
.brand{display:inline-flex;align-items:center;gap:9px;white-space:nowrap}
.brand-mark{display:block;width:26px;height:26px;object-fit:contain;flex:0 0 auto}
@media(max-width:600px){.brand{gap:7px}.brand-mark{width:22px;height:22px}}

/* --- Update configurateur / panier 23-08-2026 --- */
.field-char-counter{display:block;margin-top:5px;font-size:.66rem;opacity:.5;text-align:right}
.configurator-reset-row{display:flex;justify-content:flex-end;margin-top:8px}
.reset-configurator,.continue-shopping,.edit-item,.checkout-edit-item{border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit;color:inherit}
.reset-configurator{font-size:.72rem;opacity:.62;padding:4px 0}
.continue-shopping{width:100%;margin-top:10px;padding:9px;font-size:.78rem;opacity:.72}
.cart-item-number{margin:0 0 8px;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.48}
.cart-item-actions{gap:16px;align-items:center}
.edit-item,.remove-item{font-size:.72rem}
.checkout-edit-item{display:block;margin:12px 0 0 auto;font-size:.7rem;opacity:.7}
.button.primary:disabled{opacity:.38;cursor:not-allowed;filter:grayscale(1)}


/* À propos : texte de droite aligné avec le départ de la photographie. */
@media(min-width:901px){
  .about-copy.about-copy-airy{
    align-self:start!important;
    padding-top:clamp(150px,12vw,192px)!important;
    max-width:500px;
  }
  .about-copy.about-copy-airy p{
    line-height:1.72;
  }
}

.field-legal-note{display:block;margin-top:6px;font-size:.68rem;line-height:1.35;font-weight:400;opacity:.62}

/* --- Passe responsive mobile/tablette 23-08-2026 --- */
.section-heading-copy{display:grid;gap:10px;align-content:end}
.section-heading-copy>p{margin:0;max-width:520px;line-height:1.7}
.gallery-inline-link{display:inline-block;width:max-content;max-width:100%;font-size:.78rem;font-weight:600;text-decoration:underline;text-underline-offset:4px;opacity:.72}
.gallery-inline-link:hover{opacity:1}

/* Le récapitulatif précède désormais les coordonnées, sur toutes les tailles d'écran. */
.checkout-layout{grid-template-columns:1fr!important;gap:26px!important;min-width:0}
.checkout-summary{position:static!important;border-left:0!important;border-top:0!important;border-bottom:1px solid rgba(31,29,26,.14);padding:0 0 24px!important;min-width:0}
.checkout-form,.checkout-section,.shipping-section,.shipping-options,.relay-picker{min-width:0;max-width:100%}
.checkout-dialog{overflow-x:hidden;max-width:calc(100vw - 24px)}
.checkout-form input,.checkout-form select,.checkout-form textarea{min-width:0;max-width:100%}
.shipping-option{grid-template-columns:auto minmax(0,1fr) auto!important;min-width:0;max-width:100%}
.shipping-option>span{min-width:0}
.shipping-option strong,.shipping-option small{overflow-wrap:anywhere}
.shipping-option b{white-space:nowrap}
.checkout-summary-item-head,.checkout-summary-detail,.checkout-summary-shipping,.checkout-summary-total{min-width:0}
.checkout-summary-item-head>*,.checkout-summary-detail>*{min-width:0}
.checkout-legal-consent span{min-width:0;overflow-wrap:anywhere}

/* Lightbox : centrage basé sur le viewport visible, y compris Safari/Chrome mobile. */
.photo-lightbox{width:100vw;height:100dvh;min-height:100svh;padding:clamp(16px,4vw,48px);overflow:hidden;place-content:center}
.photo-lightbox img{margin:auto;max-width:min(92vw,920px);max-height:min(82dvh,820px);object-position:center center}

/* Contact : aucune fenêtre ne peut dépasser la largeur réelle du téléphone. */
.contact-modal{width:100vw;height:100dvh;max-width:100vw;overflow:hidden}
.contact-modal-panel{width:min(680px,calc(100vw - 28px));max-width:calc(100vw - 28px);overflow-x:hidden}
.contact-modal-form,.contact-modal-row,.contact-modal-actions,.contact-modal-form label{min-width:0;max-width:100%}
.contact-modal-form input,.contact-modal-form select,.contact-modal-form textarea{min-width:0;max-width:100%}

@media(max-width:800px){
  .checkout-dialog{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;padding:24px 18px!important;max-height:calc(100dvh - 16px)!important}
  .checkout-heading{gap:10px}
  .checkout-heading h2{font-size:clamp(1.75rem,8vw,2.35rem)}
  .checkout-layout{padding-top:22px!important}
  .checkout-summary{padding-bottom:20px!important}
  .checkout-summary h3{font-size:1.18rem}
  .checkout-two-columns,.checkout-address-grid{grid-template-columns:1fr!important}
}

@media(max-width:600px){
  /* Header sur deux lignes : marque + panier, puis recherche. */
  .site-header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    column-gap:12px!important;
    row-gap:9px!important;
    padding:11px 14px 10px!important;
  }
  .site-header>.brand{
    min-width:0;
    font-size:.72rem!important;
    letter-spacing:.115em!important;
    gap:6px!important;
    white-space:nowrap;
  }
  .site-header>.brand .brand-mark{width:18px!important;height:18px!important}
  .site-header nav{
    grid-column:1 / -1!important;
    grid-row:2!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
  }
  .site-header nav>a{display:none!important}
  .header-activity-search{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:5px 1px 6px!important;
  }
  .header-activity-search input{font-size:.82rem!important}
  .cart-button{
    grid-column:2!important;
    grid-row:1!important;
    padding:7px 9px!important;
    font-size:.76rem!important;
    white-space:nowrap;
  }
  .cart-button span{width:19px!important;height:19px!important;margin-left:5px!important;font-size:.67rem!important}

  .section-heading{grid-template-columns:1fr!important;gap:14px!important}
  .section-heading-copy{gap:8px}
  .gallery-inline-link{font-size:.76rem}

  .cart-drawer{width:100vw!important;max-width:100vw!important;padding:18px 16px!important}
  .cart-header{flex:0 0 auto}
  .cart-items{overscroll-behavior:contain}

  .checkout-modal{padding:0!important;align-items:stretch!important}
  .checkout-dialog{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    padding:22px 16px 30px!important;
    border-radius:0!important;
  }
  .checkout-heading{padding-bottom:16px}
  .checkout-layout{gap:22px!important;padding-top:18px!important}
  .checkout-summary-item-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important}
  .checkout-summary-detail{gap:8px!important}
  .checkout-summary-detail span:last-child{max-width:62%;overflow-wrap:anywhere}
  .shipping-option{padding:12px 10px!important;gap:9px!important}
  .shipping-option b{font-size:.74rem!important}
  .relay-picker{padding:12px!important}
  .relay-picker-head{grid-template-columns:1fr!important;gap:10px!important}
  .relay-search-button{width:100%!important}

  .photo-lightbox{padding:18px 12px!important;align-items:center!important;justify-content:center!important}
  .photo-lightbox img{max-width:94vw!important;max-height:78dvh!important;margin:auto!important}

  .contact-modal{padding:8px!important;align-items:stretch!important}
  .contact-modal-panel{
    width:100%!important;
    max-width:100%!important;
    max-height:calc(100dvh - 16px)!important;
    padding:30px 16px 24px!important;
    margin:auto 0!important;
  }
  .contact-modal-heading{padding-right:32px!important;margin-bottom:22px!important}
  .contact-modal-heading h2{font-size:clamp(1.8rem,9vw,2.35rem)!important}
  .contact-modal-row{grid-template-columns:1fr!important;gap:14px!important}
  .contact-modal-actions{grid-template-columns:1fr!important;gap:10px!important}
  .contact-modal-actions .button{width:100%!important}
}

@media(max-width:360px){
  .site-header>.brand{font-size:.66rem!important;letter-spacing:.09em!important}
  .site-header>.brand .brand-mark{width:17px!important;height:17px!important}
  .cart-button{padding:6px 8px!important;font-size:.72rem!important}
  .checkout-dialog{padding-left:13px!important;padding-right:13px!important}
}

/* --- Correctifs tablette 768 / petit desktop 1024 — 23-08-2026 --- */
/* Tablette portrait : conserver les trois plaques entièrement visibles dans le hero. */
@media (min-width:601px) and (max-width:900px){
  .hero-split-product{
    background-size:contain!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
    background-color:#101214!important;
  }
}

/* Petit desktop / tablette paysage : aligner le texte À propos sur le haut du titre. */
@media (min-width:901px) and (max-width:1100px){
  .about-copy.about-copy-airy{
    align-self:start!important;
    padding-top:0!important;
    margin-top:0!important;
  }
}

/* --- Hero responsive fluide tablette 601–900 px — 23-08-2026 ---
   Le bloc visuel grandit progressivement avec la largeur de l'écran.
   La zone produit conserve un ratio proche de la photo 3:2 afin de montrer
   les trois plaques sans les rapetisser ni les couper fortement. */
@media (min-width:601px) and (max-width:900px){
  .hero-art.hero-art-split{
    width:100%!important;
    height:clamp(520px,92vw,820px)!important;
    grid-template-rows:40% 60%!important;
    gap:7px!important;
  }
  .hero-split-product{
    background-size:cover!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
  }
  .hero-split-mountain{
    background-size:cover!important;
    background-position:center 48%!important;
  }
  .hero-product-title{
    top:calc(40% + 18px)!important;
  }
}

/* --- Correctif final hero tablette : les deux visuels grandissent ensemble --- */
@media (min-width:601px) and (max-width:900px){
  .hero-art.hero-art-split{
    width:100%!important;
    height:clamp(500px,82vw,700px)!important;
    grid-template-rows:minmax(0,1fr) minmax(0,1fr)!important;
    gap:7px!important;
  }
  .hero-split-mountain,
  .hero-split-product{
    min-height:0!important;
    height:100%!important;
  }
  .hero-split-mountain{
    background-size:cover!important;
    background-position:center 48%!important;
  }
  .hero-split-product{
    background-size:contain!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
    background-color:#101214!important;
  }
  .hero-product-title{
    top:calc(50% + 18px)!important;
  }
}

/* --- Centrage du sous-titre Mes créations sur tablette --- */
@media (min-width:601px) and (max-width:900px){
  #creations .section-heading,
  #creations .section-heading>div,
  #creations .section-heading-copy{
    text-align:center!important;
    justify-items:center!important;
  }
  #creations .section-heading-copy>p{
    width:100%!important;
    max-width:520px!important;
    margin:0 auto!important;
    text-align:center!important;
  }
}

/* Point 6 — état vide des avis : aucun contenu fictif avant les premiers vrais avis. */
.reviews-empty-state {
  min-height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
  border-top: 1px solid rgba(31, 31, 29, 0.12);
  border-bottom: 1px solid rgba(31, 31, 29, 0.12);
}
.reviews-empty-state p {
  margin: 0;
  opacity: 0.62;
}


/* === Correctifs d'alignement validés === */

/* "Mes créations" : titre + sous-titre réellement centrés dans la largeur de la section. */
#creations .section-heading{
  display:block!important;
  text-align:center!important;
}
#creations .section-heading > div,
#creations .section-heading-copy{
  width:100%!important;
  text-align:center!important;
}
#creations .section-heading-copy{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
}
#creations .section-heading-copy > p{
  width:100%!important;
  max-width:520px!important;
  margin:0 auto!important;
  text-align:center!important;
}
#creations .gallery-inline-link{
  margin-left:auto!important;
  margin-right:auto!important;
}

/* À propos desktop/tablette paysage :
   la première ligne du texte de droite démarre au niveau du titre
   "Quand un souvenir devient un objet", pas au niveau du surtitre À PROPOS. */
@media (min-width:901px){
  #apropos .about-copy.about-copy-airy{
    align-self:start!important;
    margin-top:0!important;
    padding-top:50px!important;
  }
  #apropos .about-copy.about-copy-airy > .about-lead{
    margin-top:0!important;
  }
}
@media (max-width:900px){
  #apropos .about-copy.about-copy-airy{
    padding-top:0!important;
  }
}


/* === Accessibilité / compatibilité finale === */
.skip-link{
  position:fixed;
  z-index:9999;
  top:10px;
  left:10px;
  transform:translateY(-160%);
  background:#1f1d1a;
  color:#fff;
  padding:10px 14px;
  border-radius:4px;
  font-size:.82rem;
  font-weight:700;
}
.skip-link:focus{
  transform:translateY(0);
}

/* Focus clavier visible et cohérent */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
summary:focus-visible{
  outline:3px solid currentColor;
  outline-offset:3px;
}

/* Réduire les animations si demandé par le système */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

/* Éviter les débordements horizontaux accidentels */
html,body{max-width:100%;overflow-x:hidden}
img,svg,video{max-width:100%}

/* Mes créations : plus de respiration entre le titre et son sous-titre */
#creations .section-heading{
  margin-bottom:50px!important;
}
#creations .section-heading > div:first-child{
  margin-bottom:16px!important;
}
#creations .section-heading-copy{
  gap:12px!important;
}
#creations .section-heading-copy > p{
  line-height:1.65!important;
}

/* Contraste légèrement renforcé sur les petits textes fonctionnels */
.privacy-inline-note,
.file-help,
.contact-status,
.custom-project-status{
  opacity:.78;
}

/* Zones tactiles minimales sur mobile */
@media (max-width:900px){
  button,
  .button,
  summary,
  .gallery-inline-link,
  .cart-button{
    min-height:44px;
  }
  .gallery-inline-link{
    display:inline-flex!important;
    align-items:center;
  }
}


/* === Checkout final — organisation simplifiée === */
.checkout-dialog-refined{
  width:min(760px,calc(100vw - 32px))!important;
  max-width:760px!important;
  padding:34px 42px 38px!important;
}
.checkout-heading-centered{
  position:relative;
  display:block!important;
  text-align:center;
  padding-right:0!important;
}
.checkout-heading-centered>div{
  width:100%;
}
.checkout-heading-centered .eyebrow{
  text-align:center!important;
}
.checkout-heading-centered h2{
  text-align:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.checkout-heading-centered .checkout-close{
  position:absolute;
  right:0;
  top:0;
}
.checkout-form-refined{
  display:grid;
  gap:28px;
  padding-top:28px;
}
.checkout-order-review{
  display:grid;
  gap:30px;
}
.checkout-summary-item-refined{
  padding:0!important;
  border:0!important;
}
.checkout-summary-item-refined + .checkout-summary-item-refined{
  padding-top:28px!important;
  border-top:1px solid rgba(31,29,26,.18)!important;
}
.checkout-plaque-title{
  margin:0 0 17px;
  text-align:center;
  font-family:"Playfair Display",serif;
  font-size:1.16rem;
  line-height:1.25;
  font-weight:600;
}
.checkout-product-table{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  width:100%;
  border-top:1px solid rgba(31,29,26,.17);
  border-bottom:1px solid rgba(31,29,26,.17);
}
.checkout-product-cell{
  min-width:0;
  text-align:center;
  padding:9px 8px;
  overflow-wrap:anywhere;
}
.checkout-product-cell:not(:nth-child(3n+1)){
  border-left:1px solid rgba(31,29,26,.10);
}
.checkout-product-heading{
  padding-bottom:6px;
  font-size:.62rem;
  line-height:1.3;
  font-weight:700;
  letter-spacing:.08em;
  opacity:.50;
}
.checkout-product-value{
  padding-top:6px;
  font-size:.86rem;
  line-height:1.35;
  font-weight:600;
}
.checkout-thin-separator{
  height:1px;
  margin:20px 0 17px;
  background:rgba(31,29,26,.13);
}
.checkout-engraving-block h4{
  margin:0 0 10px;
  font-family:"DM Sans",sans-serif;
  font-size:.78rem;
  font-weight:700;
}
.checkout-engraving-table{
  border-top:1px solid rgba(31,29,26,.10);
  border-bottom:1px solid rgba(31,29,26,.10);
}
.checkout-engraving-row{
  display:grid;
  grid-template-columns:minmax(105px,.7fr) minmax(0,1.3fr);
  align-items:baseline;
  gap:18px;
  padding:8px 3px;
  font-size:.78rem;
  line-height:1.4;
}
.checkout-engraving-row + .checkout-engraving-row{
  border-top:1px solid rgba(31,29,26,.075);
}
.checkout-engraving-label{
  opacity:.52;
}
.checkout-engraving-value{
  font-size:.88rem;
  font-weight:600;
  text-align:left;
  overflow-wrap:anywhere;
}
.checkout-no-engraving-data{
  margin:0;
  padding:9px 3px;
  font-size:.78rem;
  opacity:.58;
}
.checkout-item-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:9px;
}
.checkout-edit-item{
  font-size:.7rem!important;
}
.checkout-double-separator{
  position:relative;
  height:6px;
  border-top:1px solid rgba(31,29,26,.24);
  border-bottom:1px solid rgba(31,29,26,.24);
}
.checkout-shipping-refined{
  padding-top:0!important;
}
.checkout-shipping-refined>h3{
  margin-top:0;
}
.checkout-total-panel{
  margin-top:15px;
  padding-top:13px;
  border-top:1px solid rgba(31,29,26,.14);
  display:grid;
  gap:8px;
}
.checkout-total-panel>div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  font-size:.78rem;
}
.checkout-total-panel .checkout-total-main{
  padding-top:7px;
  border-top:1px solid rgba(31,29,26,.09);
  font-size:.96rem;
}
.checkout-total-main strong{
  font-size:1.14rem;
}
.checkout-relay-after-address{
  margin-top:-8px!important;
  padding:18px 0!important;
  border-top:1px solid rgba(31,29,26,.14)!important;
  border-bottom:1px solid rgba(31,29,26,.14)!important;
}
.checkout-form-refined .checkout-section{
  margin:0!important;
}
.checkout-form-refined .checkout-legal-consent{
  margin-top:-4px;
}
.checkout-form-refined .checkout-payment-button{
  margin-top:-8px;
}

@media(max-width:800px){
  .checkout-dialog-refined{
    width:calc(100vw - 16px)!important;
    max-width:calc(100vw - 16px)!important;
    padding:25px 19px 30px!important;
  }
  .checkout-form-refined{
    gap:24px;
    padding-top:22px;
  }
}
@media(max-width:520px){
  .checkout-heading-centered{
    padding:0 36px;
  }
  .checkout-heading-centered .checkout-close{
    right:0;
  }
  .checkout-product-heading{
    font-size:.56rem;
    letter-spacing:.045em;
    padding-left:4px;
    padding-right:4px;
  }
  .checkout-product-value{
    font-size:.78rem;
    padding-left:4px;
    padding-right:4px;
  }
  .checkout-engraving-row{
    grid-template-columns:minmax(88px,.8fr) minmax(0,1.2fr);
    gap:12px;
  }
  .checkout-engraving-value{
    font-size:.84rem;
  }
}
