/*
Theme Name: Neve Child
Theme URI: https://grabcalendar.com/
Description: Child theme for Neve on grabcalendar.com
Author: GrabCalendar
Template: neve
Version: 1.0.29
Text Domain: neve-child
*/

/* =========================================================
   CWV / CLS guard layer for grabcalendar.com
   - Additive only; no Neve parent overrides beyond what is required.
   - Reservations match desktop + mobile measured rendering.
   ========================================================= */

/* 1) Global page-flow guards.
   overflow-y: scroll prevents async-paint scrollbar appearance.
   We deliberately do NOT touch .wrapper sizing/containment - earlier
   experiments with `contain: layout`, `min-height: 0`, etc. caused worse
   regressions when Neve's q2w3-fixed-widget code re-set the wrapper style.
*/
html {
  overflow-y: scroll;
}

/* 2) Header reservation. Neve renders .header--row with `height: auto`
      and a 0.2s ease-out height transition, which means any change in
      the row's children (logo loading, web font swap) animates the row
      height and counts as CLS. Reserve the rendered height per breakpoint
      so the row paints at its final size from the first frame. */
.hfg_header .hfg-slot.right {
  min-height: 40px;
}
/* Mobile: logo --maxwidth 32 + --padding 10 0 -> 52px row content. */
.hfg_header .header--row.header-main {
  min-height: 60px;
}
/* Desktop: logo --maxwidth 44 + --padding 10 0 -> 64px row content. */
@media (min-width: 960px) {
  .hfg_header .header--row.header-main {
    min-height: 72px;
  }
}
/* Stop the height transition: it causes measurable CLS when the row
   resizes (which it shouldn't with the min-heights above, but belt
   and braces). */
.hfg_header .header--row {
  transition: none;
}

/* =========================================================
   2b) Premium site header (Neve HFG) — touch-friendly +
       palette-switch / contrast aware. Additive after §2
       CLS min-heights: no taller rows, only refinement
       inside the reserved band.
   ========================================================= */
:root {
  --gc-h-accent: var(--nv-primary-accent, #ea580c);
  --gc-h-ink: var(--nv-text-color, #1e293b);
  --gc-h-muted: color-mix(in srgb, var(--gc-h-ink) 55%, transparent);
  --gc-h-surface: var(--nv-site-bg, #ffffff);
  --gc-h-line: color-mix(in srgb, var(--gc-h-ink) 10%, transparent);
}

.hfg_header.site-header {
  position: relative;
  z-index: 100500;
}

.hfg_header .header--row.header-main {
  isolation: isolate;
  background-color: color-mix(in srgb, var(--gc-h-surface) 92%, transparent);
  border-bottom: 1px solid var(--gc-h-line);
  box-shadow:
    0 1px 0 rgba(15, 23, 42, 0.04),
    0 12px 32px rgba(15, 23, 42, 0.05);
  backdrop-filter: saturate(165%) blur(14px);
  -webkit-backdrop-filter: saturate(165%) blur(14px);
}

@supports not (backdrop-filter: blur(1px)) {
  .hfg_header .header--row.header-main {
    backdrop-filter: none;
    background-color: var(--gc-h-surface);
  }
}

.hfg_header .site-logo .brand,
.hfg_header .site-logo .title-with-logo {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 1.8vw, 12px);
  text-decoration: none;
}

.hfg_header .site-logo .site-title {
  margin: 0;
  letter-spacing: -0.025em;
  font-weight: 700;
  color: var(--gc-h-ink);
  transition: color 0.18s ease;
}

@media (hover: hover) {
  .hfg_header .site-logo .brand:hover .site-title,
  .hfg_header .site-logo .brand:focus-visible .site-title {
    color: var(--gc-h-accent);
  }
}

.hfg_header .site-logo img.neve-site-logo {
  transition: opacity 0.2s ease, transform 0.2s ease;
}

@media (hover: hover) {
  .hfg_header .site-logo .brand:hover img.neve-site-logo {
    opacity: 0.92;
    transform: translateY(-1px);
  }
}

.hfg_header .primary-menu-ul > li.menu-item > .wrap {
  display: flex;
  align-items: center;
}

.hfg_header .primary-menu-ul > li.menu-item > .wrap > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 clamp(12px, 1.35vw, 18px);
  border-radius: 10px;
  font-weight: 600;
  font-size: clamp(14px, 1.05vw, 15px);
  letter-spacing: 0.02em;
  color: color-mix(in srgb, var(--gc-h-ink) 90%, transparent);
  text-decoration: none;
  transition: color 0.18s ease, background-color 0.18s ease;
}

@media (hover: hover) {
  .hfg_header .primary-menu-ul > li.menu-item:not(.menu-item-has-children) > .wrap > a:hover,
  .hfg_header .primary-menu-ul > li.menu-item-has-children > .wrap > a:hover .menu-item-title-wrap {
    color: var(--gc-h-accent);
  }

  .hfg_header .primary-menu-ul > li.menu-item:not(.menu-item-has-children) > .wrap > a:hover {
    background-color: color-mix(in srgb, var(--gc-h-accent) 8%, transparent);
  }
}

.hfg_header .primary-menu-ul > li.menu-item-has-children > .wrap > a {
  gap: 0.15rem;
}

.hfg_header .primary-menu-ul > li.menu-item > .wrap > a::after {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  bottom: 6px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--gc-h-accent),
    transparent
  );
  transform: scaleX(0);
  transform-origin: center;
  opacity: 0;
  transition: transform 0.22s ease, opacity 0.22s ease;
}

