/* --- THE SELECTIVE RESET --- */
/* Target post content, list items, and excerpts ONLY */
/* This avoids breaking the WP Admin Bar and Global Headers */
/* PROSE TEXT ONLY — DO NOT TOUCH COMPONENT LISTS */
.entry-content p,
.entry-content .wp-block-post-excerpt__excerpt,
.entry-content .wp-block-post-excerpt {
    font-weight: 500 !important;
    font-size: 1.15rem !important;
    -webkit-font-smoothing: antialiased;
    line-height: 1.6 !important;
}

/* PROSE LISTS ONLY (Gutenberg-generated lists) */
.entry-content .wp-block-list li {
    font-weight: 500 !important;
    font-size: 1.15rem !important;
    line-height: 1.6 !important;
}


/* --- EXCLUSIONS: PROTECT METADATA & PULL QUOTES --- */
/* Ensure metadata and pull quotes keep their unique styling */
.wp-block-pullquote, 
.wp-block-pullquote p,
.post-metadata,
.entry-meta,
.wp-block-post-date {
    font-size: inherit; /* Lets the block settings handle it */
    font-weight: inherit;
}

/* --- PROTECT HEADERS & NAV --- */
h1, h2, h3, h4, h5, h6,
.wp-block-heading,
.intervals-header *,
.header-nav a,
.wp-block-post-title a,
.wp-block-post-title {
    font-weight: 700 !important;
}

/* --- NAVIGATION STYLE --- */
.intervals-header nav,
.intervals-header nav a,
.header-nav a,
.wp-block-navigation .wp-block-navigation-item__content {
  font-family: "Neue Haas Grotesk Display Pro", "Neue Haas Grotesk", Helvetica, Arial, sans-serif !important;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 1.05rem;
}

/* --- POST LINKS --- */
p a, li a {
    font-weight: 500 !important; 
    text-decoration: underline;
    font-size: inherit !important;
}

/* --- ESSAY IMAGE: FINAL SYNTAX FIX --- */
.intervals-essay .intervals-image {
  max-width: 1200px;   /* match article row width */
  margin: 0 auto;
}
/* Specific fix for Neue Haas Grotesk if it's defaulting to Medium (500) */
body {
    font-family: "Neue Haas Grotesk Display Pro", "Neue Haas Grotesk", Helvetica, sans-serif;
    font-weight: 400 !important;
}

.archive-flow {
  max-width: none;
  margin: 0 auto;
  font-family: 'Neue Haas Grotesk Display Pro', Helvetica, Arial, sans-serif;
  color: #000;
  line-height: 1.5;
  background: #FDFDFB;
  padding: 2rem 1.5rem 4rem;
}


/* =====================================================
   ARTICLES — CLEAN 3-COLUMN LAYOUT (Page 1128)
   ===================================================== */

.page-id-1128 li.wp-block-post {
  display: grid;
  grid-template-columns: 48px 1fr 48px;
  column-gap: 32px;
  max-width: 1400px;
  margin: 0 auto 140px;
}

.page-id-1128 .wp-block-post-terms {
  grid-column: 1;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 14px;
  letter-spacing: 1px;
  border-right: 2px solid #134A84;
  padding-right: 6px;
}

.page-id-1128 figure.wp-block-post-featured-image {
  grid-column: 2;
  margin: 0 0 24px;
}

.page-id-1128 figure.wp-block-post-featured-image img {
  width: 100%;
  height: auto;
  display: block;
}

.page-id-1128 .wp-block-post-title,
.page-id-1128 .wp-block-post-author-name {
  grid-column: 2;
  text-align: center;
}

.page-id-1128 time.wp-block-post-date {
  grid-column: 3;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 14px;
}

/* Remove title and spacing from Blank template pages */
.page .entry-header,
.page .wp-block-post-title {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* === ARTICLES LAYOUT (HARD WIDTH CLIFF) === */
#articles-section .articles-layout {
  display: grid;
  grid-template-columns:
    minmax(260px, 1fr)
    640px
    minmax(260px, 1fr);
  justify-content: center;
  gap: 32px;
  align-items: stretch;
  padding: 5px;
  box-sizing: border-box;
  width: 100%;
  position: relative;
}


#articles-section .articles-layout::before,
#articles-section .articles-layout::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  width: 1px;
  background: #ddd;
}
#articles-section .articles-layout::before {
  left: calc(50% - 320px - 16px);
}
#articles-section .articles-layout::after {
  left: calc(50% + 320px + 16px);
}

#articles-section .column {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
}

.small-post,
.featured-post {
  display: flex;
  flex-direction: column;
  min-height: 250px;        /* keeps all cards same height */
  border-bottom: 1px solid #ddd;
  padding-bottom: 0.5em;
}


/* Side columns should stack naturally, not stretch */
#articles-section .left-column .featured-post,
#articles-section .right-column .featured-post,
#articles-section .left-column .small-post,
#articles-section .right-column .small-post {
  justify-content: flex-start;
}


.small-post:last-child,
.featured-post:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}


.small-post p.meta,
.featured-post p.meta {
  margin: 0;
  padding-top: 0.2em;
  margin-bottom: 0.4em;          /* lifts it off the divider */
  text-align: center;
  font-size: 12px;
  font-weight: 500;              /* bolder but not heavy */
  color: #EA4A98;                /* your Intervals pink */
  text-transform: uppercase;
  letter-spacing: 0.06em;
  position: relative;
  top: -2px;                     /* subtle float */
}


#articles-section .left-column a,
#articles-section .right-column a {
  font-size: 30px;
  font-weight: 400;
  line-height: 0.9;
  color: #111;
  text-decoration: none;
}
#articles-section .left-column a:hover,
#articles-section .right-column a:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

#articles-section .center-column .featured-post h3,
#articles-section .center-column .featured-post h3 a {
  font-size: 50px;
  font-weight: 600;
  line-height: 0.8;
  color: #111;
  text-align: center;
  margin-top: 0.15em;
}
/* CONTAINER */
.intervals-header {
  background: #FDFDFB;
  padding: 20px 40px 8px;
  max-width: 1000px;
  margin: 0 auto;
  font-family: 'Neue Haas Grotesk Display Pro', Helvetica, Arial, sans-serif;
  color: #111;
}

/* INNER LAYOUT */
.header-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

/* LOGO */
.header-logo {
  display: block;
  margin: 0 auto 0.25em;
  max-width: 260px;
  width: 100%;
  height: auto;
}

.header-tagline {
  font-size: 1.05rem;
  font-weight: 600;              /* key change */
  color: #333;                   /* darker, not black */
  letter-spacing: 0.01em;
  margin: 0 0 6px;
  text-align: center;
}


/* NAVIGATION */
.header-nav {
  display: flex;
  gap: 18px;
  margin-top: 8px;
}

.header-nav a {
  color: #000;
  text-decoration: none;
  font-size: 1.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: inline-block;
}

/*** MOBILE — COLLAPSED MENU ***/
.hamburger {
  display: none;
  position: absolute;
  right: 0;
  top: 10px;
  width: 32px;
  height: 28px;
  background: none;
  border: none;
  cursor: pointer;
}

.hamburger span {
  display: block;
  height: 3px;
  background: #000;
  margin: 5px 0;
  transition: 0.3s ease;
}

/* MOBILE BREAKPOINT */
@media (max-width: 1024px) {
  .header-inner {
    align-items: center;
  }

  .header-nav {
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    display: none; /* hidden until hamburger opens */
  }

  .hamburger {
    display: block;
  }

  /* When activated */
  .header-nav.active {
    display: flex;
  }
}

/* Hamburger animation when active */
.hamburger.active span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}
/* Ensure hamburger sits above the logo on mobile */
@media (max-width: 1024px) {
  .hamburger {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 9999; /* make sure it sits above the image */
  }

  /* Add some padding so the logo doesn’t overlap it */
  .intervals-header {
    padding-top: 60px;
  }
}
/* ========== MOBILE HAMBURGER FIXES ========== */

/* 1. Force the logo + tagline to sit BELOW the hamburger */
@media (max-width: 1024px) {
  .hamburger + .header-branding {
    margin-top: 25px !important;
  }
}


/* 2. Allow the hamburger to position freely above the logo */
.intervals-header {
  position: relative !important;
}

/* 3. Ensure hamburger sits above everything and is not clipped */
@media (max-width: 1024px) {
  .hamburger {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    z-index: 999999 !important;
  }
}
/* Make the Articles grid mobile-friendly */
@media (max-width: 1024px) {

  /* Force Query Loop / Post Template to stack vertically */
  .wp-block-query .wp-block-post-template,
  .wp-block-post-template {
    grid-template-columns: 1fr !important;
  }

  /* Fix images in mobile cards */
  .wp-block-post-featured-image img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* Improve spacing between articles */
  .wp-block-post-template > li {
    margin-bottom: 32px !important;
  }

  /* Prevent title overflow */
  .wp-block-post-title {
    word-break: break-word;
    hyphens: auto;
  }

  /* Reduce title size slightly for mobile */
  .wp-block-post-title a {
    font-size: 1.3rem !important;
    line-height: 1.3 !important;
  }

  /* Improve excerpt readability */
  .wp-block-post-excerpt {
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
  }
}
/* Make the Articles grid mobile-friendly */
@media (max-width: 1024px) {

  /* Force Query Loop / Post Template to stack vertically */
  .wp-block-query .wp-block-post-template,
  .wp-block-post-template {
    grid-template-columns: 1fr !important;
  }

  /* Fix images in mobile cards */
  .wp-block-post-featured-image img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* Improve spacing between articles */
  .wp-block-post-template > li {
    margin-bottom: 32px !important;
  }

  /* Prevent title overflow */
  .wp-block-post-title {
    word-break: break-word;
    hyphens: auto;
  }

  /* Reduce title size slightly for mobile */
  .wp-block-post-title a {
    font-size: 1.3rem !important;
    line-height: 1.3 !important;
  }

  /* Improve excerpt readability */
  .wp-block-post-excerpt {
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
  }
}
/* ===========================
   FRONT PAGE ARTICLES FIX 
   =========================== */

/* 1. Force the articles grid to stack FULL WIDTH on mobile */
@media (max-width: 1024px) {
  .wp-block-query .wp-block-post-template {
    display: block !important;
    width: 100% !important;
  }

  .wp-block-post-template > li {
    width: 100% !important;
    margin-bottom: 40px !important;
  }
}

/* 2. Fix the oversized images overflowing horizontally */
@media (max-width: 1024px) {
  .wp-block-post-featured-image img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
  }
}

/* 3. Ensure the articles section respects screen width 
      by removing unwanted alignment inheritance */
@media (max-width: 1024px) {
  .wp-block-query,
  .wp-block-group,
  .wp-block-group__inner-container {
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
  }
}
/* ============================================================
   INTERVALS — MOBILE-FRIENDLY ARTICLES SECTION
   Completely replaces the broken mobile layout
   ============================================================ */

@media (max-width: 1024px) {

  /* Reset the desktop grid */
  .articles-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px !important;
    padding: 0 16px !important;
  }

  /* Remove fake column borders */
  .articles-layout::before,
  .articles-layout::after {
    display: none !important;
  }

  /* Remove grid placement rules (they break mobile) */
  .left-post-1,
  .right-post-1,
  .left-post-2,
  .right-post-2,
  .featured-post {
    grid-column: auto !important;
    grid-row: auto !important;
  }

  /* Post blocks full width */
  .small-post,
  .featured-post {
    width: 100% !important;
    max-width: 480px;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    text-align: center !important;
  }

  /* Image full width */
  .image-wrapper {
    overflow: hidden;
    width: 100% !important;
  }

  .image-wrapper img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
  }

  /* Featured title smaller on mobile */
  .featured-post h3 a {
    font-size: 28px !important;
    line-height: 1.15 !important;
  }

  /* Side-post titles */
  #articles-section .small-post a span {
    font-size: 20px !important;
    line-height: 1.2 !important;
    padding: 0 10px;
  }

  /* Meta spacing */
  .small-post .meta,
  .featured-post .meta {
    margin-top: 12px !important;
  }

  /* Excerpt clean-up */
  .pull-quote {
    font-size: 1rem !important;
    line-height: 1.4 !important;
    padding: 0 8px;
  }
}
.page-id-944 header {
  display: none;
}
.error404 header,
.error404 footer {
  display: none !important;
}
.header-logo {
  content: url('https://intervalslondon.com/wp-content/uploads/2025/12/intervals_logo_transparent_for_wp.png') !important;
  background: transparent !important;
}
.page-id-944 .site-content,
.page-id-944 .site-main,
.page-id-944 .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.page-id-944 .wp-block-group {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
@media (max-width: 600px) {
  .forminator-ui .forminator-field {
    margin-bottom: 10px !important;
  }

  .forminator-ui .forminator-label {
    margin-bottom: 2px !important;
  }

  .forminator-ui .forminator-description {
    margin-bottom: 4px !important;
  }
}
/* Tighten multi-line headings inside Forminator forms */
.forminator-ui h3,
.forminator-ui h2,
.forminator-ui .forminator-label--heading {
  line-height: 1.05 !important; /* Try 1.1 or 1.05 if you want it even tighter */
  margin-bottom: 8px !important; /* Small gap before description text */
}
/* Tighten the line spacing for long Forminator field labels */
.forminator-ui .forminator-label {
  line-height: 1.1 !important;
}
/* ============================================================
   INTERVALS — ARTICLES PAGE LAYOUT
   Applies to any page using the Query Loop with .post-item wrapper
============================================================ */

/* 3-column layout: Vertical Category | Vertical Date | Content */
.post-item.wp-block-group {
    display: grid !important;
    grid-template-columns: 120px 60px 1fr; /* left, date, content */
    column-gap: 40px;
    align-items: start;
    margin-bottom: 120px;
}

/* -------------------------------
   LEFT COLUMN — CATEGORY
-------------------------------- */
.post-item .vertical-category {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    text-transform: uppercase;
    font-size: 20px;
    letter-spacing: 2px;
    color: #134A84;
    border-right: 3px solid #134A84;
    padding-right: 12px;
    line-height: 1.1;
}

/* -------------------------------
   LEFT COLUMN — DATE
-------------------------------- */
.post-item .vertical-date {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 13px;
    color: #444;
    margin-top: 20px;
}

/* -------------------------------
   MIDDLE COLUMN — TITLE + AUTHOR
-------------------------------- */
.post-item .wp-block-post-title {
    font-size: 36px;
    line-height: 1.1;
    margin: 0 0 12px;
}

.post-item .wp-block-post-title a {
    text-decoration: none;
    color: #000;
}

.post-item .wp-block-post-author-name {
    font-size: 16px;
    color: #666;
    margin-bottom: 24px;
}

/* -------------------------------
   RIGHT COLUMN — FEATURED IMAGE
-------------------------------- */
.post-item figure.wp-block-post-featured-image {
    margin: 0;
}

.post-item figure.wp-block-post-featured-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
}
/* ======================================================
   ARTICLES LAYOUT — CATEGORY | TITLE+AUTHOR+IMAGE | DATE
   ====================================================== */

