/* ============================================================
   STYLE.CSS — Styles du site boutique (index.html)
   Ne pas modifier pour un nouveau client — toute personnalisation
   se fait dans config.js (couleurs, polices, textes).
   ============================================================ */

* { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --black: #111111;
  --white: #FFFFFF;
  --gray-100: #F5F5F3;
  --gray-200: #E8E8E4;
  --gray-400: #AAAAAA;
  --gray-600: #666666;
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Inter', system-ui, sans-serif;
}

body { font-family: var(--font-body); background: var(--white); color: var(--black); font-size: 15px; line-height: 1.6; }
a { text-decoration: none; color: inherit; }

/* NAV */
nav { position: sticky; top: 0; z-index: 100; background: var(--white); border-bottom: 1px solid var(--gray-200); display: flex; align-items: center; justify-content: space-between; padding: 0 48px; height: 64px; }
.nav-logo { display: flex; align-items: center; gap: 10px; font-family: var(--font-display); font-size: 26px; font-weight: 600; letter-spacing: 0.15em; }
.nav-logo img { height: 32px; width: auto; object-fit: contain; display: none; }

/* HERO */
.hero { display: grid; grid-template-columns: 1fr 1fr; min-height: 520px; }
.hero-text { background: var(--gray-100); padding: 80px 64px; display: flex; flex-direction: column; justify-content: center; }
.hero-text h1 { font-family: var(--font-display); font-size: 64px; font-weight: 400; line-height: 1.05; letter-spacing: -0.01em; margin-bottom: 20px; }
.hero-text p { color: var(--gray-600); font-size: 15px; max-width: 340px; line-height: 1.8; }
.hero-cta { display: inline-block; margin-top: 32px; padding: 13px 32px; background: var(--black); color: var(--white); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; transition: background 0.2s; align-self: flex-start; cursor: pointer; }
.hero-cta:hover { background: var(--gray-600); }
.hero-image { position: relative; overflow: hidden; }
.hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

/* SECTION */
.section-header { padding: 48px 48px 24px; display: flex; align-items: baseline; justify-content: space-between; border-bottom: 1px solid var(--gray-200); }
.section-header h2 { font-family: var(--font-display); font-size: 32px; font-weight: 400; }
.section-header span { font-size: 13px; color: var(--gray-400); letter-spacing: 0.04em; }
.catalogue { padding: 0 48px 48px; }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin-top: 2px; }

/* CATEGORY FILTERS */
.category-filters { display: flex; gap: 8px; flex-wrap: wrap; padding: 20px 48px 0; }
.filter-btn { border: 1px solid var(--gray-200); background: var(--white); padding: 8px 18px; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; transition: all 0.15s; font-family: var(--font-body); color: var(--gray-600); }
.filter-btn:hover { border-color: var(--black); color: var(--black); }
.filter-btn.active { background: var(--black); color: var(--white); border-color: var(--black); }

/* PRODUCT CARD */
.product-card { cursor: pointer; transition: opacity 0.2s; }
.product-card:hover { opacity: 0.85; }
.product-card.active { outline: 2px solid var(--black); outline-offset: -2px; }
.product-img { aspect-ratio: 3/4; background: var(--gray-100); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-size: 16px; color: var(--gray-400); position: relative; overflow: hidden; }
.product-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.product-card:hover .product-img img { transform: scale(1.03); }
.product-badge { position: absolute; top: 12px; left: 12px; background: var(--black); color: var(--white); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 8px; z-index: 1; }
.product-info { padding: 14px 0 8px; }
.product-name { font-size: 14px; font-weight: 500; margin-bottom: 4px; }
.product-desc { font-size: 13px; color: var(--gray-600); margin-bottom: 8px; }
.product-price { color: var(--black-400); font-size: 15px; font-weight: 700; }
.product-price .old { color: var(--gray-400); text-decoration: line-through; margin-right: 8px; font-size: 15px; }

/* PRODUCT DETAIL */
.product-detail { display: none; background: var(--gray-100); border-top: 1px solid var(--gray-200); padding: 48px; margin: 0 0 2px; }
.product-detail.open { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }

/* GALLERY */
.gallery-wrap { display: flex; flex-direction: column; gap: 8px; }
.gallery-main { aspect-ratio: 3/4; max-height: 600px; background: var(--gray-100); overflow: hidden; position: relative; }
.gallery-main img { width: 100%; height: 100%; object-fit: contain; background: var(--gray-100); transition: opacity 0.25s; }
.gallery-thumbs { display: flex; gap: 6px; flex-wrap: wrap; }
.gallery-thumb { width: 68px; height: 88px; background: var(--gray-200); overflow: hidden; cursor: pointer; border: 2px solid transparent; transition: border-color 0.15s; flex-shrink: 0; }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery-thumb.active { border-color: var(--black); }
.gallery-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-size: 18px; color: var(--gray-400); }

