/* Specie di Spazi design system on the site's service parts: The Events Calendar views and the
   theme's 404 / archive / search pages. Tokens: titolo = Oswald (Akzidenz Condensed stand-in),
   testo = ABeeZee, inchiostro #000, inchiostro-tenue #4a4945, rosso #a84040, bianco, radius-0. */

@font-face { font-family: "Oswald"; src: url("fonts/Oswald-Light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Oswald"; src: url("fonts/Oswald-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "ABeeZee"; src: url("fonts/ABeeZee-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "ABeeZee"; src: url("fonts/ABeeZee-Italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }

:root {
  --sds-titolo: "Akzidenz-Grotesk BQ Condensed", "AkzidenzGroteskBQ-Cnd", "Oswald", "Arial Narrow", sans-serif;
  --sds-testo: "ABeeZee", "Noto Sans", system-ui, sans-serif;
  --sds-inchiostro: #000;
  --sds-tenue: #4a4945;
  --sds-rosso: #a84040;
  --sds-bianco: #fff;
  /* One grid for the whole site: header, page content and footer share the same edges. */
  --sds-wrap: 1290px;
  /* Never narrower than the logo's tilde, which hangs in it (26px small logo, 42px full size). */
  --sds-gutter: 28px;
}
@media (min-width: 576px) { :root { --sds-gutter: clamp(48px, 5vw, 64px); } }

/* ---------- Site grid (hello-elementor header/footer, Elementor boxed sections, plain pages) ---------- */
body .site-header,
body .site-footer {
  padding-left: var(--sds-gutter);
  padding-right: var(--sds-gutter);
}
body .site-header .header-inner,
body .site-footer .footer-inner,
body .site-footer:not(.dynamic-footer),
body .page-header .entry-title,
body:not([class*="elementor-page-"]) .site-main {
  width: 100%;
  max-width: var(--sds-wrap);
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
}
body:not([class*="elementor-page-"]) .site-main { padding-left: var(--sds-gutter); padding-right: var(--sds-gutter); max-width: calc(var(--sds-wrap) + 2 * var(--sds-gutter)); }
/* Only the outer sections take the side margin; sections nested in a column are already inside it. */
body .elementor-section.elementor-top-section.elementor-section-boxed { padding-left: var(--sds-gutter); padding-right: var(--sds-gutter); }
body .elementor-section.elementor-top-section.elementor-section-boxed > .elementor-container { max-width: var(--sds-wrap); }
/* Columns with Elementor's default 10px gap: widen the box by the gap so the text keeps the grid's edge. */
body .elementor-section.elementor-top-section.elementor-section-boxed > .elementor-container.elementor-column-gap-default {
  max-width: calc(var(--sds-wrap) + 20px);
  margin-left: -10px; margin-right: -10px;
}
@media (min-width: 1418px) {
  body .elementor-section.elementor-top-section.elementor-section-boxed > .elementor-container.elementor-column-gap-default { margin-left: auto; margin-right: auto; }
}
/* Sections nested in a column fill it: Elementor's site-wide 1140px box must not re-centre them. */
body .elementor-section.elementor-inner-section.elementor-section-boxed > .elementor-container { max-width: none; }
/* Page titles of the theme (Info, Tesseramento, privacy…): on the grid, with the side margin. */
body .page-header .entry-title {
  box-sizing: border-box;
  max-width: calc(var(--sds-wrap) + 2 * var(--sds-gutter));
  padding-left: var(--sds-gutter); padding-right: var(--sds-gutter);
}
body:not([class*="elementor-page-"]) .site-main .page-header .entry-title { padding-left: 0; padding-right: 0; }
/* Single event page: The Events Calendar's own 1048px box gives way to the grid. */
body #tribe-events-pg-template {
  box-sizing: border-box;
  max-width: calc(var(--sds-wrap) + 2 * var(--sds-gutter));
  margin-left: auto; margin-right: auto;
  padding-left: var(--sds-gutter); padding-right: var(--sds-gutter);
}
/* Forms (Forminator date pickers): select2's hidden native select is clipped but keeps its full width,
   which made the registration page scroll sideways. */
body select.select2-hidden-accessible { width: 1px !important; height: 1px !important; }
/* Logo: the "S" of Specie sits on the grid's left edge, the tilde hangs outside it, in the gutter
   (the gutter is never narrower than the tilde). The S starts at 12% of the logo picture. */
body .site-header .site-logo img { transform: translateX(-12%); }
@media (max-width: 575px) {
  body .site-header .site-branding .site-logo img { width: 220px; max-width: 100%; }
}

/* ---------- The Events Calendar: its own variables ---------- */
body .tribe-common {
  --tec-font-family-sans-serif: var(--sds-testo);
  --tec-font-weight-bold: 400;
  --tec-color-text-primary: var(--sds-inchiostro);
  --tec-color-text-primary-light: var(--sds-tenue);
  --tec-color-text-secondary: var(--sds-tenue);
  --tec-color-icon-primary: var(--sds-inchiostro);
  --tec-color-icon-active: var(--sds-inchiostro);
  --tec-color-icon-focus: var(--sds-inchiostro);
  --tec-color-event-icon: var(--sds-inchiostro);
  --tec-color-event-icon-hover: var(--sds-rosso);
  --tec-color-accent-primary: var(--sds-rosso);
  --tec-color-accent-primary-hover: #8f3636;
  --tec-color-accent-primary-active: #8f3636;
  --tec-color-accent-primary-background: rgba(168, 64, 64, .08);
  --tec-color-accent-primary-background-datepicker: var(--sds-rosso);
  --tec-color-background-secondary-datepicker: rgba(168, 64, 64, .5);
  --tec-color-accent-secondary: var(--sds-inchiostro);
  --tec-color-button-primary: var(--sds-rosso);
  --tec-color-button-primary-hover: #8f3636;
  --tec-color-button-primary-active: #8f3636;
  --tec-color-background-events-bar-submit-button: var(--sds-rosso);
  --tec-color-background-events-bar-submit-button-hover: #8f3636;
  --tec-color-background-events-bar-submit-button-active: #8f3636;
  --tec-color-link-primary: var(--sds-inchiostro);
  --tec-color-link-accent: var(--sds-rosso);
  --tec-color-link-accent-hover: #8f3636;
  --tec-color-day-marker-current-month: var(--sds-rosso);
  --tec-color-day-marker-current-month-hover: #8f3636;
  --tec-color-day-marker-current-month-active: #8f3636;
  --tec-color-border-default: var(--sds-inchiostro);
  --tec-color-border-secondary: var(--sds-tenue);
  --tec-color-border-active: var(--sds-inchiostro);
  --tec-color-background: var(--sds-bianco);
  --tec-color-background-secondary: var(--sds-bianco);
  --tec-color-background-secondary-hover: #f0efed;
  --tec-color-background-messages: var(--sds-bianco);
  --tec-color-box-shadow: transparent;
  --tec-color-box-shadow-secondary: transparent;
  --tec-border-radius-default: 0;
  --tec-border-radius-month-multiday: 0;
  font-family: var(--sds-testo);
}

/* Notices ("Non ci sono eventi previsti."): a white box, the words that count. */
body .tribe-common .tribe-events-c-messages__message {
  background: var(--sds-bianco);
  border-radius: 0;
  padding: 12px 16px;
  color: var(--sds-inchiostro);
}
body .tribe-common .tribe-events-c-messages__message-icon-svg { color: var(--sds-rosso); }

/* Titles and dates in the condensed face. */
body .tribe-common .tribe-common-h1,
body .tribe-common .tribe-common-h2,
body .tribe-common .tribe-common-h3,
body .tribe-common .tribe-common-h4,
body .tribe-common .tribe-common-h5,
body .tribe-common .tribe-common-h6,
body .tribe-common .tribe-events-c-top-bar__datepicker-button,
body .tribe-common [class*="__event-date-tag"],
body .tribe-common .tribe-events-calendar-month__day-date,
body .tribe-common .tribe-events-calendar-month__header-column-title,
body .tribe-common .tribe-events-calendar-list__month-separator-text {
  font-family: var(--sds-titolo);
  font-weight: 400;
}
/* "Upcoming" / month picker and section headings: uppercase, like the programmes. */
body .tribe-common .tribe-events-c-top-bar__datepicker-button,
body .tribe-common .tribe-events-calendar-latest-past__heading,
body .tribe-common .tribe-events-calendar-list__month-separator-text,
body .tribe-common .tribe-events-calendar-month__header-column-title {
  text-transform: uppercase;
  letter-spacing: .01em;
}
body .tribe-common .tribe-events-calendar-latest-past__heading { font-size: 28px; line-height: 1; }
/* Date tag: three-letter month and the two-digit day. */
body .tribe-common [class*="__event-date-tag-month"],
body .tribe-common [class*="__event-date-tag-weekday"] {
  font-family: var(--sds-titolo);
  font-size: 18px;
  text-transform: uppercase;
  color: var(--sds-inchiostro);
}
body .tribe-common [class*="__event-date-tag-daynum"] { font-size: 44px; line-height: .95; }
body .tribe-common [class*="__event-date-tag-year"] { font-family: var(--sds-testo); font-size: 13px; color: var(--sds-tenue); }
/* Event titles: name of the night as written, condensed; underline in rosso on hover. */
body .tribe-common [class*="__event-title"] { line-height: 1.05; }
body .tribe-common [class*="__event-title-link"] { color: var(--sds-inchiostro); }
body .tribe-common [class*="__event-title-link"]:hover,
body .tribe-common [class*="__event-title-link"]:focus { color: var(--sds-inchiostro); border-bottom-color: var(--sds-rosso); text-decoration-color: var(--sds-rosso); }
/* Venue / price: small text in inchiostro-tenue. */
body .tribe-common [class*="__event-venue"],
body .tribe-common .tribe-events-c-small-cta { color: var(--sds-tenue); }
body .tribe-common [class*="__event-venue-title"] { color: var(--sds-inchiostro); }

/* Buttons ("Oggi", view selector, subscribe): square, black border. */
body .tribe-common .tribe-common-c-btn-border,
body .tribe-common .tribe-common-c-btn-border-small,
body .tribe-common .tribe-common-c-btn {
  border-radius: 0;
  font-family: var(--sds-testo);
}
body .tribe-common .tribe-events-c-view-selector__content,
body .tribe-common .tribe-events-c-subscribe-dropdown__content,
body .tribe-common .tribe-events-c-top-bar__datepicker-container .datepicker {
  border: 1px solid var(--sds-inchiostro);
  border-radius: 0;
  box-shadow: none;
}

/* Focus ring: 2px solid with 2px offset (fuoco). */
body .tribe-common a:focus-visible,
body .tribe-common button:focus-visible {
  outline: 2px solid var(--sds-inchiostro);
  outline-offset: 2px;
}

/* ---------- Theme service pages (hello-elementor): 404, archives, search ---------- */
.error404 .site-main,
.archive .site-main,
.search .site-main {
  font-family: var(--sds-testo);
  color: var(--sds-inchiostro);
}
.error404 .page-header .entry-title,
.archive .page-header .entry-title,
.search .page-header .entry-title {
  font-family: var(--sds-titolo);
  font-weight: 400;
  font-size: 44px;
  line-height: .95;
  text-transform: uppercase;
}
.archive .site-main .entry-title a,
.search .site-main .entry-title a {
  font-family: var(--sds-titolo);
  font-weight: 400;
  color: var(--sds-inchiostro);
}
.archive .site-main a,
.search .site-main a,
.error404 .site-main a { color: var(--sds-rosso); }
.site-main .pagination a,
.site-main .nav-links a { color: var(--sds-rosso); }

/* ---------- Calendar pages: top bar buttons (Oggi, prev/next arrows, picker) ---------- */
body .tribe-common .tribe-events-c-top-bar__today-button {
  border: 2px solid var(--sds-inchiostro);
  border-radius: 0;
  padding: 6px 14px;
  font-family: var(--sds-titolo);
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: .02em;
  color: var(--sds-inchiostro);
  background: transparent;
}
body .tribe-common .tribe-events-c-top-bar__today-button:hover { background: var(--sds-inchiostro); color: var(--sds-bianco); }
body .tribe-common .tribe-events-c-top-bar__nav-link {
  width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center;
  border: 2px solid var(--sds-inchiostro); border-radius: 0;
}
body .tribe-common .tribe-events-c-top-bar__nav-link:hover { background: var(--sds-inchiostro); }
body .tribe-common .tribe-events-c-top-bar__nav-link:hover path { fill: var(--sds-bianco); }
body .tribe-common .tribe-events-c-top-bar__nav-link[disabled] { opacity: .25; }
body .tribe-common .tribe-events-c-top-bar__nav-list { gap: 6px; }
body .tribe-common .tribe-events-c-top-bar__datepicker-button { font-size: 32px; }
body .tribe-common .tribe-events-c-nav__prev,
body .tribe-common .tribe-events-c-nav__next {
  font-family: var(--sds-titolo); text-transform: uppercase; letter-spacing: .02em; color: var(--sds-inchiostro);
}
body .tribe-common .tribe-events-c-nav__prev:disabled,
body .tribe-common .tribe-events-c-nav__next:disabled { display: none; }
body .tribe-common .tribe-events-c-subscribe-dropdown__button {
  border: 2px solid var(--sds-inchiostro) !important; border-radius: 0; color: var(--sds-inchiostro) !important; background: transparent !important;
}

/* ---------- Home: [sds_eventi], cards (picture above, text below) in a masonry grid ---------- */
.sds-eventi-home { font-family: var(--sds-testo); color: var(--sds-inchiostro); padding: 56px 0 72px; }
.sds-eventi-home__sez + .sds-eventi-home__sez { margin-top: 72px; }
.sds-eventi-home__titolo {
  margin: 0 0 24px; padding-bottom: 10px;
  border-bottom: 8px solid var(--sds-inchiostro);
  font-family: var(--sds-titolo); font-weight: 400; font-size: 44px; line-height: .95;
  text-transform: uppercase; color: var(--sds-inchiostro);
}
.sds-eventi-home__vuoto { margin: 0; font-size: 17px; }
/* Masonry: columns of cards, each card kept whole. */
.sds-eventi-home__griglia { columns: 3 300px; column-gap: 24px; }
.sds-eventi-home__sez--passati .sds-eventi-home__griglia { columns: 4 240px; }
.sds-ev {
  --acc: #a84040;
  break-inside: avoid;
  display: grid; grid-template-columns: minmax(0, 1fr);
  margin: 0 0 24px;
  background: var(--sds-bianco);
  border-top: 6px solid var(--acc);
}
.sds-ev--cinemi { --acc: #2e4eb5; }
.sds-ev--ardesia { --acc: #585d69; }
.sds-ev__img { display: block; overflow: hidden; background: #f4f1ee; }
.sds-ev__img > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
/* "Fondo carta" drawings trimmed to the drawing (SocialImages): centred in the card, never cropped further. */
.sds-ev__img:has(.sds-ritaglio) { display: flex; align-items: center; justify-content: center; padding: 24px; mix-blend-mode: multiply; }
.sds-ev__img .sds-ritaglio { width: 100%; }
/* No aspect-ratio of our own here: the img keeps the one its width/height give, so before loading it is not 0 px tall (a lazy image that is 0 px tall is never loaded, on phones). */
.sds-ev__img .sds-ritaglio img { height: auto; object-fit: fill; }
.sds-ev__corpo { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; min-width: 0; }
.sds-ev__serie { font-size: 13px; line-height: 1.3; color: var(--sds-tenue); }
.sds-ev__data { font-family: var(--sds-titolo); font-size: 18px; line-height: 1.1; letter-spacing: .02em; color: var(--acc); }
.sds-ev__nome { margin: 0; font-family: var(--sds-titolo); font-weight: 400; font-size: 30px; line-height: 1; }
.sds-ev__nome a { color: var(--sds-inchiostro); text-decoration: none; }
.sds-ev__nome a:hover { text-decoration: underline; text-decoration-color: var(--acc); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.sds-ev__testo { margin: 4px 0 0; font-size: 14px; line-height: 1.45; color: var(--sds-tenue); }
.sds-ev__piede { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin-top: auto; padding-top: 12px; }
.sds-ev__costo { font-size: 13px; color: var(--sds-tenue); }
.sds-ev__cta {
  display: inline-block; padding: 6px 14px;
  background: var(--acc); color: var(--sds-bianco) !important; text-decoration: none;
  font-family: var(--sds-titolo); font-size: 16px; text-transform: uppercase; letter-spacing: .03em;
}
.sds-ev__cta:hover { background: var(--sds-inchiostro); }
/* Past cards: how many stories (opens the viewer) and the link to the page. */
.sds-ev__storie {
  display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 12px; border: 0; border-radius: 0;
  background: var(--sds-inchiostro); color: #fff; font-family: var(--sds-titolo); font-size: 15px; letter-spacing: .02em; cursor: pointer;
}
.sds-ev__storie:is(:hover, :focus) { background: var(--acc); color: #fff; }
.sds-ev__vai { font-family: var(--sds-titolo); font-size: 15px; color: var(--acc) !important; text-decoration: none; }
.sds-ev__vai::after { content: " →"; }
.sds-ev__vai:hover { text-decoration: underline; }
.sds-ev a:focus-visible { outline: 2px solid var(--sds-inchiostro); outline-offset: 2px; }
/* Past nights: smaller, quieter. */
.sds-eventi-home__sez--passati .sds-ev { border-top-width: 4px; }
.sds-eventi-home__sez--passati .sds-ev__nome { font-size: 22px; }
.sds-eventi-home__sez--passati .sds-ev__data { font-size: 15px; }
.sds-eventi-home__sez--passati .sds-ev__corpo { padding: 12px 14px 14px; }
@media (max-width: 640px) {
  .sds-eventi-home { padding: 40px 0 56px; }
  .sds-eventi-home__titolo { font-size: 36px; }
  .sds-ev__nome { font-size: 26px; }
}

/* ---------- Home: Specie di Cinemi calendar, published nights are links (whole box) ---------- */
/* The calendar's drawing (a 1080×1340 post, cropped by the widget): its shape known before it loads,
   or the lazy picture stays 0 px tall on phones and is never loaded. */
.sds-cinemi .sds-cinemi__illo img { aspect-ratio: 1080 / 1340; }
.sds-cinemi__link { display: block; color: inherit; text-decoration: none; }
.sds-cinemi__link:hover .sds-cinemi__tema,
.sds-cinemi__link:focus-visible .sds-cinemi__tema { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.sds-cinemi__data--link { transition: border-color .15s; }
.sds-cinemi__data--link:hover { border-bottom-color: var(--c, #2e4eb5); }
.sds-cinemi__link:focus-visible { outline: 2px solid #000; outline-offset: 4px; }
/* On phones the nights go in two columns (the widget's own CSS stacks them in one); the note under them spans both. */
@container sdscin (max-width: 560px) {
  .sds-cinemi { margin-bottom: 16px; }
  .sds-cinemi .sds-cinemi__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; }
  .sds-cinemi .sds-cinemi__info { grid-column: 1 / -1; }
  .sds-cinemi .sds-cinemi__mese { font-size: 20px; }
  .sds-cinemi .sds-cinemi__giorno { font-size: 14px; }
  .sds-cinemi .sds-cinemi__corpo { gap: 8px; }
  .sds-cinemi .sds-cinemi__num { font-size: 56px; }
  .sds-cinemi .sds-cinemi__film { font-size: 12px; }
  .sds-cinemi .sds-cinemi__tema { font-size: 16px; }
}

/* ---------- Home: intro column (motto, text, Tèsserati, newsletter, social) ---------- */
.sds-home-intro .sds-motto .elementor-heading-title {
  font-family: var(--sds-titolo) !important; font-weight: 400 !important;
  font-size: 96px !important; line-height: .9 !important; color: var(--sds-inchiostro) !important; letter-spacing: 0 !important;
}
.sds-home-intro .sds-intro, .sds-home-intro .sds-intro p {
  font-family: var(--sds-testo) !important; font-size: 19px !important; line-height: 1.5 !important; color: var(--sds-inchiostro) !important; font-weight: 400 !important;
}
.sds-home-intro .sds-intro p { margin: 0 0 10px; max-width: 26em; }
.sds-home-intro .sds-intro p:last-child { color: var(--sds-tenue) !important; }
.sds-home-intro .sds-btn { display: inline-block; width: auto; margin-right: 12px; margin-bottom: 0 !important; }
.sds-home-intro .sds-btn .elementor-button {
  border-radius: 0 !important; padding: 13px 30px !important;
  font-family: var(--sds-titolo) !important; font-weight: 400 !important; font-size: 22px !important;
  letter-spacing: .04em; text-transform: uppercase; line-height: 1 !important;
  transition: background-color .15s, color .15s;
}
.sds-home-intro .sds-btn--pieno .elementor-button { background: var(--sds-rosso) !important; color: var(--sds-bianco) !important; border: 2px solid var(--sds-rosso) !important; }
.sds-home-intro .sds-btn--pieno .elementor-button:hover { background: var(--sds-inchiostro) !important; border-color: var(--sds-inchiostro) !important; }
.sds-home-intro .sds-btn--linea .elementor-button { background: transparent !important; color: var(--sds-inchiostro) !important; border: 2px solid var(--sds-inchiostro) !important; }
.sds-home-intro .sds-btn--linea .elementor-button:hover { background: var(--sds-inchiostro) !important; color: var(--sds-bianco) !important; }
.sds-home-intro .sds-btn .elementor-button:focus-visible { outline: 2px solid var(--sds-inchiostro); outline-offset: 3px; }
.sds-home-intro .sds-col-titolo { margin-top: 40px !important; margin-bottom: 4px !important; }
.sds-home-intro .sds-col-titolo .elementor-heading-title {
  font-family: var(--sds-titolo) !important; font-weight: 400 !important; font-size: 26px !important;
  line-height: 1 !important; text-transform: uppercase; color: var(--sds-inchiostro) !important;
}
.sds-home-intro .sds-nota, .sds-home-intro .sds-nota p { font-family: var(--sds-testo) !important; font-size: 15px !important; color: var(--sds-tenue) !important; margin: 0 !important; }
/* Newsletter: field and button on one line, square. */
.sds-home-intro .wpcf7-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; max-width: 460px; }
.sds-home-intro .wpcf7-form > p { margin: 0; }
.sds-home-intro .wpcf7-form > p:first-of-type { flex: 1 1 240px; }
.sds-home-intro .wpcf7-form label { display: block; font-family: var(--sds-testo); font-size: 13px; color: var(--sds-tenue); }
.sds-home-intro .wpcf7-form label br { display: none; }
.sds-home-intro .wpcf7-form input[type="email"] {
  display: block; width: 100%; margin-top: 4px; padding: 11px 12px; border: 2px solid var(--sds-inchiostro); border-radius: 0;
  background: var(--sds-bianco); font-family: var(--sds-testo); font-size: 16px; color: var(--sds-inchiostro);
}
.sds-home-intro .wpcf7-form input[type="email"]:focus { outline: 2px solid var(--sds-inchiostro); outline-offset: 2px; }
.sds-home-intro .wpcf7-form input[type="submit"] {
  padding: 12px 22px; border: 2px solid var(--sds-inchiostro); border-radius: 0; background: var(--sds-inchiostro); color: var(--sds-bianco);
  font-family: var(--sds-titolo); font-size: 18px; letter-spacing: .04em; text-transform: uppercase; line-height: 1; cursor: pointer;
}
.sds-home-intro .wpcf7-form input[type="submit"]:hover { background: var(--sds-rosso); border-color: var(--sds-rosso); }
.sds-home-intro .wpcf7-form .wpcf7-response-output { flex-basis: 100%; margin: 6px 0 0; font-size: 14px; border-radius: 0; }
.sds-home-intro .wpcf7-spinner { display: none; }
/* Social: flat black squares. */
.sds-home-intro .sds-social .elementor-social-icon {
  background: var(--sds-inchiostro) !important; border-radius: 0 !important; font-size: 20px; padding: .6em;
}
.sds-home-intro .sds-social .elementor-social-icon i { color: var(--sds-bianco) !important; }
.sds-home-intro .sds-social .elementor-social-icon:hover { background: var(--sds-rosso) !important; }

/* Phones: compact. */
@media (max-width: 767px) {
  .sds-home-intro .elementor-widget:not(:last-child) { margin-bottom: 12px; }
  .sds-home-intro .sds-motto .elementor-heading-title { font-size: 60px !important; }
  .sds-home-intro .sds-intro, .sds-home-intro .sds-intro p { font-size: 17px !important; }
  .sds-home-intro .sds-col-titolo { margin-top: 28px !important; }
  .sds-home-intro .sds-btn .elementor-button { padding: 12px 22px !important; font-size: 20px !important; }
}

/* ---------- Event page, series template (EventTemplate.php) ---------- */
/* --c fills labels and lines, --c-ink colours the number and the theme, --c-label is the label text. */
.sds-evp { --c: #585d69; --c-ink: var(--c); --c-label: #fff; }
.sds-evp--cinemi { --c: #2e4eb5; }
.sds-evp--toni   { --c: #a84040; }
.sds-evp--corpi  { --c: #562eb3; }
.sds-evp--giri   { --c: #7cb46e; --c-ink: #000; --c-label: #000; }
.sds-evp--stampe { --c: #585d69; }
.sds-evp #tribe-events-content { font-family: var(--sds-testo); color: var(--sds-inchiostro); padding-top: 8px; }
.sds-evp .tribe-events-back,
.sds-evp .tribe-events-schedule,
.sds-evp #tribe-events-header,
.sds-evp .tribe-events-single-event-description > h2:first-child,
.sds-evp .tribe-events-related-events-title,
.sds-evp .tribe-related-events,
.sds-evp .tribe-events-notices,
.sds-evp .tribe-events-series-relationship-single-marker { display: none !important; }

/* Header: date block | name, theme, people, booking | series mark and labels top right. */
.sds-evp-testa {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "data titoli marchio";
  column-gap: 48px;
  align-items: start;
}
.sds-evp-marchio { grid-area: marchio; display: flex; flex-direction: column; align-items: flex-end; }
.sds-evp-logo { display: block; width: 340px; max-width: 100%; height: auto; }
.sds-evp-etichette { display: flex; flex-direction: column; align-items: flex-end; margin-top: 12px; }
.sds-evp-etichette span { white-space: nowrap; font-size: 21px; line-height: 1.45; color: var(--c-label); background: var(--c); padding: 1px 12px; }
/* Date block of the Instagram posts: day, number, month, a thick line, the times. */
.sds-evp-data { grid-area: data; font-family: var(--sds-titolo); color: var(--sds-inchiostro); display: flex; flex-direction: column; align-items: flex-start; }
/* The condensed face sits each glyph a little in from its box (more the bigger it is): each line is
   pulled back by its own side bearing so day, number, month, year, line and times share one left edge. */
.sds-evp-giorno { font-size: 72px; line-height: .85; text-transform: uppercase; margin-left: -.04em; }
.sds-evp-num { font-size: 132px; line-height: .82; letter-spacing: -.01em; color: var(--c-ink); margin: 4px 0 0 -.055em; }
.sds-evp-mese { font-size: 28px; line-height: 1; text-transform: uppercase; margin: 8px 0 0 -.045em; white-space: nowrap; }
.sds-evp-anno { font-size: 18px; line-height: 1; font-weight: 300; color: var(--sds-tenue); margin: 4px 0 0 -.04em; }
.sds-evp-lineetta { width: 84px; height: 7px; background: var(--c); margin: 14px 0; }
.sds-evp-ora { display: flex; flex-wrap: wrap; gap: 4px 28px; margin: 14px 0 0 -.03em; font-family: var(--sds-titolo); font-size: 28px; line-height: 1.1; font-weight: 300; }
.sds-evp-ora span { white-space: nowrap; }
.sds-evp-ora b { font-weight: 400; margin-right: 6px; }
.sds-evp-titoli { grid-area: titoli; padding-top: 4px; min-width: 0; }
body .sds-evp-nome {
  margin: 0; font-family: var(--sds-titolo); font-weight: 400;
  font-size: clamp(56px, 7vw, 104px); line-height: .92; color: var(--sds-inchiostro); text-transform: none;
}
.sds-evp-claim { margin: 16px 0 0; font-size: 22px; line-height: 1.35; color: var(--c-ink); max-width: 28em; }
/* People: one white box per line, in the series colour (crediti of the graphics). */
.sds-evp-crediti { margin: 16px 0 0; font-size: 17px; line-height: 1.75; color: var(--c-ink); }
.sds-evp-crediti span { background: var(--sds-bianco); padding: 3px 10px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.sds-evp-azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 24px; }
.sds-evp-cta {
  display: inline-block; padding: 12px 30px; background: var(--c); color: var(--c-label) !important;
  font-family: var(--sds-titolo); font-size: 22px; letter-spacing: .04em; text-transform: uppercase; text-decoration: none;
}
.sds-evp-cta:hover { background: var(--sds-inchiostro); color: #fff !important; }
.sds-evp-costo { font-size: 15px; line-height: 1.4; color: var(--sds-tenue); }
.sds-evp-passata { font-family: var(--sds-titolo); font-size: 20px; text-transform: uppercase; color: var(--sds-tenue); }
.sds-evp-riga { height: 8px; background: var(--c); margin: 36px 0 48px; }

/* Body: picture on the left (stays in view), text and tickets on the right. */
.sds-evp #tribe-events-content > .tribe_events {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  column-gap: 64px;
  align-items: start;
  overflow: visible; /* TEC's clearfix hides overflow, which stops the picture from staying in view */
}
.sds-evp #tribe-events-content > .tribe_events > * { grid-column: 2; min-width: 0; }
.sds-evp #tribe-events-content > .tribe_events > .tribe-events-event-image {
  grid-column: 1; grid-row: 1 / span 20;
  position: sticky; top: 48px; margin: 0;
}
.sds-evp .tribe-events-event-image img { display: block; width: 100%; height: auto; margin: 0; }
/* "Fondo carta" pictures: the sticky box is its own layer, so the multiply goes on the box. */
.sds-evp .tribe-events-event-image:has(img[style*="multiply"]) { mix-blend-mode: multiply; }
.sds-evp .tribe-events-single-event-description > :first-child { margin-top: 0; }
.sds-evp .tribe-events-single-event-description { font-size: 18px; line-height: 1.6; }
.sds-evp .tribe-events-single-event-description > p { margin: 0 0 18px; }
/* Headings written in older event texts: in the titles' face. */
.sds-evp .tribe-events-single-event-description :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--sds-titolo); font-weight: 400; line-height: 1.05; text-transform: none; color: var(--sds-inchiostro); margin: 28px 0 12px;
}
.sds-evp .tribe-events-single-event-description :is(h1, h2) { font-size: 34px; }
.sds-evp .tribe-events-single-event-description :is(h3, h4, h5, h6) { font-size: 26px; }
.sds-evp .tribe-events-single-event-description > :is(h1, h2, h3, h4, h5, h6):first-child { margin-top: 0; }
.sds-evp .tribe-events-single-event-description > p > strong:first-child:not(:has(a)) {
  display: inline-block; margin-bottom: 2px;
  font-family: var(--sds-titolo); font-weight: 400; font-size: 26px; line-height: 1.1; color: var(--c-ink);
}
.sds-evp .tribe-events-single-event-description > p:has(> strong > a) {
  margin-top: 28px; padding: 14px 18px; background: var(--sds-bianco); font-size: 15px; line-height: 1.5;
}
.sds-evp .tribe-events-single-event-description > p:has(> strong > a) strong { font-weight: 400; }
.sds-evp .tribe-events-single-event-description a { color: var(--c-ink); }
/* "Salva nel tuo calendario": a small square button. */
.sds-evp .tribe-events-c-subscribe-dropdown__container { margin: 8px 0 32px; }
.sds-evp .tribe-events-c-subscribe-dropdown__button {
  display: inline-flex !important; align-items: center; gap: 10px;
  width: auto !important; padding: 8px 14px !important; font-size: 15px;
  border: 2px solid var(--sds-inchiostro) !important;
}
.sds-evp .tribe-events-c-subscribe-dropdown__button svg { margin: 0 !important; }
.sds-evp .tribe-events-c-subscribe-dropdown__button-text { padding: 0 !important; }
/* Tickets. */
.sds-evp .event-tickets { margin-top: 8px; padding-top: 18px; border-top: 3px solid var(--sds-inchiostro); }
.sds-evp .event-tickets .tribe-tickets__tickets-form { border: 0; padding: 0; background: transparent; }
.sds-evp .event-tickets h2.tribe-common-h4 { font-family: var(--sds-titolo); font-weight: 400; font-size: 32px; text-transform: uppercase; margin-bottom: 8px; }
.sds-evp .event-tickets .tribe-tickets__tickets-item-content-title { font-family: var(--sds-titolo); font-size: 22px; }
.sds-evp .event-tickets #tribe-tickets__tickets-submit {
  border-radius: 0; background: var(--c); color: var(--c-label); font-family: var(--sds-titolo); font-size: 20px; letter-spacing: .04em; text-transform: uppercase; padding: 10px 26px;
}
.sds-evp .event-tickets #tribe-tickets__tickets-submit:hover { background: var(--sds-inchiostro); }
.sds-evp #tribe-tickets__tickets-form { scroll-margin-top: 48px; }
/* Previous / next links of the calendar: not on series pages. */
.sds-evp #tribe-events-footer { display: none; }

/* "La serata": the night's stories as a row of 9:16 tiles (NightStories.php), viewer in stories.js. */
.sds-evp-stories { font-family: var(--sds-titolo); font-size: 20px; color: var(--c-ink) !important; }
.sds-night { scroll-margin-top: 48px; }
.sds-night__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 20px; }
body .sds-night__title { margin: 0; font-family: var(--sds-titolo); font-weight: 400; font-size: 44px; line-height: 1; text-transform: none; color: var(--sds-inchiostro); }
.sds-night__sub { margin: 6px 0 0; font-size: 15px; color: var(--sds-tenue); }
.sds-night__play {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 20px; border: 2px solid var(--sds-inchiostro); border-radius: 0;
  background: transparent; color: var(--sds-inchiostro); font-family: var(--sds-titolo); font-size: 20px; cursor: pointer;
}
.sds-night__play:hover, .sds-night__play:focus { background: var(--sds-inchiostro); color: #fff; }
.sds-night.is-empty .sds-night__play { display: none; }
.sds-night__row { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 12px; scrollbar-color: var(--sds-tenue) transparent; }
.sds-night__tile { position: relative; flex: 0 0 140px; aspect-ratio: 9 / 16; padding: 0; border: 0; border-radius: 0; background: #000; cursor: pointer; }
.sds-night__tile img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.sds-night__tile:is(:hover, :focus) { background: #000; }
.sds-night__tile:hover img { filter: brightness(1.1); }
.sds-night__tile:focus-visible, .sds-night__play:focus-visible { outline: 3px solid var(--c); outline-offset: 2px; }
.sds-night__time { position: absolute; left: 6px; bottom: 6px; padding: 1px 6px; background: #000; color: #fff; font-family: var(--sds-titolo); font-size: 15px; line-height: 1.3; }
.sds-night__reel { position: absolute; right: 6px; top: 6px; padding: 1px 6px; background: var(--c); color: var(--c-label); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
/* Home, "Dalle ultime serate" (HomeEvents::nights): one tile per night, the series colour on top. */
.sds-nights__testa { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin: 0 0 24px; padding-bottom: 10px; border-bottom: 8px solid var(--sds-inchiostro); }
.sds-nights__testa .sds-eventi-home__titolo { margin: 0; padding: 0; border: 0; }
.sds-nights__tutte { font-family: var(--sds-titolo); font-size: 20px; color: var(--sds-inchiostro) !important; text-decoration: none; white-space: nowrap; }
.sds-nights__tutte::after { content: " →"; }
.sds-nights__tutte:hover { text-decoration: underline; }
/* /storie/ ([sds_storie], reels.js): full-screen vertical feed, one story per screen, like Instagram reels. */
.sds-reels-open, .sds-reels-open body { overflow: hidden; }
.sds-reels { position: fixed; inset: 0; z-index: 99999; overflow-y: auto; scroll-snap-type: y mandatory; overscroll-behavior: contain; background: #000; scrollbar-width: none; }
.sds-reels::-webkit-scrollbar { display: none; }
.sds-reels__top { position: fixed; top: 0; left: 0; right: 0; z-index: 3; display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; pointer-events: none; }
.sds-reels__top > * { pointer-events: auto; }
.sds-reels__home { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 6px; color: #fff !important; text-decoration: none; font-family: var(--sds-titolo); font-size: 20px; text-shadow: 0 1px 3px rgba(0, 0, 0, .6); }
.sds-reels .sds-reels__sound, .sds-reels .sds-reels__sound:is(:hover, :focus, :active) { width: 48px; height: 48px; padding: 0; border: 0; border-radius: 0; background: transparent; color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.sds-reel { --acc: #a84040; position: relative; height: 100vh; height: 100dvh; scroll-snap-align: start; scroll-snap-stop: always; overflow: hidden; }
.sds-reel.sds-ev--cinemi { --acc: #2e4eb5; }
.sds-reel.sds-ev--ardesia { --acc: #585d69; }
.sds-reel__poster, .sds-reel video { position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%); height: 100%; width: auto; max-width: 100%; aspect-ratio: 9 / 16; object-fit: cover; margin: 0; }
.sds-reel video { z-index: 1; opacity: 0; transition: opacity .2s; }
.sds-reel.is-playing video { opacity: 1; }
.sds-reel.is-paused::after { content: ""; position: absolute; left: 50%; top: 50%; z-index: 2; width: 0; height: 0; transform: translate(-30%, -50%); border-style: solid; border-width: 22px 0 22px 36px; border-color: transparent transparent transparent rgba(255, 255, 255, .85); pointer-events: none; }
.sds-reel__bar { position: absolute; left: 50%; bottom: 0; z-index: 2; transform: translateX(-50%); height: 3px; width: min(100%, calc(100dvh * 9 / 16)); background: rgba(255, 255, 255, .25); }
.sds-reel__bar i { display: block; height: 100%; width: 0; background: var(--acc); }
.sds-reel__info { position: absolute; left: 50%; bottom: 18px; z-index: 2; transform: translateX(-50%); width: min(100%, calc(100dvh * 9 / 16)); padding: 0 16px; box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; color: #fff; text-shadow: 0 1px 3px rgba(0, 0, 0, .7); }
.sds-reel__count { font-size: 12px; opacity: .85; }
.sds-reel__name { font-family: var(--sds-titolo); font-size: 26px; line-height: 1.05; color: #fff !important; text-decoration: none; }
.sds-reel__name::after { content: " →"; }
.sds-reel__day { font-size: 13px; }
.sds-reels .sds-reels__arrow { display: none; }
/* Computers: one row of slides, moved sideways with the arrows (or the keyboard). */
@media (min-width: 768px) {
  .sds-reels { display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; }
  .sds-reel { flex: 0 0 100%; }
  .sds-reels .sds-reels__arrow, .sds-reels .sds-reels__arrow:is(:hover, :focus, :active) {
    position: fixed; top: 50%; z-index: 3; transform: translateY(-50%); display: flex; align-items: center; justify-content: center;
    width: 56px; height: 56px; padding: 0; border: 0; border-radius: 50%; background: #cecdc3; color: #000; cursor: pointer;
  }
  .sds-reels .sds-reels__arrow:hover { background: #fff; }
  .sds-reels .sds-reels__arrow:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
  .sds-reels .sds-reels__arrow--prev { left: max(16px, calc(50% - 100dvh * 9 / 32 - 84px)); }
  .sds-reels .sds-reels__arrow--next { right: max(16px, calc(50% - 100dvh * 9 / 32 - 84px)); }
}
.sds-nights__row { display: flex; gap: 20px; overflow-x: auto; padding-bottom: 12px; scrollbar-color: var(--sds-tenue) transparent; }
.sds-nights__item { --acc: #a84040; flex: 0 0 172px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sds-nights__item.sds-ev--cinemi { --acc: #2e4eb5; }
.sds-nights__item.sds-ev--ardesia { --acc: #585d69; }
.sds-nights__tile { position: relative; aspect-ratio: 9 / 16; width: 100%; padding: 0; border: 0; border-top: 5px solid var(--acc); border-radius: 0; background: #000; cursor: pointer; margin-bottom: 4px; }
.sds-nights__tile:is(:hover, :focus) { background: #000; }
.sds-nights__tile:hover img { filter: brightness(1.1); }
.sds-nights__tile:focus-visible { outline: 3px solid var(--acc); outline-offset: 2px; }
.sds-nights__tile img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.sds-nights__count { position: absolute; left: 6px; bottom: 6px; display: inline-flex; align-items: center; gap: 6px; padding: 1px 7px; background: #000; color: #fff; font-family: var(--sds-titolo); font-size: 14px; }
.sds-nights .sds-ev__data { font-size: 15px; }
.sds-nights__name { font-family: var(--sds-titolo); font-size: 20px; line-height: 1.1; color: var(--sds-inchiostro) !important; text-decoration: none; }
.sds-nights__name:hover { text-decoration: underline; text-decoration-color: var(--acc); }
/* Viewer, over the whole page. */
.sds-sv-open, .sds-sv-open body { overflow: hidden; }
.sds-sv { position: fixed; inset: 0; z-index: 100000; display: none; align-items: center; justify-content: center; gap: 28px; background: rgba(18, 17, 15, .94); }
.sds-sv.is-open { display: flex; }
.sds-sv button { border-radius: 0; cursor: pointer; }
/* The theme paints every button pink on hover/focus: the viewer's buttons keep their own colours. */
.sds-sv .sds-sv__tap:is(:hover, :focus), .sds-sv .sds-sv__sound:is(:hover, :focus), .sds-sv .sds-sv__close:is(:hover, :focus) { background: transparent; color: #fff; }
.sds-sv .sds-sv__arrow:is(:hover, :focus) { background: #fff; color: var(--sds-inchiostro); }
.sds-sv__frame { position: relative; height: 100vh; height: 100dvh; aspect-ratio: 9 / 16; max-width: 100vw; background: #000; overflow: hidden; }
.sds-sv__media, .sds-sv__media video, .sds-sv__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; }
.sds-sv__bars { position: absolute; top: 10px; left: 10px; right: 10px; display: flex; gap: 4px; z-index: 2; pointer-events: none; }
.sds-sv__bars span { flex: 1; height: 3px; background: rgba(255, 255, 255, .35); }
.sds-sv__bars i { display: block; height: 3px; width: 0; background: #fff; }
.sds-sv__head { position: absolute; top: 20px; left: 12px; right: 4px; z-index: 2; display: flex; justify-content: space-between; align-items: center; color: #fff; }
.sds-sv__titles { display: flex; flex-direction: column; line-height: 1.2; text-shadow: 0 1px 3px rgba(0, 0, 0, .6); }
.sds-sv__titles strong { font-family: var(--sds-titolo); font-weight: 400; font-size: 18px; }
.sds-sv__titles span { font-size: 12px; }
.sds-sv__sound, .sds-sv__close { width: 48px; height: 48px; padding: 0; border: 0; background: transparent; color: #fff; display: flex; align-items: center; justify-content: center; }
.sds-sv__close { position: absolute; top: 16px; right: 20px; z-index: 3; }
.sds-sv__arrow { width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50% !important; background: var(--sds-carta, #cecdc3); color: var(--sds-inchiostro); display: flex; align-items: center; justify-content: center; }
.sds-sv__tap { position: absolute; top: 80px; bottom: 0; z-index: 1; padding: 0; border: 0; background: transparent; }
.sds-sv__tap--prev { left: 0; width: 35%; }
.sds-sv__tap--next { right: 0; width: 65%; }
/* Tapping the invisible areas must show nothing: the theme outlines a touched button. */
.sds-sv button { -webkit-tap-highlight-color: transparent; }
.sds-sv .sds-sv__tap, .sds-sv .sds-sv__tap:is(:hover, :focus, :focus-visible, :active) { border: 0 !important; outline: none; box-shadow: none; background: transparent; }
.sds-sv__go { position: absolute; left: 50%; bottom: 20px; z-index: 2; transform: translateX(-50%); display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; background: #cecdc3; color: var(--sds-inchiostro) !important; font-family: var(--sds-titolo); font-size: 18px; text-decoration: none; white-space: nowrap; }
.sds-sv__go[hidden] { display: none; }
.sds-sv__go:hover { background: #fff; }
.sds-sv__sound:focus-visible, .sds-sv__close:focus-visible, .sds-sv__arrow:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
@media (max-width: 767px) {
  .sds-night__tile { flex-basis: 104px; }
  body .sds-night__title { font-size: 32px; }
  .sds-night__play { padding: 0 14px; font-size: 17px; }
  .sds-sv { background: #000; }
  .sds-sv__arrow { display: none; }
  .sds-sv__frame { height: 100%; width: 100%; aspect-ratio: auto; }
  .sds-sv__close { top: 20px; right: 4px; }
  .sds-sv__head { right: 52px; }
}

@media (max-width: 1024px) {
  .sds-evp-testa { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "marchio marchio" "data titoli"; row-gap: 24px; column-gap: 32px; }
}
@media (max-width: 767px) {
  .sds-evp-testa { column-gap: 18px; }
  .sds-evp-logo { width: 260px; }
  .sds-evp-etichette span { white-space: normal; font-size: 17px; text-align: right; }
  .sds-evp-giorno { font-size: 44px; }
  .sds-evp-num { font-size: 84px; }
  .sds-evp-mese { font-size: 18px; }
  .sds-evp-anno { font-size: 14px; }
  .sds-evp-lineetta { width: 56px; height: 5px; margin: 10px 0; }
  .sds-evp-ora { font-size: 20px; gap: 2px 18px; }
  .sds-evp-crediti { font-size: 15px; }
  body .sds-evp-nome { font-size: 48px; }
  .sds-evp-claim { font-size: 18px; }
  .sds-evp-riga { margin: 28px 0 32px; }
  .sds-evp #tribe-events-content > .tribe_events { grid-template-columns: minmax(0, 1fr); }
  .sds-evp #tribe-events-content > .tribe_events > * { grid-column: 1; }
  .sds-evp #tribe-events-content > .tribe_events > .tribe-events-event-image { grid-row: auto; position: static; margin-bottom: 28px; }
  .sds-evp .tribe-events-single-event-description { font-size: 17px; }
}

/* ---------- Event page: tickets first, then the members' free booking (RSVP) as one compact row ---------- */
.sds-evp #tribe-events-content > .tribe_events > .event-tickets.tribe-tickets__tickets-wrapper { order: 1; }
.sds-evp #tribe-events-content > .tribe_events > .event-tickets:not(.tribe-tickets__tickets-wrapper) { order: 2; margin-top: 0; padding-top: 0; border-top: 0; }
.sds-evp #tribe-events-content > .tribe_events > .tribe-events-related-events-title,
.sds-evp #tribe-events-content > .tribe_events > .tribe-related-events { order: 3; }
/* "Acquista" looks off until a quantity is chosen (it is disabled until then). */
.sds-evp .event-tickets #tribe-tickets__tickets-submit:disabled { background: #b4b2aa; color: #fff; cursor: not-allowed; }
/* RSVP: no white box; title and places on the left, "Parteciperò" on the right. */
.sds-evp .tribe-tickets__rsvp-wrapper { margin: 0; background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.sds-evp .tribe-tickets__rsvp {
  display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px;
  margin: 0 !important; padding: 16px 0 !important; border: 0 !important; border-top: 1px solid var(--sds-inchiostro) !important; border-bottom: 1px solid var(--sds-inchiostro) !important;
  background: transparent !important; border-radius: 0 !important; min-height: 0 !important;
}
.sds-evp .tribe-tickets__rsvp > .tribe-common-g-col { width: auto !important; flex: 0 1 auto !important; padding: 0 !important; margin: 0 !important; border: 0 !important; }
.sds-evp .tribe-tickets__rsvp-details { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; text-align: left; padding: 0 !important; }
.sds-evp .tribe-tickets__rsvp-title { margin: 0 !important; font-family: var(--sds-titolo) !important; font-weight: 400 !important; font-size: 22px !important; line-height: 1.1 !important; }
.sds-evp .tribe-tickets__rsvp-attendance { display: none !important; }
.sds-evp .tribe-tickets__rsvp-availability { margin: 0 !important; font-family: var(--sds-testo) !important; font-size: 14px !important; color: var(--sds-tenue); }
.sds-evp .tribe-tickets__rsvp-actions-wrapper::before { display: none !important; }
.sds-evp .tribe-tickets__rsvp-actions { padding: 0 !important; margin: 0 !important; border: 0 !important; text-align: right; min-height: 0 !important; }
.sds-evp .tribe-tickets__rsvp-actions-wrapper { min-height: 0 !important; display: flex; align-items: center; }
.sds-evp .tribe-tickets__rsvp-actions-rsvp > span { display: none; } /* "RSVP Here" */
.sds-evp .tribe-tickets__rsvp-actions-button-going {
  margin: 0 !important; width: auto !important; border-radius: 0 !important; padding: 10px 24px !important;
  background: var(--sds-inchiostro) !important; color: #fff !important;
  font-family: var(--sds-titolo) !important; font-size: 18px !important; letter-spacing: .04em; text-transform: uppercase;
}
.sds-evp .tribe-tickets__rsvp-actions-button-going:hover { background: var(--c) !important; }

/* Phones: a compact tickets box. */
@media (max-width: 767px) {
  .sds-evp .event-tickets h2.tribe-common-h4 { font-size: 26px; }
  .sds-evp .event-tickets .tribe-tickets__tickets-item { padding: 10px 0 !important; }
  .sds-evp .event-tickets .tribe-tickets__tickets-item-content-title { font-size: 18px !important; line-height: 1.15; }
  .sds-evp .event-tickets .tribe-tickets__tickets-sale-price,
  .sds-evp .event-tickets .tribe-tickets__tickets-item-extra-price { font-size: 15px !important; }
  .sds-evp .event-tickets .tribe-tickets__tickets-item-quantity { font-size: 20px !important; }
  .sds-evp .event-tickets #tribe-tickets__tickets-submit { width: 100%; font-size: 18px; padding: 10px 18px; }
  .sds-evp .event-tickets .tribe-tickets__tickets-footer { padding-top: 8px; }
  .sds-evp .tribe-tickets__rsvp-title { font-size: 19px !important; }
  .sds-evp .tribe-tickets__rsvp-actions-button-going { padding: 9px 18px !important; font-size: 16px !important; }
}

/* Ticket quantity: real square buttons, not faint signs. */
.sds-evp .event-tickets .tribe-tickets__tickets-item-quantity { display: flex; align-items: center; gap: 6px; }
.sds-evp .event-tickets .tribe-tickets__tickets-item-quantity-remove,
.sds-evp .event-tickets .tribe-tickets__tickets-item-quantity-add {
  width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0;
  border: 2px solid var(--sds-inchiostro); border-radius: 0; background: transparent; color: var(--sds-inchiostro);
  font-family: var(--sds-titolo); font-size: 22px; line-height: 1; opacity: 1;
}
.sds-evp .event-tickets .tribe-tickets__tickets-item-quantity-remove:hover,
.sds-evp .event-tickets .tribe-tickets__tickets-item-quantity-add:hover { background: var(--sds-inchiostro); color: #fff; }
.sds-evp .event-tickets .tribe-tickets__tickets-item-quantity-remove:disabled,
.sds-evp .event-tickets .tribe-tickets__tickets-item-quantity-add:disabled { opacity: .3; cursor: not-allowed; background: transparent; color: var(--sds-inchiostro); }
.sds-evp .event-tickets .tribe-tickets__tickets-item-quantity-number { min-width: 32px; text-align: center; }
/* The plugin caps its forms at 580px: on the event page they take the whole text column. */
.sds-evp .event-tickets #tribe-tickets__tickets-form,
.sds-evp .event-tickets .tribe-tickets__rsvp-wrapper,
.sds-evp .event-tickets .tribe-tickets__rsvp { max-width: none !important; width: 100%; }

/* Each row books itself: name | price | Prenota (ticket-gate.js); how many is chosen in the window.
   Keyed on the script's class: without it the plugin's own quantity and button stay. */
.sds-evp .event-tickets .sds-rowbook .tribe-tickets__tickets-item-quantity,
.sds-evp .event-tickets .sds-rowbook .tribe-tickets__tickets-footer { display: none !important; }
.sds-evp .event-tickets .sds-rowbook .tribe-tickets__tickets-item { padding: 14px 0 !important; }
.sds-evp .event-tickets .sds-rowbtn {
  grid-column: 3; justify-self: end; border: 0; border-radius: 0; cursor: pointer;
  background: var(--c); color: var(--c-label); font-family: var(--sds-titolo); font-size: 20px; letter-spacing: .04em; text-transform: uppercase; padding: 10px 26px;
}
.sds-evp .event-tickets .sds-rowbtn:hover { background: var(--sds-inchiostro); color: #fff; }
.sds-evp .event-tickets .tribe-tickets__tickets-title { display: flex; align-items: center; gap: 12px; }
.sds-evp .event-tickets .tribe-tickets__tickets-title .sds-pay { margin-left: auto !important; }
.sds-evp .event-tickets .tribe-tickets__tickets-title .sds-pay .sds-pay-pp,
.sds-evp .event-tickets .tribe-tickets__tickets-title .sds-pay .sds-pay-sp { font-size: 12px; padding: 2px 6px; text-transform: none; letter-spacing: normal; line-height: 1.3; }
.sds-evp .event-tickets .tribe-tickets__tickets-item-extra-available { font-size: 12px; }
@media (max-width: 767px) {
  .sds-evp .event-tickets .sds-rowbtn { font-size: 17px; padding: 9px 16px; grid-row: 1 / span 3; align-self: center; }
}
/* Tickets and members' booking read as one list: no gap, one line between them. */
.sds-evp #tribe-events-content > .tribe_events > .event-tickets.tribe-tickets__tickets-wrapper { margin-bottom: 0 !important; }
.sds-evp .event-tickets #tribe-tickets__tickets-form { margin-bottom: 0 !important; }
.sds-evp #tribe-events-content > .tribe_events > .event-tickets:not(.tribe-tickets__tickets-wrapper) .tribe-tickets__rsvp { border-top: 0 !important; }

/* Phones: one left edge for everything. The date reads as one line (day · number · month over year,
   all sitting on the number's baseline), the line under it, then name, times, theme, booking. */
@media (max-width: 767px) {
  .sds-evp-testa { grid-template-columns: minmax(0, 1fr); grid-template-areas: "marchio" "data" "titoli"; row-gap: 0; }
  .sds-evp-marchio { margin-bottom: 28px; }
  .sds-evp-data { display: grid; grid-template-columns: auto auto auto; justify-content: start; align-items: end; column-gap: 10px; }
  .sds-evp-giorno { font-size: 44px; line-height: .8; }
  .sds-evp-num { font-size: 72px; line-height: .78; margin: 0 0 0 -.05em; position: relative; top: 2px; } /* its baseline on MER's and the year's */
  .sds-evp-mesanno { padding-bottom: 1px; }
  .sds-evp-mese { font-size: 20px; line-height: 1; margin: 0; }
  .sds-evp-anno { font-size: 14px; margin: 2px 0 0; }
  .sds-evp-lineetta { grid-column: 1 / -1; margin: 12px 0 0; width: 72px; height: 6px; }
  .sds-evp-titoli { padding-top: 22px; }
  body .sds-evp-nome { font-size: 46px; line-height: .95; }
  .sds-evp-ora { margin-top: 12px; font-size: 20px; }
  .sds-evp-claim { margin-top: 10px; font-size: 18px; }
  .sds-evp-azioni { flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 18px; }
  .sds-evp-cta { flex: 0 0 auto; padding: 11px 24px; font-size: 20px; }
  .sds-evp-costo { flex: 1 1 100%; font-size: 13px; }
  .sds-evp-cta + .sds-evp-costo { flex: 1 1 0; min-width: 140px; } /* next to Prenota while it fits */
}

/* ---------- Phones: less vertical air between blocks ---------- */
@media (max-width: 767px) {
  .elementor-widget-container:has(> .sds-cinemi-box) { margin-top: 0; }
  .sds-eventi-home { padding: 16px 0 32px; }
  .sds-eventi-home__sez + .sds-eventi-home__sez { margin-top: 40px; }
  .sds-eventi-home__titolo, .sds-nights__testa { margin-bottom: 16px; }
  .sds-ev { margin-bottom: 16px; }
  /* Past nights in one row you swipe, like the stories. */
  .sds-eventi-home__sez--passati .sds-eventi-home__griglia { columns: auto; display: flex; align-items: stretch; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; scrollbar-color: var(--sds-tenue) transparent; }
  .sds-eventi-home__sez--passati .sds-ev { flex: 0 0 78%; margin: 0; scroll-snap-align: start; grid-template-rows: auto 1fr; }
  /* All the same height: same picture box, text cut to three lines, buttons at the bottom. */
  .sds-eventi-home__sez--passati .sds-ev__img { aspect-ratio: 4 / 5; }
  .sds-eventi-home__sez--passati .sds-ev__img > img { height: 100%; }
  .sds-eventi-home__sez--passati .sds-ev__nome { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
  .sds-eventi-home__sez--passati .sds-ev__testo { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
  .sds-evp #tribe-events-pg-template { padding-top: 12px; }
  .sds-evp .tribe-events-single-event-description > p:last-child { margin: 16px 0 8px; }
  .sds-evp .tribe-events-c-subscribe-dropdown__container { margin: 0 0 16px; }
  body.sds-evp .tribe-events-c-subscribe-dropdown { margin: 8px 0 0; }
  body.sds-evp .tribe-common.event-tickets { margin-top: 0; padding-top: 12px; }
  .sds-evp .event-tickets h2.tribe-common-h4 { margin-top: 0; }
}

/* Booking rows "Già socio" / "Non ancora socio" (EventTemplate::bookingLabels). */
.sds-evp .event-tickets .sds-tk-nota { display: block; margin-top: 2px; font-family: var(--sds-testo); font-size: 13px; line-height: 1.35; color: var(--sds-tenue); }
.sds-evp .event-tickets .tribe-tickets__tickets-item-content-title { font-size: 22px; }
.sds-evp .event-tickets .tribe-tickets__tickets-item { align-items: center; }
.sds-evp .event-tickets .tribe-tickets__tickets-footer { align-items: center; }
