/* ═══════════════════════════════════════════════
   RESET & VARIABLES
═══════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#faf9f7;--surface:#f0ebe3;--ink:#1a1814;--sand:#e8e0d3;
  --stone:#b5aa9a;--accent:#c4a882;--text:#3a3630;--muted:#8a8278;
  --serif:'EB Garamond',Georgia,serif;
  --sans:'DM Sans',sans-serif;
  --nav-h:64px;--tab-h:50px;--tr:0.32s ease;
  --panel-sand:#e8e0d3;
}
[data-theme="dark"]{
  --bg:#141210;--surface:#1c1a15;--ink:#ede8df;--sand:#2c2920;
  --stone:#5a5448;--accent:#d4b892;--text:#c0b8a8;--muted:#706860;
  --panel-sand:#242018;
}

/* ═══ SKIP NAV ═══ */
.skip-link{position:absolute;top:-100px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:.8rem 1.5rem;font-size:.85rem;z-index:9999;transition:top .2s;border-radius:0 0 4px 4px;}
.skip-link:focus{top:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--sans);background:var(--bg);color:var(--text);overflow-x:hidden;transition:background var(--tr),color var(--tr);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
img{max-width:100%;height:auto;display:block;}
button{font-family:var(--sans);cursor:pointer;}
a{text-decoration:none;}

/* Subtle grain overlay for depth */
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.018;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
::selection{background:var(--accent);color:var(--bg);}

/* ═══════════════════════════════════════════════
   TOP NAVIGATION
═══════════════════════════════════════════════ */
.top-nav{
  position:fixed;top:0;left:0;right:0;z-index:300;height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;padding:0 2.5rem;
  background:rgba(250,249,247,0.95);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--sand);transition:background var(--tr),border-color var(--tr);
}
[data-theme="dark"] .top-nav{background:rgba(20,18,16,0.95);}
.nav-logo{font-family:var(--serif);font-size:1.35rem;font-weight:300;letter-spacing:.08em;color:var(--ink);flex-shrink:0;transition:color var(--tr);}
.nav-logo span{font-size:.85em;color:var(--accent);letter-spacing:.04em;}
.nav-controls{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:flex-end;}
.lang-sw{display:flex;gap:2px;border:1px solid var(--sand);padding:2px;transition:border-color var(--tr);}
.lang-btn{background:none;border:none;font-size:.62rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:.3rem .5rem;transition:all .2s;}
.lang-btn.active{background:var(--ink);color:var(--bg);}
.lang-btn:hover:not(.active){color:var(--ink);}
.theme-btn{background:none;border:1px solid var(--sand);width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:.92rem;color:var(--text);transition:all .2s;}
.theme-btn:hover{border-color:var(--accent);background:var(--surface);}
.nav-cta{font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--bg);background:var(--ink);padding:.55rem 1.2rem;border:none;transition:background .2s;white-space:nowrap;}
.nav-cta:hover{background:var(--accent);}

/* ═══════════════════════════════════════════════
   TAB BAR
═══════════════════════════════════════════════ */
.tab-bar{
  position:fixed;top:var(--nav-h);left:0;right:0;z-index:299;height:var(--tab-h);
  background:var(--bg);border-bottom:1px solid var(--sand);
  display:flex;align-items:stretch;overflow-x:auto;scrollbar-width:none;
  transition:background var(--tr),border-color var(--tr);
}
.tab-bar::-webkit-scrollbar{display:none;}
.tab-btn{
  flex:1;min-width:100px;background:none;border:none;
  font-size:.66rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);position:relative;transition:color .2s;white-space:nowrap;padding:0 .7rem;
  display:flex;align-items:center;justify-content:center;
}
.tab-btn:hover{color:var(--ink);}
.tab-btn.active{color:var(--ink);font-weight:500;}
.tab-btn.active::after{content:'';position:absolute;bottom:0;left:10%;right:10%;height:2px;background:var(--accent);}

/* ═══════════════════════════════════════════════
   PANELS
═══════════════════════════════════════════════ */
.tab-content{padding-top:calc(var(--nav-h) + var(--tab-h));}

.tab-panel{will-change:opacity,transform;}
.tab-panel{display:none;animation:fadeUp .4s ease;}
.tab-panel.active{display:block;}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}

/* ═══════════════════════════════════════════════
   SHARED TYPOGRAPHY
═══════════════════════════════════════════════ */
.si{padding:5rem 5rem 4rem;}
.stag{font-size:.68rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.9rem;}
.stitle{font-family:var(--serif);font-size:clamp(2rem,3.5vw,3rem);font-weight:400;color:var(--ink);line-height:1.12;margin-bottom:1.2rem;transition:color var(--tr);}
.stitle em{font-style:italic;}
.sdesc{font-size:.92rem;font-weight:300;color:var(--muted);line-height:1.8;max-width:520px;}
.btn-p{font-size:.76rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--bg);background:var(--ink);padding:.85rem 1.7rem;display:inline-block;transition:background .2s;border:none;}
.btn-p:hover{background:var(--accent);}
.btn-g{font-size:.76rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:.5rem;transition:color .2s;background:none;border:none;}
.btn-g:hover{color:var(--ink);}
.btn-g::after{content:'→';}

