/* ==========================================================================
   Patchings Art Centre — light, gallery-clean design system
   Palette: white / off-white ground, olive + dark olive accents, rainbow-arch
   colours from the logo. Type follows the Patchings exhibition poster:
   Josefin Sans (geometric, wide-tracked caps) + Bodoni Moda (date numerals).
   ========================================================================== */

:root{
  --white:        #ffffff;
  --offwhite:     #f3f4ee;
  --paper:        #ffffff;

  --olive:        #6b7a3c;   /* olive green — highlights, eyebrows, links */
  --olive-deep:   #454d34;   /* dark olive — buttons (matches poster banner) */
  --olive-ink:    #2c3320;   /* darkest olive — footer, image overlays */
  --olive-tint:   #d3dca4;   /* light olive — text accents on dark */
  --olive-bright: #a9bb5e;   /* buttons on dark photography */

  --burgundy:     #5a1a30;   /* headings (poster title colour) */
  --navy:         #1f2a44;   /* body text (poster detail colour) */
  --ink:          #1f2a44;
  --ink-soft:     #4b5468;

  /* logo rainbow arch */
  --r-red:#d50f1f; --r-orange:#ff7a00; --r-amber:#fba900; --r-yellow:#ffd800;
  --r-green:#23a842; --r-lime:#a3c61a; --r-blue:#0645a0; --r-purple:#7f4c9e;

  /* frame metals (gallery frames, nail heads) */
  --gold:#c8a24a; --gold-light:#e7cd8c; --gold-dim:#9c7f3b;

  --font-display: 'Josefin Sans', 'Trebuchet MS', sans-serif;
  --font-body:    'Josefin Sans', 'Trebuchet MS', sans-serif;
  --font-serif:   'Bodoni Moda', 'Didot', 'Georgia', serif;

  --radius: 4px;
  --shadow-soft: 0 10px 30px rgba(31,42,68,.10);
  --shadow-deep: 0 20px 50px rgba(28,34,20,.28);
  --container: 1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:17px;
  font-weight:400;
  line-height:1.75;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--burgundy);
  line-height:1.2;
  margin:0 0 .6em;
  text-transform:uppercase;
}
h1{ font-size:clamp(2.1rem,4.6vw,3.7rem); font-weight:300; letter-spacing:.14em; }
h2{ font-size:clamp(1.7rem,3.2vw,2.5rem); font-weight:300; letter-spacing:.11em; }
h3{ font-size:1.15rem; font-weight:600; letter-spacing:.07em; color:var(--navy); }
p{ margin:0 0 1.1em; }
.container{ max-width:var(--container); margin:0 auto; padding:0 28px; }
section{ position:relative; }
.section-pad{ padding:96px 0; }
@media (max-width:720px){ .section-pad{ padding:60px 0; } }

/* ---------- eyebrow / kicker ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--font-display); font-weight:500;
  letter-spacing:.26em; text-transform:uppercase;
  font-size:.74rem; color:var(--olive);
  margin-bottom:14px;
}
.eyebrow::before,.eyebrow::after{ content:""; width:28px; height:1px; background:var(--olive); }
.center{ text-align:center; }
.center .eyebrow::before,.center .eyebrow::after{ display:inline-block; }
.center .eyebrow{ justify-content:center; }

/* small rainbow mark, echoing the Patchings logo, above a boxed eyebrow */
.eyebrow-mark{ height:20px; width:auto; margin-bottom:12px; filter:drop-shadow(0 2px 5px rgba(0,0,0,.25)); }

/* rainbow heritage rule, echoes the Patchings arch */
.rainbow-rule{
  height:6px; width:100%;
  background:linear-gradient(90deg,var(--r-red),var(--r-orange),var(--r-amber),var(--r-lime),var(--r-green),var(--r-blue),var(--r-purple));
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 30px;
  border:1px solid var(--olive-deep);
  border-radius:2px;
  font-family:var(--font-display); font-weight:500; font-size:.86rem; letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
  transition:all .25s ease;
  background:transparent;
}
.btn-primary{ background:var(--olive-deep); color:var(--white); border-color:var(--olive-deep); }
.btn-primary:hover{ background:var(--olive); border-color:var(--olive); }
/* accent: olive on dark photography / dark olive panels */
.btn-accent{ background:var(--olive-bright); color:var(--olive-ink); border-color:var(--olive-bright); font-weight:600; }
.btn-accent:hover{ background:var(--white); border-color:var(--white); }
.btn-outline{ color:var(--white); border-color:rgba(255,255,255,.85); }
.btn-outline:hover{ background:rgba(255,255,255,.14); }
.btn-outline-dark{ color:var(--olive-deep); border-color:var(--olive-deep); }
.btn-outline-dark:hover{ background:var(--olive-deep); color:var(--white); }
.btn-row{ display:flex; gap:16px; flex-wrap:wrap; }

