/*
Theme Name: Astra Child - Apple Jump
Description: Modern black/yellow rebuild for Apple Jump (live cafe & bar Ikebukuro)
Author: Apple Jump
Template: astra
Version: 1.1.0
Text Domain: astra-child
*/


/* ==================== Brand tokens ==================== */
:root {
  --aj-black: #0a0a0a;
  --aj-black-2: #141414;
  --aj-black-3: #1d1d1d;
  --aj-yellow: #ffd400;
  --aj-yellow-soft: #ffea66;
  --aj-yellow-deep: #d4af00;
  --aj-red: #e3193b;             /* logo accent */
  --aj-text: #ededed;
  --aj-text-muted: #b8b8b8;
  --aj-border: #2a2a2a;
  --aj-radius: 14px;
  --aj-radius-sm: 8px;
  --aj-shadow: 0 10px 30px rgba(0,0,0,.6);
  --aj-shadow-sm: 0 4px 14px rgba(0,0,0,.45);
  /* Friendly + grown-up: humanist sans (Outfit/Inter for Latin, Zen Kaku Gothic New for Japanese).
     Bebas Neue is reserved only for the splash mark / brand display. */
  --aj-font-jp: "Zen Kaku Gothic New", "Noto Sans JP", system-ui, "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  --aj-font-display: "Outfit", "Zen Kaku Gothic New", system-ui, sans-serif;
  --aj-font-elegant: "Outfit", "Zen Kaku Gothic New", system-ui, sans-serif;
  --aj-font-impact: "Bebas Neue", Impact, sans-serif;     /* logo / splash only */
  --aj-font-en-body: "Inter", "Zen Kaku Gothic New", system-ui, sans-serif;
}

/* ==================== Force black background EVERYWHERE ==================== */
html, body,
#page, .site, .ast-container, .ast-container-fluid,
.site-content, .site-main, #content, #primary,
.entry-content, .ast-article-single, .ast-article-post,
.hentry, article, .post, .page,
.ast-row, .ast-grid-common-col,
.tribe-events-pro-page, .tribe-events-view {
  background: var(--aj-black) !important;
  color: var(--aj-text) !important;
}

body {
  font-family: var(--aj-font-jp);
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: "palt", "kern";
}

/* Body text — slightly heavier across the site */
.entry-content, .entry-content p, .entry-content li, .entry-content dd, .entry-content dt,
.tribe-events, .tribe-events p, .tribe-events li,
.tribe-common, .tribe-common p, .tribe-common li,
p, li, dd, dt, span, small, label, time, td, th {
  font-weight: 500;
}

/* Header / primary nav menu — bolder */
.main-header-menu .menu-item > a,
.ast-builder-menu .menu-item > a,
.ast-primary-header-bar .menu-link,
.main-navigation a,
nav.site-navigation a,
.ast-builder-menu-1 .menu-item .menu-link {
  font-weight: 700 !important;
}

/* Friendly headings — humanist sans, generous weight */
h1, .entry-title, .ast-archive-title, .ast-page-title,
.aj-hero h1 {
  font-family: var(--aj-font-display) !important;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .005em;
}
h2, .entry-content h2, .aj-section h2 {
  font-family: var(--aj-font-display) !important;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .005em;
}
h3 {
  font-family: var(--aj-font-display) !important;
  font-weight: 700;
  letter-spacing: .01em;
}

/* Decorative subtitle / lead */
.aj-hero .badge,
.aj-hero p.lead,
.aj-menu-hero__sub,
.aj-menu-section__note {
  font-family: var(--aj-font-display) !important;
  font-style: normal;
  font-weight: 500;
}

/* Brand-impact (Menu hero only) — splash uses italic serif, set below */
.aj-display, .aj-menu-hero__title,
.aj-menu-section__title { font-family: "Bebas Neue", Impact, "Noto Sans JP", sans-serif !important; font-style: normal !important; }

/* Ensure default text color cascades */
.entry-content, .entry-content p, .entry-content li, .entry-content dd, .entry-content dt,
.entry-content blockquote, .ast-archive-description, .page-content,
.tribe-events, .tribe-events p, .tribe-events li,
.tribe-common, .tribe-common p, .tribe-common li,
p, li, dd, dt, span, small, label, time {
  color: var(--aj-text) !important;
}

/* Subtle text */
.aj-text-muted, .ast-author-name, .posted-on, .updated, .comment-meta,
.tribe-events-calendar-list__event-datetime,
.tribe-events-c-top-bar__datepicker-button {
  color: var(--aj-text-muted) !important;
}

/* Links */
a { color: var(--aj-yellow); text-decoration: none; transition: color .15s ease; }
a:hover, a:focus { color: var(--aj-yellow-soft); text-decoration: underline; }

/* Headings */
h1, h2, h3, h4, h5, h6,
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6,
.entry-title, .ast-archive-title, .ast-page-title,
.tribe-events-schedule h2, .tribe-events-single-event-title,
.tribe-common-h1, .tribe-common-h2, .tribe-common-h3, .tribe-common-h4,
.tribe-common-h--alt, .tribe-common .tribe-common-h--alt {
  color: #ffffff !important;
  font-weight: 700;
  letter-spacing: .02em;
}

h1 { font-size: clamp(2rem, 5vw, 3.4rem); }
h2 { font-size: clamp(1.5rem, 3.2vw, 2.2rem); }

.entry-content h2,
.aj-section h2 {
  position: relative;
  padding-bottom: .6rem;
  margin-top: 2rem;
}
.entry-content h2::after,
.aj-section h2::after {
  content: "";
  display: block;
  width: 56px; height: 3px;
  background: var(--aj-yellow);
  margin-top: .6rem;
  position: absolute; bottom: -.2rem; left: 0;
}

/* ==================== Header / nav ==================== */
.site-header,
.ast-primary-header-bar,
.main-header-bar,
.ast-above-header,
.ast-below-header,
.ast-header-break-point .main-header-bar,
.ast-mobile-header-wrap {
  background: var(--aj-black) !important;
  border-bottom: 1px solid var(--aj-border) !important;
  box-shadow: 0 2px 0 var(--aj-yellow);
}

/* ==================== Sticky header — scroll-down hides, scroll-up shows ==================== */
body { --aj-header-h: 80px; }
@media (max-width: 640px) { body { --aj-header-h: 80px; } }

.site-header,
header.site-header,
#masthead {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 91;
  width: 100% !important;
  transform: translateY(0);
  transition:
    transform .42s cubic-bezier(.4, 0, .2, 1),
    opacity .35s ease;
  will-change: transform;
}
.site-header.aj-header-hidden,
header.site-header.aj-header-hidden,
#masthead.aj-header-hidden {
  transform: translateY(-110%);
  opacity: 0;
  pointer-events: none;
}
/* Reserve top space so page content doesn't slide under the fixed header.
   Applied directly without needing JS-added body class — header is always fixed. */
body #page {
  padding-top: var(--aj-header-h) !important;
}
body .site-content,
body #content {
  padding-top: 0 !important;
}
@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none !important; }
}
.site-title a,
.ast-builder-html-element,
.main-header-menu .menu-item > a,
.main-header-menu a,
.ast-header-break-point .main-header-menu a,
.ast-builder-menu-mobile .menu-item a {
  color: #fff !important;
}
.main-header-menu .menu-item > a:hover,
.main-header-menu .current-menu-item > a {
  color: var(--aj-yellow) !important;
}

/* ==================== Override Astra CSS custom properties inside drawer ==================== */
/* Astra uses var(--ast-global-color-3..7) — redefining inside the drawer flips colors. */
.ast-mobile-popup-drawer,
.ast-mobile-popup-drawer.active,
.ast-mobile-popup-drawer * {
  --ast-global-color-1: #ffd400 !important;        /* primary accent */
  --ast-global-color-2: #ffd400 !important;
  --ast-global-color-3: #ffffff !important;        /* default link/text */
  --ast-global-color-4: #0a0a0a !important;        /* primary bg */
  --ast-global-color-5: rgba(255,212,0,.06) !important; /* hover/alt bg */
  --ast-global-color-6: #1d1d1d !important;        /* alt bg */
  --ast-global-color-7: #2a2a2a !important;        /* subtle bg/border */
}

/* ==================== Mobile Drawer (high-specificity overrides for Astra) ==================== */
/* Astra static CSS sets `color: #3a3a3a` on inner — override globally */
html body .ast-mobile-popup-drawer,
html body .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
html body .ast-mobile-popup-drawer .ast-mobile-popup-inner,
html body .ast-mobile-popup-drawer .ast-mobile-popup-content {
  color: #ffffff !important;
  background-color: var(--aj-black) !important;
}
html body .ast-mobile-popup-drawer * {
  color: inherit;
}
html body .ast-mobile-popup-drawer .menu-link,
html body .ast-mobile-popup-drawer .ast-builder-menu-mobile .main-header-menu .menu-item > .menu-link,
html body .ast-mobile-popup-drawer .main-header-menu .menu-link,
html body .ast-builder-menu-mobile .menu-item > .menu-link {
  color: #ffffff !important;
}
html body .ast-mobile-popup-drawer .menu-toggle-close,
html body .ast-mobile-popup-drawer .menu-toggle-close svg path,
html body .ast-mobile-popup-drawer .menu-toggle-close * {
  color: var(--aj-yellow) !important;
  fill: var(--aj-yellow) !important;
}
/* Slide-in panel (Astra base + flair) */
.ast-mobile-popup-drawer .ast-mobile-popup-inner {
  transition: transform .42s cubic-bezier(.2,.7,.2,1), opacity .25s ease !important;
}
/* Backdrop fade */
.ast-mobile-popup-drawer .ast-mobile-popup-overlay {
  background-color: rgba(0,0,0,.65) !important;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
/* Stagger animation for menu items */
.ast-mobile-popup-drawer.active .menu-item {
  animation: ajDrawerStagger .42s cubic-bezier(.2,.7,.2,1) both;
}
.ast-mobile-popup-drawer.active .menu-item:nth-child(1) { animation-delay: .12s; }
.ast-mobile-popup-drawer.active .menu-item:nth-child(2) { animation-delay: .18s; }
.ast-mobile-popup-drawer.active .menu-item:nth-child(3) { animation-delay: .24s; }
.ast-mobile-popup-drawer.active .menu-item:nth-child(4) { animation-delay: .30s; }
.ast-mobile-popup-drawer.active .menu-item:nth-child(5) { animation-delay: .36s; }
.ast-mobile-popup-drawer.active .menu-item:nth-child(6) { animation-delay: .42s; }
.ast-mobile-popup-drawer.active .menu-item:nth-child(7) { animation-delay: .48s; }
@keyframes ajDrawerStagger {
  from { opacity: 0; transform: translateX(28px); }
  to   { opacity: 1; transform: translateX(0); }
}
/* Menu items styling — pill-like rows with bottom divider */
html body .ast-mobile-popup-drawer .menu-item {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border-bottom: 1px solid rgba(255,212,0,.18) !important;
  list-style: none !important;
}
html body .ast-mobile-popup-drawer .menu-item > .menu-link {
  display: block !important;
  padding: 1.1rem 1.5rem !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  letter-spacing: .04em !important;
  text-decoration: none !important;
  background: transparent !important;
}
html body .ast-mobile-popup-drawer .menu-item > .menu-link:hover,
html body .ast-mobile-popup-drawer .menu-item.current-menu-item > .menu-link {
  color: var(--aj-yellow) !important;
  background: rgba(255,212,0,.06) !important;
}
@media (prefers-reduced-motion: reduce) {
  .ast-mobile-popup-drawer.active .menu-item { animation: none !important; }
}

/* ==================== Old mobile drawer block (kept selectors below, defaults overridden above) ==================== */
/* Astra hardcodes background-color:#ffffff via inline CSS — beat it with body+id specificity */
body .ast-mobile-popup-drawer,
body .ast-mobile-popup-drawer.active,
body .ast-mobile-popup-drawer .ast-mobile-popup-inner,
body .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
body[class] .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
.ast-mobile-popup-drawer .ast-mobile-popup-content,
.ast-mobile-popup-drawer .popup-content,
.ast-mobile-popup-drawer .popup-inner,
.ast-mobile-popup-drawer .ast-mobile-header-content,
.ast-mobile-popup-drawer .ast-mobile-site-navigation {
  background: #0a0a0a !important;
  background-color: #0a0a0a !important;
  color: #ededed !important;
}

/* Menu link visibility — comprehensive selectors for Astra 4.x mobile drawer */
body .ast-mobile-popup-drawer .menu-link,
body .ast-mobile-popup-drawer .main-navigation .menu-link,
body .ast-mobile-popup-drawer .main-navigation .main-header-menu .menu-item > .menu-link,
body .ast-mobile-popup-drawer .main-header-menu .menu-item > .menu-link,
body .ast-mobile-popup-drawer .menu-item > .menu-link,
body .ast-mobile-popup-drawer .main-header-menu .menu-link,
body .ast-mobile-popup-drawer a.menu-link,
.ast-builder-menu-mobile .main-navigation .menu-item > .menu-link,
.ast-builder-menu-mobile .menu-item > .menu-link {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
  padding: 1rem 1.25rem !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  border-bottom: 1px solid rgba(255,212,0,.15) !important;
  display: block !important;
  text-decoration: none !important;
  letter-spacing: .04em !important;
}
body .ast-mobile-popup-drawer .menu-item > .menu-link:hover,
body .ast-mobile-popup-drawer .menu-item.current-menu-item > .menu-link,
body .ast-mobile-popup-drawer .menu-item.current-menu-ancestor > .menu-link {
  color: #ffd400 !important;
  background: rgba(255,212,0,.06) !important;
  background-color: rgba(255,212,0,.06) !important;
}
.ast-mobile-popup-drawer .main-header-menu,
.ast-mobile-popup-drawer .menu {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--aj-black) !important;
}
.ast-mobile-popup-drawer .menu-item {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}

/* Close X button */
.ast-mobile-popup-drawer.active .menu-toggle-close,
.ast-mobile-popup-drawer .menu-toggle,
.menu-toggle-close,
.ast-mobile-menu-trigger-minimal {
  color: var(--aj-yellow) !important;
  background: transparent !important;
}
.ast-mobile-popup-drawer .menu-toggle .ahfb-svg-iconset svg path,
.ast-mobile-popup-drawer .menu-toggle-close svg path {
  fill: var(--aj-yellow) !important;
}

