/*
Theme Name: Big Gay Picnic
Theme URI: https://thebiggaypicnic.com/
Author: Big Gay Picnic
Description: Lightweight custom theme for the Big Gay Picnic website. Homepage content is edited in WordPress Pages; CSS and JavaScript remain in the theme.
Version: 2.0.0
Text Domain: big-gay-picnic
*/

html, body  {
	margin: 0;
	padding: 0;
	min-height: 100%;
}

body  {
	min-width: 320px;
}



/* ============================================================
GLOBAL TYPOGRAPHY SCALE
============================================================ */

html {
	font-size: 14px;
}

body {
	font-size: 1rem;
	line-height: 1.5;
}

h1 {
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.05;
}

h2 {
	font-size: clamp(1.75rem, 3vw, 2.4rem);
	line-height: 1.1;
}

h3 {
	font-size: clamp(1.35rem, 2.3vw, 1.8rem);
	line-height: 1.15;
}

h4 {
	font-size: 1.2rem;
}

p,
li {
	font-size: 1rem;
}

.home-card-text {
	font-size: 1rem;
}





@font-face {
	font-family:"Picnic Display";
	src:url("https://thebiggaypicnic.com/wp-content/uploads/fonts/RobotoSlab-LGC-Variable.woff2") format("woff2");
	font-style:normal;
	font-weight:100 900;
	unicode-range:U+0-FF,U+100-24F,U+370-3FF,U+400-52F,U+1E00-1EFF,U+1F00-1FFF,U+2000-206F,U+20A0-20CF,U+2DE0-2DFF,U+A640-A69F;
	font-display:swap
}
@font-face {
	font-family:"Picnic Display";
	src:url("https://thebiggaypicnic.com/wp-content/uploads/fonts/NotoKufiArabic-Variable.woff2") format("woff2");
	font-style:normal;
	font-weight:100 900;
	unicode-range:U+600-6FF,U+750-77F,U+8A0-8FF,U+FB50-FDFF,U+FE70-FEFF;
	font-display:swap
}
@font-face {
	font-family:"Picnic Body";
	src:url("https://thebiggaypicnic.com/wp-content/uploads/fonts/OpenSans-LGC-Variable.woff2") format("woff2");
	font-style:normal;
	font-weight:300 800;
	font-stretch:75% 100%;
	unicode-range:U+0-FF,U+100-24F,U+370-3FF,U+400-52F,U+1E00-1EFF,U+1F00-1FFF,U+2000-206F,U+20A0-20CF,U+2DE0-2DFF,U+A640-A69F;
	font-display:swap
}
@font-face {
	font-family:"Picnic Body";
	src:url("https://thebiggaypicnic.com/wp-content/uploads/fonts/NotoSansArabic-Variable.woff2") format("woff2");
	font-style:normal;
	font-weight:100 900;
	font-stretch:75% 100%;
	unicode-range:U+600-6FF,U+750-77F,U+8A0-8FF,U+FB50-FDFF,U+FE70-FEFF;
	font-display:swap
}
#bgp-embed {
	position:relative;
	min-height:100vh;
	color:#111;
	font-family:var(--font-body);
	font-size:1.1rem;
	line-height:1.35;
	background:var(--grass) repeat;
	background-size:380px;
	overflow:hidden;
	isolation:isolate;
	--font-display:"Picnic Display","Roboto Slab","Noto Kufi Arabic",serif;
	--font-editorial:"Picnic Body","Open Sans","Noto Sans Arabic",sans-serif;
	--font-script:"Picnic Body","Open Sans","Noto Sans Arabic",sans-serif;
	--font-body:"Picnic Body","Open Sans","Noto Sans Arabic",sans-serif;
	--ink:#111;
	--grass:url("https://thebiggaypicnic.com/wp-content/uploads/2026/09/grass.jpg");
	--blanket:url("https://thebiggaypicnic.com/wp-content/uploads/2026/09/blanket.jpg");
	--sun:#ffe257;
	--peach:#ff944d;
	--pink:#ff4f96;
	--blue:#2893ef;
	--mint:#60cf53;
	--purple:#b19cd9;
	--paper:rgba(255, 255, 255, 0.93);
	--edge:#000;
	--hard-shadow: 12px 16px 5px rgba(0, 0, 0, 0.32);
	--soft-shadow:10px 10px 0 rgba(0, 0, 0, 0.2);
	--stamp-shadow:4px 4px 0 rgba(0, 0, 0, 0.24);
	--line-shadow:2px 2px 0 rgba(0, 0, 0, 0.22)
}
#bgp-embed .page-content {
	padding-top:8.5rem
}
* {
	box-sizing:border-box
}
:lang(ar) body {
	line-height:1.45
}
a {
	color:inherit
}
img {
	display:block;
	max-width:100%
}
.sr-only {
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0
}
h1,h2,h3 {
	margin:0 0 .58rem;
	font-family:var(--font-display);
	font-weight:900;
	line-height:1.08;
	letter-spacing:-.003em;
	text-wrap:balance
}
h1 {
	line-height:.98;
	letter-spacing:-.01em
}
h2 {
	line-height:1.03
}
h3 {
	line-height:1.12
}
:lang(ar) h1,:lang(ar) h2,:lang(ar) h3 {
	letter-spacing:0;
	line-height:1.14
}
li,p {
	line-height:1.35
}
.main-nav a {
	text-decoration:none;
	border:3px solid var(--edge);
	border-radius:999px;
	padding:.5rem 1rem;
	font-family:var(--font-display);
	font-weight:900;
	font-size:1.01rem;
	box-shadow:var(--stamp-shadow);
	transition:transform .15s ease,box-shadow .15s ease;
	color:#111
}
.main-nav a:focus-visible,.main-nav a:hover {
	transform:translateY(1px) scale(1.03);
	box-shadow:var(--line-shadow);
	filter:saturate(1.05) brightness(1.02)
}
.main-nav a[aria-current=page] {
	box-shadow:var(--line-shadow);
	transform:translateY(3px);
	filter:saturate(1.06)
}
.main-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.site-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 280;
	padding: 1.15rem 1rem;
	pointer-events: none;
	margin-bottom: 2.5rem;
}
.header-shell {
	max-width: 1240px;
	margin: 40px auto 0;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.9rem;
	pointer-events: auto;
}
.language-card:nth-child(5n+1),.main-nav a:nth-child(5n+1),.mobile-nav-sheet a:nth-child(5n+1) {
	background:var(--sun)
}
.language-card:nth-child(5n+2),.main-nav a:nth-child(5n+2),.mobile-nav-sheet a:nth-child(5n+2) {
	background:var(--peach)
}
.language-card:nth-child(5n+3),.main-nav a:nth-child(5n+3),.mobile-nav-sheet a:nth-child(5n+3) {
	background:var(--pink)
}
.language-card:nth-child(5n+4),.main-nav a:nth-child(5n+4),.mobile-nav-sheet a:nth-child(5n+4) {
	background:var(--blue)
}
.language-card:nth-child(5n+5),.main-nav a:nth-child(5n+5),.mobile-nav-sheet a:nth-child(5n+5) {
	background:var(--mint)
}
.language-modal[hidden] {
	display:none
}
.mobile-nav-panel[hidden] {
	display:none!important
}
.language-modal-head h2,.mobile-nav-head h2,.mobile-nav-head p {
	margin:0;
	color:#111;
	font-family:var(--font-display);
	font-weight:900;
	font-size:1.1rem;
	line-height:1.06;
	letter-spacing:.01em
}
.language-card,.mobile-nav-sheet a {
	text-decoration:none;
	border:3px solid #000;
	border-radius:999px;
	box-shadow:var(--stamp-shadow);
	padding:.88rem 1.08rem;
	font-family:var(--font-display);
	font-size:1.08rem;
	font-weight:900;
	text-align:center;
	color:#111;
	position:relative;
	overflow:visible;
	z-index:1;
	cursor:pointer;
	transition:transform .15s ease,box-shadow .15s ease
}
.language-card:focus-visible,.language-card:hover,.mobile-nav-sheet a:focus-visible,.mobile-nav-sheet a:hover {
	transform:translateY(1px);
	box-shadow:var(--line-shadow);
	filter:saturate(1.04) brightness(1.02)
}
.language-card.is-active,.mobile-nav-sheet a[aria-current=page] {
	transform:translateY(3px);
	box-shadow:var(--line-shadow);
	z-index:5
}
.language-card.is-active::after,.mobile-nav-sheet a[aria-current=page]::after {
	position:absolute;
	left:.7rem;
	top:-.72rem;
	border:2px solid #000;
	border-radius:3px;
	background:var(--sun);
	color:#111;
	font-family:var(--font-display);
	font-size:.68rem;
	font-weight:900;
	letter-spacing:.03em;
	text-transform:uppercase;
	padding:.08rem .44rem;
	transform:rotate(-5deg);
	box-shadow:var(--line-shadow);
	z-index:14;
	pointer-events:none;
	animation:badge-wiggle .72s ease-in-out 3 both
}
.mobile-nav-sheet a[aria-current=page]::after {
	content:attr(data-here-label);
	background:var(--sun)
}
body.mobile-nav-open {
	overflow:hidden
}
body.lightbox-open {
	overflow:hidden
}
html[dir=rtl] .header-shell {
	direction:ltr
}
html[dir=rtl] .main-nav {
	flex:1 1 auto;
	min-width:0;
	overflow-x:auto;
	flex-wrap:nowrap;
	padding-bottom:.3rem
}
html[dir=rtl] .main-nav a {
	white-space:nowrap
}
body.reduced-motion .album-detail-shot,body.reduced-motion .album-detail-shot img,body.reduced-motion .album-fan-shot,body.reduced-motion .album-open-tag,body.reduced-motion .language-card,body.reduced-motion .mobile-nav-sheet a {
	transition:none!important
}
body.reduced-motion .language-card.is-active::after,body.reduced-motion .mobile-nav-sheet a[aria-current=page]::after {
	animation:none!important
}
.butterfly-engine {
	position:fixed;
	top:0;
	left:0;
	width:140px;
	height:140px;
	z-index:230;
	pointer-events:auto;
	touch-action:none;
	cursor:pointer;
	overflow:visible;
	will-change:top,left
}
.butterfly-engine,.butterfly-engine * {
	user-select:none;
	-webkit-user-select:none
}
.butterfly-shadow {
	position:absolute;
	top:50%;
	left:50%;
	width:98px;
	height:184px;
	margin-left:-49px;
	margin-top:-92px;
	border-radius:999px;
	background:radial-gradient(ellipse at center,rgba(0,0,0,.74) 0,rgba(0,0,0,.56) 42%,rgba(0,0,0,.26) 72%,rgba(0,0,0,0) 100%);
	opacity:.3;
	filter:blur(12px);
	overflow:visible;
	pointer-events:none;
	transform-origin:50% 50%;
	will-change:transform,opacity,filter
}
.butterfly-body {
	position:relative;
	width:100%;
	height:100%;
	z-index:5;
	transform-origin:50% 50%
}
.butterfly-wing {
	position:absolute;
	top:0;
	width:50%;
	height:100%;
	background-image:url("https://thebiggaypicnic.com/wp-content/uploads/2026/09/butterfly.png");
	background-repeat:no-repeat;
	background-size:200% 100%;
	will-change:transform
}
.butterfly-wing-left {
	left:0;
	background-position:0 0;
	transform-origin:right center
}
.butterfly-wing-right {
	right:0;
	background-position:100% 0;
	transform-origin:left center
}
.butterfly-core {
	position:absolute;
	top:0;
	left:45%;
	width:10%;
	height:100%;
	background-image:url("https://thebiggaypicnic.com/wp-content/uploads/2026/09/butterfly.png");
	background-repeat:no-repeat;
	background-size:1000% 100%;
	background-position:50% 0
}
.butterfly-bye {
	position:fixed;
	z-index:290;
	border:2px solid #000;
	border-radius:999px;
	background:#fff;
	color:#000;
	font-family:var(--font-editorial);
	font-size:1.05rem;
	font-weight:800;
	letter-spacing:.04em;
	text-transform:uppercase;
	padding:.16rem .6rem;
	box-shadow:var(--line-shadow);
	pointer-events:none;
	opacity:0;
	transform:translateY(10px) scale(.95) rotate(-4deg);
	transition:opacity .16s ease,transform .18s ease
}
.butterfly-bye.is-visible {
	opacity:1;
	transform:translateY(-4px) scale(1) rotate(-2deg)
}
body.butterfly-interacting,body.butterfly-interacting * {
	user-select:none!important;
	-webkit-user-select:none!important
}
.page-content {
	position:relative;
	z-index:40;
	max-width:1280px;
	margin:0 auto;
	padding:9rem 5.25rem 6rem
}
.page-top-logo img {
	width:min(100%,820px);
	margin:0 auto;
	filter:drop-shadow(0 12px 20px rgba(0, 0, 0, .42))
}
.album-card,.blanket-panel,.checklist-card,.details-card,.fact-strip,.hero-card,.longform,.map-card,.memory-strip,.principles,.quote-block,.steps-grid article,.template-cards article,.timeline {
	border:2px solid rgba(0,0,0,.72);
	border-radius:10px;
	box-shadow:var(--hard-shadow);
	padding:1.75rem 1.8rem;
	margin-bottom:2.2rem;
	background-size:200px;
	background-image:linear-gradient(rgba(255,255,255,.86),rgba(255,255,255,.86)),var(--blanket);
	position:relative;
	isolation:isolate
}
.edge-badge {
	margin:0;
	display:inline-block;
	border:2px solid #000;
	border-radius:3px;
	padding:.14rem .64rem .12rem;
	font-family:var(--font-body);
	font-size:1.1rem;
	line-height:1.35;
	font-weight:800;
	letter-spacing:.035em;
	text-transform:uppercase;
	color:#111;
	transform:rotate(-3deg);
	box-shadow:var(--line-shadow)
}
.edge-badge--sun {
	background:var(--sun)
}
.edge-badge--peach {
	background:var(--peach)
}
.edge-badge--pink {
	background:var(--pink);
	color:#111
}
.edge-badge--blue {
	background:var(--blue);
	color:#111
}
.edge-badge--purple {
	background:var(--purple);
	color:#111
}
.edge-badge--mint {
	background:var(--mint)
}
.blanket-panel>.edge-badge,.home-card>.edge-badge,.steps-grid article>.edge-badge,.template-cards article>.edge-badge {
	position:absolute;
	top:-.95rem;
	left:1.2rem
}
.checklist-card,.template-cards article {
	padding-top:2.2rem
}
.album-card p,.checklist-card li,.details-card li,.details-card p,.fact-strip article,.
hero-subhead,.longform p,.principles li,.quote-block p,.steps-grid p,.template-cards pre {
	font-family:var(--font-body);
	font-size:1.1rem;
	line-height:1.35
}
.album-card h2,.checklist-card h2,.details-card h2,.hero-card h1,.longform h2,.map-card h2,.memory-strip h2,.principles h2,.steps-grid h2,.template-cards h3,.timeline h2 {
	font-size:clamp(1.66rem, 2.8vw, 2.56rem)
}
.hero-card h1 {
	letter-spacing:-.003em
}
.home-hero {
	margin:0 auto 6rem;
	text-align:center
}
.home-logo {
	width:min(100%,820px);
	margin:0 auto;
	filter:drop-shadow(0 12px 18px rgba(0, 0, 0, .45))
}
.hero-subhead-home {
	max-width:760px;
	margin:.35rem auto .45rem;
	font-size:clamp(1.45rem, 3.8vw, 2.45rem);
	font-family:var(--font-display);
	font-weight:900;
	color:#fff;
	line-height:1.14;
	letter-spacing:-.012em;
	white-space:pre-line;
	display:block;
	background:0 0;
	border:0;
	border-radius:0;
	padding:0;
	box-shadow:none;
	text-shadow:0 2px 0 rgba(0,0,0,.66),0 6px 16px rgba(0,0,0,.72)
}
.hero-overline-home {
	margin:.9rem auto 0;
	max-width:860px;
	font-family:var(--font-body);
	font-size:clamp(1.05rem, 2.2vw, 1.42rem);
	font-weight:900;
	line-height:1.35;
	text-transform:uppercase;
	color:#fff;
	text-shadow:0 2px 0 rgba(0,0,0,.66),0 6px 16px rgba(0,0,0,.72)
}
.weather-card {
	position:relative;
	max-width:880px;
	margin:-2.5rem auto 2.25rem;
	background:#fff;
	border:4px solid #000;
	border-radius:12px;
	box-shadow:var(--hard-shadow);
	transform:none;
	padding:1.3rem 1.15rem 1.1rem
}
.weather-card-badge {
	position:absolute;
	top:-1rem;
	left:50%;
	transform:translateX(-50%) rotate(-1deg);
	background: linear-gradient(110deg,#ff9a9a 0%,#ffc27a 20%,#fff3a6 40%,#9fe3a3 60%,#9fc5ff 80%,#c7a6e8 100%);
	border:3px solid #000;
	padding:.2rem .9rem;
	font-weight:900;
	text-transform:uppercase;
	font-family:var(--font-display);
	z-index:6
}
.weather-card-note {
	position:absolute;
	top:-1rem;
	right:1rem;
	border:2px solid #000;
	border-radius:3px;
	background:var(--mint);
	color:#111;
	font-family:var(--font-display);
	font-size:.78rem;
	letter-spacing:.03em;
	text-transform:uppercase;
	padding:.12rem .42rem;
	transform:rotate(5deg);
	box-shadow:var(--line-shadow);
	z-index:7
}
.weather-card-note.is-hidden {
	display:none
}
.weather-cancel-banner {
	margin:.65rem 0 1rem;
	border:3px solid #000;
	border-radius:10px;
	background:#ff4f4f;
	color:#fff;
	padding:.55rem .65rem;
	box-shadow:var(--line-shadow);
	text-align:center
}
.weather-cancel-banner strong {
	display:block;
	margin:0;
	font-family:var(--font-display);
	font-size:1.02rem;
	letter-spacing:.03em
}
.weather-cancel-banner p {
	margin:.22rem 0 0;
	font-size:.94rem;
	line-height:1.35
}
.weather-cancel-banner.is-hidden {
	display:none
}
.weather-main {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:1rem;
	align-items:center
}
.weather-main-left,.weather-main-right {
	text-align:center
}
.weather-main-left p,.weather-main-right strong {
	margin:0;
	font-weight:900;
	text-transform:uppercase;
	letter-spacing:.03em;
	color:rgba(0,0,0,.5);
	font-size:.82rem;
	font-family:var(--font-body)
}
.weather-main-left h2 {
	font-size:clamp(2.4rem, 5vw, 4rem);
	line-height:1;
	margin:.24rem 0
}
.weather-main-left strong {
	color:#f058a0;
	font-size:clamp(1.35rem, 2.8vw, 2.2rem);
	text-transform:none
}
.weather-day-secondary {
	display:block;
	margin:.04rem 0 .24rem;
	color:rgba(0,0,0,.66);
	font-family:var(--font-editorial);
	font-size:clamp(1rem, 1.8vw, 1.24rem);
	line-height:1.12;
	letter-spacing:.015em
}
.weather-day-secondary.is-hidden {
	display:none
}
.weather-main-right p {
	margin:0;
	display:flex;
	justify-content:center;
	align-items:center;
	gap:.45rem;
	font-size:clamp(2rem, 4vw, 3rem);
	font-family:var(--font-display)
}
.weather-icon {
	font-size:clamp(1.55rem, 3.2vw, 2.4rem)
}
.home-test-toggle span {
	margin:0;
	text-transform:none;
	font-family:var(--font-body);
	letter-spacing:0;
	font-size:.92rem;
	font-weight:700
}
.home-card {
	position:relative;
	border:2px solid rgba(0,0,0,.72);
	border-radius:10px;
	box-shadow:var(--hard-shadow);
	padding:1.85rem 1.8rem 1.55rem;
	margin-bottom:2rem;
	isolation:isolate
}
.home-card--blanket {
	background-image:var(--blanket);
	background-size:150px
}
.home-card--plain {
	background:rgba(255,255,255,.94)
}
.home-card h2 {
	font-size:clamp(1.92rem, 3.4vw, 2.68rem);
	color:#161922;
	margin-bottom:.72rem
}
.home-card p {
	margin:0 0 .76rem
}
.home-card-text {
	font-family:var(--font-body);
	font-size:1.1rem;
	line-height:1.35;
	font-weight:400;
	max-width:none;
	width:100%;
	margin-right:0
}
.home-intro-card {
	padding-top:2.2rem;
	padding-bottom:2.8rem;
	overflow:visible
}
.home-weather-card {
	margin:-4.95rem auto 2.15rem
}
.home-top-sticker {
	position:absolute;
	top:-.95rem;
	border:2px solid #000;
	border-radius:3px;
	font-family:var(--font-body);
	font-size:1.1rem;
	line-height:1.35;
	font-weight:800;
	letter-spacing:.035em;
	padding:.14rem .64rem .12rem;
	box-shadow:var(--line-shadow);
	text-transform:uppercase;
	color:#111;
	z-index:4
}
.home-top-sticker-left {
	left:-.8rem;
	background:var(--sun);
	transform:rotate(-3deg)
}
.home-top-sticker-right {
	right:-.8rem;
	background:#f9a8d0;
	transform:rotate(3deg)
}
@media (max-width:520px) {
	.home-top-sticker {
		display:inline-block;
		max-width:calc(50vw - .6rem);
		white-space:normal;
		text-align:center;
		text-wrap:balance
	}

}
@media (max-width:360px) {
	.home-top-sticker {
		font-size:1rem
	}

}
.home-triptych {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:1rem;
	margin-bottom:2rem
}
.home-mini-card {
	margin-bottom:0;
	height:100%
}
.longform p {
	max-width:82ch
}
.home-bring-list {
	margin:0;
	padding-left:0;
	list-style:none
}
.home-bring-list li {
	margin-bottom:.38rem
}
.pill-link {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	text-decoration:none;
	font-style:normal;
	font-family:var(--font-display);
	text-transform:uppercase;
	letter-spacing:.04em;
	font-size:1.08rem;
	border:3px solid #000;
	border-radius:999px;
	padding:.28rem 1.02rem .24rem;
	font-weight:900;
	background:#fff;
	color:#111;
	box-shadow:var(--stamp-shadow);
	transition:transform .2s ease,box-shadow .2s ease,filter .2s ease
}
.pill-link-about {
	background:var(--pink);
	color:#111
}
.pill-link-location {
	background:var(--blue);
	color:#111
}
.pill-link-instagram {
	background:var(--mint);
	color:#111
}
.pill-link:focus-visible,.pill-link:hover {
	transform:scale(1.06);
	box-shadow:var(--line-shadow);
	filter:saturate(1.04) brightness(1.02)
}
.pill-link-location:focus-visible,.pill-link-location:hover {
	background:var(--mint);
	color:#111
}
.memory-pile {
	position:relative;
	height:clamp(200px,28vw,310px);
	margin:.25rem auto 1.05rem;
	width:80%;
	max-width:80%
}
.memory-pile-shot {
	position:absolute;
	width:clamp(118px,18vw,200px);
	aspect-ratio:4/5;
	margin:0;
	border-radius:10px;
	overflow:hidden;
	background:#fff;
	border:1px solid rgba(0,0,0,.28);
	box-shadow:0 10px 16px rgba(0,0,0,.22),2px 2px 0 rgba(0,0,0,.2)
}
.memory-pile-shot::after {
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(135deg,rgba(255,255,255,.2) 0,rgba(12,12,12,.1) 100%);
	pointer-events:none
}
.memory-pile-shot img,.memory-pile-shot picture {
	width:100%;
	height:100%;
	object-fit:cover
}
.memory-pile-shot-1 {
	left:3%;
	top:9%;
	transform:rotate(-8deg);
	z-index:2
}
.memory-pile-shot-2 {
	left:23%;
	top:2%;
	transform:rotate(6deg);
	z-index:4
}
.memory-pile-shot-3 {
	left:43%;
	top:10%;
	transform:rotate(-4deg);
	z-index:5
}
.memory-pile-shot-4 {
	left:61%;
	top:5%;
	transform:rotate(7deg);
	z-index:3
}
.memory-pile-shot-5 {
	left:78%;
	top:14%;
	transform:rotate(-5deg);
	z-index:1
}
.about-ribbon-shot img,.about-ribbon-shot picture,.location-ribbon-shot img,.location-ribbon-shot picture {
	width:100%;
	height:100%;
	object-fit:cover
}
.timeline-items article {
	border:2px solid #000;
	border-radius:14px;
	background:rgba(255,255,255,.86);
	padding:.6rem;
	display:grid;
	grid-template-columns:1fr 160px;
	gap:.6rem
}
.timeline-items img {
	width:100%;
	border-radius:10px;
	object-fit:cover;
	aspect-ratio:4/3
}
.map-card img {
	border-radius:14px;
	border:3px solid #000;
	margin-bottom:.55rem
}
.transport-buttons a {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	text-decoration:none;
	font-style:normal;
	font-family:var(--font-display);
	text-transform:uppercase;
	letter-spacing:.04em;
	font-size:1.08rem;
	border:3px solid #000;
	border-radius:999px;
	background:var(--blue);
	color:#111;
	font-weight:900;
	padding:.28rem 1.02rem .24rem;
	box-shadow:var(--stamp-shadow);
	transition:transform .2s ease,box-shadow .2s ease,filter .2s ease
}
.transport-buttons a:nth-child(2n) {
	background:var(--mint)
}
.transport-buttons a:focus-visible,.transport-buttons a:hover {
	transform:scale(1.06);
	box-shadow:var(--line-shadow);
	filter:saturate(1.04) brightness(1.02)
}
.fact-strip article {
	border:2px dashed #000;
	border-radius:8px;
	padding:.72rem;
	background:rgba(255,230,120,.35)
}
.amenities-card ul {
	columns:1;
	list-style:none;
	padding-left:0;
	margin:0
}
.amenities-note a {
	text-decoration:underline
}
.memory-shot img,.memory-shot picture {
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .26s ease
}
.about-ribbon-shot:focus-visible img,.about-ribbon-shot:hover img,.location-ribbon-shot:focus-visible img,.location-ribbon-shot:hover img,.memory-shot:focus-visible img,.memory-shot:hover img {
	transform:scale(1.04)
}
.album-fan-shot img,.album-fan-shot picture {
	width:100%;
	height:100%;
	object-fit:cover
}
.album-fan-copy strong,.album-fan-title {
	display:block;
	font-family:var(--font-display);
	font-size:1.28rem;
	line-height:1.16;
	text-align:center;
	margin:0
}
.album-fan-copy span,.album-fan-meta {
	display:block;
	margin-top:.22rem;
	padding-right:0;
	text-align:center;
	font-size:.95rem;
	margin-bottom:0
}
.album-detail-shot img,.album-detail-shot picture {
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .27s ease
}
.album-detail-shot:focus-visible img,.album-detail-shot:hover img {
	transform:scale(1.045)
}
.low-gpu-mode .album-detail-shot,.low-gpu-mode .album-detail-shot img,.low-gpu-mode .album-fan-shot,.low-gpu-mode .album-open-tag {
	transition:none!important
}
.low-gpu-mode .album-detail-shot:focus-visible,.low-gpu-mode .album-detail-shot:focus-visible img,.low-gpu-mode .album-detail-shot:hover,.low-gpu-mode .album-detail-shot:hover img {
	transform:none
}
.gallery-splash-card img,.gallery-splash-card picture {
	width:100%;
	height:100%;
	object-fit:cover
}
.gallery-meta-strip p {
	margin:0;
	text-align:center;
	font-size:1.2rem;
	font-family:var(--font-editorial)
}
.wall-shot img,.wall-shot picture {
	width:100%;
	height:auto
}
.album-hero-card .hero-subhead {
	margin-bottom:0
}
.album-cover img,.album-cover picture {
	width:100%;
	height:100%;
	object-fit:cover
}
.album-grid figure {
	margin:0;
	border-radius:10px;
	overflow:
		hidden;
	border:2px solid #000
}
.album-grid img,.album-grid picture {
	width:100%;
	height:100%;
	object-fit:cover
}
.album-grid-full figure {
	break-inside:avoid;
	margin:0 0 .4rem
}
.diy-image-card img,.diy-image-card picture {
	width:100%;
	height:100%;
	object-fit:cover
}
.steps-grid article {
	position:relative;
	padding-top:2rem
}
.checklist-card ul {
	columns:2;
	column-gap:1.4rem;
	list-style:none;
	padding-left:0
}
.principles ul {
	list-style:none;
	padding-left:0
}
.principles-support h3 {
	margin:0 0 .5rem;
	font-family:var(--font-display);
	font-weight:900;
	font-size:clamp(1.26rem, 2.2vw, 1.6rem);
	line-height:1.12;
	text-wrap:balance
}
.principles-support p {
	margin:0 0 .85rem
}
.checklist-card li,.details-card ul.location-checklist li,.home-bring-list li,.principles li {
	position:relative;
	padding-left:1.9rem;
	margin-bottom:.38rem;
	font-family:var(--font-body);
	font-size:1.1rem;
	line-height:1.35;
	font-weight:400
}
.longform-section p:first-of-type {
	font-size:clamp(1.12rem, 1.8vw, 1.3rem);
	line-height:1.58;
	font-weight:700;
	color:#151a22
}
.page-about .longform-section p:first-of-type,.page-about .section-intro {
	font-size:1.1rem;
	line-height:1.35;
	font-weight:400;
	color:inherit
}
.longform-section h2 {
	color:#192033
}
.page-location .details-card h2 {
	color:#192033
}
.page-gallery .album-fan-copy strong,.page-gallery .album-fan-title,.page-gallery .hero-card h1 {
	color:#192033
}
.page-diy .hero-card h1,.page-diy .steps-grid h2 {
	color:#192033
}
.checklist-card li::before,.details-card ul.location-checklist li::before,.home-bring-list li::before,.principles li::before {
	content:"";
	position:absolute;
	left:0;
	top:.24rem;
	width:1.1rem;
	height:1.1rem;
	background:url("../images/check.svg") no-repeat center/contain
}
.checklist-card li::after,.details-card ul.location-checklist li::after,.home-bring-list li::after,.principles li::after {
	content:none
}
.quote-block p {
	margin-top:.55rem
}
.lightbox[hidden] {
	display:none!important
}
.lightbox-close,.lightbox-meta a,.lightbox-nav {
	border:3px solid #000;
	border-radius:999px;
	background:#fff;
	color:#111;
	font-family:var(--font-display);
	font-size:.95rem;
	padding:.35rem .72rem;
	cursor:pointer;
	text-decoration:none;
	box-shadow:var(--stamp-shadow)
}
.lightbox-frame img {
	width:100%;
	height:auto;
	max-height:84vh;
	object-fit:contain;
	margin:0 auto;
	touch-action:pinch-zoom
}
.lightbox-meta p {
	margin:0;
	font-family:var(--font-editorial);
	font-size:1.05rem;
	letter-spacing:.04em
}
.site-footer h2,.site-footer h3 {
	margin:0 0 .4rem;
	font-family:var(--font-display);
	font-size:1.06rem
}
.site-footer p {
	margin:0 0 .35rem
}
.footer-links a {
	color:#ffe67d
}
.js .reveal.is-visible {
	animation:none
}
@media (max-width:900px) {
	.home-triptych {
		grid-template-columns:1fr;
		gap:2rem
	}

}
@media (max-width:820px) {
	.main-nav a {
		white-space:nowrap
	}
	.js .mobile-nav-panel[data-open=true] {
		display:flex;
		align-items:flex-start;
		justify-content:center
	}
	.page-content {
		padding-top:9rem
	}
	html[dir=rtl] .language-pill {
		margin-left:0;
		margin-right:auto
	}
	.checklist-card ul {
		columns:1
	}

}
@media (max-width:720px) {
	.home-hero {
		margin-bottom:3.2rem
	}
	.page-content {
		padding-top:8.9rem
	}
	.weather-main {
		grid-template-columns:1fr;
		margin-top:1rem
	}
	.weather-card-note {
		right:.2rem;
		top:-.86rem;
		font-size:.7rem
	}
	.home-card {
		padding:1.7rem 1.1rem 1.35rem
	}
	.home-intro-card {
		padding-bottom:2.45rem
	}
	.home-weather-card {
		margin-top:-4.15rem
	}
	.blanket-panel>.edge-badge,.home-card>.edge-badge,.steps-grid article>.edge-badge,.template-cards article>.edge-badge {
		left:.78rem;
		top:-.86rem;
		font-size:.84rem
	}
	.home-top-sticker {
		top:-.82rem;
		font-size:.84rem;
		line-height:1.35;
		padding:.12rem .5rem .1rem;
		border-width:2px
	}
	.home-top-sticker-left {
		left:-.55rem
	}
	.home-top-sticker-right {
		right:-.45rem;
		max-width:27vw;
		text-align:center
	}
	.memory-pile {
		height:230px;
		width:80%;
		max-width:80%
	}
	.memory-pile-shot {
		width:clamp(110px,32vw,160px)
	}
	.memory-pile-shot-1 {
		left:0;
		top:10%
	}
	.memory-pile-shot-2 {
		left:18%;
		top:0
	}
	.memory-pile-shot-3 {
		left:37%;
		top:8%
	}
	.memory-pile-shot-4 {
		left:57%;
		top:3%
	}
	.memory-pile-shot-5 {
		left:73%;
		top:12%
	}
	.weather-card {
		margin-top:-3rem
	}
	.home-card p {
		margin-bottom:.5rem
	}
	.timeline-items article {
		grid-template-columns:1fr
	}
	.butterfly-engine {
		width:110px;
		height:110px
	}
	.butterfly-shadow {
		width:106px;
		height:196px;
		margin-left:-53px;
		margin-top:-98px
	}

}
@media (max-width:820px) {
	#bgp-embed .page-content {
		padding-top:4.4rem
	}
	.page-content {
		padding-left:3.75rem;
		padding-right:3.75rem;
		padding-bottom:5rem
	}

}
@media (max-width:520px) {
	#bgp-embed .page-content {
		padding-top:3.6rem
	}
	.page-content {
		padding-left:2.55rem;
		padding-right:2.55rem;
		padding-bottom:4rem
	}

}
.sponsor-table {
	width:100%;
	border-collapse:collapse
}
.sponsor-logo {
	width:220px;
	padding:10px 25px 10px 10px;
	text-align:center;
	vertical-align:middle
}
.sponsor-logo img {
	display:block;
	max-width:200px;
	max-height:140px;
	width:auto;
	height:auto;
	margin:0 auto;
	object-fit:contain
}
.sponsor-copy {
	border-left:1px solid #999;
	padding:10px 10px 10px 25px;
	vertical-align:middle
}
.sponsor-table tr+tr .sponsor-logo,.sponsor-table tr+tr .sponsor-copy {
	padding-top:22px
}
@media(max-width:520px) {
	.sponsor-table,.sponsor-table tbody,.sponsor-table tr,.sponsor-table td {
		display:block;
		width:100%
	}
	.sponsor-logo {
		padding:14px 25px
	}
	.sponsor-logo img {
		max-width:200px
	}
	.sponsor-copy {
		border-left:0;
		border-top:1px solid #bbb;
		padding:15px 8px 24px;
		text-align:center
	}
	.sponsor-table tr+tr .sponsor-logo {
		padding-top:26px
	}
}