/* ==========================================================================
   Header / Navigation  (white)
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:1000;
  background:var(--white);
  border-bottom:1px solid rgba(69,77,52,.18);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap;
  padding:8px 24px; max-width:1320px; margin:0 auto; gap:14px;
}
.brand{ display:flex; align-items:center; gap:16px; white-space:nowrap; }
.brand img{ height:84px; width:auto; }
.brand-text{ font-family:var(--font-display); white-space:nowrap; }
.brand-text strong{ display:block; font-size:1.2rem; letter-spacing:.14em; text-transform:uppercase; color:var(--burgundy); font-weight:600; }
.brand-text span{ display:block; font-size:.64rem; letter-spacing:.34em; text-transform:uppercase; color:var(--olive); white-space:nowrap; font-weight:500; }

nav.main-nav{ display:flex; align-items:center; gap:0; flex-wrap:nowrap; }
nav.main-nav a{
  color:var(--navy); font-family:var(--font-display); font-weight:500; font-size:.76rem; letter-spacing:.14em; text-transform:uppercase;
  padding:10px 11px; border-radius:2px; transition:color .2s, background .2s;
  position:relative; white-space:nowrap;
}
nav.main-nav a:hover, nav.main-nav a.active{ color:var(--olive); }
nav.main-nav a.active:not(.nav-cta)::after{
  content:""; position:absolute; left:11px; right:11px; bottom:3px; height:2px;
  background:linear-gradient(90deg,var(--r-red),var(--r-amber),var(--r-green),var(--r-blue),var(--r-purple));
}
nav.main-nav a.nav-cta{
  border:1px solid var(--olive-deep); margin-left:10px; color:var(--olive-deep);
}
nav.main-nav a.nav-cta:hover{ background:var(--olive-deep); color:var(--white); }

.nav-toggle{ display:none; background:none; border:0; color:var(--navy); font-size:1.7rem; cursor:pointer; }

@media (max-width:1100px){
  nav.main-nav{
    position:fixed; inset:0 0 0 auto; height:100vh; width:min(340px,86vw);
    background:var(--white); flex-direction:column; align-items:flex-start;
    padding:110px 28px 40px; gap:6px; transform:translateX(100%); transition:transform .35s ease;
    box-shadow:var(--shadow-deep);
  }
  nav.main-nav.open{ transform:translateX(0); }
  nav.main-nav a{ width:100%; padding:14px 6px; border-bottom:1px solid rgba(69,77,52,.14); }
  nav.main-nav a.active:not(.nav-cta)::after{ display:none; }
  nav.main-nav a.nav-cta{ margin-left:0; margin-top:10px; text-align:center; }
  .nav-toggle{ display:block; position:relative; z-index:1100; }
}

/* ==========================================================================
   Hero slider
   ========================================================================== */
.hero-slider{
  position:relative; height:92vh; min-height:560px; overflow:hidden;
  color:var(--white); background:var(--olive-ink);
}
.hero-slide{
  position:absolute; inset:0; opacity:0; visibility:hidden;
  transition:opacity 1.1s ease;
  display:flex; align-items:flex-end;
}
.hero-slide.active{ opacity:1; visibility:visible; z-index:2; }
.hero-slide .hero-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  transform:scale(1.06);
  transition:transform 8s ease;
}
.hero-slide.active .hero-bg{ transform:scale(1); }
.hero-slide::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg, rgba(20,25,13,.9) 8%, rgba(20,25,13,.42) 55%, rgba(20,25,13,.3) 100%);
}
.hero-content{
  position:relative; z-index:4; padding:0 28px 100px; max-width:var(--container); margin:0 auto; width:100%;
}
.hero-content .eyebrow{ color:var(--olive-tint); }
.hero-content .eyebrow::before,.hero-content .eyebrow::after{ background:var(--olive-tint); }
.hero-content h1{ color:var(--white); max-width:680px; font-size:clamp(1.9rem,3.8vw,3.2rem); text-shadow:0 6px 24px rgba(0,0,0,.45); }
.hero-content p.lead{ max-width:620px; font-size:1.12rem; color:rgba(255,255,255,.92); }

