:root{
  --balsam:#28372a;
  --balsam-deep:#1b2620;
  --cream:#efe7d3;
  --paper:#f7f2e6;
  --rust:#c2571b;
  --rust-deep:#a1450f;
  --slate:#4e6672;
  --moss:#6e7f5c;
  --ink:#26241c;
  --ink-soft:#544f42;
  --line:#d8cdb0;
  --radius:2px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Fraunces',serif;
  font-weight:500;
  letter-spacing:-0.01em;
  color:var(--balsam-deep);
  margin:0;
}
.mono{font-family:'JetBrains Mono',monospace;}
a{color:var(--rust-deep);}

/* ---------- coordinate tag signature ---------- */
.tag{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:'JetBrains Mono',monospace;font-size:.72rem;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--balsam-deep);
  background:rgba(40,55,42,0.07);
  border:1px solid rgba(40,55,42,0.25);
  padding:.35em .75em;border-radius:100px;
}
.tag.light{color:var(--cream);background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.35);}
.tag .dot{width:5px;height:5px;border-radius:50%;background:var(--rust);flex:none;}

/* ---------- topo divider ---------- */
.topo{width:100%;height:34px;display:block;}
.topo path{fill:none;stroke:var(--line);stroke-width:1;}

.wrap{max-width:1080px;margin:0 auto;padding:0 28px;}
section{padding:76px 0;}
.section-head{max-width:640px;margin-bottom:40px;}
.section-head h2{font-size:2.1rem;margin-top:.4em;}
.section-head p{color:var(--ink-soft);font-size:1.02rem;margin-top:.9em;}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;background:var(--balsam-deep);overflow:hidden;}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62;}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(19,27,20,.35) 0%, rgba(19,27,20,.55) 55%, rgba(15,21,16,.92) 100%);}
.hero-inner{position:relative;z-index:2;width:100%;padding:48px 0 56px;}
.hero .wrap{width:100%;}
.hero-eyebrow{margin-bottom:22px;}
.hero h1{color:var(--cream);font-size:clamp(2.6rem, 7vw, 5.2rem);line-height:.98;}
.hero h1 em{font-style:italic;color:var(--rust);}
.hero-sub{color:var(--cream);opacity:.88;font-size:1.15rem;margin-top:18px;max-width:520px;}
.hero-meta{margin-top:34px;display:flex;flex-wrap:wrap;gap:10px;}
.scroll-cue{position:absolute;bottom:22px;right:28px;z-index:2;color:var(--cream);opacity:.6;font-family:'JetBrains Mono',monospace;font-size:.7rem;writing-mode:vertical-rl;letter-spacing:.15em;}

/* ---------- welcome ---------- */
.welcome{background:var(--cream);}
.welcome .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}
.welcome h2{font-size:2.4rem;}
.welcome .lede{font-size:1.18rem;color:var(--ink-soft);margin-top:20px;}
.signpost{background:var(--balsam-deep);color:var(--cream);padding:30px 30px 26px;border-radius:var(--radius);position:relative;}
.signpost:before{content:"";position:absolute;left:24px;top:-10px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid var(--rust);}
.signpost .tag{margin-bottom:14px;}
.signpost ul{list-style:none;margin:0;padding:0;}
.signpost li{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid rgba(239,231,211,.14);font-size:.96rem;}
.signpost li:last-child{border-bottom:none;}
.signpost li span:first-child{color:rgba(239,231,211,.65);}
.signpost li span:last-child{font-family:'JetBrains Mono',monospace;text-align:right;}

/* ---------- gallery grids (dynamic — any number of images) ---------- */
.tour{background:var(--paper);}
.tour-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(520px, 1fr));gap:26px;}
.tour-item{position:relative;border-radius:var(--radius);overflow:hidden;background:#000;aspect-ratio:4/3.1;}
.tour-item img{width:100%;height:100%;object-fit:cover;display:block;}
.tour-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 20px 16px;background:linear-gradient(0deg, rgba(15,21,16,.85), rgba(15,21,16,0));color:var(--cream);font-family:'JetBrains Mono',monospace;font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;}
@media (max-width:640px){.tour-grid{grid-template-columns:1fr;}}
.gallery-empty{color:var(--ink-soft);font-size:.95rem;font-style:italic;}

/* ---------- facts strip ---------- */
.facts{background:var(--balsam-deep);color:var(--cream);}
.facts .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.fact{padding:34px 22px;border-left:1px solid rgba(239,231,211,.16);text-align:center;}
.fact:first-child{border-left:none;}
.fact .num{font-family:'Fraunces',serif;font-size:2.6rem;color:var(--cream);}
.fact .lab{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(239,231,211,.65);margin-top:4px;}
@media (max-width:760px){ .facts .wrap{grid-template-columns:repeat(2,1fr);} .fact:nth-child(3){border-left:none;} }

