@charset "UTF-8";
/* -------------------------------------------------------
   SCSS VARIABLES MAPPED TO CSS CUSTOM PROPERTIES
   These are compile-time helpers for SCSS files
------------------------------------------------------- */
/* Colors */
/* Shadows */
/* Spacing */
/* Typography */
/* Radii */
/* Breakpoints */
/* Global Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 12px;
}

/* Base Document Styles */
body {
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
  color: var(--brand-text);
  background: var(--brand-bg);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 600;
  line-height: 1.25;
  margin-top: 0;
  margin-bottom: var(--space-2);
}

h1 {
  font-size: 2.5rem;
}

h2 {
  font-size: 2rem;
}

h3 {
  font-size: 1.75rem;
}

h4 {
  font-size: 1.5rem;
}

h5 {
  font-size: 1.25rem;
}

h6 {
  font-size: 1rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

p {
  line-height: 1.7;
  margin-top: 0;
  margin-bottom: var(--space-2);
}

small {
  font-size: 0.875rem;
}

a {
  color: var(--brand-primary);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.12em;
  transition: color 0.2s ease;
}
a:hover, a:focus {
  color: var(--brand-primary-dark);
}

ul,
ol {
  margin: 0 0 var(--space-2) var(--space-4);
  padding: 0;
  line-height: 1.7;
}

li + li {
  margin-top: var(--space-1);
}

blockquote {
  margin: var(--space-3) 0;
  padding-left: var(--space-3);
  border-left: 4px solid var(--brand-primary);
  font-style: italic;
  color: var(--brand-text-muted);
}
blockquote p:last-child {
  margin-bottom: 0;
}

code {
  font-family: var(--font-family-mono);
  font-size: 0.95em;
  background: var(--brand-surface-alt);
  padding: 0.15em 0.35em;
  border-radius: 4px;
}

pre {
  overflow-x: auto;
  padding: var(--space-3);
  margin-bottom: var(--space-3);
  background: var(--brand-surface-alt);
  border-radius: 6px;
}
pre code {
  background: transparent;
  padding: 0;
}

/* -------------------------------------------------------
   DESIGN TOKENS — CSS CUSTOM PROPERTIES
   These are runtime variables (themeable, overrideable)
------------------------------------------------------- */
/* -------------------------------------------------------
   LIGHT MODE THEME
------------------------------------------------------- */
:root {
  /* Neutral Colors */
  --brand-bg: var(--gray-0);
  --brand-surface: var(--gray-1);
  --brand-surface-alt: var(--gray-2);
  --brand-surface-contrast: var(--gray-9);
  --brand-surface-transparent-highlight: color-mix(in srgb, var(--gray-1) 50%, transparent);
  --brand-surface-contrast-highlight: color-mix(in srgb, var(--gray-10) 70%, transparent);
  --brand-text: var(--gray-9);
  --brand-text-light: var(--gray-7);
  --brand-text-muted: var(--gray-6);
  --brand-text-contrast: var(--gray-1);
  --brand-text-contrast-muted: var(--gray-5);
  /* Brand Colors (based on Open Props palettes) */
  --brand-primary: var(--indigo-7);
  --brand-primary-light: var(--indigo-4);
  --brand-primary-dark: var(--indigo-9);
  --brand-secondary: var(--cyan-6);
  --brand-accent: var(--amber-6);
  /* Shadows */
  --shadow-sm: var(--shadow-1);
  --shadow-md: var(--shadow-2);
  --shadow-lg: var(--shadow-3);
}

:root {
  /* Spacing Scale (Open Props size scale) */
  --space-1: var(--size-1);
  --space-2: var(--size-2);
  --space-3: var(--size-3);
  --space-4: var(--size-4);
  --space-5: var(--size-5);
  /* Typography */
  --font-family-base: "Inter", system-ui, sans-serif;
  --font-family-mono: "JetBrains Mono", "Fira Code", monospace; /* NEW */
  --font-size-sm: var(--font-size-1);
  --font-size-base: var(--font-size-2);
  --font-size-lg: var(--font-size-3);
  --font-size-xl: var(--font-size-4);
  /* Radii */
  --radius-sm: var(--radius-1);
  --radius-md: var(--radius-2);
  --radius-lg: var(--radius-3);
}

/* -------------------------------------------------------
   DARK MODE THEME
------------------------------------------------------- */
/* -----------------------------------------
   2. System preference fallback
----------------------------------------- */
@media (prefers-color-scheme: dark) {
  :root:not(.light) {
    /* Neutral Colors */
    --brand-bg: var(--gray-10);
    --brand-surface: var(--gray-11);
    --brand-surface-alt: var(--gray-10);
    --brand-surface-contrast: var(--gray-2);
    --brand-surface-transparent-highlight: color-mix(in srgb, var(--gray-10) 50%, transparent);
    --brand-surface-contrast-highlight: color-mix(in srgb, var(--gray-1) 70%, transparent);
    --brand-text: var(--gray-1);
    --brand-text-light: var(--gray-3);
    --brand-text-muted: var(--gray-4);
    --brand-text-contrast: var(--gray-9);
    --brand-text-contrast-muted: var(--gray-6);
    /* Brand Colors (based on Open Props palettes) */
    --brand-primary: var(--indigo-4);
    --brand-primary-light: var(--indigo-2);
    --brand-primary-dark: var(--indigo-6);
    --brand-secondary: var(--cyan-4);
    --brand-accent: var(--amber-4);
    /* Shadows */
    --shadow-sm: var(--shadow-2);
    --shadow-md: var(--shadow-3);
    --shadow-lg: var(--shadow-4);
  }
}
/* -----------------------------------------
   1. User Selection
----------------------------------------- */
:root.dark {
  /* Neutral Colors */
  --brand-bg: var(--gray-10);
  --brand-surface: var(--gray-11);
  --brand-surface-alt: var(--gray-10);
  --brand-surface-contrast: var(--gray-2);
  --brand-surface-transparent-highlight: color-mix(in srgb, var(--gray-10) 50%, transparent);
  --brand-surface-contrast-highlight: color-mix(in srgb, var(--gray-1) 70%, transparent);
  --brand-text: var(--gray-1);
  --brand-text-light: var(--gray-3);
  --brand-text-muted: var(--gray-4);
  --brand-text-contrast: var(--gray-9);
  --brand-text-contrast-muted: var(--gray-6);
  /* Brand Colors (based on Open Props palettes) */
  --brand-primary: var(--indigo-4);
  --brand-primary-light: var(--indigo-2);
  --brand-primary-dark: var(--indigo-6);
  --brand-secondary: var(--cyan-4);
  --brand-accent: var(--amber-4);
  /* Shadows */
  --shadow-sm: var(--shadow-2);
  --shadow-md: var(--shadow-3);
  --shadow-lg: var(--shadow-4);
}

/* ---------------------------------------------
   GLOBAL HEADER — now absolute on all pages
--------------------------------------------- */
.site-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 50;
  color: var(--brand-text-light);
  padding: var(--space-4) 0;
  backdrop-filter: blur(5px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1333333333);
  background-color: color-mix(in srgb, var(--brand-bg) 60%, transparent);
}
.site-header .header-inner {
  width: 90%;
  max-width: 1600px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}
