/* ============================================
   HOTEL ULTRA — FINAL DESIGN SYSTEM
   ============================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#F8F7F4; --surface:#FFFFFF; --ink:#11100E; --muted:#6E6862;
  --line:rgba(17,16,14,0.1); --gold:#986234; --gold-dark:#8B5E2F; --cream:#EBE3D5;
  --serif:'Fraunces',Georgia,serif; --sans:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --pad:clamp(64px,11vw,140px);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.6;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;background:none;border:none;cursor:pointer;color:inherit}
.wrap{max-width:1440px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}
.skip-link{position:absolute;left:16px;top:-80px;z-index:20000;background:var(--ink);color:var(--bg);padding:12px 18px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:top .2s}
.skip-link:focus{top:calc(12px + env(safe-area-inset-top,0px))}
[hidden]{display:none!important}

/* SILK SMOOTH ANIMATIONS */
.reveal { transition: opacity 0.8s ease, transform 0.8s ease; }
body.js-enabled .reveal { opacity: 0; transform: translateY(20px); }
body.js-enabled .reveal.in { opacity: 1; transform: translateY(0); }

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(248,247,244,0.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;padding-top:calc(16px + env(safe-area-inset-top,0px));padding-bottom:16px;gap:20px}
.nav-brand{font-family:var(--serif);font-size:22px;font-weight:500;letter-spacing:.02em;flex-shrink:0}
.nav-brand span{color:var(--gold)}
.nav-links{display:flex;align-items:center;gap:32px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-left:auto}
.nav-links a{color:var(--muted);transition:color .2s;padding:8px 0;white-space:nowrap}
.nav-links a:hover,.nav-links a.active{color:var(--ink)}
.nav-cta{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:var(--bg);padding:12px 20px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;transition:background .2s;flex-shrink:0}
.nav-cta:hover{background:var(--gold)}
.nav-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;font-size:24px;line-height:1;flex-shrink:0;z-index:10000}

/* HERO & BUTTONS */
.hero{position:relative;height:100svh;min-height:600px;max-height:960px;overflow:hidden;background:#11100E;display:flex;align-items:flex-end}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(10,9,8,.9) 0%,rgba(10,9,8,.15) 55%,rgba(10,9,8,.4) 100%);z-index:1}
.hero-inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(40px,7vw,80px);color:var(--bg)}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;padding:120px 0 0;margin-bottom:clamp(20px,4vw,48px);color:rgba(248,247,244,.8)}
.hero h1{font-family:var(--serif);font-size:clamp(2.8rem,9vw,7rem);font-weight:300;line-height:.96;letter-spacing:-.03em;margin-bottom:24px;max-width:12ch}
.hero h1 em{font-style:italic;color:var(--cream)}
.hero-sub{font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,2vw,1.35rem);color:rgba(248,247,244,.85);max-width:480px;margin-bottom:32px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 28px;min-height:52px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;border:1px solid transparent;cursor:pointer;transition:all .2s ease;white-space:nowrap;text-decoration:none}
.btn-primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn-primary:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.hero .btn-primary{background:var(--bg);color:var(--ink);border-color:var(--bg)}
.hero .btn-primary:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
.btn-outline{background:transparent;color:var(--bg);border-color:rgba(248,247,244,.5)}
.btn-outline:hover{background:var(--bg);color:var(--ink)}
.btn-ghost{padding:0;min-height:auto;border:none;border-bottom:1px solid currentColor;padding-bottom:4px;font-size:11px;letter-spacing:.16em}
.btn-ghost:hover{color:var(--gold);border-color:var(--gold)}

