/* ===========================================================
   Fullhouse — Villa product page
   Loads AFTER fullhouse.css (shares tokens & components).
   Airy, rounded, warm. RTL. Mobile-first closing page.
   =========================================================== */

:root{
  --peach:#E89B6C; --peach-deep:#C9743F; --peach-bg:#FBEADD; --peach-line:#F3D2BC;
  --mint:#6FAE92; --mint-deep:#4E8C72; --mint-bg:#E3F0E9; --mint-line:#CDE6DA;
  --wa:#25D366; --wa-deep:#128C7E;
}

/* shared section rhythm — a bit airier than home */
.vp .section{padding:56px 0;}
.vp-lead{margin-bottom:30px;}
.vp-lead h2{font-size:clamp(25px,3.4vw,36px);}
.vp-lead p{color:var(--ink-500); font-size:16px; margin-top:7px; max-width:60ch;}
.vp .eyebrow{display:inline-block; margin-bottom:9px;}

/* ============ BREADCRUMB ============ */
.crumbs{display:flex; align-items:center; gap:8px; padding:20px 0 4px; font-size:14px; color:var(--ink-500); flex-wrap:wrap;}
.crumbs a{color:var(--ink-500); transition:color .15s var(--ease);}
.crumbs a:hover{color:var(--amber-800);}
.crumbs svg{width:15px; height:15px; stroke:var(--ink-300); fill:none; stroke-width:2; flex:none; transform:scaleX(-1);}
.crumbs .here{color:var(--ink-900); font-weight:600;}

/* ============ HERO GALLERY (Airbnb-style) ============ */
.gallery-wrap{padding:8px 0 4px;}
.gallery{
  position:relative; display:grid; gap:10px;
  grid-template-columns:1.62fr 1fr 1fr;
  grid-template-rows:repeat(2,1fr);
  height:clamp(320px,46vw,540px);
  border-radius:var(--r-xl); overflow:hidden;
}
.gallery .gcell{position:relative; overflow:hidden; cursor:pointer;}
.gallery .gcell image-slot{width:100%; height:100%; display:block; border-radius:0;}
.gallery .gcell:nth-child(1){grid-row:1 / span 2;}
.gallery .gcell img,.gallery .gcell image-slot{transition:transform .6s var(--ease);}
.gallery .gcell:hover image-slot{transform:scale(1.045);}
.gallery .gcell::after{content:""; position:absolute; inset:0; background:rgba(20,12,4,0); transition:background .25s var(--ease);}
.gallery .gcell:hover::after{background:rgba(20,12,4,.10);}

/* play / 360 badge on main cell */
.gtag{
  position:absolute; z-index:4; inset-inline-start:18px; top:18px;
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(255,253,248,.92); color:var(--ink-900);
  font-size:13.5px; font-weight:700; padding:8px 14px 8px 11px; border-radius:999px;
  box-shadow:var(--shadow-sm); backdrop-filter:blur(3px);
}
.gtag svg{width:18px; height:18px; stroke:var(--amber-800); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}