@media (max-width: 768px) {
  .site-header .header-inner {
    width: 100%;
    padding: 0 var(--space-2);
  }
}
.site-header {
  /* Desktop nav */
}
.site-header .main-nav {
  display: flex;
  gap: var(--space-3);
}
.site-header .main-nav a {
  color: var(--brand-text-light);
  text-decoration: none;
  font-weight: 500;
}
.site-header .main-nav a:hover {
  color: var(--brand-primary-light);
}
.site-header {
  /* ---------------------------------------------
     MOBILE MENU BUTTON
  --------------------------------------------- */
}
.site-header .nav-toggle {
  display: none;
  flex-direction: column;
  gap: 4px;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 60;
}
.site-header .nav-toggle .bar {
  width: 24px;
  height: 2px;
  background: var(--brand-text-light);
  transition: 0.3s ease;
}
.site-header .nav-toggle.open .bar:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.site-header .nav-toggle.open .bar:nth-child(2) {
  opacity: 0;
}
.site-header .nav-toggle.open .bar:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}
.site-header {
  /* ---------------------------------------------
     MOBILE NAV DRAWER
  --------------------------------------------- */
}
@media (max-width: 768px) {
  .site-header .nav-toggle {
    display: flex;
  }
  .site-header .main-nav {
    position: absolute;
    top: calc(-1 * var(--space-4));
    left: 0;
    width: 100%;
    background-color: var(--brand-surface);
    padding: var(--space-4) 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    transform: translateY(-110%);
    transition: transform 0.35s ease;
  }
  .site-header .main-nav a {
    color: var(--brand-text);
    font-size: var(--font-size-lg);
  }
  .site-header .main-nav.open {
    transform: translateY(0);
  }
}

