
@import url('https://fonts.googleapis.com/css2?family=Anton&family=Work+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --bleu-nuit: #0F2A43;
  --bleu-nuit-2: #17395a;
  --ocre: #E8A33D;
  --ocre-dark: #c8842a;
  --brique: #C1443A;
  --olive: #7A8C6E;
  --lin: #F1E8D6;
  --lin-2: #e9dcc0;
  --encre: #1A1A1A;
  --blanc: #fffdf8;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--lin);
  color:var(--encre);
  font-family:'Work Sans',sans-serif;
  line-height:1.5;
}
h1,h2,h3,.display{
  font-family:'Anton',sans-serif;
  font-weight:400;
  letter-spacing:0.01em;
  text-transform:uppercase;
  line-height:1.05;
}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;}

:focus-visible{
  outline:3px solid var(--brique);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}

.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}

/* NAV */
header.nav{
  position:sticky; top:0; z-index:50;
  background:var(--bleu-nuit);
  border-bottom:4px solid var(--ocre);
}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px; max-width:1120px; margin:0 auto;
}
.logo{
  color:var(--blanc); font-family:'Anton',sans-serif; font-size:19px;
  letter-spacing:0.02em; text-decoration:none; display:flex; gap:9px; align-items:center;
}
.logo span{color:var(--ocre);}
.nav-links{display:flex; gap:28px; list-style:none; margin:0; padding:0;}
.nav-links a{
  color:var(--blanc); text-decoration:none; font-weight:600; font-size:14px;
  text-transform:uppercase; letter-spacing:0.06em; opacity:0.85;
  border-bottom:2px solid transparent; padding-bottom:2px;
}
.nav-links a:hover{opacity:1; border-color:var(--ocre);}
.burger{display:none; background:none; border:none; color:var(--blanc); font-size:26px;}
@media (max-width:760px){
  .nav-links{
    position:absolute; top:100%; left:0; right:0; background:var(--bleu-nuit);
    flex-direction:column; padding:16px 24px 24px; gap:16px;
    display:none;
  }
  .nav-links.open{display:flex;}
  .burger{display:block;}
}

/* HERO */
.hero{
  background:
    radial-gradient(circle at 85% 15%, rgba(232,163,61,0.4), transparent 50%),
    radial-gradient(circle at 8% 92%, rgba(193,68,58,0.32), transparent 55%),
    linear-gradient(160deg, #1a3a58 0%, #2c4f6c 55%, #3c5c72 100%);
  color:var(--blanc);
  padding:76px 0 90px;
  position:relative;
  overflow:hidden;
}
.hero .wrap{display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center;}
@media (max-width:860px){ .hero .wrap{grid-template-columns:1fr;} }

.eyebrow{
  font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:0.14em;
  font-size:12px; color:var(--ocre); margin-bottom:14px; display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--ocre);display:inline-block;}

.hero h1{font-size:clamp(38px,6vw,64px); margin:0 0 18px;}
.hero h1 em{font-style:normal; color:var(--ocre);}
.hero p.lead{font-size:18px; max-width:46ch; color:#e7dfce; margin-bottom:30px;}

.cta-row{display:flex; gap:14px; flex-wrap:wrap;}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 26px; border-radius:2px; font-weight:700; text-transform:uppercase;
  font-size:13px; letter-spacing:0.05em; text-decoration:none; border:2px solid transparent;
  transition:transform .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--brique); color:var(--blanc);}
.btn-ghost{background:transparent; color:var(--blanc); border-color:rgba(255,255,255,0.4);}
.btn-ghost:hover{border-color:var(--ocre);}

