/*
Theme Name: DeDe Lopez
Theme URI: https://dede.se/
Author: DeDe Lopez
Author URI: https://dede.se/
Description: Official WordPress block theme for DeDe Lopez. Black and champagne-gold design system. Full WooCommerce support — shop, cart, checkout and account templates included.
Version: 1.0.10
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dede-lopez
Tags: full-site-editing, block-styles, e-commerce, black, gold, music, one-column, wide-blocks
WC requires at least: 8.0
WC tested up to: 11.2
*/

/* ---------------------------------------------------------------
   Design tokens — black / deep charcoal with champagne gold.
   These are consumed by theme.json and extended here for the
   parts of the UI that theme.json does not reach.
   --------------------------------------------------------------- */
:root {
  --dl-black: #0a0a0b;
  --dl-charcoal-900: #0f0f11;
  --dl-charcoal-800: #16161a;
  --dl-charcoal-700: #1e1e23;
  --dl-charcoal-600: #2a2a31;
  --dl-line: rgba(212, 175, 106, 0.18);
  --dl-line-soft: rgba(255, 255, 255, 0.07);

  --dl-gold: #d4af6a;
  --dl-gold-bright: #e8cd93;
  --dl-gold-deep: #a8863f;
  --dl-gold-glow: rgba(212, 175, 106, 0.16);

  --dl-ink: #f4f1ea;
  --dl-ink-soft: #c9c4b8;
  --dl-ink-muted: #8f8a80;

  --dl-radius: 2px;
  --dl-radius-lg: 4px;
  --dl-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dl-dur: 420ms;
}

/* ---------------------------------------------------------------
   Base
   --------------------------------------------------------------- */
body {
  background-color: var(--dl-black);
  color: var(--dl-ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

::selection { background: var(--dl-gold); color: var(--dl-black); }

a { transition: color var(--dl-dur) var(--dl-ease); }

/* Visible keyboard focus on every interactive element. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--dl-gold-bright);
  outline-offset: 3px;
  border-radius: var(--dl-radius);
}

/* Reserve space so lazy images do not shift layout. */
img { height: auto; }

/* ---------------------------------------------------------------
   Headings & ornaments
   --------------------------------------------------------------- */
.wp-block-heading,
h1, h2, h3, h4, h5, h6 {
  color: var(--dl-ink);
}

/* Reusable gold rule — matches the static build's <hr class="rule">. */
.dl-rule,
hr.wp-block-separator {
  border: 0;
  height: 1px;
  max-width: 5.5rem;
  margin: 1.25rem 0 0;
  background: linear-gradient(90deg, var(--dl-gold), rgba(212, 175, 106, 0));
  opacity: 1;
}

/* Small uppercase gold label used above section headings. */
.dl-eyebrow {
  display: block;
  font-family: var(--wp--preset--font-family--body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--dl-gold);
  margin-bottom: 0.75rem;
}

/* Muted supporting paragraph. */
.dl-muted { color: var(--dl-ink-muted); }

/* ---------------------------------------------------------------
   Buttons — solid gold and outlined ghost variants
   --------------------------------------------------------------- */
.wp-block-button__link,
.wp-element-button {
  border-radius: var(--dl-radius);
  font-family: var(--wp--preset--font-family--body);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.82rem;
  padding: 0.95em 2em;
  transition: background-color var(--dl-dur) var(--dl-ease),
              color var(--dl-dur) var(--dl-ease),
              border-color var(--dl-dur) var(--dl-ease),
              transform var(--dl-dur) var(--dl-ease);
}

.wp-block-button__link:hover,
.wp-element-button:hover { transform: translateY(-1px); }

/* Ghost / outlined button */
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-dl-ghost .wp-block-button__link {
  background: transparent;
  border: 1px solid var(--dl-line);
  color: var(--dl-gold);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-dl-ghost .wp-block-button__link:hover {
  border-color: var(--dl-gold);
  color: var(--dl-gold-bright);
  background: var(--dl-gold-glow);
}

/* ---------------------------------------------------------------
   Cards & surfaces
   --------------------------------------------------------------- */
.dl-card,
.wp-block-group.is-style-dl-card {
  background: var(--dl-charcoal-900);
  border: 1px solid var(--dl-line-soft);
  border-radius: var(--dl-radius-lg);
  padding: clamp(1.5rem, 3vw, 2.5rem);
}

.wp-block-group.is-style-dl-raised {
  background: var(--dl-charcoal-900);
  border-top: 1px solid var(--dl-line);
  border-bottom: 1px solid var(--dl-line);
}

/* Notice / callout box */
.dl-notice {
  border-left: 2px solid var(--dl-gold);
  background: var(--dl-charcoal-800);
  padding: 1.1rem 1.4rem;
  border-radius: 0 var(--dl-radius) var(--dl-radius) 0;
}

.dl-notice__label {
  display: block;
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--dl-gold);
  margin-bottom: 0.35rem;
}

/* ---------------------------------------------------------------
   Release / discography cards
   --------------------------------------------------------------- */
.dl-release {
  list-style: none;
  margin: 0;
  padding: 0.85rem 0;
  display: grid;
  grid-template-columns: 4.5rem 1fr auto;
  gap: 1rem;
  align-items: baseline;
  border-bottom: 1px solid var(--dl-line-soft);
}

.dl-release:first-child { border-top: 1px solid var(--dl-line-soft); }
.dl-release__year { color: var(--dl-gold); font-size: 1.05rem; }
.dl-release__note {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--dl-ink-muted);
}

/* Cover artwork grid */
.dl-cover-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1.5rem;
}

