/*
Theme Name: The Bell in Scona
Theme URI: https://thebellinscona.ca
Author: Brandsmith
Author URI: https://brandsmith.ca
Description: Custom WordPress theme for The Bell in Scona — brewpub, brewery, and The Bell Room venue in Old Strathcona, Edmonton. Built by Brandsmith. Content is editable via the WordPress admin (Pages + Advanced Custom Fields) and the Menus screen.
Version: 1.5.3
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary — © Brandsmith / The Bell in Scona
Text Domain: bell-in-scona
*/

/* ============================================================
   FONTS
   ============================================================ */
@font-face{font-family:'Museo Sans';src:url('assets/fonts/MuseoSans-500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Museo Sans';src:url('assets/fonts/MuseoSans-500-Italic.otf') format('opentype');font-weight:500;font-style:italic;font-display:swap;}
@font-face{font-family:'Museo Sans';src:url('assets/fonts/MuseoSans-700.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Museo Sans';src:url('assets/fonts/MuseoSans-900.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:'Museo Slab';src:url('assets/fonts/MuseoSlab-500.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap;}

/* ============================================================
   PALETTE
   ============================================================ */
:root{
  --bell-navy:#1B3055;
  --bell-gold:#B08243;
  --bell-gold-dk:#9a6f38;
  --bell-gold-alt:#C89A2E;
  --bell-cream:#FAF9F2;
  --bell-ink:#2C2C2C;
}

/* ============================================================
   BASE
   ============================================================ */
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{ font-family:'Museo Sans',sans-serif; color:var(--bell-ink); background:var(--bell-cream); -webkit-font-smoothing:antialiased; }
img{ display:block; max-width:100%; }
a{ color:inherit; }
@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } }

/* ============================================================
   BUTTONS — hover colour swaps (were runtime style-hover in the
   Claude build; recreated here as real CSS :hover rules)
   ============================================================ */
.bis-btn{ display:inline-block; font-family:'Museo Sans',sans-serif; font-size:14px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; text-decoration:none; border-radius:0; cursor:pointer; }
.bis-btn-gold{ color:#fff; background:var(--bell-gold); padding:15px 32px; transition:background .2s ease; }
.bis-btn-gold:hover{ background:var(--bell-gold-dk); }
.bis-btn-outline-light{ color:#fff; border:1.5px solid rgba(250,249,242,0.7); padding:13.5px 32px; transition:background .2s ease,color .2s ease; }
.bis-btn-outline-light:hover{ background:#fff; color:var(--bell-navy); }
.bis-btn-outline-navy{ color:var(--bell-navy); border:1.5px solid var(--bell-navy); padding:12.5px 28px; transition:background .2s ease,color .2s ease; }
.bis-btn-outline-navy:hover{ background:var(--bell-navy); color:#fff; }

/* "On tap only" roundel on beer cans that aren't canned yet */
.bis-ontap-badge{
	position:absolute; top:2%; right:-12%;
	width:clamp(48px,4.9vw,70px); height:clamp(48px,4.9vw,70px);
	border-radius:50%; background:var(--badge-bg,var(--bell-gold)); border:1.5px solid var(--badge-ring,#fff);
	box-shadow:0 4px 10px rgba(43,44,44,0.3);
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
	padding:0 8%; box-sizing:border-box; transform:rotate(-8deg);
	font-family:'Museo Sans',sans-serif; font-weight:900; text-transform:uppercase;
	font-size:clamp(9px,0.94vw,12px); line-height:1; letter-spacing:0.01em; color:#fff;
}
.bis-ontap-badge span{ white-space:nowrap; }
/* Our Beer page runs the brighter brewery gold on cream */
.bis-ontap-badge--brewery{ --badge-bg:#C98812; --badge-ring:var(--bell-cream); }

/* ============================================================
   NAV
   ============================================================ */
.bis-header{ position:sticky; top:0; z-index:100; background:var(--bell-cream); border-bottom:1px solid rgba(27,48,85,0.12); }
.bis-nav{ max-width:1440px; margin:0 auto; min-height:78px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(20px,2.5vw,32px); gap:20px; }
.bis-logo{ text-decoration:none; display:flex; align-items:center; flex:none; }
.bis-logo img{ height:34px; width:auto; display:block; }
/* Brewery / Venue lockups are stacked marks, so they sit taller than the wordmark */
.bis-logo img.bis-logo-tall{ height:58px; }
@media (max-width:900px){ .bis-logo img.bis-logo-tall{ height:46px; } }

.bis-nav-links{ display:flex; align-items:center; gap:22px; }
.bis-nav-item{ position:relative; display:flex; align-items:center; align-self:stretch; }
.bis-nav-link{ font-family:'Museo Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:#1a1a1a; text-decoration:none; padding:6px 0 4px; border-bottom:2px solid transparent; transition:border-color .2s ease, opacity .2s ease; white-space:nowrap; display:inline-flex; align-items:center; }
.bis-nav-link:hover{ border-bottom-color:rgba(200,154,46,0.55); }
.bis-nav-item.current-menu-item > .bis-nav-link,
.bis-nav-item.current-menu-parent > .bis-nav-link{ border-bottom:2px solid var(--bell-gold-alt); }
.bis-caret{ margin-left:5px; font-size:9px; vertical-align:middle; }

.bis-dropdown{ position:absolute; top:100%; left:50%; transform:translateX(-50%); min-width:206px; background:var(--bell-cream); border:1px solid rgba(27,48,85,0.14); box-shadow:0 14px 30px rgba(12,16,26,0.16); padding:8px 0; display:flex; flex-direction:column; z-index:120; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .2s ease; }
.bis-nav-item:hover > .bis-dropdown{ opacity:1; visibility:visible; pointer-events:auto; animation:bellDropIn .24s cubic-bezier(.22,.61,.36,1) both; }
.bis-dropdown a{ font-family:'Museo Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:#1a1a1a; text-decoration:none; padding:11px 24px; white-space:nowrap; transition:background .15s ease, color .15s ease; }
.bis-dropdown a:hover{ color:var(--bell-gold); }
@keyframes bellDropIn{ from{ opacity:0; transform:translateX(-50%) translateY(-6px); } to{ opacity:1; transform:translateX(-50%) translateY(0); } }

.bis-nav-cta{ display:flex; align-items:center; gap:12px; flex:none; }
.bis-cta-book{ font-family:'Museo Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:#fff; background:var(--bell-gold); padding:12px 24px; text-decoration:none; transition:background .2s ease; }
.bis-cta-book:hover{ background:var(--bell-gold-dk); }
.bis-cta-event{ font-family:'Museo Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--bell-navy); background:transparent; border:1.5px solid var(--bell-navy); padding:10.5px 24px; text-decoration:none; transition:background .2s ease,color .2s ease; }
.bis-cta-event:hover{ background:var(--bell-navy); color:#fff; }

/* mobile nav */
.bis-hamburger{ background:none; border:none; padding:8px; cursor:pointer; display:none; flex-direction:column; gap:5px; flex:none; }
.bis-hamburger span{ display:block; width:24px; height:2px; background:var(--bell-navy); }
.bis-mobile-panel{ position:fixed; inset:0; z-index:200; background:var(--bell-navy); flex-direction:column; padding:22px clamp(24px,6vw,40px); display:none; }
.bis-mobile-panel.open{ display:flex; }
.bis-mobile-top{ display:flex; align-items:center; justify-content:space-between; height:48px; }
.bis-mobile-brand{ display:flex; align-items:center; gap:12px; }
.bis-mobile-brand img{ height:30px; width:auto; }
.bis-mobile-brand span{ font-family:'Museo Sans',sans-serif; font-weight:900; font-size:17px; letter-spacing:0.04em; color:var(--bell-cream); }
.bis-mobile-close{ background:none; border:none; color:var(--bell-cream); font-size:30px; line-height:1; cursor:pointer; padding:4px 8px; }
.bis-mobile-links{ display:flex; flex-direction:column; gap:2px; margin-top:44px; }
.bis-mobile-links a{ font-family:'Museo Sans',sans-serif; font-size:18px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--bell-cream); text-decoration:none; padding:16px 0; border-bottom:1px solid rgba(250,249,242,0.12); }
.bis-mobile-links a.child{ font-size:14px; font-weight:500; color:rgba(250,249,242,0.72); padding:13px 0 13px 20px; border-bottom:1px solid rgba(250,249,242,0.08); }
.bis-mobile-cta{ display:flex; flex-direction:column; gap:14px; margin-top:36px; }
.bis-mobile-cta a{ text-align:center; font-family:'Museo Sans',sans-serif; font-size:14px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; text-decoration:none; padding:15px; }
.bis-mobile-cta .book{ color:#fff; background:var(--bell-gold-alt); }
.bis-mobile-cta .event{ color:var(--bell-cream); border:1.5px solid var(--bell-cream); padding:13.5px; }

/* 980-1279px: seven top-level items plus two CTAs don't fit at laptop widths, so
   tighten the nav rather than dropping to the hamburger. Without this the header
   needs ~1250px and anything narrower gets a horizontal scrollbar. */
@media (min-width:980px) and (max-width:1279px){
	.bis-nav{ gap:12px; padding-left:clamp(14px,1.6vw,20px); padding-right:clamp(14px,1.6vw,20px); }
	.bis-nav-links{ gap:14px; }
	.bis-nav-link{ font-size:12px; letter-spacing:0.06em; }
	.bis-dropdown a{ font-size:12px; padding:10px 18px; }
	.bis-nav-cta{ gap:8px; }
	.bis-cta-book{ font-size:12px; letter-spacing:0.03em; padding:11px 14px; }
	.bis-cta-event{ font-size:12px; letter-spacing:0.03em; padding:9.5px 14px; }
	.bis-logo img{ height:30px; }
	.bis-logo img.bis-logo-tall{ height:48px; }
}

/* 980-1099px specifically: the venue/brewery lockups are wider than the wordmark,
   so squeeze a little further at the very bottom of the desktop-nav range. */
@media (min-width:980px) and (max-width:1099px){
	.bis-nav{ gap:10px; padding-left:12px; padding-right:12px; }
	.bis-nav-links{ gap:10px; }
	.bis-nav-link{ font-size:11.5px; letter-spacing:0.04em; }
	.bis-nav-cta{ gap:6px; }
	.bis-cta-book{ padding:11px 11px; }
	.bis-cta-event{ padding:9.5px 11px; }
	.bis-logo img{ height:28px; }
	.bis-logo img.bis-logo-tall{ height:40px; }
}

@media (max-width:979px){
  .bis-nav-links, .bis-nav-cta{ display:none; }
  .bis-hamburger{ display:flex; }
}

/* ============================================================
   HOMEPAGE — "Three Ways In" card hover zoom
   (was runtime --bell-z; native CSS custom-property inheritance)
   ============================================================ */
.bis-card{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; text-align:center; min-height:clamp(420px,46vw,560px); padding:0 24px 46px; text-decoration:none; overflow:hidden; }
.bis-card .bis-card-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transform:scale(var(--bell-z,1)); transition:transform .7s cubic-bezier(.22,.61,.36,1); }
.bis-card:hover{ --bell-z:1.07; }
.bis-card .bis-card-scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.12) 45%, rgba(0,0,0,0.74) 100%); pointer-events:none; }
.bis-card-title{ position:relative; z-index:2; font-family:'Museo Sans',sans-serif; font-weight:900; text-transform:uppercase; color:#fff; font-size:clamp(26px,3.2vw,40px); letter-spacing:0.01em; line-height:1; margin-bottom:16px; }
.bis-card-sub{ position:relative; z-index:2; font-family:'Museo Sans',sans-serif; font-size:14px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--bell-cream); border-bottom:1px solid var(--bell-gold); padding-bottom:6px; }

/* ============================================================
   BELL ROOM SLIDER (reimplemented as plain JS + CSS;
   was a Claude runtime component)
   ============================================================ */
.bis-slider{ position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:#0e1a30; }
.bis-slider-track{ display:flex; height:100%; transition:transform .7s ease; }
.bis-slider-track img{ flex:none; width:100%; height:100%; object-fit:cover; object-position:center; }
.bis-slider-arrow{ position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.5); border:1px solid rgba(250,249,242,0.4); color:#fff; cursor:pointer; transition:background .2s ease; z-index:2; font-size:22px; line-height:1; }
.bis-slider-arrow:hover{ background:var(--bell-gold); }
.bis-slider-arrow.prev{ left:16px; } .bis-slider-arrow.next{ right:16px; }
.bis-slider-dots{ position:absolute; left:0; right:0; bottom:18px; display:flex; justify-content:center; gap:10px; z-index:2; }
.bis-slider-dots button{ width:16px; height:3px; border:none; padding:0; cursor:pointer; background:rgba(250,249,242,0.45); transition:all .25s ease; }
.bis-slider-dots button.active{ width:26px; background:var(--bell-gold); }

/* ============================================================
   OUR BEER — tasting-notes carousel
   ============================================================ */
.bis-beer-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:46px; height:46px; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid rgba(40,41,41,0.18); color:#282929; font-size:22px; line-height:1; cursor:pointer; transition:background .2s ease,color .2s ease; }
.bis-beer-arrow:hover{ background:#282929; color:#fff; }
.bis-beer-arrow.prev{ left:-6px; } .bis-beer-arrow.next{ right:-6px; }
.bis-beer-dot{ width:11px; height:11px; border-radius:999px; border:none; padding:0; cursor:pointer; background:rgba(40,41,41,0.22); transition:all .25s ease; }
.bis-beer-dot.active{ width:28px; background:#C98812; }

/* ============================================================
   THE BREWPUB — daily specials day selector
   ============================================================ */
.bis-day-tab{ position:relative; font-family:'Museo Sans',sans-serif; font-size:14px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#342714; background:transparent; border:1.5px solid rgba(52,39,20,0.28); border-radius:0; padding:11px 18px; cursor:pointer; transition:background .18s ease, color .18s ease, border-color .18s ease; }
.bis-day-tab.active{ background:#342714; color:#fff; border-color:#342714; }
.bis-day-dot{ position:absolute; top:6px; right:8px; width:6px; height:6px; border-radius:50%; background:#C3862B; }

/* ============================================================
   MENUS — sticky tab bar
   ============================================================ */
.bis-menu-tab{ font-family:'Museo Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:rgba(250,249,242,0.66); background:transparent; border:none; border-bottom:3px solid transparent; padding:18px 4px; cursor:pointer; white-space:nowrap; transition:color .2s ease, border-color .2s ease; }
.bis-menu-tab:hover{ color:rgba(250,249,242,0.9); }
.bis-menu-tab.active{ color:#fff; border-bottom-color:#C3862B; }
.bis-menu-panel{ display:none; }
.bis-menu-panel.active{ display:block; }
.bis-menu-rule{ display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.bis-menu-rule h3{ font-family:'Museo Sans',sans-serif; font-weight:900; font-size:clamp(20px,2.6vw,26px); letter-spacing:0.04em; text-transform:uppercase; color:#2C2C2C; margin:0; white-space:nowrap; }
.bis-menu-rule .line{ flex:1; height:2px; background:rgba(200,154,46,0.4); }

/* ============================================================
   GALLERY — masonry grid + lightbox
   ============================================================ */
.bis-gallery-item{ display:block; width:100%; padding:0; margin:0 0 clamp(10px,1.4vw,16px); border:none; cursor:pointer; overflow:hidden; background:#e7e3d8; break-inside:avoid; }
.bis-gallery-item img{ display:block; width:100%; height:auto; transition:transform .5s ease; }
.bis-gallery-item:hover img{ transform:scale(1.04); }
.bis-lightbox{ position:fixed; inset:0; z-index:300; background:rgba(15,18,24,0.92); display:none; align-items:center; justify-content:center; padding:clamp(20px,5vw,64px); }
.bis-lightbox.open{ display:flex; }
.bis-lightbox > img{ max-width:100%; max-height:100%; object-fit:contain; box-shadow:0 30px 80px rgba(0,0,0,0.5); }
.bis-lb-btn{ position:absolute; background:rgba(0,0,0,0.4); border:1px solid rgba(250,249,242,0.4); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; line-height:1; }
.bis-lb-close{ top:20px; right:24px; width:48px; height:48px; font-size:36px; background:none; border:none; }
.bis-lb-prev{ left:clamp(12px,3vw,32px); top:50%; transform:translateY(-50%); width:52px; height:52px; font-size:24px; }
.bis-lb-next{ right:clamp(12px,3vw,32px); top:50%; transform:translateY(-50%); width:52px; height:52px; font-size:24px; }

/* ============================================================
   FOOTER links hover
   ============================================================ */
.bis-footer a.footer-link:hover{ color:#fff; }

/* ============================================================
   FLUENT FORMS — match the Bell design
   (applies once you paste a form shortcode into a page slot)
   ============================================================ */
.fluentform .ff-el-input--label label,
.frm-fluent-form .ff-el-input--label label{ font-family:'Museo Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#5b5750; margin-bottom:7px; }
.fluentform .ff-el-form-control,
.frm-fluent-form .ff-el-form-control{ font-family:'Museo Sans',sans-serif; font-size:15px; border-radius:0; border:1px solid rgba(27,48,85,0.25); background:var(--bell-cream); padding:12px 14px; }
.fluentform .ff-el-form-control:focus,
.frm-fluent-form .ff-el-form-control:focus{ border-color:var(--bell-gold); outline:none; box-shadow:none; }
.fluentform .ff-btn-submit,
.frm-fluent-form .ff-btn-submit{ font-family:'Museo Sans',sans-serif; font-size:14px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:#fff; background:var(--bell-gold); border:none; border-radius:0; padding:15px 34px; cursor:pointer; transition:background .2s ease; }
.fluentform .ff-btn-submit:hover,
.frm-fluent-form .ff-btn-submit:hover{ background:var(--bell-gold-dk); }

/* ---- Tripleseat lead form — Bell brand styling (script-injected into #tripleseat_embed) ----
   NOTE: styling is scoped to the real form fields by input type + the submit's .button class.
   The jQuery UI datepicker (and its month/year <select>s + Today/Done <button>s) render INSIDE
   the form — the reset block at the end keeps that widget looking normal. */
#tripleseat_embed{ width:100%; max-width:820px; margin:0 auto; text-align:left; font-family:'Museo Sans',sans-serif; }
#tripleseat_embed h1, #tripleseat_embed h2, #tripleseat_embed h3{ font-family:'Museo Sans',sans-serif; color:var(--bell-navy) !important; font-weight:900 !important; text-transform:uppercase; letter-spacing:0.01em; }
#tripleseat_embed label{ font-family:'Museo Sans',sans-serif; font-size:12px !important; font-weight:700 !important; letter-spacing:0.06em; text-transform:uppercase; color:#5b5750 !important; }
#tripleseat_embed input[type="text"], #tripleseat_embed input[type="email"], #tripleseat_embed input[type="tel"], #tripleseat_embed input[type="number"], #tripleseat_embed textarea, #tripleseat_embed select{ font-family:'Museo Sans',sans-serif; width:100% !important; max-width:100% !important; font-size:15px !important; color:var(--bell-navy) !important; background:var(--bell-cream) !important; border:1px solid rgba(27,48,85,0.25) !important; border-radius:0 !important; padding:12px 14px !important; margin-bottom:16px !important; box-shadow:none !important; }
#tripleseat_embed input[type="text"]:focus, #tripleseat_embed input[type="email"]:focus, #tripleseat_embed input[type="tel"]:focus, #tripleseat_embed input[type="number"]:focus, #tripleseat_embed textarea:focus, #tripleseat_embed select:focus{ border-color:var(--bell-gold) !important; outline:none !important; }
#tripleseat_embed input[type="checkbox"], #tripleseat_embed input[type="radio"]{ width:auto !important; margin:0 10px 0 0 !important; vertical-align:middle !important; }
#tripleseat_embed a{ color:var(--bell-gold); font-weight:700; text-decoration:none; }
#tripleseat_embed input[type="submit"], #tripleseat_embed .button{ font-family:'Museo Sans',sans-serif; width:auto !important; font-size:14px !important; font-weight:700 !important; letter-spacing:0.05em; text-transform:uppercase; color:#fff !important; background:var(--bell-gold) !important; border:none !important; border-radius:0 !important; padding:15px 34px !important; cursor:pointer; transition:background .2s ease; }
#tripleseat_embed input[type="submit"]:hover, #tripleseat_embed .button:hover{ background:var(--bell-gold-dk) !important; }
/* --- leave the jQuery UI datepicker / time widgets alone (they live inside the form) --- */
#tripleseat_embed .ui-datepicker{ font-family:'Museo Sans',sans-serif; width:auto; }
#tripleseat_embed .ui-datepicker select{ width:auto !important; max-width:none !important; margin:0 3px !important; padding:2px !important; background:#fff !important; border:1px solid #c5c5c5 !important; border-radius:0 !important; font-size:13px !important; color:#333 !important; }
#tripleseat_embed .ui-datepicker button, #tripleseat_embed .ui-datepicker .ui-datepicker-buttonpane button{ width:auto !important; background:#f6f6f6 !important; color:#454545 !important; margin:0 !important; padding:4px 10px !important; font-size:13px !important; font-weight:400 !important; text-transform:none !important; letter-spacing:normal !important; border:1px solid #c5c5c5 !important; border-radius:3px !important; }
#tripleseat_embed .ui-datepicker td, #tripleseat_embed .ui-datepicker th, #tripleseat_embed .ui-datepicker a{ margin:0 !important; }

/* ---- Contact Form 7 — Bell brand styling (used for the Careers form) ---- */
.wpcf7 label{ display:block; font-family:'Museo Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#5b5750; margin-bottom:16px; }
.wpcf7 .bis-cf7-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 select, .wpcf7 textarea{ width:100%; max-width:100%; font-family:'Museo Sans',sans-serif; font-size:15px; color:var(--bell-navy); background:var(--bell-cream); border:1px solid rgba(27,48,85,0.25); border-radius:0; padding:12px 14px; margin-top:7px; }
.wpcf7 input[type=file]{ width:100%; font-family:'Museo Sans',sans-serif; font-size:14px; color:var(--bell-ink); margin-top:7px; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus{ border-color:var(--bell-gold); outline:none; box-shadow:none; }
.wpcf7 input[type=submit]{ width:auto; font-family:'Museo Sans',sans-serif; font-size:14px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:#fff; background:var(--bell-gold); border:none; border-radius:0; padding:15px 34px; cursor:pointer; transition:background .2s ease; margin-top:8px; }
.wpcf7 input[type=submit]:hover{ background:var(--bell-gold-dk); }
.wpcf7 .wpcf7-not-valid-tip{ font-family:'Museo Sans',sans-serif; font-size:12px; font-weight:700; color:#c0392b; }
.wpcf7-response-output{ font-family:'Museo Sans',sans-serif; font-size:14px; margin:16px 0 0 !important; padding:12px 14px !important; }
@media (max-width:600px){ .wpcf7 .bis-cf7-grid{ grid-template-columns:1fr; } }
/* dark variant — Careers form sits on a navy section */
.bis-form-dark .wpcf7 label{ color:rgba(245,240,225,0.72); }
.bis-form-dark .wpcf7 input[type=text], .bis-form-dark .wpcf7 input[type=email], .bis-form-dark .wpcf7 input[type=tel], .bis-form-dark .wpcf7 select, .bis-form-dark .wpcf7 textarea{ color:#fff; background:rgba(255,255,255,0.06); border-color:rgba(245,240,225,0.22); }
.bis-form-dark .wpcf7 input[type=file]{ color:rgba(245,240,225,0.82); }
.bis-form-dark .wpcf7 input[type=submit]{ color:var(--bell-navy); background:var(--bell-gold); }
.bis-form-dark .wpcf7-response-output{ color:#fff; }

/* ============================================================
   INTERIM NEWSLETTER CAPTURE (theme-native, pre-Mailchimp)
   Same visual result as the MC4WP form below, so swapping to Mailchimp
   later changes nothing on screen.
   ============================================================ */
.bis-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.bis-subscribe-fields{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:480px; margin:0 auto; }
.bis-subscribe-fields input[type=email]{
	flex:1 1 240px; min-width:0; font-family:'Museo Sans',sans-serif; font-size:15px;
	color:var(--bell-ink); background:var(--bell-cream);
	border:1px solid rgba(250,249,242,0.25); padding:14px 16px; border-radius:0; outline:none;
}
.bis-subscribe-fields input[type=email]:focus{ border-color:#C3862B; }
.bis-subscribe-fields button{
	flex:0 0 auto; font-family:'Museo Sans',sans-serif; font-size:14px; font-weight:700;
	letter-spacing:0.05em; text-transform:uppercase; color:#fff; background:#C3862B;
	border:none; padding:14px 28px; border-radius:0; cursor:pointer; transition:background .2s ease;
}
.bis-subscribe-fields button:hover{ background:#a87422; }
.bis-subscribe-msg{ max-width:480px; margin:14px auto 0; font-size:14px; line-height:1.6; color:rgba(250,249,242,0.92); }
.bis-subscribe-msg.is-error{ color:#ffb4a2; }
@media (max-width:480px){
	.bis-subscribe-fields input[type=email], .bis-subscribe-fields button{ flex:1 1 100%; }
}

/* ============================================================
   MAILCHIMP FOR WORDPRESS (MC4WP) — newsletter signup
   Styled to the approved design: cream email field + gold Sign Up side by
   side, stacked under 480px. MC4WP wraps each field in a <p>, and its default
   template wraps the input in a <label> — display:contents on the <p> lifts the
   real controls into the flex row, and font-size:0 kills the label text without
   hiding the input it wraps. Works with or without labels in the form markup.
   ============================================================ */
.mc4wp-form .mc4wp-form-fields{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; align-items:flex-start; max-width:480px; margin:0 auto; }
.mc4wp-form .mc4wp-form-fields > p{ margin:0; display:contents; }
.mc4wp-form label{ flex:1 1 240px; min-width:0; display:flex; font-size:0; }
.mc4wp-form label input{ font-size:15px; width:100%; }
.mc4wp-form input[type=email], .mc4wp-form input[type=text]{
	flex:1 1 240px; min-width:0; font-family:'Museo Sans',sans-serif; font-size:15px;
	color:var(--bell-ink); background:var(--bell-cream);
	border:1px solid rgba(250,249,242,0.25); padding:14px 16px; border-radius:0; outline:none;
}
.mc4wp-form input[type=email]:focus, .mc4wp-form input[type=text]:focus{ border-color:#C3862B; }
.mc4wp-form input[type=submit], .mc4wp-form button[type=submit]{
	flex:0 0 auto; font-family:'Museo Sans',sans-serif; font-size:14px; font-weight:700;
	letter-spacing:0.05em; text-transform:uppercase; color:#fff; background:#C3862B;
	border:none; padding:14px 28px; border-radius:0; cursor:pointer; transition:background .2s ease;
}
.mc4wp-form input[type=submit]:hover, .mc4wp-form button[type=submit]:hover{ background:#a87422; }
.mc4wp-alert, .mc4wp-response{ flex:1 1 100%; margin-top:14px; font-size:14px; line-height:1.6; }
/* the newsletter band is dark, so responses need light text */
.bis-form-dark .mc4wp-alert, .bis-form-dark .mc4wp-response{ color:rgba(250,249,242,0.9); }
.bis-form-dark .mc4wp-alert.mc4wp-error, .bis-form-dark .mc4wp-response .mc4wp-error{ color:#ffb4a2; }
@media (max-width:480px){
	.mc4wp-form label,
	.mc4wp-form input[type=email], .mc4wp-form input[type=text],
	.mc4wp-form input[type=submit], .mc4wp-form button[type=submit]{ flex:1 1 100%; }
}

/* light variant for forms placed on a dark/navy section (e.g. Careers) */
.bis-form-dark .fluentform .ff-el-input--label label,
.bis-form-dark .frm-fluent-form .ff-el-input--label label{ color:rgba(245,240,225,0.72); }
.bis-form-dark .fluentform .ff-el-form-control,
.bis-form-dark .frm-fluent-form .ff-el-form-control{ color:#fff; background:rgba(255,255,255,0.06); border-color:rgba(245,240,225,0.22); }
.bis-form-dark .fluentform .ff-btn-submit,
.bis-form-dark .frm-fluent-form .ff-btn-submit{ color:var(--bell-navy); background:var(--bell-gold); }

/* ============================================================
   MOBILE FIXES
   ============================================================ */

/* Menus tab bar. The five tabs are wider than a phone, and the bar scrolls —
   but `justify-content:center` pushes the overflow off the LEFT edge, where a
   scroll container can't reach it, so "Food" was permanently unreachable.
   Start from the left once it overflows, and tighten the spacing. */
@media (max-width:860px){
	.bis-menu-tabbar{
		/* these three override inline styles on the element, hence !important */
		justify-content:flex-start !important;
		gap:18px !important;
		padding:0 16px !important;
		scroll-padding-left:16px;
		-webkit-overflow-scrolling:touch;
		scrollbar-width:none;
	}
	.bis-menu-tabbar::-webkit-scrollbar{ display:none; }
	.bis-menu-tabbar .bis-menu-tab{ scroll-snap-align:start; }
}

/* Our Beer carousel. The arrows sit at top:50% of the whole block; once the
   layout stacks on mobile that centre lands on the tasting copy. Pin them to
   the can instead (the can well is min-height:380px, so 190px is its middle). */
@media (max-width:700px){
	.bis-beer-arrow{ top:190px; }
	.bis-beer-arrow.prev{ left:0; }
	.bis-beer-arrow.next{ right:0; }
}

/* Footer. auto-fit gave two ~150px columns for five link lists on a phone —
   an orphan on the last row and headings like "Events & private functions"
   wrapping badly. One column reads better. */
@media (max-width:600px){
	/* Stack the bell mark above the links. Relying on flex-wrap alone left a dead
	   band from ~431px to 600px where the icon (103px) + gap + the grid's 260px
	   min-width just squeezed onto one line — so the mark sat beside a single
	   narrow column of links. That band is where most phones actually are. */
	/* align-items:flex-start is inline on the row; in column direction that's the
	   CROSS axis, so it shrink-wraps the link grid to its 260px min-width and
	   wastes the rest of the screen. Stretch it back to full width. */
	.bis-footer-row{ flex-direction:column; align-items:stretch !important; }
	/* overrides the inline grid-template-columns on the element */
	.bis-footer-cols{ grid-template-columns:1fr !important; gap:26px !important; }
}

/* ============================================================
   DESIGNER REVIEW — MOBILE ONLY (v1.3.0)
   Everything here is scoped to a media query; desktop is untouched.
   ============================================================ */

/* 1. Hero. The scrim is a left-to-right gradient, which does nothing on a
   narrow screen, so the headline sat unreadable over faces. Darken it top-down
   on mobile and drop the secondary line to let the headline and buttons breathe. */
@media (max-width:768px){
	/* Rebuild the whole background rather than layering a second scrim over the
	   desktop one — stacked, the inline left-to-right gradient (0.66 at the left,
	   where the text sits) and the overlay compounded to ~0.86 and killed the photo.
	   The image comes through as a custom property set on the section. */
	.bis-hero{
		background-image:linear-gradient(rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.24) 48%, rgba(0,0,0,0.52) 100%), var(--bis-hero-img) !important;
	}
	.bis-hero-sub{ display:none; }
	/* Sit the headline low in the frame rather than dead centre: the faces in the
	   photo are in the upper-middle, and with the secondary line gone a centred
	   block looked stranded. Bigger type now that it has the width to itself. */
	.bis-hero{ align-items:flex-end !important; min-height:82vh; }
	.bis-hero > div{ padding-bottom:clamp(115px,18vh,200px) !important; }
	.bis-hero h1{ font-size:clamp(40px,11.5vw,58px); line-height:1.0; margin-bottom:28px; }
	/* the two CTAs stack on a phone — match their widths so the block reads as one unit */
	.bis-hero .bis-btn{ flex:1 1 100%; text-align:center; }
}

/* 2. "Book" beside the hamburger on mobile. Replaces the sticky bottom bar —
   the client wanted it in the nav, and deliberately NOT on the Bell Room pages,
   where a table-booking CTA makes the venue read as a restaurant (header.php
   gates it on bis_logo_variant()). */
.bis-mobile-book{ display:none; }
@media (max-width:979px){
	.bis-mobile-book{
		display:inline-flex; align-items:center; margin-left:auto;
		font-family:'Museo Sans',sans-serif; font-size:12px; font-weight:700;
		letter-spacing:0.08em; text-transform:uppercase; text-decoration:none;
		color:#fff; background:var(--bell-gold); padding:10px 16px; white-space:nowrap;
	}
	.bis-mobile-book:hover{ background:var(--bell-gold-dk); }
	.bis-mobile-book + .bis-hamburger{ margin-left:4px; }
	/* the hamburger normally carries the right-hand slot; the Book button takes it now */
	.bis-mobile-book ~ .bis-hamburger{ margin-left:4px; }
}

/* 3. Decorative bell. `height:118%` + `width:auto` collides with the global
   img{max-width:100%}: on a narrow screen the width gets clamped while the
   height doesn't, which stretches it. Size it by width on mobile instead. */
.bis-etch{ max-width:none; }
@media (max-width:900px){
	.bis-etch-bell{ height:auto !important; width:min(76%,340px) !important; }
}

/* 4/5. Mobile menu panel: logo only, scrollable, accordion sub-menus. */
.bis-mobile-brand img{ height:52px; width:auto; display:block; }
.bis-mobile-panel{ overflow-y:auto; -webkit-overflow-scrolling:touch; }
.bis-acc{ border-bottom:1px solid rgba(250,249,242,0.12); }
.bis-acc > summary{
	list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
	font-family:'Museo Sans',sans-serif; font-size:19px; font-weight:700; letter-spacing:0.04em;
	text-transform:uppercase; color:var(--bell-cream); padding:14px 0;
}
.bis-acc > summary::-webkit-details-marker{ display:none; }
.bis-acc-caret{ width:9px; height:9px; margin-left:14px; flex:none; border-right:2px solid var(--bell-gold-alt); border-bottom:2px solid var(--bell-gold-alt); transform:rotate(45deg) translateY(-2px); transition:transform .2s ease; }
.bis-acc[open] > summary .bis-acc-caret{ transform:rotate(-135deg) translateY(-2px); }
.bis-acc-panel{ padding:0 0 12px 14px; display:flex; flex-direction:column; gap:2px; }

/* 6. Menus tabs — wrap onto two lines on a phone rather than scrolling sideways. */
@media (max-width:860px){
	.bis-menu-tabbar{
		flex-wrap:wrap !important;
		overflow-x:visible !important;
		justify-content:center !important;
		row-gap:2px !important;
		column-gap:22px !important;
		padding:0 16px 4px !important;
	}
	.bis-menu-tabbar .bis-menu-tab{ padding-top:12px; padding-bottom:12px; }
}

/* ============================================================
   MOBILE — parallax bands and decorative etches (v1.4.2)
   ============================================================ */

/* iOS/Android don't honour background-attachment:fixed the way desktop does —
   they size the background to the VIEWPORT instead of the element, so a short
   band with background-size:cover blows the photo up into a blurred smear.
   Switch those bands to a normal scrolling background on touch devices.
   Targets the inline style directly, so it catches all four parallax sections
   (About, Catering, Events, Brewpub) without touching the templates. */
@media (max-width:1024px), (hover:none){
	[style*="background-attachment:fixed"]{
		background-attachment:scroll !important;
		background-position:center !important;
	}
}

/* Decorative etches are positioned with negative offsets so they bleed off the
   section edge — which reads as intentional at desktop width, but on a phone the
   section's overflow:hidden slices them mid-shape and they just look broken.
   Pull them fully inside and shrink them to a watermark. */
@media (max-width:860px){
	img[aria-hidden="true"][src*="hand-fork-etch"],
	img[aria-hidden="true"][src*="hop-etch"],
	img[aria-hidden="true"][src*="rings-etch"],
	img[aria-hidden="true"][src*="drink-etch"]{
		width:min(50%,220px) !important;
		height:auto !important;
		top:auto !important;
		left:auto !important;
		right:5% !important;
		bottom:6% !important;
		transform:none !important;
	}
}

/* ============================================================
   MOBILE RUN-THROUGH FIXES (v1.4.3)
   ============================================================ */

/* The decorative bell is on the Venue page as well as the homepage, and only the
   homepage copy carried the class — so Venue still had the stretched version
   (rendered 0.40 against a natural 0.86). Match on the file instead of a class so
   it can't be missed again if the mark is reused on another page. */
@media (max-width:900px){
	img[aria-hidden="true"][src*="bell-icon-black"]{
		height:auto !important;
		width:min(76%,340px) !important;
		max-width:none;
	}
}

/* Carousel dots are 3px tall — visually right, but nowhere near tappable.
   Keep the dot the same size and hang a 44px touch area off it. Applied on
   touch devices only so the desktop hover target is unchanged. */
@media (hover:none), (max-width:860px){
	.bis-slider-dots{ gap:2px; }
	/* keep the dot's own width/height as the CONTENT box and hang padding off it,
	   with background-clip so the padding stays invisible. Do NOT override height —
	   with content-box that collapses the visible dot to nothing. */
	/* NB the .active rules use the `background` SHORTHAND, which resets
	   background-clip to border-box — and they're more specific than a bare
	   element selector. Without naming .active here the active dot paints across
	   its whole padded area and shows up as a big filled box. */
	.bis-slider-dots button,
	.bis-slider-dots button.active{
		box-sizing:content-box;
		padding:20px 4px;
		background-clip:content-box;
	}
	.bis-beer-dot,
	.bis-beer-dot.active{
		box-sizing:content-box;
		padding:16px 8px;
		background-clip:content-box;
	}
	.bis-slider-dots{ bottom:6px; }
	/* the hamburger should clear the 44px guideline too */
	.bis-hamburger{ padding:12px 8px; }
	/* footer links sit in a single column on mobile — give them a real touch area */
	.bis-footer-cols a{ display:inline-block; padding:7px 0; }
}

/* ------------------------------------------------------------
   Carousel dots: one shape language across both carousels.
   The approved design used two — 16x3 square-ended lines on the Bell Room
   slider, 11x11 round pills on the beer carousel. Sonya asked for consistency,
   so both are now the same rounded bar. Colours stay per-context: cream/gold
   over the venue photo, grey/brewery-gold on the white beer section.
   (This is a deliberate departure from the approved design.)
   ------------------------------------------------------------ */
.bis-slider-dots button,
.bis-beer-dot{ width:16px; height:4px; border-radius:999px; }
.bis-slider-dots button.active,
.bis-beer-dot.active{ width:28px; height:4px; border-radius:999px; }

/* --- Ad deep-link targets -------------------------------------------------
   Google Ads deep-links into these sections (#office, #drop-off, #dining …).
   Without a scroll margin the sticky header covers the heading on arrival. */
section[id],
span[id][aria-hidden]{
    scroll-margin-top:96px;
}
@media (max-width:979px){
    section[id],
    span[id][aria-hidden]{ scroll-margin-top:76px; }
}
