/*
Theme Name: La Villita Heritage
Theme URI: https://lavillitaheritage.org
Author: Delux Solutions
Description: Flexible heritage-focused WordPress theme for LaVillitaHeritage.org with WPBakery and Slider Revolution support.
Version: 1.20.0
Text Domain: lavillita-heritage
*/

:root{
  --lv-cream:#f8f5ef;
  --lv-limestone:#dcc7a0;
  --lv-adobe:#b56b45;
  --lv-brown:#46352c;
  --lv-green:#556b5d;
  --lv-burgundy:#7b2932;
  --lv-gold:#c7a34a;
  --lv-white:#ffffff;
  --lv-page-bg:#f8f5ef;
  --lv-content-bg:#f8f5ef;
  --lv-header-bg:#f8f5ef;
  --lv-header-height:106px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--lv-page-bg);color:var(--lv-brown);font-family:Arial,Helvetica,sans-serif;line-height:1.65}
a{color:var(--lv-burgundy);text-decoration:none}
a:hover{color:var(--lv-gold)}
img{max-width:100%;height:auto}
.container{width:min(1180px,92%);margin:0 auto}
.site-main{min-height:65vh;background:transparent}

/* ---------------------------------------------------------
   Header / navigation
--------------------------------------------------------- */
.site-header{
  z-index:9999;
  width:100%;
  padding:16px 0;
  transition:background .3s ease,box-shadow .3s ease,padding .3s ease,transform .3s ease;
}
.header-position-normal .site-header{position:relative}
.header-position-normal.header-sticky .site-header{position:sticky;top:0}
.header-position-overlay .site-header{position:absolute;top:0;left:0;right:0}
.header-position-overlay.header-sticky .site-header.scrolled{position:fixed;top:0;left:0;right:0}

.header-style-transparent .site-header{background:linear-gradient(to bottom,rgba(0,0,0,.34),rgba(0,0,0,0))}
.header-style-solid .site-header{background:var(--lv-header-bg);box-shadow:0 2px 16px rgba(0,0,0,.08)}
.site-header.scrolled{background:rgba(248,245,239,.97);box-shadow:0 3px 20px rgba(0,0,0,.12);padding:9px 0}

.header-inner{
  min-height:70px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:20px;
  position:relative;
}
.header-slot{display:flex;align-items:center;gap:24px;min-width:0}
.header-left{justify-content:flex-start}
.header-center{justify-content:center;text-align:center}
.header-right{justify-content:flex-end}
.header-slot .site-branding,.header-slot .primary-navigation{display:flex;align-items:center}
.header-slot:has(.site-branding):has(.primary-navigation){gap:28px}

.site-branding{line-height:1}
.site-branding .custom-logo-link{display:inline-flex;align-items:center}
.site-branding .custom-logo{max-height:78px;width:auto;display:block}
.site-branding>a{font-family:Georgia,'Times New Roman',serif;font-size:1.5rem;font-weight:700;letter-spacing:.03em}

.primary-menu{list-style:none;display:flex;gap:24px;margin:0;padding:0;align-items:center;justify-content:inherit;flex-wrap:wrap}
.primary-menu a{font-weight:600;text-transform:uppercase;font-size:.82rem;letter-spacing:.08em;transition:color .2s ease}
.header-text-light.header-style-transparent:not(.header-position-normal) .site-header:not(.scrolled) .site-branding>a,
.header-text-light.header-style-transparent:not(.header-position-normal) .site-header:not(.scrolled) .primary-menu a{color:#fff}
.header-text-dark .site-header:not(.scrolled) .site-branding>a,
.header-text-dark .site-header:not(.scrolled) .primary-menu a,
.header-style-solid .site-header:not(.scrolled) .site-branding>a,
.header-style-solid .site-header:not(.scrolled) .primary-menu a,
.header-position-normal .site-header:not(.scrolled) .site-branding>a,
.header-position-normal .site-header:not(.scrolled) .primary-menu a{color:var(--lv-brown)}
.site-header.scrolled .site-branding>a,.site-header.scrolled .primary-menu a{color:var(--lv-brown)}
.primary-menu a:hover,.site-header.scrolled .primary-menu a:hover{color:var(--lv-gold)}

.menu-toggle{display:none;border:0;background:var(--lv-burgundy);color:#fff;padding:10px 13px;border-radius:4px;font-weight:700;cursor:pointer}

/* Overlay mode is the native replacement for negative top margins. */
.header-position-overlay .site-main,
.header-position-overlay .homepage-builder-content,
.header-position-overlay .wpbakery-fullwidth-main{padding-top:0;margin-top:0}
.header-position-overlay .site-main > .wpbakery-fullwidth-content:first-child,
.header-position-overlay .homepage-content:first-child{margin-top:0}

/* ---------------------------------------------------------
   Homepage placeholder hero
--------------------------------------------------------- */
.hero{min-height:720px;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(rgba(28,20,15,.25),rgba(28,20,15,.45)),url('assets/images/lavillita-hero.png') center/cover no-repeat;padding:140px 20px 80px}
.hero-content{max-width:850px;text-shadow:0 3px 16px rgba(0,0,0,.55)}
.hero-kicker{text-transform:uppercase;letter-spacing:.22em;font-weight:700;font-size:.9rem;color:#f5dfac}
.hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3rem,7vw,6.5rem);line-height:1;margin:.2em 0}
.hero p{font-size:clamp(1.1rem,2vw,1.5rem);max-width:720px;margin:0 auto 30px}
.btn{display:inline-block;padding:14px 24px;border-radius:3px;background:var(--lv-burgundy);color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem}
.btn:hover{background:var(--lv-gold);color:var(--lv-brown)}

/* ---------------------------------------------------------
   Theme-generated page hero / Slider Revolution
--------------------------------------------------------- */
.lv-page-hero{display:flex;align-items:center;justify-content:center;background-position:center;background-size:cover;background-repeat:no-repeat;color:#fff;text-align:center}
.lv-page-hero.hero-height-small{min-height:330px}
.lv-page-hero.hero-height-medium{min-height:500px}
.lv-page-hero.hero-height-large{min-height:650px}
.lv-page-hero.hero-height-fullscreen{min-height:100vh}
.header-position-overlay .lv-page-hero{padding-top:var(--lv-header-height)}
.lv-page-hero-inner{padding:70px 0}
.lv-page-hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3rem,7vw,6rem);line-height:1.05;margin:0;text-shadow:0 3px 18px rgba(0,0,0,.45)}
.lv-revslider-hero{width:100%;margin:0;padding:0;overflow:hidden}

