:root{
  --ink:#12100e;
  --muted:#6f6a63;
  --line:#e7e2da;
  --paper:#faf8f4;
  --navy:#133554;
  --navy-dark:#0d2740;
  --teal:#42d4c9;
  --gold:#b08543;
  --plum:#2c2038;
  --accent:#8a2b34;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Georgia",ui-serif,serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.sans{font-family:"Helvetica Neue",Arial,sans-serif}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:cover}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}

/* ---------- Top bar ---------- */
.topbar{background:var(--navy);color:#f4efe6}
.topbar .wrap{display:flex;align-items:center;justify-content:center;gap:28px;
  padding:9px 24px;font-family:"Helvetica Neue",Arial,sans-serif;font-size:12.5px;letter-spacing:.02em}
.topbar span{opacity:.9;display:flex;align-items:center;gap:7px}
.topbar .dot{color:var(--teal)}
@media(max-width:720px){.topbar span:nth-child(2){display:none}}

/* ---------- Header ---------- */
header{position:sticky;top:0;z-index:40;background:rgba(250,248,244,.92);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1200px;margin:0 auto;
  flex-wrap:nowrap;width:100%}
.nav .navbar-collapse{flex-grow:0}
.nav .navbar-nav{gap:6px;font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px}
.nav .navbar-nav .nav-link{color:var(--muted);padding:8px 10px;transition:color .2s}
.nav .navbar-nav .nav-link:hover{color:var(--navy)}
.brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:22px;letter-spacing:.01em;color:var(--navy)}
.brand .brand-img{width:auto;height:44px;object-fit:contain}
.brand .mark{width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--navy),var(--teal));
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;font-weight:700}
.brand small{display:block;font-family:"Helvetica Neue",Arial,sans-serif;font-weight:400;
  font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-top:1px}
