*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#1A6FD4;--blue-dark:#0d4fa0;--amber:#E8A020;--amber-light:#FEF3DC;
  --cream:#FDFAF5;--text-dark:#1A1612;--text-mid:#4A3F35;--text-muted:#8A7D72;
  --border:#EDE5D8;--shadow:0 2px 20px rgba(26,22,18,0.08);--shadow-lg:0 8px 40px rgba(26,22,18,0.14);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--text-dark);line-height:1.6;overflow-x:clip}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#fff;border-bottom:1px solid var(--border);padding:0 1rem;height:60px;display:flex;align-items:center;justify-content:space-between}
.nav-logo{text-decoration:none;display:flex;align-items:center}
.nav-logo img{height:38px;width:auto}
.nav-links{display:none}
.hamburger{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none;-webkit-tap-highlight-color:transparent}
.hamburger span{width:22px;height:2px;background:var(--text-dark);border-radius:2px;display:block;transition:all .3s}
.mobile-menu{display:none;position:fixed;top:60px;left:0;right:0;background:#fff;border-bottom:1px solid var(--border);padding:0 1.25rem 1rem;z-index:99;flex-direction:column}
.mobile-menu.open{display:flex}
.mobile-menu a{font-size:1.05rem;font-weight:500;color:var(--blue);text-decoration:none;padding:1rem 0;border-bottom:1px solid var(--border);display:block;-webkit-tap-highlight-color:transparent;transition:color .2s}
.mobile-menu a:hover{color:var(--amber)}
.mobile-menu a:last-child{border:none;color:var(--blue);font-weight:600}
.mobile-sub{padding:.625rem 0 .625rem 1.5rem !important;font-size:.9rem !important;color:var(--text-muted) !important;font-weight:400 !important}

/* HERO GALLERY */
.hero-gallery{margin-top:60px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:160px 160px;gap:3px;background:#fff;overflow:hidden}
.hero-main{grid-column:1/3;grid-row:1/2;overflow:hidden;position:relative;cursor:pointer}
.hero-main img{width:100%;height:100%;object-fit:cover;display:block}
.hero-thumb{overflow:hidden;position:relative;cursor:pointer}
.hero-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-count-btn{position:absolute;bottom:.75rem;right:.75rem;background:rgba(255,255,255,.95);border:1px solid var(--border);border-radius:10px;padding:.4rem .875rem;font-size:.78rem;font-weight:700;color:var(--text-dark);cursor:pointer;display:flex;align-items:center;gap:.375rem;font-family:inherit;-webkit-tap-highlight-color:transparent;white-space:nowrap}

/* LIGHTBOX */
.gallery-overlay{display:none;position:fixed;inset:0;background:#111;z-index:200;flex-direction:column;overscroll-behavior:contain}
.gallery-overlay.open{display:flex}
.gallery-header{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1.25rem;background:#111;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0;position:relative;z-index:2}
.gallery-header-title{color:#fff;font-size:.95rem;font-weight:600}
.gallery-header-count{color:rgba(255,255,255,.5);font-size:.8rem}
.gallery-close{background:rgba(255,255,255,.12);border:none;color:#fff;width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center;font-family:inherit;-webkit-tap-highlight-color:transparent;flex-shrink:0}
.gallery-close:hover{background:rgba(255,255,255,.25)}
.gallery-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px;display:flex;flex-direction:column;gap:4px}
.gallery-scroll img{width:100%;height:auto;display:block;border-radius:4px;cursor:zoom-in}
.gallery-scroll img:first-child{border-radius:4px 4px 0 0}

/* BOOKING MODAL */
.booking-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:300;align-items:flex-end;justify-content:center;padding:0}
.booking-overlay.open{display:flex}
.booking-modal{background:#fff;border-radius:20px 20px 0 0;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}
.booking-modal-hdr{display:flex;justify-content:space-between;align-items:center;padding:1.125rem 1.25rem;border-bottom:1px solid var(--border)}
.booking-modal-hdr span{font-size:.95rem;font-weight:700;color:var(--text-dark)}
.booking-modal-hdr button{background:none;border:none;font-size:1.375rem;cursor:pointer;color:var(--text-muted);width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-family:inherit;-webkit-tap-highlight-color:transparent}
.booking-modal-body{overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}
.booking-modal-body iframe{display:block;width:100%;height:700px;border:none}

/* CONTENT LAYOUT */
.prop-wrap{max-width:1240px;margin:0 auto;padding:1.75rem 1.125rem 2rem;display:block}
.prop-sidebar{display:none}

/* PROPERTY HEADER */
.prop-logo{height:auto;max-height:70px;width:auto;max-width:100%;display:block;margin-bottom:1rem}
.prop-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}
.prop-location{font-size:.825rem;color:var(--text-muted);display:flex;align-items:center;gap:.35rem;font-weight:500}
.loc-dot{width:6px;height:6px;border-radius:50%;background:var(--amber);flex-shrink:0}
.prop-badge{background:var(--amber-light);color:#854F0B;border-radius:100px;padding:.2rem .625rem;font-size:.72rem;font-weight:700;border:1px solid rgba(232,160,32,.3)}
.prop-h1{font-size:clamp(1.5rem,5vw,2.75rem);font-weight:700;letter-spacing:-.03em;line-height:1.1;color:var(--text-dark);margin-bottom:.75rem}
.prop-tagline{font-size:.95rem;color:var(--text-mid);line-height:1.75;margin-bottom:1.5rem}
.prop-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:1.5rem;background:#fff}
.prop-stat{padding:.75rem 0;text-align:center;border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-width:0}
.prop-stat:last-child{border-right:none}
.prop-stat-icon{font-size:1.1rem !important;display:block;margin-bottom:.2rem;line-height:1;width:100%;text-align:center}
.prop-stat-val{font-size:.78rem;font-weight:700;color:var(--text-dark);display:block;line-height:1.2;white-space:nowrap}
.prop-stat-label{font-size:.58rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.rating-strip{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;background:linear-gradient(135deg,#1A1612 0%,#2d2520 100%);border-radius:12px;margin-bottom:2rem;flex-wrap:wrap}
.rating-stars{color:var(--amber);font-size:.9rem;letter-spacing:1px}
.rating-num{font-size:1rem;font-weight:700;color:#fff}
.rating-label{font-size:.75rem;color:rgba(255,255,255,.65)}
.rating-div{width:1px;height:18px;background:rgba(255,255,255,.2);margin:0 .125rem}

/* WOW CARDS */
.wow-section{margin-bottom:3rem;margin-top:3rem}
.wow-title{font-size:.95rem;font-weight:700;color:var(--text-dark);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}
.wow-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
.wow-card{background:#fff;border-radius:14px;padding:1rem .875rem;text-align:center;border:1px solid var(--border)}
.wow-card-icon{font-size:1.625rem;display:block;margin-bottom:.4rem}
.wow-card-title{font-size:.775rem;font-weight:700;color:var(--text-dark);line-height:1.3}
.wow-card-sub{font-size:.68rem;color:var(--text-muted);margin-top:.2rem;line-height:1.4}

/* PHOTO BREAK */
.photo-break{border-radius:16px;overflow:hidden;margin:3rem 0;position:relative;cursor:pointer}
.photo-break img{width:100%;height:220px;object-fit:cover;display:block}
.photo-break-label{position:absolute;bottom:1rem;left:1rem;background:rgba(253,250,245,.92);backdrop-filter:blur(8px);border-radius:8px;padding:.375rem .75rem;font-size:.775rem;font-weight:700;color:var(--text-dark)}

/* AMENITY TABS */
.amenities-section{margin-bottom:3.5rem}
.amenities-section h3{font-size:1.05rem;font-weight:700;color:var(--text-dark);margin-bottom:.875rem;padding-top:.5rem}
.tab-nav{display:flex;gap:.375rem;overflow-x:auto;margin-bottom:1.125rem;padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tab-nav::-webkit-scrollbar{display:none}
.tab-btn{background:var(--cream);border:1px solid var(--border);border-radius:100px;padding:.5rem 1rem;font-size:.8rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .2s;font-family:inherit;white-space:nowrap;-webkit-tap-highlight-color:transparent;min-height:40px}
.tab-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}
.tab-panel{display:none}
.tab-panel.active{display:block}
.amenity-cols{display:grid;grid-template-columns:1fr;gap:0}
.amenity-row{font-size:.875rem;color:var(--text-mid);padding:.625rem 0;border-bottom:1px solid rgba(237,229,216,.6);display:flex;align-items:center;gap:.5rem}
.amenity-row:last-child{border:none}
.amenity-check{color:var(--amber);font-size:.8rem;flex-shrink:0}

/* FEATURE BANDS */
.feature-band{border-radius:16px;overflow:hidden;margin-bottom:1.25rem;display:grid;grid-template-columns:1fr}
.feature-band.reverse{direction:ltr}
.fb-img{overflow:hidden;height:220px}
.fb-img img{width:100%;height:100%;object-fit:cover;display:block}
.fb-content{padding:1.375rem 1.25rem;display:flex;flex-direction:column;justify-content:center;gap:.375rem}
.fb-content.dark{background:var(--text-dark)}
.fb-content.amber{background:var(--amber)}
.fb-content.blue{background:var(--blue)}
.fb-content.cream{background:var(--cream);border-top:1px solid var(--border)}
.fb-title{font-size:1.1rem;font-weight:700;line-height:1.2;letter-spacing:-.02em}
.fb-content.dark .fb-title,.fb-content.blue .fb-title{color:#fff}
.fb-content.amber .fb-title{color:#1A1612}
.fb-content.cream .fb-title{color:var(--text-dark)}
.fb-desc{font-size:.825rem;line-height:1.65}
.fb-content.dark .fb-desc,.fb-content.blue .fb-desc{color:rgba(255,255,255,.72)}
.fb-content.amber .fb-desc{color:rgba(26,22,18,.78)}
.fb-content.cream .fb-desc{color:var(--text-muted)}
.fb-pill{display:inline-block;background:rgba(255,255,255,.2);border-radius:100px;padding:.2rem .7rem;font-size:.7rem;font-weight:700;margin-top:.375rem;color:#fff;align-self:flex-start}
.fb-content.amber .fb-pill{background:rgba(26,22,18,.15);color:#1A1612}
.fb-content.cream .fb-pill{background:var(--blue);color:#fff}

/* REVIEWS */
.reviews-section{margin-bottom:3.5rem}
.reviews-section h3{font-size:1.05rem;font-weight:700;color:var(--text-dark);margin-bottom:1rem;padding-top:.5rem}
.testi-carousel-wrap{position:relative}
.review-cards{display:flex;overflow-x:auto;gap:.875rem;padding:0 0 .75rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.review-cards::-webkit-scrollbar{display:none}
.review-card{background:#fff;border-radius:16px;padding:1.375rem 1.25rem;border:1px solid var(--border);min-width:calc(100vw - 3rem);width:calc(100vw - 3rem);scroll-snap-align:start;flex-shrink:0;display:flex;flex-direction:column}
.rev-stars{color:var(--amber);font-size:1rem;letter-spacing:2px;margin-bottom:.625rem}
.rev-quote{font-size:.9375rem;color:var(--text-mid);line-height:1.72;font-style:italic;margin-bottom:.75rem;flex:1}
.rev-name{font-size:.825rem;font-weight:700;color:var(--text-dark)}
.review-dots{display:flex;justify-content:center;gap:.5rem;margin-top:.75rem}
.review-dot{width:7px;height:7px;border-radius:50%;background:var(--border);border:none;padding:0;cursor:pointer;transition:background .2s}
.review-dot.active{background:var(--blue)}

/* NEARBY */
.nearby-section{margin-bottom:3.5rem}
.nearby-section h3{font-size:1.05rem;font-weight:700;color:var(--text-dark);margin-bottom:1rem;padding-top:.5rem}
.nearby-grid{display:grid;grid-template-columns:1fr;gap:.5rem}
.nearby-item{background:#fff;border-radius:12px;padding:.875rem 1rem;border:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.nearby-name{font-size:.875rem;font-weight:600;color:var(--text-dark)}
.nearby-dist{font-size:.8rem;color:var(--blue);font-weight:700;background:var(--amber-light);padding:.2rem .6rem;border-radius:100px}

/* MAP */
.map-section{margin-bottom:3.5rem}
.map-section h3{font-size:1.05rem;font-weight:700;color:var(--text-dark);margin-bottom:.875rem;padding-top:.5rem}
.map-wrap{border-radius:14px;overflow:hidden;border:1px solid var(--border)}
.map-wrap iframe{display:block;border:none;width:100%;height:240px}
.map-note{font-size:.775rem;color:var(--text-muted);margin-top:.5rem;line-height:1.5}

/* FAQ */
.faq-section{margin-bottom:3.5rem}
.faq-section h3{font-size:1.05rem;font-weight:700;color:var(--text-dark);margin-bottom:1rem;padding-top:.5rem}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item:first-of-type{border-top:1px solid var(--border)}
.faq-q{width:100%;background:none;border:none;text-align:left;padding:1.125rem 0;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--text-dark);gap:1rem;min-height:56px;-webkit-tap-highlight-color:transparent}
.faq-chevron{width:28px;height:28px;border-radius:50%;background:var(--amber-light);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s,background .2s;font-size:.8rem;color:var(--amber);font-weight:700}
.faq-item.open .faq-chevron{transform:rotate(180deg);background:var(--amber);color:#fff}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-a-inner{padding-bottom:1.125rem;font-size:.875rem;color:var(--text-mid);line-height:1.75}
.faq-item.open .faq-a{max-height:600px}

/* BOOKING CARD (desktop sidebar) */
.book-card{background:#fff;border-radius:24px;padding:2rem;box-shadow:var(--shadow-lg);border:1px solid var(--border)}
.book-price-row{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.5rem}
.book-price{font-size:1.5rem;font-weight:700;color:var(--text-dark);letter-spacing:-.03em}
.book-per{font-size:.9rem;color:var(--text-muted)}
.book-savings{background:var(--amber-light);border:1px solid rgba(232,160,32,.35);border-radius:10px;padding:.625rem .875rem;font-size:.8rem;font-weight:600;color:#854F0B;margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem;line-height:1;white-space:nowrap}
.book-specs{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:1.375rem}
.book-spec-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;border-bottom:1px solid var(--border);font-size:.85rem}
.book-spec-row:last-child{border:none}
.book-spec-label{color:var(--text-muted)}
.book-spec-val{font-weight:700;color:var(--text-dark)}
.book-btn{display:block;background:var(--amber);color:#1A1612;border-radius:100px;padding:1rem;font-size:1rem;font-weight:700;text-align:center;transition:all .2s;cursor:pointer;border:none;font-family:inherit;width:100%;margin-bottom:.75rem}
.book-btn:hover{background:#d4900e}
.book-trust{font-size:.75rem;color:var(--text-muted);text-align:center;line-height:1.5;display:flex;align-items:center;justify-content:center;gap:.4rem;margin-bottom:1.25rem}
.book-divider{border:none;border-top:1px solid var(--border);margin:1.25rem 0}
.book-rating-row{display:flex;align-items:center;gap:.5rem;justify-content:center;font-size:.825rem}
.book-stars{color:var(--amber);font-size:.85rem}
.book-rating-num{font-weight:700;color:var(--text-dark)}
.book-rating-label{color:var(--text-muted)}
.airbnb-wm{font-weight:800;color:#FF5A5F;font-size:.85rem}

/* MOBILE STICKY BAR */
.mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:2px solid var(--border);padding:.75rem 1.25rem env(safe-area-inset-bottom,.75rem);z-index:90;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}
.mob-price{font-size:1rem;font-weight:400;color:var(--text-muted);white-space:nowrap}
.mob-price strong{font-size:1.1rem;font-weight:700;color:var(--text-dark)}
.mob-btn{background:var(--amber);color:#1A1612;border-radius:100px;padding:0 1.5rem;height:48px;font-size:.9rem;font-weight:700;border:none;cursor:pointer;font-family:inherit;flex-shrink:0;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center}

/* FOOTER */
footer{position:relative;overflow:clip;padding:2.5rem 1rem 2rem;max-width:100vw}
.footer-bg{position:absolute;inset:0;background-size:cover;background-position:center 30%;z-index:0}
.footer-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(13,10,6,.42) 0%,rgba(13,10,6,.82) 55%,rgba(13,10,6,.97) 100%);z-index:1}
.footer-inner{position:relative;z-index:2;max-width:900px;margin:0 auto;text-align:center}
.footer-title{font-size:clamp(1.375rem,5vw,2.25rem);font-weight:700;color:#fff;margin-bottom:2rem;letter-spacing:-.02em}
.social-row{display:flex;justify-content:center;gap:.875rem;margin-bottom:3rem}
.social-btn{width:52px;height:52px;border-radius:13px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;text-decoration:none;-webkit-tap-highlight-color:transparent}
.social-btn svg{width:20px;height:20px;fill:#fff}
.footer-logo-img{height:48px;width:auto;margin-top:5rem}
.footer-copy{font-size:.72rem;color:rgba(255,255,255,.35);margin-top:.5rem}
.footer-disclaimer{font-size:.65rem;color:rgba(255,255,255,.2);max-width:640px;margin:1.25rem auto 0;line-height:1.65}

body{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
.fi{opacity:0;transform:translateY(12px);transition:opacity .55s ease,transform .55s ease}
.fi.vis{opacity:1;transform:translateY(0)}

/* TABLET 600px+ */
@media(min-width:600px){
  .hero-gallery{grid-template-columns:2fr 1fr;grid-template-rows:210px 210px;height:420px}
  .hero-main{grid-column:1/2;grid-row:1/3}
  .hero-thumb:nth-child(4),.hero-thumb:nth-child(5){display:block}
  .wow-cards{grid-template-columns:repeat(4,1fr)}
  .review-card{min-width:45vw}
  .nearby-grid{grid-template-columns:1fr 1fr}
  .amenity-cols{grid-template-columns:1fr 1fr}
  .prop-logo{height:110px}
}

/* DESKTOP 1024px+ */
@media(min-width:1024px){
  nav{padding:0 1.5rem;height:64px}
  .nav-logo img{height:44px}
  .nav-links{display:flex;align-items:center;gap:2rem}
  .nav-links > a,.nav-item-link{font-size:1rem;font-weight:500;color:var(--blue);text-decoration:none;transition:color .2s}
  .nav-links > a:hover,.nav-item-link:hover{color:var(--amber)}
  .nav-item{position:relative;display:flex;align-items:center}
  .nav-item-link{cursor:pointer;display:flex;align-items:center;gap:.25rem}
  .nav-chevron{font-size:.7rem;opacity:.7;transition:transform .2s}
  .nav-item:hover .nav-chevron{transform:rotate(180deg)}
  .nav-dropdown{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--border);border-radius:12px;padding:.75rem .375rem .375rem;min-width:210px;box-shadow:0 8px 32px rgba(26,22,18,.13);z-index:200}
  .nav-item:hover .nav-dropdown{display:flex;flex-direction:column}
  .nav-dropdown a{padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-mid) !important;text-decoration:none;border-radius:8px;transition:background .15s,color .15s;white-space:nowrap}
  .nav-dropdown a:hover{background:var(--amber-light);color:var(--text-dark) !important}
  .nav-cta{background:var(--amber);color:#1A1612 !important;padding:.5rem 1.25rem;border-radius:100px;font-weight:700 !important}
  .nav-cta:hover{background:#d4900e !important}
  .hamburger{display:none}
  .mobile-menu{display:none !important}
  .hero-gallery{margin-top:64px;grid-template-columns:2fr 1fr 1fr;grid-template-rows:260px 260px;height:520px}
  .hero-main{grid-row:1/3;grid-column:1/2}
  .mobile-bar{display:none}
  body{padding-bottom:0}
  .prop-wrap{display:grid;grid-template-columns:1fr 400px;gap:3.5rem;padding:2.5rem 1.5rem 4rem;max-width:1240px;margin:0 auto;align-items:start}
  .prop-sidebar{display:block !important;position:sticky !important;top:84px;align-self:start;height:fit-content}
  .prop-logo{max-height:120px;height:auto}
  .prop-h1{font-size:2.75rem}
  .prop-stats{display:flex}
  .prop-stat{padding:1rem .5rem}
  .prop-stat-icon{font-size:1.25rem}
  .prop-stat-val{font-size:.875rem}
  .prop-stat-label{font-size:.68rem}
  .wow-cards{grid-template-columns:repeat(4,1fr)}
  .feature-band{grid-template-columns:1fr 1fr;min-height:240px}
  .feature-band.reverse{direction:rtl}
  .feature-band.reverse>*{direction:ltr}
  .fb-img{height:auto}
  .review-cards{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible;gap:1rem}
  .review-card{min-width:auto;width:auto}
  .review-dots{display:none}
  .photo-break img{height:320px}
  .amenity-cols{grid-template-columns:1fr 1fr}
  .nearby-grid{grid-template-columns:1fr 1fr}
  .booking-overlay{align-items:center;padding:1rem}
  .booking-modal{border-radius:20px;max-width:680px}
  .booking-modal-body iframe{height:900px}
  .mob-btn:hover{background:#d4900e}
}
