/*
 * The Apostate Almanack — Events front-end styling.
 * A broadsheet listings page for the First Church of Stupidstition.
 * @package cult-following
 */

.cf2-almanack{
	--ink:#16120E; --paper:#F1E6D2; --card:#FBF6EC; --gold:#E3B23C; --bronze:#B07E1C;
	background:var(--paper); color:var(--ink);
	font-family:'Space Grotesk',system-ui,-apple-system,sans-serif;
	max-width:none; margin:0 auto; padding:0 var(--cf2-gutter-r, clamp(24px,5.4vw,104px)) 60px var(--cf2-gutter, clamp(24px,5.4vw,104px));
}
.cf2-almanack *{ box-sizing:border-box; }
.cf2-almanack::before{ content:""; display:block; height:3px; background:var(--ink); margin:2px calc(-1 * var(--cf2-line-r, 50vw - 50%)) 0 calc(-1 * var(--cf2-line-l, 50vw - 50%)); }

/* ---- Masthead ---- */
.cf2-mast{ padding:6px 0 0; }
.cf2-mast-rule{ display:flex; justify-content:space-between; align-items:center; gap:8px; flex-wrap:wrap;
	font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; padding:6px 0; }
.cf2-mast-top{ border-top:0; border-bottom:1px solid var(--ink); color:var(--bronze); }
.cf2-mast-top span:nth-child(2){ color:var(--ink); }
.cf2-mast-bottom{ border-top:1px solid var(--ink); border-bottom:3px solid var(--ink); color:var(--ink); letter-spacing:.16em; }
.cf2-mast-bottom span:nth-child(2){ color:var(--bronze); }
.cf2-mast-name{ text-align:center; padding:16px 0 10px; }
.cf2-mast-kicker{ display:block; font-size:11px; font-weight:700; letter-spacing:.4em; text-transform:uppercase; color:var(--bronze); }
.cf2-mast-name h1{ opacity:0;
	font-family:'UnifrakturCook','Times New Roman',serif; font-weight:700;
	font-size:clamp(42px,8vw,76px); line-height:.92; margin:8px 0 6px; color:var(--ink); }
.cf2-mast-sub{ display:inline-block; font-family:'Big Shoulders Display','Arial Narrow',sans-serif;
	font-weight:800; font-size:15px; letter-spacing:.3em; text-transform:uppercase; }

/* ---- Filter bar ---- */
.cf2-filterbar{ position:sticky; top:0; z-index:20; background:rgba(241,230,210,.95);
	backdrop-filter:blur(10px); border-bottom:2px solid var(--ink); margin:16px 0 0; padding:12px 0; top:var(--cf2-stick, 96px); }
body.admin-bar .cf2-filterbar{ top:var(--cf2-stick, 128px); }
.cf2-filter-row{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
@media(max-width:560px){
	.cf2-search{ flex-basis:100%; }
	.cf2-types{ overflow-x:auto; scrollbar-width:none; } .cf2-types::-webkit-scrollbar{ display:none; }
	.cf2-mast-rule{ letter-spacing:.12em; }
}
.cf2-search{ position:relative; flex:1; min-width:220px; }
.cf2-search span{ position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--bronze); font-size:16px; }
.cf2-search input{ width:100%; border:1.5px solid var(--ink); background:var(--card); border-radius:0;
	padding:10px 14px 10px 36px; font:inherit; font-size:14px; color:var(--ink); outline:none; }
.cf2-types,.cf2-sorts{ display:inline-flex; align-items:center; }
.cf2-types{ border:1.5px solid var(--ink); background:var(--card); }
.cf2-types button{ border:0; border-left:1.5px solid var(--ink); background:transparent; color:var(--ink);
	font:inherit; font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.04em; padding:9px 14px; cursor:pointer; }
.cf2-types button:first-child{ border-left:0; }
.cf2-types button.is-on{ background:var(--ink); color:var(--gold); font-weight:700; }
.cf2-sorts{ gap:6px; }
.cf2-sorts>span{ font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--bronze); }
.cf2-sorts button{ border:1.5px solid rgba(22,18,14,.35); background:transparent; color:var(--ink); font:inherit;
	font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.04em; padding:6px 11px; cursor:pointer; }