/* ============================================================
COMMUNITY PHOTO SHUFFLE BUTTON
============================================================ */

.community-card {
	position: relative;
}

#community-shuffle {
	position: absolute;
	top: 1.25rem;
	right: 1.25rem;
	z-index: 5;

	width: 48px;
	height: 48px;
	padding: 0;

	border: 0;
	background: transparent;
	cursor: pointer;

	display: flex;
	align-items: center;
	justify-content: center;

	transition:
		transform 0.2s ease,
		opacity 0.2s ease;
}

#community-shuffle img {
	display: block;
	width: 44px;
	height: 44px;
	object-fit: contain;
}

#community-shuffle:hover {
	transform: rotate(-12deg) scale(1.08);
}

#community-shuffle:active {
	transform: rotate(-180deg) scale(0.95);
}

#community-shuffle:focus-visible {
	outline: 3px solid #222;
	outline-offset: 4px;
	border-radius: 50%;
}

@media (max-width: 520px) {
	#community-shuffle {
		top: 1rem;
		right: 1rem;
		width: 42px;
		height: 42px;
	}

	#community-shuffle img {
		width: 38px;
		height: 38px;
	}
}

/* ============================================================
COMMUNITY PHOTO "PICKED UP POLAROID" VIEW
============================================================ */

/* The pile photos are clickable. */
#community-pile img {
	cursor: pointer;
}

