:root{
    --black:#08070a;
    --black-2:#100e0c;
    --black-3:#17140f;
    --gold:#cda94e;
    --gold-light:#e8d9ab;
    --gold-deep:#9c7c2e;
    --ivory:#f4efe4;
    --grey:#a49e91;
    --line: rgba(205,169,78,0.28);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--black);
    color:var(--ivory);
    font-family:'Montserrat', sans-serif;
    font-weight:300;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{
    font-family:'Montserrat', sans-serif;
    font-weight:700;
    letter-spacing:0.04em;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .container{ max-width:1180px; margin:0 auto; padding:0 32px; }
  .eyebrow{
    font-size:11px; letter-spacing:0.38em; text-transform:uppercase;
    color:var(--gold); font-weight:600;
  }

  /* Fixed, still black-marble background — stays put, no jitter, no parallax */
  body::before{
    content:"";
    position:fixed; inset:0; z-index:-1;
    background:
      linear-gradient(rgba(8,7,10,0.10), rgba(8,7,10,0.26)),
      url('../img/liorica-1-687b8c.jpg') center center / cover no-repeat;
  }
  .marble-bg{ position:relative; z-index:0; background:transparent; }

  /* ---------- Header ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:1000;
    background:rgba(8,7,10,0.72);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(205,169,78,0.15);
  }
  .nav-wrap{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 32px; max-width:1180px; margin:0 auto;
  }
  .brand{ display:flex; align-items:center; gap:12px; }
  .brand img{ width:34px; height:auto; }
  .brand .brand-name{
    font-size:19px; letter-spacing:0.16em; font-weight:700;
    color:var(--gold-light); text-transform:uppercase; line-height:1;
  }
  .brand .brand-sub{
    display:block; font-size:8px; letter-spacing:0.3em;
    color:var(--grey); text-transform:uppercase; margin-top:3px; font-weight:500;
  }
  nav ul{ list-style:none; display:flex; gap:38px; }
  nav a{
    font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--ivory); opacity:0.85; transition:opacity .25s, color .25s;
  }
  nav a:hover{opacity:1;color:var(--gold-light);}
  .nav-cta{
    display:inline-block; padding:11px 22px; border:1px solid var(--gold);
    color:var(--gold-light); font-size:11px; letter-spacing:0.16em;
    text-transform:uppercase; transition:all .3s; white-space:nowrap; font-weight:500;
  }
  .nav-cta:hover{background:var(--gold);color:#0a0a09;}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:6px;}
  .burger span{width:24px;height:1px;background:var(--gold-light);display:block;}

  /* ---------- Hero ---------- */
  .hero{
    min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; position:relative; padding:150px 24px 90px;
  }
  .hero::before{
    content:""; position:absolute; inset:0;
    background:radial-gradient(circle at 50% 42%, rgba(205,169,78,0.10), transparent 55%);
    pointer-events:none;
  }
  .hero-inner{position:relative;z-index:2;max-width:900px;width:100%;}
  .hero-logo{
    width:min(680px, 92%); aspect-ratio:1150/627; margin:0 auto 10px;
    filter:drop-shadow(0 24px 60px rgba(0,0,0,0.6));
    opacity:0; animation:fadeUp 1.2s ease forwards;
  }
  .hero-tagline{
    font-size:14px; letter-spacing:0.42em; text-transform:uppercase;
    color:var(--gold); margin:8px 0 22px; font-weight:600;
    opacity:0; animation:fadeUp 1s ease .3s forwards;
  }
  .hero-desc{
    max-width:600px; margin:0 auto 40px; color:var(--grey);
    font-size:15.5px; line-height:1.95; font-weight:300;
    opacity:0; animation:fadeUp 1s ease .45s forwards;
  }
  .hero-actions{
    display:flex; gap:18px; justify-content:center; flex-wrap:wrap;
    opacity:0; animation:fadeUp 1s ease .6s forwards;
  }
  .btn-primary, .btn-ghost{
    padding:16px 34px; font-size:12px; letter-spacing:0.18em;
    text-transform:uppercase; transition:all .35s; display:inline-block; font-weight:600;
  }
  .btn-primary{
    background:linear-gradient(120deg,#b7943f,#efdfaa,#d8b968);
    color:#0a0a09; border:1px solid transparent;
  }
  .btn-primary:hover{ filter:brightness(1.1); transform:translateY(-2px); box-shadow:0 10px 30px rgba(205,169,78,0.25); }
  .btn-ghost{ border:1px solid rgba(205,169,78,0.4); color:var(--ivory); }
  .btn-ghost:hover{border-color:var(--gold);background:rgba(205,169,78,0.08);}

  @keyframes fadeUp{ from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:translateY(0);} }
  .scroll-cue{ position:absolute; bottom:34px; left:50%; transform:translateX(-50%);
    width:1px; height:56px; background:linear-gradient(to bottom, transparent, var(--gold), transparent); opacity:0.5; }

  /* ---------- Sections ---------- */
  section{padding:110px 0;position:relative;}
  .section-head{ text-align:center; max-width:660px; margin:0 auto 66px; }
  .section-head .eyebrow{display:block;margin-bottom:16px;}
  .section-head h2{
    font-size:clamp(30px,4vw,44px); color:var(--gold-light);
    text-transform:uppercase; letter-spacing:0.06em; font-weight:700; line-height:1.15;
  }
  .divider{ width:64px; height:1px; background:var(--gold); margin:22px auto 0; opacity:0.7; }
  .section-head p{ margin-top:24px; color:var(--grey); font-size:15px; line-height:1.85; }

  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s, transform .9s; }
  .reveal.in{opacity:1;transform:translateY(0);}

  /* Legibility over the bright, shiny marble */
  .hero-tagline, .hero-desc,
  .section-head .eyebrow, .section-head h2, .section-head p,
  .why .eyebrow, .why h2, .why-item .num, .why-item h4, .why-item p,
  .signature p, .signature .sig-name{
    text-shadow:0 1px 10px rgba(4,3,2,0.85), 0 0 3px rgba(4,3,2,0.7);
  }

  /* Single embedded Liorica logo, reused everywhere */
  .logo-img{ background-image:url('../img/liorica-2-bd89ba.png');
    background-position:center; background-repeat:no-repeat; background-size:contain; }

  /* Services */
  .services-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:rgba(205,169,78,0.15); border:1px solid rgba(205,169,78,0.15);
  }
  .service-card{ background:rgba(16,14,12,0.82); padding:50px 28px; text-align:center; transition:background .4s; }
  .service-card:hover{background:rgba(23,20,15,0.92);}
  .service-card .icon{ width:44px;height:44px; margin:0 auto 24px; color:var(--gold); }
  .service-card h3{ font-size:17px; color:var(--ivory); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:14px; font-weight:600; }
  .service-card p{ font-size:13.5px; line-height:1.85; color:var(--grey); font-weight:300; }

  /* Why */
  .why{ display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
  .why-visual{ position:relative; aspect-ratio:4/5; border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; overflow:hidden;
    background:rgba(8,7,10,0.4); }
  .why-visual .logo-img{ width:88%; height:88%; }
  .why-list{display:flex;flex-direction:column;}
  .why-item{ display:flex; gap:24px; padding:26px 0; border-bottom:1px solid rgba(205,169,78,0.14); }
  .why-item:first-child{padding-top:0;}
  .why-item .num{ font-size:28px; color:var(--gold); font-weight:700; line-height:1; min-width:46px; }
  .why-item h4{ font-size:15px; text-transform:uppercase; letter-spacing:0.05em; color:var(--ivory); margin-bottom:8px; font-weight:600; }
  .why-item p{ font-size:13.5px; color:var(--grey); line-height:1.8; font-weight:300; }

  /* Signature */
  .signature{ text-align:center; padding:86px 0; border-top:1px solid rgba(205,169,78,0.14); border-bottom:1px solid rgba(205,169,78,0.14); }
  .signature p{ max-width:780px; margin:0 auto; font-size:clamp(19px,2.4vw,26px); line-height:1.7;
    color:var(--gold-light); font-weight:300; font-style:normal; letter-spacing:0.02em; }
  .signature .sig-name{ display:block; margin-top:28px; font-size:11px; letter-spacing:0.28em;
    text-transform:uppercase; color:var(--grey); font-weight:500; }

  /* Contact */
  .contact-wrap{ display:grid; grid-template-columns:1.3fr 0.7fr; gap:0; border:1px solid var(--line); align-items:stretch; }
  .contact-info{ background:rgba(16,14,12,0.85); padding:66px 56px; }
  .contact-info h2{ font-size:30px; color:var(--gold-light); text-transform:uppercase; margin-bottom:18px; letter-spacing:0.05em; font-weight:700; }
  .contact-info > p{ color:var(--grey); font-size:14.5px; line-height:1.9; margin-bottom:40px; max-width:420px; }
  .contact-line{ display:flex; align-items:center; gap:18px; padding:18px 0; border-top:1px solid rgba(205,169,78,0.14); }
  .contact-line:last-of-type{border-bottom:1px solid rgba(205,169,78,0.14);}
  .contact-line .ic{ width:20px;height:20px; color:var(--gold); flex-shrink:0; }
  .contact-line .label{ display:block; font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:var(--grey); margin-bottom:4px; }
  .contact-line .value{ font-size:16px; color:var(--ivory); letter-spacing:0.02em; font-weight:400; }
  .contact-line a.value:hover{color:var(--gold-light);}
  .contact-cta{ margin-top:40px; display:flex; gap:16px; flex-wrap:wrap; }
  .contact-panel{ padding:56px 40px; display:flex; flex-direction:column; justify-content:flex-start;
    gap:8px; background:rgba(8,7,10,0.35); }
  .contact-panel .logo-img{ width:230px; aspect-ratio:1150/627; margin:0 auto 18px; filter:drop-shadow(0 14px 34px rgba(0,0,0,0.55)); }
  .contact-panel .panel-note{ text-align:center; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); margin-bottom:6px; font-weight:600; }

  /* Devis form */
  .devis-form{ display:flex; flex-direction:column; gap:26px; margin-top:6px; }
  .form-block-label{ font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:12px; display:block; }
  .check-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .check-grid.cols3{ grid-template-columns:1fr 1fr 1fr; }
  .pill{ position:relative; }
  .pill input{ position:absolute; inset:0; opacity:0; cursor:pointer; margin:0; }
  .pill span{ display:flex; align-items:center; gap:11px; padding:11px 13px; border:1px solid rgba(205,169,78,0.25);
    background:rgba(8,7,10,0.45); color:var(--ivory); font-size:12px; cursor:pointer; transition:all .25s; height:100%; line-height:1.3; }
  .pill span::before{ content:""; width:15px; height:15px; border:1px solid var(--gold); flex-shrink:0; transition:all .2s; }
  .pill.sq span::before{ border-radius:3px; }
  .pill.rd span::before{ border-radius:50%; }
  .pill input:checked + span{ border-color:var(--gold); background:rgba(205,169,78,0.12); color:var(--gold-light); }
  .pill input:checked + span::before{ background:var(--gold); box-shadow:inset 0 0 0 3px rgba(8,7,10,0.55); }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .field{ display:flex; flex-direction:column; gap:6px; }
  .field label{ font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--grey); }
  .field input, .field textarea{ background:rgba(8,7,10,0.55); border:1px solid rgba(205,169,78,0.25); color:var(--ivory);
    padding:12px 14px; font-family:inherit; font-size:14px; transition:border .25s; width:100%; }
  .field input:focus, .field textarea:focus{ outline:none; border-color:var(--gold); }
  .field textarea{ resize:vertical; min-height:84px; }
  .devis-form .btn-primary{ width:100%; border:none; cursor:pointer; }
  .field input[type=file]{ padding:11px 14px; background:rgba(8,7,10,0.55); border:1px dashed rgba(205,169,78,0.45); color:var(--grey); cursor:pointer; font-size:13px; }
  .field input[type=file]::file-selector-button{ background:linear-gradient(120deg,#b7943f,#efdfaa,#d8b968); color:#0a0a09; border:none; padding:8px 14px; margin-right:12px; font-family:inherit; font-weight:600; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; }
  .field .hint{ font-size:11px; color:var(--grey); opacity:0.8; margin-top:2px; }

  /* Footer */
  footer{ padding:46px 0 40px; border-top:1px solid rgba(205,169,78,0.14); }
  .footer-wrap{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px; }
  .footer-brand{ letter-spacing:0.12em; color:var(--grey); font-size:12px; text-transform:uppercase; }
  .footer-brand strong{color:var(--gold-light);font-weight:700;}
  footer .foot-links{ display:flex; gap:26px; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--grey); }

  @media (max-width: 900px){
    nav ul{display:none;} .burger{display:flex;} .nav-cta{display:none;}
    .services-grid{grid-template-columns:1fr 1fr;}
    .why{grid-template-columns:1fr;gap:44px;} .why-visual{aspect-ratio:16/10;}
    .contact-wrap{grid-template-columns:1fr;} .contact-info{padding:52px 28px;} .contact-panel{padding:52px 28px;}
  }
  @media (max-width: 560px){
    .services-grid{grid-template-columns:1fr;} .container{padding:0 22px;}
    .hero{padding:140px 18px 70px;} .footer-wrap{flex-direction:column;text-align:center;}
    .check-grid, .check-grid.cols3{ grid-template-columns:1fr 1fr; }
    .field-row{ grid-template-columns:1fr; }
    .contact-info{padding:44px 22px;} .contact-panel{padding:44px 22px;}
  }

  /* --- Nos chantiers --- */
  #chantiers{padding:110px 0;}
  .ba{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(205,169,78,0.25);
      border:1px solid rgba(205,169,78,0.25);margin-top:44px;}
  .ba figure{position:relative;margin:0;overflow:hidden;background:#0d0b09;}
  .ba img{width:100%;height:460px;object-fit:cover;display:block;
      transition:transform .8s cubic-bezier(.2,.7,.2,1);}
  .ba figure:hover img{transform:scale(1.04);}
  .ba figcaption{position:absolute;top:0;left:0;background:rgba(10,9,8,0.92);color:var(--gold-light,#e6c98a);
      font-size:11px;letter-spacing:0.28em;text-transform:uppercase;padding:11px 24px;
      border-right:1px solid rgba(205,169,78,0.3);border-bottom:1px solid rgba(205,169,78,0.3);}
  .ba-note{margin-top:18px;font-size:13px;color:rgba(255,255,255,0.45);letter-spacing:0.04em;text-align:center;}
  .gal{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:44px;
      background:rgba(205,169,78,0.2);border:1px solid rgba(205,169,78,0.2);}
  .gal img{width:100%;height:270px;object-fit:cover;display:block;
      filter:saturate(.92);transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s;}
  .gal a{display:block;overflow:hidden;background:#0d0b09;}
  .gal img:hover{transform:scale(1.05);filter:saturate(1.05);}
  @media(max-width:900px){ .ba{grid-template-columns:1fr;} .ba img{height:320px;}
      .gal{grid-template-columns:1fr 1fr;} .gal img{height:200px;} }

/* ---- pages communes ---- */
#ville-intro p, #ville-acces p{ line-height:1.95; }
#ville-intro p + p, #ville-acces p + p{ margin-top:20px; }
#ville-zones ul a{ color:#cda94e; text-decoration:none; border-bottom:1px solid rgba(205,169,78,.28); }
#ville-zones ul a:hover{ color:#f0d99a; border-bottom-color:rgba(205,169,78,.7); }
#zones .service-card h3 a:hover{ color:#cda94e; }
#ville-intro .btn-primary, #ville-intro .btn-ghost,
#ville-acces .btn-primary, #ville-acces .btn-ghost{ margin:0 8px; }
@media (min-width:900px){
  #ville-presta .services-grid{ grid-template-columns:repeat(2,1fr); }
  #ville-specif .services-grid{ grid-template-columns:repeat(2,1fr); }
}
