/* Nice Day — shared polish layer.
   Loaded after each page's inline styles. Refines type, rhythm, cards, buttons,
   focus states and the footer without changing the overall look. */

:root {
  --nd-ink: #444444;
  --nd-heading: #3f3f3f;
  --nd-muted: #6b6b6b;
  --nd-gold: #bfa76a;
  --nd-gold-dark: #8a7440;
  --nd-gold-soft: #faf7ef;
  --nd-line: #e9e9e9;
  --nd-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
  --nd-radius: 16px;
  --nd-radius-sm: 12px;
  --nd-section: 56px;
}

html { -webkit-text-size-adjust: 100%; }
body { color: var(--nd-ink); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }

/* ---- Type ---------------------------------------------------------- */
h1, h2, h3,
.card h3, .shop-name h3, .location-card h3, .tile h3, .coffee h3, .sister-card h3 {
  font-family: 'Playfair Display', 'Merriweather', 'Lora', Georgia, serif;
  font-weight: 400;
  color: var(--nd-heading);
  letter-spacing: -0.01em;
  line-height: 1.2;
  text-wrap: balance;
}
.about h2, .offer h2, .compare h2, .sister h2 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2rem); margin-bottom: 14px; }
.card h3, .shop-name h3 { font-size: 1.3rem; }
.location-card h3 { font-size: 1.6rem; }
.tile h3 { font-size: 1.35rem; }
.about p, .tile p, .location-card p { line-height: 1.65; text-wrap: pretty; }
.about p { font-size: 1.08rem; max-width: 62ch; }

/* ---- Links & focus ------------------------------------------------- */
a { transition: color 0.2s ease, border-color 0.2s ease; }
.location-link { border-bottom: 1px solid transparent; }
.location-link:hover { border-bottom-color: var(--nd-gold); color: var(--nd-ink); }
.more-link, .sister-card a.cta, .compare th a { color: var(--nd-gold-dark); border-bottom: 1px solid var(--nd-gold); }
.more-link:hover, .sister-card a.cta:hover, .compare th a:hover { color: var(--nd-ink); }
:focus-visible { outline: 2px solid var(--nd-gold); outline-offset: 3px; border-radius: 4px; }
.main-nav-link:hover { color: var(--nd-muted); border-bottom-color: var(--nd-gold); }

/* ---- Section rhythm ------------------------------------------------ */
.about, .offer, .locations, .compare, .sister, .coffee-list { padding: var(--nd-section) 0; }
.about + .about { border-top: 1px solid var(--nd-line); }
@media (max-width: 640px) { :root { --nd-section: 40px; } }

