:root{--background:#fff;--foreground:#171717}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}html{height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;font-family:Arial,Helvetica,sans-serif;display:flex}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.public-shell{flex-direction:column;width:100%;min-height:100%;display:flex}.public-header{border-bottom:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem clamp(1rem,4vw,2rem);display:flex}.public-header__home-link{font-size:1.125rem;font-weight:700}.public-header a:focus-visible,.city-card__cta:focus-visible{outline-offset:2px;outline:2px solid}.public-header nav{gap:1rem;display:flex}.public-main{flex-direction:column;flex:1;gap:clamp(2rem,6vw,3rem);width:100%;padding:clamp(1rem,4vw,2rem);display:flex}.public-main>section{width:100%;max-width:60rem;margin:0 auto}.hero h1{margin-bottom:.75rem;font-size:clamp(1.5rem,4vw,2.25rem);line-height:1.2}.hero p{max-width:42rem;font-size:1.05rem}.cities-section h2{margin-bottom:1rem;font-size:1.4rem}.city-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:1rem;list-style:none;display:grid}.city-card{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);border-radius:.5rem;flex-direction:column;gap:.5rem;padding:1.25rem;display:flex}.city-card h3{font-size:1.15rem}.city-card__cta{margin-top:.5rem;font-weight:600;text-decoration:underline}.empty-state{border:1px dashed color-mix(in srgb, var(--foreground) 25%, transparent);border-radius:.5rem;padding:1.5rem}.empty-state__heading{margin-bottom:.5rem;font-weight:700}.trust-section ul{flex-direction:column;gap:.5rem;padding-left:1.25rem;list-style:outside;display:flex}.contact-section{color:color-mix(in srgb, var(--foreground) 80%, transparent);font-size:.95rem}.public-footer{border-top:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);text-align:center;padding:1rem clamp(1rem,4vw,2rem);font-size:.85rem}.breadcrumb{color:color-mix(in srgb, var(--foreground) 70%, transparent);font-size:.9rem}.breadcrumb a:focus-visible{outline-offset:2px;outline:2px solid}.city-header h1{margin-bottom:.75rem;font-size:clamp(1.5rem,4vw,2.25rem);line-height:1.2}.city-header p{max-width:42rem;font-size:1.05rem}.unit-section h2{margin-bottom:1rem;font-size:1.4rem}.unit-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:1rem;list-style:none;display:grid}.unit-card{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);border-radius:.5rem;flex-direction:column;gap:.4rem;padding:1.25rem;display:flex}.unit-card h3{font-size:1.15rem}.unit-card__area,.unit-card__guests,.unit-card__price{color:color-mix(in srgb, var(--foreground) 85%, transparent);font-size:.95rem}.unit-card__cta{margin-top:.5rem;font-weight:600;text-decoration:underline}.unit-card__cta:focus-visible{outline-offset:2px;outline:2px solid}.unit-header h1{font-size:clamp(1.5rem,4vw,2.25rem);line-height:1.2}.unit-gallery__list{grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));gap:.5rem;list-style:none;display:grid}.unit-gallery__item{aspect-ratio:4/3;border-radius:.5rem;overflow:hidden}.unit-gallery__item--featured{grid-area:span 2/span 2}.unit-gallery__image{object-fit:cover;width:100%;height:100%;display:block}.unit-details{flex-direction:column;gap:.5rem;display:flex}.unit-details__area{color:color-mix(in srgb, var(--foreground) 70%, transparent);font-size:.95rem}.unit-details__guests,.unit-details__sleeping{font-size:.95rem}.unit-amenities h2,.unit-policies h2{margin-bottom:.75rem;font-size:1.2rem}.unit-amenities__list{flex-direction:column;gap:.4rem;padding-left:1.25rem;list-style:outside;display:flex}.unit-price{font-size:1.15rem;font-weight:700}.unit-policies__list{flex-direction:column;gap:.4rem;font-size:.95rem;list-style:none;display:flex}.unit-availability h2,.unit-availability__remainder h3{margin-bottom:.75rem;font-size:1.2rem}.unit-availability__disclosure{margin-bottom:1rem;font-size:.95rem}.unit-availability__months{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem;display:grid}.availability-month{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.8rem}.availability-month caption{text-align:left;margin-bottom:.4rem;font-weight:700}.availability-month th,.availability-day{border:1px solid color-mix(in srgb, var(--foreground) 18%, transparent);text-align:center;vertical-align:top;padding:.35rem .2rem}.availability-day--past,.availability-day--outside{color:color-mix(in srgb, var(--foreground) 45%, transparent);background:color-mix(in srgb, var(--foreground) 7%, transparent)}.availability-day--occupied{font-weight:700;text-decoration:underline}.availability-day--available{font-weight:600}.unit-availability__remainder{margin-top:1rem}.unit-availability__remainder ul{padding-left:1.25rem}.booking-request h2{margin-bottom:.75rem;font-size:1.2rem}.booking-request__form{flex-direction:column;gap:.85rem;max-width:28rem;display:flex}.booking-request__field{flex-direction:column;gap:.3rem;display:flex}.booking-request__field label{font-size:.9rem;font-weight:600}.booking-request__field input{font:inherit;border:1px solid color-mix(in srgb, var(--foreground) 30%, transparent);background:var(--background);color:var(--foreground);border-radius:.375rem;width:100%;padding:.5rem .65rem}.booking-request__field input:focus-visible{outline-offset:1px;outline:2px solid}.booking-request__disclosure{color:color-mix(in srgb, var(--foreground) 70%, transparent);font-size:.85rem}.booking-request__submit{font:inherit;background:var(--foreground);color:var(--background);cursor:pointer;border:1px solid;border-radius:.375rem;align-self:flex-start;padding:.6rem 1.25rem;font-weight:600}.booking-request__submit:hover{opacity:.9}.booking-request__submit:focus-visible{outline-offset:2px;outline:2px solid}.booking-request__success{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);border-radius:.5rem;padding:1rem;line-height:1.5}.booking-request__error{border:1px solid color-mix(in srgb, var(--foreground) 40%, transparent);border-radius:.5rem;margin-bottom:.75rem;padding:.75rem 1rem;font-size:.95rem}
