/*
 * BOV "The Ledger" design system -- warm ink + brass, near-monochrome.
 * Gold is a hairline accent, never a background color. Plain CSS custom
 * properties, no framework.
 */

@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/newsreader-500.woff2') format('woff2');}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:500;font-display:swap;src:url('../fonts/newsreader-500-italic.woff2') format('woff2');}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/newsreader-600.woff2') format('woff2');}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:600;font-display:swap;src:url('../fonts/newsreader-600-italic.woff2') format('woff2');}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/newsreader-700.woff2') format('woff2');}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/public-sans-400.woff2') format('woff2');}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/public-sans-500.woff2') format('woff2');}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/public-sans-600.woff2') format('woff2');}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/public-sans-700.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/plex-mono-500.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/plex-mono-600.woff2') format('woff2');}

:root{
	--paper:#F7F3EA;
	--surface:#FBF8F2;
	--surface-2:#F1EBDD;
	--ink:#1B1B18;
	--ink-soft:#6B6255;
	--ink-faint:#A69C8C;
	--royal:#17140F;
	--royal-deep:#0F0D09;
	--royal-bright:#C6A876;
	--gold:#9C7A45;
	--gold-light:#C6A876;
	--gold-deep:#7A5F35;
	--line:#E3DACB;
	--paper-on-ink:#F3EEDF;
	--shadow:0 1px 2px rgba(23,20,15,.06), 0 8px 24px rgba(23,20,15,.08);
	--shadow-lift:0 6px 14px rgba(23,20,15,.12), 0 24px 48px rgba(23,20,15,.16);
	--radius-sm:3px;
	--radius:6px;
	--container-width:1180px;
	--font:'Public Sans', -apple-system, 'Segoe UI', sans-serif;
	--font-display:'Newsreader', Georgia, 'Times New Roman', serif;
	--font-mono:'IBM Plex Mono', ui-monospace, Menlo, monospace;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
	margin:0;
	background:var(--paper);
	color:var(--ink);
	font-family:var(--font);
	font-size:16px;
	line-height:1.6;
	-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);color:var(--ink);font-weight:600;text-wrap:balance;}
button{font-family:inherit;}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}

.container{max-width:var(--container-width);margin-inline:auto;padding-inline:20px;}
.eyebrow{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;}

.ic{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em;}
.ic-fill{fill:currentColor;stroke:none;}

/* ================= LOGO ================= */
.bov-logo{display:inline-flex;align-items:center;gap:1rem;}
.bov-logo--custom .custom-logo-link{display:flex;align-items:center;}
.bov-logo--custom img{max-width:min(300px, 100%);max-height:92px;width:auto;height:auto;}
.bov-logo__mark{flex:none;color:inherit;}
.bov-logo__word{
	font-family:var(--font-display);font-size:1.35rem;font-weight:600;
	letter-spacing:.1em;text-transform:uppercase;color:currentColor;
	line-height:1.15;
}
@media (max-width:600px){
	.bov-logo--custom img{max-width:min(300px, 58vw);max-height:64px;}
	.bov-logo__word{font-size:1.05rem;}
}