/* ---- Hero ---------------------------------------------------------- */
.hero { min-height: min(62vh, 620px); }
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(180deg, rgba(20, 16, 10, 0.42) 0%, rgba(20, 16, 10, 0.28) 45%, rgba(20, 16, 10, 0.5) 100%);
  pointer-events: none;
}
.hero img { filter: blur(1.5px) saturate(0.9); }
.hero-overlay { min-height: min(62vh, 620px); gap: 28px; align-content: center; padding-top: 40px; padding-bottom: 40px; }
.hero-head { text-align: center; color: #fff; max-width: 760px; display: grid; gap: 10px; }
.hero-head h1 {
  margin: 0; color: #fff; font-size: clamp(1.7rem, 1.1rem + 2.4vw, 2.7rem); line-height: 1.15;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.hero-head p { margin: 0; color: rgba(255, 255, 255, 0.86); font-size: 1.05rem; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35); }
.hero-panel { background: rgba(255, 255, 255, 0.92); }
.shop-row { gap: 24px; }
.shop-name h3 { font-size: 1.35rem; }
.status { font-size: 0.78rem; padding: 4px 10px; }
.today { color: var(--nd-heading); }
@media (max-width: 760px) {
  .shop-row { display: grid; grid-template-columns: 1fr auto 20px; grid-template-rows: auto auto auto; align-items: center; gap: 2px 12px; padding: 16px 0; }
  .shop-name { display: contents; }
  .shop-name h3 { grid-column: 1; grid-row: 1; font-size: 1.1rem; margin: 0; white-space: nowrap; }
  .shop-name p { grid-column: 1 / 3; grid-row: 2; }
  .shop-row .status { grid-column: 2; grid-row: 1; justify-self: end; }
  .shop-row .today { grid-column: 1 / 3; grid-row: 3; margin-top: 6px; white-space: nowrap; font-size: 0.92rem; }
  .shop-link { grid-column: 3; grid-row: 1 / 4; }
}
}
@media (max-width: 640px) {
  .hero-overlay { gap: 20px; padding-top: 28px; padding-bottom: 28px; }
  .hero-head p { font-size: 0.95rem; }
}
.card, .hero-panel {
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: var(--nd-shadow), 0 1px 0 rgba(255, 255, 255, 0.6) inset;
}
.card { background: rgba(255, 255, 255, 0.86); }
.card { padding: 22px 24px; }
.card p { line-height: 1.6; }
.card .google-maps-btn { margin-top: 14px; }

/* ---- Buttons ------------------------------------------------------- */
.google-maps-btn {
  display: inline-block; background: var(--nd-gold); color: #fff; border-radius: 24px; text-decoration: none;
  font-family: 'Merriweather', 'Lora', Georgia, serif; font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  padding: 12px 26px;
  box-shadow: none;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.google-maps-btn:hover { background: #ab935a; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(191, 167, 106, 0.28); }
.google-maps-btn:active { transform: none; box-shadow: none; }

/* ---- Location cards (visit) ---------------------------------------- */
.location-image { height: 320px; border-radius: var(--nd-radius-sm); box-shadow: var(--nd-shadow); }
.location-card .address { font-weight: 400; color: var(--nd-heading); }
.location-card .hours { font-style: normal; color: var(--nd-muted); }
.location-card .best-for {
  display: inline-block; margin: 6px auto 12px; padding: 8px 14px;
  background: var(--nd-gold-soft); border-radius: 24px; font-size: 0.92rem; color: var(--nd-heading);
}
.location-card .more-link { margin-top: 12px; }

/* ---- Tiles ("Ideal para" / "Qué ofrecemos") ------------------------ */
.tile { padding: 22px 0 0; border-top: 1px solid var(--nd-line); }
.grid { gap: 28px 40px; }

/* ---- Comparison table ---------------------------------------------- */
.compare table { border: 1px solid var(--nd-line); border-radius: var(--nd-radius-sm); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.compare th { background: var(--nd-gold-soft); padding: 14px 12px; border-bottom: 1px solid var(--nd-line); }
.compare th.current { background: #f3ecd8; }
.compare td { padding: 13px 12px; }
.compare tr:last-child td { border-bottom: none; }
.compare th small { display: block; font-size: 0.8rem; color: var(--nd-muted); font-weight: 400; margin-top: 2px; }
.compare .yes { color: var(--nd-gold-dark); }

/* ---- Sister card --------------------------------------------------- */
.sister-card { box-shadow: var(--nd-shadow); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.sister-card:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(0, 0, 0, 0.08); }

/* ---- Coffee list --------------------------------------------------- */
.coffee .notes li { background: #fff; }
.coffee .story { border-left: 2px solid var(--nd-gold); border-radius: 0 var(--nd-radius-sm) var(--nd-radius-sm) 0; }

/* ---- Gallery (home) ------------------------------------------------ */
.nd-gallery img { border-radius: var(--nd-radius-sm); }

/* ---- Footer -------------------------------------------------------- */
footer.nd-footer { border-top: 1px solid var(--nd-line); background: #fbfaf7; padding: 48px 0 28px; font-size: 0.95rem; color: var(--nd-muted); }
footer.nd-footer a { text-decoration: none; color: var(--nd-ink); border-bottom: 1px solid transparent; }
footer.nd-footer a:hover { border-bottom-color: var(--nd-gold); }
.nd-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 0.8fr; gap: 32px; align-items: start; }
.nd-footer-brand img { height: 44px; width: auto; display: block; margin-bottom: 12px; }
.nd-footer-brand p { margin: 0; max-width: 34ch; line-height: 1.6; }
.nd-footer h4 { margin: 0 0 10px; font-family: 'Merriweather', 'Lora', Georgia, serif; font-weight: 700; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--nd-gold-dark); }
.nd-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.nd-footer .nd-shop { display: grid; gap: 2px; margin-bottom: 14px; }
.nd-footer .nd-shop strong { font-weight: 400; color: var(--nd-heading); }
.nd-footer .nd-shop span { font-size: 0.9rem; }
.nd-footer-bottom { margin-top: 36px; padding-top: 18px; border-top: 1px solid var(--nd-line); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 0.85rem; }
@media (max-width: 860px) { .nd-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .nd-footer-grid { grid-template-columns: 1fr; gap: 28px; } }


/* ---- Hours card (shared by home and visit) --------------------------- */
.hero-panel{background:#fff;border:1px solid var(--nd-line);border-radius:16px;box-shadow:var(--nd-shadow);width:100%;max-width:760px;padding:4px 24px}
.shop-row{display:grid;grid-template-columns:1fr auto auto 20px;align-items:center;gap:20px;padding:18px 0}
.shop-row + .shop-row{border-top:1px solid var(--nd-line)}
.shop-name h3{margin:0 0 2px;font-size:1.25rem;font-family:'Merriweather','Lora',Georgia,serif;font-weight:400;color:rgb(70, 70, 70)}
.shop-name p{margin:0;font-size:0.9rem;color:var(--nd-muted);font-family:'Merriweather','Lora',Georgia,serif}
.shop-name a{color:inherit}
.today{margin:0;font-size:0.95rem;color:rgb(70, 70, 70);font-family:'Merriweather','Lora',Georgia,serif;white-space:nowrap}
.shop-link{color:#bfa76a;display:inline-flex}
@media (max-width: 760px){
.hero-panel{padding:4px 18px}
.shop-row{grid-template-columns:1fr 20px;gap:8px 12px;padding:16px 0}
.shop-row .status{grid-column:1;justify-self:start}
.shop-row .today{grid-column:1;white-space:normal}
.shop-link{grid-row:1;grid-column:2}
}
.status{display:none;align-items:center;gap:8px;padding:5px 11px;border-radius:24px;font-family:'Merriweather','Lora',Georgia,serif;font-size:0.8rem;white-space:nowrap}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.85}
.status.open{display:inline-flex;background:#eef5ec;color:#3f6b3a}
.status.closing{display:inline-flex;background:#faf3e3;color:#8a6d1f}
.status.closed{display:inline-flex;background:#f3f3f3;color:#6b6b6b}

/* ---- Hero F: cream band + hours card + photo strip ----------------- */
.hero-f { min-height: 0; overflow: visible; background: #fff; }
.hero-f::after { display: none; }
.hero-band { background: var(--nd-gold-soft); padding: 64px 0 56px; }
.hero-band { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; align-items: center; max-width: 1100px; margin: 0 auto; padding-left: 40px; padding-right: 40px; }
.hero-f .hero-band { box-sizing: border-box; }
.hero-f { background: var(--nd-gold-soft); }
.hero-copy { display: grid; gap: 20px; }
.hero-copy h1 { margin: 0; font-size: clamp(1.9rem, 1.2rem + 2.2vw, 2.75rem); line-height: 1.1; color: var(--nd-heading); }
.hero-copy p { margin: 0; font-size: 1.06rem; line-height: 1.6; color: var(--nd-muted); max-width: 46ch; text-wrap: pretty; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-actions .google-maps-btn { margin: 0; }
.btn-outline { display: inline-block; border: 1px solid var(--nd-gold); color: var(--nd-gold-dark); padding: 11px 24px; border-radius: 24px; font-size: 1rem; transition: background 0.2s ease, color 0.2s ease; }
.btn-outline:hover { background: #fff; color: var(--nd-ink); }
.hero-f .hero-panel { min-width: 0; background: #fff; border: 1px solid var(--nd-line); box-shadow: var(--nd-shadow); backdrop-filter: none; max-width: none; width: auto; padding: 6px 24px 6px; }
.hero-kicker { display: block; padding: 12px 0 4px; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nd-gold-dark); }
.hero-f .shop-row:first-of-type { border-top: 1px solid var(--nd-line); }
@media (max-width: 860px) {
  .hero-band { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 40px 24px 36px; }
  .hero-f .shop-name h3 { white-space: normal; }
  .hero-f .shop-row .today { white-space: normal; }
}

/* Hero F card rows: name + pill / address / hours, at every width */
.hero-f .shop-row { display: grid; grid-template-columns: 1fr auto 20px; grid-template-rows: auto auto auto; align-items: center; gap: 2px 12px; padding: 16px 0; }
.hero-f .shop-name { display: contents; }
.hero-f .shop-name h3 { grid-column: 1; grid-row: 1; font-size: 1.2rem; margin: 0; white-space: nowrap; }
.hero-f .shop-name p { grid-column: 1 / 3; grid-row: 2; }
.hero-f .shop-row .status { grid-column: 2; grid-row: 1; justify-self: end; }
.hero-f .shop-row .today { grid-column: 1 / 3; grid-row: 3; margin-top: 6px; white-space: nowrap; font-size: 0.95rem; }
.hero-f .shop-link { grid-column: 3; grid-row: 1 / 4; }

/* ---- Interior page hero: cream band + framed photo -------------------- */
.hero-page .hero-band { padding-top: 56px; padding-bottom: 56px; align-items: center; }
.hero-page .hero-copy .hero-kicker { padding: 0; }
.hero-figure { margin: 0; aspect-ratio: 4 / 3; border-radius: var(--nd-radius); overflow: hidden; box-shadow: var(--nd-shadow); }
.hero-figure img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 45%; display: block; filter: none; position: static; inset: auto; }
html { scroll-behavior: smooth; }
@media (max-width: 860px) {
  .hero-page .hero-band { padding-top: 36px; padding-bottom: 36px; }
  .hero-figure { aspect-ratio: 16 / 10; }
}

/* ---- Photo row (cafe: del cafetal a la taza) ---------------------- */
.photo-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 28px; }
.photo-row figure { margin: 0; }
.photo-row img { width: 100%; height: 170px; aspect-ratio: auto; object-fit: cover; border-radius: 10px; display: block; }
.photo-row figcaption { margin-top: 6px; font-size: 0.8rem; color: var(--nd-muted); }
@media (max-width: 860px) { .photo-row img { height: 140px; } }
@media (max-width: 640px) { .photo-row { gap: 8px; } .photo-row img { height: 96px; } .photo-row figcaption { font-size: 0.7rem; } }

/* ---- Hours notices (special days) --------------------------------- */
.hours-notice { list-style: none; margin: 12px 0 0; padding: 10px 14px 4px; background: var(--nd-gold-soft); border-radius: 12px; display: grid; gap: 0; }
.hours-notice__head { font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nd-gold-dark); padding: 0 0 6px; }
.hours-notice li:not(.hours-notice__head) { display: grid; grid-template-columns: 5.4em 1fr; gap: 12px; align-items: baseline; padding: 8px 0; border-top: 1px solid #efe6cc; font-size: 0.86rem; line-height: 1.45; color: var(--nd-ink); text-align: left; }
.hours-notice__date { font-size: 0.78rem; color: var(--nd-gold-dark); white-space: nowrap; }
.hours-notice__text { color: var(--nd-ink); }
.hours-fineprint { margin: 10px 0 8px; font-size: 0.78rem; color: var(--nd-muted); }
.hero-f .hours-fineprint { padding-bottom: 6px; }
.hours-notice--page { max-width: 720px; margin: 0 auto 10px; }
.hours-fineprint--page { text-align: center; margin: 0 0 8px; }
@media (max-width: 640px) { .hours-notice li:not(.hours-notice__head) { grid-template-columns: 1fr; gap: 2px; } }
@media (max-width: 640px) {
  .hero-f .shop-row { grid-template-columns: minmax(0, 1fr) 20px; grid-template-rows: auto auto auto auto; }
  .hero-f .shop-name h3 { grid-column: 1; grid-row: 1; white-space: normal; }
  .hero-f .shop-row .status { grid-column: 1; grid-row: 2; justify-self: start; margin: 4px 0 2px; }
  .hero-f .shop-name p { grid-column: 1; grid-row: 3; }
  .hero-f .shop-row .today { grid-column: 1; grid-row: 4; white-space: normal; }
  .hero-f .shop-link { grid-column: 2; grid-row: 1 / 5; }
  .status { white-space: normal; }
}

/* ---- Plain cream hero (single column) --------------------------------- */
.hero-band--single { grid-template-columns: minmax(0, 1fr); }
.hero-copy--wide h1 { max-width: 18ch; }

/* Cafe: tighter gap between intro/photo row and the coffee list */
.about + .coffee-list { padding-top: 8px; }
.about .photo-row { margin-bottom: 0; }
.about:has(.photo-row) { padding-bottom: 28px; }

/* ---- Home hero: same height as the plain page heroes; hours card overlaps into the next section ---- */
.hero-f--overlap { overflow: visible; }
.hero-f--overlap .hero-band { padding-top: 48px; padding-bottom: 48px; align-items: start; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 40px; }
.hero-f--overlap .hero-copy { gap: 16px; }
.hero-f--overlap .hero-copy h1 { font-size: clamp(1.8rem, 1.1rem + 1.9vw, 2.45rem); max-width: 22ch; }
.hero-f .shop-row .status { white-space: nowrap; align-self: center; }
.hero-f--overlap .hero-panel { position: relative; z-index: 2; margin-top: 0; margin-bottom: -300px; }
.hero-f--overlap + main > .about:first-of-type { padding-top: 48px; padding-bottom: 16px; min-height: 0; }
.hero-f--overlap + main > .about:first-of-type + .nd-gallery { margin-top: 8px; }
.hero-f--overlap + main > .about:first-of-type h2,
.hero-f--overlap + main > .about:first-of-type p { max-width: 52%; }
@media (max-width: 860px) {
  .hero-f--overlap .hero-band, .hero-page.hero-f--overlap .hero-band { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 36px; padding-bottom: 32px; }
  .hero-f--overlap .hero-copy h1 { max-width: none; }
  .hero-f--overlap .hero-panel { margin-top: 0; margin-bottom: 0; }
  .hero-f--overlap + main > .about:first-of-type { padding-top: var(--nd-section); min-height: 0; }
  .hero-f--overlap + main > .about:first-of-type h2,
  .hero-f--overlap + main > .about:first-of-type p { max-width: none; }
}

/* Visit: overlap variant also applies (hero-page padding yields to overlap padding) */
.hero-page.hero-f--overlap .hero-band { padding-top: 48px; padding-bottom: 48px; }

/* ---- Location pages: hours card + about with photo ------------------ */
.weekly-hours { padding: 10px 0 2px; border-top: 1px solid var(--nd-line); }
.weekly-hours p { margin: 2px 0; font-size: 0.92rem; color: var(--nd-muted); }
.about--photo { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 40px; align-items: center; }
.about--photo .about-figure { margin: 0; border-radius: var(--nd-radius); overflow: hidden; box-shadow: var(--nd-shadow); }
.about--photo .about-figure img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.hero-page--card .hero-band { align-items: start; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.hero-page--card .hero-panel { min-width: 0; }
.about--photo h2, .about--photo p { max-width: none; }
@media (max-width: 860px) {
  .about--photo { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .hero-page--card .hero-band { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

/* ---- Main nav: the underline is the whole affordance ---------------- */
/* Every page's inline styles carry a generic `nav a { padding; radius }`
   and a rounded focus ring, which together drew a pill around whichever
   link was hovered or focused. The gold underline already says "here" and
   "you can go here"; nothing else is needed. */
.main-nav-link, .main-nav-link:hover, .main-nav-link:focus, .main-nav-link:focus-visible,
.main-nav-link.active, .main-nav-link[aria-current="page"] {
  padding: 0 0 2px; border-radius: 0; background: none; box-shadow: none; outline: none;
}
.main-nav-link:focus-visible { border-bottom-color: var(--nd-gold); color: var(--nd-ink); }

/* ---- Phone menu ---------------------------------------------------- */
/* The drawer's rows sit on the page's own 24px gutter, each one tall
   enough for a thumb, parted by hairlines rather than by air. The current
   page is named in gold; a second underline under a full-width row would
   only read as another divider. */
.mobile-drawer ul { padding: 4px 24px 12px; gap: 0; }
.mobile-drawer li + li { border-top: 1px solid var(--nd-line); }
.mobile-drawer a { display: block; padding: 14px 0; border-bottom: 0; line-height: 1.2; }
.mobile-drawer a[aria-current="page"] { color: var(--nd-gold-dark); border-bottom: 0; }
.mobile-drawer { box-shadow: 0 12px 24px rgba(20, 16, 10, 0.08); border-bottom-color: var(--nd-line); }

/* Logo links home */
.main-logo a { display: inline-flex; align-items: center; border-bottom: 0; }
.main-logo a:focus-visible { outline: 2px solid var(--nd-gold); outline-offset: 4px; border-radius: 8px; }

/* Home, phones only: a photo between the copy and the hours card */
.hero-mobile-figure { display: none; margin: 0; }
@media (max-width: 860px) {
  .hero-mobile-figure { display: block; border-radius: var(--nd-radius-sm); overflow: hidden; box-shadow: var(--nd-shadow); }
  .hero-mobile-figure img { position: static; inset: auto; filter: none; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
}

/* Anchor targets land below the sticky header */
[id] { scroll-margin-top: 104px; }


/* Event promo card (hero panel) — date and mark on the left, text on the right */
.event-promo { display: grid; grid-template-columns: 7.4em 1fr; column-gap: 14px; align-items: start; margin: 0 0 14px; padding: 13px 15px; border: 1px solid #efe6cc; border-radius: 12px; background: var(--nd-gold-soft); color: var(--nd-ink); text-decoration: none; text-align: left; transition: border-color .15s ease, background .15s ease; }
.event-promo:hover { border-color: var(--nd-gold); background: #fff; }
.event-promo__when { display: block; }
.event-promo__kicker, .event-promo__dates { display: block; font-size: 0.66rem; letter-spacing: 0.08em; line-height: 1.5; text-transform: uppercase; color: var(--nd-gold-dark); white-space: nowrap; }
.event-promo .event-promo__icon { position: static; inset: auto; width: 46px; height: auto; object-fit: initial; filter: none; display: block; margin: 11px 0 0; opacity: 0.9; }
.event-promo__body { display: block; }
.event-promo__title { display: block; font-family: Georgia, 'Times New Roman', serif; font-size: 1.04rem; line-height: 1.25; color: var(--nd-ink); }
.event-promo__blurb { display: block; margin-top: 6px; font-size: 0.82rem; line-height: 1.55; color: var(--nd-ink); }
.event-promo__meta { display: block; margin-top: 8px; font-size: 0.75rem; line-height: 1.5; color: var(--nd-muted, #777); }
.event-promo__cta { display: inline-block; margin-top: 9px; font-size: 0.8rem; color: var(--nd-gold-dark); border-bottom: 1px solid var(--nd-gold); }
@media (max-width: 640px) {
  .event-promo { grid-template-columns: 1fr; }
  .event-promo__when { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
  .event-promo__kicker, .event-promo__dates { display: inline; }
  .event-promo__dates::before { content: '· '; }
  .event-promo .event-promo__icon { width: 34px; margin: 0 0 0 auto; }
}}ock; }
.hours-notice .hours-notice__art { display: block; position: static; inset: auto; width: 44px; height: auto; object-fit: initial; filter: none; margin: 8px 0 2px; opacity: 0.9; }
@media (max-width: 640px) { .hours-notice .hours-notice__art { display: none; } }
.event-promo__note { display: block; margin-top: 7px; font-size: 0.75rem; line-height: 1.5; color: var(--nd-gold-dark); }