.toggle{border:none}
.toggle:focus{outline:none}
.navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%23133554' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}
@media(max-width:991px){
  .nav{flex-wrap:wrap}
  .nav .navbar-collapse{margin-top:12px}
  .nav .btn.gold{margin-left:0;margin-top:10px}
}
.btn{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;font-weight:600;
  padding:11px 22px;border-radius:2px;border:1px solid var(--ink);cursor:pointer;
  background:var(--ink);color:#faf8f4;transition:.2s;letter-spacing:.01em}
.btn:hover{background:transparent;color:var(--ink)}
.btn.gold{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.gold:hover{background:var(--navy-dark);border-color:var(--navy-dark);color:#fff}
.btn.teal{background:var(--teal);border-color:var(--teal);color:#0b2a22}
.btn.teal:hover{background:#2bbfb4;border-color:#2bbfb4;color:#0b2a22}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:54vh;display:flex;align-items:center;
  background:#1a1613;overflow:hidden}
.hero img{position:absolute;inset:0;opacity:.62}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(12,24,38,.88) 0%,rgba(12,24,38,.45) 55%,rgba(12,24,38,.15) 100%)}
.hero-inner{position:relative;z-index:2;color:#faf6ee;max-width:800px;padding:28px 24px 20px}
.eyebrow{font-family:"Helvetica Neue",Arial,sans-serif;font-size:11px;letter-spacing:.32em;
  text-transform:uppercase;color:var(--teal);margin-bottom:10px}
.hero h1{font-size:clamp(30px,5vw,52px);line-height:1.08;font-weight:400;letter-spacing:-.01em;margin-bottom:8px}
.hero h1 em{font-style:italic;color:#f0d9a8}
.hero p{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;line-height:1.4;
  margin:0 0 16px;color:#e9e2d6}
.signup{display:flex;gap:10px;max-width:480px;flex-wrap:wrap}
.signup input{flex:1;min-width:220px;font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:15px;padding:15px 18px;border:none;border-radius:2px;background:#fff;color:var(--ink)}
.signup .btn{padding:15px 28px}
.fineprint{font-family:"Helvetica Neue",Arial,sans-serif;font-size:11.5px;color:#c9c0b2;margin-top:14px}
.fineprint a{color:#e8dcc4;text-decoration:underline}

/* ---------- Search bar ---------- */
.search-bar{display:flex;gap:6px;max-width:780px;flex-wrap:wrap;
  background:rgba(250,248,244,.1);border:1px solid rgba(250,248,244,.25);
  border-radius:3px;padding:8px 10px;margin-top:4px}
.sb-form{display:contents}
.sb-form>.row{width:100%}
.sb-field{flex:1 1 120px;display:flex;flex-direction:column;gap:3px;margin-bottom:0}
.sb-label{font-family:"Helvetica Neue",Arial,sans-serif;font-size:9px;letter-spacing:.18em;
  text-transform:uppercase;color:#e9e2d6}
.sb-input{font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;padding:7px 10px;
  border:none;border-radius:2px;background:#fff;color:var(--ink);width:100%}
.sb-submit{display:flex;align-items:flex-end;flex:1 1 0;min-width:0}
.sb-submit .btn{padding:10px 20px;width:100%}
@media(max-width:520px){.sb-submit{flex:1 1 100%}.sb-submit .btn{width:100%}}

/* ---------- Sitemap ---------- */
.sitemap-cols .sm-col{margin-bottom:24px}
.sitemap-cols h3{font-size:22px;font-weight:400;margin-bottom:16px;color:var(--navy)}
.sitemap-cols h4{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--navy);margin:18px 0 8px}
.sitemap-cols ul{list-style:none}
.sitemap-cols li{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;
  color:var(--muted);margin-bottom:9px}
.sitemap-cols li a:hover{color:var(--navy)}

/* ---------- Section headings ---------- */
.sec{padding:70px 0}
@media(max-width:620px){.sec{padding:36px 0}}
.sec.wrap{padding:70px 24px}
@media(max-width:620px){.sec.wrap{padding:36px 16px}}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;
  gap:20px;margin-bottom:34px;flex-wrap:wrap}
.sec-head h2{font-size:clamp(26px,3.5vw,36px);font-weight:400;letter-spacing:-.01em}
.sec-head .kicker{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;
  letter-spacing:.28em;text-transform:uppercase;color:var(--teal);margin-bottom:10px}
.sec-head a.view{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;
  color:var(--muted);border-bottom:1px solid var(--navy);padding-bottom:3px}
.sec-head a.view:hover{color:var(--ink)}

/* ---------- Offers loader ---------- */
.offers-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:70px 0;text-align:center}
.offers-loading .spinner{width:38px;height:38px;border:3px solid var(--line);
  border-top-color:var(--teal);border-radius:50%;margin-bottom:16px;
  animation:offers-spin .8s linear infinite}
.offers-loading p{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@keyframes offers-spin{to{transform:rotate(360deg)}}

/* ---------- Deal grid ---------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:940px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.grid{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:3px;overflow:hidden;
  transition:.25s;display:flex;flex-direction:column;position:relative}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(20,16,14,.5)}
.card .ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:#eee}
.card .ph img{transition:transform .5s ease}
.card:hover .ph img{transform:scale(1.05)}
.ribbon{position:absolute;top:14px;left:14px;z-index:2;
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:11px;font-weight:600;letter-spacing:.04em;
  background:rgba(250,248,244,.94);color:var(--ink);padding:6px 12px;border-radius:2px}
.ribbon.hot{background:var(--accent);color:#fff}
.card .body{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1}
.card h3{font-size:20px;font-weight:400;line-height:1.24;margin-bottom:8px}
.card .loc{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12.5px;color:var(--muted);
  letter-spacing:.02em;margin-bottom:16px;display:flex;align-items:center;gap:6px}
.card .foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;
  padding-top:14px;border-top:1px solid var(--line)}
.price .was{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;color:var(--muted);
  text-decoration:line-through}
.offer-title{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;font-weight:600;
  letter-spacing:.03em;text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.offer-more{margin-top:auto;padding-top:4px;display:flex;justify-content:flex-end}
.card .offer-more .btn{padding:8px 16px;font-size:12.5px}
.price .now{font-size:22px;font-weight:700}
.price .now small{font-family:"Helvetica Neue",Arial,sans-serif;font-size:11px;font-weight:400;
  color:var(--muted);text-decoration:none}
.save{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;font-weight:600;
  color:#2f7d4f;background:#e8f3ec;padding:5px 10px;border-radius:2px}
.stars{color:var(--gold);font-size:12px;letter-spacing:1px}

/* ---------- Value props ---------- */
.props{background:var(--navy);color:#f4efe6}
.props .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
@media(max-width:820px){.props .grid3{grid-template-columns:1fr;gap:34px}}
.prop .ic{font-size:26px;margin-bottom:16px;color:var(--teal)}
.prop h3{font-size:22px;font-weight:400;margin-bottom:10px}
.prop p{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14.5px;line-height:1.65;color:#d5cdbf}

/* ---------- Stats strip ---------- */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.stats .row{display:flex;justify-content:space-around;flex-wrap:wrap;gap:24px;padding:44px 24px}
.stat{text-align:center}
.stat b{display:block;font-size:38px;font-weight:700;color:var(--teal)}
.stat span{font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;letter-spacing:.04em;
  text-transform:uppercase;color:var(--muted)}

/* ---------- CTA band ---------- */
.cta{position:relative;background:#1a1613;color:#faf6ee;text-align:center;overflow:hidden}
.cta img{position:absolute;inset:0;opacity:.4}
.cta::after{content:"";position:absolute;inset:0;background:rgba(12,24,38,.55)}
.cta-inner{position:relative;z-index:2;padding:80px 24px;max-width:640px;margin:0 auto}
.cta h2{font-size:clamp(28px,4vw,42px);font-weight:400;line-height:1.1}
.cta p{font-family:"Helvetica Neue",Arial,sans-serif;font-size:16px;color:#e6ddcf;margin:18px 0 28px}

/* ---------- Legal (privacy / terms / faq / cookies) ---------- */
.legal{max-width:820px}
.legal.checkout-sec{max-width:1200px}
.legal.checkout-sec .sec-head{max-width:820px}
@media(max-width:1000px){
  .legal.checkout-sec .pricecard{position:static;top:auto}
}
@media(max-width:520px){
  .legal.checkout-sec .vf-row{gap:14px}
  .legal.checkout-sec .vf-row>.vf-field{flex:1 1 100%}
}
.legal p{font-family:"Helvetica Neue",Arial,sans-serif;font-size:15px;line-height:1.7;
  color:var(--ink);margin-bottom:16px}
.legal p strong{color:var(--navy)}
.legal a{color:var(--navy);text-decoration:underline}
.legal a:hover{color:var(--teal)}

.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:18px 4px;cursor:pointer;font-size:16px;color:var(--navy);font-weight:600}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:20px;font-weight:400;color:var(--teal);flex-shrink:0;transition:transform .2s ease}
.faq-item[open] summary::after{content:"\2212"}
.faq-item summary:hover{color:var(--teal)}
.faq-item .faq-answer{padding:0 4px 18px}
.faq-item .faq-answer p{margin-bottom:12px}
.faq-item .faq-answer p:last-child{margin-bottom:0}
.faq-contact{padding-top:32px;margin-top:0}
.legal .vf-success,.legal .vf-empty{border-radius:3px;padding:14px 18px;margin:10px 0}

/* ---------- Voucher forms ---------- */
.voucher-form{display:block}
.vf-row{display:flex;gap:14px;flex-wrap:wrap}
.vf-row>.vf-field{flex:1 1 240px}
.vf-field{margin-bottom:14px}
.vf-field label{display:block;font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.vf-field label.vf-check{display:flex;align-items:flex-start;gap:10px;
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;line-height:1.6;
  text-transform:none;letter-spacing:0;color:var(--ink);margin-bottom:2px}
.vf-field label.vf-check input{margin-top:3px}
.vf-field label.vf-check strong{color:var(--navy)}
.vf-input{width:100%;font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;
  padding:9px 12px;border:1px solid var(--line);border-radius:2px;background:#fff;color:var(--ink)}
.vf-input:focus{outline:none;border-color:var(--teal)}
.vf-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:2px}
.vf-table th,.vf-table td{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;
  text-align:left;padding:11px 14px;border-bottom:1px solid var(--line)}
.vf-table th{text-transform:uppercase;font-size:11px;letter-spacing:.06em;color:var(--muted)}
.vf-note{font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;color:var(--muted)}
.vf-note p{padding:0;margin:0}
.vf-pay-title{font-size:18px;font-weight:500;color:var(--navy);margin:22px 0 10px}
.vf-pay-title:first-child{margin-top:0}
.vf-card{background:#fff;border:1px solid var(--line);border-radius:2px;padding:16px;margin-bottom:16px}
.vf-error{font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;color:var(--accent);margin-bottom:12px}
.vf-success{background:#e8f3ec;color:#2f7d4f;border-radius:3px;padding:14px 18px}
.vf-empty{background:#f4efe6;color:var(--muted);border-radius:3px;padding:14px 18px}
.vf-badge{font-family:"Helvetica Neue",Arial,sans-serif;font-size:11px;font-weight:600;
  text-transform:uppercase;background:var(--navy);color:#fff;padding:4px 9px;border-radius:2px}

/* ---------- Footer ---------- */
footer{background:var(--paper);border-top:1px solid var(--line);padding:56px 0 30px}
.fcols h4{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.fcols a{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;color:var(--ink);
  display:block;margin-bottom:11px;opacity:.85}
.fcols a:hover{opacity:1;color:var(--navy)}
.fcols p{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;color:var(--muted);line-height:1.6}
.fbottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
  margin-top:44px;padding-top:22px;border-top:1px solid var(--line);
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:12.5px;color:var(--muted)}

/* ============================================================
   HOTEL DETAIL PAGE
   ============================================================ */
.crumb{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12.5px;color:var(--muted);
  padding:18px 0 8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.crumb a:hover{color:var(--navy)}
.crumb span{color:var(--line);border:0}

.gallery{position:relative;display:grid;grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:1fr 1fr;gap:8px;margin:12px 0 30px;border-radius:4px;overflow:hidden;height:440px}
.gallery figure{position:relative;overflow:hidden;background:#eee}
.gallery img{transition:transform .5s}
.gallery figure:hover img{transform:scale(1.04)}
.gallery .g0{grid-row:1/3}
.gallery .badge{position:absolute;top:14px;left:14px;z-index:2;text-align:center;
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;font-weight:700;color:#fff;
  background:var(--accent);padding:8px 13px;border-radius:2px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.gallery .badge small{display:block;font-weight:400;font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;opacity:.9}
.gallery .viewall{position:absolute;bottom:14px;right:14px;z-index:2;
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;font-weight:600;color:var(--ink);
  background:rgba(250,248,244,.95);padding:9px 16px;border-radius:2px;cursor:pointer;border:none}
.gallery .viewall:hover{color:var(--navy)}
@media(max-width:820px){
  .gallery{grid-template-columns:1fr 1fr;height:340px}
  .gallery .g0{grid-row:1/3}
  .gallery .g3,.gallery .g4{display:none}
}
@media(max-width:520px){
  .gallery{grid-template-columns:1fr;height:260px}
  .gallery figure:not(.g0){display:none}
  .gallery .g0{grid-row:auto}
}

.titlerow{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}
.titlerow .kicker{font-size:11px;color:var(--teal);font-family:"Helvetica Neue",Arial,sans-serif;
  letter-spacing:.22em;text-transform:uppercase;margin-bottom:8px}
.titlerow h1{font-size:clamp(30px,4vw,42px);font-weight:400;letter-spacing:-.01em;line-height:1.08}
.titlerow .sub{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;color:var(--muted)}
.titlerow .sub .stars{font-size:14px}
.titlerow .actions{display:flex;gap:10px}
.iconbtn{font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;font-weight:500;
  padding:9px 16px;border:1px solid var(--line);border-radius:2px;background:#fff;color:var(--ink);
  cursor:pointer;transition:.2s}
.iconbtn:hover{border-color:var(--navy);color:var(--navy)}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:30px 0 40px;flex-wrap:wrap}
.tabs a{font-family:"Helvetica Neue",Arial,sans-serif;font-size:13.5px;font-weight:500;
  color:var(--muted);padding:12px 18px;border-bottom:2px solid transparent;cursor:pointer}
.tabs a.on,.tabs a:hover{color:var(--navy);border-bottom-color:var(--teal)}

.layout .pricecard{position:sticky;top:92px}

.body-txt h2, .block-sec h2{font-size:clamp(24px,3vw,30px);font-weight:400;
  letter-spacing:-.01em;color:var(--navy);margin-bottom:18px}
.body-txt p{font-family:"Helvetica Neue",Arial,sans-serif;font-size:16px;line-height:1.75;
  color:#322e27;margin-bottom:16px}
.body-txt p.lead{font-size:18px;color:var(--ink)}
.block-sec{padding:44px 0;border-bottom:1px solid var(--line)}
.block-sec:first-of-type{border-top:1px solid var(--line)}
/* h2.sec on the hotel page reuses the .sec (section wrapper) name — clear its
   padding:70px wrapper rule so headings sit tight above their content */
.body-txt h2.sec, .block-sec h2.sec{padding:0}

.facil div{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14.5px;color:#322e27;
  display:flex;align-items:flex-start;gap:9px;margin-bottom:12px}
.facil .fi{color:var(--teal);font-size:10px;line-height:1.9}

.map{position:relative;height:320px;border-radius:4px;overflow:hidden;background:#dde7ee;
  display:flex;align-items:center;justify-content:center;
  background-image:linear-gradient(#dde7ee,#c7d6e2)}
.map .map-canvas{position:absolute;inset:0;z-index:0}
.map .pin{font-size:42px;position:relative;z-index:1;filter:drop-shadow(0 6px 6px rgba(0,0,0,.3))}
.map .addr{position:absolute;bottom:14px;left:14px;right:14px;z-index:2;background:rgba(255,255,255,.94);
  border-radius:3px;padding:11px 14px;font-size:13px;color:var(--ink)}

.offer{display:flex;justify-content:space-between;gap:24px;align-items:center;flex-wrap:wrap;
  border:1px solid var(--line);border-radius:4px;background:#fff;padding:24px;margin-bottom:14px}
.offer h4{font-size:19px;font-weight:400;margin-bottom:8px}
.offer .tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.tag{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;color:var(--muted);
  background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:4px 9px}
.tag.ok{color:#2f7d4f;background:#e8f3ec;border-color:#d8e9dd}
.offer .oprice{text-align:right;min-width:180px}
.oprice .disc{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12.5px;color:var(--muted);
  text-decoration:line-through;display:block}
.oprice .now{font-size:30px;font-weight:700;color:var(--navy)}
.oprice .per{font-family:"Helvetica Neue",Arial,sans-serif;font-size:11.5px;color:var(--muted);margin:2px 0 12px}
@media(max-width:520px){.offer{border-left:3px solid var(--teal)}.offer .oprice{text-align:left}}

/* Offer info block (between title + calendar) */
.offerinfo{border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:4px;
  background:#fff;padding:20px 24px;margin:22px 0 30px;
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:15px;line-height:1.7;color:#322e27}
.offerinfo-label{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--teal);margin-bottom:10px}
.offerinfo p{margin:0 0 10px}
.offerinfo p:last-child{margin-bottom:0}
.offerinfo ul{margin:10px 0 0 0;padding:0;list-style:none}
.offerinfo ul li{padding-left:22px;position:relative;margin-bottom:6px}
.offerinfo ul li:before{content:"✓";position:absolute;left:0;color:var(--teal);font-weight:700}
.offerinfo strong{color:var(--navy);font-weight:600}

.card .offerinfo-card{padding:12px 14px;margin:0 0 16px;font-size:13px;line-height:1.5}
.card .offerinfo-card ul{margin:0}
.card .offerinfo-card ul li{padding-left:18px;margin-bottom:5px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.card .offerinfo-card ul li:before{font-size:11px}

/* Sidebar price card */
.pricecard{background:#fff;border:1px solid var(--line);border-radius:4px;padding:26px;
  position:sticky;top:92px;box-shadow:0 20px 50px -30px rgba(20,16,14,.45);text-align:center}
.pricecard .from{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;color:var(--muted);
  text-transform:uppercase;letter-spacing:.1em}
.pricecard .now{font-size:38px;font-weight:700;color:var(--navy);line-height:1.1}
.pricecard .per{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;color:var(--muted);margin:4px 0 0}
.pricecard .disc{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;font-weight:600;
  color:#2f7d4f;background:#e8f3ec;border-radius:2px;padding:6px 10px;display:inline-block;margin-bottom:12px}
.pmid{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}
.bkdates{font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;color:var(--muted);
  background:none;border:none;cursor:pointer;text-decoration:underline}
.bkdates:hover{color:var(--navy)}
.trust{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;color:var(--muted);
  text-align:center;margin-top:14px;line-height:1.6}

/* Props on hotel page uses navy band (same as home) */
.props{background:var(--navy);margin-top:70px}

/* Lightbox */
.hb-lightbox{display:none;position:fixed;inset:0;z-index:120;background:rgba(12,12,12,.94);
  align-items:center;justify-content:center}
.hb-lightbox.open{display:flex}
.hb-lightbox img{max-width:88vw;max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:4px}
.hb-lb-btn{position:absolute;z-index:2;background:rgba(255,255,255,.14);color:#fff;border:none;
  width:52px;height:52px;border-radius:50%;font-size:30px;cursor:pointer;line-height:1}
.hb-lb-btn:hover{background:rgba(255,255,255,.28)}
.hb-lightbox .hb-lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.hb-lightbox .hb-lb-next{right:20px;top:50%;transform:translateY(-50%)}
.hb-lightbox .hb-lb-btn:first-child{top:18px;right:18px;left:auto;transform:none}

/* Calendar modal */
.overlay{display:none;position:fixed;inset:0;z-index:110;background:rgba(18,16,14,.5);
  align-items:flex-start;justify-content:center;overflow-y:auto;padding:40px 16px}
.overlay.open{display:flex}
.modal{background:#fff;width:100%;max-width:780px;border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;
  padding:24px 26px 18px;border-bottom:1px solid var(--line)}
.modal-head h3{font-size:22px;font-weight:400}
.modal-head .sel{font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;color:var(--muted);margin-top:5px}
.xclose{font-size:26px;color:var(--muted);background:none;border:none;cursor:pointer;line-height:1}
.xclose:hover{color:var(--ink)}
.legend{display:flex;flex-wrap:wrap;gap:16px;padding:16px 26px;
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;color:var(--muted)}
.legend span{display:flex;align-items:center;gap:7px}
.sw{width:14px;height:14px;border-radius:2px;display:inline-block}
.months{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:6px 26px 24px}
@media(max-width:640px){.months{grid-template-columns:1fr}}
.month{border:1px solid var(--line);border-radius:4px;padding:14px}
.mhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.mhead h4{font-size:16px;font-weight:600;color:var(--navy)}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.dow{font-family:"Helvetica Neue",Arial,sans-serif;font-size:10px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);padding:4px 0}
.day{aspect-ratio:1;border:1px solid transparent;border-radius:3px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:13px;cursor:pointer;position:relative;background:#fff;color:var(--ink)}
.day small{font-size:9px;line-height:1;margin-top:1px;font-weight:600}
.day:hover{border-color:var(--teal)}
.day.off{background:#faf8f4;border:1px solid var(--line);color:#c9c2b6;cursor:not-allowed}
.day.empty{background:transparent;border:none;cursor:default}
/* price ticks */
.day .t{font-size:8.5px;color:var(--muted)}.day .t.y{color:#d8b25a}.day .t.g{color:#3fae8a}
/* selection states (priority: selected > in-stay > available) */
.day.sel{background:var(--teal);color:#0b2a22;border-color:var(--teal);font-weight:700}
.day.in{background:#e0f7f5;border-color:#b2e8e2}
.day.in.start,.day.in.end{background:var(--teal);color:#0b2a22;border-color:var(--teal);font-weight:700}
.modal-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:18px 26px;border-top:1px solid var(--line);flex-wrap:wrap}
.linkbtn{font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;color:var(--muted);
  background:none;border:none;cursor:pointer;text-decoration:underline}
.linkbtn:hover{color:var(--navy)}
.modal .modal-foot .btn{min-width:170px;text-align:center}

/* hidden submission form (used only as the booking vehicle on hotel page) */
.hb-formwrap{display:none}

/* ============================================================
   SEARCH RESULTS PAGE
   ============================================================ */
.srs-wrap{padding-top:26px}
.srs-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;
  flex-wrap:wrap;margin-bottom:26px}
.srs-eyebrow{font-family:"Helvetica Neue",Arial,sans-serif;font-size:11px;letter-spacing:.28em;
  text-transform:uppercase;color:var(--teal);margin-bottom:8px}
.srs-head h1{font-size:clamp(28px,4vw,38px);font-weight:400;letter-spacing:-.01em}
.srs-sum{font-size:14px;color:var(--muted);margin-top:10px;display:flex;align-items:center;
  gap:10px;flex-wrap:wrap}
.srs-sum .count{font-weight:600;color:var(--navy);
  background:#eef3f8;border-radius:2px;padding:3px 9px}
.srs-sort{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.srs-sortsel{font-size:14px;padding:9px 12px;border:1px solid var(--line);border-radius:2px;
  background:#fff;color:var(--ink)}

.srs-filters{background:#fff;border:1px solid var(--line);border-radius:4px;padding:20px;
  margin-bottom:24px;align-self:flex-start}
.srs-filter-block{margin-bottom:22px}
.srs-filter-block h4{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin-bottom:12px}
.srs-form label{display:block;font-family:"Helvetica Neue",Arial,sans-serif;font-size:11.5px;
  letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:12px 0 6px}
.srs-input{width:100%;font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;
  padding:10px 12px;border:1px solid var(--line);border-radius:2px;background:#fff;color:var(--ink)}
.srs-input:focus{outline:none;border-color:var(--teal)}
.srs-check-group{display:flex;flex-direction:column;gap:9px}
.srs-check{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;color:var(--ink);
  display:flex;align-items:center;gap:8px;cursor:pointer}
.srs-check input{accent-color:var(--teal);width:16px;height:16px;cursor:pointer}
.srs-check .stars{font-size:13px}

.srs-results{display:flex;flex-direction:column;gap:18px}

.srs-card{display:grid;grid-template-columns:240px 1fr 180px;gap:0;overflow:hidden;
  background:#fff;border:1px solid var(--line);border-radius:4px;transition:.22s}
.srs-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(20,16,14,.45)}
@media(max-width:700px){.srs-card{grid-template-columns:1fr}}

.srs-photo{position:relative;min-height:180px;background:#e6e2da;overflow:hidden}
.srs-photo img{transition:transform .5s}
.srs-card:hover .srs-photo img{transform:scale(1.05)}
.srs-ribbon{position:absolute;top:12px;left:12px;z-index:2;background:var(--accent);color:#fff;
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:11px;font-weight:600;padding:5px 10px;
  border-radius:2px}
.srs-body{padding:20px}
.srs-body h3{font-size:20px;font-weight:400;line-height:1.25}
.srs-body h3 a:hover{color:var(--navy)}
.srs-arrow{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;
  border:1px solid var(--line);border-radius:2px;font-size:12px;color:var(--navy);
  vertical-align:middle;margin-left:6px;flex-shrink:0}
.srs-loc{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px;
  margin-top:8px;flex-wrap:wrap}
.srs-deal{margin-top:12px;font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px;
  color:var(--navy);background:#eef8f7;border-left:3px solid var(--teal);padding:8px 11px;border-radius:2px}
.srs-amens{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.srs-amens span{font-size:12px;color:var(--muted);background:var(--paper);border:1px solid var(--line);
  border-radius:2px;padding:3px 8px}
.srs-frm{font-size:12px;color:var(--muted);margin-top:12px}

.srs-price{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:4px;
  padding:20px;border-left:1px solid var(--line)}
@media(max-width:700px){.srs-price{border-left:none;border-top:1px solid var(--line);align-items:flex-start}}
.srs-from{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.srs-amount{font-size:30px;font-weight:700;color:var(--navy);line-height:1.1}
.srs-amount small{font-size:16px;font-weight:600}
.srs-per{font-size:11.5px;color:var(--muted);margin-bottom:12px}
.srs-cta{width:100%;text-align:center}
.srs-rates{width:100%;display:flex;flex-direction:column;gap:6px;margin-top:2px}
.srs-ratlink{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;
  padding:9px 12px;border:1px solid var(--line);border-radius:4px;background:#fff;cursor:pointer;
  font-family:inherit;text-align:left;transition:all .15s ease;position:relative}
.srs-ratlink:hover{border-color:var(--teal);box-shadow:0 2px 8px rgba(18,16,14,.08)}
.srs-ratlink .srs-ratspin{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2}
.srs-ratlink.srs-loading{opacity:.5;pointer-events:none}
.srs-ratlink .rname{font-size:13px;font-weight:600;color:var(--navy);line-height:1.2}
.srs-ratlink .rprice{font-size:14px;font-weight:700;color:var(--teal);white-space:nowrap}
.srs-details{font-size:12.5px;color:var(--muted);text-decoration:underline;margin-top:10px}
.srs-details:hover{color:var(--navy)}
.srs-navhform{width:100%;margin-top:10px;text-align:center}
.srs-navhform .btn-search-all-availability{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:none;border:none;padding:0;margin:0;font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:12.5px;color:var(--muted);text-decoration:underline;cursor:pointer}
.srs-navhform .btn-search-all-availability:hover{color:var(--navy)}
.srs-navhform .cal-ico{line-height:1;font-size:12px}
.srs-cal{background:#fff;border-top:1px solid var(--line);padding:20px}
.rk-cal .nad-price-note{margin-top:0}

/* ---------- all available dates calendar: roomkey look ---------- */
.rk-cal .nad-monthly-calendar{box-shadow:none}
.rk-cal .nad-months-wrapper{gap:20px}
.rk-cal .nad-month{padding:14px;border:1px solid var(--line);border-radius:4px;background:#fff}
.rk-cal .nad-month-title{font-family:"Helvetica Neue",Arial,sans-serif;font-size:16px;
  font-weight:600;color:var(--navy);margin-bottom:10px}
.rk-cal .nad-weekday{font-family:"Helvetica Neue",Arial,sans-serif;font-size:10px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:4px 0}
.rk-cal .nad-day{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;border-radius:3px;background:#fff}
.rk-cal .nad-day-past{background:#faf8f4;color:#c9c2b6}
.rk-cal .nad-day-unavailable{background:#faf8f4;border:1px solid var(--line);color:#c9c2b6;cursor:not-allowed}
.rk-cal .nad-day-available{background:#fff;border:1px solid var(--line);color:var(--ink)}
.rk-cal .nad-day-clickable{cursor:pointer}
.rk-cal .nad-day-clickable:hover{border-color:var(--teal);outline:none}
.rk-cal .nad-day-price{color:var(--teal)}
.rk-cal .nad-day-room{color:var(--muted)}
.rk-cal .nad-day-selected{background:var(--teal);border-color:var(--teal);color:#0b2a22}
.rk-cal .nad-day-selected .nad-day-price{color:#0b2a22}
.rk-cal .nad-day-preview{background:#e0f7f5;border-color:#b2e8e2}
.rk-cal .nad-day-loading{opacity:.5}
.rk-cal .nad-calendar-controls{margin-bottom:14px}
.rk-cal .nad-rate-filter{background:#fff;border:1px solid var(--line);border-radius:4px;
  padding:16px;margin:0 0 14px;box-shadow:none;-webkit-box-shadow:none;color:var(--ink)}
.rk-cal .nad-rate-filter label{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12.5px;color:var(--muted)}
.rk-cal .nad-rate-filter select{padding:9px 10px;border:1px solid var(--line);border-radius:2px;
  background:#fff;color:var(--ink);font-family:"Helvetica Neue",Arial,sans-serif;font-size:13px}
.rk-cal .nad-rate-filter select:focus{outline:none;border-color:var(--teal)}
.rk-cal .nad-calendar-nav button{background:#fff;border:1px solid var(--line);color:var(--navy);
  border-radius:2px;padding:8px 14px;cursor:pointer;font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:12.5px;transition:all .15s ease}
.rk-cal .nad-calendar-nav button:hover:not(:disabled){border-color:var(--navy)}
.rk-cal .nad-calendar-nav button:disabled{background:#f2efe9;color:var(--muted);cursor:not-allowed}
.rk-cal .nad-price-note{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12.5px;
  color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:4px;
  padding:9px 12px;margin-bottom:14px}

/* hotel details calendar block */
.hd-cal{margin-top:26px;background:#fff;border:1px solid var(--line);border-radius:4px;padding:22px}
.hd-cal-title{font-family:"Helvetica Neue",Arial,sans-serif;font-size:20px;font-weight:400;
  color:var(--navy);margin:0 0 6px}
@media(max-width:620px){.hd-cal-title{font-size:16px}}

.srs-empty{background:#fff;border:1px dashed var(--line);border-radius:4px;text-align:center;
  padding:60px 24px}
.srs-empty h3{font-size:22px;font-weight:400;margin-bottom:10px}
.srs-empty p{font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;color:var(--muted);
  margin:0 auto 22px;max-width:420px}

/* ---------- room matrix modal ---------- */
.rm-overlay{position:fixed;inset:0;z-index:1200;background:rgba(18,16,14,.55);display:none;
  align-items:center;justify-content:center;padding:20px}
.rm-modal{background:#fff;border-radius:10px;max-width:760px;width:100%;max-height:90vh;
  display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.rm-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  padding:22px 26px 16px;border-bottom:1px solid var(--line)}
.rm-head h3{font-size:22px;font-weight:500;color:var(--navy);margin:0 0 4px}
.rm-sub{font-size:13px;color:var(--muted)}
.rm-close{background:none;border:none;font-size:28px;line-height:1;color:var(--muted);
  cursor:pointer;padding:0 2px}
.rm-close:hover{color:var(--navy)}
.rm-body{padding:20px 26px 26px;overflow-y:auto}
.rm-body #modal-rate-details{font-size:14px;font-weight:700;color:var(--teal)}
.rm-instruct{margin:14px 0 12px;font-size:14px}
.rm-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px}
.rm-table{width:100%;border-collapse:collapse;min-width:520px;font-size:13.5px}
.rm-table th{background:var(--navy);color:#fff;text-align:left;padding:10px 14px;font-size:12px;
  letter-spacing:.04em;text-transform:uppercase}
.rm-table td{padding:10px 14px;border-top:1px solid var(--line);vertical-align:middle}
.rm-table tbody tr:nth-child(even){background:var(--paper)}
.rm-cost{font-weight:700;color:var(--navy);white-space:nowrap}
.rm-total td{font-weight:700;color:var(--navy);background:var(--paper);border-top:2px solid var(--line)}
.rm-sel{border:1px solid var(--line);border-radius:4px;padding:6px 8px;font-family:inherit;
  font-size:13.5px;background:#fff;color:var(--ink)}

/* Pricecard summary — flex rows instead of .rm-table so it always fits the
   narrow sidebar width with no horizontal scroll (rm-table's 520px min-width
   is sized for the wider room-selection modal, not this box). */
.price-summary{border:1px solid var(--line);border-radius:6px;overflow:hidden;font-size:13.5px}
.price-summary .ps-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  padding:10px 14px;border-top:1px solid var(--line)}
.price-summary .ps-row:first-child{border-top:none}
.price-summary .ps-row:nth-child(even){background:var(--paper)}
.ps-cost{font-weight:700;color:var(--navy);white-space:nowrap;text-align:right;flex-shrink:0}
.ps-total{font-weight:700;color:var(--navy);background:var(--paper);border-top:2px solid var(--line)}
.rm-na{color:var(--muted);font-size:12px}
.rm-note{margin:16px 0 0;font-size:12.5px;line-height:1.6;color:var(--muted)}
.rm-actions{margin-top:18px;text-align:right}
.rm-actions .btn{padding:12px 30px;border:none;cursor:pointer}