/* Transparent page-level layer. */
.community-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;

	display: flex;
	align-items: center;
	justify-content: center;

	padding: 2rem;

	background: transparent;

	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	transition:
		opacity 0.2s ease,
		visibility 0.2s ease;
}

/* Open state. */
.community-lightbox.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* Raised photo. */
.community-lightbox-image {
	display: block;

	width: auto;
	height: auto;

	max-width: min(72vw, 900px);
	max-height: 72vh;

	object-fit: contain;

	padding: 14px 14px 46px;

	background: #fff;

	border-radius: 4px;

	box-shadow:
		0 18px 45px rgba(0, 0, 0, 0.32),
		0 5px 12px rgba(0, 0, 0, 0.18);

	cursor: pointer;

	transform:
		translateY(18px)
		rotate(-1deg)
		scale(0.92);

	opacity: 0;

	transition:
		transform 0.25s ease,
		opacity 0.25s ease;
}

/* Looks like the photo has been lifted from the pile. */
.community-lightbox.is-open .community-lightbox-image {
	transform:
		translateY(-8px)
		rotate(-1deg)
		scale(1);

	opacity: 1;
}

/* Small close button attached to the raised photo area. */
.community-lightbox-close {
	position: fixed;

	z-index: 10000;

	width: 42px;
	height: 42px;

	padding: 0;

	border: 0;
	border-radius: 50%;

	background: rgba(255, 255, 255, 0.96);
	color: #222;

	font-size: 1.8rem;
	line-height: 1;

	cursor: pointer;

	display: flex;
	align-items: center;
	justify-content: center;

	box-shadow:
		0 5px 14px rgba(0, 0, 0, 0.22);

	transition:
		transform 0.2s ease,
		background 0.2s ease;
}