.post-item.wp-block-group {
    display: grid !important;
    grid-template-columns: 120px 1fr 60px; /* left, middle, right */
    column-gap: 40px;
    align-items: start;
    margin-bottom: 120px;
}

/* -------------------------
   LEFT COLUMN — CATEGORY
-------------------------- */
.vertical-category {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    text-transform: uppercase;
    font-size: 20px;
    letter-spacing: 2px;
    color: #134A84;
    border-right: 3px solid #134A84;
    padding-right: 12px;
    line-height: 1.1;
}

/* -------------------------
   RIGHT COLUMN — DATE
-------------------------- */
.vertical-date {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 14px;
    color: #444;
    text-align: left;
    padding-left: 4px;
}

/* -------------------------
   CENTER COLUMN — CONTENT
-------------------------- */
.center-column .wp-block-post-title {
    font-size: 36px;
    margin: 0 0 10px;
    line-height: 1.1;
}

.center-column .wp-block-post-title a {
    text-decoration: none;
    color: #000;
}

.center-column .wp-block-post-author-name {
    font-size: 16px;
    color: #666;
    margin-bottom: 20px;
}

.center-column .wp-block-post-featured-image {
    margin: 0;
}

.center-column .wp-block-post-featured-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
}
/* ============================
   INTERVALS ARTICLES GRID
   Page ID: 1050
   ============================ */

.page-id-1050 .post-item.wp-block-group {
    display: grid !important;
    grid-template-columns: 140px 60px 1fr; /* category | date | content */
    column-gap: 40px;
    align-items: start;
    margin-bottom: 120px;
}

/* CATEGORY COLUMN */
.page-id-1050 .vertical-category {
    grid-column: 1;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    text-transform: uppercase;
    font-size: 28px;
    letter-spacing: 2px;
    color: #134A84;
    border-right: 4px solid #134A84;
    padding-right: 14px;
    line-height: 1.1;
}

/* DATE COLUMN */
.page-id-1050 .vertical-date {
    grid-column: 2;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 14px;
    color: #444;
    margin-top: 12px;
}

/* CONTENT COLUMN */
.page-id-1050 .center-column {
    grid-column: 3;
}

/* Title */
.page-id-1050 .center-column .wp-block-post-title {
    font-size: 38px;
    line-height: 1.1;
    margin: 0 0 10px;
}

/* Author */
.page-id-1050 .center-column .wp-block-post-author-name {
    font-size: 18px;
    color: #666;
    margin-bottom: 20px;
}

/* Featured Image */
.page-id-1050 .center-column .wp-block-post-featured-image img {
    width: 100%;
    height: auto;
    display: block;
}
/* ----------------------------------------------
   INTERVALS ARTICLES GRID — REAL FRONT-END FIX
------------------------------------------------ */

.page-id-1050 .post-item {
    display: grid !important;
    grid-template-columns: 80px 60px 1fr 80px;
    column-gap: 40px;
    align-items: start;
    margin-bottom: 120px;
}

/* Remove the theme’s flex wrappers so they don’t break the grid */
.page-id-1050 .post-item > .wp-block-group.is-layout-flex {
    display: contents !important;  /* magic: unwraps them but keeps children */
}

/* CATEGORY — left */
.page-id-1050 .post-item .vertical-category {
    grid-column: 1;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 26px;
    letter-spacing: 2px;
    color: #134A84;
    border-right: 3px solid #134A84;
    padding-right: 10px;
    line-height: 1.1;
}

/* DATE — right */
.page-id-1050 .post-item .vertical-date {
    grid-column: 4;
    writing-mode: vertical-rl;
    font-size: 16px;
    color: #444;
    padding-left: 10px;
}

/* TITLE + AUTHOR — centre column */
.page-id-1050 .post-item h2.wp-block-post-title,
.page-id-1050 .post-item .wp-block-post-author-name {
    grid-column: 3;
    text-align: center;
}
/* CATEGORY — make smaller */
.page-id-1050 .vertical-category {
    font-size: 18px;        /* smaller size */
    letter-spacing: 1px;
    border-right: 2px solid #134A84;
    padding-right: 8px;
}

/* IMAGE — make much larger */
.page-id-1050 .post-item img {
    width: 100% !important;
    max-width: 780px !important;   /* increase this to make even bigger */
    height: auto !important;
    display: block;
    margin: 0 auto 20px;
}

/* OPTIONAL: widen the centre column a bit */
.page-id-1050 .post-item.wp-block-group {
    grid-template-columns: 80px 60px 1fr 80px !important;
    max-width: 1100px;
}
.page-id-1050 .post-item img {
    max-width: none !important;
    width: 100% !important;
}
/* ARTICLES — constrain centre column so image doesn't float */
.page-id-1050 .post-item.wp-block-group {
    grid-template-columns: 70px 1fr 70px; /* category | content | date */
    max-width: 980px;
    margin: 0 auto 120px;
}

/* IMAGE — make it fill the content column */
.page-id-1050 .post-item img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto;
    display: block;
}
/* ======================================================
   INTERVALS — ARTICLES PAGE (FINAL OVERRIDE)
   Page ID: 1050
   ====================================================== */

/* Kill all previous layout interference */
.page-id-1050 .post-item,
.page-id-1050 .post-item * {
  box-sizing: border-box;
}

/* HARD GRID */
.page-id-1050 .post-item {
  display: grid !important;
  grid-template-columns: 60px 1fr 60px !important; /* category | content | date */
  column-gap: 32px !important;
  max-width: 1200px !important;   /* THIS controls image size */
  margin: 0 auto 140px !important;
}

/* Remove WP flex wrappers */
.page-id-1050 .post-item > .wp-block-group.is-layout-flex {
  display: contents !important;
}

/* CATEGORY — smaller */
.page-id-1050 .vertical-category {
  grid-column: 1;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 16px !important;
  letter-spacing: 1px;
  color: #134A84;
  border-right: 2px solid #134A84;
  padding-right: 6px;
}

/* DATE — right */
.page-id-1050 .vertical-date {
  grid-column: 3;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 14px;
  color: #444;
}

/* CONTENT — middle */
.page-id-1050 .center-column,
.page-id-1050 figure.wp-block-post-featured-image {
  grid-column: 2;
}

/* IMAGE — ACTUALLY BIG */
.page-id-1050 figure.wp-block-post-featured-image img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  display: block;
}
/* ======================================================
   ARTICLES PAGE — ACTUAL FIX (Page ID: 1050)
   Targets REAL markup
   ====================================================== */

/* 1. Make each post much wider */
.page-id-1050 li.wp-block-post {
  display: grid !important;
  grid-template-columns: 50px 1fr 50px !important; /* category | content | date */
  column-gap: 32px !important;
  max-width: 1400px !important;   /* THIS makes the image bigger */
  margin: 0 auto 140px !important;
}

/* 2. CATEGORY — smaller */
.page-id-1050 .wp-block-post-terms {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 15px !important;
  letter-spacing: 1px;
  border-right: 2px solid #134A84;
  padding-right: 6px;
}

/* 3. DATE — right column */
.page-id-1050 time.wp-block-post-date {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 14px;
  grid-column: 3;
}

/* 4. CONTENT — force centre column */
.page-id-1050 .wp-block-post-featured-image,
.page-id-1050 .wp-block-post-title,
.page-id-1050 .wp-block-post-author-name {
  grid-column: 2;
}

/* 5. IMAGE — no artificial caps */
.page-id-1050 figure.wp-block-post-featured-image {
  margin: 0;
}

.page-id-1050 figure.wp-block-post-featured-image img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  display: block;
}
/* ======================================================
   INTERVALS — ARTICLES PAGE (CORRECT PAGE ID)
   Page ID: 1098
   ====================================================== */

/* Make each article wider → makes image bigger */
.page-id-1098 li.wp-block-post {
  display: grid !important;
  grid-template-columns: 50px 1fr 50px !important; /* category | content | date */
  column-gap: 32px !important;
  max-width: 1400px !important;   /* controls image size */
  margin: 0 auto 140px !important;
}

/* CATEGORY — smaller */
.page-id-1098 .wp-block-post-terms {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 15px !important;
  letter-spacing: 1px;
  color: #134A84;
  border-right: 2px solid #134A84;
  padding-right: 6px;
}

/* DATE — right column */
.page-id-1098 time.wp-block-post-date {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 14px;
  grid-column: 3;
}

/* CONTENT — centre column */
.page-id-1098 .wp-block-post-featured-image,
.page-id-1098 .wp-block-post-title,
.page-id-1098 .wp-block-post-author-name {
  grid-column: 2;
}

/* IMAGE — fill the column */
.page-id-1098 figure.wp-block-post-featured-image img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  display: block;
}
/* ==============================
   FIX IMAGE SHRINKING (Page 1098)
   ============================== */

/* Give the centre column more real space */
.page-id-1098 li.wp-block-post {
  grid-template-columns: 40px minmax(700px, 1fr) 40px !important;
  max-width: 1600px !important;
}

/* Neutralise aligncenter behaviour */
.page-id-1098 figure.wp-block-post-featured-image {
  margin-left: 0 !important;
  margin-right: 0 !important;
  justify-self: stretch !important;
}

/* Ensure image truly fills column */
.page-id-1098 figure.wp-block-post-featured-image img {
  width: 100% !important;
  max-width: none !important;
}
/* ==========================================
   FORCE FEATURED IMAGE FULL SIZE (Page 1098)
   ========================================== */

/* Kill ALL theme width caps */
.page-id-1098 figure.wp-block-post-featured-image,
.page-id-1098 figure.wp-block-post-featured-image.aligncenter {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
}

/* Force the image itself to scale */
.page-id-1098 figure.wp-block-post-featured-image img {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  display: block !important;
}
.page-id-1098 figure.wp-block-post-featured-image img {
  outline: 5px solid red !important;
}
/* ======================================================
   FORCE IMAGE INTO CENTRE COLUMN (Page 1098)
   ====================================================== */

/* Define grid clearly */
.page-id-1098 li.wp-block-post {
  display: grid !important;
  grid-template-columns: 60px 1fr 60px !important;
  column-gap: 32px;
  max-width: 1600px;
  margin: 0 auto 140px;
}

/* CATEGORY — left */
.page-id-1098 .wp-block-post-terms {
  grid-column: 1;
}

/* DATE — right */
.page-id-1098 time.wp-block-post-date {
  grid-column: 3;
}

/* 🔥 FORCE IMAGE INTO CENTRE COLUMN */
.page-id-1098 figure.wp-block-post-featured-image {
  grid-column: 2 !important;
  justify-self: stretch !important;
  max-width: none !important;
  margin: 0 !important;
}

.page-id-1098 figure.wp-block-post-featured-image img {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  display: block !important;
}

/* Title + author also centre */
.page-id-1098 .wp-block-post-title,
.page-id-1098 .wp-block-post-author-name {
  grid-column: 2;
}
/* ======================================================
   ARTICLES — EXPLICIT GRID AREAS (Page 1098)
   THIS IS THE FIX
   ====================================================== */

.page-id-1098 li.wp-block-post {
  display: grid !important;
  grid-template-columns: 60px 1fr 60px;
  grid-template-areas:
    "category image date"
    ".        title  ."
    ".        author .";
  column-gap: 32px;
  max-width: 1600px;
  margin: 0 auto 140px;
}

