:root{
    --forest:#0F2E1F;
    --emerald:#173B29;
    --emerald-light:#1F5138;
    --ivory:#FBF7EF;
    --beige:#E9DCC3;
    --gold:#C6A15B;
    --gold-soft:#DCC38C;
    --charcoal:#181613;
    --white:#FFFFFF;
  }
  html{scroll-behavior:smooth;}
  body{
    background:var(--ivory);
    color:var(--charcoal);
    font-family:'Manrope',sans-serif;
    overflow-x:hidden;
  }
  h1,h2,h3,h4,.serif{font-family:'Fraunces',serif;}
  .tracking-wide-xs{letter-spacing:.22em;}

  ::selection{background:var(--gold-soft);color:var(--forest);}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- Jaali lattice signature motif ---------- */
  .jaali-bg{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23C6A15B' stroke-width='0.7' opacity='0.35'%3E%3Cpath d='M60 0 L120 60 L60 120 L0 60 Z'/%3E%3Ccircle cx='60' cy='60' r='34'/%3E%3Cpath d='M60 26 L94 60 L60 94 L26 60 Z'/%3E%3C/g%3E%3C/svg%3E");
    background-size:120px 120px;
  }
  .jaali-divider{
    height:56px;
    width:100%;
    background-repeat:repeat-x;
    background-position:center;
    background-size:56px 56px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23C6A15B' stroke-width='1'%3E%3Cpath d='M28 4 L52 28 L28 52 L4 28 Z'/%3E%3Ccircle cx='28' cy='28' r='10'/%3E%3C/g%3E%3C/svg%3E");
    opacity:.55;
  }

  /* Header */
  #site-header{transition:background-color .5s ease, backdrop-filter .5s ease, box-shadow .5s ease, padding .4s ease;}
  #site-header.scrolled{
    background-color:rgba(15,46,31,0.86);
    backdrop-filter:blur(14px);
    box-shadow:0 8px 30px rgba(0,0,0,.15);
  }
  .nav-link{position:relative;}
  .nav-link::after{
    content:'';position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--gold);
    transition:width .35s ease;
  }
  .nav-link:hover::after{width:100%;}
  .nav-link.nav-active{color:var(--gold-soft);}
  .nav-link.nav-active::after{width:100%;}
  #mobile-menu a.nav-active{color:var(--gold-soft);}

  .dropdown{opacity:0;visibility:hidden;transform:translateY(10px);transition:all .3s ease;}
  .has-dropdown:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
  .has-dropdown .dropdown{
    background:rgba(10,26,17,0.97);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(198,161,91,.25);
  }

  /* gold button */
  .btn-gold{
    background:linear-gradient(135deg,var(--gold-soft),var(--gold));
    color:var(--forest);
    font-weight:600;
    letter-spacing:.03em;
    transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, background .4s ease;
    box-shadow:0 6px 20px rgba(198,161,91,.25);
  }
  .btn-gold:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(198,161,91,.4);}

  .btn-outline{
    border:1px solid rgba(255,255,255,.55);
    color:#fff;
    backdrop-filter:blur(6px);
    transition:all .4s ease;
  }
  .btn-outline:hover{background:#fff;color:var(--forest);border-color:#fff;}

  /* magnetic */
  .magnetic{will-change:transform;}

  /* Hero */
  .hero-bg{
    background-size:cover;background-position:center;
    animation:kenburns 22s ease-in-out infinite alternate;
  }
  @keyframes kenburns{
    0%{transform:scale(1) translate(0,0);}
    100%{transform:scale(1.12) translate(-1%, -1%);}
  }
  .hero-overlay{
    background:linear-gradient(180deg, rgba(10,26,17,.55) 0%, rgba(10,26,17,.72) 55%, rgba(10,26,17,.92) 100%);
  }
  .typewriter{
    border-right:2px solid var(--gold);
    white-space:nowrap;overflow:hidden;
    animation:blink .85s step-end infinite;
  }
  @keyframes blink{50%{border-color:transparent;}}

  .scroll-indicator{
    width:26px;height:42px;border:1.5px solid rgba(255,255,255,.6);border-radius:20px;
  }
  .scroll-indicator::before{
    content:'';display:block;width:4px;height:8px;background:var(--gold);border-radius:4px;
    margin:6px auto 0;animation:scrolldot 1.8s ease infinite;
  }
  @keyframes scrolldot{0%{transform:translateY(0);opacity:1;}70%{transform:translateY(14px);opacity:0;}100%{opacity:0;}}

  /* section eyebrow */
  .eyebrow{
    letter-spacing:.3em;font-size:.72rem;font-weight:600;color:var(--gold);
  }

  /* Cards */
  .event-card{position:relative;overflow:hidden;border-radius:6px;}
  .event-card img{transition:transform 1.1s cubic-bezier(.2,.8,.2,1);}
  .event-card:hover img{transform:scale(1.09);}
  .event-card .card-overlay{
    background:linear-gradient(180deg, rgba(15,46,31,0) 30%, rgba(10,20,14,.92) 100%);
  }
  .event-card .card-border{
    position:absolute;inset:14px;border:1px solid rgba(255,255,255,0);
    transition:border-color .5s ease;pointer-events:none;
  }
  .event-card:hover .card-border{border-color:rgba(198,161,91,.55);}

  .glass{
    background:rgba(255,255,255,.06);
    backdrop-filter:blur(18px);
    border:1px solid rgba(255,255,255,.14);
  }
  .glass-light{
    background:rgba(255,255,255,.65);
    backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.5);
  }

  /* Modal */
  #booking-modal{transition:opacity .4s ease;}
  #booking-modal .modal-panel{transition:transform .45s cubic-bezier(.2,.8,.2,1), opacity .45s ease;}

  input,select,textarea{
    background:rgba(255,255,255,.85);
    border:1px solid rgba(15,46,31,.15);
  }
  input:focus,select:focus,textarea:focus{
    outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(198,161,91,.18);
  }
  input[type="checkbox"]{accent-color:var(--gold);}

  ::-webkit-scrollbar{width:10px;}
  ::-webkit-scrollbar-track{background:var(--ivory);}
  ::-webkit-scrollbar-thumb{background:var(--gold);border-radius:10px;}

  /* Counters */
  .counter{font-family:'Fraunces',serif;}

  /* FAQ */
  .faq-item .faq-answer{max-height:0;overflow:hidden;transition:max-height .5s ease;}
  .faq-item.open .faq-answer{max-height:400px;}
  .faq-item .chevron{transition:transform .35s ease;}
  .faq-item.open .chevron{transform:rotate(45deg);}

  /* gallery masonry */
  .masonry{column-count:1;column-gap:1rem;}
  @media(min-width:640px){.masonry{column-count:2;}}
  @media(min-width:1024px){.masonry{column-count:3;}}
  .masonry-item{break-inside:avoid;margin-bottom:1rem;}
  .masonry-item img{
    width:100%;
    height:400px;
    object-fit:cover;
    object-position:center;
    display:block;
    transition:transform .8s ease, filter .5s ease;
  }
