.site-header {
  min-height: 88px;
  padding: 12px 4.5%;
  display: grid;
  grid-template-columns: 190px 1fr auto auto;
  align-items: center;
  gap: 20px;
  background: rgba(255, 255, 255, 0.97);
  position: sticky;
  top: 0;
  z-index: 20;
  max-width: 100%;
}
.brand img { width: 150px; height: auto; }
.site-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  font-size: 0.86rem;
  min-width: 0;
}
.site-nav a { padding: 9px 0; border-bottom: 1px solid transparent; white-space: nowrap; }
.site-nav a:hover,
.site-nav a.active { color: var(--green-dark); border-color: var(--green-dark); }
.site-nav .nav-item {
  position: relative;
  display: flex;
  align-items: center;
}
.site-nav .nav-item > a { padding: 9px 0; }
.site-nav .sub-menu {
  display: none;
  position: absolute;
  top: calc(100% - 2px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 230px;
  padding: 8px 0;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(37, 40, 33, 0.14);
  z-index: 40;
}
.site-nav .nav-item:hover > .sub-menu,
.site-nav .nav-item:focus-within > .sub-menu {
  display: grid;
}
.site-nav .sub-menu a {
  display: block;
  padding: 10px 16px;
  border-bottom: 0;
  white-space: nowrap;
  font-size: 0.84rem;
}
.site-nav .sub-menu a:hover,
.site-nav .sub-menu a.active {
  color: var(--green-dark);
  background: rgba(106, 145, 89, 0.08);
}
.header-cta { white-space: nowrap; }
.header-cta--nav { display: none; }
.menu-toggle { display: none; background: none; border: 0; padding: 10px; }
.menu-toggle span { display: block; width: 26px; height: 2px; background: var(--ink); margin: 5px; }
body.tym-nav-open { overflow: hidden; }

.expanded-footer,
.site-footer,
.tym-footer-beige {
  height: auto;
  min-height: 0;
  display: block;
  padding: 0;
  gap: 0;
  background: var(--paper);
  color: var(--ink);
  font-size: 0.92rem;
}
.tym-footer-main {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr) minmax(0, 1.35fr);
  gap: clamp(28px, 3.5vw, 48px);
  align-items: start;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 56px 7% 40px;
  box-sizing: border-box;
}
.tym-footer-logo img {
  width: min(160px, 70%);
  height: auto;
  margin: 0 0 14px;
  filter: none;
}
.tym-footer-tagline {
  max-width: 340px;
  line-height: 1.7;
  color: #4a5246;
  margin: 0 0 16px;
}
.tym-footer-reach {
  display: grid;
  gap: 6px;
  margin-bottom: 16px;
}
.tym-footer-reach a { color: var(--green-dark); font-weight: 600; }
.tym-footer-verse {
  display: grid;
  gap: 0;
  align-content: start;
  text-align: center;
  justify-items: center;
  padding-top: 8px;
}
.tym-footer-verse-text {
  margin: 0;
  max-width: 420px;
  width: 100%;
  color: var(--green-dark);
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  font-style: normal;
  line-height: 1.6;
  letter-spacing: normal;
  text-align: center;
}
.tym-footer-verse-text.script {
  /* Safety: never apply script face to footer Proverbs even if class lingers. */
  font-family: var(--font-body);
  font-style: normal;
  font-weight: 400;
}
.tym-footer-verse-cite {
  margin: 12px 0 0;
  color: #5a6156;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 400;
  font-style: normal;
  letter-spacing: normal;
  text-align: center;
}
.tym-footer-contact {
  min-width: 0;
  scroll-margin-top: 100px;
  text-align: left;
}
.tym-footer-contact-title {
  margin: 0 0 20px;
  color: var(--green-dark);
  font-family: var(--font-heading);
  font-size: clamp(1.35rem, 2.2vw, 1.65rem);
  font-weight: 700;
  line-height: 1.25;
}
.tym-footer-contact-lede {
  margin: 0 0 20px;
  color: #3f463c;
  font-size: 0.92rem;
  line-height: 1.6;
}
.tym-footer-contact .wpcf7 {
  margin: 0;
  max-width: none;
  width: 100%;
}
.tym-footer-contact .wpcf7-form .contact-form {
  max-width: none;
  width: 100%;
}
.tym-footer-beige .tym-socials a,
.tym-footer-beige .tym-social-links a {
  background: transparent;
}
.tym-footer-beige .tym-socials a:hover,
.tym-footer-beige .tym-social-links a:hover {
  background-color: rgba(49, 86, 66, 0.10);
}
.tym-footer-bottom {
  border-top: 1px solid rgba(63, 100, 69, 0.16);
  padding: 18px 7% 22px;
  display: grid;
  gap: 12px;
  justify-items: center;
  text-align: center;
  background: rgba(255, 255, 255, 0.35);
}
.tym-footer-beige .footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  justify-content: center;
}
.tym-footer-beige .footer-nav a {
  color: var(--green-dark);
  font-weight: 600;
}
.footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  color: #5a6156;
}
.footer-legal a { color: #5a6156; }
.tym-footer-beige .copyright {
  grid-column: auto;
  text-align: center;
  border-top: 0;
  padding-top: 0;
  margin: 0;
  color: #5a6156;
}
.tym-footer-credit {
  margin: 0;
  color: #5a6156;
  font-size: 0.92rem;
}
.tym-footer-credit a {
  color: var(--green-dark);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.expanded-footer > .footer-brand > a img,
.site-footer > .footer-brand > a img { width: 130px; margin: 0 0 12px; filter: none; }
.footer-brand p { max-width: 340px; line-height: 1.7; }
.footer-nav,
.footer-contact,
.footer-newsletter { display: grid; gap: 9px; }
.footer-newsletter h2 {
  margin: 0;
  color: var(--green-dark);
  font-size: 1.05rem;
}
.tym-socials,
.tym-social-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
}
.tym-socials a,
.tym-social-links a {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: inherit;
  transition: background-color 0.15s ease;
}
.tym-socials svg,
.tym-social-links svg,
.tym-socials .tym-social-img,
.tym-social-links img {
  width: 22px;
  height: 22px;
  margin: 0;
  display: block;
  object-fit: contain;
}
.tym-social-links a:hover {
  background-color: rgba(49, 86, 66, 0.10);
}
.tym-social-links a:focus-visible {
  outline: 2px solid #9B782C;
  outline-offset: 3px;
}
@media (pointer: coarse) {
  .tym-social-links a {
    width: 44px;
    height: 44px;
  }
}
.tym-footer-beige .tym-socials a,
.tym-footer-beige .tym-social-links a {
  background: transparent;
}
.tym-footer-beige .tym-socials a:hover,
.tym-footer-beige .tym-social-links a:hover {
  background-color: rgba(49, 86, 66, 0.10);
}
.tym-socials-header {
  margin: 0;
  gap: 8px;
  justify-content: flex-end;
}
.tym-socials-header a {
  width: 36px;
  height: 36px;
  background: transparent;
}
.tym-socials-header a:hover {
  background-color: rgba(49, 86, 66, 0.10);
}
.copyright {
  grid-column: 1 / -1;
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  padding-top: 15px;
  margin: 10px 0 0;
}

.tym-newsletter-form,
.newsletterForm {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.tym-newsletter-form input[type="email"],
.newsletterForm input[type="email"] {
  flex: 1 1 160px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #c9cbbf;
  border-radius: 5px;
}
.tym-newsletter-consent { font-size: 0.75rem; color: #d8dfd5; margin: 8px 0 0; }

/* Contact page — form column wider, tighter field stack (CF7). */
.wp-block-columns.tym-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.85fr) minmax(0, 0.75fr);
  gap: 28px;
  align-items: start;
  flex-wrap: unset;
}
.wp-block-columns.tym-contact-grid > .wp-block-column {
  flex: unset !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0;
}
.page-contact .tym-contact-grid > .wp-block-column:first-child > :is(h2, .wp-block-heading) {
  margin: 0 0 20px;
  padding-bottom: 0;
}
.page-contact .tym-contact-grid > .wp-block-column:first-child > p {
  margin: 0 0 20px;
  padding-bottom: 0;
}
.page-contact .tym-contact-grid > .wp-block-column:first-child .wpcf7 {
  margin-top: 8px;
  max-width: 760px;
  width: 100%;
}
/* Hide legacy Gutenberg privacy sibling once CF7 template includes privacy. */
.page-contact .wp-block-column > p.tym-contact-privacy {
  display: none;
}
.wpcf7-form .tym-cf7-privacy,
.wpcf7-form .tym-cf7-privacy .tym-contact-privacy,
.wpcf7-form p.tym-contact-privacy {
  display: block;
  margin: 0;
  font-size: 0.8rem;
  color: #5a6156;
  line-height: 1.5;
}
.wpcf7-form .contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 5px;
  row-gap: 5px;
  width: 100%;
  max-width: 760px;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}