.community-lightbox-close:hover {
	transform: scale(1.08);
	background: #fff;
}

.community-lightbox-close:active {
	transform: scale(0.95);
}

.community-lightbox-close:focus-visible {
	outline: 3px solid #222;
	outline-offset: 3px;
}

/* Keep the page in place while the raised photo is open. */
body.community-lightbox-open {
	overflow: hidden;
}

@media (max-width: 700px) {
	.community-lightbox {
		padding: 1rem;
	}

	.community-lightbox-image {
		max-width: 88vw;
		max-height: 70vh;

		padding: 10px 10px 34px;
	}

	.community-lightbox-close {
		top: 1rem;
		right: 1rem;
	}
}

/* ============================================================
EVENTS CALENDAR
============================================================ */

#bgp-calendar {
	display: grid;
	gap: 1.6rem;
	margin-top: 1.5rem;
}


/* Individual event card */
.bgp-event-card {
	position: relative;

	padding: 1.5rem 1.6rem 1.45rem;

	background: #fffdf8;

	border: 2px solid rgba(0, 0, 0, 0.72);
	border-radius: 10px;

	box-shadow:
		10px 13px 6px rgba(0, 0, 0, 0.22);

	overflow: visible;

	transition:
		transform 0.18s ease,
		box-shadow 0.18s ease;
}


