/*
Theme Name: Explore Freedom Services
Template: twentytwentyfive
Version: 1.0.21
Description: Warm, accessible block theme styling for a community-based nonprofit services website.
*/

:root {
  --efs-ink: #24342f;
  --efs-muted: #586861;
  --efs-cream: #fff9ef;
  --efs-paper: #fffef9;
  --efs-sage: #d9e9dd;
  --efs-sage-strong: #2e6f63;
  --efs-coral: #c95f45;
  --efs-coral-dark: #9f3f2f;
  --efs-gold: #f1c76f;
  --efs-blue: #dcebf0;
  --efs-line: #e7dccb;
  --efs-radius: 8px;
  --efs-shadow: 0 18px 45px rgba(49, 61, 51, 0.11);
}

html { scroll-behavior: smooth; }
body { background: var(--efs-cream); color: var(--efs-ink); }
body, button, input, textarea, select { font-family: "Lora", Georgia, serif; }
h1, h2, h3, h4, h5, h6, .wp-block-heading { color: var(--efs-ink); font-family: "Playfair Display", Georgia, serif; letter-spacing: 0; line-height: 1.08; }
p, li { color: var(--efs-muted); line-height: 1.7; }
a { color: var(--efs-sage-strong); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid var(--efs-gold); outline-offset: 3px; }

.wp-site-blocks,
.efs-site-header,
.efs-page,
.efs-section,
.efs-footer {
  box-sizing: border-box;
  width: 100%;
}

.efs-site-header *,
.efs-page *,
.efs-footer * {
  box-sizing: border-box;
}

.wp-site-blocks .alignwide,
.efs-site-header .alignwide,
.efs-page .alignwide,
.efs-footer .alignwide {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: var(--wp--style--global--wide-size, 1180px);
  width: min(calc(100% - 32px), var(--wp--style--global--wide-size, 1180px));
}

.efs-page > .alignfull,
.efs-section.alignfull,
.efs-site-header.alignfull,
.efs-footer.alignfull {
  max-width: none;
  width: 100%;
}

.wp-block-columns,
.efs-page .wp-block-columns,
.efs-footer .wp-block-columns {
  align-items: normal !important;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap !important;
  gap: clamp(1.25rem, 3vw, 2.4rem);
  min-width: 0;
}

.wp-block-column,
.efs-page .wp-block-column,
.efs-footer .wp-block-column {
  flex-grow: 1;
  min-width: 0;
  overflow-wrap: normal;
  word-break: normal;
}

.efs-site-header h1,
.efs-site-header h2,
.efs-site-header h3,
.efs-page h1,
.efs-page h2,
.efs-page h3,
.efs-page p,
.efs-footer h1,
.efs-footer h2,
.efs-footer h3,
.efs-footer p,
.efs-footer a {
  overflow-wrap: normal;
  word-break: normal;
  writing-mode: horizontal-tb;
}

.efs-site-header { position: sticky; top: 0; z-index: 20; background: rgba(255, 249, 239, 0.94); border-bottom: 1px solid rgba(231, 220, 203, 0.9); backdrop-filter: blur(14px); overflow-x: clip; }
.efs-header-inner { align-items: center; box-sizing: border-box; display: flex; flex-wrap: wrap; gap: 16px 28px; justify-content: space-between; min-height: 76px; max-width: 100%; }
.efs-brand, .efs-brand a { white-space: nowrap; }
.efs-brand a { color: var(--efs-ink); font-family: "Playfair Display", Georgia, serif; font-size: 1.18rem; font-weight: 800; text-decoration: none; }
.efs-nav .wp-block-navigation__container { display: flex; flex-wrap: wrap; gap: 12px 22px; }
.efs-nav a { color: var(--efs-ink); font-family: "Lora", Georgia, serif; font-size: 0.96rem; font-weight: 700; text-decoration: none; }
.efs-nav a:hover { color: var(--efs-coral-dark); }
.efs-page { margin-top: 0 !important; }