/* Assign blocks to areas */
.page-id-1098 .wp-block-post-terms {
  grid-area: category;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.page-id-1098 figure.wp-block-post-featured-image {
  grid-area: image;
  margin: 0 !important;
}

.page-id-1098 figure.wp-block-post-featured-image img {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  display: block;
}

.page-id-1098 .wp-block-post-title {
  grid-area: title;
  text-align: center;
}

.page-id-1098 .wp-block-post-author-name {
  grid-area: author;
  text-align: center;
}

.page-id-1098 time.wp-block-post-date {
  grid-area: date;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}
/* =========================================
   FORCE QUERY LOOP TO FULL WIDTH (Page 1128)
   THIS IS THE ROOT FIX
   ========================================= */

/* Make the Query Loop stretch */
.page-id-1128 .wp-block-post-template {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
}

/* Make each post fill the row */
.page-id-1128 .wp-block-post-template > li.wp-block-post {
  width: 100% !important;
  max-width: none !important;
}
/* ===== INTERVALS FEED ===== */

.intervals-feed {
  display: flex;
  flex-direction: column;
  gap: 120px;
}

/* 3-column articles */
.intervals-articles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.intervals-article {
  width: 100%;
}

/* full-width essay */
.intervals-essay {
  max-width: 1000px;
  margin: 0 auto;
}
/* ===== INTERVALS FEED TYPOGRAPHY ===== */

.intervals-feed {
  font-family: "Neue Haas Grotesk Display Pro", "Neue Haas Grotesk",
               Helvetica, Arial, sans-serif;
  color: #111;
}

/* --- ARTICLES (3-column) --- */

.intervals-article .intervals-title {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.01em;
  margin: 0 0 0.4em;
}

.intervals-article .intervals-title a {
  color: inherit;
  text-decoration: none;
}

.intervals-article .intervals-title a:hover {
  text-decoration: underline;
}

.intervals-article .intervals-excerpt {
  font-size: 0.9rem;
  line-height: 1.45;
  color: #444;
  margin: 0;
}

/* --- ESSAYS (full-width) --- */

.intervals-essay-inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.intervals-essay-inner .intervals-title {
  font-size: 1.9rem;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 0.6em;
}

.intervals-essay-inner .intervals-excerpt {
  font-size: 1.05rem;
  line-height: 1.6;
  color: #333;
}
/* ===== TITLES: BLACK + UNDERLINED ===== */

.intervals-feed .intervals-title a {
  color: #000;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

.intervals-feed .intervals-title a:hover {
  text-decoration-thickness: 2px;
}
/* ===== ARTICLE IMAGE SIZE CONTROL ===== */

/* Editorial thumbnails — DESKTOP ONLY */
@media (min-width: 1025px) {
  .intervals-articles .intervals-image {
    height: 220px;
    overflow: hidden;
  }

  .intervals-articles .intervals-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* ===== ESSAY IMAGE SIZE ===== */

.intervals-essay .intervals-image {
  max-width: 900px;
  margin: 0 auto 1.2em;
}

.intervals-essay .intervals-image img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
/* ===== TIGHTER ROW RHYTHM ===== */

.intervals-feed {
  gap: 60px; /* was ~120px */
}

/* extra control if needed */
.intervals-articles {
  margin-bottom: 20px;
}

.intervals-essay {
  margin: 40px auto;
}
/* ===== WIDER ARTICLE ROWS ===== */

.intervals-articles {
  max-width: 1200px;   /* widen grid */
  margin-left: auto;
  margin-right: auto;
}
/* ===== 16:9 ARTICLE IMAGES ===== */

.intervals-articles .intervals-image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.intervals-articles .intervals-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* WP Button — force white text */
.wp-block-button__link {
  color: #ffffff !important;
}

/* Keep white on hover / focus */
.wp-block-button__link:hover,
.wp-block-button__link:focus {
  color: #ffffff !important;
}
/* FRONT END: force WP button text to white (incl. visited/hover) */
body a.wp-block-button__link.wp-element-button,
body a.wp-block-button__link.wp-element-button:visited,
body a.wp-block-button__link.wp-element-button:hover,
body a.wp-block-button__link.wp-element-button:focus {
  color: #fff !important;
}

/* If the theme is setting it via the wrapper/button too */
body .wp-block-button .wp-block-button__link {
  color: #fff !important;
}
/* ======================================
   INTERVALS — PINK BUTTON (NO UNDERLINE)
   ====================================== */

.wp-block-button .wp-block-button__link {
  background-color: #e84c8b !important; /* Intervals pink */
  color: #ffffff !important;
  text-decoration: none !important;
  border: none;
}

/* Keep it clean on hover / focus / visited */
.wp-block-button .wp-block-button__link:hover,
.wp-block-button .wp-block-button__link:focus,
.wp-block-button .wp-block-button__link:visited {
  background-color: #e84c8b !important;
  color: #ffffff !important;
  text-decoration: none !important;
}
/* ===== ESSAY IMAGE: WIDER + CENTERED ===== */

.intervals-essay .intervals-image {
  max-width: 1200px;   /* match article row width */
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}

.intervals-essay .intervals-image img {
  width: 100%;
  height: auto;
}
/* ===== ESSAY IMAGE: WIDER + CENTERED ===== */

.intervals-essay .intervals-image {
  max-width: 1200px;   /* match article row width */
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}

.intervals-essay .intervals-image img {
  width: 100%;
  height: auto;
}
/* ===== ESSAY IMAGE BREAKOUT ===== */

/* keep text narrow */
.intervals-essay-inner {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* break image out of text column */
.intervals-essay .intervals-image {
  width: 1200px;              /* cinematic width */
  max-width: 90vw;
  margin-left: 50%;
  transform: translateX(-50%);
  margin-bottom: 1.5em;
}

/* image itself */
.intervals-essay .intervals-image img {
  width: 100%;
  height: auto;
}
/* ===== FORCE-CENTER ARTICLE ROW ===== */

.intervals-articles {
  width: 100%;
  max-width: 1200px;   /* adjust if needed */
  margin-left: auto !important;
  margin-right: auto !important;
}
/* ===== NEUTRALISE THEME PADDING FOR FEED ===== */

.intervals-feed {
  margin-left: calc(-1 * var(--wp--style--root--padding-left, 0px));
  margin-right: calc(-1 * var(--wp--style--root--padding-right, 0px));
}
/* ===== HARD RESET: TRUE CENTERING (BYPASS THEME WRAPPERS) ===== */

/* 1) Make the whole feed a centered 100vw band */
.intervals-feed{
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative;
  left: 50%;
  right: auto;
  margin-left: 0 !important;
  margin-right: 0 !important;
  transform: translateX(-50%);
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}

/* 2) Now center the 3-col article row within that band */
.intervals-articles{
  max-width: 1200px;      /* tweak: 1100 / 1320 */
  margin-left: auto !important;
  margin-right: auto !important;
  width: calc(100% - 80px);  /* gives breathing room on small screens */
}

/* optional: keep the essay image centred too (doesn’t change your essay text width) */
.intervals-essay .intervals-image{
  margin-left: auto !important;
  margin-right: auto !important;
}
/* ===== CENTER THE ONE-COLUMN (ESSAY) ROW ===== */

/* center the essay row container */
.intervals-essay {
  width: 100%;
  display: flex;
  justify-content: center;
}

/* keep text narrow and centered */
.intervals-essay-inner {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
/* ================================
   DEFINITIVE ROW CENTERING FIX
   ================================ */

/* 1. The feed is already 100vw and centred (keep this) */
.intervals-feed{
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 2. Center BOTH row types using the SAME rule */
.intervals-row{
  width: 100%;
  display: flex;
  justify-content: center;
}

/* 3. Article grid: fixed-width centred strip */
.intervals-row.intervals-articles{
  max-width: 1200px;
}

/* 4. Essay row: centre its contents properly */
.intervals-row.intervals-essay{
  max-width: 1200px; /* same visual centre as articles */
}

/* 5. Essay text stays narrow inside that */
.intervals-essay-inner{
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
/* ================================
   INTERVALS FEED — HARD ISOLATION
   ================================ */

.intervals-feed,
.intervals-feed * {
  margin-left: 0 !important;
  margin-right: 0 !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
}
/* ================================
   FEED LAYOUT — CLEAN REBUILD
   ================================ */

/* feed is full-width but centred */
.intervals-feed {
  width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

/* all rows centred using the same logic */
.intervals-row {
  display: flex;
  justify-content: center;
  width: 100%;
}

/* 3-column article strip */
.intervals-row.intervals-articles {
  max-width: 1200px;
}

/* essay row */
.intervals-row.intervals-essay {
  max-width: 1200px;
}

/* essay text stays narrower */
.intervals-essay-inner {
  max-width: 720px;
}
/* ================================
   ESSAY IMAGE — FINAL
   ================================ */

.intervals-row.intervals-essay .intervals-image {
  width: 1200px;
  max-width: 90vw;
  margin-left: auto;
  margin-right: auto;
}

.intervals-row.intervals-essay .intervals-image img {
  width: 100%;
  height: auto;
  display: block;
}
/* ================================
   INTERVALS FEED — TOTAL RESET
   ================================ */

.intervals-feed,
.intervals-feed * {
  margin-left: 0 !important;
  margin-right: 0 !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  position: static !important;
}
/* ================================
   INTERVALS FEED — CLEAN LAYOUT
   ================================ */

/* feed wrapper */
.intervals-feed {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* article rows */
.intervals-row.intervals-articles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-bottom: 80px;
}

/* essay row */
.intervals-row.intervals-essay {
  margin-bottom: 80px;
}

/* essay image */
.intervals-row.intervals-essay .intervals-image {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* essay text */
.intervals-essay-inner {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* ===== CENTER ARTICLE GRID (FINAL) ===== */

.intervals-row.intervals-articles {
  margin-left: auto !important;
  margin-right: auto !important;
}
/* ================================
   ESSAY — OPTICAL OFFSETS
   ================================ */

/* ================================
   ESSAY — OPTICAL OFFSETS (FOR REAL)
   ================================ */
/* ================================
   ESSAY — OPTICAL OFFSETS (FIXED)
   ================================ */
/* ESSAY IMAGE OFFSET */
.intervals-row.intervals-essay .intervals-image {
  transform: translateX(-230px) !important;
}

/* text slightly right */
.intervals-row.intervals-essay .intervals-essay-inner {
  transform: translateX(150px) !important;
}


/* ================================
   UNIFORM TIGHT ROW SPACING
   ================================ */

/* remove any container gap */
.intervals-feed {
  row-gap: 0 !important;
}

/* every row gets the same spacing */
.intervals-row {
  margin-bottom: 20px !important;
}

/* essay divider breathing room */
.intervals-row.intervals-essay {
  padding-bottom: 20px !important;
}

/* kill internal paragraph creep */
.intervals-row.intervals-essay .intervals-excerpt {
  margin-bottom: 0 !important;
}
.og-image {
  display: none;
}
.page .entry-title {
  display: none !important;
}
/* Remove stray site-title link under page headers */
.page .entry-title a[rel="home"] {
  display: none !important;
}
html, body {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.wp-site-blocks,
main,
.wp-block-group,
.wp-block-post-content {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
/* Prevent Jetpack modal overlay from blocking page links */
.jetpack-subscription-modal {
  pointer-events: none;
}

/* Allow interaction only inside the actual modal box */
.jetpack-subscription-modal__modal-content {
  pointer-events: auto;
}
/* Completely disable Jetpack subscription modal overlay */
.jetpack-subscription-modal {
  display: none !important;
}
/* Film listings: black links + black underline */
#cinema-listings a,
#cinema-listings a:visited {
  color: #000;
  text-decoration-color: #000;
}
/* Notes links should look like plain notes */
#cinema-listings .notes-tag a {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit;
  text-decoration: none;
}


/* Article / writing links: pink */
.wp-block-post-content p a,
.wp-block-post-content li a {
  color: #EA4A98;
  text-decoration-color: #EA4A98;
}

/* Optional hover */
#cinema-listings a:hover,
.wp-block-post-content p a:hover {
  opacity: 0.85;
}

/* ======================================================
   ARTICLES — IMAGE HIERARCHY (FINAL)
   Centre: 16:9
   Sides:  4:3
   ====================================================== */

/* ======================================================
   ARTICLES — IMAGE + TITLE NORMALISATION (FINAL)
   ====================================================== */
/* ======================================================
   ARTICLES — IMAGE + TITLE NORMALISATION (FINAL, LOCKED)
   ====================================================== */

/* ===============================
   DESKTOP (≥1025px)
   =============================== */
@media (min-width: 1025px) {

  #articles-section .image-wrapper {
    width: 100%;
    aspect-ratio: 1.85 / 1;
    overflow: hidden;
    margin-bottom: 12px;
  }

  #articles-section .center-column .image-wrapper {
    aspect-ratio: 16 / 9;
  }

  #articles-section .image-wrapper img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
  }
}

/* ===============================
   MOBILE (≤1024px)
   =============================== */
@media (max-width: 1024px) {

  #articles-section .image-wrapper {
    aspect-ratio: auto !important;
  }

  #articles-section .image-wrapper img {
    height: auto !important;
  }
}

/* ===============================
   TITLE NORMALISATION
   Side columns only
   =============================== */
#articles-section .left-column .featured-post h3,
#articles-section .left-column .featured-post h3 a,
#articles-section .right-column .featured-post h3,
#articles-section .right-column .featured-post h3 a {
  margin-top: 0 !important;
}


/* === HARD KILL IMAGE ROUNDING (THEME-LEVEL) === */
#articles-section img {
  border-radius: 0 !important;
}
#articles-section figure,
#articles-section .image-wrapper {
  border-radius: 0 !important;
}
/* Listings date navigation arrows */
.listings a:first-child,
.listings a:last-child {
  font-size: 1.8em;
  font-weight: 800;
  line-height: 1;
}
#calendar-nav #prev-btn,
#calendar-nav #next-btn {
  font-size: 2.4rem;
  font-weight: 800;
  line-height: 1;
}
/* Calendar arrows — SVG, editorial weight */
.calendar-arrow {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}

.calendar-arrow svg {
  width: 1.1rem;
  height: 1.1rem;
  fill: #000;
  transition: transform 0.15s ease;
}

/* Optical spacing */
#prev-btn {
  margin-right: 1.2rem;
}

#next-btn {
  margin-left: 1.2rem;
}

/* Subtle editorial hover (optional but nice) */
.calendar-arrow:hover svg {
  transform: translateX(0.15rem);
}

#prev-btn:hover svg {
  transform: translateX(-0.15rem);
}
/* ===============================
   CALENDAR ARROWS — SVG (FINAL)
   =============================== */

.calendar-arrow {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}

.calendar-arrow svg {
  width: 2rem;   /* controls size */
  height: 1.8rem;
  fill: #000;
  transition: transform 0.15s ease;
}

/* spacing */
#prev-btn { margin-right: 1.2rem; }
#next-btn { margin-left: 1.2rem; }

/* subtle editorial motion */
#prev-btn:hover svg { transform: translateX(-2px); }
#next-btn:hover svg { transform: translateX(2px); }
/* ======================================
   LISTINGS — SEPARATOR LINES
   ====================================== */
#cinema-listings .screening {
  position: relative;
  padding-bottom: 16px;
  margin-bottom: 16px;
}

#cinema-listings .screening::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  border-bottom: 1px solid #ddd;
}

/* ======================================
   LISTINGS — MOBILE SPACING TWEAK
   ====================================== */
@media (max-width: 640px) {
  #cinema-listings .screening {
    padding-bottom: 10px;
    margin-bottom: 10px;
  }
}

/* JS-controlled: remove divider from final visual row */
#cinema-listings .screening.no-divider::after {
  content: none !important;
}

/* ======================================
   LISTINGS — META TEXT SIZE (FINAL)
   ====================================== */

#cinema-listings .screening .details {
  font-size: 1rem;   /* slightly larger, still secondary */
  line-height: 1.35;
	font-style: italic;
}

#cinema-listings .screening .time {
  font-size: 0.95rem;
	/* matches details, keeps weight */
}
/* 
/* ============================/* ======================================
   LISTINGS — FULL-WIDTH PAGE, CENTRED CONTENT
   ====================================== */