.site-footer {
  background: var(--brand-surface);
  color: var(--brand-text-light);
  padding: var(--space-3) 0;
  margin-top: var(--space-4);
}
.site-footer .container {
  width: 90%;
  max-width: 1600px;
  margin: 0 auto;
  text-align: center;
}

#hero {
  background: var(--brand-secondary);
  padding: var(--space-5) 0;
  text-align: center;
}
#hero .hero-content {
  width: 90%;
  max-width: 1600px;
  margin: 0 auto;
  padding: var(--space-4) 0;
}

.features-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
@media (max-width: 1200px) {
  .features-grid {
    grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr));
  }
}
@media (max-width: 1024px) {
  .features-grid {
    grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
  }
}
@media (max-width: 768px) {
  .features-grid {
    grid-template-columns: repeat(auto-fit, minmax(1fr, 1fr));
  }
}
.features-grid {
  margin-top: var(--space-4);
}
.features-grid .feature {
  background: var(--brand-surface);
  padding: var(--space-3);
  border-radius: var(--radius-md);
  text-align: center;
  box-shadow: var(--shadow-sm);
}
.features-grid .feature h3 {
  margin-bottom: var(--space-2);
  color: var(--brand-primary);
  font-size: var(--font-size-lg);
}
.features-grid .feature p {
  color: var(--brand-text-light);
  font-size: var(--font-size-base);
}

.banner-root {
  position: relative;
  width: 100%;
  height: 100%;
}

.banner-slider {
  width: 100%;
  height: 100%;
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  background-color: var(--brand-bg);
}
.banner-slider::-webkit-scrollbar {
  display: none;
}

.banner-slide {
  width: 100%;
  min-width: 100%;
  flex-shrink: 0;
  aspect-ratio: 4/1;
  position: relative;
  overflow: hidden;
  scroll-snap-align: center;
}
@media (max-width: 1024px) {
  .banner-slide {
    aspect-ratio: 3/1;
  }
}
@media (max-width: 768px) {
  .banner-slide {
    aspect-ratio: 2/1;
  }
}
@media (max-width: 480px) {
  .banner-slide {
    aspect-ratio: 1/1;
  }
}

.banner-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.6) 100%);
  z-index: 1;
}

.banner-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 1;
}

.banner-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  border: none;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  /* Make the arrow area large but visually subtle */
  width: clamp(4rem, 10vw, 10rem);
  height: 100%;
  /* Two‑axis fade background */
  background: var(--arrow-horizontal-gradient);
  color: white;
  font-size: 2.5rem;
  padding: 0;
}

.banner-section:hover .banner-arrow {
  opacity: 1;
}

/* LEFT ARROW */
.banner-arrow span.material-symbols-outlined {
  font-size: clamp(1.5rem, 3vw, 3rem);
  font-variation-settings: "FILL" 0, "wght" 100, "GRAD" -25, "opsz" 48;
}
.banner-arrow.left {
  left: 0;
  --arrow-horizontal-gradient: linear-gradient(to right,
      rgba(0, 0, 0, 0.6) 0%,
      rgba(0, 0, 0, 0.4) 30%,
      rgba(0, 0, 0, 0.15) 50%,
      rgba(0, 0, 0, 0.05) 70%,
      rgba(0, 0, 0, 0) 85%);
}
.banner-arrow {
  /* RIGHT ARROW */
}
.banner-arrow.right {
  right: 0;
  --arrow-horizontal-gradient: linear-gradient(to left,
      rgba(0, 0, 0, 0.6) 0%,
      rgba(0, 0, 0, 0.4) 30%,
      rgba(0, 0, 0, 0.15) 50%,
      rgba(0, 0, 0, 0.05) 70%,
      rgba(0, 0, 0, 0) 85%);
}

/* Pagination dots */
.banner-dots {
  position: absolute;
  bottom: clamp(0.4rem, 1vw, 1rem);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: var(--space-2);
  z-index: 5;
}
.banner-dots .dot {
  width: 2rem;
  height: 0.1rem;
  position: relative;
  cursor: pointer;
  transition: background 0.3s;
  background: rgba(255, 255, 255, 0.5);
}
.banner-dots .dot.active {
  background: white;
}
.banner-dots .dot::before {
  content: "";
  position: absolute;
  inset: -0.6rem 0;
}

