/*
Theme Name: Living Unlimited (Kadence Child)
Theme URI: https://livingunlimited.ca/
Description: Child theme of the free Kadence theme for livingunlimited.ca. Implements the approved July 2026 premium redesign, "The Unlimited Edition": dark Teal Ink hero and bands, Playfair Display and Lora hosted locally, editorial card layouts, labelled monetisation zones with reserved heights, and WCAG 2.2 AA colour pairs throughout. Coral is decorative only and never carries text.
Author: Living Unlimited
Template: kadence
Version: 1.0.0
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lu-unlimited
*/

/* ============================================================
   LIVING UNLIMITED: The Unlimited Edition (July 2026 redesign)
   Palette (verified WCAG 2.2 AA pairs; see contrast report):
     cream      #F5F0E8  backgrounds
     teal       #2C7A7B  decorative and large graphics only on cream
     teal deep  #1B6B6B  links, buttons, chips (5.5:1 on cream)
     teal ink   #0E3536  dark bands (cream on ink 11.7:1)
     coral      #E8654A  DECORATIVE ONLY, never text, never icons
     text ink   #20302F  body text on cream
     meta       #55625F  small meta text (4.5:1+ on cream and white)
   Fonts: Playfair Display (headings), Lora (body), hosted in
   assets/fonts, latin subset variable woff2, no CDN calls.
   ============================================================ */