/* Break the theme width ONLY on pages that contain listings */
.page .wp-site-blocks,
.page main,
.page .site,
.page .site-main,
.page .site-content,
.page .entry-content,
.page .wp-block-post-content {
  max-width: none !important;
  width: 100% !important;
}

/* Ensure listings wrapper spans full page */
#listings-wrapper {
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Re-centre the actual listings content */
#cinema-listings {
  max-width: 1080px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ======================================
   MOBILE — KILL FIXED IMAGE HEIGHTS (FINAL)
   ====================================== */
@media (max-width: 1024px) {

  #articles-section .image-wrapper,
  #articles-section .intervals-image,
  #articles-section figure,
  #articles-section .wp-block-post-featured-image {
    height: auto !important;
    min-height: 0 !important;
  }

  #articles-section img {
    height: auto !important;
    max-height: none !important;
  }
}

/* --- FIX: REMOVE GREY BOXES UNDER IMAGES --- */
figure.wp-block-post-featured-image, 
.image-wrapper, 
.wp-block-post-featured-image {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding-bottom: 0 !important;
}

/* --- FIX: ALIGN SIDE COLUMN TITLES (DEEP FOCUS) --- */
#articles-section .left-column a, 
#articles-section .right-column a {
    display: inline-block;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* --- FIX: TIGHTEN PINK META TAG SPACING --- */
.small-post p.meta, 
.featured-post p.meta {
    margin-bottom: 4px !important;
    margin-top: 0 !important;
}

/* 1. Reduce the massive 140px gap between separate posts */
.page-id-1128 li.wp-block-post,
.page-id-1098 li.wp-block-post,
.page-id-1050 li.wp-block-post,
.post-item.wp-block-group {
    margin-bottom: 50px !important; /* Reduced from 140px */
}

/* 2. Tighten internal spacing between Title, Excerpt, and Image */
.wp-block-post-title {
    margin-bottom: 10px !important;
    margin-top: 0 !important;
}

.wp-block-post-excerpt, 
.intervals-excerpt {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    line-height: 1.3 !important;
}

/* 3. Pull the Date (pink text) closer to the image */
.page-id-1128 time.wp-block-post-date,
.small-post p.meta,
.featured-post p.meta {
    margin-bottom: 15px !important;
    padding-top: 0 !important;
}

/* 4. Ensure the featured image doesn't have a huge top margin */
figure.wp-block-post-featured-image {
    margin-top: 5px !important;
    margin-bottom: 20px !important;
}
/* 1. Reduce the massive 140px gap between posts to something more standard */
.page-id-1128 li.wp-block-post,
.page-id-1098 li.wp-block-post,
.page-id-1050 li.wp-block-post {
    margin-bottom: 80px !important; /* Brought down from 140px for a cleaner look */
}

/* 2. Tighten space between Title and Excerpt */
.wp-block-post-title {
    margin-bottom: 5px !important;
}

/* 3. Give the pink metadata its breathing room back (stops it from creeping up) */
.small-post p.meta, 
.featured-post p.meta,
time.wp-block-post-date {
    margin-top: 25px !important; /* Adds space above the pink text */
    margin-bottom: 10px !important; /* Pulls the image up slightly closer */
}

/* 4. Pull the image up to meet the text */
figure.wp-block-post-featured-image {
    margin-top: 0 !important;
}

/* 1. Stop the "stretching" behavior in the side columns */
#articles-section .small-post {
    justify-content: flex-start !important; 
}

/* 2. Pull the Title closer to the Image */
#articles-section .small-post a span {
    margin-top: 8px !important; /* Adjust this number to move title up/down */
}

/* 3. Tighten the gap for the excerpt */
#articles-section .small-post .pull-quote {
    margin-top: 4px !important;
    margin-bottom: 10px !important;
}

/* 4. Keep the Pink Meta from "creeping" by giving it a solid top margin */
#articles-section .small-post .meta {
    margin-top: 15px !important; 
    padding-bottom: 5px !important;
}

/* 1. Force the image to fill the 16:9 box regardless of its original shape */
#articles-section .image-wrapper img {
    object-fit: cover !important;
}

/* 2. Stop the container from pushing the title down to the bottom */
#articles-section .small-post {
    justify-content: flex-start !important;
    gap: 0 !important;
}

/* 3. Manually set the gap between image and title */
#articles-section .small-post a + a {
    margin-top: 12px !important;
}

/* 4. Ensure the pink meta date stays a consistent distance from the title */
#articles-section .small-post .meta {
    margin-top: 8px !important;
    margin-bottom: 0 !important;
}

/* 1. Force the Deep Focus image to fill the 16:9 container perfectly */
#articles-section .image-wrapper img {
    object-fit: cover !important;
    height: 100% !important;
    width: 100% !important;
}

/* 2. Stop the "Deep Focus" title from floating to the bottom */
#articles-section .small-post {
    justify-content: flex-start !important;
}

/* 3. Add consistent spacing between the Image, Title, and Date */
#articles-section .small-post a span {
    margin-top: 15px !important;
    display: block !important;
}

#articles-section .small-post .meta {
    margin-top: 8px !important;
}

/* ======================================
   HARD FIX — REMOVE EMPTY FLEX CHILDREN
   ====================================== */

/* Kill empty blocks that still take up space */
#articles-section .small-post > *:empty {
  display: none !important;
}

/* Specifically neutralise empty excerpts / pull-quotes */
#articles-section .small-post .pull-quote:empty {
  display: none !important;
}
/* ======================================
   HARD FIX — STOP FLEX PUSHING TITLES DOWN
   ====================================== */

#articles-section .small-post {
  min-height: unset !important;
  justify-content: flex-start !important;
}
/* ======================================
   AUTHORITATIVE FIX — TITLE ANCHOR ALIGNMENT
   ====================================== */

/* Force the TITLE link to be block-level */
#articles-section .small-post > a + a {
  display: block !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  line-height: 1 !important;
}

/* Kill any inherited inline spacing */
#articles-section .small-post > a + a span {
  display: block !important;
  line-height: 1 !important;
}
@media (max-width: 768px) {
  #articles-section .featured-post h3 {
    line-height: 1.05 !important;
    margin-bottom: -0.25em !important;
  }

  #articles-section .featured-post h3 a {
    line-height: inherit !important;
  }
}
/* =========================================
   INTERVALS ARTICLES — MOBILE FIX
   ========================================= */

@media (max-width: 768px) {

  /* Feed container */
  .intervals-feed {
    padding: 16px;
  }

  /* Stack article rows */
  .intervals-row {
    display: block;
    margin-bottom: 48px;
  }

  /* Individual articles */
  .intervals-article,
  .intervals-essay-inner {
    margin-bottom: 32px;
  }

  /* Images */
  .intervals-image img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* Titles */
  .intervals-articles .intervals-title {
    font-size: 1.5rem;
    line-height: 1.15;
  }

  .intervals-essay .intervals-title {
    font-size: 1.8rem;
    line-height: 1.1;
  }

  /* Excerpts */
  .intervals-excerpt {
    font-size: 1rem;
    line-height: 1.45;
  }
}
@media (max-width: 768px) {

  /* Completely abandon row logic */
  .intervals-row {
    display: contents !important;
  }

  /* Stack everything */
  .intervals-article,
  .intervals-essay-inner {
    display: block;
    width: 100%;
    margin-bottom: 32px;
  }

  /* Images behave */
  .intervals-image img {
    width: 100%;
    height: auto;
    display: block;
  }

}
@media (max-width: 768px) {

  /* Centre the feed itself */
  .intervals-feed {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 16px;
    padding-right: 16px;
  }

  /* Make sure articles don’t carry stray margins */
  .intervals-article,
  .intervals-essay-inner {
    margin-left: auto;
    margin-right: auto;
  }

}
/* =========================================
   INTERVALS FEED — MOBILE WIDTH FIX
   ========================================= */