/* ---------------------------------------------------------
   Page title / breadcrumbs / content width
--------------------------------------------------------- */
.lv-page-intro{background:var(--lv-content-bg);padding:42px 0 18px}
.header-position-overlay .lv-page-intro{padding-top:calc(var(--lv-header-height) + 36px)}
.lv-page-intro .entry-title{margin:12px 0 0}
.lv-breadcrumbs{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:.9rem;color:#7b7068}
.lv-breadcrumbs a{color:var(--lv-burgundy)}
.breadcrumb-separator{color:var(--lv-gold)}
.lv-page-hero .lv-breadcrumbs{justify-content:center;margin-bottom:18px;color:#fff}
.lv-page-hero .lv-breadcrumbs a,.lv-page-hero .breadcrumb-separator{color:#fff}
.entry-title{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.2rem,5vw,4rem);color:var(--lv-brown);line-height:1.1}

.page-content-shell{background:var(--lv-content-bg);padding:38px 0 70px}
.page-content-inner{margin:0 auto}
.content-width-contained .page-content-inner{width:min(1180px,92%)}
.content-width-narrow .page-content-inner{width:min(820px,88%)}
.content-width-full .page-content-inner{width:100%}
.wpbakery-fullwidth-content,.homepage-content{margin:0;padding:0;background:transparent}
.content-width-contained .wpbakery-fullwidth-content:not(.vc_row),
.content-width-narrow .wpbakery-fullwidth-content:not(.vc_row){width:100%}

/* WPBakery page-controlled mode intentionally adds no hero spacing. */
.hero-mode-builder .wpbakery-fullwidth-content,
.hero-mode-builder .homepage-content{margin-top:0}
.hero-mode-builder.page-title-hidden.breadcrumbs-hidden .site-main{padding-top:0}

.section{padding:80px 0}
.section-title{text-align:center;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2rem,4vw,3.4rem);margin:0 0 18px;color:var(--lv-brown)}
.section-intro{text-align:center;max-width:760px;margin:0 auto 45px;color:#6c5b50}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card{background:#fff;border:1px solid rgba(70,53,44,.1);box-shadow:0 10px 30px rgba(70,53,44,.08);padding:30px;border-radius:6px}
.card h3{font-family:Georgia,'Times New Roman',serif;color:var(--lv-burgundy);font-size:1.45rem;margin-top:0}

/* ---------------------------------------------------------
   Footer
--------------------------------------------------------- */
.site-footer{background:var(--lv-brown);color:#eadfcf;padding:50px 0 25px}
.site-footer a{color:#f1d79b}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:35px}
.copyright{margin-top:35px;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);font-size:.9rem}
.editable-footer-content{width:100%}
.editable-footer-content>.vc_row{margin-bottom:0}
.site-footer .editable-footer-content p:last-child{margin-bottom:0}
.site-footer .copyright{width:min(1180px,92%);margin-left:auto;margin-right:auto}

/* ---------------------------------------------------------
   WPBakery compatibility
   v1.18: WPBakery rows are boxed by default inside the theme's
   content container. Rows explicitly set to Stretch Row / Stretch
   Row and Content are allowed to break out to the viewport using
   WPBakery's native full-width logic.
--------------------------------------------------------- */
.homepage-builder-content{margin:0;padding:0;min-height:60vh;overflow:visible}
.homepage-builder-content>.vc_row:first-child,
.homepage-builder-content>.wpb-content-wrapper>.vc_row:first-child{margin-top:0}
.placeholder-instructions{background:var(--lv-cream)}

/* ---------------------------------------------------------
   Responsive
--------------------------------------------------------- */
@media(max-width:850px){
  :root{--lv-header-height:86px}
  .header-inner{display:flex;justify-content:space-between;min-height:54px}
  .header-slot{display:flex;min-width:0}
  .header-center:has(.site-branding){margin-right:auto}
  .site-branding .custom-logo{max-height:58px}
  .menu-toggle{display:block;margin-left:auto}
  .primary-navigation{display:none;position:absolute;top:100%;left:0;right:0;background:var(--lv-brown);padding:18px 4%;box-shadow:0 8px 20px rgba(0,0,0,.2)}
  .primary-navigation.open{display:block}
  .header-slot .primary-navigation.open{display:block;position:fixed;top:86px;left:0;right:0}
  body.mobile-menu-open .primary-navigation{display:block}
  .primary-menu{flex-direction:column;align-items:flex-start;gap:8px}
  .primary-menu a,.site-header.scrolled .primary-menu a{color:#fff!important;display:block;padding:8px 0}
  .cards,.footer-grid{grid-template-columns:1fr}
  .hero{min-height:620px}
  .header-style-transparent .site-header{background:rgba(70,53,44,.72)}
  .lv-page-hero.hero-height-small{min-height:290px}
  .lv-page-hero.hero-height-medium{min-height:420px}
  .lv-page-hero.hero-height-large{min-height:540px}
}


/* ---------------------------------------------------------
   Single Event — The Events Calendar
--------------------------------------------------------- */
.lv-event-single{background:var(--lv-page-bg);color:var(--lv-brown)}
.lv-event-hero{position:relative;display:flex;align-items:flex-end;width:100%;height:605px;min-height:605px;background-position:center;background-size:cover;background-repeat:no-repeat;color:#fff;overflow:hidden}
.lv-event-hero.hero-small{height:420px;min-height:420px}.lv-event-hero.hero-medium{height:510px;min-height:510px}.lv-event-hero.hero-large{height:605px;min-height:605px}
.lv-event-hero.pos-center-center{background-position:center center}.lv-event-hero.pos-center-top{background-position:center top}.lv-event-hero.pos-center-bottom{background-position:center bottom}.lv-event-hero.pos-left-center{background-position:left center}.lv-event-hero.pos-right-center{background-position:right center}
.lv-event-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,rgba(12,9,7,.12) 20%,rgba(12,9,7,.28) 58%,rgba(12,9,7,.82) 100%)}
.lv-event-hero.overlay-light::after{background:linear-gradient(to bottom,rgba(12,9,7,.05) 25%,rgba(12,9,7,.16) 60%,rgba(12,9,7,.62) 100%)}
.lv-event-hero.overlay-dark::after{background:linear-gradient(to bottom,rgba(12,9,7,.25) 15%,rgba(12,9,7,.46) 58%,rgba(12,9,7,.92) 100%)}
.lv-event-hero-inner{position:relative;z-index:2;display:flex;align-items:flex-end;gap:26px;padding-top:calc(var(--lv-header-height) + 80px);padding-bottom:62px}
.lv-event-date-badge{flex:0 0 96px;background:var(--lv-burgundy);color:#fff;text-align:center;padding:14px 12px 13px;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.lv-event-date-badge .month{display:block;font-size:.77rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em}.lv-event-date-badge .day{display:block;font-size:3rem;font-weight:700;line-height:1;margin:4px 0}.lv-event-date-badge .year{display:block;font-size:.72rem;opacity:.92}
.lv-event-hero-copy{max-width:900px;text-shadow:0 3px 18px rgba(0,0,0,.45)}
.lv-event-category{display:block;margin-bottom:9px;color:#f0d58d;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em}
.lv-event-hero h1{margin:0 0 12px;color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.3rem,4.4vw,var(--lv-event-title-size,46px));font-weight:500;line-height:1.06}
.lv-event-hero-meta{display:flex;flex-wrap:wrap;gap:9px 22px;margin:0 0 22px;font-size:1.03rem}.lv-event-hero-meta span{display:inline-flex;align-items:center;gap:7px}
.lv-event-ticket-btn,.lv-event-secondary-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 24px;border-radius:3px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;text-decoration:none!important;transition:.2s ease}
.lv-event-ticket-btn{background:var(--lv-burgundy);color:#fff!important;border:2px solid var(--lv-burgundy)}.lv-event-ticket-btn:hover{background:#5f2027;border-color:#5f2027;transform:translateY(-1px)}
.lv-event-secondary-btn{background:transparent;color:var(--lv-brown)!important;border:2px solid var(--lv-gold)}.lv-event-secondary-btn:hover{background:var(--lv-gold)}
.lv-event-body{padding:66px 0 88px}.lv-event-body-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:48px;align-items:start}
.lv-event-main,.lv-event-sidebar-card{background:#fff;border:1px solid rgba(70,53,44,.08);border-radius:10px;box-shadow:0 10px 30px rgba(70,53,44,.07)}
.lv-event-main{padding:42px 46px}.lv-event-main h2,.lv-event-sidebar-card h2{font-family:Georgia,'Times New Roman',serif;font-weight:500;color:var(--lv-brown)}
.lv-event-main h2{font-size:2.1rem;margin:0 0 24px}.lv-event-description{font-size:1.04rem;line-height:1.78;color:#5f554d}.lv-event-description>*:first-child{margin-top:0}.lv-event-description>*:last-child{margin-bottom:0}
.lv-event-about-layout.has-details-image{display:flex;flex-direction:column;gap:28px}.lv-event-about-layout.has-details-image .lv-event-details-image{order:1;width:100%;max-width:none;margin:0;overflow:hidden;border-radius:8px;background:#f3eee6}.lv-event-about-layout.has-details-image .lv-event-description{order:2;width:100%}.lv-event-details-image img{display:block;width:100%;height:auto}.lv-event-about-layout:not(.has-details-image) .lv-event-description{width:100%}
.lv-event-bottom-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px;padding-top:28px;border-top:1px solid #eee7de}
.lv-event-sidebar{display:grid;gap:24px}.lv-event-sidebar-card{padding:28px}.lv-event-sidebar-card h2{font-size:1.55rem;margin:0 0 18px}.lv-detail-list{display:grid;gap:16px}.lv-detail-item{padding-bottom:14px;border-bottom:1px solid #eee7de}.lv-detail-item:last-child{padding-bottom:0;border-bottom:0}.lv-detail-label{display:block;margin-bottom:4px;color:var(--lv-gold);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.lv-detail-value{color:#5a4c43;line-height:1.5}
.lv-venue-address{margin:4px 0 18px;color:#655b54;line-height:1.6}.lv-event-map{overflow:hidden;border-radius:7px;background:#eee}.lv-event-map iframe,.lv-event-map .tribe-events-venue-map,.lv-event-map .tribe-events-map{width:100%!important;max-width:100%!important}
.lv-event-directions{display:inline-flex;margin-top:15px;color:var(--lv-burgundy);font-weight:700;text-transform:uppercase;font-size:.74rem;letter-spacing:.07em;text-decoration:none!important}.lv-event-directions:hover{color:var(--lv-gold)}
.lv-event-no-image{background:linear-gradient(135deg,var(--lv-brown),var(--lv-burgundy))}
.lv-event-external-note{margin:9px 0 0;color:#847970;font-size:.75rem;font-style:italic}
body.lv-single-event .tribe-events-event-image,body.lv-single-event .tribe-events-single-event-title,body.lv-single-event .tribe-events-schedule,body.lv-single-event .tribe-events-single-section,body.lv-single-event .tribe-events-back{display:none!important}
@media(max-width:900px){.lv-event-hero,.lv-event-hero.hero-small,.lv-event-hero.hero-medium,.lv-event-hero.hero-large{height:520px;min-height:520px}.lv-event-hero-inner{padding-bottom:44px}.lv-event-body-grid{grid-template-columns:1fr}.lv-event-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-event-main{padding:34px}.lv-event-about-layout.has-details-image{gap:24px}}
@media(max-width:680px){.lv-event-hero,.lv-event-hero.hero-small,.lv-event-hero.hero-medium,.lv-event-hero.hero-large{height:500px;min-height:500px}.lv-event-hero-inner{display:block;padding-top:calc(var(--lv-header-height) + 70px);padding-bottom:34px}.lv-event-date-badge{width:78px;margin-bottom:18px}.lv-event-date-badge .day{font-size:2.35rem}.lv-event-hero h1{font-size:min(2.55rem,var(--lv-event-title-size,46px))}.lv-event-hero-meta{display:grid;gap:7px;font-size:.94rem}.lv-event-body{padding:38px 0 60px}.lv-event-main{padding:28px 22px}.lv-event-about-layout.has-details-image{gap:20px}.lv-event-details-image{max-width:none;margin:0}.lv-event-sidebar{grid-template-columns:1fr}.lv-event-sidebar-card{padding:24px}.lv-event-ticket-btn,.lv-event-secondary-btn{width:100%}}


/* =========================================================
   v1.8 SINGLE POST PRESENTATION — scoped to single posts only
   ========================================================= */
body.single-post .lv-historic-single,
body.single-post .lv-editorial-single{width:100%;max-width:none;margin:0;background:var(--lv-page-bg)}

body.single-post.lv-single-historic-site .lv-historic-hero{position:relative;display:flex;align-items:flex-end;width:100%;height:605px;min-height:605px;background-position:center;background-size:cover;background-repeat:no-repeat;color:#fff;overflow:hidden}
body.single-post.lv-single-historic-site .lv-historic-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(12,9,7,.12) 15%,rgba(12,9,7,.28) 55%,rgba(12,9,7,.86) 100%);pointer-events:none}
body.single-post.lv-single-historic-site .lv-historic-hero.overlay-light::after{background:linear-gradient(to bottom,rgba(12,9,7,.04) 18%,rgba(12,9,7,.15) 58%,rgba(12,9,7,.68) 100%)}
body.single-post.lv-single-historic-site .lv-historic-hero.overlay-dark::after{background:linear-gradient(to bottom,rgba(12,9,7,.22) 12%,rgba(12,9,7,.46) 56%,rgba(12,9,7,.94) 100%)}
body.single-post.lv-single-historic-site .lv-historic-hero.pos-center-top{background-position:center top}
body.single-post.lv-single-historic-site .lv-historic-hero.pos-center-bottom{background-position:center bottom}
body.single-post.lv-single-historic-site .lv-historic-hero.pos-left-center{background-position:left center}
body.single-post.lv-single-historic-site .lv-historic-hero.pos-right-center{background-position:right center}
body.single-post.lv-single-historic-site .lv-historic-hero.no-image{background:#46352c}
body.single-post.lv-single-historic-site .lv-historic-hero-inner{position:relative;z-index:2;width:min(1180px,92%);margin:0 auto;padding:0 0 58px;text-shadow:0 3px 18px rgba(0,0,0,.45)}
body.single-post.lv-single-historic-site .lv-historic-kicker{display:block;margin-bottom:10px;color:#f0cf79;font-size:.78rem;font-weight:700;letter-spacing:3px;text-transform:uppercase}
body.single-post.lv-single-historic-site .lv-historic-hero h1{max-width:980px;margin:0;color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:clamp(3rem,5.2vw,5rem);font-weight:500;line-height:1.02}
body.single-post.lv-single-historic-site .lv-historic-subtitle{max-width:850px;margin:14px 0 0;color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.15rem,1.8vw,1.6rem);line-height:1.4}
body.single-post.lv-single-historic-site .lv-historic-story-section{padding:68px 0 52px}
body.single-post.lv-single-historic-site .lv-historic-story-wrap{width:min(1040px,92%);margin:0 auto}
body.single-post.lv-single-historic-site .lv-historic-story-card{padding:56px 64px;background:#fff;border:1px solid rgba(70,53,44,.08);border-radius:12px;box-shadow:0 12px 34px rgba(70,53,44,.08)}
body.single-post.lv-single-historic-site .lv-historic-story-kicker{display:block;margin-bottom:20px;color:var(--lv-gold);font-size:.75rem;font-weight:700;letter-spacing:2.5px;text-transform:uppercase}
body.single-post.lv-single-historic-site .lv-historic-story-content{font-size:1.08rem;line-height:1.86;color:#4b4039}
body.single-post.lv-single-historic-site .lv-historic-story-content>h1:first-child,
body.single-post.lv-single-historic-site .lv-historic-story-content>h2:first-child,
body.single-post.lv-single-historic-site .lv-historic-story-content>h3:first-child{display:none}
body.single-post.lv-single-historic-site .lv-historic-story-content h2,
body.single-post.lv-single-historic-site .lv-historic-story-content h3{color:var(--lv-burgundy);font-family:Georgia,'Times New Roman',serif;font-weight:500}
body.single-post.lv-single-historic-site .lv-historic-image-caption{margin:36px 0 0;padding-top:18px;border-top:1px solid #eadfce;color:#817267;font-size:.86rem;font-style:italic;text-align:center}
body.single-post.lv-single-historic-site .lv-historic-explore-section{padding:24px 0 84px}
body.single-post.lv-single-historic-site .lv-historic-explore-section>.container{width:min(1180px,92%);margin:0 auto}
body.single-post.lv-single-historic-site .lv-historic-explore-heading{text-align:center;margin-bottom:30px}
body.single-post.lv-single-historic-site .lv-historic-explore-heading>span{display:block;color:var(--lv-gold);font-size:.75rem;font-weight:700;letter-spacing:2.4px;text-transform:uppercase}
body.single-post.lv-single-historic-site .lv-historic-explore-heading h2{margin:8px 0 0;color:var(--lv-brown);font-family:Georgia,'Times New Roman',serif;font-size:2.1rem;font-weight:500}
body.single-post.lv-single-historic-site .lv-historic-next-card{display:grid;grid-template-columns:46% 54%;max-width:980px;margin:0 auto;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 10px 30px rgba(70,53,44,.09);text-decoration:none!important}
body.single-post.lv-single-historic-site .lv-historic-next-image{min-height:280px;overflow:hidden}
body.single-post.lv-single-historic-site .lv-historic-next-image img{display:block;width:100%;height:100%;min-height:280px;object-fit:cover}
body.single-post.lv-single-historic-site .lv-historic-next-copy{display:flex;flex-direction:column;justify-content:center;padding:42px 48px}
body.single-post.lv-single-historic-site .lv-historic-next-copy>span{color:var(--lv-gold);font-size:.72rem;font-weight:700;letter-spacing:2px;text-transform:uppercase}
body.single-post.lv-single-historic-site .lv-historic-next-copy h3{margin:8px 0 18px;color:var(--lv-burgundy);font-family:Georgia,'Times New Roman',serif;font-size:2rem;font-weight:500}
body.single-post.lv-single-historic-site .lv-historic-all-link{text-align:center;margin-top:28px}
body.single-post.lv-single-historic-site .lv-historic-all-link a{color:var(--lv-burgundy);font-size:.8rem;font-weight:700;letter-spacing:.8px;text-decoration:none;text-transform:uppercase}

body.single-post:not(.lv-single-historic-site) .lv-editorial-single{padding-top:var(--lv-header-height)}
body.single-post:not(.lv-single-historic-site) .lv-editorial-hero{position:relative;min-height:420px;display:flex;align-items:flex-end;background:#46352c center/cover no-repeat;color:#fff}
body.single-post:not(.lv-single-historic-site) .lv-editorial-hero.has-image::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(15,11,9,.18),rgba(15,11,9,.82))}
body.single-post:not(.lv-single-historic-site) .lv-editorial-hero-inner{position:relative;z-index:2;width:min(1180px,92%);margin:0 auto;padding:70px 0 48px}
body.single-post:not(.lv-single-historic-site) .lv-editorial-kicker{display:block;color:#f0cf79;font-size:.76rem;font-weight:700;letter-spacing:2.4px;text-transform:uppercase}
body.single-post:not(.lv-single-historic-site) .lv-editorial-hero h1{max-width:980px;margin:8px 0 10px;color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.7rem,5vw,4.6rem);font-weight:500;line-height:1.04}
body.single-post:not(.lv-single-historic-site) .lv-editorial-meta{font-size:.9rem;color:#eee}
body.single-post:not(.lv-single-historic-site) .lv-editorial-deck{max-width:820px;margin:16px 0 0;color:#fff;font-size:1.08rem}
body.single-post:not(.lv-single-historic-site) .lv-editorial-content-section{padding:62px 0 80px}
body.single-post:not(.lv-single-historic-site) .lv-editorial-content-wrap{width:min(1040px,92%);margin:0 auto}
body.single-post:not(.lv-single-historic-site) .lv-editorial-card{padding:54px 62px;background:#fff;border-radius:10px;box-shadow:0 12px 32px rgba(70,53,44,.08)}
body.single-post:not(.lv-single-historic-site) .lv-editorial-content{font-size:1.06rem;line-height:1.85}
body.single-post:not(.lv-single-historic-site) .lv-editorial-post-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}
body.single-post:not(.lv-single-historic-site) .lv-editorial-post-nav>div:last-child{text-align:right}

@media(max-width:900px){
  body.single-post.lv-single-historic-site .lv-historic-hero{height:520px;min-height:520px}
  body.single-post.lv-single-historic-site .lv-historic-story-card{padding:40px}
  body.single-post.lv-single-historic-site .lv-historic-next-card{grid-template-columns:1fr}
}
@media(max-width:680px){
  body.single-post.lv-single-historic-site .lv-historic-hero{height:500px;min-height:500px}
  body.single-post.lv-single-historic-site .lv-historic-hero h1{font-size:2.7rem}
  body.single-post.lv-single-historic-site .lv-historic-story-card{padding:30px 22px;border-radius:0}
  body.single-post:not(.lv-single-historic-site) .lv-editorial-card{padding:32px 22px;border-radius:0}
  body.single-post:not(.lv-single-historic-site) .lv-editorial-post-nav{grid-template-columns:1fr}
  body.single-post:not(.lv-single-historic-site) .lv-editorial-post-nav>div:last-child{text-align:left}
}

/* =========================================================
   v1.9 Historic Sites: single-page sidebar + card archive
   ========================================================= */
body.single-post.lv-single-historic-site .lv-historic-page-grid{width:min(1180px,92%);margin:0 auto;display:grid;grid-template-columns:1fr;gap:34px;align-items:start}
body.single-post.lv-single-historic-site .lv-historic-page-grid.has-sidebar{grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr)}
body.single-post.lv-single-historic-site .lv-historic-story-wrap{width:auto;margin:0}
body.single-post.lv-single-historic-site .lv-historic-story-title{margin:0 0 24px;color:var(--lv-burgundy);font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:2rem;line-height:1.25}
body.single-post.lv-single-historic-site .lv-historic-sidebar{display:grid;gap:24px}
body.single-post.lv-single-historic-site .lv-historic-side-card{padding:28px;background:#fff;border:1px solid rgba(70,53,44,.08);border-radius:12px;box-shadow:0 12px 34px rgba(70,53,44,.08)}
body.single-post.lv-single-historic-site .lv-historic-side-kicker{display:block;margin-bottom:10px;color:var(--lv-gold);font-size:.72rem;font-weight:700;letter-spacing:2.2px;text-transform:uppercase}
body.single-post.lv-single-historic-site .lv-historic-side-card h2{margin:0 0 20px;color:var(--lv-brown);font-family:Georgia,'Times New Roman',serif;font-size:1.7rem;font-weight:500;line-height:1.2}
body.single-post.lv-single-historic-site .lv-historic-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body.single-post.lv-single-historic-site .lv-historic-gallery-grid a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:6px;background:#eee}
body.single-post.lv-single-historic-site .lv-historic-gallery-grid img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
body.single-post.lv-single-historic-site .lv-historic-gallery-grid a:hover img{transform:scale(1.035)}
body.single-post.lv-single-historic-site .lv-historic-visit-row{padding:14px 0;border-top:1px solid #eee4d8}
body.single-post.lv-single-historic-site .lv-historic-visit-row strong{display:block;margin-bottom:4px;color:var(--lv-gold);font-size:.72rem;letter-spacing:1.4px;text-transform:uppercase}
body.single-post.lv-single-historic-site .lv-historic-visit-row p{margin:0;color:#594d45;line-height:1.6}
body.single-post.lv-single-historic-site .lv-historic-visit-actions{display:grid;gap:9px;margin-top:20px}
body.single-post.lv-single-historic-site .lv-historic-visit-actions a{display:block;padding:12px 15px;background:var(--lv-burgundy);color:#fff!important;font-size:.76rem;font-weight:700;letter-spacing:.6px;text-decoration:none!important;text-transform:uppercase;transition:background .2s ease,transform .2s ease}
body.single-post.lv-single-historic-site .lv-historic-visit-actions a:hover{background:#65101a;transform:translateY(-1px)}

body.category-historic-sites.header-position-overlay .site-content{padding-top:0}
body.category-historic-sites .lv-historic-archive-hero{display:flex;align-items:flex-end;min-height:390px;padding:120px 0 58px;background:linear-gradient(rgba(24,18,15,.42),rgba(24,18,15,.62)),url('assets/images/lavillita-hero.png') center center/cover no-repeat;color:#fff}
body.category-historic-sites .lv-historic-archive-hero-inner{width:min(1180px,92%);margin:0 auto}
body.category-historic-sites .lv-historic-archive-hero span{display:block;color:#f0cf79;font-size:.75rem;font-weight:700;letter-spacing:2.6px;text-transform:uppercase}
body.category-historic-sites .lv-historic-archive-hero h1{margin:8px 0 12px;color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.7rem,5vw,4.6rem);font-weight:500;line-height:1.05}
body.category-historic-sites .lv-historic-archive-hero p{max-width:720px;margin:0;color:#f5eee8;font-size:1.05rem;line-height:1.7}
body.category-historic-sites .lv-historic-archive-section{padding:70px 0 90px;background:var(--lv-page-bg)}
body.category-historic-sites .lv-historic-archive-wrap{width:min(1240px,92%);margin:0 auto}
body.category-historic-sites .lv-historic-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
body.category-historic-sites .lv-historic-archive-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#fff;border-radius:12px;box-shadow:0 8px 28px rgba(70,53,44,.10);transition:transform .25s ease,box-shadow .25s ease}
body.category-historic-sites .lv-historic-archive-card:hover{transform:translateY(-5px);box-shadow:0 16px 38px rgba(70,53,44,.15)}
body.category-historic-sites .lv-historic-card-image{display:block;height:255px;overflow:hidden;background:#46352c;text-decoration:none!important}
body.category-historic-sites .lv-historic-card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
body.category-historic-sites .lv-historic-archive-card:hover .lv-historic-card-image img{transform:scale(1.035)}
body.category-historic-sites .lv-historic-card-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:25px;color:#fff;font-family:Georgia,serif;font-size:1.4rem;text-align:center}
body.category-historic-sites .lv-historic-card-content{display:flex;flex:1;flex-direction:column;padding:27px 28px 30px}
body.category-historic-sites .lv-historic-card-kicker{color:var(--lv-gold);font-size:.7rem;font-weight:700;letter-spacing:2px;text-transform:uppercase}
body.category-historic-sites .lv-historic-card-content h2{margin:8px 0 9px;font-family:Georgia,'Times New Roman',serif;font-size:1.8rem;font-weight:500;line-height:1.15}
body.category-historic-sites .lv-historic-card-content h2 a{color:var(--lv-burgundy);text-decoration:none}
body.category-historic-sites .lv-historic-card-subtitle{margin:0 0 14px;color:#4e4139;font-family:Georgia,'Times New Roman',serif;font-size:1rem;font-style:italic;line-height:1.5}
body.category-historic-sites .lv-historic-card-excerpt{margin:0 0 22px;color:#66584f;font-size:.94rem;line-height:1.7}
body.category-historic-sites .lv-historic-card-link{display:inline-flex;align-items:center;gap:8px;margin-top:auto;color:var(--lv-burgundy)!important;font-size:.75rem;font-weight:700;letter-spacing:.8px;text-decoration:none!important;text-transform:uppercase}
body.category-historic-sites .lv-historic-card-link span{color:var(--lv-gold);font-size:1.1rem}
body.category-historic-sites .lv-historic-pagination{margin-top:48px;text-align:center}
body.category-historic-sites .lv-historic-pagination .nav-links{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}
body.category-historic-sites .lv-historic-pagination a,body.category-historic-sites .lv-historic-pagination span{display:inline-block;padding:10px 14px;background:#fff;color:var(--lv-burgundy);text-decoration:none;border:1px solid #eadfce}
body.category-historic-sites .lv-historic-pagination .current{background:var(--lv-burgundy);color:#fff;border-color:var(--lv-burgundy)}
body.category-historic-sites .lv-historic-empty{text-align:center;padding:50px;background:#fff;border-radius:10px}

@media(max-width:1050px){
  body.single-post.lv-single-historic-site .lv-historic-page-grid.has-sidebar{grid-template-columns:1fr}
  body.single-post.lv-single-historic-site .lv-historic-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.category-historic-sites .lv-historic-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  body.single-post.lv-single-historic-site .lv-historic-sidebar{grid-template-columns:1fr}
  body.single-post.lv-single-historic-site .lv-historic-side-card{padding:22px}
  body.category-historic-sites .lv-historic-card-grid{grid-template-columns:1fr}
  body.category-historic-sites .lv-historic-archive-hero{min-height:340px;padding:110px 0 44px}
  body.category-historic-sites .lv-historic-archive-section{padding:45px 0 65px}
  body.category-historic-sites .lv-historic-card-image{height:235px}
}


/* ============================================================
   v1.11 Reusable category post grids
   Shortcode: [lavillita_posts category="historic-sites" columns="3"]
   ============================================================ */
.lv-posts-grid-wrap{width:100%;margin:0 auto;padding:18px 0 46px}
.lv-posts-grid{display:grid;grid-template-columns:repeat(var(--lv-post-columns,3),minmax(0,1fr));gap:30px}
.lv-post-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#fff;border-radius:12px;box-shadow:0 8px 28px rgba(70,53,44,.10);transition:transform .25s ease,box-shadow .25s ease}
.lv-post-card:hover{transform:translateY(-5px);box-shadow:0 16px 38px rgba(70,53,44,.15)}
.lv-post-card-image{display:block;height:255px;overflow:hidden;background:#46352c;text-decoration:none!important}
.lv-post-card-image img{display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;transition:transform .45s ease}
.lv-post-card:hover .lv-post-card-image img{transform:scale(1.035)}
.lv-post-card-placeholder{display:flex;align-items:center;justify-content:center;height:100%;padding:24px;color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:1.35rem;text-align:center}
.lv-post-card-content{display:flex;flex:1;flex-direction:column;padding:27px 28px 30px}
.lv-post-card-kicker{color:var(--lv-gold);font-size:.7rem;font-weight:700;letter-spacing:2px;text-transform:uppercase}
.lv-post-card h3{margin:8px 0 9px;font-family:Georgia,'Times New Roman',serif;font-size:1.8rem;font-weight:500;line-height:1.15}
.lv-post-card h3 a{color:var(--lv-burgundy);text-decoration:none!important}
.lv-post-card-subtitle{margin:0 0 14px;color:#4e4139;font-family:Georgia,'Times New Roman',serif;font-size:1rem;font-style:italic;line-height:1.5}
.lv-post-card-date{margin:0 0 12px;color:#8a7a70;font-size:.8rem;font-weight:600;letter-spacing:.4px;text-transform:uppercase}
.lv-post-card-excerpt{margin:0 0 22px;color:#66584f;font-size:.94rem;line-height:1.7}
.lv-post-card-link{display:inline-flex;align-items:center;gap:8px;margin-top:auto;color:var(--lv-burgundy)!important;font-size:.75rem;font-weight:700;letter-spacing:.8px;text-decoration:none!important;text-transform:uppercase}
.lv-post-card-link span{color:var(--lv-gold);font-size:1.1rem}
.lv-posts-empty{padding:38px;text-align:center;background:#fff;border:1px solid #eadfce;border-radius:10px}
@media(max-width:1050px){.lv-posts-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:680px){.lv-posts-grid{grid-template-columns:1fr!important}.lv-post-card-image{height:235px}.lv-post-card-content{padding:24px 22px 26px}}


/* =========================================================
   v1.14 News / regular post hero refinements (scoped only)
   ========================================================= */
body.single-post.lv-single-editorial-post.header-position-overlay .site-content{padding-top:0}
body.single-post.lv-single-editorial-post .lv-editorial-single{width:100%;max-width:none;margin:0;padding-top:0!important;background:var(--lv-page-bg)}
body.single-post.lv-single-editorial-post .lv-editorial-hero{position:relative;display:flex;align-items:flex-end;width:100%;min-height:520px;background:#46352c center/cover no-repeat;color:#fff;overflow:hidden}
body.single-post.lv-single-editorial-post .lv-editorial-hero.height-small{min-height:420px}
body.single-post.lv-single-editorial-post .lv-editorial-hero.height-standard{min-height:520px}
body.single-post.lv-single-editorial-post .lv-editorial-hero.height-large{min-height:605px}
body.single-post.lv-single-editorial-post .lv-editorial-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(12,9,7,.12) 12%,rgba(12,9,7,.32) 56%,rgba(12,9,7,.88) 100%);pointer-events:none}
body.single-post.lv-single-editorial-post .lv-editorial-hero.overlay-light::after{background:linear-gradient(to bottom,rgba(12,9,7,.04) 12%,rgba(12,9,7,.18) 58%,rgba(12,9,7,.7) 100%)}
body.single-post.lv-single-editorial-post .lv-editorial-hero.overlay-dark::after{background:linear-gradient(to bottom,rgba(12,9,7,.24) 10%,rgba(12,9,7,.5) 58%,rgba(12,9,7,.95) 100%)}
body.single-post.lv-single-editorial-post .lv-editorial-hero.pos-center-top{background-position:center top}
body.single-post.lv-single-editorial-post .lv-editorial-hero.pos-center-bottom{background-position:center bottom}
body.single-post.lv-single-editorial-post .lv-editorial-hero.pos-left-center{background-position:left center}
body.single-post.lv-single-editorial-post .lv-editorial-hero.pos-right-center{background-position:right center}
body.single-post.lv-single-editorial-post .lv-editorial-hero-inner{position:relative;z-index:2;width:min(1180px,92%);margin:0 auto;padding:0 0 56px;text-shadow:0 3px 18px rgba(0,0,0,.45)}
body.single-post.lv-single-editorial-post .lv-editorial-kicker{display:block;color:#f0cf79;font-size:.76rem;font-weight:700;letter-spacing:2.4px;text-transform:uppercase}
body.single-post.lv-single-editorial-post .lv-editorial-hero h1{max-width:980px;margin:8px 0 11px;color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.7rem,5vw,4.6rem);font-weight:500;line-height:1.04}
body.single-post.lv-single-editorial-post .lv-editorial-meta{font-size:.9rem;color:#f4eee9}
body.single-post.lv-single-editorial-post .lv-editorial-deck{max-width:820px;margin:17px 0 0;color:#fff;font-size:1.06rem;line-height:1.65}
body.single-post.lv-single-editorial-post .lv-editorial-content-section{padding:64px 0 82px;background:var(--lv-page-bg)}
body.single-post.lv-single-editorial-post .lv-editorial-content-wrap{width:min(1040px,92%);margin:0 auto}
body.single-post.lv-single-editorial-post .lv-editorial-card{padding:56px 64px;background:#fff;border:1px solid rgba(70,53,44,.08);border-radius:12px;box-shadow:0 12px 34px rgba(70,53,44,.08)}
body.single-post.lv-single-editorial-post .lv-editorial-content{color:#4b4039;font-size:1.08rem;line-height:1.86}
body.single-post.lv-single-editorial-post .lv-editorial-content>p:first-child{margin-top:0}
body.single-post.lv-single-editorial-post .lv-editorial-content h2,body.single-post.lv-single-editorial-post .lv-editorial-content h3{color:var(--lv-burgundy);font-family:Georgia,'Times New Roman',serif;font-weight:500}
body.single-post.lv-single-editorial-post .lv-editorial-content img{max-width:100%;height:auto;border-radius:8px}
body.single-post.lv-single-editorial-post .lv-editorial-post-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;margin-top:30px;font-size:.88rem}
body.single-post.lv-single-editorial-post .lv-editorial-post-nav a{color:var(--lv-burgundy);font-weight:600;text-decoration:none}
body.single-post.lv-single-editorial-post .lv-editorial-next{text-align:right}
body.single-post.lv-single-editorial-post .lv-editorial-back{text-align:center}
@media(max-width:680px){
 body.single-post.lv-single-editorial-post .lv-editorial-hero.height-small,body.single-post.lv-single-editorial-post .lv-editorial-hero.height-standard,body.single-post.lv-single-editorial-post .lv-editorial-hero.height-large{min-height:470px}
 body.single-post.lv-single-editorial-post .lv-editorial-hero-inner{padding-bottom:38px}
 body.single-post.lv-single-editorial-post .lv-editorial-card{padding:32px 24px;border-radius:8px}
 body.single-post.lv-single-editorial-post .lv-editorial-post-nav{grid-template-columns:1fr;gap:13px}
 body.single-post.lv-single-editorial-post .lv-editorial-next,body.single-post.lv-single-editorial-post .lv-editorial-back{text-align:left}
}


/* ==========================================
   HOMEPAGE NEWS STRIP (v1.15)
   Usage:
   [lavillita_posts category="news" layout="home-news" columns="3" limit="3" show_excerpt="no" show_date="no"]
   ========================================== */
.lv-posts-layout-home-news{padding:12px 0 26px}
.lv-posts-layout-home-news .lv-posts-grid{gap:34px}
.lv-posts-layout-home-news .lv-post-card{
  display:block;
  overflow:visible;
  background:transparent;
  border-radius:0;
  box-shadow:none;
  transform:none!important;
}
.lv-posts-layout-home-news .lv-post-card:hover{box-shadow:none}
.lv-posts-layout-home-news .lv-post-card-image{
  height:auto;
  aspect-ratio:16/9;
  border-radius:4px;
  box-shadow:0 8px 24px rgba(70,53,44,.12);
}
.lv-posts-layout-home-news .lv-post-card-image img{width:100%!important;height:100%!important;object-fit:cover}
.lv-posts-layout-home-news .lv-post-card:hover .lv-post-card-image img{transform:scale(1.025)}
.lv-posts-layout-home-news .lv-post-card-content{display:block;padding:17px 0 0}
.lv-posts-layout-home-news .lv-post-card-kicker{display:none}
.lv-posts-layout-home-news .lv-post-card-date{margin:0 0 6px;color:#9a7c45;font-size:.72rem;letter-spacing:.7px}
.lv-posts-layout-home-news .lv-post-card h3{margin:0 0 15px;font-family:inherit;font-size:1.2rem;font-weight:700;line-height:1.25}
.lv-posts-layout-home-news .lv-post-card h3 a{color:var(--lv-burgundy)!important}
.lv-posts-layout-home-news .lv-post-card-excerpt{margin:0 0 16px;font-size:.9rem;line-height:1.6}
.lv-posts-layout-home-news .lv-post-card-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:0;
  padding:11px 18px;
  background:var(--lv-burgundy);
  color:#fff!important;
  border-radius:3px;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.6px;
  text-transform:uppercase;
  transition:background .2s ease,transform .2s ease;
}
.lv-posts-layout-home-news .lv-post-card-link:hover{background:#681019;transform:translateY(-2px)}
.lv-posts-layout-home-news .lv-post-card-link span{color:var(--lv-gold)}
@media(max-width:1050px){
  .lv-posts-layout-home-news .lv-posts-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:680px){
  .lv-posts-layout-home-news .lv-posts-grid{grid-template-columns:1fr!important;gap:28px}
}

/* ---------------------------------------------------------
   v1.16 Mobile / tablet layout pass
   Desktop presentation remains unchanged.
--------------------------------------------------------- */
@media (max-width:850px){
  /* Keep the mobile header tidy and make the dropdown feel like a menu,
     not a full-screen panel. */
  .site-header{padding:10px 0}
  .header-inner{width:min(94%,1180px);min-height:62px;gap:10px}
  .site-branding .custom-logo{max-height:64px}
  .menu-toggle{padding:11px 16px;font-size:1rem;border-radius:4px}

  .header-slot .primary-navigation.open,
  body.mobile-menu-open .primary-navigation{
    position:absolute!important;
    top:100%!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    max-height:none!important;
    margin:0!important;
    padding:10px 18px 12px!important;
    background:var(--lv-brown)!important;
    border-radius:0 0 4px 4px;
    box-shadow:0 10px 24px rgba(0,0,0,.22);
    overflow:visible!important;
  }
  .primary-menu{gap:0!important;width:100%}
  .primary-menu li{width:100%;margin:0!important}
  .primary-menu a,.site-header.scrolled .primary-menu a{
    padding:11px 4px!important;
    font-size:.9rem!important;
    line-height:1.2!important;
  }

  /* WPBakery's desktop column widths can survive into some mobile views
     when custom row settings are used. Force a genuine mobile stack. */
  body.home .homepage-content .vc_row,
  body.home .homepage-content .wpb_row{
    width:100%!important;
    max-width:100%!important;
  }
  body.home .homepage-content .wpb_column,
  body.home .homepage-content [class*="vc_col-"]{
    width:100%!important;
    max-width:100%!important;
    float:none!important;
    display:block!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  body.home .homepage-content .vc_column_container>.vc_column-inner{
    width:100%!important;
    max-width:100%!important;
  }

  /* The desktop design uses Empty Space elements as layout helpers.
     On a phone those can become hundreds of pixels of blank page. */
  body.home .homepage-content .vc_empty_space{
    height:28px!important;
    max-height:28px!important;
  }

  /* First builder row is the homepage visual hero. Preserve the image but
     give it an intentional mobile proportion instead of the desktop height. */
  body.home .homepage-content>.vc_row:first-child,
  body.home .homepage-content>.wpb-content-wrapper>.vc_row:first-child{
    min-height:320px!important;
    height:auto!important;
    margin-top:0!important;
    padding-top:var(--lv-header-height)!important;
    padding-bottom:36px!important;
    background-size:cover!important;
    background-position:center center!important;
  }

  /* Keep builder content from creating sideways overflow. */
  body.home .homepage-builder-content,
  body.home .homepage-content,
  body.home .wpb-content-wrapper{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  body.home .wpb_text_column,
  body.home .vc_custom_heading{
    max-width:100%!important;
    overflow-wrap:anywhere;
  }

  /* Theme heroes should also use a sensible mobile proportion. */
  .hero{min-height:360px;padding:calc(var(--lv-header-height) + 36px) 20px 48px}
  .lv-page-hero.hero-height-small,
  .lv-page-hero.hero-height-medium,
  .lv-page-hero.hero-height-large{min-height:340px}
}

@media (max-width:680px){
  :root{--lv-header-height:82px}
  .container{width:92%}
  .site-branding .custom-logo{max-height:58px}
  .menu-toggle{padding:10px 14px;font-size:.95rem}

  body.home .homepage-content>.vc_row:first-child,
  body.home .homepage-content>.wpb-content-wrapper>.vc_row:first-child{
    min-height:300px!important;
    padding-top:var(--lv-header-height)!important;
    padding-bottom:28px!important;
  }
  body.home .homepage-content .vc_empty_space{
    height:20px!important;
    max-height:20px!important;
  }
  body.home .homepage-content .vc_column_container>.vc_column-inner{
    padding-left:16px!important;
    padding-right:16px!important;
  }
  body.home .homepage-content h1{font-size:clamp(2.3rem,11vw,3.6rem)!important}
  body.home .homepage-content h2{font-size:clamp(1.8rem,8vw,2.7rem)!important}
  body.home .homepage-content h3{font-size:clamp(1.25rem,6vw,1.75rem)!important}

  /* Compact homepage news cards on phones. */
  .lv-posts-layout-home-news .lv-post-card-image{aspect-ratio:16/9}
  .lv-posts-layout-home-news .lv-post-card-content{padding-top:14px}
  .lv-posts-layout-home-news .lv-post-card h3{font-size:1.1rem}
}


/* ---------------------------------------------------------
   v1.17 Homepage responsive refinements
   Preserve desktop WPBakery spacing; override only tablet/mobile.
--------------------------------------------------------- */

/* The homepage uses these WPBakery custom rows as a boxed-content
   substitute on desktop. Keep the 200px desktop margins exactly as
   authored, but scale them down at narrower viewports. */
@media (max-width:1024px){
  body.home .homepage-content .vc_custom_1786203852289,
  body.home .homepage-content .vc_custom_1786220247898,
  body.home .homepage-content .vc_custom_1786293218748{
    margin-left:40px!important;
    margin-right:40px!important;
  }
}

@media (max-width:767px){
  body.home .homepage-content .vc_custom_1786203852289,
  body.home .homepage-content .vc_custom_1786220247898,
  body.home .homepage-content .vc_custom_1786293218748{
    margin-left:15px!important;
    margin-right:15px!important;
  }

  /* Slider Revolution now owns its own mobile height. Do not impose a
     second min-height/padding on the first WPBakery row around it. */
  body.home .homepage-content>.vc_row:first-child,
  body.home .homepage-content>.wpb-content-wrapper>.vc_row:first-child{
    min-height:0!important;
    height:auto!important;
    margin-top:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
  }

  /* Keep the small spacer after the slider small and intentional. */
  body.home .homepage-content>.vc_row:nth-child(2) .vc_empty_space{
    height:20px!important;
    max-height:20px!important;
  }

  /* WPBakery's 75px helper below the community image is useful on
     desktop, but should not create a large mobile gap. */
  body.home .homepage-content .vc_custom_1786209819901 + .vc_empty_space,
  body.home .homepage-content .vc_empty_space[style*="75px"]{
    height:20px!important;
    max-height:20px!important;
  }
}

@media (max-width:850px){
  /* Compact dropdown anchored to the right side of the header rather
     than a full-width brown panel. */
  .header-slot .primary-navigation.open,
  body.mobile-menu-open .primary-navigation{
    position:absolute!important;
    top:calc(100% + 6px)!important;
    left:auto!important;
    right:0!important;
    width:min(280px,calc(100vw - 30px))!important;
    padding:8px 0!important;
    border-radius:6px!important;
    overflow:hidden!important;
  }
  .primary-menu li{width:100%!important}
  .primary-menu a,
  .site-header.scrolled .primary-menu a{
    padding:12px 18px!important;
    font-size:.9rem!important;
  }
  .primary-menu a:hover{
    background:rgba(255,255,255,.07);
  }
}


/* ---------------------------------------------------------
   v1.18 Builder container + responsive architecture
   Boxed by default. Full width only when WPBakery says stretch.
--------------------------------------------------------- */

/* Normal homepage builder content behaves like a standard theme container. */
body.home .homepage-content{
  width:min(1180px,92%);
  margin-left:auto;
  margin-right:auto;
  padding:0;
  overflow:visible;
}

/* Existing 200px WPBakery margins are no longer needed because the parent
   is now the boxed container. Neutralize them with stronger specificity. */
body.home .homepage-content .vc_custom_1786203852289,
body.home .homepage-content .vc_custom_1786220247898,
body.home .homepage-content .vc_custom_1786293218748{
  margin-left:0!important;
  margin-right:0!important;
}

/* The Slider Revolution row is explicitly marked stretch_row_content_no_spaces.
   Let WPBakery's native stretching own its width and offsets. */
body.home .homepage-content > .vc_row[data-vc-full-width="true"],
body.home .homepage-content > .wpb-content-wrapper > .vc_row[data-vc-full-width="true"]{
  max-width:none;
}

/* Avoid accidental horizontal clipping of native stretched rows. */
body.home .homepage-builder-content,
body.home .homepage-content,
body.home .homepage-content > .wpb-content-wrapper{
  overflow:visible!important;
}

@media (max-width:1024px){
  body.home .homepage-content{width:calc(100% - 48px)}
}

@media (max-width:767px){
  body.home .homepage-content{width:calc(100% - 30px)}

  /* Rows and columns use WPBakery's responsive stack naturally. These
     declarations only guard against custom desktop widths surviving. */
  body.home .homepage-content .vc_row:not([data-vc-full-width="true"]),
  body.home .homepage-content .vc_row_inner{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  body.home .homepage-content .wpb_column,
  body.home .homepage-content .vc_column_container,
  body.home .homepage-content .vc_column_inner{
    width:100%!important;
    max-width:100%!important;
    float:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  body.home .homepage-content .vc_column_container > .vc_column-inner{
    width:100%!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  /* Do not globally resize all builder headings. Let content typography
     remain proportional and only protect against overflow. */
  body.home .homepage-content h1{font-size:clamp(1.9rem,8vw,2.65rem)!important;line-height:1.15!important}
  body.home .homepage-content h2{font-size:clamp(1.35rem,6vw,1.9rem)!important;line-height:1.2!important}
  body.home .homepage-content h3{font-size:clamp(1.1rem,5vw,1.45rem)!important;line-height:1.2!important}

  /* Keep only modest mobile spacing from WPBakery helpers. */
  body.home .homepage-content .vc_empty_space{height:20px!important;max-height:20px!important}
}

/* ---------------------------------------------------------
   v1.18 Mobile navigation reset
--------------------------------------------------------- */
@media (max-width:850px){
  .site-header{padding:8px 0}
  .header-inner{display:flex!important;width:92%;min-height:58px;align-items:center;position:relative}
  .site-branding .custom-logo{max-height:56px}
  .menu-toggle{display:block!important;margin-left:auto;position:relative;z-index:10002}

  /* Closed means closed, regardless of older compatibility selectors. */
  .site-header .primary-navigation{
    display:none!important;
    position:absolute!important;
    top:calc(100% + 6px)!important;
    left:auto!important;
    right:0!important;
    width:min(260px,calc(100vw - 30px))!important;
    margin:0!important;
    padding:8px 0!important;
    background:var(--lv-brown)!important;
    border-radius:6px!important;
    box-shadow:0 10px 24px rgba(0,0,0,.22)!important;
    z-index:10001!important;
  }
  .site-header .primary-navigation.open,
  body.mobile-menu-open .site-header .primary-navigation{
    display:block!important;
  }
  .site-header .primary-menu{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;width:100%!important}
  .site-header .primary-menu li{width:100%!important;margin:0!important}
  .site-header .primary-menu a,
  .site-header.scrolled .primary-menu a{
    display:block!important;
    padding:12px 18px!important;
    color:#fff!important;
    font-size:.9rem!important;
    line-height:1.2!important;
  }
}


/* ---------------------------------------------------------
   v1.19 Single Event mobile refinement
   Scoped only to The Events Calendar single-event pages.
   News, Historic Sites, pages, and homepage are untouched.
--------------------------------------------------------- */
@media (max-width:680px){
  body.lv-single-event .lv-event-hero,
  body.lv-single-event .lv-event-hero.hero-small,
  body.lv-single-event .lv-event-hero.hero-medium,
  body.lv-single-event .lv-event-hero.hero-large{
    height:auto!important;
    min-height:430px!important;
    background-size:cover!important;
    background-position:center center;
  }

  body.lv-single-event .lv-event-hero-inner{
    display:grid!important;
    grid-template-columns:68px minmax(0,1fr)!important;
    column-gap:15px!important;
    row-gap:10px!important;
    align-items:end!important;
    width:calc(100% - 30px)!important;
    padding-top:calc(var(--lv-header-height) + 38px)!important;
    padding-bottom:28px!important;
  }

  body.lv-single-event .lv-event-date-badge{
    grid-column:1!important;
    grid-row:1 / span 3!important;
    width:68px!important;
    min-width:68px!important;
    margin:0!important;
    padding:10px 7px!important;
    align-self:start!important;
  }
  body.lv-single-event .lv-event-date-badge .month{font-size:.62rem!important}
  body.lv-single-event .lv-event-date-badge .day{font-size:2rem!important;margin:3px 0!important}
  body.lv-single-event .lv-event-date-badge .year{font-size:.62rem!important}

  body.lv-single-event .lv-event-hero-copy{
    grid-column:2!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body.lv-single-event .lv-event-category{
    margin-bottom:5px!important;
    font-size:.66rem!important;
  }
  body.lv-single-event .lv-event-hero h1{
    margin-bottom:9px!important;
    font-size:clamp(1.85rem,8.5vw,2.35rem)!important;
    line-height:1.02!important;
    overflow-wrap:anywhere;
  }
  body.lv-single-event .lv-event-hero-meta{
    display:grid!important;
    gap:3px!important;
    margin-bottom:14px!important;
    font-size:.82rem!important;
    line-height:1.35!important;
  }
  body.lv-single-event .lv-event-ticket-btn{
    width:auto!important;
    min-width:0!important;
    padding:10px 16px!important;
    font-size:.68rem!important;
  }

  body.lv-single-event .lv-event-body{padding:30px 0 52px!important}
  body.lv-single-event .lv-event-body-grid{gap:22px!important}
  body.lv-single-event .lv-event-main{padding:24px 18px!important}
  body.lv-single-event .lv-event-main h2{
    font-size:clamp(1.7rem,8vw,2.1rem)!important;
    margin-bottom:20px!important;
  }
  body.lv-single-event .lv-event-description{
    font-size:.98rem!important;
    line-height:1.65!important;
  }
  body.lv-single-event .lv-event-sidebar-card{padding:22px 18px!important}
}

@media (max-width:420px){
  body.lv-single-event .lv-event-hero-inner{
    grid-template-columns:58px minmax(0,1fr)!important;
    column-gap:12px!important;
  }
  body.lv-single-event .lv-event-date-badge{
    width:58px!important;
    min-width:58px!important;
  }
  body.lv-single-event .lv-event-date-badge .day{font-size:1.75rem!important}
  body.lv-single-event .lv-event-hero h1{font-size:clamp(1.65rem,8vw,2.05rem)!important}
}


/* =========================================================
   v1.20 Responsive header + mobile hero architecture
   ========================================================= */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* Desktop header: one horizontal rail. Additional menu items must not
   wrap beneath the logo; the menu uses the available horizontal space. */
@media (min-width:851px){
  .site-header .header-inner{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:30px!important;
    width:min(1180px,92%)!important;
  }
  .site-header .header-slot:empty{display:none!important}
  .site-header .header-slot{flex:0 0 auto!important;gap:30px!important}
  .site-header .header-slot:has(.primary-navigation){flex:1 1 auto!important;min-width:0!important}
  .site-header .primary-navigation{display:flex!important;align-items:center!important;min-width:0!important}
  .site-header .primary-menu{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:22px!important;
    white-space:nowrap!important;
  }
  .site-header .primary-menu li{width:auto!important;margin:0!important;flex:0 0 auto!important}
  .site-header .primary-menu a{font-size:.78rem!important;letter-spacing:.07em!important}
}

/* Tablet/phone header is a real two-item bar: logo + toggle. The navigation
   exists only as a dropdown when JS adds .open. */
@media (max-width:850px){
  :root{--lv-header-height:82px}
  .site-header{min-height:82px!important;padding:8px 0!important}
  .site-header .header-inner{display:flex!important;width:92%!important;min-height:66px!important;gap:12px!important}
  .site-header .header-slot{display:flex!important;flex:0 0 auto!important;min-width:0!important}
  .site-header .header-slot:empty{display:none!important}
  .site-header .header-slot:has(.primary-navigation){position:static!important}
  .site-header .site-branding .custom-logo{max-height:58px!important;width:auto!important}
  .site-header .menu-toggle{display:block!important;margin-left:auto!important;flex:0 0 auto!important}
  .site-header .primary-navigation{display:none!important;top:calc(100% + 4px)!important;right:0!important;left:auto!important;width:min(270px,calc(100vw - 30px))!important}
  .site-header .primary-navigation.open,
  body.mobile-menu-open .site-header .primary-navigation{display:block!important}

  /* Theme-generated page heroes: mobile is a compact banner, not a tall
     desktop crop. This covers the News/Historic Sites landing-page header. */
  .lv-page-hero,
  .lv-page-hero.hero-height-small,
  .lv-page-hero.hero-height-medium,
  .lv-page-hero.hero-height-large{
    min-height:300px!important;
    height:300px!important;
    padding-top:var(--lv-header-height)!important;
    background-size:cover!important;
    background-position:center center!important;
  }
  .lv-page-hero .lv-page-hero-inner{padding:30px 0!important;width:92%!important}
  .lv-page-hero h1{font-size:clamp(2rem,10vw,3rem)!important;line-height:1.02!important;overflow-wrap:normal!important;word-break:normal!important}
}

/* Single event: on a phone the complete event summary should be visible as
   a compact hero instead of consuming almost the entire first screen. */
@media (max-width:680px){
  body.single-tribe_events .lv-event-hero,
  body.lv-single-event .lv-event-hero,
  body.single-tribe_events .lv-event-hero.hero-small,
  body.single-tribe_events .lv-event-hero.hero-medium,
  body.single-tribe_events .lv-event-hero.hero-large{
    height:390px!important;
    min-height:390px!important;
    align-items:flex-end!important;
    background-size:cover!important;
    background-position:center center!important;
  }
  body.single-tribe_events .lv-event-hero-inner,
  body.lv-single-event .lv-event-hero-inner{
    display:grid!important;
    grid-template-columns:60px minmax(0,1fr)!important;
    gap:12px!important;
    align-items:end!important;
    width:92%!important;
    margin:0 auto!important;
    padding:calc(var(--lv-header-height) + 12px) 0 22px!important;
  }
  body.single-tribe_events .lv-event-date-badge,
  body.lv-single-event .lv-event-date-badge{
    grid-column:1!important;
    width:60px!important;
    min-width:60px!important;
    margin:0!important;
    padding:9px 5px!important;
    align-self:end!important;
  }
  body.single-tribe_events .lv-event-date-badge .month{font-size:.58rem!important}
  body.single-tribe_events .lv-event-date-badge .day{font-size:1.7rem!important;margin:2px 0!important}
  body.single-tribe_events .lv-event-date-badge .year{font-size:.58rem!important}
  body.single-tribe_events .lv-event-hero-copy,
  body.lv-single-event .lv-event-hero-copy{grid-column:2!important;min-width:0!important;max-width:100%!important}
  body.single-tribe_events .lv-event-category,
  body.lv-single-event .lv-event-category{font-size:.6rem!important;margin:0 0 4px!important;letter-spacing:.12em!important}
  body.single-tribe_events .lv-event-hero h1,
  body.lv-single-event .lv-event-hero h1{
    font-size:clamp(1.55rem,7.5vw,2rem)!important;
    line-height:1.02!important;
    margin:0 0 7px!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  body.single-tribe_events .lv-event-hero-meta,
  body.lv-single-event .lv-event-hero-meta{display:grid!important;gap:2px!important;margin:0 0 10px!important;font-size:.76rem!important;line-height:1.25!important}
  body.single-tribe_events .lv-event-ticket-btn,
  body.lv-single-event .lv-event-ticket-btn{width:auto!important;padding:8px 13px!important;font-size:.62rem!important;letter-spacing:.07em!important}
  body.single-tribe_events .lv-event-body,
  body.lv-single-event .lv-event-body{padding:24px 0 46px!important}
  body.single-tribe_events .lv-event-main,
  body.lv-single-event .lv-event-main{padding:22px 18px!important}
  body.single-tribe_events .lv-event-main h2,
  body.lv-single-event .lv-event-main h2{font-size:clamp(1.55rem,7vw,1.9rem)!important;margin:0 0 16px!important}
}

@media (max-width:420px){
  body.single-tribe_events .lv-event-hero,
  body.lv-single-event .lv-event-hero{height:370px!important;min-height:370px!important}
  body.single-tribe_events .lv-event-hero-inner,
  body.lv-single-event .lv-event-hero-inner{grid-template-columns:54px minmax(0,1fr)!important;gap:10px!important;padding-bottom:18px!important}
  body.single-tribe_events .lv-event-date-badge,
  body.lv-single-event .lv-event-date-badge{width:54px!important;min-width:54px!important}
  body.single-tribe_events .lv-event-hero h1,
  body.lv-single-event .lv-event-hero h1{font-size:clamp(1.4rem,7vw,1.8rem)!important}
}