/* ═══════════════════════════════════════════════
   FOOTER (per-panel)
═══════════════════════════════════════════════ */
.panel-footer{background:var(--ink);padding:2rem 5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;transition:background var(--tr);}
[data-theme="dark"] .panel-footer{background:var(--surface);border-top:1px solid var(--sand);}
.ftlogo{font-family:var(--serif);font-size:1.2rem;font-weight:300;color:#f0ece4;transition:color var(--tr);}
[data-theme="dark"] .ftlogo{color:var(--ink);}
.ftlogo em{font-style:normal;font-size:.85em;color:var(--accent);}
.ftlinks{display:flex;gap:1.5rem;}
.ftlinks a{font-size:.7rem;letter-spacing:.08em;color:#8a8278;transition:color .2s;}
.ftlinks a:hover{color:var(--accent);}
.ft-logo-img{height:40px;width:40px;object-fit:contain;object-position:center;opacity:.9;border-radius:3px;transition:opacity .2s;vertical-align:middle;flex-shrink:0;}
.ft-logo-img:hover{opacity:1;}
.ftcopy{font-size:.7rem;color:#5a5448;}

/* ═══════════════════════════════════════════════
   HOME / HERO
═══════════════════════════════════════════════ */
.hero-wrap{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - var(--nav-h) - var(--tab-h));}
.hero-text{display:flex;flex-direction:column;justify-content:center;padding:5rem 4rem 5rem 5rem;}
.htag{font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem;}
.htitle{font-family:var(--serif);font-size:clamp(3rem,5vw,5.2rem);font-weight:400;line-height:1.05;color:var(--ink);margin-bottom:1rem;transition:color var(--tr);}
.htitle em{font-style:italic;color:var(--accent);}
.hsub{font-size:.96rem;font-weight:300;color:var(--muted);line-height:1.75;max-width:380px;margin-bottom:3rem;}
.hactions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;}
.hstats{display:flex;gap:2.5rem;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--sand);justify-content:flex-start;}
.snum{font-family:var(--serif);font-size:2rem;font-weight:300;color:var(--ink);display:block;transition:color var(--tr);}
.slbl{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);}
.hero-img{position:relative;overflow:hidden;}
.hero-img::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(196,168,130,.15),transparent 60%);z-index:1;}

.hero-badge{position:absolute;bottom:2rem;left:2rem;z-index:2;background:rgba(250,249,247,.96);padding:1rem 1.4rem;display:flex;align-items:center;gap:.8rem;transition:background var(--tr);}
[data-theme="dark"] .hero-badge{background:rgba(28,26,21,.96);}
.bstars{color:var(--accent);font-size:.9rem;letter-spacing:2px;}
.btxt{font-size:.72rem;color:var(--text);}
.btxt strong{display:block;font-size:.82rem;}

/* ═══════════════════════════════════════════════
   GALLERY
═══════════════════════════════════════════════ */
#panel-gallery .si{background:var(--panel-sand);transition:background var(--tr);}
.gal-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.8rem 0 2rem;}
.fbtn{font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;background:none;border:1px solid var(--stone);color:var(--muted);padding:.5rem 1.1rem;min-height:36px;transition:all .2s;}
.fbtn:hover,.fbtn.active{background:var(--ink);color:var(--bg);border-color:var(--ink);}

.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.gal-item{position:relative;overflow:hidden;cursor:pointer;border-radius:2px;transition:transform .3s,opacity .3s;}
.gal-item:hover{transform:scale(1.015);}
.gal-item:hover .gal-over{opacity:1;}
.gal-item.hidden{display:none;}
.gal-over{position:absolute;inset:0;background:rgba(26,24,20,.35);opacity:0;transition:opacity .3s;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.6rem;}
.gal-ph{width:100%;display:block;aspect-ratio:4/3;object-fit:cover;border-radius:2px;}
.gal-item img{opacity:0;transition:opacity .4s ease;}
.gal-item img.loaded{opacity:1;}


/* Gallery category header */
.gal-cat-header{grid-column:1/-1;padding:1.5rem 0 .5rem;font-family:var(--serif);font-size:1.3rem;font-weight:300;color:var(--ink);border-bottom:1px solid var(--stone);margin-bottom:.5rem;transition:color var(--tr);}
.gal-cat-header:first-of-type{padding-top:0;}


