:root{
  --bg:#f7f5f0; --panel:#ffffff; --border:#e4e0d4; --text:#241f19; --text-dim:#6b6558;
  --accent:#3f6b5c; --accent-dark:#2d4d42; --danger:#b3413a;
}
*{box-sizing:border-box;}
body{margin:0;font-family:-apple-system,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);}
a{color:var(--accent-dark);}
button{font-family:inherit;cursor:pointer;}

.site-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:var(--panel);border-bottom:1px solid var(--border);}
.site-header .brand{font-weight:700;text-decoration:none;color:var(--text);font-size:16px;}
.site-header nav a{margin-left:16px;font-size:14px;text-decoration:none;color:var(--text-dim);}
.flash-wrap{padding:10px 20px 0;}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:10px;font-size:14px;}
.flash-success{background:#e4f3ea;color:#1f6d43;}
.flash-error{background:#fbe7e5;color:var(--danger);}
main{max-width:1000px;margin:0 auto;padding:20px;}

.site-canvas{background:#fdfbf6;border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.blk-hero h1{margin:0 0 10px;font-family:Georgia,serif;font-size:32px;}
.blk-hero p{margin:0 0 16px;opacity:.85;}
.hero-cta{border:none;background:rgba(255,255,255,.15);color:inherit;padding:10px 20px;border-radius:8px;font-weight:600;}
.blk-text p{margin:0;line-height:1.6;max-width:640px;}
.blk-image img{display:block;width:100%;}
.caption{padding:8px 16px;font-size:13px;color:var(--text-dim);margin:0;}
.blk-products h2{margin:0 0 16px;font-family:Georgia,serif;}
.products-grid{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:16px;}
.product-card{border:1px solid var(--border);overflow:hidden;background:#fff;}
.product-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;}
.product-info{padding:12px;}
.product-info h3{margin:0 0 4px;font-size:15px;}
.price{font-weight:700;margin:0 0 10px;}
.add-cart-btn{width:100%;border:none;background:var(--text);color:#fff;padding:9px;border-radius:6px;}
.blk-button{padding:18px;}
.cta-link{display:inline-block;font-weight:600;text-decoration:none;}
.blk-footer p{margin:0;text-align:center;font-size:13px;}
.footer-social{margin:10px 0 0;font-size:12px;text-align:center;}
.footer-social a{color:inherit;opacity:.75;text-decoration:none;margin:0 8px;}
.footer-social a:hover{opacity:1;text-decoration:underline;}

.blk-logos h2{margin:0 0 16px;font-family:Georgia,serif;color:inherit;text-align:center;}
.logos-grid{display:grid;grid-template-columns:repeat(var(--lcols,4),1fr);gap:16px;}
.logo-item{background:#fff;border:1px solid var(--border);padding:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:110px;}
.logo-item img{max-width:100%;max-height:80px;object-fit:contain;}
.logo-caption{margin:8px 0 0;font-size:12px;color:var(--text-dim);text-align:center;}

.blk-contact h2{margin:0 0 8px;font-family:Georgia,serif;}
.blk-contact>p{margin:0 0 16px;opacity:.85;}
.contact-form{display:flex;flex-direction:column;gap:10px;max-width:420px;}
.contact-form input,.contact-form textarea{padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:14px;}
.contact-form button{align-self:flex-start;cursor:pointer;}

@media (max-width:640px){
  .products-grid,.logos-grid{grid-template-columns:repeat(2,1fr) !important;}
}
@media (max-width:420px){
  .products-grid,.logos-grid{grid-template-columns:1fr !important;}
}

.form-card,.admin-wrap{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:24px;max-width:480px;}
.admin-wrap{max-width:800px;}
.admin-wrap section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--border);}
.field{display:block;margin-bottom:12px;font-size:13px;color:var(--text-dim);}
.field input,.field textarea{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;}
.primary-btn{display:inline-block;border:none;background:var(--accent);color:#fff;padding:11px 18px;border-radius:8px;font-weight:600;text-decoration:none;font-size:14px;}
.hint{color:var(--text-dim);font-size:13px;}
#site-json{width:100%;font-family:ui-monospace,'SF Mono',monospace;font-size:12px;padding:10px;border:1px solid var(--border);border-radius:6px;}
.cart-row,.product-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);}
.cart-row img,.product-row img{width:44px;height:44px;border-radius:6px;object-fit:cover;}
.cart-row-info,.product-row-info{flex:1;font-size:13px;}
.cart-row button,.product-row button{border:1px solid var(--border);background:var(--panel);color:var(--text);padding:5px 9px;border-radius:6px;font-size:12px;}
.cart-total{text-align:right;font-size:16px;margin:14px 0;}
.pay-methods{display:flex;gap:18px;margin:14px 0;font-size:14px;}
.checkout-summary{font-size:14px;padding-left:20px;}
.orders-table{width:100%;border-collapse:collapse;font-size:13px;}
.orders-table th,.orders-table td{text-align:left;padding:8px;border-bottom:1px solid var(--border);}
.empty-hint{color:var(--text-dim);font-size:14px;padding:40px 20px;text-align:center;}

/* Adresses / autocomplétion */
.address-card{border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:10px;}
.address-card-head{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.badge-default{background:var(--accent);color:#fff;font-size:11px;padding:2px 8px;border-radius:999px;}
.address-card details{margin-top:8px;font-size:13px;}
.address-card summary{cursor:pointer;color:var(--accent-dark);font-size:13px;}
.address-card form{margin-top:10px;}
.danger-btn{border:1px solid var(--danger);background:transparent;color:var(--danger);padding:8px 14px;border-radius:6px;font-size:13px;margin-top:8px;}
.address-fields{position:relative;}
.autocomplete-list{position:absolute;z-index:5;left:0;right:0;background:var(--panel);border:1px solid var(--border);border-radius:6px;margin-top:-8px;box-shadow:0 4px 10px rgba(0,0,0,.08);}
.autocomplete-item{padding:8px 10px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--border);}
.autocomplete-item:last-child{border-bottom:none;}
.autocomplete-item:hover{background:var(--bg);}
.address-choice{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px;cursor:pointer;}
.address-choice input{margin-top:3px;}
.order-row{padding:10px 0;border-bottom:1px solid var(--border);font-size:13px;}
.account-wrap h2{font-size:16px;margin-top:28px;}
.account-wrap h3{font-size:14px;color:var(--text-dim);margin-top:18px;}

/* Fiche produit cliquable depuis la grille */
.product-card-link{display:block;color:inherit;text-decoration:none;}
.img-placeholder{display:flex;align-items:center;justify-content:center;background:#ece7da;color:#8a8471;font-size:13px;}

.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;}
@media (max-width:700px){.product-detail{grid-template-columns:1fr;}}
.product-gallery-main{width:100%;border-radius:10px;object-fit:cover;aspect-ratio:1;}
.product-gallery-thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.product-gallery-thumb{width:64px;height:64px;object-fit:cover;border-radius:6px;cursor:pointer;border:1px solid var(--border);}
.product-detail-info h1{margin:0 0 8px;font-family:Georgia,serif;}
.product-description{margin-top:20px;border-top:1px solid var(--border);padding-top:16px;}
.product-description h2{font-size:15px;margin:0 0 8px;}
.product-description p{line-height:1.6;color:var(--text-dim);}

/* Services */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media (max-width:640px){.services-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:420px){.services-grid{grid-template-columns:1fr;}}
.service-card{border:1px solid var(--border);overflow:hidden;background:#fff;}
.service-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;}
.service-info{padding:12px;}
.service-info h3{margin:0 0 4px;font-size:15px;}
.slot-day{font-weight:700;margin:16px 0 4px;font-size:13px;color:var(--text-dim);}
