/* =========================================================================
   ACO — COMPLETE SITE STYLESHEET
   Paste ONCE into Site Settings → Custom CSS. Single source for all custom /
   HTML-widget styling. Widgets hold clean class-based HTML only — no <style>
   blocks, no inline styles. Native widgets use the Global Colors/Fonts panel.
   Page-specific IMAGES (hero slides, band layers, banner photo) stay on their
   own widget/page as noted; everything else lives here.
   ========================================================================= */

/* ============================ 1 · BRAND TOKENS ============================ */
:root{
  --aco-navy:#01486D;
  --aco-navy-deep:#013250;
  --aco-teal:#3CA9A6;
  --aco-accent:#2C7E7B;
  --aco-ink:#25302E;
  --aco-white:#FFFFFF;
  --aco-pearl:#F4F6F5;
  --aco-line:#D6E1DD;
  --aco-light-blue:#c7e2f6;              /* confirmed by Syd 2026-07-15 */
  --aco-display:"Playfair Display", Georgia, "Times New Roman", serif;   /* Kim: serif sub-heads, Garamond-style */
  --aco-body:"Poppins", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;  /* Kim: sans body (brand font) */
  --aco-radius:2px;
  --aco-ease:cubic-bezier(0.22,0.61,0.36,1);
}

/* ============================ 2 · BUTTONS ================================ */
.aco-btn{ display:inline-block; font-family:var(--aco-body); font-weight:600; font-size:14px;
  letter-spacing:.8px; text-transform:uppercase; text-decoration:none; padding:14px 26px;
  border-radius:var(--aco-radius); transition:background .25s ease,color .25s ease; cursor:pointer; }
