@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap');

:root {
  --font: "Bricolage Grotesque", sans-serif;
  --color-gold: #f3c948;
  --color-amber: #e8a020;
  --color-navy: #1e2d5e;
  --color-green: #2d5a1b;
  --widget-border-radius: 24px;
}

/* START S6 */
body,
.co_body h2,
.co_body .content li,
.co_body .content .form-all li,
H3.form-header,
.hp-row-first .cycle-caption .readMore, .registration__action__register,
.co_body .below-article__title,
.small-links,
.article_index .row .title a,
.about--blocks .container h2,
.about--blocks .container h2,
.about--blocks .container ul li a p,
.about--blocks .container > p,
.chabad_updates .widget_content .slick-slide,
.about--blocks .container > p,
.article-body.co_body div,
.article-body.co_body p,
.article-body.co_body span,
.article-body.co_body,
.article-header h1,
.breadcrumbs,
.co_body .content p,
.contact__form__body ul li label,
.footer__address h2,
.footer__address p,
.footer__copyright,
.footer__information .footer__mail a,
.form-textarea,
.header__extended .header__contact a,
.header__extended .header__mail a,
.header__extended .header__phone a,
.header-logo__subtitle,
.header-logo__title,
.hp-row-first .cycle-caption,
.latest_blogs,
.latest_photos ul li:after,
.latest_photos .widget_header,
.nav-menu.--collapsed .nav-menu__item > a,
.nav-menu.--collapsed .nav-menu__submenu-item a,
.nav-menu.--expanded .nav-menu__item > a,
.nav-menu.--expanded ul li a,
.page-tools,
.registration__action__register,
.registration__counter h2,
.registration__counter__days p,
.registration__counter__days span,
.registration__counter__hours p,
.registration__counter__hours span,
.registration__counter__minutes p,
.registration__counter__minutes span,
.registration__counter__seconds p,
.registration__counter__seconds span,
.registration__details p,
.registration__details span,
.subscribe .widget_header,
.subscribe form .buttonStyle1,
.subscribe form .co_global_input,
.subscribe small,
.userform-form .form-radio-item span,
.userform-form input[type="email"],
.userform-form input[type="text"],
.userform-form label,
button,
input,
select,
#count, #details-panel, .caption-wrapper,
textarea {
  font-family: var(--font);
}


/* =============================================
   TOP BAR
   ============================================= */

.header__extended {
  background-color: var(--color-amber);
}

.header__extended .header__contact a,
.header__extended .header__mail a,
.header__extended .header__phone a {
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.02em;
}

.header__extended .header__contact a:hover,
.header__extended .header__mail a:hover,
.header__extended .header__phone a:hover {
  color: var(--color-navy);
}


/* =============================================
   HEADER & LOGO
   ============================================= */

.header .wrapper {
  box-shadow: 0 1px 0 rgba(0,0,0,0.06), 0 4px 16px rgba(0,0,0,0.05);
}

.header-logo__title {
  color: var(--color-navy);
  font-weight: 800;
  letter-spacing: -0.025em;
}