.dl-cover {
  border: 1px solid var(--dl-line-soft);
  border-radius: var(--dl-radius-lg);
  overflow: hidden;
  background: var(--dl-charcoal-900);
}

.dl-cover img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  transition: transform var(--dl-dur) var(--dl-ease);
}

.dl-cover:hover img { transform: scale(1.04); }
.dl-cover__meta { padding: 1rem; }
.dl-cover__year { color: var(--dl-gold); font-size: 0.9rem; display: block; }
.dl-cover__label {
  display: block;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--dl-ink-muted);
  margin-top: 0.35rem;
}

/* ---------------------------------------------------------------
   Header & navigation
   --------------------------------------------------------------- */
.dl-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(10, 10, 11, 0.92);
  backdrop-filter: saturate(140%) blur(10px);
  border-bottom: 1px solid var(--dl-line-soft);
}

/* Core navigation block, restyled */
.wp-block-navigation {
  font-family: var(--wp--preset--font-family--body);
  font-size: 0.86rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.wp-block-navigation-item__content { color: var(--dl-ink-soft); }
.wp-block-navigation-item__content:hover { color: var(--dl-gold); }

.wp-block-navigation-item[aria-current="page"] > .wp-block-navigation-item__content,
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
  color: var(--dl-gold);
}

/* Mobile overlay menu */
.wp-block-navigation__responsive-container.is-menu-open {
  background: var(--dl-black);
  padding: 2rem;
}

/* ---------------------------------------------------------------
   Footer
   --------------------------------------------------------------- */
.dl-footer {
  background: var(--dl-charcoal-900);
  border-top: 1px solid var(--dl-line);
  color: var(--dl-ink-muted);
  font-size: 0.86rem;
}

.dl-footer a { color: var(--dl-ink-soft); }
.dl-footer a:hover { color: var(--dl-gold); }

.dl-social {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ---------------------------------------------------------------
   Forms — contact form and WooCommerce fields
   --------------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="password"],
select,
textarea {
  width: 100%;
  background: var(--dl-charcoal-800);
  border: 1px solid var(--dl-line-soft);
  border-radius: var(--dl-radius);
  color: var(--dl-ink);
  padding: 0.85em 1em;
  font-family: var(--wp--preset--font-family--body);
  font-size: 0.95rem;
  transition: border-color var(--dl-dur) var(--dl-ease);
}

input::placeholder, textarea::placeholder { color: var(--dl-ink-muted); }

input:focus, select:focus, textarea:focus {
  border-color: var(--dl-gold);
  outline: none;
}

label {
  display: block;
  font-size: 0.76rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--dl-ink-muted);
  margin-bottom: 0.45rem;
}

/* ---------------------------------------------------------------
   WooCommerce — shop, product, cart, checkout, account
   --------------------------------------------------------------- */

/* Product grid */
ul.products {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 2rem;
}

ul.products li.product {
  background: var(--dl-charcoal-900);
  border: 1px solid var(--dl-line-soft);
  border-radius: var(--dl-radius-lg);
  overflow: hidden;
  padding: 0;
  text-align: left;
}