/* ---------- Local fonts (SIL OFL 1.1, licence files in assets/fonts) */
@font-face {
  font-family: 'Playfair Display';
  src: url('assets/fonts/playfair-display-latin-var.woff2') format('woff2');
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  src: url('assets/fonts/playfair-display-latin-italic-var.woff2') format('woff2');
  font-weight: 400 900;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lora';
  src: url('assets/fonts/lora-latin-var.woff2') format('woff2');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lora';
  src: url('assets/fonts/lora-latin-italic-var.woff2') format('woff2');
  font-weight: 400 700;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Design tokens */
:root {
  --lu-cream: #F5F0E8;
  --lu-teal: #2C7A7B;
  --lu-teal-deep: #1B6B6B;
  --lu-teal-hover: #145454;
  --lu-ink: #0E3536;
  --lu-coral: #E8654A; /* decorative only, never text */
  --lu-text: #20302F;
  --lu-meta: #55625F;
  --lu-card: #FFFFFF;
  --lu-border: #E2D9C8;
  --lu-tint: #FBF8F1;
  --lu-tint-deep: #EDE6D8;
  --lu-zone-text: #4C443A;
  --lu-radius: 10px;
  --lu-shadow: 0 2px 10px rgba(14, 53, 54, 0.08);
  --lu-shadow-lift: 0 14px 30px rgba(14, 53, 54, 0.16);
  --lu-font-display: 'Playfair Display', Georgia, serif;
  --lu-font-body: 'Lora', Georgia, serif;
  --lu-font-ui: Verdana, Geneva, sans-serif;
}

/* ---------- Base */
body {
  background-color: var(--lu-cream);
}
.entry-content a:not(.wp-block-button__link):not(.uu-btn),
.single .entry-content a:not(.wp-block-button__link) {
  text-decoration: underline;
}
::selection {
  background: var(--lu-teal-deep);
  color: var(--lu-cream);
}

/* Visible focus everywhere. Never remove outlines. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--lu-teal-deep);
  outline-offset: 2px;
  border-radius: 2px;
}
.lu-dark a:focus-visible,
.lu-dark button:focus-visible,
.lu-dark input:focus-visible,
.site-footer a:focus-visible,
.site-footer button:focus-visible {
  outline-color: var(--lu-cream);
}

/* Reduced motion: kill every transition and transform animation. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
  .uu-reveal.pending {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Decorative scroll reveal: hidden state is applied only by JS, so all
   content is fully visible with JavaScript off. */
.uu-reveal {
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.uu-reveal.pending {
  opacity: 0;
  transform: translateY(12px);
}

/* Screen-reader-only helper */
.uu-sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ---------- Header */
.site-header {
  border-bottom: 1px solid var(--lu-border);
}
.site-branding .site-title {
  font-family: var(--lu-font-display);
  color: var(--lu-ink);
}
.main-navigation .primary-menu-container > ul > li.menu-item > a,
.main-navigation .primary-menu-container > ul > li > a {
  font-family: var(--lu-font-ui);
  font-size: 0.82rem;
  color: var(--lu-ink);
  border-bottom: 3px solid transparent;
  padding-top: 10px;
  padding-bottom: 10px;
}
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
.main-navigation .primary-menu-container > ul > li > a:hover {
  border-bottom-color: var(--lu-coral); /* decorative accent, text stays ink */
  color: var(--lu-ink);
}
.header-button,
.mobile-header-button {
  background: var(--lu-teal-deep);
  color: var(--lu-cream);
  border-radius: 6px;
  font-family: var(--lu-font-ui);
  font-weight: 700;
  min-height: 44px;
  border: 2px solid transparent;
}
.header-button:hover,
.mobile-header-button:hover {
  background: var(--lu-teal-hover);
  color: var(--lu-cream);
}

/* ---------- Shared band scaffolding (patterns) */
.uu-wrap {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}
.uu-band {
  padding-top: 72px;
  padding-bottom: 72px;
}
.uu-kicker {
  font-family: var(--lu-font-ui);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 700;
}
.uu-rule {
  width: 64px;
  height: 6px;
  background: var(--lu-coral); /* decorative rule */
  border-radius: 3px;
  margin: 0 0 14px;
}
.uu-sec-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 36px;
}
.uu-sec-head h2 {
  font-size: 2.4rem;
  line-height: 1.1;
  margin: 0;
}
.uu-sec-head .uu-more {
  font-family: var(--lu-font-ui);
  font-size: 0.85rem;
  white-space: nowrap;
  color: var(--lu-teal-deep);
  text-decoration: underline;
}

/* Buttons used inside patterns */
.uu-btns .wp-block-button__link {
  font-family: var(--lu-font-ui);
  font-weight: 700;
  font-size: 0.9rem;
  padding: 14px 26px;
  border-radius: 6px;
  min-height: 44px;
  border: 2px solid transparent;
  text-decoration: none;
}
.uu-btn-cream .wp-block-button__link {
  background: var(--lu-cream);
  color: var(--lu-ink);
}
.uu-btn-cream .wp-block-button__link:hover {
  background: #FFFFFF;
  color: var(--lu-ink);
}
.uu-btn-teal .wp-block-button__link {
  background: var(--lu-teal-deep);
  color: var(--lu-cream);
}
.uu-btn-teal .wp-block-button__link:hover {
  background: var(--lu-teal-hover);
  color: var(--lu-cream);
}
.uu-btn-ghost-dark .wp-block-button__link {
  background: transparent;
  border-color: var(--lu-cream);
  color: var(--lu-cream);
}
.uu-btn-ghost-dark .wp-block-button__link:hover {
  background: rgba(245, 240, 232, 0.12);
  color: var(--lu-cream);
}

/* ---------- Hero */
.lu-hero {
  background: var(--lu-ink);
  color: var(--lu-cream);
  position: relative;
  overflow: hidden;
  margin: 0;
}
.lu-hero .uu-wrap {
  position: relative;
  z-index: 1;
}
.lu-hero-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 48px;
  padding-top: 72px;
  padding-bottom: 110px;
  align-items: end;
}
.lu-hero h1 {
  font-family: var(--lu-font-display);
  font-size: clamp(3rem, 7vw, 5.4rem);
  line-height: 1.03;
  letter-spacing: -0.01em;
  color: var(--lu-cream);
  margin: 0 0 22px;
}
.lu-hero .lu-hero-sub {
  font-size: 1.2rem;
  line-height: 1.6;
  max-width: 34em;
  color: var(--lu-cream);
  opacity: 0.94;
  margin: 0;
}
.lu-hero .uu-btns {
  margin-top: 34px;
  gap: 16px;
}
.lu-hero-tris {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.lu-hero-tris svg {
  position: absolute;
  right: 0;
  bottom: 0;
  height: 100%;
  width: auto;
  min-width: 40%;
}

/* Featured story card overlapping the hero edge */
.lu-feat-card {
  background: var(--lu-card);
  color: var(--lu-text);
  border-radius: var(--lu-radius);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
  overflow: hidden;
  transform: translateY(56px);
}
.lu-feat-card .wp-block-post-featured-image,
.lu-feat-card .wp-block-post-featured-image img {
  border-radius: var(--lu-radius) var(--lu-radius) 0 0;
  display: block;
  width: 100%;
}
.lu-feat-card .wp-block-post-featured-image img {
  aspect-ratio: 16 / 8;
  object-fit: cover;
}
.lu-feat-card .lu-card-pad {
  padding: 22px 24px 26px;
}
.lu-feat-card h2,
.lu-feat-card .wp-block-post-title {
  font-size: 1.45rem;
  line-height: 1.25;
  margin: 12px 0 8px;
}
.lu-feat-card .wp-block-post-title a {
  color: var(--lu-ink);
  text-decoration: none;
}
.lu-feat-card .wp-block-post-title a:hover {
  text-decoration: underline;
  text-decoration-color: var(--lu-coral);
  text-decoration-thickness: 3px;
}

/* Category chips (post terms) */
.uu-chip,
.uu-chip a {
  display: inline-block;
  font-family: var(--lu-font-ui);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--lu-cream) !important;
  background: var(--lu-teal-deep);
  padding: 5px 10px;
  border-radius: 4px;
  text-decoration: none;
}
.uu-chip {
  background: none;
  padding: 0;
}
.uu-chip .wp-block-post-terms__separator {
  display: none;
}
.uu-chip a + a {
  display: none; /* one chip per card: show the primary category only */
}

