@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;800&display=swap');

:root { --cream:#f4efe6; --sand:#ded0bd; --ink:#1d1b18; --muted:#6f685f; }
html { font-size:16px; scroll-behavior:smooth; }
body { font-family:Inter,system-ui,sans-serif; color:var(--ink); background:var(--cream); margin:0; }
.bg-cream { background:rgba(244,239,230,.95); backdrop-filter:blur(12px); }
.brand { display:inline-flex; align-items:center; padding:.25rem 0; }
.brand img { width:clamp(142px,18vw,210px); height:auto; display:block; }
.hero { min-height:92vh; display:flex; align-items:end; position:relative; color:white; background:linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.1)),url('/images/house.jpg') center/cover; }
.hero-content { position:relative; padding-bottom:8rem; max-width:920px; }
.hero h1,.page-hero h1 { font-size:clamp(2.5rem,7vw,6.5rem); line-height:.95; letter-spacing:-.06em; font-weight:800; }
.hero .lead { max-width:680px; font-size:clamp(1.1rem,2vw,1.45rem); }
.eyebrow { color:#8d6e43; font-weight:800; text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; }
.hero .eyebrow { color:#f7dfb7; }
.section { padding:clamp(4rem,8vw,8rem) 0; }
.top-offset { padding-top:9rem; }
.page-hero { padding:10rem 0 5rem; background:var(--sand); }
.compact h1 { max-width:900px; }
.feature-grid,.price-grid,.amenity-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.feature-grid div,.price-grid div,.amenity-grid div,.booking-form,.contact-card,.availability-calendar-card { background:#fffaf2; border:1px solid rgba(29,27,24,.08); border-radius:28px; padding:1.5rem; box-shadow:0 20px 50px rgba(30,25,18,.08); }
.feature-grid strong,.price-grid strong { display:block; font-size:1.7rem; }
.feature-grid span,.price-grid small { color:var(--muted); }
.gallery-grid { columns:1; column-gap:1rem; }
.gallery-grid a { display:block; break-inside:avoid; margin-bottom:1rem; }
.gallery-grid img { width:100%; border-radius:22px; box-shadow:0 16px 34px rgba(30,25,18,.12); }
.availability-list,.booked-row { display:grid; gap:.75rem; }
.booked-row { grid-template-columns:1fr auto; background:#fffaf2; border-radius:18px; padding:1rem; }
.availability-calendar-card .flatpickr-calendar { width:100%; background:transparent; box-shadow:none; }
.availability-calendar-card .flatpickr-rContainer,.availability-calendar-card .flatpickr-days,.availability-calendar-card .dayContainer { width:100%; max-width:none; min-width:0; }
.availability-calendar-card .flatpickr-day { color:var(--ink); border-radius:12px; max-width:none; }
.availability-calendar-card .flatpickr-day:hover,.availability-calendar-card .flatpickr-day:focus { background:var(--sand); border-color:var(--sand); }
.availability-calendar-card .flatpickr-day.today { border-color:#8d6e43; }
.availability-calendar-card .flatpickr-day.selected,.availability-calendar-card .flatpickr-day.startRange,.availability-calendar-card .flatpickr-day.endRange { background:var(--ink); border-color:var(--ink); color:white; }
.availability-calendar-card .flatpickr-day.inRange { background:rgba(141,110,67,.18); border-color:rgba(141,110,67,.18); box-shadow:-5px 0 0 rgba(141,110,67,.18),5px 0 0 rgba(141,110,67,.18); }
.availability-calendar-card .flatpickr-day.flatpickr-disabled,.availability-calendar-card .flatpickr-day.flatpickr-disabled:hover { color:#a55d4b; background:rgba(165,93,75,.1); text-decoration:line-through; cursor:not-allowed; }
.availability-legend { display:flex; flex-wrap:wrap; gap:1rem; color:var(--muted); font-size:.95rem; }
.availability-legend span { display:inline-flex; align-items:center; gap:.5rem; }
.availability-legend i { width:.9rem; height:.9rem; border-radius:999px; display:inline-block; }
.availability-legend .available { background:#d9ead3; }
.availability-legend .booked { background:rgba(165,93,75,.2); border:1px solid #a55d4b; }
.location-intro { max-width:820px; margin-bottom:2rem; }
.location-intro h2 { font-size:clamp(2rem,4vw,3.4rem); line-height:1; letter-spacing:-.04em; font-weight:800; }
.location-intro p { color:var(--muted); font-size:1.08rem; }
.nearby-grid { display:grid; gap:1.25rem; }
.nearby-card { display:grid; grid-template-columns:minmax(240px,34%) 1fr; overflow:hidden; background:#fffaf2; border:1px solid rgba(29,27,24,.08); border-radius:28px; box-shadow:0 20px 50px rgba(30,25,18,.08); }
.nearby-thumb { min-height:clamp(220px,24vw,310px); display:flex; align-items:end; padding:1.25rem; color:white; background:linear-gradient(135deg,#8d6e43,#1d1b18); position:relative; overflow:hidden; }
.nearby-thumb::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.34),transparent 34%),linear-gradient(180deg,transparent,rgba(0,0,0,.46)); }
.nearby-thumb img { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; transform:scale(1.01); }
.nearby-thumb span { position:relative; font-weight:800; font-size:1.65rem; letter-spacing:-.04em; }
.nearby-image-milomlyn { object-position:center 52%; }
.nearby-image-ostroda { object-position:center 48%; }
.nearby-image-katno { object-position:center 50%; }
.nearby-image-stegna { object-position:center 56%; }
.nearby-thumb-lake { background:linear-gradient(135deg,#7fa68f,#2f5f72); }
.nearby-thumb-harbor { background:linear-gradient(135deg,#7b9ab8,#2c3f57); }
.nearby-thumb-forest { background:linear-gradient(135deg,#8aa36a,#31533b); }
.nearby-thumb-sea { background:linear-gradient(135deg,#78b7c8,#c99f61); }
.nearby-content { padding:clamp(1.4rem,3vw,2.25rem); display:flex; flex-direction:column; justify-content:center; }
.nearby-content h2 { font-size:clamp(1.45rem,3vw,2.2rem); line-height:1.08; letter-spacing:-.04em; font-weight:800; margin:.35rem 0 .75rem; }
.nearby-content p { color:var(--muted); margin:0; font-size:1.02rem; }
.nearby-meta { color:#8d6e43; font-weight:800; text-transform:uppercase; letter-spacing:.12em; font-size:.76rem; }
.narrow { max-width:760px; }
.footer-section { background:var(--ink); color:white; padding:4rem 0; }
.footer-section a { color:white; }
.footer-logo { width:min(240px,80vw); height:auto; margin-bottom:1rem; filter:drop-shadow(0 10px 18px rgba(0,0,0,.22)); }
@media (min-width:768px) { .gallery-grid { columns:2; } }
@media (min-width:1100px) { .gallery-grid { columns:3; } }
@media (max-width:991px) { .feature-grid,.price-grid,.amenity-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:767px) { .nearby-card { grid-template-columns:1fr; } .nearby-thumb { min-height:clamp(210px,58vw,320px); } }
@media (max-width:575px) { .feature-grid,.price-grid,.amenity-grid { grid-template-columns:1fr; } .hero { min-height:84vh; } }
.price-grid.price-grid-single { grid-template-columns:1fr; }
.admin-card { background:#fffaf2; border:1px solid rgba(29,27,24,.08); border-radius:22px; padding:1.5rem; box-shadow:0 12px 32px rgba(30,25,18,.07); }
.admin-card + .admin-card { margin-top:1rem; }
.admin-card-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:1rem; flex-wrap:wrap; gap:.5rem; }
.admin-card-label { font-size:.78rem; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; font-weight:500; margin-bottom:.15rem; }
.admin-card-value { font-size:.95rem; word-break:break-word; }
.admin-badge { display:inline-block; padding:.25rem .7rem; border-radius:999px; font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.admin-badge-pending { background:#fff3cd; color:#664d03; }
.admin-badge-confirmed { background:#d1e7dd; color:#0f5132; }
.admin-badge-cancelled { background:#e2e3e5; color:#41464b; }
.admin-badge-blocked { background:var(--ink); color:white; }
