/*
Theme Name: Sylhet Retreat
Theme URI: https://sylhetretreat.com
Author: Chomotkar
Author URI: https://chomotkar.com
Description: Smart-lock interactive one-page WordPress theme for Sylhet Retreat holiday apartment. Press-and-hold welcome gate, unlockable room gallery hook, MotoPress Hotel Booking + WooCommerce ready booking flow, fully editable via SITE_CONFIG in js/script.js.
Version: 2.0
Requires PHP: 7.4
Text Domain: sylhet-retreat
*/

  :root{
    --forest:      #044722;
    --forest-deep: #022c15;
    --forest-mid:  #0b6b39;
    --clay:        #bf6a3a;
    --clay-soft:   #e7b791;
    --amber:       #dd8a2e;
    --led:         #3ddc84;
    --sage:        #eef3e6;
    --cream:       #f8f4ea;
    --ink:         #16201a;
    --ink-soft:    #4a564c;
    --white:       #fffdf8;
    --radius: 10px;
    --wrap: 1180px;
    --ease: cubic-bezier(.22,.9,.32,1);
  }

  /* =====================================================================
     গোল্ড প্যালেট — Customize → রঙ/প্যালেট → "গোল্ড রিচ হোটেল ভাইব" বেছে নিলে
     পুরো সাইটের একই ভ্যারিয়েবলগুলো এখানে override হয়ে যায়, তাই আলাদা করে
     প্রতিটি রুল বদলানোর দরকার নেই — হেডার, বাটন, সেকশন, বটম বার, গেট —
     সবখানে স্বয়ংক্রিয়ভাবে গোল্ড থিম প্রয়োগ হয়।
     ===================================================================== */
  body.palette-gold{
    --forest:      #7a5a28;
    --forest-deep: #1c130c;
    --forest-mid:  #9c7736;
    --clay:        #d4a44c;
    --clay-soft:   #f3d9a4;
    --amber:       #c9922f;
    --led:         #f3d9a4;
    --sage:        #f4ecd9;
    --cream:       #faf5e9;
    --ink:         #241a10;
    --ink-soft:    #6b5842;
    --white:       #fffdf8;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;font-family:'Hind Siliguri',sans-serif;background:var(--cream);color:var(--ink);line-height:1.7;-webkit-font-smoothing:antialiased;}
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;margin:0;padding:0;}
  button{font-family:inherit;cursor:pointer;background:none;border:0;color:inherit;}
  a, button{-webkit-tap-highlight-color:transparent;}
  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;}
  :focus-visible{outline:3px solid var(--clay);outline-offset:3px;}

  .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.92rem;font-weight:600;letter-spacing:.14em;color:var(--clay);margin:0 0 14px;}
  .eyebrow::before{content:"";width:26px;height:2px;background:var(--clay);display:inline-block;}
  h1,h2,h3{margin:0;font-weight:700;color:var(--forest-deep);letter-spacing:.01em;}
  h2{font-size:clamp(1.7rem,3.4vw,2.5rem);}
  p{color:var(--ink-soft);}

  .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 30px;border-radius:var(--radius);font-weight:600;font-size:1rem;transition:transform .25s var(--ease);}
  .btn-primary{background:var(--clay);color:var(--white);}
  .btn-primary:hover{transform:translateY(-2px);}
  .btn-forest{background:var(--forest);color:var(--white);}
  .btn-forest:hover{transform:translateY(-2px);}

  /* ============ shared LOCK ICON ============ */
  .lock-icon{width:26px;height:26px;}
  .lock-icon .lock-body{fill:rgba(255,253,248,.14);stroke:currentColor;stroke-width:1.6;}
  .lock-icon .lock-shackle{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;transform-origin:7px 10.5px;transition:transform .3s ease;}
  .lock-icon .lock-hole{fill:currentColor;}

  /* --- বোল্ড/সলিড লক আইকন (শুধু গেটের মূল লক বাটনে) — রেফারেন্স ছবির মতো
     ভারী, ভরাট চেহারা, চিকন আউটলাইনের বদলে --- */
  .lock-icon-bold .lock-body{fill:currentColor;stroke:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));}
  .lock-icon-bold .lock-shackle{fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;}
  .lock-icon-bold .lock-hole{fill:var(--gate-bg-3);}
  .lock-dots{display:flex;gap:6px;justify-content:center;margin-bottom:10px;}
  .lock-dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,253,248,.25);}
  @keyframes shackleOpen{ to{ transform:translateX(-4px) rotate(-32deg); } }
  @keyframes dotLight{ to{ background:var(--led); box-shadow:0 0 8px var(--led); } }

  /* ================= WELCOME GATE — প্রথম স্ক্রিনে শুধু এইটুকুই দেখা যাবে ================= */
  /* গেটের রঙ প্যালেট-নির্ভর — ডিফল্টে (গ্রিন) forest-family রঙ, গোল্ড প্যালেটে wood/gold রঙ */
  #welcomeGate{
    --gate-accent:       var(--clay-soft);
    --gate-accent-light: var(--white);
    --gate-accent-dim:   rgba(255,253,248,.35);
    --gate-bg-1:         var(--forest-mid);
    --gate-bg-2:         var(--forest-deep);
    --gate-bg-3:         #011c0d;
  }
  body.palette-gold #welcomeGate{
    --gate-accent:       #d4a44c;
    --gate-accent-light: #f3d9a4;
    --gate-accent-dim:   rgba(212,164,76,.35);
    --gate-bg-1:         #2c1e13;
    --gate-bg-2:         #1c130c;
    --gate-bg-3:         #0e0906;
  }

  html.gate-active, body.gate-active{overflow:hidden;height:100%;}
  #siteContent{opacity:0;visibility:hidden;transition:opacity .5s ease, visibility 0s linear .5s;}
  body.unlocked #siteContent{opacity:1;visibility:visible;transition:opacity .8s ease .15s, visibility 0s linear 0s;}

  #welcomeGate{
    position:fixed;inset:0;z-index:9999;
    overflow:hidden; /* কখনো স্ক্রল হবে না — নিচের ফ্লুইড সাইজিং সবসময় স্ক্রিনে ফিট করানোর জন্য ডিজাইন করা */
    display:flex;align-items:center;justify-content:center;
    text-align:center;
    padding:clamp(4px,1.5vh,20px) 16px;
    background-image:
      radial-gradient(ellipse at 50% 38%, transparent 30%, rgba(0,0,0,.42) 78%, rgba(0,0,0,.68) 100%),
      repeating-linear-gradient(90deg, rgba(255,255,255,.015) 0px, rgba(255,255,255,.015) 1px, transparent 1px, transparent 5px),
      linear-gradient(155deg, var(--gate-bg-1) 0%, var(--gate-bg-2) 45%, var(--gate-bg-3) 100%);
    opacity:1;visibility:visible;
    transition:opacity .6s ease, visibility 0s linear 0s;
  }
  body.palette-gold #welcomeGate{
    background-image:
      radial-gradient(ellipse at 50% 38%, transparent 30%, rgba(0,0,0,.45) 78%, rgba(0,0,0,.72) 100%),
      repeating-linear-gradient(90deg, rgba(255,255,255,.02) 0px, rgba(255,255,255,.02) 1px, transparent 1px, transparent 5px),
      linear-gradient(155deg, var(--gate-bg-1) 0%, var(--gate-bg-2) 45%, var(--gate-bg-3) 100%);
  }
  body.unlocked #welcomeGate{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .6s ease, visibility 0s linear .6s;}

  /* আগে থেকেই আনলক করা থাকলে (localStorage) — কোনো transition/flash ছাড়াই সরাসরি
     গেট লুকিয়ে সাইট দেখানো, যাতে পেজ লোডের সময় এক মুহূর্তের জন্যও গেট চোখে না পড়ে */
  html.sylhet-preunlocked #welcomeGate{opacity:0 !important;visibility:hidden !important;transition:none !important;}
  html.sylhet-preunlocked #siteContent{opacity:1 !important;visibility:visible !important;transition:none !important;}
  html.sylhet-preunlocked, html.sylhet-preunlocked body{overflow:visible !important;height:auto !important;}

  /* গেট কখনো স্ক্রল হয় না — তাই নিচের প্রতিটি সাইজ/গ্যাপ clamp() দিয়ে ভিউপোর্ট
     উচ্চতার (vh) সাথে ফ্লুইডভাবে সেট করা, যাতে সবচেয়ে ছোট মোবাইল স্ক্রিনেও
     সবকিছু নিশ্চিতভাবে ফিট করে — কোনো অংশ কখনো কাটা পড়বে না */
  .gate-door-panel{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    max-width:380px;width:100%;max-height:100%;margin:0 auto;
    position:relative;z-index:2;
    animation:gatePanelIn 1.1s cubic-bezier(.16,.9,.3,1) both;
  }
  @keyframes gatePanelIn{
    0%{opacity:0;transform:translateY(18px) scale(.96);}
    100%{opacity:1;transform:translateY(0) scale(1);}
  }

  .gate-logo-wrap{
    width:clamp(48px,12vh,130px);height:clamp(48px,12vh,130px);
    display:flex;align-items:center;justify-content:center;
    margin-bottom:clamp(2px,1vh,14px);color:var(--gate-accent);
    flex:none;
  }
  .gate-logo-wrap img.custom-logo{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;}
  .gate-logo{width:70%;height:70%;}

  .gate-title{
    font-family:'Hind Siliguri', sans-serif;
    font-weight:700;
    font-size:clamp(1.05rem,5.5vh,2.6rem);letter-spacing:.03em;
    margin-bottom:clamp(1px,.6vh,8px);
    padding-top:.15em;
    line-height:1.35;flex:none;
    background-image:linear-gradient(100deg,
      var(--gate-accent) 40%, var(--gate-accent-light) 50%, var(--gate-accent) 60%);
    background-size:250% 100%;
    background-position:200% 0;
    -webkit-background-clip:text;background-clip:text;
    color:var(--gate-accent);-webkit-text-fill-color:var(--gate-accent);
    filter:drop-shadow(0 2px 14px rgba(0,0,0,.25));
    animation:titleShimmer 5s ease-in-out 1.2s infinite;
  }
  @supports (-webkit-background-clip:text) or (background-clip:text){
    .gate-title{ -webkit-text-fill-color:transparent; }
  }
  @keyframes titleShimmer{
    0%, 55%{background-position:200% 0;}
    100%{background-position:-50% 0;}
  }
  .gate-subtitle{
    color:var(--gate-accent-light);opacity:.8;font-size:clamp(.58rem,1.8vh,.85rem);font-weight:600;
    letter-spacing:.04em;margin-bottom:clamp(6px,2.5vh,40px);flex:none;
  }

  .gate-lock-device{
    position:relative;width:clamp(148px,40vw,216px);flex:none;
    background:
      repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0px, rgba(255,255,255,.025) 1px, transparent 1px, transparent 4px),
      linear-gradient(160deg, var(--gate-bg-1), var(--gate-bg-3));
    border:1px solid var(--gate-accent-dim);
    border-radius:clamp(14px,4vw,26px);
    padding:clamp(8px,2.2vh,26px) clamp(10px,3vw,18px) clamp(10px,2.6vh,32px);
    box-shadow:
      0 24px 55px rgba(0,0,0,.65),
      inset 0 2px 0 rgba(255,255,255,.05),
      inset 0 -14px 26px rgba(0,0,0,.35),
      0 0 0 1px rgba(0,0,0,.4),
      0 0 42px -14px var(--gate-accent-dim);
    display:flex;flex-direction:column;align-items:center;gap:clamp(4px,1.6vh,20px);
    margin-bottom:clamp(6px,2.5vh,30px);
  }
  /* সূক্ষ্ম ভেতরের বেজেল রিম — যেন সত্যিকারের এমবস্‌ড হার্ডওয়্যার প্যানেল */
  .gate-lock-device::before{
    content:"";position:absolute;inset:3px;
    border-radius:calc(clamp(14px,4vw,26px) - 3px);
    border:1px solid rgba(255,255,255,.06);
    pointer-events:none;
  }
  .keypad-screen{width:100%;display:flex;justify-content:center;margin-bottom:-6px;}
  .keypad-screen span{width:28px;height:3px;border-radius:2px;background:var(--gate-accent-dim);}
  .keypad-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(3px,1.2vh,14px) clamp(12px,4vw,26px);
    font-family:'Hind Siliguri', sans-serif;color:rgba(255,255,255,.4);
    font-size:clamp(.66rem,2.2vh,1.05rem);font-weight:600;
  }
  .keypad-grid span{text-align:center;line-height:1;}

  .gate-sub{color:var(--gate-accent-light);opacity:.6;max-width:340px;margin:clamp(3px,1.5vh,22px) auto 0;font-size:clamp(.6rem,1.5vh,.86rem);line-height:1.5;flex:none;}

  /* ছোট স্ক্রিনে (উচ্চতা ভিত্তিতে ধাপে ধাপে) কম-জরুরি অংশ লুকিয়ে মূল অংশ
     (লোগো, টাইটেল, লক বাটন, প্রোগ্রেস বার) সবসময় স্ক্রিনে ফিট করানো —
     এই থিমে গেট কখনো স্ক্রল হয় না, তাই এই সেফটি-নেটটা জরুরি */
  @media (max-height:720px){
    .gate-sub{display:none;}
  }
  @media (max-height:620px){
    .keypad-screen, .keypad-grid{display:none;}
    .gate-lock-device{gap:0;}
  }
  @media (max-height:520px){
    .gate-subtitle{display:none;}
    .gate-lock-device{margin-bottom:8px;}
  }
  @media (max-height:420px){
    .gate-logo-wrap{display:none;}
  }

  /* ================= বটম ফিক্সড বার — WhatsApp + এপার্টমেন্ট থেকে বের হোন ================= */
  /* আনলকের পর সবসময় দৃশ্যমান থাকে, স্ক্রিনের নিচে বসে থাকে — হেডার/মেনুর সাথে ওভারল্যাপ করে না */
  body.unlocked{padding-bottom:66px;}
  .bottom-bar{
    position:fixed;left:0;right:0;bottom:0;z-index:150;
    display:flex;
    /* ডিফল্ট (গ্রিন থিম সক্রিয় থাকলে) — বার ইচ্ছাকৃতভাবে বিপরীত রঙে, গোল্ড/রিচ */
    background:linear-gradient(180deg, #2c1e13 0%, #150d08 100%) !important;
    border-top:1px solid rgba(212,164,76,.45);
    box-shadow:0 -10px 26px rgba(0,0,0,.45);
    /* ডিফল্টভাবে অদৃশ্য — আনলক না করা পর্যন্ত দেখা যাবে না।
       এই visibility ক্লাস-নির্ভর (body.unlocked), DOM-এ কোথায় বসে আছে তার উপর নির্ভরশীল নয় —
       তাই JS দিয়ে <body>-এর শেষে সরিয়ে আনলেও সঠিকভাবে লুকানো/দেখানো কাজ করবে। */
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .5s ease, visibility 0s linear .5s;
  }
  body.unlocked .bottom-bar{
    opacity:1; visibility:visible; pointer-events:auto;
    transition:opacity .8s ease .1s, visibility 0s linear 0s;
  }
  .bottom-bar a, .bottom-bar button{
    flex:1;display:flex;align-items:center;justify-content:center;gap:10px;
    padding:20px 12px;font-size:.94rem;font-weight:700;font-family:inherit;
    color:#f3d9a4;min-height:64px;
  }
  .bottom-bar > *:first-child{border-right:2px solid rgba(212,164,76,.45);}
  .bottom-bar svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none;}
  .bb-whatsapp{color:#f3d9a4;}
  .bb-whatsapp svg{color:#f3d9a4;}
  .bb-whatsapp:hover{background:rgba(212,164,76,.12);}
  .bb-exit:hover{background:rgba(212,164,76,.12);}

  /* গোল্ড থিম সক্রিয় থাকলে — বার ইচ্ছাকৃতভাবে বিপরীত রঙে, গ্রিন/নেচার */
  body.palette-gold .bottom-bar{
    background:linear-gradient(180deg, #0b6b39 0%, #022c15 100%) !important;
    border-top:1px solid rgba(231,183,145,.45);
  }
  body.palette-gold .bottom-bar a,
  body.palette-gold .bottom-bar button{ color:#e7b791; }
  body.palette-gold .bottom-bar > *:first-child{border-right:2px solid rgba(231,183,145,.45);}
  body.palette-gold .bb-whatsapp{ color:#e7b791; }
  body.palette-gold .bb-whatsapp svg{ color:#e7b791; }
  body.palette-gold .bb-whatsapp:hover,
  body.palette-gold .bb-exit:hover{ background:rgba(231,183,145,.14); }

  /* ================= HEADER ================= */
  header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--forest-deep);box-shadow:0 4px 18px rgba(0,0,0,.14);transition:padding .35s var(--ease), box-shadow .35s var(--ease);padding:20px 0;}
  header.scrolled{box-shadow:0 6px 24px rgba(0,0,0,.2);padding:15px 0;}

  /* ================= সহজ পেজ লেআউট (WooCommerce Cart/Checkout/My Account ও অন্যান্য WP Page) ================= */
  .site-header--simple{position:static;}
  .simple-page{background:var(--cream);min-height:60vh;padding:60px 0 100px;color:var(--ink);}
  .simple-page .wrap h1{margin-bottom:28px;}
  .simple-page table{width:100%;border-collapse:collapse;margin-bottom:24px;}
  .simple-page table th, .simple-page table td{padding:12px;border-bottom:1px solid rgba(4,71,34,.14);text-align:left;}
  .simple-page input[type="text"], .simple-page input[type="email"], .simple-page input[type="tel"], .simple-page input[type="password"], .simple-page input[type="number"], .simple-page select, .simple-page textarea{
    border:1.5px solid rgba(4,71,34,.2);border-radius:8px;padding:10px 14px;font-family:inherit;width:100%;
  }
  .simple-page button, .simple-page input[type="submit"]{
    background:var(--forest);color:var(--white);border:0;border-radius:10px;padding:12px 26px;font-weight:700;cursor:pointer;
  }
  .simple-page a{color:var(--forest);}
  .site-footer--simple{background:var(--forest-deep);color:rgba(255,253,248,.7);padding:30px 0;}
  .nav-row{display:flex;align-items:center;justify-content:space-between;gap:20px;}
  .logo{display:flex;align-items:center;gap:10px;color:var(--white);font-weight:700;font-size:1.12rem;transition:font-size .35s var(--ease);}
  .logo img.custom-logo{height:46px;width:auto;max-width:160px;object-fit:contain;transition:height .35s var(--ease);}
  .logo-mark{width:40px;height:40px;flex:none;transition:width .35s var(--ease), height .35s var(--ease);}
  header.scrolled .logo{font-size:1rem;}
  header.scrolled .logo img.custom-logo{height:38px;}
  header.scrolled .logo-mark{width:33px;height:33px;}
  .nav-links{display:flex;align-items:center;gap:30px;}
  .nav-links li{list-style:none;margin:0;padding:0;}
  .nav-links a{color:var(--white);font-weight:500;font-size:.96rem;position:relative;padding:4px 0;}
  .nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--clay-soft);transition:width .3s var(--ease);}
  .nav-links a:hover::after{width:100%;}
  .burger{display:none;flex-direction:column;gap:5px;padding:6px;}

  /* ---------- ভাষা টগল বাটন ---------- */

  .burger span{width:26px;height:2px;background:var(--white);border-radius:2px;}

  /* Book Now — shimmering, real link, href set by SITE_CONFIG */
  .btn-book{
    position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;
    padding:12px 26px;border-radius:100px;font-weight:700;font-size:.96rem;color:var(--white);
    background:linear-gradient(135deg,var(--forest) 0%,var(--forest-mid) 100%);
    box-shadow:0 8px 22px rgba(2,44,21,.35);
    border:1.5px solid rgba(255,253,248,.18);
  }
  .btn-book svg{width:16px;height:16px;stroke:var(--white);fill:none;stroke-width:2;position:relative;z-index:1;}
  .btn-book span{position:relative;z-index:1;}
  .btn-book::before{
    content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;
    background:linear-gradient(120deg, transparent, rgba(255,255,255,.4), transparent);
    transform:skewX(-20deg);animation:sheen 3.4s ease-in-out infinite;
  }
  .btn-book:hover{transform:translateY(-2px);background:linear-gradient(135deg,var(--forest-mid) 0%,var(--forest) 100%);}
  @keyframes sheen{0%{left:-60%;}55%{left:130%;}100%{left:130%;}}

  /* হিরোর বুক করুন + গুগল ম্যাপ বাটন — পাশাপাশি (মোবাইলেও ইনলাইন, উপর-নিচ নয়) */
  .hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;}
  .hero-btn-map{
    display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
    padding:14px 22px;border-radius:100px;font-weight:700;font-size:1rem;color:var(--white);
    border:1.5px solid rgba(255,253,248,.4);background:rgba(255,253,248,.06);
    transition:background .2s ease, border-color .2s ease, transform .2s ease;
  }
  .hero-btn-map svg{width:16px;height:16px;stroke:var(--white);fill:none;stroke-width:2;flex:none;}
  .hero-btn-map:hover{background:rgba(255,253,248,.16);border-color:rgba(255,253,248,.6);transform:translateY(-2px);}

  /* ================= HERO — minimal, text-only first ================= */
  .hero{
    position:relative;min-height:82vh;display:flex;align-items:center;overflow:hidden;padding:160px 0 90px;
    background-size:cover;background-position:center;
  }
  .hero-inner{position:relative;z-index:3;color:var(--white);max-width:600px;}
  .hero-inner .eyebrow{color:var(--clay-soft);}
  .hero-inner .eyebrow::before{background:var(--clay-soft);}
  .hero-inner h1{color:var(--white);font-size:clamp(2.2rem,5.4vw,3.6rem);line-height:1.15;margin-bottom:14px;text-shadow:0 4px 24px rgba(0,0,0,.25);}
  .hero-inner p.lead{color:rgba(255,253,248,.88);font-size:1.06rem;max-width:480px;margin-bottom:28px;}


  section{padding:110px 0 90px;}
  .section-head{max-width:680px;margin-bottom:20px;}
  .section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
  .section-sub{max-width:600px;color:var(--ink-soft);margin-bottom:44px;}
  .section-sub.center{margin-left:auto;margin-right:auto;text-align:center;}

  /* ================= মাস্টার লক (লক ডিভাইসের ভেতরে বসানো, প্যালেট-নির্ভর রঙ) ================= */
  .master-lock{
    position:relative;width:clamp(48px,13vh,92px);height:clamp(48px,13vh,92px);border-radius:50%;flex:none;
    background:radial-gradient(circle at 35% 30%, var(--gate-bg-1), var(--gate-bg-3) 75%);
    display:flex;align-items:center;justify-content:center;
    box-shadow:
      0 10px 24px rgba(0,0,0,.5),
      inset 0 2px 3px rgba(255,255,255,.1),
      inset 0 -3px 6px rgba(0,0,0,.4);
    -webkit-user-select:none;user-select:none;touch-action:none;
    outline:none;border:none;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;
  }
  .master-lock:focus{outline:none;}
  .master-lock:focus-visible{
    outline:none;
    box-shadow:
      0 10px 24px rgba(0,0,0,.5),
      inset 0 2px 3px rgba(255,255,255,.1),
      inset 0 -3px 6px rgba(0,0,0,.4),
      0 0 0 4px var(--gate-accent-dim);
  }
  .master-ring-pulse{
    position:absolute;inset:-4px;border-radius:50%;
    border:3px solid var(--gate-accent);
    box-shadow:
      0 0 4px 1px var(--gate-accent),
      0 0 18px 4px var(--gate-accent-dim),
      0 0 38px 10px var(--gate-accent-dim);
    opacity:.92;animation:pulseRingGold 2.6s ease-in-out infinite;
  }
  @keyframes pulseRingGold{0%,100%{opacity:.8;}50%{opacity:1;}}
  .master-ring-pulse::after{
    content:"";position:absolute;inset:-14px;border-radius:50%;
    border:1px solid var(--gate-accent-dim);
    animation:pulseRingOuter 2.6s ease-in-out .3s infinite;
  }
  @keyframes pulseRingOuter{
    0%{opacity:.5;transform:scale(.96);}
    50%{opacity:0;transform:scale(1.18);}
    100%{opacity:0;transform:scale(1.18);}
  }
  .master-lock-core{position:relative;z-index:2;color:var(--gate-accent-light);border-radius:50%;overflow:hidden;}
  .master-lock-core .lock-icon{width:clamp(28px,6.5vh,42px);height:clamp(28px,6.5vh,42px);}
  .master-lock.holding{transform:scale(1.05);transition:transform .2s ease;}
  .master-lock.holding .master-lock-core{animation:coreShrink 1.4s linear;}
  @keyframes coreShrink{from{transform:scale(1);}to{transform:scale(.92);}}

  /* --- বড় "wow" unlock মুহূর্ত: প্রিমিয়াম মাল্টি-স্টেজ অ্যানিমেশন --- */
  .master-lock.burst .master-lock-core .lock-shackle{animation:shackleOpenPremium .6s cubic-bezier(.34,1.56,.64,1) forwards;}
  @keyframes shackleOpenPremium{
    0%{transform:translateX(0) rotate(0);}
    55%{transform:translateX(-5.5px) rotate(-40deg);}
    75%{transform:translateX(-3px) rotate(-26deg);}
    100%{transform:translateX(-4px) rotate(-32deg);}
  }
  .master-lock.burst{animation:lockPop .6s cubic-bezier(.34,1.56,.64,1);}
  @keyframes lockPop{0%{transform:scale(1) rotate(0);}30%{transform:scale(1.28) rotate(-4deg);}55%{transform:scale(1.1) rotate(2deg);}100%{transform:scale(1) rotate(0);}}

  /* ডিভাইস প্যানেলে গ্লো পালস — যেন পুরো লক ইউনিটই "সাড়া" দিচ্ছে */
  .gate-lock-device.burst-glow{animation:deviceGlow 1s ease-out;}
  @keyframes deviceGlow{
    0%{box-shadow:0 20px 45px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.05), 0 0 0 0 transparent;}
    30%{box-shadow:0 20px 45px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.05), 0 0 55px 10px var(--gate-accent-dim);}
    100%{box-shadow:0 20px 45px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.05), 0 0 0 0 transparent;}
  }

  .master-lock.burst::after{
    content:"";position:absolute;inset:-20px;border-radius:50%;
    background:radial-gradient(circle, rgba(255,255,255,.95), var(--gate-accent-dim) 45%, transparent 70%);
    animation:burstFlash .9s ease-out forwards;
  }
  @keyframes burstFlash{0%{opacity:0;transform:scale(.4);}25%{opacity:1;}100%{opacity:0;transform:scale(2.6);}}

  /* গ্লিন্ট — লকের উপর দিয়ে তীর্যকভাবে একটি আলোর রেখা বয়ে যায় (প্রিমিয়াম "শাইন" ইফেক্ট) */
  .master-lock.burst .master-lock-core::before{
    content:"";position:absolute;inset:-40%;
    background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.85) 48%, transparent 66%);
    transform:translateX(-120%) rotate(0deg);
    animation:glintSweep .7s ease-out .1s forwards;
    mix-blend-mode:overlay;
  }
  @keyframes glintSweep{
    0%{transform:translateX(-120%) rotate(8deg);opacity:0;}
    15%{opacity:1;}
    100%{transform:translateX(120%) rotate(8deg);opacity:0;}
  }

  /* শকওয়েভ — ৩টি রিং, বিভিন্ন গতিতে ও অস্বচ্ছতায় বাইরের দিকে ছড়িয়ে পড়ে */
  .shockwave{position:absolute;inset:0;border-radius:50%;border:3px solid var(--gate-accent-light);opacity:0;pointer-events:none;}
  .master-lock.burst .shockwave{animation:shockwaveExpand 1.3s cubic-bezier(.16,.8,.3,1) forwards;}
  .master-lock.burst .shockwave:nth-child(2){animation-delay:.1s;}
  .master-lock.burst .shockwave:nth-child(3){animation-delay:.22s;}
  @keyframes shockwaveExpand{0%{transform:scale(1);opacity:.95;border-width:4px;filter:blur(0px);}100%{transform:scale(4.6);opacity:0;border-width:.5px;filter:blur(1px);}}

  .master-label{font-family:'Hind Siliguri', sans-serif;font-size:clamp(.62rem,1.8vh,.8rem);font-weight:700;color:var(--gate-accent);letter-spacing:.04em;min-height:1.4em;margin-bottom:clamp(4px,1.5vh,18px);flex:none;transition:letter-spacing .4s ease;}
  .master-lock.burst ~ .master-label{animation:labelPop .6s cubic-bezier(.34,1.56,.64,1);letter-spacing:.12em;}
  @keyframes labelPop{0%{transform:scale(1) translateY(0);opacity:1;}30%{transform:scale(1.15) translateY(-3px);color:var(--gate-accent-light);opacity:1;}100%{transform:scale(1) translateY(0);}}

  /* --- হরাইজন্টাল প্রোগ্রেস বার --- */
  .gate-progress{width:clamp(160px,40vw,220px);}
  .gate-progress-track{
    position:relative;height:5px;background:rgba(255,255,255,.07);
    border:1px solid var(--gate-accent-dim);border-radius:10px;
  }
  .gate-progress-fill{
    position:absolute;left:0;top:-1px;bottom:-1px;width:0%;
    background:linear-gradient(90deg, var(--gate-accent), var(--gate-accent-light));
    border-radius:10px;
  }
  .gate-progress-dot{
    position:absolute;top:50%;left:0%;transform:translate(-50%,-50%);
    width:15px;height:15px;border-radius:50%;
    background:radial-gradient(circle, #ffffff, var(--gate-accent-light));
    box-shadow:0 0 10px 3px var(--gate-accent-dim);
  }
  .gate-progress-dot.burst-sparkle{animation:dotSparkle .7s ease-out;}
  @keyframes dotSparkle{
    0%{box-shadow:0 0 10px 3px var(--gate-accent-dim);}
    40%{box-shadow:0 0 22px 8px var(--gate-accent-dim), 0 0 40px 16px var(--gate-accent-dim);transform:translate(-50%,-50%) scale(1.5);}
    100%{box-shadow:0 0 10px 3px var(--gate-accent-dim);transform:translate(-50%,-50%) scale(1);}
  }
  .gate-progress-labels{display:flex;justify-content:space-between;margin-top:10px;font-size:.7rem;letter-spacing:.06em;color:var(--gate-accent-light);opacity:.6;}

  /* --- ফুল-স্ক্রিন "wow" ফ্ল্যাশ, গেট সরিয়ে সাইট রিভিল করার সময় চলে (প্যালেট-নির্ভর রঙ) --- */
  #unlockFlash{
    position:fixed;inset:0;z-index:10000;pointer-events:none;opacity:0;
  }
  body:not(.palette-gold) #unlockFlash{
    background:radial-gradient(circle, #ffffff 0%, #d9f2e3 35%, rgba(4,71,34,.4) 60%, transparent 78%);
  }
  body.palette-gold #unlockFlash{
    background:radial-gradient(circle, #ffffff 0%, #f3e3bb 35%, rgba(124,90,40,.4) 60%, transparent 78%);
  }
  #unlockFlash.playing{animation:flashSweep 1s cubic-bezier(.16,.9,.3,1) forwards;}
  @keyframes flashSweep{
    0%{opacity:0;transform:scale(.2);}
    18%{opacity:1;transform:scale(1.05);}
    42%{opacity:1;transform:scale(1.35);}
    100%{opacity:0;transform:scale(2.8);}
  }

  /* ================= VAULT ================= */
  .vault-section{background:var(--cream);}
  .spec-grid{display:flex;flex-wrap:wrap;gap:18px;margin-top:34px;}
  .spec-card{
    flex:1 1 calc(33.333% - 12px);min-width:180px;
    border:1.5px solid rgba(4,71,34,.16);border-radius:12px;padding:18px;
    display:flex;flex-direction:column;align-items:center;text-align:center;
  }
  .spec-card svg{width:22px;height:22px;stroke:var(--clay);fill:none;stroke-width:1.7;margin-bottom:10px;}
  .spec-card b{display:block;font-size:1rem;color:var(--forest-deep);}
  .spec-card span{font-size:.82rem;color:var(--ink-soft);}

  /* ================= AMENITIES ================= */
  .amenities{background:var(--sage);}
  .amenity-grid{display:flex;flex-wrap:wrap;gap:2px;background:rgba(4,71,34,.1);border-radius:var(--radius);overflow:hidden;}
  .amenity{
    flex:1 1 calc(25% - 2px);min-width:180px;
    background:var(--sage);padding:30px 22px;
    display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;
  }
  .amenity-icon{width:42px;height:42px;border-radius:50%;background:var(--forest);display:flex;align-items:center;justify-content:center;}
  .amenity-icon svg{width:20px;height:20px;stroke:var(--white);fill:none;stroke-width:1.8;}
  .amenity h4{margin:0;font-size:.96rem;font-weight:700;}
  .amenity p{margin:0;font-size:.84rem;}

  /* ================= GALLERY placeholder ================= */
  .gallery{background:var(--white);}
  .gallery-note{display:flex;align-items:center;gap:12px;background:var(--sage);border:1px dashed rgba(4,71,34,.3);border-radius:12px;padding:16px 20px;margin-bottom:32px;font-size:.88rem;color:var(--forest);}
  .gallery-note svg{flex:none;width:18px;height:18px;stroke:var(--forest);fill:none;stroke-width:1.8;}

  .gallery-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px;}
  .gallery-tab-btn{
    padding:10px 22px;border-radius:100px;border:1.5px solid rgba(4,71,34,.18);
    background:var(--cream);color:var(--forest-deep);font-weight:600;font-size:.92rem;
    cursor:pointer;transition:background .2s ease, color .2s ease, border-color .2s ease;
  }
  .gallery-tab-btn:hover{border-color:rgba(4,71,34,.4);}
  .gallery-tab-btn.active{background:var(--forest);color:var(--white);border-color:var(--forest);}

  .gallery-tab-panel{display:none;}
  .gallery-tab-panel.active{display:grid;}

  .gallery-grid{grid-template-columns:repeat(3,1fr);gap:18px;}
  .gallery-item{
    aspect-ratio:1/1;border-radius:var(--radius);overflow:hidden;background-size:cover;background-position:center;
    transition:transform .35s var(--ease);
    border:0;padding:0;margin:0;display:block;width:100%;cursor:pointer;-webkit-tap-highlight-color:transparent;
  }
  .gallery-item:hover{transform:scale(1.03);}
  .gallery-item:focus-visible{outline:3px solid var(--clay);outline-offset:3px;}

  /* ================= লাইটবক্স ================= */
  .sylhet-lightbox{
    position:fixed;inset:0;z-index:200000;background:rgba(2,20,10,.94);
    display:flex;align-items:center;justify-content:center;
    opacity:0;visibility:hidden;transition:opacity .3s ease, visibility 0s linear .3s;
    padding:60px 20px;
  }
  .sylhet-lightbox.active{opacity:1;visibility:visible;transition:opacity .3s ease, visibility 0s linear 0s;}
  .sylhet-lightbox-img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
  .sylhet-lightbox-close,
  .sylhet-lightbox-prev,
  .sylhet-lightbox-next{
    position:fixed;background:rgba(255,253,248,.1);color:var(--white);border:1px solid rgba(255,253,248,.25);
    border-radius:50%;width:48px;height:48px;font-size:1.4rem;line-height:1;cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:background .2s ease;
  }
  .sylhet-lightbox-close:hover,
  .sylhet-lightbox-prev:hover,
  .sylhet-lightbox-next:hover{background:rgba(255,253,248,.2);}
  .sylhet-lightbox-close{top:20px;right:20px;}
  .sylhet-lightbox-prev{left:20px;top:50%;transform:translateY(-50%);}
  .sylhet-lightbox-next{right:20px;top:50%;transform:translateY(-50%);}

  /* ================= LOCATION ================= */
  .location{background:var(--sage);}
  .location-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  .loc-list{display:flex;flex-direction:column;gap:2px;margin:22px 0 28px;}
  .loc-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 4px;border-bottom:1px solid rgba(4,71,34,.14);}
  .loc-item:first-child{border-top:1px solid rgba(4,71,34,.14);}
  .loc-item b{font-size:.96rem;color:var(--forest-deep);font-weight:600;}
  .loc-item span{font-size:.83rem;color:var(--clay);background:var(--white);padding:5px 12px;border-radius:20px;white-space:nowrap;}
  .map-card{aspect-ratio:1/1;border-radius:14px;border:8px solid var(--white);box-shadow:0 20px 44px rgba(2,44,21,.16);position:relative;overflow:hidden;background:linear-gradient(200deg, rgba(4,71,34,.08), rgba(2,20,10,.35) 85%), url('https://images.unsplash.com/photo-1742106856193-5cc3424ac450?auto=format&fit=crop&w=1000&q=80');background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;}
  .map-pin{width:52px;height:52px;border-radius:50%;background:var(--clay);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(0,0,0,.3);}
  .map-pin svg{width:24px;height:24px;stroke:var(--white);fill:none;stroke-width:2;}

  /* ================= TESTIMONIALS ================= */
  .testimonials{background:var(--white);}
  .testimonial-grid{display:flex;flex-wrap:wrap;gap:24px;margin-top:40px;justify-content:center;}
  .testimonial-card{
    flex:1 1 calc(33.333% - 16px);min-width:260px;
    background:var(--cream);border:1px solid rgba(4,71,34,.1);border-radius:16px;
    padding:28px 26px;display:flex;flex-direction:column;gap:14px;
    box-shadow:0 10px 30px rgba(2,44,21,.05);
  }
  .testimonial-stars{display:flex;gap:2px;font-size:1.05rem;}
  .star-filled{color:var(--clay);}
  .star-empty{color:rgba(4,71,34,.15);}
  .testimonial-review{margin:0;font-size:.94rem;line-height:1.7;color:var(--ink-soft);font-style:italic;flex:1;}
  .testimonial-author{display:flex;flex-direction:column;gap:2px;padding-top:6px;border-top:1px solid rgba(4,71,34,.1);}
  .testimonial-name{font-weight:700;color:var(--forest-deep);font-size:.92rem;}
  .testimonial-meta{font-size:.78rem;color:var(--ink-soft);opacity:.8;}

  /* ================= POLICY ================= */
  .policy{background:var(--forest-deep);color:var(--white);}
  .policy .eyebrow{color:var(--clay-soft);}
  .policy .eyebrow::before{background:var(--clay-soft);}
  .policy .section-head h2{color:var(--white);}
  .policy-list{max-width:760px;margin:0 auto;}
  .policy-item{border-bottom:1px solid rgba(255,253,248,.14);}
  .policy-item:first-child{border-top:1px solid rgba(255,253,248,.14);}
  .policy-head{width:100%;display:flex;align-items:center;gap:16px;padding:20px 4px;text-align:right;}
  .mini-lock{flex:none;width:30px;height:30px;border-radius:50%;background:rgba(255,253,248,.08);border:1px solid rgba(255,253,248,.18);display:flex;align-items:center;justify-content:center;}
  .mini-lock .lock-icon{width:15px;height:15px;color:var(--clay-soft);}
  .policy-item.unlocking .mini-lock .lock-shackle{animation:shackleOpen .4s ease forwards;}
  .policy-title{flex:1;text-align:left;font-size:1rem;font-weight:600;color:var(--white);}
  .policy-chevron{font-size:1.5rem;line-height:1;flex:none;color:rgba(255,253,248,.75);transition:transform .3s ease;}
  .policy-item.open .policy-chevron{transform:rotate(180deg);}
  .policy-body{max-height:0;overflow:hidden;transition:max-height .5s var(--ease);}
  .policy-item.open .policy-body{max-height:200px;}
  .policy-body p{padding:0 4px 20px 46px;color:rgba(255,253,248,.7);font-size:.92rem;margin:0;}

  /* ================= PRICING — মোবাইল-ফার্স্ট প্রাইস লিস্ট, স্ক্রল লাগে না ================= */
  .pricing{background:var(--cream);}
  .price-list{
    max-width:640px;margin:0 auto;border-radius:16px;overflow:hidden;
    border:1px solid rgba(4,71,34,.14);box-shadow:0 20px 50px rgba(2,44,21,.08);
  }
  .price-item{
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    padding:16px 20px;background:var(--white);border-top:1px solid rgba(4,71,34,.08);
  }
  .price-item:first-child{border-top:0;}
  .price-item:nth-child(even){background:var(--sage);}
  .price-guests{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--forest-deep);font-size:.96rem;white-space:nowrap;}
  .price-guests svg{width:19px;height:19px;stroke:var(--forest);fill:none;stroke-width:1.7;flex:none;}
  .price-values{display:flex;flex-direction:column;align-items:flex-end;text-align:right;line-height:1.3;}
  .price-rack{font-size:.8rem;color:var(--ink-soft);text-decoration:line-through;text-decoration-color:var(--clay);}
  .price-now{font-weight:800;color:var(--forest);font-size:1.12rem;}

  .quick-facts{
    display:flex;justify-content:center;flex-wrap:wrap;margin:34px auto 0;max-width:640px;
    border:1.5px solid rgba(4,71,34,.14);border-radius:18px;padding:6px;background:var(--white);
  }
  .qf-item{flex:1;min-width:140px;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 12px;}
  .qf-item:not(:first-child){border-left:1px solid rgba(4,71,34,.12);}
  .qf-item svg{width:20px;height:20px;stroke:var(--forest);fill:none;stroke-width:1.7;flex:none;}
  .qf-item span{font-size:.86rem;font-weight:600;color:var(--forest-deep);}

  /* ================= FINAL CTA ================= */
  .cta{background:linear-gradient(120deg,var(--forest-deep),var(--forest-mid) 55%,var(--forest) 100%);color:var(--white);text-align:center;padding:110px 0;}
  .cta h2{color:var(--white);margin-bottom:16px;}
  .cta p{max-width:520px;margin:0 auto 30px;color:rgba(255,253,248,.82);}
  .cta-note{margin-top:22px;font-size:.85rem;color:rgba(255,253,248,.6);}

  /* ================= FOOTER ================= */
  footer{background:var(--forest-deep);color:rgba(255,253,248,.7);padding:50px 0 26px;border-top:1px solid rgba(255,253,248,.1);}
  .footer-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
  .footer-logo{color:var(--white);font-weight:700;font-size:1.1rem;}
  .footer-links{display:flex;gap:22px;flex-wrap:wrap;font-size:.9rem;}
  .footer-links a:hover{color:var(--clay-soft);}
  .footer-bottom{margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,253,248,.1);font-size:.82rem;text-align:center;}
  .footer-bottom a{color:var(--clay-soft);text-decoration:underline;text-underline-offset:2px;}
  .footer-bottom a:hover{color:var(--white);}

  /* ================= RESPONSIVE ================= */

  /* ডেস্কটপে বটম বার আরও কমপ্যাক্ট — বড় প্যাডিং/min-height মোবাইল টাচ-টার্গেটের
     জন্য ঠিক ছিল, কিন্তু চওড়া ডেস্কটপ স্ক্রিনে অকারণে বেশি লম্বা দেখাচ্ছিল */
  @media (min-width:1025px){
    .bottom-bar a, .bottom-bar button{padding:13px 12px;min-height:auto;font-size:.9rem;}
    .bottom-bar svg{width:18px;height:18px;}
  }
  @media (max-width:1024px){
    .spec-card{flex:1 1 calc(50% - 9px);min-width:160px;}
    .amenity{flex:1 1 calc(50% - 1px);min-width:150px;}
    .testimonial-card{flex:1 1 calc(50% - 12px);}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .location-grid{grid-template-columns:1fr;}
    .map-card{order:-1;aspect-ratio:16/9;}
  }
  @media (max-width:720px){
    .nav-links{display:none;}
    .burger{display:flex;}
    header.nav-open .nav-links{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--forest-deep);padding:20px 24px 28px;gap:16px;}
    .nav-row{flex-wrap:nowrap;gap:8px;}
    .logo{font-size:.92rem;}
    .logo img.custom-logo{height:36px;}
    .logo-mark{width:32px;height:32px;}
    .hero-actions{gap:8px;}
    .hero-actions .btn-book{padding:12px 18px !important;font-size:.86rem !important;gap:6px !important;}
    .hero-actions .btn-book svg{width:14px;height:14px;}
    .hero-btn-map{padding:12px 16px;font-size:.86rem;gap:6px;}
    .hero-btn-map svg{width:14px;height:14px;}
    .hero{padding:130px 0 70px;min-height:auto;}
    section{padding:74px 0 64px;}
    .amenity{flex:1 1 calc(50% - 1px);min-width:130px;}
    .testimonial-grid{
      flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch;justify-content:flex-start;
      padding-bottom:14px;margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px;
    }
    .testimonial-grid::-webkit-scrollbar{height:5px;}
    .testimonial-grid::-webkit-scrollbar-thumb{background:rgba(4,71,34,.25);border-radius:10px;}
    .testimonial-card{flex:0 0 84%;min-width:0;scroll-snap-align:center;}
    .spec-card{flex:1 1 100%;}
    .gallery-grid{grid-template-columns:1fr 1fr;}
    .footer-row{flex-direction:column;align-items:flex-start;}
    .bottom-bar a, .bottom-bar button{font-size:.78rem;padding:16px 8px;gap:6px;line-height:1.25;min-height:58px;}
    .bottom-bar svg{width:16px;height:16px;}
    .price-item{padding:14px 16px;}
    .price-guests{font-size:.88rem;}
    .price-now{font-size:1rem;}
    .qf-item{min-width:44%;border-left:none!important;border-top:1px solid rgba(4,71,34,.12);}
    .qf-item:nth-child(-n+2){border-top:none;}
  }