/* ===== Drawer slide animation (open + close) =====
   We let Astra manage display, but make the inner panel transition LONG enough
   to be visible, AND we intercept the close click in JS to add `aj-drawer-closing`
   so the panel can animate fully before Astra removes the drawer.
*/
.ast-mobile-popup-drawer {
  background: rgba(0,0,0,0) !important;
  transition: background .35s ease, opacity .35s ease;
}
.ast-mobile-popup-drawer.active {
  background: rgba(0,0,0,.6) !important;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
/* Inner panel: longer transition so the close animation is clearly visible */
.ast-mobile-popup-drawer .ast-mobile-popup-inner {
  transform: translateX(100%);
  opacity: 0;
  transition:
    transform .42s cubic-bezier(.2, .7, .2, 1),
    opacity .35s ease !important;
  will-change: transform, opacity;
}
.ast-mobile-popup-drawer.active .ast-mobile-popup-inner {
  transform: translateX(0);
  opacity: 1;
}
/* CLOSING state: drawer still has .active so display:block, but our class triggers slide-out */
.ast-mobile-popup-drawer.aj-drawer-closing,
.ast-mobile-popup-drawer.active.aj-drawer-closing {
  pointer-events: none;
  background: rgba(0,0,0,0) !important;
  backdrop-filter: blur(0) !important;
  -webkit-backdrop-filter: blur(0) !important;
  transition: background .42s ease, backdrop-filter .42s ease, -webkit-backdrop-filter .42s ease;
}
.ast-mobile-popup-drawer.aj-drawer-closing .ast-mobile-popup-inner,
.ast-mobile-popup-drawer.active.aj-drawer-closing .ast-mobile-popup-inner {
  transform: translateX(100%) !important;
  opacity: 0 !important;
  transition: transform .42s cubic-bezier(.4, 0, .2, 1), opacity .35s ease !important;
}
.ast-mobile-popup-drawer.aj-drawer-closing .ast-mobile-popup-overlay {
  opacity: 0 !important;
  transition: opacity .35s ease !important;
}
/* Stagger menu items via TRANSITION (not @keyframes) so close also animates.
   - Base rules (no .active): delays REVERSE-staggered → on close, last item exits first.
   - .active rules: delays FORWARD-staggered → on open, first item enters first. */
.ast-mobile-popup-drawer .main-navigation .menu-item,
.ast-mobile-popup-drawer .menu-item {
  opacity: 0;
  transform: translateX(32px);
  transition:
    opacity .35s ease,
    transform .42s cubic-bezier(.2, .7, .2, 1);
}
.ast-mobile-popup-drawer.active .main-navigation .menu-item,
.ast-mobile-popup-drawer.active .menu-item {
  opacity: 1;
  transform: translateX(0);
}
/* Closing delays (base) — last item leaves first (reverse) */
.ast-mobile-popup-drawer .main-navigation .menu-item:nth-child(1),
.ast-mobile-popup-drawer .menu-item:nth-child(1) { transition-delay: .30s; }
.ast-mobile-popup-drawer .main-navigation .menu-item:nth-child(2),
.ast-mobile-popup-drawer .menu-item:nth-child(2) { transition-delay: .25s; }
.ast-mobile-popup-drawer .main-navigation .menu-item:nth-child(3),
.ast-mobile-popup-drawer .menu-item:nth-child(3) { transition-delay: .20s; }
.ast-mobile-popup-drawer .main-navigation .menu-item:nth-child(4),
.ast-mobile-popup-drawer .menu-item:nth-child(4) { transition-delay: .15s; }
.ast-mobile-popup-drawer .main-navigation .menu-item:nth-child(5),
.ast-mobile-popup-drawer .menu-item:nth-child(5) { transition-delay: .10s; }
.ast-mobile-popup-drawer .main-navigation .menu-item:nth-child(6),
.ast-mobile-popup-drawer .menu-item:nth-child(6) { transition-delay: .05s; }
.ast-mobile-popup-drawer .main-navigation .menu-item:nth-child(7),
.ast-mobile-popup-drawer .menu-item:nth-child(7) { transition-delay: 0s; }

/* Opening delays (when .active) — first item enters first (forward) */
.ast-mobile-popup-drawer.active .main-navigation .menu-item:nth-child(1),
.ast-mobile-popup-drawer.active .menu-item:nth-child(1) { transition-delay: .08s; }
.ast-mobile-popup-drawer.active .main-navigation .menu-item:nth-child(2),
.ast-mobile-popup-drawer.active .menu-item:nth-child(2) { transition-delay: .14s; }
.ast-mobile-popup-drawer.active .main-navigation .menu-item:nth-child(3),
.ast-mobile-popup-drawer.active .menu-item:nth-child(3) { transition-delay: .20s; }
.ast-mobile-popup-drawer.active .main-navigation .menu-item:nth-child(4),
.ast-mobile-popup-drawer.active .menu-item:nth-child(4) { transition-delay: .26s; }
.ast-mobile-popup-drawer.active .main-navigation .menu-item:nth-child(5),
.ast-mobile-popup-drawer.active .menu-item:nth-child(5) { transition-delay: .32s; }
.ast-mobile-popup-drawer.active .main-navigation .menu-item:nth-child(6),
.ast-mobile-popup-drawer.active .menu-item:nth-child(6) { transition-delay: .38s; }
.ast-mobile-popup-drawer.active .main-navigation .menu-item:nth-child(7),
.ast-mobile-popup-drawer.active .menu-item:nth-child(7) { transition-delay: .44s; }

@media (prefers-reduced-motion: reduce) {
  .ast-mobile-popup-drawer .ast-mobile-popup-inner,
  .ast-mobile-popup-drawer .menu-item,
  .ast-mobile-popup-drawer.active .menu-item {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    transition-delay: 0s !important;
  }
}

/* logo size */
.custom-logo, .custom-logo-link img { max-height: 64px; height: auto; width: auto; }

/* Cascadia Mono — used for the header wordmark */
@font-face {
  font-family: "Cascadia Mono";
  src: url("assets/fonts/CascadiaMono.woff2") format("woff2-variations"),
       url("assets/fonts/CascadiaMono.woff2") format("woff2");
  font-weight: 200 700;
  font-style: normal;
  font-display: swap;
}

/* "Apple Jump" header wordmark — Cascadia Mono (Consolas-like) */
.site-title, .site-title a, .ast-site-identity .site-title,
.site-title a:hover, .site-title a:focus {
  font-family: "Cascadia Mono", Consolas, "Courier New", monospace !important;
  font-style: normal !important;
  font-weight: 500 !important;
  letter-spacing: .01em !important;
  word-spacing: -.45em !important;
  text-transform: none !important;
  font-variant-caps: normal !important;
  color: #fff !important;
  font-size: 1.75rem !important;
  line-height: 1 !important;
}
.aj-letter-red {
  color: var(--aj-red) !important;
  font-weight: inherit !important;
  font-style: inherit !important;
  text-transform: none !important;
}

/* TOP page "Welcome to Apple Jump" h2 — Dancing Script Bold */
.home .aj-section--alt h2,
.home .entry-content > .aj-section--alt h2 {
  font-family: "Dancing Script", "Caveat", "Sacramento", cursive, serif !important;
  font-style: normal !important;
  font-weight: 700 !important;
  letter-spacing: .01em !important;
  font-size: clamp(2.4rem, 5vw, 3.6rem) !important;
  line-height: 1.15 !important;
}
/* Brand wrapper inside any heading — INHERITS the parent's font (so italic etc. cascades) */
.aj-brand {
  font-family: inherit !important;
  font-style: inherit !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  text-transform: none !important;
  white-space: nowrap;
}
h1 .aj-brand, h2 .aj-brand, h3 .aj-brand {
  color: #fff;
}

/* ==================== Layout helpers ==================== */
.aj-container { max-width: 1100px; margin: 0 auto; padding: 0 1rem; }
.aj-section { padding: 4rem 1rem; }
.aj-section--alt { background: var(--aj-black-2) !important; }
.aj-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.aj-actions { margin-top: 1.5rem; text-align: center; display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }

/* ==================== Hero (background full-bleed via ::before/::after) ==================== */
.aj-hero {
  position: relative;
  min-height: calc(100vh - var(--aj-header-h, 60px));
  min-height: calc(100dvh - var(--aj-header-h, 60px));
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent !important;        /* gradient moved to ::before */
  text-align: center;
  padding: 4rem 1.5rem;
  margin: 0 0 1rem !important;
}
/* Gradient extends to viewport edges */
.aj-hero::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(255,212,0,.18), transparent 60%),
    radial-gradient(ellipse at 70% 80%, rgba(227,25,59,.10), transparent 60%),
    linear-gradient(180deg, #000 0%, #0a0a0a 100%);
  z-index: 0;
  pointer-events: none;
}
/* Piano background — subtle photographic layer behind content */
.aj-hero {
  --aj-hero-piano: url("assets/hero-piano.jpg");
}
.aj-hero::before {
  background:
    radial-gradient(ellipse at 30% 20%, rgba(255,212,0,.18), transparent 60%),
    radial-gradient(ellipse at 70% 80%, rgba(227,25,59,.10), transparent 60%),
    linear-gradient(180deg, #000 0%, #0a0a0a 100%);
}

/* Piano photo across the hero — "low-light jazz bar" look: vignette + tonal cooling
   hides the graininess in shadow while keeping the piano recognizable. */
.aj-hero::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  background:
    radial-gradient(ellipse 75% 75% at 60% 55%, transparent 0%, rgba(0,0,0,.35) 55%, rgba(0,0,0,.85) 100%),
    linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55)),
    var(--aj-hero-piano) center / cover no-repeat;
  filter: brightness(.55) saturate(.6) sepia(.18) contrast(.95);
  z-index: 1;
  pointer-events: none;
  opacity: .95;
}
@media (max-width: 640px) {
  .aj-hero::after {
    background:
      radial-gradient(ellipse 80% 70% at 50% 55%, transparent 0%, rgba(0,0,0,.4) 55%, rgba(0,0,0,.9) 100%),
      linear-gradient(180deg, rgba(0,0,0,.3), rgba(0,0,0,.65)),
      var(--aj-hero-piano) center / cover no-repeat;
  }
}
.aj-hero-inner { position: relative; z-index: 2; max-width: 900px; }

/* Stick the home hero directly to the header underline (zero gap) */
.home .site-content,
.home .site-main,
.home #content,
.home #primary,
.home article.page,
.home .ast-container,
.home .ast-container > .site-content,
.home .entry-content,
.home .ast-article-single,
.home .ast-article-post,
.home .ast-article-single .entry-content,
body.home .site-content > .ast-container {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
.home .aj-hero { margin-top: 0 !important; }

/* Alt section background full-bleed (same pseudo trick) */
.aj-section--alt {
  position: relative;
  background: transparent !important;
}
.aj-section--alt::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  background: var(--aj-black-2);
  z-index: 0;
  pointer-events: none;
}
.aj-section--alt > * { position: relative; z-index: 1; }

/* Menu hero — same pseudo trick */
.aj-menu-hero {
  position: relative;
  background: transparent !important;
}
.aj-menu-hero::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  background:
    radial-gradient(ellipse at 50% 100%, rgba(255,212,0,.18), transparent 60%),
    linear-gradient(180deg, #000 0%, #0a0a0a 100%);
  z-index: 0;
  border-bottom: 1px solid var(--aj-border);
  pointer-events: none;
}
.aj-menu-hero > * { position: relative; z-index: 1; }
.aj-hero-inner { position: relative; z-index: 2; max-width: 900px; }
.aj-hero-logo {
  width: clamp(220px, 30vw, 360px);
  height: auto;
  margin: 0 auto 1.25rem;
  filter: drop-shadow(0 0 24px rgba(255,212,0,.18));
  display: block;
}
.aj-hero p.lead {
  color: var(--aj-text) !important;
  font-size: 1.65rem;
  letter-spacing: .04em;
  margin: 1.25rem 0;
}
.aj-hero .badge {
  display: inline-block;
  padding: .35rem .9rem;
  border: 1px solid var(--aj-yellow);
  color: var(--aj-yellow) !important;
  border-radius: 999px;
  font-size: .8rem;
  letter-spacing: .12em;
  margin-bottom: 1rem;
}
.aj-hero-actions { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-top: 1.5rem; }

/* ==================== Buttons ==================== */
.aj-btn,
.wp-block-button .wp-block-button__link,
.tribe-common-c-btn, .tribe-events button.tribe-common-c-btn {
  display: inline-flex; align-items: center; gap:.5em;
  background: var(--aj-yellow) !important;
  color: #000 !important;
  border: 0 !important;
  padding: .85rem 1.6rem !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  letter-spacing: .04em;
  text-decoration: none !important;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 6px 20px rgba(255,212,0,.25);
  cursor: pointer;
}
.aj-btn:hover,
.wp-block-button .wp-block-button__link:hover,
.tribe-common-c-btn:hover {
  background: var(--aj-yellow-soft) !important;
  transform: translateY(-2px);
}
.aj-btn--outline {
  background: transparent !important;
  color: var(--aj-yellow) !important;
  border: 2px solid var(--aj-yellow) !important;
  box-shadow: none !important;
}
.aj-btn--outline:hover { background: rgba(255,212,0,.1) !important; }

/* ==================== Cards ==================== */
.aj-card {
  background: var(--aj-black-3) !important;
  border: 1px solid var(--aj-border);
  border-radius: var(--aj-radius);
  padding: 1.5rem;
  box-shadow: var(--aj-shadow-sm);
  color: var(--aj-text) !important;
}
.aj-card h3 { margin: 0 0 .75rem; color: var(--aj-yellow) !important; }
.aj-card p { color: var(--aj-text) !important; margin: 0 0 1rem; }

/* ==================== Tables (responsive) ==================== */
.entry-content table,
table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 1.25rem 0;
  background: transparent !important;
  border: 1px solid var(--aj-border);
  border-radius: var(--aj-radius-sm);
  overflow: hidden;
}
.entry-content table th,
table th {
  background: var(--aj-yellow) !important;
  color: #000 !important;
  padding: .7rem 1rem !important;
  text-align: left;
  font-weight: 500;
  font-family: var(--aj-font-jp);
  border: 0;
  vertical-align: top;
  border-bottom: 1px solid rgba(0,0,0,.08);
  width: 26%;
  white-space: nowrap;
  letter-spacing: .04em;
  font-size: .95rem;
}
.entry-content table td,
table td {
  background: var(--aj-black-3) !important;
  color: var(--aj-text) !important;
  border-top: 1px solid var(--aj-border) !important;
  padding: .85rem 1.1rem !important;
  vertical-align: top;
}
.entry-content table tr:first-child th,
.entry-content table tr:first-child td,
table tr:first-child th,
table tr:first-child td { border-top: 0 !important; }

/* MOBILE: stack rows vertically (label above value) */
@media (max-width: 640px) {
  .entry-content table,
  table {
    display: block;
    border: 0;
    border-radius: 0;
    overflow: visible;
  }
  .entry-content table tbody,
  table tbody { display: block; }
  .entry-content table tr,
  table tr {
    display: block;
    background: var(--aj-black-3);
    border: 1px solid var(--aj-border);
    border-radius: var(--aj-radius-sm);
    margin-bottom: .75rem;
    overflow: hidden;
  }
  .entry-content table th,
  table th {
    display: block;
    width: 100%;
    background: transparent !important;
    color: var(--aj-yellow) !important;
    padding: .65rem 1rem .25rem !important;
    border-bottom: 1px solid var(--aj-border) !important;
    font-size: .8rem;
    letter-spacing: .04em;
    font-weight: 600;
    text-transform: none;
    white-space: normal;
  }
  .entry-content table td,
  table td {
    display: block;
    width: 100%;
    background: transparent !important;
    border-top: 0 !important;
    padding: .55rem 1rem .85rem !important;
    color: var(--aj-text) !important;
    line-height: 1.6;
    word-break: break-word;
  }
}

/* ==================== Sticky floating footer (slim) ==================== */
/* Keep --aj-footer-h CONSTANT so scrollHeight doesn't change between collapsed/expanded
   (otherwise the at-bottom detection flickers and the expanded state never sticks) */
body { --aj-footer-h: 80px; }
@media (max-width: 640px) { body { --aj-footer-h: 90px; } }

.site-footer,
footer.site-footer,
#colophon {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 90;
  width: 100% !important;
  background: rgba(0,0,0,.92) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid rgba(255,212,0,.18) !important;
  box-shadow: 0 -10px 30px rgba(0,0,0,.4);
  transform: translateY(0);
  transition:
    transform .45s cubic-bezier(.4, 0, .2, 1),
    opacity .35s ease,
    filter .35s ease;
  will-change: transform, opacity;
  padding: 0 !important;
  min-height: 0 !important;
}
/* Slim Astra footer rows + force CENTER alignment on PC */
.site-footer .ast-footer-overlay,
.site-footer .site-below-footer-wrap,
.site-footer .ast-builder-footer-grid-columns,
.site-footer .ast-builder-grid-row-container,
.site-footer .ast-builder-grid-row,
.site-footer .ast-builder-grid-row-container-inner,
.site-footer .ast-footer-copyright {
  padding: 0 !important;
  margin: 0 auto !important;
  min-height: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}