@media (max-width: 768px) {

  /* Clamp the entire feed to the viewport */
  .intervals-feed {
    width: 100%;
    max-width: 100vw;
    padding-left: 16px;
    padding-right: 16px;
    margin: 0 auto;
    box-sizing: border-box;
    overflow-x: hidden;
  }

  /* Ensure all children respect the viewport */
  .intervals-feed *,
  .intervals-feed *::before,
  .intervals-feed *::after {
    box-sizing: border-box;
    max-width: 100%;
  }

  /* Normalise article + essay blocks */
  .intervals-article,
  .intervals-essay-inner {
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Images must never exceed text width */
  .intervals-image,
  .intervals-image img {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
  }

}
/* === FIX WORDPRESS RESPONSIVE IMAGE OVERFLOW === */

@media (max-width: 768px) {

  .intervals-feed img {
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
  }

}
/* Blank Slate: release Intervals feed from entry-content width rules */
@media (max-width: 768px) {

  .entry-content > .intervals-feed,
  .entry-content > .intervals-feed > * {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .intervals-feed {
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  }

}
/* Blank Slate + Shortcode block: mobile width fix */
@media (max-width: 768px) {

  .entry-content > .wp-block-shortcode {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .wp-block-shortcode .intervals-feed {
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  }

}
/* === EMERGENCY FIX: RESTORE QUERY LOOP DEFAULTS === */

/* Re-enable layout + inheritance for Query Loops */
.wp-block-post-template,
.wp-block-post-template > li,
.wp-block-post {
  all: unset;
  display: block;
}

/* Restore basic list behaviour */
.wp-block-post-template {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Make sure images render */
.wp-block-post-featured-image,
.wp-block-post-featured-image img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Restore typography inheritance */
.wp-block-post-title,
.wp-block-post-excerpt,
.wp-block-post-author-name,
.wp-block-post-date {
  font: inherit;
  color: inherit;
}
/* ================================
   NUCLEAR FIX — FORCE POST TITLES
   ================================ */

.wp-block-post-title,
.wp-block-post-title *,
h2.wp-block-post-title {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;

  font-size: 32px !important;
  line-height: 1.15 !important;
  color: #000 !important;

  position: static !important;
  transform: none !important;
}
/* FORCE QUERY LOOP TITLES BACK ON PAGES */
.page .wp-block-post-title {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
/* ======================================
   ARTICLES — 3–1–3–1 RHYTHMIC GRID
   ====================================== */

/* 1. Turn the post list into a grid */
.wp-block-query .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 32px; /* row / column */
}

/* 2. Default article styling (the "3") */
.wp-block-query .wp-block-post {
  margin: 0;
  padding: 0;
  border: none;
}

/* Titles — compact, not shouty */
.wp-block-query .wp-block-post-title {
  font-size: 1.25rem;
  line-height: 1.15;
  margin-top: 10px;
}

/* Dates recede */
.wp-block-query .wp-block-post-date {
  font-size: 0.8rem;
  opacity: 0.6;
}

/* Images uniform */
.wp-block-query .wp-block-post-featured-image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  margin-bottom: 10px;
}

.wp-block-query .wp-block-post-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ======================================
   FEATURED ARTICLE (the "1")
   Every 4th post
   ====================================== */

.wp-block-query .wp-block-post:nth-child(4n) {
  grid-column: 1 / -1;
  margin-top: px;
  margin-bottom: px;
}

/* Bigger image for featured */
.wp-block-query .wp-block-post:nth-child(4n)
.wp-block-post-featured-image {
  margin-bottom: 16px;
}

/* Bigger title, but controlled */
.wp-block-query .wp-block-post:nth-child(4n)
.wp-block-post-title {
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.05;
}

/* ======================================
   MOBILE — STACK BUT KEEP RHYTHM
   ====================================== */

@media (max-width: 900px) {
  .wp-block-query .wp-block-post-template {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .wp-block-query .wp-block-post:nth-child(4n) {
    margin-top: 20px;
    margin-bottom: 20px;
  }
}
/* 3-column articles block */
.block--articles .articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.article-image {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
}

.article-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 1-column essay block */
.block--essay {
  max-width: 42rem;
  margin: 4rem auto;
}
.block--articles .articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.block--essay {
  max-width: 42rem;
  margin: 4rem auto;
}

.article-image img {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 0.75rem;
}
@media (max-width: 768px) {
  .block--articles .articles-grid {
    grid-template-columns: 1fr;
  }
}
.essay-image img {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 1.5rem;
}
.block--essay {
  max-width: 100%;
  margin: 0 0 4rem;
}

.block--essay .essay {
  max-width: 900px;
  margin: 0 auto;
}

.essay-image img {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 1.75rem;
}

.block--essay h2 {
  font-size: 1.75rem;
  font-weight: 500;
  margin-bottom: 0.75rem;
}
.block--articles {
  margin-bottom: 4rem;
}

.block--articles .articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.article-image img {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 0.5rem;
}

.article h3 {
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.35;
  margin: 0.25rem 0 0;
}
.archive-flow a {
  color: inherit;
  text-decoration: none;
}

.archive-flow a:hover {
  text-decoration: underline;
}
@media (max-width: 768px) {
  .block--articles .articles-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .block--essay h2 {
    font-size: 1.4rem;
  }
}
/* FORCE uniform thumbnails */
.article-image {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
}

.article-image img {
  width: 100%;
  height: 100%;        /* override height:auto */
  object-fit: cover;  /* crop instead of stretch */
  display: block;
}
/* Force article thumbnails to be 16:9, overriding theme */
.article-image {
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
}
.article-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 1. Reset the Grid: No more stretching boxes */
@media (min-width: 782px) {
    .aligned-query-grid .wp-block-post-template {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr);
        column-gap: 30px;
        align-items: start; /* Images stay lined up at the top */
    }

    /* 2. The Magic Trick: Force the separator to the same baseline */
    .aligned-query-grid .wp-block-post-template > li {
        display: grid !important;
        grid-template-rows: auto auto auto 1fr auto; /* Image, Date, Title, Excerpt, Separator */
        height: 100% !important;
    }
}

/* 3. Tighten the Title/Excerpt Gap (Single & Multi-column) */
.aligned-query-grid .wp-block-post-title {
    margin-top: 10px !important;
    margin-bottom: 0px !important; 
    padding-bottom: 0 !important;
}

.aligned-query-grid .wp-block-post-excerpt {
    margin-top: 5px !important;
    margin-bottom: 0 !important;
}

/* 4. Fix the Separator Gaps */
.aligned-query-grid .wp-block-separator {
    grid-row-start: 5; /* Pins it to the bottom row of the internal grid */
    align-self: end;
    margin-top: 20px !important; /* Gap above the line */
    margin-bottom: 20px !important; /* Tightens gap to the image below */
    width: 100% !important;
    border: none !important;
    border-bottom: 1px solid #000 !important;
    opacity: 1 !important;
}

/* 5. Remove extra margin from the excerpt to pull the line up */
.aligned-query-grid .wp-block-post-excerpt p {
    margin-bottom: 0 !important;
}
/* 5. Remove extra paragraph margins that add 'ghost' space */
.aligned-query-grid .wp-block-post-excerpt p {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
/* Optimized Mobile View (below 782px) */
@media (max-width: 781px) {
    /* 1. Collapse the container height so there's no ghost space */
    .aligned-query-grid .wp-block-post-template > li {
        display: flex !important;
        flex-direction: column !important;
        height: auto !important; /* Forces the box to shrink to the text size */
        margin-bottom: 30px !important; /* Space between different posts */
        padding-bottom: 0 !important;
    }

    /* 2. Standardize Image Sizes */
    .aligned-query-grid .wp-block-post-featured-image {
        margin-bottom: 15px !important;
    }

    .aligned-query-grid .wp-block-post-featured-image img {
        width: 100% !important;
        aspect-ratio: 16 / 9 !important; /* Forces all images to the same rectangular shape */
        object-fit: cover !important; /* Prevents squishing/stretching */
        height: auto !important;
    }

    /* 3. Tighten the Separator Gap */
    .aligned-query-grid .wp-block-separator {
        margin-top: 15px !important; /* Pulls the line closer to the text */
        margin-bottom: 25px !important; /* Space before the next article's image */
        width: 100% !important;
    }

    /* 4. Remove any "Flex Expanders" that create gaps on mobile */
    .aligned-query-grid .wp-block-post-excerpt {
        flex-grow: 0 !important; 
        margin-bottom: 0 !important;
    }
}
/* Final Tight Mobile Fix (781px and below) */
@media (max-width: 781px) {
    /* 1. Force the post container to collapse to its content only */
    .aligned-query-grid .wp-block-post-template > li {
        display: block !important; 
        height: auto !important; 
        margin-bottom: 20px !important; /* Total space before next article image */
        padding-bottom: 0 !important;
    }

    /* 2. Push Date up to the Image */
    .aligned-query-grid .wp-block-post-featured-image {
        margin-bottom: 5px !important; /* Minimal gap between image and date */
    }

    .aligned-query-grid .wp-block-post-date {
        margin-top: 0 !important;
        margin-bottom: 5px !important; /* Gap between date and title */
        display: block !important;
    }

    /* 3. Standardize Image Aspect Ratio */
    .aligned-query-grid .wp-block-post-featured-image img {
        width: 100% !important;
        aspect-ratio: 16 / 9 !important; 
        object-fit: cover !important;
    }

    /* 4. Tighten Separator and kill bottom ghost space */
    .aligned-query-grid .wp-block-separator {
        margin-top: 15px !important; 
        margin-bottom: 15px !important; /* Space between line and the next image */
        width: 100% !important;
    }

    /* 5. Ensure excerpt doesn't hold hidden space */
    .aligned-query-grid .wp-block-post-excerpt p {
        margin-bottom: 0 !important;
    }
}
/* Kill theme-injected featured image on single posts */
.single-post > .wp-site-blocks
  > figure.wp-block-post-featured-image {
  display: none !important;
}
.single-post .entry-header figure.wp-block-post-featured-image {
  display: none !important;
}
/* Center the whole header container */
.header-inner {
  position: relative !important; 
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* THE BUTTON: Made bigger with more padding and larger font */
.nav-button-pink {
  position: absolute !important;
  left: 0;
  bottom: 5px; /* Adjusting slightly to sit better on the line */
  
  display: inline-block !important;
  width: auto !important;
  background-color: #e84c8b !important;
  color: #fff !important;
  
  /* Increased size */
  padding: 10px 20px !important; 
  font-size: 13px !important;
  
  border-radius: 4px;
  font-weight: 700 !important;
  text-transform: uppercase;
  text-decoration: none !important;
  letter-spacing: 0.05em;
  line-height: 1;
  z-index: 10;
  transition: background-color 0.2s ease;
}

.nav-button-pink:hover {
  background-color: #d13d78 !important;
}

/* THE MENU: Tighter spacing */
.header-nav {
  display: flex !important;
  justify-content: center !important;
  
  /* Reduced gap to bring Home/Listings/Articles closer */
  gap: 20px; 
  
  margin-top: 25px;
  width: 100% !important;
}

.header-nav a {
  font-size: 1.75rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  color: #000;
  transition: opacity 0.2s ease;
}

.header-nav a:hover {
  opacity: 0.7;
}
/* Container Logic */
.header-inner {
  position: relative !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 0;
}

/* BIG SUBSCRIBE BUTTON */
.nav-button-pink {
  position: absolute !important;
  left: 0;
  bottom: 0; /* Aligns with the bottom nav row */
  background-color: #e84c8b !important;
  color: #fff !important;
  padding: 10px 20px !important; /* Made it bigger */
  font-size: 13px !important;
  border-radius: 4px;
  font-weight: 700 !important;
  text-transform: uppercase;
  text-decoration: none !important;
  letter-spacing: 0.05em;
  z-index: 10;
}

/* TIGHT CENTERED MENU */
.header-nav {
  display: flex !important;
  justify-content: center !important;
  gap: 20px; /* Smaller gaps as requested */
  margin-top: 25px;
}

.header-nav a {
  font-size: 1.75rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  color: #000;
}

/* HAMBURGER STYLING */
.hamburger {
  display: none; /* Hidden on desktop */
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 20px;
  background: transparent;
  border: none;
  cursor: pointer;
}

.hamburger span {
  width: 100%;
  height: 3px;
  background-color: #000;
}

/* MOBILE FIXES */
@media (max-width: 1024px) {
  .hamburger {
    display: flex;
    position: absolute;
    right: 0;
    top: 10px;
  }

  .header-nav {
    display: none !important; /* Hide menu until clicked */
    flex-direction: column;
    width: 100%;
    background: #fff;
    padding-top: 20px;
  }

  .header-nav.active {
    display: flex !important;
  }

  .nav-button-pink {
    position: static !important; /* Don't pin it on mobile */
    margin: 10px auto;
  }
}
/* ============================================================
   INTERVALS HEADER — FINAL CLEAN VERSION (Fixed Hamburger)
   ============================================================ */

/* 1. Main Container */
.intervals-header {
  background: #FDFDFB;
  padding: 20px 40px;
  max-width: 1200px;
  margin: 0 auto;
  position: relative !important;
}

.header-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 100%;
}

/* 2. Subscribe Button (Desktop) */
.nav-button-pink {
  position: absolute !important;
  left: 0;
  bottom: 0;
  background-color: #e84c8b !important;
  color: #fff !important;
  padding: 10px 20px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 4px;
  z-index: 10;
}

/* 3. Navigation Links (Desktop) */
.header-nav {
  display: flex !important;
  gap: 20px; /* Tighter gaps as requested */
  margin-top: 25px;
}

.header-nav a {
  font-size: 1.75rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  color: #000;
}

/* 4. Hamburger Styling */
.hamburger {
  display: none; /* Hidden on desktop */
  position: absolute;
  right: 0;
  top: 10px;
  width: 32px;
  height: 24px;
  background: none;
  border: none;
  cursor: pointer;
  flex-direction: column;
  justify-content: space-between;
  z-index: 99999;
  padding: 0;
}

.hamburger span {
  display: block;
  width: 100%;
  height: 3px;
  background: #000;
  transition: 0.3s ease;
}

/* 5. Mobile Adjustments (1024px and below) */
@media (max-width: 1024px) {
  .hamburger {
    display: flex; /* Force show on mobile */
  }

  /* Hide Nav by default on mobile */
  .header-nav {
    display: none !important; 
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin-top: 60px;
    gap: 15px;
  }

  /* Show Nav when active */
  .header-nav.active {
    display: flex !important;
  }

  /* Move Subscribe button on mobile so it doesn't overlap */
  .nav-button-pink {
    position: static !important;
    margin: 10px auto;
  }

  /* Animate Hamburger to X when active */
  .hamburger.active span:nth-child(1) { transform: translateY(10px) rotate(45deg); }
  .hamburger.active span:nth-child(2) { opacity: 0; }
  .hamburger.active span:nth-child(3) { transform: translateY(-10px) rotate(-45deg); }
}
/* ============================================================
   THE "VULGAR PASTE" EMERGENCY FIX
   ============================================================ */

/* 1. FORCE HAMBURGER VISIBILITY ON MOBILE */
@media (max-width: 1024px) {
  .hamburger {
    display: flex !important; /* Forces it to exist */
    flex-direction: column !important;
    justify-content: space-between !important;
    position: absolute !important;
    right: 20px !important;
    top: 20px !important;
    width: 30px !important;
    height: 20px !important;
    z-index: 999999 !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .hamburger span {
    display: block !important;
    width: 100% !important;
    height: 3px !important;
    background-color: #000 !important;
  }

  /* Ensure the nav hides/shows properly on mobile */
  .header-nav {
    display: none !important;
    flex-direction: column !important;
    width: 100% !important;
    margin-top: 80px !important;
  }

  .header-nav.active {
    display: flex !important;
  }

  /* Move subscribe button so it doesn't float over the logo on mobile */
  .nav-button-pink {
    position: static !important;
    margin: 20px auto !important;
    display: table !important; /* Centers it */
  }
}

/* 2. FIX DESKTOP BUTTON & TIGHT GAPS */
@media (min-width: 1025px) {
  /* Center the menu and tighten gaps */
  .header-nav {
    display: flex !important;
    justify-content: center !important;
    gap: 15px !important; /* SUPER TIGHT GAPS */
    margin-top: 30px !important;
    width: 100% !important;
  }

  /* Make Subscribe Button BIG */
  .nav-button-pink {
    position: absolute !important;
    left: 0 !important;
    bottom: 0 !important;
    background-color: #e84c8b !important;
    padding: 12px 24px !important; /* BIGGER */
    font-size: 14px !important;
    border-radius: 4px !important;
    color: #fff !important;
    display: inline-block !important;
    z-index: 100 !important;
  }

  /* Stop the branding from being pushed */
  .header-branding {
    width: 100% !important;
    text-align: center !important;
  }
}

/* 3. FINAL CATCH-ALL FOR THE PINK BLUR */
.nav-button-pink {
  width: auto !important;
  height: auto !important;
  text-decoration: none !important;
}
/* ============================================================
   THE VULGAR OVERRIDE — FORCING THE HEADER & HAMBURGER
   ============================================================ */

/* 1. MOBILE: FORCE HAMBURGER VISIBILITY */
@media (max-width: 1024px) {
    body .hamburger {
        display: flex !important;
        flex-direction: column !important;
        justify-content: space-between !important;
        position: absolute !important;
        top: 20px !important;
        right: 20px !important;
        width: 32px !important;
        height: 22px !important;
        z-index: 999999 !important;
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body .hamburger span {
        display: block !important;
        width: 100% !important;
        height: 3px !important;
        background-color: #000 !important;
        transition: 0.3s !important;
    }

    /* Force nav to hide on mobile until active */
    body .header-nav {
        display: none !important;
        flex-direction: column !important;
        align-items: center !important;
        width: 100% !important;
        margin-top: 60px !important;
        gap: 15px !important;
    }

    body .header-nav.active {
        display: flex !important;
    }

    /* Move Subscribe Button to a safe spot on mobile */
    body .nav-button-pink {
        position: static !important;
        margin: 20px auto !important;
        display: table !important;
    }
}

/* 2. DESKTOP: FORCE LAYOUT & TIGHT GAPS */
@media (min-width: 1025px) {
    /* Tighten Menu Gaps */
    body .header-nav {
        display: flex !important;
        justify-content: center !important;
        gap: 15px !important; /* Forces the tight spacing */
        margin-top: 0px !important;
    }

    /* Big Subscribe Button pinned Left */
    body .nav-button-pink {
        position: absolute !important;
        left: 40px !important;
        bottom: 15px !important;
        background-color: #e84c8b !important;
        color: #fff !important;
        padding: 12px 22px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        text-decoration: none !important;
        border-radius: 4px !important;
        z-index: 999 !important;
    }

    /* Ensure Branding doesn't wobble */
    body .header-branding {
        text-align: center !important;
        width: 100% !important;
    }
}

/* 3. HAMBURGER ANIMATION (STILL VULGAR) */
body .hamburger.active span:nth-child(1) { transform: translateY(9.5px) rotate(45deg) !important; }
body .hamburger.active span:nth-child(2) { opacity: 0 !important; }
body .hamburger.active span:nth-child(3) { transform: translateY(-9.5px) rotate(-45deg) !important; }
/* ============================================================
   VULGAR EMERGENCY: FORCE HAMBURGER VISIBILITY
   ============================================================ */

@media (max-width: 1024px) {
  /* 1. FORCE THE CONTAINER */
  .hamburger, 
  button.hamburger,
  .mobile-menu-toggle {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    top: 20px !important;
    right: 20px !important;
    width: 40px !important;
    height: 35px !important;
    z-index: 9999999 !important;
    flex-direction: column !important;
    justify-content: space-around !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    /* outline: 2px solid red !important;  <-- Remove comment if still invisible */
  }

  /* 2. MANUALLY DRAW THE BARS (In case they are white or 0px) */
  .hamburger span,
  .mobile-menu-toggle span {
    display: block !important;
    width: 30px !important;
    height: 3px !important;
    background-color: #000000 !important; /* HARD BLACK */
    margin: 0 auto !important;
    position: relative !important;
    z-index: 10000000 !important;
  }

  /* 3. PUSH CONTENT DOWN SO IT DOESNT OVERLAP */
  .intervals-header {
    padding-top: 80px !important;
    position: relative !important;
  }

  /* 4. HIDE THE NAV UNTIL CLICKED */
  .header-nav {
    display: none !important;
  }

  .header-nav.active {
    display: flex !important;
    background: #FDFDFB !important;
    position: absolute !important;
    top: 70px !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 99999 !important;
  }
}

/* ============================================================
   TIGHTEN DESKTOP GAPS (VULGAR OVERRIDE)
   ============================================================ */
@media (min-width: 1025px) {
  .header-nav {
    gap: 12px !important; /* Super tight as requested */
    justify-content: center !important;
  }
}
@media (max-width: 1024px) {
  /* Hide nav by default on mobile */
  .header-nav {
    display: none !important;
    flex-direction: column !important;
    width: 100% !important;
    text-align: center !important;
    background: #FDFDFB !important;
    padding: 20px 0 !important;
  }

  /* When checkbox is clicked, show the nav */
  #menu-switch:checked ~ .header-nav {
    display: flex !important;
  }

  /* Style the checkbox label to act as the hamburger button */
  .hamburger {
    display: flex !important;
    flex-direction: column;
    justify-content: space-around;
    width: 30px;
    height: 25px;
    cursor: pointer;
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 1000;
  }

  /* Draw the hamburger bars */
  .hamburger span {
    display: block;
    width: 100%;
    height: 3px;
    background: #000;
    transition: 0.3s;
  }

  /* Turn hamburger into an 'X' when menu is open */
  #menu-switch:checked + .hamburger span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  #menu-switch:checked + .hamburger span:nth-child(2) {
    opacity: 0;
  }
  #menu-switch:checked + .hamburger span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
}
/* ============================================================
   INTERVALS DUAL-POSITION SUBSCRIBE & MENU
   ============================================================ */

/* --- 1. DESKTOP RULES --- */
@media (min-width: 1025px) {
  .mobile-only-sub {
    display: none !important; /* Hide the one inside the nav */
  }
  
  .header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .desktop-only-sub {
    order: -1; /* Forces it to the far left */
  }

  .header-nav {
    display: flex !important;
    gap: 20px;
  }
}

/* --- 2. MOBILE RULES --- */
@media (max-width: 1024px) {
  .desktop-only-sub {
    display: none !important; /* Hide the far-left desktop button */
  }

  .header-nav {
    display: none !important; /* Hide entire menu by default */
    flex-direction: column !important;
    position: absolute !important;
    top: 100%;
    left: 0;
    width: 100%;
    background: #FDFDFB !important;
    padding: 30px 0 !important;
    text-align: center !important;
    gap: 20px !important;
    z-index: 9999;
    border-bottom: 2px solid #000;
  }

  /* Show nav when hamburger is checked */
  #menu-switch:checked ~ .header-nav {
    display: flex !important;
  }

  /* Style the button inside the mobile menu */
  .mobile-only-sub {
    display: inline-block !important;
    background-color: #e84c8b !important;
    color: #fff !important;
    padding: 12px 24px !important;
    width: fit-content !important;
    align-self: center;
    margin-top: 15px;
    text-decoration: none;
    font-weight: bold;
  }

  /* Hamburger Position */
  .hamburger {
    display: flex !important;
    flex-direction: column;
    justify-content: space-around;
    width: 30px;
    height: 22px;
    cursor: pointer;
    position: absolute;
    right: 20px;
    top: 25px;
  }

  .hamburger span {
    display: block;
    width: 100%;
    height: 3px;
    background: #000;
  }
}
/* --- 1. THE "TWO BUTTONS" FIX --- */
.mobile-only-sub { display: none !important; }

@media (max-width: 1024px) {
  /* Hide the desktop button entirely on mobile */
  .desktop-only-sub { 
    display: none !important; 
  }

  /* Show the mobile button only when menu is open */
  #menu-switch:checked ~ .header-nav .mobile-only-sub {
    display: inline-block !important;
  }
}

/* --- 2. THE "GAP" FIX --- */
@media (max-width: 1024px) {
  .header-nav {
    display: none !important;
    flex-direction: column !important;
    position: absolute !important;
    top: 70px !important; /* Adjust this value to close/open the gap */
    left: 0 !important;
    width: 100% !important;
    background: #FDFDFB !important;
    padding: 20px 0 !important; /* Tightens internal spacing */
    margin: 0 !important; /* Removes external gaps */
    z-index: 9999 !important;
  }

  #menu-switch:checked ~ .header-nav {
    display: flex !important;
  }
  
  /* Resetting any theme-level list margins */
  .header-nav a {
    margin: 10px 0 !important;
    padding: 0 !important;
  }
}

/* --- 3. DESKTOP POSITIONING --- */
@media (min-width: 1025px) {
  .header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .desktop-only-sub {
    order: -1; /* Far left */
    display: block !important;
  }
  .header-nav {
    display: flex !important;
  }
}
/* ============================================================
   INTERVALS — FINAL MOBILE MENU FIX
   ============================================================ */

/* 1. FORCE THE TWO BUTTONS TO BEHAVE */
.mobile-only-sub { display: none !important; }

@media (max-width: 1024px) {
  /* Kill the top button on mobile */
  .desktop-only-sub { 
    display: none !important; 
  }

  /* 2. FIX THE GAP & OVERLAP */
  .header-nav {
    display: none !important;
    flex-direction: column !important;
    position: fixed !important; /* Fixed is better for "full screen" menus */
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background: #FDFDFB !important;
    padding: 120px 0 40px !important; /* Large top padding to clear the logo */
    margin: 0 !important;
    z-index: 9998 !important; /* Just below the hamburger 'X' */
    justify-content: center !important;
    align-items: center !important;
    gap: 30px !important;
  }

  #menu-switch:checked ~ .header-nav {
    display: flex !important;
  }

  /* 3. STYLE THE MOBILE SUBSCRIBE BUTTON */
  .mobile-only-sub {
    display: inline-block !important;
    background-color: #e84c8b !important;
    color: #fff !important;
    padding: 12px 24px !important;
    border-radius: 4px;
    font-size: 1.1rem !important;
    text-decoration: none !important;
    font-weight: 700 !important;
    margin-top: 20px !important;
  }

  /* 4. TYPOGRAPHY CLEANUP */
  .header-nav a:not(.mobile-only-sub) {
    font-size: 2.5rem !important; /* Match your image's bold look */
    font-weight: 800 !important;
    text-transform: uppercase;
    color: #000 !important;
    text-decoration: none !important;
  }

  /* 5. HAMBURGER 'X' FIX */
  .hamburger {
    z-index: 9999 !important; /* Keep it above the menu */
  }
}