/* Stamp mockup in hero */
.stamp-demo{
  background:var(--blanc); border-radius:6px; padding:28px;
  box-shadow:0 30px 60px rgba(0,0,0,0.35);
  transform:rotate(-2deg);
  position:relative;
}
.stamp-demo::before{
  content:"RÉALISATION RÉELLE"; position:absolute; top:-12px; left:20px;
  background:var(--ocre); color:var(--bleu-nuit); font-family:'IBM Plex Mono',monospace;
  font-size:11px; padding:4px 10px; letter-spacing:0.08em; font-weight:600;
}
.mug-shape{
  width:100%; aspect-ratio:1/1; border-radius:10px;
  background:linear-gradient(160deg,#fff,#eee);
  display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
}
.mug-shape svg{width:78%; height:78%;}
.stamped-text{
  font-family:'Anton',sans-serif; text-transform:uppercase; fill:var(--bleu-nuit);
  animation:press-in 900ms cubic-bezier(.2,.9,.3,1.2) 400ms both;
}
@keyframes press-in{
  0%{opacity:0; transform:scale(1.4); filter:blur(2px);}
  60%{opacity:1;}
  100%{opacity:1; transform:scale(1); filter:blur(0);}
}
.caption-under{
  text-align:center; font-family:'IBM Plex Mono',monospace; font-size:12px;
  color:var(--encre); opacity:0.65; margin-top:14px;
}

/* SECTIONS generic */
section{padding:84px 0;}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head .eyebrow{color:var(--brique);}
.section-head .eyebrow::before{background:var(--brique);}
.section-head h2{font-size:clamp(28px,4vw,42px); color:var(--bleu-nuit);}
.section-head p{color:#4a4536; font-size:16px; max-width:56ch;}

/* PERSONALISER */
#personnaliser{background:var(--blanc); border-top:1px solid var(--lin-2); border-bottom:1px solid var(--lin-2);}
.configurator{
  display:grid; grid-template-columns:1fr 1fr; gap:40px;
  background:var(--lin); border:1px solid var(--lin-2); border-radius:8px; padding:32px;
}
@media (max-width:860px){ .configurator{grid-template-columns:1fr;} }

.product-tabs{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:22px;}
.p-tab{
  background:var(--blanc); border:2px solid var(--lin-2); padding:9px 16px; border-radius:20px;
  font-weight:600; font-size:13px; text-transform:uppercase; letter-spacing:0.02em;
}
.p-tab.active{background:var(--bleu-nuit); color:var(--blanc); border-color:var(--bleu-nuit);}

label.field-label{
  display:block; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase;
  letter-spacing:0.08em; margin:16px 0 6px; color:var(--bleu-nuit);
}
input[type=text], textarea, select{
  width:100%; padding:11px 12px; border:2px solid var(--lin-2); border-radius:4px;
  font-family:'Work Sans',sans-serif; font-size:15px; background:var(--blanc);
}
input[type=text]:focus, textarea:focus{border-color:var(--brique); outline:none;}

.swatches{display:flex; gap:10px; margin-top:4px;}
.swatch{
  width:34px;height:34px;border-radius:50%; border:3px solid var(--blanc);
  box-shadow:0 0 0 2px var(--lin-2); cursor:pointer;
}
.swatch.selected{box-shadow:0 0 0 2px var(--bleu-nuit);}

.opt-row{display:flex; align-items:center; gap:10px; margin-top:12px; font-size:14px;}
.opt-row input{width:auto;}

.preview-col{display:flex; flex-direction:column; align-items:center; justify-content:center;}
.preview-stage{
  width:100%; max-width:320px; aspect-ratio:1/1; background:var(--blanc);
  border-radius:10px; border:1px solid var(--lin-2); display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.preview-stage svg{width:82%; height:82%;}
.preview-label{
  font-family:'Anton',sans-serif; text-transform:uppercase; fill:var(--bleu-nuit); text-anchor:middle;
}

.price-box{
  margin-top:20px; width:100%; max-width:320px; background:var(--bleu-nuit); color:var(--blanc);
  border-radius:8px; padding:18px 20px;
}
.price-box .row{display:flex; justify-content:space-between; font-size:14px; padding:4px 0; opacity:0.85;}
.price-box .total{
  display:flex; justify-content:space-between; align-items:baseline; margin-top:10px;
  padding-top:10px; border-top:1px solid rgba(255,255,255,0.25);
  font-family:'Anton',sans-serif; font-size:26px; color:var(--ocre);
}
.price-box .total span:first-child{font-size:13px; font-family:'IBM Plex Mono',monospace; color:var(--blanc); text-transform:uppercase;}

.devis-actions{display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; max-width:320px;}
.devis-actions .btn{flex:1; justify-content:center; padding:12px 14px; font-size:12px;}
.btn-dark{background:var(--brique); color:var(--blanc);}
.btn-outline{background:transparent; color:var(--bleu-nuit); border:2px solid var(--bleu-nuit);}
.btn-paypal{background:#0070BA; color:var(--blanc);}
.btn-paypal:hover{background:#003087;}
.note{font-size:12px; color:#6b6650; margin-top:10px; max-width:320px;}

.payments{display:flex; gap:10px; margin-top:20px; flex-wrap:wrap;}
.pay-pill{
  font-family:'IBM Plex Mono',monospace; font-size:12px; border:1.5px solid var(--bleu-nuit);
  padding:6px 12px; border-radius:20px; color:var(--bleu-nuit); background:transparent;
}

.bank-details{
  background:var(--blanc); border:1px solid var(--lin-2); border-radius:8px;
  padding:16px; margin-top:12px; max-width:320px;
}
.bank-details-row{
  display:flex; justify-content:space-between; gap:10px; padding:4px 0;
  font-size:13px; color:var(--encre);
}
.bank-details-row span{color:#6b6650;}
.bank-details-row strong{font-family:'IBM Plex Mono',monospace; font-weight:600; letter-spacing:0.02em; text-align:right;}

.element-list{display:flex; flex-direction:column; gap:6px; margin:8px 0 4px;}
.element-row{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  background:var(--blanc); border:1.5px solid var(--lin-2); border-radius:6px;
  padding:7px 10px; font-size:12px; cursor:pointer;
}
.element-row.selected{border-color:var(--brique); background:#fdf3f1;}
.element-row .el-name{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1;}
.element-row .el-remove{
  background:none; border:none; color:var(--brique); font-weight:700; font-size:14px; cursor:pointer; flex-shrink:0;
}
.element-empty{font-size:12px; color:#8a836a; font-style:italic; margin:6px 0;}
#editorCanvas{cursor:grab;}
#editorCanvas.dragging{cursor:grabbing;}

/* GALLERY */
.gallery-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
}
@media (max-width:860px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }
.gal-item{
  background:var(--blanc); border:1px solid var(--lin-2); border-radius:8px; overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease;
}
.gal-item:hover{transform:translateY(-4px); box-shadow:0 16px 30px rgba(15,42,67,0.15);}
.gal-item img{width:100%; height:230px; object-fit:contain; background:var(--lin); object-position:center;}
.gal-cap{padding:12px 14px;}
.gal-cap .tag{
  font-family:'IBM Plex Mono',monospace; font-size:10px; text-transform:uppercase;
  letter-spacing:0.06em; color:var(--brique); display:block; margin-bottom:4px;
}
.gal-cap p{margin:0; font-size:14px; font-weight:600; color:var(--bleu-nuit);}

/* MUGS DISPONIBLES */
.mug-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
@media (max-width:860px){ .mug-grid{grid-template-columns:repeat(2,1fr);} }
.mug-item{
  background:var(--blanc); border:1px solid var(--lin-2); border-radius:8px; overflow:hidden;
  cursor:pointer; transition:transform .2s ease, box-shadow .2s ease; position:relative;
}
.mug-item:hover{transform:translateY(-4px); box-shadow:0 16px 30px rgba(15,42,67,0.15);}
.mug-item img{width:100%; height:190px; object-fit:cover; display:block; background:var(--lin);}
.mug-item .mug-price-tag{
  position:absolute; top:10px; right:10px; background:var(--brique); color:var(--blanc);
  font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; padding:4px 10px; border-radius:20px;
}
.mug-item .mug-count-tag{
  position:absolute; left:10px; bottom:56px; background:rgba(15,42,67,0.85); color:var(--blanc);
  font-family:'IBM Plex Mono',monospace; font-size:11px; padding:3px 9px; border-radius:20px;
}
.mug-item .mug-cap{padding:10px 14px; font-weight:600; color:var(--bleu-nuit); font-size:14px;}
.mug-item .mug-soldout-tag{
  position:absolute; top:10px; left:10px; background:#8a1f1f; color:var(--blanc);
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; padding:4px 10px; border-radius:20px;
  text-transform:uppercase; letter-spacing:.03em; z-index:2;
}
.mug-item.sold-out img{opacity:.5;}
.btn-disabled{opacity:.45; pointer-events:none; cursor:not-allowed;}

.mug-modal{position:fixed; inset:0; background:rgba(10,20,30,0.9); z-index:220; align-items:center; justify-content:center; padding:20px;}
.mug-modal-inner{background:var(--blanc); border-radius:10px; max-width:640px; width:100%; max-height:92vh; overflow:auto; position:relative; margin:0 auto;}
.mug-modal-close{position:absolute; top:10px; right:10px; background:rgba(15,42,67,0.9); color:#fff; border:none; border-radius:6px; width:34px; height:34px; font-size:18px; z-index:2; line-height:1;}
.mug-modal-main{width:100%; aspect-ratio:3/4; background:var(--lin); display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative;}
.mug-modal-share-photo{position:absolute; bottom:10px; right:10px; background:rgba(15,42,67,0.85); color:#fff; border:none; border-radius:50%; width:42px; height:42px; font-size:19px; z-index:2; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 4px 12px rgba(0,0,0,0.25);}
.mug-modal-share-photo:hover{background:rgba(15,42,67,1);}
.mug-modal-main img{width:100%; height:100%; object-fit:contain;}
.mug-modal-thumbs{display:flex; gap:8px; padding:12px; overflow-x:auto;}
.mug-modal-thumbs img{width:56px; height:56px; object-fit:cover; border-radius:6px; cursor:pointer; border:2px solid transparent; flex-shrink:0;}
.mug-modal-thumbs img.active{border-color:var(--brique);}
.mug-modal-footer{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:0 16px 18px; flex-wrap:wrap;}
.mug-modal-title{font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--bleu-nuit); font-size:18px;}
.mug-modal-price{font-family:'IBM Plex Mono',monospace; color:var(--brique); font-weight:700; font-size:14px; margin-top:4px;}
.mug-modal-price span#mugModalStockText{color:#6b6650; font-weight:600;}
.mug-modal-qty{display:flex; align-items:center; gap:8px; margin-top:8px; font-size:13px; color:var(--encre);}
.qty-btn{width:26px; height:26px; border-radius:6px; border:1px solid var(--lin-2); background:var(--blanc); cursor:pointer; font-size:16px; line-height:1; display:flex; align-items:center; justify-content:center; color:var(--bleu-nuit); font-family:inherit;}
.qty-btn:hover:not(:disabled){border-color:var(--brique); color:var(--brique);}
.qty-btn:disabled{opacity:0.35; cursor:not-allowed;}
#mugQtyValue{min-width:18px; text-align:center; font-family:'IBM Plex Mono',monospace; font-weight:700;}
.size-tabs{display:flex; gap:6px; flex-wrap:wrap; margin-top:10px;}
.size-tab{background:var(--blanc); border:1.5px solid var(--lin-2); padding:5px 11px; border-radius:6px; font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:12px; cursor:pointer; color:var(--bleu-nuit);}
.size-tab:hover{border-color:var(--brique);}
.size-tab.active{background:var(--brique); color:var(--blanc); border-color:var(--brique);}

/* Plaques en verre */
.verre-finish-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:30px;}
@media (max-width:860px){ .verre-finish-grid{grid-template-columns:1fr;} }
.verre-finish-card{
  background:var(--blanc); border:1px solid var(--lin-2); border-radius:8px; padding:22px;
  text-align:center;
}
.verre-finish-swatch{
  width:56px; height:56px; border-radius:50%; margin:0 auto 14px;
  box-shadow:0 0 0 4px var(--lin), 0 4px 10px rgba(15,42,67,0.15);
}
.verre-finish-name{font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--bleu-nuit); font-size:16px; margin-bottom:8px;}
.verre-finish-card p{font-size:14px; color:var(--encre); margin:0;}
.verre-custom-box{
  background:var(--bleu-nuit); color:var(--blanc); border-radius:8px;
  padding:32px; margin-bottom:44px; display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between;
}
.verre-custom-box h3{font-family:'Anton',sans-serif; text-transform:uppercase; letter-spacing:0.02em; font-size:22px; margin:0 0 10px; color:var(--ocre);}
.verre-custom-box p{max-width:60ch; color:#e7dfce; margin:0; font-size:15px; line-height:1.6;}
.verre-custom-box .verre-specs{
  list-style:none; padding:0; margin:14px 0 0; display:flex; flex-wrap:wrap; gap:10px;
}
.verre-custom-box .verre-specs li{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.04em;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25); border-radius:20px;
  padding:6px 12px; color:var(--blanc);
}

/* FAQ */
.faq-item{
  border-bottom:1px solid var(--lin-2); padding:18px 0;
}
.faq-q{
  display:flex; justify-content:space-between; align-items:center; cursor:pointer;
  font-weight:700; font-size:16px; color:var(--bleu-nuit); background:none; border:none; width:100%;
  text-align:left; padding:0;
}
.faq-q .plus{font-family:'Anton',sans-serif; font-size:22px; color:var(--brique); transition:transform .2s ease;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.faq-item.open .faq-a{max-height:220px;}
.faq-a p{margin:12px 0 0; color:#463f2c; font-size:15px; max-width:64ch;}

/* CART */
.cart-btn{
  position:relative; background:none; border:none; color:var(--blanc); font-size:22px;
  cursor:pointer; padding:4px 8px; line-height:1;
}
.cart-badge{
  position:absolute; top:-4px; right:-2px; background:var(--brique); color:var(--blanc);
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; border-radius:50%;
  width:18px; height:18px; display:flex; align-items:center; justify-content:center;
}
.cart-overlay{
  display:none; position:fixed; inset:0; background:rgba(10,20,30,0.6); z-index:220;
  align-items:center; justify-content:flex-end;
}
.cart-panel{
  background:var(--blanc); width:min(94vw,420px); height:100%; overflow-y:auto;
  padding:22px; box-shadow:-8px 0 24px rgba(0,0,0,0.18);
}
.cart-panel-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.cart-panel-head h3{font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--bleu-nuit); font-size:20px; margin:0;}
.cart-close{background:none; border:none; font-size:22px; cursor:pointer; color:var(--bleu-nuit);}
.cart-empty{color:#8a8272; font-size:14px; padding:24px 0; text-align:center;}
.cart-item{display:flex; gap:10px; padding:12px 0; border-bottom:1px solid var(--lin-2);}
.cart-item img{width:56px; height:56px; object-fit:cover; border-radius:6px; background:var(--lin); flex-shrink:0;}
.cart-item-info{flex:1; min-width:0;}
.cart-item-title{font-weight:700; font-size:13px; color:var(--bleu-nuit); line-height:1.3;}
.cart-item-meta{font-size:12px; color:#8a8272; margin-top:2px;}
.cart-item-row{display:flex; align-items:center; justify-content:space-between; margin-top:8px;}
.cart-item-qty{display:flex; align-items:center; gap:6px;}
.cart-item-remove{background:none; border:none; color:var(--brique); font-size:12px; cursor:pointer; text-decoration:underline; font-family:inherit;}
.cart-item-price{font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:13px; color:var(--bleu-nuit);}
.cart-total-row{display:flex; align-items:center; justify-content:space-between; padding:16px 0; margin-top:8px; border-top:2px solid var(--bleu-nuit); font-weight:700; color:var(--bleu-nuit);}
.cart-total-row span:last-child{font-family:'IBM Plex Mono',monospace; font-size:18px;}
.cart-subtotal-row{display:flex; align-items:center; justify-content:space-between; padding:4px 0; font-size:13px; color:#5a5346;}
.cart-subtotal-row span:last-child{font-family:'IBM Plex Mono',monospace;}
.cart-delivery{margin-top:14px; padding-top:14px; border-top:1px solid var(--lin-2);}
.cart-delivery-title{font-weight:700; font-size:13px; color:var(--bleu-nuit); margin-bottom:8px; text-transform:uppercase; letter-spacing:.02em;}
.delivery-option{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--encre); padding:6px 0; cursor:pointer;}
.delivery-option input{accent-color:var(--bleu-nuit); cursor:pointer;}
.cart-relais-point-wrap{margin-top:8px;}
.cart-relais-point-wrap .field-label{font-size:12px; margin-bottom:4px; display:block;}
.cart-relais-point-wrap input{width:100%; padding:9px 10px; border:1px solid var(--lin-2); border-radius:6px; font-family:inherit; font-size:13px; background:var(--lin);}
.note-warning{color:var(--brique); font-weight:700; font-size:12px; margin-top:8px; line-height:1.4;}
.cart-contact{margin:14px 0;}
.cart-contact-wrap{margin-top:8px;}
.cart-contact-wrap .field-label{font-size:12px; margin-bottom:4px; display:block;}
.cart-contact-wrap input{width:100%; padding:9px 10px; border:1px solid var(--lin-2); border-radius:6px; font-family:inherit; font-size:13px; background:var(--lin);}
.cart-actions{display:flex; flex-direction:column; gap:8px; margin-top:8px;}
.cart-added-toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px); opacity:0;
  background:var(--bleu-nuit); color:var(--blanc); padding:10px 18px; border-radius:8px; font-size:13px;
  z-index:260; transition:opacity .25s ease, transform .25s ease; pointer-events:none;
}
.cart-added-toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* CONTACT */
#contact{background:var(--bleu-nuit); color:var(--blanc);}
#contact .section-head .eyebrow{color:var(--ocre);}
#contact .section-head .eyebrow::before{background:var(--ocre);}
#contact .section-head h2{color:var(--blanc);}
#contact .section-head p{color:#cfd6dd;}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:36px;}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }
.contact-cards{display:flex; flex-direction:column; gap:16px;}
.c-card{
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.15);
  border-radius:8px; padding:20px; display:flex; gap:14px; align-items:center;
  text-decoration:none; color:var(--blanc);
}
.c-card:hover{border-color:var(--ocre);}
.c-icon{
  width:44px; height:44px; border-radius:50%; background:var(--ocre); color:var(--bleu-nuit);
  display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; font-weight:700;
}
.c-card .c-title{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; opacity:0.7;}
.c-card .c-val{font-weight:700; font-size:16px;}

.contact-form{background:var(--blanc); color:var(--encre); border-radius:8px; padding:26px;}
.contact-form label.field-label{color:var(--bleu-nuit);}
.contact-form textarea{min-height:110px; resize:vertical;}
.star-rating{display:flex; flex-direction:row-reverse; justify-content:flex-end; gap:4px; font-size:30px; margin-bottom:16px;}
.star-rating input{position:absolute; opacity:0; pointer-events:none;}
.star-rating label{color:#d8d0be; cursor:pointer; transition:color .15s ease; line-height:1;}
.star-rating input:checked ~ label,
.star-rating label:hover,
.star-rating label:hover ~ label{color:var(--ocre);}

.avis-list{display:grid; gap:16px; margin-bottom:36px; max-width:720px;}
.avis-card{background:var(--blanc); border:1px solid var(--lin-2); border-radius:8px; padding:20px 22px;}
.avis-card-head{display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:6px;}
.avis-card-name{font-weight:700; color:var(--bleu-nuit);}
.avis-card-stars{color:var(--ocre); font-size:16px; letter-spacing:1px;}
.avis-card-produit{font-size:13px; color:#8a8272; margin-bottom:8px;}
.avis-card-msg{font-size:14.5px; line-height:1.55; color:var(--encre);}
.avis-card-date{font-size:12px; color:#a39a86; margin-top:8px;}
.avis-empty{font-size:14px; color:#8a8272; margin-bottom:30px;}
.avis-honeypot{position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden;}
.avis-success{display:none; background:#eaf3ea; border:1px solid #bfdcbf; color:#2f6b2f; border-radius:6px; padding:12px 14px; font-size:14px; margin-top:14px;}
.avis-error{display:none; background:#fbeceb; border:1px solid #e8c3c0; color:var(--brique); border-radius:6px; padding:12px 14px; font-size:14px; margin-top:14px;}

footer{
  background:#0a1e30; color:#a9b2ba; padding:28px 0; text-align:center; font-size:13px;
}
footer strong{color:var(--ocre);}

/* ===== Effets au scroll ===== */
#scrollProgress{
  position:fixed; top:0; left:0; height:3px; width:0%; background:var(--ocre);
  z-index:999; transition:width 0.1s linear;
}
.reveal{
  opacity:0; transform:translateY(34px);
  transition:opacity 0.7s cubic-bezier(.2,.7,.2,1), transform 0.7s cubic-bezier(.2,.7,.2,1);
}
.reveal.reveal-visible{ opacity:1; transform:translateY(0); }
.reveal-scale{ opacity:0; transform:scale(0.92) translateY(20px); }
.reveal-scale.reveal-visible{ opacity:1; transform:scale(1) translateY(0); }
.reveal-left{ opacity:0; transform:translateX(-40px); }
.reveal-left.reveal-visible{ opacity:1; transform:translateX(0); }
.reveal-right{ opacity:0; transform:translateX(40px); }
.reveal-right.reveal-visible{ opacity:1; transform:translateX(0); }

.hero-parallax-layer{ will-change:transform; }


/* Ajustement nav pour plusieurs pages produits */
@media (min-width:761px){
  .nav-links{ gap:18px; flex-wrap:wrap; justify-content:flex-end; row-gap:6px; }
  .nav-links a{ font-size:12.5px; }
}
.nav-sep{ display:inline-block; width:1px; height:14px; background:rgba(255,255,255,0.25); align-self:center; }
@media (max-width:760px){ .nav-sep{ display:none; } }