@media (hover: hover) {
  .hfg_header .primary-menu-ul > li.menu-item:not(.menu-item-has-children) > .wrap > a:hover::after {
    transform: scaleX(1);
    opacity: 1;
  }
}

/* Submenus */
.hfg_header .primary-menu-ul .sub-menu {
  padding: 0.45rem;
  margin-top: 0.35rem !important;
  border-radius: 12px !important;
  border: 1px solid color-mix(in srgb, var(--gc-h-ink) 8%, transparent) !important;
  box-shadow: 0 12px 38px rgba(15, 23, 42, 0.12) !important;
  background-color: color-mix(in srgb, var(--gc-h-surface) 98%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.hfg_header .primary-menu-ul .sub-menu > li.menu-item > .wrap > a {
  min-height: 44px;
  width: 100%;
  justify-content: flex-start;
  border-radius: 8px !important;
  padding: 0 1rem !important;
}

@media (hover: hover) {
  .hfg_header .primary-menu-ul .sub-menu > li.menu-item > .wrap > a:hover {
    background-color: color-mix(in srgb, var(--gc-h-accent) 10%, transparent) !important;
    color: var(--gc-h-accent) !important;
  }
}

/* Caret toggle */
.hfg_header .caret-wrap {
  min-width: 40px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
}

@media (pointer: coarse) {
  .hfg_header .caret-wrap {
    min-width: 44px;
    min-height: 44px;
  }
}

.hfg_header .navbar-toggle-wrapper .navbar-toggle,
.hfg_header button.navbar-toggle,
.hfg_header button.hamburger.navbar-toggle {
  min-width: 44px !important;
  min-height: 44px !important;
  border-radius: 12px !important;
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

@media (hover: hover) {
  .hfg_header .navbar-toggle-wrapper .navbar-toggle:hover,
  .hfg_header button.navbar-toggle:hover,
  .hfg_header button.hamburger.navbar-toggle:hover {
    background-color: color-mix(in srgb, var(--gc-h-ink) 6%, transparent);
  }
}

.hfg_header .navbar-toggle:focus-visible {
  outline: 2px solid var(--gc-h-accent);
  outline-offset: 3px;
}

/* Palette (dark/light) toggle */
.hfg_header .toggle-palette .palette-icon-wrapper {
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  border-radius: 12px !important;
  transition: background-color 0.2s ease;
}

@media (hover: hover) {
  .hfg_header .toggle-palette .palette-icon-wrapper:hover {
    background-color: color-mix(in srgb, var(--gc-h-ink) 6%, transparent);
  }
}

/* Mobile slide panel polish */
@media (max-width: 959px) {
  .header-menu-sidebar-bg {
    background: color-mix(in srgb, var(--gc-h-surface) 98%, transparent) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }

  #header-menu-sidebar-inner .primary-menu-ul {
    padding-inline: 0.5rem !important;
  }

  #header-menu-sidebar-inner .primary-menu-ul.menu-mobile > li.menu-item > .wrap > a {
    min-height: 48px;
  }

  #header-menu-sidebar-inner .primary-menu-ul > li.menu-item > .wrap > a {
    border-radius: 10px !important;
    padding: 0 0.85rem !important;
    margin-block: 0.15rem;
  }

  #header-menu-sidebar-inner .sub-menu > li.menu-item > .wrap > a {
    padding-left: 1.25rem !important;
  }
}