.efs-section { padding-top: clamp(48px, 7vw, 92px); padding-bottom: clamp(48px, 7vw, 92px); }
.efs-hero { min-height: calc(100vh - 76px); padding-top: clamp(52px, 8vw, 96px); padding-bottom: clamp(44px, 7vw, 80px); background: linear-gradient(120deg, rgba(255, 249, 239, 0.96) 0%, rgba(255, 249, 239, 0.72) 52%, rgba(217, 233, 221, 0.68) 100%), url('https://images.unsplash.com/photo-1529156069898-49953e39b3ac?auto=format&fit=crop&w=1800&q=80') center/cover; border-bottom: 1px solid var(--efs-line); }
.efs-subhero { padding-top: clamp(56px, 8vw, 104px); padding-bottom: clamp(40px, 7vw, 80px); background: var(--efs-paper); border-bottom: 1px solid var(--efs-line); }
.efs-kicker { margin-bottom: 14px; color: var(--efs-coral-dark); font-family: "Lora", Georgia, serif; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.efs-lede { color: #40524a; font-size: clamp(1.08rem, 1.6vw, 1.28rem); line-height: 1.75; }
.efs-hero h1, .efs-subhero h1 { max-width: 880px; font-size: clamp(2.6rem, 7vw, 5.65rem); }
.efs-hero h1 { white-space: nowrap; font-size: clamp(2.25rem, 5.6vw, 5.65rem); }
.efs-hero-layout { --efs-hero-logo-size: clamp(230px, 22vw, 300px); align-items: center !important; gap: clamp(1.5rem, 3vw, 2.6rem); }
.efs-hero-logo-column { flex-basis: var(--efs-hero-logo-size) !important; flex-grow: 0; }
.efs-hero-logo-figure { margin: 0; }
.efs-hero-logo-figure img, .efs-hero-logo-image { aspect-ratio: 1; background: transparent; border: 0; box-shadow: none; display: block; height: auto; max-width: 100%; object-fit: contain; width: var(--efs-hero-logo-size); }
.efs-hero-copy { flex: 1; max-width: none; }
.efs-hero-copy h1 { font-size: clamp(2.25rem, 4.45vw, 4.15rem); margin: 0 0 1rem; max-width: none; white-space: normal; }
.efs-hero-copy .efs-lede { margin: 0 0 1.55rem; max-width: none; }

.efs-button .wp-block-button__link, .wp-block-button.is-style-fill .wp-block-button__link { background: var(--efs-coral); border: 2px solid var(--efs-coral); border-radius: 999px; color: #fff; font-family: "Lora", Georgia, serif; font-weight: 700; padding: 0.88rem 1.25rem; }
.efs-button-secondary .wp-block-button__link, .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 2px solid var(--efs-sage-strong); border-radius: 999px; color: var(--efs-sage-strong); font-family: "Lora", Georgia, serif; font-weight: 700; padding: 0.88rem 1.25rem; }

.efs-card { background: var(--efs-paper); border: 1px solid var(--efs-line); border-radius: var(--efs-radius); box-shadow: var(--efs-shadow); padding: clamp(22px, 3vw, 34px); }
.efs-soft-card { background: #f4efe4; border: 1px solid var(--efs-line); border-radius: var(--efs-radius); padding: clamp(22px, 3vw, 34px); }
.efs-sage-band { background: var(--efs-sage); border-top: 1px solid rgba(46, 111, 99, 0.16); border-bottom: 1px solid rgba(46, 111, 99, 0.16); }
.efs-blue-band { background: var(--efs-blue); }
.efs-photo img, .efs-gallery img { aspect-ratio: 4 / 3; border-radius: var(--efs-radius); box-shadow: var(--efs-shadow); object-fit: cover; width: 100%; }
.efs-gallery figcaption { color: var(--efs-muted); font-size: 0.92rem; margin-top: 10px; }
.efs-stat { border-left: 5px solid var(--efs-coral); }
.efs-values-list li, .efs-check-list li { margin-bottom: 0.65rem; }

.efs-video-placeholder { align-items: center; aspect-ratio: 16 / 9; background: var(--efs-sage-strong); border-radius: var(--efs-radius); box-sizing: border-box; color: #fff; display: flex; font-family: "Playfair Display", Georgia, serif; font-weight: 800; justify-content: center; max-width: 100%; min-height: 220px; overflow-wrap: anywhere; padding: 24px; text-align: center; width: 100%; }
.efs-contact-panel { background: var(--efs-paper); border: 1px solid var(--efs-line); border-radius: var(--efs-radius); box-shadow: var(--efs-shadow); padding: clamp(24px, 4vw, 42px); }
.efs-form-row { margin-bottom: 1rem; }
.efs-form-row input, .efs-form-row textarea { background: #fff; border: 2px solid #b9a78f !important; border-radius: var(--efs-radius); box-shadow: inset 0 1px 0 rgba(36, 52, 47, 0.03); box-sizing: border-box; color: var(--efs-ink); font: inherit; padding: 0.9rem 1rem; transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; width: 100%; }
.efs-form-row input::placeholder, .efs-form-row textarea::placeholder { color: #687770; opacity: 1; }
.efs-form-row input:hover, .efs-form-row textarea:hover { border-color: var(--efs-sage-strong); }
.efs-form-row input:focus, .efs-form-row textarea:focus, .efs-form-row input:focus-visible, .efs-form-row textarea:focus-visible { background: #fff; border-color: var(--efs-coral) !important; box-shadow: 0 0 0 4px rgba(201, 95, 69, 0.18); outline: 0; }
.efs-form-row label { color: var(--efs-ink); display: block; font-weight: 700; margin-bottom: 0.45rem; }
.efs-contact-panel button[type="submit"] { background: var(--efs-coral); border: 2px solid var(--efs-coral); border-radius: 999px; color: #fff; cursor: pointer; font: inherit; font-weight: 800; padding: 0.95rem 1.35rem; }
.efs-contact-panel button[type="submit"]:hover, .efs-contact-panel button[type="submit"]:focus-visible { background: var(--efs-coral-dark); border-color: var(--efs-coral-dark); }
.efs-contact-panel input[name="botcheck"] { display: none !important; }

.efs-footer { background: #263a34; color: #fff; padding-bottom: 36px; padding-top: 44px; overflow-x: clip; }
.efs-footer h1, .efs-footer h2, .efs-footer h3 { color: #fff; }
.efs-footer-title { white-space: nowrap; }
.efs-footer p, .efs-footer a { color: #eef8f1; }
.efs-footer a { text-decoration-thickness: 1px; text-underline-offset: 4px; }

@media (min-width: 782px) {
  .wp-block-columns,
  .efs-page .wp-block-columns,
  .efs-footer .wp-block-columns {
    flex-wrap: nowrap !important;
  }

  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column,
  .efs-page .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column,
  .efs-footer .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 0;
    flex-grow: 1;
  }

  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis"],
  .efs-page .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis"],
  .efs-footer .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis"] {
    flex-grow: 0;
  }

  .efs-footer .wp-block-column:first-child {
    flex: 0 1 46%;
  }
}

@media (max-width: 781px) {
  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column,
  .efs-page .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column,
  .efs-footer .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 100% !important;
  }

  .efs-page .wp-block-column,
  .efs-footer .wp-block-column {
    flex-basis: auto !important;
    width: 100%;
  }
}

@media (max-width: 760px) {
  .efs-header-inner { align-items: flex-start !important; gap: 16px; padding-bottom: 18px !important; padding-top: 18px !important; }
  .efs-brand a { font-size: 1rem; }
  .efs-nav .wp-block-navigation__container { row-gap: 10px; }
  .efs-hero { min-height: auto; }
  .efs-hero h1 { font-size: clamp(1.78rem, 7.3vw, 2.1rem); }
  .efs-hero-layout { gap: 1.25rem; }
  .efs-hero-logo-column { flex-basis: auto !important; }
  .efs-hero-logo-figure img, .efs-hero-logo-image { width: min(100%, 300px); }
  .efs-subhero h1 { font-size: clamp(2.35rem, 13vw, 3.5rem); }
  .efs-card, .efs-soft-card, .efs-contact-panel { padding: 22px; }
  .efs-footer-title { font-size: clamp(1.15rem, 6.2vw, 1.55rem) !important; }
}

@media (max-width: 420px) {
  .efs-brand a { font-size: 0.84rem; }
  .efs-hero h1 { font-size: clamp(1.55rem, 6.8vw, 1.72rem); white-space: normal; }
  .efs-footer-title { font-size: 1.08rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .efs-hero-logo-video { display: none; }
}


body.page-id-9 .efs-subhero {
  background: #deece1;
}

/* Staging layout hardening: keep front-end block layouts consistent even when
   WordPress/Gutenberg layout CSS is missing, delayed, or optimized. */
:root {
  --wp--style--global--content-size: 760px;
  --wp--style--global--wide-size: 1180px;
  --wp--style--block-gap: clamp(1.25rem, 3vw, 2.4rem);
}

html,
body {
  margin: 0;
  max-width: none;
  overflow-x: clip;
  width: 100%;
}

.wp-site-blocks,
.wp-site-blocks > main,
.wp-site-blocks > header,
.wp-site-blocks > footer,
.efs-page {
  max-width: none !important;
  overflow-x: clip;
  width: 100% !important;
}

.wp-site-blocks .alignfull,
.wp-site-blocks .efs-site-header,
.wp-site-blocks .efs-section,
.wp-site-blocks .efs-footer {
  box-sizing: border-box;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: 100vw !important;
  width: 100vw !important;
}

.wp-site-blocks .efs-site-header > .alignwide,
.wp-site-blocks .efs-section > .alignwide,
.wp-site-blocks .efs-section > .wp-block-columns.alignwide,
.wp-site-blocks .efs-footer > .alignwide,
.wp-site-blocks .efs-footer > .wp-block-columns.alignwide {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: var(--wp--style--global--wide-size) !important;
  width: min(calc(100vw - 32px), var(--wp--style--global--wide-size)) !important;
}

.wp-site-blocks .efs-section > :where(:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.wp-block-columns)),
.wp-site-blocks .efs-footer > :where(:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.wp-block-columns)) {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: var(--wp--style--global--content-size) !important;
  width: min(calc(100vw - 32px), var(--wp--style--global--content-size)) !important;
}

.wp-site-blocks .wp-block-columns {
  align-items: normal !important;
  box-sizing: border-box !important;
  display: flex !important;
  gap: var(--wp--style--block-gap) !important;
  min-width: 0 !important;
}

.wp-site-blocks .wp-block-columns.are-vertically-aligned-center {
  align-items: center !important;
}

.wp-site-blocks .wp-block-columns.are-vertically-aligned-top {
  align-items: flex-start !important;
}

.wp-site-blocks .wp-block-columns.are-vertically-aligned-bottom {
  align-items: flex-end !important;
}

.wp-site-blocks .wp-block-column {
  box-sizing: border-box !important;
  min-width: 0 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.wp-site-blocks .wp-block-column > * {
  max-width: 100%;
}

.wp-site-blocks .efs-photo,
.wp-site-blocks .efs-photo img,
.wp-site-blocks .efs-gallery img {
  display: block;
  max-width: 100% !important;
}

.wp-site-blocks figure.efs-photo,
.wp-site-blocks figure.efs-gallery {
  margin: 0 !important;
}

.wp-site-blocks .efs-photo img,
.wp-site-blocks .efs-gallery img {
  height: auto !important;
  object-fit: cover !important;
  width: 100% !important;
}

.wp-site-blocks .efs-photo img:not([style*="aspect-ratio"]),
.wp-site-blocks .efs-gallery img:not([style*="aspect-ratio"]) {
  aspect-ratio: 4 / 3 !important;
}

@media (min-width: 782px) {
  .wp-site-blocks .wp-block-columns {
    flex-wrap: nowrap !important;
  }

  .wp-site-blocks .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex: 1 1 0 !important;
    width: auto !important;
  }

  .wp-site-blocks .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis:48%"],
  .wp-site-blocks .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis: 48%"] {
    flex: 0 0 48% !important;
    max-width: 48% !important;
  }

  .wp-site-blocks .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis:46%"],
  .wp-site-blocks .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis: 46%"] {
    flex: 0 0 46% !important;
    max-width: 46% !important;
  }

  .wp-site-blocks .efs-hero-logo-column {
    flex: 0 0 var(--efs-hero-logo-size) !important;
    max-width: var(--efs-hero-logo-size) !important;
  }

  .wp-site-blocks .efs-hero-copy {
    flex: 1 1 0 !important;
    max-width: none !important;
  }
}

@media (max-width: 781px) {
  .wp-site-blocks .wp-block-columns:not(.is-not-stacked-on-mobile) {
    flex-direction: column !important;
    flex-wrap: wrap !important;
  }

  .wp-site-blocks .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
  }
}

/* Tablet and mobile width hardening. Desktop layout remains unchanged. */
@media (max-width: 1200px) {
  :root {
    --efs-responsive-gutter: clamp(16px, 3vw, 24px);
  }

  html,
  body,
  .wp-site-blocks,
  .wp-site-blocks > main,
  .wp-site-blocks > header,
  .wp-site-blocks > footer,
  .efs-page,
  .entry-content {
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
  }

  .wp-site-blocks .alignfull,
  .wp-site-blocks .efs-site-header,
  .wp-site-blocks .efs-section,
  .wp-site-blocks .efs-footer {
    left: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    right: auto !important;
    transform: none !important;
    width: 100% !important;
  }

  .wp-site-blocks .alignwide,
  .wp-site-blocks .efs-site-header > .alignwide,
  .wp-site-blocks .efs-section > .alignwide,
  .wp-site-blocks .efs-section > .wp-block-columns.alignwide,
  .wp-site-blocks .efs-footer > .alignwide,
  .wp-site-blocks .efs-footer > .wp-block-columns.alignwide,
  .wp-site-blocks .efs-section > :where(:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.wp-block-columns)),
  .wp-site-blocks .efs-footer > :where(:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.wp-block-columns)) {
    box-sizing: border-box !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: calc(100% - (2 * var(--efs-responsive-gutter))) !important;
    width: calc(100% - (2 * var(--efs-responsive-gutter))) !important;
  }

  .wp-site-blocks .wp-block-columns,
  .wp-site-blocks .wp-block-column,
  .wp-site-blocks .efs-card,
  .wp-site-blocks .efs-soft-card,
  .wp-site-blocks .efs-contact-panel,
  .wp-site-blocks .efs-application-form,
  .wp-site-blocks .efs-about-panel,
  .wp-site-blocks .efs-partner-grid,
  .wp-site-blocks .efs-partner-logo,
  .wp-site-blocks .wp-block-navigation,
  .wp-site-blocks form {
    box-sizing: border-box !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .wp-site-blocks img,
  .wp-site-blocks video,
  .wp-site-blocks iframe,
  .wp-site-blocks canvas,
  .wp-site-blocks svg,
  .wp-site-blocks input,
  .wp-site-blocks textarea,
  .wp-site-blocks select {
    box-sizing: border-box !important;
    max-width: 100% !important;
  }

  .wp-site-blocks input[type="file"],
  .wp-site-blocks .wpcf7-form-control-wrap {
    box-sizing: border-box !important;
    display: block !important;
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  .wp-site-blocks .wpcf7-form-control-wrap .wpcf7-form-control {
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  .efs-brand,
  .efs-brand a,
  .efs-footer-title,
  .efs-page a,
  .efs-footer a {
    overflow-wrap: anywhere !important;
    white-space: normal !important;
    word-break: normal !important;
  }
}