.banner-content {
  width: 100%;
  left: 50%;
  bottom: clamp(2rem, 6vw, 6rem);
  padding-left: clamp(1rem, 4vw, 4rem);
  position: absolute;
  color: white;
  pointer-events: none;
  transform: translateX(-50%);
  z-index: 10;
}

.banner-text-wrapper {
  position: relative;
  width: 100%;
}

.banner-title {
  position: absolute;
  width: 100%;
  font-size: clamp(1.2rem, 3vw, 2.8rem);
}

.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-enter-from {
  opacity: 0;
  transform: translateY(10px);
}

.fade-enter-to {
  opacity: 1;
  transform: translateY(0);
}

.fade-leave-from {
  opacity: 1;
  transform: translateY(0);
}

.fade-leave-to {
  opacity: 0;
  transform: translateY(-10px);
}

/* Highlight active slide (optional fade effect) */
.banner-slide {
  opacity: 0.4;
  transition: opacity 0.5s;
}

.banner-slide.active {
  opacity: 1;
}

#liturgical-timings {
  margin-top: var(--space-4);
}
#liturgical-timings .timings-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(28rem, 1fr));
}
@media (max-width: 1200px) {
  #liturgical-timings .timings-grid {
    grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr));
  }
}
@media (max-width: 1024px) {
  #liturgical-timings .timings-grid {
    grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
  }
}
@media (max-width: 768px) {
  #liturgical-timings .timings-grid {
    grid-template-columns: repeat(auto-fit, minmax(1fr, 1fr));
  }
}
#liturgical-timings .timings-grid {
  align-items: stretch;
}
#liturgical-timings .timings-column {
  background: var(--brand-surface-contrast);
  color: var(--brand-text-contrast);
  padding: var(--space-3);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}
#liturgical-timings .timings-column .timings-content .timings-header {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}
#liturgical-timings .timings-column .timings-content .timings-header .timings-icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
#liturgical-timings .timings-column .timings-content .timings-header .timings-icon span.material-symbols-outlined {
  font-weight: 150;
}
#liturgical-timings .timings-column .timings-content .timings-header .timings-icon img,
#liturgical-timings .timings-column .timings-content .timings-header .timings-icon svg,
#liturgical-timings .timings-column .timings-content .timings-header .timings-icon .material-symbols-outlined {
  width: 36px;
  height: 36px;
  font-size: 36px;
  color: var(--brand-primary);
}
#liturgical-timings .timings-column .timings-content .timings-header h4 {
  margin: 0;
  color: var(--brand-primary);
  font-size: var(--font-size-lg);
}
#liturgical-timings .timings-column .timings-content .timing-group {
  margin-bottom: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--space-1);
  background-color: var(--brand-surface-contrast-highlight);
}
#liturgical-timings .timings-column .timings-content .timing-group .divider {
  height: 0.18rem;
  border-radius: 50%;
  background-color: rgba(119, 119, 119, 0.2);
}
#liturgical-timings .timings-column .timings-content .timing-subhead {
  margin: var(--space-1) 0 var(--space-3);
  padding: 0 0 var(--space-2);
  font-size: var(--font-size-base);
  color: inherit;
  font-weight: 700;
  max-inline-size: initial;
  border-bottom: 0.01rem solid var(--brand-surface-transparent-highlight);
}
#liturgical-timings .timings-column .timings-content .timing-list {
  display: grid;
  gap: var(--space-2);
}
#liturgical-timings .timings-column .timings-content .timing-list .timing-row {
  display: grid;
  grid-template-columns: 1fr 120px;
  gap: var(--space-2);
  align-items: center;
}
#liturgical-timings .timings-column .timings-content .timing-list .timing-row .timing-label {
  color: inherit;
  font-size: var(--font-size-base);
}
#liturgical-timings .timings-column .timings-content .timing-list .timing-row .timing-time {
  color: inherit;
  text-align: right;
  font-size: var(--font-size-base);
}
#liturgical-timings .timings-column .timings-content .novenas-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--space-2);
  grid-template-columns: 1fr 1fr;
}
#liturgical-timings .timings-column .timings-content .novenas-list .novenas-day {
  font-weight: 700;
  color: var(--brand-primary);
}
#liturgical-timings .timings-column .timings-content .novenas-list .novenas-details {
  color: inherit;
  text-align: right;
}
#liturgical-timings .timings-column .timings-content .novena-footer {
  display: flex;
  align-items: center;
  justify-content: center;
}
#liturgical-timings .timings-column .timings-content .text-center {
  text-align: center;
  color: var(--brand-text-contrast-muted);
  margin-top: var(--space-2);
}
#liturgical-timings .timings-extra {
  margin-top: var(--space-3);
  color: var(--brand-text);
  font-size: var(--font-size-base);
}

