:root{
  --cy-navy:#12294B; --cy-navy-d:#0E1F3A; --cy-gold:#C79A3B; --cy-gold-d:#B7892F;
  --cy-light-gold:#E4C878; --cy-cream:#FBFAF6; --cy-ink:#2A3242;
}

/* ------------------------------------------------------------------ *
 * Typography — Cinzel (hero) / Playfair Display (headings) / Montserrat (body)
 * ------------------------------------------------------------------ */
body, p, li, blockquote,
.ct-text-block, .oxy-rich-text, .oxy-rich-text p, .oxy-rich-text li,
input, textarea, select, label,
.oxy-nav-menu .menu-item a {
  font-family:'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}
h1, h2, h3, h4, h5, h6,
.ct-headline,
.oxy-rich-text h1, .oxy-rich-text h2, .oxy-rich-text h3, .oxy-rich-text h4, .oxy-rich-text h5, .oxy-rich-text h6 {
  font-family:'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-weight:600 !important;
  letter-spacing:.2px;
}

/* ------------------------------------------------------------------ *
 * Links
 * ------------------------------------------------------------------ */
a { transition: color .22s ease; }
a:hover { color: var(--cy-gold-d); }

/* ------------------------------------------------------------------ *
 * Buttons — beautiful, animated, uniform
 * ------------------------------------------------------------------ */
.c-btn-main, .c-btn-alt, .c-btn-transparent,
.ct-link-button, .oxy-button, .hosting-main-button {
  border-radius:10px !important;
  font-family:'Montserrat', sans-serif !important;
  font-weight:600 !important;
  letter-spacing:.3px !important;
  border:1.6px solid transparent !important;
  transition: transform .28s cubic-bezier(.2,.7,.3,1),
              background-color .28s ease, color .28s ease,
              border-color .28s ease, box-shadow .28s ease !important;
  will-change: transform;
}
/* primary */
.c-btn-main, .ct-link-button, .oxy-button, .hosting-main-button {
  background-color: var(--cy-navy) !important;
  color: var(--cy-cream) !important;
  border-color: var(--cy-navy) !important;
}
.c-btn-main:hover, .ct-link-button:hover, .oxy-button:hover, .hosting-main-button:hover {
  background-color: var(--cy-gold) !important;
  color: var(--cy-navy) !important;
  border-color: var(--cy-gold) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 20px rgba(18,41,75,.18) !important;
}
/* secondary (gold) */
.c-btn-alt {
  background-color: var(--cy-gold) !important;
  color: var(--cy-navy) !important;
  border-color: var(--cy-gold) !important;
}
.c-btn-alt:hover {
  background-color: var(--cy-navy) !important;
  color: var(--cy-cream) !important;
  border-color: var(--cy-navy) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 20px rgba(18,41,75,.18) !important;
}
/* ghost / transparent — white so it reads on dark hero photos */
.c-btn-transparent {
  background-color: transparent !important;
  color: #ffffff !important;
  border-color: #ffffff !important;
}
.c-btn-transparent:hover {
  background-color: #ffffff !important;
  color: var(--cy-navy) !important;
  border-color: #ffffff !important;
  transform: translateY(-2px) !important;
}

/* Header CTA ("Volunteer") — normalize to standard button size */
.hosting-main-button, a.ct-link-button.hosting-main-button {
  padding: 10px 24px !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  height: auto !important;
  width: auto !important;
}

/* ------------------------------------------------------------------ *
 * Primary navigation — sliding gold underline
 * ------------------------------------------------------------------ */
.oxy-nav-menu .menu-item > a {
  font-weight:500 !important;
  position:relative;
  transition: color .25s ease !important;
}
.oxy-nav-menu .menu-item > a::after {
  content:""; position:absolute; left:0; bottom:-4px;
  height:2px; width:0; background: var(--cy-gold);
  transition: width .28s ease;
}
.oxy-nav-menu .menu-item > a:hover::after,
.oxy-nav-menu .menu-item.current-menu-item > a::after { width:100%; }
.oxy-nav-menu .menu-item > a:hover { color: var(--cy-gold-d) !important; }

/* ------------------------------------------------------------------ *
 * Logo (inline SVG injected in place of the old crest image)
 * ------------------------------------------------------------------ */
.cyseg-logo-svg { display:inline-flex; align-items:center; line-height:0; }
.cyseg-logo-header svg { height:46px; width:auto; display:block; }
.cyseg-logo-footer svg { height:100px; width:auto; display:block; }

/* ------------------------------------------------------------------ *
 * Footer — navy, organized (the designed footer)
 * ------------------------------------------------------------------ */
.ct-section:has(.menu-footer-menu-container),
.ct-section:has(.cyseg-logo-footer) { background-color: var(--cy-navy) !important; }

.ct-section:has(.menu-footer-menu-container) p,
.ct-section:has(.menu-footer-menu-container) li,
.ct-section:has(.menu-footer-menu-container) .ct-text-block,
.ct-section:has(.cyseg-logo-footer) p,
.ct-section:has(.cyseg-logo-footer) .ct-text-block { color:#c4d0e2 !important; }

.ct-section:has(.menu-footer-menu-container) a,
.ct-section:has(.cyseg-logo-footer) a { color:#c9d4e6 !important; transition:color .2s ease; }
.ct-section:has(.menu-footer-menu-container) a:hover,
.ct-section:has(.cyseg-logo-footer) a:hover { color: var(--cy-light-gold) !important; }

.ct-section:has(.menu-footer-menu-container) :is(h1,h2,h3,h4,h5),
.ct-section:has(.cyseg-logo-footer) :is(h1,h2,h3,h4,h5) { color: var(--cy-light-gold) !important; }

/* footer menu items — spacing + drop the odd active underline */
.menu-footer-menu-container .menu-item,
.menu-footer-programs-container .menu-item { margin:0 0 7px !important; }
.menu-footer-menu-container .menu-item a,
.menu-footer-programs-container .menu-item a { display:inline-block; padding:2px 0 !important; font-size:15px; }
.menu-footer-menu-container .current-menu-item > a::after,
.menu-footer-programs-container .current-menu-item > a::after { width:0 !important; }

/* added first-column heading ("Explore") to match "Programs" */
.cyseg-fcol-h {
  color: var(--cy-light-gold) !important;
  font-family:'Montserrat', sans-serif; font-weight:600; font-size:16px;
  letter-spacing:.3px; margin:0 0 12px !important;
}

/* social icons — legible on navy */
.ct-section:has(.menu-footer-menu-container) .ct-fancy-icon {
  background-color: rgba(255,255,255,0.09) !important;
  color:#E4C878 !important; fill:#E4C878 !important; transition: all .2s ease;
}
.ct-section:has(.menu-footer-menu-container) .ct-fancy-icon svg { fill:#E4C878 !important; }
.ct-section:has(.menu-footer-menu-container) .ct-fancy-icon:hover { background-color: var(--cy-gold) !important; color: var(--cy-navy) !important; }
.ct-section:has(.menu-footer-menu-container) .ct-fancy-icon:hover svg { fill: var(--cy-navy) !important; }

/* bottom copyright bar (year + made-with-love injected by JS) */
.cyseg-footer-bar {
  width:100%; margin:26px auto 0; padding:18px 8px 2px;
  border-top:1px solid rgba(255,255,255,.13);
  font-family:'Montserrat', sans-serif; font-size:13px; color:#9fb0c8;
  text-align:center; line-height:1.9;
}
.cyseg-footer-bar .cyseg-heart { color:#e0645f; }

/* align the footer columns to the top so headings line up */
.ct-div-block:has(.menu-footer-menu-container) { align-items: flex-start !important; }
.ct-section:has(.menu-footer-menu-container) .ct-div-block { align-self: start !important; }
.ct-section:has(.menu-footer-menu-container) :is(h1,h2,h3,h4,h5) { margin-top: 0 !important; }
.menu-footer-menu-container, .menu-footer-programs-container { margin-top: 0 !important; }
.cyseg-fcol-h { margin-top: 0 !important; }

/* ------------------------------------------------------------------ *
 * Animated dotted-earth — warm gold tint + a light sweep across the dots
 * (overlay is mask-clipped to the dot shape in JS, so only dots glow)
 * ------------------------------------------------------------------ */
#div_block-1622-20 { position: relative !important; isolation: isolate; }
.cyseg-earth-shimmer {
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:
    linear-gradient(110deg, rgba(255,255,255,0) 34%, rgba(226,196,120,0.55) 45%, rgba(255,246,220,0.95) 50%, rgba(226,196,120,0.55) 55%, rgba(255,255,255,0) 66%),
    linear-gradient(rgba(226,196,120,0.16), rgba(226,196,120,0.16));
  background-repeat: no-repeat, no-repeat;
  background-size: 250% 100%, 100% 100%;
  background-position: 165% 0, 0 0;
  mix-blend-mode: screen;
  animation: cyseg-earth-sweep 8s cubic-bezier(.6,.05,.4,.95) infinite;
}
@keyframes cyseg-earth-sweep {
  0%   { background-position: 165% 0, 0 0; }
  55%  { background-position: -65% 0, 0 0; }
  100% { background-position: -65% 0, 0 0; }
}
@media (prefers-reduced-motion: reduce){ .cyseg-earth-shimmer{ animation:none; } }

/* ------------------------------------------------------------------ *
 * Team member cards — uniform photos, equal height, on-brand
 * ------------------------------------------------------------------ */
.ct-div-block:has(> .hosting-price-1-wrapper) { align-items: stretch !important; }
.hosting-price-1-wrapper {
  display:flex !important; flex-direction:column !important;
  border-radius:14px !important; overflow:hidden !important;
  border:1px solid rgba(18,41,75,0.10) !important;
  box-shadow:0 6px 22px rgba(18,41,75,0.06);
  transition: transform .3s ease, box-shadow .3s ease; background:#fff;
}
.hosting-price-1-wrapper:hover { transform:translateY(-5px); box-shadow:0 14px 34px rgba(18,41,75,0.13); }
.hosting-price-1-wrapper .ct-image {
  width:100% !important; height:270px !important; max-width:none !important;
  object-fit:cover !important; object-position:center 22% !important;
  border-radius:0 !important; border-bottom:3px solid var(--cy-gold) !important; display:block;
}