.site-footer .site-footer-section,
.site-footer [class*="site-footer-section"] {
  width: 100% !important;
  text-align: center !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
.site-footer .ast-footer-copyright {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  flex-wrap: wrap;
  min-height: 44px;
  padding: .25rem 1rem !important;
  font-size: .85rem;
  text-align: center;
  width: 100% !important;
  margin: 0 auto !important;
  transition: min-height .35s cubic-bezier(.4,0,.2,1), padding .35s ease;
}
.site-footer .ast-footer-copyright p {
  margin: 0 !important;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
}

/* Default (sticky/floating) state: hide copyright text, show only icons */
.aj-cr-text {
  display: none;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .35s ease, transform .35s ease;
  vertical-align: middle;
  white-space: nowrap;
}

/* When user reaches bottom of page → reveal copyright text */
body.aj-footer-expanded .aj-cr-text {
  display: inline-block;
  opacity: 1;
  transform: translateY(0);
  margin-right: .15rem;
  /* Re-trigger opacity transition: animate in from a fade once visible */
  animation: ajCrTextIn .45s cubic-bezier(.4,0,.2,1) both;
}
@keyframes ajCrTextIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
body.aj-footer-expanded .site-footer .ast-footer-copyright {
  min-height: 64px;
}

/* Sentinel injected at the bottom of #page; tracked by IntersectionObserver.
   Visible-but-tiny element so layout/SEO unaffected. */
.aj-footer-sentinel {
  display: block;
  height: 1px;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  pointer-events: none;
}

@media (max-width: 640px) {
  body { --aj-footer-h: 36px; }
  body.aj-footer-expanded { --aj-footer-h: 70px; }
  .site-footer .ast-footer-copyright {
    min-height: 36px;
    padding: 0 .5rem !important;
    font-size: .65rem;
    gap: .35rem;
  }
  .site-footer .ast-footer-copyright p { gap: .3rem; flex-direction: row; }

  /* MOBILE expanded: stack onto 2 rows (copyright above, icons below) */
  body.aj-footer-expanded .site-footer .ast-footer-copyright {
    min-height: 70px;
    padding: .4rem .5rem !important;
  }
  body.aj-footer-expanded .site-footer .ast-footer-copyright p {
    flex-direction: column;
    gap: .35rem;
  }
  body.aj-footer-expanded .aj-cr-text {
    display: block !important;
    width: 100%;
    text-align: center;
    line-height: 1.3;
    font-size: .68rem;
  }
  .aj-social__link, .aj-copy-btn {
    width: 22px !important;
    height: 22px !important;
  }
  .aj-social__link svg, .aj-copy-btn svg {
    width: 11px !important;
    height: 11px !important;
  }
}
.site-footer.aj-footer-hidden,
footer.site-footer.aj-footer-hidden,
#colophon.aj-footer-hidden {
  transform: translateY(120%);
  opacity: 0;
  filter: blur(2px);
  pointer-events: none;
}

/* Reserve space at the bottom of the page so content doesn't hide under the footer */
body.has-floating-footer #page,
body.has-floating-footer .site-content,
body.has-floating-footer #content {
  padding-bottom: calc(var(--aj-footer-h) + 1rem) !important;
}
@media (prefers-reduced-motion: reduce) {
  .site-footer { transition: none !important; }
}

/* ==================== Footer ==================== */
.site-footer, footer.site-footer,
.ast-footer-overlay, .ast-builder-footer-grid-columns,
.site-below-footer-wrap, .ast-small-footer,
.site-above-footer-wrap, .site-primary-footer-wrap,
.ast-builder-grid-row-container, .ast-builder-grid-row,
.footer-sml-layout-1, .footer-sml-section-1, .footer-sml-section-2 {
  background: #000 !important;
  color: var(--aj-text-muted) !important;
  border: 0 !important;
  box-shadow: none !important;
}
.site-footer hr,
.site-below-footer-wrap hr,
.ast-builder-footer-grid-columns hr { display: none !important; }
.site-footer * { color: var(--aj-text-muted) !important; border-color: transparent !important; }
.site-footer a { color: var(--aj-yellow) !important; }

/* Footer row: copyright + social */
.aj-footer-row {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: .85rem;
  color: var(--aj-text-muted) !important;
}
.aj-footer-row .aj-copy { letter-spacing: .04em; }
.aj-social {
  display: inline-flex;
  gap: .4rem;
  align-items: center;
}
.aj-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: transparent;
  border: 1px solid rgba(255,212,0,.3);
  color: var(--aj-text-muted) !important;
  transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
}
.aj-social__link:hover,
.aj-social__link:focus {
  background: var(--aj-yellow) !important;
  color: #000 !important;
  border-color: var(--aj-yellow) !important;
  transform: translateY(-2px);
  text-decoration: none !important;
}
.aj-social__link svg { display: block; }
.site-footer .aj-social__link { color: var(--aj-text-muted) !important; }
.site-footer .aj-social__link:hover { color: #000 !important; }
@media (max-width: 480px) {
  .aj-footer-row { flex-direction: column; gap: .75rem; }
}

/* ==================== TEC overrides ==================== */
.tribe-events,
.tribe-common,
.tribe-events-calendar-list__event-row,
.tribe-events-c-events-bar,
.tribe-events-pro,
.tribe-events-view {
  --tec-color-background: var(--aj-black);
  --tec-color-text-primary: var(--aj-text);
  --tec-color-accent-primary: var(--aj-yellow);
  --tec-color-accent-secondary: var(--aj-yellow-soft);
  background: transparent !important;
  color: var(--aj-text) !important;
}

/* ============================================================
   Apple Jump custom Events Bar (replaces TEC events-bar entirely)
   ============================================================ */
.aj-events-bar {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: .75rem;
  padding: .5rem 0 1rem;
  flex-wrap: wrap;
}

/* === Search: input + button as a UNIFIED pill === */
.aj-events-bar__search {
  position: relative;
  display: flex;
  align-items: center;
  flex: 1 1 320px;
  min-width: 0;
  height: 36px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  overflow: hidden;
  transition: border-color .15s ease, background .15s ease;
}
.aj-events-bar__search:focus-within {
  border-color: var(--aj-yellow);
  box-shadow: 0 0 0 3px rgba(255,212,0,.15);
}
.aj-events-bar__search-icon {
  display: none !important;
}
.aj-events-bar__search-input {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  padding: 0 .75rem !important;
  background: transparent;
  color: var(--aj-text);
  border: 0;
  font-size: .92rem;
  outline: none;
  box-sizing: border-box;
}
.aj-events-bar__search-input::placeholder { color: var(--aj-text-muted); }
.aj-events-bar__search-btn,
button.aj-events-bar__search-btn,
.entry-content button.aj-events-bar__search-btn {
  flex: 0 0 auto !important;
  height: 100% !important;
  padding: 0 1.2rem !important;
  background: var(--aj-yellow) !important;
  background-image: none !important;
  color: #000 !important;
  border: 0 !important;
  border-left: 1px solid rgba(0,0,0,.15) !important;
  border-radius: 0 !important;
  font-family: var(--aj-font-jp) !important;
  font-weight: 700 !important;
  font-size: .9rem !important;
  letter-spacing: .04em !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  text-transform: none !important;
  text-shadow: none !important;
  box-shadow: none !important;
  transition: background .15s ease;
}
.aj-events-bar__search-btn:hover,
button.aj-events-bar__search-btn:hover,
.entry-content button.aj-events-bar__search-btn:hover {
  background: var(--aj-yellow-soft) !important;
  color: #000 !important;
}

/* === View toggle: equal-width pills, shorter height === */
.aj-events-bar__views {
  display: flex;
  flex: 0 0 auto;
  gap: 0;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  padding: 3px;
  height: 36px;
  box-sizing: border-box;
}
.aj-events-bar__view-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 92px;        /* identical width */
  height: 100%;
  padding: 0;
  background: transparent;
  color: var(--aj-text);
  border: 0;
  border-radius: 999px;
  font-weight: 600;
  font-size: .85rem;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease;
}
.aj-events-bar__view-link:hover {
  background: rgba(255,212,0,.18);
  color: var(--aj-yellow);
}
.aj-events-bar__view-link.is-active {
  background: var(--aj-yellow);
  color: #000;
}

/* Hide default TEC top-bar entirely (we don't use it) */
.tribe-events-c-top-bar { display: none !important; }

/* Hide the search box on Calendar view — search forces a switch to list anyway */
.tribe-events-view-html--month .aj-events-bar__search,
.tribe-events-view-html--day .aj-events-bar__search,
body[class*="post-type-archive-tribe_events"]:has(.tribe-events-calendar-month) .aj-events-bar__search {
  display: none !important;
}

/* ============================================================
   Apple Jump custom Calendar Nav (prev / month label / next / today)
   ============================================================ */
.aj-cal-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  margin: 1.5rem auto .25rem;
  padding: 0;
  flex-wrap: wrap;
  width: 100%;
}

/* Hide bottom calendar nav (4月 / 今月 / 6月 — duplicate of top nav) */
.tribe-events-c-nav,
.tribe-events-c-nav__list,
.tribe-events-c-nav__list-item,
.tribe-events-c-nav__list-item--prev,
.tribe-events-c-nav__list-item--next,
.tribe-events-c-nav__list-item--today {
  display: none !important;
}
.aj-cal-nav__btn,
a.aj-cal-nav__btn,
span.aj-cal-nav__btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  border-radius: 50% !important;
  background: var(--aj-yellow) !important;
  color: #000 !important;
  text-decoration: none !important;
  border: 0 !important;
  box-shadow: 0 2px 8px rgba(255,212,0,.3) !important;
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
  flex-shrink: 0;
}
.aj-cal-nav__btn svg {
  width: 10px !important;
  height: 10px !important;
}
.aj-cal-nav__btn:hover,
a.aj-cal-nav__btn:hover {
  background: var(--aj-yellow-soft) !important;
  color: #000 !important;
  transform: translateY(-1px);
  text-decoration: none !important;
  box-shadow: 0 6px 20px rgba(255,212,0,.55) !important;
}
.aj-cal-nav__btn svg,
.aj-cal-nav__btn svg path { fill: #000 !important; stroke: #000 !important; color: #000 !important; }
.aj-cal-nav__btn.is-disabled {
  opacity: .25 !important;
  pointer-events: none;
  cursor: not-allowed;
  box-shadow: none !important;
}
.aj-cal-nav__label {
  font-family: var(--aj-font-jp) !important;
  font-weight: 600 !important;
  font-size: 1.05rem !important;
  color: #fff !important;
  letter-spacing: .04em;
  min-width: 7rem;
  text-align: center;
  padding: 0 .75rem;
  font-style: normal !important;
}
.aj-cal-nav__today {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 1rem;
  border-radius: 999px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.12);
  color: var(--aj-text);
  font-weight: 600;
  font-size: .9rem;
  text-decoration: none;
  margin-left: .5rem;
  transition: background .15s ease, color .15s ease;
}
.aj-cal-nav__today:hover {
  background: var(--aj-yellow);
  color: #000;
  border-color: var(--aj-yellow);
  text-decoration: none;
}
@media (max-width: 640px) {
  .aj-cal-nav__label { font-size: .95rem !important; min-width: 6rem; }
  .aj-cal-nav__today { width: 100%; margin-left: 0; flex-basis: 100%; margin-top: .5rem; }
}

@media (max-width: 768px) {
  .aj-events-bar {
    flex-direction: column;
    align-items: stretch;
    gap: .5rem;
  }
  .aj-events-bar__search { flex-basis: auto; width: 100%; }
  /* Mobile: list/calendar buttons stacked vertically, full width, with breathing room */
  .aj-events-bar__views {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    flex: 1 1 100% !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 1rem 0 1.5rem !important;
    gap: 1rem !important;
    row-gap: 1rem !important;
  }
  /* Fallback margin in case parent gap doesn't apply for any reason */
  .aj-events-bar__views .aj-events-bar__view-link + .aj-events-bar__view-link {
    margin-top: 1rem !important;
  }
  .aj-events-bar__view-link {
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 1rem !important;
    font-size: .95rem !important;
    height: 42px !important;
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    border-radius: 999px !important;
    color: var(--aj-text) !important;
  }
  .aj-events-bar__view-link.is-active {
    background: var(--aj-yellow) !important;
    color: #000 !important;
    border-color: var(--aj-yellow) !important;
  }
  .aj-events-bar__view-link:hover {
    background: rgba(255,212,0,.18) !important;
    color: var(--aj-yellow) !important;
    border-color: rgba(255,212,0,.4) !important;
  }
  .aj-events-bar__view-link.is-active:hover {
    background: var(--aj-yellow-soft) !important;
    color: #000 !important;
    border-color: var(--aj-yellow-soft) !important;
  }
}

/* Calendar grid — minimal top margin (nav has its own bottom margin) */
.tribe-events-calendar-month {
  margin-top: 0 !important;
  margin-bottom: 1rem !important;
}

/* ============ Events Bar — Mobile Layout (clean & reliable) ============ */
@media (max-width: 768px) {
  /* Outer wrapper — no overflow, no margin, no padding (mobile) */
  .tribe-events-header,
  .tribe-events-c-events-bar,
  .tribe-events-c-top-bar,
  .tribe-events-pro-page-header,
  .tribe-events-view,
  .aj-events-bar {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  /* === Hide the duplicated controls that cause clutter === */
  /* Hide the "magnifying glass icon-only" search trigger (we render search expanded below) */
  .tribe-events-c-events-bar > button.tribe-events-c-events-bar__search-button[data-js="tribe-events-search-button"],
  .tribe-events-c-events-bar [data-js="tribe-events-search-button"] {
    display: none !important;
  }
  /* Hide the standalone "filter" / mobile selector toggle (the lonely dark button between search & views) */
  .tribe-events-c-view-selector__button,
  button.tribe-events-c-view-selector__button {
    display: none !important;
  }

  /* === Stack the bar vertically === */
  .tribe-events-c-events-bar {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .65rem !important;
    padding: .25rem 0 !important;
    background: transparent !important;
  }

  /* === Search container: ALWAYS visible, full width === */
  .tribe-events-c-events-bar__search-container,
  .tribe-events-c-events-bar__search-container[aria-expanded="false"],
  .tribe-events-c-events-bar__search-container[aria-expanded="true"] {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    opacity: 1 !important;
    overflow: visible !important;
    transform: none !important;
    position: static !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Inner search wrappers: full width, no float */
  .tribe-events-c-events-bar__search,
  .tribe-events-c-events-bar__search-form,
  .tribe-events-c-events-bar__views,
  .tribe-events-c-search,
  .tribe-events-c-search__input-group,
  .tribe-events-c-search__input-control,
  .tribe-events-c-search__input-control--keyword,
  .tribe-common-form-control-text {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    flex: 1 1 100% !important;
    margin: 0 !important;
  }

  /* The actual <input> */
  input.tribe-events-c-search__input-control--keyword,
  input[type="text"].tribe-events-c-search__input-control--keyword,
  .tribe-events-c-search__input-control input {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 42px !important;
    padding: 0 .9rem 0 2.6rem !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
  }

  /* The label-attached search icon */
  .tribe-events-c-search__input-control-icon,
  .tribe-events-c-search__input-control-icon-svg {
    left: .85rem !important;
  }

  /* Search submit button (text "イベントを検索") — full width below input */
  .tribe-events-c-events-bar__search-form .tribe-common-c-btn,
  .tribe-events-c-events-bar__search-form button[type="submit"],
  .tribe-events-c-search__button {
    display: flex !important;
    width: 100% !important;
    height: 42px !important;
    margin-top: .5rem !important;
    justify-content: center !important;
  }

  /* === View selector list — single row, wrap, no overflow === */
  .tribe-events-c-events-bar__views {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .4rem !important;
    overflow: visible !important;
    padding: 0 !important;
  }
  .tribe-events-c-view-selector,
  .tribe-events-c-view-selector__content,
  .tribe-events-c-view-selector__list {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .4rem !important;
    width: 100% !important;
    max-width: 100% !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }
  .tribe-events-c-view-selector__list-item {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    list-style: none !important;
  }
  .tribe-events-c-view-selector__list-item-link {
    width: 100% !important;
    justify-content: center !important;
    padding: 0 .8rem !important;
    font-size: .85rem !important;
    white-space: nowrap !important;
  }

  /* === Top bar (today / nav arrows / upcoming dropdown) === */
  .tribe-events-c-top-bar {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    gap: .4rem !important;
    padding: .25rem 0 !important;
    overflow: visible !important;
  }
  .tribe-events-c-top-bar__nav,
  .tribe-events-c-top-bar__datepicker,
  .tribe-events-c-top-bar__actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .4rem !important;
    overflow: visible !important;
  }
}

/* ----- Events Bar (search + view selector) ----- */
.tribe-events-c-events-bar,
.tribe-events-c-events-bar--border,
.tribe-events-c-events-bar__search-container,
.tribe-events-c-events-bar__views,
.tribe-events-c-events-bar__search-form,
.tribe-events-c-search,
.tribe-events-c-search__input-group,
.tribe-events-c-view-selector,
.tribe-events-c-view-selector--labels,
.tribe-events-c-view-selector__content,
.tribe-events-c-view-selector__list,
.tribe-events-c-view-selector__list-item {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.tribe-events-c-events-bar {
  padding: .5rem 0 !important;
  margin-bottom: 1rem !important;
}

/* Search input */
.tribe-events-c-search__input,
.tribe-events-c-search__input-control,
.tribe-events-c-search__input-control--keyword,
input.tribe-events-c-search__input-control--keyword {
  background: var(--aj-black-3) !important;
  color: var(--aj-text) !important;
  border: 1px solid var(--aj-border) !important;
  border-radius: 999px !important;
  padding: 0 1rem 0 2.4rem !important;
  height: 36px !important;
  line-height: 36px !important;
  font-size: .9rem !important;
  box-shadow: none !important;
}
.tribe-events-c-search__input::placeholder,
.tribe-events-c-search__input-control::placeholder { color: var(--aj-text-muted) !important; }
.tribe-events-c-search__input-control-icon-svg path { fill: var(--aj-text-muted) !important; }

/* Search button (yellow pill — height-matched) */
.tribe-events-c-events-bar__search-button,
.tribe-events-c-search__button,
button.tribe-events-c-events-bar__search-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--aj-yellow) !important;
  color: #000 !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 0 1.2rem !important;
  height: 36px !important;
  line-height: 1 !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  box-shadow: 0 4px 14px rgba(255,212,0,.25) !important;
}
.tribe-events-c-events-bar__search-button:hover { background: var(--aj-yellow-soft) !important; }