/* -------------------------------------------------------
   POST CARD COMPONENT
   Generic, reusable card for listing entries (image, title,
   meta, excerpt). Designed to be used across news, posts,
   and other entry lists.
------------------------------------------------------- */
.post-card {
  display: block;
  border-radius: var(--radius-md);
  background: var(--brand-surface);
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  overflow: hidden;
}
.post-card:hover {
  box-shadow: var(--shadow-md);
}
.post-card {
  /* Image block (optional) */
}
.post-card__image {
  display: block;
  width: 100%;
}
.post-card__image img {
  width: 100%;
  height: 170px;
  object-fit: cover;
  display: block;
}
.post-card {
  /* Content wrapper separates padding from the image */
}
.post-card__content {
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.post-card__title {
  font-size: var(--font-size-lg);
  font-weight: 600;
  margin-bottom: var(--space-2);
  color: var(--brand-text);
  max-inline-size: unset;
}
.post-card__title a:not(:hover) {
  text-decoration-color: rgba(0, 0, 0, 0);
}
.post-card__meta {
  font-size: var(--font-size-sm);
  color: var(--brand-text-light);
  margin-bottom: var(--space-3);
}
.post-card__excerpt {
  font-size: var(--font-size-base);
  color: var(--brand-text-muted);
  line-height: 1.6;
}
.post-card__footer {
  margin-top: var(--space-4);
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--brand-primary);
}
.post-card__footer .material-icons {
  font-size: 1.2em;
  vertical-align: middle;
}

/* Generic posts list layout used for news, posts, and other
   entry collections. Keeps layout concerns separate from
   the card component itself. */
.posts-list {
  margin-top: var(--space-5);
  padding: var(--space-1) 0;
}
.posts-list__head {
  display: flex;
  justify-content: space-between;
}
.posts-list__grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(28rem, 1fr));
}
@media (max-width: 1200px) {
  .posts-list__grid {
    grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr));
  }
}
@media (max-width: 1024px) {
  .posts-list__grid {
    grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
  }
}
@media (max-width: 768px) {
  .posts-list__grid {
    grid-template-columns: repeat(auto-fit, minmax(1fr, 1fr));
  }
}
.posts-list__grid {
  flex-grow: 1;
}
.posts-list__col {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.posts-list__col .posts-list__grid {
  /* force single-column stacking inside each column */
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
}
@media (max-width: 1200px) {
  .posts-list__col .posts-list__grid {
    grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr));
  }
}
@media (max-width: 1024px) {
  .posts-list__col .posts-list__grid {
    grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  }
}
@media (max-width: 768px) {
  .posts-list__col .posts-list__grid {
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  }
}
.posts-list__more {
  margin-top: var(--space-3);
  text-align: right;
}

.posts-row {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(49.5rem, 1fr));
}
@media (max-width: 1200px) {
  .posts-row {
    grid-template-columns: repeat(auto-fit, minmax(45.5rem, 1fr));
  }
}
@media (max-width: 1024px) {
  .posts-row {
    grid-template-columns: repeat(auto-fit, minmax(41.5rem, 1fr));
  }
}
@media (max-width: 768px) {
  .posts-row {
    grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
  }
}
.posts-row {
  margin-top: var(--space-4);
}

#hero,
#features,
#cta,
#news,
#liturgical-timings {
  width: 90%;
  max-width: 1600px;
  margin: 0 auto;
}

#intro {
  width: 90%;
  max-width: 1600px;
  margin: 0 auto;
  text-align: center;
  padding: var(--space-4) 0;
}

.landing .cta-section {
  background: var(--brand-primary);
  color: var(--brand-text-light);
  padding: var(--space-4) 0;
  text-align: center;
}
.landing .cta-section .btn-primary {
  background: var(--brand-surface);
  color: var(--brand-primary);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  text-decoration: none;
  font-weight: 600;
  box-shadow: var(--shadow-sm);
  display: inline-block;
}
.landing .cta-section .btn-primary:hover {
  background: var(--brand-primary-light);
  color: var(--brand-surface);
}

/*# sourceMappingURL=landing.css.map */