/* Accessible focus rings for menu links */
.hfg_header .primary-menu-ul > li.menu-item > .wrap > a:focus-visible,
.hfg_header .toggle-palette .palette-icon-wrapper:focus-visible,
.hfg_header .caret-wrap:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--gc-h-accent) 92%, transparent);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .hfg_header .site-logo img.neve-site-logo,
  .hfg_header .navbar-toggle-wrapper .navbar-toggle,
  .hfg_header .primary-menu-ul > li.menu-item > .wrap > a,
  .hfg_header .primary-menu-ul > li.menu-item > .wrap > a::after {
    transition: none !important;
  }

  .hfg_header .primary-menu-ul > li.menu-item > .wrap > a::after {
    transform: scaleX(0) !important;
    opacity: 0 !important;
  }

  .hfg_header .site-logo .brand:hover img.neve-site-logo {
    transform: none;
  }

  .hfg_header .header--row.header-main {
    backdrop-filter: none !important;
  }
}

/* Neve palette / dark wrappers (class names vary by version) — soften inline chrome */
.nb-dark:not(.lite) .hfg_header .header--row.header-main,
body.nvdark:not(.lite) .hfg_header .header--row.header-main,
body.palette-dark:not(.lite) .hfg_header .header--row.header-main {
  box-shadow:
    0 1px 0 rgba(248, 250, 252, 0.06),
    0 16px 40px rgba(0, 0, 0, 0.42);
}

/* 3) Single post / single page hero figure: aspect-ratio reservation. */
.single-post .entry-content > figure.wp-block-image.size-full,
.page .entry-content > figure.wp-block-image.size-full {
  display: block;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 2100 / 1623;
  contain: layout paint;
}
.single-post .entry-content > figure.wp-block-image.size-full > a,
.page .entry-content > figure.wp-block-image.size-full > a {
  display: block;
}
.single-post .entry-content > figure.wp-block-image.size-full img,
.page .entry-content > figure.wp-block-image.size-full img {
  display: block;
  width: 100%;
  height: auto;
}

/* 3b) Generic image guard: any wp-block-image inside content uses
       the intrinsic width/height attributes correctly so block reserves space. */
.single-post .entry-content figure.wp-block-image img,
.page .entry-content figure.wp-block-image img,
.single-post .entry-content img,
.page .entry-content img {
  height: auto;
  max-width: 100%;
}

/* 4) Ad slots / Ad Inserter Pro / AdSense reservations.
      Earlier rule was direct child only; ads can be deeper, so use descendant. */