.masonry-item:hover img{transform:scale(1.06);}
  .masonry-item.reveal{animation:galleryReveal .6s ease both;}
  @keyframes galleryReveal{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}

  /* contact page business hours rows */
  .hours-row{display:flex;align-items:center;justify-content:space-between;padding:.85rem 0;border-bottom:1px solid rgba(15,46,31,.08);}
  .hours-row:last-child{border-bottom:none;}

  /* testimonial */
  .swiper-pagination-bullet{background:var(--gold) !important;opacity:.4;}
  .swiper-pagination-bullet-active{opacity:1;}

  .fade-up{opacity:0;transform:translateY(24px);}

  /* utility divider line */
  .rule{height:1px;background:linear-gradient(90deg,transparent,rgba(198,161,91,.6),transparent);}

  .video-poster::after{
    content:'';position:absolute;inset:0;background:radial-gradient(circle at center, rgba(0,0,0,0) 0%, rgba(0,0,0,.4) 100%);
  }
  .play-btn{
    width:78px;height:78px;border-radius:50%;
    background:rgba(255,255,255,.16);backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.5);
    transition:transform .4s ease, background .4s ease;
  }
  .play-btn:hover{transform:scale(1.1);background:rgba(198,161,91,.85);}

  .marquee-track{display:flex;animation:marquee 30s linear infinite;}
  @keyframes marquee{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

  .num-mark{font-family:'Fraunces',serif;font-style:italic;color:var(--gold);}