/* View selector items wrapper — flex row, NO stretch, never block-fill */
.tribe-events-c-view-selector,
.tribe-events-c-view-selector__content,
.tribe-events-c-view-selector__list,
.tribe-events-c-events-bar__views {
  display: inline-flex !important;
  align-items: center !important;
  gap: .4rem !important;
  flex-wrap: wrap !important;
  width: auto !important;
  flex: 0 0 auto !important;
  background: transparent !important;
}
.tribe-events-c-events-bar__views {
  margin-left: .4rem !important;
}
.tribe-events-c-view-selector__list-item,
.tribe-events-c-events-bar__views-list-item {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  height: auto !important;
}

/* View selector buttons (リスト表示 / カレンダー表示) — tight pills */
.tribe-events-c-view-selector__button,
button.tribe-events-c-view-selector__button,
.tribe-events-c-view-selector__list-item-link,
a.tribe-events-c-view-selector__list-item-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .35rem !important;
  background: var(--aj-black-3) !important;
  color: var(--aj-text) !important;
  border: 1px solid var(--aj-border) !important;
  border-radius: 999px !important;
  padding: 0 1rem !important;
  height: 36px !important;
  line-height: 1 !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  margin: 0 !important;
  box-shadow: none !important;
}
.tribe-events-c-view-selector__button:hover,
.tribe-events-c-view-selector__list-item-link:hover {
  background: var(--aj-yellow) !important;
  color: #000 !important;
  border-color: var(--aj-yellow) !important;
  text-decoration: none !important;
}
.tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__list-item--active a {
  background: var(--aj-yellow) !important;
  color: #000 !important;
  border-color: var(--aj-yellow) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--aj-yellow) !important;
}
.tribe-events-c-view-selector__button-icon-svg,
.tribe-events-c-view-selector__list-item-icon { width: 14px !important; height: 14px !important; }
.tribe-events-c-view-selector__button-icon-svg path,
.tribe-events-c-view-selector__list-item-icon path { fill: currentColor !important; }