h2.header-logo__subtitle {
  color: var(--color-amber);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Hide subtitle when scrolled (matches NH pattern) */
.on-scroll .header-logo__subtitle {
  display: none;
}


/* =============================================
   NAVIGATION
   ============================================= */

.nav-menu.--collapsed .nav-menu__item > a,
.nav-menu.--expanded .nav-menu__item > a {
  font-weight: 600;
  color: #2d3748;
  letter-spacing: 0.01em;
}

.nav-menu.--collapsed .nav-menu__item:hover > a,
.nav-menu.--expanded .nav-menu__item:hover > a,
.nav-menu.--collapsed .nav-menu__item.current-menu-item > a,
.nav-menu.--expanded .nav-menu__item.current-menu-item > a {
  color: var(--color-green);
}

.nav-menu.--collapsed .nav-menu__submenu-item a:hover {
  background: var(--color-amber);
}

/* Donate nav item — navy pill button, mirrors NH "Enroll" pattern */
.header__main .nav-menu .nav-menu__item:last-child {
  background: var(--color-navy);
  height: 40px;
  padding: 10px 18px;
  text-align: center;
  text-transform: uppercase;
  border-radius: 20px;
  align-items: center;
  justify-content: center;
}

.header__main .nav-menu .nav-menu__item:last-child > a {
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
}


/* =============================================
   HERO / SLIDER
   ============================================= */

/* Dark navy tint over the slide background image */
.hp-row-first .slide_wrapper {
  background-color: rgb(30 45 94 / 52%);
}

.hp-row-first .cycle-caption {
  align-items: end;
  padding: 48px 44px 40px;
}

/* "Welcome!" — huge italic gold */
.hp-row-first .cycle-caption big {
  font-size: 96px;
  font-style: italic;
  font-weight: 800;
  color: var(--color-gold);
  line-height: 1;
  letter-spacing: -0.025em;
  text-shadow: 0 2px 16px rgba(0,0,0,0.25);
  text-transform: none;
}

/* Subtitle — italic white */
.hp-row-first .cycle-caption span {
  font-style: italic;
  font-size: 19px;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
  text-shadow: 0 1px 6px rgba(0,0,0,0.4);
}

/* Register Now — outline pill, fills amber on hover */
.hp-row-first .cycle-caption .readMore {
  background: none;
  border-bottom: none;
  border: 2px solid var(--color-amber);
  border-radius: 40px;
  padding: 10px 26px;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: background 0.2s, border-color 0.2s;
}

body .hp-row-first .cycle-caption .readMore:hover {
  background: var(--color-amber);
  border-color: var(--color-amber);
}

.hp-row-first .cycle-caption p {
  background: none;
}

@media (max-width: 799px) {
  /* Darker overlay on mobile — bright images need more contrast */
  .hp-row-first .slide_wrapper {
    background-color: rgb(10 20 50 / 68%);
  }

  /* Bottom-to-top gradient on caption for text legibility */
  .hp-row-first .cycle-caption {
    background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.2) 55%, transparent 100%);
    padding: 28px 22px 24px;
    justify-content: flex-start;
    align-items: flex-end;
  }

  .hp-row-first .cycle-caption big {
    font-size: 52px;
    text-shadow: 0 2px 12px rgba(0,0,0,0.6);
  }

  .hp-row-first .cycle-caption span {
    font-size: 15px;
    text-shadow: 0 1px 8px rgba(0,0,0,0.8);
    margin-bottom: 10px;
  }

  .rightColumn.g480 {
    margin-left: 0;
}

  .hp-row-first .cycle-caption .readMore {
    padding: 8px 20px;
    font-size: 13px;
  }

  /* Donate pill in open hamburger menu — full width centered button */
  .header__main .nav-menu .nav-menu__item:last-child {
    height: auto;
    display: flex;
    margin-left: 24px;
    margin-right: 24px;
    border-radius: 50px;
    margin-top: 24px;
    padding: 12px 18px;
  }

  /* About block: flush to edges on mobile */
  .about--blocks .container {
    border-radius: 0;
  }

  /* Inner page hero h1 — scale down to prevent overflow */
  .article-header h1 {
    font-size: 28px;
    letter-spacing: -0.02em;
  }
}

@media (max-width: 650px) {
  .hp-row-first .slide_wrapper a img {
    background-position-x: left !important;
  }
}


/* =============================================
   ABOUT / FEATURE BLOCKS
   ============================================= */

.about--blocks .container {
  border-radius: var(--widget-border-radius);
  background: rgba(224, 116, 34, 0.88);
}

.about--blocks .container h2 {
  font-weight: 800;
  color: #fff;
}

.about--blocks .container > p,
.about--blocks .container ul li a p {
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.6;
}


