/* ---------- tokens ---------- */
  :root{
    --paper: #FAF4E8;
    --paper-2: #F2E7D2;
    --paper-3: #E7D6B4;
    --ink: #2E2318;
    --ink-soft: #6B5A44;
    --ink-faint: #9C8A70;
    --brass: #9C6B32;
    --brass-deep: #7A4F22;
    --brass-tint: #F0DCB0;
    --indigo: #3E2B1E;
    --indigo-soft: #5C4330;
    --line: #E0CFA0;
    --success: #3F7D58;
    --success-tint: #DCEBE1;
    --danger: #A6432F;
    --danger-tint: #F2DDD6;
    --card-shadow: 0 1px 2px rgba(46,35,24,0.08), 0 8px 24px -12px rgba(46,35,24,0.20);
    --radius-s: 8px;
    --radius-m: 14px;
    --radius-l: 22px;
    --font-display: "Fraunces", Georgia, "Times New Roman", serif;
    --font-body: "Karla", -apple-system, "Segoe UI", sans-serif;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper: #1B140D;
      --paper-2: #241B12;
      --paper-3: #2F2418;
      --ink: #F3E9D8;
      --ink-soft: #CBB99C;
      --ink-faint: #8F7A5E;
      --brass: #E0A85B;
      --brass-deep: #F0C878;
      --brass-tint: #3A2A14;
      --indigo: #6B4423;
      --indigo-soft: #8B5C34;
      --line: #392C1C;
      --success: #6FBE8C;
      --success-tint: #1B2E24;
      --danger: #E38A76;
      --danger-tint: #34201C;
      --card-shadow: 0 1px 2px rgba(0,0,0,0.3), 0 12px 28px -14px rgba(0,0,0,0.55);
    }
  }
  :root[data-theme="dark"]{
    --paper: #1B140D;
    --paper-2: #241B12;
    --paper-3: #2F2418;
    --ink: #F3E9D8;
    --ink-soft: #CBB99C;
    --ink-faint: #8F7A5E;
    --brass: #E0A85B;
    --brass-deep: #F0C878;
    --brass-tint: #3A2A14;
    --indigo: #6B4423;
    --indigo-soft: #8B5C34;
    --line: #392C1C;
    --success: #6FBE8C;
    --success-tint: #1B2E24;
    --danger: #E38A76;
    --danger-tint: #34201C;
    --card-shadow: 0 1px 2px rgba(0,0,0,0.3), 0 12px 28px -14px rgba(0,0,0,0.55);
  }

  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;overflow-x:hidden;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;}
  button{font-family:inherit;}
  ::selection{background:var(--brass-tint);color:var(--ink);}

  h1,h2,h3,h4{
    font-family:var(--font-display);
    font-weight:600;
    margin:0;
    letter-spacing:-0.01em;
    text-wrap:balance;
    color:var(--ink);
  }
  .eyebrow{
    font-family:var(--font-body);
    font-weight:700;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--brass);
  }
  p{color:var(--ink-soft);}
  .lede{font-size:1.05rem;max-width:60ch;}

  .wrap{max-width:1120px;margin:0 auto;padding-left:clamp(20px,4vw,40px);padding-right:clamp(20px,4vw,40px);}
  .section{padding-top:clamp(48px,8vw,88px);padding-bottom:clamp(48px,8vw,88px);}
  .section-head{display:flex;flex-direction:column;gap:10px;margin-bottom:clamp(28px,4vw,44px);max-width:640px;}
  .section-head h2{font-size:clamp(1.7rem,3vw,2.4rem);}
  .divider{height:1px;background:var(--line);border:0;margin:0;}

  /* ---------- header ---------- */
  header.site-header{
    position:sticky;top:0;z-index:40;
    background:color-mix(in srgb, var(--paper) 88%, transparent);
    backdrop-filter:blur(10px) saturate(1.1);
    border-bottom:1px solid var(--line);
  }
  .header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px;padding-bottom:12px;}
  .brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
  .brand img{width:38px;height:38px;border-radius:50%;object-fit:cover;border:1px solid var(--line);}
  .brand-word{font-family:var(--font-display);font-weight:600;font-size:1.15rem;line-height:1.1;color:var(--ink);}
  .brand-tag{display:block;font-family:var(--font-body);font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-faint);margin-top:2px;}
  nav.main-nav{display:flex;gap:26px;align-items:center;}
  nav.main-nav a{font-size:0.92rem;font-weight:600;text-decoration:none;color:var(--ink-soft);}
  nav.main-nav a:hover{color:var(--brass);}
  .header-cta{display:flex;align-items:center;gap:14px;}
  .phone-link{font-size:0.9rem;font-weight:700;text-decoration:none;color:var(--ink);white-space:nowrap;}
  .phone-link svg{vertical-align:-3px;margin-right:6px;}

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:13px 24px;border-radius:999px;border:1px solid transparent;
    font-weight:700;font-size:0.94rem;cursor:pointer;text-decoration:none;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease, opacity .15s ease;
    white-space:nowrap;
  }
  .btn:active{transform:translateY(1px);}
  .btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px;}
  .btn-primary{background:var(--brass);color:#20140A;}
  .btn-primary:hover{background:var(--brass-deep);}
  .btn-primary[disabled]{opacity:0.45;cursor:not-allowed;}
  .btn-ghost{background:transparent;border-color:var(--line);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--brass);color:var(--brass);}
  .btn-dark{background:var(--indigo);color:#F5ECDC;}
  .btn-dark:hover{background:var(--indigo-soft);}
  .btn-block{width:100%;}
  .btn-sm{padding:9px 16px;font-size:0.85rem;border-radius:999px;}

  /* ---------- hero ---------- */
  .hero{position:relative;overflow:hidden;background:var(--indigo);}
  .hero-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:clamp(24px,5vw,56px);align-items:center;padding-top:clamp(52px,8vw,84px);padding-bottom:clamp(52px,8vw,84px);}
  .hero-copy .eyebrow{color:var(--brass-deep);}
  .hero h1{color:#FBF7EC;font-size:clamp(2.3rem,5vw,3.6rem);margin-top:12px;line-height:1.05;}
  .hero h1 em{font-style:italic;color:var(--brass-deep);font-weight:500;}
  .hero p.lede{color:#E8D9C2;margin-top:16px;font-size:1.08rem;}
  .hero-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;}
  .hero-stats{display:flex;gap:28px;margin-top:36px;flex-wrap:wrap;}
  .hero-stat b{display:block;font-family:var(--font-display);font-size:1.5rem;color:#FBF7EC;}
  .hero-stat span{font-size:0.8rem;color:#C9AF8C;}
  .hero-photo{position:relative;border-radius:var(--radius-l);overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,0.55);aspect-ratio:4/5;}
  .hero-photo img{width:100%;height:100%;object-fit:cover;}
  .hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(20,16,10,0.55), transparent 45%);}
  .hero-photo-tag{position:absolute;left:16px;bottom:16px;color:#FBF7EC;font-size:0.78rem;background:rgba(20,16,10,0.45);padding:6px 12px;border-radius:999px;backdrop-filter:blur(4px);}

  /* ---------- about ---------- */
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:start;}
  .about-media{border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--card-shadow);}
  .about-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;}
  .about-facts{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px;}
  .about-facts li{display:flex;gap:10px;font-size:0.95rem;color:var(--ink-soft);}
  .about-facts svg{flex:none;color:var(--brass);margin-top:2px;}

  /* ---------- rooms ---------- */
  .room-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  .room-card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--card-shadow);display:flex;flex-direction:column;}
  .room-photo{aspect-ratio:5/4;overflow:hidden;position:relative;}
  .room-photo img{width:100%;height:100%;object-fit:cover;}
  .room-badge{position:absolute;top:14px;left:14px;padding:5px 12px;border-radius:999px;font-size:0.72rem;font-weight:700;letter-spacing:0.02em;}
  .badge-avail{background:var(--success-tint);color:var(--success);}
  .badge-full{background:var(--danger-tint);color:var(--danger);}
  .room-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:12px;flex:1;}
  .room-body h3{font-size:1.35rem;}
  .room-price{display:flex;align-items:baseline;gap:6px;margin-top:2px;}
  .room-price b{font-family:var(--font-display);font-size:1.7rem;font-variant-numeric:tabular-nums;color:var(--ink);}
  .room-price span{font-size:0.85rem;color:var(--ink-faint);}
  .room-desc{font-size:0.92rem;margin:0;}
  .room-meta{font-size:0.82rem;color:var(--ink-faint);margin-top:auto;padding-top:6px;}
  .room-body .btn{margin-top:8px;}

  /* ---------- amenities ---------- */
  .amenity-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
  .amenity{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-m);padding:22px 18px;display:flex;flex-direction:column;gap:12px;align-items:flex-start;}
  .amenity svg{color:var(--brass);}
  .amenity h4{font-size:0.98rem;font-family:var(--font-body);font-weight:700;}
  .amenity p{font-size:0.84rem;margin:0;}

  /* ---------- gallery ---------- */
  .gallery-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:14px;height:clamp(320px,42vw,460px);}
  .gallery-grid a{border-radius:var(--radius-m);overflow:hidden;display:block;position:relative;}
  .gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
  .gallery-grid a:hover img{transform:scale(1.05);}
  .gallery-grid a:first-child{grid-row:1 / span 2;}

  /* ---------- location ---------- */
  .location-card{background:var(--indigo);border-radius:var(--radius-l);padding:clamp(28px,5vw,48px);display:grid;grid-template-columns:1.1fr 0.9fr;gap:32px;align-items:center;color:#F5ECDC;}
  .location-card .eyebrow{color:var(--brass-deep);}
  .location-card h2{color:#FBF7EC;}
  .location-card p{color:#D8C4A0;}
  .location-address{font-size:1rem;margin-top:14px;color:#F5ECDC;}
  .location-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap;}
  .location-panel{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);border-radius:var(--radius-m);padding:22px;display:grid;gap:14px;}
  .location-panel-row{display:flex;justify-content:space-between;gap:12px;font-size:0.9rem;border-bottom:1px dashed rgba(255,255,255,0.16);padding-bottom:12px;}
  .location-panel-row:last-child{border-bottom:0;padding-bottom:0;}
  .location-panel-row span:first-child{color:#C9AF8C;}
  .location-panel-row span:last-child{font-weight:700;color:#FBF7EC;text-align:right;}

  /* ---------- booking ---------- */
  .booking-shell{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--card-shadow);overflow:hidden;}
  .booking-grid{display:grid;grid-template-columns:1fr 1fr;}
  .booking-col{padding:clamp(24px,4vw,36px);}
  .booking-col + .booking-col{border-left:1px solid var(--line);}
  .field-label{display:block;font-size:0.78rem;font-weight:700;letter-spacing:0.03em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px;}
  .room-toggle{display:flex;gap:10px;margin-bottom:22px;}
  .room-toggle button{flex:1;padding:12px;border-radius:var(--radius-s);border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);font-weight:700;cursor:pointer;font-size:0.92rem;}
  .room-toggle button.active{border-color:var(--brass);color:var(--brass-deep);background:var(--brass-tint);}
  .room-toggle button[disabled]{opacity:0.4;cursor:not-allowed;}

  .cal{border:1px solid var(--line);border-radius:var(--radius-m);padding:16px;background:var(--paper);}
  .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
  .cal-head b{font-family:var(--font-display);font-size:1.02rem;}
  .cal-nav{display:flex;gap:6px;}
  .cal-nav button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);}
  .cal-nav button:hover{border-color:var(--brass);color:var(--brass);}
  .cal-dow{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:0.68rem;color:var(--ink-faint);margin-bottom:4px;text-transform:uppercase;letter-spacing:0.04em;}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
  .cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:0.85rem;cursor:pointer;color:var(--ink);border:1px solid transparent;font-variant-numeric:tabular-nums;}
  .cal-day.muted{color:var(--ink-faint);opacity:0.35;pointer-events:none;}
  .cal-day.past{opacity:0.28;pointer-events:none;text-decoration:line-through;}
  .cal-day:hover:not(.muted):not(.past){border-color:var(--brass);}
  .cal-day.selected{background:var(--brass);color:#20140A;font-weight:700;}
  .cal-day.in-range{background:var(--brass-tint);color:var(--brass-deep);}
  .cal-legend{display:flex;gap:16px;margin-top:12px;font-size:0.76rem;color:var(--ink-faint);}
  .cal-legend span{display:inline-flex;align-items:center;gap:6px;}
  .cal-legend i{width:10px;height:10px;border-radius:3px;display:inline-block;}

  .stay-summary{margin-top:18px;display:grid;gap:8px;font-size:0.9rem;}
  .stay-summary div{display:flex;justify-content:space-between;color:var(--ink-soft);}
  .stay-summary .total{font-weight:700;color:var(--ink);font-size:1.05rem;padding-top:8px;border-top:1px dashed var(--line);font-variant-numeric:tabular-nums;}

  .input, textarea.input{
    width:100%;padding:12px 14px;border-radius:var(--radius-s);border:1px solid var(--line);
    background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;margin-bottom:14px;
  }
  .input:focus, textarea.input:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass);}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

  .pay-box{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-m);padding:20px;text-align:center;margin-top:6px;}
  #qr-holder{display:flex;justify-content:center;margin:14px 0;}
  #qr-holder img, #qr-holder canvas{border-radius:8px;border:1px solid var(--line);background:#fff;padding:8px;}
  .upi-id{font-family:var(--font-body);font-weight:700;font-size:1rem;background:var(--paper-2);border:1px dashed var(--line);border-radius:8px;padding:8px 14px;display:inline-block;margin-top:4px;}
  .note{font-size:0.82rem;color:var(--ink-faint);margin-top:10px;}
  .step-back{background:none;border:none;color:var(--ink-faint);font-size:0.85rem;cursor:pointer;padding:0;margin-bottom:14px;font-weight:700;}
  .step-back:hover{color:var(--brass);}

  /* ---------- footer ---------- */
  footer{border-top:1px solid var(--line);padding:36px 0;}
  .footer-row{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;font-size:0.85rem;color:var(--ink-faint);}
  .admin-gear{background:none;border:none;color:var(--ink-faint);cursor:pointer;padding:6px;border-radius:8px;opacity:0.55;}
  .admin-gear:hover{opacity:1;color:var(--brass);}

  /* ---------- modal ---------- */
  .modal-veil{position:fixed;inset:0;background:rgba(15,13,10,0.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;}
  .modal-veil[hidden]{display:none;}
  .modal{background:var(--paper);border-radius:var(--radius-l);max-width:460px;width:100%;max-height:88vh;overflow:auto;padding:28px;box-shadow:0 30px 70px -20px rgba(0,0,0,0.5);}
  .modal h3{font-size:1.3rem;margin-bottom:6px;}
  .modal p.note{margin-bottom:18px;}
  .modal-close{float:right;background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--ink-faint);line-height:1;}
  .admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;}
  .admin-grid label{display:block;font-size:0.76rem;font-weight:700;color:var(--ink-faint);margin-bottom:6px;text-transform:uppercase;letter-spacing:0.03em;}
  .stepper{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
  .stepper button{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--paper-2);font-size:1.1rem;cursor:pointer;color:var(--ink);}
  .stepper b{min-width:24px;text-align:center;font-variant-numeric:tabular-nums;}
  .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--indigo);color:#F5ECDC;padding:12px 22px;border-radius:999px;font-size:0.88rem;font-weight:600;box-shadow:0 10px 30px -8px rgba(0,0,0,0.4);z-index:200;}

  .lightbox-veil{position:fixed;inset:0;background:rgba(10,8,6,0.85);display:flex;align-items:center;justify-content:center;padding:24px;z-index:110;}
  .lightbox-veil[hidden]{display:none;}
  .lightbox-veil img{max-width:min(90vw,900px);max-height:85vh;object-fit:contain;border-radius:10px;}

  @media (max-width:860px){
    nav.main-nav{display:none;}
    .hero-grid{grid-template-columns:1fr;}
    .hero-photo{order:-1;aspect-ratio:16/10;}
    .about-grid{grid-template-columns:1fr;}
    .room-grid{grid-template-columns:1fr;}
    .amenity-grid{grid-template-columns:1fr 1fr;}
    .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;height:auto;}
    .gallery-grid a{aspect-ratio:4/3;}
    .gallery-grid a:first-child{grid-row:auto;grid-column:1 / span 2;aspect-ratio:16/9;}
    .location-card{grid-template-columns:1fr;}
    .booking-grid{grid-template-columns:1fr;}
    .booking-col + .booking-col{border-left:0;border-top:1px solid var(--line);}
    .admin-grid{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
  }

  /* ---------- small-phone header ---------- */
  @media (max-width:600px){
    .header-row{gap:8px;padding-top:10px;padding-bottom:10px;}
    .brand{gap:9px;min-width:0;}
    .brand img{width:32px;height:32px;flex:none;}
    .brand-word{font-size:0.98rem;white-space:nowrap;}
    .brand-tag{display:none;}
    .header-cta{gap:6px;flex:none;}
    .phone-link{padding:9px;border-radius:50%;}
    .phone-link svg{margin-right:0;}
    .phone-text{display:none;}
    .header-cta .btn-sm{padding:9px 14px;font-size:0.82rem;}
  }
  @media (max-width:360px){
    .header-cta .btn-sm{padding:8px 11px;font-size:0.78rem;}
  }
  @media (prefers-reduced-motion: reduce){
    *{transition:none !important;animation:none !important;}
  }