/* 6. DESKTOP RESET (Keeps Subscribe far left) */
@media (min-width: 1025px) {
  .header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
  }
  .desktop-only-sub {
    display: block !important;
    order: -1;
  }
  .header-nav {
    display: flex !important;
  }
}
/* ============================================================
   INTERVALS — MOBILE MENU & BUTTON REPAIR
   ============================================================ */

/* 1. HIDE MOBILE BUTTON ON DESKTOP */
.mobile-only-sub { display: none !important; }

@media (max-width: 1024px) {
  /* 2. KILL THE TOP BUTTON ON MOBILE (Sledgehammer) */
  .header-inner > .desktop-only-sub,
  .desktop-only-sub { 
    display: none !important; 
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: absolute !important;
    pointer-events: none !important;
  }

  /* 3. SHRINK THE MENU (Removed 100vh) */
  .header-nav {
    display: none !important;
    flex-direction: column !important;
    position: absolute !important; 
    top: 100% !important; /* Sits right under the branding */
    left: 0 !important;
    width: 100% !important;
    background: #FDFDFB !important;
    padding: 40px 0 !important; /* Tighter padding */
    margin: 0 !important;
    z-index: 9999 !important;
    border-bottom: 2px solid #000;
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
  }

  /* Show when toggled */
  #menu-switch:checked ~ .header-nav {
    display: flex !important;
  }

  /* 4. MOBILE LINKS TYPOGRAPHY */
  .header-nav a:not(.mobile-only-sub) {
    font-size: 1.8rem !important; /* Smaller than before but still bold */
    font-weight: 700 !important;
    text-transform: uppercase;
    color: #000 !important;
    margin: 10px 0 !important;
  }

  /* 5. MOBILE SUBSCRIBE BUTTON STYLE */
  .mobile-only-sub {
    display: inline-block !important;
    background-color: #e84c8b !important;
    color: #fff !important;
    padding: 12px 24px !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin-top: 15px !important;
    align-self: center !important;
  }
}

/* 6. DESKTOP RESET */
@media (min-width: 1025px) {
  .header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .desktop-only-sub {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    position: static !important;
    order: -1;
  }
  .header-nav {
    display: flex !important;
    position: static !important;
    padding: 0 !important;
  }
}
/* ============================================================
   INTERVALS — GAP KILLER & MENU SHRINK
   ============================================================ */

@media (max-width: 1024px) {
  /* 1. Reset the container so it doesn't push the menu down */
  .header-inner {
    margin-top: 0
			!important;
    padding-top: 10px !important;
    position: relative !important;
  }

  /* 2. Fix the Nav Position */
  .header-nav {
    display: none !important;
    flex-direction: column !important;
    position: absolute !important;
    top: 0 !important; /* Starts at the very top of header-inner */
    left: -20px !important; /* Adjust if your header has side padding */
    width: calc(100% + 40px) !important; /* Ensures it fills screen width */
    height: auto !important;
    max-height: 500px !important; /* Prevents it from being too big */
    background: #FDFDFB !important;
    padding: 100px 0 30px !important; /* Pushes links below logo height */
    z-index: 999 !important;
    border-bottom: 2px solid #000;
  }

  /* 3. Show when checked */
  #menu-switch:checked ~ .header-nav {
    display: flex !important;
  }

  /* 4. Link Spacing (Close the gap between words) */
  .header-nav a {
    margin: 5px 0 !important;
    line-height: 1.2 !important;
  }

  /* 5. Keep Hamburger on top */
  .hamburger {
    z-index: 1000 !important;
  }
  
  /* Kill the ghost button */
  .desktop-only-sub {
    display: none !important;
  }
}

/* DESKTOP FIX */
@media (min-width: 1025px) {
  .header-nav {
    display: flex !important;
    position: static !important;
    padding: 0 !important;
    max-height: none !important;
  }
  .desktop-only-sub {
    display: block !important;
    order: -1;
  }
}
/* ============================================================
   INTERVALS — FULL SCREEN NO-GAP MENU
   ============================================================ */

/* Hide mobile-specific items on desktop by default */
.mobile-only { display: none !important; }

@media (max-width: 1024px) {
  /* 1. Kill the desktop button and the branding tagline on mobile to save space */
  .desktop-only, .header-tagline { display: none !important; }

  /* 2. Position the Header Inner to be the anchor */
  .header-inner {
    position: static !important;
  }

  /* 3. The Menu Overlay - Edge to Edge */
  .header-nav {
    display: none !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    
    position: fixed !important; 
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important; /* Forces full width */
    height: 100vh !important; /* Forces full height */
    
    background: #FDFDFB !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 9998 !important; /* Sits under the 'X' */
  }

  /* Show when checkbox is clicked */
  #menu-switch:checked ~ .header-nav {
    display: flex !important;
  }

  /* 4. Menu Typography (Big, Bold, Black) */
  .header-nav a {
    font-size: 2.2rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: #000 !important;
    text-decoration: none !important;
    margin: 15px 0 !important;
    letter-spacing: -1px;
  }

  /* 5. Hamburger & 'X' logic */
  .hamburger {
    display: flex !important;
    flex-direction: column;
    justify-content: space-around;
    width: 30px;
    height: 20px;
    position: fixed !important; /* Keeps it in place when scrolling */
    top: 25px;
    right: 20px;
    z-index: 9999 !important; /* Above the menu */
    cursor: pointer;
  }

  .hamburger span {
    display: block;
    width: 100%;
    height: 3px;
    background: #000;
    transition: 0.3s;
  }

  /* Transform to X */
  #menu-switch:checked + .hamburger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  #menu-switch:checked + .hamburger span:nth-child(2) { opacity: 0; }
  #menu-switch:checked + .hamburger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* 6. Desktop Positioning Reset */