/* Little lift when hovering */
.bgp-event-card:hover {
	transform: translateY(-3px);

	box-shadow:
		12px 17px 9px rgba(0, 0, 0, 0.25);
}


/* Rainbow-ish accent stripe */
.bgp-event-card::before {
	content: "";

	position: absolute;
	top: 0;
	left: 0;

	width: 9px;
	height: 100%;

	background:
		linear-gradient(
			to bottom,
			#ef476f,
			#f78c6b,
			#ffd166,
			#06d6a0,
			#118ab2,
			#8b5cf6
		);
}


/* Date */
.bgp-event-date {
	display: inline-block;

	margin: 0 0 0.65rem;
	padding: 0.35rem 0.75rem;

	background: #dff7e8;

	border: 2px solid rgba(0, 0, 0, 0.68);
	border-radius: 999px;

	font-size: 0.86rem;
	font-weight: 800;
	letter-spacing: 0.04em;

	text-transform: uppercase;
}


/* Event title */
.bgp-event-title {
	margin:
		0
		0
		0.45rem;

	font-size:
		clamp(1.35rem, 2vw, 1.8rem);

	line-height: 1.1;
}


/* Time */
.bgp-event-time {
	margin:
		0
		0
		0.65rem;

	font-size: 1.05rem;
	font-weight: 800;
}