/* Meta line */
.uu-meta,
.uu-meta a {
  font-family: var(--lu-font-ui);
  font-size: 0.75rem;
  color: var(--lu-meta);
  text-decoration: none;
}

/* ---------- Topic strip */
.lu-strip {
  background: var(--lu-teal-deep);
  color: var(--lu-cream);
  padding: 14px 0;
  margin: 0;
}
.lu-strip ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 34px;
  justify-content: center;
  margin: 0;
  padding: 0;
}
.lu-strip a {
  color: var(--lu-cream);
  text-decoration: none;
  font-family: var(--lu-font-ui);
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 12px 2px;
  display: inline-block;
}
.lu-strip a:hover,
.lu-strip a:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

/* ---------- Monetisation zones (labels, reserved heights, no layout shift) */
.uu-zone {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 6px;
  background: var(--lu-tint-deep);
  border: 2px dashed #B8AC94;
  border-radius: 8px;
  color: var(--lu-zone-text);
  font-family: var(--lu-font-ui);
  text-align: center;
  overflow: hidden;
}
.uu-zone .uu-zone-label {
  font-size: 0.68rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 700;
}
.uu-zone-billboard {
  min-height: 250px;
  max-width: 970px;
  margin: 0 auto;
}
.uu-zone-leaderboard {
  min-height: 90px;
  max-width: 728px;
  margin: 28px auto;
}
.uu-zone-inbody {
  min-height: 250px;
  max-width: 300px;
  margin: 34px auto;
}
.uu-zone-halfpage {
  min-height: 600px;
  max-width: 300px;
}
.uu-zone-footer {
  min-height: 90px;
  max-width: 728px;
  margin: 0 auto 48px;
}
/* House promo fill (used when a slot is unsold) */
.uu-house {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px;
  width: 100%;
}
.uu-house p {
  margin: 0;
  font-family: var(--lu-font-body);
  font-size: 1rem;
  color: var(--lu-text);
  max-width: 34em;
}
.uu-house .uu-house-title {
  font-family: var(--lu-font-display);
  font-size: 1.25rem;
  color: var(--lu-ink);
}
.uu-house a.uu-btn {
  display: inline-block;
  font-family: var(--lu-font-ui);
  font-weight: 700;
  font-size: 0.85rem;
  text-decoration: none;
  padding: 12px 22px;
  border-radius: 6px;
  min-height: 44px;
  background: var(--lu-teal-deep);
  color: var(--lu-cream);
}
.uu-house a.uu-btn:hover {
  background: var(--lu-teal-hover);
}
.uu-zone-row .uu-house {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
}