@media (min-width: 1025px) {
  .header-inner { display: flex; justify-content: space-between; align-items: center; }
  .desktop-only { display: block !important; order: -1; font-weight: 700; text-transform: uppercase; text-decoration: none; color: #000; }
  .header-nav { display: flex !important; gap: 20px; }
  .header-nav a { font-weight: 700; text-transform: uppercase; text-decoration: none; color: #000; }
}/* ============================================================
   INTERVALS — HAMBURGER VISIBILITY & GAP FIX
   ============================================================ */

@media (max-width: 1024px) {
  /* 1. Ensure the container doesn't hide the hamburger */
  .header-inner {
    position: relative !important;
    overflow: visible !important;
    display: block !important;
  }

  /* 2. The Hamburger Icon Styling */
  .hamburger {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    width: 30px !important;
    height: 20px !important;
    
    /* Position it top right */
    position: absolute !important; 
    top: 20px !important;
    right: 20px !important;
    z-index: 99999 !important; /* Force to the absolute front */
    cursor: pointer !important;
  }

  /* 3. The Three Lines (Crucial: Background must be black) */
  .hamburger span {
    display: block !important;
    width: 100% !important;
    height: 3px !important;
    background-color: #000000 !important;
    transition: all 0.3s ease-in-out !important;
  }

  /* 4. Full Screen Menu Fix */
  .header-nav {
    display: none !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    
    position: fixed !important; 
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    
    background: #FDFDFB !important;
    z-index: 99998 !important; /* One layer below hamburger */
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 5. Show when checked */
  #menu-switch:checked ~ .header-nav {
    display: flex !important;
  }

  /* 6. Typography */
  .header-nav a {
    font-size: 2rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: #000 !important;
    margin: 15px 0 !important;
    text-decoration: none !important;
  }

  /* 7. Turn into X when open */
  #menu-switch:checked + .hamburger span:nth-child(1) { transform: translateY(8.5px) rotate(45deg); }
  #menu-switch:checked + .hamburger span:nth-child(2) { opacity: 0; }
  #menu-switch:checked + .hamburger span:nth-child(3) { transform: translateY(-8.5px) rotate(-45deg); }

  /* Kill Desktop Items */
  .desktop-only, .header-tagline { display: none !important; }
  .mobile-only { display: block !important; }
}

/* DESKTOP RESET */
@media (min-width: 1025px) {
  .hamburger, #menu-switch, .mobile-only { display: none !important; }
  .header-nav { display: flex !important; gap: 20px; }
  .desktop-only { display: block !important; order: -1; font-weight: 700; text-transform: uppercase; text-decoration: none; color: #000; }
}
/* === BALLOT ACTIONS — ACTUAL FINAL FIX === */

.wp-block-group.ballot-actions > .wp-block-group__inner-container {
  display: flex !important;
  justify-content: flex-end !important;
  gap: 1rem !important;
}

/* Make sure buttons don’t stretch */
.wp-block-group.ballot-actions .wp-block-button {
  flex: 0 0 auto !important;
}
/* BALLOT ACTIONS — BULLETPROOF ALIGNMENT */
.ballot-actions-inner {
  display: flex;
  justify-content: flex-end;
  gap: 16px;
  margin-top: 35px !important;
  margin-bottom: 24px;
}
/* Fix disappearing header + image on this page */
.page-id-2293 .entry-header,
.page-id-2293 .entry-title,
.page-id-2293 .wp-block-post-title,
.page-id-2292 figure.wp-block-post-featured-image {
  display: block !important;
}
/* =========================================
   BLANK CANVAS PAGE 2293 — HARD RESTORE
   ========================================= */

/* 1. Restore visibility */
.page-id-2293 .entry-header,
.page-id-2293 .entry-title,
.page-id-2293 .wp-block-post-title,
.page-id-2293 figure.wp-block-post-featured-image {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* 2. Undo "all: unset" damage */
.page-id-2293 .wp-block-post-title {
  all: revert !important;
  display: block !important;
  font-size: 2.5rem !important;
  line-height: 1.1 !important;
  margin: 0 0 20px !important;
  text-align: center !important;
}

/* 3. Restore featured image layout */
.page-id-2293 figure.wp-block-post-featured-image {
  all: revert !important;
  display: block !important;
  margin: 0 auto 30px !important;
  max-width: 100% !important;
}

.page-id-2293 figure.wp-block-post-featured-image img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}
/* Make featured images behave like normal content */
.wp-block-post-featured-image {
  max-width: 900px;
  margin: 0 auto 32px;
}

.wp-block-post-featured-image img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
/* Normalise post date alignment */
.wp-block-post-date {
  float: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: left;
}
/* TEST PAGE ONLY — allow articles grid to escape block constraint */
.page-id-2467 #articles-section {
  max-width: none !important;
}

/* ============================
   TEST PAGE ONLY (page-id-2467)
   Let shortcode output go wide
   ============================ */

.page-id-2467 .entry-content,
.page-id-2467 .wp-block-post-content,
.page-id-2467 .is-layout-constrained {
  max-width: none !important;
  width: 100% !important;
}

/* kill the theme’s side padding just for this page */
.page-id-2467 .entry-content {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* now style the actual shortcode output */
.page-id-2467 .articles-layout {
  display: grid;
  grid-template-columns:
    minmax(260px, 1fr)
    640px
    minmax(260px, 1fr);
  gap: 32px;
  align-items: stretch;
  width: 100%;
  padding: 0 16px; /* breathing room */
  box-sizing: border-box;
}

/* basic column behaviour */
.page-id-2467 .articles-layout .featured-post { grid-column: 2; }
.page-id-2467 .articles-layout .left-post-1   { grid-column: 1; }
.page-id-2467 .articles-layout .right-post-1  { grid-column: 3; }
.page-id-2467 .articles-layout .left-post-2   { grid-column: 1; }
.page-id-2467 .articles-layout .right-post-2  { grid-column: 3; }

/* mobile: stack */
@media (max-width: 1024px) {
  .page-id-2467 .articles-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px !important;
    padding: 0 16px !important;
  }
}
@media (max-width: 600px) {
  .return-to-top {
    position: static !important;
    width: 100% !important;
    float: none !important;
    box-sizing: border-box;
  }
}
@media (max-width: 600px) {

  /* Force the row group to stack properly */
  .row-group,
  .row {
    flex-direction: column !important;
  }

  /* Make each custom HTML block full width */
  .row-group .html-block,
  .row .html-block {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Make links inside custom HTML render as one rectangle */
  .row-group .html-block a {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: center;
  }
}
@media (max-width: 600px) {
  .return-links-row {
    flex-direction: column !important;
  }

  .return-links-row .html-block,
  .return-links-row a {
    width: 100% !important;
    display: block !important;
    box-sizing: border-box;
    text-align: center;
  }
}
@media (max-width: 781px) {

  /* 1. Force WP row / group blocks to stack */
  .wp-block-group,
  .wp-block-group__inner-container,
  .wp-block-columns,
  .wp-block-column {
    flex-direction: column !important;
  }

  /* 2. Kill column widths that cause the notch */
  .wp-block-column {
    flex-basis: 100% !important;
    max-width: 100% !important;
  }

  /* 3. Make Custom HTML blocks full width */
  .wp-block-html,
  .wp-block-custom-html {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* 4. Force links inside Custom HTML to be solid rectangles */
  .wp-block-html a,
  .wp-block-custom-html a {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: center;
  }

  /* 5. Murder pseudo-elements (this fixes the L-shape) */
  .wp-block-html a::before,
  .wp-block-html a::after,
  .wp-block-custom-html a::before,
  .wp-block-custom-html a::after {
    content: none !important;
    display: none !important;
  }
}
@media (max-width: 781px) {
  .wp-block-group.is-nowrap {
    padding-right: 12px !important;
    gap: 8px !important;
  }

  .wp-block-group.is-nowrap .wp-block-button__link {
    padding: 6px 10px !important;
    font-size: 12px !important;
  }
}
.wp-block-post-date {
  margin-top: -12px !important;
  margin-bottom: 12px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center;
}
html,
body {
  overflow-x: hidden;
}
@media (max-width: 781px) {
  .wp-block-group.is-layout-constrained img {
    max-width: 720px;          /* SAME as your text */
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: block;
  }
}
@media (max-width: 781px) {
  .wp-block-group.is-layout-constrained {
    box-sizing: border-box;
  }
}
/* HERO IMAGE — MATCH TEXT WIDTH ON MOBILE (INSIDE GROUP) */
@media (max-width: 781px) {

  /* target ONLY images that are direct children of constrained groups */
  .wp-block-group.is-layout-constrained > img,
  .wp-block-group.is-layout-constrained figure > img {
    width: 100% !important;
    max-width: 720px !important;   /* same as text column */
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
  }
}
/* HERO IMAGE — MATCH ENTRY CONTENT WIDTH ON MOBILE */
@media (max-width: 781px) {

  /* remove the extra padding layer ONLY for the hero wrapper */
  .entry-content > .wp-block-group.is-layout-constrained {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* then constrain the image to the SAME width as text */
  #hero-random {
    display: block;
    width: 100%;
    max-width: var(--wp--style--global--content-size);
    margin-left: auto;
    margin-right: auto;
    height: auto;
  }
}
@media (max-width: 781px) {

  /* Make date behave like quiet metadata under the title */
  .wp-block-post-date {
    margin-top: 0.75em !important;   /* one clean line */
    margin-bottom: 1.25em !important;
    padding-left: 0 !important;
    padding-right: 0 !important;

    text-align: left !important;
    font-size: 0.9rem !important;
    line-height: 1.2 !important;
    opacity: 0.6;
  }

}
@media (max-width: 781px) {
  .single-post .wp-block-post-title {
    text-align: left !important;
  }

  .single-post .wp-block-post-date {
    text-align: left !important;
    margin-top: 0.75em !important;
    margin-bottom: 1.25em !important;
  }
}
/* Editorial alignment: title + date share a left edge */
.single-post .wp-block-post-title {
  text-align: left !important;
}

.single-post .wp-block-post-date {
  text-align: left !important;
  margin-top: 0.75em !important;
  margin-bottom: 1.25em !important;
}
/* Keep title + date aligned to the text column */
.single-post .wp-block-post-title,
.single-post .wp-block-post-date {
  text-align: left !important;
  max-width: var(--wp--style--global--content-size);
  margin-left: auto !important;
  margin-right: auto !important;
}
header .wp-block-separator,
.entry-header .wp-block-separator {
  margin-top: 0.5em !important;
  margin-bottom: 0.5em !important;
}
/* ===============================
   HEADER — DE-BLOAT
   =============================== */

/* 1. Reduce outer header padding */
.intervals-header {
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}

/* 2. Stop flex children from adding extra vertical space */
.header-inner {
  gap: 0 !important;
}

/* 3. Kill hidden image descender space */
.header-logo {
  display: block;
}

/* 4. Tighten nav spacing */
.header-nav {
  margin-top: 12px !important;
}
/* =====================================
   HEADER — REMOVE OG IMAGE SPACE
   ===================================== */

/* Kill the entire OG image block */
header .og-image {
  display: none !important;
}

/* Also neutralise the figure margins just in case */
header figure.wp-block-image {
  margin: 0 !important;
  padding: 0 !important;
}
/* =====================================
   HARD RESET — HEADER TEMPLATE PART
   ===================================== */

header.wp-block-template-part {
  margin: 0 !important;
  padding: 0 !important;
}

/* Kill default block spacing WordPress injects */
header.wp-block-template-part > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Explicitly control your header spacing instead */
header .header-inner {
  padding: 0px 0 !important;
}
/* Lift header contents up without changing layout */
header.wp-block-template-part .header-inner {
  padding-top: 20px;   /* was much larger */
  padding-bottom: 20px;
}

/* Mobile: lift it more aggressively */
@media (max-width: 781px) {
  header.wp-block-template-part .header-inner {
    padding-top: 0px;
    padding-bottom: 0px;
  }
}
@media (max-width: 781px) {

  /* Do NOT move the logo itself */
  .header-branding {
    transform: none !important;
  }

  /* Reduce header height structurally */
  header.wp-block-template-part {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  header.wp-block-template-part .header-inner {
    padding-top: 0px !important;
    padding-bottom: 0px !important;
  }
/* Remove WordPress global top spacing above header */
.wp-site-blocks {
  padding-top: 0 !important;
}

.wp-site-blocks > header:first-child {
  margin-top: 0 !important;
}
@media (max-width: 781px) {

  /* 1. Kill browser + theme body margins */
  body {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  /* 2. Kill site wrapper top spacing */
  .wp-site-blocks {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  /* 3. Ensure header is truly the first thing */
  .wp-site-blocks > header:first-child {
    margin-top: 0 !important;
  }

  /* 4. If admin bar exists, don’t double-offset */
  body.admin-bar header.wp-block-template-part {
    top: 0 !important;
  }
}
@media (max-width: 781px) {
  header.wp-block-template-part {
    min-height: unset !important;
  }
}
@media (max-width: 781px) {
  header.wp-block-template-part .og-image {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
  }
}
header .og-image {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
header.wp-block-template-part {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* 
@media (max-width: 781px) {

  
  body,
  .wp-site-blocks {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

 
  header.wp-block-template-part {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

 
  header.wp-block-template-part > figure,
  header .og-image {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
  }

  
  .header-inner {
    margin-top: -40px !important; 
    padding-top: 0 !important;
  }

  
  header .wp-block-separator {
    margin-top: 6px !important;
  }
}

@media (max-width: 781px) {


  body .wp-site-blocks > * {
    margin-block-start: 0 !important;
  }

 
  body .wp-site-blocks > header.wp-block-template-part {
    margin: 0 !important;
    padding: 0 !important;
  }

 
  body header.wp-block-template-part > * {
    margin-top: 0 !important;
  }

 
  body header .header-branding {
    margin: 0 !important;
  }

  body.admin-bar .wp-site-blocks {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }
}
@media (max-width: 781px) {
  header.wp-block-template-part + * {
    margin-top: 16px !important;
  }
}

.wp-block-post-excerpt__excerpt {
    font-size: 1rem !important; 
    font-weight: 400 !important;
    line-height: 1.5;
    margin-top: 0.5rem;
}

.my-list {
    column-count: 2;
    column-gap: 2rem;
}

/* Mobile */
@media (max-width: 768px) {
    .my-list {
        column-count: 1;
    }
}

@media (max-width: 780px) {

 
  .wp-block-columns {
    flex-direction: column !important;
    gap: 0 !important;
  }

  .wp-block-column {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .wp-block-column > ul.wp-block-list {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-left: 1.2em; 
  }

  .wp-block-column > * + * {
    margin-top: 0 !important;
  }
}
/* =====================================
   MOBILE HERO IMAGE TOP BREATHING ROOM
   ===================================== */
@media (max-width: 781px) {

  /* Target ONLY the first image after the header */
  header.wp-block-template-part + main
  figure.wp-block-image,
  header.wp-block-template-part + main
  figure.wp-block-post-featured-image {
    margin-top: 16px !important;
  }
}
/* =====================================
   MOBILE — INTERVALS SHORTCODE TOP SPACING
   ===================================== */
@media (max-width: 781px) {

  #articles-section > :first-child {
    margin-top: 16px !important;
  }

}
/* =========================================
   FEATURED ARTICLE — MOBILE ONLY LINK
   ========================================= */

/* DESKTOP & TABLET: force-hide the link */
@media (min-width: 1025px) {
  #articles-section .more-articles-link {
    display: none !important;
  }
}

/* MOBILE */
@media (max-width: 1024px) {

  /* Show only the first article */
  #articles-section article:not(:first-of-type) {
    display: none !important;
  }

  /* Show the link */
  #articles-section .more-articles-link {
    display: block !important;
    margin: 1.2em auto 0;
    text-align: center;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #000;
    border-bottom: 2px solid #000;
    width: fit-content;
    padding-bottom: 4px;
  }
}
/* =========================================
   VULGAR OVERRIDE — BARBICAN PAGE ONLY
   Page ID: 2810
   DEBUG HAMMER
   ========================================= */

/* 1. Nuke inherited chaos */
.page-id-2810 * {
  all: revert !important;
  box-sizing: border-box !important;
}

/* 2. Restore sane base */
.page-id-2810 {
  font-family: "Neue Haas Grotesk Display Pro", Helvetica, Arial, sans-serif !important;
  background: #FDFDFB !important;
  color: #000 !important;
}

/* 3. Kill all theme width clamps */
.page-id-2810 main,
.page-id-2810 .entry-content,
.page-id-2810 .wp-site-blocks,
.page-id-2810 .wp-block-group,
.page-id-2810 .wp-block-post-content {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 4. FORCE listings container to editorial width */
.page-id-2810 #cinema-listings {
  max-width: 1080px !important;
  margin: 0 auto !important;
  padding: 0 16px !important;
}

/* 5. FORCE screening rows */
.page-id-2810 .screening {
  display: block !important;
  padding: 14px 0 !important;
  border-bottom: 1px solid #ddd !important;
}

/* 6. FORCE editorial link style */
.page-id-2810 #cinema-listings .screening > a,
.page-id-2810 #cinema-listings .screening > a:visited {

  color: #000 !important;
  text-decoration: underline !important;
  font-weight: 500 !important;
}

/* 7. FORCE metadata */
.page-id-2810 .screening .details,
.page-id-2810 .screening .time {
  font-size: 1rem !important;
  line-height: 1.4 !important;
  font-style: italic !important;
}

/* 8. Mobile sanity */
@media (max-width: 768px) {
  .page-id-2810 #cinema-listings {
    padding: 0 12px !important;
  }
}
/* ======================================
   BARBICAN LISTINGS — FORCE FRONT PAGE CONTEXT
   Page ID: 2810
   ====================================== */

.page-id-2810 .intervals-feed {
  max-width: 1200px;
  margin: 0 auto;
  font-family: "Neue Haas Grotesk Display Pro", Helvetica, Arial, sans-serif;
}

.page-id-2810 .intervals-row {
  display: flex;
  justify-content: center;
}

.page-id-2810 #cinema-listings {
  width: 100%;
}

/* Title behaviour = front page */
.page-id-2810 #cinema-listings .screening > a {

  font-size: 1.5rem !important;
  font-weight: 500 !important;
  line-height: 1.15 !important;
  text-decoration: underline;
}

/* Pink meta exactly like articles */
.page-id-2810 #cinema-listings .notes-tag,
.page-id-2810 #cinema-listings .details {
  color: #EA4A98;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-style: normal;
}

/* Kill any theme width clamps */
.page-id-2810 main,
.page-id-2810 .entry-content,
.page-id-2810 .wp-block-post-content {
  max-width: none !important;
}
/* =========================================
   LISTINGS — FORCE 3-COLUMN GRID (AUTHORITATIVE)
   Page ID: 2810
   ========================================= */

.page-id-2810 .screenings {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  column-gap: 14px !important;
  row-gap: 1px !important;
}

.page-id-2810 .screening {
  flex: 0 0 calc((100% - 28px) / 3) !important;
  max-width: calc((100% - 28px) / 3) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}
/* =====================================================
   LISTINGS — HARD ISOLATION (PAGE 2810)
   ===================================================== */

.page-id-2810 #cinema-listings * {
  box-sizing: border-box;
}


/* Re-apply your intended font */
.page-id-2810 #cinema-listings {
  font-family: 'Neue Haas Grotesk Display Pro', Helvetica, Arial, sans-serif;
}

/* CINEMA BLOCK */
.page-id-2810 .cinema {
  margin-bottom: 32px;
}

/* FORCE 3-COLUMN GRID */
.page-id-2810 .screenings {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 14px !important;
  justify-content: center !important;
}

/* CARD WIDTH — DESKTOP */
.page-id-2810 .screening {
  flex: 0 0 calc((100% - 28px) / 3) !important;
  max-width: calc((100% - 28px) / 3) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

/* TABLET — 2 COLUMNS */
@media (max-width: 1024px) {
  .page-id-2810 .screening {
    flex: 0 0 calc((100% - 14px) / 2) !important;
    max-width: calc((100% - 14px) / 2) !important;
  }
}

/* MOBILE — 1 COLUMN */
@media (max-width: 768px) {
  .page-id-2810 .screening {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}
.wp-block-post-content #cinema-listings {
  font-family: 'Neue Haas Grotesk Display Pro', Helvetica, Arial, sans-serif;
}

.wp-block-post-content #cinema-listings .screening {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.wp-block-post-content #cinema-listings .details {
  font-size: 1rem;
  line-height: 1.35;
}

.wp-block-post-content #cinema-listings .time {
  font-weight: 700;
  margin-top: 6px;
}
/* LISTINGS — escape prose reset */
#cinema-listings p,
#cinema-listings li {
  font-size: initial !important;
  font-weight: initial !important;
  line-height: initial !important;
}
/* ======================================
   LISTINGS — KILL WP ROOT PADDING CLAMP
   ====================================== */

