/* ─────────────────────────────────────────────────────────────────────────
   EVENTS & RETREATS — page-specific styles
   Loaded conditionally via functions.php on is_page( 'events' ).
   Depends on: tokens.css, base.css, components.css, modal.css, style.css.

   Brand: --hub-events (#5D002C Red Merlot), bar companion #8B1940.

   Section background pattern:
     ev-section-white  → white
     ev-section-cream  → cream
     ev-section-dark   → forest deep (this one is actually dark)

   Note: residency uses class names like rp-section-dark to mean cream —
   that was inverted intentionally. Events keeps the literal meaning:
   dark = forest, cream = cream. Less confusing.

   TODO: ipnav, testimonials, faq, vlb-* are duplicated from residency.css.
   Extract to components.css after this build settles.
   ───────────────────────────────────────────────────────────────────── */


/* ── BROW + HEADING UTILITIES ────────────────────────────────────────── */
.brow{font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;}
.brow-host{color:var(--hub-events);}
.brow-light{color:rgba(200,216,192,.7);}


/* ── SECTION SHELL ────────────────────────────────────────────────────── */
.ev-section{padding:96px 64px;}
.ev-section-inner{max-width:1152px;margin:0 auto;}
.ev-section-white{background:#fff;}
.ev-section-cream{background:var(--surface-cream);}
.ev-section-dark{
	background:var(--surface-forest);
	color:var(--on-dark-body);
}


/* ── TYPOGRAPHY ───────────────────────────────────────────────────────── */
.ev-h2{
	font-family:var(--font-heading);
	font-size:clamp(28px,3.5vw,44px);
	font-weight:500;line-height:1.15;
	text-wrap:balance;margin-bottom:20px;
}
.ev-h2-dark{color:var(--on-light-h);}
.ev-h2-light{color:#fff;}

.ev-lead{
	font-size:18px;line-height:1.85;
	color:var(--on-light-body);
	text-wrap:pretty;
	margin-bottom:24px;max-width:640px;
}
.ev-body{
	font-size:17px;line-height:1.85;
	color:var(--on-light-body);
	text-wrap:pretty;margin-bottom:20px;
}

/* ── ACF body wrappers ─────────────────────────────────────────────
   Wysiwyg fields don't preserve class attributes on paste — wrap
   the field output in a body div and target child <p> here. ──── */
.ev-overview-body p,
.ev-corporate-body p,
.ev-stays-body p{
	font-size:17px;line-height:1.85;
	color:var(--on-light-body);
	text-wrap:pretty;
	margin-bottom:20px;
}
.ev-overview-body p:last-child,
.ev-corporate-body p:last-child,
.ev-stays-body p:last-child{margin-bottom:0;}

.ev-dining-body p{
	font-size:15px;color:var(--on-light-body);
	line-height:1.75;text-wrap:pretty;
	margin:0 0 12px 0;
}
.ev-dining-body p:last-child{margin-bottom:0;}

.ev-enquire-body{margin-bottom:32px;}
.ev-enquire-body p{
	font-size:15px;color:var(--on-light-body);
	line-height:1.75;
	margin-bottom:24px;text-wrap:pretty;
}
.ev-enquire-body p:last-child{margin-bottom:0;}
.ev-cta{
	font-size:15px;font-weight:500;
	color:var(--hub-events);
	display:inline-flex;align-items:center;gap:8px;
	min-height:44px;margin-top:auto;
	transition:opacity .2s;
}
.ev-cta::after{content:'\2192';font-size:16px;}
.ev-cta:hover{opacity:.7;}


/* ── TWO-COLUMN LAYOUTS ──────────────────────────────────────────────── */
.ev-two-wide{
	display:grid;grid-template-columns:3fr 2fr;gap:80px;align-items:center;
}
.ev-two-wide-r{
	display:grid;grid-template-columns:2fr 3fr;gap:80px;align-items:center;
}


/* ── IMAGE PLACEHOLDERS ──────────────────────────────────────────────── */
.ev-img{
	border-radius:12px;
	display:flex;align-items:center;justify-content:center;
	background:linear-gradient(145deg,#DAEEDF,#B0BFA1);
}
.ev-img-overview{
	height:440px;
	background:linear-gradient(145deg,#3A5947,#1B3A2D);
}
.ev-img-corporate{
	height:520px;
	background:linear-gradient(145deg,#5D002C,#3A001C);
}
.ev-img-stays{
	height:480px;
}
.ev-img-ph{
	font-size:10px;letter-spacing:.07em;
	color:rgba(27,58,45,.25);
	text-align:center;line-height:2;
}
.ev-img-ph-light{
	color:rgba(255,255,255,.25);
}


/* ── HERO ─────────────────────────────────────────────────────────────── */
.ev-hero{
	background:var(--surface-forest);
	min-height:88vh;
	display:grid;grid-template-columns:2fr 3fr;
	align-items:center;
	overflow:hidden;
	position:relative;
}
.ev-hero-copy{
	padding:100px 64px 80px;
	display:flex;flex-direction:column;justify-content:center;
	position:relative;z-index:1;
}
.ev-hero-brow{
	font-size:11px;font-weight:500;letter-spacing:.12em;
	text-transform:uppercase;
	color:#E8B8C8;
	margin-bottom:20px;
}
.ev-hero-h{
	font-family:var(--font-heading);
	font-size:clamp(40px,5vw,64px);
	font-weight:500;color:#fff;
	line-height:1.1;text-wrap:balance;
	margin-bottom:24px;
}
.ev-hero-sub{
	font-size:18px;color:rgba(200,216,192,.75);
	line-height:1.8;max-width:520px;
	text-wrap:pretty;margin-bottom:40px;
}
.ev-hero-ctas{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.ev-hero-cta-primary{
	background:var(--surface-cream);color:var(--surface-forest);
	padding:0 28px;height:52px;
	border-radius:6px;
	font-size:15px;font-weight:500;
	display:inline-flex;align-items:center;
	transition:opacity .2s;cursor:pointer;
}
.ev-hero-cta-primary:hover{opacity:.85;}
.ev-hero-cta-secondary{
	color:#E8B8C8;
	font-size:15px;font-weight:500;
	display:inline-flex;align-items:center;gap:8px;
	height:52px;transition:opacity .2s;cursor:pointer;
}
.ev-hero-cta-secondary::after{content:'\2192';}
.ev-hero-cta-secondary:hover{opacity:.7;}
.ev-hero-img{
	height:88vh;
	background:linear-gradient(160deg,#5D002C,#3A001C);
	display:flex;align-items:center;justify-content:center;
	position:relative;z-index:0;
}
.ev-hero-img-ph{
	font-size:11px;letter-spacing:.07em;
	color:rgba(255,255,255,.2);
	text-align:center;line-height:2;
}

/* Looping hero video. Sits as a child of .ev-hero-img and covers the
   div with object-fit cover. Hidden on mobile to save bandwidth. */
.ev-hero-img .hero-video{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	z-index:0;
}
@media(max-width:860px){
	.ev-hero-img .hero-video{display:none;}
}

/* Desktop only: short gradient overlay on the image's left edge to soften
   the transition from the dark forest copy column to the photo. */
@media(min-width:861px){
	.ev-hero-img::before{
		content:'';
		position:absolute;
		inset:0;
		background:linear-gradient(to right,
			var(--surface-forest) 0%,
			transparent 12%);
		pointer-events:none;
		z-index:1;
	}
}


/* ── IN-PAGE NAV (sticky, scroll spy) ─────────────────────────────────── */
.ipnav{
	position:sticky;top:80px;z-index:90;
	background:var(--surface-cream);
	border-bottom:1px solid rgba(27,58,45,.1);
	min-height:53px;
	display:flex;align-items:stretch;
}
.ipnav-inner{
	display:flex;
	overflow-x:auto;scrollbar-width:none;
	-webkit-overflow-scrolling:touch;
	touch-action:pan-x;
	overscroll-behavior-x:contain;
	padding:0 40px;
}
.ipnav-inner::-webkit-scrollbar{display:none;}
.ipnav-link{
	font-size:13px;font-weight:500;
	color:rgba(27,58,45,.5);
	padding:16px 20px;
	white-space:nowrap;
	border:none;background:none;
	border-bottom:2px solid transparent;
	transition:color .2s,border-color .2s;
	font-family:inherit;cursor:pointer;
	-webkit-appearance:none;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
}
.ipnav-link:hover{color:var(--on-light-h);}
.ipnav-link.active{
	color:var(--hub-events);
	border-bottom-color:var(--hub-events);
}


/* ── CORPORATE STRIP ──────────────────────────────────────────────────── */
.ev-corp-incl-h{
	margin-top:64px;padding-top:48px;
	border-top:1px solid rgba(27,58,45,.08);
	font-family:var(--font-heading);
	font-size:20px;font-weight:500;letter-spacing:-.01em;
	color:var(--on-light-h);
	margin-bottom:28px;
}
.ev-corp-strip{
	display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
	gap:24px;
}
.ev-corp-item-h{
	font-size:15px;font-weight:500;
	color:var(--on-light-h);
	margin-bottom:8px;
}
.ev-corp-item-p{
	font-size:14px;color:var(--on-light-body);
	line-height:1.65;
	text-wrap:pretty;
}


/* ── GATHERINGS GRID ──────────────────────────────────────────────────── */
.ev-gather-grid{
	display:grid;grid-template-columns:1fr 1fr;
	gap:24px;
	margin-top:48px;
}

.ev-gather-card{
	border:1px solid rgba(27,58,45,.1);
	border-radius:12px;
	padding:36px;
	display:flex;flex-direction:column;
	transition:border-color .2s;
}
.ev-gather-card:hover{border-color:var(--hub-events);}
.ev-gather-card-featured{
	background:rgba(93,0,44,.04);
	border-color:rgba(93,0,44,.18);
}
.ev-gather-label{
	font-size:11px;font-weight:500;
	letter-spacing:.1em;text-transform:uppercase;
	color:var(--hub-events);
	margin-bottom:14px;
}
.ev-gather-h{
	font-family:var(--font-heading);
	font-size:24px;font-weight:500;
	color:var(--on-light-h);
	line-height:1.25;
	text-wrap:balance;
	margin-bottom:14px;
}
.ev-gather-p{
	font-size:15px;color:var(--on-light-body);
	line-height:1.75;
	text-wrap:pretty;flex:1;margin-bottom:18px;
}
.ev-gather-tags{
	font-size:12px;color:rgba(27,58,45,.45);
	margin-bottom:24px;line-height:1.6;
}
.ev-gather-cta{
	font-size:14px;font-weight:500;
	color:var(--hub-events);
	display:inline-flex;align-items:center;gap:6px;
	min-height:44px;
	margin-top:auto;
	border-top:1px solid rgba(27,58,45,.08);
	padding-top:18px;width:100%;
	cursor:pointer;
}
.ev-gather-cta::after{content:'\2192';}

/* Fellowship card spans full width with a side image */
.ev-gather-card-fellowship{
	grid-column:1 / -1;
	display:grid;
	grid-template-columns:1.4fr 1fr;
	padding:0;overflow:hidden;
}
.ev-gather-fellowship-copy{
	padding:36px;
	display:flex;flex-direction:column;
}
.ev-gather-fellowship-img{
	min-height:320px;
	background:linear-gradient(145deg,#3A5947,#1B3A2D);
	display:flex;align-items:center;justify-content:center;
}


/* ── SPACES (dark) — venue cards ─────────────────────────────────────── */
.ev-spaces-intro{
	max-width:700px;
	margin-bottom:56px;
}
.ev-spaces-sub{
	font-size:18px;color:rgba(200,216,192,.7);
	line-height:1.85;text-wrap:pretty;
	margin:0;
}

.ev-venue-grid{
	display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
	gap:24px;
}

.ev-venue-card{
	background:#fff;
	border-radius:12px;overflow:hidden;
	display:grid;grid-template-columns:5fr 7fr;
}
.ev-venue-photo{
	position:relative;
	min-height:240px;
	background:linear-gradient(145deg,#3A5947,#1B3A2D);
	display:flex;align-items:center;justify-content:center;
}
.ev-venue-photo-ph{
	font-size:10px;letter-spacing:.07em;
	color:rgba(255,255,255,.25);
	text-align:center;line-height:2;
}
.ev-venue-photo-btn{
	position:absolute;bottom:12px;left:12px;
	background:rgba(255,255,255,.92);
	border:none;border-radius:20px;
	padding:6px 14px;
	font-size:12px;font-weight:500;
	color:#1B3A2D;cursor:pointer;
	display:flex;align-items:center;gap:6px;
	min-height:44px;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;font-family:inherit;
}
.ev-venue-photo-btn svg{width:14px;height:14px;flex-shrink:0;}

.ev-venue-detail{padding:28px;display:flex;flex-direction:column;}
.ev-venue-tag{
	font-size:11px;font-weight:500;letter-spacing:.08em;
	text-transform:uppercase;
	color:#E8B8C8;
	margin-bottom:8px;
}
.ev-venue-name{
	font-family:var(--font-heading);
	font-size:22px;color:var(--on-light-h);
	margin-bottom:6px;
}
.ev-venue-dim{
	font-size:13px;color:rgba(27,58,45,.45);
	margin-bottom:18px;line-height:1.5;
}

.ev-venue-caps{
	display:flex;align-items:stretch;gap:16px;
	padding:14px 0;
	border-top:1px solid rgba(27,58,45,.08);
	border-bottom:1px solid rgba(27,58,45,.08);
	margin-bottom:18px;
}
.ev-cap-item{flex:1;text-align:center;}
.ev-cap-n{
	font-family:var(--font-heading);
	font-size:24px;color:var(--hub-events);
	line-height:1;margin-bottom:4px;
}
.ev-cap-label{
	font-size:10px;letter-spacing:.08em;text-transform:uppercase;
	color:rgba(27,58,45,.5);
}
.ev-cap-sep{
	width:1px;background:rgba(27,58,45,.08);
}

.ev-venue-desc{
	font-size:14px;color:var(--on-light-body);
	line-height:1.7;
	text-wrap:pretty;margin:0;
	flex:1;
}


/* ── PDF CTA (events guide) ──────────────────────────────────────────── */
.ev-pdf-cta{
	display:inline-flex;align-items:center;gap:12px;
	margin-top:48px;
	background:transparent;
	border:1px solid rgba(255,255,255,.2);
	color:#fff;
	padding:14px 24px;border-radius:8px;
	font-size:14px;font-weight:500;
	font-family:inherit;cursor:pointer;
	transition:background .2s,border-color .2s;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
	-webkit-appearance:none;
}
.ev-pdf-cta:hover{
	background:rgba(255,255,255,.08);
	border-color:rgba(255,255,255,.4);
}
.ev-pdf-icon{
	width:18px;height:22px;flex-shrink:0;
}


/* ── ON-SITE STAYS ────────────────────────────────────────────────────── */
.ev-acc-features{
	margin-top:28px;
	display:flex;flex-direction:column;gap:10px;
}
.ev-acc-feat{
	font-size:15px;color:var(--on-light-body);
	padding-left:20px;position:relative;line-height:1.6;
}
.ev-acc-feat::before{
	content:'';position:absolute;left:0;top:9px;
	width:6px;height:6px;border-radius:50%;
	background:var(--hub-events);
}
.ev-stays-note{
	font-size:14px;color:rgba(27,58,45,.5);
	margin-top:20px;font-style:italic;
}


/* ── CATERING ─────────────────────────────────────────────────────────── */
.ev-catering-header{margin-bottom:48px;}
.ev-dining-grid{
	display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.ev-dining-card{
	background:var(--surface-cream);
	border-radius:12px;padding:32px;
}
.ev-dining-label{
	font-size:11px;font-weight:500;
	letter-spacing:.1em;text-transform:uppercase;
	color:var(--hub-events);
	margin-bottom:12px;
}
.ev-dining-h{
	font-family:var(--font-heading);
	font-size:22px;color:var(--on-light-h);
	margin-bottom:12px;text-wrap:balance;
}
.ev-dining-p{
	font-size:15px;color:var(--on-light-body);
	line-height:1.75;text-wrap:pretty;margin:0;
}


/* ── TESTIMONIALS (duplicated from residency.css; extract later) ─────── */
.testimonials{
	background:var(--surface-cream);
	padding:80px 64px;
}
.testi-inner{max-width:1152px;margin:0 auto;}
.testi-header{
	display:flex;align-items:center;justify-content:space-between;
	margin-bottom:32px;
}
.testi-h{
	font-family:var(--font-heading);
	font-size:36px;font-weight:500;
	color:var(--on-light-h);text-wrap:balance;
}
.testi-track{
	display:flex;gap:20px;
	overflow-x:scroll;
	scroll-snap-type:x mandatory;
	-webkit-overflow-scrolling:touch;
	scroll-behavior:smooth;
	scrollbar-width:none;
	padding-bottom:4px;
}
.testi-track::-webkit-scrollbar{display:none;}
@media(min-width:861px){
	.testi-track{justify-content:safe center;}
	.testi-track.has-overflow{justify-content:flex-start;}
}
.testi-card{
	min-width:340px;max-width:340px;
	border-radius:12px;overflow:hidden;
	border:1px solid rgba(27,58,45,.1);
	flex-shrink:0;
	display:flex;flex-direction:column;
	background:#fff;
	scroll-snap-align:start;
}
.testi-img{
	height:180px;flex-shrink:0;position:relative;
	display:flex;align-items:center;justify-content:center;
}
.testi-img--highlight{background:#B0BFA1;}
.testi-pull{
	font-family:var(--font-heading);
	font-size:18px;font-weight:400;
	color:#1B3A2D;
	line-height:1.5;text-align:center;
	padding:0 28px;text-wrap:balance;
}
.testi-body{
	padding:24px;
	display:flex;flex-direction:column;flex:1;
}
.testi-bar{
	width:24px;height:2px;border-radius:1px;
	margin-bottom:14px;flex-shrink:0;
}
.testi-bar-host{background:#8B1940;}
.testi-quote{
	font-family:var(--font-heading);
	font-size:15px;font-weight:400;
	color:var(--on-light-h);
	line-height:1.7;flex:1;margin-bottom:14px;text-wrap:pretty;
}
.testi-name{font-size:13px;font-weight:500;color:var(--on-light-h);}
.testi-attr{font-size:12px;color:var(--on-cream-label);margin-top:2px;}
.testi-dots{display:flex;gap:7px;margin-top:24px;justify-content:center;}
.testi-dot{
	cursor:pointer;background:none;border:none;
	padding:4px;
	width:7px;height:7px;border-radius:50%;
	background:rgba(27,58,45,.2);
	transition:background .2s;
	-webkit-tap-highlight-color:transparent;
}
.testi-dot.active{background:var(--on-light-h);}


/* ── FAQ (.faq-* prefix — harmonised) ────────────────────────────────── */
.ev-faq-inner{max-width:800px;}

.faq-toggle-section{
	display:flex;align-items:center;justify-content:space-between;
	cursor:pointer;padding:0;
	background:none;border:none;
	width:100%;font-family:inherit;
	text-align:left;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
	-webkit-appearance:none;
}
.faq-section-h{margin:0;}
.faq-toggle-icon{
	font-size:13px;font-weight:500;
	color:var(--hub-events);
	display:flex;align-items:center;gap:8px;
	white-space:nowrap;flex-shrink:0;
}
.faq-toggle-icon::after{content:'\2193';transition:transform .25s;}
.faq-toggle-section[aria-expanded="true"] .faq-toggle-icon::after{transform:rotate(180deg);}

.faq-collapsible{
	max-height:0;overflow:hidden;
	transition:max-height .4s ease;
}
.faq-collapsible.open{max-height:4000px;}

.faq-list{margin-top:32px;}
.faq-item{
	border-bottom:1px solid rgba(27,58,45,.1);
}
.faq-trigger{
	width:100%;text-align:left;
	padding:24px 0;
	background:none;border:none;
	font-family:inherit;cursor:pointer;
	display:flex;align-items:center;justify-content:space-between;gap:16px;
	font-size:16px;font-weight:500;
	color:var(--on-light-h);
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
	-webkit-appearance:none;
}
.faq-trigger:hover{color:var(--hub-events);}
.faq-icon{
	font-size:20px;color:var(--hub-events);
	flex-shrink:0;transition:transform .25s;
	font-weight:300;
}
.faq-trigger[aria-expanded="true"] .faq-icon{transform:rotate(45deg);}
.faq-answer{
	max-height:0;overflow:hidden;
	transition:max-height .3s ease;
}
.faq-answer-inner{
	padding-bottom:24px;
	font-size:16px;color:var(--on-light-body);
	line-height:1.8;text-wrap:pretty;
}
.faq-answer-inner a{color:var(--hub-events);}
.faq-answer-inner p{margin:0 0 1em;}
.faq-answer-inner p:last-child{margin-bottom:0;}
.faq-trigger[aria-expanded="true"] + .faq-answer{max-height:600px;}


/* ── ENQUIRE — 2-col decision point ──────────────────────────────────── */
.ev-enquire{
	background:var(--surface-cream);
	padding:80px 64px;
}
.ev-enquire-inner{
	max-width:1152px;margin:0 auto;
	display:grid;grid-template-columns:1fr 1fr;gap:2px;
}
.ev-enq-col{
	padding:48px;background:#fff;
	display:flex;flex-direction:column;
}
.ev-enq-col:first-child{border-radius:12px 0 0 12px;}
.ev-enq-col:last-child{border-radius:0 12px 12px 0;}
.ev-enq-label{
	font-size:10px;font-weight:500;
	letter-spacing:.12em;text-transform:uppercase;
	color:var(--on-cream-label);
	margin-bottom:14px;
}
.ev-enq-h{
	font-family:var(--font-heading);
	font-size:26px;color:var(--on-light-h);
	margin-bottom:14px;text-wrap:balance;
}
.ev-enq-p{
	font-size:15px;color:var(--on-light-body);
	line-height:1.75;margin-bottom:24px;text-wrap:pretty;
}
.ev-enq-cta{
	background:var(--hub-events);
	color:#fff;
	padding:0 24px;height:48px;border-radius:6px;
	font-size:14px;font-weight:500;
	display:inline-flex;align-items:center;
	margin-top:auto;text-decoration:none;
	transition:opacity .2s;cursor:pointer;
	width:fit-content;
	font-family:inherit;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
}
.ev-enq-cta:hover{opacity:.85;}


/* ── HAPPENING AT THE VILLAGE ─────────────────────────────────────────── */
.ev-happening{
	background:var(--surface-deep);
	padding:80px 64px;
}
.ev-happening-inner{max-width:1152px;margin:0 auto;}
.ev-hap-brow{
	font-size:11px;font-weight:500;letter-spacing:.12em;
	text-transform:uppercase;
	color:#E8B8C8;
	margin-bottom:32px;
}
.ev-hap-single{
	display:grid;grid-template-columns:1.2fr 1fr;
	gap:48px;align-items:center;
}
.ev-hap-copy{padding:0;}
.ev-hap-type{
	font-size:11px;font-weight:500;
	letter-spacing:.1em;text-transform:uppercase;
	color:#E8B8C8;margin-bottom:14px;
}
.ev-hap-h{
	font-family:var(--font-heading);
	font-size:clamp(28px,3vw,36px);
	font-weight:500;color:#fff;
	line-height:1.2;text-wrap:balance;
	margin-bottom:10px;
}
.ev-hap-meta{
	font-size:14px;color:rgba(200,216,192,.6);
	margin-bottom:20px;
}
.ev-hap-desc{
	font-size:16px;color:rgba(200,216,192,.85);
	line-height:1.8;text-wrap:pretty;
	margin-bottom:28px;
}
.ev-hap-cobrand{
	display:flex;align-items:center;gap:16px;
	padding:16px 0;
	border-top:1px solid rgba(255,255,255,.1);
	border-bottom:1px solid rgba(255,255,255,.1);
	margin-bottom:28px;
}
.ev-hap-cobrand-label{
	font-size:10px;letter-spacing:.1em;text-transform:uppercase;
	color:rgba(200,216,192,.5);
}
.ev-hap-cobrand-logo{
	display:flex;align-items:center;
}
.ev-hap-cobrand-text{
	font-size:11px;font-weight:600;
	color:rgba(200,216,192,.55);
	letter-spacing:.04em;
}
.ev-hap-cta{
	background:var(--hub-events);color:#fff;
	padding:0 24px;height:48px;border-radius:6px;
	font-size:14px;font-weight:500;
	display:inline-flex;align-items:center;
	cursor:pointer;font-family:inherit;
	border:none;
	transition:opacity .2s;
	-webkit-appearance:none;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
}
.ev-hap-cta:hover{opacity:.85;}
.ev-hap-img{
	border-radius:12px;
	background:linear-gradient(145deg,#5D002C,#3A001C);
	min-height:340px;
	display:flex;align-items:center;justify-content:center;
}
.ev-hap-img-ph{
	font-size:11px;letter-spacing:.07em;
	color:rgba(255,255,255,.2);
}

/* ── Two-event layout: 2-col grid of cards, each with image on top, copy below ── */
.ev-hap-two{
	display:grid;grid-template-columns:1fr 1fr;
	gap:48px;align-items:stretch;
}
.ev-hap-card{
	display:flex;flex-direction:column;
}
.ev-hap-card .ev-hap-copy{
	display:flex;flex-direction:column;flex:1;
}
.ev-hap-card-img{
	border-radius:12px;
	background:linear-gradient(145deg,#5D002C,#3A001C);
	height:280px;
	display:flex;align-items:center;justify-content:center;
	margin-bottom:28px;
	flex-shrink:0;
}
.ev-hap-card-img-ph{
	font-size:11px;letter-spacing:.07em;
	color:rgba(255,255,255,.2);
}
.ev-hap-card .ev-hap-cta{
	align-self:flex-start;
}
.ev-hap-spacer{flex:1;}


/* ── VENUE LIGHTBOX (duplicated from residency.css; extract later) ───── */
.vlb-overlay{
	display:none;
	position:fixed;inset:0;
	background:rgba(0,0,0,.92);
	z-index:500;
	align-items:center;justify-content:center;
}
.vlb-overlay.open{display:flex;}
.vlb-box{
	background:#fff;
	border-radius:12px;overflow:hidden;
	width:min(920px,94vw);max-height:90vh;
	display:grid;grid-template-columns:1fr 360px;
}
.vlb-img-side{
	background:var(--surface-forest);
	display:flex;flex-direction:column;position:relative;
}
.vlb-img-main{
	flex:1;
	display:flex;align-items:center;justify-content:center;
	background:linear-gradient(145deg,#2D5C45,#1B3A2D);
	min-height:360px;
}
.vlb-img-ph{
	font-size:10px;letter-spacing:.07em;
	color:rgba(200,216,192,.2);text-align:center;
}
.vlb-arrow{
	position:absolute;top:50%;
	transform:translateY(-50%);
	width:44px;height:44px;
	background:rgba(255,255,255,.12);
	border:none;color:#fff;font-size:20px;cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	border-radius:50%;
	transition:background .2s;
	-webkit-tap-highlight-color:transparent;
}
.vlb-arrow:hover{background:rgba(255,255,255,.25);}
.vlb-arrow-l{left:12px;}
.vlb-arrow-r{right:12px;}
.vlb-thumbs{
	display:flex;gap:6px;padding:10px 12px;
	overflow-x:auto;scrollbar-width:none;
	background:rgba(0,0,0,.3);
}
.vlb-thumbs::-webkit-scrollbar{display:none;}
.vlb-thumb{
	width:48px;height:36px;border-radius:4px;
	flex-shrink:0;cursor:pointer;
	border:2px solid transparent;
	background:rgba(255,255,255,.15);
	transition:border-color .15s;
	-webkit-tap-highlight-color:transparent;
	-webkit-appearance:none;
}
.vlb-thumb.active{border-color:#E8B8C8;}
.vlb-info-side{
	padding:32px;
	display:flex;flex-direction:column;
	overflow-y:auto;
}
.vlb-close{
	align-self:flex-end;
	width:44px;height:44px;
	background:none;
	border:1px solid rgba(27,58,45,.15);
	border-radius:50%;
	font-size:18px;
	color:var(--on-light-h);cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	-webkit-tap-highlight-color:transparent;
}
.vlb-suite-tag{
	font-size:10px;font-weight:500;
	letter-spacing:.1em;text-transform:uppercase;
	color:var(--hub-events);
	margin-top:16px;margin-bottom:4px;
}
.vlb-counter{
	font-family:var(--font-heading);
	font-size:16px;color:rgba(27,58,45,.35);
	margin-bottom:16px;
}
.vlb-photo-name{
	font-family:var(--font-heading);
	font-size:22px;color:var(--on-light-h);
	margin-bottom:8px;
}
.vlb-photo-desc{
	font-size:14px;color:var(--on-light-body);
	line-height:1.75;flex:1;
}


/* ── BUTTON RESET for link-style CTAs used as <button> ───────────────── */
button.ev-cta,
button.ev-gather-cta{
	background:none;border:none;padding:0;
	font-family:inherit;cursor:pointer;
	text-align:left;
	-webkit-appearance:none;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
}
button.ev-hero-cta-primary{
	border:none;font-family:inherit;cursor:pointer;
	-webkit-appearance:none;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
}


/* ═════════════════════════════════════════════════════════════════════
   RESPONSIVE — tablet (≤860px)
   ═════════════════════════════════════════════════════════════════════ */
@media(max-width:860px){
	.ev-section{padding:64px 24px;}
	.ev-lead, .ev-body{font-size:18px;}

	/* Hero on mobile: stacked. Image in its own zone above (grid-row:1),
	   copy in dark forest band below (grid-row:2). No darkening overlay —
	   photo is the photo. Focal point dropdown per image field handles
	   which part of the photo shows when the zone crops to cover. */
	.ev-hero{
		grid-template-columns:1fr;
		grid-template-rows:auto auto;
		min-height:auto;
		align-items:stretch;
	}
	.ev-hero::after{
		content:'';position:absolute;inset:0;
		background:none;
		pointer-events:none;
	}
	.ev-hero-img{
		grid-row:1;
		position:relative;
		width:100%;
		height:60vh;
		min-height:360px;
		max-height:580px;
	}
	.ev-hero-copy{
		grid-row:2;
		position:relative;
		z-index:auto;
		padding:48px 24px 56px;
		width:100%;
	}
	.ev-hero-h{font-size:clamp(32px,8vw,52px);}
	.ev-hero-ctas{flex-direction:column;align-items:flex-start;}
	.ev-hero-cta-primary{width:100%;justify-content:center;height:56px;font-size:16px;}
	.ev-hero-cta-secondary{height:56px;font-size:16px;}

	/* Two-col layouts stack — copy always first */
	.ev-two-wide,
	.ev-two-wide-r{grid-template-columns:1fr;gap:40px;}

	.ev-img-overview,
	.ev-img-corporate,
	.ev-img-stays{height:240px !important;}

	/* IPnav clears the shorter mobile nav */
	.ipnav{top:64px;}
	.ipnav-inner{padding:0 16px;}
	.ipnav-link{padding:14px 14px;font-size:14px;}

	/* Corporate inclusions → 2x2 */
	.ev-corp-incl-h{margin-top:48px;padding-top:36px;margin-bottom:22px;}
	.ev-corp-strip{
		grid-template-columns:1fr 1fr;
		gap:20px;
	}

	/* Gatherings → 1 col */
	.ev-gather-grid{grid-template-columns:1fr;}
	.ev-gather-card{padding:28px;}
	.ev-gather-card-fellowship{
		display:flex;flex-direction:column;
		padding:28px;
	}
	.ev-gather-fellowship-img{display:none;}
	.ev-gather-fellowship-copy{padding:0;display:flex;flex-direction:column;flex:1;}

	/* Venues → 1 col with photo on top */
	.ev-venue-grid{grid-template-columns:1fr;}
	.ev-venue-card{grid-template-columns:1fr;}
	.ev-venue-photo{min-height:200px;}

	/* Catering → 1 col */
	.ev-dining-grid{grid-template-columns:1fr;}

	/* Testimonials */
	.testimonials{padding:64px 24px;}
	.testi-card{min-width:280px;max-width:280px;}
	.testi-img{height:180px;}

	/* FAQ */
	.faq-toggle-section{flex-direction:column;align-items:flex-start;gap:16px;}
	.faq-trigger{padding:20px 0;font-size:17px;}
	.faq-icon{font-size:22px;}

	/* Enquire 2-col stacks */
	.ev-enquire{padding:64px 24px;}
	.ev-enquire-inner{grid-template-columns:1fr;}
	.ev-enq-col:first-child{border-radius:12px 12px 0 0;}
	.ev-enq-col:last-child{border-radius:0 0 12px 12px;}

	/* Happening stacks */
	.ev-happening{padding:64px 24px;}
	.ev-hap-single{grid-template-columns:1fr;gap:32px;}
	.ev-hap-two{grid-template-columns:1fr;gap:40px;}
	.ev-hap-card-img{height:220px;}
	.ev-hap-img{min-height:240px;}

	/* Lightbox */
	.vlb-box{grid-template-columns:1fr;max-height:95vh;}
	.vlb-img-side{min-height:240px;}
	.vlb-info-side{padding:20px;}
}


/* ═════════════════════════════════════════════════════════════════════
   RESPONSIVE — mobile (≤480px)
   ═════════════════════════════════════════════════════════════════════ */
@media(max-width:480px){
	.testimonials{padding:48px 20px;}
	.ev-section{padding:48px 20px;}
	.ev-h2{font-size:clamp(26px,6vw,36px);}
	.ev-corp-strip{grid-template-columns:1fr 1fr;gap:16px;}
}

/* Optional partner link in the Happening section */
.ev-hap-cobrand-link{display:inline-flex;align-items:center;text-decoration:none;color:inherit;}
.ev-hap-cobrand-link:hover{opacity:.7;}

/* ── GATHERINGS intro with optional illustration cluster ─────────────── */
.ev-intro-with-cluster{
	display:grid;grid-template-columns:1fr auto;gap:48px;align-items:start;
	margin-bottom:8px;
}
.ev-intro-with-cluster > .ev-gather-intro{margin-bottom:0;}

/* Cluster slot — shared primitive (Short Stays / Residency). Dashed box +
   label while empty; both stripped when an image is uploaded. Hidden on mobile. */
.cluster-slot{
	width:var(--cluster-w, clamp(180px,20vw,260px));
	aspect-ratio:var(--cluster-aspect, 1);
	border:1.5px dashed rgba(27,58,45,.22);
	border-radius:12px;
	display:flex;align-items:center;justify-content:center;
	flex-shrink:0;
	background-repeat:no-repeat;background-position:center;background-size:contain;
	pointer-events:none;position:relative;
}
.cluster-slot::before{
	content:'Illustration cluster';
	font-size:11px;letter-spacing:.1em;text-transform:uppercase;
	color:rgba(27,58,45,.4);
	font-family:var(--font-body, 'DM Sans', sans-serif);
}
.cluster-slot.is-populated{border:none;}
.cluster-slot.is-populated::before{display:none;}
.cluster-img-single{
	width:100%;height:100%;object-fit:contain;display:block;
	pointer-events:none;user-select:none;
}

@media(max-width:860px){
	.ev-intro-with-cluster{grid-template-columns:1fr;gap:0;}
	.cluster-slot{display:none;}
}