
/* ====== RESET & BASE ====== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: 'Inter', sans-serif; color: #1a1a1a; background: #fff; line-height: 1.7; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }

/* ====== TOKENS ====== */
:root {
  --brown:      #bd966f;
  --brown-dark: #a8835a;
  --beige:      #f7f5e7;
  --beige2:     #ece8df;
  --text:       #1a1a1a;
  --muted:      #6b6b6b;
  --border:     #e0d9cf;
  --footer-bg:  #111111;
  --radius:     12px;
  --shadow:     0 4px 24px rgba(0,0,0,.08);
  --shadow-lg:  0 12px 40px rgba(0,0,0,.12);
}

/* ====== UTILITIES ====== */
.container { max-width: 1140px; margin: 0 auto; padding: 0 24px; }
.section-header { text-align: center; margin-bottom: 56px; }
.section-label { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--brown); font-weight: 600; margin-bottom: 10px; }
.section-header h2 { font-family: 'Playfair Display', serif; font-size: clamp(1.8rem,3.5vw,2.6rem); color: var(--text); }
.section-sub { color: var(--muted); margin-top: 12px; font-size: .95rem; }

/* ====== BUTTONS ====== */
.btn-primary { display: inline-block; background: var(--brown); color: #fff; padding: 14px 32px; border-radius: 50px; font-weight: 600; font-size: .95rem; border: 2px solid var(--brown); transition: background .2s, transform .15s; cursor: pointer; font-family: inherit; }
.btn-primary:hover { background: var(--brown-dark); border-color: var(--brown-dark); transform: translateY(-1px); }
.btn-secondary { display: inline-block; border: 2px solid var(--brown); color: var(--brown); padding: 12px 28px; border-radius: 50px; font-weight: 600; font-size: .9rem; transition: background .2s, color .2s, transform .15s; }
.btn-secondary:hover { background: var(--brown); color: #fff; transform: translateY(-1px); }
.btn-ghost { display: inline-block; border: 2px solid rgba(255,255,255,.7); color: #fff; padding: 14px 32px; border-radius: 50px; font-weight: 600; font-size: .95rem; transition: background .2s; }
.btn-ghost:hover { background: rgba(255,255,255,.15); }
.btn-outline { display: inline-block; border: 2px solid var(--brown); color: var(--brown); padding: 12px 24px; border-radius: 50px; font-weight: 600; font-size: .9rem; transition: background .2s, color .2s; }
.btn-outline:hover { background: var(--brown); color: #fff; }
.btn-primary.full-width { display: block; text-align: center; width: 100%; }

/* ====== NAV ====== */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.96); backdrop-filter: blur(10px); border-bottom: 1px solid var(--border); }
.nav { display: flex; align-items: center; justify-content: space-between; padding: 12px 24px; max-width: 1140px; margin: 0 auto; min-height: 64px; }
.logo-link { display: flex; align-items: center; flex-shrink: 0; }
.logo-img { height: 112px; width: auto; max-width: 280px; object-fit: contain; display: block; }
.logo { font-family: 'Playfair Display', serif; font-size: 1.2rem; color: var(--text); font-weight: 700; line-height: 1.2; }
.logo span { color: var(--brown); display: block; font-size: .8rem; font-weight: 400; letter-spacing: .04em; font-style: italic; font-family: 'Inter', sans-serif; }
.nav-links { display: flex; gap: 32px; align-items: center; }
.nav-links a { font-size: .9rem; font-weight: 500; color: var(--muted); transition: color .2s; }
.nav-links a:hover { color: var(--text); }
.btn-nav { background: var(--brown) !important; color: #fff !important; padding: 10px 22px !important; border-radius: 50px; font-size: .85rem !important; transition: background .2s !important; }
.btn-nav:hover { background: var(--brown-dark) !important; }
.hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }
.hamburger span { display: block; width: 24px; height: 2px; background: var(--text); border-radius: 2px; }

/* ====== HERO ====== */
.hero { position: relative; min-height: 92vh; display: flex; align-items: center; background-position: center; background-size: cover; background-repeat: no-repeat; background-color: #2a1f0e; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(30,20,10,.72) 0%, rgba(20,12,5,.45) 100%); }
.hero-content { position: relative; z-index: 1; color: #fff; max-width: 640px; }
.hero-label { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.75); margin-bottom: 18px; }
.hero-content h1 { font-family: 'Playfair Display', serif; font-size: clamp(2.4rem,5.5vw,4rem); line-height: 1.15; margin-bottom: 20px; }
.hero-content h1 em { color: #e8d5bc; font-style: italic; }
.hero-sub { font-size: 1.05rem; color: rgba(255,255,255,.85); margin-bottom: 36px; max-width: 480px; font-weight: 300; }
.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }
.hero-scroll { position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%); }
.scroll-dot { width: 6px; height: 6px; background: rgba(255,255,255,.6); border-radius: 50%; animation: scrollBob 2s ease-in-out infinite; }
@keyframes scrollBob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(8px)} }