/* ================= HEADER ================= */
.site-header{position:relative;z-index:40;background:var(--royal-deep);border-bottom:1px solid rgba(198,168,118,.18);}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:.35rem;max-width:var(--container-width);margin-inline:auto;padding-inline:20px;}
.site-header__nav{display:flex;align-items:center;gap:1.75rem;}
.site-header__nav ul{display:flex;gap:1.75rem;list-style:none;}
.site-header__nav a{color:rgba(243,238,223,.78);font-size:.88rem;font-weight:500;transition:color .15s ease;}
.site-header__nav a:hover{color:var(--gold-light);}
.site-header__cta{
	font-size:.82rem;font-weight:600;color:var(--royal-deep);
	background:var(--gold);
	padding:.62rem 1.25rem;border-radius:2px;white-space:nowrap;
	transition:background-color .15s ease;
}
.site-header__cta:hover{background:var(--gold-light);}
.site-header__menu-toggle{display:none;background:none;border:1px solid rgba(243,238,223,.3);color:#fff;width:38px;height:38px;border-radius:2px;align-items:center;justify-content:center;cursor:pointer;}
.site-header__menu-icon{position:relative;display:block;width:18px;height:2px;background:#fff;}
.site-header__menu-icon::before,.site-header__menu-icon::after{content:"";position:absolute;left:0;width:18px;height:2px;background:#fff;}
.site-header__menu-icon::before{top:-6px;}
.site-header__menu-icon::after{top:6px;}

@media (max-width:980px){
	.site-header__nav{display:none;}
	.site-header__nav.is-open{
		display:block;position:absolute;top:100%;left:0;right:0;
		background:var(--royal-deep);border-top:1px solid rgba(243,238,223,.1);
		box-shadow:var(--shadow);z-index:20;
	}
	.site-header{position:relative;}
	.site-header__nav.is-open ul{flex-direction:column;gap:0;padding:.5rem 0;}
	.site-header__nav.is-open li{border-bottom:1px solid rgba(243,238,223,.08);}
	.site-header__nav.is-open a{display:block;padding:.85rem 1.25rem;}
	.site-header__menu-toggle{display:inline-flex;}
}
@media (max-width:520px){
	.site-header__cta{display:none;}
}

/* ================= HERO ================= */
.hero{
	position:relative;color:var(--paper-on-ink);padding-top:3.5rem;overflow:hidden;
	background-color:var(--royal-deep);
	background-image:
		linear-gradient(100deg, rgba(23,20,15,.93) 0%, rgba(23,20,15,.6) 42%, rgba(23,20,15,.38) 68%),
		radial-gradient(ellipse 800px 550px at 92% 8%, rgba(198,168,118,.32), transparent 62%),
		var(--hero-photo, none);
	background-size:cover;
	background-position:center 32%;
}
.hero__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1.8rem;align-items:start;}
.hero__copy{max-width:600px;}
.term-hero__block{max-width:64ch;}
.hero__eyebrow{color:var(--gold-light);}
.hero__title{
	font-size:clamp(2rem, 1.1rem + 3vw, 3.35rem);
	font-weight:600;line-height:1.06;margin-block:.9rem 1.1rem;max-width:14ch;color:var(--paper-on-ink);
}
.hero__title i{font-style:italic;color:var(--gold-light);font-weight:500;}
.hero__sub{max-width:46ch;color:rgba(243,238,223,.78);font-size:1.02rem;margin-bottom:1.9rem;}

.hero__search{background:#fff;border:1px solid rgba(198,168,118,.4);border-radius:var(--radius);padding-inline:1.1rem;display:flex;align-items:center;gap:.7rem;box-shadow:var(--shadow-lift);}
.hero__search > .ic{color:var(--gold-deep);flex:none;}
.hero__search input{flex:1;background:transparent;border:none;padding:1rem 0;font-family:var(--font);font-size:.98rem;color:var(--ink);}
.hero__search input:focus{outline:none;}
.hero__search input::placeholder{color:var(--ink-faint);}
.hero__results{position:relative;margin-top:2.2rem;max-width:640px;}
.hero__results-list{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow-lift);overflow:hidden;z-index:30;}
.hero__results-list a{display:flex;flex-direction:column;gap:.1rem;padding:.7rem 1rem;color:var(--ink);border-bottom:1px solid var(--line);}
.hero__results-list a:last-child{border-bottom:none;}
.hero__results-list a:hover{background:var(--surface-2);}
.hero__results-list small{color:var(--ink-soft);font-size:.78rem;}
.hero__results-empty{padding:.9rem 1rem;color:var(--ink-soft);font-size:.88rem;}

.ticker{margin-top:1.6rem;border:1px solid rgba(198,168,118,.22);border-radius:var(--radius-sm);background:rgba(0,0,0,.16);display:flex;align-items:center;overflow:hidden;}
.ticker__label{flex:none;background:var(--gold-deep);color:var(--paper-on-ink);font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.14em;padding:.65rem 1rem;white-space:nowrap;}
.ticker__track-wrap{overflow:hidden;flex:1;}
.ticker__track{display:flex;width:max-content;animation:ticker 34s linear infinite;}
.ticker__item{display:flex;align-items:center;gap:.6rem;padding:.65rem 1.6rem;font-size:.85rem;color:rgba(243,238,223,.82);white-space:nowrap;text-decoration:none;}
.ticker__item .ic{color:var(--gold-light);width:.55em;height:.55em;}
@keyframes ticker{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.ticker__track{animation:none;}}

.feat-slider{position:relative;background:var(--surface);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-lift);overflow:hidden;}
.feat-slider__eyebrow-bar{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.3rem;border-bottom:1px solid var(--line);}
.feat-slider__eyebrow-bar .eyebrow{color:var(--gold-deep);}
.feat-slider__count{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-faint);}
.feat-slider__stage{position:relative;min-height:430px;}
.feat-slide{position:absolute;inset:0;display:flex;flex-direction:column;opacity:0;transform:translateY(10px);transition:opacity .55s ease, transform .55s ease;pointer-events:none;}
.feat-slide.is-active{opacity:1;transform:translateY(0);pointer-events:auto;}
.feat-slide__photo{position:relative;background-size:cover;background-position:center;height:210px;flex:none;}
.feat-slide__body{padding:1.5rem 1.7rem;display:flex;flex-direction:column;gap:.5rem;flex:1;}

.feat-slider--compact{background:rgba(243,238,223,.06);border:1px solid rgba(198,168,118,.25);box-shadow:none;}
.feat-slider--compact .feat-slider__stage{min-height:auto;aspect-ratio:4/3;}
.feat-slide--compact{position:absolute;inset:0;display:flex;flex-direction:column;}
.feat-slide--compact .feat-slide__photo{height:60%;}
.feat-slide--compact .feat-slide__body{padding:.8rem .9rem;gap:.2rem;flex:1;}
.feat-slide--compact .feat-slide__name{font-size:.9rem;color:var(--paper-on-ink);font-weight:600;}
.feat-slide--compact .feat-slide__cat{font-size:.6rem;color:var(--gold-light);}
.feat-slider--compact .feat-slider__dashes{position:static;justify-content:center;padding:.6rem 0;}
.feat-slide__cat{color:var(--gold-deep);}
.feat-slide__name{font-size:1.5rem;font-weight:600;}
.feat-slide__loc{display:flex;align-items:center;gap:.4rem;color:var(--ink-soft);font-size:.9rem;}
.feat-slide__loc .ic{color:var(--gold);}
.feat-slide__rating{display:flex;align-items:center;gap:.3rem;color:var(--gold);margin-top:.15rem;}
.feat-slide__rating .ic{width:.9em;height:.9em;}
.feat-slide__rating span{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-soft);margin-left:.35rem;}
.feat-slide__cta{margin-top:.5rem;display:inline-flex;align-items:center;gap:.4rem;color:var(--royal);font-weight:600;font-size:.9rem;width:max-content;border-bottom:1px solid var(--gold);padding-bottom:2px;}
.feat-slider__dashes{position:absolute;bottom:14px;left:1.9rem;display:flex;gap:6px;}
.feat-slider__dashes button{width:22px;height:3px;border:none;background:var(--line);cursor:pointer;padding:0;}
.feat-slider__dashes button.is-active{background:var(--gold);}