ul.products li.product img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin: 0;
}

ul.products li.product .woocommerce-loop-product__title {
  color: var(--dl-ink);
  font-size: 1rem;
  padding: 1rem 1.1rem 0;
}

ul.products li.product .price {
  color: var(--dl-gold);
  padding: 0.25rem 1.1rem;
  font-size: 1rem;
}

ul.products li.product .button,
ul.products li.product .add_to_cart_button {
  margin: 0.75rem 1.1rem 1.1rem;
  background: var(--dl-gold);
  color: var(--dl-black);
  border: 0;
  border-radius: var(--dl-radius);
  padding: 0.7em 1.4em;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

ul.products li.product .button:hover { background: var(--dl-gold-bright); color: var(--dl-black); }

/* Sale badge */
.woocommerce span.onsale {
  background: var(--dl-gold);
  color: var(--dl-black);
  border-radius: var(--dl-radius);
  min-height: 0;
  padding: 0.35em 0.8em;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.6;
}

/* Prices */
.woocommerce-Price-amount, .price { color: var(--dl-gold); }

/* Cart & checkout tables */
.woocommerce table.shop_table {
  border: 1px solid var(--dl-line-soft);
  border-radius: var(--dl-radius-lg);
  border-collapse: separate;
  border-spacing: 0;
  color: var(--dl-ink);
  background: var(--dl-charcoal-900);
}

.woocommerce table.shop_table th {
  background: var(--dl-charcoal-800);
  color: var(--dl-ink-soft);
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 1rem;
}

.woocommerce table.shop_table td {
  padding: 1rem;
  border-top: 1px solid var(--dl-line-soft);
}

/* Order totals box */
.cart_totals, .woocommerce-checkout-review-order {
  background: var(--dl-charcoal-900);
  border: 1px solid var(--dl-line-soft);
  border-radius: var(--dl-radius-lg);
  padding: 1.5rem;
}

/* Primary WooCommerce buttons (place order, proceed to checkout) */
.woocommerce .button.alt,
.woocommerce #place_order,
.woocommerce-checkout .button,
.woocommerce-cart .button {
  background: var(--dl-gold);
  color: var(--dl-black);
  border: 0;
  border-radius: var(--dl-radius);
  padding: 1em 2em;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.woocommerce .button.alt:hover,
.woocommerce #place_order:hover {
  background: var(--dl-gold-bright);
  color: var(--dl-black);
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background: var(--dl-charcoal-800);
  border-top: 2px solid var(--dl-gold);
  color: var(--dl-ink);
  border-radius: 0 0 var(--dl-radius) var(--dl-radius);
  padding: 1rem 1.25rem;
}

.woocommerce-error { border-top-color: #c0563f; }

/* Account / login */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li {
  border-bottom: 1px solid var(--dl-line-soft);
}
.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: block;
  padding: 0.8rem 0;
  color: var(--dl-ink-soft);
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover { color: var(--dl-gold); }

/* ---------------------------------------------------------------
   Language switcher (TranslatePress) — restyle to match header
   --------------------------------------------------------------- */
#trp-floater-ls,
.trp-language-switcher {
  border-radius: var(--dl-radius);
  font-family: var(--wp--preset--font-family--body);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.trp-language-switcher > div {
  background: var(--dl-charcoal-800);
  border: 1px solid var(--dl-line-soft);
  border-radius: var(--dl-radius);
}

.trp-language-switcher a { color: var(--dl-ink-soft); }
.trp-language-switcher a:hover,
.trp-language-switcher a.trp-ls-shortcode-current-language { color: var(--dl-gold); }

/* ---------------------------------------------------------------
   Accessibility utilities
   --------------------------------------------------------------- */
.screen-reader-text {
  border: 0;
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

.skip-link.screen-reader-text:focus {
  background: var(--dl-gold);
  color: var(--dl-black);
  clip-path: none;
  height: auto;
  left: 1rem;
  top: 1rem;
  padding: 0.75rem 1.25rem;
  width: auto;
  z-index: 100000;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .dl-cover:hover img { transform: none; }
}

/* ---------------------------------------------------------------
   Schedule — Events page
   --------------------------------------------------------------- */
.dl-schedule { margin-top: 2.5rem; }

.dl-schedule__intro { margin-bottom: 2rem; }
.dl-schedule__intro h2 { margin: 0.4rem 0 0; }

.dl-schedule__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.75rem;
}

.dl-event {
  display: flex;
  flex-direction: column;
  margin: 0;
  border: 1px solid var(--dl-line-soft);
  border-radius: var(--dl-radius-lg);
  overflow: hidden;
  background: var(--dl-charcoal-900);
  transition: border-color var(--dl-dur) var(--dl-ease),
              transform var(--dl-dur) var(--dl-ease);
}

.dl-event:hover {
  border-color: var(--dl-line);
  transform: translateY(-2px);
}

.dl-event__media {
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--dl-charcoal-800);
}

.dl-event__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* The portrait shot is cropped to a landscape frame; bias the crop upward so
   the face stays in view rather than landing below the edge. */
.dl-event__media img[src*="event-dede-dj"] {
  object-position: center 18%;
}

.dl-event__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1.35rem;
  flex: 1;
}

.dl-event__date {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--dl-gold);
}