/* ----- Top bar (date / nav) ----- */
.tribe-events-c-top-bar {
  display: flex !important;
  align-items: center !important;
  gap: .5rem !important;
  flex-wrap: wrap !important;
  background: transparent !important;
  border: 0 !important;
  padding: .25rem 0 !important;
  justify-content: flex-start !important;
}
/* Make sure no child stretches to fill */
.tribe-events-c-top-bar > * {
  flex: 0 0 auto !important;
  width: auto !important;
}
.tribe-events-c-top-bar__actions,
.tribe-events-c-top-bar__datepicker,
.tribe-events-c-top-bar__nav,
.tribe-events-c-top-bar__nav-list {
  display: flex !important;
  align-items: center !important;
  gap: .4rem !important;
  background: transparent !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.tribe-events-c-top-bar__nav-list-item {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  height: 36px !important;
}
.tribe-events-c-top-bar__datepicker-button,
.tribe-events-c-top-bar__today-button,
button.tribe-events-c-top-bar__today-button,
a.tribe-events-c-top-bar__today-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .35rem !important;
  background: var(--aj-black-3) !important;
  color: var(--aj-text) !important;
  border: 1px solid var(--aj-border) !important;
  border-radius: 999px !important;
  padding: 0 1rem !important;
  height: 36px !important;
  min-height: 36px !important;
  line-height: 36px !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
/* Wrapping list-item for "今日" — make sure it aligns center too */
.tribe-events-c-top-bar__nav-list-item--today,
.tribe-events-c-top-bar__nav-list-item {
  display: inline-flex !important;
  align-items: center !important;
  height: 36px !important;
}
.tribe-events-c-top-bar__datepicker-button:hover,
.tribe-events-c-top-bar__today-button:hover {
  background: var(--aj-yellow) !important; color: #000 !important; border-color: var(--aj-yellow) !important;
}
.tribe-events-c-top-bar__nav-link,
a.tribe-events-c-top-bar__nav-link,
button.tribe-events-c-top-bar__nav-link {
  background: var(--aj-yellow) !important;
  color: #000 !important;
  border: 0 !important;
  border-radius: 50% !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: 0 0 36px !important;
  box-shadow: 0 4px 14px rgba(255,212,0,.25) !important;
  vertical-align: middle !important;
}
.tribe-events-c-top-bar__nav-link:hover { background: var(--aj-yellow-soft) !important; color: #000 !important; }

/* Arrow SVGs: black so they show against yellow button */
.tribe-events-c-top-bar__nav-link-icon-svg,
.tribe-events-c-top-bar__nav-link svg,
.tribe-events-c-top-bar__nav-link .tribe-events-c-top-bar__nav-link-icon-svg {
  width: 12px !important;
  height: 12px !important;
  display: block !important;
}
.tribe-events-c-top-bar__nav-link-icon-svg path,
.tribe-events-c-top-bar__nav-link svg path,
.tribe-events-c-top-bar__nav-link-icon-svg * {
  fill: #000 !important;
  stroke: #000 !important;
  color: #000 !important;
}
.tribe-events-c-top-bar__nav-link-icon-svg path { fill: currentColor !important; }
.tribe-events-c-top-bar__datepicker-nav-icon-svg path,
.tribe-events-c-top-bar__datepicker-button-icon-svg path { fill: var(--aj-yellow) !important; }

/* Datepicker dropdown popup */
.datepicker, .datepicker-dropdown,
.tribe-events-c-top-bar__datepicker-container,
.tribe-events-c-top-bar__datepicker-container .datepicker {
  background: var(--aj-black-2) !important;
  color: var(--aj-text) !important;
  border: 1px solid var(--aj-border) !important;
  border-radius: var(--aj-radius-sm) !important;
  box-shadow: var(--aj-shadow) !important;
  min-width: 320px !important;
  max-width: none !important;
  padding: .75rem !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}
.datepicker table,
.datepicker .table-condensed,
.tribe-events-c-top-bar__datepicker-container table {
  width: 100% !important;
  table-layout: fixed !important;
  border-collapse: separate !important;
  border-spacing: 2px !important;
  border: 0 !important;
  margin: 0 !important;
}
.datepicker thead th,
.datepicker tbody td,
.datepicker tfoot td,
.datepicker tfoot th {
  background: transparent !important;
  border: 0 !important;
  padding: .35rem .15rem !important;
  text-align: center !important;
  vertical-align: middle !important;
  width: 14.28% !important;     /* 7 equal columns */
  font-size: .85rem !important;
  color: var(--aj-text) !important;
}
.datepicker thead th.dow,
.datepicker thead th {
  color: var(--aj-yellow) !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
}
.datepicker thead th.datepicker-switch,
.datepicker thead th.prev,
.datepicker thead th.next {
  color: var(--aj-yellow) !important;
  font-weight: 700;
  cursor: pointer;
  padding: .4rem !important;
}
.datepicker thead th.datepicker-switch:hover,
.datepicker thead th.prev:hover,
.datepicker thead th.next:hover {
  background: rgba(255,212,0,.08) !important;
  border-radius: 6px !important;
}
.datepicker tbody td.day {
  cursor: pointer;
  border-radius: 6px !important;
}
.datepicker .day:hover, .datepicker .month:hover, .datepicker .year:hover {
  background: var(--aj-yellow) !important;
  color: #000 !important;
}
.datepicker .active, .datepicker .today,
.datepicker .day.active, .datepicker .day.today {
  background: var(--aj-yellow) !important;
  color: #000 !important;
  font-weight: 700;
}
.datepicker .old, .datepicker .new { opacity: .35; }

/* ----- Calendar grid (uniform background) ----- */
.tribe-events-calendar-month,
table.tribe-events-calendar-month {
  background: var(--aj-black-2) !important;
  border: 1px solid var(--aj-border) !important;
  border-radius: var(--aj-radius-sm) !important;
  overflow: hidden;
  display: block !important;
  width: 100% !important;
}

/* TEC uses CSS grid (not table layout). Force thead/tbody/rows to span 100% so their
   internal 7-column grids align across the entire calendar width.
   On mobile, default thead behavior shrinks to content; we force 100% width. */
.tribe-events-calendar-month__header,
.tribe-events-calendar-month__body,
html body .tribe-events-calendar-month > thead,
html body .tribe-events-calendar-month > tbody,
html body .tribe-events-view .tribe-events-calendar-month > thead,
html body .tribe-events-view .tribe-events-calendar-month > tbody {
  display: block !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
html body .tribe-events-calendar-month__header > tr,
html body .tribe-events-calendar-month__header tr,
html body .tribe-events-calendar-month__week,
html body .tribe-events-calendar-month__body tr {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Weekday header row (月火水木金土日) — TRANSPARENT bg so it inherits the calendar bg */
.tribe-events-calendar-month__header,
.tribe-events-calendar-month__header-row {
  background: transparent !important;
  border-bottom: 2px solid var(--aj-yellow) !important;
}
.tribe-events-calendar-month__header-column,
th.tribe-events-calendar-month__header-column {
  background: transparent !important;
  border: 0 !important;
  padding: .65rem 0 !important;       /* vertical only, match day cells */
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.tribe-events-calendar-month__header-column-title,
.tribe-events-calendar-month__header-column-title-mobile {
  color: var(--aj-yellow) !important;
  font-weight: 700 !important;
  font-size: .9rem !important;
  letter-spacing: .08em !important;
  background: transparent !important;
  text-transform: none !important;
}

/* Day cells — UNIFORM bg; ZERO horizontal padding so every column starts/ends at the grid line.
   Content is centered via flex. */
.tribe-events-calendar-month__day,
.tribe-events-calendar-month__day-cell {
  background: var(--aj-black-2) !important;
  border-color: var(--aj-border) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
}
.tribe-events-calendar-month__day .tribe-events-calendar-month__day-cell,
.tribe-events-calendar-month__day-cell--mobile,
.tribe-events-calendar-month__day-cell--desktop {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding: .35rem 0 !important;       /* vertical only */
  margin: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.tribe-events-calendar-month__day--past {
  background: var(--aj-black-2) !important;
}
.tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date,
.tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link {
  color: rgba(255, 255, 255, .35) !important;
}
/* Always render the mobile event dot in brand yellow so it's visible regardless of day state */
.tribe-events-calendar-month__mobile-events-icon--event {
  background-color: var(--aj-yellow) !important;
}
.tribe-events-calendar-month__mobile-events-icon--featured {
  background-color: var(--aj-red) !important;
}
/* ===== Selected day on mobile (tap a date to view events) =====
   TEC default hides the yellow event marker on selected cell. We force it visible
   AND change to red so user can clearly see "this day is selected AND has events".
   Use `html body` prefix so this WINS over the current-day yellow circle when both apply. */
.tribe-events-calendar-month__day-cell--selected,
.tribe-events-calendar-month__day-cell--selected:focus,
.tribe-events-calendar-month__day-cell--selected:hover {
  background-color: transparent !important;
}
html body .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date,
html body .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date,
.tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date {
  background: var(--aj-red) !important;
  color: #fff !important;
  border-radius: 50% !important;
  width: 24px !important;
  height: 24px !important;
  line-height: 24px !important;
  display: inline-block !important;
  text-align: center !important;
  margin: 0 auto !important;
  padding: 0 !important;
  font-weight: 700 !important;
  font-size: .85rem !important;
  vertical-align: middle !important;
  opacity: 1 !important;
}
/* Force the event marker (yellow dot) to remain visible on selected cell */
.tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__mobile-events-icon,
.tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__mobile-events-icon--event,
.tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__mobile-events-icon--featured {
  background-color: var(--aj-yellow) !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Current day: highlight the day NUMBER itself (not the cell border, which gets clipped by the table layout).
   This is the fundamental fix — drawing a circle on the inner element avoids cell-border issues entirely. */
.tribe-events-calendar-month__day--current {
  background: var(--aj-black-2) !important;
}
.tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date,
.tribe-events-calendar-month__day-date--current {
  background: var(--aj-yellow) !important;
  color: #000 !important;
  border-radius: 50% !important;
  width: 24px !important;
  height: 24px !important;
  line-height: 24px !important;
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 700 !important;
  font-size: .85rem !important;
  text-align: center !important;
  box-shadow: none !important;
  vertical-align: middle !important;
}
/* Parent of the current-day date must center its inline-block child */
.tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum,
.tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link {
  text-align: center !important;
  width: 100% !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* Center-align day numbers + weekday headers — fixes column alignment mismatch */
.tribe-events-calendar-month__day,
.tribe-events-calendar-month__day-cell,
.tribe-events-calendar-month__day-cell--mobile,
.tribe-events-calendar-month__day-cell--desktop {
  align-items: center !important;
  text-align: center !important;
  justify-content: flex-start !important;
}
.tribe-events-calendar-month__day-date-daynum,
.tribe-events-calendar-month__day .tribe-events-calendar-month__day-date-daynum,
.tribe-events-calendar-month__day-date-link,
.tribe-events-calendar-month__day a.tribe-events-calendar-month__day-date-link {
  text-align: center !important;
  display: block !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
.tribe-events-calendar-month__day-date,
a.tribe-events-calendar-month__day-date-link {
  color: var(--aj-text) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  text-align: center !important;
  display: block !important;
  width: 100% !important;
  margin: 0 auto !important;
}
.tribe-events-calendar-month__header-column,
th.tribe-events-calendar-month__header-column {
  text-align: center !important;
}
.tribe-events-calendar-month__header-column-title,
.tribe-events-calendar-month__header-column-title-mobile {
  text-align: center !important;
  display: block !important;
  width: 100% !important;
}
/* (current-day color override removed — circle styling above handles it) */

/* Events on calendar */
.tribe-events-calendar-month__calendar-event,
.tribe-events-calendar-month__calendar-event-tooltip-trigger {
  background: var(--aj-yellow) !important;
  color: #000 !important;
  border-radius: 4px !important;
  padding: 2px 6px !important;
  margin: 2px 0 !important;
  border: 0 !important;
}
.tribe-events-calendar-month__calendar-event *,
.tribe-events-calendar-month__calendar-event-title,
.tribe-events-calendar-month__calendar-event-datetime,
.tribe-events-calendar-month__calendar-event-title-link {
  color: #000 !important;
  text-decoration: none !important;
}
.tribe-events-calendar-month__calendar-event:hover { background: var(--aj-yellow-soft) !important; }
.tribe-events-calendar-month__multiday-event-bar { background: var(--aj-yellow) !important; }
.tribe-events-calendar-month__multiday-event-bar-inner { background: var(--aj-yellow) !important; color: #000 !important; }

/* Hide mobile events panel entirely when no day is selected (avoid empty box) */
.tribe-events-calendar-month-mobile-events {
  display: none !important;
}
.tribe-events-calendar-month-mobile-events:has(.tribe-events-calendar-month-mobile-events__mobile-day--show) {
  display: block !important;
}
.tribe-events-calendar-month-mobile-events__mobile-day:not(.tribe-events-calendar-month-mobile-events__mobile-day--show) {
  display: none !important;
}

/* ----- Month view: mobile events panel (under calendar grid on small screens) ----- */
.tribe-events-calendar-month-mobile-events,
.tribe-events-calendar-month-mobile-events__mobile-day,
.tribe-events-calendar-month-mobile-events__mobile-day--show {
  background: var(--aj-black-3) !important;
  border: 1px solid var(--aj-border) !important;
  border-radius: var(--aj-radius-sm) !important;
  padding: .5rem !important;
  margin: 1rem 0 !important;
}
.tribe-events-calendar-month-mobile-events__day-marker {
  color: var(--aj-yellow) !important;
  font-weight: 700 !important;
  border-bottom: 1px solid rgba(255,212,0,.18) !important;
  padding: .65rem .75rem !important;
  margin: 0 0 .5rem !important;
  background: transparent !important;
}
.tribe-events-calendar-month-mobile-events__mobile-event {
  background: var(--aj-black-2) !important;
  border: 1px solid var(--aj-border) !important;
  border-radius: var(--aj-radius-sm) !important;
  padding: .85rem 1rem !important;
  margin: .5rem 0 !important;
}
.tribe-events-calendar-month-mobile-events__mobile-event-datetime {
  color: var(--aj-text-muted) !important;
  font-size: .85rem !important;
  font-weight: 600 !important;
  margin-bottom: .35rem !important;
}
.tribe-events-calendar-month-mobile-events__mobile-event-title,
.tribe-events-calendar-month-mobile-events__mobile-event-title-link {
  color: var(--aj-yellow) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  line-height: 1.4 !important;
}
.tribe-events-calendar-month-mobile-events__mobile-event-title-link:hover {
  color: var(--aj-yellow-soft) !important;
  text-decoration: underline !important;
}
.tribe-events-calendar-month-mobile-events__mobile-event-details *,
.tribe-events-calendar-month-mobile-events__mobile-event * {
  color: inherit;
}

/* Day cell dot indicator (orange/yellow under date with event) */
.tribe-events-calendar-month__day-cell--has-events .tribe-events-calendar-month__day-date,
.tribe-events-calendar-month__day-cell--mobile--has-events .tribe-events-calendar-month__day-date {
  position: relative;
}

/* ----- List view ----- */
.tribe-events-calendar-list__event-title-link,
.tribe-events-calendar-list__event-title-link:active { color: var(--aj-yellow) !important; }
.tribe-events-calendar-list__event {
  background: var(--aj-black-3) !important;
  border: 1px solid var(--aj-border) !important;
  border-radius: var(--aj-radius-sm) !important;
  padding: 1.25rem 1.5rem !important;
  margin-bottom: 1rem !important;
  position: relative !important;
  transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
/* Whole-card clickable via stretched-link pseudo */
.tribe-events-calendar-list__event-title-link {
  position: static !important;
}
.tribe-events-calendar-list__event-title-link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}
/* Suppress the default focus/active outline & box-shadow on the title link
   (which would otherwise appear as a yellow rectangle around the text on click).
   Move focus indicator to the entire card instead. */
.tribe-events-calendar-list__event-title-link:focus,
.tribe-events-calendar-list__event-title-link:active,
.tribe-events-calendar-list__event-title-link:focus-visible,
.tribe-events-calendar-list__event-title-link:hover {
  outline: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
.tribe-events-calendar-list__event:has(.tribe-events-calendar-list__event-title-link:focus-visible) {
  outline: 2px solid var(--aj-yellow);
  outline-offset: 2px;
}
/* Hover effect on whole card */
.tribe-events-calendar-list__event:hover {
  border-color: var(--aj-yellow) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(255,212,0,.12);
}
/* Performer thumbnails / nested images / description text remain visible above the link layer */
.tribe-events-calendar-list__event > * { position: relative; z-index: 0; }
.tribe-events-calendar-list__event-title-link { z-index: 2; }

/* Make the image area also clickable: disable pointer-events on all children except links,
   so the stretched-link pseudo captures clicks across the whole card (incl. image grid). */
.tribe-events-calendar-list__event > *,
.tribe-events-calendar-list__event > * * {
  pointer-events: none;
}
.tribe-events-calendar-list__event a,
.tribe-events-calendar-list__event button,
.tribe-events-calendar-list__event-title-link,
.tribe-events-calendar-list__event-title-link::before {
  pointer-events: auto !important;
}

/* ===== Force all "Add to Calendar" subscribe items visible (defensive) ===== */
.tribe-events-c-subscribe-dropdown__list-item,
.tribe-events-c-subscribe-dropdown__list-item--gcal,
.tribe-events-c-subscribe-dropdown__list-item--ical,
.tribe-events-c-subscribe-dropdown__list-item--ics,
.tribe-events-c-subscribe-dropdown__list-item--outlook-365,
.tribe-events-c-subscribe-dropdown__list-item--outlook-live,
.tribe-events-c-subscribe-dropdown__list-item--outlook-ics {
  display: list-item !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
}
/* Date/time strip above title */
.tribe-events-calendar-list__event-datetime,
.tribe-events-calendar-list__event-datetime-wrapper,
.tribe-events-calendar-list__event-date-tag,
.tribe-events-calendar-list__event-datetime *,
time.tribe-events-calendar-list__event-datetime {
  font-size: .95rem !important;
  color: var(--aj-text-muted) !important;
  letter-spacing: .04em !important;
  margin-bottom: .35rem !important;
}
/* Event title */
.tribe-events-calendar-list__event-title {
  font-size: 1.4rem !important;
  margin: 0 0 .55rem !important;
  line-height: 1.35 !important;
}
/* Description excerpt */
.tribe-events-calendar-list__event-description,
.tribe-events-calendar-list__event-description p,
.tribe-events-calendar-list__event-description span {
  font-size: 1.02rem !important;
  line-height: 1.65 !important;
  color: var(--aj-text) !important;
  margin: 0 0 .8rem !important;
}
/* Cost on list */
.tribe-events-calendar-list__event-cost,
.tribe-events-calendar-list__event-cost * {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: var(--aj-yellow) !important;
  letter-spacing: .02em !important;
}
/* Venue / extras */
.tribe-events-calendar-list__event-venue,
.tribe-events-calendar-list__event-venue *,
.tribe-events-calendar-list__event-author,
.tribe-events-calendar-list__event-author * {
  font-size: .95rem !important;
  color: var(--aj-text-muted) !important;
}

@media (max-width: 640px) {
  .tribe-events-calendar-list__event { padding: 1rem !important; }
  .tribe-events-calendar-list__event-title { font-size: 1.2rem !important; }
  .tribe-events-calendar-list__event-description { font-size: .98rem !important; }
  .tribe-events-calendar-list__event-cost { font-size: 1.08rem !important; }
}

.tribe-events-calendar-list__month-separator,
.tribe-events-calendar-list__month-separator-text {
  color: var(--aj-yellow) !important;
  background: transparent !important;
  border: 0 !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  letter-spacing: .04em !important;
}
.tribe-events-calendar-list__month-separator::before {
  border-color: var(--aj-yellow) !important;
}

/* General navigation under calendar */
.tribe-events-c-nav,
.tribe-events-c-nav__list,
.tribe-events-c-nav__list-item {
  background: transparent !important;
  border: 0 !important;
}
.tribe-events-c-nav__list-item-link,
.tribe-events-c-nav__next,
.tribe-events-c-nav__prev,
.tribe-events-c-nav__today {
  background: var(--aj-black-3) !important;
  color: var(--aj-yellow) !important;
  border: 1px solid var(--aj-border) !important;
  border-radius: 999px !important;
  padding: .5rem 1rem !important;
}
.tribe-events-c-nav__list-item-link:hover { background: var(--aj-yellow) !important; color: #000 !important; border-color: var(--aj-yellow) !important; }

/* Hide "« イベント一覧" back link at top of single event page */
.tribe-events-back,
p.tribe-events-back { display: none !important; }

/* ==================== Single Event Page ==================== */
.single-tribe_events .tribe-events-content,
.single-tribe_events .tribe-events-single-event-description,
.single-tribe_events .tribe-events-content p,
.single-tribe_events .tribe-events-content li,
.single-tribe_events .aj-desc,
.single-tribe_events .aj-desc *,
.single-tribe_events .aj-genre,
.single-tribe_events .entry-content p,
.single-tribe_events .entry-content li {
  color: var(--aj-text) !important;
  font-size: 1.05rem !important;
  line-height: 1.85 !important;
}
.single-tribe_events .aj-genre {
  display: inline-block;
  background: var(--aj-yellow) !important;
  color: #000 !important;
  padding: .3rem .9rem !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: .85rem !important;
  margin-bottom: 1rem !important;
}
.single-tribe_events .aj-genre strong { color: #000 !important; }

/* Date/cost line under title */
.single-tribe_events .tribe-events-schedule {
  background: var(--aj-black-3) !important;
  border: 1px solid var(--aj-border) !important;
  border-left: 4px solid var(--aj-yellow) !important;
  border-radius: var(--aj-radius-sm) !important;
  padding: 1rem 1.25rem !important;
  margin: 1rem 0 2rem !important;
}
.single-tribe_events .tribe-events-schedule h2,
.single-tribe_events .tribe-events-schedule * {
  color: var(--aj-text) !important;
  font-size: 1.1rem !important;
  font-style: normal !important;
  font-family: var(--aj-font-jp) !important;
  margin: 0 !important;
  padding: 0 !important;
}
.single-tribe_events .tribe-events-schedule h2::after { display: none !important; }
.single-tribe_events .tribe-events-schedule .tribe-events-cost {
  color: var(--aj-yellow) !important;
  font-weight: 700 !important;
  margin-left: .5rem !important;
}

/* Performer gallery on single — larger, nicer */
.single-tribe_events .aj-performers {
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1rem;
  margin: 1.5rem 0 2rem;
}
.single-tribe_events .aj-performers img {
  border-radius: var(--aj-radius-sm);
  box-shadow: var(--aj-shadow-sm);
  border: 1px solid var(--aj-border);
}

/* Hide standalone featured image on single event pages (gallery handles all photos) */
.single-tribe_events .post-thumb,
.single-tribe_events .post-thumb-img-content,
.single-tribe_events .post-thumbnail,
.single-tribe_events .ast-article-image-container,
.single-tribe_events .ast-blog-featured-section,
.single-tribe_events .ast-article-single .post-thumbnail-wrap,
.single-tribe_events .tribe-events-event-image,
.single-tribe_events .tribe-events-single-event-featured-image,
.single-tribe_events .tec-block-event-featured-image,
.single-tribe_events .tribe-blocks-event__featured-image,
.single-tribe_events .entry-content > .tribe-events-event-image:first-child {
  display: none !important;
}

/* ========== Event DETAILS panel ========== */
.single-tribe_events .tribe-events-event-meta,
.tribe-events-event-meta,
.tribe-events-event-meta.primary,
.tribe-events-event-meta.secondary {
  position: relative;
  background:
    linear-gradient(180deg, var(--aj-black-3), var(--aj-black-2)) !important;
  border: 1px solid var(--aj-border) !important;
  border-left: 4px solid var(--aj-yellow) !important;
  border-radius: var(--aj-radius) !important;
  color: var(--aj-text) !important;
  padding: 1.75rem 2rem !important;
  margin: 2rem 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  float: none !important;
  clear: both !important;
  box-shadow: var(--aj-shadow-sm);
  display: block !important;
}
/* DETAILS heading rendered via real DOM element from template (not pseudo) */
.tribe-events-event-meta::before { content: none !important; display: none !important; }
.tribe-events-event-meta .aj-details__title {
  display: block;
  color: var(--aj-yellow);
  font-family: var(--aj-font-display);
  font-weight: 700;
  letter-spacing: .35em;
  font-size: .8rem;
  margin: 0 0 1.25rem;
  padding: 0 0 .7rem 0;
  border-bottom: 1px solid rgba(255,212,0,.25);
}
/* Hide TEC's own internal heading (詳細) */
.tribe-events-event-meta h2,
.tribe-events-event-meta h3,
.tribe-events-event-meta .tribe-events-single-section-title { display: none !important; }

/* Group wrappers transparent */
.tribe-events-event-meta .tribe-events-meta-group,
.tribe-events-event-meta .tribe-events-meta-group-details,
.tribe-events-event-meta .tribe-events-meta-group-organizer,
.tribe-events-event-meta .tribe-events-meta-group-venue {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  width: auto !important;
  float: none !important;
  margin: 0 !important;
}

/* New <div>-based details (override template) — clean layout, no ul interference */
.tribe-events-event-meta .aj-details,
.tribe-events-event-meta .aj-meta-details {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
}
.tribe-events-event-meta .aj-details {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.tribe-events-event-meta .aj-details__row {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 1.25rem;
  align-items: baseline;
  padding: 0;
  margin: 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding-bottom: 1rem;
}
.tribe-events-event-meta .aj-details__row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.tribe-events-event-meta .aj-details__label {
  color: var(--aj-yellow);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .04em;
  white-space: nowrap;
  display: inline-block;
}
.tribe-events-event-meta .aj-details__value {
  color: #ffffff;
  font-weight: 600;
  font-size: 1.2rem;
  line-height: 1.45;
  display: inline-block;
}
/* Cost row: no label, value rendered in yellow accent */
.tribe-events-event-meta .aj-details__row--cost {
  grid-template-columns: 1fr !important;
}
.tribe-events-event-meta .aj-details__value--cost,
.tribe-events-event-meta .aj-details__value--cost.tribe-events-event-cost {
  color: var(--aj-yellow) !important;
  font-weight: 700 !important;
  font-size: 1.3rem !important;
}
.tribe-events-event-meta .aj-details__value--cost::before {
  content: "Music Charge：";
  color: rgba(255, 255, 255, .75);
  font-weight: 500;
  font-size: 1rem;
  margin-right: .3em;
}
.tribe-events-event-meta .aj-details__value abbr,
.tribe-events-event-meta .aj-details__value span {
  font: inherit;
  color: inherit;
  text-decoration: none;
  border: 0;
  margin: 0;
  padding: 0;
  background: transparent;
}
@media (max-width: 640px) {
  .tribe-events-event-meta .aj-details { gap: .75rem; }
  .tribe-events-event-meta .aj-details__row { padding-bottom: .75rem; column-gap: .9rem; }
  .tribe-events-event-meta .aj-details__label { font-size: .92rem; }
  .tribe-events-event-meta .aj-details__value { font-size: 1.05rem; }
}

/* Legacy ul fallback (in case template override fails to load) */
.tribe-events-event-meta .tribe-events-meta-list,
.tribe-events-event-meta ul.tribe-events-meta-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  padding-inline-start: 0 !important;
}
/* Meta groups also flush */
.tribe-events-event-meta .tribe-events-meta-group {
  margin: 0 !important;
  padding: 0 !important;
}
.tribe-events-event-meta .tribe-events-meta-item,
.tribe-events-event-meta li.tribe-events-meta-item,
.tribe-events-event-meta .tribe-events-meta-list li {
  display: grid !important;
  grid-template-columns: max-content 1fr !important;
  column-gap: 1.25rem !important;
  align-items: baseline !important;
  padding: .85rem 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
  list-style: none !important;
  background: transparent !important;
}
.tribe-events-event-meta .tribe-events-meta-list li:last-child,
.tribe-events-event-meta .tribe-events-meta-item:last-child {
  border-bottom: 0 !important;
}

/* Label (日付:, 時間:, 費用:) */
.tribe-events-event-meta .tribe-events-meta-label,
.tribe-events-event-meta .tribe-events-meta-item .tribe-events-meta-label {
  display: inline-block !important;
  color: var(--aj-yellow) !important;
  font-family: var(--aj-font-jp) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  letter-spacing: .04em !important;
  white-space: nowrap !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}
/* Value (date / time / cost) */
.tribe-events-event-meta .tribe-events-meta-value,
.tribe-events-event-meta .tribe-events-meta-item .tribe-events-meta-value {
  display: block !important;
  color: #ffffff !important;
  font-family: var(--aj-font-jp) !important;
  font-weight: 600 !important;
  font-size: 1.2rem !important;
  line-height: 1.45 !important;
  letter-spacing: .01em !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

/* Cost — yellow accent, since the row has no label */
.tribe-events-event-meta .tribe-events-event-cost.tribe-events-meta-value,
.tribe-events-event-meta .tribe-events-event-cost,
.tribe-events-event-meta .tribe-events-cost {
  color: var(--aj-yellow) !important;
  font-weight: 700 !important;
  font-size: 1.3rem !important;
}

/* Inline content within meta-value (abbr / div for time range) */
.tribe-events-event-meta .tribe-events-meta-value abbr,
.tribe-events-event-meta .tribe-events-meta-value div,
.tribe-events-event-meta .tribe-events-meta-value span {
  display: inline !important;
  text-decoration: none !important;
  border: 0 !important;
  color: inherit !important;
  font: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

/* Mobile */
@media (max-width: 640px) {
  .tribe-events-event-meta { padding: 1.25rem 1.25rem !important; }
  .tribe-events-event-meta .tribe-events-meta-item {
    grid-template-columns: max-content 1fr !important;
    column-gap: .9rem !important;
    padding: .65rem 0 !important;
  }
  .tribe-events-event-meta .tribe-events-meta-label { font-size: .92rem !important; }
  .tribe-events-event-meta .tribe-events-meta-value { font-size: 1.05rem !important; }
}

/* Add to Calendar button */
.tribe-events-cal-links a,
.tribe-events-c-subscribe-dropdown__button {
  color: var(--aj-yellow) !important;
}
.tribe-events-c-subscribe-dropdown__button {
  background: var(--aj-black-3) !important;
  border: 1px solid var(--aj-yellow) !important;
  border-radius: 999px !important;
  padding: .55rem 1.1rem !important;
}

/* Mobile: details panel single column */
@media (max-width: 640px) {
  .tribe-events-event-meta {
    grid-template-columns: 1fr !important;
    padding: 1.5rem 1.25rem !important;
  }
}

/* Performer gallery on event detail page */
.aj-performers { display:grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap:.75rem; margin: 1rem 0 1.5rem; }
.aj-performers img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius: var(--aj-radius-sm); border:1px solid var(--aj-border); }

/* List view image thumbs — uniform fixed size regardless of count */
.aj-list-img-wrap { width: 100%; }
.aj-list-img-wrap--single .tribe-events-calendar-list__event-featured-image,
.aj-list-img-wrap--single img {
  width: 96px !important;
  height: 96px !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid var(--aj-border);
  display: block;
}
.aj-list-img-wrap--multi .aj-list-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-content: flex-start;
}
.aj-list-img-wrap--multi .aj-list-thumb {
  width: 96px !important;
  height: 96px !important;
  flex: 0 0 96px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid var(--aj-border);
  display: block;
}
@media (max-width: 640px) {
  .aj-list-img-wrap--single img,
  .aj-list-img-wrap--multi .aj-list-thumb {
    width: 72px !important;
    height: 72px !important;
    flex-basis: 72px;
  }
}

/* ==================== Modal ==================== */
.aj-modal {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.78);
  display: none;
  align-items: center; justify-content: center;
  z-index: 99999;
  padding: 1rem;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.aj-modal[hidden] { display: none !important; }
.aj-modal.is-open { display: flex !important; }
.aj-modal__panel {
  position: relative;
  background: var(--aj-black);
  border: 1px solid var(--aj-yellow);
  border-radius: var(--aj-radius);
  width: 100%; max-width: 760px;
  max-height: 90vh; overflow: hidden;
  box-shadow: var(--aj-shadow);
  animation: ajPop .25s ease;
}
.aj-modal--wide .aj-modal__panel {
  max-width: min(1200px, 95vw);
}
.aj-modal__body--image {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  padding: 0;
  height: 85vh;
  overflow: hidden;
}
.aj-modal__body--image img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
.aj-modal__foot {
  display: flex;
  justify-content: center;
  gap: .5rem;
  padding: .75rem 1rem;
  background: var(--aj-black);
  border-top: 1px solid var(--aj-border);
}
@keyframes ajPop { from { transform: scale(.96); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.aj-modal__close {
  position: absolute; top: .5rem; right: .5rem;
  background: var(--aj-yellow) !important; color:#000 !important; border:0;
  width: 36px; height: 36px; border-radius: 50% !important;
  cursor: pointer; font-size: 1.4rem; line-height: 1;
  display:flex; align-items:center; justify-content:center;
  z-index: 2;
  padding: 0 !important;
  box-shadow: none !important;
}
.aj-modal__close:hover { background: var(--aj-yellow-soft) !important; }
.aj-modal__body { padding: 0; height: 80vh; }
.aj-modal__body iframe { width: 100%; height: 100%; border: 0; background:#fff; display:block; }
body.aj-modal-open { overflow: hidden; }

/* ==================== Menu page ==================== */
.aj-menu-hero__inner { position: relative; max-width: 800px; margin: 0 auto; }
.aj-menu-hero__sub {
  color: var(--aj-yellow) !important;
  font-family: var(--aj-font-display);
  letter-spacing: .4em;
  font-size: .85rem;
  margin: 0 0 .6rem;
}
.aj-menu-hero__title {
  font-family: var(--aj-font-display);
  font-size: clamp(2.5rem, 7vw, 4.5rem);
  letter-spacing: .04em;
  margin: 0 0 .5rem;
  color: #fff !important;
}
.aj-menu-hero__lead { color: var(--aj-text-muted) !important; margin: 0; }

.aj-menu {
  max-width: 1100px;
  margin: 3rem auto 4rem;
  padding: 0 1.25rem;
  /* Continuous column flow so sections of different heights pack naturally */
  column-count: 2;
  column-gap: 3.5rem;
}
@media (max-width: 768px) {
  .aj-menu { column-count: 1; margin: 2rem auto; }
}

.aj-menu-section {
  break-inside: avoid;
  page-break-inside: avoid;
  -webkit-column-break-inside: avoid;
  display: block;
  margin: 0 0 2.5rem;
}
.aj-menu-section__head {
  display: flex;
  align-items: baseline;
  gap: .6rem;
  border-bottom: 2px solid var(--aj-yellow);
  padding-bottom: .6rem;
  margin-bottom: 1rem;
  position: relative;
}
.aj-menu-section__icon {
  font-size: 1.4rem;
  line-height: 1;
  filter: drop-shadow(0 0 8px rgba(255,212,0,.35));
}
.aj-menu-section__title,
.entry-content .aj-menu-section__title {
  font-family: var(--aj-font-display);
  font-size: 1.6rem;
  letter-spacing: .04em;
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
}
.aj-menu-section__title::after { display: none !important; }
.aj-menu-section__note {
  color: var(--aj-text-muted) !important;
  font-size: .8rem;
  margin: 0 0 .75rem !important;
  padding: 0;
  text-align: right;
}

.aj-menu-list { margin: 0; padding: 0; }
.aj-menu-row {
  display: flex;
  align-items: baseline;
  gap: .75rem;
  padding: .55rem 0;
  border-bottom: 1px dashed rgba(255,255,255,.08);
}
.aj-menu-row:last-child { border-bottom: 0; }
.aj-menu-row dt {
  margin: 0; padding: 0;
  color: var(--aj-text) !important;
  font-weight: 500;
  flex: 0 0 auto;
}
.aj-menu-row dd {
  margin: 0; padding: 0;
  margin-left: auto;
  color: var(--aj-yellow) !important;
  font-family: var(--aj-font-display);
  font-size: 1.15rem;
  letter-spacing: .04em;
  white-space: nowrap;
  flex: 0 0 auto;
}
/* Dotted leader between dt and dd */
.aj-menu-row::before {
  content: "";
  flex: 1 1 auto;
  align-self: end;
  margin: 0 .35rem;
  border-bottom: 1px dotted rgba(255,212,0,.35);
  height: 1px;
  transform: translateY(-4px);
  order: 1;
}
.aj-menu-row dt { order: 0; }
.aj-menu-row dd { order: 2; }

.aj-menu-recommend {
  margin-top: 1rem;
  padding: .65rem 1rem;
  border: 1px dashed var(--aj-yellow);
  border-radius: 999px;
  text-align: center;
  color: var(--aj-yellow) !important;
  font-weight: 600;
  letter-spacing: .04em;
  background: rgba(255,212,0,.04);
}

.aj-menu-foot {
  text-align: center;
  color: var(--aj-text-muted) !important;
  font-size: .85rem;
  margin: 2rem 1rem 4rem;
  letter-spacing: .04em;
}

/* ==================== Map page ==================== */
.aj-map-heading {
  margin-top: 2.5rem !important;
  font-family: var(--aj-font-elegant) !important;
  font-style: normal;
  color: var(--aj-yellow) !important;
}
.aj-map-caption { color: var(--aj-text-muted) !important; margin-top: -.4rem; }
.aj-map-figure {
  margin: 1rem 0 1.5rem;
  background: #fff;
  border: 1px solid var(--aj-border);
  border-radius: var(--aj-radius);
  overflow: hidden;
  box-shadow: var(--aj-shadow-sm);
}
.aj-map-figure img { display: block; width: 100%; height: auto; }
.aj-map-embed iframe { width: 100%; height: 420px; border-radius: var(--aj-radius); }
@media (max-width: 640px) {
  .aj-map-embed iframe { height: 320px; }
}

/* Clickable Google Map preview that opens modal */
.aj-map-trigger {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  background: transparent;
  border: 1px solid var(--aj-border);
  border-radius: var(--aj-radius);
  overflow: hidden;
  cursor: pointer;
  transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.aj-map-trigger:hover {
  border-color: var(--aj-yellow);
  box-shadow: 0 8px 24px rgba(255,212,0,.18);
}
.aj-map-trigger iframe {
  display: block;
  width: 100%;
  height: 360px;
  border: 0;
  pointer-events: none;     /* let parent button capture click */
}
.aj-map-trigger img,
.aj-map-trigger--image img {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}
/* Store-original (hand-drawn) MAP — display at natural-ish size to avoid blur,
   centered on the page, click to open larger modal */
.aj-map-trigger--image {
  background: #fff;
  max-width: 460px;
  width: 100%;
  margin: 1rem auto 1.5rem;
  display: block;
}
.aj-map-trigger--image img {
  max-width: 100%;
  width: auto;        /* don't upscale beyond intrinsic size */
  margin: 0 auto;
}
@media (max-width: 640px) {
  .aj-map-trigger--image { max-width: 100%; }
}
.aj-map-trigger__overlay {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  background: var(--aj-yellow);
  color: #000;
  padding: .55rem 1rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .9rem;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  box-shadow: 0 4px 14px rgba(0,0,0,.45);
  pointer-events: none;
}
.aj-map-trigger__icon { font-size: 1rem; }
@media (max-width: 640px) {
  .aj-map-trigger iframe { height: 280px; }
  .aj-map-trigger__overlay { bottom: .6rem; right: .6rem; padding: .4rem .8rem; font-size: .8rem; }
}

/* ==================== Contact page ==================== */
.aj-contact { max-width: 920px; margin: 0 auto; padding: 1rem 1.25rem 4rem; }

.aj-contact-hero {
  text-align: center;
  padding: 3rem 1rem 2rem;
  border-bottom: 1px solid var(--aj-border);
  margin-bottom: 2.5rem;
}
.aj-contact-eyebrow {
  font-family: var(--aj-font-display) !important;
  letter-spacing: .35em;
  color: var(--aj-yellow) !important;
  font-size: .85rem;
  margin: 0 0 .8rem;
}
.aj-contact-title,
.entry-content .aj-contact-title {
  font-family: var(--aj-font-elegant) !important;
  font-style: normal;
  font-size: clamp(2rem, 5vw, 3rem) !important;
  margin: 0 0 1rem !important;
  color: #fff !important;
  padding: 0 !important;
}
.aj-contact-title::after { display: none !important; }
.aj-contact-lead { color: var(--aj-text-muted) !important; max-width: 640px; margin: 0 auto 1.5rem !important; line-height: 1.85; }
.aj-contact-cta { font-size: 1.05rem !important; padding: 1rem 2.2rem !important; }

.aj-contact-section {
  margin: 3rem 0;
}
.aj-contact-section + .aj-contact-section { margin-top: 4rem; }

.aj-contact-channel { text-align: center; }
.aj-contact-channel__icon { font-size: 2rem; line-height: 1; margin-bottom: .35rem; }
.aj-contact-channel__title,
.entry-content .aj-contact-channel__title {
  font-family: var(--aj-font-elegant) !important;
  font-style: normal;
  color: var(--aj-yellow) !important;
  font-size: 1.2rem !important;
  margin: 0 0 .75rem !important;
  padding: 0 !important;
}
.aj-contact-channel__value { font-size: 1.2rem !important; margin: 0 0 .5rem !important; }
.aj-contact-channel__value a { color: var(--aj-yellow) !important; }
.aj-contact-channel__note { color: var(--aj-text-muted) !important; font-size: .85rem !important; margin: 0 !important; line-height: 1.6 !important; }

.aj-contact-h,
.entry-content .aj-contact-h {
  font-family: var(--aj-font-elegant) !important;
  font-style: normal;
  font-size: clamp(1.4rem, 3vw, 1.8rem) !important;
  color: #fff !important;
  padding-bottom: .6rem !important;
  margin: 0 0 1.5rem !important;
  position: relative;
  border-bottom: 1px solid var(--aj-border);
}
.aj-contact-h::after {
  content: "";
  position: absolute;
  left: 0; bottom: -2px;
  width: 56px; height: 3px;
  background: var(--aj-yellow);
  display: block !important;
  margin: 0 !important;
}
/* Contact page list — match private/info page (plain bullet list, normal spacing) */
.aj-contact-list {
  margin: 1rem 0;
  padding: 0;
}
.aj-contact-list li {
  margin: .25rem 0;
  padding: 0;
  border: 0;
  list-style-position: outside;
}
.aj-contact-list li::before { content: none !important; }

@media (max-width: 640px) {
  .aj-contact-hero { padding: 2rem 1rem 1.5rem; margin-bottom: 1.5rem; }
  .aj-contact-section { margin: 2rem 0; }
  .aj-contact-section + .aj-contact-section { margin-top: 2.5rem; }
}

/* ==================== Social icons + © notice (footer) ==================== */
.aj-social {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-left: 1rem;
  vertical-align: middle;
}
.aj-social__link,
.aj-copy-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,212,0,.3) !important;
  color: #fff !important;
  text-decoration: none !important;
  transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
  padding: 0 !important;
  cursor: pointer;
  flex: 0 0 26px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 700 !important;
  font-size: .85rem !important;
  line-height: 1 !important;
  font-style: normal !important;
}
.aj-social__link--fb { font-family: "Helvetica Neue", Arial, sans-serif !important; font-style: italic !important; font-size: 1rem !important; }
.aj-social__link--ig { font-size: .68rem !important; letter-spacing: .03em !important; }
.aj-social__link--x  { font-size: .85rem !important; font-family: "Helvetica Neue", Arial, sans-serif !important; }
.aj-copy-btn { font-size: .95rem !important; }
.aj-social__link svg,
.aj-copy-btn svg { display: block; }
.aj-social__link svg path,
.aj-copy-btn svg path { fill: currentColor !important; }
.aj-social__link:hover,
.aj-copy-btn:hover {
  background: var(--aj-yellow) !important;
  color: #000 !important;
  border-color: var(--aj-yellow) !important;
  transform: translateY(-2px);
}
.site-footer .aj-social__link,
.site-footer .aj-copy-btn,
.ast-footer-copyright .aj-social__link,
.ast-footer-copyright .aj-copy-btn { color: #fff !important; }
.site-footer .aj-social__link:hover,
.site-footer .aj-copy-btn:hover,
.ast-footer-copyright .aj-social__link:hover,
.ast-footer-copyright .aj-copy-btn:hover { color: #000 !important; }

@media (max-width: 640px) {
  .aj-social {
    display: flex;
    margin: .85rem 0 0;
    justify-content: center;
    gap: .5rem;
  }
}

/* Copyright modal body */
.aj-copyright-modal__body {
  padding: 2rem 1.75rem;
  color: var(--aj-text);
  max-height: 75vh;
  overflow-y: auto;
}
.aj-copyright-modal__body h3 {
  font-family: "Dancing Script", "Caveat", cursive, serif;
  font-size: 1.8rem;
  color: var(--aj-yellow) !important;
  margin: 0 0 1rem;
  text-align: center;
}
.aj-copyright-modal__body h4 {
  color: var(--aj-yellow) !important;
  font-size: 1rem;
  letter-spacing: .08em;
  margin: 1.5rem 0 .5rem;
  border-bottom: 1px solid var(--aj-border);
  padding-bottom: .35rem;
}
.aj-copyright-modal__body p,
.aj-copyright-modal__body li {
  font-size: .92rem;
  line-height: 1.85;
  color: var(--aj-text) !important;
}
.aj-copyright-modal__body ul {
  padding-left: 1.5rem;
  margin: .5rem 0;
}
.aj-copyright-modal__body small {
  display: block;
  margin-top: 1.5rem;
  color: var(--aj-text-muted) !important;
  font-size: .8rem;
  text-align: center;
}

/* ==================== 404 Error Page ==================== */
.aj-error {
  min-height: calc(100vh - 200px);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem 1.5rem;
  position: relative;
  overflow: hidden;
  width: 100%;
}
/* Background extends full viewport via pseudo */
.aj-error::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(255,212,0,.12), transparent 60%),
    radial-gradient(ellipse at 50% 80%, rgba(227,25,59,.08), transparent 60%),
    linear-gradient(180deg, #000 0%, #0a0a0a 100%),
    repeating-linear-gradient(45deg, transparent 0 14px, rgba(255,212,0,.04) 14px 15px);
  pointer-events: none;
  z-index: 0;
}
.aj-error__inner {
  position: relative;
  z-index: 1;
  max-width: 600px;
  width: 100%;
  margin: 0 auto;
}
.aj-error__code {
  font-family: var(--aj-font-display, "Bebas Neue"), Impact, sans-serif;
  font-size: clamp(7rem, 22vw, 14rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: .04em;
  background: linear-gradient(180deg, var(--aj-yellow) 0%, var(--aj-yellow-deep) 60%, transparent 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 60px rgba(255,212,0,.25);
  margin: 0 0 .5rem;
}
.aj-error__title {
  font-family: "Dancing Script", "Caveat", cursive, serif;
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 700;
  color: #fff;
  margin: 0 0 1.25rem;
  line-height: 1.2;
}
.aj-error__lead {
  color: var(--aj-text-muted) !important;
  font-size: 1rem;
  line-height: 1.8;
  margin: 0 0 2rem;
}
.aj-error__actions {
  display: flex;
  justify-content: center;
  gap: .75rem;
  flex-wrap: wrap;
  margin-bottom: 2.5rem;
}
.aj-error__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: .5rem 1.25rem;
  flex-wrap: wrap;
  border-top: 1px solid var(--aj-border);
  padding-top: 1.5rem;
}
.aj-error__links li { margin: 0; padding: 0; }
.aj-error__links a {
  color: var(--aj-text-muted) !important;
  font-size: .9rem;
  text-decoration: none;
  letter-spacing: .04em;
}
.aj-error__links a:hover {
  color: var(--aj-yellow) !important;
  text-decoration: none;
}
@media (max-width: 640px) {
  .aj-error__actions { flex-direction: column; align-items: stretch; }
  .aj-error__actions .aj-btn { width: 100%; justify-content: center; }
}

/* ==================== Splash ==================== */
html.aj-splash-active { overflow: hidden; }
.aj-splash {
  position: fixed; inset: 0;
  z-index: 100000;
  display: flex; align-items: center; justify-content: center;
  pointer-events: auto;
  opacity: 0;
  transition: opacity .6s ease;
}
.aj-splash.is-active { opacity: 1; }
.aj-splash.is-leaving {
  opacity: 0;
  pointer-events: none;
  transition: opacity .8s ease .1s;
}
/* Inner content vacuum-zooms into the center */
.aj-splash__inner {
  transform-origin: center center;
  transition: transform .75s cubic-bezier(.55, .04, .85, .03), opacity .6s ease .05s, filter .75s ease;
}
.aj-splash.is-leaving .aj-splash__inner {
  transform: scale(0);
  opacity: 0;
  filter: blur(4px);
}
.aj-splash.is-leaving .aj-splash__bg {
  opacity: 0;
  transform: scale(1.1);
  transition: opacity .8s ease .15s, transform .8s ease;
  transform-origin: center center;
}
.aj-splash__bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,212,0,.18), transparent 60%),
    #000;
  animation: ajSplashBg 1.8s ease both;
}
@keyframes ajSplashBg {
  0%   { background-position: 0 0; }
  100% { background-position: 0 0; opacity: 1; }
}

.aj-splash__inner {
  position: relative;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  animation: ajSplashIn .9s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes ajSplashIn {
  0%   { transform: translateY(20px) scale(.92); opacity: 0; filter: blur(6px); }
  60%  { transform: translateY(0) scale(1.02); opacity: 1; filter: blur(0); }
  100% { transform: translateY(0) scale(1); opacity: 1; filter: blur(0); }
}

.aj-splash__logo {
  width: clamp(120px, 24vw, 180px);
  height: auto;
  filter: drop-shadow(0 0 24px rgba(255,212,0,.35));
  animation: ajSplashLogo 1.6s ease-out both;
}
@keyframes ajSplashLogo {
  0%   { transform: scale(.7) rotate(-5deg); opacity: 0; }
  60%  { transform: scale(1.08) rotate(0); opacity: 1; }
  100% { transform: scale(1) rotate(0); opacity: 1; }
}

.aj-splash__title {
  font-family: "Cascadia Mono", Consolas, "Courier New", monospace !important;
  font-style: normal !important;
  font-weight: 500 !important;
  font-size: clamp(2.6rem, 8vw, 4.8rem) !important;
  letter-spacing: .01em !important;
  word-spacing: -.4em !important;
  text-transform: none !important;
  color: #fff !important;
  line-height: 1.1 !important;
  /* Handwriting reveal: clip-path slides from left to right */
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
  animation: ajHandwrite 1.6s cubic-bezier(.55, 0, .25, 1) .25s forwards;
  position: relative;
}
.aj-splash__title::after {
  /* "pen tip" — a yellow vertical cursor that traces the reveal edge */
  content: "";
  position: absolute;
  top: 0; bottom: 5%;
  right: 0;
  width: 3px;
  background: var(--aj-yellow);
  box-shadow: 0 0 12px rgba(255,212,0,.8);
  opacity: 0;
  animation: ajPenTip 1.6s ease .25s forwards;
}
@keyframes ajHandwrite {
  0%   { -webkit-clip-path: inset(0 100% 0 0); clip-path: inset(0 100% 0 0); }
  100% { -webkit-clip-path: inset(0 0 0 0); clip-path: inset(0 0 0 0); }
}
@keyframes ajPenTip {
  0%   { opacity: 0; transform: translateX(-100%); }
  10%  { opacity: 1; }
  85%  { opacity: 1; }
  100% { opacity: 0; transform: translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .aj-splash__title { -webkit-clip-path: none !important; clip-path: none !important; animation: none !important; }
  .aj-splash__title::after { display: none !important; }
}
.aj-splash__a {
  color: var(--aj-red) !important;
  font-family: inherit !important;
  font-style: inherit !important;
  font-weight: inherit !important;
  text-transform: none !important;
}
.aj-splash__sub {
  color: var(--aj-text-muted);
  letter-spacing: .35em;
  font-size: .85rem;
  text-transform: uppercase;
  animation: ajSplashSub 1.5s ease both;
}
@keyframes ajSplashSub {
  0%   { opacity: 0; letter-spacing: .15em; }
  60%  { opacity: 0; }
  100% { opacity: 1; letter-spacing: .35em; }
}

.aj-splash__bar {
  width: 200px;
  height: 2px;
  background: rgba(255,255,255,.08);
  border-radius: 2px;
  overflow: hidden;
  margin-top: 1rem;
}
.aj-splash__bar span {
  display: block;
  height: 100%;
  width: 100%;
  background: linear-gradient(90deg, var(--aj-yellow), var(--aj-yellow-soft), var(--aj-yellow));
  background-size: 200% 100%;
  transform-origin: left;
  animation: ajSplashBar 1.6s cubic-bezier(.2,.7,.2,1) both,
             ajSplashShine 1.6s linear infinite;
}
@keyframes ajSplashBar {
  0%   { transform: scaleX(0); }
  100% { transform: scaleX(1); }
}
@keyframes ajSplashShine {
  0%   { background-position: 0 0; }
  100% { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .aj-splash, .aj-splash *, .aj-splash::before {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}

/* ========== Cinematic content reveal after splash ========== */
html.aj-content-revealing .site-header,
html.aj-content-revealing .ast-mobile-header-wrap,
html.aj-content-revealing .ast-primary-header-bar {
  animation: ajRevealHeader .9s cubic-bezier(.2,.7,.2,1) both;
}
html.aj-content-revealing .aj-hero,
html.aj-content-revealing .aj-hero-inner {
  animation: ajRevealHero 1.1s cubic-bezier(.2,.7,.2,1) both;
}
html.aj-content-revealing .aj-hero-inner { animation-delay: .15s; }
html.aj-content-revealing .entry-content > *:not(.aj-hero) {
  animation: ajRevealMain 1s cubic-bezier(.2,.7,.2,1) both;
  animation-delay: .25s;
}
html.aj-content-revealing .aj-card,
html.aj-content-revealing .tribe-events-calendar-list__event,
html.aj-content-revealing .aj-section--alt > * {
  animation: ajRevealCard .9s cubic-bezier(.2,.7,.2,1) both;
  animation-delay: .35s;
}

@keyframes ajRevealHeader {
  from { opacity: 0; transform: translateY(-18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes ajRevealHero {
  from { opacity: 0; transform: scale(1.03); filter: blur(8px); }
  60%  { opacity: 1; }
  to   { opacity: 1; transform: scale(1); filter: blur(0); }
}
@keyframes ajRevealMain {
  from { opacity: 0; transform: translateY(24px); filter: blur(4px); }
  to   { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@keyframes ajRevealCard {
  from { opacity: 0; transform: translateY(18px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  html.aj-content-revealing * {
    animation: none !important;
  }
}

/* ==================== Comments off ==================== */
.comments-area, .comment-respond { display: none !important; }

/* ==================== Mobile ==================== */
@media (max-width: 768px) {
  /* Tighter container/page paddings on small screens */
  .ast-container, .ast-container-fluid { padding-left: .75rem !important; padding-right: .75rem !important; }
  .entry-content, .ast-article-single { padding-left: 0 !important; padding-right: 0 !important; }
  .aj-container { padding: 0 .75rem; }
  .aj-section { padding: 2rem .75rem !important; }
  .aj-section--alt { padding-left: .75rem; padding-right: .75rem; }
  .aj-contact { padding: 0 .75rem 3rem !important; }
  .aj-menu { padding: 0 .75rem !important; gap: 1.5rem; }
  .aj-hero {
    min-height: calc(100vh - var(--aj-header-h, 56px));
    min-height: calc(100dvh - var(--aj-header-h, 56px));
    padding: 3rem .75rem;
  }
  .aj-hero-logo { width: 70vw; max-width: 280px; }
  .aj-grid { grid-template-columns: 1fr !important; gap: 1rem; }
  .aj-card { padding: 1.25rem; }
  .aj-actions, .aj-hero-actions { flex-direction: column; }
  .aj-actions .aj-btn,
  .aj-hero-actions .aj-btn { width: 100%; justify-content: center; }
  .aj-modal__body { height: 75vh; }
  iframe { max-width: 100%; }
  /* Header bar slimmer */
  .site-header { padding-left: .5rem !important; padding-right: .5rem !important; }
}
@media (max-width: 480px) {
  h1 { font-size: 1.85rem; }
  h2 { font-size: 1.4rem; }
  .aj-hero h1 { font-size: 2.5rem; }
  .aj-section, .aj-section--alt { padding: 1.75rem .75rem !important; }
}

/* Header subtitle under site title (injected by modal.js) */
.aj-header-sub {
  display: block;
  font-family: var(--aj-font-jp);
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .06em;
  color: var(--aj-text-muted);
  margin-top: .15rem;
  line-height: 1.2;
  white-space: nowrap;
}
@media (max-width: 921px) {
  .aj-header-sub { display: none; }
}

/* Per-gallery blocks on GALLERY page */
.aj-gallery-block { margin: 2rem 0 3rem; }
.aj-gallery-block + .aj-gallery-block { border-top: 1px solid rgba(255,255,255,.08); padding-top: 2rem; }
.aj-gallery-title {
  font-family: var(--aj-font-jp) !important;
  font-weight: 700 !important;
  font-size: 1.2rem;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  color: #ffffff !important;
  border: none !important;
  background: none !important;
}
.aj-gallery-title::after { content: none !important; }

/* Gallery pager */
.aj-gallery-pager {
  display: flex;
  gap: .5rem;
  justify-content: center;
  margin: 2.5rem 0 1rem;
  flex-wrap: wrap;
}
.aj-gallery-pager__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.4rem;
  padding: .4rem .8rem;
  border: 1px solid var(--aj-yellow);
  color: var(--aj-yellow) !important;
  text-decoration: none !important;
  border-radius: 4px;
  font-weight: 600;
  transition: background .15s ease, color .15s ease;
}
.aj-gallery-pager__btn:hover {
  background: rgba(255, 215, 0, .12);
  text-decoration: none !important;
}
.aj-gallery-pager__btn.is-current {
  background: var(--aj-yellow);
  color: var(--aj-black) !important;
  pointer-events: none;
}

/* GALLERY thumbnails — yellow border + spacing */
.aj-galleries .ngg-gallery-thumbnail {
  margin: 0 .6rem .6rem 0 !important;
  padding: 4px !important;
  border: 2px solid var(--aj-yellow) !important;
  background: #ffffff !important;
  box-sizing: border-box;
}
.aj-galleries .ngg-gallery-thumbnail img {
  display: block;
}
.aj-galleries .ngg-gallery-thumbnail-box,
.aj-galleries .ngg-galleryoverview {
  gap: .2rem;
}

/* Gallery description (under the gallery title) */
.aj-gallery-desc {
  margin: -.4rem 0 1.2rem;
  color: var(--aj-text-muted);
  font-size: .95rem;
  line-height: 1.6;
}
.aj-gallery-desc p { margin: 0 0 .5rem; }

/* Tighten vertical gap between consecutive sections */
.aj-section + .aj-section { padding-top: 0; margin-top: -2rem; }

/* Mobile: leave a little extra room below the fixed header so titles don't clip */
@media (max-width: 921px) {
  body #page { padding-top: calc(var(--aj-header-h) + 2rem) !important; }
}

/* GALLERY page: first gallery block sits where the first <h2> would on other pages */
.aj-section > .aj-container > .aj-galleries:first-child { margin-top: 2em; }
.aj-section > .aj-container > .aj-galleries:first-child .aj-gallery-block:first-child { margin-top: 0; }

/* Note: inline colors in event content are forced to !important via filter in functions.php. */

/* Hero subtitle */
.aj-hero-sub {
  font-family: var(--aj-font-jp);
  font-size: 1.5rem;
  font-weight: 500;
  color: #ffffff;
  letter-spacing: .08em;
  margin: .4rem 0 1.2rem;
  text-align: center;
}
@media (max-width: 640px) {
  .aj-hero-sub { font-size: 1.275rem; letter-spacing: .04em; }
}

/* Hero story overlay — fullscreen modal triggered by clicking the hero logo */
.aj-hero { position: relative; }
.aj-hero .aj-hero-logo { cursor: pointer; }

.aj-hero-story {
  position: fixed; inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: rgba(0, 0, 0, .97);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .5s ease, visibility 0s linear .5s;
  cursor: pointer;
}
.aj-hero-story.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity .5s ease;
}
.aj-hero-story__panel {
  max-width: 760px;
  text-align: center;
  color: #ffffff;
  font-family: var(--aj-font-jp);
}
.aj-hero-story__text {
  white-space: pre-line;
  font-size: 1.1rem;
  line-height: 2;
  letter-spacing: .08em;
  margin: 0 0 2.2rem;
  min-height: 6em;
  color: #ffffff;
  text-shadow: 0 1px 6px rgba(0, 0, 0, .9);
  font-weight: 500;
}
.aj-hero-story__text::after {
  content: '';
  display: inline-block;
  width: 1px;
  height: 1.05em;
  vertical-align: -2px;
  margin-left: 3px;
  background: var(--aj-yellow);
  animation: aj-cursor-blink 1s steps(2, start) infinite;
}
.aj-hero-story.is-done .aj-hero-story__text::after { display: none; }
@keyframes aj-cursor-blink { to { opacity: 0; } }

.aj-hero-story__sign {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 1.6s ease, transform 1.6s ease;
}
.aj-hero-story__sign.is-shown { opacity: 1; transform: translateY(0); }
.aj-hero-story__sign-label {
  display: block;
  font-size: .75rem;
  letter-spacing: .25em;
  color: rgba(245, 239, 230, .55);
  margin-bottom: .4rem;
}
.aj-hero-story__sign-name {
  display: block;
  font-family: "Dancing Script", "Caveat", cursive;
  font-weight: 700;
  font-size: 2.6rem;
  color: var(--aj-yellow);
  line-height: 1.1;
  letter-spacing: .02em;
}
.aj-hero-story__sign-romaji {
  display: block;
  font-family: var(--aj-font-jp);
  font-size: .9rem;
  color: rgba(245, 239, 230, .7);
  letter-spacing: .25em;
  margin-top: .35rem;
}
@media (max-width: 640px) {
  .aj-hero-story__text { font-size: .92rem; letter-spacing: .04em; line-height: 1.9; }
  .aj-hero-story__sign-name { font-size: 2.1rem; }
}

/* Hero lead: line break only on mobile */
.aj-mobile-br { display: none; }
@media (max-width: 640px) {
  .aj-pc-sep { display: none; }
  .aj-mobile-br { display: inline; }
}

/* Past months grid on schedule list view */
.aj-past-months {
  margin: 3rem 0 1rem;
  padding: 1.5rem 1rem 0;
  border-top: 1px solid rgba(255,255,255,.08);
}
.aj-past-months__title {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: rgba(255,255,255,.75) !important;
  margin: 0 0 1rem !important;
  letter-spacing: .04em;
}
.aj-past-months__grid {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.aj-past-months__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .45rem .9rem;
  font-size: .9rem;
  font-weight: 600;
  border: 1px solid var(--aj-yellow);
  color: var(--aj-yellow) !important;
  text-decoration: none !important;
  border-radius: 4px;
  background: transparent;
  transition: background .15s ease, color .15s ease;
}
.aj-past-months__btn:hover {
  background: var(--aj-yellow);
  color: var(--aj-black) !important;
}

/* Top toolbar above list — jump-to-past link */
.aj-list-toolbar {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 1rem;
  padding: 0 1rem;
}
.aj-list-toolbar__past-link {
  display: inline-block;
  padding: .4rem .9rem;
  font-size: .9rem;
  font-weight: 600;
  border: 1px solid var(--aj-yellow);
  color: var(--aj-yellow) !important;
  text-decoration: none !important;
  border-radius: 4px;
  transition: background .15s ease, color .15s ease;
}
.aj-list-toolbar__past-link:hover {
  background: var(--aj-yellow);
  color: var(--aj-black) !important;
}

/* Past months select dropdown */
.aj-past-months__form { margin: 0; }
.aj-past-months__select {
  font-family: var(--aj-font-jp);
  font-size: 1rem;
  font-weight: 600;
  padding: .6rem 2.2rem .6rem 1rem;
  min-width: 16rem;
  max-width: 100%;
  border: 1px solid var(--aj-yellow);
  background-color: var(--aj-black);
  color: var(--aj-yellow);
  border-radius: 4px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffd400'><path d='M4 6l4 4 4-4'/></svg>");
  background-repeat: no-repeat;
  background-position: right .8rem center;
  background-size: 14px;
}
.aj-past-months__select option {
  background: #1a1a1a;
  color: #fff;
}
.aj-past-months__select:focus {
  outline: 2px solid var(--aj-yellow);
  outline-offset: 2px;
}

/* Past-month jump dropdown — calendar view only, below the grid, left-aligned */
.aj-cal-past-jump {
  display: flex;
  justify-content: flex-start;
  margin: 1.5rem 0 .6rem;
  padding: 0 .5rem;
}
.aj-cal-past-jump .aj-past-months__select {
  width: auto !important;
  min-width: 12rem;
  max-width: 100%;
  flex: 0 0 auto;
  padding: .55rem 2.2rem .55rem 1rem;
  line-height: 1.4;
}

/* === Schedule list — accordion rows (native <details>) ====================== */
.aj-acc-row.tribe-events-calendar-list__event-row {
  display: block !important;
  grid-template-columns: none !important;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
  position: relative;
}
.aj-acc-row.tribe-events-calendar-list__event-row > * {
  grid-column: auto !important;
}
/* Open trigger — full-width button, transparent */
.aj-acc-row__open {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  text-align: left;
  cursor: pointer;
  color: inherit;
  font: inherit;
}
.aj-acc-row__open:hover { background: rgba(255, 215, 0, .05); }
.aj-acc-row.is-open .aj-acc-row__open { background: rgba(255, 215, 0, .04); }

/* Inner flex wrapper handles layout */
.aj-acc-row__head {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding: 1rem .8rem;
}
.aj-acc-row__head > * { display: block; }
.aj-acc-row__head * { pointer-events: none; }

/* date tag stays a fixed left column */
.aj-acc-row__head .tribe-events-calendar-list__event-date-tag {
  flex: 0 0 auto;
}

/* Thumbnails — all images aligned in the title row, horizontal strip */
.aj-acc-row__thumb {
  flex: 0 0 auto;
  width: 64px;
}
.aj-acc-row__thumb .tribe-events-calendar-list__event-featured-image-wrapper,
.aj-acc-row__thumb .aj-list-img-wrap {
  width: 64px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.aj-acc-row__thumb .aj-list-thumbs {
  display: block !important;
  width: 64px;
}
/* Only show the first thumbnail in the header */
.aj-acc-row__thumb .aj-list-thumb:not(.aj-list-thumb--0) { display: none !important; }
.aj-acc-row__thumb .aj-list-thumb,
.aj-acc-row__thumb img {
  width: 64px !important;
  height: 64px !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 6px !important;
  border: 1px solid var(--aj-border) !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 64px !important;
}

.aj-acc-row__heading {
  flex: 1 1 auto;
  min-width: 0;
}
.aj-acc-row__heading .tribe-events-calendar-list__event-title {
  margin: 0 0 .3rem !important;
}
.aj-acc-row__heading .tribe-events-calendar-list__event-title-link {
  color: var(--aj-yellow) !important;
}
.aj-acc-row__heading .tribe-events-calendar-list__event-datetime-wrapper {
  margin: 0 !important;
  color: rgba(255, 255, 255, .75);
}

.aj-acc-row__chevron {
  flex: 0 0 auto;
  color: var(--aj-yellow);
  transition: transform .3s ease;
}
.aj-acc-row.is-open .aj-acc-row__chevron { transform: rotate(180deg); }

/* --- Body (revealed when <details open>) --- */
.aj-acc-row__body {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height .35s ease, opacity .35s ease;
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
}
.aj-acc-row.is-open .aj-acc-row__body {
  max-height: 4000px;
  opacity: 1;
}
.aj-acc-row__body article {
  display: block !important;
  margin: .4rem 1.5rem 1.4rem 1.5rem !important;
  padding: 1rem 1.4rem !important;
  background: rgba(255, 215, 0, .03);
  max-width: calc(100% - 3rem) !important;
  box-sizing: border-box !important;
  overflow: hidden;
  border: 0 !important;
  border-radius: 6px;
}
.aj-acc-row__body article,
.aj-acc-row__body article * {
  box-sizing: border-box !important;
}
.aj-acc-row__body article * {
  max-width: 100% !important;
}
@media (max-width: 768px) {
  .aj-acc-row__body article {
    margin: .4rem .6rem 1rem .6rem !important;
    padding: .8rem .8rem !important;
  }
}

/* Detail link inside accordion body — plain <a>, no interception */
.aj-acc-row__more {
  margin: 1rem 0 .2rem !important;
  text-align: right;
}
.aj-acc-row__more .aj-btn {
  display: inline-flex !important;
  width: auto !important;
  white-space: nowrap;
}

/* Dedicated close button at the bottom of the body */
.aj-acc-row__close-wrap {
  margin: 1rem 0 0 !important;
  text-align: center;
  position: relative;
  z-index: 10;
}
.aj-acc-row__close {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .4rem 1rem;
  background: transparent;
  color: rgba(255, 255, 255, .65);
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 999px;
  font-size: .85rem;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
  position: relative;
  z-index: 11;
  pointer-events: auto !important;
}
.aj-acc-row__close:hover {
  background: rgba(255, 255, 255, .06);
  color: #fff;
  border-color: rgba(255, 255, 255, .5);
}
.aj-acc-row__close * { pointer-events: none; }
.aj-acc-row__close svg { display: block; }
.aj-acc-row__body .tribe-events-calendar-list__event-details {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.aj-acc-row__body .tribe-events-calendar-list__event-description {
  display: block !important;
  width: 100% !important;
  margin: .8rem 0 !important;
  font-size: 1rem !important;
  line-height: 1.8 !important;
  color: var(--aj-text) !important;
}
.aj-acc-row__body .tribe-events-calendar-list__event-description p,
.aj-acc-row__body .tribe-events-calendar-list__event-description div:not(.aj-performers),
.aj-acc-row__body .tribe-events-calendar-list__event-description span {
  display: block !important;
  white-space: normal !important;
  width: auto !important;
  max-width: 100% !important;
  margin: .4em 0 !important;
}
/* Hide images inside the body — thumbnails are shown only in the title row */
/* Images written in the body — show with sensible max size */
.aj-acc-row__body .tribe-events-calendar-list__event-description img {
  display: block !important;
  max-width: 100% !important;
  max-height: 320px !important;
  width: auto !important;
  height: auto !important;
  margin: .8rem 0 !important;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, .08);
}
@media (max-width: 768px) {
  .aj-acc-row__body .tribe-events-calendar-list__event-description img {
    max-height: 220px !important;
  }
}
.aj-acc-row__body .aj-performers {
  display: flex !important;
  flex-wrap: wrap;
  gap: .6rem;
  margin: 1rem 0 .5rem !important;
  align-items: flex-start;
}
.aj-acc-row__body .aj-performers img {
  display: block !important;
  width: 96px !important;
  height: 96px !important;
  max-width: 96px !important;
  max-height: 96px !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, .12);
  margin: 0 .3rem 0 0 !important;
  flex: 0 0 96px;
}
@media (max-width: 768px) {
  .aj-acc-row__body .aj-performers { gap: .4rem; }
  .aj-acc-row__body .aj-performers img {
    width: 72px !important;
    height: 72px !important;
    max-width: 72px !important;
    max-height: 72px !important;
    flex: 0 0 72px;
  }
}
.aj-acc-row__body .tribe-events-calendar-list__event-venue,
.aj-acc-row__body .tribe-events-calendar-list__event-cost,
.aj-acc-row__body .tribe-events-event-cost {
  display: block !important;
  width: 100% !important;
  margin: .4rem 0 !important;
}
.aj-acc-row__body .tribe-events-calendar-list__event-cost,
.aj-acc-row__body .tribe-events-c-small-cta {
  text-align: right !important;
}
.aj-acc-row__body .tribe-events-c-small-cta__price::before,
.tribe-events-calendar-month__calendar-event-tooltip-cost .tribe-events-c-small-cta__price::before {
  content: "Music Charge：";
  color: rgba(255, 255, 255, .75);
  font-weight: 500;
  margin-right: .3em;
}
.aj-acc-row__more {
  margin: 1.2rem 0 .2rem !important;
  text-align: right;
  position: relative;
  z-index: 5;
}
.aj-acc-row__more .aj-btn {
  display: inline-flex !important;
  width: auto !important;
  white-space: nowrap;
  position: relative;
  z-index: 6;
  pointer-events: auto !important;
}

@media (max-width: 768px) {
  .aj-acc-row__head { padding: .7rem .4rem; gap: .5rem; align-items: flex-start; }

  /* Mobile: show only the FIRST thumbnail, small */
  .aj-acc-row__thumb { max-width: 56px; }
  .aj-acc-row__thumb .aj-list-thumbs { display: block !important; }
  .aj-acc-row__thumb .aj-list-thumb,
  .aj-acc-row__thumb img {
    width: 56px !important;
    height: 56px !important;
    flex-basis: 56px !important;
  }
  .aj-acc-row__thumb .aj-list-thumb:not(.aj-list-thumb--0) { display: none !important; }

  /* Heading wraps comfortably */
  .aj-acc-row__heading { min-width: 0; }
  .aj-acc-row__heading .tribe-events-calendar-list__event-title {
    font-size: 1rem !important;
    line-height: 1.3 !important;
    margin: 0 0 .2rem !important;
  }
  .aj-acc-row__heading .tribe-events-calendar-list__event-datetime-wrapper {
    font-size: .8rem !important;
  }
  .aj-acc-row__chevron { align-self: center; }

  .aj-acc-row__body article { padding: 0 .6rem 1rem; }
}

/* Schedule list month nav */
.aj-list-monthnav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin: 1rem 0 .8rem;
}
.aj-list-monthnav__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .4rem 1rem;
  font-size: .9rem;
  font-weight: 600;
  border: 1px solid var(--aj-yellow);
  background: transparent;
  color: var(--aj-yellow) !important;
  text-decoration: none !important;
  border-radius: 4px;
  transition: background .15s ease, color .15s ease;
}
.aj-list-monthnav__btn:hover {
  background: var(--aj-yellow);
  color: var(--aj-black) !important;
}
.aj-list-monthnav__label {
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: .03em;
  min-width: 7em;
  text-align: center;
}
/* Month-jump dropdown — desktop: absolute, top-right of the view/header.
   Anchor on both list (.tribe-events-view) and calendar (.tribe-events-header) so the
   absolute parent is always available — without that, calendar view falls back to <body>. */
.aj-list-monthjump {
  position: absolute;
  top: 0;
  right: 1rem;
  margin: 0;
  z-index: 5;
}
.tribe-events-view,
.tribe-events-header { position: relative; }

/* Mobile (≤768px): drop the absolute, render below the prev/next nav with breathing room,
   right-aligned, in BOTH list and calendar views. */
@media (max-width: 768px) {
  .aj-list-monthjump {
    position: static !important;
    display: flex !important;
    justify-content: flex-end !important;
    margin: 1.25rem 1rem 1rem !important;
  }
}
.aj-list-monthjump select {
  font-family: var(--aj-font-jp);
  font-size: .9rem;
  font-weight: 600;
  padding: .5rem 2rem .5rem 1rem;
  min-width: 10rem;
  background: var(--aj-black);
  color: var(--aj-yellow);
  border: 1px solid var(--aj-yellow);
  border-radius: 4px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffd400'><path d='M4 6l4 4 4-4'/></svg>");
  background-repeat: no-repeat;
  background-position: right .7rem center;
  background-size: 12px;
}
.aj-list-monthjump select option { background: #1a1a1a; color: #fff; }

/* Calendar tooltip — opaque background so events behind don't show through */
.tribe-events-calendar-month__calendar-event-tooltip,
.tribe-events-calendar-month__calendar-event-tooltip-template,
.tribe-events-tooltip,
.tribe-events-calendar-month__calendar-event-tooltip-template .tribe-events-tooltip {
  background-color: #0e0e0e !important;
  border: 1px solid rgba(255, 215, 0, .25) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .6) !important;
  color: #fff !important;
}
.tribe-events-calendar-month__calendar-event-tooltip-datetime,
.tribe-events-calendar-month__calendar-event-tooltip-title,
.tribe-events-calendar-month__calendar-event-tooltip-description,
.tribe-events-calendar-month__calendar-event-tooltip-cost {
  background-color: transparent !important;
  color: #fff !important;
}

/* All-day single-day events render as multiday-event by TEC.
   Constrain them to a regular yellow chip that stays inside the day cell. */
.tribe-events-calendar-month__multiday-event {
  position: static !important;
  width: 100% !important;
  margin: 2px 0 !important;
  padding: 0 !important;
}
.tribe-events-calendar-month__multiday-event-wrapper {
  width: 100% !important;
  height: auto !important;
  position: static !important;
  margin: 0 !important;
}
.tribe-events-calendar-month__multiday-event-bar {
  position: static !important;
  width: 100% !important;
  height: auto !important;
  border-radius: 4px !important;
  padding: 4px 6px !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}
.tribe-events-calendar-month__multiday-event-bar-inner {
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
  border-radius: 4px !important;
}
.tribe-events-calendar-month__multiday-event-bar-title {
  color: #000 !important;
  font-size: .8rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  white-space: normal !important;
  word-break: break-word !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