/* =============================================
   TESTIMONIALS / UPDATES
   ============================================= */

.chabad_updates .wrapper {
  background-color: var(--color-navy);
  border-radius: var(--widget-border-radius);
}


/* =============================================
   PHOTO GALLERY
   ============================================= */

.latest_photos .wrapper {
  width: 100%;
  max-width: 100%;
  padding: 0;
}

.latest_photos ul li {
  overflow: hidden;
}

.latest_photos ul li img {
  transition: transform 0.35s ease;
}

.latest_photos ul li:hover img {
  transform: scale(1.06);
}


/* =============================================
   SUBSCRIBE WIDGET
   ============================================= */

.subscribe .widget_header {
  font-weight: 700;
  color: #1e293b;
}

.subscribe form .buttonStyle1 {
  background: var(--color-navy);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-weight: 600;
}


/* =============================================
   FOOTER — warm gold
   ============================================= */

.footer {
  background: var(--color-gold);
}

.footer__address h2 {
  color: var(--color-navy);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.footer__address p,
.footer__copyright {
  color: #5c3e08;
  font-size: 13px;
  line-height: 1.7;
}

.footer__information .footer__mail a {
  color: var(--color-navy);
}

.footer__copyright a {
  color: var(--color-navy);
}

/* Footer nav — top-level in navy caps, sub-links in warm brown */
.footer ul > li > a {
  color: var(--color-navy);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}

.footer ul li li a {
  color: #5c3e08;
  font-size: 13px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  text-decoration: none;
  transition: color 0.15s;
}

.footer ul > li > a:hover,
.footer ul li li a:hover {
  text-decoration: underline;
}


/* =============================================
   ARTICLE / INNER PAGES
   ============================================= */

/* Constrain text to a readable column width, breathe away from hero */
.article-body.co_body {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 40px;
}

.article-body.co_body div, .article-body.co_body p, .article-body.co_body span {
  letter-spacing: 0;
  line-height: 1.65;
}

/* Sub-page index nav cards (e.g. About → About Our Camp / Our Facility / FAQ)
   Platform uses position:absolute for .inner and the a inside it.
   We replace the tall 250px grey boxes with compact navy pill cards. */
.article_index_container {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px;
}

.article_index_container .article_index {
  gap: 16px;
  flex-wrap: wrap;
}

.article_index_container .row {
  flex: 1;
  min-width: 160px;
  height: 68px;
}

.article_index_container .inner {
  height: 68px;
  background: var(--color-navy);
  border-radius: 12px;
  overflow: hidden;
  transition: background 0.2s, transform 0.15s;
}

.article_index_container .inner:hover {
  background: var(--color-amber);
  transform: translateY(-2px);
}

.article_index_container .title a {
  display: flex;
  align-items: center;
  padding: 0 22px;
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  letter-spacing: 0.01em;
}

.article_index_container .title a::after {
  content: ' →';
  margin-left: auto;
  opacity: 0.6;
}

/* h1 sits over a photo banner — must be white, not navy */
.article-header h1 {
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.55);
}

/* Breadcrumb link above the h1 */
.breadcrumbs__crumb,
.breadcrumbs a {
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}

.co_body h2,
.co_body h3 {
  color: var(--color-navy);
}


/* =============================================
   REGISTRATION FORM
   ============================================= */

/* Form container */
.userform-form {
  max-width: 760px;
  margin: 0 auto;
}

/* Section headings — override platform's inline display and blue background */
.userform-form .form-header {
  display: block;
  background: transparent;
  color: var(--color-navy);
  font-weight: 800;
  font-size: 17px;
  letter-spacing: -0.01em;
  padding: 6px 0 6px 14px;
  border-left: 4px solid var(--color-amber);
  margin: 8px 0 4px;
  line-height: 1.3;
}

/* Sub-header description text under section heading */
.userform-form .form-subHeader {
  color: #64748b;
  font-size: 13px;
  margin-top: 10px;
  margin-bottom: 4px;
}

