
  :root{
    --gal-maroon:#590B26; --gal-maroon-dark:#3d071a; --gal-gold:#c29342; --gal-gold-hover:#a87c32;
    --gal-ink:#2b2b2b; --gal-ink-soft:#555555; --gal-cream:#faf5f0; --gal-border:#e5d5d8; --gal-chip:#f3e6e8;
  }
  .gal-wrap{ font-family:'Poppins',sans-serif; color:var(--gal-ink); background:#fff; }
  .gal-wrap *, .gal-wrap *::before, .gal-wrap *::after{ box-sizing:border-box; }
  .gal-wrap img{ max-width:100%; display:block; }
  .gal-container{ max-width:1200px; margin:0 auto; padding:0 20px; }

  .gal-ornament{ display:flex; align-items:center; justify-content:center; gap:14px; margin:10px 0 30px; }
  .gal-ornament .line{ width:70px; height:1px; background:linear-gradient(to right, transparent, var(--gal-gold), transparent); }
  .gal-ornament i{ color:var(--gal-gold); font-size:14px; }

  /* ---------- HERO ---------- */
  .gal-hero{ position:relative; min-height:380px; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; background:linear-gradient(180deg, rgba(61,7,26,.82), rgba(89,11,38,.68)); }
  .gal-hero-bg{ position:absolute; inset:0; z-index:0; }
  .gal-hero-bg img{ width:100%; height:100%; object-fit:cover; }
  .gal-hero-bg::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(61,7,26,.78), rgba(89,11,38,.72)); }
  .gal-hero-content{ position:relative; z-index:1; padding:70px 20px; max-width:720px; margin:0 auto; }
  .gal-hero-content h1{ font-family:'Playfair Display',serif; font-weight:700; font-size:clamp(30px,4.5vw,48px); color:#fff; letter-spacing:2px; margin:0 0 6px; text-transform:uppercase; }
  .gal-hero-sub{ font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(16px,2vw,20px); color:var(--gal-gold); margin:0 0 18px; }
  .gal-hero-content .gal-ornament .line{ background:linear-gradient(to right, transparent, var(--gal-gold), transparent); }
  .gal-hero-text{ color:rgba(255,255,255,.88); font-size:14.5px; line-height:1.75; margin:0; }

  /* ---------- FILTER + GRID ---------- */
  .gal-section{ padding:80px 0; background:#fff; }
  .gal-section-title{ text-align:center; font-family:'Playfair Display',serif; font-size:32px; color:var(--gal-maroon); letter-spacing:1.5px; text-transform:uppercase; font-weight:700; margin:0 0 6px; }
  .gal-section-head{ text-align:center; margin-bottom:36px; }

  .gal-filters{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:40px; }
  .gal-filter-btn{ font-family:'Poppins',sans-serif; font-size:13px; font-weight:600; letter-spacing:.5px; text-transform:uppercase; color:var(--gal-maroon); background:var(--gal-chip); border:1px solid transparent; border-radius:30px; padding:9px 22px; cursor:pointer; transition:all .25s ease; }
  .gal-filter-btn:hover{ border-color:var(--gal-gold); }
  .gal-filter-btn.active{ background:var(--gal-maroon); color:#fff; }

  .gal-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
  .gal-item{ position:relative; border-radius:10px; overflow:hidden; cursor:pointer; aspect-ratio:1/1.05; background:var(--gal-cream); box-shadow:0 8px 20px rgba(0,0,0,.04); transition:transform .3s ease; }
  .gal-item:hover{ transform:translateY(-4px); }
  .gal-item img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
  .gal-item:hover img{ transform:scale(1.08); }
  .gal-item-overlay{ position:absolute; inset:0; display:flex; align-items:flex-end; padding:14px; background:linear-gradient(180deg, transparent 45%, rgba(61,7,26,.82) 100%); opacity:0; transition:opacity .3s ease; }
  .gal-item:hover .gal-item-overlay{ opacity:1; }
  .gal-item-cat{ color:var(--gal-gold); font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
  .gal-item.gal-hidden{ display:none; }

  .gal-lightbox{ position:fixed; inset:0; z-index:9999; background:rgba(20,4,10,.94); display:none; align-items:center; justify-content:center; padding:30px; }
  .gal-lightbox.gal-open{ display:flex; }
  .gal-lightbox-inner{ position:relative; max-width:900px; width:100%; text-align:center; }
  .gal-lightbox-inner img{ max-width:100%; max-height:78vh; margin:0 auto; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
  .gal-lightbox-cap{ color:#f3e6e8; font-size:13px; letter-spacing:1px; text-transform:uppercase; margin-top:14px; }
  .gal-lightbox-close, .gal-lightbox-prev, .gal-lightbox-next{ position:absolute; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.35); color:#fff; width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:18px; transition:background .2s; }
  .gal-lightbox-close:hover, .gal-lightbox-prev:hover, .gal-lightbox-next:hover{ background:var(--gal-maroon); }
  .gal-lightbox-close{ top:-56px; right:0; }
  .gal-lightbox-prev{ left:-56px; top:50%; transform:translateY(-50%); }
  .gal-lightbox-next{ right:-56px; top:50%; transform:translateY(-50%); }

  /* ---------- CTA ---------- */
  .gal-cta-section{ padding:0 0 70px; }
  .gal-cta-banner{ background:var(--gal-maroon); border-radius:8px; padding:32px 40px; display:flex; align-items:center; justify-content:space-between; gap:25px; color:#fff; box-shadow:0 10px 25px rgba(89,11,38,.2); }
  .gal-cta-left{ display:flex; align-items:center; gap:25px; }
  .gal-cta-icon{ width:65px; height:65px; border:2px solid rgba(255,255,255,.2); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:26px; flex-shrink:0; }
  .gal-cta-left h3{ font-family:'Playfair Display',serif; font-size:20px; letter-spacing:1px; text-transform:uppercase; font-weight:600; color:#fff; margin:0 0 5px; }
  .gal-cta-left p{ font-size:14px; color:rgba(255,255,255,.85); margin:0; }
  .gal-cta-btn{ background:var(--gal-gold); color:#fff; text-decoration:none; padding:14px 34px; border-radius:4px; font-weight:600; font-size:14px; letter-spacing:1px; text-transform:uppercase; white-space:nowrap; transition:all .3s ease; }
  .gal-cta-btn:hover{ background:var(--gal-gold-hover); transform:translateY(-2px); }

  @media (max-width:1024px){
    .gal-grid{ grid-template-columns:repeat(3,1fr); }
  }
  @media (max-width:768px){
    .gal-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
    .gal-cta-banner{ flex-direction:column; text-align:center; padding:30px 20px; }
    .gal-cta-left{ flex-direction:column; }
    .gal-lightbox-prev{ left:6px; } .gal-lightbox-next{ right:6px; }
    .gal-lightbox-close{ top:6px; right:6px; }
  }
  @media (max-width:480px){
    .gal-grid{ grid-template-columns:repeat(2,1fr); gap:10px; }
    .gal-filters{ gap:8px; }
    .gal-filter-btn{ padding:7px 16px; font-size:12px; }
  }