/* ---------- This Week mosaic */
.lu-mosaic {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  margin: 0;
  padding: 0;
}
.lu-mosaic > li {
  margin: 0;
  list-style: none;
  display: flex;
}
.lu-mosaic > li:first-child {
  grid-column: span 2;
  grid-row: span 2;
}
.lu-story {
  background: var(--lu-card);
  border-radius: var(--lu-radius);
  overflow: hidden;
  box-shadow: var(--lu-shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  display: flex;
  flex-direction: column;
  width: 100%;
}
.lu-story:hover,
.lu-story:focus-within {
  transform: translateY(-4px);
  box-shadow: var(--lu-shadow-lift);
}
.lu-story .wp-block-post-featured-image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 7.5;
  object-fit: cover;
}
.lu-mosaic > li:first-child .wp-block-post-featured-image img {
  aspect-ratio: 16 / 8.5;
}
.lu-story .lu-card-pad {
  padding: 20px 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 9px;
  flex-grow: 1;
}
.lu-story .wp-block-post-title {
  font-size: 1.15rem;
  line-height: 1.3;
  margin: 0;
}
.lu-mosaic > li:first-child .wp-block-post-title {
  font-size: 1.8rem;
}
.lu-story .wp-block-post-title a {
  color: var(--lu-ink);
  text-decoration: none;
}
.lu-story .wp-block-post-title a:hover {
  text-decoration: underline;
  text-decoration-color: var(--lu-coral);
  text-decoration-thickness: 3px;
}
.lu-story .wp-block-post-excerpt {
  font-size: 1rem;
  margin: 0;
}
.lu-story .wp-block-post-excerpt__more-text {
  display: none;
}
.lu-mosaic-bottom {
  margin-top: 26px;
}
.lu-sponsored-card {
  background: var(--lu-tint);
  border: 2px solid #B8AC94;
  border-radius: var(--lu-radius);
  padding: 20px 22px 24px;
  min-height: 250px;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.lu-sponsored-card .uu-sp-label {
  font-family: var(--lu-font-ui);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--lu-zone-text);
  background: var(--lu-tint-deep);
  padding: 5px 10px;
  border-radius: 4px;
  align-self: flex-start;
}
.lu-sponsored-card h3 {
  font-size: 1.15rem;
  margin: 0;
}
.lu-sponsored-card p {
  font-size: 0.95rem;
  margin: 0;
}