/* top-right actions (fav + share) */
.gactions{position:absolute; z-index:5; top:18px; inset-inline-end:18px; display:flex; gap:9px;}
.gactions button{
  width:44px; height:44px; border-radius:50%; border:none;
  background:rgba(255,253,248,.92); box-shadow:var(--shadow-sm);
  display:grid; place-items:center; cursor:pointer;
  transition:transform .18s var(--ease), background .18s var(--ease);
}
.gactions button:hover{transform:scale(1.08); background:#fff;}
.gactions button svg{width:21px; height:21px; stroke:var(--ink-700); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.gactions .gfav.on svg{fill:var(--t-romance); stroke:var(--t-romance);}

/* "all photos" button */
.allphotos{
  position:absolute; z-index:5; inset-inline-end:18px; bottom:18px;
  display:inline-flex; align-items:center; gap:9px;
  background:rgba(255,253,248,.95); color:var(--ink-900);
  border:1px solid var(--line); border-radius:999px;
  padding:11px 18px; font-family:var(--sans); font-weight:700; font-size:14.5px;
  box-shadow:var(--shadow-md); cursor:pointer; transition:transform .18s var(--ease);
}
.allphotos:hover{transform:translateY(-2px);}
.allphotos svg{width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}

@media(max-width:760px){
  .gallery{grid-template-columns:1fr 1fr; grid-template-rows:1.3fr 1fr; height:64vw; gap:7px; border-radius:var(--r-lg);}
  .gallery .gcell:nth-child(1){grid-row:1; grid-column:1 / span 2;}
  .gallery .gcell:nth-child(4),.gallery .gcell:nth-child(5){display:none;}
  .allphotos{padding:9px 14px; font-size:13px;}
}

/* ============ MAIN TWO-COLUMN LAYOUT ============ */
.vp-grid{display:grid; grid-template-columns:1fr 384px; gap:56px; align-items:start; padding:34px 0 64px;}
.vp-main{min-width:0;}
@media(max-width:980px){ .vp-grid{grid-template-columns:1fr; gap:0; padding:26px 0 110px;} }

/* ---- title block ---- */
.vp-head{padding-bottom:8px; border-bottom:1px solid var(--line-soft); margin-bottom:26px;}
.vp-perfect{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px;}
.ptag{display:inline-flex; align-items:center; gap:7px; background:var(--amber-100); color:var(--amber-800); font-size:13px; font-weight:700; padding:6px 13px; border-radius:999px;}
.ptag svg{width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.ptag.alt{background:var(--mint-bg); color:var(--mint-deep);}
.vp-head h1{font-size:clamp(30px,4.4vw,46px); font-weight:800; letter-spacing:-.02em; line-height:1.05;}
.vp-meta{display:flex; align-items:center; flex-wrap:wrap; gap:7px 16px; margin-top:13px; font-size:15.5px; color:var(--ink-700);}
.vp-meta .mi{display:inline-flex; align-items:center; gap:6px;}
.vp-meta .mi svg{width:17px; height:17px; stroke:var(--ink-400,var(--ink-300)); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.vp-meta .star{color:var(--mustard); font-size:17px;}
.vp-meta .rscore{font-weight:700; color:var(--ink-900);}
.vp-meta .rlink{color:var(--ink-500); text-decoration:underline; text-underline-offset:3px;}
.vp-meta .dot{width:4px; height:4px; border-radius:50%; background:var(--ink-300);}

/* ---- quick facts row ---- */
.vp-facts{display:flex; flex-wrap:wrap; gap:12px; margin-top:22px;}
.fact{display:flex; align-items:center; gap:12px; background:var(--cream); border:1px solid var(--line-soft); border-radius:var(--r-md); padding:13px 17px; min-width:140px; flex:1;}
.fact .fi{width:42px; height:42px; flex:none; border-radius:12px; background:var(--amber-50); display:grid; place-items:center;}
.fact .fi svg{width:22px; height:22px; stroke:var(--amber-800); fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;}
.fact > span:last-child{display:flex; flex-direction:column; gap:3px; min-width:0;}
.fact .fv{display:block; font-family:var(--serif); font-weight:700; font-size:19px; color:var(--ink-900); line-height:1.05;}
.fact .fl{display:block; font-size:13px; color:var(--ink-500); line-height:1.2;}

/* ============ TRUST STRIP ============ */
.trust-strip{display:flex; flex-wrap:wrap; gap:14px 30px; align-items:center; background:var(--amber-50); border:1px solid var(--amber-100); border-radius:var(--r-lg); padding:18px 24px; margin-top:28px;}
.trust-strip .ti{display:flex; align-items:center; gap:11px; flex:1; min-width:200px;}
.trust-strip .ti .tic{width:40px; height:40px; flex:none; border-radius:50%; border:2px solid var(--amber-300); display:grid; place-items:center; transition:transform .5s var(--ease);}
.trust-strip .ti:hover .tic{transform:rotate(16deg);}
.trust-strip .ti .tic svg{width:21px; height:21px; stroke:var(--amber-700); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.trust-strip .ti b{display:block; font-size:15px; font-weight:700; color:var(--ink-900);}
.trust-strip .ti span{font-size:13px; color:var(--ink-500);}

/* ============ DESCRIPTION ============ */
.vp-desc h2{font-size:clamp(24px,3.2vw,33px); font-weight:800; line-height:1.12; max-width:20ch;}
.vp-desc .body{margin-top:18px; position:relative;}
.vp-desc .body p{font-size:16.5px; line-height:1.75; color:var(--ink-700); margin-bottom:15px;}
.vp-desc .body p:first-child{font-size:17.5px; color:var(--ink-900);}
.vp-desc .body.clamped{max-height:168px; overflow:hidden; -webkit-mask-image:linear-gradient(180deg,#000 60%,transparent); mask-image:linear-gradient(180deg,#000 60%,transparent);}
.readmore{margin-top:6px; display:inline-flex; align-items:center; gap:7px; background:transparent; border:1.5px solid var(--line); color:var(--ink-900); font-family:var(--sans); font-weight:700; font-size:15px; padding:10px 18px; border-radius:999px; cursor:pointer; transition:border-color .18s var(--ease), color .18s var(--ease);}
.readmore:hover{border-color:var(--amber-600); color:var(--amber-800);}
.readmore svg{width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:2.2; transition:transform .25s var(--ease);}
.readmore.open svg{transform:rotate(180deg);}

.vp-sep{height:1px; background:var(--line-soft); border:none; margin:46px 0;}

/* ============ PERFECT-FOR STRIP ============ */
.perfect-band{background:linear-gradient(150deg,var(--amber-50),#FCEBD0); border:1px solid var(--amber-100); border-radius:var(--r-xl); padding:clamp(26px,4vw,40px); position:relative; overflow:hidden;}
.perfect-band::before{content:""; position:absolute; inset-inline-end:-70px; top:-70px; width:240px; height:240px; border-radius:50%; background:rgba(244,198,54,.16);}
.perfect-band .pb-head{position:relative; z-index:1; margin-bottom:26px;}
.perfect-band h2{font-size:clamp(23px,3.2vw,32px); font-weight:800; line-height:1.12;}
.perfect-band .pb-head p{color:var(--ink-700); font-size:16px; margin-top:7px; max-width:52ch;}
.pb-grid{position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.pb-card{background:var(--cream); border:1px solid var(--line-soft); border-radius:var(--r-lg); padding:24px 22px; transition:transform .25s var(--ease), box-shadow .25s var(--ease);}
.pb-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-md);}
.pb-card .pbi{width:54px; height:54px; border-radius:16px; background:var(--amber-100); display:grid; place-items:center; margin-bottom:16px; transition:transform .5s var(--ease);}
.pb-card:hover .pbi{transform:rotate(-12deg);}
.pb-card .pbi svg{width:27px; height:27px; stroke:var(--amber-800); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.pb-card h4{font-size:18.5px; font-weight:700; margin-bottom:6px;}
.pb-card p{font-size:14.5px; color:var(--ink-500); line-height:1.6;}
@media(max-width:760px){ .pb-grid{grid-template-columns:1fr;} }

/* ============ AMENITIES ============ */
.amen-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px 48px;}
.amen-cat{break-inside:avoid;}
.amen-cat h4{display:flex; align-items:center; gap:10px; font-size:17px; font-weight:700; margin-bottom:13px; padding-bottom:11px; border-bottom:1px solid var(--line-soft);}
.amen-cat h4 .ci{width:30px; height:30px; flex:none; border-radius:9px; background:var(--olive-100); display:grid; place-items:center;}
.amen-cat h4 .ci svg{width:17px; height:17px; stroke:var(--olive-700); fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;}
.amen-cat ul{list-style:none; display:flex; flex-direction:column; gap:10px;}
.amen-cat li{display:flex; align-items:center; gap:11px; font-size:15.5px; color:var(--ink-700);}
.amen-cat li svg{width:19px; height:19px; flex:none; stroke:var(--mint-deep); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.amen-hidden{display:none;}
.amen-grid.expanded .amen-hidden{display:flex;}
.amen-grid.expanded .amen-cat.amen-hidden{display:block;}
.amen-more{margin-top:30px;}
.amen-more .btn-ghost{display:inline-flex; align-items:center; gap:8px;}
.amen-more .btn-ghost svg{width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:2.2; transition:transform .25s var(--ease);}
.amen-more .btn-ghost.open svg{transform:rotate(180deg);}
@media(max-width:760px){ .amen-grid{grid-template-columns:1fr; gap:14px;} }

/* ============ ROOMS / UNITS ============ */
.rooms{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.room{background:var(--cream); border:1px solid var(--line-soft); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-xs); transition:transform .25s var(--ease), box-shadow .25s var(--ease);}
.room:hover{transform:translateY(-5px); box-shadow:var(--shadow-md);}
.room image-slot{width:100%; height:175px; display:block; border-radius:0;}
.room .rb{padding:16px 18px 19px;}
.room h4{font-size:18px; font-weight:700; margin-bottom:4px;}
.room p{font-size:14px; color:var(--ink-500); line-height:1.55;}
.room .rfeat{display:flex; flex-wrap:wrap; gap:6px; margin-top:12px;}
.room .rfeat span{font-size:12.5px; font-weight:600; color:var(--ink-700); background:var(--sand-50); border:1px solid var(--line); border-radius:999px; padding:4px 10px;}
@media(max-width:880px){ .rooms{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .rooms{grid-template-columns:1fr;} }

/* ============ MAP ============ */
.map-card{border:1px solid var(--line-soft); border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--shadow-sm);}
.map-card .map-frame{position:relative; height:clamp(280px,34vw,400px); background:var(--olive-100);}
.map-card iframe{width:100%; height:100%; border:0; display:block; filter:saturate(.92);}
.map-card .map-pin{position:absolute; inset-inline-start:18px; top:18px; z-index:2; background:rgba(255,253,248,.95); border-radius:14px; padding:12px 16px; box-shadow:var(--shadow-sm); display:flex; align-items:center; gap:11px; max-width:calc(100% - 36px);}
.map-card .map-pin svg{width:22px; height:22px; flex:none; stroke:var(--amber-800); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.map-card .map-pin b{display:block; font-size:15px; color:var(--ink-900);}
.map-card .map-pin span{font-size:13px; color:var(--ink-500);}
.nearby{display:grid; grid-template-columns:repeat(2,1fr); gap:10px 26px; padding:22px 24px; background:var(--cream); border-top:1px solid var(--line-soft);}
.nearby .nb{display:flex; align-items:center; gap:12px; padding:6px 0;}
.nearby .nb .nbi{width:34px; height:34px; flex:none; border-radius:10px; background:var(--sand-100); display:grid; place-items:center;}
.nearby .nb .nbi svg{width:18px; height:18px; stroke:var(--ink-700); fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;}
.nearby .nb .nbt{font-size:14.5px; color:var(--ink-900); font-weight:600;}
.nearby .nb .nbd{font-size:13px; color:var(--ink-500); margin-inline-start:auto; white-space:nowrap;}
@media(max-width:640px){ .nearby{grid-template-columns:1fr;} }

/* ============ REVIEWS ============ */
.rev-top{display:grid; grid-template-columns:auto 1fr; gap:38px; align-items:center; background:var(--cream); border:1px solid var(--line-soft); border-radius:var(--r-xl); padding:28px 32px; margin-bottom:30px;}
.rev-score{text-align:center; padding-inline-end:34px; border-inline-end:1px solid var(--line-soft);}
.rev-score .big{font-family:var(--serif); font-weight:800; font-size:60px; line-height:1; color:var(--ink-900);}
.rev-score .stars{color:var(--mustard); font-size:18px; letter-spacing:2px; margin-top:8px;}
.rev-score .cnt{font-size:14px; color:var(--ink-500); margin-top:6px;}
.rev-bars{display:grid; grid-template-columns:1fr 1fr; gap:11px 30px;}
.rbar{display:flex; align-items:center; gap:12px;}
.rbar .rl{font-size:14.5px; color:var(--ink-700); width:108px; flex:none;}
.rbar .track{flex:1; height:7px; border-radius:999px; background:var(--sand-200); overflow:hidden;}
.rbar .fill{height:100%; border-radius:999px; background:var(--amber-600); width:0; transition:width 1s var(--ease);}
.rbar .rn{font-size:13.5px; font-weight:700; color:var(--ink-900); width:30px; text-align:start; flex:none;}
.rev-ext{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px;}
.extbadge{display:inline-flex; align-items:center; gap:9px; background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:9px 16px 9px 13px; font-size:14.5px; font-weight:600; color:var(--ink-700);}
.extbadge b{color:var(--ink-900); font-weight:700;}
.g-mark{display:inline-grid; place-items:center; width:20px; height:20px; border-radius:6px; background:#fff; color:#4285F4; font-family:var(--sans); font-weight:800; font-size:13px; line-height:1; border:1px solid #e6e6e6; flex:none;}
.b-mark{display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 4px; border-radius:6px; background:#003580; color:#fff; font-family:var(--sans); font-weight:800; font-size:12px; line-height:1; flex:none;}
.extbadge .star{color:var(--mustard);}

.rev-list{display:grid; grid-template-columns:repeat(2,1fr); gap:18px;}
.rev{background:var(--cream); border:1px solid var(--line-soft); border-radius:var(--r-lg); padding:22px 22px; box-shadow:var(--shadow-xs);}
.rev .rhead{display:flex; align-items:center; gap:13px; margin-bottom:13px;}
.rev .ravatar{width:48px; height:48px; flex:none; border-radius:50%; display:block; box-shadow:0 2px 6px rgba(60,42,24,.12);}
.rev .rname{font-weight:700; font-size:15.5px; color:var(--ink-900);}
.rev .rwhen{font-size:13px; color:var(--ink-500);}
.rev .rstars{margin-inline-start:auto; color:var(--mustard); font-size:14px; letter-spacing:1px;}
.rev p{font-size:15px; line-height:1.65; color:var(--ink-700);}
.rev-hidden{display:none;}
.rev-list.expanded .rev-hidden{display:block;}
.rev-more{margin-top:26px;}
@media(max-width:760px){ .rev-top{grid-template-columns:1fr; gap:22px; text-align:center;} .rev-score{border-inline-end:none; border-bottom:1px solid var(--line-soft); padding-inline-end:0; padding-bottom:22px;} .rev-bars{grid-template-columns:1fr;} .rev-list{grid-template-columns:1fr;} }

/* ============ FAQ ============ */
.faq{display:flex; flex-direction:column; gap:12px; max-width:860px;}
.qa{background:var(--cream); border:1px solid var(--line-soft); border-radius:var(--r-md); overflow:hidden; transition:border-color .2s var(--ease);}
.qa.open{border-color:var(--amber-300);}
.qa .q{width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; text-align:start; background:none; border:none; padding:19px 22px; font-family:var(--sans); font-weight:700; font-size:16.5px; color:var(--ink-900); cursor:pointer;}
.qa .q .qicon{width:30px; height:30px; flex:none; border-radius:50%; background:var(--sand-100); display:grid; place-items:center; transition:background .2s var(--ease), transform .3s var(--ease);}
.qa.open .q .qicon{background:var(--amber-100); transform:rotate(135deg);}
.qa .q .qicon svg{width:16px; height:16px; stroke:var(--ink-700); fill:none; stroke-width:2.4; stroke-linecap:round;}
.qa .a{max-height:0; overflow:hidden; transition:max-height .32s var(--ease);}
.qa .a-inner{padding:0 22px 20px; font-size:15.5px; line-height:1.7; color:var(--ink-600,var(--ink-700));}

/* ============ STICKY CONTACT BOX ============ */
.bookbox{position:sticky; top:96px;}
.bookcard{background:var(--cream); border:1px solid var(--line); border-radius:var(--r-xl); box-shadow:var(--shadow-md); padding:24px 24px 22px;}
.bookcard .bprice{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap;}
.bookcard .bprice b{font-family:var(--serif); font-weight:800; font-size:32px; color:var(--ink-900); line-height:1;}
.bookcard .bprice span{font-size:15px; color:var(--ink-500);}
.bookcard .bprice .rate{margin-inline-start:auto; display:inline-flex; align-items:center; gap:5px; font-size:14px; font-weight:700; color:var(--ink-900);}
.bookcard .bprice .rate .star{color:var(--mustard);}
.bookcard .bnote{font-size:13px; color:var(--ink-500); margin-top:6px;}
.bookcard .bnote.carried{margin-top:12px; color:var(--mint-deep); font-weight:600; background:var(--mint-bg); border:1px solid var(--mint-line); border-radius:12px; padding:9px 13px;}

.bfields{margin-top:18px; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden;}
.bf-row{display:grid; grid-template-columns:1fr 1fr;}
.bfield{padding:12px 15px; cursor:pointer; transition:background .15s var(--ease); position:relative;}
.bfield:hover{background:var(--sand-50);}
.bf-row .bfield + .bfield{border-inline-start:1px solid var(--line);}
.bfields .bf-row + .bf-row{border-top:1px solid var(--line);}
.bfield .bl{display:block; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--amber-800);}
.bfield .bv{display:block; font-size:14.5px; color:var(--ink-900); font-weight:600; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.bfield .bv.empty{color:var(--ink-500); font-weight:500;}

/* guest stepper popover */
.guestpop{position:absolute; z-index:30; top:calc(100% + 8px); inset-inline-end:0; width:min(300px,86vw); background:var(--cream); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); padding:8px; opacity:0; transform:translateY(-8px); pointer-events:none; transition:opacity .2s var(--ease), transform .2s var(--ease);}
.guestpop.open{opacity:1; transform:none; pointer-events:auto;}
.gstep{display:flex; align-items:center; justify-content:space-between; padding:11px 12px;}
.gstep + .gstep{border-top:1px solid var(--line-soft);}
.gstep .gname{font-size:15px; font-weight:600; color:var(--ink-900);}
.gstep .gsub{font-size:12.5px; color:var(--ink-500);}
.gstep .gctrl{display:flex; align-items:center; gap:13px;}
.gstep .gbtn{width:34px; height:34px; border-radius:50%; border:1.5px solid var(--line); background:var(--cream); display:grid; place-items:center; cursor:pointer; transition:border-color .15s var(--ease);}
.gstep .gbtn:hover:not(:disabled){border-color:var(--amber-600);}
.gstep .gbtn:disabled{opacity:.4; cursor:default;}
.gstep .gbtn svg{width:16px; height:16px; stroke:var(--ink-900); stroke-width:2.4; fill:none; stroke-linecap:round;}
.gstep .gcount{font-size:16px; font-weight:700; min-width:20px; text-align:center;}

.bcal{padding:6px 4px 2px;}
.bbtns{margin-top:16px; display:flex; flex-direction:column; gap:10px;}
.btn-wa{display:flex; align-items:center; justify-content:center; gap:10px; background:var(--amber-600); color:#3a2a08; border:none; border-radius:999px; padding:16px; font-family:var(--sans); font-weight:800; font-size:17px; cursor:pointer; transition:all .18s var(--ease); box-shadow:0 6px 16px rgba(214,164,28,.3);}
.btn-wa:hover{background:var(--amber-700); box-shadow:0 4px 12px rgba(214,164,28,.42);}
.btn-wa .wa{width:21px; height:21px; flex:none; fill:currentColor; stroke:none;}
.btn-check{display:flex; align-items:center; justify-content:center; gap:8px; background:transparent; color:var(--ink-900); border:1.5px solid var(--line); border-radius:999px; padding:13px; font-family:var(--sans); font-weight:700; font-size:15px; cursor:pointer; transition:border-color .18s var(--ease), color .18s var(--ease);}
.btn-check:hover{border-color:var(--amber-600); color:var(--amber-800);}
.btn-check svg{width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.btrust{display:flex; align-items:center; justify-content:center; gap:8px; margin-top:14px; font-size:13px; color:var(--ink-500);}
.btrust .pulse{width:9px; height:9px; border-radius:50%; background:var(--wa); flex:none; box-shadow:0 0 0 0 rgba(37,211,102,.5); animation:wapulse 2s infinite;}
@keyframes wapulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5);}70%{box-shadow:0 0 0 7px rgba(37,211,102,0);}100%{box-shadow:0 0 0 0 rgba(37,211,102,0);}}

/* owner mini */
.ownermini{display:flex; align-items:center; gap:12px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line-soft);}
.ownermini image-slot{width:46px; height:46px; flex:none; display:block; border-radius:50%;}
.ownermini .om-n{font-size:14.5px; font-weight:700; color:var(--ink-900);}
.ownermini .om-s{font-size:12.5px; color:var(--ink-500);}

@media(max-width:980px){ .bookbox{display:none;} }

/* ============ MOBILE BOOKING BAR ============ */
.mobar{
  position:fixed; bottom:0; inset-inline:0; z-index:80;
  display:none; align-items:center; gap:14px;
  background:rgba(255,253,248,.96); backdrop-filter:saturate(150%) blur(10px);
  border-top:1px solid var(--line); padding:12px 18px calc(12px + env(safe-area-inset-bottom));
  box-shadow:0 -8px 24px rgba(60,42,24,.10);
}
.mobar .mb-price b{font-family:var(--serif); font-weight:800; font-size:22px; color:var(--ink-900);}
.mobar .mb-price span{font-size:13px; color:var(--ink-500); display:block;}
.mobar .btn-wa{flex:1; padding:14px; font-size:16px;}
@media(max-width:980px){ .mobar{display:flex;} }

/* ============ LIGHTBOX ============ */
.lightbox{position:fixed; inset:0; z-index:300; background:rgba(20,14,8,.92); display:none; flex-direction:column; opacity:0; transition:opacity .25s var(--ease);}
.lightbox.open{display:flex; opacity:1;}
.lb-bar{display:flex; align-items:center; justify-content:space-between; padding:18px 22px; color:#fff;}
.lb-count{font-size:15px; font-weight:600; color:rgba(255,255,255,.85);}
.lb-close{width:44px; height:44px; border-radius:50%; border:none; background:rgba(255,255,255,.14); color:#fff; display:grid; place-items:center; cursor:pointer; transition:background .15s var(--ease);}
.lb-close:hover{background:rgba(255,255,255,.26);}
.lb-close svg{width:22px; height:22px; stroke:currentColor; stroke-width:2.2; fill:none; stroke-linecap:round;}
.lb-stage{flex:1; display:flex; align-items:center; justify-content:center; gap:14px; padding:0 18px 18px; min-height:0;}
.lb-stage img{max-width:min(1100px,92vw); max-height:78vh; border-radius:var(--r-lg); box-shadow:var(--shadow-lg); object-fit:contain;}
.lb-nav{width:52px; height:52px; flex:none; border-radius:50%; border:none; background:rgba(255,255,255,.16); color:#fff; display:grid; place-items:center; cursor:pointer; transition:background .15s var(--ease);}
.lb-nav:hover{background:rgba(255,255,255,.3);}
.lb-nav svg{width:26px; height:26px; stroke:currentColor; stroke-width:2.2; fill:none; stroke-linecap:round; stroke-linejoin:round;}
.lb-thumbs{display:flex; gap:9px; justify-content:center; padding:0 18px 24px; overflow-x:auto; scrollbar-width:none;}
.lb-thumbs::-webkit-scrollbar{display:none;}
.lb-thumbs img{width:84px; height:60px; flex:none; object-fit:cover; border-radius:10px; cursor:pointer; opacity:.5; border:2px solid transparent; transition:opacity .18s var(--ease), border-color .18s var(--ease);}
.lb-thumbs img.active{opacity:1; border-color:var(--amber-600);}
@media(max-width:640px){ .lb-nav{width:42px; height:42px;} .lb-stage{padding:0 8px 12px;} .lb-thumbs img{width:64px; height:46px;} }