.plaque{position:relative;background:radial-gradient(ellipse at 30% 20%, rgba(198,168,118,.20), transparent 55%),repeating-linear-gradient(125deg, rgba(243,238,223,.05) 0 1px, transparent 1px 18px),linear-gradient(150deg, var(--royal) 0%, var(--royal-deep) 100%);display:flex;align-items:center;justify-content:center;overflow:hidden;background-size:cover;background-position:center;}
.plaque .ic{width:34%;height:34%;color:rgba(243,238,223,.22);stroke-width:1.1;}
.plaque__tag{position:absolute;top:10px;left:0;background:var(--gold);color:var(--royal-deep);font-family:var(--font-mono);font-size:.62rem;font-weight:600;letter-spacing:.09em;padding:.3rem .65rem .3rem .55rem;clip-path:polygon(0 0,100% 0,92% 50%,100% 100%,0 100%);}

/* quick category row */
.quick-cats{display:flex;gap:2.4rem;flex-wrap:wrap;justify-content:space-between;}
.quick-cats a{display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center;text-decoration:none;}
.quick-cats a svg{width:44px;height:44px;border-radius:50%;border:1.4px solid var(--gold);color:var(--royal);padding:12px;box-sizing:border-box;}
.quick-cats span{font-size:.76rem;color:var(--ink-soft);font-weight:500;max-width:9ch;}

/* ================= section rhythm ================= */
section{padding-block:5.5rem;}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem;}
.section-head .eyebrow{color:var(--gold-deep);margin-bottom:.55rem;display:block;}
.section-head h2{font-size:clamp(1.55rem,1.1rem + 1.4vw,2.05rem);}
.section-head p{color:var(--ink-soft);max-width:46ch;margin-top:.5rem;}
.see-all{flex:none;font-size:.88rem;font-weight:600;color:var(--royal);border-bottom:1px solid var(--gold);padding-bottom:2px;white-space:nowrap;}
.section--tinted{background:var(--surface-2);}

.page-title,.section-title{font-size:clamp(1.55rem,1.1rem + 1.4vw,2.05rem);margin-top:2rem;}

/* ================= TRUSTED LANDING PAGES ================= */
.trusted-landing__intro{max-width:72ch;color:var(--ink-soft);margin:1.8rem 0 0;line-height:1.6;}
.term-description{color:var(--ink-soft);max-width:60ch;margin-top:.5rem;}

/* ================= ABOUT ================= */
.about{background:var(--surface);padding-top:6.5rem;}
.about__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:3.5rem;align-items:start;}
.about h2{font-size:clamp(1.7rem,1.2rem + 1.6vw,2.3rem);margin-bottom:1.1rem;}
.about p{color:var(--ink-soft);margin:0 0 1.1rem;max-width:56ch;}
.about-stats{display:flex;gap:2.4rem;margin-top:1.8rem;padding-top:1.8rem;border-top:1px solid var(--line);flex-wrap:wrap;}
.about-stats div{display:flex;flex-direction:column;gap:.25rem;}
.about-stats strong{font-family:var(--font-display);font-size:1.85rem;font-weight:600;color:var(--royal);}
.about-stats span{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);}

/* ---- live visitor counter ("flip"/mechanical-reel digits) ---- */
.flip-counter{display:inline-flex;align-items:center;gap:2px;vertical-align:middle;}
.flip-counter:not(.flip-counter--ready){font-family:var(--font-display);}
.flip-digit{
	position:relative;display:inline-block;overflow:hidden;
	width:20px;height:34px;border-radius:2px;
	background:var(--royal-deep);
}
.flip-digit__reel{
	position:absolute;top:0;left:0;width:100%;
	transition:transform .5s cubic-bezier(.3,.1,.2,1);
}
.flip-digit__reel span{
	display:flex;align-items:center;justify-content:center;
	width:100%;height:34px;
	font-family:var(--font-mono);font-weight:600;font-size:1.1rem;
	color:var(--gold-light);
	font-variant-numeric:tabular-nums;
}
.flip-digit__sep{padding:0 1px;font-family:var(--font-display);color:inherit;}
.about-stats .flip-digit{background:var(--royal-deep);}
.footer-stats .flip-digit{background:rgba(0,0,0,.3);}

@media (prefers-reduced-motion:reduce){.flip-digit__reel{transition:none;}}