.hero-dots{ position:absolute; z-index:5; bottom:36px; right:36px; display:flex; gap:10px; }
.hero-dots button{
  width:11px; height:11px; border-radius:50%; border:1px solid var(--white);
  background:transparent; cursor:pointer; padding:0;
}
.hero-dots button.active{ background:var(--white); }
.hero-arrow{
  position:absolute; z-index:5; top:50%; transform:translateY(-50%);
  background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.6); color:var(--white);
  width:46px; height:46px; border-radius:50%; cursor:pointer; font-size:1.3rem;
  display:flex; align-items:center; justify-content:center;
}
.hero-arrow:hover{ background:rgba(0,0,0,.5); }
.hero-arrow.prev{ left:24px; } .hero-arrow.next{ right:24px; }
@media (max-width:720px){ .hero-arrow{ display:none; } }

/* thin inset border for a gallery-mount feel */
.frame-corners{ position:absolute; inset:18px; border:1px solid rgba(255,255,255,.35); pointer-events:none; z-index:3; }

/* ---------- hero gallery wall: hanging paintings with mouse parallax ----------
   lives INSIDE its slide, between the darkened bg and the headline, so the
   frames read as pictures on the wall behind the text */
.hero-gallery-wall{ position:absolute; inset:0; z-index:2; pointer-events:none; }
.hanging-frame{
  position:absolute; top:var(--top); right:var(--right); width:var(--w);
  transform-origin:top center;
  filter:drop-shadow(0 20px 28px rgba(0,0,0,.55));
  transition:transform .25s ease-out;
  will-change:transform;
}
.hanging-frame::before{
  content:""; position:absolute; left:50%; top:-24px; width:1px; height:24px;
  background:rgba(255,255,255,.55); transform:translateX(-50%);
}
.hanging-frame::after{
  content:""; position:absolute; left:50%; top:-27px; width:6px; height:6px;
  border-radius:50%; background:var(--gold-light); transform:translateX(-50%);
  box-shadow:0 0 6px rgba(231,205,140,.8);
}
.hanging-frame img{ width:100%; display:block; }
.hanging-frame.antique img{ border-radius:1px; }
.hanging-frame.gilt img{
  border:9px solid var(--white);
  outline:3px solid var(--gold);
  outline-offset:-2px;
}
@media (max-width:900px){ .hero-gallery-wall{ display:none; } }

/* ---------- hero snow + stars (Christmas slides) ---------- */
.hero-snow{ position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
.snowflake{ position:absolute; top:-6%; background:#fff; border-radius:50%; animation:snow-fall linear infinite; }
.star-twinkle{ position:absolute; background:var(--gold-light); border-radius:50%; animation:star-twinkle ease-in-out infinite; }
@keyframes snow-fall{
  0%{ transform:translate(0,-10%); }
  100%{ transform:translate(var(--drift,20px), 900%); }
}
@keyframes star-twinkle{ 0%,100%{ opacity:.15; } 50%{ opacity:1; } }

/* page hero (inner pages) */
.page-hero{
  position:relative; padding:180px 0 90px; color:var(--white);
  background-size:cover; background-position:center;
  overflow:hidden;
}
.page-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,25,13,.8), rgba(20,25,13,.68)); }
.page-hero .container{ position:relative; z-index:2; }
.page-hero h1{ color:var(--white); }
.page-hero .eyebrow{ color:var(--olive-tint); }
.page-hero .eyebrow::before,.page-hero .eyebrow::after{ background:var(--olive-tint); }
.page-hero .lead{ color:rgba(255,255,255,.92); }
.breadcrumb{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.8); margin-bottom:18px; }
.breadcrumb a{ color:var(--olive-tint); }