/* ═══════════════════════════════════════════════
   LIGHTBOX
═══════════════════════════════════════════════ */
.lb{position:fixed;inset:0;z-index:999;background:rgba(10,8,6,.96);display:none;flex-direction:column;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.lb.open{display:flex;}
.lb-wrap{position:relative;width:min(80vw,820px);height:min(75vh,600px);display:flex;align-items:center;justify-content:center;}
.lb-photo{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:2px;overflow:hidden;background:#0a0806;}
.lb-close{position:absolute;top:-50px;right:0;background:none;border:1px solid rgba(255,255,255,.2);color:#fff;width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s;}
.lb-close:hover{background:rgba(255,255,255,.1);}
.lb-prev,.lb-next{position:fixed;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.15);color:#fff;width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;transition:all .2s;z-index:1000;}
.lb-prev:hover,.lb-next:hover{background:rgba(255,255,255,.12);}
.lb-prev{left:2rem;}
.lb-next{right:2rem;}
.lb-meta{text-align:center;margin-top:1.2rem;}
.lb-cap{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);}
.lb-cnt{font-size:.65rem;color:rgba(255,255,255,.3);margin-top:.2rem;}

/* ═══════════════════════════════════════════════
   AMENITIES
═══════════════════════════════════════════════ */
.am-layout{display:grid;grid-template-columns:1fr 2fr;gap:5rem;align-items:start;}
.am-intro{position:sticky;top:calc(var(--nav-h)+var(--tab-h)+2rem);}
.am-big{font-family:var(--serif);font-size:5rem;font-weight:300;color:var(--sand);line-height:1;margin-bottom:.5rem;transition:color var(--tr);}
.am-grid{display:grid;grid-template-columns:repeat(3,1fr);}
.am-item{padding:1.7rem 1.4rem;border-bottom:1px solid var(--sand);border-right:1px solid var(--sand);transition:background .2s,border-color var(--tr);}
.am-item:hover{background:var(--surface);}
.am-item:nth-child(3n){border-right:none;}
.am-item:last-child{border-bottom:none;}
.am-item:nth-last-child(-n+3){border-bottom:none;}
.am-ico{font-size:1.3rem;margin-bottom:.65rem;display:block;}
.am-name{font-family:var(--serif);font-size:1rem;color:var(--ink);margin-bottom:.25rem;transition:color var(--tr);}
.am-desc{font-size:.76rem;color:var(--muted);line-height:1.5;}

/* ═══════════════════════════════════════════════
   REVIEWS
═══════════════════════════════════════════════ */
#panel-reviews .si{background:var(--panel-sand);transition:background var(--tr);}
.rv-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem;flex-wrap:wrap;gap:1rem;}
.rv-score-num{font-family:var(--serif);font-size:3.5rem;font-weight:300;color:var(--ink);line-height:1;transition:color var(--tr);}
.rv-score-stars{color:var(--accent);letter-spacing:3px;font-size:1rem;margin:.3rem 0;}
.rv-score-cnt{font-size:.7rem;color:var(--muted);letter-spacing:.08em;}

/* Carousel */
.car-viewport{position:relative;overflow:hidden;border-radius:2px;}
.car-track{display:flex;transition:transform .7s cubic-bezier(.4,0,.2,1);}
.car-slide{min-width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.rv-card{background:var(--bg);padding:2rem;position:relative;transition:background .2s;border:1px solid rgba(181,170,154,.2);display:flex;flex-direction:column;}
.rv-card:hover{background:var(--surface);}
.rv-stars{color:var(--accent);font-size:.78rem;letter-spacing:2px;margin-bottom:1rem;}
.rv-txt{font-family:var(--serif);font-size:1rem;font-weight:300;font-style:italic;color:var(--text);line-height:1.7;margin-bottom:1.5rem;}
.rv-auth{display:flex;align-items:center;gap:.8rem;}
.rv-av{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:500;color:#fff;flex-shrink:0;}
.rv-name{font-size:.8rem;font-weight:500;color:var(--ink);transition:color var(--tr);}
.rv-meta{font-size:.68rem;color:var(--muted);margin-top:.1rem;}
.rv-date{position:absolute;top:1.4rem;right:1.4rem;font-size:.65rem;color:var(--stone);}
.car-ctrl{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;}
.car-dots{display:flex;gap:.5rem;}
.car-dot{width:8px;height:8px;border-radius:50%;background:var(--stone);border:none;transition:all .3s;padding:0;}
.car-dot.active{background:var(--accent);transform:scale(1.35);}
.car-btns{display:flex;gap:.5rem;}
.car-btn{background:none;border:1px solid var(--stone);color:var(--text);width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s;}
.car-btn:hover{border-color:var(--ink);background:var(--ink);color:var(--bg);}

/* ═══════════════════════════════════════════════
   EXPLORE & MAP
═══════════════════════════════════════════════ */
#villa-map{height:480px;width:100%;border:1px solid var(--sand);z-index:1;border-radius:2px 2px 0 0;transition:border-color var(--tr);}
.dir-bar{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;padding:1rem 1.5rem;background:var(--surface);border:1px solid var(--sand);border-top:none;border-radius:0 0 2px 2px;flex-wrap:wrap;transition:background var(--tr),border-color var(--tr);}
.dir-label{font-family:var(--serif);font-size:1rem;color:var(--ink);transition:color var(--tr);}
.dir-btns{display:flex;gap:.6rem;flex-wrap:wrap;}
.dir-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;min-width:130px;justify-content:center;font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;border-radius:2px;transition:all .2s;color:#fff;}
.dir-btn:hover{opacity:.85;transform:translateY(-1px);}
.dir-google{background:#4285F4;}
.dir-apple{background:#333;}
[data-theme="dark"] .dir-apple{background:#555;}
.dir-waze{background:#33CCFF;color:#333;}
[data-theme="dark"] .leaflet-tile{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(1.1);}
[data-theme="dark"] .leaflet-control-zoom a{background:var(--surface);color:var(--ink);border-color:var(--sand);}
.leaflet-popup-content strong{font-family:var(--serif);}
.exp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:3rem;align-items:stretch;}
.exp-card{border:1px solid var(--sand);padding:1.5rem;transition:border-color .2s,transform .2s,background .2s;background:var(--bg);display:flex;flex-direction:column;}
.exp-card:hover{border-color:var(--accent);transform:translateY(-3px);}
.exp-ico{font-size:1.7rem;margin-bottom:.75rem;display:block;}
.exp-cat{font-size:.65rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:.3rem;}
.exp-name{font-family:var(--serif);font-size:1.05rem;color:var(--ink);margin-bottom:.4rem;transition:color var(--tr);}
.exp-desc{font-size:.77rem;color:var(--muted);line-height:1.6;margin-bottom:.65rem;}
.exp-dist{font-size:.68rem;color:var(--stone);margin-top:auto;padding-top:.5rem;}

/* Location info bar */
.loc-bar{display:grid;grid-template-columns:repeat(4,1fr);align-items:start;gap:1.5rem;margin-bottom:3rem;padding:2rem;background:var(--surface);border:1px solid var(--sand);border-radius:2px;transition:background var(--tr),border-color var(--tr);}
.loc-item{display:flex;align-items:flex-start;gap:.8rem;}
.loc-ico{font-size:1.1rem;margin-top:2px;}
.loc-label{font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-bottom:.15rem;}
.loc-val{font-size:.88rem;color:var(--text);}

/* ═══════════════════════════════════════════════
   BOOK & FAQ
═══════════════════════════════════════════════ */
.bfaq-layout{display:grid;grid-template-columns:1fr 1fr;gap:5rem;margin-top:3rem;}
.plat-btns{display:flex;gap:1rem;margin-bottom:2.5rem;flex-wrap:wrap;}
.btn-airbnb{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.1rem 2rem;min-height:56px;background:#FF5A5F;color:#fff;font-size:.82rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;border:none;transition:all .2s;flex:1;min-width:200px;}
.btn-airbnb:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 4px 16px rgba(255,90,95,.3);}
.btn-bkng{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.1rem 2rem;min-height:56px;background:#003580;color:#fff;font-size:.82rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;border:none;transition:all .2s;flex:1;min-width:200px;}
.btn-bkng:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,53,128,.3);}
.plat-icon{font-size:1.1rem;}
.div-or{display:flex;align-items:center;gap:1rem;margin:2rem 0;color:var(--stone);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;}
.div-or::before,.div-or::after{content:'';flex:1;height:1px;background:var(--sand);}
.form-title{font-family:var(--serif);font-size:1.45rem;font-weight:300;color:var(--ink);margin-bottom:1.4rem;transition:color var(--tr);}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.fg{margin-bottom:1.1rem;}
.fg label{display:block;font-size:.68rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin-bottom:.4rem;}
.fg input,.fg select,.fg textarea{width:100%;padding:.85rem 1rem;min-height:46px;background:var(--bg);border:1px solid var(--sand);font-family:var(--sans);font-size:.87rem;color:var(--text);outline:none;transition:border-color .2s,background var(--tr),color var(--tr);appearance:none;border-radius:0;}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--ink);}
.fg input:invalid:not(:placeholder-shown),.fg input:invalid:not([value=""]){border-color:#c45a5a;}
.fg textarea{resize:vertical;min-height:95px;}
.f-submit{width:100%;padding:1rem;background:var(--ink);color:var(--bg);font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;border:none;transition:background .2s;margin-top:.4rem;}
.f-submit:hover{background:var(--accent);}
.f-note{font-size:.7rem;color:var(--stone);text-align:center;margin-top:.7rem;}
.ci-info{margin-top:2.5rem;}
.ci-row{display:flex;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--sand);font-size:.84rem;transition:border-color var(--tr);}
.ci-lbl{font-weight:500;color:var(--stone);min-width:110px;}

/* FAQ */
.faq-box{background:var(--surface);padding:2.5rem;border:1px solid var(--sand);border-radius:2px;transition:background var(--tr),border-color var(--tr);}
.faq-box-title{font-family:var(--serif);font-size:1.55rem;font-weight:300;color:var(--ink);margin-bottom:1.5rem;transition:color var(--tr);}
.faq-item{border-bottom:1px solid var(--sand);transition:border-color var(--tr);}
.faq-q{width:100%;background:none;border:none;display:flex;justify-content:space-between;align-items:center;padding:1.1rem 0;text-align:left;gap:1rem;}
.faq-qt{font-family:var(--serif);font-size:.98rem;font-weight:400;color:var(--ink);transition:color var(--tr);text-align:left;}
.faq-ic{font-size:1.1rem;color:var(--accent);transition:transform .3s;flex-shrink:0;}
.faq-item.open .faq-ic{transform:rotate(45deg);}
.faq-a{font-size:.85rem;color:var(--muted);line-height:1.8;max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s;}
.faq-item.open .faq-a{max-height:280px;padding-bottom:1.1rem;}

/* ═══════════════════════════════════════════════
   COOKIE BANNER (GDPR)
═══════════════════════════════════════════════ */
#ck-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:var(--ink);color:rgba(240,236,228,.9);padding:1rem 3rem calc(1rem + env(safe-area-inset-bottom,0px));display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;}
#ck-banner.hidden{display:none!important;}
[data-theme="dark"] #ck-banner{background:#0e0c08;}
.ck-txt{font-size:.8rem;line-height:1.5;flex:1;min-width:200px;}
.ck-txt a{color:var(--accent);text-decoration:underline;}
.ck-acts{display:flex;gap:.6rem;flex-shrink:0;position:relative;z-index:1;}
.ck-acc{background:var(--accent);color:var(--ink);border:none;padding:.65rem 1.4rem;font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transition:background .2s,transform .1s;cursor:pointer;position:relative;z-index:802;-webkit-tap-highlight-color:rgba(196,168,130,.3);}
.ck-acc:active{transform:scale(.96);}
.ck-acc:hover{background:#d4c098;}
.ck-dec{background:none;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.2);padding:.65rem 1.4rem;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;transition:all .2s,transform .1s;cursor:pointer;position:relative;z-index:802;-webkit-tap-highlight-color:rgba(255,255,255,.2);}
.ck-dec:active{transform:scale(.96);}
.ck-dec:hover{color:#fff;border-color:rgba(255,255,255,.4);}

/* ═══════════════════════════════════════════════
   TOAST
═══════════════════════════════════════════════ */
#toast{position:fixed;bottom:5rem;right:2rem;z-index:900;background:var(--ink);color:var(--bg);padding:.9rem 1.4rem;font-size:.82rem;transform:translateY(80px);opacity:0;transition:all .4s;border-radius:2px;}
#toast.show{transform:translateY(0);opacity:1;}

/* ═══════════════════════════════════════════════
   PRIVACY POLICY MODAL
═══════════════════════════════════════════════ */
.modal-overlay{position:fixed;inset:0;z-index:950;background:rgba(10,8,6,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:2rem;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--bg);max-width:720px;width:100%;max-height:85vh;overflow-y:auto;padding:3rem;position:relative;border:1px solid var(--sand);transition:background var(--tr),border-color var(--tr);}
.modal-close{position:absolute;top:1.2rem;right:1.2rem;background:none;border:1px solid var(--sand);color:var(--text);width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s;}
.modal-close:hover{background:var(--surface);border-color:var(--accent);}
.modal-box h2{font-family:var(--serif);font-size:1.8rem;font-weight:300;color:var(--ink);margin-bottom:1.5rem;transition:color var(--tr);}
.modal-box h3{font-family:var(--serif);font-size:1.15rem;font-weight:400;color:var(--ink);margin:1.8rem 0 .6rem;transition:color var(--tr);}
.modal-box p{font-size:.88rem;color:var(--muted);line-height:1.8;margin-bottom:.8rem;}
.modal-box ul{margin:.5rem 0 1rem 1.5rem;font-size:.86rem;color:var(--muted);line-height:1.8;}
.modal-box ul li{margin-bottom:.3rem;}
.modal-box .pp-date{font-size:.72rem;color:var(--stone);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.5rem;}

/* ═══════════════════════════════════════════════
   ACCESSIBILITY WIDGET
═══════════════════════════════════════════════ */
.a11y-fab{position:fixed;bottom:calc(2rem + env(safe-area-inset-bottom,0px));left:2rem;z-index:700;width:48px;height:48px;border-radius:50%;background:var(--ink);color:var(--bg);border:2px solid var(--sand);display:flex;align-items:center;justify-content:center;font-size:1.3rem;box-shadow:0 4px 16px rgba(0,0,0,.2);transition:all .3s;cursor:pointer;}
.a11y-fab:hover{transform:scale(1.1);box-shadow:0 6px 24px rgba(0,0,0,.3);}
[data-theme="dark"] .a11y-fab{background:var(--accent);color:var(--bg);border-color:var(--accent);box-shadow:0 4px 20px rgba(212,184,146,.35);}
.a11y-panel{position:fixed;bottom:calc(5.5rem + env(safe-area-inset-bottom,0px));left:2rem;z-index:700;background:var(--bg);border:1px solid var(--sand);padding:1.8rem;width:290px;max-height:75vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.15);transform:translateY(12px);opacity:0;pointer-events:none;transition:all .3s;border-radius:2px;}
.a11y-panel.open{transform:translateY(0);opacity:1;pointer-events:all;}
/* Shift FAB and panel up when voice reader bar is active */
.vr-bar.active~.a11y-fab,.vr-bar.active+.a11y-fab{bottom:calc(5rem + env(safe-area-inset-bottom,0px))!important;}
body:has(.vr-bar.active) .a11y-fab{bottom:calc(5rem + env(safe-area-inset-bottom,0px));}
body:has(.vr-bar.active) .a11y-panel{bottom:calc(8.5rem + env(safe-area-inset-bottom,0px));}
.a11y-panel-title{font-family:var(--serif);font-size:1.15rem;font-weight:400;color:var(--ink);margin-bottom:1.2rem;display:flex;align-items:center;gap:.5rem;transition:color var(--tr);}
.a11y-row{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid var(--sand);transition:border-color var(--tr);}
.a11y-row:last-child{border-bottom:none;}
.a11y-label{font-size:.78rem;color:var(--text);font-weight:400;}
.a11y-btns{display:flex;gap:3px;}
.a11y-btn{width:32px;height:32px;background:var(--surface);border:1px solid var(--sand);color:var(--text);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;transition:all .2s;border-radius:2px;}
.a11y-btn:hover{border-color:var(--accent);background:var(--accent);color:var(--bg);}
.a11y-btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.a11y-toggle{position:relative;width:42px;height:24px;background:var(--sand);border:none;border-radius:12px;cursor:pointer;transition:background .2s;}
.a11y-toggle::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;background:var(--bg);border-radius:50%;transition:transform .2s;}
.a11y-toggle.on{background:var(--accent);}
.a11y-toggle.on::after{transform:translateX(18px);}
.a11y-reset{width:100%;margin-top:1rem;padding:.6rem;background:none;border:1px solid var(--sand);color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;transition:all .2s;}
.a11y-reset:hover{border-color:var(--ink);color:var(--ink);}

/* Accessibility states */
html.a11y-large{font-size:118%;}
html.a11y-xlarge{font-size:136%;}
html.a11y-highcontrast{--muted:#555;--stone:#666;--text:#111;--sand:#ccc;}
html.a11y-highcontrast[data-theme="dark"]{--muted:#bbb;--stone:#aaa;--text:#f0f0f0;--sand:#555;}
html.a11y-dyslexia,html.a11y-dyslexia *{font-family:'Lexend','Comic Sans MS','OpenDyslexic',sans-serif!important;}
html.a11y-links a{text-decoration:underline!important;}
html.a11y-noanim *,html.a11y-noanim *::before,html.a11y-noanim *::after{animation:none!important;transition:none!important;}
/* Color blindness modes — palette remapping (works on all browsers including iOS Safari).
   Adjusts UI colors to be distinguishable for each type of color vision deficiency. */

/* Protanopia (red-blind): reds shifted to blue-violet, greens to teal */
html.a11y-protanopia{--accent:#7B9ACC;}
html.a11y-protanopia[data-theme="dark"]{--accent:#8CAAD8;}
html.a11y-protanopia .btn-airbnb,
html.a11y-protanopia .rv-cta-btn--air{background:#6A5ACD!important;}
html.a11y-protanopia .wa-fab{background:#0097A7!important;}
html.a11y-protanopia .dir-waze{background:#0097A7!important;color:#fff!important;}
html.a11y-protanopia .rv-cta-btn--google,
html.a11y-protanopia .dir-google{background:#4A6CF7!important;}

/* Deuteranopia (green-blind): similar to protanopia — reds to violet, greens to cyan */
html.a11y-deuteranopia{--accent:#7B9ACC;}
html.a11y-deuteranopia[data-theme="dark"]{--accent:#8CAAD8;}
html.a11y-deuteranopia .btn-airbnb,
html.a11y-deuteranopia .rv-cta-btn--air{background:#9B59B6!important;}
html.a11y-deuteranopia .wa-fab{background:#00ACC1!important;}
html.a11y-deuteranopia .dir-waze{background:#00ACC1!important;color:#fff!important;}
html.a11y-deuteranopia .rv-cta-btn--google,
html.a11y-deuteranopia .dir-google{background:#4A6CF7!important;}

/* Tritanopia (blue-yellow blind): blues shifted to magenta, accent to warm coral */
html.a11y-tritanopia{--accent:#D47B6A;}
html.a11y-tritanopia[data-theme="dark"]{--accent:#E08B7A;}
html.a11y-tritanopia .btn-bkng,
html.a11y-tritanopia .rv-cta-btn--bkng{background:#8B2252!important;}
html.a11y-tritanopia .rv-cta-btn--google,
html.a11y-tritanopia .dir-google{background:#8B2252!important;}
html.a11y-tritanopia .dir-waze{background:#E67300!important;color:#fff!important;}
html.a11y-tritanopia .wa-fab{background:#2E8B57!important;}

/* Color blindness selector */
.a11y-cb-select{width:100%;padding:.4rem .6rem;background:var(--bg);border:1px solid var(--sand);font-family:var(--sans);font-size:.74rem;color:var(--text);outline:none;cursor:pointer;transition:border-color .2s;appearance:auto;border-radius:2px;}
.a11y-cb-select:focus{border-color:var(--accent);}

/* Voice reader bar */
.vr-bar{position:fixed;bottom:0;left:0;right:0;z-index:800;background:var(--ink);color:var(--bg);display:none;align-items:center;gap:1rem;padding:.8rem 2rem calc(.8rem + env(safe-area-inset-bottom,0px));border-top:2px solid var(--accent);transition:background var(--tr);}
.vr-bar.active{display:flex;z-index:10000;}
[data-theme="dark"] .vr-bar{background:var(--surface);}
.vr-btn{background:none;border:1px solid rgba(255,255,255,.25);color:#fff;width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:1rem;border-radius:50%;transition:all .2s;flex-shrink:0;cursor:pointer;-webkit-tap-highlight-color:rgba(255,255,255,.2);}
.vr-btn:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5);}
.vr-btn.playing{background:var(--accent);border-color:var(--accent);color:var(--ink);}
.vr-text{font-size:.76rem;color:rgba(255,255,255,.65);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
[data-theme="dark"] .vr-text{color:var(--muted);}
.vr-speed{background:none;border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.7);font-size:.65rem;font-weight:500;padding:.3rem .6rem;border-radius:10px;transition:all .2s;cursor:pointer;min-width:40px;text-align:center;}
.vr-speed:hover{color:#fff;border-color:rgba(255,255,255,.5);}
.vr-close{background:none;border:none;color:rgba(255,255,255,.4);font-size:1.1rem;transition:color .2s;flex-shrink:0;cursor:pointer;width:34px;height:34px;display:flex;align-items:center;justify-content:center;}
.vr-close:hover{color:#fff;}

/* ═══ WHATSAPP BUTTON ═══ */
.wa-fab{position:fixed;bottom:calc(5.5rem + env(safe-area-inset-bottom,0px));right:2rem;z-index:700;width:52px;height:52px;border-radius:50%;background:#25D366;color:#fff;border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(37,211,102,.35);cursor:pointer;transition:transform .3s,box-shadow .3s;text-decoration:none;}
.wa-fab:hover{transform:scale(1.1);box-shadow:0 6px 24px rgba(37,211,102,.45);}
.wa-fab svg{width:26px;height:26px;fill:#fff;}

/* ═══ BACK TO TOP ═══ */
.btt{position:fixed;bottom:calc(2rem + env(safe-area-inset-bottom,0px));right:7rem;z-index:600;width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--bg);border:none;display:flex;align-items:center;justify-content:center;font-size:1.1rem;box-shadow:0 3px 12px rgba(0,0,0,.2);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s,background .2s;transform:translateY(10px);}
.btt.visible{opacity:1;pointer-events:all;transform:translateY(0);}
.btt:hover{background:var(--accent);}
[data-theme="dark"] .btt{background:var(--accent);color:var(--bg);border:none;box-shadow:0 4px 20px rgba(212,184,146,.35);}

/* ═══════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════ */
@media(max-width:1200px){
  .exp-grid{grid-template-columns:repeat(2,1fr);}
  .bfaq-layout{grid-template-columns:1fr;}
  .loc-bar{grid-template-columns:1fr 1fr;}
}
@media(max-width:900px){
  .top-nav{padding:0 1rem;}
  .nav-logo{font-size:1.05rem;}
  .nav-controls{gap:.4rem;}
  .nav-cta{padding:.45rem .8rem;font-size:.62rem;}
  .tab-btn{min-width:auto;font-size:.58rem;padding:0 .6rem;flex:0 0 auto;}
  .tab-bar{justify-content:flex-start;}
  .hero-wrap{grid-template-columns:1fr;}
  .hero-text{padding:3rem 2rem;}
  .hero-img{height:55vw;}
  .si{padding:3rem 1.5rem;}
  .am-layout{grid-template-columns:1fr;gap:2rem;}
  .am-intro{position:static;}
  .am-grid{grid-template-columns:1fr 1fr;}
  /* Fix amenity borders for 2-col layout */
  .am-item:nth-child(3n){border-right:1px solid var(--sand);}
  .am-item:nth-child(2n){border-right:none;}
  .am-item:nth-last-child(-n+3){border-bottom:1px solid var(--sand);}
  .am-item:nth-last-child(-n+2){border-bottom:none;}
  .car-slide{grid-template-columns:1fr;}
  .gal-grid{grid-template-columns:1fr 1fr;}
  .exp-grid{grid-template-columns:1fr 1fr;}
  .loc-bar{grid-template-columns:1fr 1fr;}
  .panel-footer{padding:2rem 1.5rem;flex-direction:column;text-align:center;}
  .ftlinks{flex-wrap:wrap;justify-content:center;}
  .frow{grid-template-columns:1fr;}
  #villa-map{height:320px;}
  .dir-bar{flex-direction:column;text-align:center;}
  .dir-btns{justify-content:center;width:100%;}
  .dir-btn{flex:1;min-width:0;}
  .lb-prev{left:1rem;}
  .lb-next{right:1rem;}
  .plat-btns{flex-direction:column;}
  .btn-airbnb,.btn-bkng{min-width:0;width:100%;}
  .ct-row{flex-direction:column;}
  .contact-link{min-width:0;width:100%;}
  .bfaq-layout{gap:3rem;}
  .wa-fab{width:46px;height:46px;bottom:calc(5rem + env(safe-area-inset-bottom,0px));right:1rem;}
  .wa-fab svg{width:22px;height:22px;}
  .btt{right:4.5rem;width:40px;height:40px;font-size:.95rem;bottom:calc(2rem + env(safe-area-inset-bottom,0px));}
  .a11y-fab{width:44px;height:44px;bottom:calc(2rem + env(safe-area-inset-bottom,0px));left:1rem;}
  .a11y-panel{left:1rem;right:1rem;width:auto;bottom:calc(5rem + env(safe-area-inset-bottom,0px));}
}
@media(max-width:600px){
  /* Nav: hide Reserve button — Book tab already exists */
  .nav-cta{display:none;}
  .top-nav{padding:0 .8rem;height:56px;}
  .nav-logo{font-size:.95rem;}
  .nav-controls{gap:.35rem;}
  .theme-btn{width:30px;height:30px;font-size:.8rem;}
  .lang-sw{display:flex;gap:1px;border:none;padding:0;}
  .lang-btn{font-size:.55rem;padding:.25rem .4rem;}
  .tab-bar{height:44px;}
  .tab-btn{font-size:.55rem;padding:0 .5rem;letter-spacing:.08em;}
  /* Gallery & explore single-col */
  .gal-grid{grid-template-columns:1fr;}
  .exp-grid{grid-template-columns:1fr;}
  .loc-bar{grid-template-columns:1fr;}
  /* Amenities: clean 2-col cards with gap instead of borders */
  .am-grid{grid-template-columns:1fr 1fr;gap:1px;background:var(--sand);}
  .am-item{padding:1.2rem 1rem;border:none!important;background:var(--bg);}
  .am-ico{font-size:1.5rem;margin-bottom:.5rem;}
  .am-name{font-size:.92rem;}
  .am-desc{font-size:.72rem;line-height:1.45;}
  .am-big{font-size:3rem;}
  .hstats{gap:1.2rem;flex-wrap:wrap;}
  .rv-top{flex-direction:column;align-items:flex-start;}
  .car-slide{grid-template-columns:1fr;}
  .lb-wrap{width:92vw;height:auto;}
  .lb-photo{min-height:200px;}
  .si{padding:2.5rem 1.2rem;}
  .hero-text{padding:2.5rem 1.2rem;}
  .stitle{font-size:clamp(1.6rem,5vw,2.5rem);}
  .htitle{font-size:clamp(2.2rem,7vw,3.5rem);}
  .sdesc{font-size:.85rem;}
  .hsub{font-size:.88rem;margin-bottom:2rem;}
  /* Floating buttons — clear iOS Safari toolbar */
  .wa-fab{bottom:calc(4.5rem + env(safe-area-inset-bottom,0px));right:.8rem;}
  .btt{right:4rem;bottom:calc(1.8rem + env(safe-area-inset-bottom,0px));width:40px;height:40px;}
  .a11y-fab{bottom:calc(1.8rem + env(safe-area-inset-bottom,0px));left:.8rem;width:44px;height:44px;}
  .a11y-panel{left:.8rem;right:.8rem;bottom:calc(4.5rem + env(safe-area-inset-bottom,0px));padding:1.4rem;}
}

@media print{
  .top-nav,.tab-bar,.a11y-fab,.a11y-panel,.wa-fab,.btt,.vr-bar,#ck-banner,.panel-footer,.car-ctrl,.gal-filters,.gal-over,.dir-btns,.plat-btns{display:none!important;}
  .tab-panel{display:block!important;page-break-before:always;}
  .tab-content{padding-top:0!important;}
  body{font-size:11pt;color:#000;background:#fff;}
  .stitle,.htitle{color:#000!important;}
  .hero-wrap{grid-template-columns:1fr!important;}
  .hero-img{display:none!important;}
  #villa-map{display:none!important;}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important;}
  html{scroll-behavior:auto;}
}
/* ─── Lightbox loading state ─── */
.lb-photo.lb-loading {
  background-color: var(--surface) !important;
  background-image: none !important;
  position: relative;
}
.lb-photo.lb-loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 36px;
  height: 36px;
  margin: -18px 0 0 -18px;
  border: 3px solid rgba(255,255,255,.15);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: lb-spin .7s linear infinite;
}
@keyframes lb-spin { to { transform: rotate(360deg); } }

/* ─── Contact link hover (replaces inline onmouseover) ─── */
.contact-link {
  flex: 1;
  min-width: 180px;
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .9rem 1.2rem;
  border: 1px solid var(--sand);
  transition: border-color .2s, background .2s;
  background: var(--bg);
  text-decoration: none;
}
.contact-link:hover { border-color: var(--accent); }

/* ─── Home Video / Reel Section ─── */
.home-video-section {
  padding: 5rem 0 4rem;
  background: var(--bg);
}
.home-video-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.home-video-text .stag { margin-bottom: .6rem; }
.home-video-text .stitle { margin-bottom: 1rem; }
.home-video-text .sdesc { margin-bottom: 2rem; }

/* Phone frame */
.home-video-wrap {
  display: flex;
  justify-content: center;
}
.home-video-phone {
  position: relative;
  width: 280px;
  height: 500px;
  border-radius: 32px;
  overflow: hidden;
  background: #000;
  box-shadow: 0 30px 80px rgba(0,0,0,.22), 0 0 0 2px rgba(0,0,0,.12);
}
.home-video-el {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Play/pause button overlay */
.home-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: rgba(0,0,0,.45);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, transform .2s;
  z-index: 2;
}
.home-video-play:hover { background: rgba(0,0,0,.65); transform: translate(-50%,-50%) scale(1.08); }

/* Instagram-style overlay UI at bottom */
.home-video-ui {
  position: absolute;
  bottom: 60px;
  left: 0;
  right: 0;
  padding: 0 56px 0 14px;
  z-index: 3;
}
.home-video-profile {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.home-video-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-family: var(--serif);
  font-size: .9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid #fff;
}
.home-video-handle {
  color: #fff;
  font-size: .78rem;
  font-weight: 500;
  text-shadow: 0 1px 4px rgba(0,0,0,.5);
}
.home-video-follow {
  margin-left: auto;
  color: #fff;
  font-size: .72rem;
  font-weight: 600;
  border: 1.5px solid rgba(255,255,255,.8);
  padding: 2px 10px;
  border-radius: 4px;
  text-decoration: none;
  transition: background .2s;
}
.home-video-follow:hover { background: rgba(255,255,255,.15); }
.home-video-caption {
  color: #fff;
  font-size: .78rem;
  text-shadow: 0 1px 4px rgba(0,0,0,.5);
}

/* Side action buttons */
.home-video-actions {
  position: absolute;
  right: 12px;
  bottom: 80px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  z-index: 3;
}
.home-video-act {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(0,0,0,.35);
  border: none;
  cursor: pointer;
  color: #fff;
  font-size: .9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: background .2s;
}
.home-video-act:hover { background: rgba(0,0,0,.6); }

/* Progress bar at very bottom */
.home-video-phone::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent) 0%, transparent 100%);
  opacity: .7;
}

/* Note about missing video */
.home-video-phone::before {
  
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: rgba(255,255,255,.5);
  font-size: .7rem;
  text-align: center;
  pointer-events: none;
  z-index: 1;
}

@media (max-width: 768px) {
  .home-video-inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .home-video-phone { width: 240px; height: 420px; }
}

/* ─── Hero image fill ─── */
.hero-img-fill{width:100%;height:100%;object-fit:cover;display:block;}

/* ─── Stat unit superscript ─── */
.stat-unit{font-size:1.1rem;}

/* ─── Amenities extras ─── */
.sdesc--mt{margin-top:1rem;}
.sdesc--mb{margin-bottom:2rem;}
.am-count-lbl{font-size:.76rem;color:var(--stone);letter-spacing:.1em;text-transform:uppercase;}

/* ─── Reviews ─── */
.rv-score-right{text-align:right;}
.rv-cta-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1.5rem;}
.rv-cta-hdg{font-family:var(--serif);font-size:1.3rem;font-weight:300;color:var(--ink);}
.rv-cta-sub{font-size:.85rem;color:var(--muted);max-width:250px;}
.rv-cta-btns{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;}
.rv-cta-btn{font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#fff;padding:.6rem 1.2rem;}
.rv-cta-btn--air{background:#FF5A5F;}
.rv-cta-btn--bkng{background:#003580;}

/* ─── Directions details/summary ─── */
.dir-details{margin-top:1.5rem;border:1px solid var(--sand);border-radius:2px;transition:border-color var(--tr);}
.dir-summary{padding:1rem 1.5rem;cursor:pointer;font-family:var(--serif);font-size:1rem;color:var(--ink);display:flex;align-items:center;gap:.6rem;transition:color var(--tr);list-style:none;}
.dir-summary::-webkit-details-marker{display:none;}
.dir-arrow{margin-left:auto;font-size:1.1rem;color:var(--accent);transition:transform .3s;display:inline-block;}
details[open] .dir-arrow{transform:rotate(90deg);}
.dir-body{padding:0 1.5rem 1.5rem;font-size:.85rem;color:var(--muted);line-height:1.8;}
.dir-step{margin-top:.6rem;}
.dir-note{margin-top:.8rem;font-size:.78rem;color:var(--stone);}

/* ─── loc-bar top margin (explore tab) ─── */
.loc-bar{margin-top:2.5rem;}

/* ─── Contact row (book tab) ─── */
.ct-row{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem;}
.ct-icon{font-size:1.2rem;}
.ct-lbl{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);}
.ct-val{font-size:.88rem;color:var(--ink);}

/* ─── Accessibility panel variants ─── */
.a11y-btn--lg{font-size:.9rem;}
.a11y-btn--xl{font-size:1.05rem;}
.a11y-row--col{flex-direction:column;align-items:stretch;gap:.5rem;}

/* ─── SVG filter container ─── */
.svg-filters{position:absolute;width:0;height:0;overflow:hidden;}


/* ─── Google Reviews button ─── */
.rv-cta-btn--google{background:#4285F4;}