.showcase-frame{background:var(--royal-deep);padding:14px;border-radius:var(--radius);box-shadow:var(--shadow-lift);}
.showcase-frame__inner{background:var(--surface);border:1px solid var(--gold-light);border-radius:2px;overflow:hidden;}
.showcase-frame .plaque{aspect-ratio:4/3;}
.showcase-frame__body{padding:1.4rem 1.5rem 1.6rem;}
.showcase-frame__eyebrow{color:var(--gold-deep);display:block;margin-bottom:.5rem;}
.showcase-frame__name{font-size:1.3rem;font-weight:600;margin-bottom:.35rem;font-family:var(--font-display);}
.showcase-frame__loc{display:flex;align-items:center;gap:.4rem;color:var(--ink-soft);font-size:.88rem;margin-bottom:.9rem;}
.showcase-frame__loc .ic{color:var(--gold);}
.showcase-frame__cta{display:inline-flex;align-items:center;gap:.4rem;background:var(--royal);color:var(--paper-on-ink);font-weight:600;font-size:.85rem;padding:.65rem 1.15rem;border-radius:2px;}

/* ================= FULL WIDTH FEATURE ================= */
.feature{padding-block:2.75rem;}
.feature__grid{
	display:grid;grid-template-columns:1fr 1fr;min-height:400px;
	background:var(--royal-deep);color:var(--paper-on-ink);
	border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lift);
}
.feature__grid.is-reverse{direction:rtl;}
.feature__grid.is-reverse > *{direction:ltr;}
.feature__photo{position:relative;min-height:280px;}
.feature__photo .plaque{position:absolute;inset:0;}
.feature__body{padding:2.75rem 3rem;display:flex;flex-direction:column;justify-content:center;gap:.9rem;}
.feature__eyebrow{color:var(--gold-light);}
.feature__filed{font-family:var(--font-mono);font-size:.72rem;color:rgba(243,238,223,.55);letter-spacing:.06em;}
.feature__name{font-size:clamp(1.5rem,1.1rem+1.4vw,2.1rem);font-weight:600;max-width:14ch;color:var(--paper-on-ink);}
.feature__text{color:rgba(243,238,223,.72);max-width:44ch;}
.feature__meta{display:flex;gap:1rem;margin-top:.3rem;flex-wrap:wrap;font-family:var(--font-mono);}
.feature__meta span{font-size:.82rem;color:rgba(243,238,223,.75);}
.feature__meta span:first-child{color:var(--gold-light);font-weight:600;}
.feature__meta span:not(:last-child)::after{content:"·";margin-left:1rem;color:rgba(243,238,223,.35);}
.feature__cta{
	margin-top:.6rem;display:inline-flex;align-items:center;gap:.5rem;width:max-content;
	background:transparent;border:1px solid var(--gold);color:var(--gold-light);
	font-weight:600;font-size:.85rem;letter-spacing:.02em;padding:.75rem 1.3rem;border-radius:2px;
	transition:background-color .2s ease, color .2s ease;
}
.feature__cta:hover{background:var(--gold);color:var(--royal-deep);}

/* ================= GRIDS / CARDS ================= */
/* Flexbox, not grid: a partial last row (e.g. 47 listings / 3 columns = a
   lone 2-card row) centers itself instead of trailing off left-aligned with
   empty space, so the grid self-balances at any item count on any screen
   width without needing the total to divide evenly by the column count. */
.listing-grid,.location-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1.6rem;margin:1.5rem 0 2.5rem;}
.listing-grid>.listing-card,.location-grid>.location-grid__item{flex:0 1 calc((100% - 3.2rem) / 3);max-width:calc((100% - 3.2rem) / 3);}

