:root{
    --bg:#fbf9f4;
    --panel:#f6f0e3;
    --panel-2:#ede2c9;
    --gold:#c9a227;
    --gold-soft:#8a661c;
    --ink:#15130f;
    --ink-dim:#5a5548;
    --ivory:#f3ead2;
    --ivory-dim:#d9cfae;
    --line:rgba(21,19,15,0.12);
    --line-jade:rgba(201,162,39,0.35);
    --ease:cubic-bezier(.16,.84,.32,1);
    --promo-h:38px;
    --promo-cta-w:130px;
  }
  @media(max-width:640px){:root{--promo-h:34px;--promo-cta-w:96px;}}
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{background:var(--bg);color:var(--ink);font-family:'Manrope',sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
  ::selection{background:var(--gold);color:var(--ink);}
  h1,h2,h3,.serif{font-family:'Fraunces',serif;font-weight:500;}
  a{color:inherit;text-decoration:none;}
  img{display:block;max-width:100%;}
  button{font-family:'Manrope',sans-serif;cursor:pointer;}
  .wrap{max-width:1260px;margin:0 auto;padding:0 40px;}
  @media(max-width:720px){.wrap{padding:0 22px;}}
  @media (prefers-reduced-motion: reduce){*{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}}

  #preloader{position:fixed;inset:0;background:#0c0a07;z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity .9s var(--ease),visibility .9s var(--ease);}
  #preloader.done{opacity:0;visibility:hidden;}
  .pre-mark{font-family:'Fraunces',serif;font-size:15px;letter-spacing:6px;color:var(--gold-soft);position:relative;padding-bottom:14px;}
  .pre-mark::after{content:"";position:absolute;bottom:0;left:50%;translate:-50% 0;width:120px;height:1px;background:rgba(243,234,210,0.18);}
  .pre-mark i{position:absolute;bottom:0;left:50%;translate:-50% 0;width:0;height:1px;background:linear-gradient(90deg,var(--gold-soft),var(--gold));animation:preload 1.6s var(--ease) forwards;}
  @keyframes preload{to{width:120px}}

  #grain{position:fixed;inset:0;pointer-events:none;z-index:400;opacity:.03;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
  #glow{position:fixed;width:460px;height:460px;border-radius:50%;pointer-events:none;z-index:2;background:radial-gradient(circle, rgba(201,162,39,0.10), transparent 70%);transform:translate(-50%,-50%);}

  /* running offers strip, fixed above the header */
  .promo-bar{position:fixed;top:0;left:0;right:0;z-index:502;height:var(--promo-h);background:linear-gradient(90deg,var(--gold),#e0b83a 50%,var(--gold));overflow:hidden;isolation:isolate;border-bottom:1px solid rgba(10,13,11,.18);}
  .promo-track{position:absolute;top:0;left:0;bottom:0;right:var(--promo-cta-w);display:flex;align-items:center;white-space:nowrap;gap:16px;padding-left:26px;line-height:1;animation:promoScroll 26s linear infinite;}
  .promo-bar:hover .promo-track{animation-play-state:paused;}
  .promo-item{font-size:12.5px;font-weight:700;letter-spacing:.4px;color:#0a0d0b;line-height:1;cursor:pointer;transition:opacity .25s;}
  .promo-item:hover{text-decoration:underline;opacity:.75;}
  .promo-sep{color:rgba(10,13,11,.4);font-size:10px;line-height:1;}
  @keyframes promoScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
  /* pinned outside the scrolling track, exactly the bar's box — can never float, wrap or overflow it */
  .promo-cta{position:absolute;top:0;right:0;bottom:0;width:var(--promo-cta-w);box-sizing:border-box;z-index:2;background:#0a0d0b;color:var(--ivory);font-size:11.5px;font-weight:700;letter-spacing:.6px;line-height:1;padding:0 20px;display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;transition:background .3s var(--ease),color .3s var(--ease);}
  .promo-cta:hover{background:var(--ink);color:var(--gold);}
  @media (prefers-reduced-motion: reduce){.promo-track{animation:none;overflow-x:auto;}}
  @media(max-width:640px){.promo-item{font-size:11px;}.promo-cta{font-size:10px;padding:0 14px;}}

  header{position:fixed;top:var(--promo-h);left:0;right:0;z-index:500;padding:26px 0;transition:.5s var(--ease);border-bottom:1px solid var(--line);}
  header.solid{padding:16px 0;}
  /* the header bar is always solid white/cream — matching the site's own theme — so the
     logo mark and "Hotel Vin Inn" wordmark never sit low-contrast over a photo or a near-black
     bar. Background lives on a pseudo-element, not on header itself, so its backdrop-filter
     never becomes the containing block for the fixed mobile nav drawer nested inside header */
  header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(251,249,244,.97);backdrop-filter:blur(14px) saturate(140%);transition:.5s var(--ease);}
  header .wrap{display:flex;align-items:center;justify-content:space-between;}
  .brand{display:flex;align-items:center;gap:12px;}
  .brand img{height:44px;width:auto;}
  /* icon-only mark (the full logo.png's baked-in "HOTEL VIN INN" text is illegible at this
     size) with a soft gold glow so it pops against the light header instead of reading flat */
  .brand-mark{filter:saturate(1.15) brightness(1.02) drop-shadow(0 1px 4px rgba(201,162,39,.35));}
  .brand-name{font-family:'Fraunces',serif;font-size:19px;color:var(--ink);}
  .brand-name small{display:block;font-family:'Manrope',sans-serif;font-size:10px;letter-spacing:2.5px;color:var(--gold-soft);font-weight:500;margin-top:2px;}
  nav.links{display:flex;gap:36px;align-items:center;}
  nav.links a{font-size:14px;font-weight:600;color:var(--ink);position:relative;padding:4px 0;}
  nav.links a:hover{color:var(--gold-soft);}
  nav.links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .35s var(--ease);}
  nav.links a:hover::after{width:100%;}
  .nav-cta{border:1px solid var(--gold);padding:11px 22px;font-size:13px;font-weight:600;color:var(--gold-soft);transition:.35s var(--ease);}
  .nav-cta:hover{background:var(--gold);color:#0a0d0b;}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:600;}
  .burger span{width:24px;height:1px;background:var(--ink);transition:.3s;}
  @media(max-width:900px){
    /* the drawer itself stays dark/full-bleed, so its own links go back to ivory-on-ink here */
    nav.links{position:fixed;inset:var(--promo-h) 0 0 30%;background:var(--ink);flex-direction:column;justify-content:center;align-items:flex-start;padding:0 40px;gap:24px;transform:translateX(100%);transition:transform .5s var(--ease);border-left:1px solid rgba(243,234,210,0.14);}
    nav.links a{color:var(--ivory);}
    nav.links a:hover{color:var(--gold);}
    nav.links a.current{color:var(--gold);}
    nav.links.open{transform:translateX(0);}
    nav.links a{font-size:19px;font-family:'Fraunces',serif;}
    .nav-cta{display:none;}
    .burger{display:flex;}
  }

  /* ===== split hero: light content panel + image carousel ===== */
  .hero-split{display:grid;grid-template-columns:45fr 55fr;align-items:stretch;min-height:660px;padding-top:calc(var(--promo-h) + 118px);background:var(--bg);}
  .hero-text{display:flex;flex-direction:column;justify-content:center;padding:56px clamp(28px,4.5vw,72px) 64px clamp(24px,6vw,64px);}
  .hero-eyebrow{font-size:13px;letter-spacing:4px;color:var(--gold-soft);margin-bottom:22px;opacity:0;transform:translateY(16px);animation:rise 1s var(--ease) .25s forwards;}
  .hero-text h1{font-size:clamp(36px,4.6vw,64px);line-height:1.06;max-width:560px;color:var(--ink);font-weight:600;opacity:0;transform:translateY(24px);animation:rise 1.1s var(--ease) .45s forwards;}
  .hero-text h1 em{font-style:italic;color:var(--gold-soft);}
  .hero-sub{margin-top:24px;font-size:16.5px;font-weight:500;color:var(--ink-dim);max-width:460px;line-height:1.75;opacity:0;transform:translateY(20px);animation:rise 1s var(--ease) .7s forwards;}
  .hero-actions{margin-top:44px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;opacity:0;transform:translateY(20px);animation:rise 1s var(--ease) 1.75s forwards;}
  @keyframes rise{to{opacity:1;transform:translateY(0);}}
  .btn-primary{background:var(--gold);color:#0a0d0b;padding:16px 34px;font-size:13px;letter-spacing:1px;font-weight:600;transition:.4s var(--ease);border:1px solid var(--gold);}
  .btn-primary:hover{background:transparent;color:var(--gold-soft);}
  .btn-jade{background:transparent;border:1px solid var(--gold-soft);color:var(--gold-soft);padding:16px 30px;font-size:13px;letter-spacing:1px;transition:.4s var(--ease);}
  .btn-jade:hover{background:var(--gold-soft);color:#0a0d0b;}
  /* the home hero's own CTA row fades in a touch later than the text above it */
  #top .hero-actions{animation-delay:.9s;}

  .hero-slider{position:relative;overflow:hidden;background:var(--panel);min-height:340px;}
  .hs-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.03);transition:opacity 1.2s var(--ease),transform 6s linear;}
  .hs-slide.active{opacity:1;transform:scale(1);z-index:1;}
  /* one source photo (the night entrance shot) is a tall portrait crop that "cover" would slice down to a sliver — show it in full instead, on a blurred fill so it still reads as a deliberate frame, not empty bars */
  .hs-slide-fit{background:none;}
  .hs-slide-blur{position:absolute;inset:-20px;background-size:cover;background-position:center;filter:blur(26px) brightness(.55) saturate(115%);transform:scale(1.15);}
  .hs-slide-img{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain;}
  .hs-arrow{position:absolute;top:50%;translate:0 -50%;width:44px;height:44px;border-radius:50%;border:1px solid rgba(243,234,210,.55);background:rgba(10,13,11,.38);backdrop-filter:blur(6px);color:var(--ivory);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.3s var(--ease);z-index:5;}
  .hs-arrow:hover{background:var(--gold);color:#0a0d0b;border-color:var(--gold);}
  .hs-prev{left:18px;}
  .hs-next{right:18px;}
  .hs-dots{position:absolute;left:0;right:0;bottom:18px;display:flex;justify-content:center;gap:9px;z-index:5;padding:6px 10px;}
  /* solid fill + dark ring, not translucent-on-photo, so dots stay visible against light or dark frames alike */
  .hs-dot{width:8px;height:8px;border-radius:50%;border:1.5px solid rgba(10,13,11,.45);background:var(--ivory);box-shadow:0 1px 4px rgba(0,0,0,.5);padding:0;cursor:pointer;transition:.3s var(--ease);}
  .hs-dot:hover{background:#fff;}
  .hs-dot.active{background:var(--gold);border-color:rgba(10,13,11,.55);width:22px;border-radius:5px;}

  @media(max-width:900px){
    .hero-split{grid-template-columns:1fr;min-height:0;padding-top:calc(var(--promo-h) + 92px);}
    .hero-text{padding:36px 22px 40px;}
    .hero-slider{min-height:0;aspect-ratio:4/3;}
  }
  @media(max-width:480px){.hero-slider{aspect-ratio:1/1;}}

  section{position:relative;padding:130px 0;}
  @media(max-width:720px){section{padding:84px 0;}}
  .eyebrow{font-size:12.5px;letter-spacing:3px;color:var(--gold-soft);margin-bottom:16px;display:block;}
  .eyebrow.gold{color:var(--gold-soft);}
  .reveal{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
  .reveal.in{opacity:1;transform:translateY(0);}
  h2.title{font-size:clamp(30px,4vw,48px);line-height:1.08;font-weight:500;}

  /* ABOUT */
  .about{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center;}
  @media(max-width:900px){.about{grid-template-columns:1fr;gap:50px;}}
  .about-frame{position:relative;perspective:1200px;}
  .tilt{position:relative;transform-style:preserve-3d;transition:transform .3s var(--ease);}
  .about-img{width:100%;aspect-ratio:4/5;object-fit:contain;background:var(--panel);box-shadow:0 50px 90px -30px rgba(0,0,0,.7);border:1px solid var(--line-jade);}
  .about-badge{position:absolute;bottom:-26px;left:-26px;background:var(--ink);color:var(--gold);padding:24px 26px;max-width:190px;box-shadow:0 30px 60px -20px rgba(0,0,0,.45);}
  .about-badge b{display:block;font-family:'Fraunces',serif;font-size:30px;}
  .about-badge span{font-size:12px;}
  .about p{margin-top:22px;color:var(--ink-dim);line-height:1.85;font-size:15.5px;max-width:520px;}
  .about-facts{display:flex;gap:36px;margin-top:38px;flex-wrap:wrap;}
  .about-facts div{border-left:1px solid var(--gold);padding-left:16px;}
  .about-facts b{display:block;font-family:'Fraunces',serif;font-size:15px;color:var(--gold-soft);}
  .about-facts span{font-size:12.5px;color:var(--ink-dim);}

  /* STATS */
  .stats-section{background:linear-gradient(180deg,var(--panel),var(--bg));border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;}
  @media(max-width:760px){.stats-grid{grid-template-columns:repeat(2,1fr);row-gap:50px;}}
  .stat-num{font-family:'Fraunces',serif;font-size:clamp(38px,4.4vw,56px);color:var(--gold-soft);}
  .stat-num.j{color:var(--gold);}
  .stat-label{margin-top:10px;font-size:12.5px;letter-spacing:1px;color:var(--ink-dim);}

  /* ROOMS - editorial alternating rows, unique layout */
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:70px;}
  .section-head p{color:var(--ink-dim);max-width:340px;font-size:14.5px;line-height:1.7;}
  .room-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px;padding:60px 0;border-top:1px solid var(--line);}
  .room-row:last-child{border-bottom:1px solid var(--line);}
  .room-row:nth-child(even) .room-media{order:2;}
  .room-row:nth-child(even) .room-copy{order:1;}
  @media(max-width:860px){.room-row{grid-template-columns:1fr;gap:32px;padding:44px 0;}.room-row:nth-child(even) .room-media,.room-row:nth-child(even) .room-copy{order:0;}}
  .room-media{position:relative;perspective:1000px;}
  /* aspect-ratio 4/3 matches the source room photos closely, so cover only trims a sliver
     instead of the ~30% top/bottom crop a fixed 340px height forced on wider (1.88:1) boxes */
  .room-media .tilt{aspect-ratio:4/3;height:auto;overflow:hidden;background:var(--panel);border:1px solid var(--line-jade);}
  .room-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease);}
  .room-media:hover img{transform:scale(1.05);}
  .room-idx{position:absolute;top:-18px;left:-18px;z-index:3;font-family:'Fraunces',serif;font-style:normal;font-weight:500;font-size:20px;line-height:1.5;letter-spacing:1px;color:var(--gold-soft);background:var(--bg);padding:6px 12px;border:1px solid var(--line-jade);white-space:nowrap;}
  .room-copy .room-tag{font-size:12px;letter-spacing:2.5px;color:var(--gold-soft);}
  .room-copy h3{font-size:clamp(26px,3vw,38px);margin-top:12px;}
  .room-copy p{margin-top:16px;color:var(--ink-dim);font-size:14.5px;line-height:1.75;max-width:420px;}
  .room-price{margin-top:16px;font-family:'Fraunces',serif;font-size:24px;font-weight:600;color:var(--gold-soft);}
  .room-price span{display:block;margin-top:3px;font-family:'Manrope',sans-serif;font-size:12.5px;font-weight:500;letter-spacing:.2px;color:var(--ink-dim);}
  .room-price.room-price-tbd{font-size:17px;}
  .room-price-extra{margin-top:8px;font-size:12.5px;color:var(--ink-dim);}
  .room-feats{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}
  .room-feats span{font-size:11.5px;letter-spacing:.5px;padding:7px 14px;border:1px solid var(--line-jade);color:var(--gold-soft);}
  .room-enquire{display:inline-flex;align-items:center;gap:8px;margin-top:26px;font-size:13px;letter-spacing:.5px;color:var(--gold-soft);border-bottom:1px solid var(--gold-soft);padding-bottom:3px;}

  /* FACILITIES */
  .fac-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
  @media(max-width:760px){.fac-grid{grid-template-columns:repeat(2,1fr);}}
  .fac-card{background:var(--bg);padding:44px 34px;transition:.4s var(--ease);}
  .fac-card:hover{background:var(--panel);}
  .fac-icon{width:36px;height:36px;color:var(--gold-soft);}
  .fac-card:nth-child(even) .fac-icon{color:var(--gold);}
  .fac-card h4{margin-top:22px;font-size:17px;font-family:'Fraunces',serif;}
  .fac-card p{margin-top:10px;font-size:13.5px;color:var(--ink-dim);line-height:1.6;}

  /* REVIEWS - switcher layout, unique */
  .review-panel{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:start;}
  @media(max-width:860px){.review-panel{grid-template-columns:1fr;gap:40px;}}
  .review-mark{font-family:'Fraunces',serif;font-size:90px;color:var(--gold);line-height:.5;height:60px;}
  .review-quote{font-family:'Fraunces',serif;font-size:clamp(20px,2.4vw,28px);line-height:1.5;font-style:italic;font-weight:300;min-height:170px;}
  .review-meta{display:flex;align-items:center;gap:14px;margin-top:30px;}
  .review-meta img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:1px solid var(--gold-soft);}
  .review-meta b{display:block;font-size:14.5px;}
  .review-meta span{font-size:12px;color:var(--ink-dim);}
  .review-dots{display:flex;gap:8px;margin-top:6px;}
  .review-dots i{width:6px;height:6px;border-radius:50%;background:var(--line-jade);}
  .review-dots i.on{background:var(--gold-soft);}
  .review-list{display:flex;flex-direction:column;gap:2px;}
  .review-chip{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid transparent;cursor:pointer;transition:.3s;}
  .review-chip.active,.review-chip:hover{border-color:var(--line-jade);background:var(--panel);}
  .review-chip img{width:40px;height:40px;border-radius:50%;object-fit:cover;opacity:.6;transition:.3s;}
  .review-chip.active img{opacity:1;}
  .review-chip b{font-size:13.5px;display:block;}
  .review-chip span{font-size:11.5px;color:var(--ink-dim);}

  /* GALLERY - drag filmstrip, unique */
  .film{position:relative;}
  .film-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:20px;cursor:grab;scrollbar-width:none;}
  .film-track.dragging{cursor:grabbing;scroll-snap-type:none;}
  .film-track::-webkit-scrollbar{display:none;}
  .film-frame{flex:0 0 auto;width:320px;height:430px;position:relative;scroll-snap-align:start;overflow:hidden;border:1px solid var(--line);}
  @media(max-width:600px){.film-frame{width:78vw;height:380px;}}
  .film-frame img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4) brightness(.82);transition:filter .6s var(--ease),transform .6s var(--ease);pointer-events:none;-webkit-user-drag:none;}
  .film-frame:hover img{filter:grayscale(0) brightness(1);transform:scale(1.04);}
  .film-num{position:absolute;bottom:16px;left:16px;font-family:'Fraunces',serif;font-style:italic;color:var(--gold-soft);font-size:14px;background:rgba(10,13,11,.7);padding:3px 10px;}
  .film-bar{height:1px;background:var(--line);margin-top:30px;position:relative;}
  .film-bar i{position:absolute;top:-1.5px;left:0;height:4px;width:12%;background:var(--gold-soft);transition:width .2s;}
  .film-hint{display:flex;justify-content:space-between;margin-top:14px;font-size:11.5px;letter-spacing:1.5px;color:var(--ink-dim);}

  /* PLACES */
  .places-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
  @media(max-width:760px){.places-grid{grid-template-columns:1fr 1fr;}}
  @media(max-width:520px){.places-grid{grid-template-columns:1fr;}}
  .place{background:var(--bg);padding:34px 30px;transition:.4s;display:flex;justify-content:space-between;align-items:center;gap:10px;}
  .place:hover{background:var(--panel);}
  .place h5{font-family:'Fraunces',serif;font-size:16px;}
  .place em{font-style:normal;font-size:12px;color:var(--ink-dim);}
  .place b{color:var(--gold-soft);font-size:14px;white-space:nowrap;}

  /* ENQUIRY FORM */
  .enquire-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;}
  @media(max-width:900px){.enquire-wrap{grid-template-columns:1fr;gap:40px;}}
  .enquire-side p{margin-top:18px;color:var(--ink-dim);font-size:14.5px;line-height:1.8;max-width:340px;}
  .enquire-side .contact-line{margin-top:30px;display:flex;flex-direction:column;gap:14px;font-size:14.5px;}
  .enquire-side .contact-line a{color:var(--gold-soft);}
  .cl-label{display:block;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-dim);margin-bottom:3px;}
  .policy-box{margin-top:26px;padding:18px 20px;background:var(--panel);border-left:3px solid var(--gold);}
  .policy-box-title{display:block;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-soft);font-weight:700;margin-bottom:8px;}
  .policy-box p{font-size:13.5px;line-height:1.7;color:var(--ink-dim);margin:0;}
  .policy-box .contact-line{flex-direction:row;align-items:center;gap:24px;font-size:13.5px;flex-wrap:wrap;margin-top:12px;}
  .policy-box .contact-line > div{display:flex;align-items:baseline;gap:8px;}
  .policy-box .contact-line .cl-label{display:inline;margin-bottom:0;}
  .policy-box .contact-line a{white-space:nowrap;}
  footer .cl-label{color:var(--ivory-dim);}
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
  @media(max-width:560px){.form-grid{grid-template-columns:1fr;}}
  .field{position:relative;grid-column:span 1;}
  .field.full{grid-column:span 2;}
  @media(max-width:560px){.field.full{grid-column:span 1;}}
  .field input,.field select,.field textarea{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line);color:var(--ink);font-family:'Manrope',sans-serif;font-size:15px;padding:14px 2px 10px;outline:none;transition:.3s;}
  .field select option{background:var(--panel);color:var(--ink);}
  .field textarea{resize:vertical;min-height:70px;}
  .field label{position:absolute;left:2px;top:14px;font-size:15px;color:var(--ink-dim);pointer-events:none;transition:.25s var(--ease);}
  .field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold-soft);}
  .field input:focus ~ label,.field input:not(:placeholder-shown) ~ label,
  .field textarea:focus ~ label,.field textarea:not(:placeholder-shown) ~ label,
  .field.has-value label{top:-12px;font-size:11px;letter-spacing:1px;color:var(--gold-soft);}
  .field select ~ label{top:-12px;font-size:11px;letter-spacing:1px;color:var(--gold-soft);}
  .form-submit{margin-top:34px;display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
  .form-note{font-size:12px;color:var(--ink-dim);}
  #formConfirm{display:none;margin-top:20px;padding:16px 20px;border:1px solid var(--line-jade);color:var(--gold-soft);font-size:14px;}
  #formConfirm.show{display:block;animation:fadein .5s var(--ease);}
  @keyframes fadein{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

  /* CTA BAND */
  .cta-band{position:relative;padding:150px 0;text-align:center;background:linear-gradient(180deg, rgba(10,13,11,.78), rgba(10,13,11,.94)), url('../hotel%20photos/WhatsApp%20Image%202026-09-14%20at%2012.14.04%20PM%20(1).jpeg') center/cover fixed;border-top:1px solid var(--line);}
  .cta-band h2{font-size:clamp(28px,4.6vw,54px);max-width:720px;margin:0 auto;line-height:1.15;color:var(--ivory);font-weight:600;text-shadow:0 4px 26px rgba(0,0,0,.55);}
  .cta-band p{margin-top:20px;color:var(--ivory-dim);font-weight:500;text-shadow:0 2px 14px rgba(0,0,0,.5);}
  .cta-band .hero-actions{justify-content:center;margin-top:40px;}

  /* FOOTER */
  footer{background:var(--ink);padding:90px 0 30px;border-top:1px solid rgba(243,234,210,0.14);}
  .foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:50px;}
  @media(max-width:860px){.foot-grid{grid-template-columns:1fr 1fr;row-gap:40px;}}
  @media(max-width:520px){.foot-grid{grid-template-columns:1fr;}}
  .foot-grid h6{font-size:12px;letter-spacing:2px;color:var(--gold-soft);margin-bottom:20px;}
  .foot-grid ul{list-style:none;display:flex;flex-direction:column;gap:11px;}
  .foot-grid a{font-size:14px;color:var(--ivory-dim);transition:.3s;}
  .foot-grid a:hover{color:var(--gold-soft);}
  .foot-brand{display:flex;align-items:center;gap:12px;}
  .foot-brand .brand-mark{height:42px;width:auto;}
  .foot-brand-name{font-family:'Fraunces',serif;font-size:19px;color:var(--ivory);}
  .foot-about p{font-size:14px;color:var(--ivory-dim);line-height:1.8;max-width:280px;margin-top:14px;}
  .foot-social{display:flex;gap:14px;margin-top:22px;}
  .foot-social a{width:36px;height:36px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px;transition:.3s;}
  .foot-social a:hover{border-color:var(--gold);color:var(--gold-soft);}
  .foot-bottom{margin-top:70px;padding-top:26px;border-top:1px solid rgba(243,234,210,0.14);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12.5px;color:var(--ivory-dim);}

  .floaters{position:fixed;right:26px;bottom:26px;display:flex;flex-direction:column;gap:14px;z-index:300;}
  .floaters a{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(0,0,0,.5);transition:.3s var(--ease);}
  .floaters a:hover{transform:translateY(-4px) scale(1.05);}
  .fl-call{background:var(--gold);color:#0a0d0b;}
  .fl-wa{background:#25D366;color:#0a0d0b;}

/* ====== ADDED: multi-page, offers, amenities, map, room gallery ====== */
nav.links a.current::after{width:100%;}
/* desktop bar: current page marked gold-soft against the header's white background.
   mobile drawer keeps its own brighter gold (see the max-width:900px block above) so it
   still reads clearly against the drawer's dark background. */
@media(min-width:901px){nav.links a.current{color:var(--gold-soft);}}

/* page hero (inner pages) */
.page-hero{position:relative;min-height:52vh;display:flex;align-items:flex-end;padding:150px 0 70px;background-size:cover;background-position:center;border-bottom:1px solid var(--line);}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,9,.8),rgba(8,10,9,.66) 45%,rgba(6,8,7,.9) 100%);}
.page-hero .wrap{position:relative;z-index:2;}
.page-hero h1{font-size:clamp(34px,5.5vw,62px);line-height:1.06;margin-top:10px;color:var(--ivory);font-weight:600;text-shadow:0 4px 26px rgba(0,0,0,.5);}
.page-hero p{color:var(--ivory-dim);font-weight:500;text-shadow:0 2px 14px rgba(0,0,0,.5);max-width:620px;margin-top:16px;line-height:1.8;}
.crumb{font-size:12px;font-weight:700;letter-spacing:2.4px;color:var(--gold);}
.crumb a{color:var(--ivory);font-weight:600;}
.crumb a:hover{color:var(--gold);}