/* ---------- Category cards */
.lu-cats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.lu-cat {
  position: relative;
  background: var(--lu-card);
  border-radius: var(--lu-radius);
  padding: 28px 26px 26px;
  box-shadow: var(--lu-shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  overflow: hidden;
}
.lu-cat:hover,
.lu-cat:focus-within {
  transform: translateY(-4px);
  box-shadow: var(--lu-shadow-lift);
}
.lu-cat .lu-cat-num {
  font-family: var(--lu-font-display);
  font-size: 2.6rem;
  color: var(--lu-teal-deep);
  line-height: 1;
  margin: 0;
}
.lu-cat h3 {
  font-size: 1.3rem;
  margin: 10px 0 8px;
}
.lu-cat h3 a {
  color: var(--lu-ink);
  text-decoration: none;
}
.lu-cat h3 a:hover {
  text-decoration: underline;
  text-decoration-color: var(--lu-coral);
  text-decoration-thickness: 3px;
}
.lu-cat p {
  font-size: 0.98rem;
  margin: 0;
}
.lu-cat .lu-cat-count {
  display: block;
  margin-top: 14px;
  font-family: var(--lu-font-ui);
  font-size: 0.75rem;
  color: var(--lu-meta);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.lu-cat .lu-cat-tri {
  position: absolute;
  top: -8px;
  right: -8px;
  opacity: 0.9;
  pointer-events: none;
}

/* ---------- Dark bands (First Time After, newsletter wrapper) */
.lu-band-dark {
  background: var(--lu-ink);
  color: var(--lu-cream);
}
.lu-band-dark .uu-kicker {
  color: var(--lu-cream);
  opacity: 0.85; /* coral never carries text on dark: fails contrast */
}
.lu-band-dark h2 {
  color: var(--lu-cream);
  font-size: 2.4rem;
  margin: 14px 0 10px;
}
.lu-band-dark .lu-lede {
  max-width: 40em;
  font-size: 1.1rem;
  color: var(--lu-cream);
  opacity: 0.94;
}
.lu-epis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  margin-top: 36px;
}
.lu-ep {
  background: rgba(245, 240, 232, 0.07);
  border: 1px solid rgba(245, 240, 232, 0.25);
  border-radius: var(--lu-radius);
  padding: 22px;
  transition: background 0.25s ease;
}
.lu-ep:hover,
.lu-ep:focus-within {
  background: rgba(245, 240, 232, 0.14);
}
.lu-ep .lu-ep-num {
  font-family: var(--lu-font-display);
  font-size: 1.9rem;
  color: var(--lu-cream);
  margin: 0;
}
.lu-ep h3 {
  font-size: 1.08rem;
  margin: 10px 0 6px;
}
.lu-ep h3 a {
  color: var(--lu-cream);
  text-decoration: none;
}
.lu-ep h3 a:hover {
  text-decoration: underline;
}
.lu-ep p {
  font-size: 0.9rem;
  color: var(--lu-cream);
  opacity: 0.85;
  margin: 0;
}
.lu-band-dark .uu-btns {
  margin-top: 36px;
}

/* ---------- Reviews and affiliate */
.lu-disclosure {
  font-family: var(--lu-font-ui);
  font-size: 0.78rem;
  color: var(--lu-meta);
  margin-bottom: 26px;
}
.lu-reviews {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.lu-rev {
  background: var(--lu-card);
  border-radius: var(--lu-radius);
  padding: 24px;
  box-shadow: var(--lu-shadow);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.lu-stars {
  color: var(--lu-teal-deep);
  font-size: 1.05rem;
  letter-spacing: 0.1em;
  margin: 0;
}
.lu-rev h3 {
  font-size: 1.15rem;
  margin: 0;
}
.lu-rev h3 a {
  color: var(--lu-ink);
  text-decoration: none;
}
.lu-rev h3 a:hover {
  text-decoration: underline;
  text-decoration-color: var(--lu-coral);
  text-decoration-thickness: 3px;
}
.lu-rev p {
  margin: 0;
}
.lu-aff {
  margin-top: auto;
  border: 2px dashed #B8AC94;
  border-radius: 8px;
  background: var(--lu-tint);
  padding: 12px 14px;
  font-family: var(--lu-font-ui);
  font-size: 0.78rem;
  color: var(--lu-zone-text);
}
.lu-aff strong {
  display: block;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-size: 0.66rem;
  margin-bottom: 4px;
}

/* End-of-article affiliate product box (also available as a pattern) */
.uu-aff-box {
  border: 2px solid var(--lu-teal-deep);
  border-radius: var(--lu-radius);
  background: var(--lu-card);
  padding: 24px;
  margin: 34px 0;
  max-width: 40em;
}
.uu-aff-box .uu-aff-tag {
  font-family: var(--lu-font-ui);
  font-size: 0.66rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  background: var(--lu-tint-deep);
  color: var(--lu-zone-text);
  padding: 5px 10px;
  border-radius: 4px;
  display: inline-block;
}
.uu-aff-box h2, .uu-aff-box h3 {
  margin: 12px 0 8px;
  font-size: 1.3rem;
}
.uu-aff-box .uu-fine {
  font-family: var(--lu-font-ui);
  font-size: 0.75rem;
  color: var(--lu-meta);
  margin-top: 10px;
}

/* ---------- Newsletter band */
.lu-news {
  background: var(--lu-teal-deep);
}
.lu-news-card {
  background: var(--lu-cream);
  border-radius: 14px;
  padding: 52px 56px;
  position: relative;
  overflow: hidden;
}
.lu-news-card h2 {
  font-size: 2.2rem;
  margin: 0 0 10px;
}
.lu-news-card > p {
  max-width: 36em;
}
.lu-news-tris {
  position: absolute;
  right: -14px;
  bottom: -14px;
  opacity: 0.9;
  pointer-events: none;
}
.uu-newsletter-form {
  margin-top: 26px;
}
.uu-fine {
  font-family: var(--lu-font-ui);
  font-size: 0.75rem;
  color: var(--lu-meta);
  margin-top: 12px;
}

/* MailerLite official plugin form, restyled (site-wide) */
.mailerlite-form .mailerlite-form-inputs {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: stretch;
}
.mailerlite-form .mailerlite-form-field {
  flex: 1;
  min-width: 240px;
  margin: 0;
}
.mailerlite-form .mailerlite-form-field input[type="email"],
.mailerlite-form .mailerlite-form-field input[type="text"] {
  width: 100%;
  padding: 14px 16px;
  font-size: 1rem;
  border: 2px solid var(--lu-teal-deep);
  border-radius: 6px;
  background: #FFFFFF;
  color: var(--lu-text);
  font-family: var(--lu-font-body);
  min-height: 44px;
}
.mailerlite-form .mailerlite-subscribe-button-container button,
.mailerlite-form button[type="submit"] {
  font-family: var(--lu-font-ui);
  font-weight: 700;
  font-size: 0.9rem;
  padding: 14px 26px;
  border-radius: 6px;
  min-height: 44px;
  background: var(--lu-teal-deep);
  color: var(--lu-cream);
  border: 2px solid transparent;
  cursor: pointer;
}
.mailerlite-form .mailerlite-subscribe-button-container button:hover,
.mailerlite-form button[type="submit"]:hover {
  background: var(--lu-teal-hover);
}
.mailerlite-form .mailerlite-form-description {
  font-family: var(--lu-font-body);
  color: var(--lu-text);
}
.mailerlite-form .mailerlite-form-error {
  color: #8A2A12;
  font-family: var(--lu-font-ui);
  font-size: 0.85rem;
}
/* Dark sidebar newsletter card variant */
.uu-news-dark .mailerlite-form .mailerlite-form-field input[type="email"] {
  border-color: var(--lu-cream);
}
.uu-news-dark .mailerlite-form .mailerlite-subscribe-button-container button {
  background: var(--lu-cream);
  color: var(--lu-ink);
}
.uu-news-dark .mailerlite-form .mailerlite-form-description {
  color: var(--lu-cream);
}
.uu-news-dark .mailerlite-form .mailerlite-form-error {
  color: #FFD9CC;
}

/* ---------- Proof band */
.lu-proof {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  text-align: center;
}
.lu-proof .lu-proof-num {
  font-family: var(--lu-font-display);
  font-size: 3rem;
  color: var(--lu-teal-deep);
  margin: 0;
}
.lu-proof p {
  font-family: var(--lu-font-ui);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #41504F;
  margin: 6px 0 0;
}
.lu-proof a {
  color: inherit;
}

/* ---------- Article template */
.single-post .entry-hero.above-content,
.single-post .kadence-thebase-title-area,
.single-post .entry-header.above-content {
  background: var(--lu-ink);
}
.single-post .entry-hero .entry-title,
.single-post .entry-hero .entry-meta,
.single-post .entry-hero .entry-meta a {
  color: var(--lu-cream);
}
.single-post .entry-hero .entry-taxonomies a,
.single-post .entry-hero .entry-taxonomies .category-links a {
  display: inline-block;
  font-family: var(--lu-font-ui);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--lu-ink);
  background: var(--lu-cream);
  padding: 5px 10px;
  border-radius: 4px;
  text-decoration: none;
}
.single-post .entry-hero .entry-meta {
  font-family: var(--lu-font-ui);
  font-size: 0.85rem;
  opacity: 0.9;
}
.single-post .entry-content {
  font-size: 1.1rem;
  line-height: 1.7;
}
.single-post .entry-content > p:first-child {
  font-size: 1.25rem;
  line-height: 1.6;
  color: #31403F;
}
.single-post .entry-content h2 {
  margin-top: 36px;
}

/* Sidebar: sticky stack on desktop */
@media (min-width: 1025px) {
  .single-post .primary-sidebar .sidebar-inner-wrap {
    position: sticky;
    top: 24px;
  }
}
.uu-side-card {
  background: var(--lu-card);
  border-radius: var(--lu-radius);
  padding: 22px;
  box-shadow: var(--lu-shadow);
  margin-bottom: 24px;
}
.uu-side-card h2, .uu-side-card .widget-title {
  font-size: 1.1rem;
  margin: 0 0 10px;
}
.uu-side-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.uu-side-card li {
  padding: 10px 0;
  border-bottom: 1px solid var(--lu-tint-deep);
  font-size: 0.98rem;
  line-height: 1.4;
}
.uu-side-card li:last-child {
  border-bottom: none;
}
.uu-side-card a {
  color: var(--lu-ink);
  text-decoration: none;
}
.uu-side-card a:hover {
  text-decoration: underline;
  text-decoration-color: var(--lu-coral);
  text-decoration-thickness: 3px;
}
.uu-side-card.uu-news-dark {
  background: var(--lu-ink);
  color: var(--lu-cream);
}
.uu-side-card.uu-news-dark h2, .uu-side-card.uu-news-dark .widget-title {
  color: var(--lu-cream);
}
.primary-sidebar .uu-zone {
  margin-bottom: 24px;
}
@media (max-width: 1024px) {
  .primary-sidebar .uu-zone-halfpage {
    display: none; /* zone E is desktop only per the zone map */
  }
}

/* Related posts endcap: dark band per the mockup "Keep reading" */
.entry-related {
  background: var(--lu-teal-deep);
  padding: 42px 0 48px;
}
.entry-related .entry-related-title,
.entry-related h2 {
  color: var(--lu-cream);
}
/* In-body zone sits left-aligned in the text column, as in the mockup */
.single-post .entry-content .uu-zone-inbody {
  margin: 34px 0;
}
.loop-entry.type-post {
  background: var(--lu-card);
  border-radius: var(--lu-radius);
  box-shadow: var(--lu-shadow);
  overflow: hidden;
}
.loop-entry.type-post .entry-title a {
  color: var(--lu-ink);
}
.loop-entry.type-post .entry-title a:hover {
  text-decoration: underline;
  text-decoration-color: var(--lu-coral);
  text-decoration-thickness: 3px;
}

/* Archive hero */
.archive .kadence-breadcrumbs, .archive .entry-hero {
  background: transparent;
}

/* ---------- Footer (rendered by the child theme) */
.site-footer {
  background: var(--lu-ink);
  color: var(--lu-cream);
}
.uu-footer {
  padding: 64px 0 20px;
}
.uu-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.4fr;
  gap: 40px;
}
.uu-footer h2 {
  font-size: 1.2rem;
  color: var(--lu-cream);
  margin: 0 0 12px;
}
.uu-footer p {
  color: var(--lu-cream);
  opacity: 0.9;
  max-width: 26em;
}
.uu-footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.uu-footer li {
  margin: 8px 0;
}
.uu-footer a {
  color: var(--lu-cream);
  text-decoration: underline;
  text-decoration-color: rgba(245, 240, 232, 0.5);
}
.uu-footer a:hover {
  text-decoration-color: var(--lu-cream);
}
.uu-footer .uu-btn {
  display: inline-block;
  font-family: var(--lu-font-ui);
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
  padding: 14px 26px;
  border-radius: 6px;
  min-height: 44px;
  background: var(--lu-cream);
  color: var(--lu-ink);
  margin-top: 12px;
}
.uu-footer .uu-btn:hover {
  background: #FFFFFF;
}
.site-footer .footer-html,
.site-footer .footer-html a,
.site-footer .site-footer-bottom-section {
  color: var(--lu-cream);
  font-family: var(--lu-font-ui);
  font-size: 0.78rem;
}
.uu-footer-legal {
  border-top: 1px solid rgba(245, 240, 232, 0.25);
  margin-top: 44px;
  padding-top: 22px;
  font-family: var(--lu-font-ui);
  font-size: 0.78rem;
  opacity: 0.92;
}
.site-footer-wrap .site-bottom-footer-wrap {
  background: var(--lu-ink);
}

/* ---------- Query loop and pattern plumbing */
/* Kadence disables theme.json by default, so WordPress wraps every
   group block's children in a legacy inner container. Collapse those
   wrappers inside our pattern scopes so grid and flex layouts reach
   the real children. Plain divs only: safe for display:contents. */
.uu-band > .wp-block-group__inner-container,
.uu-wrap > .wp-block-group__inner-container,
.uu-sec-head > .wp-block-group__inner-container,
.uu-sec-head-title > .wp-block-group__inner-container,
.uu-sec-head-main > .wp-block-group__inner-container,
.uu-newsletter-form > .wp-block-group__inner-container,
.uu-aff-box > .wp-block-group__inner-container,
.lu-hero > .wp-block-group__inner-container,
.lu-hero-grid > .wp-block-group__inner-container,
.lu-hero-copy > .wp-block-group__inner-container,
.lu-feat-card > .wp-block-group__inner-container,
.lu-card-pad > .wp-block-group__inner-container,
.lu-story > .wp-block-group__inner-container,
.lu-sponsored-card > .wp-block-group__inner-container,
.lu-news-card > .wp-block-group__inner-container,
.lu-zone-a-band > .wp-block-group__inner-container {
  display: contents;
}

.uu-front {
  width: 100%;
  max-width: none;
  padding: 0;
}
.uu-front > .wp-block-group {
  margin: 0;
}
.wp-block-query .wp-block-post-template {
  list-style: none;
  margin: 0;
  padding: 0;
}
.wp-block-query .wp-block-post {
  margin: 0;
}
.lu-feat-card-query .wp-block-post + .wp-block-post {
  display: none; /* featured card shows one sticky post only */
}
.lu-hero-grid > .lu-hero-copy {
  align-self: center;
}
.lu-mosaic-top.wp-block-columns,
.lu-mosaic-bottom.wp-block-columns {
  gap: 26px;
}
.lu-mosaic-stack .wp-block-post + .wp-block-post {
  margin-top: 26px;
}
.lu-story-lead .wp-block-post-featured-image img {
  aspect-ratio: 16 / 8.5;
}
.lu-story-lead .wp-block-post-title {
  font-size: 1.8rem;
  line-height: 1.2;
}
.lu-story .wp-block-post-featured-image {
  margin: 0;
}
.lu-mosaic-lead,
.lu-mosaic-stack,
.lu-mosaic-single,
.lu-mosaic-lead .wp-block-post,
.lu-mosaic-lead .wp-block-post-template,
.lu-mosaic-lead .wp-block-post .lu-story {
  height: 100%;
}
.lu-mosaic-bottom {
  margin-top: 26px;
}
.uu-sec-head-title h2 {
  font-size: 2.4rem;
  line-height: 1.1;
  margin: 0;
}
.uu-more-wrap {
  margin: 0;
}
.uu-form-placeholder {
  border: 2px dashed #B8AC94;
  border-radius: 8px;
  background: var(--lu-tint);
  padding: 14px 16px;
  font-family: var(--lu-font-ui);
  font-size: 0.85rem;
  color: var(--lu-zone-text);
}
.uu-arr {
  display: inline-block;
  transition: transform 0.25s ease;
}
.wp-block-button__link:hover .uu-arr,
.uu-btn:hover .uu-arr {
  transform: translateX(4px);
}
.lu-cats-all {
  margin-top: 24px;
}
.entry-readtime::before {
  content: '\00b7';
  margin: 0 6px;
}

/* ---------- Responsive */
@media (max-width: 960px) {
  .lu-hero-grid {
    grid-template-columns: 1fr;
    padding-bottom: 60px;
  }
  .lu-feat-card {
    transform: none;
  }
  .lu-mosaic,
  .lu-cats,
  .lu-reviews,
  .lu-epis,
  .lu-proof {
    grid-template-columns: 1fr 1fr;
  }
  .lu-mosaic > li:first-child {
    grid-column: span 2;
    grid-row: auto;
  }
  .uu-footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .uu-zone-billboard {
    min-height: 250px;
    max-width: 300px;
  }
  .uu-zone-leaderboard,
  .uu-zone-footer {
    min-height: 50px;
    max-width: 320px;
  }
}
@media (max-width: 620px) {
  .lu-mosaic,
  .lu-cats,
  .lu-reviews,
  .lu-epis,
  .lu-proof,
  .uu-footer-grid {
    grid-template-columns: 1fr;
  }
  .lu-mosaic > li:first-child {
    grid-column: span 1;
  }
  .uu-sec-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .lu-news-card {
    padding: 36px 24px;
  }
  .uu-band {
    padding-top: 52px;
    padding-bottom: 52px;
  }
}