.listing-card{
	position:relative;
	background:
		linear-gradient(165deg, rgba(198,168,118,.16) 0%, rgba(243,238,223,.94) 38%);
	backdrop-filter:blur(6px);
	border:1px solid rgba(156,122,69,.28);
	border-radius:var(--radius);
	overflow:hidden;
	display:flex;flex-direction:column;
	box-shadow:0 1px 2px rgba(122,95,53,.08), 0 10px 26px rgba(122,95,53,.12);
	transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.listing-card::before{
	content:"";position:absolute;inset:0 0 auto 0;height:1px;
	background:linear-gradient(90deg, transparent, rgba(243,238,223,.9), transparent);
	pointer-events:none;
}
.listing-card:hover{box-shadow:0 2px 4px rgba(122,95,53,.1), 0 20px 40px rgba(122,95,53,.2);transform:translateY(-4px);border-color:var(--gold);}
.listing-card__media{position:relative;aspect-ratio:4/3;display:block;background-size:cover;background-position:center;}
.listing-card__media img{width:100%;height:100%;object-fit:cover;}
.listing-card__body{position:relative;padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.35rem;flex:1;}
.listing-card__category{color:var(--gold-deep);font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;}
.listing-card__title{margin:.2rem 0 0;font-size:1.25rem;font-weight:600;line-height:1.3;font-family:var(--font-display);}
.listing-card__title a{text-decoration:none;}
.listing-card__title a:hover{color:var(--gold-deep);}
.listing-card__address{color:var(--ink-soft);font-size:.86rem;margin:0 0 .3rem;}
.listing-card__foot{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:.78rem;}
.listing-card__phone{color:var(--ink-soft);text-decoration:none;}
.listing-card__rating{color:var(--gold-deep);font-weight:600;}

.location-grid__item{display:flex;flex-direction:column;gap:.3rem;padding:1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;transition:border-color .15s ease, box-shadow .2s ease;}
.location-grid__item:hover{border-color:var(--gold);box-shadow:var(--shadow);}
.location-grid__name{font-family:var(--font-display);font-weight:600;color:var(--ink);}
.location-grid__count{color:var(--ink-soft);font-size:.85rem;font-family:var(--font-mono);}

/* ================= JOIN NETWORK ================= */
.join{background:radial-gradient(ellipse 700px 400px at 12% 0%, rgba(198,168,118,.12), transparent 60%),var(--royal-deep);color:var(--paper-on-ink);}
.join__grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:3.5rem;align-items:center;}
.join h2{color:var(--paper-on-ink);font-size:clamp(1.7rem,1.2rem+1.6vw,2.3rem);}
.join h2 em{font-style:normal;color:var(--gold-light);}
.join p{color:rgba(243,238,223,.7);max-width:42ch;margin-top:.9rem;}
.join__trust{display:flex;align-items:center;gap:.55rem;margin-top:1.5rem;color:rgba(243,238,223,.65);font-size:.82rem;}
.join__trust .ic{color:var(--gold-light);}
.join__notice{background:rgba(198,168,118,.14);border:1px solid rgba(198,168,118,.4);border-radius:var(--radius-sm);padding:.9rem 1.1rem;margin-bottom:1.5rem;font-size:.9rem;display:flex;align-items:center;gap:.5rem;}
.join__notice .ic{color:var(--gold-light);flex:none;}

.join-form{background:var(--surface);border-radius:var(--radius);padding:1.9rem;box-shadow:var(--shadow-lift);}
.join-form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;}
.field{display:flex;flex-direction:column;gap:.4rem;}
.field label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);}
.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:2px;padding:.75rem .85rem;font-family:var(--font);font-size:.92rem;color:var(--ink);background:var(--surface);}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);outline:none;}
.field.full{grid-column:1 / -1;}
.hp-field{position:absolute !important;left:-9999px !important;top:-9999px !important;}
.join-form__submit{width:100%;margin-top:.3rem;background:var(--gold);color:var(--royal-deep);border:none;border-radius:2px;padding:.95rem;font-weight:700;font-size:.92rem;letter-spacing:.02em;cursor:pointer;box-shadow:var(--shadow);transition:background-color .15s ease;}
.join-form__submit:hover{background:var(--gold-light);}
.join-form__note{display:flex;align-items:center;gap:.45rem;justify-content:center;margin-top:.85rem;color:var(--ink-faint);font-size:.76rem;}
.join-form__note .ic{color:var(--gold-deep);}

/* ================= CATEGORIES ================= */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;}
.cat-card{
	position:relative;display:block;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;
	text-decoration:none;box-shadow:var(--shadow);
	transition:box-shadow .25s ease, transform .25s ease;
}
.cat-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-4px);}
.cat-card__image{position:absolute;inset:0;}
.cat-card::after{
	content:"";position:absolute;inset:0;
	background:linear-gradient(0deg, rgba(23,20,15,.88) 0%, rgba(23,20,15,.35) 48%, rgba(23,20,15,.08) 75%);
}
.cat-card:hover .cat-card__image{transform:scale(1.06);}
.cat-card__image{transition:transform .5s ease;}
.cat-card__icon{
	position:absolute;top:12px;right:12px;z-index:2;
	width:40px;height:40px;border-radius:50%;
	background:var(--gold);
	color:var(--royal-deep);
	display:flex;align-items:center;justify-content:center;
	box-shadow:var(--shadow);
}
.cat-card__icon .ic{width:1.1em;height:1.1em;}
.cat-card__info{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1rem 1.1rem;}
.cat-card__name{display:block;font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--paper-on-ink);}
.cat-card__count{display:block;font-family:var(--font-mono);font-size:.72rem;color:rgba(243,238,223,.75);margin-top:.2rem;}

/* ================= PAGINATION ================= */
.pagination,.nav-links{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:2rem 0 3rem;padding:0;list-style:none;}
.pagination .page-numbers,.nav-links .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 .75rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);text-decoration:none;font-weight:500;font-size:.9rem;transition:background-color .15s ease, border-color .15s ease;}
.pagination .page-numbers:hover,.nav-links .page-numbers:hover{border-color:var(--gold);}
.pagination .page-numbers.current,.nav-links .page-numbers.current{background:var(--gold);border-color:var(--gold);color:var(--royal-deep);}
.pagination .page-numbers.dots,.nav-links .page-numbers.dots{border-color:transparent;background:transparent;}

/* ================= SINGLE LISTING ================= */

/* Shared "floating panel" system -- every section of the listing body
   (gallery, pano, content, features, reviews, facebook feed, contact box)
   is its own white card with a brass top accent, rather than one
   continuous unstyled column. This is the "premium tiled" look. */