/* offers */
.offer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:26px;}
.offer{border:1px solid var(--line);background:linear-gradient(180deg,var(--panel),var(--panel-2));padding:34px 30px 30px;display:flex;flex-direction:column;gap:14px;transition:.4s var(--ease);}
.offer:hover{border-color:var(--gold);transform:translateY(-6px);}
.offer .offer-ico{width:40px;height:40px;color:var(--gold);stroke-width:1.2;}
.offer h3{font-size:23px;}
.offer p{color:var(--ink-dim);font-size:15px;line-height:1.8;}
.offer ul{list-style:none;display:flex;flex-direction:column;gap:7px;margin-top:2px;}
.offer li{font-size:13.5px;color:var(--ink-dim);padding-left:16px;position:relative;}
.offer li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;background:var(--gold-soft);border-radius:50%;}
.offer .offer-cta{margin-top:auto;padding-top:18px;font-size:13px;letter-spacing:1.6px;color:var(--gold-soft);border-top:1px solid var(--line);transition:.3s;}
.offer .offer-cta:hover{color:var(--gold);letter-spacing:2.4px;}
.offer.offer-featured{position:relative;border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset,0 30px 60px -30px rgba(201,162,39,.35);}
.offer-badge{position:absolute;top:-13px;left:30px;background:var(--gold);color:#0a0d0b;font-size:10.5px;font-weight:700;letter-spacing:1.4px;padding:5px 14px;}
@media(max-width:900px){.offer-grid{grid-template-columns:1fr;}}

/* amenities */
.amen-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.amen{background:var(--panel);padding:30px 24px;display:flex;flex-direction:column;gap:10px;transition:.35s var(--ease);}
.amen:hover{background:var(--panel-2);}
.amen svg{width:26px;height:26px;color:var(--gold-soft);stroke-width:1.3;fill:none;stroke:currentColor;}
.amen b{font-family:'Fraunces',serif;font-weight:500;font-size:17px;}
.amen span{font-size:13.5px;color:var(--ink-dim);line-height:1.7;}
@media(max-width:1000px){.amen-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.amen-grid{grid-template-columns:1fr;}}

/* FAQ accordion (native <details>/<summary> — no JS needed) */
.faq-list{display:flex;flex-direction:column;border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);background:var(--panel);}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px;font-family:'Fraunces',serif;font-weight:500;font-size:16.5px;color:var(--ink);transition:.3s var(--ease);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary:hover{background:var(--panel-2);}
.faq-chev{width:18px;height:18px;flex:none;stroke:var(--gold-soft);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease);}
.faq-item[open] .faq-chev{transform:rotate(180deg);}
.faq-item p{margin:0;padding:0 26px 24px;font-size:14.5px;line-height:1.75;color:var(--ink-dim);max-width:70ch;}
@media(max-width:560px){.faq-item summary{padding:18px 18px;font-size:15px;}.faq-item p{padding:0 18px 20px;}}

