
/* ====== 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;
  --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; }

/* ====== 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: #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); }
.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 ====== */
.icon {
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  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; }

/* Color: #bd966f encoded as %23bd966f */
.icon-bus      { background-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='%23bd966f' 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  { background-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='%23bd966f' 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      { background-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='%23bd966f' 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 { background-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='%23bd966f' 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  { background-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='%23bd966f' 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       { background-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='%23bd966f' 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     { background-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='%23bd966f' 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     { background-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='%23bd966f' 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      { background-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='%23bd966f' 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     { background-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='%23bd966f' 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='%23bd966f'/%3E%3C/svg%3E"); }
.icon-users    { background-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='%23bd966f' 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      { background-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='%23bd966f' 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      { background-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='%23bd966f' 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     { background-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='%23bd966f' 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     { background-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='%23bd966f' 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     { background-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='%23bd966f' 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 */
.icon-white { filter: brightness(0) invert(1); 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; }
}

.icon-phone { background-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='%23bd966f' 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 */
.icon-phone-w { background-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='%23ffffff' 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"); }
.icon-mail-w  { background-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='%23ffffff' 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-map-w   { background-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='%23ffffff' 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"); }

/* 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; }