.dl-event__title {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.3;
}

.dl-event__where {
  margin: 0;
  color: var(--dl-ink-soft);
  font-size: 0.92rem;
  line-height: 1.55;
  flex: 1;
}

.dl-event__credit {
  margin: 0;
  color: var(--dl-ink-muted);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}

.dl-schedule__ticket {
  align-self: flex-start;
  margin-top: 0.35rem;
  padding: 0.3rem 0.8rem;
  border: 1px solid var(--dl-line);
  border-radius: var(--dl-radius);
  color: var(--dl-gold);
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  white-space: nowrap;
  transition: background-color var(--dl-dur) var(--dl-ease),
              border-color var(--dl-dur) var(--dl-ease),
              color var(--dl-dur) var(--dl-ease);
}

.dl-schedule__ticket:hover,
.dl-schedule__ticket:focus-visible {
  background: var(--dl-gold-glow);
  border-color: var(--dl-gold);
  color: var(--dl-gold-bright);
}

.dl-schedule__bookings {
  margin-top: 3rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--dl-line);
}

.dl-schedule__bookings h3 { margin: 0 0 0.75rem; }
.dl-schedule__bookings p { margin: 0 0 0.5rem; }
.dl-schedule__bookings ul { margin: 0; padding-left: 0; list-style: none; }
.dl-schedule__bookings li { padding: 0.2rem 0; color: var(--dl-ink-soft); }

/* Standalone schedule, printed by the theme rather than the page content */
.dl-schedule-standalone {
  max-width: var(--wp--style--global--content-size, 48rem);
  margin: 0 auto;
  padding: 0 var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
}

/* ---------------------------------------------------------------
   Mobile navigation
   --------------------------------------------------------------- */

/* WordPress shows the burger below 600px and opens an overlay panel. With
   eight links that panel can run past the bottom of a short phone screen, so
   it has to scroll, and the links need a tap target of their own rather than
   the small, letter-spaced type used on the desktop bar. */
.wp-block-navigation__responsive-container.is-menu-open {
  background: var(--dl-black);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content {
  display: block;
  align-items: stretch;
  width: 100%;
  max-width: 32rem;
  padding: 1.5rem 1.75rem 3rem;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  display: block;
  align-items: stretch;
  gap: 0;
  width: 100%;
  font-size: 1.15rem;
  letter-spacing: 0.04em;
  line-height: 1.25;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  display: block;
  width: 100%;
}

.wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item__content {
  display: block;
  width: 100%;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--dl-line-soft);
  color: var(--dl-ink);
}

.wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item:last-child
  .wp-block-navigation-item__content {
  border-bottom: 0;
}

.wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item__content:hover {
  color: var(--dl-gold);
}

/* The open and close controls sit over the panel; give them a comfortable
   target and the light ink colour. */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
  color: var(--dl-ink);
  padding: 0.5rem;
}

.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg {
  width: 26px;
  height: 26px;
}

/* Keep the close button clear of the first link when the panel scrolls. */
.wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
}

/* Never let the desktop bar wrap onto a second row. */
.dl-header .wp-block-navigation__container {
  flex-wrap: wrap;
}

/* ---------------------------------------------------------------
   Home page
   --------------------------------------------------------------- */

/* "The Official Home of DeDe Lopez" is now the second section, directly
   under the hero. It is a media-text card, so it needs a little separation
   from the hero above it and a clear boundary of its own. */