/* SECTIONS */
.sec{padding:var(--pad) 0;border-bottom:1px solid var(--line)}
.sec-last{border-bottom:none}
section[id],main [id]{scroll-margin-top:96px}
.page-hero{padding:clamp(120px,15vw,180px) 0 clamp(48px,7vw,72px);border-bottom:1px solid var(--line)}
.page-hero .eyebrow{display:block;color:var(--gold);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;margin-bottom:20px}
.page-hero h1{font-family:var(--serif);font-size:clamp(2.4rem,6.5vw,4.5rem);font-weight:300;line-height:1;letter-spacing:-.03em;margin-bottom:24px;max-width:16ch}
.page-hero h1 em{font-style:italic;color:var(--gold)}
.page-hero p{color:var(--muted);max-width:520px;font-size:16px;line-height:1.7}
.sec-head{display:grid;gap:20px;margin-bottom:clamp(48px,7vw,88px);padding-bottom:28px;border-bottom:1px solid var(--line)}
@media(min-width:900px){.sec-head{grid-template-columns:80px 1fr 1fr;gap:48px;align-items:end}}
.sec-num{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.sec-head h2{font-family:var(--serif);font-size:clamp(2rem,5vw,3.8rem);font-weight:300;line-height:1;letter-spacing:-.03em;color:var(--ink)}
.sec-head h2 em{font-style:italic;color:var(--gold)}
.sec-head p{color:var(--muted);font-size:15px;line-height:1.7;max-width:420px;margin-top:12px}

/* ROOMS */
.rooms-list{display:flex;flex-direction:column;gap:clamp(56px,9vw,120px)}
.room{display:grid;grid-template-columns:1fr;gap:24px}
@media(min-width:900px){.room{grid-template-columns:1.5fr 1fr;gap:56px;align-items:center}.room.reverse{grid-template-columns:1fr 1.5fr}.room.reverse .room-img-wrap{order:2}.room.reverse .room-info{order:1}}
.room-img-wrap{position:relative;overflow:hidden;aspect-ratio:4/3;background:#E0D8C8}
.room-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s}
.room:hover .room-img-wrap img{transform:scale(1.03)}
.room-info h2{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:400;line-height:1.1;margin-bottom:14px}
.room-info .desc{font-size:15px;line-height:1.7;color:var(--muted);margin-bottom:24px}
.room-specs{display:flex;flex-wrap:wrap;gap:16px 24px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}
.room-specs span::before{content:'·';color:var(--gold);font-weight:700;margin-right:6px}
.room-cta{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.room-price{font-family:var(--serif);font-size:24px;font-weight:400}
.room-price small{font-family:var(--sans);font-size:11px;color:var(--muted);text-transform:uppercase;margin-left:6px}

/* BOOKING */
.booking-container{max-width:1080px;margin:0 auto;background:var(--surface);border:1px solid var(--line);box-shadow:0 24px 48px rgba(17,16,14,0.03)}
.booking-header{padding:32px;border-bottom:1px solid var(--line);text-align:center}
.booking-header h2{font-family:var(--serif);font-size:24px;font-weight:400}
.booking-body{display:grid;grid-template-columns:1fr;margin:0;padding:0;border:0}
@media(min-width:900px){.booking-body{grid-template-columns:1.4fr 1fr}}
.booking-form{padding:clamp(24px,4vw,48px)}
.booking-summary{padding:clamp(24px,4vw,48px);background:#FAFAF8;border-top:1px solid var(--line);display:flex;flex-direction:column}
@media(min-width:900px){.booking-summary{border-top:none;border-left:1px solid var(--line)}}
.form-group{margin-bottom:24px}
.form-group label{display:block;font-size:11px;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.12em;font-weight:600}
.form-control{width:100%;height:52px;padding:0 16px;background:var(--surface);border:1px solid rgba(17,16,14,0.15);color:var(--ink);font-family:var(--sans);font-size:15px;outline:none;border-radius:2px;transition:border .2s}
.form-control:focus{border-color:var(--gold);background:#fff}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:480px){.form-row{grid-template-columns:1fr;gap:0}}
.summary-title{font-family:var(--serif);font-size:20px;font-weight:400;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.summary-item{display:flex;justify-content:space-between;margin-bottom:12px;font-size:14px;color:var(--muted);gap:12px}
.summary-item span:last-child{color:var(--ink);font-weight:500;text-align:right}
.summary-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-family:var(--serif);font-size:24px;font-weight:400}
.summary-total span:last-child{color:var(--gold)}
.booking-summary .btn{width:100%;margin-top:24px}

/* CALENDAR */
.cal-wrap{display:grid;grid-template-columns:1fr;gap:24px;margin-bottom:16px}
@media(min-width:600px){.cal-wrap{grid-template-columns:repeat(2,1fr)}}
.cal-month{background:#fff;padding:24px;border-radius:4px;border:1px solid var(--line)}
.cal-title{font-family:var(--serif);font-size:16px;font-weight:500;margin-bottom:16px;text-align:center;color:var(--ink)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-grid.cal-head{margin-bottom:8px}
.cal-grid.cal-head span{text-align:center;font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:600}
.cal-empty{aspect-ratio:1}
.cal-day{aspect-ratio:1;border:none;background:transparent;font-family:var(--sans);font-size:13px;color:var(--ink);cursor:pointer;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;transition:all .2s}
.cal-day.av:hover{background:var(--cream)}
.cal-day.disabled{color:#D0C8BA;cursor:not-allowed;text-decoration:line-through;opacity:.6}
.cal-day.sel{background:var(--gold-dark);color:#fff;font-weight:600}
.cal-day.range{background:var(--cream);border-radius:0}
.cal-day.start{border-top-right-radius:0;border-bottom-right-radius:0}
.cal-day.end{border-top-left-radius:0;border-bottom-left-radius:0}
@media(max-width:600px){.cal-day{font-size:12px}}

/* SERVICES UI */
.services-grid{display:grid;grid-template-columns:1fr;gap:24px;max-width:1000px;margin:0 auto}
@media(min-width:800px){.services-grid{grid-template-columns:repeat(2,1fr);gap:32px}}
.service-item{padding:32px;border:1px solid var(--line);background:#fff;transition:all .3s ease;display:flex;flex-direction:column;height:100%}
.service-item:hover{border-color:var(--gold);box-shadow:0 12px 32px rgba(163,112,66,0.08)}
.service-num{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--gold);letter-spacing:.1em;margin-bottom:16px}
.service-title{font-family:var(--serif);font-size:clamp(1.4rem,2.5vw,1.8rem);font-weight:400;letter-spacing:-.02em;color:var(--ink);line-height:1.15;margin-bottom:12px}
.service-desc{color:var(--muted);font-size:15px;line-height:1.7;flex-grow:1}

/* ROOM DETAIL */
.room-detail-grid{display:grid;grid-template-columns:1fr;gap:40px}
@media(min-width:900px){.room-detail-grid{grid-template-columns:1.4fr 1fr;gap:60px;align-items:start}}
.room-hero-img{aspect-ratio:4/3;overflow:hidden;background:#E0D8C8;margin-bottom:12px}
.room-hero-img img{width:100%;height:100%;object-fit:cover}
.room-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:32px}
.room-thumbs img{aspect-ratio:1;object-fit:cover;width:100%;height:100%}
.room-spec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media(min-width:600px){.room-spec-grid{grid-template-columns:repeat(4,1fr)}}
.room-spec-grid span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:6px}
.room-spec-grid strong{font-family:var(--serif);font-size:16px;font-weight:500;color:var(--ink)}
.booking-box{border:1px solid var(--line);padding:24px;background:#fff;position:sticky;top:100px;box-shadow:0 12px 32px rgba(17,16,14,.03)}
@media(max-width:900px){.booking-box{position:static}}
.booking-box-title{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.booking-box-price{font-family:var(--serif);font-size:28px;font-weight:400;margin-bottom:4px}
.booking-box-price small{font-family:var(--sans);font-size:11px;text-transform:uppercase;color:var(--muted);margin-left:4px}
.booking-box-note{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:14px;margin-bottom:20px}
.room-summary{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.room-summary .row{display:flex;justify-content:space-between;margin-bottom:8px;font-size:13px;color:var(--muted)}
.room-summary .row strong{color:var(--ink);font-weight:600}

/* GALLERY */
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:800px){.gallery-grid{grid-template-columns:repeat(3,1fr);gap:20px}}
.gallery-item{aspect-ratio:1/1;overflow:hidden;background:#E0D8C8;cursor:zoom-in;border:none;padding:0}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 1s}
.gallery-item:hover img{transform:scale(1.04)}
.lightbox{border:none;background:rgba(17,16,14,.96);padding:0;max-width:100vw;max-height:100vh;width:100vw;height:100vh;display:none;align-items:center;justify-content:center}
.lightbox[open]{display:flex}
.lightbox img{max-width:90vw;max-height:86vh;object-fit:contain}
.lightbox .lb-close,.lightbox .lb-prev,.lightbox .lb-next{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:none;font-size:24px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%}
.lightbox .lb-close{top:20px;right:20px}
.lightbox .lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.lightbox .lb-next{right:20px;top:50%;transform:translateY(-50%)}

/* FLOATING WHATSAPP */
.wa-float{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));right:20px;z-index:999;display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--bg);height:60px;padding:0 22px;border-radius:30px;box-shadow:0 8px 24px rgba(17,16,14,.25);font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transition:all .2s ease}
.wa-float:hover{transform:translateY(-2px);background:var(--gold);color:#fff}
.wa-float svg{width:26px;height:26px;flex-shrink:0;fill:currentColor}
@media(max-width:600px){.wa-float{height:56px;width:56px;padding:0;border-radius:50%;justify-content:center}.wa-float span{display:none}}
body.footer-visible .wa-float{opacity:0;visibility:hidden;pointer-events:none}

/* FOOTER */
footer{padding:64px 0 calc(32px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.footer-grid{display:grid;grid-template-columns:1fr;gap:40px;margin-bottom:48px}
@media(min-width:700px){.footer-grid{grid-template-columns:1.6fr 1fr 1fr;gap:56px}}
.footer-brand{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--ink);margin-bottom:16px;display:inline-block}
.footer-brand span{color:var(--gold)}
.footer-grid h3{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin-bottom:20px}

/* Journal cards (home + journal page) */
.journal-list{display:grid;grid-template-columns:1fr;gap:40px}
@media(min-width:800px){.journal-list{grid-template-columns:repeat(2,1fr);gap:56px}}
.journal-card{display:flex;flex-direction:column;border:1px solid var(--line);background:#fff;overflow:hidden;transition:border-color .25s,box-shadow .25s}
.journal-card:hover{border-color:var(--gold);box-shadow:0 12px 32px rgba(163,112,66,.08)}
.journal-card-img{aspect-ratio:16/10;overflow:hidden;background:var(--cream)}
.journal-card-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s}
.journal-card:hover .journal-card-img img{transform:scale(1.04)}
.journal-card-body{padding:28px;display:flex;flex-direction:column;gap:12px;flex-grow:1}
.journal-date{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.journal-card h2,.journal-card h3{font-family:var(--serif);font-size:clamp(1.3rem,2.5vw,1.7rem);font-weight:400;line-height:1.2;color:var(--ink)}
.journal-card p{color:var(--muted);font-size:15px;line-height:1.7;flex-grow:1}
.journal-card .btn-ghost{margin-top:8px;align-self:flex-start}
.journal-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:60px 20px;font-family:var(--serif);font-style:italic}
.footer-grid a{display:block;padding:6px 0;transition:color .2s}
.footer-bottom{padding-top:28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:12px;letter-spacing:.08em}


/* ============================================
   MOBILE SPECIFIC OVERRIDES (Hero, Menu, Gallery, Spacing)
   ============================================ */
@media(max-width:900px){
  
  /* 1. CENTERED HERO & SHORTER HEIGHT */
  .hero { min-height: 85svh !important; align-items: center; }
  .hero-inner { text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; padding-bottom: 0; }
  .hero h1 { text-align: center; font-size: clamp(2.4rem, 9vw, 4rem); max-width: 100%; margin-left: auto; margin-right: auto; }
  .hero-sub { text-align: center; margin-left: auto; margin-right: auto; font-size: clamp(1rem, 4vw, 1.2rem); }
  .hero-actions { flex-direction: column; width: 100%; align-items: center; gap: 12px; }
  .hero-actions .btn { width: 100%; max-width: 320px; }
  .hero-top { display: none; } /* Hide coords */

  /* 2. FULL-SCREEN PREMIUM MENU */
  .nav-links { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; min-height:100dvh; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; background: #11100E !important; flex-direction: column; justify-content: flex-start; align-items: center; gap: 0; padding: calc(88px + env(safe-area-inset-top,0px)) 24px calc(32px + env(safe-area-inset-bottom,0px)); margin: 0 !important; z-index: 9999; }
  .nav-links.show { display: flex; }
  .nav-links a { font-family: var(--serif) !important; font-size: clamp(1.65rem, 7.5vw, 2.2rem) !important; font-weight: 300 !important; color: #F8F7F4 !important; text-transform: none !important; letter-spacing: -0.02em !important; width: 100%; text-align: center; padding: clamp(12px, 2.2vh, 20px) 0 !important; border-bottom: 1px solid rgba(255,255,255,0.08) !important; }
  .nav-links a:last-child { border-bottom: none !important; }
  .nav-links a.active { color: var(--gold) !important; }
  
  /* Menu Open State */
  body.menu-open { overflow: hidden; }
  /* backdrop-filter creates a containing block for fixed descendants — remove it
     while the full-screen menu is open, otherwise the menu is only nav-height tall. */
  body.menu-open .nav { -webkit-backdrop-filter: none; backdrop-filter: none; }
  body.menu-open .nav-toggle { position: fixed; top: calc(20px + env(safe-area-inset-top, 0px)); right: 20px; color: #F8F7F4 !important; font-size: 32px !important; z-index: 10000; background: rgba(255,255,255,0.1); border-radius: 50%; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; }
  body.menu-open .nav-brand { position: fixed; top: calc(20px + env(safe-area-inset-top, 0px)); left: 24px; color: #F8F7F4 !important; z-index: 10000; }
  body.menu-open .nav-brand span { color: var(--gold) !important; }
  body.menu-open .wa-float { display: none !important; }

  /* Menu Closed State */
  .nav-toggle { display: flex !important; color: var(--ink); font-size: 28px !important; z-index: 10000; }
  .nav-cta { display: none !important; }

  /* 3. TIGHTENED SPACING (Pulls rooms up) */
  .page-hero { padding-top: 100px !important; padding-bottom: 32px !important; }
  .sec { padding: 48px 0 !important; }
  .sec-head { margin-bottom: 40px !important; padding-bottom: 24px !important; }
  .rooms-list { gap: 48px !important; }

  /* 4. FULL-WIDTH IMMERSIVE GALLERY */
  .gallery-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
  .gallery-item { aspect-ratio: 4/3 !important; }
}

/* Two-up gallery on portrait tablets — one huge image per row is a lot of scrolling */
@media(min-width:600px) and (max-width:900px){
  .gallery-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .gallery-item { aspect-ratio: 1 / 1 !important; }
}


/* ============================================
   FIXES — Contact page, a11y, reduced motion
   ============================================ */

/* Contact info block (was unstyled) */
.contact-info { padding: 0 0 clamp(48px,7vw,72px); }
.contact-grid { display: grid; grid-template-columns: 1fr; gap: 32px; padding: 32px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
@media (min-width: 700px) { .contact-grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 48px; } }
.contact-item p { font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.contact-item strong { display: block; font-family: var(--serif); font-size: 17px; font-weight: 400; color: var(--ink); line-height: 1.4; word-break: break-word; }
.contact-item a { color: var(--ink); border-bottom: 1px solid transparent; transition: border-color .2s, color .2s; }
.contact-item a:hover { color: var(--gold); border-color: var(--gold); }

/* Map container (was collapsing) */
.map-container { aspect-ratio: 16 / 9; max-height: 480px; overflow: hidden; background: var(--cream); border: 1px solid var(--line); }
.map-container iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Booking alert (was invisible) */
.booking-alert { display: none; margin-top: 16px; padding: 12px 16px; background: #FEF2F2; border: 1px solid #FECACA; color: #991B1B; font-size: 13px; line-height: 1.5; border-radius: 2px; }
.booking-alert.show { display: block; }

/* Visible focus for keyboard users */
.btn:focus-visible,
.cal-day:focus-visible,
.gallery-item:focus-visible,
.nav-links a:focus-visible,
.nav-toggle:focus-visible,
.wa-float:focus-visible,
.footer-grid a:focus-visible,
.contact-item a:focus-visible,
.skip-link:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  body.js-enabled .reveal { opacity: 1 !important; transform: none !important; }
  .room-img-wrap img, .gallery-item img { transition: none !important; }
}