:root{color-scheme:light}*,*:before,*:after{box-sizing:border-box}body{margin:0}:root{--surface: #f4f6f8;--surface-strong: #ffffff;--surface-muted: #eef2f6;--ink: #0f172a;--ink-muted: #475569;--slate: #1f2937;--navy: #0b1b2b;--accent: #1d4ed8;--accent-strong: #0f2a6b;--accent-soft: #e8eefc;--gold: #c6a05a;--gold-soft: #ead8b0;--border-soft: rgba(15, 23, 42, .12);--border-strong: rgba(15, 23, 42, .2);--text-main: var(--ink);--text-muted: var(--ink-muted)}.site-root{min-height:100vh;display:flex;flex-direction:column;background:var(--surface);color:var(--text-main);font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif}main{flex:1}h1,h2,h3,.site-logo{font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif}.site-header{position:sticky;top:0;z-index:10;background:#0b1b2bf5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#e5e7eb}.site-header-inner{max-width:1120px;margin:0 auto;padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.site-logo{font-weight:600;letter-spacing:.08em;font-size:.92rem;text-transform:uppercase}.site-nav{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.site-nav a{font-size:.9rem;text-decoration:none;color:#f9fafb;opacity:.9;transition:opacity .15s ease,transform .15s ease}.site-nav a.is-active{opacity:1;font-weight:700}.site-nav a:hover{opacity:1;transform:translateY(-1px)}.nav-open{overflow:hidden}.header-cta{display:none}.nav-cta{padding:.4rem .9rem;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:#1d4ed838;color:#f8fafc;font-weight:600}.site-brand{display:flex;flex-direction:column;line-height:1.05;text-decoration:none}.site-brand-name{font-family:Manrope,system-ui,sans-serif;font-weight:700;font-size:1.05rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}.site-brand-name{position:relative}.site-brand-name:after{content:"";display:block;width:36px;height:2px;margin-top:4px;background:var(--gold-soft);border-radius:2px}.site-brand-strap{margin-top:2px;font-family:DM Sans,system-ui,sans-serif;font-size:.9rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#cbd5f5}.site-brand-strap{transform:translate(2px)}.menu-toggle{display:none;width:42px;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:inherit;align-items:center;justify-content:center;gap:6px;flex-direction:column;padding:10px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.menu-toggle span{width:100%;height:2px;background:#f9fafb;border-radius:2px;transition:transform .2s ease,opacity .2s ease}.menu-toggle.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-toggle.is-open span:nth-child(2){opacity:0}.menu-toggle.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.header-cta{display:inline-flex;white-space:nowrap}.nav-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;pointer-events:none}.floating-cta{position:fixed;right:1rem;bottom:1rem;z-index:12;display:none;align-items:center;justify-content:center;padding:.75rem 1.1rem;border-radius:999px;background:var(--accent);color:#fff;text-decoration:none;font-weight:600;box-shadow:0 14px 30px #1d4ed866;border:1px solid rgba(255,255,255,.2)}.floating-cta:hover{background:#1e40af}.hero{position:relative;color:var(--ink);background-image:linear-gradient(120deg,#0b1b2bd1,#1d4ed859,#f8fafcd9),url(/images/morriscastle-hero.jpg);background-size:cover;background-position:center;background-attachment:fixed}.hero-inner{max-width:1120px;margin:0 auto;padding:3.25rem 1.5rem 3rem;display:grid;grid-template-columns:1fr;align-items:start}.hero-panel{position:relative;max-width:680px;border-radius:1.75rem;padding:1.6rem 1.75rem 1.35rem;overflow:hidden;background:#ffffffc7;border:1px solid rgba(255,255,255,.6);box-shadow:0 18px 55px #0f172a38;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hero-panel-glass{position:absolute;left:0;top:0;height:32px;width:100%;background:linear-gradient(to bottom,#fff9,#ffffff0d);pointer-events:none}.hero-panel>*{position:relative;z-index:1}.hero-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:999px;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;background:#0f172a14;color:#0f172a}.hero-title{margin:.55rem 0 .65rem;font-size:clamp(1.65rem,1.4vw + 1rem,2.1rem);line-height:1.12;color:var(--ink);letter-spacing:-.02em}.hero-subtitle{margin-bottom:1.1rem;max-width:34rem;font-size:.98rem;color:#334155}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:.9rem}.hero-note{font-size:.85rem;color:#475569}.hero h1{font-size:clamp(1.45rem,1.6vw + .9rem,1.9rem);line-height:1.25;font-weight:500;white-space:normal;word-break:keep-all;max-width:34rem;overflow-wrap:break-word;color:var(--gold)}@media (max-width: 768px){.hero-inner{padding:2.5rem 1.2rem}.hero-panel{padding:1.35rem 1.25rem 1.15rem;max-width:100%}.hero-panel-glass{height:80px}}.section{padding:3rem 1.5rem;background:var(--surface)}.section-alt{background:var(--surface-strong)}.section-inner{max-width:1120px;margin:0 auto}.section h2{font-size:1.7rem;margin-bottom:.35rem;color:var(--gold)}.section-intro{max-width:40rem;margin-top:0;margin-bottom:1.1rem;color:var(--text-muted)}.section-intro-wide{max-width:none}.resident-area-page{background:var(--surface-strong)}.resident-auth-card,.resident-panel{border-radius:1.4rem;background:var(--surface-strong);border:1px solid var(--border-soft);box-shadow:0 18px 40px #0f172a14}.resident-auth-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,.75fr);gap:1.5rem;padding:1.5rem;margin-top:1.5rem}.resident-auth-copy h2,.resident-panel h2,.resident-panel h3{margin:0;color:var(--ink)}.resident-auth-copy p,.resident-panel p{color:var(--text-muted)}.resident-eyebrow{display:inline-flex;margin-bottom:.7rem;padding:.28rem .65rem;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.resident-auth-form{display:grid;gap:1rem;align-content:start}.resident-field{display:grid;gap:.45rem}.resident-field span,.resident-summary-grid dt{font-size:.82rem;font-weight:600;color:var(--text-muted)}.resident-input{min-height:48px;padding:.8rem .95rem;border-radius:.95rem;border:1px solid var(--border-soft);background:#fff;color:var(--ink);font:inherit}.resident-input:focus{outline:none;border-color:#1d4ed859;box-shadow:0 0 0 3px #1d4ed81f}.resident-auth-error{margin:0;color:#b91c1c;font-size:.9rem}.resident-auth-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;align-items:center}.resident-inline-button{cursor:pointer}.resident-dashboard{display:grid;gap:1.5rem}.resident-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:1.25rem}.resident-panel{padding:1.35rem}.resident-summary-intro{margin:.85rem 0 1.2rem}.resident-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem;margin:0}.resident-summary-grid--single{grid-template-columns:1fr}.resident-summary-grid--account{margin-top:1rem;row-gap:1.1rem}.resident-summary-grid div{display:grid;gap:.28rem}.resident-summary-grid dd{margin:0;color:var(--ink);font-weight:600}.resident-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.resident-action-card{display:grid;gap:.85rem;align-content:start}.resident-action-link{width:fit-content;text-decoration:none}.resident-bookings-stack{display:grid;gap:.8rem;margin-top:1rem}.resident-bookings-empty{margin:.9rem 0 0}.resident-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.resident-section-copy{margin:.4rem 0 0}.resident-list-section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.resident-segmented-control{display:inline-flex;align-items:center;gap:.375rem;margin-top:1rem;padding:0;border:0;background:transparent;box-shadow:none}.resident-segmented-control__item{min-height:2.2rem;padding:.45rem .9rem;border:0;border-radius:999px;background:transparent;color:var(--text-muted);font-size:.92rem;font-weight:600;line-height:1;cursor:pointer;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease}.resident-segmented-control__item:hover{background:#1d4ed814;color:var(--ink)}.resident-segmented-control__item.is-active{background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:#fff;box-shadow:0 10px 24px #0b1f342e}.resident-booking-list-item{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.9rem;border:1px solid var(--border-soft);border-radius:1rem;background:#fff;padding:.95rem 1rem}.resident-visitor-list-item{align-items:stretch}.resident-booking-list-main{min-width:0;display:grid;gap:.25rem}.resident-booking-list-header{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.resident-booking-list-header h4,.resident-booking-list-main p,.resident-booking-list-attendees{margin:0}.resident-booking-list-header h4{color:var(--ink)}.resident-booking-list-attendees{color:var(--text-muted);font-size:.92rem;white-space:nowrap}.resident-booking-list-side{margin-left:auto;min-width:142px;display:flex;flex-direction:column;align-items:flex-end;gap:.45rem}.resident-booking-list-action{border:0;background:transparent;padding:0;color:var(--accent-strong);font-size:.82rem;font-weight:600;line-height:1.2;cursor:pointer}.resident-booking-list-action:hover{text-decoration:underline}.resident-booking-list-action--placeholder{min-height:.98rem;cursor:default}.resident-booking-status{display:inline-flex;align-items:center;justify-content:center;padding:.28rem .65rem;border-radius:999px;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.resident-booking-status--confirmed{background:#dcfce7;color:#166534}.resident-booking-status--requested{background:#fef3c7;color:#92400e}.resident-booking-status--declined{background:#fee2e2;color:#991b1b}.resident-booking-status--waitlisted{background:#e0f2fe;color:#0c4a6e}.resident-booking-status--cancelled{background:#e5e7eb;color:#475569}@media (max-width: 900px){.resident-auth-card,.resident-dashboard-grid,.resident-actions-grid{grid-template-columns:1fr}}@media (max-width: 640px){.resident-auth-card,.resident-panel{padding:1.2rem}.resident-auth-actions{flex-direction:column;align-items:stretch}.resident-summary-grid{grid-template-columns:1fr}.resident-topbar{flex-direction:column;align-items:flex-start}.resident-section-header,.resident-subsection-header,.resident-list-section-header{flex-direction:column;align-items:stretch}.resident-booking-list-side{width:100%;min-width:0;margin-left:0;align-items:flex-start}.resident-repeatable-grid,.resident-repeatable-grid--two,.resident-visitor-dates-grid,.resident-visitors-date-row,.resident-compact-grid--visitors,.resident-compact-grid--parking{grid-template-columns:1fr}.resident-compact-grid-head{display:none}.resident-inline-remove{width:100%}}.residents-page{background:var(--surface-strong)}.residents-page .section,.residents-page .section-alt{background:transparent}.residents-login-inner .section-intro{max-width:none}.resident-login-page{background:var(--surface-strong)}.resident-login-page .section,.resident-login-page .section-alt{background:transparent}.resident-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.resident-subsection{display:grid;gap:1.25rem}.resident-subsection--compact{gap:1.25rem}.resident-subsection-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.resident-repeatable-stack{display:grid;gap:.8rem}.resident-repeatable-card{display:grid;gap:.8rem;border:1px solid var(--border-soft);border-radius:1rem;background:#fff;padding:.95rem 1rem}.resident-repeatable-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.resident-repeatable-grid--two,.resident-visitor-dates-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resident-visitors-form,.resident-visitors-main{gap:1.25rem}.resident-visitors-date-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.7rem;align-items:end}.resident-inline-check{display:inline-flex;align-items:center;gap:.55rem;min-height:48px;padding-bottom:.2rem;color:var(--ink);font-size:.92rem}.resident-inline-check input{margin:0}.resident-compact-grid{display:grid;gap:.75rem}.resident-compact-grid--visitors{grid-template-columns:minmax(0,1.15fr) minmax(0,1.15fr) minmax(0,1fr) 2rem}.resident-compact-grid--parking{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 2rem}.resident-compact-grid-head{font-size:.85rem;font-weight:400;color:var(--text-muted)}.resident-compact-grid-head--action{visibility:hidden}.resident-compact-grid-row{display:contents}.resident-compact-input{min-height:40px;padding:.58rem .75rem}.resident-visitors-modal .form-field{gap:.4rem;margin-bottom:0}.resident-visitors-modal .form-field>span,.resident-inline-check span{font-size:.85rem;font-weight:400;color:var(--text-muted)}.resident-inline-remove{width:2rem;height:2.5rem;border:1px solid var(--border-soft);border-radius:.8rem;background:#fff;color:var(--text-muted);font-size:1.1rem;line-height:1;cursor:pointer}.resident-inline-add{width:2rem;height:2rem;border:1px solid rgba(29,78,216,.2);border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:1.1rem;line-height:1;cursor:pointer}.resident-inline-row-action{align-self:end}.resident-inline-link{border:none;background:transparent;padding:0;color:var(--accent-strong);font:inherit;font-size:.9rem;font-weight:600;cursor:pointer}.resident-inline-remove:disabled{cursor:not-allowed;opacity:.45}.resident-inline-add:disabled,.resident-inline-link:disabled{cursor:not-allowed;opacity:.45}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem;margin-top:1.25rem}.activities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card{border-radius:1.1rem;background:var(--surface-strong);border:1px solid var(--border-soft);padding:1.35rem;box-shadow:0 14px 32px #0f172a1a}.activity-card{display:flex;gap:1.15rem;align-items:stretch}.activity-card-media{position:relative;flex:0 0 180px;min-height:220px;border-radius:1rem;overflow:hidden;align-self:stretch;background:linear-gradient(180deg,#e9edf3,#dde5ef)}.activity-card-media img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.activity-card-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;padding:1rem;background:linear-gradient(180deg,#0f172a0a,#0f172a38),linear-gradient(135deg,#eef3f8,#dce6f1)}.activity-card-placeholder span{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;background:#ffffffd1;color:#334155;font-size:.76rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.activity-card .activity-card-body{flex:1;display:flex;flex-direction:column;gap:.7rem}.activity-card-content{display:flex;flex:1;flex-direction:column;gap:.5rem}.activity-card-title{margin:0;font-size:1.08rem;font-weight:600;color:var(--ink);line-height:1.25}.activity-card-description{margin:0;font-size:.95rem;line-height:1.6;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(1.6em * 3)}.activity-card-info{display:flex;flex-direction:column;gap:.6rem;margin-top:.15rem}.activity-card-meta,.activity-card-schedule{margin:0;font-size:.93rem;color:var(--text-muted);line-height:1.5}.activity-card-meta{min-height:1.5em}.activity-card-schedule-block{display:flex;flex-direction:column;gap:.35rem;min-height:4.9rem}.activity-card-schedule{min-height:1.5em}.activity-card-next-session{display:grid;gap:.18rem;margin-top:.15rem}.activity-card-next-session-status,.activity-card-next-session-note{margin:0;line-height:1.45}.activity-card-next-session-status{font-size:.92rem;color:var(--ink)}.activity-card-next-session-note{font-size:.82rem;color:var(--text-muted)}.activity-card-weekdays{display:flex;align-items:center;gap:.5rem;margin-top:.25rem;min-height:1.35rem}.activity-card-weekdays--empty{margin-top:0}.activity-card-day{width:1.35rem;height:1.35rem;display:flex;align-items:center;justify-content:center;border-radius:999px;font-size:11px;font-weight:500;color:#94a3b8;background:#94a3b814}.activity-card-day--active{background:#0f172a;color:#fff}.activity-card-action{align-self:flex-start;margin-top:auto}@media (max-width: 900px){.activities-grid{grid-template-columns:1fr}.activity-card{flex-direction:column}.activity-card-media{flex:0 0 auto;width:100%;min-height:190px;height:190px}}.section-alt .card{background:#fff}.card h3{margin-top:0;margin-bottom:.4rem;font-size:1.05rem;color:var(--ink)}.card p{margin:0;font-size:.95rem;color:var(--text-muted)}.card-image{width:100%;height:210px;border-radius:0;object-fit:cover;margin-bottom:.75rem;display:block}.card-clickable{cursor:pointer;transition:transform .2s ease,box-shadow .25s ease}.card-clickable:hover{transform:translateY(-6px);box-shadow:0 18px 40px #32323226}.card-tag{display:inline-block;margin-bottom:.15rem;padding:.34rem .78rem;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.02em}.tag-available{background:#1d4ed81f;color:#1e3a8a}.tag-waitlist{background:#0f172a1a;color:#0f172a}.tag-season{background:#3b82f62e;color:#1e3a8a}.two-column{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.5rem;align-items:flex-start}.feature-list{margin:0;padding-left:1.2rem;color:var(--text-muted)}.feature-list li+li{margin-top:.35rem}.section-note{font-size:.93rem;color:var(--text-muted)}.map-placeholder{border-radius:.9rem;border:1px dashed rgba(148,163,184,.7);min-height:190px;display:flex;align-items:center;justify-content:center;font-size:.9rem;color:#64748b;background:var(--surface-muted)}.highlights-tiles .section-intro{margin-top:.6rem}.highlights-tiles-grid{margin-top:1.6rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem;align-items:start}.highlight-tile{background:transparent}.highlight-media{position:relative;border-radius:0;overflow:hidden;box-shadow:0 18px 45px #0f172a1f}.highlight-media img{width:100%;height:240px;object-fit:cover;display:block;border-radius:0}.highlight-pill{position:absolute;top:.85rem;left:.85rem;padding:.35rem .7rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.04em;background:#0f172ac7;color:#f8fafc;border:1px solid rgba(255,255,255,.18)}.highlight-tile h3{margin:.95rem 0 .35rem;font-size:1.05rem;color:var(--ink)}.highlight-tile p{margin:0;color:#475569;line-height:1.5;max-width:38ch}@media (max-width: 900px){.highlights-tiles-grid{grid-template-columns:1fr}.highlight-media img{height:260px}.highlight-tile p{max-width:none}}.map-visual iframe{background:#f8fafc}.experience-section{background:var(--surface-strong)}.experience-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;margin-top:2rem}.experience-tile{position:relative;border-radius:0;overflow:hidden;background:#e5e7eb;aspect-ratio:3 / 4;box-shadow:0 16px 38px #94a3b847;opacity:0;transform:translateY(18px) scale(.98);transition:opacity .45s ease-out,transform .45s ease-out,box-shadow .28s ease}.experience-tile.experience-visible{opacity:1;transform:translateY(0) scale(1)}.experience-tile:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 20px 45px #94a3b859}.experience-image{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}.experience-overlay{position:absolute;inset:auto 0 0 0;padding:.6rem .7rem;background:linear-gradient(to top,rgba(15,23,42,.75),rgba(15,23,42,.3),transparent);color:#f9fafb}.experience-label{margin:0 0 .1rem;font-size:.8rem;font-weight:600}.experience-caption{margin:0;font-size:.78rem;opacity:.9}.location-section{background:var(--surface-strong)}.location-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:2.5rem;align-items:start}.location-copy h2{margin:0 0 .75rem}.location-copy .section-intro{margin:0 0 1.6rem;max-width:46rem}.location-copy p{margin-bottom:.85rem}.travel-pills{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 .75rem}.travel-pill{font-size:.8rem;padding:.35rem .7rem;border-radius:999px;background:#1d4ed81f;color:#1e3a8a;font-weight:500}.location-note{font-size:.8rem;color:var(--text-muted);margin-bottom:.9rem}.location-map{align-self:start}.map-card{width:100%;max-width:360px;border-radius:1.2rem;border:1px solid rgba(148,163,184,.3);background:radial-gradient(circle at top,#edf2ff 0,#e6ebf2 55%,#f9fafb);padding:1.2rem 1.25rem 1.1rem;box-shadow:0 16px 36px #0f172a26}.map-card-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.8rem}.map-card-header h3{margin:0;font-size:1rem;color:var(--ink)}.map-card-header p{margin:0;font-size:.85rem;color:var(--text-muted)}.map-pin{width:32px;height:32px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#1d4ed8;color:#fff;font-size:1.1rem}.map-visual{border-radius:.9rem;border:1px dashed rgba(148,163,184,.8);min-height:150px;display:flex;align-items:center;justify-content:center;font-size:.85rem;color:#4b5563;background:#ffffffd9;margin-bottom:.75rem}.map-link{display:inline-flex;align-items:center;font-size:.85rem;text-decoration:none;font-weight:500;color:var(--ink)}.map-link:after{content:"↗";margin-left:.25rem;font-size:.9rem}@media (max-width: 768px){.location-grid{grid-template-columns:minmax(0,1fr)}.location-map{justify-content:flex-start}.map-card{max-width:100%}}.things-section{background:var(--surface)}.things-scroller{margin-top:1.6rem;overflow-x:auto;padding-bottom:.5rem;-webkit-overflow-scrolling:touch}.things-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,280px);gap:1rem}@media (min-width: 900px){.things-scroller{overflow:visible}.things-grid{grid-auto-flow:initial;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}.thing-card{border-radius:1.1rem;background:#fff;padding:1.2rem 1.15rem 1.1rem;box-shadow:0 14px 32px #0f172a2e;border:1px solid var(--border-soft);display:flex;flex-direction:column;justify-content:space-between;min-height:190px}.thing-header{display:flex;align-items:flex-start;gap:.6rem;margin-bottom:.5rem}.thing-thumb{width:64px;height:64px;border-radius:0;object-fit:cover;flex-shrink:0;border:1px solid rgba(148,163,184,.25);box-shadow:0 8px 20px #94a3b840}.thing-header h3{margin:0;font-size:1rem;color:var(--ink)}.thing-meta{margin:.1rem 0 0;font-size:.8rem;color:var(--text-muted)}.thing-description{margin:.4rem 0 .8rem;font-size:.9rem;color:var(--text-muted)}.thing-tags{display:flex;flex-wrap:wrap;gap:.35rem}.thing-tag{font-size:.75rem;padding:.25rem .6rem;border-radius:999px;font-weight:600;letter-spacing:.02em}.tag-family{background:#1d4ed81f;color:#1e3a8a}.tag-outdoors{background:#0f172a14;color:#0f172a}.tag-daytrip{background:#1e40af2e;color:#1e3a8a}.tag-food{background:#0f172a1a;color:#111827}.tag-convenience{background:#94a3b840;color:#111827}.tag-relax{background:#1d4ed81f;color:#1e3a8a}.tag-rainy{background:#0f172a1a;color:#1e3a8a}.reviews-section{background:var(--surface-strong)}.reviews-scroller{margin-top:1.6rem;overflow-x:auto;overflow-y:hidden;padding-bottom:.6rem;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.reviews-track{display:flex;gap:1.1rem;padding-right:2rem}.review-card{scroll-snap-align:start;flex:0 0 280px;border-radius:1.1rem;background:#fff;padding:1.25rem 1.2rem 1.1rem;box-shadow:0 14px 32px #0f172a2e;border:1px solid var(--border-soft);display:flex;flex-direction:column;justify-content:space-between;min-height:175px;position:relative}.review-stars{font-size:.9rem;color:#f59e0b;margin-bottom:.45rem}.review-text{margin:0 0 .8rem;font-size:.92rem;color:var(--text-main);line-height:1.35}.review-meta{margin:0;font-size:.8rem;color:var(--text-muted)}.contact-form{margin-top:1.5rem;border-radius:1.1rem;border:1px solid var(--border-strong);background:var(--surface-strong);padding:1.6rem;box-shadow:0 10px 30px #0f172a2e}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.form-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1rem}.form-field label{font-size:.85rem;font-weight:500;color:#374151}.form-field input,.form-field select,.form-field textarea{border-radius:.65rem;border:1px solid #d1d5db;padding:.5rem .65rem;font:inherit;outline:none;background:#fff}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px #1d4ed880}.form-submit{margin-top:.25rem}.resident-login-actions{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.75rem}.form-note{margin-top:.5rem;font-size:.82rem;color:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn-primary,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.2rem;border-radius:999px;border:none;font-size:.9rem;text-decoration:none;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,border-color .12s ease}.btn-primary{background:var(--accent);color:#fff;font-weight:600;box-shadow:0 12px 30px #1d4ed866}.btn-primary:hover{background:#1e40af;transform:translateY(-1px);box-shadow:0 16px 36px #1e40af73}.btn-secondary{background:var(--accent-soft);color:var(--accent-strong);font-weight:500;border:1px solid rgba(29,78,216,.25);box-shadow:0 10px 24px #1d4ed82e}.btn-secondary:hover{background:#dbe6ff;transform:translateY(-1px)}.btn-danger{background:#dc26261f;color:#b91c1c;font-weight:600;border:1px solid rgba(220,38,38,.3);box-shadow:0 10px 22px #dc26261f}.btn-danger:hover{background:#dc262633;transform:translateY(-1px)}.btn-small{padding:.45rem .9rem;font-size:.82rem}.btn-disabled,.btn-disabled:hover,.btn-disabled:focus{background:var(--surface-muted);color:#64748b;border:1px solid var(--border-soft);box-shadow:none;cursor:not-allowed;opacity:.88}.admin-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem}.admin-hero-actions{margin-top:.2rem;display:flex;flex-wrap:wrap;gap:.75rem}.admin-form{margin-top:1.2rem}.admin-list{display:flex;flex-direction:column;gap:1.2rem}.admin-card{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:1rem;align-items:stretch}.admin-card--no-image{grid-template-columns:1fr}.admin-card-media{border-radius:.9rem;overflow:hidden;min-height:120px}.admin-card-media img{width:100%;height:100%;object-fit:cover;display:block}.admin-card-body{display:flex;flex-direction:column;gap:.35rem}.admin-image-preview{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.admin-image-preview img{width:140px;height:100px;object-fit:cover;border-radius:.75rem;border:1px solid var(--border-soft)}.admin-radio-group{display:flex;flex-wrap:wrap;gap:.75rem}.admin-radio{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--text-main);cursor:pointer}.admin-day-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:.5rem}.admin-day{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .6rem;border-radius:999px;border:1px solid #d1d5db;background:#fff;font-size:.85rem;color:var(--text-muted);cursor:pointer}.admin-day input{margin:0}.admin-day input:checked+span{color:var(--ink);font-weight:600}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:40}.modal-card{width:min(880px,100%);max-height:90vh;overflow-y:auto;border-radius:1.1rem;background:var(--surface-strong);padding:1.6rem;box-shadow:0 20px 50px #0f172a59}.modal-card.bookings-modal{height:min(86vh,620px);max-height:none;display:flex;flex-direction:column}.bookings-grid{margin-top:.65rem;display:grid;grid-template-columns:1fr;gap:.5rem;overflow-y:auto;flex:1;min-height:0}.admin-modal-meta{margin-top:.7rem;margin-bottom:.7rem}.bookings-modal-layout{display:grid;grid-template-columns:30% 1fr;gap:1.5rem;align-items:start}.bookings-modal-bookings{min-height:0;display:flex;flex-direction:column}.admin-modal-meta .section-note{margin-bottom:.3rem}.booking-calendar-wrapper{margin-top:.4rem;display:grid;gap:.9rem;max-width:320px}.booking-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.booking-calendar-month-title{margin:0;text-align:center;width:100%;color:var(--text-main);font-size:.95rem;font-weight:600}.booking-calendar-nav-button{width:2.25rem;min-height:2rem;padding:0}.booking-calendar-month{color:var(--text-main)}.booking-calendar-month .booking-calendar-grid:first-of-type{margin-top:0}.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.booking-calendar-weekdays{color:var(--text-muted);margin-bottom:.2rem}.booking-calendar-weekday{text-align:center;font-size:.72rem;font-weight:600;color:var(--text-muted)}.booking-calendar-day{position:relative;width:100%;min-height:1.95rem;border-radius:.55rem;border:1px solid var(--border-soft);background:#fff;padding:0;font-size:.76rem;color:#9ca3af;display:inline-flex;align-items:center;justify-content:center;cursor:default}.booking-calendar-day--has-availability{color:var(--text-main);cursor:pointer}.booking-calendar-day--has-availability:hover:not(:disabled){border-color:#93c5fd;background:#eff6ff}.booking-calendar-day--selected{border-color:#3b82f6;color:#1d4ed8;background:#dbeafe}.booking-calendar-day:disabled{opacity:.45}.booking-calendar-dot{width:.34rem;height:.34rem;border-radius:999px;position:absolute;bottom:.28rem;background:#9ca3af}.booking-calendar-dot--green{background:#16a34a}.booking-calendar-dot--orange{background:#f59e0b}.booking-calendar-dot--red{background:#ef4444}.booking-calendar-day--selected .booking-calendar-dot{box-shadow:0 0 0 2px #2563eb40}@media (max-width: 680px){.bookings-modal-layout{grid-template-columns:1fr}.booking-calendar-wrapper{max-width:100%}}.booking-row{display:grid;grid-template-columns:5rem 1fr auto;align-items:center;gap:.5rem;border:1px solid var(--border-soft);border-radius:.7rem;padding:.45rem .6rem;background:#fff}.booking-row-filled{background:#eef2ff}.booking-row h4{margin:0;font-size:.86rem}.booking-row .section-note{margin:0}.booking-row-empty{background:var(--surface-muted);color:var(--text-muted)}.booking-row-main{min-width:0;display:flex;flex-direction:column;gap:.15rem}.booking-row-main h4,.booking-row-main p{margin:0}.booking-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;min-width:0;flex-wrap:wrap}.booking-row-actions .booking-row-name-input{width:100%;max-width:16rem;border-radius:.55rem;border:1px solid #d1d5db;padding:.38rem .55rem;font:inherit;background:#fff;outline:none}.booking-row-actions .booking-row-name-input:focus{border-color:var(--accent);box-shadow:0 0 0 1px #1d4ed880}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.admin-form-actions{display:flex;align-items:center;gap:.75rem;margin-top:.3rem}.modal-card.ticket-modal{width:min(480px,100%)}.ticket-card{margin-top:.4rem;border:1px solid var(--border-soft);border-radius:.85rem;padding:.95rem;background:#f8fafc;display:grid;grid-template-columns:1fr 160px;gap:.85rem;align-items:center}.ticket-meta{display:flex;flex-direction:column;gap:.35rem}.ticket-qr-wrap{text-align:center}.ticket-qr{width:clamp(150px,40vw,170px);aspect-ratio:1;margin:0 auto;display:grid;grid-template-columns:repeat(var(--qr-size, 21),1fr);gap:1px;padding:.3rem;background:#fff;border:1px solid var(--border-soft);border-radius:.7rem}.ticket-qr-cell{aspect-ratio:1 / 1;background:#eef2f7}.ticket-qr-cell-on{background:#111827}@media (max-width: 680px){.ticket-card{grid-template-columns:1fr}}.resident-bookings-list{display:grid;grid-template-columns:1fr;gap:.85rem;margin-top:1.25rem}.resident-booking-card{display:grid;grid-template-columns:minmax(140px,28%) 1fr;gap:1rem;align-items:start}.resident-booking-media{border-radius:.8rem;overflow:hidden;min-height:140px;background:#e5e7eb}.resident-booking-media img{width:100%;height:100%;min-height:140px;object-fit:cover;display:block}.resident-booking-no-image{width:100%;min-height:140px;display:grid;place-items:center;color:#6b7280;font-size:.85rem}.resident-booking-body{display:flex;flex-direction:column;gap:.4rem}.resident-booking-body .section-note{margin-bottom:0}.modal-card.bookings-modal.resident-booking-modal{width:min(560px,100%);height:auto;max-height:min(86vh,560px)}.modal-card.resident-visitors-modal{width:min(760px,100%);max-height:min(90vh,720px)}.resident-booking-form{margin-top:.85rem;display:flex;flex-direction:column;gap:.85rem}.resident-booking-form-main{display:flex;flex-direction:column;gap:.75rem}.resident-booking-form .form-field{margin-bottom:0}.resident-booking-form .form-field>span{font-size:.85rem;font-weight:500;color:#374151}.resident-booking-form-grid{display:grid;grid-template-columns:minmax(0,160px) 1fr;gap:.9rem;align-items:end}.resident-booking-form-grid--session{grid-template-columns:minmax(0,7fr) minmax(140px,3fr)}.resident-booking-session-summary{border:1px solid var(--border-soft);border-radius:.75rem;background:var(--surface-muted);padding:.75rem .85rem}.resident-booking-session-summary p{margin:.12rem 0 0;font-weight:600;color:var(--text-main)}.resident-booking-availability-note{margin-top:.42rem;font-size:.8rem;font-weight:400;color:var(--text-muted)}.resident-booking-availability-note--warning{color:#b45309}.resident-booking-actions{justify-content:flex-end;margin-top:.1rem}.resident-booking-error{color:#b91c1c}.resident-booking-info{color:var(--text-muted)}@media (max-width: 760px){.resident-booking-card,.resident-booking-form-grid{grid-template-columns:1fr}}.admin-required{color:#b91c1c;font-weight:700}.admin-list-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.3rem}.admin-filter{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-muted)}.admin-filter select{border-radius:.65rem;border:1px solid #d1d5db;padding:.45rem .65rem;font:inherit;background:#fff}.admin-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.admin-card-actions{display:flex;gap:.5rem;flex-wrap:wrap}.admin-meta{margin-top:.2rem;margin-bottom:0;font-size:.85rem;color:var(--text-muted)}@media (max-width: 720px){.admin-hero{flex-direction:column}.admin-list-header{flex-direction:column;align-items:flex-start}.admin-card{grid-template-columns:1fr}.admin-card-media{min-height:180px}.modal-card{padding:1.2rem}.modal-card.bookings-modal{height:min(82vh,560px)}}.site-footer{background:var(--navy);color:#e5e7eb;padding:1.7rem 1.5rem 2.1rem}.site-footer-inner{max-width:1120px;margin:0 auto;font-size:.85rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem}.footer-built-by{opacity:.85}@media (max-width: 900px){.site-header{z-index:20}.site-header-inner{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.75rem;padding:.65rem 1rem}.menu-toggle{display:inline-flex;box-shadow:0 10px 24px #0000002e}.site-brand{margin:0 auto 0 0;align-items:flex-start;text-align:left}.site-brand-strap{font-size:.85rem}.site-nav{display:none!important;position:fixed;top:0;left:0;bottom:0;min-height:100vh;width:88vw;max-width:360px;background:#0b1b2bfa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:column;align-items:flex-start;gap:.35rem;padding:1.8rem 1.4rem;transform:translate(-110%);transition:transform .25s ease,opacity .2s ease;box-shadow:10px 0 30px #00000040;pointer-events:none;z-index:201;border-right:1px solid rgba(255,255,255,.08);opacity:0;visibility:hidden}.site-nav.is-open,.nav-open .site-nav{display:flex!important;transform:translate(0);pointer-events:auto;opacity:1;visibility:visible}.site-nav a{width:100%;font-size:1rem;padding:.55rem 0}.site-nav a.nav-cta{margin-top:.35rem;text-align:center}.nav-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease;z-index:190}.nav-overlay.is-open,.nav-open .nav-overlay{opacity:1;visibility:visible;pointer-events:auto}.floating-cta{display:inline-flex}}@media (max-width: 768px){.hero{background-attachment:scroll;background-position:center top}.hero h1{font-size:clamp(1.35rem,4vw + .6rem,1.7rem);line-height:1.3}.hero-inner{grid-template-columns:minmax(0,1fr);gap:1.75rem}.hero-text{padding:1.25rem 1.3rem}.hero-image-card{max-width:100%}.hero-actions{flex-wrap:nowrap;gap:.65rem;justify-content:flex-start}.hero-actions .btn{flex:0 0 auto;min-width:auto;justify-content:center}.hero-actions .btn-primary{display:none}.two-column{grid-template-columns:minmax(0,1fr)}}.card-link{display:block;height:100%;color:inherit;text-decoration:none}.card-clickable{cursor:pointer}.card-more{display:inline-block;margin-top:.7rem;font-weight:600;font-size:.9rem;color:var(--ink);opacity:.85}.card-clickable:hover .card-more{opacity:1}