/* ==========================================================================
   Cards / grids
   ========================================================================== */
.grid{ display:grid; gap:34px; }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
@media (max-width:980px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .grid-3,.grid-4,.grid-2{ grid-template-columns:1fr; } }

.feature-card{
  background:var(--white); border:1px solid rgba(69,77,52,.16);
  border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column; height:100%;
}
.feature-card .thumb{ height:190px; overflow:hidden; position:relative; }
.feature-card .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.feature-card:hover .thumb img{ transform:scale(1.08); }
.feature-card .body{ padding:22px 24px 26px; flex:1; display:flex; flex-direction:column; }
.feature-card h3{ margin-bottom:.5em; }
.feature-card p{ color:var(--ink-soft); font-size:.96rem; flex:1; }
.feature-card .more{ margin-top:10px; font-size:.76rem; letter-spacing:.18em; text-transform:uppercase; color:var(--olive-deep); font-weight:600; }

/* heritage photo-frames, hung like small gallery pictures */
.badge-card{ text-align:center; }
.badge-card .badge-photo-wrap{ position:relative; margin:0 0 20px; padding-top:16px; }
.badge-card .badge-photo-wrap::before{
  content:""; position:absolute; left:50%; top:0; width:1px; height:16px;
  background:rgba(69,77,52,.4); transform:translateX(-50%);
}
.badge-card .badge-photo-wrap::after{
  content:""; position:absolute; left:50%; top:-2px; width:6px; height:6px;
  border-radius:50%; background:var(--gold-dim); transform:translateX(-50%);
}
.badge-photo{
  width:100%; aspect-ratio:4/3; margin:0 auto;
  background-size:175%; background-position:34% 32%;
  background-color:var(--white);
  border:16px solid transparent;
  border-image:linear-gradient(135deg,#eecd82 0%,#a9782f 22%,#7a4a1f 45%,#c98a4b 60%,#eecd82 78%,#8a5a2b 100%) 1;
  box-shadow:var(--shadow-soft), inset 0 0 0 6px var(--white), inset 0 0 0 7px rgba(69,77,52,.25);
  transform-origin:top center;
  transition:transform .2s ease;
}
.badge-card:hover .badge-photo{ animation:frame-shake .6s ease; }
.badge-card.in .badge-photo{ animation:frame-shake .8s ease-out .15s; }
@keyframes frame-shake{
  0%{ transform:rotate(0deg); }
  20%{ transform:rotate(-3deg); }
  40%{ transform:rotate(2.4deg); }
  60%{ transform:rotate(-1.6deg); }
  80%{ transform:rotate(.8deg); }
  100%{ transform:rotate(0deg); }
}
.badge-card h3{ font-size:1rem; margin-top:4px; }
.badge-card p{ color:var(--ink-soft); font-size:.92rem; }
.badge-card p a{ color:var(--olive-deep); font-weight:600; }

/* ==========================================================================
   Callout bands (Art Fest / Christmas)
   ========================================================================== */
.callout{
  position:relative; color:var(--white); background-size:cover; background-position:center;
  border-radius:6px; overflow:hidden; box-shadow:var(--shadow-deep);
}
.callout::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(20,25,13,.92) 30%, rgba(20,25,13,.42)); }
.callout .content{ position:relative; z-index:2; padding:64px; max-width:640px; }
.callout .eyebrow{ color:var(--olive-tint); }
.callout .eyebrow::before,.callout .eyebrow::after{ background:var(--olive-tint); }
.callout h2,.callout h3{ color:var(--white); }
.date-badge{
  display:inline-flex; gap:10px; align-items:center;
  background:rgba(0,0,0,.28); border:1px solid var(--olive-tint); padding:10px 18px;
  font-family:var(--font-serif); font-weight:500; letter-spacing:.06em; margin:18px 0 26px;
}
@media (max-width:720px){ .callout .content{ padding:40px 26px; } }

/* two-tone split */
.split{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.split .media{ min-height:420px; background-size:cover; background-position:center; }
.split .copy{ padding:70px 60px; background:var(--white); display:flex; flex-direction:column; justify-content:center; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; } .split .media{ min-height:300px; } .split .copy{ padding:50px 28px; } }

