/* Unified Akshat Royal Stay experience */
:root{--ink:#123f3d;--forest:#063c3a;--deep:#042f2e;--sage:#8fc4b2;--cream:#f5f0e5;--paper:#fffdf8;--gold:#c9a84c;--line:rgba(6,60,58,.16)}
body{font-family:"Manrope",sans-serif;background:#fbfaf6;color:var(--ink)}
h1,h2,h3,.brand strong,.price-summary strong{font-family:"Cormorant Garamond",serif}
.site-header{min-height:82px;height:auto;padding:8px clamp(16px,4vw,64px);background:linear-gradient(105deg,#032f2e,#07514e);border-bottom:1px solid rgba(201,168,76,.5);position:sticky;top:0;color:#fff}
.site-header .brand strong{font-size:1.35rem}.site-header .brand small{color:#bfddd2}.site-header .nav>a:not(.button){color:#fff}.site-header .nav>a.active{border-color:#e4c76e!important}
.button{border-radius:999px;background:linear-gradient(135deg,#e3c66f,#bd9438);box-shadow:0 10px 24px rgba(112,76,11,.15)}.dark-button{background:linear-gradient(135deg,#08716c,#043d3b)}
.page-hero{background-image:linear-gradient(90deg,rgba(3,47,46,.94),rgba(4,75,71,.5)),url('/static/images/ars-room-main.webp')}
.footer{background:linear-gradient(130deg,#022b2a,#07514e);border-top:3px solid var(--gold)}
.booking-hero--simple{padding:clamp(44px,7vw,86px) clamp(18px,8vw,130px);display:flex;align-items:flex-end;justify-content:space-between;gap:40px;background:linear-gradient(105deg,rgba(3,47,46,.96),rgba(4,75,71,.76)),url('/static/images/ars-room-main.webp') center/cover;color:#fff}
.booking-hero--simple h1{font-size:clamp(3rem,6vw,5.5rem);margin:.15rem 0 .7rem}.booking-hero--simple p:last-child{max-width:650px;color:rgba(255,255,255,.78)}
.booking-progress{display:flex;gap:10px;list-style:none;padding:0;margin:0}.booking-progress li{display:flex;align-items:center;gap:7px;color:#fff;font-size:.78rem;font-weight:700}.booking-progress span{width:30px;height:30px;border:1px solid #dcbf68;border-radius:50%;display:grid;place-items:center;color:#f0d888}
.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:32px;align-items:start;max-width:1400px;margin:auto;padding-top:48px}
.booking-card-shell{display:grid;gap:22px}.booking-form-section{background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(18px,3vw,34px);box-shadow:0 16px 45px rgba(3,55,52,.07)}
.booking-section-heading{display:flex;gap:14px;align-items:center;margin-bottom:24px}.booking-section-heading>span{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--forest);color:#efd47e;font-weight:800}.booking-section-heading p{margin:0}.booking-section-heading h2{font-size:clamp(1.8rem,3vw,2.6rem);margin:0}
.booking-fields--stay{display:grid;grid-template-columns:1fr 1fr;gap:16px}.room-type-field,.booking-count-fields{grid-column:1/-1}.room-type-field{padding:0;background:transparent;border:0}.compact-date-card{border:1px solid var(--line);border-radius:16px;padding:18px;background:#fcfdfb}.compact-date-card h3{font-size:1.45rem;margin:0 0 12px;color:var(--forest)}
.modern-field input,.modern-field select,.form-grid input,.form-grid select{height:50px;border:1px solid #cfdfda;border-radius:10px;background:#fff;padding:10px 12px;font-family:"Manrope",sans-serif;max-width:100%}.modern-field input:focus,.modern-field select:focus,.form-grid input:focus{outline:0;border-color:#0b817a;box-shadow:0 0 0 3px rgba(11,129,122,.11)}
.time-field{margin-top:12px}.time-field>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.time-field select{min-width:0;padding:8px 5px;text-align:center}
.booking-count-fields{display:grid;grid-template-columns:minmax(130px,.45fr) minmax(220px,1fr);gap:16px}
.booking-calendar-section{margin:24px 0 0;border-radius:18px;box-shadow:none;background:#fcfdfb;padding:20px}.booking-calendar{min-height:0}#bookingCalendar{max-width:680px}.booking-calendar-header h3{font-family:"Cormorant Garamond",serif}.booking-calendar-controls{grid-template-columns:40px minmax(120px,auto) 40px}.calendar-navigation-button{width:40px;height:40px;border-radius:50%}.booking-calendar-weekdays span{background:#edf6f2;border-radius:7px}.calendar-day{aspect-ratio:1/1;min-height:54px;border-radius:9px;padding:5px}.calendar-day.available{background:#f0faf6}.calendar-day.selected{background:#08716c}.booking-calendar-legend{flex-wrap:wrap}
.availability-panel{border-radius:12px;border-left:0;box-shadow:inset 4px 0 var(--gold)}
.guest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guest-grid label:last-child{grid-column:1/-1}.guest-grid input{margin-top:7px}
.price-summary{border-radius:16px;background:linear-gradient(135deg,#032f2e,#08605b)}.pay-button{min-height:54px;margin-top:6px}
.booking-summary-card{position:sticky;top:104px;border-radius:22px;padding:25px;background:#f4f0e6;border-top:3px solid var(--gold);overflow:hidden}.booking-summary-card>img{width:62px;height:72px;object-fit:contain}.booking-summary-card h2{font-size:2rem}.booking-trust-list{list-style:none;padding:0;margin:22px 0;display:grid;gap:12px}.booking-trust-list li{display:flex;align-items:center;gap:10px;font-size:.88rem;font-weight:700}.booking-trust-list span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#dcefe7;color:#08716c}.booking-summary-card figure{margin:22px -25px}.booking-summary-card figure img{display:block;width:100%;height:190px;object-fit:cover}.booking-help{margin-bottom:0}.booking-help strong{color:var(--forest)}
@media(max-width:850px){.site-header{min-height:72px}.site-header .nav{top:72px;background:#043d3b;border-bottom:1px solid rgba(201,168,76,.5)}.booking-hero--simple{align-items:flex-start;flex-direction:column;padding-top:38px;padding-bottom:38px}.booking-layout{grid-template-columns:1fr;padding:22px 12px 70px}.booking-summary-card{position:static;order:2}.booking-fields--stay{grid-template-columns:1fr}.room-type-field,.booking-count-fields{grid-column:1}.booking-calendar-header{flex-direction:column}.booking-calendar-controls{width:100%;grid-template-columns:42px 1fr 42px}.booking-calendar-section{padding:14px}.guest-grid{grid-template-columns:1fr}.guest-grid label:last-child{grid-column:auto}}
@media(max-width:520px){.brand-logo-mark{width:36px;height:50px}.site-header .brand strong{font-size:1.05rem}.booking-progress{width:100%;justify-content:space-between}.booking-progress li{font-size:.68rem}.booking-form-section{border-radius:16px;padding:16px}.booking-count-fields{grid-template-columns:1fr}.compact-date-card{padding:14px}.modern-field input[type=date]{font-size:16px}.time-field select{height:46px;font-size:.82rem}.booking-calendar-weekdays,.booking-calendar-grid{gap:3px}.booking-calendar-weekdays span{font-size:.56rem;min-height:25px;padding:3px}.calendar-day{min-height:43px;border-radius:6px}.calendar-day small{display:none}.calendar-day strong{font-size:.85rem}.booking-calendar-legend{font-size:.7rem;gap:10px}.whatsapp{right:12px;bottom:12px}.booking-summary-card{display:none}}

/* Prevent long option labels and calendar content from widening mobile grids. */
.booking-card-shell,.booking-form-section,.booking-fields,.booking-fields>*,.booking-calendar-section,#bookingCalendar,.form-grid,.form-grid>*{min-width:0;max-width:100%}
.booking-form-section{width:100%;overflow:hidden}.modern-field select,.modern-field input,.form-grid input{min-width:0;width:100%}
@media(max-width:850px){.booking-card-shell{width:100%}.booking-fields--stay,.booking-count-fields{width:100%;min-width:0}.compact-date-card{width:100%;min-width:0}.booking-calendar-section,#bookingCalendar{width:100%;margin-left:0;margin-right:0}.booking-calendar-weekdays,.booking-calendar-grid{width:100%;min-width:0}.calendar-day{min-width:0;max-width:100%}}

/* Luxury emerald parity with akshatroyalstay-site. Presentation only. */
:root {
  --ink: #17382d;
  --forest: #0a3d2a;
  --deep: #031d14;
  --sage: #1c6549;
  --cream: #f7f0df;
  --paper: #fffaf0;
  --gold: #d4af37;
  --line: rgba(159, 120, 33, .24);
  --luxury-green: #06291d;
  --luxury-green-soft: #12543b;
  --luxury-gold-bright: #e7c65a;
  --luxury-gold-pale: #f8e9ad;
  --luxury-shadow: 0 24px 64px rgba(1, 23, 15, .16);
}

html { background: var(--deep); }
body {
  background:
    radial-gradient(circle at 12% 12%, rgba(212, 175, 55, .08), transparent 24rem),
    linear-gradient(180deg, #fffdf8, var(--paper));
  color: var(--ink);
}
::selection { color: var(--deep); background: var(--gold); }

.site-header {
  position: sticky;
  top: 0;
  min-height: 92px;
  padding: 9px clamp(20px, 4vw, 64px);
  background: linear-gradient(90deg, rgba(3, 29, 20, .985), rgba(10, 61, 42, .975));
  border-bottom: 1px solid rgba(212, 175, 55, .34);
  box-shadow: 0 12px 35px rgba(1, 18, 12, .3);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.site-header .brand { gap: 13px; }
.site-header .brand-logo-mark {
  width: 66px;
  height: 66px;
  filter: drop-shadow(0 5px 9px rgba(0, 0, 0, .52));
  transition: transform .3s ease, filter .3s ease;
}
.site-header .brand:hover .brand-logo-mark { transform: translateY(-2px) scale(1.035); }
.site-header .brand strong {
  color: var(--gold);
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -.02em;
}
.site-header .brand small { color: rgba(248, 242, 223, .65); letter-spacing: .14em; }
.site-header .nav { gap: clamp(20px, 2vw, 31px); }
.site-header .nav > a:not(.button) {
  position: relative;
  color: rgba(248, 242, 223, .8);
  border: 0 !important;
  padding: 1rem 0;
  transition: color .25s ease;
}
.site-header .nav > a:not(.button)::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 7px;
  left: 0;
  width: 0;
  height: 1px;
  margin: auto;
  background: linear-gradient(90deg, #c9a227, #f0d46f);
  transition: width .25s ease;
}
.site-header .nav > a:hover,
.site-header .nav > a.active { color: #fff; }
.site-header .nav > a:hover::after,
.site-header .nav > a.active::after { width: 100%; }

.button {
  color: var(--deep);
  background: linear-gradient(135deg, var(--luxury-gold-bright), #bd8e28);
  border: 1px solid rgba(255, 242, 184, .42);
  box-shadow: 0 12px 30px rgba(159, 120, 33, .24);
}
.dark-button {
  color: var(--luxury-gold-pale);
  background: linear-gradient(135deg, var(--luxury-green-soft), var(--deep));
  border-color: rgba(212, 175, 55, .38);
}
.outline-button { border-color: rgba(212, 175, 55, .55); }

.hero-shade { background: linear-gradient(90deg, rgba(3, 29, 20, .96), rgba(10, 61, 42, .7) 48%, rgba(3, 29, 20, .16) 82%); }
.hero h1, .page-hero h1, .booking-hero--simple h1 { color: var(--gold); text-shadow: 0 8px 30px rgba(0, 0, 0, .32); }
.hero em, .eyebrow, .booking-hero--simple .eyebrow { color: var(--luxury-gold-bright); }
.hero-card { background: var(--paper); border-top-color: var(--gold); }
.page-hero,
.booking-hero--simple {
  background-image:
    radial-gradient(circle at 82% 18%, rgba(212, 175, 55, .17), transparent 30%),
    linear-gradient(110deg, rgba(3, 29, 20, .97), rgba(10, 61, 42, .68)),
    url('/static/images/ars-room-main.webp');
}
.booking-hero--simple { border-bottom: 1px solid rgba(212, 175, 55, .3); }
.booking-progress span { background: rgba(3, 29, 20, .55); border-color: var(--gold); color: var(--luxury-gold-pale); }

.muted { background: linear-gradient(145deg, #f7f0df, #fffaf0); }
.feature-grid h3, .rate strong, .booking-help strong, .stay-card-heading strong { color: var(--forest); }
.room-price, .location-banner {
  background:
    radial-gradient(circle at 85% 10%, rgba(212, 175, 55, .12), transparent 30%),
    linear-gradient(135deg, var(--luxury-green-soft), var(--deep));
}
.room-photo, .place-feature img { border-bottom-color: var(--gold); box-shadow: var(--luxury-shadow); }
.note-banner { background: var(--cream); border-left-color: var(--gold); }

.booking-layout { padding-bottom: clamp(55px, 8vw, 100px); }
.booking-form-section,
.booking-summary-card {
  background: rgba(255, 250, 240, .96);
  border: 1px solid rgba(159, 120, 33, .24);
  box-shadow: var(--luxury-shadow);
}
.booking-form-section { border-radius: 18px; }
.booking-section-heading > span,
.stay-card-icon {
  color: var(--luxury-gold-pale);
  background: linear-gradient(145deg, var(--luxury-green-soft), var(--deep));
  border: 1px solid rgba(212, 175, 55, .32);
}
.booking-section-heading h2 { color: var(--forest); }
.stay-planner {
  background: linear-gradient(145deg, rgba(247, 240, 223, .72), rgba(255, 250, 240, .96));
  border-color: rgba(159, 120, 33, .22);
}
.room-type-field, .stay-date-card, .stay-occupancy-card, .compact-date-card {
  background: #fffdf8;
  border-color: rgba(159, 120, 33, .2);
}
.modern-field input,
.modern-field select,
.form-grid input,
.form-grid select,
.coupon-entry-row input {
  color: var(--ink);
  background: #fffdf8;
  border-color: rgba(159, 120, 33, .3);
}
.modern-field input:hover, .modern-field select:hover, .form-grid input:hover { border-color: rgba(159, 120, 33, .62); }
.modern-field input:focus, .modern-field select:focus, .form-grid input:focus, .form-grid select:focus, .coupon-entry-row input:focus {
  outline: 0;
  border-color: var(--gold);
  box-shadow: 0 0 0 4px rgba(212, 175, 55, .15);
}
.occupancy-note, .availability-panel, .stay-planner + .availability-panel {
  color: #476256;
  background: linear-gradient(120deg, #f7f0df, #fffdf8);
  box-shadow: inset 4px 0 var(--gold);
}

.booking-calendar-section { background: #fffdf8; border-color: rgba(159, 120, 33, .22); }
.booking-calendar-weekdays span { color: #725b28; background: #f4ead2; }
.calendar-day { background: #fffdf8; }
.calendar-day.available { background: #f2f7ef; }
button.calendar-day.available:hover,
button.calendar-day.available:focus-visible { color: var(--deep); background: #f3e8c9; box-shadow: inset 0 0 0 2px var(--gold); }
.calendar-day.selected { color: #fff; background: linear-gradient(145deg, var(--luxury-green-soft), var(--deep)); box-shadow: inset 0 0 0 2px var(--gold); }
.calendar-navigation-button:hover,
.calendar-navigation-button:focus-visible { background: var(--forest); border-color: var(--gold); }

.price-summary {
  color: #fff8e8;
  background:
    radial-gradient(circle at 90% 10%, rgba(212, 175, 55, .13), transparent 35%),
    linear-gradient(135deg, var(--luxury-green-soft), var(--deep));
  border: 1px solid rgba(212, 175, 55, .32);
  box-shadow: 0 18px 44px rgba(1, 23, 15, .2);
}
.price-summary .price-total, .price-summary .price-discount { color: var(--luxury-gold-bright); }
.booking-summary-card { border-top: 3px solid var(--gold); }
.booking-summary-card > img { width: 78px; height: 78px; border-radius: 50%; }
.footer-logo-mark { width: 82px; height: 82px; border-radius: 50%; }
.booking-trust-list span { color: var(--gold); background: var(--forest); }
.confirmation-mark { color: var(--luxury-gold-pale); background: var(--forest); border: 1px solid var(--gold); }
.confirmation-number { background: var(--cream); border: 1px solid rgba(159, 120, 33, .25); }

.footer {
  color: rgba(255, 248, 232, .72);
  background:
    radial-gradient(circle at 12% 10%, rgba(212, 175, 55, .09), transparent 28%),
    linear-gradient(135deg, var(--luxury-green), var(--deep));
  border-top-color: var(--gold);
}
.footer h3, .footer .brand strong { color: var(--gold); }
.footer a:hover { color: var(--luxury-gold-bright); }

@media (max-width: 850px) {
  .site-header { min-height: 76px; padding: 6px 18px; }
  .site-header .brand-logo-mark { width: 48px; height: 48px; }
  .site-header .nav { top: 76px; background: rgba(3, 29, 20, .99); border-bottom-color: rgba(212, 175, 55, .35); }
  .site-header .nav > a:not(.button) { padding: .75rem 0; }
  .booking-layout { padding-top: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-header .brand-logo-mark, .site-header .nav > a::after { transition: none; }
}
