:root{
    --cream:#f7f2e7;
    --cream-2:#eee3cc;
    --forest:#33422f;
    --forest-2:#212b1e;
    --forest-3:#1a2216;
    --gold:#b5883f;
    --gold-light:#d9b26c;
    --ink:#26231c;
    --paper:#fbf7ee;
    --line: rgba(38,35,28,0.12);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0; background:var(--cream); color:var(--ink);
    font-family:'Public Sans', sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden;
  }
  h1,h2,h3,.display{ font-family:'Fraunces', serif; font-weight:450; letter-spacing:-0.01em; margin:0; }
  .eyebrow{
    font-family:'Public Sans',sans-serif; font-weight:600; font-size:12.5px; letter-spacing:0.22em;
    text-transform:uppercase; color:var(--gold);
  }
  a{color:inherit; text-decoration:none;}
  img,svg{display:block; max-width:100%;}
  .wrap{max-width:1160px; margin:0 auto; padding:0 32px;}
  @media(max-width:640px){ .wrap{padding:0 20px;} }

  /* ---------- TOPBAR ---------- */
  .topbar{
    background:var(--forest-3); color:rgba(247,242,231,0.75); font-size:12.5px;
    padding:9px 0; letter-spacing:0.03em;
  }
  .topbar .wrap{ display:flex; justify-content:space-between; align-items:center; }
  .topbar a{ color:var(--gold-light); }
  .topbar .tb-links{ display:flex; gap:22px; }
  @media(max-width:640px){ .topbar .tb-links span:last-child{ display:none; } }

  /* ---------- NAV ---------- */
  header.nav{ position:sticky; top:0; z-index:100; background:var(--cream); border-bottom:1px solid var(--line); }
  header.nav .navwrap{ max-width:1160px; margin:0 auto; padding:16px 32px; display:flex; align-items:center; justify-content:space-between; }
  .brand{ display:flex; align-items:center; gap:12px; font-family:'Fraunces',serif; font-size:20px; font-weight:600; color:var(--forest); }
  .brand-logo{ width:46px; height:46px; object-fit:contain; filter:drop-shadow(0 2px 5px rgba(26,34,22,0.3)); }
  .nav-right{ display:flex; align-items:center; gap:28px; }
  .navlinks{ display:flex; gap:28px; align-items:center; }
  .navlinks a{ color:var(--ink); font-size:13.5px; font-weight:600; letter-spacing:0.02em; opacity:0.82; position:relative; padding:4px 0; }
  .navlinks a::after{ content:''; position:absolute; left:0; bottom:-3px; width:0; height:1px; background:var(--gold); transition:width .3s ease; }
  .navlinks a:hover::after{ width:100%; }
  .navlinks a:hover{ opacity:1; }
  .nav-cta{ background:var(--forest); color:var(--cream)!important; font-weight:600!important; padding:11px 20px; border-radius:2px; font-size:12.5px!important; opacity:1!important; letter-spacing:0.08em; text-transform:uppercase; }
  .nav-cta::after{ display:none; }
  .nav-cta:hover{ background:var(--forest-2); }
  .nav-toggle{ display:none; flex-direction:column; justify-content:center; gap:5px; width:30px; height:26px; background:none; border:none; padding:0; cursor:pointer; }
  .nav-toggle span{ display:block; width:100%; height:2px; background:var(--ink); border-radius:2px; transition:transform .25s ease, opacity .25s ease; }
  .nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2){ opacity:0; }
  .nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  @media(max-width:840px){
    .nav-toggle{ display:flex; }
    .nav-right{ position:relative; gap:16px; }
    .navlinks{ display:none; }
    .navlinks.open{
      display:flex; flex-direction:column; align-items:flex-start; gap:4px;
      position:absolute; top:calc(100% + 16px); right:0; min-width:200px;
      background:var(--cream); border:1px solid var(--line); border-radius:4px;
      padding:14px 20px; box-shadow:0 16px 32px rgba(26,22,15,0.14);
    }
    .navlinks.open a{ padding:9px 0; width:100%; }
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative; min-height:88vh; display:flex; align-items:flex-end;
    background:
      url('../assets/hero-buffet-roses3.jpg') center 18%/cover no-repeat,
      linear-gradient(120deg, var(--forest-2), var(--forest-3));
    overflow:hidden; padding:0 0 70px;
  }
  .hero::before{
    content:''; position:absolute; inset:0;
    background-image:radial-gradient(rgba(247,242,231,0.05) 1px, transparent 1px);
    background-size:24px 24px; opacity:0.6; pointer-events:none;
  }
  .hero-inner{ position:relative; z-index:2; max-width:720px; padding:0 32px; }
  @media(max-width:640px){ .hero-inner{ padding:0 20px; } }
  .hero .eyebrow{ color:var(--forest); text-shadow:0 2px 10px rgba(0,0,0,0.75); }
  .hero h1{ color:var(--cream); font-size:clamp(38px,7vw,74px); line-height:1.02; margin-top:16px; text-shadow:0 4px 18px rgba(0,0,0,0.7), 0 1px 4px rgba(0,0,0,0.6); }
  .hero h1 em{ font-style:italic; font-weight:400; color:var(--gold-light); }
  .hero-logo{ width:170px; height:auto; object-fit:contain; display:block; margin:0 0 22px; filter:drop-shadow(0 14px 30px rgba(0,0,0,0.4)); }
  .hero-brand{ color:var(--cream); font-size:clamp(48px,9vw,96px); line-height:0.98; margin-top:18px; letter-spacing:-0.01em; text-shadow:0 4px 18px rgba(0,0,0,0.7), 0 1px 4px rgba(0,0,0,0.6); }
  .hero-brand em{ font-style:italic; font-weight:400; color:var(--gold-light); }
  .hero-tagline{ font-family:'Fraunces',serif; font-style:italic; color:var(--forest); font-size:clamp(17px,2.2vw,22px); margin:10px 0 0; text-shadow:0 2px 10px rgba(0,0,0,0.75); }
  .hero p.sub{ color:rgba(247,242,231,0.95); font-size:17px; line-height:1.65; max-width:480px; margin:22px 0 0; text-shadow:0 2px 8px rgba(0,0,0,0.85), 0 1px 3px rgba(0,0,0,0.9), 0 0 20px rgba(0,0,0,0.6); }
  .hero-ctas{ margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; }
  .btn{ display:inline-flex; align-items:center; gap:8px; padding:14px 24px; border-radius:2px; font-weight:600; font-size:13px; letter-spacing:0.06em; text-transform:uppercase; transition:transform .25s ease, background .25s ease, box-shadow .25s ease; cursor:pointer; border:1px solid transparent; }
  .btn-primary{ background:var(--gold); color:var(--forest-3); }
  .btn-primary:hover{ background:var(--gold-light); transform:translateY(-2px); box-shadow:0 12px 26px rgba(181,136,63,0.3); }
  .btn-ghost{ border-color:rgba(247,242,231,0.4); color:var(--cream); }
  .btn-ghost:hover{ border-color:var(--cream); background:rgba(247,242,231,0.08); transform:translateY(-2px); }

  /* ---------- REVEAL ---------- */
  .reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }
  .reveal.d1{transition-delay:.08s;} .reveal.d2{transition-delay:.16s;} .reveal.d3{transition-delay:.24s;} .reveal.d4{transition-delay:.32s;}

  section{ padding:110px 0; }
  section[id]{ scroll-margin-top:96px; }
  @media(max-width:640px){ section{ padding:74px 0; } }
  .section-head{ max-width:640px; margin-bottom:54px; }
  .section-head h2{ font-size:clamp(28px,3.6vw,42px); margin-top:12px; }
  .center{ text-align:center; margin-left:auto; margin-right:auto; }

  /* ---------- INTRO EDITORIAL ---------- */
  .intro{ background:var(--paper); }
  .intro-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center; }
  @media(max-width:860px){ .intro-grid{ grid-template-columns:1fr 1.2fr; gap:24px; } }
  @media(max-width:600px){ .intro-grid{ gap:16px; } }
  .intro p{ font-size:16.5px; line-height:1.8; color:#3c372c; margin:0 0 16px; }
  @media(max-width:600px){ .intro p{ font-size:13.5px; line-height:1.6; } }
  .intro-art{ position:relative; aspect-ratio:4/5; border-radius:4px; overflow:hidden; background:linear-gradient(150deg, var(--forest), var(--forest-3)); }
  .intro-art svg{ width:56%; margin:auto; position:absolute; inset:0; }
  .stats{ display:flex; gap:40px; margin-top:34px; flex-wrap:wrap; }
  @media(max-width:600px){ .stats{ gap:18px; margin-top:18px; } }
  .stat .num{ font-family:'Fraunces',serif; font-size:38px; color:var(--gold); }
  @media(max-width:600px){ .stat .num{ font-size:24px; } }
  .stat .lbl{ font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:#79715a; margin-top:4px; }
  @media(max-width:600px){ .stat .lbl{ font-size:9.5px; } }

  /* ---------- 3-COL FEATURES ---------- */
  .features{ background:var(--cream-2); }
  .feat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:44px; }
  @media(max-width:820px){ .feat-grid{ grid-template-columns:1fr; gap:40px; } }
  .feat{ text-align:center; }
  .feat .ico{ width:56px; height:56px; margin:0 auto 22px; border-radius:50%; background:var(--forest); display:flex; align-items:center; justify-content:center; }
  .feat .ico svg{ width:24px; height:24px; stroke:var(--gold-light); }
  .feat h3{ font-size:20px; margin-bottom:12px; }
  .feat p{ font-size:14.5px; line-height:1.7; color:#544e3d; margin:0; }

  /* ---------- VIDEO BANNER ---------- */
  .video-banner{ position:relative; height:56vh; min-height:340px; overflow:hidden; background:linear-gradient(120deg, var(--forest-3), var(--forest)); }
  .video-banner video{ width:100%; height:100%; object-fit:cover; display:block; }
  .video-banner .vb-overlay{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center;
    background:linear-gradient(180deg, rgba(26,34,22,0.35), rgba(26,34,22,0.55));
  }
  .video-banner .vb-overlay .vb-inner{ max-width:560px; padding:0 24px; }
  .video-banner h2{ color:var(--cream); font-size:clamp(24px,3.4vw,36px); }
  .video-banner p{ color:rgba(247,242,231,0.8); margin-top:14px; font-size:15px; line-height:1.6; }
  .vb-placeholder-note{ font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-light); margin-top:18px; opacity:0.75; }
  .ateliers .video-banner{ margin:56px 0; border-radius:4px; }
  @media(max-width:640px){ .ateliers .video-banner{ margin:40px 0; } }

  /* ---------- SUR MESURE PHOTO GRID ---------- */
  .mesure-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:44px; }
  .mesure-grid img{ width:100%; height:230px; object-fit:cover; border-radius:4px; display:block; transition:transform .5s ease; }
  .mesure-grid a{ overflow:hidden; border-radius:4px; display:block; }
  .mesure-grid a:hover img{ transform:scale(1.06); }
  @media(max-width:820px){ .mesure-grid{ grid-template-columns:repeat(2,1fr); } .mesure-grid img{ height:200px; } }
  @media(max-width:480px){ .mesure-grid{ grid-template-columns:1fr 1fr; } .mesure-grid img{ height:150px; } }

  /* ---------- SUCRÉ PHOTO GRID ---------- */
  .sucre-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:48px; max-width:760px; margin-left:auto; margin-right:auto; }
  .sucre-grid img{ width:100%; height:320px; object-fit:cover; border-radius:4px; display:block; transition:transform .5s ease; }
  .sucre-grid a{ overflow:hidden; border-radius:4px; display:block; }
  .sucre-grid a:hover img{ transform:scale(1.06); }
  @media(max-width:640px){ .sucre-grid{ grid-template-columns:1fr; } .sucre-grid img{ height:260px; } }

  /* ---------- PRESTATIONS ---------- */
  .prestations{ background:var(--paper); }
  .prestations .section-head{ max-width:900px; text-align:center; margin-left:auto; margin-right:auto; }
  @media(max-width:980px){ .prestations .section-head{ max-width:640px; } }
  .cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
  @media(max-width:980px){ .cards{ grid-template-columns:1fr 1fr; } }
  @media(max-width:560px){ .cards{ grid-template-columns:1fr; } }
  .card{ display:block; background:var(--cream); border:1px solid var(--line); border-radius:4px; overflow:hidden; transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease; cursor:pointer; }
  .card-img{ width:100%; height:170px; object-fit:cover; display:block; transition:transform .5s ease; }
  .card:hover .card-img{ transform:scale(1.05); }
  .card-body{ padding:24px 22px 26px; }
  .card-arrow{ display:block; margin-top:16px; font-size:12.5px; font-weight:600; letter-spacing:0.03em; color:var(--gold); opacity:0; transform:translateX(-6px); transition:opacity .3s ease, transform .3s ease; }
  .card:hover .card-arrow{ opacity:1; transform:translateX(0); }
  .card:hover{ transform:translateY(-6px); border-color:var(--gold); box-shadow:0 18px 34px rgba(38,35,28,0.08); }
  .card .icon{ width:34px; height:34px; margin-bottom:18px; color:var(--gold); }
  .card h3{ font-size:19px; margin-bottom:10px; }
  .card p{ color:#544e3d; font-size:14px; line-height:1.6; margin:0; }
  .prestations .feat-grid{ margin-bottom:54px; }

  /* ---------- GALERIE ---------- */
  .brunch{ background:var(--paper); }
  .galerie{ background:var(--cream-2); }
  .gal-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:150px; gap:14px; }
  .gal-item{ position:relative; overflow:hidden; border-radius:4px; }
  .gal-item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
  .gal-item:hover img{ transform:scale(1.08); }
  .gal-item::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 60%, rgba(26,34,22,0.55)); opacity:0; transition:opacity .35s ease; }
  .gal-item:hover::after{ opacity:1; }
  .gal-item .gal-cap{ position:absolute; left:14px; bottom:12px; color:var(--cream); font-size:12.5px; letter-spacing:0.03em; opacity:0; transform:translateY(6px); transition:opacity .35s ease, transform .35s ease; }
  .gal-item:hover .gal-cap{ opacity:1; transform:translateY(0); }
  .gal-item.big{ grid-column:span 2; grid-row:span 2; }
  @media(max-width:820px){
    .gal-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; }
    .gal-item.big{ grid-column:span 2; grid-row:span 1; }
  }

  /* ---------- CARTE ---------- */
  .carte{ background:var(--cream-2); }
  .carte-intro{ font-size:15.5px; line-height:1.65; color:#453f30; max-width:640px; margin-top:14px; }
  .carte-cols{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:52px; }
  @media(max-width:820px){ .carte-cols{ grid-template-columns:1fr; } }
  .menu-card{ background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:34px 30px; position:relative; overflow:hidden; }
  .menu-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--gold); }
  .menu-head{ display:flex; align-items:center; gap:14px; margin-bottom:8px; }
  .menu-head .badge{ width:42px; height:42px; border-radius:50%; background:var(--forest); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .menu-head .badge svg{ stroke:var(--gold-light); }
  .menu-head h3{ font-size:22px; }
  .menu-note{ font-size:12.5px; letter-spacing:0.03em; color:#79715a; margin:6px 0 20px; }
  .menu-list{ list-style:none; margin:0; padding:0; columns:1; }
  .menu-list li{ font-size:14.5px; line-height:1.5; color:#3c3626; padding:8px 0; border-bottom:1px dotted var(--line); display:flex; gap:10px; align-items:baseline; }
  .menu-list li:last-child{ border-bottom:none; }
  .menu-list li::before{ content:'—'; color:var(--gold); flex-shrink:0; }
  .menu-footnote{ font-size:13px; color:#79715a; margin-top:18px; line-height:1.5; }
  .extras-band{ margin-top:52px; padding:32px 30px; border-radius:4px; background:var(--forest); display:flex; gap:28px; flex-wrap:wrap; align-items:center; justify-content:space-between; }
  .extras-tags{ display:flex; gap:10px; flex-wrap:wrap; }
  .extras-tags span{ font-size:12px; letter-spacing:0.04em; padding:8px 14px; border-radius:2px; background:rgba(247,242,231,0.1); border:1px solid rgba(247,242,231,0.2); color:var(--cream); }
  .extras-text{ max-width:420px; }
  .extras-text p{ font-size:14.5px; line-height:1.6; color:var(--cream); margin:0; }
  .extras-text strong{ color:var(--gold-light); }

  /* ---------- AVIS ---------- */
  .avis{ background:var(--paper); padding-top:60px; }
  .avis-track-wrap{ position:relative; }
  .avis-track{ display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none; }
  .avis-track::-webkit-scrollbar{ display:none; }
  .avis-card{ flex:0 0 auto; width:340px; scroll-snap-align:start; background:var(--cream-2); border:1px solid var(--line); border-radius:4px; padding:28px; }
  @media(max-width:420px){ .avis-card{ width:86vw; } }
  .avis-card .quote-mark{ font-family:'Fraunces',serif; font-size:48px; color:var(--gold); line-height:1; opacity:0.6; }
  .avis-card p.txt{ font-size:15px; line-height:1.65; color:#3c3626; margin:8px 0 18px; }
  .avis-card .who{ font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase; color:#79715a; }
  .avis-nav{ display:flex; gap:12px; margin-top:26px; }
  .avis-nav button{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line); background:transparent; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .25s ease, border-color .25s ease; }
  .avis-nav button:hover{ background:var(--forest); border-color:var(--forest); }
  .avis-nav button:hover svg{ stroke:var(--cream); }
  .avis-nav svg{ width:15px; height:15px; stroke:var(--ink); transition:stroke .25s ease; }

  /* ---------- PRESTATIONS GALLERY ---------- */
  .presta-card{ flex:0 0 auto; width:calc(25% - 15px); aspect-ratio:1/1; scroll-snap-align:start; border-radius:4px; overflow:hidden; border:1px solid var(--line); display:block; cursor:pointer; transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease; }
  .presta-card img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
  .presta-card:hover{ transform:translateY(-6px); border-color:var(--gold); box-shadow:0 18px 34px rgba(38,35,28,0.08); }
  .presta-card:hover img{ transform:scale(1.05); }
  @media(max-width:900px){ .presta-card{ width:calc(33.333% - 14px); } }
  @media(max-width:640px){ .presta-card{ width:75vw; } }

  /* ---------- BRUNCH GALLERY ---------- */
  .brunch .avis-track-wrap{ margin-top:40px; }
  .brunch-card{ flex:0 0 auto; width:calc(25% - 15px); aspect-ratio:4/5; scroll-snap-align:start; border-radius:4px; overflow:hidden; border:1px solid var(--line); }
  .brunch-card img{ width:100%; height:100%; object-fit:cover; display:block; }
  @media(max-width:900px){ .brunch-card{ width:calc(33.333% - 14px); } }
  @media(max-width:640px){ .brunch-card{ width:75vw; } }

  /* ---------- LEAD FORM / BROCHURE ---------- */
  .contact{ background:linear-gradient(180deg, var(--forest-2), var(--forest-3)); }
  .contact .eyebrow{ color:var(--gold-light); }
  .contact .section-head h2{ color:var(--cream); }
  .contact-grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:56px; }
  @media(max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
  .contact-list{ list-style:none; padding:0; margin:0 0 30px; display:flex; flex-direction:column; gap:18px; }
  .contact-list li{ display:flex; align-items:center; gap:14px; }
  .contact-list .ico{ width:38px; height:38px; border-radius:50%; background:rgba(181,136,63,0.15); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .contact-list .ico svg{ width:16px; height:16px; stroke:var(--gold-light); }
  .contact-list a, .contact-list span{ color:var(--cream); font-size:15px; }
  .contact-list a:hover{ color:var(--gold-light); }
  .map-frame{ border-radius:4px; overflow:hidden; border:1px solid rgba(247,242,231,0.15); filter:grayscale(0.3) contrast(1.05) sepia(0.06); height:250px; }
  .map-frame iframe{ width:100%; height:100%; border:0; }

  .devis-card{ background:rgba(247,242,231,0.05); border:1px solid rgba(247,242,231,0.15); border-radius:4px; padding:32px; }
  .devis-card h3{ color:var(--cream); font-size:19px; margin-bottom:6px; }
  .devis-card > p{ color:rgba(247,242,231,0.6); font-size:13px; margin:0 0 22px; }
  .field{ margin-bottom:16px; }
  .field label{ display:block; font-size:11.5px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-light); margin-bottom:7px; }
  .field input, .field select, .field textarea{ width:100%; background:rgba(247,242,231,0.06); border:1px solid rgba(247,242,231,0.22); border-radius:2px; padding:11px 14px; color:var(--cream); font-family:'Public Sans',sans-serif; font-size:14.5px; transition:border-color .25s ease, background .25s ease; }
  .field textarea{ resize:vertical; min-height:76px; }
  .field input::placeholder, .field textarea::placeholder{ color:rgba(247,242,231,0.35); }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--gold); background:rgba(247,242,231,0.1); }
  .field-hint{ display:block; font-size:11.5px; color:rgba(247,242,231,0.45); margin-top:6px; line-height:1.4; }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  @media(max-width:480px){ .field-row{ grid-template-columns:1fr; } }
  .field select{ appearance:none; -webkit-appearance:none; cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23d9b26c' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 14px center; }
  .field select option{ background:#212b1e; color:var(--cream); }
  .devis-card .btn{ width:100%; justify-content:center; margin-top:4px; border:none; cursor:pointer; }
  .devis-hint{ font-size:12.5px; color:rgba(247,242,231,0.5); margin-top:12px; line-height:1.5; }

  .choices-group{ border:1px solid rgba(247,242,231,0.18); border-radius:2px; margin-bottom:12px; overflow:hidden; }
  .choices-group summary{ list-style:none; cursor:pointer; padding:12px 15px; display:flex; align-items:center; justify-content:space-between; font-size:11.5px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-light); background:rgba(247,242,231,0.04); }
  .choices-group summary::-webkit-details-marker{ display:none; }
  .choices-group summary .count{ font-weight:400; text-transform:none; letter-spacing:0; color:rgba(247,242,231,0.5); font-size:12px; }
  .choices-group summary::after{ content:'+'; font-size:16px; color:var(--gold-light); margin-left:10px; }
  .choices-group[open] summary::after{ content:'–'; }
  .choices-list{ list-style:none; margin:0; padding:14px 15px; columns:2; max-height:230px; overflow-y:auto; }
  @media(max-width:480px){ .choices-list{ columns:1; } }
  .choices-list li{ break-inside:avoid; margin-bottom:9px; }
  .choices-list label{ display:flex; align-items:flex-start; gap:8px; font-size:12.5px; line-height:1.4; color:rgba(247,242,231,0.85); cursor:pointer; }
  .choices-list input[type="checkbox"]{ margin-top:3px; accent-color:var(--gold); flex-shrink:0; }
  .choices-total{ font-size:12px; color:var(--gold-light); margin:2px 0 16px; }

  footer{ background:var(--forest-3); color:rgba(247,242,231,0.55); padding:56px 0 26px; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:36px; padding-bottom:36px; border-bottom:1px solid rgba(247,242,231,0.12); }
  @media(max-width:760px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
  @media(max-width:480px){ .footer-grid{ grid-template-columns:1fr; } }
  .footer-brand{ font-family:'Fraunces',serif; color:var(--cream); font-size:19px; margin-bottom:12px; }
  .footer-col h4{ font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-light); margin-bottom:14px; font-weight:600; }
  .footer-col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
  .footer-col a{ font-size:13.5px; color:rgba(247,242,231,0.6); }
  .footer-col a:hover{ color:var(--cream); }
  .footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; padding-top:22px; font-size:12px; }
  .footer-legal a{ color:rgba(247,242,231,0.55); }
  .footer-legal a:hover{ color:var(--cream); }
  .footer-social{ display:flex; gap:14px; }
  .footer-social a{ width:32px; height:32px; border-radius:50%; border:1px solid rgba(247,242,231,0.2); display:flex; align-items:center; justify-content:center; }
  .footer-social svg{ width:14px; height:14px; stroke:rgba(247,242,231,0.7); }

  @media (prefers-reduced-motion: reduce){ *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; } }
  :focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

  /* ---------- COOKIE BANNER ---------- */
  .cookie-banner{ position:fixed; left:0; right:0; bottom:0; z-index:200; background:var(--forest-3); border-top:1px solid rgba(247,242,231,0.15); box-shadow:0 -8px 24px rgba(0,0,0,0.2); }
  .cookie-banner[hidden]{ display:none; }
  .cookie-banner-inner{ max-width:1160px; margin:0 auto; padding:18px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
  @media(max-width:640px){ .cookie-banner-inner{ padding:16px 20px; } }
  .cookie-banner-inner p{ color:rgba(247,242,231,0.85); font-size:13.5px; line-height:1.5; margin:0; max-width:640px; }
  .cookie-banner-actions{ display:flex; gap:12px; flex-shrink:0; }
  .cookie-banner-actions .btn{ padding:10px 18px; font-size:12px; }