/* map placeholder */
.map-box{border:1px dashed var(--gold);background:repeating-linear-gradient(45deg,var(--panel),var(--panel) 12px,var(--panel-2) 12px,var(--panel-2) 24px);min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:40px 24px;}
.map-box b{font-family:'Fraunces',serif;font-size:22px;color:var(--gold-soft);}
.map-box span{font-size:14px;color:var(--ink-dim);max-width:460px;line-height:1.8;}
.map-box code{font-family:monospace;font-size:12px;color:var(--gold-soft);background:rgba(0,0,0,.35);padding:4px 10px;border:1px solid var(--line-jade);}

/* room photo strip */
.room-shots{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px;}
.room-shots.room-shots-2{grid-template-columns:repeat(2,1fr);}
.room-shots img{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;background:var(--panel);border:1px solid var(--line);transition:.45s var(--ease);}
.room-shots img:hover{transform:scale(1.03);border-color:var(--gold);}
@media(max-width:700px){.room-shots{grid-template-columns:1fr 1fr;}}

/* reception strip on home */
.shot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.shot-grid figure{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);}
.shot-grid img{width:100%;height:280px;object-fit:contain;transition:.6s var(--ease);}
.shot-grid figure:hover img{transform:scale(1.04);}
.shot-grid figcaption{position:absolute;left:0;bottom:0;right:0;padding:14px 16px;font-size:12px;letter-spacing:1.8px;color:var(--ivory);background:linear-gradient(180deg,transparent,rgba(10,13,11,.85));}
@media(max-width:800px){.shot-grid{grid-template-columns:1fr;}.shot-grid img{height:230px;}}