/* ---------- connectivity ---------- */
.connect{background:var(--cream);}
.connect-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:28px;}
.card h3{font-size:1.15rem;display:flex;align-items:center;gap:10px;}
.card h3 svg{flex:none;}
.kv{margin-top:18px;}
.kv-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:.92rem;}
.kv-row:last-child{border-bottom:none;}
.kv-row span:first-child{color:var(--ink-soft);}
.kv-row .val{font-family:'JetBrains Mono',monospace;}

/* ---------- activities ---------- */
.activities{background:var(--balsam);color:var(--cream);}
.activities .section-head h2{color:var(--cream);}
.activities .section-head p{color:rgba(239,231,211,.75);}
.act-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:18px;}
.act-card{position:relative;border-radius:var(--radius);overflow:hidden;min-height:300px;display:flex;align-items:flex-end;}
.act-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.act-card::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg, rgba(15,21,16,.92) 15%, rgba(15,21,16,.15) 70%);}
.act-card .inner{position:relative;z-index:2;padding:22px;}
.act-card .idx{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.1em;color:var(--rust);text-transform:uppercase;}
.act-card h3{color:var(--cream);font-size:1.3rem;margin-top:6px;}
.act-card p{color:rgba(239,231,211,.82);font-size:.88rem;margin-top:8px;}