.single-post .entry-content .code-block,
.page .entry-content .code-block {
  min-height: 300px;
  height: auto !important;
  contain: layout paint;
}
.single-post .entry-content .code-block > div,
.page .entry-content .code-block > div,
.single-post .entry-content ins.adsbygoogle,
.page .entry-content ins.adsbygoogle {
  min-height: 300px;
  display: block;
}

/* 5) First-paragraph stabilization on calendar templates.
      Reserves a minimum line so late repaints don't reflow content. */
.single-post .entry-content > p:first-of-type,
.page .entry-content > p:first-of-type {
  min-height: 1.5em;
}

/* 6) Themeisle Otter "advanced columns" - About + Contact use these.
      No `contain` here: containment was triggering odd layout-shift
      attribution against the column's children. Just reserve heights. */

/* 6a) Hero column `#95305657` CLS guard lives in functions.php (`wp_head` priority 999
       inline style) so it beats Otter/Seraphinite critical ordering — avoid duplicating
       here or rules fight each other. */

/* 6b) About page profile + image columns. */
.page-id-131 #wp-block-themeisle-blocks-advanced-column-7ce5410d,
.page-id-131 #wp-block-themeisle-blocks-advanced-column-1f7b333e {
  min-height: 280px;
}

/* 6c) Contact page (page-id-89) — core Columns + `.gc-contact-form-shell`.
       Shell ratio matches iframe height attr (640×1200): embedded Google Forms
       needs more vertical space than the default 685px or users scroll inside
       the iframe. */
.page-id-89 .gc-contact-section {
  margin-bottom: clamp(1rem, 3vw, 2rem);
}
.page-id-89 .gc-contact-columns {
  gap: clamp(1.25rem, 4vw, 2.5rem);
  align-items: flex-start;
}
/* Flex columns default min-width:auto; iframe intrinsic width (640px attr)
   prevented shrinking on narrow viewports → horizontal overflow on mobile. */