.listing-panel{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;}
.listing-panel__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem;padding-bottom:.9rem;border-bottom:1px solid var(--line);}
.listing-panel__title{display:flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--ink);margin:0;}
.listing-panel__title .ic{color:var(--gold-deep);}
.listing-panel__count{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-soft);background:var(--surface-2);border-radius:999px;padding:.15rem .6rem;}

/* No dark backdrop here -- the floating panel below already overlaps the
   cover photo; a dark .listing-header background used to show through as
   an odd strip beside/below the panel wherever the panel (constrained to
   .container's width) was narrower than the viewport. */
.listing-header{background:var(--paper);}
.listing-header__cover{position:relative;}
.listing-header__cover img{width:100%;height:340px;object-fit:cover;opacity:.85;}
.listing-header__panel{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lift);padding:1.6rem 1.8rem;margin-top:-64px;position:relative;z-index:2;}
.listing-header__panel .breadcrumbs ol{margin:0 0 1rem;}
.listing-header__panel .breadcrumbs a{color:var(--ink-soft);}
.listing-header__panel .breadcrumbs li:not(:last-child)::after{color:var(--line);}
.listing-header__top{display:flex;align-items:flex-start;gap:1.3rem;}
.listing-header__logo{flex:none;width:88px;height:88px;object-fit:cover;border-radius:var(--radius);border:3px solid var(--gold);background:#fff;box-shadow:var(--shadow);}
.listing-header__titleblock{flex:1;min-width:0;}
.listing-header__title{margin:0 0 .6rem;color:var(--ink);font-size:clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem);}
.listing-header__meta{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;font-size:.88rem;color:var(--ink-soft);}
.listing-header__category{text-decoration:none;text-transform:uppercase;font-size:.72rem;font-weight:600;letter-spacing:.06em;color:var(--gold-deep);background:var(--surface-2);border-radius:999px;padding:.3rem .75rem;}
.listing-header__rating,.listing-header__price{font-family:var(--font-mono);font-size:.8rem;}
.listing-badge{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.28rem .7rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
.listing-badge .ic{width:12px;height:12px;}
.listing-badge--trusted{background:var(--surface-2);border:1px solid var(--gold);color:var(--gold-deep);}
.listing-badge--claimed{background:var(--gold);color:var(--royal-deep);}
.listing-header__actions{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem;}
.listing-share{display:flex;align-items:center;gap:.5rem;background:var(--gold);color:var(--royal-deep);border:none;border-radius:2px;padding:.6rem 1.1rem;font-weight:600;font-size:.85rem;cursor:pointer;box-shadow:var(--shadow);transition:background-color .15s ease;}
.listing-share:hover{background:var(--gold-light);}
.listing-header__stats{display:flex;gap:.9rem;font-family:var(--font-mono);font-size:.78rem;color:var(--ink-soft);}
.listing-header__stats span{display:inline-flex;align-items:center;gap:.3rem;}
@media (max-width:700px){
	.listing-header__cover img{height:200px;}
	.listing-header__panel{margin-top:-48px;padding:1.25rem;}
	.listing-header__top{flex-wrap:wrap;}
	.listing-header__logo{width:64px;height:64px;}
	.listing-header__actions{flex-direction:row;align-items:center;justify-content:space-between;width:100%;order:3;padding-top:.9rem;margin-top:.9rem;border-top:1px solid var(--line);}
}

.listing-body{display:grid;grid-template-columns:2fr 1fr;gap:1.8rem;padding-block:2.5rem;align-items:start;}
.listing-body__main{display:flex;flex-direction:column;gap:1.75rem;min-width:0;}
.listing-body__sidebar{min-width:0;position:sticky;top:1.5rem;}
.listing-body__content{overflow-x:hidden;padding-top:.75rem;}
/* Elementor's own global default section padding (Elementor Pro's Site
   Settings -> Layout, set to 88px top on this site, long before this theme
   -- likely tuned for the old Wilcity fixed header) applies to any
   top-level section that doesn't set its own explicit padding. Some
   listings' content happens to leave it unset and inherit that 88px,
   showing as a big dead gap before the content actually starts; others
   set their own and look fine. Zero it out uniformly so every listing's
   content starts at the same, small, theme-controlled distance from the
   top of the card regardless of what that listing's own content set. */
.listing-body__content > .elementor > .elementor-section:first-child{padding-top:0 !important;}
@media (max-width:900px){
	.listing-body{grid-template-columns:1fr;}
	.listing-body__sidebar{position:static;}
}

/* A layout tailored to the exact photo count -- a 3-photo gallery forced
   into a grid designed for 5+ left dead cells and made the 2nd/3rd photos
   look tiny next to the hero; each count now gets its own shape. */
.listing-gallery__grid{display:grid;gap:.6rem;}
.listing-gallery__grid--single{grid-template-columns:1fr;}
.listing-gallery__grid--single .listing-gallery__item{aspect-ratio:16/9;}
.listing-gallery__grid--pair{grid-template-columns:repeat(2,1fr);height:300px;}
.listing-gallery__grid--trio{grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,1fr);height:320px;}
.listing-gallery__grid--trio .listing-gallery__item:first-child{grid-column:1;grid-row:1 / span 2;}
.listing-gallery__grid--quad{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);height:320px;}
.listing-gallery__grid--mosaic{grid-template-columns:2fr repeat(2,1fr);grid-template-rows:repeat(2,1fr);height:320px;}
.listing-gallery__grid--mosaic .listing-gallery__item:first-child{grid-column:1;grid-row:1 / span 2;}
.listing-gallery__item{position:relative;display:block;border-radius:var(--radius-sm);overflow:hidden;}
.listing-gallery__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease;}
.listing-gallery__item:hover img{transform:scale(1.05);}
.listing-gallery__more{position:absolute;inset:0;background:rgba(15,13,9,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.4rem;font-weight:600;}
@media (max-width:600px){
	.listing-gallery__grid--pair,.listing-gallery__grid--trio,.listing-gallery__grid--quad,.listing-gallery__grid--mosaic{height:220px;}
}

/* Lightbox (assets/js/gallery-lightbox.js) */
.bov-lightbox{position:fixed;inset:0;background:rgba(15,13,9,.94);z-index:200;display:none;align-items:center;justify-content:center;}
.bov-lightbox.is-open{display:flex;}
.bov-lightbox__img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:var(--radius-sm);}
.bov-lightbox__close{position:absolute;top:1.2rem;right:1.5rem;background:none;border:none;color:#fff;font-size:2.2rem;line-height:1;cursor:pointer;}
.bov-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.1);border:none;color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.8rem;cursor:pointer;}
.bov-lightbox__nav--prev{left:1.5rem;}
.bov-lightbox__nav--next{right:1.5rem;}
.bov-lightbox__nav:hover{background:rgba(255,255,255,.2);}
.bov-lightbox__count{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.7);font-family:var(--font-mono);font-size:.85rem;}