/* Field rows */
.userform-form .form-line,
.userform-form .form-input-wide {
  padding: 8px 0;
  border-bottom: 1px solid #f1f5f9;
}

/* Labels */
.userform-form .form-label-left label,
.userform-form label {
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  letter-spacing: 0.01em;
}

/* Sub-labels (placeholder hints below inputs) */
.userform-form .form-sub-label {
  font-size: 11px;
  color: #9ca3af;
  margin-top: 3px;
}

/* Text / email / number inputs */
.userform-form input.form-textbox,
.userform-form input[type="text"],
.userform-form input[type="email"],
.userform-form input[type="number"] {
  border: 1.5px solid #d1d5db;
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 14px;
  color: #1a1a2e;
  background: #f9fafb;
  transition: border-color 0.18s, box-shadow 0.18s;
  width: 100%;
  box-sizing: border-box;
}

.userform-form input.form-textbox:focus,
.userform-form input[type="text"]:focus,
.userform-form input[type="email"]:focus,
.userform-form input[type="number"]:focus {
  outline: none;
  border-color: var(--color-amber);
  box-shadow: 0 0 0 3px rgba(232, 160, 32, 0.15);
  background: #fff;
}

/* Dropdowns */
.userform-form select.form-dropdown {
  border: 1.5px solid #d1d5db;
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 14px;
  color: #1a1a2e;
  background: #f9fafb;
  transition: border-color 0.18s;
  cursor: pointer;
}

.userform-form select.form-dropdown:focus {
  outline: none;
  border-color: var(--color-amber);
  box-shadow: 0 0 0 3px rgba(232, 160, 32, 0.15);
}

/* Textarea */
.userform-form textarea {
  border: 1.5px solid #d1d5db;
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 14px;
  color: #1a1a2e;
  background: #f9fafb;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.18s;
}

.userform-form textarea:focus {
  outline: none;
  border-color: var(--color-amber);
  box-shadow: 0 0 0 3px rgba(232, 160, 32, 0.15);
  background: #fff;
}

/* Radio buttons */
.userform-form .form-radio-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: 14px;
  margin-bottom: 4px;
}

.userform-form .form-radio-item input[type="radio"] {
  accent-color: var(--color-amber);
  width: 16px;
  height: 16px;
  cursor: pointer;
}

.userform-form .form-radio-item span {
  font-size: 14px;
  color: #374151;
  font-weight: 500;
}

/* Checkboxes */
.userform-form .form-checkbox-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 6px;
}

.userform-form .form-checkbox-item input[type="checkbox"] {
  accent-color: var(--color-amber);
  width: 16px;
  height: 16px;
  margin-top: 2px;
  cursor: pointer;
  flex-shrink: 0;
}

.userform-form .form-checkbox-item span {
  font-size: 14px;
  color: #374151;
  line-height: 1.4;
}

/* Address / payment tables — no background, just clean cell padding */
.userform-form .form-address-table {
  width: 100%;
  border-collapse: collapse;
}

.userform-form .form-address-table td,
.userform-form .form-address-table th {
  padding: 6px 8px;
  text-align: left;
  border: none;
}

/* Payment table section headers (Credit Card, Billing Address rows) */
.userform-form .form-address-table th {
  background: var(--color-navy);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Credit card icons */
.userform-form .cc-icons {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-bottom: 8px;
}

/* Submit button — match platform's own specificity so our later-loading file wins */
.userform-form .form-buttons-wrapper .form-submit-button {
  background: var(--color-navy);
  color: #fff;
  border: none;
  border-radius: 40px;
  padding: 14px 48px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s;
  margin-top: 12px;
  text-shadow: none;
}

.userform-form .form-buttons-wrapper {
  border-top: 0;
}

.userform-form .form-buttons-wrapper .form-submit-button:hover {
  background: var(--color-amber);
}