/* ---------- house rules ---------- */
.rules{background:var(--paper);}
.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 48px;}
.rules ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;}
.rules li{display:flex;gap:18px;align-items:flex-start;padding:22px;background:#fff;border:1px solid var(--line);border-radius:8px;}
.rules li .n{font-family:'JetBrains Mono',monospace;color:#fff;background:var(--rust);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex:none;}
.rules li div h4{margin:0 0 6px;font-family:'Fraunces',serif;font-weight:600;font-size:1.1rem;color:var(--balsam-deep);}
.rules li div p{margin:0;color:var(--ink-soft);font-size:.96rem;line-height:1.65;}
@media (max-width:900px){.rules-grid{grid-template-columns:1fr;}}

/* ---------- checkout ---------- */
.checkout{background:var(--cream);}
.checklist{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:8px 32px;}
.checklist label{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px dashed var(--line);font-size:.98rem;cursor:pointer;}
.checklist label:last-child{border-bottom:none;}
.checklist input{width:18px;height:18px;accent-color:var(--rust);flex:none;}

/* ---------- contact / footer ---------- */
.contact{background:var(--balsam-deep);color:var(--cream);}
.contact .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;}
.contact h2{color:var(--cream);}
.contact-list{margin-top:24px;}
.contact-row{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid rgba(239,231,211,.16);}
.contact-row span:first-child{color:rgba(239,231,211,.65);font-size:.92rem;}
.contact-row span:last-child{font-family:'JetBrains Mono',monospace;}
.emergency{background:rgba(194,87,27,.14);border:1px solid rgba(194,87,27,.5);border-radius:var(--radius);padding:24px;}
.emergency h3{color:var(--rust);font-size:1rem;text-transform:uppercase;letter-spacing:.06em;font-family:'JetBrains Mono',monospace;}
.emergency p{color:rgba(239,231,211,.9);margin-top:10px;font-size:.94rem;}
footer{background:var(--balsam-deep);border-top:1px solid rgba(239,231,211,.14);padding:26px 0 40px;text-align:center;}
footer p{color:rgba(239,231,211,.55);font-size:.82rem;font-family:'JetBrains Mono',monospace;letter-spacing:.04em;}

@media (max-width:760px){
  section{padding:52px 0;}
  .connect-cards,.rules-grid,.contact .wrap,.welcome .wrap{grid-template-columns:1fr;}
}

/* ---------- admin (shared) ---------- */
.admin-body{background:#f3efe4;color:var(--ink);font-family:'Inter',sans-serif;margin:0;min-height:100vh;}
.admin-shell{display:flex;min-height:100vh;}
.admin-nav{width:230px;flex:none;background:var(--balsam-deep);color:var(--cream);padding:26px 18px;}
.admin-nav .brand{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--cream);margin-bottom:6px;}
.admin-nav .brand small{display:block;font-family:'JetBrains Mono',monospace;font-size:.65rem;letter-spacing:.08em;color:rgba(239,231,211,.55);margin-top:4px;}
.admin-nav a{display:block;color:rgba(239,231,211,.8);text-decoration:none;padding:10px 12px;border-radius:4px;font-size:.92rem;margin-top:4px;}
.admin-nav a:hover, .admin-nav a.active{background:rgba(239,231,211,.1);color:var(--cream);}
.admin-nav .signout{margin-top:24px;border-top:1px solid rgba(239,231,211,.16);padding-top:16px;}
.admin-main{flex:1;padding:36px 44px;max-width:980px;min-width:0;}
.admin-main h1{font-size:1.8rem;}
@media (max-width:860px){
  .admin-shell{flex-direction:column;}
  .admin-nav{width:100%;padding:16px 18px;display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;}
  .admin-nav .brand{width:100%;margin-bottom:8px;}
  .admin-nav a{padding:8px 10px;font-size:.85rem;margin-top:0;}
  .admin-nav .signout{width:100%;margin-top:10px;padding-top:10px;order:99;}
  .admin-main{padding:22px 18px;max-width:100%;}
  .admin-main h1{font-size:1.4rem;}
  .panel{padding:18px 16px;}
  .panel-head{gap:10px;}
}
@media (max-width:520px){
  .admin-gallery-grid[style]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))!important;}
}
/* horizontal scroll wrapper for wide admin tables on narrow screens */
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
@media (max-width:640px){
  table.admin-table{min-width:560px;}
  .report-item-list{columns:1;}
  .quick-link-row{flex-wrap:wrap;}
  .quick-link-row .ql-label{width:100%;}
}
.admin-main .lede{color:var(--ink-soft);margin-top:8px;}
.panel{background:#fff;border:1px solid var(--line);border-radius:6px;padding:26px 28px;margin-top:24px;}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.panel-head h2{margin:0;}
.order-controls{display:flex;gap:4px;}
.order-controls form{margin:0;}
.order-controls .btn{padding:4px 9px;line-height:1;font-size:.9rem;}
.btn:disabled{opacity:.3;cursor:not-allowed;}
.panel h2{font-size:1.15rem;color:var(--balsam-deep);margin-bottom:14px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:.85rem;color:var(--ink-soft);margin-bottom:6px;font-weight:600;}
.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=date],.field textarea,.field select{
  width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:4px;font-family:inherit;font-size:.95rem;background:#fdfbf6;
}
.field textarea{min-height:90px;resize:vertical;}
.field .hint{color:var(--ink-soft);font-size:.8rem;margin-top:5px;}
.btn{display:inline-block;background:var(--rust);color:#fff;border:none;padding:11px 22px;border-radius:4px;font-size:.92rem;font-weight:600;cursor:pointer;text-decoration:none;}
.btn:hover{background:var(--rust-deep);}
.btn.secondary{background:transparent;color:var(--balsam-deep);border:1px solid var(--line);}
.btn.danger{background:#a1332a;}
.btn.small{padding:6px 12px;font-size:.8rem;}
table.admin-table{width:100%;border-collapse:collapse;margin-top:6px;}
table.admin-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:10px 8px;}
table.admin-table td{padding:12px 8px;border-bottom:1px solid #eee;font-size:.92rem;vertical-align:middle;}
.flash{padding:12px 16px;border-radius:4px;margin-bottom:20px;font-size:.92rem;}
.flash.success{background:#e7f2e3;color:#2c5e26;border:1px solid #b9dcae;}
.flash.error{background:#fbe9e6;color:#8c2c1e;border:1px solid #f0bcb0;}
.thumb{width:70px;height:52px;object-fit:cover;border-radius:3px;background:#eee;}
.admin-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:18px;}
.admin-gallery-card{background:#fdfbf6;border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.admin-gallery-card img{width:100%;height:120px;object-fit:cover;display:block;}
.admin-gallery-card .body{padding:12px;}
.admin-gallery-card input[type=text]{margin-bottom:6px;}
/* --- drag-to-reorder --- */
.sort-hint{font-size:.82rem;color:var(--ink-soft);margin:0 0 4px;line-height:1.5;}
.sort-hint strong{display:block;margin-top:6px;color:#a1332a;font-weight:600;}
.drag-handle-inline{font-size:.95rem;vertical-align:-1px;}
.admin-gallery-card .sort-bar{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#f4efe3;border-bottom:1px solid var(--line);}
.admin-gallery-card .drag-handle{cursor:grab;font-size:1rem;line-height:1;color:var(--ink-soft);padding:2px 3px;user-select:none;}
.admin-gallery-card .drag-handle:active{cursor:grabbing;}
.admin-gallery-card .pos{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--ink-soft);min-width:1.2em;}
.admin-gallery-card .sort-btns{margin-left:auto;display:flex;gap:4px;}
.admin-gallery-card .sort-btns .btn{padding:2px 8px;font-size:.78rem;line-height:1.4;}
.admin-gallery-card.dragging{opacity:.4;}
.admin-gallery-grid.is-dragging .admin-gallery-card{transition:transform .12s ease;}
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--balsam-deep);}
.login-box{background:#fff;padding:38px 36px;border-radius:8px;width:100%;max-width:360px;}
.login-box h1{font-size:1.4rem;margin-bottom:4px;}
.login-box .lede{color:var(--ink-soft);font-size:.88rem;margin-bottom:20px;}

/* ---------- footer links (privacy / terms / opt-in pdf) ---------- */
.footer-links{margin-top:4px;}
.footer-links a{color:rgba(239,231,211,.75);}
.footer-links a:hover{color:var(--cream);}

/* ---------- standalone checkout page ---------- */
.checkout-page{padding-top:56px;}
.checkout-page .back-link{margin-bottom:18px;}
.checkout-page .back-link a{color:var(--ink-soft);font-size:.88rem;text-decoration:none;}
.checkout-page .back-link a:hover{color:var(--rust-deep);}
.checklist-preview-row{padding:14px 0;border-bottom:1px dashed var(--line);font-size:.98rem;}
.checklist-preview-row:last-child{border-bottom:none;}
.checklist-progress{margin-top:14px;font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--ink-soft);}
/* honeypot anti-spam field: hidden from real visitors, left open for bots */
.hp-field{position:absolute;left:-9999px;top:-9999px;height:0;width:0;overflow:hidden;}

/* ---------- admin: tabbed Site Content editor ---------- */
.content-layout{display:flex;gap:28px;align-items:flex-start;margin-top:20px;}
.content-tabs{width:230px;flex:none;position:sticky;top:20px;}
.content-tabs input[type=search]{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:4px;font-size:.85rem;margin-bottom:10px;font-family:'Inter',sans-serif;}
.content-tabs a{display:block;padding:9px 12px;border-radius:4px;font-size:.86rem;color:var(--ink);text-decoration:none;margin-bottom:2px;}
.content-tabs a:hover{background:#efe9d8;}
.content-tabs a.active{background:var(--balsam-deep);color:var(--cream);}
.content-tabs a .count{float:right;color:var(--ink-soft);font-size:.75rem;}
.content-tabs a.active .count{color:rgba(239,231,211,.6);}
.content-panel{flex:1;min-width:0;}
.content-panel .field.hidden-by-search{display:none;}
@media (max-width:860px){.content-layout{flex-direction:column;}.content-tabs{width:100%;position:static;}}

/* ---------- admin: quick links panel (dashboard) ---------- */
.quick-links{display:flex;flex-direction:column;gap:10px;}
.quick-link-row{display:flex;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:9px 12px;}
.quick-link-row .ql-label{font-size:.78rem;color:var(--ink-soft);width:150px;flex:none;}
.quick-link-row input[type=text]{flex:1;border:none;background:transparent;font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--ink);}
.quick-link-row input[type=text]:focus{outline:none;}
.quick-link-row .copy-btn{flex:none;}

/* ---------- admin: reports ---------- */
.report-filters{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:20px;}
.report-filters .field{margin-bottom:0;}
.progress-bar{background:#eee;border-radius:100px;height:8px;width:120px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:8px;}
.progress-bar .fill{background:var(--rust);height:100%;}
.report-detail-row td{background:#fbf9f2;}
.report-item-list{list-style:none;padding:0;margin:0;columns:2;gap:20px;}
.report-item-list li{font-size:.85rem;padding:4px 0;}
.report-item-list li.checked::before{content:"\2713  ";color:#2c5e26;font-weight:700;}
.report-item-list li.unchecked::before{content:"\2717  ";color:#a1332a;font-weight:700;}

/* ---------- public site: top nav (multi-page layout) ---------- */
.site-nav{background:var(--balsam-deep);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(239,231,211,.12);}
.site-nav .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;gap:20px;flex-wrap:nowrap;}
.site-nav .brand{font-family:'Fraunces',serif;color:var(--cream);font-size:1.05rem;font-weight:600;text-decoration:none;flex:none;line-height:1.2;}
/* nowrap keeps the row on one line; the negative right margin cancels the last
   link's inner padding so the menu's right edge lines up with the 28px content
   gutter used by .wrap further down the page (no visual offset). */
.site-nav-links{display:flex;gap:2px;flex-wrap:nowrap;justify-content:flex-end;align-items:center;min-width:0;margin-right:-11px;}
.site-nav-links a{color:rgba(239,231,211,.78);text-decoration:none;font-size:.84rem;line-height:1.2;padding:9px 11px;border-radius:4px;white-space:nowrap;}
.site-nav-links a:hover{background:rgba(239,231,211,.1);color:var(--cream);}
.site-nav-links a.active{background:var(--rust);color:#fff;}
.site-nav-links a:focus-visible{outline:2px solid var(--cream);outline-offset:2px;}
.nav-toggle{display:none;background:none;border:none;color:var(--cream);font-size:1.5rem;cursor:pointer;line-height:1;padding:4px 8px;margin-right:-8px;}
@media (max-width:1040px){
  .nav-toggle{display:block;}
  .site-nav-links{display:none;width:100%;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;margin-top:10px;margin-right:0;}
  .site-nav-links.open{display:flex;}
  .site-nav-links a{padding:12px 8px;border-bottom:1px solid rgba(239,231,211,.08);}
  .site-nav .wrap{flex-wrap:wrap;}
}

/* ---------- public site: galleries index ---------- */
/* auto-fill (not auto-fit) keeps the tracks at ~250px even when there are only
   one or two galleries, so covers never stretch to full container width. */
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(250px, 1fr));gap:26px 22px;}
.gal-card{display:block;text-decoration:none;color:inherit;}
.gal-cover{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;background:var(--balsam-deep);display:flex;align-items:center;justify-content:center;}
.gal-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
.gal-card:hover .gal-cover img{transform:scale(1.04);}
.gal-cover-empty{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(239,231,211,.6);}
.gal-meta{margin-top:12px;}
.gal-meta h2{font-size:1.12rem;line-height:1.3;margin:0;}
.gal-card:hover .gal-meta h2{color:var(--rust);}
.gal-count{display:block;margin-top:4px;font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
.gal-back{display:inline-block;margin-bottom:10px;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;}
.gal-back:hover{color:var(--rust);}
@media (max-width:520px){
  .gal-grid{grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));gap:20px 16px;}
  .gal-meta h2{font-size:1rem;}
}
@media (prefers-reduced-motion:reduce){
  .gal-cover img{transition:none;}
  .gal-card:hover .gal-cover img{transform:none;}
}

/* ---------- public site: subpage header banner ---------- */
.page-head{padding:56px 0 40px;background:var(--paper);border-bottom:1px solid var(--line);}
.page-head h1{font-size:clamp(1.9rem, 4.5vw, 2.6rem);margin-top:.4em;}
.page-head .lede{color:var(--ink-soft);font-size:1.05rem;margin-top:14px;max-width:640px;}

/* ---------- home page: explore section grid ---------- */
.explore-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.explore-card{display:block;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;text-decoration:none;transition:border-color .15s,transform .15s;}
.explore-card:hover{border-color:var(--rust);transform:translateY(-2px);}
.explore-card .idx{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--rust-deep);letter-spacing:.08em;}
.explore-card h3{margin-top:10px;font-size:1.15rem;}
.explore-card p{margin-top:8px;color:var(--ink-soft);font-size:.9rem;}
@media (max-width:760px){.explore-grid{grid-template-columns:1fr;}}

/* ---------- small-phone refinements (public site) ---------- */
@media (max-width:480px){
  .wrap{padding:0 18px;}
  .site-nav .wrap{padding:12px 18px;}
  section{padding:44px 0;}
  .section-head h2{font-size:1.7rem;}
  .facts .wrap{grid-template-columns:1fr 1fr;}
  .fact{padding:22px 14px;}
  .fact .num{font-size:2.1rem;}
  .contact-row,.kv-row{flex-wrap:wrap;gap:4px;}
  .checklist{padding:6px 18px;}
  .checklist label{gap:12px;font-size:.92rem;}
  .login-box{padding:28px 22px;}
  .rules li{padding:16px;gap:12px;}
  .emergency{padding:18px;}
}

/* ---------- admin: house rules repeatable editor ---------- */
.rule-row{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:6px;padding:14px;margin-bottom:12px;background:#fdfbf6;}
.rule-row-fields{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0;}
.rule-row-fields input[type=text]{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:4px;font-family:'Fraunces',serif;font-size:.98rem;box-sizing:border-box;}
.rule-row-fields textarea{width:100%;min-height:64px;padding:9px 12px;border:1px solid var(--line);border-radius:4px;font-family:'Inter',sans-serif;font-size:.88rem;resize:vertical;box-sizing:border-box;}
.rule-row-actions{display:flex;flex-direction:column;gap:6px;flex:none;}