.listing-pano__controls{display:flex;gap:.5rem;}
.listing-pano__btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-soft);cursor:pointer;transition:background-color .15s ease, color .15s ease;}
.listing-pano__btn.is-active,.listing-pano__btn:hover{background:var(--gold);color:var(--royal-deep);border-color:var(--gold);}
.listing-pano__frame{border-radius:var(--radius-sm);overflow:hidden;}
/* Two classes deliberately, not one: Pannellum's own pannellum.css defines
   .pnlm-container{height:100%} and gets added as a second class on this
   same element, and its stylesheet loads after ours -- with equal (single-
   class) specificity that rule won the cascade and collapsed this to 0
   height (100% of an auto-height parent computes to nothing), even though
   the viewer clearly rendered visually. The compound selector here out-
   specifies it regardless of load order. */
.listing-pano .listing-pano__viewer{position:relative;width:100%;height:420px;background:var(--surface-2);}
@media (max-width:600px){.listing-pano .listing-pano__viewer{height:260px;}}

.listing-features__list{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:0;}
.listing-features__item{display:inline-flex;align-items:center;gap:.45rem;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:.45rem 1rem;font-size:.85rem;color:var(--ink);}
.listing-features__item .ic{width:14px;height:14px;color:var(--gold-deep);}

.listing-contact-box__cta{display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--gold);color:var(--royal-deep);border-radius:2px;padding:.8rem 1rem;font-weight:600;font-size:.92rem;text-decoration:none;margin-bottom:1.2rem;transition:background-color .15s ease;}
.listing-contact-box__cta:hover{background:var(--gold-light);}
.listing-contact-box__list{list-style:none;padding:0;margin:0 0 1.2rem;display:flex;flex-direction:column;gap:.4rem;}
.listing-contact-box__row{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:500;color:var(--ink);padding:.4rem 0;}
.listing-contact-box__row:hover{color:var(--gold-deep);}
.listing-contact-box__row--static{cursor:default;color:var(--ink);}
.listing-contact-box__icon{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--surface-2);color:var(--gold-deep);}
.listing-map iframe{width:100%;height:200px;border:0;border-radius:var(--radius-sm);margin-bottom:1rem;}
.listing-contact-box__directions{display:flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid var(--gold);color:var(--gold-deep);border-radius:2px;padding:.65rem 1rem;font-size:.88rem;font-weight:600;text-decoration:none;margin-bottom:1.2rem;transition:background-color .15s ease, color .15s ease;}
.listing-contact-box__directions:hover{background:var(--gold);color:var(--royal-deep);}
.listing-social-icons{list-style:none;display:flex;gap:.5rem;padding:0;margin:0;}
.listing-social-icons__item a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--surface-2);color:var(--ink);transition:background-color .15s ease, color .15s ease;}
.listing-social-icons__item a:hover{background:var(--gold);color:var(--royal-deep);}

/* The XFBML embed sizes its own iframe internally (data-adapt-container-width
   needs Facebook's SDK to re-measure after our layout settles -- see the
   parse-again script in facebook-feed.php); centering here means that even
   before that fires, the panel doesn't show a lopsided gap on one side. */
.listing-facebook-feed__frame{border-radius:var(--radius-sm);overflow:hidden;display:flex;justify-content:center;}
.listing-facebook-feed .fb-page{width:100%;}
.listing-facebook-feed iframe{border:1px solid var(--line);border-radius:var(--radius-sm);max-width:100%;}