/* Location */
.bgp-event-location {
	margin:
		0
		0
		0.9rem;

	font-weight: 700;
}


/* Description */
.bgp-event-description {
	margin-top: 1rem;

	line-height: 1.55;
}


/* Prevent Google Calendar HTML from creating huge gaps */
.bgp-event-description p {
	margin:
		0
		0
		0.8rem;
}

.bgp-event-description p:last-child {
	margin-bottom: 0;
}


/* Mobile */
@media (max-width: 600px) {
	.bgp-event-card {
		padding:
			1.25rem
			1.15rem
			1.2rem
			1.35rem;
	}

	.bgp-event-card::before {
		width: 7px;
	}

	.bgp-event-title {
		font-size: 1.3rem;
	}
}

/* ============================================================
EVENT DATE BADGE
============================================================ */

.bgp-event-card {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 1.5rem;
	align-items: start;
}

.bgp-event-date-badge {
	grid-row: 1 / span 3;

	width: 92px;
	min-width: 92px;

	overflow: hidden;

	border: 2px solid rgba(0, 0, 0, 0.72);
	border-radius: 10px;

	background: #fff;

	box-shadow:
		6px 8px 4px rgba(0, 0, 0, 0.18);

	text-align: center;
}

.bgp-event-month {
	display: block;

	padding: 0.35rem 0.25rem;

	background: #ff7b54;
	color: #111;

	font-size: 0.9rem;
	font-weight: 900;
	letter-spacing: 0.08em;

	text-transform: uppercase;
}