/* full, uncropped poster/artwork display */
.poster-frame{
  border:12px solid var(--white);
  outline:1px solid rgba(69,77,52,.35); outline-offset:-1px;
  box-shadow:var(--shadow-deep);
  border-radius:2px; overflow:hidden; background:var(--olive-ink);
}
.poster-frame img{ width:100%; height:auto; display:block; }

/* ==========================================================================
   FAQ (AEO)
   ========================================================================== */
.faq-item{ border-bottom:1px solid rgba(69,77,52,.2); padding:22px 0; }
.faq-item h3{ font-size:1rem; margin:0; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq-item .answer{ max-height:0; overflow:hidden; transition:max-height .3s ease; color:var(--ink-soft); }
.faq-item.open .answer{ max-height:400px; padding-top:12px; }
.faq-item .icon{ color:var(--olive); font-size:1.4rem; transition:transform .25s ease; }
.faq-item.open .icon{ transform:rotate(45deg); }

/* ==========================================================================
   Visit panel / opening times — page-native card section
   ========================================================================== */
.visit-panel{ background:var(--offwhite); }
.visit-card{
  background:var(--white); border:1px solid rgba(69,77,52,.16); border-radius:8px;
  padding:38px 34px; box-shadow:var(--shadow-soft); height:100%;
}
.visit-card h3{
  color:var(--burgundy); font-size:.95rem; letter-spacing:.16em;
  display:inline-block; padding-bottom:8px; margin-bottom:18px;
  border-bottom:2px solid var(--olive);
}
.visit-card p{ color:var(--ink-soft); }
.visit-card a{ color:var(--olive-deep); font-weight:600; }
.visit-card a:hover{ color:var(--olive); }
.visit-card .btn{ color:var(--olive-deep); }
.visit-card .btn:hover{ color:var(--white); }
.map-embed{ border:0; width:100%; height:380px; filter:saturate(.9); }

/* ==========================================================================
   Direct contact cards + brand banner (contact page)
   ========================================================================== */
.contact-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-card{
  background:var(--white); border:1px solid rgba(69,77,52,.16); border-radius:8px;
  padding:42px 30px; text-align:center; box-shadow:var(--shadow-soft);
}
.contact-card .icon-circle{
  width:60px; height:60px; border-radius:50%; margin:0 auto 18px;
  background:var(--olive-deep); color:var(--white);
  display:flex; align-items:center; justify-content:center; font-size:1.5rem;
}
.contact-card h3{ margin-bottom:10px; }
.contact-card p{ color:var(--ink-soft); font-size:.95rem; }
.contact-card .big-link{
  display:block; font-family:var(--font-serif); font-size:1.2rem; color:var(--burgundy);
  margin-top:6px;
}
.contact-card .big-link:hover{ color:var(--olive); }

.brand-banner{
  background:linear-gradient(135deg, var(--olive-ink), var(--olive-deep));
  color:var(--white); border-radius:8px; padding:56px 44px; text-align:center;
  box-shadow:var(--shadow-deep);
}
.brand-banner img{ height:96px; margin:0 auto 20px; }
.brand-banner h3{ color:var(--white); }
.brand-banner p{ color:rgba(255,255,255,.9); max-width:560px; margin-left:auto; margin-right:auto; }
.brand-banner .eyebrow{ color:var(--olive-tint); }
.brand-banner .eyebrow::before,.brand-banner .eyebrow::after{ background:var(--olive-tint); }

/* redirect / off-site enquiry card */
.redirect-card{
  background:linear-gradient(135deg, var(--olive-ink), var(--olive-deep)); color:var(--white); border-radius:8px;
  padding:46px 40px; text-align:center; box-shadow:var(--shadow-deep);
}
.redirect-card h3{ color:var(--white); }
.redirect-card p{ color:rgba(255,255,255,.9); }
.redirect-card .eyebrow{ color:var(--olive-tint); }
.redirect-card .eyebrow::before,.redirect-card .eyebrow::after{ background:var(--olive-tint); }

/* ==========================================================================
   Footer  (dark olive)
   ========================================================================== */
footer.site-footer{ background:var(--olive-ink); color:rgba(255,255,255,.88); padding-top:60px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; }
@media (max-width:860px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h4{ color:var(--olive-tint); font-size:.78rem; letter-spacing:.24em; margin-bottom:16px; font-weight:600; }
.footer-grid ul{ list-style:none; margin:0; padding:0; }
.footer-grid li{ margin-bottom:10px; font-size:.92rem; }
.footer-grid a:hover{ color:var(--olive-tint); }
.footer-brand img{ height:70px; margin-bottom:14px; }
.footer-brand p{ color:rgba(255,255,255,.8); font-size:.9rem; max-width:320px; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.16); padding:22px 28px; font-size:.8rem;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px 24px; color:rgba(255,255,255,.62);
}
.footer-bottom a{ color:rgba(255,255,255,.62); }
.footer-bottom .powered-by{ margin-left:auto; white-space:nowrap; letter-spacing:.06em; }

/* ==========================================================================
   Utilities
   ========================================================================== */
.tag{ display:inline-block; padding:5px 14px; border:1px solid var(--olive); color:var(--olive-deep); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; border-radius:20px; font-weight:500; }
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
.script-accent{ font-family:var(--font-serif); font-style:italic; font-weight:400; font-size:2.6rem; letter-spacing:0; text-transform:none; color:var(--burgundy); line-height:1.1; }
.script-accent::before,.script-accent::after{ display:none; }
.mb-0{ margin-bottom:0 !important; }
.small{ font-size:.85rem; }
.center-col{ max-width:760px; margin:0 auto; }

.menu-card{ background:var(--white); border:1px solid rgba(69,77,52,.18); border-radius:6px; padding:34px; box-shadow:var(--shadow-soft); }
.menu-course{ margin-bottom:26px; }
.menu-course h4{ font-family:var(--font-display); color:var(--burgundy); border-bottom:1px solid var(--olive); padding-bottom:8px; margin-bottom:14px; letter-spacing:.16em; font-size:.85rem; font-weight:600; }
.menu-item{ display:flex; justify-content:space-between; gap:20px; margin-bottom:16px; }
.menu-item .name{ font-weight:600; color:var(--navy); }
.menu-item .desc{ color:var(--ink-soft); font-size:.9rem; }
.menu-price{ text-align:center; margin-top:10px; font-family:var(--font-serif); font-size:1.5rem; color:var(--burgundy); }

/* venue photo strip (Host-an-Event style) */
.venue-strip{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-top:20px; }
@media (max-width:860px){ .venue-strip{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:520px){ .venue-strip{ grid-template-columns:repeat(2,1fr); } }
.venue-strip img{ width:100%; height:130px; object-fit:cover; border-radius:3px; box-shadow:var(--shadow-soft); }

.hours-table{ width:100%; border-collapse:collapse; }
.hours-table td{ padding:10px 0; border-bottom:1px solid rgba(69,77,52,.16); }
.hours-table td:last-child{ text-align:right; color:var(--olive-deep); font-weight:600; }

/* ==========================================================================
   Full events calendar list
   ========================================================================== */
.event-list{ border-top:1px solid rgba(69,77,52,.22); }
.event-row{
  display:flex; align-items:center; gap:26px; padding:18px 6px;
  border-bottom:1px solid rgba(69,77,52,.22);
}
.event-row .ev-date{ width:96px; flex-shrink:0; text-align:center; }
.event-row .ev-date .day{
  display:block; font-family:var(--font-serif); font-size:1.75rem; font-weight:600;
  color:var(--burgundy); line-height:1;
}
.event-row .ev-date .month{
  display:block; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--olive); margin-top:5px; font-weight:500;
}
.event-row .ev-info{ flex:1; min-width:0; }
.event-row .ev-info h4{ margin:0 0 3px; font-size:.98rem; font-weight:600; letter-spacing:.06em; color:var(--navy); }
.event-row .ev-cat{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--olive); }
.event-row .ev-time{ font-size:.86rem; color:var(--ink-soft); white-space:nowrap; text-align:right; }
@media (max-width:640px){
  .event-row{ flex-wrap:wrap; gap:14px 20px; }
  .event-row .ev-date{ width:auto; text-align:left; }
  .event-row .ev-time{ margin-left:116px; }
}