.aco-btn--primary,
.aco-btn--solid{ background:var(--aco-navy); color:#fff !important; }        /* primary = navy */
.aco-btn--primary:hover,
.aco-btn--solid:hover{ background:var(--aco-navy-deep); color:#fff !important; }
.aco-btn--teal{ background:var(--aco-teal); color:#fff !important; }         /* e.g. Buy Tickets */
.aco-btn--teal:hover{ background:var(--aco-accent); color:#fff !important; }
.aco-btn--ghost{ background:transparent; color:#fff !important; border:1px solid #fff; }
.aco-btn--ghost:hover{ background:#fff; color:var(--aco-navy) !important; }

/* ============================ 3 · HOME HERO ============================== */
/* Images + focal now live HERE (widget is clean HTML only). To swap an image,
   copy the Media Library URL into the matching s1..s4 rule. To re-frame, change
   the background-position X% Y% (X=left/right, Y=up/down) per breakpoint.        */
.aco-hero .s1{ background-image:url('https://atlanticclassicalo8a92a.zapwp.com/q:u/r:0/wp:0/w:1/u:https://atlanticclassicalorchestra.com/wp-content/uploads/2026/07/hero-image-1.jpg'); }
.aco-hero .s2{ background-image:url('https://atlanticclassicalo8a92a.zapwp.com/q:u/r:0/wp:0/w:1/u:https://atlanticclassicalorchestra.com/wp-content/uploads/2026/07/hero-image-2-scaled.jpg'); }
.aco-hero .s3{ background-image:url('https://atlanticclassicalo8a92a.zapwp.com/q:u/r:0/wp:0/w:1/u:https://atlanticclassicalorchestra.com/wp-content/uploads/2026/07/hero-image-3-scaled.jpg'); }
.aco-hero .s4{ background-image:url('https://atlanticclassicalo8a92a.zapwp.com/q:u/r:0/wp:0/w:1/u:https://atlanticclassicalorchestra.com/wp-content/uploads/2026/07/hero-image-4-scaled.jpg'); }
/* focal — desktop */
.aco-hero .s1{ background-position:50% 22%; }
.aco-hero .s2{ background-position:50% 37%; }
.aco-hero .s3{ background-position:70% 70%; }
.aco-hero .s4{ background-position:80% 35%; }
/* focal — tablet */
@media (max-width:1024px){
  .aco-hero .s1{ background-position:55% 15%; }
  .aco-hero .s2{ background-position:50% 75%; }
  .aco-hero .s3{ background-position:80% 20%; }
  .aco-hero .s4{ background-position:70% 60%; }
}
/* focal — mobile */
@media (max-width:760px){
  .aco-hero .s1{ background-position:67% 35%; }
  .aco-hero .s2{ background-position:20% 35%; }
  .aco-hero .s3{ background-position:64% 12%; }
  .aco-hero .s4{ background-position:30% 30%; }
}
.aco-hero{ position:relative; min-height:58vh; overflow:hidden; display:grid; align-items:end; }
@media (max-width:760px){ .aco-hero{ min-height:74vh; } }
.aco-hero__stage{ position:absolute; inset:0; }
.aco-hero__slide{ position:absolute; inset:0; background-size:cover; background-repeat:no-repeat;
  background-color:var(--aco-navy-deep); opacity:0; animation:aco-fade 32s infinite; }
.aco-hero__slide.s1{ animation-delay:0s; }
.aco-hero__slide.s2{ animation-delay:8s; }
.aco-hero__slide.s3{ animation-delay:16s; }
.aco-hero__slide.s4{ animation-delay:24s; }
@keyframes aco-fade{ 0%{opacity:0} 4%{opacity:1} 22%{opacity:1} 28%{opacity:0} 100%{opacity:0} }
.aco-hero__scrim{ position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(1,50,80,.28) 0%, rgba(1,50,80,.42) 45%, rgba(1,40,64,.86) 100%); }
.aco-hero__inner{ position:relative; z-index:2; max-width:64rem;
  padding:clamp(2.5rem,5vw,5rem) clamp(1.25rem,5vw,4rem); }
.aco-hero__inner h1{ font-family:var(--aco-display); font-weight:600; font-size:clamp(2rem,5vw,3.6rem);
  line-height:1.1; color:#fff; margin:0 0 1rem; text-shadow:0 2px 24px rgba(0,0,0,.35); }
.aco-hero__inner p{ font-family:var(--aco-body); font-weight:500; font-size:clamp(1.05rem,2vw,1.35rem);
  line-height:1.7; color:#fff; max-width:46ch; margin:0 0 2rem; text-shadow:0 1px 12px rgba(0,0,0,.45); }
.aco-hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; }
@media (prefers-reduced-motion:reduce){ .aco-hero__slide{ animation:none; } .aco-hero__slide.s1{ opacity:1; } }

/* ======================= 4 · MASTERWORKS BAND (home) ==================== */
/* PAGE-SPECIFIC: put the layer images + focal on the band widget, e.g.
   .mw-layer.l0{ background-image:url('/wp-content/themes/hello-theme-child-master/assets/…david-amado-grayscale.jpg'); background-position:50% 32%; }
   .mw-layer.l1..l4{ background-image:url('/wp-content/themes/hello-theme-child-master/assets/…masterworks-N.jpg'); }                */
.mw-band{ background:var(--aco-navy-deep);
  width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); overflow:hidden; }
.mw-head{ text-align:center; padding:64px 20px 36px; }
.mw-head .mw-eyebrow-top{ font-family:var(--aco-body); font-weight:600; font-size:13px; letter-spacing:2px;
  text-transform:uppercase; color:var(--aco-teal); margin:0 0 10px; }
.mw-head h2{ font-family:var(--aco-display); font-weight:600; font-size:clamp(1.8rem,4vw,2.6rem); color:#fff; margin:0; }
.mw-grid{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:0; overflow:hidden; }
.mw-stage{ position:absolute; inset:0; z-index:0; }
.mw-layer{ position:absolute; inset:0; background-size:cover; background-repeat:no-repeat; opacity:0;
  transform:scale(1); transition:opacity .6s ease, transform 6s ease; }
.mw-layer.l0{ opacity:1; }
.mw-grid:has(a.mw-card:nth-of-type(1):hover) .l0{ opacity:0; }
.mw-grid:has(a.mw-card:nth-of-type(1):hover) .l1{ opacity:1; transform:scale(1.07); }
.mw-grid:has(a.mw-card:nth-of-type(2):hover) .l0{ opacity:0; }
.mw-grid:has(a.mw-card:nth-of-type(2):hover) .l2{ opacity:1; transform:scale(1.07); }
.mw-grid:has(a.mw-card:nth-of-type(3):hover) .l0{ opacity:0; }
.mw-grid:has(a.mw-card:nth-of-type(3):hover) .l3{ opacity:1; transform:scale(1.07); }
.mw-grid:has(a.mw-card:nth-of-type(4):hover) .l0{ opacity:0; }
.mw-grid:has(a.mw-card:nth-of-type(4):hover) .l4{ opacity:1; transform:scale(1.07); }
.mw-card{ position:relative; z-index:1; display:flex; flex-direction:column; justify-content:flex-start;
  min-height:720px; text-decoration:none; overflow:hidden; background:transparent; }
.mw-card + .mw-card{ border-left:1px solid rgba(255,255,255,.28); }
.mw-card::before{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(1,50,80,.10) 0%, rgba(1,40,64,.52) 100%); }
.mw-card__text{ position:relative; z-index:2; padding:26px 26px 20px; }
.mw-card__text::before{ content:""; position:absolute; inset:0; z-index:-1; background:#fff;
  transform:scaleY(0); transform-origin:top; transition:transform .45s var(--aco-ease); }
.mw-card:hover .mw-card__text::before{ transform:scaleY(1); }
.mw-eyebrow{ display:block; font-family:var(--aco-body); font-weight:600; font-size:12px; letter-spacing:1.8px;
  text-transform:uppercase; color:#fff; margin-bottom:8px; transition:color .35s ease .08s; }
.mw-title{ display:block; font-family:var(--aco-display); font-weight:600; font-size:1.35rem; line-height:1.25;
  color:#fff; transition:color .35s ease .08s; }
.mw-card:hover .mw-eyebrow{ color:var(--aco-teal); }
.mw-card:hover .mw-title{ color:var(--aco-navy); }
.mw-cue{ position:absolute; right:22px; bottom:20px; z-index:3; font-family:var(--aco-body); font-weight:500;
  font-size:12px; letter-spacing:1.2px; text-transform:uppercase; color:#fff; opacity:0; transform:translateY(4px);
  transition:opacity .3s ease .05s, transform .3s ease .05s; }
.mw-card:hover .mw-cue{ opacity:1; transform:translateY(0); }
@media (max-width:1024px){ .mw-grid{ grid-template-columns:repeat(2,1fr); } .mw-card{ min-height:520px; } }
@media (max-width:600px){  .mw-grid{ grid-template-columns:1fr; }        .mw-card{ min-height:440px; } }

/* ======================= 5 · INNER-PAGE BANNER ========================== */
/* PAGE-SPECIFIC: set the photo per page — either the page Featured Image via
   Theme Builder, or on the banner widget: .aco-banner{ background-image:url('/wp-content/themes/hello-theme-child-master/assets/…'); } */
.aco-banner{ position:relative; width:100vw; max-width:100vw;
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  min-height:38vh; display:flex; align-items:flex-end; overflow:hidden;
  background-size:cover; background-position:50% 40%; background-color:var(--aco-navy-deep); }
.aco-banner__scrim{ position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(1,50,80,.25) 0%, rgba(1,40,64,.80) 100%); }
.aco-banner__inner{ position:relative; z-index:2; width:100%; max-width:1100px; margin:0 auto;
  padding:0 clamp(1.25rem,5vw,4rem) clamp(2rem,4vw,3.25rem); }
.aco-crumb{ font-family:var(--aco-body); font-size:12px; font-weight:600; letter-spacing:1.4px;
  text-transform:uppercase; color:#cfe0e8; margin-bottom:14px; }
.aco-crumb i{ color:var(--aco-teal); font-style:normal; margin:0 6px; }
.aco-banner h1{ font-family:var(--aco-display); font-weight:600; font-size:clamp(2rem,5vw,3.2rem);
  line-height:1.08; color:#fff; margin:0; text-shadow:0 2px 20px rgba(0,0,0,.3); }
.aco-banner__sub{ font-family:var(--aco-display); font-style:italic; font-size:clamp(1.1rem,2vw,1.4rem);
  color:var(--aco-pearl); margin:.5rem 0 0; }

/* ======================= 6 · INNER-PAGE CONTENT ========================= */
.aco-content{ max-width:1000px; margin:0 auto; padding:clamp(2rem,4vw,3.5rem) clamp(1.25rem,4vw,2rem); }
.aco-lead{ font-family:var(--aco-body); font-weight:300; font-size:1.05rem; line-height:1.65;
  color:var(--aco-ink); max-width:62ch; margin:0 0 2rem; }
.aco-body{ font-family:var(--aco-body); font-weight:400; font-size:1rem; line-height:1.7; color:var(--aco-ink); }
.aco-body p{ margin:0 0 1.1rem; }

/* ======================= 7 · CONCERT LIST (series pages) ================ */
.aco-concerts{ border-top:1px solid var(--aco-line); }
.aco-concert{ display:grid; grid-template-columns:140px 1fr auto; align-items:center; gap:24px;
  padding:26px 16px; text-decoration:none; border-bottom:1px solid var(--aco-line); transition:background-color .3s ease; }
.aco-concert:hover{ background:var(--aco-light-blue); }
.aco-concert__month{ font-family:var(--aco-body); font-weight:600; font-size:13px; letter-spacing:1.6px;
  text-transform:uppercase; color:var(--aco-teal); }
.aco-concert__title{ display:block; font-family:var(--aco-display); font-weight:600; font-size:1.5rem;
  line-height:1.2; color:var(--aco-navy); margin-bottom:4px; }
.aco-concert__desc{ display:block; font-family:var(--aco-body); font-weight:300; font-size:1rem;
  line-height:1.6; color:var(--aco-ink); }
.aco-concert__link{ font-family:var(--aco-body); font-weight:600; font-size:13px; letter-spacing:.6px;
  text-transform:uppercase; color:var(--aco-accent); white-space:nowrap; transition:transform .3s ease, color .3s ease; }
.aco-concert:hover .aco-concert__link{ color:var(--aco-navy); transform:translateX(3px); }
@media (max-width:640px){ .aco-concert{ grid-template-columns:1fr; gap:6px; padding:22px 10px; }
  .aco-concert__link{ margin-top:8px; } }

/* ======================= 8 · REPERTOIRE / PROGRAM ====================== */
.aco-program{ list-style:none; margin:0; padding:0; }
.aco-program li{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
  padding:.8rem 0; border-bottom:1px solid var(--aco-line); }
.aco-program li:first-child{ border-top:1px solid var(--aco-line); }
.aco-program__work{ font-family:var(--aco-display); font-size:1rem; line-height:1.4; color:var(--aco-navy); }
.aco-program__work em{ font-style:italic; }
.aco-program__composer{ display:block; margin-bottom:3px; font-family:var(--aco-body); font-weight:600;
  font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--aco-teal); }
.aco-program__dur{ flex:none; font-family:var(--aco-body); font-size:.8rem; font-weight:600;
  letter-spacing:.5px; color:var(--aco-teal); }
/* compact: tighter rows for long programs in a narrow column (e.g. Holiday) */
.aco-program--compact li{ padding:.38rem 0; }
.aco-program--compact .aco-program__composer{ margin-bottom:1px; }
.aco-program--compact .aco-program__work{ line-height:1.25; }
/* long programs at full width: two columns on desktop, one on mobile */
@media (min-width:768px){
  .aco-program--2col{ columns:2; column-gap:2.75rem; }
  .aco-program--2col li{ break-inside:avoid; }
  .aco-program--2col li:first-child{ border-top:0; }
}

/* ======================= 9 · INFO BLOCKS =============================== */
.aco-label{ font-family:var(--aco-body); font-size:.8rem; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--aco-teal); margin:0 0 .5rem; }
.aco-label--encore{ color:var(--aco-accent); margin-top:1.6rem; }   /* deep green + breathing room above */
.aco-stack{ font-family:var(--aco-body); font-size:.95rem; line-height:1.6; color:var(--aco-ink); margin:0 0 1.1rem; }
.aco-stack + .aco-label{ margin-top:1.4rem; }

/* On-Sale / key-dates list — clean lines, no markers */
.aco-keydates{ list-style:none; margin:0 0 1.25rem; padding:0; }
.aco-keydates li{ font-family:var(--aco-body); font-size:.95rem; line-height:1.55;
  color:var(--aco-ink); padding:.3rem 0; }
.aco-keydates + .aco-btn{ margin-top:.5rem; }

/* Dates & Locations — one elegant block per performance */
.aco-perf{ padding:1rem 0 1.15rem; border-bottom:1px solid var(--aco-line); }
.aco-perf:first-of-type{ border-top:1px solid var(--aco-line); }
.aco-perf__date{ font-family:var(--aco-body); font-weight:600; font-size:.78rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--aco-teal); margin:0 0 .25rem; }
.aco-perf__venue{ font-family:var(--aco-display); font-size:1.1rem; line-height:1.3;
  color:var(--aco-navy); margin:0 0 .7rem; }
.aco-perf__venue:empty{ display:none; }   /* collapse the line when no venue name is set */
.aco-perf:has(.aco-perf__time) .aco-perf__venue{ margin-bottom:.15rem; }
.aco-perf__time{ font-family:var(--aco-body); font-size:.9rem; line-height:1.4;
  color:var(--aco-ink); margin:0 0 .8rem; }
.aco-perf .aco-btn{ margin:0; }
.aco-perf + .aco-label{ margin-top:1.75rem; }

/* small button (sidebar) */
.aco-btn--sm{ padding:10px 18px; font-size:12px; }

/* ======================= 10 · ON-DARK HELPERS ========================== */
/* Add class="aco-on-dark" to any content block sitting on a navy/dark panel
   so its headings, labels and body text flip to white/pearl for legibility.  */
.aco-on-dark h1, .aco-on-dark h2, .aco-on-dark h3,
.aco-on-dark .aco-section-title,
.aco-on-dark .aco-program__work,
.aco-on-dark .aco-card__title{ color:#fff !important; }
.aco-on-dark .aco-label,
.aco-on-dark .aco-program__composer,
.aco-on-dark .aco-program__dur{ color:#fff !important; }
.aco-on-dark .aco-lead,
.aco-on-dark .aco-stack,
.aco-on-dark .aco-body{ color:var(--aco-pearl) !important; }

/* ======================= 11 · CARDS & LINKS ============================ */
.aco-card__link{ display:inline-block; text-decoration:none; }

/* inline arrow link (Concert details →, Read →, Explore →, Join →) — no box */
.aco-link{ display:inline-block; font-family:var(--aco-body); font-weight:600; font-size:.9rem;
  letter-spacing:.02em; color:var(--aco-accent); text-decoration:none;
  transition:color .25s ease; }
.aco-link:hover{ color:var(--aco-navy); }

/* ======================= 12 · MENU / DROPDOWN FIX ====================== */
/* Page sections use CSS transforms (hero/band) which create stacking contexts
   that can float above the dropdown. Header must win with a high z-index and
   the dropdown needs continuous hover (no dead zones).                        */
.elementor-location-header,
header.elementor-location-header,
.elementor-location-header > .elementor{ position:relative; z-index:999 !important; }
.elementor-nav-menu .sub-menu,
.elementor-nav-menu--main .elementor-nav-menu--dropdown{ z-index:1000 !important; }
.elementor-location-header,
.elementor-location-header .elementor-nav-menu,
.elementor-location-header .elementor-widget-container{ overflow:visible !important; }
.elementor-nav-menu .sub-menu{ overflow:visible !important; transition-delay:0s !important; padding:6px 0 !important; }
.elementor-nav-menu .sub-menu li{ margin:0 !important; }
.elementor-nav-menu .sub-menu li a{ margin:0 !important; padding:12px 22px !important; line-height:1.3 !important; }
.elementor-nav-menu > li{ position:relative; }
.elementor-nav-menu > li.menu-item-has-children:hover::after{
  content:""; position:absolute; left:0; right:0; top:100%; height:26px; }

/* ======================= 13 · FIGURES (Legacy etc.) =================== */
.aco-figure{ max-width:840px; margin:2rem auto; text-align:center; }
.aco-figure img{ width:100%; height:auto; display:block; border-radius:var(--aco-radius); }
.aco-figure figcaption{ font-family:var(--aco-body); font-style:italic; font-size:.85rem;
  color:var(--aco-teal); margin-top:.75rem; }

/* ======================= 14 · EDITORIAL LAYOUT ======================== */
/* Magazine-style body: a captioned photo floats and the text wraps around it.
   Add class="aco-editorial__figure--left" on the <figure> to float it left.    */
.aco-editorial{ max-width:1600px; margin:0 auto;
  padding:clamp(1.5rem,4vw,2.75rem) clamp(1.25rem,4vw,2rem);
  font-family:var(--aco-body); color:var(--aco-ink); }
.aco-editorial::after{ content:""; display:block; clear:both; }   /* contain the float */

.aco-editorial__title{ font-family:var(--aco-display); font-weight:600;
  font-size:clamp(1.35rem,2.4vw,1.7rem); line-height:1.2; color:var(--aco-navy); margin:0 0 .6rem; }
.aco-editorial__lead{ font-family:var(--aco-display); font-style:italic;
  font-size:clamp(1.05rem,1.6vw,1.2rem); line-height:1.5; color:var(--aco-accent); margin:0 0 1.5rem; }

.aco-editorial__figure{ float:right; width:38%; max-width:440px; margin:.3rem 0 1.2rem 2.4rem; }
.aco-editorial__figure--left{ float:left; margin:.3rem 2.4rem 1.2rem 0; }
.aco-editorial__figure img{ width:100%; height:auto; display:block; border-radius:var(--aco-radius); }
.aco-editorial__figure figcaption{ font-family:var(--aco-display); font-style:italic;
  font-size:.9rem; line-height:1.45; color:var(--aco-accent);
  margin-top:.7rem; padding-left:.9rem; border-left:2px solid var(--aco-line); }

.aco-editorial p{ font-size:1rem; line-height:1.75; margin:0 0 1.2rem; }

/* editorial sub-heads, group labels, notes, lists, links */
.aco-editorial__subhead{ font-family:var(--aco-display); font-weight:600; font-size:1.35rem;
  line-height:1.2; color:var(--aco-navy); margin:2rem 0 .5rem; }
.aco-editorial__note{ font-style:italic; color:var(--aco-ink); opacity:.85; margin:0 0 1rem; }
.aco-editorial__grouplabel{ font-family:var(--aco-body); font-weight:600; font-size:.8rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--aco-teal); margin:1.4rem 0 .55rem; }
.aco-editorial ul{ list-style:none; margin:0 0 1.3rem; padding:0; }
.aco-editorial li{ position:relative; padding:.28rem 0 .28rem 1.5rem; line-height:1.6; }
.aco-editorial li::before{ content:"\2014"; position:absolute; left:0; color:var(--aco-teal); }
.aco-editorial a{ color:var(--aco-accent); text-decoration:underline; text-underline-offset:2px;
  transition:color .2s ease; }
.aco-editorial a:hover{ color:var(--aco-navy); }

@media (max-width:640px){
  .aco-editorial__figure,
  .aco-editorial__figure--left{ float:none; width:100%; max-width:none; margin:0 0 1.5rem; }
}

/* ======================= 15 · GUEST ARTISTS (body list) =============== */
/* Clean, no-bullet list for guest artists on concert detail pages.
   Name in serif navy, instrument in italic accent. Reusable on Masterworks. */
ul.aco-artists{ list-style:none; margin:0 0 1.75rem; padding:0; }
ul.aco-artists li{ padding:.6rem 0; border-bottom:1px solid var(--aco-line); line-height:1.35; }
ul.aco-artists li:first-child{ border-top:1px solid var(--aco-line); }
.aco-artists__name{ font-family:var(--aco-display); font-size:1.15rem; color:var(--aco-navy); }
.aco-artists__inst{ font-family:var(--aco-body); font-style:italic; font-size:.9rem;
  color:var(--aco-accent); margin-left:.4rem; }

/* ======================= 16 · PROSE / TEXT PAGES ===================== */
/* FAQ, Privacy, Cookie policy, and any long text page. Em-dash list marker
   (no dots). Wrap the page content in <div class="aco-prose"> … </div>.       */
.aco-prose{ max-width:820px; margin:0 auto;
  padding:clamp(1.5rem,4vw,2.75rem) clamp(1.25rem,4vw,2rem);
  font-family:var(--aco-body); color:var(--aco-ink); }
.aco-prose > p{ font-size:1rem; line-height:1.75; margin:0 0 1.2rem; }
.aco-prose__intro{ font-size:1.08rem; line-height:1.7; color:var(--aco-ink); margin:0 0 1.75rem; }
.aco-prose h2{ font-family:var(--aco-display); font-weight:600; font-size:clamp(1.5rem,3vw,2rem);
  line-height:1.2; color:var(--aco-navy); margin:0 0 1rem; }
.aco-prose h3{ font-family:var(--aco-display); font-weight:600; font-size:1.25rem;
  line-height:1.3; color:var(--aco-navy); margin:2rem 0 .55rem; }
.aco-prose ul{ list-style:none; margin:0 0 1.3rem; padding:0; }
.aco-prose li{ position:relative; padding:.3rem 0 .3rem 1.4rem; line-height:1.6; }
.aco-prose li::before{ content:"\2014"; position:absolute; left:0; color:var(--aco-teal); }
.aco-prose a{ color:var(--aco-accent); text-decoration:underline; text-underline-offset:2px;
  transition:color .2s ease; }
.aco-prose a:hover{ color:var(--aco-navy); }
.aco-prose__updated{ font-size:.85rem; font-style:italic; color:var(--aco-ink);
  opacity:.75; margin:2.5rem 0 0; }
  /* ======================= 17 · ADVERTISING ============================== */
/* Rate card, advertiser perks, and PDF download row. The table is semantic
   on purpose: these prices previously existed only inside a PDF, where
   search engines and AI assistants could not reach them.                   */

.aco-rates{ width:100%; border-collapse:collapse; margin:0 0 1rem;
  font-family:var(--aco-body); color:var(--aco-ink); }
.aco-rates caption{ text-align:left; font-family:var(--aco-body); font-weight:600;
  font-size:.8rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--aco-teal); padding:0 0 .75rem; }
.aco-rates th, .aco-rates td{ text-align:left; padding:.85rem .9rem;
  border-bottom:1px solid var(--aco-line); font-size:.95rem; line-height:1.5; }
.aco-rates thead th{ font-weight:600; font-size:.75rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--aco-teal); }
.aco-rates tbody th{ font-family:var(--aco-display); font-weight:600;
  font-size:1.05rem; color:var(--aco-navy); }
.aco-rates__price{ font-weight:600; color:var(--aco-navy); white-space:nowrap; }
.aco-rates__dim{ opacity:.85; }
.aco-rates tbody tr:hover{ background:var(--aco-light-blue); }
.aco-rates__note{ font-size:.85rem; font-style:italic; opacity:.8; margin:0 0 2rem; }

@media (max-width:680px){
  .aco-rates thead{ position:absolute; width:1px; height:1px;
    overflow:hidden; clip-path:inset(50%); }
  .aco-rates tbody tr{ display:block; padding:.9rem 0;
    border-bottom:1px solid var(--aco-line); }
  .aco-rates tbody th, .aco-rates td{ display:block; border:0; padding:.15rem 0; }
  .aco-rates td::before{ content:attr(data-label) " "; display:block;
    font-weight:600; font-size:.7rem; letter-spacing:.1em;
    text-transform:uppercase; color:var(--aco-teal); }
}

/* advertiser perks — three short blocks */
.aco-perks{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem; margin:0 0 2rem; }
.aco-perks__item{ border-top:2px solid var(--aco-teal); padding-top:1rem; }
.aco-perks__title{ font-family:var(--aco-display); font-weight:600; font-size:1.15rem;
  line-height:1.25; color:var(--aco-navy); margin:0 0 .5rem; }
.aco-perks__item p{ font-family:var(--aco-body); font-size:.95rem; line-height:1.65;
  color:var(--aco-ink); margin:0; }
@media (max-width:860px){ .aco-perks{ grid-template-columns:1fr; gap:1.5rem; } }

/* PDF download row */
.aco-downloads{ display:flex; flex-wrap:wrap; gap:1rem; margin:.5rem 0 1.25rem; }
.aco-downloads .aco-btn{ margin:0; }

/* ======================= 18 · EDITORIAL SPLIT ========================= */
/* For portrait artwork (book covers, posters) where a float would leave a
   tall dead column. Title and lead span the full width; figure and copy sit
   side by side and stack on small screens.                                 */
.aco-editorial--split{ display:grid;
  grid-template-columns:minmax(220px,330px) 1fr;
  gap:clamp(1.5rem,3vw,3rem); align-items:start; }
.aco-editorial--split .aco-editorial__title,
.aco-editorial--split .aco-editorial__lead{ grid-column:1 / -1; }
.aco-editorial--split .aco-editorial__figure,
.aco-editorial--split .aco-editorial__figure--left{ float:none; width:100%;
  max-width:none; margin:0; }
.aco-editorial--split .aco-editorial__copy > p:first-child{ margin-top:0; }
@media (max-width:760px){
  .aco-editorial--split{ grid-template-columns:1fr; }
  .aco-editorial--split .aco-editorial__figure{ max-width:330px; }
}
/* 18b · stacked editorial blocks ---------------------------------------- */
/* The float-clearing ::after becomes a stray grid item in --split, adding a
   phantom row. Kill it there, and collapse the doubled padding where two
   editorial blocks sit in consecutive widgets.                            */
.aco-editorial--split::after{ content:none; }
.aco-editorial--split{ padding-bottom:0; }
.aco-editorial--split .aco-editorial__figure{ max-width:220px; }
.aco-editorial--flush{ padding-top:1.5rem; }
.aco-editorial--flush > :first-child{ margin-top:0; }

/* 18b · stacked editorial blocks ---------------------------------------- */
/* The float-clearing ::after becomes a stray grid item in --split, adding a
   phantom row. Kill it there, and collapse the doubled padding where two
   editorial blocks sit in consecutive widgets.                            */
.aco-editorial--split::after{ content:none; }
.aco-editorial--split{ padding-bottom:0; }
.aco-editorial--split .aco-editorial__figure{ max-width:220px; }
.aco-editorial--flush{ padding-top:1.5rem; }
.aco-editorial--flush > :first-child{ margin-top:0; }
.aco-editorial--split .aco-editorial__copy{ max-width:62ch; }

/* 18c · Kim's layout for Advertising: cover left, entire copy block right */
.aco-editorial--split{ grid-template-columns:minmax(260px,340px) 1fr; }
.aco-editorial--split .aco-editorial__figure{ max-width:340px; }
.aco-editorial--split .aco-editorial__copy{ max-width:none; }
.aco-editorial--split .aco-editorial__copy > p{ max-width:70ch; }
.aco-editorial--split .aco-editorial__copy > .aco-editorial__title{ margin-top:0; }
@media (max-width:1200px){
  .aco-editorial--split .aco-perks{ grid-template-columns:1fr; }
}

/* buttons inside editorial/prose blocks must not inherit the link underline */
.aco-editorial a.aco-btn,
.aco-prose a.aco-btn{ text-decoration:none; }
.aco-editorial a.aco-btn:hover,
.aco-prose a.aco-btn:hover{ text-decoration:none; }

/* ======================= 19 · POST LIST =============================== */
/* Output of [aco_posts]. Used on Inside the Score and News.              */
.aco-postlist{ display:grid; grid-template-columns:repeat(3,1fr);
  gap:2rem 1.75rem; margin:2rem 0 0; }
@media (max-width:1024px){ .aco-postlist{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){  .aco-postlist{ grid-template-columns:1fr; } }

.aco-postcard{ background:var(--aco-white); border:1px solid var(--aco-line);
  border-radius:var(--aco-radius); overflow:hidden;
  transition:border-color .25s ease, transform .25s var(--aco-ease); }
.aco-postcard:hover{ border-color:var(--aco-teal); transform:translateY(-2px); }
.aco-postcard__link{ display:flex; flex-direction:column; height:100%;
  text-decoration:none !important; color:inherit; }
.aco-postcard__media{ aspect-ratio:16/9; overflow:hidden; background:var(--aco-pearl); }
.aco-postcard__media img{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 6s ease; }
.aco-postcard:hover .aco-postcard__media img{ transform:scale(1.04); }
.aco-postcard__body{ display:flex; flex-direction:column; flex:1 1 auto; padding:1.25rem 1.35rem 1.4rem; }
.aco-postcard__date{ font-family:var(--aco-body); font-weight:600; font-size:.72rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--aco-teal); margin:0 0 .5rem; }
.aco-postcard__title{ font-family:var(--aco-display); font-weight:600; font-size:1.15rem;
  line-height:1.25; color:var(--aco-navy); margin:0 0 .6rem; }
.aco-postcard__excerpt{ font-family:var(--aco-body); font-size:.92rem; line-height:1.6;
  color:var(--aco-ink); margin:0 0 1rem; }
.aco-postcard__cta{ margin-top:auto; font-family:var(--aco-body); font-weight:600;
  font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--aco-accent);
  transition:color .25s ease; }
.aco-postcard:hover .aco-postcard__cta{ color:var(--aco-navy); }

/* ======================= 20 · VIDEO LIBRARY =========================== */
.aco-videolib{ max-width:1400px; margin:0 auto;
  padding:clamp(1.5rem,4vw,2.75rem) clamp(1.25rem,4vw,2rem); }
.aco-videolib .aco-label{ margin:2rem 0 1rem; }
.aco-videolib .aco-label:first-child{ margin-top:0; }
.aco-videos{ display:grid; grid-template-columns:repeat(3,1fr);
  gap:2rem 1.75rem; margin:0 0 1rem; }
@media (max-width:1024px){ .aco-videos{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){  .aco-videos{ grid-template-columns:1fr; } }
.aco-video__frame{ position:relative; aspect-ratio:16/9;
  background:var(--aco-navy-deep); border:1px solid var(--aco-line);
  border-radius:var(--aco-radius); overflow:hidden; }
.aco-video__frame iframe{ position:absolute; inset:0; width:100%; height:100%;
  border:0; display:block; }
.aco-video__title{ font-family:var(--aco-display); font-weight:600; font-size:1.05rem;
  line-height:1.3; color:var(--aco-navy); margin:.7rem 0 0; }

/* advertising contact block */
.aco-contactblock{ background:var(--aco-white); border-left:4px solid var(--aco-teal);
  padding:1.15rem 1.4rem; margin:1.75rem 0 0; max-width:70ch; }
.aco-contactblock p{ font-family:var(--aco-body); font-size:.95rem; line-height:1.6;
  color:var(--aco-ink); margin:0 0 .4rem; max-width:none; }
.aco-contactblock p:last-child{ margin-bottom:0; }

/* guest artist photo */
.aco-artistphoto{ width:100%; height:auto; display:block;
  border-radius:var(--aco-radius); }

.aco-artistphoto__credit{ font-family:var(--aco-body); font-size:.75rem;
  letter-spacing:.04em; color:var(--aco-teal); margin:.55rem 0 0; }

/* ======================= 21 · CARD COMPONENT ========================== */
/* Whole card is the link. Never put an <a> inside .aco-card.            */
.aco-cards{ display:grid; gap:1.5rem; margin:2rem 0 0; }
.aco-cards--4{ grid-template-columns:repeat(4,1fr); }
.aco-cards--3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:1100px){
  .aco-cards--4,.aco-cards--3{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){
  .aco-cards--4,.aco-cards--3{ grid-template-columns:1fr; } }

.aco-card{ display:flex; flex-direction:column; height:100%;
  background:var(--aco-white); border:1px solid var(--aco-line);
  border-radius:var(--aco-radius); padding:1.7rem 1.5rem 1.5rem;
  text-decoration:none !important;
  transition:background-color .3s ease, border-color .3s ease, transform .3s var(--aco-ease); }
.aco-card:hover{ background:var(--aco-light-blue);
  border-color:var(--aco-teal); transform:translateY(-2px); }
.aco-card__eyebrow{ display:block; font-family:var(--aco-body); font-weight:600;
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--aco-teal); margin-bottom:.6rem; }
.aco-card__title{ display:block; font-family:var(--aco-display); font-weight:600;
  font-size:1.4rem; line-height:1.2; color:var(--aco-navy); margin-bottom:.55rem; }
.aco-card__desc{ display:block; font-family:var(--aco-body); font-size:.95rem;
  line-height:1.6; color:var(--aco-ink); margin-bottom:1.2rem; }
.aco-card__cue{ display:inline-block; margin-top:auto; font-family:var(--aco-body);
  font-weight:600; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--aco-accent); transition:color .3s ease, transform .3s ease; }
.aco-card__cue::after{ content:" \2192"; }
.aco-card:hover .aco-card__cue{ color:var(--aco-navy); transform:translateX(3px); }

/* ======================= 22 · CONCERT ARTWORK ========================= */
.aco-concertart img{ width:100%; height:auto; display:block;
  border-radius:var(--aco-radius); }
.aco-concertart .aco-btn{ display:block; width:100%; text-align:center;
  margin-top:.85rem; box-sizing:border-box; }

/* ======================= 23 · FEATURED ARTIST GRID ==================== */
.aco-artistgrid{ display:grid; grid-template-columns:repeat(2,1fr);
  gap:2.5rem 2.5rem; margin:1.5rem 0 0; }
@media (max-width:860px){ .aco-artistgrid{ grid-template-columns:1fr; } }
.aco-artistcard__media{ aspect-ratio:4/5; overflow:hidden;
  background:var(--aco-pearl); border-radius:var(--aco-radius); max-width:300px; }
.aco-artistcard__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.aco-artistcard__name{ font-family:var(--aco-display); font-weight:600; font-size:1.5rem;
  line-height:1.2; color:var(--aco-navy); margin:1rem 0 .15rem; }
.aco-artistcard__inst{ font-family:var(--aco-body); font-weight:600; font-size:.75rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--aco-teal); margin:0 0 .9rem; }
.aco-artistcard p{ font-family:var(--aco-body); font-size:.95rem; line-height:1.7;
  color:var(--aco-ink); margin:0 0 .9rem; }


/* ==========================================================================
   9/3/26 EDITS - Allison & Board
   ========================================================================== */

/* Back to the Masterworks index, on each concert page */
.aco-btn.aco-back{
  display:inline-block;
  margin-top:1.75rem;
  background:transparent !important;
  color:var(--aco-navy) !important;
  border:1px solid var(--aco-navy) !important;
}
.aco-btn.aco-back:hover,
.aco-btn.aco-back:focus{
  background:var(--aco-navy) !important;
  color:#fff !important;
}

/* Guest artist blocks: smaller photos and smaller bio type.
   Scoped to the page sections that follow the concert artwork section,
   which is where the artist blocks live on every concert page. */
.elementor img.aco-artistphoto{
  max-width:220px;
}
.elementor > .e-con:has(.aco-concertart) ~ .e-con .elementor-widget-text-editor{
  font-size:13px;
  line-height:1.65;
}
.elementor > .e-con:has(.aco-concertart) ~ .e-con h2,
.elementor > .e-con:has(.aco-concertart) ~ .e-con h3{
  font-size:22px;
}

/* Small notes inside a performance block (ticket conditions, addresses, RSVP dates) */
.aco-perf__note{
  font-size:12px;
  line-height:1.5;
  margin:.45rem 0 0;
}
.aco-perf__note a{
  color:var(--aco-teal);
  text-decoration:underline;
}

/* ---------- HEADER NAVIGATION ----------
   The nav widget is set to collapse at Elementor’s mobile breakpoint (767) so that
   laptops keep the full menu. These rules put the hamburger back for tablets only,
   and tighten the item spacing in the band where the menu would otherwise wrap. */
@media (max-width:992px){
  .elementor-widget-nav-menu .elementor-menu-toggle{ display:flex !important; }
  .elementor-widget-nav-menu nav.elementor-nav-menu--main{ display:none !important; }
}
@media (min-width:993px) and (max-width:1520px){
  .elementor-nav-menu--main .elementor-item{
    font-size:clamp(13px, 1vw, 14px) !important;
    padding-left:clamp(8px, 0.8vw, 12px) !important;
    padding-right:clamp(8px, 0.8vw, 12px) !important;
  }
}

/* Five-up card grid, for the home page row that now carries an About Us tile */
.aco-cards--5{ grid-template-columns:repeat(5,minmax(0,1fr)); }
@media (max-width:1100px){ .aco-cards--5{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:860px){ .aco-cards--5{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .aco-cards--5{ grid-template-columns:1fr; } }

/* Guest artist blocks inherit the site type system, not Elementor defaults */
.elementor > .e-con:has(.aco-concertart) ~ .e-con .elementor-widget-text-editor{
  font-family:var(--aco-body);
}
.elementor > .e-con:has(.aco-concertart) ~ .e-con h2,
.elementor > .e-con:has(.aco-concertart) ~ .e-con h3{
  font-family:var(--aco-display);
}