.cf2-sorts button.is-on{ border-color:var(--ink); background:var(--ink); color:var(--gold); font-weight:700; }
.cf2-desks{ display:flex; gap:7px; align-items:center; flex-wrap:nowrap; overflow-x:auto; margin-top:11px; scrollbar-width:none; -ms-overflow-style:none; }
.cf2-desks::-webkit-scrollbar{ display:none; }
.cf2-desks>span{ font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.cf2-desks button{ --desk:var(--ink); display:inline-flex; align-items:center; gap:5px; border:1.5px solid var(--desk);
	background:transparent; color:var(--ink); font:inherit; font-weight:600; font-size:11px; padding:5px 11px;
	border-radius:999px; cursor:pointer; flex:none; white-space:nowrap; }
.cf2-desks button.is-on{ background:var(--desk); color:#FBF6EC; }
.cf2-desks-note{ margin-top:10px; font-size:12px; font-style:italic; color:var(--bronze); }

/* ---- Grid ---- */
.cf2-almanack-grid{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:28px; align-items:start; padding:22px 0 0; }
.cf2-almanack-rail{ position:sticky; top:calc(var(--cf2-stick, 96px) + 108px); display:flex; flex-direction:column; gap:16px; max-height:calc(100vh - var(--cf2-stick, 96px) - 124px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; -ms-overflow-style:none; padding:0 8px 8px 0; }
.cf2-almanack-rail::-webkit-scrollbar{ display:none; }

@media(max-width:980px){ .cf2-almanack-grid{ grid-template-columns:1fr; } .cf2-almanack-rail{ position:static; max-height:none; } }

/* ---- Calendar ---- */
.cf2-cal{ background:var(--card); border:2px solid var(--ink); box-shadow:5px 5px 0 rgba(22,18,14,.14); }
.cf2-cal-head{ display:flex; align-items:center; justify-content:space-between; background:var(--ink); color:var(--gold); padding:9px 12px; }
.cf2-cal-head b{ font-family:'Big Shoulders Display','Arial Narrow',sans-serif; font-weight:800; font-size:19px; letter-spacing:.06em; text-transform:uppercase; }
.cf2-cal-nav{ color:var(--gold); text-decoration:none; font-size:20px; line-height:1; padding:0 8px; }
.cf2-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; padding:11px 12px; }
.cf2-cal-dow{ text-align:center; font-size:9.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--bronze); padding:2px 0 4px; }
.cf2-cal-cell{ border:1.5px solid rgba(22,18,14,.1); background:var(--card); border-radius:6px; min-height:38px;
	display:flex; flex-direction:column; align-items:center; justify-content:center; cursor:pointer; padding:4px 0 3px;
	font:inherit; font-size:12.5px; font-weight:600; color:var(--ink); }
.cf2-cal-cell.is-blank{ border:0; background:transparent; cursor:default; }
.cf2-cal-cell.has-ev{ background:#F4E9D6; border-color:rgba(22,18,14,.22); }
.cf2-cal-cell.is-today{ border-color:var(--bronze); color:var(--bronze); font-weight:800; }
.cf2-cal-cell.is-sel{ background:var(--gold); border-color:var(--ink); color:var(--ink); font-weight:800; }
.cf2-cal-dots{ display:flex; gap:2px; height:6px; margin-top:2px; }
.cf2-cal-dot,.cf2-cal-dots i{ width:5px; height:5px; border-radius:50%; display:block; }
.cf2-cal-dot-a{ background:var(--gold); }
.cf2-cal-dot-m{ background:var(--bronze); }
.cf2-cal-cell.is-sel .cf2-cal-dot-a,.cf2-cal-cell.is-sel .cf2-cal-dot-m{ background:var(--ink); }
.cf2-cal-foot{ display:flex; align-items:center; justify-content:space-between; border-top:1px solid rgba(22,18,14,.15); padding:9px 12px; }
.cf2-cal-today{ border:0; background:transparent; color:var(--ink); font:inherit; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.cf2-cal-clear{ border:0; background:var(--ink); color:var(--gold); font:inherit; font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; padding:5px 11px; border-radius:999px; }

/* ---- Legend + Post form ---- */
.cf2-legend{ background:var(--ink); color:var(--paper); padding:14px 16px; }
.cf2-legend b{ font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.cf2-legend span{ display:flex; align-items:center; gap:9px; font-size:12px; margin-top:8px; }
.cf2-legend i{ width:8px; height:8px; border-radius:50%; flex:none; }
.cf2-legend .cf2-cal-dot-a{ background:var(--gold); } .cf2-legend .cf2-cal-dot-m{ background:var(--bronze); }
.cf2-legend p{ margin:11px 0 0; font-size:10.5px; line-height:1.55; color:rgba(241,230,210,.5); }
.cf2-postform{ background:var(--card); border:2px dashed var(--bronze); padding:15px 16px; display:flex; flex-direction:column; gap:8px; }
.cf2-postform-kicker{ font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--bronze); }
.cf2-postform h4{ font-family:'Big Shoulders Display','Arial Narrow',sans-serif; font-weight:800; font-size:19px; text-transform:uppercase; margin:2px 0 4px; }
.cf2-postform input,.cf2-postform select,.cf2-postform textarea{ border:1.5px solid rgba(22,18,14,.3); background:#fff; padding:9px 11px; font:inherit; font-size:13px; color:var(--ink); border-radius:0; }
.cf2-postform-row{ display:flex; gap:8px; } .cf2-postform-row input{ flex:1; min-width:0; }
.cf2-postform .cf2-fine{ font-size:10px; color:rgba(22,18,14,.5); font-style:italic; margin:2px 0 0; line-height:1.5; }
.cf2-postform-out p{ font-size:12px; color:rgba(22,18,14,.6); margin:6px 0 0; }

/* ---- Listings ---- */
.cf2-ev-count{ font-family:'Big Shoulders Display','Arial Narrow',sans-serif; font-weight:800; font-size:14px; letter-spacing:.1em; text-transform:uppercase; color:var(--bronze); margin-bottom:14px; }
.cf2-fold{ display:flex; align-items:center; gap:12px; margin:22px 0 16px; }
.cf2-fold span{ font-family:'Big Shoulders Display','Arial Narrow',sans-serif; font-weight:800; font-size:14px; letter-spacing:.24em; text-transform:uppercase; color:var(--bronze); white-space:nowrap; }
.cf2-fold i{ flex:1; height:2px; background:var(--ink); }
.cf2-ev-list{ columns:2; column-gap:22px; }
@media(max-width:760px){ .cf2-ev-list{ columns:1; } }

.cf2-ev{ break-inside:avoid; margin:0 0 22px; overflow:hidden; border:1.5px solid var(--ink); background:var(--card); color:var(--ink); box-shadow:5px 5px 0 rgba(22,18,14,.13); }
.cf2-ev.is-service{ background:var(--ink); color:var(--paper); border-width:2px; box-shadow:none; }
.cf2-ev-art{ position:relative; height:210px; background:var(--ink); overflow:hidden; display:flex; align-items:center; justify-content:center; border-bottom:2px solid var(--ink); }
.cf2-ev.is-service .cf2-ev-art{ border-bottom:2px solid rgba(227,178,60,.35); }
.cf2-ev-art img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 26%; }
.cf2-ev-art-glyph span{ font-size:72px; color:var(--gold); }
.cf2-ev-body{ padding:14px 16px 15px; }
.cf2-ev-stamps{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:9px; }
.cf2-ev-desk{ display:inline-flex; align-items:center; gap:5px; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:4px 10px; color:#FBF6EC; }
.cf2-ev.is-member .cf2-ev-desk{ transform:rotate(-1.5deg); }
.cf2-ev.is-service .cf2-ev-desk{ background:var(--gold)!important; color:var(--ink); }
.cf2-ev-when{ font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(22,18,14,.55); }
.cf2-ev.is-service .cf2-ev-when{ color:rgba(241,230,210,.6); }
.cf2-ev-title{ margin:0 0 8px; line-height:1.02; }
.cf2-ev-title a{ text-decoration:none; }
.cf2-ev.is-member .cf2-ev-title{ font-family:'Big Shoulders Display','Arial Narrow',sans-serif; font-weight:800; font-size:22px; text-transform:uppercase; letter-spacing:.005em; }
.cf2-ev.is-member .cf2-ev-title a{ color:var(--ink); }
.cf2-ev.is-service .cf2-ev-title{ font-family:'UnifrakturCook','Times New Roman',serif; font-weight:700; font-size:25px; }
.cf2-ev.is-service .cf2-ev-title a{ color:var(--gold); }
.cf2-ev-place{ font-size:11.5px; font-weight:600; color:var(--bronze); margin-bottom:9px; }
.cf2-ev.is-service .cf2-ev-place{ color:rgba(241,230,210,.82); }
.cf2-ev-blurb{ margin:0; font-size:12.5px; line-height:1.62; color:rgba(22,18,14,.72); }
.cf2-ev.is-service .cf2-ev-blurb{ color:rgba(241,230,210,.72); }
.cf2-ev-foot{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:13px; padding-top:12px; border-top:1px solid rgba(22,18,14,.14); }
.cf2-ev.is-service .cf2-ev-foot{ border-top:1px solid rgba(227,178,60,.25); }
.cf2-ev-by{ font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:rgba(22,18,14,.5); }
.cf2-ev-by a{ color:inherit; text-decoration:underline; text-decoration-color:rgba(176,126,28,.55); text-underline-offset:2px; }
.cf2-ev-by a:hover{ color:var(--bronze); }
.cf2-ev.is-service .cf2-ev-by{ color:rgba(241,230,210,.55); }
.cf2-ev-price{ font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:3px 9px; border-radius:999px; background:var(--gold); color:var(--ink); flex:none; }
.cf2-ev-price.is-free{ background:transparent; border:1.5px solid #3E6B4F; color:#3E6B4F; }
.cf2-ev.is-service .cf2-ev-price.is-free{ border-color:rgba(241,230,210,.4); color:rgba(241,230,210,.85); }
.cf2-ev-going{ margin-left:auto; font-size:11px; font-weight:700; color:var(--bronze); white-space:nowrap; }
.cf2-ev.is-service .cf2-ev-going{ color:var(--gold); }
.cf2-ev-attend{ border:1.5px solid var(--ink); background:var(--ink); color:var(--paper); padding:8px 15px;
	font:inherit; font-weight:700; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; cursor:pointer; border-radius:999px; }
.cf2-ev-attend.is-in{ background:transparent; color:var(--ink); }
.cf2-ev.is-service .cf2-ev-attend{ border:0; background:var(--gold); color:var(--ink); }
.cf2-ev.is-service .cf2-ev-attend.is-in{ background:transparent; border:1.5px solid rgba(227,178,60,.5); color:var(--gold); }

/* Featured / above the fold */
.cf2-ev.is-featured{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); }
.cf2-ev.is-featured .cf2-ev-art{ height:100%; min-height:320px; border-bottom:0; }
.cf2-ev.is-featured.is-member .cf2-ev-art{ border-right:2px solid var(--ink); }
.cf2-ev.is-featured .cf2-ev-art-glyph{ background:var(--ink); } .cf2-ev.is-featured .cf2-ev-art-glyph span{ font-size:128px; }
.cf2-ev.is-featured .cf2-ev-body{ padding:24px 26px; }
.cf2-ev.is-featured.is-member .cf2-ev-title{ font-size:40px; }
.cf2-ev.is-featured.is-service .cf2-ev-title{ font-size:46px; }
.cf2-ev.is-featured .cf2-ev-blurb{ font-size:14px; }
@media(max-width:560px){ .cf2-ev.is-featured{ grid-template-columns:1fr; } .cf2-ev.is-featured .cf2-ev-art{ min-height:180px; } }

/* Empty state */
.cf2-ev-empty{ text-align:center; padding:54px 24px; border:2px dashed rgba(22,18,14,.3); background:var(--card); }
.cf2-ev-empty span{ font-size:40px; color:var(--bronze); }
.cf2-ev-empty b{ display:block; font-family:'Big Shoulders Display','Arial Narrow',sans-serif; font-size:24px; text-transform:uppercase; margin:8px 0 6px; }
.cf2-ev-empty p{ margin:0 auto; max-width:44ch; font-size:13px; color:rgba(22,18,14,.6); line-height:1.6; }

/* ---- Share modal ---- */
.cf2-ev-modal{ position:fixed; inset:0; z-index:9000; background:rgba(22,18,14,.62); display:flex; align-items:center; justify-content:center; padding:24px; }
.cf2-ev-modal[hidden]{ display:none; }
.cf2-ev-modal-box{ background:var(--paper); border:2.5px solid var(--ink); max-width:452px; width:100%; box-shadow:12px 12px 0 rgba(22,18,14,.32); }
.cf2-ev-modal-head{ display:flex; align-items:center; justify-content:space-between; background:var(--ink); color:var(--gold); padding:9px 16px; }
.cf2-ev-modal-head span{ font-size:10px; font-weight:800; letter-spacing:.24em; text-transform:uppercase; }
.cf2-ev-modal-head button{ border:0; background:transparent; color:var(--gold); font-size:19px; cursor:pointer; line-height:1; }
.cf2-ev-modal-body{ padding:22px 24px 24px; text-align:center; }
.cf2-ev-modal-star{ font-size:38px; color:var(--bronze); }
.cf2-ev-modal-body b{ display:block; font-family:'Big Shoulders Display','Arial Narrow',sans-serif; font-size:28px; text-transform:uppercase; line-height:1.05; margin:6px 0 9px; }
.cf2-ev-modal-body p{ margin:0 auto 4px; max-width:38ch; font-size:13.5px; line-height:1.6; color:rgba(22,18,14,.75); }
.cf2-ev-modal-ask{ font-style:italic; color:var(--bronze); font-size:12px!important; margin:9px auto 20px!important; }
.cf2-ev-modal-btns{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }

/* ---- v2.8.1: on the events page, drop the theme's black page-title band
        and open the page container to the homepage's full content width ---- */
body.cf2-events-page .ss-pagehead{ display:none; }
body.cf2-events-page .ss-page,
body.cf2-events-page .ss-page-outer{ max-width:none; padding-left:0; padding-right:0; }
body.cf2-events-page .ss-page{ padding-top:0; padding-bottom:0; }
body.cf2-events-page .ss-page-outer{ padding-top:0; padding-bottom:0; }
body.cf2-events-page .ss-page-after-head{ padding-top:0; }
body.cf2-events-page #ss-main{ padding-top:0; }

/* v2.8.5: masthead shows only in its true face (no fallback-font flash) */
.cf2-fonts-in .cf2-mast-name h1{ opacity:1; transition:opacity .18s ease-out; }