/* Related listings -- horizontal scroll-snap carousel, no per-item JS math */
.listing-related{margin:1rem auto 3.5rem;}
.listing-related__nav{display:flex;gap:.5rem;}
.listing-related__arrow{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:background-color .15s ease, color .15s ease;}
.listing-related__arrow:hover{background:var(--gold);color:var(--royal-deep);border-color:var(--gold);}
.listing-related__track{display:flex;gap:1.6rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.5rem;scrollbar-width:none;}
.listing-related__track::-webkit-scrollbar{display:none;}
.listing-related__item{flex:0 0 calc((100% - 3.2rem) / 3);max-width:calc((100% - 3.2rem) / 3);scroll-snap-align:start;}
@media (max-width:980px){.listing-related__item{flex-basis:calc((100% - 1.6rem) / 2);max-width:calc((100% - 1.6rem) / 2);}}
@media (max-width:600px){.listing-related__item{flex-basis:82%;max-width:82%;}}

/* Mobile sticky action bar -- call/directions/CTA always reachable without
   scrolling, the way a native app keeps its primary actions on-screen. */
.listing-mobile-bar{display:none;}
@media (max-width:768px){
	body.single-listing .site-footer{padding-bottom:76px;}
	.listing-mobile-bar{
		display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;gap:.5rem;
		background:var(--royal-deep);box-shadow:0 -4px 16px rgba(15,13,9,.25);
		padding:.6rem calc(env(safe-area-inset-left) + .7rem) calc(env(safe-area-inset-bottom) + .6rem) calc(env(safe-area-inset-right) + .7rem);
	}
	.listing-mobile-bar__btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem .5rem;border-radius:2px;font-size:.82rem;font-weight:600;text-decoration:none;white-space:nowrap;}
	.listing-mobile-bar__btn--call{background:var(--gold);color:var(--royal-deep);}
	.listing-mobile-bar__btn--directions,.listing-mobile-bar__btn--cta{border:1px solid rgba(243,238,223,.35);color:var(--paper-on-ink);}
}

.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:1rem 0;font-size:.85rem;color:var(--ink-soft);}
.breadcrumbs li:not(:last-child)::after{content:"/";margin-left:.4rem;color:var(--line);}
.breadcrumbs a{text-decoration:none;}
.breadcrumbs a:hover{color:var(--gold-deep);}

/* ================= FOOTER ================= */
.site-footer{background:var(--royal-deep);color:rgba(243,238,223,.75);border-top:2px solid var(--gold);}
.footer-top{display:grid;grid-template-columns:1.1fr .8fr .8fr 1fr;gap:2.5rem;padding-block:4rem;max-width:var(--container-width);margin-inline:auto;padding-inline:20px;}
.footer-brand p{color:rgba(243,238,223,.55);font-size:.9rem;margin:1rem 0 0;max-width:32ch;}
.footer-stats{display:flex;gap:1.8rem;margin-top:1.6rem;}
.footer-stats div strong{display:block;font-family:var(--font-display);font-size:1.4rem;color:var(--gold-light);font-weight:600;}
.footer-stats div span{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(243,238,223,.5);}
.footer-col h4{color:var(--paper-on-ink);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.1rem;font-weight:600;}
.footer-col ul{display:flex;flex-direction:column;gap:.65rem;list-style:none;}
.footer-col a{font-size:.88rem;color:rgba(243,238,223,.68);transition:color .15s ease;text-decoration:none;}
.footer-col a:hover{color:var(--gold-light);}
.site-footer__bottom{border-top:1px solid rgba(243,238,223,.1);padding-block:1.4rem;display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:rgba(243,238,223,.45);max-width:var(--container-width);margin-inline:auto;padding-inline:20px;flex-wrap:wrap;gap:1rem;}
.site-footer__bottom .social{display:flex;gap:.6rem;}
.site-footer__bottom .social a{width:32px;height:32px;border-radius:50%;border:1px solid rgba(243,238,223,.15);display:flex;align-items:center;justify-content:center;color:rgba(243,238,223,.6);}
.site-footer__bottom .social a:hover{border-color:var(--gold-light);color:var(--gold-light);}

/* ================= RESPONSIVE ================= */
@media (max-width:980px){
	.hero__grid{grid-template-columns:1fr;}
	.hero__copy{max-width:none;}
	.about__grid{grid-template-columns:1fr;}
	.feature__grid{grid-template-columns:1fr;}
	.feature__grid.is-reverse{direction:ltr;}
	.feature__photo{min-height:240px;}
	.feature__body{padding:2.4rem 1.6rem;}
	.listing-grid>.listing-card,.location-grid>.location-grid__item{flex-basis:calc((100% - 1.6rem) / 2);max-width:calc((100% - 1.6rem) / 2);}
	.cat-grid{grid-template-columns:repeat(2,1fr);}
	.footer-top{grid-template-columns:1fr 1fr;}
}
@media (max-width:600px){
	section{padding-block:3.5rem;}
	.listing-grid>.listing-card,.location-grid>.location-grid__item{flex-basis:100%;max-width:100%;}
	.cat-grid{grid-template-columns:1fr 1fr;}
	.join__grid{grid-template-columns:1fr;}
	.join-form__row{grid-template-columns:1fr;}
	.footer-top{grid-template-columns:1fr;padding-block:3rem;}
	.section-head{flex-direction:column;align-items:flex-start;gap:.5rem;}
	.about{padding-top:3.5rem;}
	.site-footer__bottom{flex-direction:column;align-items:flex-start;}
}