.page-id-89 .gc-contact-columns > .wp-block-column {
  min-width: 0;
}
.page-id-89 .gc-contact-title {
  margin-top: 0;
  margin-bottom: 0.65rem;
  line-height: 1.15;
  font-size: clamp(1.75rem, 5vw, 2.25rem);
  min-height: 2.6rem;
}
.page-id-89 .gc-contact-lede {
  margin-top: 0;
  margin-bottom: 0;
  max-width: 42rem;
  line-height: 1.55;
  min-height: 4.65em;
}
.page-id-89 .gc-contact-form-shell {
  position: relative;
  width: 100%;
  min-width: 0;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  aspect-ratio: 640 / 1200;
  border-radius: 4px;
  overflow: hidden;
  background-color: var(--nv-light-bg, #f4f4f4);
}
.page-id-89 .gc-contact-form-shell iframe {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  border: 0;
  display: block;
}

/* 7) Sidebar widgets: prevent late icon-font / button paint shifts.
      Top runtime culprit on /privacy-policy was zoom-social-icons-widget-2. */
.nv-sidebar-wrap aside .widget {
  contain: layout paint;
}
.zoom-social-icons-widget {
  min-height: 70px;
}
.zoom-social-icons-list {
  min-height: 36px;
}
.zoom-social_icons-list-span {
  display: inline-block;
  min-width: 18px;
  min-height: 18px;
  line-height: 1;
}
/* Reserve socicon fallback area until icon font resolves. */
.zoom-social_icons-list__item {
  min-width: 38px;
  min-height: 38px;
}
.widget_search {
  min-height: 60px;
}
.widget_search .search-form .search-submit {
  min-height: 38px;
  min-width: 38px;
}

/* 8) Logo: intentionally untouched.
      We tested forcing `aspect-ratio: 200 / 203`, explicit `width:32px;
      height:32px` plus a `wp_get_attachment_image_attributes` filter
      that rewrote the HTML width/height attrs to 44x44, and Lighthouse
      Lantern still flagged the logo as "Media element lacking an
      explicit size" on /contact mobile. The shift it attributed to the
      logo was actually the iframe expansion below the fold; we leave
      Neve's default sizing alone (max-width: var(--maxwidth)). */

/* =========================================================
   9) Monthly Calendars landing page (page-id-82)

   Rendered by the [gc_monthly_calendars_grid] shortcode in
   functions.php. Layout = hero + 2 featured cards + 10-card grid.
   Page-scoped via .page-id-82 so nothing here can leak.

   CWV notes:
   - Every card thumbnail uses aspect-ratio + intrinsic width/height
     so the grid paints at final size from frame 1 (no CLS).
   - Hover effects use only transform/box-shadow/opacity — never
     height/width/margin — so they don't trigger layout shifts.
   - Reserved hero text min-heights protect against font-swap CLS.
   - The first 2 cards are eager + the current month is preloaded
     via wp_head (functions.php) so the LCP image lands fast.
   ========================================================= */
.page-id-82 .entry-content > .gc-mc-section {
  --gc-mc-ink: #0f172a;
  --gc-mc-body: #334155;
  --gc-mc-mute: #64748b;
  --gc-mc-line: #e2e8f0;
  --gc-mc-line-2: #cbd5e1;
  --gc-mc-bg: #f8fafc;
  --gc-mc-card: #ffffff;
  --gc-mc-accent: #ea580c;
  --gc-mc-accent-2: #f59e0b;
  --gc-mc-accent-soft: #fff7ed;
  --gc-mc-blue: #2563eb;
  --gc-mc-blue-soft: #eff6ff;
  --gc-mc-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.05);
  --gc-mc-shadow-md: 0 6px 18px -8px rgba(15, 23, 42, 0.18), 0 4px 10px -6px rgba(15, 23, 42, 0.12);
  --gc-mc-shadow-lg: 0 24px 48px -20px rgba(15, 23, 42, 0.28), 0 10px 20px -12px rgba(15, 23, 42, 0.18);
  --gc-mc-radius: 16px;
  --gc-mc-radius-sm: 12px;
  display: block;
  margin-block: clamp(0.5rem, 2vw, 1.25rem) clamp(1.5rem, 4vw, 2.5rem);
  color: var(--gc-mc-body);
  font-feature-settings: "ss01", "cv11";
}