/* CF7 may wrap markup in <p>; unwrap so field cells join the grid. */
.wpcf7-form .contact-form > p {
  display: contents;
}
.wpcf7-form .contact-form .tym-cf7-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}
/* CF7 nests controls in <p>; kill default paragraph margins between fields. */
.wpcf7-form .contact-form .tym-cf7-field p {
  margin: 0;
}
.wpcf7-form .contact-form .tym-cf7-field.full,
.wpcf7-form .contact-form .tym-cf7-field.tym-cf7-message,
.wpcf7-form .contact-form .tym-cf7-privacy,
.wpcf7-form .contact-form .tym-cf7-submit,
.wpcf7-form .contact-form .tym-cf7-optin,
.wpcf7-form .contact-form .full,
.wpcf7-form .contact-form .tym-cf7-message {
  grid-column: 1 / -1;
  width: 100%;
}
.wpcf7-form .contact-form .tym-cf7-field label {
  display: grid;
  gap: 6px;
  font-size: 0.76rem;
  font-weight: 600;
  min-width: 0;
}
.wpcf7-form .contact-form .tym-cf7-optin {
  margin-top: 0;
}
.wpcf7-form .contact-form .tym-cf7-optin label {
  font-weight: 500;
  color: #3f463c;
  line-height: 1.45;
  font-size: 0.84rem;
}
.wpcf7-form .contact-form .tym-cf7-privacy {
  margin-top: 0;
}
.wpcf7-form .contact-form .tym-cf7-submit {
  margin-top: 0;
}
.wpcf7-form .contact-form .tym-cf7-submit input.wpcf7-submit,
.wpcf7-form .contact-form .tym-cf7-submit input.button {
  margin-top: 0;
  justify-self: start;
}
.wpcf7-form .contact-form .tym-cf7-optin .wpcf7-list-item { margin: 0; }
.wpcf7-form .contact-form .tym-cf7-optin input[type="checkbox"] {
  width: auto !important;
  min-height: 0;
  margin: 3px 8px 0 0;
  vertical-align: top;
}
/* Checkbox + label on one left-aligned row (CF7 wraps input + span in label). */
.wpcf7-form .tym-cf7-optin,
.wpcf7-form .contact-form .tym-cf7-optin {
  text-align: left;
}
.wpcf7-form .tym-cf7-optin .wpcf7-list-item,
.wpcf7-form .contact-form .tym-cf7-optin .wpcf7-list-item {
  display: block;
  margin: 0;
}
.wpcf7-form .tym-cf7-optin label,
.wpcf7-form .contact-form .tym-cf7-optin label,
.wpcf7-form .tym-cf7-optin .wpcf7-list-item label {
  display: flex !important;
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  text-align: left;
  grid-template-columns: none;
}
.wpcf7-form .tym-cf7-optin input[type="checkbox"],
.wpcf7-form .contact-form .tym-cf7-optin input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px !important;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  margin: 0.2em 0 0;
  accent-color: var(--green-dark);
}
.wpcf7-form .tym-cf7-optin .wpcf7-list-item-label,
.wpcf7-form .contact-form .tym-cf7-optin .wpcf7-list-item-label {
  flex: 1 1 auto;
  min-width: 0;
  display: block;
}
@media (pointer: coarse) {
  .wpcf7-form .tym-cf7-optin input[type="checkbox"],
  .wpcf7-form .contact-form .tym-cf7-optin input[type="checkbox"] {
    width: 22px !important;
    height: 22px;
    min-width: 22px;
    min-height: 22px;
  }
}
.tym-footer-beige .wpcf7 input[type="submit"],
.tym-footer-beige .wpcf7-submit,
.tym-footer-beige .wpcf7-form input.button {
  background: var(--green-dark);
}
.wpcf7-form label {
  display: grid;
  gap: 3px;
  font-size: 0.76rem;
  font-weight: 600;
  min-width: 0;
}
.wpcf7-form .tym-cf7-req {
  color: var(--red-dark, #8a2f2f);
  text-decoration: none;
  font-weight: 700;
  margin-left: 2px;
}
.wpcf7-form .tym-cf7-req[hidden] {
  display: none !important;
}
/* Opt-in uses flex row; keep this after the generic label grid rule. */
.wpcf7-form .tym-cf7-optin label,
.wpcf7-form .contact-form .tym-cf7-optin label,
.wpcf7-form .tym-cf7-optin .wpcf7-list-item label {
  display: flex !important;
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  text-align: left;
}
.wpcf7-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  max-width: none;
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
  padding: 9px 11px;
  border: 1px solid #c9cbbf;
  border-radius: 5px;
  background: #fff;
  font: inherit;
  min-height: 40px;
}
.wpcf7-form textarea,
.wpcf7-form .tym-cf7-message textarea,
.wpcf7-form #tym-cf7-message {
  min-height: 168px;
  resize: vertical;
}
.wpcf7 input[type="submit"],
.wpcf7-submit,
.wpcf7-form input.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  min-height: 44px;
  max-width: 100%;
  margin-top: 2px;
  padding: 11px 20px;
  background: var(--green);
  color: #fff;
  border: 0;
  border-radius: 6px;
  font-family: var(--font-heading);
  font-weight: 600;
  text-transform: uppercase;
}
.wpcf7 .hidden-fields-container,
.wpcf7 fieldset.hidden-fields-container,
fieldset.hidden-fields-container,
#altEmail_container,
.altEmail_container,
.wpcf7 .wpcf7-not-valid-tip + br,
span.wpcf7-form-control-wrap[data-name="honeypot"] { display: none !important; }
.wpcf7-response-output {
  /* Empty by default — CF7 always renders this node; never show a bare outline. */
  margin: 0;
  padding: 0;
  border: 0 !important;
  height: 0;
  overflow: hidden;
}
.wpcf7 form.sent .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
  height: auto;
  overflow: visible;
  margin: 16px 0 0;
  padding: 12px 14px;
  border-radius: 6px;
  border: 1px solid var(--green) !important;
}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
  border-color: var(--red-dark) !important;
  color: var(--red-dark);
}
.wpcf7 form.sent .wpcf7-response-output {
  border-color: var(--green) !important;
  color: var(--green-dark);
}
.wpcf7-not-valid-tip { color: var(--red-dark); font-size: 0.8rem; }