.bgp-event-day {
	display: block;

	padding: 0.3rem 0 0;

	font-family: Georgia, "Times New Roman", serif;
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 1;
}

.bgp-event-weekday {
	display: block;

	padding: 0.1rem 0 0.55rem;

	font-size: 0.8rem;
	font-weight: 900;
	letter-spacing: 0.08em;

	text-transform: uppercase;
}

.bgp-event-title,
.bgp-event-time,
.bgp-event-location,
.bgp-event-description {
	grid-column: 2;
}

@media (max-width: 650px) {
	.bgp-event-card {
		grid-template-columns: 1fr;
	}

	.bgp-event-date-badge {
		grid-row: auto;
		width: 86px;
		min-width: 86px;
		margin-bottom: 1rem;
	}

	.bgp-event-title,
	.bgp-event-time,
	.bgp-event-location,
	.bgp-event-description {
		grid-column: 1;
	}
}

/* ============================================================
EVENT DETAILS
============================================================ */

.bgp-event-location {
	margin: 0.45rem 0 0.85rem;

	font-size: 0.98rem;
	font-weight: 700;

	color: rgba(0, 0, 0, 0.72);
}

.bgp-event-location::before {
	content: "📍";
	margin-right: 0.35rem;
}

.bgp-event-description {
	margin-top: 1rem;
	padding-top: 1rem;

	border-top: 1px dashed rgba(0, 0, 0, 0.22);

	font-size: 0.98rem;
	line-height: 1.55;

	color: rgba(0, 0, 0, 0.82);
}

.bgp-event-description p {
	margin: 0 0 0.85rem;
}

.bgp-event-description p:last-child {
	margin-bottom: 0;
}

/* ============================================================
EVENT ACTION BUTTON
============================================================ */

.bgp-event-actions {
	grid-column: 2;
	justify-self: end;
	margin-top: 1.25rem;
}

.bgp-event-calendar-link {
	display: inline-block;

	padding: 0.6rem 1rem;

	border: 2px solid rgba(0, 0, 0, 0.72);
	border-radius: 999px;

	background: #dff7e8;
	color: #111;

	font-size: 0.9rem;
	font-weight: 900;
	letter-spacing: 0.03em;

	text-decoration: none;

	box-shadow:
		5px 6px 4px rgba(0, 0, 0, 0.18);

	transition:
		transform 0.18s ease,
		box-shadow 0.18s ease,
		background 0.18s ease;
}

.bgp-event-calendar-link:hover {

	box-shadow:
		7px 9px 5px rgba(0, 0, 0, 0.22);

	background: #c9f0da;
}

.bgp-event-calendar-link:active {
	transform: translateY(0);

	box-shadow:
		3px 4px 3px rgba(0, 0, 0, 0.18);
}


/* ============================================================
COLLAPSIBLE EVENT DETAILS
============================================================ */

/* Keep the details area in the main content column,
not underneath the calendar badge. */
.bgp-event-details-section {
	grid-column: 2;
	width: 100%;
	margin-top: 0.8rem;
}


/* Details toggle */
.bgp-event-details-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;

	padding: 0.28rem 0.6rem;

	border: 2px solid rgba(0, 0, 0, 0.75);
	border-radius: 4px;

	background: #ff9a66;
	color: #111;

	font: inherit;
	font-size: 0.78rem;
	font-weight: 900;
	letter-spacing: 0.05em;
	text-transform: uppercase;

	cursor: pointer;

	box-shadow:
		3px 4px 0 rgba(0, 0, 0, 0.22);

	transform: rotate(2.5deg);

	transition:
		transform 0.18s ease,
		box-shadow 0.18s ease;
}

.bgp-event-details-toggle[aria-expanded="true"] {
	transform: rotate(-2.5deg);
}

.bgp-event-details-toggle:hover {
	transform:
		rotate(2.5deg)
		translateY(-2px)
		scale(1.03);
}

.bgp-event-details-toggle[aria-expanded="true"]:hover {
	transform:
		rotate(-2.5deg)
		translateY(-2px)
		scale(1.03);
}

.bgp-event-details-toggle:active {
	transform:
		rotate(2.5deg)
		translateY(0)
		scale(0.98);

	box-shadow:
		2px 3px 0 rgba(0, 0, 0, 0.22);
}


/* Little arrow */
.bgp-event-details-arrow {
	display: inline-block;

	font-size: 0.78rem;

	transition:
		transform 0.25s ease;
}


/* Rotate arrow when open */
.bgp-event-details-toggle[aria-expanded="true"]
.bgp-event-details-arrow {
	transform: rotate(180deg);
}


/* The actual sliding container */
.bgp-event-description {
	grid-column: 2;

	max-height: 0;
	overflow: hidden;

	margin: 0;
	padding: 0;

	border-top: 0;

	transition:
		max-height 0.35s ease;
}


/* Padding/border live INSIDE the collapsing element.
This is important — otherwise the collapsed description
still takes up visible space. */
.bgp-event-description-inner {
	margin-top: 0.9rem;
	padding-top: 1rem;

	border-top: 1px dashed rgba(0, 0, 0, 0.22);

	font-size: 0.98rem;
	line-height: 1.55;

	color: rgba(0, 0, 0, 0.82);
}


.bgp-event-description-inner p {
	margin: 0 0 0.85rem;
}


.bgp-event-description-inner p:last-child {
	margin-bottom: 0;
}


/* Keep the Google Calendar button in the right column. */
.bgp-event-actions {
	grid-column: 2;
	justify-self: end;
}


/* Mobile */
@media (max-width: 650px) {
	.bgp-event-details-section,
	.bgp-event-description,
	.bgp-event-actions {
		grid-column: 1;
	}
}

.bgp-calendar-split {
	position: relative;
	display: inline-flex;
	align-items: stretch;

	transition:
		transform 0.18s ease,
		filter 0.18s ease;
}

.bgp-calendar-split:hover {
	transform: translateY(-2px);
}

.bgp-calendar-split:hover .bgp-calendar-menu-toggle {
	background: #c9f0da;
}

.bgp-calendar-split:active {
	transform: translateY(0);
}

.bgp-calendar-split .bgp-event-calendar-link {
	border-radius: 999px 0 0 999px;
	margin: 0;
}

.bgp-calendar-menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 2.4rem;
	padding: 0;

	border: 2px solid rgba(0, 0, 0, 0.72);
	border-left: 0;
	border-radius: 0 999px 999px 0;

	background: #dff7e8;
	color: #111;

	font-size: 0.9rem;
	font-weight: 900;

	cursor: pointer;

	box-shadow: 5px 6px 4px rgba(0, 0, 0, 0.18);

	transition:
		transform 0.18s ease,
		background 0.18s ease,
		box-shadow 0.18s ease;
}

.bgp-calendar-menu-toggle:hover {
	background: #c9f0da;
}

