
:root{
  --ink:#2f2a27;--muted:#77706b;--paper:#fbfaf8;--line:#e8e4df;--soft:#f4f1ed;--white:#fff;
  --radius:18px;--shadow:0 10px 28px rgba(47,42,39,.07);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:inherit;text-decoration:none}.container{width:min(1180px,calc(100% - 40px));margin:auto}
.site-header{padding:18px 0;position:sticky;top:0;z-index:30;background:rgba(251,250,248,.92);backdrop-filter:blur(14px)}
.nav-shell{background:var(--ink);color:white;border-radius:0 0 18px 18px;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;box-shadow:var(--shadow)}
.brand{display:flex;gap:11px;align-items:center;font-weight:800;letter-spacing:.2px}.brand-mark{width:30px;height:30px;border:1.5px solid #fff;border-radius:9px;display:grid;place-items:center;transform:rotate(45deg)}.brand-mark span{transform:rotate(-45deg);font-size:11px}
.nav-links{display:flex;gap:30px;align-items:center;font-size:13px}.nav-links a{opacity:.82}.nav-links a:hover{opacity:1}.nav-actions{display:flex;gap:10px;align-items:center}.pill,.btn{border:0;border-radius:999px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:700}.pill{background:#403936;color:#fff}.btn-dark{background:var(--ink);color:#fff}.btn-light{background:white;color:var(--ink);border:1px solid var(--line)}.btn-soft{background:var(--soft);color:var(--ink)}.btn-sm{padding:9px 13px;font-size:13px}
.hero{min-height:430px;border-radius:20px;overflow:hidden;position:relative;background:linear-gradient(90deg,rgba(38,32,28,.62),rgba(38,32,28,.18)),url('../img/property-1.svg') center/cover no-repeat;display:flex;align-items:center;justify-content:center;color:white;text-align:center;margin-top:6px}
.hero-inner{width:100%;padding:58px 24px 30px}.eyebrow{font-family:Georgia,serif;font-size:16px;opacity:.92}.hero h1{font:700 clamp(38px,6vw,68px)/1 Georgia,serif;margin:10px 0 26px}.hero p{max-width:720px;margin:0 auto 24px;opacity:.92}
.searchbar{background:#fff;color:var(--ink);display:grid;grid-template-columns:1.2fr 1fr 1fr .7fr auto;gap:8px;padding:11px;border-radius:16px;width:min(920px,100%);margin:0 auto;box-shadow:0 14px 45px rgba(0,0,0,.16);text-align:left}
.field{background:#f7f6f4;border-radius:11px;padding:8px 12px}.field label{display:block;font-size:11px;font-weight:800;margin-bottom:5px}.field input,.field select{width:100%;border:0;background:transparent;outline:none;color:var(--ink)}.search-button{width:48px;height:48px;border-radius:50%;border:0;background:var(--ink);color:white;font-size:18px;align-self:center}
.category-strip{display:flex;align-items:center;gap:14px;margin:34px 0 46px;overflow:auto;padding-bottom:6px}.category{min-width:90px;text-align:center;color:var(--muted);font-size:12px}.category .ico{width:50px;height:50px;border-radius:14px;border:1px solid var(--line);display:grid;place-items:center;margin:0 auto 7px;background:#fff}.category.active .ico{background:var(--ink);color:#fff}.category.active{color:var(--ink);font-weight:700}.category-spacer{flex:1}.section{margin:0 0 44px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.section h2{font:700 25px/1.2 Georgia,serif;margin:0}.section-sub{color:var(--muted);font-size:14px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 4px 15px rgba(50,45,40,.035)}.card-image{aspect-ratio:1.18/1;overflow:hidden;background:var(--soft)}.card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:.35s}.card:hover .card-image img{transform:scale(1.03)}.card-body{padding:13px}.card-title{font-weight:800;font-size:15px}.card-location{color:var(--muted);font-size:12px;margin:4px 0 10px}.card-bottom{display:flex;justify-content:space-between;align-items:end}.price{font-weight:800}.price small{font-weight:500;color:var(--muted)}.arrow{width:34px;height:34px;border-radius:50%;background:var(--ink);color:white;display:grid;place-items:center}
.filters-panel{padding:20px;background:#fff;border:1px solid var(--line);border-radius:16px;margin:18px 0}.alert{padding:13px 16px;border-radius:12px;margin:14px 0}.alert-success{background:#edf7ef;color:#236333}.alert-error{background:#fff0f0;color:#8b2d2d}.auth-wrap{min-height:70vh;display:grid;place-items:center}.auth-card{width:min(480px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:var(--shadow)}.auth-card h1{font-family:Georgia,serif}.form-grid{display:grid;gap:14px}.form-control label{font-weight:700;font-size:13px;display:block;margin-bottom:6px}.form-control input,.form-control select,.form-control textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff}.property-page{display:grid;grid-template-columns:1.45fr .75fr;gap:28px;margin-top:28px}.gallery-main{border-radius:18px;overflow:hidden}.gallery-main img{width:100%;display:block}.booking-box{background:white;border:1px solid var(--line);border-radius:16px;padding:20px;position:sticky;top:100px;height:max-content}.booking-box h3{margin-top:0}.amenities{display:flex;gap:8px;flex-wrap:wrap}.tag{padding:8px 11px;background:var(--soft);border-radius:999px;font-size:12px}.footer{border-top:1px solid var(--line);padding:36px 0;margin-top:50px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}.muted{color:var(--muted)}.account-grid{display:grid;grid-template-columns:240px 1fr;gap:24px;margin:30px 0}.account-menu{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;height:max-content}.account-menu a{display:block;padding:11px;border-radius:9px}.account-menu a:hover{background:var(--soft)}table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}th{background:#f7f5f2}
@media(max-width:900px){.nav-links{display:none}.searchbar{grid-template-columns:1fr 1fr}.searchbar .field:first-child{grid-column:1/-1}.search-button{width:100%;border-radius:10px}.cards{grid-template-columns:repeat(2,1fr)}.property-page,.account-grid{grid-template-columns:1fr}.booking-box{position:static}.footer-grid{grid-template-columns:1fr}}
@media(max-width:560px){.container{width:min(100% - 22px,1180px)}.cards{grid-template-columns:1fr}.hero{min-height:540px}.searchbar{grid-template-columns:1fr}.searchbar .field:first-child{grid-column:auto}.nav-actions .hide-mobile{display:none}}


/* Dynamic transparent branding */
.site-brand{
  display:flex;
  align-items:center;
  min-width:150px;
  background:transparent;
  padding:0;
  line-height:0;
}
.site-logo{
  display:block;
  width:auto;
  height:auto;
  object-fit:contain;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.site-logo-header{
  max-width:210px;
  max-height:72px;
  object-position:left center;
}
.brand-fallback{
  color:#fff;
  font-weight:800;
  font-size:17px;
  line-height:1.1;
}
.footer-logo-link{
  display:inline-block;
  background:transparent;
  line-height:0;
  margin-bottom:8px;
}
.site-logo-footer{
  max-width:260px;
  max-height:105px;
  object-position:left center;
}
.footer-brand-fallback{
  display:inline-block;
  font-weight:800;
  font-size:21px;
  line-height:1.2;
  color:var(--ink);
}
.nav-shell{
  min-height:84px;
}
@media(max-width:900px){
  .site-logo-header{max-width:165px;max-height:58px}
  .site-logo-footer{max-width:220px;max-height:88px}
  .nav-shell{min-height:74px}
}
@media(max-width:560px){
  .site-logo-header{max-width:135px;max-height:50px}
  .site-brand{min-width:120px}
}

.property-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:10px}
.property-thumb{padding:0;border:2px solid transparent;border-radius:9px;overflow:hidden;background:transparent;cursor:pointer;aspect-ratio:1.25/1}
.property-thumb.active{border-color:var(--ink)}
.property-thumb img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:700px){.property-thumbs{grid-template-columns:repeat(4,1fr)}}


/* Public pricing & availability V7 */
.availability-public{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800;margin:3px 0 9px}
.available-public{background:#edf7ef;color:#2e6a3d}
.unavailable-public{background:#fff0f0;color:#933a34}
.neutral-public{background:#f2efeb;color:#6d655f}
.stay-total{font-size:10px;color:var(--muted);margin-top:3px}
.no-availability{padding:30px;background:#fff;border:1px solid var(--line);border-radius:14px;text-align:center}
.no-availability strong,.no-availability span{display:block}.no-availability span{color:var(--muted);font-size:12px;margin-top:5px}
.booking-box h3 small{font:500 11px Inter,system-ui,sans-serif;color:var(--muted)}
.booking-main-cta{width:100%;margin-top:12px}
.price-breakdown{display:flex;flex-direction:column;gap:7px;margin:13px 0}
.price-breakdown>div{display:flex;justify-content:space-between;gap:10px;font-size:12px}
.price-breakdown small{font-size:9px;color:#6f665f;margin-top:-4px}
.price-breakdown .discount-line{color:#2e6a3d}
.price-breakdown .total-line{border-top:1px solid var(--line);padding-top:9px;margin-top:3px;font-size:14px}
.property-policy-box{margin-top:24px;padding:17px;background:#fff;border:1px solid var(--line);border-radius:14px}
.property-policy-box h3{font:700 18px Georgia,serif;margin:0 0 10px}
.property-policy-box details{border-top:1px solid var(--line);padding:9px 0}
.property-policy-box details:first-of-type{border-top:0}
.property-policy-box summary{font-size:12px;font-weight:800;cursor:pointer}
.property-policy-box details p{font-size:12px;color:var(--muted);line-height:1.6}


/* Payment and non-refundable rate presentation */
.public-rate-flags,.card-rate-flags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.public-rate-flags span,.card-rate-flags span{
  display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;background:#f0ede8;
  font-size:9px;font-weight:800;color:#5c544e
}
.public-rate-flags .nonrefund-flag,.card-rate-flags .nr{background:#2f2a27;color:#fff}
.payment-flag{background:#eeedff!important;color:#4b46a8!important}
.nonrefund-note{padding:9px 11px;border-radius:9px;background:#f7f0ea;color:#765344;font-size:10px;line-height:1.45;margin-bottom:10px}
.increase-line{color:#8a4a36}
.rate-payment-summary{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 14px;border-radius:11px;margin:0 0 14px;border:1px solid var(--line)
}
.rate-payment-summary strong,.rate-payment-summary span{display:block}
.rate-payment-summary strong{font-size:12px}
.rate-payment-summary span{font-size:10px;color:var(--muted);margin-top:3px;line-height:1.4}
.rate-nonrefundable{background:#f8f2ed;border-color:#ead9cd}
.rate-payment-summary>b{font-size:11px;padding:6px 8px;border-radius:999px;white-space:nowrap}
.rate-discount{background:#eaf6ed;color:#27643a}
.rate-increase{background:#fff0ed;color:#93483b}


/* Booking-style rate choices */
.rate-option-list{display:flex;flex-direction:column;gap:8px;margin:10px 0 12px}
.public-rate-card{display:block;border:1px solid var(--line);border-radius:12px;padding:11px;cursor:pointer;background:#fff;transition:.15s}
.public-rate-card:hover{border-color:#bcb3ab}.public-rate-card.selected{border-color:#2f2a27;box-shadow:inset 0 0 0 1px #2f2a27;background:#fbfaf8}
.public-rate-card>input{position:absolute;opacity:0;pointer-events:none}
.rate-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.rate-card-top>div strong,.rate-card-top>div span{display:block}.rate-card-top>div strong{font-size:12px}.rate-card-top>div span{font-size:9px;color:var(--muted);margin-top:3px}
.rate-card-top>b{font-size:13px;white-space:nowrap}.rate-card-top>b small{font-size:8px;font-weight:500;color:var(--muted)}
.public-rate-card p{font-size:9px;line-height:1.45;color:#716861;margin:8px 0}
.rate-card-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:8px;margin-top:7px;font-size:10px}
.rate-card-bottom strong{font-size:12px}
.public-rate-card em{display:inline-flex;margin-top:7px;padding:4px 6px;border-radius:999px;font-size:8px;font-weight:800;font-style:normal}
.rate-saving{background:#eaf6ed;color:#27643a}.rate-extra{background:#fff0ed;color:#8d493c}
.property-date-form{margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}
.checkout-rate-choice{padding:10px 11px;background:#f4f1ed;border-radius:10px;margin-bottom:12px}
.checkout-rate-choice strong,.checkout-rate-choice span,.checkout-rate-choice small{display:block}
.checkout-rate-choice strong{font-size:12px}.checkout-rate-choice span{font-size:9px;color:#625a54;margin-top:3px}.checkout-rate-choice small{font-size:9px;color:#887f77;line-height:1.4;margin-top:5px}
.change-rate-link{display:inline-block;margin-top:10px;font-size:10px;font-weight:700;color:#665e58}
.stay-rate-count{font-size:9px;font-weight:800;color:#514944;margin-top:3px}

.rate-important-note{margin:7px 0;padding:7px 8px;border-radius:8px;background:#f8eee8;color:#7a4f3f;font-size:8px;line-height:1.45;font-weight:700}

.rate-guest-pricing{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}
.rate-guest-pricing span{display:flex;justify-content:space-between;gap:6px;padding:6px 7px;background:#f5f2ee;border-radius:7px;font-size:8px;color:#6d655f}
.rate-guest-pricing strong{color:#2f2a27}

.free-cancel-public{margin:7px 0 3px;padding:7px 8px;border-radius:8px;background:#eaf6ed;color:#27643a;font-size:9px;font-weight:800}
.late-cancel-public{font-size:8px;line-height:1.4;color:#7b6f66;margin-bottom:6px}
.free-cancel-highlight{color:#27643a!important;font-weight:800!important}
.booking-account-list{display:flex;flex-direction:column;gap:12px}
.account-booking-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.account-booking-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}
.account-booking-head h3{margin:3px 0;font-size:16px}.account-booking-head p{margin:0;color:var(--muted);font-size:11px}
.booking-code{font-size:9px;font-weight:900;color:#8a8179;text-transform:uppercase}
.booking-status{padding:5px 8px;border-radius:999px;background:#f1eee9;font-size:9px;font-weight:900;text-transform:capitalize}
.status-paid,.status-confirmed{background:#eaf6ed;color:#27643a}.status-cancelled{background:#f4ecea;color:#8b4a3e}
.account-booking-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:13px 0}
.account-booking-meta>div{padding:9px;background:#f8f6f3;border-radius:9px}
.account-booking-meta span,.account-booking-meta strong{display:block}.account-booking-meta span{font-size:8px;color:var(--muted);margin-bottom:3px}.account-booking-meta strong{font-size:10px}
.cancel-policy-info{padding:10px 11px;border-radius:10px;margin-top:10px}
.cancel-policy-info strong,.cancel-policy-info span{display:block}.cancel-policy-info strong{font-size:10px}.cancel-policy-info span{font-size:9px;line-height:1.45;margin-top:3px}
.cancel-free{background:#eaf6ed;color:#27643a}.cancel-expired{background:#fff0ed;color:#84493d}
.cancel-booking-form{margin-top:8px}.late-cancel-confirm{display:flex;gap:7px;align-items:flex-start;font-size:9px;color:#6d625a;margin-bottom:8px}.late-cancel-confirm input{margin-top:1px}
.cancelled-summary{margin-top:10px;font-size:9px;color:#7f756d}
@media(max-width:750px){.account-booking-meta{grid-template-columns:1fr 1fr}}


/* Booking account popup */
.booking-auth-open{overflow:hidden}
.booking-auth-overlay{
  position:fixed;inset:0;z-index:9999;background:rgba(31,27,24,.62);
  backdrop-filter:blur(7px);display:none;align-items:center;justify-content:center;padding:20px
}
.booking-auth-overlay.is-open{display:flex}
.booking-auth-modal{
  position:relative;width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;
  background:#fff;border:1px solid rgba(255,255,255,.55);border-radius:24px;padding:28px;
  box-shadow:0 30px 90px rgba(20,17,15,.28)
}
.booking-auth-close{
  position:absolute;right:16px;top:16px;width:34px;height:34px;border:0;border-radius:50%;
  background:#f3f0ec;color:#4e4742;font-size:20px;cursor:pointer
}
.booking-auth-brand{padding-right:38px;margin-bottom:20px}
.booking-auth-kicker{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.16em;font-weight:900;color:#91877f;margin-bottom:7px}
.booking-auth-brand h2{font:700 27px/1.06 Georgia,serif;margin:0 0 9px;color:var(--ink)}
.booking-auth-brand p{margin:0;color:var(--muted);font-size:11px;line-height:1.55;max-width:430px}
.booking-auth-tabs{
  display:grid;grid-template-columns:1fr 1fr;background:#f4f1ed;border-radius:12px;padding:4px;margin-bottom:18px
}
.booking-auth-tab{
  border:0;background:transparent;border-radius:9px;padding:10px 12px;font-size:11px;font-weight:800;
  color:#746b64;cursor:pointer
}
.booking-auth-tab.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(41,36,32,.07)}
.booking-auth-pane{display:none}.booking-auth-pane.active{display:block}
.booking-auth-form{display:grid;gap:11px}
.booking-auth-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.booking-auth-field label{display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#776e67;margin-bottom:5px}
.booking-auth-field input{
  width:100%;border:1px solid #e3ded8;border-radius:11px;padding:12px 13px;background:#fbfaf8;
  color:var(--ink);outline:none;font:inherit;font-size:12px
}
.booking-auth-field input:focus{border-color:#786f68;background:#fff;box-shadow:0 0 0 3px rgba(47,42,39,.05)}
.booking-auth-submit{
  width:100%;border:0;border-radius:999px;background:var(--ink);color:#fff;padding:13px 18px;
  font-size:12px;font-weight:800;cursor:pointer;margin-top:3px
}
.booking-auth-footnote{text-align:center;font-size:9px;color:#91877f;line-height:1.45}
.booking-auth-inline-note{text-align:center;font-size:9px;color:#82786f;margin-top:7px}
.auth-booking-background{
  min-height:65vh;display:grid;place-items:center;padding:50px 0;filter:blur(0)
}
.auth-booking-summary{
  width:min(620px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;
  box-shadow:var(--shadow);text-align:center
}
.auth-booking-summary>span{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:#91877f;font-weight:900}
.auth-booking-summary h1{font:700 30px Georgia,serif;margin:8px 0}
.auth-booking-summary p{font-size:12px;color:#5f5751}
.auth-booking-summary div{font-size:11px;color:var(--muted);margin-top:12px}
@media(max-width:620px){
  .booking-auth-overlay{padding:10px;align-items:flex-end}
  .booking-auth-modal{width:100%;border-radius:22px 22px 12px 12px;padding:22px 18px;max-height:92vh}
  .booking-auth-two{grid-template-columns:1fr}
  .booking-auth-brand h2{font-size:24px}
}


/* V17 guests, pets and extra fees */
.searchbar-expanded{grid-template-columns:1.2fr 1fr 1fr .65fr .65fr auto!important}
.pet-search-panel{margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px}
.pet-search-head,.property-pets-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pet-search-head strong,.pet-search-head span,.property-pets-head strong,.property-pets-head span{display:block}
.pet-search-head strong,.property-pets-head strong{font-size:11px}.pet-search-head span,.property-pets-head span{font-size:9px;color:var(--muted);margin-top:2px}
.pet-rows{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.pet-row{display:grid;grid-template-columns:1fr 1fr 28px;gap:6px;align-items:center}
.pet-row select{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px;font-size:10px}
.pet-remove{width:28px;height:28px;border:0;border-radius:50%;background:#f3efeb;color:#7e4b44;font-size:17px;cursor:pointer}
.pet-apply-btn{margin-top:8px}
.property-pets-box{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fbfaf8}
.guest-count-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.guest-capacity-note{font-size:8px;color:var(--muted)}
.rate-extra-fees-mini{display:flex;flex-direction:column;gap:2px;margin:7px 0;font-size:8px;color:#756b63}
.stay-fee-note{font-size:8px;color:#756b63;margin-top:2px}
@media(max-width:900px){.searchbar-expanded{grid-template-columns:1fr 1fr!important}}
@media(max-width:560px){.searchbar-expanded{grid-template-columns:1fr!important}.pet-row{grid-template-columns:1fr 1fr 26px}}

.automatic-promo-public{margin:7px 0;padding:6px 8px;border-radius:8px;background:#eef3ff;color:#425c91;font-size:8px;font-weight:800}
.voucher-entry small{display:block;color:var(--muted);font-size:9px;margin-top:4px;line-height:1.4}
