/* ============================================================
   Preserve A Spot — events archive ("Night at the Lodge" wall).
   Self-contained & prefixed (.aspot-*) so it won't touch Divi.
   ============================================================ */
.aspot-arch{
  --gold:#c9a159; --gold-d:#b8862f; --ink:#15120e; --line:rgba(201,161,89,.18);
  --disp:"Playfair Display",serif; --serif:"Cormorant Garamond",serif;
  --sans:"Montserrat",sans-serif; --mono:"JetBrains Mono",monospace;
  background:var(--ink); color:#e9e1d2; display:block;
}
.aspot-arch *{box-sizing:border-box;}

/* ---- filter bar ---- */
.aspot-barwrap{position:sticky;top:var(--aspot-sticky-top,0px);z-index:30;background:rgba(21,18,14,.93);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.aspot-bar{width:min(1280px,92vw);margin-inline:auto;display:flex;align-items:center;
  gap:16px;flex-wrap:wrap;padding:14px 0;}
.aspot-chips{display:flex;gap:8px;flex-wrap:wrap;}
/* The count, members switch, view buttons and theme toggle are ONE right-hand
   cluster. Loose in the flex row they wrapped independently, stranding the view
   buttons and the moon on a second line hard against the left edge. */
.aspot-bar-r{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  margin-left:auto;justify-content:flex-end;}
@media(max-width:900px){.aspot-bar-r{width:100%;justify-content:flex-start;}}
.aspot-chip{font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;padding:9px 15px;border:1px solid rgba(255,255,255,.14);
  color:#bcb2a0;cursor:pointer;transition:.18s;display:flex;align-items:center;gap:8px;
  background:transparent;border-radius:2px;white-space:nowrap;}
.aspot-chip .d{width:8px;height:8px;border-radius:50%;}
.aspot-chip:hover{border-color:var(--gold);color:#f1e8d7;}
.aspot-chip.on{background:var(--gold);border-color:var(--gold);color:#1c150a;}
.aspot-cnt{text-align:right;font-family:var(--mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:#8c8474;white-space:nowrap;}
.aspot-mtog{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);
  font-weight:600;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#bcb2a0;
  cursor:pointer;user-select:none;transition:.18s;padding:0;border:0;background:transparent;
  white-space:nowrap;}
.aspot-mtog:hover{color:#f1e8d7;}
.aspot-mtog .sw{width:34px;height:19px;border-radius:20px;background:rgba(255,255,255,.16);
  position:relative;transition:.2s;flex:none;}
.aspot-mtog .sw::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;
  border-radius:50%;background:#f3ecdd;box-shadow:0 1px 3px rgba(0,0,0,.4);transition:.2s;}
.aspot-mtog.on{color:var(--gold);}
.aspot-mtog.on .sw{background:var(--gold);}
.aspot-mtog.on .sw::after{transform:translateX(15px);background:#1c150a;}

/* ---- card wall — ONE server-rendered set of cards, two layouts ---- */
.aspot-grid{width:min(1280px,92vw);margin:clamp(34px,4vw,54px) auto clamp(60px,8vw,110px);
  display:grid;gap:clamp(14px,1.5vw,22px);}
/* MASONRY (default) — 12-col editorial mosaic. aspot-archive.js assigns the span
   classes across the VISIBLE cards after every filter (see its notes). */
.aspot-grid.is-masonry{grid-template-columns:repeat(12,1fr);}
.aspot-grid.is-masonry .aspot-card{grid-column:span 4;min-height:clamp(330px,26vw,420px);}
.aspot-grid.is-masonry .aspot-card.m-wide{grid-column:span 6;}
.aspot-grid.is-masonry .aspot-card.m-tall{grid-column:span 4;min-height:clamp(430px,34vw,560px);}
.aspot-grid.is-masonry .aspot-card.m-hero{grid-column:span 8;min-height:clamp(430px,34vw,560px);}
/* GRID — square 1:1 cards. Event art is 450×500 (9:10), so the square crop trims
   ~10% of the height; object-fit centres it.
   Column count comes from --aspot-cols on .aspot-arch (the shortcode's columns=""
   attribute, default 3). The old auto-fill minmax(280px) landed on 4 columns at
   desktop, which made the art read small; 3 gives each card ~50% more area. */
.aspot-grid.is-grid{grid-template-columns:repeat(var(--aspot-cols,3),1fr);}
@media(max-width:1024px){.aspot-grid.is-grid{grid-template-columns:repeat(min(var(--aspot-cols,3),2),1fr);}}
.aspot-grid.is-grid .aspot-card{aspect-ratio:1/1;}
.aspot-grid.is-grid .aspot-card-body{text-align:center;}
.aspot-grid.is-grid .aspot-card-body .ct,
.aspot-grid.is-grid .aspot-card-body .mrow{justify-content:center;}
.aspot-card{position:relative;overflow:hidden;border:1px solid rgba(201,161,89,.14);
  display:flex;align-items:flex-end;text-decoration:none;color:inherit;
  background:#1c1813;transition:transform .35s,box-shadow .35s,border-color .35s;}
.aspot-card[hidden]{display:none;}
.aspot-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:saturate(.92) brightness(.82);transition:transform .6s,filter .35s;}
.aspot-card::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(15,12,9,0) 30%,rgba(15,12,9,.5) 62%,rgba(13,10,7,.93) 100%);}
.aspot-card:hover{transform:translateY(-5px);border-color:rgba(201,161,89,.5);
  box-shadow:0 30px 50px -28px rgba(0,0,0,.8);}
.aspot-card:hover img{transform:scale(1.07);filter:saturate(1.02) brightness(.9);}
.aspot-dtchip{position:absolute;top:16px;left:16px;z-index:2;background:rgba(13,10,7,.6);
  backdrop-filter:blur(4px);border:1px solid rgba(201,161,89,.3);text-align:center;
  padding:7px 11px;line-height:1;display:flex;flex-direction:column;gap:3px;}
.aspot-dtchip .mo{font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);}
.aspot-dtchip .d{font-family:var(--disp);font-weight:600;font-size:22px;color:#fbf6ec;}
.aspot-card-mem{position:absolute;top:16px;right:16px;z-index:2;font-family:var(--sans);
  font-weight:600;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
  border:1px solid rgba(201,161,89,.5);padding:5px 8px;background:rgba(13,10,7,.55);backdrop-filter:blur(4px);}
.aspot-card-body{position:relative;z-index:2;padding:22px;width:100%;display:flex;flex-direction:column;}
.aspot-card-body .ct{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);
  font-weight:600;font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:9px;color:#e9e1d2;}
.aspot-card-body .ct .d{width:8px;height:8px;border-radius:50%;}
.aspot-card-body .h3{font-family:var(--disp);font-weight:500;font-size:22px;line-height:1.12;
  margin-bottom:9px;color:#fbf6ec;}
.aspot-card-body .mrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-family:var(--serif);font-size:16px;color:#cbc0aa;}
.aspot-card-body .price{font-family:var(--sans);font-weight:700;font-size:12px;color:#1c150a;
  background:var(--gold);padding:3px 9px;border-radius:2px;}
.aspot-empty{grid-column:1/-1;text-align:center;padding:70px 20px;font-family:var(--serif);
  font-size:22px;color:#8c8474;}

@media(max-width:560px){
  .aspot-grid.is-grid{grid-template-columns:1fr;}
  .aspot-cnt{order:3;flex-basis:100%;text-align:left;}
  .aspot-mtog{margin-left:0;}
}

/* ---- "show more" pager ---- */
.aspot-morewrap{width:min(1280px,92vw);margin-inline:auto;display:flex;justify-content:center;
  padding:clamp(30px,4vw,52px) 0 clamp(8px,1vw,16px)}
.aspot-morewrap[hidden]{display:none}
.aspot-more{display:inline-flex;align-items:center;gap:14px;cursor:pointer;
  font:600 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;
  background:transparent;border:1px solid rgba(201,161,89,.45);color:var(--gold);
  padding:16px 32px;transition:background .18s,color .18s,border-color .18s}
.aspot-more:hover,.aspot-more:focus{background:var(--gold);border-color:var(--gold);color:#1c150a;outline:none}
.aspot-more .ct{font-family:var(--mono);font-size:10px;letter-spacing:.14em;opacity:.75}

/* ---- view switcher ---- */
.aspot-viewtog{display:inline-flex;gap:4px;border:1px solid var(--line);padding:3px;}
.aspot-viewtog button{width:32px;height:30px;display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:0;color:#9b9384;cursor:pointer;transition:.18s;}
.aspot-viewtog button svg{width:17px;height:17px;}
.aspot-viewtog button:hover{color:#f1e8d7;}
.aspot-viewtog button.on{background:var(--gold);color:#1c150a;}

.aspot-grid.hide,.aspot-list.hide,.aspot-cal.hide{display:none;}

/* ---- list (agenda) ---- */
.aspot-list{width:min(1100px,92vw);margin:clamp(30px,3.5vw,48px) auto clamp(60px,8vw,110px);}
.aspot-lmo{display:flex;align-items:baseline;gap:16px;margin:clamp(20px,2.4vw,34px) 0 10px;}
.aspot-lmo:first-child{margin-top:0;}
.aspot-lmo h3{font-family:var(--disp);font-style:italic;font-weight:500;font-size:clamp(22px,3vw,30px);margin:0;color:#f3ecdd;}
.aspot-lmo .rule{flex:1;height:1px;background:var(--line);}
.aspot-lrow{display:grid;grid-template-columns:70px 1fr auto;gap:clamp(16px,2.4vw,32px);align-items:center;
  padding:20px 6px;border-bottom:1px solid rgba(201,161,89,.12);text-decoration:none;color:inherit;transition:background .18s,padding .18s;}
.aspot-lrow:hover{background:rgba(201,161,89,.05);padding-left:14px;}
.aspot-lrow .ldate{text-align:center;line-height:1;}
.aspot-lrow .ldate .mo{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);display:block;}
.aspot-lrow .ldate .dy{font-family:var(--disp);font-weight:600;font-size:30px;color:#fbf6ec;}
.aspot-lrow .ct{font-family:var(--sans);font-weight:600;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#cbc0aa;display:inline-flex;align-items:center;gap:7px;}
.aspot-lrow .ct .d{width:8px;height:8px;border-radius:50%;}
.aspot-lrow .ct em{color:var(--gold);font-style:normal;}
.aspot-lrow .h3{font-family:var(--disp);font-weight:500;font-size:21px;color:#f3ecdd;display:block;margin:6px 0 5px;}
.aspot-lrow .meta{font-family:var(--serif);font-size:16px;color:#a89e8c;}
.aspot-lrow .laside{display:flex;align-items:center;gap:16px;}
.aspot-lrow .laside .price{font-family:var(--sans);font-weight:700;font-size:12px;color:#1c150a;background:var(--gold);padding:4px 10px;}
.aspot-lrow .go{font-family:var(--sans);font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);white-space:nowrap;}
@media(max-width:680px){.aspot-lrow{grid-template-columns:56px 1fr;}.aspot-lrow .laside{grid-column:2;justify-self:start;}}

/* ---- calendar ---- */
.aspot-cal{width:min(1240px,92vw);margin:clamp(24px,3vw,40px) auto clamp(60px,8vw,110px);}
.aspot-mbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.aspot-mbar .mtitle{font-family:var(--disp);font-weight:500;font-size:clamp(22px,3vw,30px);color:#f3ecdd;}
.aspot-mbar .mtitle span{color:var(--gold);}
.aspot-mbar .mnav button{width:40px;height:40px;border:1px solid var(--line);background:transparent;color:var(--gold);
  font-size:18px;cursor:pointer;transition:.18s;margin-left:6px;}
.aspot-mbar .mnav button:hover{background:var(--gold);color:#1c150a;}
.aspot-calgrid{border:1px solid var(--cd-line, rgba(201,161,89,.16));background:#1b1712;box-shadow:0 30px 60px -44px rgba(0,0,0,.85);}
.aspot-dow{display:grid;grid-template-columns:repeat(7,1fr);background:#0f0c09;}
.aspot-dow div{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);text-align:center;padding:12px 4px;}
.aspot-weeks{display:grid;grid-template-columns:repeat(7,1fr);}
.aspot-cell{min-height:120px;border-right:1px solid rgba(201,161,89,.1);border-bottom:1px solid rgba(201,161,89,.1);padding:8px 8px 10px;position:relative;overflow:hidden;}
.aspot-cell:nth-child(7n){border-right:none;}
.aspot-cell.out{background:rgba(0,0,0,.18);}
.aspot-cell.out .dn{opacity:.35;}
.aspot-cell.today{background:rgba(201,161,89,.07);}
.aspot-cell .dn{font-family:var(--mono);font-size:12px;color:#cbc0aa;}
.aspot-cell.today .dn{color:var(--gold);font-weight:600;}
.aspot-ev{display:block;margin-top:6px;padding:3px 6px;background:rgba(201,161,89,.1);border-left:2px solid var(--gold);
  text-decoration:none;overflow:hidden;}
.aspot-ev .t{font-family:var(--sans);font-size:11px;color:#e9e1d2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
.aspot-ev:hover{background:rgba(201,161,89,.2);}
.aspot-cell .more{font-family:var(--mono);font-size:9.5px;color:#9b9384;margin-top:5px;}
@media(max-width:680px){
  .aspot-cell{min-height:70px;padding:4px;}
  .aspot-ev{padding:0;background:transparent;border-left:0;}
  .aspot-ev .t{display:none;}
  .aspot-ev{width:9px;height:9px;border-radius:50%;background:var(--gold);display:inline-block;margin:3px 2px 0 0;}
}

/* ---- theme toggle (sun / moon) ---- */
.aspot-themetog{width:32px;height:30px;border:1px solid var(--line);background:transparent;color:#9b9384;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.18s;flex:none;}
.aspot-themetog svg{width:16px;height:16px;}
.aspot-themetog:hover{color:#f1e8d7;}
.aspot-themetog .moon{display:none;}

/* ============================================================
   LIGHT MODE — cream/bone editorial ("Almanac"). Self-contained:
   the .aspot-arch block repaints its own ground, so it doesn't
   depend on the surrounding Divi section colour.
   ============================================================ */
html.lodge-light .aspot-arch{background:#faf6ed;color:#4a4438;}
html.lodge-light .aspot-barwrap{background:rgba(250,246,237,.93);border-bottom-color:rgba(143,36,24,.16);}
html.lodge-light .aspot-chip{border-color:rgba(28,26,23,.18);color:#6a6253;}
html.lodge-light .aspot-chip:hover{border-color:var(--gold-d);color:#1c1a17;}
html.lodge-light .aspot-cnt{color:#9a907c;}
html.lodge-light .aspot-mtog{color:#6a6253;}
html.lodge-light .aspot-mtog .sw{background:rgba(28,26,23,.2);}
html.lodge-light .aspot-mtog .sw::after{background:#fff;}
html.lodge-light .aspot-mtog.on{color:var(--gold-d);}
html.lodge-light .aspot-viewtog{border-color:rgba(28,26,23,.18);}
html.lodge-light .aspot-viewtog button{color:#a89380;}
html.lodge-light .aspot-viewtog button.on{background:var(--gold);color:#1c150a;}
html.lodge-light .aspot-card{background:#f4ede0;border-color:rgba(143,36,24,.14);}
html.lodge-light .aspot-empty{color:#9a907c;}
html.lodge-light .aspot-lmo h3{color:#1c1a17;}
html.lodge-light .aspot-lmo .rule{background:rgba(143,36,24,.2);}
html.lodge-light .aspot-lrow{border-bottom-color:rgba(143,36,24,.14);}
html.lodge-light .aspot-lrow:hover{background:rgba(201,161,89,.1);}
html.lodge-light .aspot-lrow .ldate .dy{color:#1c1a17;}
html.lodge-light .aspot-lrow .h3{color:#1c1a17;}
html.lodge-light .aspot-lrow .meta{color:#5a5446;}
html.lodge-light .aspot-lrow .ct{color:#7a7263;}
html.lodge-light .aspot-mbar .mtitle{color:#1c1a17;}
html.lodge-light .aspot-mbar .mnav button{border-color:rgba(28,26,23,.18);color:#3a352d;}
html.lodge-light .aspot-calgrid{background:#fff;border-color:rgba(143,36,24,.16);}
html.lodge-light .aspot-dow{background:#f4ede0;}
html.lodge-light .aspot-cell{border-color:rgba(143,36,24,.1);}
html.lodge-light .aspot-cell.out{background:#f6efe2;}
html.lodge-light .aspot-cell.out .dn{color:#c2b8a4;}
html.lodge-light .aspot-cell.today{background:rgba(201,161,89,.13);}
html.lodge-light .aspot-cell .dn{color:#3a352d;}
html.lodge-light .aspot-ev{color:#2a2620;background:rgba(143,36,24,.06);}
html.lodge-light .aspot-ev:hover{background:var(--gold);color:#1c150a;}
html.lodge-light .aspot-themetog{border-color:rgba(28,26,23,.18);color:#a89380;}
html.lodge-light .aspot-themetog:hover{color:#1c1a17;}
html.lodge-light .aspot-themetog .sun{display:none;}
html.lodge-light .aspot-themetog .moon{display:inline-flex;}

/* ---- photo-wall responsiveness (masonry spans; grid re-flows on its own) ---- */
@media(max-width:820px){
  .aspot-grid.is-masonry .aspot-card{grid-column:span 6;}
  .aspot-grid.is-masonry .aspot-card.m-wide,
  .aspot-grid.is-masonry .aspot-card.m-hero{grid-column:span 12;}
  .aspot-grid.is-masonry .aspot-card.m-tall{grid-column:span 6;min-height:380px;}
}
@media(max-width:620px){
  .aspot-grid.is-masonry .aspot-card,
  .aspot-grid.is-masonry .aspot-card.m-wide,
  .aspot-grid.is-masonry .aspot-card.m-hero,
  .aspot-grid.is-masonry .aspot-card.m-tall{grid-column:span 12;min-height:300px;}
}

/* light mode — pager */
html.lodge-light .aspot-more{border-color:rgba(143,36,24,.4);color:#8f2418}
html.lodge-light .aspot-more:hover,html.lodge-light .aspot-more:focus{background:#8f2418;border-color:#8f2418;color:#faf6ed}