/* Hero */
.page-id-82 .gc-mc-hero {
  text-align: center;
  margin-bottom: clamp(1.5rem, 4vw, 2.25rem);
  padding-inline: clamp(0.25rem, 2vw, 1rem);
}
.page-id-82 .gc-mc-eyebrow {
  display: inline-block;
  margin: 0 0 0.65rem;
  padding: 0.3rem 0.75rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-mc-accent);
  background: var(--gc-mc-accent-soft);
  border: 1px solid #fed7aa;
  border-radius: 999px;
  min-height: 1.7rem;
  line-height: 1.1;
}
.page-id-82 .gc-mc-title {
  margin: 0 0 0.85rem;
  font-size: clamp(1.65rem, 3.6vw, 2.2rem);
  line-height: 1.18;
  font-weight: 800;
  letter-spacing: -0.015em;
  color: var(--gc-mc-ink);
  min-height: 2.6em;
}
.page-id-82 .gc-mc-year-accent {
  display: block;
  margin-top: 0.4rem;
  font-size: clamp(1rem, 2.2vw, 1.2rem);
  font-weight: 600;
  letter-spacing: 0;
  color: var(--gc-mc-accent);
  background: linear-gradient(90deg, var(--gc-mc-accent) 0%, var(--gc-mc-accent-2) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
}
.page-id-82 .gc-mc-lede {
  margin: 0 auto;
  max-width: 44rem;
  font-size: clamp(0.98rem, 1.6vw, 1.075rem);
  line-height: 1.6;
  color: var(--gc-mc-mute);
  min-height: 3.2em;
}

/* Featured pair (current + next) */
.page-id-82 .gc-mc-featured {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.5rem);
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
}
@media (max-width: 720px) {
  .page-id-82 .gc-mc-featured {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Grid (months 3-12) */
.page-id-82 .gc-mc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: clamp(0.85rem, 2vw, 1.25rem);
}
@media (min-width: 960px) {
  .page-id-82 .gc-mc-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
@media (min-width: 720px) and (max-width: 959.98px) {
  .page-id-82 .gc-mc-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 480px) {
  .page-id-82 .gc-mc-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Card base */
.page-id-82 .gc-mc-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--gc-mc-card);
  border: 1px solid var(--gc-mc-line);
  border-radius: var(--gc-mc-radius);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: var(--gc-mc-shadow-sm);
  transform: translateZ(0);
  transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease;
  will-change: transform;
}
.page-id-82 .gc-mc-card:hover,
.page-id-82 .gc-mc-card:focus-visible {
  border-color: var(--gc-mc-line-2);
  box-shadow: var(--gc-mc-shadow-md);
  transform: translateY(-2px);
  text-decoration: none;
}
.page-id-82 .gc-mc-card:focus-visible {
  outline: 3px solid var(--gc-mc-blue);
  outline-offset: 3px;
}
.page-id-82 .gc-mc-card:active {
  transform: translateY(-1px);
}

/* Figure / thumbnail (CWV-safe via aspect-ratio + width/height attrs) */
.page-id-82 .entry-content .gc-mc-figure {
  position: relative;
  margin: 0;
  width: 100%;
  aspect-ratio: 768 / 594;
  overflow: hidden;
  background:
    linear-gradient(180deg, #f1f5f9 0%, #e2e8f0 100%);
  contain: layout paint;
}
.page-id-82 .entry-content .gc-mc-figure img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  object-fit: cover;
  object-position: center;
  transition: transform 0.45s ease;
}
.page-id-82 .gc-mc-card:hover .gc-mc-figure img,
.page-id-82 .gc-mc-card:focus-visible .gc-mc-figure img {
  transform: scale(1.035);
}
.page-id-82 .gc-mc-img-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 2.4rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--gc-mc-mute);
  background: var(--gc-mc-bg);
}

/* Meta block */
.page-id-82 .gc-mc-meta {
  position: relative;
  padding: clamp(0.85rem, 1.6vw, 1.1rem) clamp(0.95rem, 1.8vw, 1.25rem) clamp(1rem, 1.8vw, 1.25rem);
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  column-gap: 0.75rem;
  row-gap: 0.35rem;
  align-items: end;
}
.page-id-82 .gc-mc-month {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.12rem;
  font-weight: 800;
  color: var(--gc-mc-ink);
  line-height: 1.05;
  letter-spacing: -0.01em;
}
.page-id-82 .gc-mc-month-name {
  font-size: clamp(1.25rem, 2.4vw, 1.55rem);
}
.page-id-82 .gc-mc-year {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--gc-mc-mute);
  letter-spacing: 0.04em;
}
.page-id-82 .gc-mc-days {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-self: end;
  padding: 0.35rem 0.55rem;
  border-radius: 10px;
  background: var(--gc-mc-bg);
  border: 1px solid var(--gc-mc-line);
  line-height: 1;
  min-width: 2.6rem;
}
.page-id-82 .gc-mc-days-num {
  font-size: 1rem;
  font-weight: 800;
  color: var(--gc-mc-ink);
}
.page-id-82 .gc-mc-days-lbl {
  margin-top: 0.15rem;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-mc-mute);
}
.page-id-82 .gc-mc-cta {
  grid-column: 1 / -1;
  display: inline-flex;
  align-items: center;
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--gc-mc-accent);
  border-top: 1px dashed var(--gc-mc-line);
}
.page-id-82 .gc-mc-cta--soft {
  color: var(--gc-mc-blue);
}

