:root{--navy:#07213a;--teal:#0cb8b6;--aqua:#66f0ff;--sand:#fff8ef;--ink:#10304f;--card:rgba(255,255,255,.92);--muted:rgba(255,255,255,.84)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:white;background:linear-gradient(180deg,rgba(7,33,58,.60),rgba(7,33,58,.76)),url('/assets/hambone-login-bg.jpg') center/cover fixed no-repeat}.wrap{max-width:1120px;margin:0 auto;padding:24px}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center}.brand{font-weight:900;color:white;text-decoration:none;letter-spacing:.03em}nav{display:flex;gap:13px;align-items:center;flex-wrap:wrap}nav a,.linkbtn{color:rgba(255,255,255,.9);text-decoration:none;border:0;background:none;font:inherit;cursor:pointer}.inline{display:inline}.hero{padding:84px 0 64px;max-width:860px}.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:12px;color:var(--aqua);font-weight:800}.hero h1,.gate h1,.hotel-hero h1{font-size:clamp(44px,9vw,88px);line-height:.92;margin:10px 0}.lead{font-size:22px;color:var(--muted);max-width:680px}.lead.dark{color:#34506a}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}.btn,button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:linear-gradient(135deg,var(--aqua),var(--teal));color:#062235;font-weight:900;text-decoration:none;padding:13px 20px;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.22)}.btn.secondary{background:rgba(255,255,255,.14);color:white;border:1px solid rgba(255,255,255,.25)}.cards,.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.grid{grid-template-columns:minmax(310px,470px) 1fr;align-items:start}.card,.cards article{background:var(--card);color:var(--ink);border-radius:26px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.35)}.widecard{max-width:1050px;margin:24px auto}.gate{max-width:480px;margin:14vh auto}.form{display:grid;gap:15px}.form label{display:grid;gap:7px;font-weight:800}.form input,.form select,.form textarea{width:100%;border:1px solid rgba(16,48,79,.18);border-radius:14px;padding:13px 15px;font:inherit;color:var(--ink);background:white}.form option:disabled{color:#888;text-decoration:line-through}.mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.helper{color:#53687d}.availability{padding-left:20px}.lodging-stat{margin:8px 0}.lodging-stat.full{color:#8b1e1e;text-decoration:line-through}.notice{margin:16px 0;padding:12px 14px;border-radius:14px;font-weight:800}.notice-success{background:#e7fbef;color:#11602d}.notice-error{background:#ffe8e8;color:#8c1717}.tablewrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;background:white;color:var(--ink);border-radius:16px;overflow:hidden}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #e8edf2;vertical-align:top}th{background:#eff8fb;font-size:13px;text-transform:uppercase;letter-spacing:.08em}footer{padding:40px 0 18px;color:rgba(255,255,255,.72)}.content{font-size:18px;line-height:1.6}.hotel-hero.card{background:rgba(255,255,255,.96)!important;color:var(--ink)!important}.hotel-hero{display:grid;grid-template-columns:1.08fr .92fr;gap:22px;align-items:center;margin:28px 0 14px;overflow:hidden}.hotel-hero h1,.hotel-hero p,.hotel-hero .lead.dark{color:var(--ink)!important}.hotel-hero .lead.dark{font-size:19px;line-height:1.45;background:rgba(255,255,255,.72);padding:12px 14px;border-radius:16px}.hotel-photo-main a,.hotel-gallery a{display:block;cursor:zoom-in}.hotel-photo-main img{width:100%;height:240px;object-fit:cover;border-radius:20px;box-shadow:0 12px 28px rgba(0,0,0,.18);display:block}.hotel-facts{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.hotel-facts span{display:inline-flex;padding:8px 11px;border-radius:999px;background:#e9fbfb;color:#0a5360;font-weight:800;border:1px solid #bceff1}.hotel-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 16px}.hotel-gallery figure{margin:0;background:rgba(255,255,255,.94);border-radius:20px;overflow:hidden;color:var(--ink);box-shadow:0 12px 28px rgba(0,0,0,.16)}.hotel-gallery img{width:100%;height:150px;object-fit:cover;display:block}.hotel-gallery figcaption{padding:10px 12px;font-weight:800;font-size:14px}.lightbox{display:none;position:fixed;z-index:9999;inset:0;background:rgba(3,13,25,.88);align-items:center;justify-content:center;padding:28px}.lightbox:target{display:flex}.lightbox img{max-width:min(1100px,92vw);max-height:86vh;object-fit:contain;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.55)}.lightbox-close{position:fixed;top:18px;right:24px;width:44px;height:44px;border-radius:999px;background:white;color:#07213a;text-decoration:none;font-size:34px;line-height:38px;text-align:center;font-weight:900}.hotel-notes{margin-top:0}.note-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.note-grid h3{margin-bottom:4px}.activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.activity-card{background:#f5fbfd;border:1px solid #dceef4;border-radius:18px;padding:14px}.compact-list{padding-left:18px}.photo-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.photo-gallery figure{margin:0;background:#f5fbfd;border-radius:18px;overflow:hidden;border:1px solid #dceef4}.photo-gallery img{width:100%;height:220px;object-fit:cover;display:block}.photo-gallery figcaption{padding:10px 12px}.photo-hero h1,.activity-hero h1{font-size:clamp(40px,7vw,76px);line-height:.95;margin:8px 0}@media(max-width:850px){.cards,.grid,.hotel-hero,.hotel-gallery,.note-grid,.activity-grid,.photo-gallery{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.mini-grid{grid-template-columns:1fr}.wrap{padding:18px}.hero{padding-top:48px}.hotel-photo-main img,.hotel-gallery img{height:170px}.hotel-hero .lead.dark{font-size:17px}}.checkbox-group{border:1px solid rgba(16,48,79,.14);border-radius:18px;padding:14px;background:rgba(7,33,58,.04);display:grid;gap:10px}.checkbox-group legend{font-weight:900;color:var(--ink);padding:0 6px}.check-card{display:flex!important;align-items:center;gap:12px;margin:0;padding:13px 14px;border:1px solid rgba(16,48,79,.16);border-radius:16px;background:rgba(255,255,255,.76);cursor:pointer;font-weight:800}.check-card input{width:20px!important;height:20px!important;accent-color:var(--teal);margin:0}.check-card span{display:block}.check-card:has(input:checked){border-color:var(--teal);box-shadow:0 0 0 3px rgba(12,184,182,.18);background:white}

/* Lodging photo layout override: square resort images, centered mosaic cards. */
.lodging-page .hotel-hero{grid-template-columns:1fr;max-width:1050px;margin:28px auto 18px;}
.lodging-page .hotel-photo-main{display:none!important;}
.lodging-page .hotel-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,400px));justify-content:center;align-items:start;gap:20px;margin:10px auto 24px;max-width:1280px;}
.lodging-page .hotel-gallery figure{position:relative;width:100%;max-width:400px;aspect-ratio:1/1;margin:0;border-radius:28px;overflow:hidden;background:rgba(255,255,255,.96);box-shadow:0 20px 46px rgba(0,0,0,.22);}
.lodging-page .hotel-gallery a{display:block;width:100%;height:100%;}
.lodging-page .hotel-gallery img{display:block;width:100%;height:100%!important;aspect-ratio:1/1;object-fit:cover;}
.lodging-page .hotel-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 16px;color:white;font-weight:900;background:linear-gradient(180deg,rgba(7,33,58,0),rgba(7,33,58,.88));text-shadow:0 2px 10px rgba(0,0,0,.55);}
@media(max-width:850px){.lodging-page .hotel-gallery{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}.lodging-page .hotel-gallery figure{max-width:none;}}
/* Landing page cards are full-card links. */
.home-card{display:block;color:inherit;text-decoration:none;height:100%;}
.home-card article{height:100%;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.home-card:hover article,.home-card:focus-visible article{transform:translateY(-3px);box-shadow:0 28px 78px rgba(0,0,0,.30);border-color:rgba(102,240,255,.75);}
.home-card:focus-visible{outline:3px solid var(--aqua);outline-offset:5px;border-radius:28px;}
/* Landing page Grand Caribe video background. Body background remains the fallback/poster. */
.home-video-bg{position:fixed;inset:0;width:100vw;height:100vh;object-fit:cover;z-index:-2;pointer-events:none;background:#07213a;}
.home-video-overlay{position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(7,33,58,.42),rgba(7,33,58,.78));}
@media (prefers-reduced-motion: reduce){.home-video-bg{display:none;}}
/* Photo detail comments/likes layout. */
.photo-detail-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:22px;align-items:start;margin:22px 0;}
.photo-detail-image img{display:block;width:100%;max-height:78vh;object-fit:contain;border-radius:18px;background:#061d33;}
.photo-meta{color:#34506a;font-size:16px;}
.photo-comments{position:sticky;top:18px;}
.compact-form{gap:10px;margin:12px 0 18px;}
.comment-list{display:grid;gap:12px;}
.photo-comment{background:rgba(7,33,58,.06);border-radius:18px;padding:12px 14px;}
.photo-comment p{margin:.35rem 0;white-space:pre-wrap;}
.photo-comment small,.photo-stats{color:#5d7287;font-weight:800;}
@media(max-width:850px){.photo-detail-layout{grid-template-columns:1fr;}.photo-comments{position:static;}.photo-detail-image img{max-height:none;}}
/* Password landing trip date/location callout. */
.gate-trip-dates{margin:24px 0 0;font-size:clamp(28px,5vw,48px);line-height:1.05;font-weight:1000;color:#07213a;letter-spacing:-.035em;text-align:center;}
/* Admin moderation controls. */
.admin-inline{display:inline-block;margin-top:8px;}
.admin-delete-photo{margin-top:14px;}
.admin-danger{background:#b91c1c!important;color:white!important;box-shadow:0 10px 24px rgba(185,28,28,.24);padding:9px 14px;font-size:13px;}