.wp-block-post-content > .wp-block-media-text:has(h2) {
  margin-top: 0;
}

/* Give the invitation a gold rule above it so it reads as a deliberate
   statement rather than a leftover paragraph. */
.wp-block-media-text__content .ext-section-intro::before {
  content: "";
  display: block;
  width: 64px;
  height: 1px;
  margin: 0 0 1.5rem;
  background: var(--dl-gold);
  opacity: 0.7;
}

.wp-block-media-text__content .ext-section-intro h2 {
  margin-top: 0;
}

.wp-block-media-text__content .ext-section-intro + .wp-block-buttons {
  margin-top: 0.5rem;
}

/* ---------------------------------------------------------------
   About page — the statistics row
   --------------------------------------------------------------- */

/* The portrait and the statistics cards sit side by side on a wide screen
   and stack on a narrow one. Either way the cards crowded the photograph:
   the row had no column gap to speak of, and once stacked the first card
   started immediately under the picture. Both get room here. */
.wp-block-columns:has(.wp-block-column > .wp-block-group.is-layout-grid):has(img) {
  column-gap: 2.5rem;
  row-gap: 2.5rem;
}

/* When the two columns stack, give the statistics block a little air above
   it and space the cards apart, so the row reads as its own section rather
   than a continuation of the photograph. */
@media (max-width: 781px) {
  .wp-block-columns:has(.wp-block-column > .wp-block-group.is-layout-grid):has(img) {
    row-gap: 3rem;
  }

  .wp-block-column > .wp-block-group.is-layout-grid .ext-card {
    margin-bottom: 0.75rem;
  }
}

/* ---------------------------------------------------------------
   Booking page — the closing credit card
   --------------------------------------------------------------- */

/* The card's heading had the event name, a stray full stop and the
   photographer credit run together into one sentence. The heading is now the
   event name alone, and the credit sits on its own line below the details, in
   the same quiet footnote style used on the Events cards. */
.dl-booking-credit {
  margin-top: 0.35rem;
  font-style: italic;
  opacity: 0.78;
}

/* The card had no picture, so beside the poster card next to it in the grid it
   collapsed to a bare strip of text. It now carries the DJ photograph, framed
   to the same 4:3 as the image the neighbouring card uses. */
.dl-booking-photo {
  margin: 0 0 1.25rem;
}

.dl-booking-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 18%;
  display: block;
  border-radius: var(--dl-radius);
}

/* ---------------------------------------------------------------
   Events page — the calendar's empty list
   --------------------------------------------------------------- */

/* The page still carries the calendar plugin's own event list. It has nothing
   in it — the dates live in the schedule the theme prints — so all it ever
   showed was "There are no events scheduled that match your criteria." right
   underneath a full list of events, which read as though the page were empty.
   It is hidden here; the schedule above it is the only list on the page.
   The page's own ID in the body class is what identifies it. */
.page-id-7575000 .sugar-calendar-event-list-block {
  display: none;
}

/* ---------------------------------------------------------------
   Header — the shop's account icon
   --------------------------------------------------------------- */

/* WooCommerce puts a small account icon in the header. There are no customer
   accounts on this site and there is not meant to be — the shop sells a book,
   nothing else — so the icon led only to an empty login page. It is hidden
   here rather than unregistered, which keeps the shop's own settings intact. */
.dl-header .wp-block-woocommerce-customer-account {
  display: none;
}

/* ---------------------------------------------------------------
   Front page — the page heading
   --------------------------------------------------------------- */

/* The page template prints the page's own title above its content, which is
   right for "About" or "Music" but wrong for the front page: there the title
   is just the word "Home", sitting above the opening banner and competing
   with the real heading underneath it. Two first-level headings, one of them
   meaningless. It is hidden here rather than removed from the template, so
   every other page keeps its title, and the rule that follows the title goes
   with it. */
.home .wp-block-post-title,
.home .wp-block-post-title + .wp-block-separator {
  display: none;
}

/* ---------------------------------------------------------------
   Responsive
   --------------------------------------------------------------- */
@media (max-width: 700px) {
  .dl-schedule__grid { grid-template-columns: 1fr; gap: 1.25rem; }
}

/* Print — keep it clean for press sheets */
@media print {
  .dl-header, .dl-footer, .wp-block-navigation { display: none; }
  body { background: #fff; color: #000; }
}
