/* ============================================================
   Carnegie Arts Centre Kenmare — Theme Stylesheet
   ============================================================ */

/* === RESET === */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif;color:#1a1a2e;background:#fafafa;line-height:1.6;}
a{color:inherit;}
ul{list-style:none;}
img{max-width:100%;height:auto;}

/* === TOKENS === */
:root{
  --purple-deep:#1e0a3c;
  --purple-dark:#2e1065;
  --purple:#4a2d8f;
  --purple-mid:#5b3a9e;
  --purple-light:#7c5cbf;
  --gold:#d4a843;
  --gold-light:#e8c96a;
  --white:#fff;
  --off-white:#f5f0eb;
  --grey-100:#f3f4f6;
  --grey-300:#d1d5db;
  --grey-500:#6b7280;
  --grey-700:#374151;
  --grey-900:#111827;
  --shadow-sm:0 1px 3px rgba(0,0,0,.06);
  --shadow-md:0 4px 16px rgba(0,0,0,.1);
  --shadow-lg:0 8px 30px rgba(0,0,0,.14);
  --shadow-xl:0 16px 48px rgba(0,0,0,.18);
  --radius:14px;
  --radius-sm:8px;
  --t:.3s cubic-bezier(.4,0,.2,1);
}

/* === TOP BAR === */
.top-bar{background:var(--purple-deep);color:rgba(255,255,255,.7);font-size:.78rem;padding:.35rem 2rem;}
.top-bar-inner{width:100%;max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem;}
.top-bar-info{flex:1;text-align:left;}
.top-bar a{color:var(--gold-light);text-decoration:none;}
.top-bar a:hover{text-decoration:underline;}
.top-bar-social{display:flex;gap:.4rem;align-items:center;}
.top-bar-social a{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:#fff;transition:all var(--t);}
.top-bar-social a:hover{background:var(--gold);color:var(--purple-dark);}
.top-bar-social svg{width:13px;height:13px;}

/* === HEADER === */
.site-header{background:linear-gradient(180deg,var(--purple-dark) 0%,var(--purple) 100%);padding:10px 2rem;}
.header-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:0;}
.header-logo{display:flex;align-items:center;text-decoration:none;color:#fff;margin-left:-3rem;flex-shrink:0;}
.header-logo-img{height:95px!important;width:auto!important;max-width:none!important;display:block;}
.header-right{text-align:right;color:rgba(255,255,255,.85);font-size:.78rem;display:flex;flex-direction:column;gap:.1rem;align-items:flex-end;}
.header-contact-row{display:flex;align-items:baseline;gap:.4rem;justify-content:flex-end;}
.header-label{color:#fff;font-weight:600;font-size:.78rem;}
.header-link-gold{color:var(--gold-light);text-decoration:none;font-weight:600;font-size:.85rem;}
.header-link-gold:hover{color:var(--gold);text-decoration:underline;}
.header-hours{margin-top:.2rem;font-size:.7rem;color:rgba(255,255,255,.7);}
.header-hours .header-label{font-size:.78rem;display:block;margin-bottom:.05rem;}

/* === NAV === */
.nav-bar{background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:1000;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.nav-inner{max-width:1280px;margin:0 auto;padding:0 1.5rem;display:flex;justify-content:center;align-items:center;position:relative;}
.nav-links,.nav-links ul{display:flex;list-style:none;gap:0;align-items:stretch;}
.nav-links li{position:relative;}
.nav-links li+li::before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:1px;background:#e5e7eb;}
.nav-links a,.nav-links li a{display:block;padding:1.1rem 1.4rem;font-size:.82rem;font-weight:600;color:var(--grey-700);text-decoration:none;text-transform:uppercase;letter-spacing:.08em;border-top:3px solid transparent;transition:all var(--t);}
.nav-links a:hover,.nav-links .current-menu-item>a,.nav-links a.active{color:var(--purple);border-top-color:var(--gold);}

/* Dropdown submenu */
.nav-links li.has-submenu > a::after{content:" \25BE";font-size:.7em;margin-left:.25em;opacity:.6;}
.nav-links .submenu{position:absolute;top:100%;left:0;background:#fff;box-shadow:0 12px 28px rgba(0,0,0,.12);min-width:220px;display:flex;flex-direction:column;border-radius:0 0 var(--radius-sm) var(--radius-sm);overflow:hidden;border-top:3px solid var(--gold);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:1001;}
.nav-links li.has-submenu:hover > .submenu,.nav-links li.has-submenu:focus-within > .submenu{opacity:1;visibility:visible;transform:translateY(0);}
.nav-links .submenu li{display:block;}
.nav-links .submenu li+li::before{display:none;}
.nav-links .submenu a{padding:.75rem 1.2rem;font-size:.78rem;color:var(--grey-700);border-top:none;text-transform:none;letter-spacing:.02em;font-weight:500;white-space:nowrap;}
.nav-links .submenu a:hover{background:var(--off-white);color:var(--purple);border-top:none;}
.nav-aside{position:absolute;right:1.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:1rem;}
/* Cart & Checkout: inline quantity controls */
.carnegie-qty{display:inline-flex;align-items:center;gap:.4rem;}
.carnegie-qty-btn,.carnegie-qty-remove{width:26px;height:26px;border:1px solid var(--grey-300);background:#fff;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;line-height:1;display:inline-flex;align-items:center;justify-content:center;color:var(--grey-700);transition:all var(--t);padding:0;font-family:inherit;}
.carnegie-qty-btn:hover{background:var(--purple);color:#fff;border-color:var(--purple);}
.carnegie-qty-remove{margin-left:.25rem;color:var(--grey-500);}
.carnegie-qty-remove:hover{background:#dc2626;color:#fff;border-color:#dc2626;}
.carnegie-qty-val{min-width:22px;text-align:center;font-weight:700;color:var(--grey-900);}

/* Checkout: red × before product name in Your Order */
.carnegie-checkout-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:transparent;color:#dc2626;font-size:1.15rem;font-weight:700;line-height:1;cursor:pointer;padding:0;margin-right:.5rem;vertical-align:middle;transition:transform var(--t);}
.carnegie-checkout-remove:hover{transform:scale(1.2);color:#b91c1c;}

/* Cart page: thumbnail size + hide Update Basket (AJAX gestisce qty) */
.woocommerce-cart .product-thumbnail img{width:64px;height:64px;object-fit:cover;border-radius:6px;}
.woocommerce-cart .actions button[name="update_cart"]{display:none;}
.woocommerce-cart .coupon{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}
.woocommerce-cart .coupon #coupon_code{min-width:240px;flex:1 1 240px;padding:.6rem .8rem;}

.nav-cart{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--grey-100);color:var(--purple);text-decoration:none;transition:all var(--t);}
.nav-cart:hover{background:var(--purple);color:#fff;}
.nav-cart-count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--gold);color:var(--purple-dark);font-size:.65rem;font-weight:700;display:none;align-items:center;justify-content:center;line-height:1;}
.nav-cart-count.has-items{display:inline-flex;}
.nav-donate-form{margin:0;display:inline;}
.nav-donate{display:inline-flex;align-items:center;gap:.4rem;background:var(--gold);color:var(--purple-dark);padding:.55rem 1.25rem;border-radius:50px;text-decoration:none;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:all var(--t);box-shadow:0 4px 12px rgba(212,168,67,.3);border:none;cursor:pointer;font-family:inherit;}
.nav-donate:hover{background:var(--gold-light);transform:translateY(-1px);box-shadow:0 6px 16px rgba(212,168,67,.45);}
.nav-donate-heart{color:#dc2626;font-size:.95rem;line-height:1;}
.nav-mobile{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;padding:1rem;color:var(--grey-700);}

/* === HERO (split: card + slider) === */
.hero-split{position:relative;background:linear-gradient(135deg,var(--purple-dark) 0%,var(--purple) 50%,var(--purple-mid) 100%);padding:3.5rem 2rem;overflow:hidden;}
.hero-split::before{content:"";position:absolute;inset:0;opacity:.05;background-image:radial-gradient(circle at 15% 35%,var(--gold) 1.5px,transparent 1.5px),radial-gradient(circle at 85% 65%,var(--gold) 1px,transparent 1px);background-size:80px 80px,60px 60px;pointer-events:none;}
.hero-split::after{content:"";position:absolute;top:-20%;right:-10%;width:600px;height:600px;background:radial-gradient(circle,rgba(212,168,67,.1),transparent 70%);border-radius:50%;pointer-events:none;}
.hero-split-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:minmax(300px,400px) 1fr;gap:0;align-items:center;position:relative;z-index:1;}

.hero-card{background:var(--off-white);border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.35),0 8px 16px rgba(0,0,0,.18);padding:2.6rem 2rem;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;position:relative;z-index:2;color:var(--purple-dark);margin-right:-60px;border:1px solid rgba(212,168,67,.2);}
.hero-card-logo{margin-bottom:1.4rem;display:inline-block;}
.hero-card-logo img{width:140px;height:auto;display:block;}
.hero-card-text{font-family:'Inter',sans-serif;font-size:.95rem;line-height:1.7;color:var(--grey-700);margin-bottom:1.6rem;font-weight:400;}
.hero-card-btn{display:inline-block;background:var(--purple);color:#fff;padding:.78rem 2.4rem;border-radius:8px;text-decoration:none;font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:all var(--t);box-shadow:0 4px 14px rgba(74,45,143,.3);}
.hero-card-btn:hover{background:var(--gold);color:var(--purple-dark);transform:translateY(-2px);box-shadow:0 10px 24px rgba(212,168,67,.5);}

.hero-slider{position:relative;border-radius:18px;overflow:hidden;min-height:480px;background:var(--purple-deep);box-shadow:0 16px 48px rgba(0,0,0,.3);z-index:1;border:1px solid rgba(255,255,255,.08);}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease-in-out;}
.hero-slide.is-active{opacity:1;}
.hero-slider-dots{position:absolute;bottom:1.2rem;left:50%;transform:translateX(-50%);display:flex;gap:.5rem;z-index:3;}
.hero-slider-dot{width:10px;height:10px;border-radius:50%;border:none;background:rgba(255,255,255,.4);cursor:pointer;padding:0;transition:all var(--t);}
.hero-slider-dot:hover{background:rgba(255,255,255,.7);}
.hero-slider-dot.is-active{background:var(--gold);transform:scale(1.3);}

/* === SECTIONS === */
.section{padding:5rem 2rem;}
.section-header{text-align:center;margin-bottom:3.5rem;}
.section-header h2{font-family:'Playfair Display',serif;font-size:2.3rem;font-weight:700;margin-bottom:.7rem;color:var(--grey-900);}
.section-header p{color:var(--grey-500);font-size:1rem;max-width:540px;margin:0 auto;}
.section-tag{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--purple);margin-bottom:.5rem;}
.container{max-width:1280px;margin:0 auto;padding:0 1rem;}

/* === EVENTS SECTION === */
.events-section{background:var(--off-white);}
.events-filter{display:flex;gap:.5rem;justify-content:center;margin-bottom:2.5rem;flex-wrap:wrap;}
.filter-btn{padding:.55rem 1.3rem;border-radius:50px;border:1.5px solid var(--grey-300);background:#fff;font-size:.82rem;font-weight:500;cursor:pointer;transition:all var(--t);color:var(--grey-700);}
.filter-btn.active,.filter-btn:hover{background:var(--purple);color:#fff;border-color:var(--purple);}
.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;}
.no-events{text-align:center;color:var(--grey-500);grid-column:1/-1;padding:3rem;}

/* === EVENT TILE === */
.event-tile{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--t);cursor:pointer;display:block;}
.event-tile:hover{transform:translateY(-5px);box-shadow:var(--shadow-xl);}
.tile-img{position:relative;height:300px;overflow:hidden;background:#17101f;}
.tile-img.has-img::before{content:'';position:absolute;inset:0;z-index:0;background-image:var(--img);background-size:cover;background-position:center;filter:blur(24px) brightness(.72);transform:scale(1.25);}
.tile-img.has-img::after{content:'';position:absolute;inset:0;z-index:1;background-image:var(--img);background-size:contain;background-position:center;background-repeat:no-repeat;}
.tile-img.no-img{background:linear-gradient(135deg,#2e1065,#4a2d8f);}
.tile-cat{position:absolute;top:1rem;left:1rem;z-index:2;padding:.3rem .85rem;border-radius:6px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#fff;}
.tile-dates-badge{position:absolute;top:1rem;right:1rem;z-index:2;background:rgba(0,0,0,.6);color:#fff;padding:.3rem .75rem;border-radius:6px;font-size:.72rem;font-weight:500;backdrop-filter:blur(4px);}
.tile-soldout-badge{position:absolute;top:1rem;right:1rem;z-index:2;background:#dc2626;color:#fff;padding:.3rem .75rem;border-radius:6px;font-size:.72rem;font-weight:700;}
.tile-poster{position:absolute;bottom:1.2rem;left:1.2rem;z-index:2;color:#fff;}
.tile-poster-sub{font-size:.6rem;opacity:.7;letter-spacing:.06em;text-transform:uppercase;}
.tile-poster-title{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;line-height:1.1;text-shadow:0 2px 8px rgba(0,0,0,.4);}
.tile-poster-artist{font-size:.72rem;opacity:.75;margin-top:.15rem;}
.tile-body{padding:1.3rem 1.5rem 1.5rem;}
.tile-title{font-family:'Playfair Display',serif;font-size:1.35rem;font-weight:700;margin-bottom:.5rem;line-height:1.25;color:var(--grey-900);}
.tile-meta{font-size:.8rem;color:var(--grey-500);margin-bottom:.6rem;}
.tile-excerpt{font-size:.85rem;color:var(--grey-500);line-height:1.6;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tile-footer{display:flex;align-items:center;justify-content:space-between;padding-top:.8rem;border-top:1px solid var(--grey-100);}
.tile-price{font-weight:700;color:var(--grey-900);font-size:.95rem;}
.tile-tickets{font-size:.7rem;color:var(--grey-500);}
.tile-tickets.soldout{color:#dc2626;font-weight:600;}
.tile-book{background:var(--purple);color:#fff;padding:.5rem 1.3rem;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;border:none;cursor:pointer;transition:all var(--t);}
.tile-book:hover{background:var(--purple-dark);}
.tile-book.is-soldout{background:var(--grey-300);color:var(--grey-500);cursor:default;}
.events-more{text-align:center;margin-top:2.5rem;}
.btn-purple{display:inline-flex;align-items:center;gap:.4rem;background:var(--purple);color:#fff;padding:.75rem 1.6rem;border-radius:8px;text-decoration:none;font-weight:600;font-size:.88rem;transition:all var(--t);border:none;cursor:pointer;}
.btn-purple:hover{background:var(--purple-dark);}

/* === EVENT MODAL === */
.modal-overlay{display:none;position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.55);backdrop-filter:blur(5px);align-items:center;justify-content:center;padding:2rem;}
.modal-overlay.active{display:flex;}
.modal-box{background:#fff;border-radius:16px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,.25);animation:modalIn .3s ease;}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.97);}to{opacity:1;transform:translateY(0) scale(1);}}
.modal-hero{height:260px;background-size:cover;background-position:center;border-radius:16px 16px 0 0;position:relative;}
.modal-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(46,16,101,.7),transparent 60%);border-radius:16px 16px 0 0;}
.modal-close{position:absolute;top:1rem;right:1rem;z-index:3;width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.4);color:#fff;border:none;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);transition:background var(--t);}
.modal-close:hover{background:rgba(0,0,0,.7);}
.modal-body{padding:2rem 2.2rem 2.5rem;}
.modal-cat{display:inline-block;padding:.3rem .8rem;border-radius:5px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff;margin-bottom:.8rem;}
.modal-body h2{font-family:'Playfair Display',serif;font-size:1.65rem;margin-bottom:.4rem;color:var(--grey-900);}
.modal-meta{color:var(--grey-500);font-size:.85rem;margin-bottom:1.2rem;}
.modal-desc{font-size:.9rem;line-height:1.8;color:#555;margin-bottom:2rem;}
.date-sel{margin-bottom:1.8rem;}
.date-sel h3{font-size:.92rem;font-weight:700;margin-bottom:.8rem;color:var(--grey-900);}
.date-opts{display:flex;flex-wrap:wrap;gap:.6rem;}
.date-opt{padding:.65rem 1.2rem;border:2px solid #e5e7eb;border-radius:10px;background:#fff;cursor:pointer;transition:all var(--t);text-align:center;min-width:128px;text-decoration:none;color:inherit;display:block;}
.date-opt:hover{border-color:var(--purple-light);background:rgba(74,45,143,.03);}
.date-opt.sel{border-color:var(--purple);background:rgba(74,45,143,.05);}
.date-opt.off{opacity:.4;cursor:not-allowed;}
.date-opt-day{display:block;font-weight:700;font-size:.85rem;color:var(--grey-900);}
.date-opt-time{display:block;font-size:.75rem;color:var(--grey-500);margin-top:.1rem;}
.date-opt-avail{display:block;font-size:.65rem;color:#059669;margin-top:.2rem;font-weight:500;}
.date-opt-avail.low{color:#dc2626;}
.date-opt-avail.soldout{color:#dc2626;font-weight:700;}
.modal-book{display:block;width:100%;padding:.95rem;background:var(--purple);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:all var(--t);text-align:center;text-decoration:none;}
.modal-book:hover{background:var(--purple-dark);color:#fff;}
.modal-book.off{background:#d1d5db;color:#6b7280;cursor:default;}
.modal-note{text-align:center;font-size:.7rem;color:var(--grey-500);margin-top:.6rem;opacity:.6;}

/* Buy button loading state (spinner + click-block) */
.is-loading{pointer-events:none;opacity:.85;cursor:wait!important;}
.cg-spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:cg-spin .7s linear infinite;vertical-align:-3px;margin-right:.45rem;}
@keyframes cg-spin{to{transform:rotate(360deg);}}

/* === SPACES === */
.spaces-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.space-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--t);display:block;text-decoration:none;color:inherit;border:1px solid rgba(0,0,0,.04);}
.space-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);}
.space-card-img{height:240px;background-size:cover;background-position:center;background-color:var(--purple-dark);position:relative;}
.space-card-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(46,16,101,.45),transparent 60%);}
.space-card-body{padding:1.4rem 1.5rem 1.6rem;}
.space-card-body h3{font-family:'Playfair Display',serif;font-size:1.35rem;font-weight:700;margin-bottom:.5rem;color:var(--grey-900);}
.space-card-body p{font-size:.88rem;color:var(--grey-500);line-height:1.65;margin-bottom:.8rem;}
.space-cap{display:inline-block;font-size:.72rem;color:var(--purple);font-weight:600;text-transform:uppercase;letter-spacing:.06em;}
.space-cap{display:inline-flex;align-items:center;gap:.3rem;margin-top:.6rem;font-size:.73rem;font-weight:600;color:var(--purple);background:rgba(74,45,143,.06);padding:.3rem .8rem;border-radius:6px;}

/* === ABOUT === */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center;}
.about-img{height:400px;border-radius:var(--radius);background-size:cover;background-position:center;background-color:var(--purple-dark);box-shadow:var(--shadow-md);}
.about-content h2{font-family:'Playfair Display',serif;font-size:1.8rem;margin-bottom:.8rem;color:var(--grey-900);}
.about-content p{color:var(--grey-500);line-height:1.8;margin-bottom:.8rem;font-size:.92rem;}

/* === NEWSLETTER === */
.newsletter{background:linear-gradient(135deg,var(--purple-dark),var(--purple));color:#fff;padding:4rem 2rem;position:relative;}
.newsletter-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:960px;margin:0 auto;}
.newsletter-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:2.6rem 2rem;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:background var(--t),border-color var(--t),transform var(--t);}
.newsletter-card:hover{background:rgba(255,255,255,.07);border-color:rgba(212,168,67,.35);transform:translateY(-2px);}
.newsletter-card h2{font-family:'Playfair Display',serif;font-size:1.5rem;margin-bottom:.5rem;}
.newsletter-card p{color:rgba(255,255,255,.65);margin-bottom:1.6rem;font-size:.9rem;line-height:1.55;max-width:340px;}
.newsletter-card .btn-gold{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;}
.donate-heart{color:#dc2626;}
@media(max-width:768px){
    .newsletter-grid{grid-template-columns:1fr;gap:1rem;}
    .newsletter-card{padding:2rem 1.5rem;}
}

/* === CARNEGIE PRODUCTIONS === */
.productions-section{padding:4rem 2rem;}
.productions-upcoming{background:linear-gradient(180deg,#fff,var(--off-white));}
.productions-past{background:var(--off-white);}
.productions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem;max-width:1200px;margin:0 auto;}
.productions-upcoming .productions-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));}
.production-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--t),box-shadow var(--t);text-decoration:none;color:inherit;display:flex;flex-direction:column;border:1px solid rgba(74,45,143,.06);}
.production-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.production-card-image{display:block;position:relative;aspect-ratio:4/3;background:var(--purple-deep) center/cover no-repeat;overflow:hidden;}
.production-card-noimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.3);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;}
.production-badge{position:absolute;top:.8rem;left:.8rem;background:var(--gold);color:var(--purple-dark);padding:.25rem .65rem;border-radius:50px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.production-year{position:absolute;bottom:.8rem;right:.8rem;background:rgba(0,0,0,.65);color:#fff;padding:.25rem .65rem;border-radius:6px;font-size:.78rem;font-weight:700;letter-spacing:.04em;}
.production-card-body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.35rem;flex:1;}
.production-card-title,.production-card-title a{font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:700;color:var(--purple-dark);text-decoration:none;line-height:1.25;margin:0;}
.production-card-title a:hover{color:var(--gold);}
.production-card-author{font-size:.82rem;color:var(--grey-500);font-style:italic;}
.production-card-date{font-size:.85rem;color:var(--purple);font-weight:600;margin-top:.3rem;}
.production-card-excerpt{font-size:.88rem;color:var(--grey-700);line-height:1.5;margin:.5rem 0 0;}
.production-card-cta,.production-card-link{margin-top:auto;padding-top:1rem;align-self:flex-start;}
.production-card-link{color:var(--purple);text-decoration:none;font-weight:600;font-size:.85rem;transition:color var(--t);}
.production-card-link:hover{color:var(--gold);}
.production-card--past{display:flex;flex-direction:column;}
.production-card--past .production-card-image{aspect-ratio:1/1;}
.production-card--past .production-card-body{padding:.9rem 1rem 1.1rem;}
.production-card--past .production-card-title{font-size:1.02rem;}
.production-card--past .production-card-author{font-size:.78rem;}

/* Single production page */
.production-single .production-meta-row{display:flex;flex-wrap:wrap;gap:1rem 2rem;padding:1rem 1.3rem;background:var(--off-white);border-radius:var(--radius-sm);margin-bottom:1.6rem;font-size:.9rem;}
.production-single .production-meta-item strong{color:var(--purple-dark);}
.production-ticket-cta{margin:2rem 0;}
.production-back{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--grey-100);}
.production-back a{color:var(--purple);text-decoration:none;font-weight:600;font-size:.9rem;}
.production-back a:hover{color:var(--gold);}

@media(max-width:768px){
    .productions-section{padding:2.5rem 1rem;}
    .productions-grid,.productions-upcoming .productions-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;}
}

/* === CONTACT === */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;}
.contact-info h3,.contact-form h3{font-family:'Playfair Display',serif;font-size:1.2rem;margin-bottom:1.2rem;}
.c-item{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:1.3rem;}
.c-icon{width:42px;height:42px;border-radius:10px;background:rgba(74,45,143,.06);color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}
.c-text h4{font-size:.85rem;font-weight:600;margin-bottom:.15rem;color:var(--grey-900);}
.c-text p{font-size:.82rem;color:var(--grey-500);line-height:1.5;}
/* CF7 form styling */
.contact-form .wpcf7 input[type="text"],
.contact-form .wpcf7 input[type="email"],
.contact-form .wpcf7 textarea{width:100%;padding:.65rem .9rem;border:2px solid var(--grey-300);border-radius:var(--radius-sm);font-size:.85rem;font-family:inherit;transition:border var(--t);outline:none;margin-bottom:.6rem;}
.contact-form .wpcf7 input:focus,.contact-form .wpcf7 textarea:focus{border-color:var(--purple);}
.contact-form .wpcf7 textarea{height:100px;resize:vertical;}
.contact-form .wpcf7 input[type="submit"]{background:var(--purple);color:#fff;padding:.75rem 1.6rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;width:100%;font-size:.88rem;transition:all var(--t);}
.contact-form .wpcf7 input[type="submit"]:hover{background:var(--purple-dark);}

/* === FOOTER === */
.footer{background:var(--purple-deep);color:rgba(255,255,255,.6);padding:3.5rem 2rem 1.5rem;}
.footer-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.5rem;}
.footer-brand .f-logo{display:inline-block;margin-bottom:1rem;text-decoration:none;}
.footer-brand .f-logo-img{max-width:240px;height:auto;display:block;filter:brightness(0) invert(1);opacity:.95;}
.footer-brand p{font-size:.8rem;line-height:1.6;max-width:260px;}
.footer-brand .charity{font-size:.7rem;color:rgba(255,255,255,.25);margin-top:.6rem;}
.footer h4{color:var(--gold);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.8rem;}
.footer ul{list-style:none;padding:0;}
.footer ul li{margin-bottom:.4rem;}
.footer ul a{color:rgba(255,255,255,.45);text-decoration:none;font-size:.8rem;transition:color var(--t);}
.footer ul a:hover{color:#fff;}
.footer-bottom{max-width:1280px;margin:2.5rem auto 0;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-between;align-items:center;font-size:.72rem;}
.f-social{display:flex;gap:.4rem;align-items:center;}
.f-social a{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:all var(--t);}
.f-social a:hover{background:var(--gold);color:var(--purple-dark);}
.f-social svg{width:13px;height:13px;}

/* === SINGLE EVENT PAGE === */
.event-page-hero{position:relative;height:360px;background-size:cover;background-position:center;}
.event-page-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(46,16,101,.8),rgba(46,16,101,.3));}

/* === SCROLL REVEAL === */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform;}
.reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* === PROGRAMME PAGE === */
.programme-hero{background:linear-gradient(135deg,var(--purple-dark) 0%,var(--purple) 60%,var(--purple-mid) 100%);color:#fff;padding:4rem 2rem 3rem;text-align:center;position:relative;overflow:hidden;}
.programme-hero::before{content:"";position:absolute;inset:0;opacity:.05;background-image:radial-gradient(circle at 15% 35%,var(--gold) 1.5px,transparent 1.5px);background-size:80px 80px;pointer-events:none;}
.programme-hero .container{position:relative;z-index:1;}
.programme-hero .section-tag{background:rgba(212,168,67,.15);border:1px solid rgba(212,168,67,.3);color:var(--gold-light);}
.programme-hero h1{font-family:'Playfair Display',serif;font-size:2.6rem;font-weight:700;margin:.6rem 0 .8rem;}
.programme-hero p{color:rgba(255,255,255,.75);max-width:600px;margin:0 auto;}

.programme-list{background:var(--off-white);}
.programme-month{margin-bottom:3rem;}
.programme-month:last-child{margin-bottom:0;}
.programme-month-header{background:var(--purple-dark);color:#fff;border-radius:var(--radius);padding:1.2rem 2rem;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);position:relative;}
.programme-month-header::before{content:"";position:absolute;left:2rem;top:50%;width:30px;height:2px;background:var(--gold);transform:translateY(-50%);}
.programme-month-header::after{content:"";position:absolute;right:2rem;top:50%;width:30px;height:2px;background:var(--gold);transform:translateY(-50%);}
.programme-month-header h2{font-family:'Playfair Display',serif;font-size:1.7rem;font-weight:700;color:var(--gold-light);margin:0;letter-spacing:.04em;}

/* Toolbar + view toggle */
.programme-toolbar{display:flex;justify-content:flex-end;margin-bottom:1.5rem;}
.view-toggle{display:inline-flex;background:#fff;border:1px solid var(--grey-300);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm);}
.view-toggle-btn{background:#fff;border:none;padding:.6rem .9rem;color:var(--grey-500);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--t);}
.view-toggle-btn+.view-toggle-btn{border-left:1px solid var(--grey-300);}
.view-toggle-btn:hover{color:var(--purple);background:rgba(74,45,143,.05);}
.view-toggle-btn.is-active{background:var(--purple);color:#fff;}

/* View visibility (grid is default; list hidden until toggled) */
.events-list{display:none;}
.programme-list[data-view="list"] .events-grid{display:none;}
.programme-list[data-view="list"] .events-list{display:flex;flex-direction:column;gap:1rem;}

/* Event row (list view) */
.event-row{display:grid;grid-template-columns:120px 1fr 200px;gap:1.5rem;background:#fff;border:1px solid var(--grey-100);border-radius:var(--radius);padding:1.4rem 1.6rem;cursor:pointer;transition:all var(--t);align-items:stretch;}
.event-row:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);border-color:var(--purple-light);}
.row-date{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:2px solid var(--grey-100);padding-right:1rem;}
.row-weekday{font-size:.78rem;font-weight:700;color:var(--grey-500);letter-spacing:.1em;}
.row-daynum{font-family:'Playfair Display',serif;font-size:2.6rem;font-weight:700;line-height:1;color:var(--purple);margin:.15rem 0;}
.row-month{font-size:.78rem;font-weight:700;color:var(--grey-500);letter-spacing:.1em;}
.row-body{display:flex;flex-direction:column;gap:.5rem;min-width:0;}
.row-meta-top{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;}
.row-cat{display:inline-block;color:#fff;padding:.18rem .6rem;border-radius:50px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.row-time{font-size:.78rem;color:var(--grey-500);font-weight:500;}
.row-title{font-family:'Playfair Display',serif;font-size:1.25rem;font-weight:700;color:var(--grey-900);line-height:1.3;}
.row-venue{font-size:.82rem;color:var(--grey-700);}
.row-excerpt{font-size:.88rem;color:var(--grey-500);line-height:1.6;margin:.2rem 0 .3rem;}
.row-footer{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:auto;padding-top:.6rem;}
.row-price{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;color:var(--purple);}
.row-stock{font-size:.78rem;color:#059669;font-weight:600;}
.row-soldout{font-size:.78rem;color:#dc2626;font-weight:700;text-transform:uppercase;}
.row-book{margin-left:auto;background:var(--purple);color:#fff;border:none;padding:.55rem 1.3rem;border-radius:8px;font-size:.82rem;font-weight:700;cursor:pointer;transition:all var(--t);}
.row-book:hover:not(:disabled){background:var(--purple-mid);transform:translateY(-1px);}
.row-book:disabled{background:var(--grey-300);cursor:not-allowed;}
.row-image{background-size:cover;background-position:center;border-radius:10px;min-height:140px;}
.event-page-hero-content{position:relative;z-index:2;max-width:800px;margin:0 auto;padding:0 2rem;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:3rem;color:#fff;}
.event-page-hero-content h1{font-family:'Playfair Display',serif;font-size:2.4rem;margin-bottom:.5rem;}
.event-page-meta{font-size:.92rem;color:rgba(255,255,255,.7);}
.event-page-body{padding:3rem 2rem;}
.event-page-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:3rem;max-width:1100px;margin:0 auto;}
.event-page-content{font-size:.95rem;line-height:1.8;color:var(--grey-700);}
.event-page-content p{margin-bottom:1rem;}
.event-page-sidebar{display:flex;flex-direction:column;gap:1.5rem;}
.date-picker-card,.tickets-card,.event-info-card{background:#fff;border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--grey-100);}
.date-picker-card h3{font-size:.95rem;font-weight:700;margin-bottom:1rem;color:var(--grey-900);}
.date-opts-vertical{display:flex;flex-direction:column;gap:.5rem;}
.date-opts-vertical .date-opt{display:flex;align-items:center;gap:1rem;text-align:left;padding:.8rem 1rem;}
.date-opts-vertical .date-opt-day{min-width:120px;}
.event-info-card h4{font-size:.88rem;font-weight:700;margin-bottom:1rem;color:var(--grey-900);}
.event-info-row{display:flex;align-items:center;gap:.8rem;margin-bottom:.6rem;font-size:.85rem;color:var(--grey-700);}
.event-info-label{min-width:60px;font-weight:700;color:var(--grey-500);text-transform:uppercase;font-size:.7rem;letter-spacing:.08em;}
.event-back{margin-top:3rem;text-align:center;}
.event-organizer{margin-top:1.5rem;font-size:.88rem;color:var(--grey-500);}

/* === VENUE PAGES (Theatre / Film / Gallery) === */
.venue-hero{position:relative;min-height:420px;background-size:cover;background-position:center;color:#fff;display:flex;align-items:center;padding:5rem 2rem 4rem;overflow:hidden;}
.venue-hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(30,10,60,.85) 0%,rgba(74,45,143,.6) 100%);}
.venue-hero-content{position:relative;z-index:1;text-align:center;}
.venue-hero h1{font-family:'Playfair Display',serif;font-size:3.4rem;font-weight:700;margin-bottom:.8rem;line-height:1.1;text-shadow:0 4px 16px rgba(0,0,0,.3);}
.venue-hero-intro{font-size:1.1rem;color:rgba(255,255,255,.85);max-width:640px;margin:0 auto 1rem;line-height:1.6;}

.venue-highlights{background:var(--off-white);padding:2.2rem 2rem;}
.venue-highlights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:980px;margin:0 auto;}
.venue-highlight{background:#fff;border:1px solid rgba(74,45,143,.08);border-radius:var(--radius);padding:1.6rem 1.4rem;text-align:center;box-shadow:var(--shadow-sm);transition:all var(--t);}
.venue-highlight:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.venue-highlight-num{font-family:'Playfair Display',serif;font-size:2rem;font-weight:700;color:var(--purple);line-height:1.1;margin-bottom:.3rem;}
.venue-highlight-label{font-size:.78rem;font-weight:700;color:var(--grey-900);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.3rem;}
.venue-highlight-sub{font-size:.82rem;color:var(--grey-500);}

.venue-cta{background:linear-gradient(135deg,var(--purple-dark),var(--purple));color:#fff;text-align:center;padding:3.5rem 2rem;}
.venue-cta h2{font-family:'Playfair Display',serif;font-size:2rem;margin-bottom:.6rem;}
.venue-cta p{color:rgba(255,255,255,.7);max-width:480px;margin:0 auto 1.6rem;}
.venue-cta-btns{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;}
.btn-outline-purple{background:transparent;color:#fff;padding:.7rem 1.8rem;border-radius:10px;text-decoration:none;font-weight:600;font-size:.88rem;border:1.5px solid rgba(255,255,255,.4);transition:all var(--t);}
.btn-outline-purple:hover{border-color:#fff;background:rgba(255,255,255,.08);}

/* === FILM PAGE: schedule cards === */
.film-card{display:grid;grid-template-columns:120px 1fr;gap:1.4rem;align-items:center;background:#fff;border:1px solid var(--grey-100);border-left:4px solid var(--purple);border-radius:var(--radius);padding:1.2rem 1.4rem;margin:.9rem 0;box-shadow:var(--shadow-sm);transition:all var(--t);}
.film-card:hover{transform:translateX(4px);box-shadow:var(--shadow-md);border-left-color:var(--gold);}
.film-date-col{display:flex;align-items:center;justify-content:center;border-right:1px solid var(--grey-100);padding-right:1.2rem;min-height:64px;}
.film-date{font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:700;color:var(--purple);text-align:center;line-height:1.2;}
.film-info{min-width:0;}
.film-title{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:700;color:var(--grey-900);margin:0 0 .35rem;line-height:1.25;}
.film-meta{font-size:.88rem;color:var(--grey-500);line-height:1.55;margin:0;}

/* === PAGE HERO (internal pages) === */
.page-hero{position:relative;background:linear-gradient(135deg,var(--purple-dark) 0%,var(--purple) 55%,var(--purple-mid) 100%);color:#fff;padding:4rem 2rem 3rem;text-align:center;overflow:hidden;}
.page-hero--image{background-size:cover;background-position:center;padding:5rem 2rem 4rem;min-height:380px;display:flex;align-items:center;}
.page-hero-pattern{position:absolute;inset:0;opacity:.05;background-image:radial-gradient(circle at 15% 35%,var(--gold) 1.5px,transparent 1.5px),radial-gradient(circle at 85% 65%,var(--gold) 1px,transparent 1px);background-size:80px 80px,60px 60px;pointer-events:none;}
.page-hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(30,10,60,.85) 0%,rgba(74,45,143,.6) 100%);}
.page-hero-content{position:relative;z-index:1;}
.page-hero .container,.page-hero-content{position:relative;z-index:1;}
.page-hero .section-tag{background:rgba(212,168,67,.15);border:1px solid rgba(212,168,67,.3);color:var(--gold-light);}
.page-hero h1{font-family:'Playfair Display',serif;font-size:2.8rem;font-weight:700;margin:.7rem 0 .8rem;line-height:1.15;}
.page-hero-excerpt{color:rgba(255,255,255,.7);max-width:640px;margin:0 auto 1rem;font-size:1rem;line-height:1.6;}
.page-breadcrumb{font-size:.78rem;color:rgba(255,255,255,.45);margin-top:1rem;letter-spacing:.04em;}
.page-breadcrumb a{color:rgba(255,255,255,.7);text-decoration:none;}
.page-breadcrumb a:hover{color:var(--gold-light);}
.page-breadcrumb .sep{margin:0 .5rem;color:rgba(255,255,255,.3);}

/* === PAGE BODY === */
.page-section{background:#fff;padding:3.5rem 2rem;}
.page-container{max-width:820px;margin:0 auto;}
.page-content{font-size:1rem;line-height:1.8;color:var(--grey-700);}
.page-content > *:first-child{margin-top:0;}
.page-content p{margin-bottom:1.2rem;}
.page-content h1,.page-content h2{font-family:'Playfair Display',serif;font-size:1.8rem;font-weight:700;margin:2.2rem 0 1rem;color:var(--purple-dark);line-height:1.25;}
.page-content h3{font-family:'Playfair Display',serif;font-size:1.35rem;font-weight:700;margin:1.8rem 0 .8rem;color:var(--purple-dark);}
.page-content h4{font-size:1.05rem;font-weight:700;margin:1.4rem 0 .6rem;color:var(--grey-900);}
.page-content a{color:var(--purple);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--t);}
.page-content a:hover{color:var(--gold);}
.page-content img{border-radius:var(--radius);margin:1.5rem 0;display:block;max-width:100%;height:auto;box-shadow:var(--shadow-sm);}
.page-content figure{margin:1.5rem 0;}
.page-content figure img{margin:0;}
.page-content figcaption{font-size:.82rem;color:var(--grey-500);text-align:center;margin-top:.5rem;font-style:italic;}
.page-content figure.stage-feature-img{margin:1.5rem -1rem 2rem;}
.page-content figure.stage-feature-img img{width:100%;height:auto;border-radius:var(--radius);box-shadow:var(--shadow-lg);}
.page-content figure.stage-feature-img figcaption{margin-top:.8rem;font-size:.85rem;}
.page-content ul,.page-content ol{padding-left:1.6rem;margin-bottom:1.2rem;}
.page-content ul li,.page-content ol li{margin-bottom:.4rem;}
.page-content blockquote{border-left:4px solid var(--gold);padding:.6rem 0 .6rem 1.4rem;margin:1.6rem 0;font-style:italic;color:var(--grey-700);background:rgba(212,168,67,.05);border-radius:0 var(--radius) var(--radius) 0;}
.page-content hr{border:none;border-top:1px solid var(--grey-300);margin:2rem 0;}
.page-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.9rem;}
.page-content table th,.page-content table td{padding:.7rem 1rem;text-align:left;border-bottom:1px solid var(--grey-300);}
.page-content table th{background:var(--off-white);font-weight:700;color:var(--grey-900);}
.page-content iframe{max-width:100%;border-radius:var(--radius);margin:1.5rem 0;}
.page-content input[type="text"],.page-content input[type="email"],.page-content input[type="tel"],.page-content input[type="url"],.page-content input[type="number"],.page-content textarea,.page-content select{width:100%;max-width:420px;padding:.75rem 1rem;font-size:.95rem;font-family:inherit;color:var(--grey-900);background:#fff;border:1px solid var(--grey-300);border-radius:var(--radius-sm);transition:border-color var(--t),box-shadow var(--t);box-sizing:border-box;}
.page-content input[type="text"]:focus,.page-content input[type="email"]:focus,.page-content input[type="tel"]:focus,.page-content input[type="url"]:focus,.page-content input[type="number"]:focus,.page-content textarea:focus,.page-content select:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(74,45,143,.12);}
.page-content textarea{min-height:120px;resize:vertical;}
.page-content label{display:inline-block;font-size:.88rem;font-weight:600;color:var(--grey-900);margin-bottom:.4rem;}
.page-content input[type="submit"],.page-content button[type="submit"],.page-content button.button{display:inline-flex;align-items:center;gap:.4rem;background:var(--gold);color:var(--purple-dark);padding:.7rem 1.8rem;border-radius:50px;text-decoration:none;font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-family:inherit;border:none;cursor:pointer;transition:all var(--t);box-shadow:0 4px 12px rgba(212,168,67,.3);margin-top:.5rem;}
.page-content input[type="submit"]:hover,.page-content button[type="submit"]:hover,.page-content button.button:hover{background:var(--gold-light);transform:translateY(-1px);box-shadow:0 6px 16px rgba(212,168,67,.45);}
.page-content #mc_embed_signup{background:var(--off-white);border:1px solid var(--grey-300);border-radius:var(--radius);padding:2rem;margin:1.5rem 0;max-width:560px;}
.page-content #mc_embed_signup form{padding:0;}
.page-content #mc_embed_signup .mc-field-group{margin-bottom:1rem;padding-bottom:0;}
.page-content #mc_embed_signup .indicates-required{font-size:.78rem;color:var(--grey-500);margin-bottom:1rem;}
.page-content #mc_embed_signup .asterisk{color:#dc2626;}

/* === CONTACT PAGE === */
.contact-page-section{background:var(--off-white);padding:3.5rem 2rem;}
.contact-page-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:2.5rem;max-width:1100px;margin:0 auto;align-items:start;}
.contact-info-card,.contact-form-card{background:#fff;border-radius:var(--radius);padding:2.2rem 2rem;box-shadow:var(--shadow-md);border:1px solid rgba(74,45,143,.06);}
.contact-info-card h2,.contact-form-card h2{font-family:'Playfair Display',serif;font-size:1.7rem;margin-bottom:1.4rem;color:var(--purple-dark);}
.contact-form-sub{color:var(--grey-500);font-size:.9rem;margin-bottom:1.4rem;}
.contact-info-card .c-item{display:flex;gap:1rem;margin-bottom:1.4rem;align-items:flex-start;}
.contact-info-card .c-item:last-child{margin-bottom:0;}
.c-icon-circle{flex-shrink:0;width:42px;height:42px;border-radius:50%;background:rgba(74,45,143,.08);color:var(--purple);display:flex;align-items:center;justify-content:center;}
.contact-info-card .c-text h4{font-size:.78rem;font-weight:700;color:var(--grey-500);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.25rem;}
.contact-info-card .c-text p{font-size:.95rem;color:var(--grey-900);line-height:1.55;margin:0;}
.contact-info-card .c-text a{color:var(--purple);text-decoration:none;font-weight:600;}
.contact-info-card .c-text a:hover{color:var(--gold);text-decoration:underline;}
.c-muted{color:var(--grey-500);font-size:.82rem;}
.c-charity{margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--grey-100);font-size:.78rem;color:var(--grey-500);text-align:center;}

/* === CONTACT FORM 7 (global styling) === */
.wpcf7{margin:0;}
.wpcf7-form p{margin-bottom:1rem;}
.wpcf7 label{display:block;font-size:.82rem;font-weight:600;color:var(--grey-700);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem;}
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],.wpcf7 input[type="url"],.wpcf7 input[type="number"],.wpcf7 input[type="date"],.wpcf7 select,.wpcf7 textarea{width:100%;padding:.8rem 1rem;background:var(--off-white);border:1.5px solid transparent;border-radius:8px;font-family:inherit;font-size:.95rem;color:var(--grey-900);outline:none;transition:all var(--t);}
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{background:#fff;border-color:var(--purple);box-shadow:0 0 0 3px rgba(74,45,143,.12);}
.wpcf7 textarea{min-height:130px;resize:vertical;line-height:1.5;}
.wpcf7 input[type="submit"],.wpcf7 button[type="submit"]{display:inline-block;background:var(--purple);color:#fff;border:none;padding:.85rem 2.4rem;border-radius:8px;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all var(--t);box-shadow:0 4px 14px rgba(74,45,143,.25);}
.wpcf7 input[type="submit"]:hover,.wpcf7 button[type="submit"]:hover{background:var(--gold);color:var(--purple-dark);transform:translateY(-1px);box-shadow:0 8px 20px rgba(212,168,67,.4);}
.wpcf7 .wpcf7-spinner{margin-left:.6rem;}
.wpcf7-not-valid-tip{color:#dc2626;font-size:.78rem;margin-top:.3rem;}
.wpcf7-response-output{border-radius:8px!important;padding:.9rem 1.1rem!important;font-size:.88rem;margin-top:1.2rem!important;}
.wpcf7 form.sent .wpcf7-response-output{background:rgba(5,150,105,.08)!important;border:1px solid #059669!important;color:#065f46!important;}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{background:rgba(220,38,38,.08)!important;border:1px solid #dc2626!important;color:#991b1b!important;}
.wpcf7 .grecaptcha-badge{margin:1rem 0;}

/* checkbox / radio groups */
.wpcf7 .wpcf7-checkbox,.wpcf7 .wpcf7-radio{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:.5rem;}
.wpcf7 .wpcf7-list-item{display:inline-flex;margin:0;}
.wpcf7 .wpcf7-list-item label{display:inline-flex;align-items:center;gap:.6rem;text-transform:none;letter-spacing:0;font-size:.92rem;font-weight:500;color:var(--grey-800);cursor:pointer;margin:0;}
.wpcf7 .wpcf7-list-item-label{line-height:1.3;}
.wpcf7 input[type="checkbox"],.wpcf7 input[type="radio"]{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1.5px solid var(--grey-300);background:#fff;cursor:pointer;flex-shrink:0;transition:all var(--t);position:relative;margin:0;padding:0;vertical-align:middle;}
.wpcf7 input[type="checkbox"]{border-radius:4px;}
.wpcf7 input[type="radio"]{border-radius:50%;}
.wpcf7 input[type="checkbox"]:hover,.wpcf7 input[type="radio"]:hover{border-color:var(--purple);}
.wpcf7 input[type="checkbox"]:checked,.wpcf7 input[type="radio"]:checked{background:var(--purple);border-color:var(--purple);}
.wpcf7 input[type="checkbox"]:checked::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.wpcf7 input[type="radio"]:checked::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);}
.wpcf7 input[type="checkbox"]:focus-visible,.wpcf7 input[type="radio"]:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(74,45,143,.18);}

/* reCAPTCHA: ensure clear stacking, submit always below */
.wpcf7 .g-recaptcha,.wpcf7 [data-sitekey]{display:block;margin:1.5rem 0;line-height:0;}
.wpcf7-form p:has(.g-recaptcha),.wpcf7-form p:has([data-sitekey]){margin:1.5rem 0;}
.wpcf7-form p:has(input[type="submit"]){clear:both;margin-top:1.2rem;}

/* === WooCommerce overrides === */
.woocommerce .button, .woocommerce button.button{
  background:var(--purple)!important;color:#fff!important;border-radius:8px!important;
  font-weight:600!important;transition:all var(--t)!important;
}
.woocommerce .button:hover{background:var(--purple-dark)!important;}
.woocommerce-message{border-top-color:var(--purple)!important;}

/* === RESPONSIVE === */
@media(max-width:1024px){
  .events-grid{grid-template-columns:repeat(2,1fr);}
  .spaces-grid{grid-template-columns:repeat(2,1fr);}
  .footer-inner{grid-template-columns:repeat(2,1fr);}
  .about-grid{grid-template-columns:1fr;gap:2rem;}
  .contact-grid{grid-template-columns:1fr;}
  .event-page-grid{grid-template-columns:1fr;}
}
@media(max-width:768px){
  .top-bar{padding:.35rem 1rem;font-size:.72rem;}
  .top-bar-inner{flex-direction:column;gap:.25rem;text-align:center;}
  .top-bar-info{text-align:center;}
  .top-bar-social{justify-content:center;}
  .site-header{padding:.8rem 1rem;}
  .header-inner{flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.5rem;}
  .header-logo{margin-left:0;}
  .header-logo-img{height:64px!important;}
  .header-right{text-align:center;align-items:center;font-size:.78rem;gap:.15rem;}
  .header-contact-row{justify-content:center;gap:.35rem;flex-wrap:wrap;}
  .header-contact-row .header-link-gold{font-size:.82rem;}
  .header-hours{display:none;}
  .nav-bar{box-shadow:0 1px 4px rgba(0,0,0,.06);}
  .nav-inner{justify-content:space-between;padding:0 .6rem;min-height:54px;gap:.5rem;}
  .nav-mobile{display:flex;align-items:center;justify-content:center;position:static;order:0;padding:.4rem .6rem;font-size:1.6rem;color:var(--purple-dark);}
  .nav-aside{position:static;transform:none;margin:0;padding:0;order:1;gap:.6rem;}
  .nav-cart{width:36px;height:36px;}
  .nav-cart svg{width:16px;height:16px;}
  .nav-donate{padding:.5rem 1rem;font-size:.72rem;letter-spacing:.05em;}
  .nav-donate-heart{font-size:.85rem;}
  .nav-links{display:flex;flex-direction:column;width:100%;text-align:left;background:#fff;position:absolute;top:100%;left:0;box-shadow:0 12px 28px rgba(0,0,0,.12);z-index:999;border-top:1px solid var(--grey-100);max-height:0;overflow:hidden;visibility:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1),visibility 0s linear .35s;}
  .nav-links.open{max-height:calc(100vh - 110px);overflow-y:auto;visibility:visible;transition:max-height .35s cubic-bezier(.4,0,.2,1),visibility 0s;}
  .nav-links li{border-bottom:1px solid var(--grey-100);}
  .nav-links li:last-child{border-bottom:none;}
  .nav-links li+li::before{display:none;}
  .nav-links a,.nav-links li a{padding:.95rem 1.4rem;font-size:.82rem;font-weight:600;letter-spacing:.06em;border-top:none;border-left:3px solid transparent;color:var(--grey-700);}
  .nav-links a:hover,.nav-links .current-menu-item>a,.nav-links a.active{background:var(--off-white);color:var(--purple);border-top-color:transparent;border-left-color:var(--gold);}
  .nav-links li.has-submenu > a::after{display:inline-block;content:" \25BE";opacity:.5;float:right;font-size:.85em;margin-top:.15em;transition:transform .25s ease;}
  .nav-links li.has-submenu.is-open > a::after{transform:rotate(180deg);opacity:1;color:var(--purple);}
  .nav-links li.has-submenu.is-open > a{color:var(--purple);background:var(--off-white);border-left-color:var(--gold);}
  .nav-links .submenu{position:static;display:flex;flex-direction:column;box-shadow:none;border-top:none;background:var(--off-white);min-width:0;transform:none;border-radius:0;max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height .3s ease,opacity .25s ease,visibility 0s linear .3s;}
  .nav-links li.has-submenu.is-open > .submenu{max-height:600px;opacity:1;visibility:visible;transition:max-height .3s ease,opacity .25s ease,visibility 0s;}
  .nav-links .submenu li{border-bottom:1px solid rgba(0,0,0,.04);}
  .nav-links .submenu li:last-child{border-bottom:none;}
  .nav-links .submenu a{padding:.7rem 1.4rem .7rem 2.6rem;font-size:.78rem;text-transform:none;letter-spacing:.02em;font-weight:500;color:var(--grey-700);position:relative;}
  .nav-links .submenu a::before{content:"";position:absolute;left:1.6rem;top:50%;width:6px;height:1px;background:var(--gold);transform:translateY(-50%);}
  .nav-mobile.open{color:var(--purple);font-size:0;}
  .nav-mobile.open::before{content:"\00D7";font-size:1.9rem;line-height:1;}
  .hero-split-inner{grid-template-columns:1fr;gap:1.2rem;}
  .hero-card{margin-right:0;border-radius:18px;}
  .hero-slider{min-height:320px;}
  .events-grid{grid-template-columns:1fr;}
  .event-row{grid-template-columns:80px 1fr;gap:1rem;padding:1rem;}
  .row-image{display:none;}
  .row-daynum{font-size:2rem;}
  .row-book{margin-left:0;}
  .spaces-grid{grid-template-columns:1fr;}
  .footer-inner{grid-template-columns:1fr;gap:2rem;}
  .page-hero{padding:3rem 1.5rem 2.5rem;}
  .page-hero h1{font-size:2rem;}
  .venue-hero{min-height:340px;padding:3.5rem 1.5rem 3rem;}
  .venue-hero h1{font-size:2.4rem;}
  .venue-highlights-grid{grid-template-columns:1fr;gap:.8rem;}
  .venue-highlight{padding:1.2rem 1rem;}
  .venue-cta{padding:2.5rem 1.5rem;}
  #contact.section{padding:3rem 1rem;}
  #contact .container{padding:0;}
  .contact-page-grid{grid-template-columns:1fr;gap:1.5rem;justify-items:center;width:100%;}
  .contact-info-card,.contact-form-card{padding:1.6rem 1.2rem;width:100%;max-width:520px;margin-left:auto;margin-right:auto;box-sizing:border-box;}
  .film-card{grid-template-columns:1fr;gap:.6rem;padding:1rem;}
  .film-date-col{border-right:none;border-bottom:1px solid var(--grey-100);padding-right:0;padding-bottom:.6rem;min-height:0;}
  .film-title{font-size:1.2rem;}
  .page-section{padding:2.5rem 1.2rem;}
  .page-content{font-size:.95rem;}
  .page-content h1,.page-content h2{font-size:1.5rem;}
  .date-opts{flex-direction:column;}
}