/* ====== FEATURES STRIP ====== */
.features { padding: 0; }
.features-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--border); }
.feature-item { padding: 36px 28px; border-right: 1px solid var(--border); }
.feature-item:last-child { border-right: none; }
.feature-icon { margin-bottom: 14px; }
.feature-item h3 { font-size: 1rem; font-weight: 600; margin-bottom: 8px; }
.feature-item p { font-size: .88rem; color: var(--muted); }

/* ====== APARTMENTS ====== */
.apartments-section { padding: 96px 0; background: var(--beige); }
.apartments-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.apt-card { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); transition: transform .25s, box-shadow .25s; }
.apt-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.apt-photos { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--beige2); }
.gallery-wrap { position: relative; width: 100%; height: 100%; }
.gallery-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .4s; }
.gallery-img.active { opacity: 1; }
.apt-img-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 220px; color: var(--muted); gap: 8px; }
.apt-img-placeholder p { font-size: .85rem; }
.g-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.88); border: none; border-radius: 50%; width: 36px; height: 36px; font-size: 1.5rem; cursor: pointer; z-index: 2; display: flex; align-items: center; justify-content: center; line-height: 1; transition: background .2s; }
.g-btn:hover { background: #fff; }
.g-prev { left: 10px; }
.g-next { right: 10px; }
.g-dots { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; z-index: 2; }
.g-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.55); transition: background .2s; }
.g-dot.active { background: #fff; }
.apt-body { padding: 24px 26px 28px; }
.apt-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.badge { font-size: .78rem; background: var(--beige); padding: 4px 12px; border-radius: 50px; font-weight: 500; display: inline-flex; align-items: center; gap: 5px; }
.apt-card h3 { font-family: 'Playfair Display', serif; font-size: 1.4rem; margin-bottom: 6px; }
.apt-tagline { font-size: .88rem; font-weight: 600; color: var(--brown); margin-bottom: 8px; }
.apt-desc { font-size: .9rem; color: var(--muted); margin-bottom: 20px; line-height: 1.6; }
.apt-desc p { margin-bottom: 10px; }
.apt-desc p:last-child { margin-bottom: 0; }
.apt-desc ul, .apt-desc ol { margin: 10px 0; padding-left: 20px; }
.apt-desc li { margin-bottom: 4px; }

/* ====== AMENITIES ====== */
.amenities-section { padding: 96px 0; }
.amenities-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.amenity-card { background: var(--beige); border-radius: var(--radius); padding: 32px 28px; border: 1px solid var(--border); }
.amenity-icon { margin-bottom: 14px; display: block; }
.amenity-card h4 { font-size: 1rem; font-weight: 600; margin-bottom: 6px; }
.amenity-card p { font-size: .88rem; color: var(--muted); }

/* ====== LOCATION ====== */
.location-section { padding: 96px 0; background: var(--beige); }
.location-wrap { display: grid; grid-template-columns: 1fr 1.2fr; gap: 56px; align-items: start; }
.location-text p { color: var(--muted); margin-bottom: 24px; }
.location-list { display: flex; flex-direction: column; gap: 14px; }
.location-list li { display: flex; align-items: center; gap: 10px; font-size: .95rem; }
.location-map iframe { width: 100%; height: 380px; border-radius: var(--radius); border: 1px solid var(--border); }

/* ====== CTA ====== */
.cta-section { padding: 96px 0; }
.cta-box { background: var(--brown); border-radius: 20px; padding: 64px 48px; text-align: center; color: #fff; }
.cta-box h2 { font-family: 'Playfair Display', serif; font-size: clamp(1.8rem,3vw,2.4rem); margin-bottom: 12px; }
.cta-box p { opacity: .85; margin-bottom: 36px; }
.cta-btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.cta-btns .btn-outline { border-color: rgba(255,255,255,.7); color: #fff; }
.cta-btns .btn-outline:hover { background: rgba(255,255,255,.15); color: #fff; }

/* ====== FOOTER ====== */
.site-footer { background: var(--footer-bg, #111); color: rgba(255,255,255,.75); padding: 64px 0 32px; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 48px; margin-bottom: 40px; }
.footer-logo-link { display: inline-flex; align-items: center; margin-bottom: 14px; }
.footer-logo-img { height: 101px; width: auto; max-width: 260px; object-fit: contain; display: block; }
.footer-logo-text { font-family: 'Playfair Display', serif; font-size: 1.15rem; color: #fff; font-weight: 700; }
.footer-logo-text span { color: #e8d5bc; display: block; font-size: .8rem; font-weight: 400; font-style: italic; font-family: 'Inter', sans-serif; }
.footer-brand p { font-size: .88rem; opacity: .6; max-width: 240px; }
.footer-links h4, .footer-contact h4 { color: #fff; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 16px; }
.footer-links ul { display: flex; flex-direction: column; gap: 10px; }
.footer-links a, .footer-contact a { font-size: .9rem; opacity: .7; transition: opacity .2s; }
.footer-links a:hover, .footer-contact a:hover { opacity: 1; }
.footer-contact p { font-size: .9rem; margin-bottom: 8px; display: flex; align-items: center; gap: 8px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 24px; text-align: center; font-size: .82rem; opacity: .45; }

/* ====== APT DETAIL ====== */
.apt-detail-hero { background: var(--beige); padding: 24px 0; border-bottom: 1px solid var(--border); }
.breadcrumb { font-size: .85rem; color: var(--muted); display: flex; gap: 8px; align-items: center; }
.breadcrumb a { color: var(--brown); }
.apt-detail-section { padding: 64px 0 80px; }
.apt-detail-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 56px; align-items: start; }
.gallery-detail {}
.gallery-main { position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4/3; background: var(--beige2); }
.gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.gallery-thumbs { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; margin-top: 10px; }
.thumb { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; cursor: pointer; opacity: .65; transition: opacity .2s; border: 2px solid transparent; }
.thumb.active, .thumb:hover { opacity: 1; border-color: var(--brown); }
.apt-img-placeholder.large { height: 360px; border-radius: var(--radius); background: var(--beige2); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:var(--muted); font-size:.9rem; }
.apt-detail-info h1 { font-family: 'Playfair Display', serif; font-size: 2.2rem; margin: 12px 0 8px; }
.features-list { display: flex; flex-direction: column; gap: 10px; margin: 14px 0 24px; }
.features-list li { display: flex; align-items: center; gap: 9px; font-size: .9rem; color: var(--muted); }
.shared-amenities { padding-top: 20px; border-top: 1px solid var(--border); margin-bottom: 28px; }
.shared-amenities h3, .apt-detail-info h3 { font-size: 1rem; font-weight: 600; margin-bottom: 12px; }

/* ====== RESERVATION ====== */
.reservation-section { padding: 80px 0 96px; background: var(--beige); }
.reservation-wrap { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: start; }
.calendar-wrap { background: #fff; border-radius: var(--radius); padding: 28px; border: 1px solid var(--border); }
.calendar-wrap h3 { font-size: 1rem; font-weight: 600; margin-bottom: 8px; }
.cal-legend { display: flex; align-items: center; gap: 16px; font-size: .82rem; color: var(--muted); margin-bottom: 20px; }
.leg-free, .leg-booked { display: inline-block; width: 14px; height: 14px; border-radius: 4px; }
.leg-free { background: #e8f5e9; border: 1px solid #a5d6a7; }
.leg-booked { background: #fce4e4; border: 1px solid #ef9a9a; }
.cal-month { margin-bottom: 24px; }
.cal-month-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.cal-month-name { font-weight: 600; font-size: .95rem; }
.cal-nav { background: none; border: 1px solid var(--border); border-radius: 6px; width: 30px; height: 30px; cursor: pointer; font-size: 1rem; }
.cal-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 3px; }
.cal-day-name { text-align: center; font-size: .72rem; color: var(--muted); font-weight: 600; padding: 4px 0; }
.cal-day { text-align: center; padding: 6px 2px; border-radius: 6px; font-size: .82rem; }
.cal-day.free { background: #e8f5e9; color: #2e7d32; }
.cal-day.booked { background: #fce4e4; color: #c62828; text-decoration: line-through; }
.cal-day.past { color: #ccc; }
.cal-day.today { font-weight: 700; outline: 2px solid var(--brown); outline-offset: -2px; }
.form-wrap { background: #fff; border-radius: var(--radius); padding: 36px; border: 1px solid var(--border); box-shadow: var(--shadow); position: sticky; top: 160px; }
@media (max-width: 1024px) {
  .form-wrap { position: static; }
}
.form-row { margin-bottom: 16px; }
.form-row.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group label { display: block; font-size: .82rem; font-weight: 600; margin-bottom: 6px; }
.form-group input, .form-group select, .form-group textarea { width: 100%; padding: 12px 14px; border: 1.5px solid var(--border); border-radius: 8px; font-family: inherit; font-size: .92rem; color: var(--text); background: #faf9f7; transition: border-color .2s; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline: none; border-color: var(--brown); background: #fff; }
.form-msg { padding: 12px 16px; border-radius: 8px; font-size: .9rem; font-weight: 500; margin-bottom: 16px; display: none; }
.form-msg.success { background: #e8f5e9; color: #2e7d32; display: block; }
.form-msg.error { background: #fce4e4; color: #c62828; display: block; }

/* ====== SVG ICONS ======
   Icons are applied as CSS masks (not background-image) so a single
   background-color (var(--brown)) tints all of them — this is what lets the
   admin design editor's "primary color" actually recolor the icons instead of
   only the buttons/banners. The SVGs below use an opaque white stroke; the
   mask only cares about opacity/luminance, the visible color always comes
   from background-color. */
.icon {
  display: inline-block;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
  background-color: var(--brown);
  width: 1.5em; height: 1.5em;
  vertical-align: middle;
  flex-shrink: 0;
}
.feature-icon .icon { width: 2.4rem; height: 2.4rem; }
.amenity-icon .icon { width: 2rem; height: 2rem; }
.badge .icon { width: .95rem; height: .95rem; }

.icon-bus      { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='3' width='22' height='13' rx='2'/%3E%3Cpath d='M1 9h22M8 3v6M16 3v6'/%3E%3Ccircle cx='7' cy='19' r='2'/%3E%3Ccircle cx='17' cy='19' r='2'/%3E%3Cpath d='M7 17H5v-1M17 17h2v-1M7 17h10'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='3' width='22' height='13' rx='2'/%3E%3Cpath d='M1 9h22M8 3v6M16 3v6'/%3E%3Ccircle cx='7' cy='19' r='2'/%3E%3Ccircle cx='17' cy='19' r='2'/%3E%3Cpath d='M7 17H5v-1M17 17h2v-1M7 17h10'/%3E%3C/svg%3E"); }
.icon-parking  { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M9 17V7h4a3 3 0 0 1 0 6H9'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M9 17V7h4a3 3 0 0 1 0 6H9'/%3E%3C/svg%3E"); }
.icon-key      { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7.5' cy='15.5' r='5.5'/%3E%3Cpath d='M21 2l-9.6 9.6M15.5 7.5l3 3'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7.5' cy='15.5' r='5.5'/%3E%3Cpath d='M21 2l-9.6 9.6M15.5 7.5l3 3'/%3E%3C/svg%3E"); }
.icon-mountain { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20l5-10 4 6 3-4 6 8H3z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20l5-10 4 6 3-4 6 8H3z'/%3E%3C/svg%3E"); }
.icon-kitchen  { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2v4M12 2v4M18 2v4M3 8h18v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8z'/%3E%3Cpath d='M9 12h6'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2v4M12 2v4M18 2v4M3 8h18v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8z'/%3E%3Cpath d='M9 12h6'/%3E%3C/svg%3E"); }
.icon-tv       { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='13' rx='2'/%3E%3Cpath d='M17 2l-5 5-5-5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='13' rx='2'/%3E%3Cpath d='M17 2l-5 5-5-5'/%3E%3C/svg%3E"); }
.icon-bath     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16a1 1 0 0 1 1 1v2a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4v-2a1 1 0 0 1 1-1z'/%3E%3Cpath d='M6 12V6a2 2 0 0 1 2-2h1a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16a1 1 0 0 1 1 1v2a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4v-2a1 1 0 0 1 1-1z'/%3E%3Cpath d='M6 12V6a2 2 0 0 1 2-2h1a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E"); }
.icon-heat     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v2M8 4l1 2M4 8l2 1M2 12h2M4 16l2-1M8 20l1-2M12 22v-2M16 20l-1-2M20 16l-2-1M22 12h-2M20 8l-2 1M16 4l-1 2'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v2M8 4l1 2M4 8l2 1M2 12h2M4 16l2-1M8 20l1-2M12 22v-2M16 20l-1-2M20 16l-2-1M22 12h-2M20 8l-2 1M16 4l-1 2'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E"); }
.icon-ski      { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17l7-7 4 4 7-7'/%3E%3Cpath d='M20 4h-4v4'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17l7-7 4 4 7-7'/%3E%3Cpath d='M20 4h-4v4'/%3E%3C/svg%3E"); }
.icon-wifi     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.55a11 11 0 0 1 14.08 0M1.42 9a16 16 0 0 1 21.16 0M8.53 16.11a6 6 0 0 1 6.95 0'/%3E%3Ccircle cx='12' cy='20' r='1' fill='%23fff'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.55a11 11 0 0 1 14.08 0M1.42 9a16 16 0 0 1 21.16 0M8.53 16.11a6 6 0 0 1 6.95 0'/%3E%3Ccircle cx='12' cy='20' r='1' fill='%23fff'/%3E%3C/svg%3E"); }
.icon-users    { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.icon-bed      { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4v16M22 4v16M2 12h20M2 8h8a2 2 0 0 1 2 2v2H2V8z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4v16M22 4v16M2 12h20M2 8h8a2 2 0 0 1 2 2v2H2V8z'/%3E%3C/svg%3E"); }
.icon-map      { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.icon-mail     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M22 7l-10 7L2 7'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M22 7l-10 7L2 7'/%3E%3C/svg%3E"); }
.icon-sofa     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v2'/%3E%3Cpath d='M2 10a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5H2v-5z'/%3E%3Cpath d='M4 15v3M20 15v3M7 15h10'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v2'/%3E%3Cpath d='M2 10a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5H2v-5z'/%3E%3Cpath d='M4 15v3M20 15v3M7 15h10'/%3E%3C/svg%3E"); }
.icon-tree     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2L4 15h16L12 2z'/%3E%3Cpath d='M12 15v7M9 22h6'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2L4 15h16L12 2z'/%3E%3Cpath d='M12 15v7M9 22h6'/%3E%3C/svg%3E"); }

/* footer icon white version (already white icons on dark bg, mask handles the shape) */
.icon-white { background-color: #fff; opacity: .6; }

/* ====== RESPONSIVE ====== */
@media (max-width: 1024px) {
  .apartments-grid { grid-template-columns: repeat(2,1fr); }
  .apt-detail-grid { grid-template-columns: 1fr; }
  .reservation-wrap { grid-template-columns: 1fr; }
  .location-wrap { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .nav-links { display: none; position: absolute; top: 64px; left: 0; right: 0; background: #fff; flex-direction: column; padding: 24px; gap: 20px; border-bottom: 1px solid var(--border); box-shadow: 0 8px 24px rgba(0,0,0,.08); z-index: 99; }
  .nav-links.open { display: flex; }
  .hamburger { display: flex; }
  .logo-img { height: 84px; max-width: 240px; }
  .footer-logo-img { height: 78px; }
  .features-grid { grid-template-columns: 1fr 1fr; }
  .feature-item { border-right: none; border-bottom: 1px solid var(--border); }
  .apartments-grid { grid-template-columns: 1fr; }
  .amenities-grid { grid-template-columns: 1fr 1fr; }
  .form-row.two-col { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .gallery-thumbs { grid-template-columns: repeat(4,1fr); }
  .cta-box { padding: 40px 24px; }
}
@media (max-width: 480px) {
  .hero-content h1 { font-size: 2rem; }
  .hero-actions { flex-direction: column; }
  .amenities-grid { grid-template-columns: 1fr; }
  .features-grid { grid-template-columns: 1fr; }
  .logo-img { height: 67px; max-width: 200px; }
  .trust-badges { gap: 24px; }
  .selection-dates { flex-direction: column; gap: 4px; }
}

.icon-phone { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 12a19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 3.6 1.3h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L7.91 9a16 16 0 0 0 6.1 6.1l1.06-1.06a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 12a19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 3.6 1.3h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L7.91 9a16 16 0 0 0 6.1 6.1l1.06-1.06a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }

/* Nav height increase for bigger logo */
.nav { min-height: 130px; padding: 16px 24px; }

/* White versions of icons for dark footer — always white regardless of theme color */
.icon-phone-w { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 12a19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 3.6 1.3h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L7.91 9a16 16 0 0 0 6.1 6.1l1.06-1.06a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 12a19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 3.6 1.3h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L7.91 9a16 16 0 0 0 6.1 6.1l1.06-1.06a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); background-color: #fff; }
.icon-mail-w  { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M22 7l-10 7L2 7'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M22 7l-10 7L2 7'/%3E%3C/svg%3E"); background-color: #fff; }
.icon-map-w   { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); background-color: #fff; }

/* Touch swipe improvements */
.gallery-wrap, .gallery-main { touch-action: pan-y pinch-zoom; user-select: none; }
.gallery-img { will-change: opacity; }
.gallery-thumbs { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.thumb { scroll-snap-align: start; }

/* ====== GUEST REVIEWS CAROUSEL ====== */
.reviews-section { padding: 88px 0; background: var(--beige); }
.reviews-carousel { max-width: 760px; margin: 0 auto; }
.reviews-slides { position: relative; min-height: 260px; }
.review-slide { display: none; animation: reviewFade .5s ease; }
.review-slide.active { display: block; }
@keyframes reviewFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.review-card { background: #fff; border-radius: var(--radius); padding: 44px 48px 36px; text-align: center; box-shadow: 0 12px 32px rgba(0,0,0,.06); border: 1px solid var(--border); }
.review-quote-mark { font-family: 'Playfair Display', serif; font-size: 3.5rem; color: var(--brown); line-height: 1; opacity: .5; margin-bottom: 0; }
.review-stars { color: var(--brown); font-size: 1.1rem; letter-spacing: 2px; margin-bottom: 14px; }
.review-text { font-size: 1.05rem; line-height: 1.75; color: var(--text); white-space: pre-line; margin-bottom: 24px; }
.review-footer { display: flex; align-items: center; justify-content: center; gap: 12px; }
.review-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--brown); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-family: 'Playfair Display', serif; font-size: 1.05rem; flex-shrink: 0; }
.review-meta { display: flex; flex-direction: column; align-items: flex-start; text-align: left; }
.review-author { font-weight: 700; font-size: .92rem; }
.review-country { font-weight: 400; color: var(--muted); font-size: .82rem; }
.review-dots { display: flex; justify-content: center; gap: 8px; margin-top: 28px; }
.review-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--border); border: none; cursor: pointer; padding: 0; transition: background .2s, transform .2s; }
.review-dot.active { background: var(--brown); transform: scale(1.25); }
@media (max-width: 768px) {
  .reviews-section { padding: 56px 0; }
  .review-card { padding: 32px 24px 28px; }
  .review-text { font-size: .95rem; }
}

/* ====== FLOATING REVIEWS + CTA WIDGET ====== */
.floating-reviews {
  position: fixed; z-index: 95; width: 280px; max-width: calc(100vw - 48px);
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius); padding: 20px 20px 18px;
  box-shadow: 0 16px 40px rgba(0,0,0,.14); opacity: 0; pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
}
.floating-reviews.pos-h-left  { left: 24px; right: auto; }
.floating-reviews.pos-h-right { right: 24px; left: auto; }
.floating-reviews.pos-v-top    { top: 96px; bottom: auto; transform: translateY(-10px) scale(.97); }
.floating-reviews.pos-v-top.visible    { transform: translateY(0) scale(1); }
.floating-reviews.pos-v-bottom { bottom: 24px; top: auto; transform: translateY(16px) scale(.97); transition: opacity .3s ease, transform .3s ease, bottom .25s ease; }
.floating-reviews.pos-v-bottom.visible { transform: translateY(0) scale(1); }
.floating-reviews.pos-v-bottom.stack-above-bar { bottom: 92px; }
.floating-reviews.pos-v-center { top: 50%; bottom: auto; transform: translateY(-50%) scale(.97); }
.floating-reviews.pos-v-center.visible { transform: translateY(-50%) scale(1); }
.floating-reviews.visible { opacity: 1; pointer-events: auto; }
.floating-reviews-close { position: absolute; top: 8px; right: 10px; background: none; border: none; font-size: 1.3rem; line-height: 1; color: var(--muted); cursor: pointer; padding: 4px; }
.floating-reviews-close:hover { color: var(--text); }
.floating-reviews-stars { color: var(--brown); font-size: .9rem; letter-spacing: 1.5px; margin-bottom: 8px; transition: opacity .25s ease; }
.floating-reviews-text { font-size: .86rem; line-height: 1.5; color: var(--text); margin-bottom: 10px; transition: opacity .25s ease; }
.floating-reviews-author { font-size: .76rem; color: var(--muted); margin-bottom: 14px; transition: opacity .25s ease; }
.floating-reviews.fading .floating-reviews-stars,
.floating-reviews.fading .floating-reviews-text,
.floating-reviews.fading .floating-reviews-author { opacity: 0; }
.floating-reviews-cta { display: block; width: 100%; text-align: center; padding: 10px 16px; font-size: .84rem; }
@media (max-width: 640px) {
  .floating-reviews.pos-h-left  { left: 12px; }
  .floating-reviews.pos-h-right { right: 12px; }
  .floating-reviews.pos-v-top    { top: 84px; }
  .floating-reviews.pos-v-bottom { bottom: 12px; }
  .floating-reviews { width: 240px; padding: 16px 16px 14px; }
}

/* ====== CALENDAR PRICE / UNPRICED STATE (v1_2) ====== */
.cal-day { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-height: 40px; cursor: pointer; transition: transform .1s; }
.cal-day:hover:not(.past):not(.booked):not(.unpriced):not(.empty) { transform: scale(1.07); }
.cal-day.past, .cal-day.booked, .cal-day.unpriced { cursor: default; }
.cal-price { font-size: .62rem; font-weight: 600; opacity: .8; line-height: 1; }
.cal-day-info { display: flex; flex-direction: column; align-items: center; gap: 0; }
.cal-day.unpriced { background: repeating-linear-gradient(45deg, #f2f2f2, #f2f2f2 4px, #e6e6e6 4px, #e6e6e6 8px); color: #999; }
.cal-day.selected { outline: 3px solid var(--brown); outline-offset: -3px; }

/* Discounted day: warm "special offer" treatment, distinct from the plain green .free state –
   final price shown large, original price small/struck-through, badge for the % itself. */
.cal-day.free.discounted { background: linear-gradient(155deg, #fff3e0, #ffe0b2); box-shadow: inset 0 0 0 1px #ffb74d; }
.cal-price-final { font-size: .74rem; font-weight: 800; line-height: 1.15; color: #bf360c; }
.cal-price-orig { font-size: .56rem; font-weight: 500; line-height: 1.1; color: #8d6e63; text-decoration: line-through; opacity: .85; }
.cal-discount-badge { font-size: .56rem; font-weight: 800; line-height: 1.3; color: #fff; background: #e65100; border-radius: 4px; padding: 0 4px; margin-top: 1px; }

/* ====== SELECTION SUMMARY (reservation calendar) ====== */
.selection-summary { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); }
.selection-dates { display: flex; gap: 24px; font-size: .88rem; margin-bottom: 8px; }
.sel-label { color: var(--muted); }
.selection-info { font-size: .85rem; font-weight: 600; color: var(--brown-dark); min-height: 1.3em; }
.selection-info.error { color: #c62828; }

/* ====== TRUST BADGES (Booking.com / Airbnb) ====== */
.trust-section { padding: 40px 0; background: linear-gradient(180deg, var(--beige) 0%, #fff 100%); }
.trust-badges { display: flex; justify-content: center; gap: 28px; flex-wrap: wrap; }
.trust-badge { display: flex; align-items: center; gap: 16px; background: #fff; border-radius: 16px; padding: 18px 28px; box-shadow: var(--shadow); border: 1px solid var(--border); border-top: 3px solid var(--brown); transition: transform .2s, box-shadow .2s; }
.trust-badge:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.trust-badge--booking { border-top-color: #003580; }
.trust-badge--airbnb { border-top-color: #FF385C; }
.trust-icon { font-size: 1.8rem; line-height: 1; flex-shrink: 0; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--beige); }
.trust-badge--booking .trust-icon { background: rgba(0,53,128,.08); }
.trust-badge--airbnb .trust-icon { background: rgba(255,56,92,.1); }
.trust-info { display: flex; flex-direction: column; gap: 2px; }
.trust-score-row { display: flex; align-items: baseline; gap: 8px; }
.trust-score { font-family: 'Playfair Display', serif; font-size: 1.9rem; font-weight: 700; color: var(--text); line-height: 1; }
.trust-stars { color: #f0a83c; font-size: .82rem; letter-spacing: 1px; }
.trust-platform { font-weight: 700; font-size: .9rem; }
.trust-caption { font-size: .78rem; color: var(--muted); }
.trust-badges-inline { justify-content: flex-start; gap: 16px; margin: 18px 0 22px; }
.trust-badges-inline .trust-badge { padding: 12px 18px; border-radius: 12px; }
.trust-badges-inline .trust-score { font-size: 1.3rem; }
.trust-badges-inline .trust-icon { width: 40px; height: 40px; font-size: 1.4rem; }

/* ====== DISCOUNT BANNER (top of page, toggled from admin) ====== */
.discount-banner { background: linear-gradient(90deg, var(--brown-dark), var(--brown)); color: #fff; text-align: center; font-size: .88rem; font-weight: 600; padding: 10px 16px; letter-spacing: .01em; }

/* ====== LANGUAGE SWITCHER ====== */
.lang-switch { display: flex; align-items: center; gap: 4px; margin: 0 4px; }
.lang-switch a { font-size: .78rem; font-weight: 700; color: var(--muted); padding: 4px 7px; border-radius: 5px; transition: background .15s, color .15s; }
.lang-switch a:hover { background: var(--beige2); }
.lang-switch a.active { background: var(--brown); color: #fff; }

/* ====== PRICE BREAKDOWN BOX ====== */
.price-breakdown { background: var(--beige); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; margin-bottom: 16px; font-size: .88rem; }
.pb-row { display: flex; justify-content: space-between; padding: 4px 0; color: var(--muted); }
.pb-row.pb-total { border-top: 1px solid var(--border); margin-top: 6px; padding-top: 10px; font-weight: 700; font-size: 1.05rem; color: var(--text); }
.pb-row.pb-discount-row { color: #2e7d32; font-weight: 600; }
.pb-note { font-size: .74rem; color: var(--muted); margin-top: 8px; }
.form-hint { font-size: .78rem; color: var(--muted); margin-top: 10px; text-align: center; }

/* ====== PAYMENT TERMS ====== */
.payment-terms { margin-top: 20px; border: 1px solid var(--border); border-radius: 10px; padding: 14px 18px; background: var(--beige); }
.payment-terms summary { cursor: pointer; font-weight: 600; font-size: .9rem; }
.payment-terms p { margin-top: 10px; font-size: .86rem; color: var(--muted); line-height: 1.6; }

/* ====== STICKY RESERVATION CTA ====== */
.sticky-cta { position: fixed; left: 0; right: 0; bottom: -80px; z-index: 90; background: rgba(255,255,255,.97); backdrop-filter: blur(8px); border-top: 1px solid var(--border); padding: 12px 20px; text-align: center; transition: bottom .25s ease; box-shadow: 0 -8px 24px rgba(0,0,0,.08); }
.sticky-cta.visible { bottom: 0; }
.sticky-cta .btn-primary { padding: 12px 28px; font-size: .9rem; }
