*{box-sizing:border-box}body.public-site{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#fff;color:#172033;line-height:1.6}.public-site a{color:#174ea6;text-decoration:none}.site-shell{width:min(1180px,calc(100% - 36px));margin:0 auto}.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.97);border-bottom:1px solid #e7eaf0;backdrop-filter:blur(10px)}.site-nav{min-height:76px;display:flex;align-items:center;gap:24px}.site-brand{display:flex;align-items:center;gap:11px;min-width:0;color:#172033!important;margin-right:auto}.site-brand>span:last-child{display:flex;flex-direction:column;line-height:1.18;min-width:0}.site-brand strong{font-size:14px;text-transform:uppercase;letter-spacing:.025em;white-space:nowrap;max-width:360px;overflow:hidden;text-overflow:ellipsis}.site-brand small{font-size:11px;color:#667085;margin-top:4px;white-space:nowrap;max-width:360px;overflow:hidden;text-overflow:ellipsis}.site-mark{width:42px;height:42px;border-radius:12px;background:#172033;color:#fff;display:grid;place-items:center;font-weight:900;font-size:12px;flex:0 0 auto}.site-menu{display:flex;align-items:center;gap:18px}.site-menu a{font-size:13px;font-weight:700;color:#364152}.site-menu a:hover{color:#174ea6}.site-menu-toggle{display:none;border:1px solid #d8dee8;background:#fff;border-radius:9px;padding:9px 12px;font-weight:750}.site-hero{padding:76px 0;background:linear-gradient(135deg,#f7f9fc,#eef4ff)}.hero-grid{display:grid;grid-template-columns:1.35fr .75fr;gap:42px;align-items:center}.eyebrow{display:inline-block;font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:#2457c5;margin-bottom:9px}.site-hero h1,.page-banner h1{font-size:clamp(34px,5vw,58px);line-height:1.08;margin:0 0 18px;color:#111827;letter-spacing:-.03em}.site-hero p{font-size:18px;color:#526072;max-width:720px}.site-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.site-btn{display:inline-flex;align-items:center;justify-content:center;background:#174ea6;color:#fff!important;border-radius:10px;padding:11px 18px;font-weight:800}.site-btn.ghost{background:#fff;color:#174ea6!important;border:1px solid #cbd8ef}.hero-card{background:#172033;color:#fff;border-radius:22px;padding:28px;box-shadow:0 18px 45px rgba(23,32,51,.18)}.hero-card strong{font-size:21px}.hero-card p{font-size:14px;color:#c7d1df}.hero-mini{display:flex;gap:10px;flex-wrap:wrap}.hero-mini span{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.1);padding:8px 10px;border-radius:8px;font-size:11px;font-weight:750}.site-section{padding:64px 0}.site-section.soft{background:#f7f9fc}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.section-head h2{font-size:30px;line-height:1.2;margin:0}.site-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.site-card,.prose-card{background:#fff;border:1px solid #e3e8ef;border-radius:16px;padding:22px;box-shadow:0 6px 20px rgba(16,24,40,.035)}.site-card h2,.site-card h3{margin-top:0;line-height:1.25}.site-card p{color:#5d697b}.price{font-size:19px;font-weight:850;margin-top:16px}.page-banner{padding:54px 0;background:#f3f6fb;border-bottom:1px solid #e6eaf0}.page-banner h1{font-size:clamp(32px,4vw,48px);margin-bottom:10px}.page-banner p{color:#667085;margin:0;font-size:16px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.gallery-grid.full{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-tile{background:#fff;border:1px solid #e2e7ee;border-radius:16px;overflow:hidden}.gallery-tile img,.gallery-tile video,.gallery-tile iframe,.video-placeholder{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border:0;background:#172033;color:#fff}.video-placeholder{display:grid;place-items:center;font-weight:800}.gallery-tile>div:last-child{padding:15px}.gallery-tile p{font-size:13px;color:#667085;margin:5px 0 0}.donation-group+.donation-group{margin-top:44px}.notice-box{margin-top:26px;background:#eef4ff;border:1px solid #cfdcf4;border-radius:13px;padding:16px 18px;color:#334155}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.prose-card{font-size:16px;white-space:normal;min-height:180px}.site-footer{background:#111827;color:#d8e0ec;padding:38px 0}.site-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:28px}.site-footer p{font-size:13px;color:#9eacbf}.site-footer a{color:#d8e0ec}.muted{color:#667085}@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.site-cards,.gallery-grid,.gallery-grid.full{grid-template-columns:repeat(2,minmax(0,1fr))}.site-menu-toggle{display:block}.site-menu{position:absolute;top:76px;left:18px;right:18px;background:#fff;border:1px solid #e0e5ed;border-radius:14px;padding:12px;box-shadow:0 18px 40px rgba(16,24,40,.16);display:none;flex-direction:column;align-items:stretch;gap:0}.site-menu.open{display:flex}.site-menu a{padding:10px 11px;border-radius:8px}.site-menu a:hover{background:#f3f6fb}.site-brand small{display:none}.site-footer-grid{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr}}@media(max-width:620px){.site-shell{width:min(100% - 24px,1180px)}.site-hero{padding:54px 0}.site-section{padding:44px 0}.site-cards,.gallery-grid,.gallery-grid.full,.site-footer-grid{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}.site-brand strong{max-width:210px;font-size:12px}.site-mark{width:38px;height:38px}.site-nav{min-height:68px}.site-menu{top:68px}.site-hero p{font-size:16px}}
/* v1.0.8 Public Advance Room Booking & Availability */
.site-menu .booking-link{background:#174ea6;color:#fff!important;padding:8px 12px;border-radius:9px}.booking-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.public-form{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:22px;box-shadow:0 6px 20px rgba(16,24,40,.04)}.public-form h2{margin:0 0 18px;font-size:22px}.public-form label{display:block;font-size:13px;font-weight:750;color:#334155}.public-form input,.public-form select,.public-form textarea{display:block;width:100%;margin:6px 0 15px;padding:11px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#172033;font:inherit}.public-form textarea{resize:vertical}.public-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.site-btn.full{width:100%;border:0;cursor:pointer}.field-note{font-size:11px;color:#64748b;font-weight:500}.availability-cards{display:grid;gap:10px;margin-top:14px}.availability-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;background:#fff;border:1px solid #e2e8f0;border-radius:13px;padding:15px 16px}.availability-card.available{border-left:4px solid #16a34a}.availability-card.sold-out{opacity:.72}.availability-card h3{margin:0 0 3px;font-size:16px}.availability-card p{margin:0;color:#64748b;font-size:12px}.availability-number{text-align:center;min-width:70px}.availability-number strong{display:block;font-size:24px;line-height:1;color:#166534}.availability-number span{font-size:10px;color:#64748b;text-transform:uppercase}.choose-room{font-size:12px;font-weight:800;background:#eef4ff;padding:8px 10px;border-radius:8px}.sold-label{font-size:11px;color:#991b1b;font-weight:800}.booking-notice{background:#fff8e6;border:1px solid #f5d98d;border-radius:10px;padding:12px 13px;font-size:12px;color:#704f00;margin-bottom:15px}.form-foot{text-align:center;font-size:12px;color:#64748b;margin-bottom:0}.public-alert{border-radius:12px;padding:14px 16px;margin-bottom:18px}.public-alert.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.public-alert.success{background:#ecfdf5;border:1px solid #bbf7d0;color:#166534}.availability-table-wrap{overflow:auto;border:1px solid #e2e8f0;border-radius:14px;margin-top:18px}.availability-table{width:100%;border-collapse:collapse;background:#fff;min-width:720px}.availability-table th,.availability-table td{padding:13px;border-bottom:1px solid #e2e8f0;text-align:center}.availability-table thead th{background:#172033;color:#fff}.availability-table tbody th{text-align:left;white-space:nowrap}.day-availability{display:inline-block;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}.day-availability.yes{background:#dcfce7;color:#166534}.day-availability.no{background:#fee2e2;color:#991b1b}.calendar-filter{display:flex;align-items:end;gap:12px;max-width:520px}.calendar-filter label{flex:1}.calendar-filter input{margin-bottom:0}.narrow-shell{max-width:820px}.track-form{margin-bottom:18px}.booking-status-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:24px}.status-head{display:flex;align-items:start;justify-content:space-between;gap:15px;border-bottom:1px solid #e2e8f0;padding-bottom:16px;margin-bottom:18px}.status-head h2{margin:0}.public-status{border-radius:999px;padding:7px 11px;font-size:11px;font-weight:850;text-transform:uppercase}.public-status.status-pending{background:#fef3c7;color:#92400e}.public-status.status-approved{background:#dcfce7;color:#166534}.public-status.status-rejected,.public-status.status-cancelled{background:#fee2e2;color:#991b1b}.public-details{display:grid;grid-template-columns:160px 1fr;gap:10px 14px}.public-details dt{color:#64748b}.public-details dd{margin:0;font-weight:650}.public-danger-btn{border:1px solid #fecaca;background:#fff;color:#b91c1c;padding:9px 13px;border-radius:9px;font-weight:800;cursor:pointer;margin-top:18px}.card-action{display:inline-block;margin-top:16px;font-weight:800;font-size:13px}.top-public-actions{margin-top:28px}
@media(max-width:900px){.booking-layout{grid-template-columns:1fr}.site-menu .booking-link{padding:10px 11px;border-radius:8px}.availability-card{grid-template-columns:1fr auto}.availability-card .choose-room,.availability-card .sold-label{grid-column:1/-1;text-align:center}.public-row{grid-template-columns:1fr}.calendar-filter{max-width:none;align-items:stretch;flex-direction:column}.public-details{grid-template-columns:1fr}.public-details dt{margin-top:7px}}