.bgp-calendar-menu {
	position: absolute;
	right: 0;
	top: calc(100% + 0.5rem);

	display: none;

	min-width: 230px;

	padding: 0.4rem;

	background: #fffdf8;

	border: 2px solid rgba(0, 0, 0, 0.72);
	border-radius: 8px;

	box-shadow: 6px 8px 5px rgba(0, 0, 0, 0.22);

	z-index: 10;
}

.bgp-calendar-menu.is-open {
	display: block;
}

.bgp-calendar-download-ics {
	width: 100%;

	padding: 0.55rem 0.7rem;

	border: 0;
	border-radius: 5px;

	background: transparent;
	color: #111;

	font: inherit;
	font-size: 0.9rem;
	font-weight: 800;

	text-align: left;

	cursor: pointer;
}

.bgp-calendar-download-ics:hover {
	background: #f2eee6;
}

.bgp-event-card {
	position: relative;
	z-index: 1;
}

.bgp-event-card:has(.bgp-calendar-menu.is-open) {
	z-index: 20;
}

.bgp-calendar-menu-toggle {
	transition:
		background 0.18s ease,
		transform 0.18s ease;
}

.bgp-calendar-menu-arrow {
	display: inline-block;

	transition:
		transform 0.2s ease;
}

.bgp-calendar-menu-toggle[aria-expanded="true"]
.bgp-calendar-menu-arrow {
	transform: rotate(180deg);
}

.location-meta-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.2rem;
	margin-bottom: 2rem;
}

.fact-strip article {
	border: 2px dashed #000;
	border-radius: 8px;
	padding: 0.72rem;
	background: rgba(255, 230, 120, 0.35);
}

.checklist-card li, .principles li, .home-bring-list li, .details-card ul.location-checklist li {
	position: relative;
	padding-left: 1.9rem;
	margin-bottom: 0.38rem;
	font-family: var(--font-body);
	font-size: 1.1rem;
	line-height: 1.35;
	font-weight: 400;
}

/* ============================================================
HOME STATUS CARD — EVENT IMAGE BACKGROUND
============================================================ */

.weather-card.has-event-image {
	position: relative;
	overflow: visible;

	background-size: cover;
	background-repeat: no-repeat;

	color: #fff;
}

.weather-card.has-event-image::before {
	content: "";

	position: absolute;
	inset: 0;

	border-radius: inherit;

	background:
		linear-gradient(
			90deg,
			rgba(0, 0, 0, 0.62) 0%,
			rgba(0, 0, 0, 0.44) 46%,
			rgba(0, 0, 0, 0.56) 100%
		);

	z-index: 0;
	pointer-events: none;
}

.weather-card.has-event-image .weather-main,
.weather-card.has-event-image .weather-cancel-banner {
	position: relative;
	z-index: 1;
}

.weather-card.has-event-image .weather-card-badge {
	color: #111;
	z-index: 5;
}

.weather-card.has-event-image #home-status-heading,
.weather-card.has-event-image #home-status-day-primary,
.weather-card.has-event-image #home-status-event-title,
.weather-card.has-event-image #home-status-temp,
.weather-card.has-event-image #home-status-forecast {
	color: #fff;

	text-shadow:
		0 2px 3px rgba(0, 0, 0, 0.9),
		0 0 8px rgba(0, 0, 0, 0.65);
}

.weather-card.has-event-image #home-status-time {
	text-shadow:
		0 2px 3px rgba(0, 0, 0, 0.9),
		0 0 8px rgba(0, 0, 0, 0.65);
}
/* ============================================================
SITE FOOTER
============================================================ */

.site-footer {
	position: relative;
	z-index: 30;

	margin-top: 4rem;

	background:
		linear-gradient(
			180deg,
			#0b291b 0%,
			#071e14 100%
		);

	color: #f8f5e8;

	border-top: 3px solid #111;
}


/* ============================================================
MAIN FOOTER CONTENT
============================================================ */

.site-footer-inner {
	max-width: 1240px;

	margin: 0 auto;

	padding:
		2.5rem
		1.5rem
		2rem;

	display: grid;

	grid-template-columns:
		1.2fr
		0.8fr
		1.2fr;

	gap: 3rem;
}


/* ============================================================
SECTIONS
============================================================ */

.site-footer-section h2 {
	margin:
		0
		0
		0.7rem;

	font-family: var(--font-display);

	font-size: 1.15rem;
	font-weight: 900;

	color: #fff;
}

.site-footer-section p {
	margin: 0;

	font-family: var(--font-body);

	font-size: 0.95rem;

	line-height: 1.55;

	color:
		rgba(255, 255, 255, 0.78);
}


/* ============================================================
SOCIAL ICONS
============================================================ */

.site-footer-social {
	display: flex;

	align-items: center;

	gap: 0.8rem;

	margin-bottom: 0.8rem;
}

.site-footer-social-link {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 44px;
	height: 44px;

	color: #fff;

	border:
		2px solid rgba(255, 255, 255, 0.65);

	border-radius: 50%;

	text-decoration: none;

	transition:
		transform 0.18s ease,
		background 0.18s ease,
		color 0.18s ease;
}

.site-footer-social-link svg {
	width: 25px;
	height: 25px;

	display: block;
}

.site-footer-social-link:hover,
.site-footer-social-link:focus-visible {
	transform:
		translateY(-3px)
		rotate(-3deg);

	background: #fff;
	color: #0b291b;
}

.site-footer-social-note {
	font-size: 0.85rem !important;
}


/* ============================================================
PHOTO TAKEDOWN
============================================================ */

.site-footer-email {
	display: inline-block;

	margin-top: 0.7rem;

	color: #ffe056;

	font-family: var(--font-body);

	font-size: 0.95rem;
	font-weight: 800;

	text-decoration: none;
}

.site-footer-email:hover,
.site-footer-email:focus-visible {
	text-decoration: underline;
}


/* ============================================================
BOTTOM BAR
============================================================ */

.site-footer-bottom {
	max-width: 1240px;

	margin: 0 auto;

	padding:
		1rem
		1.5rem
		1.3rem;

	display: flex;

	align-items: center;
	justify-content: space-between;

	gap: 1rem;

	border-top:
		1px solid rgba(255, 255, 255, 0.18);
}

.site-footer-bottom p {
	margin: 0;

	font-family: var(--font-body);

	font-size: 0.82rem;

	color:
		rgba(255, 255, 255, 0.58);
}

/* ============================================================
   STICKY FOOTER
   ============================================================ */

html,
body {
	margin: 0;
	min-height: 100%;
}


#bgp-embed {
	min-height: 100vh;

	display: flex;
	flex-direction: column;
}


#bgp-embed .page-content {
	flex: 1 0 auto;
}


#bgp-embed .site-footer {
	flex: 0 0 auto;
	margin-top: 0;
}

/* ============================================================
TABLET / MOBILE
============================================================ */

@media (max-width: 850px) {

	.site-footer-inner {
		grid-template-columns:
			1fr 1fr;
	}

	.site-footer-takedown {
		grid-column:
			1 / -1;
	}

}


@media (max-width: 600px) {

	.site-footer-inner {
		grid-template-columns: 1fr;

		gap: 2rem;
	}

	.site-footer-takedown {
		grid-column: auto;
	}

	.site-footer-bottom {
		flex-direction: column;

		align-items: flex-start;

		gap: 0.35rem;
	}

}