/* DETAIL CONTENT */
.detail-content h3 { font-family: var(--font-display); font-size: 36px; font-weight: 400; margin-bottom: 8px; }
.price-block { margin: 16px 0 24px; }
.price-main { color: var(--black-400); font-size: 16px; font-weight: 700; }
.price-old { font-size: 16px; color: var(--gray-400); text-decoration: line-through; margin-right: 10px; }
.detail-desc { color: var(--gray-600); margin-bottom: 28px; line-height: 1.8; }

/* FORM */
.order-form h4 { font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gray-400); margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--gray-200); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group.full { grid-column: 1 / -1; }
.form-group label { font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gray-600); }
.form-group input, .form-group select, .form-group textarea { border: 1px solid var(--gray-200); background: var(--white); padding: 10px 14px; font-size: 14px; font-family: var(--font-body); color: var(--black); outline: none; transition: border-color 0.2s; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--black); }
.form-group textarea { resize: vertical; min-height: 80px; }
.size-options { display: flex; gap: 8px; flex-wrap: wrap; }
.size-btn { border: 1px solid var(--gray-200); background: var(--white); padding: 8px 14px; font-size: 13px; cursor: pointer; transition: all 0.15s; font-family: var(--font-body); }
.size-btn:hover { border-color: var(--black); }
.size-btn.selected { background: var(--black); color: var(--white); border-color: var(--black); }
.qty-control { display: flex; align-items: center; }
.qty-btn { border: 1px solid var(--gray-200); background: var(--white); width: 36px; height: 36px; font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; font-family: var(--font-body); transition: background 0.15s; }
.qty-btn:hover { background: var(--gray-100); }
.qty-display { border-top: 1px solid var(--gray-200); border-bottom: 1px solid var(--gray-200); width: 48px; height: 36px; display: flex; align-items: center; justify-content: center; font-size: 15px; }
.submit-btn { width: 100%; background: var(--black); color: var(--white); border: none; padding: 14px; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; margin-top: 20px; font-family: var(--font-body); transition: background 0.2s; }
.submit-btn:hover { background: var(--gray-600); }
.success-msg { display: none; background: var(--white); border: 1px solid var(--gray-200); padding: 20px 24px; text-align: center; margin-top: 16px; }
.success-msg.show { display: block; }
.success-msg h5 { font-family: var(--font-display); font-size: 22px; font-weight: 400; margin-bottom: 6px; }
.success-msg p { font-size: 13px; color: var(--gray-600); }

.loading-grid { grid-column: 1/-1; text-align: center; padding: 60px 0; color: var(--gray-400); font-size: 14px; }
.empty-catalogue { grid-column: 1/-1; text-align: center; padding: 80px 20px; color: var(--gray-400); }
.empty-catalogue h3 { font-family: var(--font-display); font-size: 28px; font-weight: 400; margin-bottom: 8px; }

/* FOOTER */
footer { border-top: 1px solid var(--gray-200); padding: 40px 48px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 32px; background: var(--white); }
.footer-col h5 { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 16px; }
.footer-col p, .footer-col a { display: block; font-size: 13px; color: var(--gray-600); margin-bottom: 8px; transition: color 0.2s; }
.footer-col a:hover { color: var(--black); }
.footer-bottom { border-top: 1px solid var(--gray-200); padding: 20px 48px; font-size: 12px; color: var(--gray-400); display: flex; justify-content: space-between; align-items: center; }

@media (max-width: 768px) {
  nav { padding: 0 20px; }
  .hero { grid-template-columns: 1fr; }
  .hero-image { height: 320px; }
  .hero-text { padding: 48px 24px; }
  .hero-text h1 { font-size: 44px; }
  .section-header { padding: 32px 20px 16px; }
  .category-filters { padding: 16px 20px 0; }
  .catalogue { padding: 0 20px 32px; }
  .product-grid { grid-template-columns: 1fr 1fr; }
  .product-detail.open { grid-template-columns: 1fr; gap: 28px; padding: 28px 20px; }
  .form-grid { grid-template-columns: 1fr; }
  footer { grid-template-columns: 1fr; padding: 32px 20px; }
  .footer-bottom { padding: 16px 20px; flex-direction: column; gap: 8px; text-align: center; }
}