/* Only affect pages with listings */
body:has(#cinema-listings) {
  --wp--style--root--padding-left: 0px !important;
  --wp--style--root--padding-right: 0px !important;
}

/* Some themes also apply padding directly here */
body:has(#cinema-listings) .wp-site-blocks,
body:has(#cinema-listings) main {
  padding-left: 0 !important;
  padding-right: 0 !important;
}


/* Kill WP content clamp ABOVE listings */
.is-layout-constrained:has(#listings-wrapper) > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Ensure listings wrapper spans page */
#listings-wrapper {
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Re-centre actual listings column */
#cinema-listings {
  max-width: 1080px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* ======================================
   FORCE LISTINGS WIDTH — NO GUESSING
   ====================================== */

/* Break ALL width constraints on pages that contain listings */
body:has(#cinema-listings) main *,
body:has(#cinema-listings) .wp-site-blocks * {
  max-width: none !important;
}

/* Now explicitly control the real column */
body:has(#cinema-listings) #cinema-listings {
  max-width: 1080px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* --- HEADER LOGO MOBILE FIX --- */
@media (max-width: 1024px) {
    /* Target the logo specifically to stop it from stretching */
    .intervals-header .header-logo, 
    .intervals-header img.header-logo {
        width: 220px !important;    /* Forces a specific width */
        max-width: 70% !important;  /* Ensures it never exceeds the screen */
        height: auto !important;    /* Keeps proportions correct */
        margin: 0 auto !important;
        display: block !important;
    }

    /* Ensure the branding container doesn't force expansion */
    .header-branding {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
    }
}
/* --- HEADER LOGO MOBILE FIX --- */
@media (max-width: 1024px) {
    /* Target the logo specifically to stop it from stretching */
    .intervals-header .header-logo, 
    .intervals-header img.header-logo {
        width: 220px !important;    /* Forces a specific width */
        max-width: 70% !important;  /* Ensures it never exceeds the screen */
        height: auto !important;    /* Keeps proportions correct */
        margin: 0 auto !important;
        display: block !important;
    }

    /* Ensure the branding container doesn't force expansion */
    .header-branding {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
    }
}
/* --- THE NUCLEAR LOGO FIX --- */

/* 1. Reset the container to stop it from acting like a grid item */
.intervals-header, 
.header-inner, 
.header-branding {
    display: block !important;
    max-width: 100% !important;
    width: auto !important;
    grid-column: auto !important;
    grid-template-columns: none !important;
}

/* 2. Lock the logo image size and remove any grid/flex stretching */
.intervals-header .header-logo,
.intervals-header img[src*="intervals_logo"] {
    width: 220px !important;    /* Adjust this number to your preferred logo width */
    max-width: 220px !important; 
    height: auto !important;
    margin: 0 auto !important;
    display: block !important;
    /* This kills any attempt by a parent grid to stretch the image */
    justify-self: center !important;
    align-self: center !important;
    flex: none !important;
}

/* 3. Re-position the hamburger so it doesn't overlap the now-centered logo */
@media (max-width: 1024px) {
    .hamburger {
        position: absolute !important;
        top: 20px !important;
        right: 20px !important;
    }
}
/* ======================================================
   THE DEFINITIVE HEADER LOGO FIX
   Prevents logo from stretching on mobile
   ====================================================== */

/* Target the logo specifically and override the 100% width grid rules */
.intervals-header .header-logo,
.intervals-header .header-inner img.header-logo,
img[src*="intervals_logo_transparent"] {
    width: 240px !important;    /* Forces the logo back to normal size */
    max-width: 240px !important; 
    height: auto !important;
    margin: 0 auto !important;
    display: block !important;
    content: unset !important;  /* Stops the logo from trying to 'fill' space */
}

/* Ensure the branding container isn't behaving like a full-width grid row */
@media (max-width: 1024px) {
    .header-branding, 
    .header-inner {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        width: 100% !important;
    }

    /* Keep the tagline from becoming wider than the logo if desired */
    .header-tagline {
        max-width: 280px;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}
/* =========================================
   LISTINGS — PAGE / POST NORMALISATION
   ========================================= */

/* Neutralise post-specific wrappers */
.single-post .entry-content {
  max-width: none;
  padding: 0;
  margin: 0;
}

/* Ensure listings wrapper behaves identically */
.single-post #listings-wrapper {
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Inherit page typography rules */
.single-post #listings-wrapper,
.single-post #listings-wrapper * {
  font-size: inherit;
  line-height: inherit;
}

/* Prevent theme prose styles from interfering */
.single-post #listings-wrapper p,
.single-post #listings-wrapper ul,
.single-post #listings-wrapper li {
  margin: 0;
}
#cinema-listings li {
  font-weight: 500 !important;
  font-size: 1.15rem !important;
  -webkit-font-smoothing: antialiased;
  line-height: 1.6 !important;
}
/* Stop Gutenberg from touching listings typography */
.entry-content #cinema-listings,
.entry-content #cinema-listings li,
.entry-content #cinema-listings p {
  font-size: inherit !important;
  line-height: inherit !important;
}
/* Programme films — canonical style */
#cinema-listings .programme-films {
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
}

#cinema-listings .programme-films .pf-title {
  font-family: 'Neue Haas Grotesk Display Pro', Helvetica, Arial, sans-serif;
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 1.25;
  text-align: center;
}

#cinema-listings .programme-films .pf-meta {
  font-size: 0.85rem;
  font-weight: 400;
  color: #666;
  text-align: center;
}
/* FORCE correct font face for programme films */
#cinema-listings .programme-films,
#cinema-listings .programme-films * {
  font-family: "Neue Haas Grotesk Display Pro" !important;
  font-weight: 500 !important;
  font-synthesis: none !important;
}
/* Kill WordPress font interference completely */
.entry-content #cinema-listings * {
  font-synthesis: none !important;
}
/* ================================
   CALENDAR ARROWS
   ================================ */

.calendar-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0 14px;
  cursor: pointer;
}

.calendar-arrow svg {
  width: 12px;
  height: 12px;
  fill: #000;
  transition: opacity 0.15s ease;
}

.calendar-arrow:hover svg {
  opacity: 0.5;
}
/* Constrain page titles inside full-width template groups */
.wp-block-group.alignfull .wp-block-post-title {
  max-width: var(--wp--style--global--content-size) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--wp--style--global--padding-left);
  padding-right: var(--wp--style--global--padding-right);
}
/* Prevent full-width groups from forcing title edge alignment */
.wp-block-group.alignfull {
  display: block;
}

.wp-block-group.alignfull > .wp-block-post-title {
  width: 100% !important;
}
/* === FIX TEMPLATE PAGE TITLE ALIGNMENT === */

/* 1. Restore page title to normal flow */
.page .wp-block-post-title {
  display: block !important;
  width: 100% !important;
  max-width: var(--wp--style--global--content-size) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--wp--style--global--padding-left, 16px) !important;
  padding-right: var(--wp--style--global--padding-right, 16px) !important;
  text-align: left !important;
}

/* 2. Neutralise full-width group interference */
.page .wp-block-group.alignfull > .wp-block-post-title {
  justify-self: center !important;
  position: relative !important;
  left: auto !important;
  transform: none !important;
}
/* Fix page / archive template titles hugging the left */
.wp-block-group.is-layout-constrained > .wp-block-post-title {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: var(--wp--style--global--content-size);
  width: 100%;
}
/* Fix page template post title hugging the left */
.wp-block-post-title {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: var(--wp--style--global--content-size);
  width: 100%;
}
/* Fix page template post title hugging the left */
.wp-block-post-title {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: var(--wp--style--global--content-size);
  width: 100%;
}
/* Brutal Blank Canvas post-title reset */
.wp-block-post-title {
  position: relative !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: max-content !important;
  max-width: 100% !important;
}
/* Page intro blurb */
.page-intro {
  max-width: 640px;
  margin: 16px auto 28px;
  font-size: 1rem;
  line-height: 1.45;
  color: #444;
  text-align: center;
}

/* Mobile tightening */
@media (max-width: 768px) {
  .page-intro {
    font-size: 0.95rem;
    line-height: 1.4;
    padding: 0 16px;
  }
}
.notes-tag a {
  color: inherit;
  text-decoration: none;
}
.page-id-2810 #cinema-listings .screening > a {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.15;
  color: #000;
  text-decoration: underline;
}
.page-id-2810 #cinema-listings .notes-tag {
  font-size: 0.75rem;
  font-weight: 600;
  color: #EA4A98;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.page-id-2810 #cinema-listings .notes-tag a {
  color: inherit;
  text-decoration: none;
}
.page-id-2810 #cinema-listings a:not(.screening > a) {
  font-size: inherit;
  font-weight: inherit;
  text-decoration: none;
}
.notes-tag a {
  font-size: inherit !important;
  font-weight: inherit;
  color: inherit;
  text-decoration: none;
}
#cinema-listings .notes-tag a:hover {
  text-decoration: underline;
  text-decoration-color: currentColor; /* stays pink */
  text-underline-offset: 0.15em;
}
.wp-block-site-tagline {
  display: none;
}
/* Prevent ugly word splitting in page titles */
.entry-title,
.wp-block-post-title,
.page-title,
h1 {
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}
	
/* =====================================
   MOBILE HAMBURGER ALIGNMENT (FINAL)
   ===================================== */

/* Anchor positioning to the element that actually CONTAINS the hamburger */
.header-inner {
  position: relative;
}

@media (max-width: 1024px) {
  .hamburger {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(calc(-50% + 26px)) !important;
    right: 16px !important;
    z-index: 1000000 !important;
  }
}