/* distance list */
.dist-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 44px;}
@media(max-width:800px){.dist-grid{grid-template-columns:1fr;}}

/* form extras */
.form-grid .field.half{grid-column:span 1;}
#formConfirm{border:1px solid var(--gold-soft);}
.form-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.btn-wa{display:inline-flex;align-items:center;gap:9px;background:#1f8a5b;color:#fff;padding:15px 26px;font-size:13px;letter-spacing:1.5px;border:1px solid #1f8a5b;transition:.3s;}
.btn-wa:hover{background:transparent;color:#6fdda6;}

/* ====== Reserve & pay online ====== */
.price-box{border:1px solid var(--line-jade);background:var(--panel);padding:22px 24px;}
.price-row{display:flex;justify-content:space-between;gap:14px;font-size:13.5px;color:var(--ink-dim);padding:5px 0;}
.price-row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:14px;font-family:'Fraunces',serif;font-size:20px;font-weight:600;color:var(--gold-soft);}
.price-row.total span:first-child{align-self:center;}
.pay-btn{width:100%;margin-top:22px;background:var(--gold);color:#0a0d0b;padding:17px;font-size:14px;font-weight:700;letter-spacing:.5px;border:1px solid var(--gold);cursor:pointer;transition:.3s var(--ease);}
.pay-btn:hover:not(:disabled){background:transparent;color:var(--gold-soft);}
.pay-btn:disabled{opacity:.55;cursor:not-allowed;}
.reserve-error{display:none;margin-top:16px;padding:14px 16px;border:1px solid rgba(176,58,46,.4);background:rgba(176,58,46,.08);color:#8b3324;font-size:13.5px;line-height:1.6;}
.reserve-error.show{display:block;}
.avail-note{display:block;margin-top:6px;font-size:11.5px;letter-spacing:.2px;min-height:14px;}
.avail-note.ok{color:var(--gold-soft);}
.avail-note.warn{color:#8b3324;font-weight:600;}
.field select option:disabled{color:var(--ink-dim);font-style:italic;}

/* Per-child age selectors (shown when Children > 0) and the occupancy-rule explainer note */
.child-ages-label{display:block;font-size:11px;letter-spacing:1px;color:var(--gold-soft);text-transform:uppercase;margin-bottom:8px;}
.child-ages{display:flex;flex-wrap:wrap;gap:10px;}
.child-age-item{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-dim);}
.child-age-item select{padding:7px 8px;border:1px solid var(--line);font-size:13px;background:#fff;color:var(--ink);}
.child-age-item select.child-age-chargeable{border-color:var(--gold-soft);}
.occupancy-note{display:block;font-size:12px;line-height:1.7;color:var(--ink-dim);padding:12px 14px;background:var(--panel);border-left:2px solid var(--line);}

/* Room-type status badge shown next to "Room type *" — tells the guest tonight's status
   (Available / Selling fast / Sold out) before they've even picked dates. */
.status-badge{display:inline-block;margin:8px 0 0;padding:3px 10px;font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;border-radius:2px;}
.status-badge.ok{background:#e4f3e6;color:#1f7a34;}
.status-badge.fast{background:#fdf1d8;color:#8a661c;}
.status-badge.sold{background:#fbe4e1;color:#a3372a;}

/* ---------- Custom date-range picker (replaces native <input type=date> UI) ---------- */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.dates-btn{display:flex;align-items:stretch;width:100%;border-bottom:1px solid var(--line);padding:14px 2px 10px;gap:14px;}
.dates-btn:hover{border-color:var(--gold-soft);}
.dates-btn-part{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;background:transparent;border:none;padding:2px;margin:-2px;cursor:pointer;font-family:'Manrope',sans-serif;text-align:left;color:var(--ink);border-radius:4px;}
.dates-btn-part:hover,.dates-btn-part:focus-visible{background:rgba(0,0,0,.035);}
.dates-btn-part.dates-btn-part-active{background:rgba(0,0,0,.06);}
.dates-btn-label{font-size:11px;letter-spacing:1px;color:var(--gold-soft);text-transform:uppercase;}
.dates-btn-label i{font-style:normal;text-transform:none;letter-spacing:.2px;color:var(--ink-dim);}
.dates-btn-value{font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dates-btn-value.placeholder{color:var(--ink-dim);}
.dates-btn-sep{align-self:center;color:var(--ink-dim);font-size:14px;}

#rDatesField{position:relative;}
.calendar-pop{position:absolute;z-index:40;top:calc(100% + 10px);left:0;right:0;max-width:380px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px rgba(21,19,15,.16);padding:18px;}
@media(max-width:560px){.calendar-pop{max-width:none;}}
.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.calendar-month{font-family:'Fraunces',serif;font-size:15.5px;color:var(--ink);}
.calendar-nav{background:transparent;border:1px solid var(--line);width:30px;height:30px;cursor:pointer;color:var(--ink);font-size:14px;line-height:1;}
.calendar-nav:hover:not(:disabled){border-color:var(--gold-soft);color:var(--gold-soft);}
.calendar-nav:disabled{opacity:.3;cursor:default;}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.cal-dow{text-align:center;font-size:10px;letter-spacing:.5px;color:var(--ink-dim);text-transform:uppercase;padding-bottom:6px;}
.cal-day{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:12.5px;background:var(--panel);border:1px solid transparent;cursor:pointer;color:var(--ink);}
.cal-day:hover:not(.cal-day-disabled):not(.cal-day-empty){border-color:var(--gold-soft);}
.cal-day-empty{background:transparent;cursor:default;}
.cal-day-disabled{background:#f2f0ea;color:var(--ink-dim);cursor:default;opacity:.5;}
.cal-day-ok{background:#eaf6ec;}
.cal-day-fast{background:#fdf1d8;}
.cal-day-sold{background:#fbe4e1;color:#a3372a;text-decoration:line-through;cursor:not-allowed;}
.cal-day-today{box-shadow:inset 0 0 0 1px var(--gold-soft);}
.cal-day-selected{background:var(--gold) !important;color:#0a0d0b;font-weight:700;border-color:var(--gold) !important;}
.cal-day-in-range{background:var(--panel-2) !important;}
.calendar-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:10.5px;color:var(--ink-dim);}
.calendar-legend span{display:inline-flex;align-items:center;gap:5px;}
.calendar-times{margin:10px 0 0;font-size:11px;color:var(--ink-dim);text-align:center;}
.cal-dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
.cal-dot-ok{background:#3fa85a;}
.cal-dot-fast{background:#d9a63a;}
.cal-dot-sold{background:#c0392b;}
.calendar-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
.calendar-hint{font-size:11.5px;color:var(--ink-dim);}
.calendar-clear{background:transparent;border:none;color:var(--gold-soft);font-size:11.5px;cursor:pointer;text-decoration:underline;padding:0;}
.reserve-confirm{border:1px solid var(--line-jade);background:var(--panel);padding:50px 40px;text-align:center;}
.reserve-confirm h3{font-family:'Fraunces',serif;font-size:28px;color:var(--gold-soft);}
.reserve-confirm p{max-width:360px;margin-left:auto;margin-right:auto;}

.nav-drawer-cta{display:none;}
@media(max-width:900px){
  .nav-drawer-cta{display:inline-block;margin-top:10px;border:1px solid var(--gold);padding:12px 24px;font-size:13px;letter-spacing:1.4px;color:var(--gold-soft);}
  .nav-drawer-cta::after{display:none;}
  nav.links a.nav-drawer-cta:hover{background:var(--gold);color:#0a0d0b;}
}

@media(max-width:820px){
  .section-head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:44px;}
  .section-head p{max-width:none;}
  .page-hero{min-height:44vh;padding:150px 0 54px;}
  .stats-grid{gap:30px 20px;}
}

.map-embed{border:1px solid var(--line);overflow:hidden;line-height:0;}
.map-embed iframe{display:block;width:100%;height:420px;filter:grayscale(.15) contrast(1.05);}
@media(max-width:600px){.map-embed iframe{height:320px;}}

/* ====== Gallery page ====== */
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.gal-item{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line);background:var(--panel);padding:0;cursor:zoom-in;}
.gal-item img{width:100%;height:100%;object-fit:contain;transition:transform .6s var(--ease);}
.gal-item:hover img{transform:scale(1.05);}
.gal-tag{position:absolute;left:0;bottom:0;right:0;padding:10px 12px;font-size:11px;letter-spacing:1.6px;color:var(--ivory);background:linear-gradient(180deg,transparent,rgba(10,13,11,.82));text-align:left;}
.gal-group{margin-bottom:54px;}
.gal-group:last-child{margin-bottom:0;}
.gal-group h3{font-family:'Fraunces',serif;font-weight:500;font-size:20px;margin-bottom:18px;color:var(--ink);}
@media(max-width:1000px){.gal-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:680px){.gal-grid{grid-template-columns:repeat(2,1fr);gap:10px;}.gal-tag{font-size:10px;padding:8px 9px;}}

.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(10,9,7,.96);display:flex;align-items:center;justify-content:center;padding:30px;}
.lightbox[hidden]{display:none;}
.lightbox img{max-width:min(1100px,90vw);max-height:78vh;object-fit:contain;box-shadow:0 40px 100px -30px rgba(0,0,0,.8);}
.lb-cap{position:absolute;left:0;right:0;bottom:26px;text-align:center;color:var(--ivory-dim);font-size:12.5px;letter-spacing:1.5px;}
.lb-close,.lb-prev,.lb-next{position:absolute;background:transparent;border:1px solid rgba(243,234,210,0.3);color:var(--ivory);border-radius:50%;width:46px;height:46px;display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;transition:.25s var(--ease);}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{border-color:var(--gold);color:var(--gold);}
.lb-close{top:22px;right:22px;}
.lb-prev{left:22px;top:50%;translate:0 -50%;}
.lb-next{right:22px;top:50%;translate:0 -50%;}
@media(max-width:600px){.lb-prev{left:8px;width:38px;height:38px;}.lb-next{right:8px;width:38px;height:38px;}.lb-close{top:12px;right:12px;width:38px;height:38px;}.lb-cap{bottom:14px;font-size:11px;}}