/* Featured-card sizing tweaks */
.page-id-82 .gc-mc-featured .gc-mc-card {
  border-radius: calc(var(--gc-mc-radius) + 2px);
}
.page-id-82 .gc-mc-featured .gc-mc-month-name {
  font-size: clamp(1.55rem, 3vw, 2rem);
}
.page-id-82 .gc-mc-featured .gc-mc-year {
  font-size: 0.95rem;
}
.page-id-82 .gc-mc-featured .gc-mc-meta {
  padding: clamp(1rem, 1.8vw, 1.4rem) clamp(1.1rem, 2vw, 1.5rem) clamp(1.15rem, 2vw, 1.5rem);
}

/* Current-month emphasis */
.page-id-82 .gc-mc-card--current {
  border-color: transparent;
  background:
    linear-gradient(var(--gc-mc-card), var(--gc-mc-card)) padding-box,
    linear-gradient(135deg, var(--gc-mc-accent) 0%, var(--gc-mc-accent-2) 100%) border-box;
  border-width: 2px;
  box-shadow: var(--gc-mc-shadow-lg);
}
.page-id-82 .gc-mc-card--current:hover,
.page-id-82 .gc-mc-card--current:focus-visible {
  box-shadow: 0 30px 60px -25px rgba(234, 88, 12, 0.45),
              0 12px 24px -14px rgba(234, 88, 12, 0.30);
}
.page-id-82 .gc-mc-card--current::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(120% 80% at 100% 0%, rgba(245, 158, 11, 0.10), transparent 55%);
  border-radius: inherit;
}

/* "Up next" subtle blue tint */
.page-id-82 .gc-mc-card--next {
  background:
    linear-gradient(180deg, var(--gc-mc-blue-soft) 0%, var(--gc-mc-card) 35%);
}

/* Badges */
.page-id-82 .gc-mc-badge {
  position: absolute;
  top: clamp(0.7rem, 1.5vw, 1rem);
  left: clamp(0.7rem, 1.5vw, 1rem);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.7rem 0.35rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #ffffff;
  background: linear-gradient(135deg, var(--gc-mc-accent) 0%, #f97316 100%);
  border-radius: 999px;
  box-shadow: 0 6px 14px -6px rgba(234, 88, 12, 0.55);
  line-height: 1;
}
.page-id-82 .gc-mc-badge--soft {
  color: var(--gc-mc-blue);
  background: #ffffff;
  border: 1px solid #bfdbfe;
  box-shadow: 0 4px 10px -6px rgba(37, 99, 235, 0.35);
}
.page-id-82 .gc-mc-badge-ico {
  width: 0.85rem;
  height: 0.85rem;
  flex: none;
}

/* Footer hint */
.page-id-82 .gc-mc-foot {
  margin-top: clamp(1.75rem, 4vw, 2.5rem);
  padding: clamp(1rem, 2vw, 1.25rem);
  background: var(--gc-mc-bg);
  border: 1px solid var(--gc-mc-line);
  border-radius: var(--gc-mc-radius-sm);
  text-align: center;
  font-size: 0.95rem;
  color: var(--gc-mc-mute);
}
.page-id-82 .gc-mc-foot a {
  color: var(--gc-mc-blue);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px dashed currentColor;
}
.page-id-82 .gc-mc-foot a:hover,
.page-id-82 .gc-mc-foot a:focus-visible {
  border-bottom-style: solid;
}

/* Accessibility / motion */
@media (prefers-reduced-motion: reduce) {
  .page-id-82 .gc-mc-card,
  .page-id-82 .gc-mc-card .gc-mc-figure img {
    transition: none !important;
  }
  .page-id-82 .gc-mc-card:hover,
  .page-id-82 .gc-mc-card:focus-visible {
    transform: none;
  }
}

/* Ad Inserter / AdSense slot guard already covers .code-block in section 4
   above; no extra rules needed for ads inside the monthly-calendars page. */