.tym-cookie {
  position: fixed;
  z-index: 10000;
  left: 16px;
  right: 16px;
  bottom: 16px;
  display: flex;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .35s ease, transform .45s cubic-bezier(.22, 1, .36, 1);
}
.tym-cookie.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.tym-cookie[hidden] { display: none !important; }
.tym-cookie-card {
  width: min(720px, 100%);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px 22px;
  align-items: center;
  padding: 18px 20px;
  border-radius: 16px;
  background: linear-gradient(135deg, #3f4b38 0%, #263428 100%);
  color: #f4f8f4;
}
.tym-cookie-mascot {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: #fff;
  display: grid;
  place-items: center;
}
.tym-cookie-copy h2 { margin: 0 0 8px; font-size: 1.4rem; color: #fff; font-family: var(--font-heading); }
.tym-cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.tym-cookie-essential {
  border: 1px solid rgba(255,255,255,.55);
  color: #fff;
  background: rgba(255,255,255,.06);
}

.tym-newsletter-popup {
  position: fixed;
  inset: 0;
  z-index: 11000;
  display: grid;
  place-items: center;
  background: rgba(37, 40, 33, 0.45);
  padding: 20px;
}
.tym-newsletter-popup[hidden] { display: none !important; }
.tym-newsletter-popup-card {
  width: min(460px, 100%);
  background: #fff;
  color: var(--ink);
  padding: 28px 24px 22px;
  border-radius: 12px;
  position: relative;
}
.tym-newsletter-popup-close {
  position: absolute;
  top: 8px;
  right: 10px;
  border: 0;
  background: none;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.tym-newsletter-popup .tym-newsletter-consent { color: #51544d; }

.reveal { opacity: 0; transform: translateY(14px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: none; }

/* —— 404 (branded system template) —— */
.tym-404 {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: min(68vh, 640px);
  padding: clamp(48px, 8vw, 96px) 7%;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(106, 145, 89, 0.14), transparent 70%),
    var(--cream);
  text-align: center;
}
.tym-404-inner {
  width: min(560px, 100%);
  margin: 0 auto;
}
.tym-404-eyebrow {
  margin: 0 0 12px;
  color: var(--green-dark);
  font-family: var(--font-heading);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.tym-404-title {
  margin: 0 0 14px;
  color: var(--ink);
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: 700;
  line-height: 1.15;
}
.tym-404-lede {
  margin: 0 auto 28px;
  max-width: 42ch;
  color: #3f463c;
  font-size: 1.05rem;
  line-height: 1.7;
}
.tym-404-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 14px;
  align-items: center;
  justify-content: center;
}
.tym-404-button-secondary {
  background: transparent !important;
  color: var(--green-dark) !important;
  border: 2px solid var(--green-dark);
  box-shadow: none;
}
.tym-404-button-secondary:hover {
  background: var(--green-dark) !important;
  color: #fff !important;
}
.tym-404-text-link {
  flex-basis: 100%;
  margin-top: 4px;
  color: var(--green-dark);
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.tym-404-text-link:hover {
  color: var(--ink);
}
