/* =====================================================================
   Flint & Flux | Healthy Trade Institute | hti-site.css
   GENERATED FILE. Do not edit here: edit mu-plugins/ffx-hti/src/ and run
   python3 build.py. Source: github.com/FlintFlux/healthytradeinstitute
   ===================================================================== */

/* >>> src/00-header.css */
/* =====================================================================
   00. Header (Theme Builder header Code module, wrapper .hti-hdr)
   Copied unchanged from the live header.
   ===================================================================== */
.hti-hdr,.hti-hdr *{box-sizing:border-box}
/* Hard reset so Divi's ".et-l--header ul{padding:0 0 23px 1em;line-height:26px}" and
   global "a{color:#005b18}" cannot reach into this header. */
.hti-hdr ul,.hti-hdr ol,.hti-hdr li{list-style:none!important;margin:0!important;padding:0!important;line-height:normal!important}
.hti-hdr{
  --green:#1A9E77; --green-dark:#005B18; --blue:#2D61A8;
  --ink:#2b2b2b; --paper:#ffffff; --bar:#f2f2f0; --line:#e7e7e3; --muted:#6a6f6b;
  font-family:'Source Sans Pro',Helvetica,Arial,sans-serif; color:var(--ink); line-height:1.4;
}
.hti-hdr a{color:inherit;text-decoration:none}
.hti-wrap{width:100%;max-width:1500px;margin:0 auto;padding:0 26px}
/* visually-hidden checkboxes that drive the mobile menu (no JavaScript) */
.hti-hdr .hti-cb{position:absolute;opacity:0;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* utility bar */
.hti-utility{background:var(--bar);border-bottom:1px solid var(--line);display:flex;justify-content:center}
.hti-utility .hti-wrap{display:flex;align-items:center;justify-content:space-between;min-height:58px;gap:16px}
.hti-social{display:flex;align-items:center;gap:16px}
.hti-social a{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--green-dark);font-size:18px;transition:color .15s,transform .15s}
.hti-social a:hover{color:var(--green);transform:translateY(-1px)}
.hti-actions{display:flex;align-items:center;gap:13px}
.hti-btn{display:inline-block;font-family:'Roboto',Helvetica,Arial,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-size:14px;line-height:1;padding:13px 26px;border-radius:50px;border:2px solid transparent;cursor:pointer;transition:box-shadow .2s,background-color .2s,color .2s,border-color .2s;white-space:nowrap}
.hti-btn--adopt{background:var(--green)!important;color:#fff!important}
.hti-btn--donate{background:var(--blue)!important;color:#fff!important}
.hti-btn--adopt:hover,.hti-btn--donate:hover{box-shadow:0 4px 14px rgba(0,0,0,.24)}
.hti-btn--login{background:transparent!important;color:var(--green-dark)!important;border-color:var(--green)!important}
.hti-btn--login:hover{background:var(--green)!important;color:#fff!important}
.hti-actions--mobile{display:none}
.hti-adopt-mini{display:none}

/* main bar */
.hti-main{background:var(--paper);position:sticky;top:0;z-index:1000;box-shadow:0 1px 0 rgba(0,0,0,.08);display:flex;justify-content:center}
.hti-main .hti-wrap{display:flex;align-items:center;justify-content:space-between;min-height:98px;gap:26px}
.hti-logo{flex:0 0 auto;line-height:0}
.hti-logo img{height:62px;width:auto;display:block}

/* nav (desktop) */
.hti-nav{display:flex;align-items:center}
.hti-menu{display:flex;align-items:center;gap:2px}
.hti-item{position:relative;display:flex;align-items:center}
.hti-link{display:flex;align-items:center;gap:6px;padding:12px 15px;font-size:16px;font-weight:600;color:var(--ink);border-radius:8px;transition:color .15s,background-color .15s}
.hti-link:hover,.hti-item:focus-within>.hti-link,.hti-item:hover>.hti-link{color:var(--green);background:rgba(26,158,119,.07)}
.hti-link .hti-caret{font-size:12px;color:var(--muted);transition:transform .2s}
.hti-item:hover .hti-caret,.hti-item:focus-within .hti-caret{transform:rotate(180deg);color:var(--green)}
.hti-toggle{display:none}

/* dropdown panels (desktop hover/focus) */
.hti-panel{position:absolute;top:100%;left:0;min-width:240px;background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--green);border-radius:0 0 10px 10px;box-shadow:0 12px 30px rgba(0,0,0,.12);padding:12px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s,transform .16s,visibility .16s;z-index:50}
@media (min-width:1081px){.hti-item:hover>.hti-panel,.hti-item:focus-within>.hti-panel{opacity:1;visibility:visible;transform:translateY(0)}}
.hti-panel a{display:block;padding:10px 13px;border-radius:7px;font-size:15.5px;color:var(--ink);transition:background-color .12s,color .12s}
.hti-panel a:hover{background:rgba(26,158,119,.09);color:var(--green-dark)}
.hti-panel .hti-nested{padding-left:10px!important;border-left:2px solid var(--line);margin:2px 0 8px 13px!important}
.hti-panel .hti-nested a{font-size:14.5px;color:var(--muted)}
.hti-panel .hti-nested a:hover{color:var(--green-dark)}

/* services mega menu (desktop) */
.hti-mega{left:50%;transform:translateX(-50%) translateY(6px);min-width:760px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px 24px;padding:22px 24px}
@media (min-width:1081px){.hti-item:hover>.hti-mega,.hti-item:focus-within>.hti-mega{transform:translateX(-50%) translateY(0)}}
.hti-mega .hti-col-label{font-size:12.5px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--green);padding:0 13px 8px;border-bottom:1px solid var(--line);margin-bottom:6px}
.hti-feature{background:linear-gradient(90deg,rgba(45,97,168,.10),rgba(26,158,119,.12));border:1px solid rgba(26,158,119,.25);border-radius:9px}
.hti-feature strong{display:block;font-weight:700;color:var(--green-dark)}
.hti-feature small{display:block;color:var(--muted);font-size:13px;font-weight:400;margin-top:2px}

/* mobile hamburger (a <label>, not a button) */
.hti-burger{display:none;cursor:pointer;width:46px;height:44px;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}
.hti-burger-bars{position:relative;display:block;width:24px;height:2.5px;background:var(--green-dark);border-radius:2px;transition:background .12s}
.hti-burger-bars::before,.hti-burger-bars::after{content:"";position:absolute;left:0;width:24px;height:2.5px;background:var(--green-dark);border-radius:2px;transition:transform .18s,top .18s}
.hti-burger-bars::before{top:-7px}
.hti-burger-bars::after{top:7px}

@media (max-width:1080px){
  /* top bar: drop the pill buttons, center the social icons */
  .hti-actions{display:none}
  .hti-utility .hti-wrap{justify-content:center;min-height:50px}
  .hti-burger{display:inline-flex}
  .hti-adopt-mini{display:inline-flex;margin-left:auto;padding:10px 20px;font-size:14.5px}
  .hti-main .hti-wrap{gap:12px;min-height:76px}
  .hti-wrap{padding:0 16px}
  .hti-logo img{height:44px}
  .hti-burger{flex:0 0 auto}
  .hti-adopt-mini{flex:0 0 auto}

  /* menu = dropdown anchored to the bar; shown when the nav checkbox is checked */
  .hti-nav{position:absolute;top:100%;left:0;right:0;display:none;background:var(--paper);border-top:1px solid var(--line);box-shadow:0 16px 30px rgba(0,0,0,.16);max-height:80vh;overflow-y:auto;padding:8px 14px 18px;z-index:1000}
  .hti-cb-nav:checked ~ .hti-main .hti-nav{display:block}
  .hti-cb-nav:checked ~ .hti-main .hti-burger .hti-burger-bars{background:transparent}
  .hti-cb-nav:checked ~ .hti-main .hti-burger .hti-burger-bars::before{top:0;transform:rotate(45deg)}
  .hti-cb-nav:checked ~ .hti-main .hti-burger .hti-burger-bars::after{top:0;transform:rotate(-45deg)}

  /* stacked action buttons at the top of the menu */
  .hti-actions--mobile{display:flex;flex-direction:column;gap:10px;padding:12px 4px 14px;border-bottom:1px solid var(--line);margin-bottom:6px}
  .hti-actions--mobile .hti-btn{width:100%;text-align:center;padding:15px}

  .hti-menu{flex-direction:column;align-items:stretch;gap:0}
  .hti-item{display:block}
  .hti-link{justify-content:space-between;padding:14px 12px;border-radius:8px;font-size:17px}
  .hti-link .hti-caret{display:none}
  .hti-item.has-sub{display:flex;flex-wrap:wrap;align-items:center}
  .hti-item.has-sub>.hti-link{flex:1}
  .hti-toggle{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;color:var(--muted);font-size:15px;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .hti-toggle .fa-chevron-down{transition:transform .2s}

  /* submenu panels collapse; open when their checkbox is checked */
  .hti-panel,.hti-mega{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-top:0;min-width:0;width:100%;display:none;padding:2px 6px 12px 14px}
  .hti-item:hover>.hti-panel,.hti-item:focus-within>.hti-panel,.hti-item:hover>.hti-mega,.hti-item:focus-within>.hti-mega{transform:none!important}
  .hti-cb-sub:checked ~ .hti-panel{display:block}
  .hti-cb-sub:checked ~ .hti-toggle .fa-chevron-down{transform:rotate(180deg);color:var(--green)}
  .hti-mega{grid-template-columns:1fr;gap:4px}
  .hti-mega .hti-col-label{border:0;padding-top:12px}
}

.hti-hdr a:focus-visible,.hti-hdr .hti-burger:focus-within,.hti-hdr .hti-cb:focus-visible + *{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){.hti-hdr *{transition:none!important}}
  
  /* contact modal (pure CSS, opens from the Contact menu label) */
.hti-contact-link{cursor:pointer}
.hti-contact-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:flex-start;justify-content:center;padding:5vh 16px;background:rgba(20,28,24,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);overflow-y:auto}
.hti-cb-contact:checked ~ .hti-contact-modal{display:flex}
.hti-contact-backdrop{position:absolute;inset:0;cursor:pointer}
.hti-contact-card{position:relative;z-index:1;width:100%;max-width:600px;margin:auto;background:var(--paper);border-radius:14px;border-top:5px solid var(--green);box-shadow:0 24px 60px rgba(0,0,0,.4);padding:34px 34px 30px}
.hti-contact-card h2{font-family:'Bitter',Georgia,serif;color:var(--green-dark);font-size:26px;margin:0 0 6px;padding:0}
.hti-contact-sub{color:var(--muted);font-size:15px;margin:0 0 20px}
.hti-contact-close{position:absolute;top:14px;right:16px;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--muted);cursor:pointer;transition:background-color .15s,color .15s}
.hti-contact-close:hover{background:#f0f2f1;color:var(--green)}
.hti-contact-card .wpcf7{margin:0}
.hti-contact-card .wpcf7 label{font-weight:600;font-size:14px;display:block;margin-bottom:12px}
.hti-contact-card .wpcf7 input[type=text],.hti-contact-card .wpcf7 input[type=email],.hti-contact-card .wpcf7 input[type=tel],.hti-contact-card .wpcf7 textarea{width:100%;padding:11px 14px;border:2px solid var(--line);border-radius:10px;font-family:'Source Sans Pro',sans-serif;font-size:15px;margin-top:4px}
.hti-contact-card .wpcf7 input:focus,.hti-contact-card .wpcf7 textarea:focus{border-color:var(--green);outline:none}
.hti-contact-card .wpcf7 input[type=submit]{background:var(--green-dark);color:#fff;border:0;border-radius:12px;font-family:'Source Sans Pro',sans-serif;font-weight:900;font-size:18px;padding:12px 28px;cursor:pointer;margin-top:6px;transition:background-color .2s}
.hti-contact-card .wpcf7 input[type=submit]:hover{background:var(--green)}
  
@media (max-width:400px){
  .hti-logo img{height:38px}
  .hti-adopt-mini{padding:8px 15px;font-size:13px}
  .hti-main .hti-wrap{gap:8px}
}

/* >>> src/10-components.css */
/* =====================================================================
   10. Shared page components (.ffx-pg)
   Every coded page body is wrapped in <div class="ffx-pg"> and built only
   from the classes below. Values match the original homepage, adoption and
   education pages so old and new pages look the same.
   ===================================================================== */

.ffx-pg {
  --ffx-green: #1A9E77;
  --ffx-green-dark: #005B18;
  --ffx-blue: #2D61A8;
  --ffx-ink: #2b2b2b;
  --ffx-body: #4a4f4b;
  --ffx-muted: #6a6f6b;
  --ffx-faint: #8f948f;
  --ffx-line: #e7e7e3;
  --ffx-bar: #f2f2f0;
  --ffx-tint: #eef7f3;
  --ffx-white: #ffffff;
  --ffx-radius: 16px;
  --ffx-radius-sm: 12px;
  --ffx-head: 'Bitter', Georgia, 'Times New Roman', serif;
  --ffx-text: 'Source Sans Pro', Helvetica, Arial, sans-serif;
  font-family: var(--ffx-text);
  color: var(--ffx-ink);
  font-size: 17px;
  line-height: 1.6;
  background: var(--ffx-white);
}
.ffx-pg *, .ffx-pg *::before, .ffx-pg *::after { box-sizing: border-box; }

/* Reset the Divi defaults that leak into page content */
/* :where() keeps these resets at single-class strength, so every component class below can override them */
.ffx-pg :where(h1, h2, h3, h4, p, ul, ol, li, figure, blockquote, table, dl, dd, address) {
  margin: 0; padding: 0;
}
.ffx-pg :where(ul, ol) { list-style: none !important; line-height: inherit; }
/* Lists keep a full-strength reset: Divi's ".entry-content ul { padding: 0 0 23px 1em }" would otherwise win */
.ffx-pg ul, .ffx-pg ol { margin: 0; padding: 0; }
.ffx-pg :where(h1, h2, h3, h4) {
  font-family: var(--ffx-head); font-weight: 800; line-height: 1.18;
  color: var(--ffx-green-dark) !important;
}
.ffx-pg :where(h3) { font-size: 20px; }
.ffx-pg :where(h4) { font-size: 17px; }
.ffx-pg :where(p) { color: var(--ffx-body); }
.ffx-pg :where(p + p) { margin-top: 14px; }
.ffx-pg strong { font-weight: 700; color: var(--ffx-ink); }
.ffx-pg em { font-style: italic; }
.ffx-pg img { max-width: 100%; height: auto; display: block; }
.ffx-pg :where(a) { color: var(--ffx-green-dark); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ffx-pg :where(a):hover { color: var(--ffx-green); }
.ffx-pg a:focus-visible, .ffx-pg summary:focus-visible { outline: 3px solid var(--ffx-green); outline-offset: 3px; border-radius: 6px; }

/* ---------- Layout ---------- */
.ffx-wrap { max-width: 1160px; margin: 0 auto; padding: 0 20px; }
.ffx-wrap--narrow { max-width: 860px; }
.ffx-sec { padding: 52px 0; }
.ffx-sec--bar { background: var(--ffx-bar); }
.ffx-sec--tint { background: var(--ffx-tint); }
.ffx-sec--tight { padding: 32px 0; }
/* Two white sections in a row: drop the doubled gap between them */
.ffx-sec:not(.ffx-sec--bar):not(.ffx-sec--tint) + .ffx-sec:not(.ffx-sec--bar):not(.ffx-sec--tint) { padding-top: 0; }
.ffx-hero + .ffx-sec:not(.ffx-sec--bar):not(.ffx-sec--tint) { padding-top: 20px; }

/* ---------- Text blocks ---------- */
.ffx-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ffx-green);
}
.ffx-head { margin-bottom: 28px; max-width: 720px; }
.ffx-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.ffx-head h2, .ffx-h2 { margin: 8px 0 8px; font-size: clamp(24px, 3.4vw, 32px); }
.ffx-head p { font-size: 16px; color: var(--ffx-muted); }
.ffx-lead { font-size: 17px; color: var(--ffx-muted) !important; max-width: 640px; }
.ffx-small { font-size: 14.5px; color: var(--ffx-muted) !important; }
.ffx-prose { max-width: 780px; }
.ffx-prose h2 { font-size: clamp(22px, 2.8vw, 28px); margin: 34px 0 12px; }
.ffx-prose h3 { margin: 26px 0 10px; }
.ffx-prose > :first-child { margin-top: 0; }
.ffx-prose p, .ffx-prose li { font-size: 17px; }
.ffx-prose ul { margin: 12px 0 0; }
.ffx-prose ul + p, .ffx-prose p + ul { margin-top: 14px; }

/* ---------- Breadcrumbs ---------- */
.ffx-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--ffx-muted); margin-bottom: 18px !important; }
.ffx-crumbs li + li::before { content: "/"; margin-right: 8px; color: var(--ffx-faint); }
.ffx-pg .ffx-crumbs a { color: var(--ffx-muted); text-decoration: none; }
.ffx-pg .ffx-crumbs a:hover { color: var(--ffx-green-dark); text-decoration: underline; }

/* ---------- Hero ---------- */
.ffx-hero { background: linear-gradient(180deg, var(--ffx-tint) 0%, var(--ffx-white) 100%); padding: 48px 0 52px; }
.ffx-hero__grid { display: grid; gap: 32px; align-items: center; }
@media (min-width: 900px) { .ffx-hero__grid { grid-template-columns: 7fr 5fr; gap: 48px; } }
.ffx-hero h1 { margin: 10px 0 14px; font-size: clamp(30px, 4.6vw, 44px); line-height: 1.12; }
.ffx-hero .ffx-lead { margin-bottom: 24px; }
.ffx-hero .ffx-lead:last-child { margin-bottom: 0; }
.ffx-hero__img img { width: 100%; border-radius: 18px; }
.ffx-hero__img--contain { display: flex; justify-content: center; }
.ffx-hero__img--contain img { width: auto; max-height: 340px; border-radius: 0; }

/* ---------- Buttons ---------- */
.ffx-btns { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ffx-pg .ffx-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--ffx-text); font-size: 15.5px; font-weight: 800; line-height: 1.2;
  text-decoration: none; padding: 13px 24px; border-radius: 999px; border: 2px solid transparent;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}
.ffx-pg .ffx-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18); }
.ffx-pg .ffx-btn--primary { background: var(--ffx-green); color: var(--ffx-white); }
.ffx-pg .ffx-btn--primary:hover { color: var(--ffx-white); }
.ffx-pg .ffx-btn--blue { background: var(--ffx-blue); color: var(--ffx-white); }
.ffx-pg .ffx-btn--blue:hover { color: var(--ffx-white); }
.ffx-pg .ffx-btn--ghost { background: transparent; color: var(--ffx-green-dark); border-color: var(--ffx-green); }
.ffx-pg .ffx-btn--ghost:hover { background: var(--ffx-green); color: var(--ffx-white); }
.ffx-pg .ffx-btn--white { background: var(--ffx-white); color: var(--ffx-green-dark); }
.ffx-pg .ffx-btn--white:hover { color: var(--ffx-green-dark); }
.ffx-pg .ffx-btn--sm { font-size: 14.5px; padding: 10px 18px; }
.ffx-pg .ffx-link {
  display: inline-flex; align-items: center; gap: 8px; font-weight: 700;
  color: var(--ffx-green); text-decoration: none;
}
.ffx-pg .ffx-link:hover { color: var(--ffx-green-dark); text-decoration: underline; }

/* ---------- Grids ---------- */
.ffx-grid { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 680px) {
  .ffx-grid--2, .ffx-grid--3, .ffx-grid--4 { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 980px) {
  .ffx-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .ffx-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* ---------- Cards ---------- */
.ffx-card {
  display: flex; flex-direction: column; gap: 10px;
  background: var(--ffx-white); border: 1px solid var(--ffx-line); border-radius: var(--ffx-radius);
  padding: 26px 24px;
}
.ffx-card p { font-size: 15.5px; line-height: 1.55; color: var(--ffx-muted); }
.ffx-card h3 { font-size: 19px; }
.ffx-card .ffx-btn, .ffx-card .ffx-link { margin-top: auto; align-self: flex-start; }
.ffx-card--center { align-items: center; text-align: center; }
.ffx-card--center .ffx-btn, .ffx-card--center .ffx-link { align-self: center; }
.ffx-pg a.ffx-card { color: var(--ffx-ink); text-decoration: none; transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease; }
.ffx-pg a.ffx-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0, 91, 24, 0.10); border-color: var(--ffx-green); color: var(--ffx-ink); }
.ffx-card__more { margin-top: auto; padding-top: 6px; font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ffx-green); }
.ffx-card--media { padding: 0; overflow: hidden; gap: 0; }
.ffx-card--media > img { width: 100%; height: 210px; object-fit: cover; }
.ffx-card__body { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.ffx-card--bar { background: var(--ffx-bar); border-color: transparent; }

/* Icon tile (rounded square, like the homepage pathway cards) */
.ffx-icon {
  width: 54px; height: 54px; border-radius: 13px; font-size: 23px; flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--ffx-tint); color: var(--ffx-green);
}
.ffx-icon--round { border-radius: 50%; }
.ffx-icon--solid { background: var(--ffx-green-dark); color: var(--ffx-white); }
.ffx-icon--blue { background: rgba(45, 97, 168, 0.10); color: var(--ffx-blue); }
.ffx-icon--sm { width: 38px; height: 38px; font-size: 16px; border-radius: 10px; }
.ffx-icon--lg { width: 72px; height: 72px; font-size: 30px; }

/* ---------- Split (text beside media) ---------- */
.ffx-split { display: grid; gap: 30px; align-items: center; }
@media (min-width: 900px) {
  .ffx-split { grid-template-columns: 1fr 1fr; gap: 48px; }
  .ffx-split--wide-text { grid-template-columns: 7fr 5fr; }
  .ffx-split--flip > :first-child { order: 2; }
}
.ffx-split__media img { width: 100%; border-radius: 18px; }
.ffx-split h2 { font-size: clamp(24px, 3.2vw, 30px); margin: 8px 0 12px; }
.ffx-split .ffx-btns { margin-top: 22px; }

/* ---------- Lists ---------- */
.ffx-checks { display: grid; gap: 10px; }
.ffx-checks li { position: relative; padding-left: 30px !important; color: var(--ffx-body); }
.ffx-checks li::before {
  content: ""; position: absolute; left: 3px; top: 0.42em;
  width: 13px; height: 7px; border-left: 2.5px solid var(--ffx-green); border-bottom: 2.5px solid var(--ffx-green);
  transform: rotate(-45deg);
}
.ffx-bullets { display: grid; gap: 8px; }
.ffx-bullets li { position: relative; padding-left: 20px !important; color: var(--ffx-body); }
.ffx-bullets li::before { content: ""; position: absolute; left: 4px; top: 0.62em; width: 7px; height: 7px; border-radius: 50%; background: var(--ffx-green); }
.ffx-card .ffx-checks li, .ffx-card .ffx-bullets li { font-size: 15.5px; }

/* Tags / chips */
.ffx-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ffx-chip {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--ffx-tint); border-radius: 999px;
  padding: 6px 13px; font-size: 13.5px; font-weight: 700; color: var(--ffx-green-dark);
}
.ffx-chip i { color: var(--ffx-green); font-size: 12px; }
.ffx-chip--blue { background: rgba(45, 97, 168, 0.09); color: var(--ffx-blue); }
.ffx-chip--white { background: var(--ffx-white); border: 1px solid var(--ffx-line); }

/* ---------- Stat tiles ---------- */
.ffx-stat { background: var(--ffx-bar); border-radius: var(--ffx-radius-sm); padding: 20px 20px 22px; display: flex; flex-direction: column; gap: 4px; }
.ffx-sec--bar .ffx-stat { background: var(--ffx-white); }
.ffx-stat__label { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ffx-green-dark); line-height: 1.25; margin-bottom: 8px; }
@media (min-width: 680px) { .ffx-stat__label { min-height: 38px; } }
.ffx-stat__label .ffx-icon { margin-top: -6px; }
.ffx-stat__fig { font-family: var(--ffx-head); font-size: 34px; font-weight: 800; color: var(--ffx-green); line-height: 1.05; }
.ffx-stat__fig small { font-size: 18px; color: var(--ffx-green-dark); }
.ffx-stat p { font-size: 15.5px; line-height: 1.45; }

/* ---------- Numbered steps ---------- */
.ffx-steps { display: grid; gap: 14px; counter-reset: ffxstep; }
.ffx-step { display: flex; gap: 16px; align-items: flex-start; background: var(--ffx-white); border: 1px solid var(--ffx-line); border-radius: var(--ffx-radius-sm); padding: 18px 20px; }
.ffx-step::before {
  counter-increment: ffxstep; content: counter(ffxstep);
  flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--ffx-green); color: var(--ffx-white); font-weight: 800; font-size: 16px;
}
.ffx-step p { color: var(--ffx-body); padding-top: 5px; }

/* ---------- Callouts ---------- */
.ffx-note { border-left: 4px solid var(--ffx-green); background: var(--ffx-tint); border-radius: 0 var(--ffx-radius-sm) var(--ffx-radius-sm) 0; padding: 16px 20px; }
.ffx-note p { font-size: 16px; }
.ffx-panel { display: grid; gap: 18px; align-items: center; background: var(--ffx-tint); border-radius: var(--ffx-radius); padding: 24px 26px; }
@media (min-width: 900px) { .ffx-panel { grid-template-columns: 1fr auto; gap: 30px; } }
.ffx-panel h3 { margin-bottom: 6px; }

/* ---------- CTA band (same as homepage membership band) ---------- */
.ffx-band {
  border-radius: 18px; text-align: center; padding: 44px 26px;
  background: linear-gradient(135deg, var(--ffx-green) 0%, var(--ffx-green-dark) 100%);
}
.ffx-pg .ffx-band h2 { margin: 0 0 10px; font-size: clamp(22px, 3.2vw, 30px); color: var(--ffx-white) !important; }
.ffx-pg .ffx-band p { margin: 0 auto 22px; max-width: 560px; font-size: 16px; color: rgba(255, 255, 255, 0.9); }
.ffx-pg .ffx-band strong { color: var(--ffx-white); }
.ffx-band .ffx-btns { justify-content: center; }
.ffx-pg .ffx-band .ffx-btn--ghost { color: var(--ffx-white); border-color: rgba(255, 255, 255, 0.7); }
.ffx-pg .ffx-band .ffx-btn--ghost:hover { background: var(--ffx-white); color: var(--ffx-green-dark); }

/* ---------- Tables ---------- */
.ffx-table-wrap { overflow-x: auto; border: 1px solid var(--ffx-line); border-radius: var(--ffx-radius-sm); }
.ffx-table { width: 100%; border-collapse: collapse; font-size: 16px; }
.ffx-table th, .ffx-table td { text-align: left; padding: 13px 18px; border-bottom: 1px solid var(--ffx-line); vertical-align: top; }
.ffx-table th { background: var(--ffx-bar); font-size: 13px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ffx-green-dark); }
.ffx-table tr:last-child td { border-bottom: 0; }
.ffx-table td { color: var(--ffx-body); }
.ffx-table td.ffx-num { font-weight: 800; color: var(--ffx-green-dark); white-space: nowrap; }

/* ---------- FAQ (native <details>, no JavaScript) ---------- */
.ffx-faq { display: grid; gap: 10px; }
.ffx-faq details { background: var(--ffx-white); border: 1px solid var(--ffx-line); border-radius: var(--ffx-radius-sm); }
.ffx-faq details[open] { border-color: var(--ffx-green); }
.ffx-faq summary {
  list-style: none; cursor: pointer; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  padding: 16px 20px; font-weight: 700; font-size: 17px; color: var(--ffx-ink); line-height: 1.4;
}
.ffx-faq summary::-webkit-details-marker { display: none; }
.ffx-faq summary::after {
  content: ""; flex: 0 0 auto; width: 10px; height: 10px; margin-top: 6px;
  border-right: 2.5px solid var(--ffx-green); border-bottom: 2.5px solid var(--ffx-green);
  transform: rotate(45deg); transition: transform 0.15s ease;
}
.ffx-faq details[open] summary::after { transform: rotate(-135deg); margin-top: 10px; }
.ffx-faq__a { padding: 0 20px 18px; }
.ffx-faq__a p, .ffx-faq__a li { font-size: 16px; }
.ffx-faq__a ul { margin-top: 10px; }
.ffx-faq-group + .ffx-faq-group { margin-top: 36px; }
.ffx-faq-group > h2 { font-size: clamp(21px, 2.6vw, 26px); margin-bottom: 14px; display: flex; align-items: center; gap: 12px; }

/* ---------- People ---------- */
.ffx-person { display: flex; flex-direction: column; background: var(--ffx-white); border: 1px solid var(--ffx-line); border-radius: var(--ffx-radius); overflow: hidden; }
.ffx-person > img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: center top; }
.ffx-person__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.ffx-person__role { font-size: 13px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ffx-green); line-height: 1.35; }
.ffx-person p { font-size: 15.5px; line-height: 1.55; color: var(--ffx-muted); }
.ffx-person .ffx-link { margin-top: auto; padding-top: 6px; }

/* ---------- Logo cards (labs, partners) ---------- */
.ffx-logo {
  display: flex; align-items: center; justify-content: center;
  height: 110px; background: var(--ffx-bar); border-radius: var(--ffx-radius-sm); padding: 18px; margin-bottom: 6px;
}
.ffx-logo img { max-height: 74px; width: auto; max-width: 100%; }
.ffx-logo--dark { background: #1f2a24; }
.ffx-contact { display: grid; gap: 6px; font-size: 15.5px; color: var(--ffx-muted); }
.ffx-contact span { display: flex; gap: 9px; align-items: baseline; }
.ffx-contact i { color: var(--ffx-green); width: 16px; flex: 0 0 auto; }

/* ---------- Video link cards (no embeds, no scripts) ---------- */
.ffx-video { display: flex; flex-direction: column; border: 1px solid var(--ffx-line); border-radius: var(--ffx-radius-sm); overflow: hidden; background: var(--ffx-white); }
.ffx-pg a.ffx-video { color: var(--ffx-ink); text-decoration: none; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.ffx-pg a.ffx-video:hover { border-color: var(--ffx-green); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08); color: var(--ffx-ink); }
.ffx-video__thumb { position: relative; aspect-ratio: 16 / 9; background: #1d2b24; overflow: hidden; }
.ffx-video__thumb img { width: 100%; height: 100%; object-fit: cover; }
.ffx-video__play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.ffx-video__play i { width: 58px; height: 58px; border-radius: 50%; background: rgba(0, 91, 24, 0.88); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 20px; padding-left: 4px; }
.ffx-video__dur { position: absolute; right: 10px; bottom: 10px; background: rgba(0, 0, 0, 0.75); color: #fff; font-size: 13px; font-weight: 700; padding: 3px 8px; border-radius: 6px; }
.ffx-video__title { padding: 14px 16px 16px; font-size: 16.5px; font-weight: 700; line-height: 1.35; color: var(--ffx-green-dark); }

/* ---------- Pricing tiers ---------- */
.ffx-tier { text-align: center; align-items: center; }
.ffx-tier__name { font-size: 13px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ffx-green); }
.ffx-tier__price { font-family: var(--ffx-head); font-size: 34px; font-weight: 800; color: var(--ffx-green-dark); line-height: 1.1; }
.ffx-tier__price small { font-family: var(--ffx-text); font-size: 15px; font-weight: 700; color: var(--ffx-muted); }
.ffx-tier p { font-size: 15px; }
.ffx-tier--featured { border: 2px solid var(--ffx-green); }

/* ---------- Simple name lists in columns (constituents) ---------- */
.ffx-names { display: grid; gap: 6px 20px; }
@media (min-width: 560px) { .ffx-names { grid-template-columns: 1fr 1fr; } }
.ffx-names li { padding: 8px 0 !important; border-bottom: 1px solid var(--ffx-line); font-weight: 600; color: var(--ffx-ink); }
.ffx-names li:last-child, .ffx-names li:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
.ffx-founding { color: var(--ffx-green); font-weight: 800; }

/* ---------- Publications ---------- */
.ffx-pubs { display: grid; gap: 14px; }
.ffx-pub { background: var(--ffx-white); border: 1px solid var(--ffx-line); border-left: 4px solid var(--ffx-green); border-radius: 0 var(--ffx-radius-sm) var(--ffx-radius-sm) 0; padding: 18px 22px; }
.ffx-pub p { font-size: 16px; }
.ffx-pub__meta { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-top: 10px; }

/* ---------- Gallery ---------- */
.ffx-gallery { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
.ffx-gallery a { display: block; border-radius: var(--ffx-radius-sm); overflow: hidden; }
.ffx-gallery img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 0.25s ease; }
.ffx-gallery a:hover img { transform: scale(1.03); }

/* ---------- Address block ---------- */
.ffx-address { font-style: normal; background: var(--ffx-bar); border-radius: var(--ffx-radius-sm); padding: 16px 20px; line-height: 1.55; color: var(--ffx-ink); font-weight: 600; }

/* ---------- Divi host fixes ---------- */
/* Let dropdowns and shadows escape the Divi section that hosts a coded page */
.et_pb_section:has(.ffx-pg) { position: relative; z-index: 40; overflow: visible !important; padding: 0 !important; }
.et_pb_row:has(> .et_pb_column .ffx-pg) { width: 100% !important; max-width: 100% !important; padding: 0 !important; }
.et_pb_code:has(.ffx-pg), .et_pb_column:has(> .et_pb_code .ffx-pg) { margin-bottom: 0 !important; width: 100% !important; max-width: 100% !important; }

/* ---------- Phones ---------- */
@media (max-width: 639px) {
  .ffx-pg { font-size: 16.5px; }
  .ffx-sec { padding: 40px 0; }
  .ffx-hero { padding: 36px 0 40px; }
  .ffx-btns .ffx-btn { width: 100%; }
  .ffx-card { padding: 22px 20px; }
  .ffx-band { padding: 36px 20px; }
  .ffx-table th, .ffx-table td { padding: 11px 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .ffx-pg .ffx-btn, .ffx-pg a.ffx-card, .ffx-gallery img, .ffx-faq summary::after { transition: none; }
  .ffx-pg .ffx-btn:hover, .ffx-pg a.ffx-card:hover, .ffx-gallery a:hover img { transform: none; }
}

/* ---------- Spacing helpers ---------- */
.ffx-pg .ffx-mt { margin-top: 24px !important; }
.ffx-pg .ffx-mt-sm { margin-top: 14px !important; }
.ffx-pg .ffx-mb { margin-bottom: 24px !important; }
.ffx-pg .ffx-mb-sm { margin-bottom: 12px !important; }
.ffx-pg .ffx-center { text-align: center; }
.ffx-prose .ffx-eyebrow + h2 { margin-top: 8px; }
.ffx-pg a.ffx-chip { text-decoration: none; transition: border-color 0.15s ease, color 0.15s ease; }
.ffx-pg a.ffx-chip:hover { border-color: var(--ffx-green); color: var(--ffx-green); }
.ffx-video__thumb--brand { background: linear-gradient(135deg, var(--ffx-green) 0%, var(--ffx-green-dark) 100%); }
.ffx-video__thumb--brand .ffx-video__play i { background: rgba(255, 255, 255, 0.95); color: var(--ffx-green-dark); }
.ffx-video__badge { position: absolute; left: 12px; top: 12px; display: inline-flex; align-items: center; gap: 6px; background: rgba(255, 255, 255, 0.92); color: var(--ffx-green-dark); font-size: 12.5px; font-weight: 800; padding: 4px 10px; border-radius: 999px; }
.ffx-tiers { grid-template-columns: 1fr; }
@media (min-width: 560px) { .ffx-tiers { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .ffx-tiers { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .ffx-tiers { grid-template-columns: repeat(5, 1fr); } }
.ffx-tier .ffx-btn { margin-top: auto; align-self: stretch; }
.ffx-pg .ffx-h3 { font-size: 20px; }
.ffx-names--one { grid-template-columns: 1fr !important; }
.ffx-names--one li:nth-last-child(2):nth-child(odd) { border-bottom: 1px solid var(--ffx-line); }
.ffx-names--one li:last-child { border-bottom: 0; }
.ffx-pg h3 > i { color: var(--ffx-green); margin-right: 6px; }
.ffx-card .ffx-note { margin-top: 6px; }
.ffx-card .ffx-address { margin: 4px 0 6px; }
.ffx-chip em { font-style: italic; }
.ffx-totals { max-width: 640px; margin: 0 auto; }
.ffx-totals .ffx-stat__label { justify-content: center; min-height: 0; }
.ffx-totals .ffx-stat__fig { font-size: 44px; }
.ffx-card .ffx-tier__price { margin: 2px 0; }
.ffx-pg .ffx-link.ffx-mt-sm { display: inline-flex; }
.ffx-pg [id] { scroll-margin-top: 120px; }
.ffx-stat__label.ffx-just-center { justify-content: center; min-height: 0; }
.ffx-gallery { max-width: 720px; }
.ffx-pg h3 > a { color: inherit; }
.ffx-panel p + p { margin-top: 8px; }

/* =====================================================================
   Components added for Home, Adopt a Herp, Education and Links
   ===================================================================== */

/* ---------- Link rows: icon + title + short line (dropdown options, resource lists, link-in-bio) ---------- */
.ffx-rows { display: grid; gap: 10px; }
.ffx-pg a.ffx-row {
  display: flex; align-items: center; gap: 14px;
  background: var(--ffx-white); border: 1px solid var(--ffx-line); border-radius: 14px;
  padding: 14px 16px; text-decoration: none; color: var(--ffx-ink);
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}
.ffx-pg a.ffx-row:hover { transform: translateY(-2px); border-color: var(--ffx-green); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08); color: var(--ffx-ink); }
.ffx-row > i { font-size: 20px; width: 26px; text-align: center; color: var(--ffx-green); flex: 0 0 auto; }
.ffx-row--blue > i { color: var(--ffx-blue); }
.ffx-row strong { display: block; font-size: 15.5px; font-weight: 800; color: var(--ffx-ink); line-height: 1.3; }
.ffx-row small { display: block; font-size: 13.5px; color: var(--ffx-muted); margin-top: 2px; line-height: 1.4; }
.ffx-pg a.ffx-row--primary { background: var(--ffx-green); border-color: var(--ffx-green); }
.ffx-pg a.ffx-row--primary:hover { background: var(--ffx-green-dark); border-color: var(--ffx-green-dark); }
.ffx-row--primary > i, .ffx-row--primary strong { color: var(--ffx-white); }
.ffx-row--primary small { color: rgba(255, 255, 255, 0.85); }
.ffx-rows--flat { gap: 0; }
.ffx-pg .ffx-rows--flat a.ffx-row { border: 0; border-radius: 10px; padding: 12px 12px; }
.ffx-pg .ffx-rows--flat a.ffx-row:hover { transform: none; box-shadow: none; background: var(--ffx-tint); }

/* ---------- Dropdown button (native <details>, no JavaScript) ---------- */
.ffx-menu { position: relative; display: inline-block; }
.ffx-menu summary { list-style: none; cursor: pointer; }
.ffx-menu summary::-webkit-details-marker { display: none; }
.ffx-menu summary .fa-chevron-down { font-size: 13px; transition: transform 0.15s ease; }
.ffx-menu[open] summary .fa-chevron-down { transform: rotate(180deg); }
.ffx-menu__panel {
  position: absolute; top: calc(100% + 10px); left: 0; z-index: 60;
  min-width: 320px; background: var(--ffx-white); border: 1px solid var(--ffx-line); border-radius: 14px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16); padding: 8px; text-align: left;
}
.ffx-menu--up .ffx-menu__panel { top: auto; bottom: calc(100% + 10px); left: 50%; transform: translateX(-50%); }
@media (max-width: 639px) {
  .ffx-menu { display: block; width: 100%; }
  .ffx-menu__panel { min-width: 0; left: 0; right: 0; }
  .ffx-menu--up .ffx-menu__panel { transform: none; left: 0; }
}

/* ---------- Ribbon (award / announcement strip) ---------- */
.ffx-ribbon { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; background: var(--ffx-bar); border: 1px solid var(--ffx-line); border-radius: 14px; padding: 16px 20px; }
.ffx-ribbon img { width: 74px; border-radius: 8px; flex: 0 0 auto; }
.ffx-ribbon p { flex: 1 1 280px; font-size: 15.5px; color: var(--ffx-ink); }
.ffx-ribbon strong { color: var(--ffx-green-dark); }

/* ---------- Link tiles (icon + label) ---------- */
.ffx-tiles { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
@media (min-width: 900px) { .ffx-tiles { grid-template-columns: repeat(3, 1fr); } }
.ffx-pg a.ffx-tile {
  display: flex; align-items: center; gap: 14px; background: var(--ffx-white); border: 1px solid var(--ffx-line); border-radius: 12px;
  padding: 16px 18px; text-decoration: none; color: var(--ffx-ink); font-size: 15.5px; font-weight: 700; line-height: 1.3;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.ffx-pg a.ffx-tile:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08); border-color: var(--ffx-green); color: var(--ffx-ink); }
.ffx-tile i { font-size: 20px; color: var(--ffx-green); flex: 0 0 auto; }

/* ---------- "No" list (pairs with .ffx-checks) ---------- */
.ffx-crosses { display: grid; gap: 10px; }
.ffx-crosses li { position: relative; padding-left: 30px !important; color: var(--ffx-body); }
.ffx-crosses li::before, .ffx-crosses li::after { content: ""; position: absolute; left: 4px; top: 0.72em; width: 13px; height: 2.5px; background: #b4553f; border-radius: 2px; }
.ffx-crosses li::before { transform: rotate(45deg); }
.ffx-crosses li::after { transform: rotate(-45deg); }
.ffx-card--yes { border-top: 4px solid var(--ffx-green); }
.ffx-card--no { border-top: 4px solid #b4553f; }
.ffx-card--no h3 > i { color: #b4553f; }

/* ---------- Numbered step cards (icon + number badge) ---------- */
.ffx-card--step { position: relative; padding-top: 30px; }
.ffx-step-num { position: absolute; top: -14px; left: 22px; width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--ffx-green); color: var(--ffx-white); font-weight: 800; font-size: 15px; box-shadow: 0 0 0 4px var(--ffx-white); }
.ffx-sec--bar .ffx-step-num { box-shadow: 0 0 0 4px var(--ffx-bar); }
.ffx-grid--steps { row-gap: 34px; padding-top: 14px; }

/* ---------- "See example" screenshot reveal ---------- */
.ffx-shot { margin-top: 6px; }
.ffx-shot summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 700; color: var(--ffx-green); }
.ffx-shot summary::-webkit-details-marker { display: none; }
.ffx-shot summary .fa-chevron-down { font-size: 12px; transition: transform 0.15s ease; }
.ffx-shot[open] summary .fa-chevron-down { transform: rotate(180deg); }
.ffx-shot__body { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.ffx-shot__body img { border: 1px solid var(--ffx-line); border-radius: 10px; max-width: 100%; }
.ffx-shot__body--row img { flex: 1 1 220px; min-width: 0; }

/* ---------- Partner logo row ---------- */
.ffx-logos { display: flex; flex-wrap: wrap; gap: 18px; }
.ffx-pg a.ffx-logos__item { display: flex; align-items: center; justify-content: center; height: 110px; min-width: 220px; flex: 1 1 220px; max-width: 320px; background: var(--ffx-white); border: 1px solid var(--ffx-line); border-radius: 14px; padding: 18px 24px; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.ffx-pg a.ffx-logos__item:hover { border-color: var(--ffx-green); box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08); }
.ffx-logos__item img { max-height: 72px; width: auto; max-width: 100%; }
.ffx-logos__item--dark { background: #1f2a24 !important; }

/* ---------- Hero with a small overlapping second image (adoption plaque) ---------- */
.ffx-hero__img--stack { text-align: center; }
.ffx-hero__img--stack img { display: inline-block; }
.ffx-hero__img--stack img + img { width: 190px; margin-top: -46px; position: relative; border-radius: 0; }

/* ---------- Icon notes (payment / shipping / pickup) ---------- */
.ffx-notes { display: grid; gap: 12px; }
@media (min-width: 900px) { .ffx-notes { grid-template-columns: repeat(3, 1fr); } }
.ffx-notes li { display: flex; gap: 12px; align-items: flex-start; background: var(--ffx-tint); border-radius: 12px; padding: 14px 16px; font-size: 15.5px; color: var(--ffx-body); line-height: 1.5; }
.ffx-notes li > i { color: var(--ffx-green); font-size: 17px; margin-top: 3px; flex: 0 0 auto; }

/* ---------- Link-in-bio page (/links, Divi Blank Page template) ---------- */
.ffx-bio { min-height: 100vh; overflow-x: clip; background: linear-gradient(180deg, var(--ffx-tint) 0%, var(--ffx-white) 55%); padding: 44px 20px 56px; }
.ffx-bio__col { max-width: 540px; margin: 0 auto; text-align: center; }
.ffx-bio__logo { width: 110px; margin: 0 auto 16px; }
.ffx-bio h1 { font-size: 26px; margin-bottom: 6px; }
.ffx-bio .ffx-lead { font-size: 15.5px; margin: 0 auto 28px; }
.ffx-bio .ffx-rows { text-align: left; }
.ffx-social { display: flex; justify-content: center; gap: 12px; margin-top: 28px; }
.ffx-pg .ffx-social a { width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--ffx-white); border: 1px solid var(--ffx-line); color: var(--ffx-green-dark); font-size: 17px; text-decoration: none; transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease; }
.ffx-pg .ffx-social a:hover { background: var(--ffx-green); color: var(--ffx-white); transform: translateY(-2px); }
.ffx-bio__foot { margin-top: 24px; font-size: 13px; color: var(--ffx-muted) !important; }

/* Heading icon colour on eyebrows set in blue */
.ffx-eyebrow--blue { color: var(--ffx-blue); }
.ffx-pg .ffx-band .ffx-menu__panel strong { color: var(--ffx-ink); }

/* ---------- Feature card (logo beside text) ---------- */
.ffx-card--feature { display: grid; gap: 26px; align-items: center; border-width: 2px; padding: 30px 28px; }
@media (min-width: 820px) { .ffx-card--feature { grid-template-columns: 240px 1fr; gap: 36px; } }
.ffx-card__logo { display: flex; align-items: center; justify-content: center; }
.ffx-card__logo img { max-width: 220px; width: 100%; }
.ffx-card--feature .ffx-card__body { padding: 0; }
.ffx-card--feature h3 { font-size: 22px; }
.ffx-card .ffx-rows--flat { margin: 2px -12px 0; }
.ffx-card .ffx-rows--flat .ffx-row > i { font-size: 14px; width: 18px; }
.ffx-card .ffx-rows--flat .ffx-row strong { font-size: 15px; font-weight: 700; }

/* >>> src/30-divi-pages.css */
/* =====================================================================
   30. Pages that stay in Divi or the default WordPress template
   (forms, Privacy Policy, Thank You, Login, Blog, account pages).
   Only type, colour, buttons and form fields are restyled so these pages
   match the coded pages. Layout is left to Divi. Coded pages are inside
   Code modules, so none of these selectors reach them.
   ===================================================================== */

/* ---------- Type inside Divi Text modules and the default template ---------- */
#main-content .et_pb_text,
#main-content .entry-content:not(:has(.ffx-pg)),
#main-content .et_pb_post {
  font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;
  color: #4a4f4b;
}
#main-content .et_pb_text :is(h1, h2, h3, h4),
#main-content .entry-content:not(:has(.ffx-pg)) > :is(h1, h2, h3, h4),
#main-content .main_title,
#main-content .et_pb_post .entry-title {
  font-family: 'Bitter', Georgia, 'Times New Roman', serif !important;
  font-weight: 800 !important;
  color: #005B18 !important;
  line-height: 1.2 !important;
}
#main-content .et_pb_text h1, #main-content .main_title { font-size: clamp(30px, 4.6vw, 44px) !important; }
#main-content .et_pb_text h2 { font-size: clamp(22px, 3vw, 30px) !important; }
#main-content .et_pb_text h3 { font-size: 21px !important; }
#main-content .et_pb_text :is(p, li),
#main-content .entry-content:not(:has(.ffx-pg)) > :is(p, ul, ol) {
  font-size: 17px; line-height: 1.65; color: #4a4f4b;
}
#main-content .et_pb_text a:not(.et_pb_button),
#main-content .entry-content:not(:has(.ffx-pg)) > p a {
  color: #005B18; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px;
}
#main-content .et_pb_text a:not(.et_pb_button):hover { color: #1A9E77; }

/* Default-template pages (Adoption Form, Surrender Form): soft tint behind the title */
body.page-template-default:not(.et_pb_pagebuilder_layout) #main-content {
  background: linear-gradient(180deg, #eef7f3 0, #ffffff 320px);
}
body.page-template-default:not(.et_pb_pagebuilder_layout) #main-content .container { max-width: 1160px; width: auto; padding-left: 20px; padding-right: 20px; }
body.page-template-default:not(.et_pb_pagebuilder_layout) #main-content .main_title { margin-bottom: 18px; }

/* ---------- Divi buttons, matched to the coded pill buttons ---------- */
#page-container .et-l--post .et_pb_section a.et_pb_button,
#page-container .et-l--body .et_pb_section a.et_pb_button {
  font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif !important;
  font-size: 15.5px !important; font-weight: 800 !important; letter-spacing: 0 !important;
  text-transform: none !important; line-height: 1.2 !important;
  padding: 13px 24px !important; border-radius: 999px !important;
  border: 2px solid #1A9E77 !important; background: #1A9E77 !important; color: #ffffff !important;
  box-shadow: none !important; transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}
#page-container .et-l--post .et_pb_section a.et_pb_button:hover,
#page-container .et-l--body .et_pb_section a.et_pb_button:hover {
  transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18) !important;
  padding: 13px 24px !important; letter-spacing: 0 !important;
}
#page-container .et-l--post .et_pb_section a.et_pb_button::after,
#page-container .et-l--body .et_pb_section a.et_pb_button::after { display: none !important; }

/* ---------- Contact Form 7 (Pet Owner Reporting and similar) ---------- */
#main-content .wpcf7 label { font-weight: 600; font-size: 15px; color: #2b2b2b; }
#main-content .wpcf7 :is(input[type=text], input[type=email], input[type=tel], input[type=url], input[type=number], input[type=date], select, textarea) {
  width: 100%; padding: 11px 14px !important; border: 2px solid #e7e7e3 !important; border-radius: 10px !important;
  background: #ffffff !important; font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif; font-size: 16px !important; color: #2b2b2b !important;
}
#main-content .wpcf7 :is(input, select, textarea):focus { border-color: #1A9E77 !important; outline: none; box-shadow: 0 0 0 3px rgba(26, 158, 119, 0.15); }
#main-content .wpcf7 input[type=submit],
#main-content .wpcf7 .wpcf7-submit {
  background: #1A9E77 !important; color: #ffffff !important; border: 0 !important; border-radius: 999px !important;
  font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif !important; font-weight: 800 !important; font-size: 16px !important;
  padding: 13px 28px !important; cursor: pointer; text-transform: none !important; letter-spacing: 0 !important;
}
#main-content .wpcf7 input[type=submit]:hover { background: #005B18 !important; }
#main-content .wpcf7 .codedropz-upload-handler { border: 2px dashed #cfd8d3 !important; border-radius: 12px !important; background: #f8faf9; }

/* ---------- Blog index and posts ---------- */
#main-content .et_pb_post { border-bottom: 1px solid #e7e7e3; padding-bottom: 30px; margin-bottom: 30px; }
#main-content .et_pb_post .entry-title { font-size: clamp(22px, 2.8vw, 28px) !important; }
#main-content .et_pb_post .entry-title a { color: inherit !important; }
#main-content .et_pb_post .entry-title a:hover { color: #1A9E77 !important; }
#main-content .post-meta, #main-content .post-meta a { font-size: 14px !important; color: #6a6f6b !important; }
#main-content .more-link { font-weight: 700; color: #1A9E77; }
#sidebar .widget_block h2, #sidebar .widgettitle, #sidebar .wp-block-heading {
  font-family: 'Bitter', Georgia, serif; font-size: 18px; font-weight: 800; color: #005B18;
}
#sidebar a { color: #2b2b2b; }
#sidebar a:hover { color: #1A9E77; }
#sidebar .wp-block-search__input { border: 2px solid #e7e7e3; border-radius: 10px; padding: 9px 12px; }
#sidebar .wp-block-search__button { background: #1A9E77; color: #ffffff; border: 0; border-radius: 999px; font-weight: 800; padding: 9px 18px; }
.pagination a { color: #005B18; font-weight: 700; }

/* ---------- Divi login module (Login page, Theme Builder body) ---------- */
#page-container .et_pb_login .et_pb_newsletter_button,
#page-container .et_pb_login button.et_pb_button {
  background: #1A9E77 !important; border-color: #1A9E77 !important; color: #ffffff !important;
  border-radius: 999px !important; font-weight: 800 !important; text-transform: none !important; letter-spacing: 0 !important;
}
#page-container .et_pb_login input.input { border-radius: 10px !important; }

/* ---------- MemberPress account and checkout pages ---------- */
.mepr-account-container, .mp_wrapper { font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif; color: #2b2b2b; }
.mp_wrapper input[type=submit], .mepr-submit, .mp_wrapper .mepr-share-button {
  background: #1A9E77 !important; color: #ffffff !important; border: 0 !important;
  border-radius: 999px !important; font-weight: 800 !important; padding: 12px 24px !important;
}
.mp_wrapper :is(input[type=text], input[type=email], input[type=password], select) {
  border: 2px solid #e7e7e3 !important; border-radius: 10px !important; padding: 10px 12px !important;
}
#mepr-account-nav a, .mepr-nav-item a { color: #005B18; font-weight: 700; }

/* >>> src/40-testimonials.css */
/* =====================================================================
   40. Testimonials ([ffx_testimonials], output inside pages/footer.html)
   Grid of cards; long quotes collapse to 7 lines with a CSS-only
   "Read more" toggle. Loaded in <head> so there is no unstyled flash.
   ===================================================================== */
.ffx-tm-sec { background: #ffffff; border-top: 1px solid #e7e7e3; padding: 56px 0 52px; font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif; }
.ffx-tm-sec *, .ffx-tm-sec *::before, .ffx-tm-sec *::after { box-sizing: border-box; }
.ffx-tm-wrap { max-width: 1160px; margin: 0 auto; padding: 0 20px; }
.ffx-tm-sec .ffx-tm-title {
  margin: 0 0 26px; padding: 0; text-align: center;
  font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif; font-size: 13px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; line-height: 1.3; color: #1A9E77 !important;
}
.ffx-tm { display: grid; gap: 20px; grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 700px) { .ffx-tm { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .ffx-tm { grid-template-columns: repeat(3, 1fr); } }
.ffx-tm__card {
  position: relative; margin: 0; display: flex; flex-direction: column; gap: 14px;
  background: #ffffff; border: 1px solid #e7e7e3; border-radius: 14px; padding: 50px 24px 22px;
}
.ffx-tm__card::before {
  content: "\201C"; position: absolute; top: 12px; left: 22px;
  font-family: 'Bitter', Georgia, serif; font-size: 54px; line-height: 1; color: rgba(26, 158, 119, 0.35);
}
.ffx-tm-sec .ffx-tm__q { margin: 0; padding: 0; border: 0; font-size: 15.5px; line-height: 1.6; color: #4a4f4b; }
.ffx-tm-sec .ffx-tm__q p { margin: 0; padding: 0; color: inherit; }
.ffx-tm-sec .ffx-tm__q p + p { margin-top: 10px; }
.ffx-tm__cb { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.ffx-tm__cb:not(:checked) ~ .ffx-tm__q--clamp {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 7; overflow: hidden;
}
.ffx-tm__more { cursor: pointer; align-self: flex-start; font-size: 14px; font-weight: 700; color: #1A9E77; margin-top: -4px; }
.ffx-tm__more::after { content: "Read more"; }
.ffx-tm__cb:checked ~ .ffx-tm__more::after { content: "Show less"; }
.ffx-tm__more:hover { color: #005B18; text-decoration: underline; text-underline-offset: 3px; }
.ffx-tm__cb:focus-visible ~ .ffx-tm__more { outline: 3px solid #1A9E77; outline-offset: 3px; border-radius: 4px; }
.ffx-tm__who { margin-top: auto; padding-top: 12px; border-top: 1px solid #e7e7e3; display: flex; flex-direction: column; gap: 2px; line-height: 1.35; }
.ffx-tm__who strong { font-size: 15.5px; font-weight: 800; color: #005B18; }
.ffx-tm__who span, .ffx-tm__who a { font-size: 14px; font-weight: 700; color: #1A9E77; text-decoration: none; }
.ffx-tm__who a:hover { color: #005B18; text-decoration: underline; text-underline-offset: 3px; }

/* "Watch the video" link inside a testimonial */
.ffx-tm-video { display: inline-block; margin-top: 10px; color: #1A9E77 !important; font-weight: 700; text-decoration: none; }
.ffx-tm-video:hover { color: #005B18 !important; text-decoration: underline; }
/* Equal-height cards, except while a long quote is expanded */
.ffx-tm:has(.ffx-tm__cb:checked) { align-items: start; }

/* >>> src/50-footer.css */
/* =====================================================================
   50. Footer (pages/footer.html, wrapper .ffx-foot), light theme
   ===================================================================== */
.ffx-foot {
  --ff-green: #1A9E77;
  --ff-green-dark: #005B18;
  --ff-ink: #2b2b2b;
  --ff-muted: #6a6f6b;
  --ff-faint: #8f948f;
  --ff-line: #e7e7e3;
  --ff-bar: #f2f2f0;
  --ff-white: #ffffff;
  background: var(--ff-bar);
  border-top: 1px solid var(--ff-line);
  color: var(--ff-muted);
}
.ffx-foot *, .ffx-foot *::before, .ffx-foot *::after { box-sizing: border-box; }
.ffx-foot__wrap { max-width: 1160px; margin: 0 auto; padding: 56px 20px 0; }
.ffx-foot__grid { display: grid; gap: 36px; padding-bottom: 44px; }
@media (min-width: 640px) { .ffx-foot__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 980px) { .ffx-foot__grid { grid-template-columns: 4fr 2fr 2fr 3fr; gap: 44px; } }

/* Brand column */
.ffx-foot__brand-lockup { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.ffx-foot__brand-lockup img { width: 72px; height: auto; }
.ffx-foot__brand-lockup span { font-size: 19px; font-weight: 800; color: var(--ff-green-dark) !important; line-height: 1.2; }
.ffx-foot__tagline { margin: 0 0 18px; font-size: 14.5px; line-height: 1.6; color: var(--ff-muted) !important; }
.ffx-foot__social { display: flex; gap: 10px; }
.ffx-foot__social a {
  width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--ff-white); border: 1px solid var(--ff-line);
  color: var(--ff-green-dark) !important;
  font-size: 16px; text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.ffx-foot__social a:hover { background: var(--ff-green); border-color: var(--ff-green); transform: translateY(-2px); color: var(--ff-white) !important; }

/* Link columns */
.ffx-foot__col h4 {
  margin: 0 0 16px; font-size: 13px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--ff-green-dark) !important;
}
.ffx-foot__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ffx-foot__col a { font-size: 14.5px; color: var(--ff-muted) !important; text-decoration: none; transition: color 0.12s ease; }
.ffx-foot__col a:hover { color: var(--ff-green-dark) !important; text-decoration: underline; text-underline-offset: 3px; }

/* Contact column */
.ffx-foot__contact { display: grid; gap: 12px; margin-bottom: 20px; }
.ffx-foot__contact-item { display: flex; gap: 11px; align-items: flex-start; font-size: 14.5px; line-height: 1.5; color: var(--ff-muted) !important; }
.ffx-foot__contact-item i { color: var(--ff-green); font-size: 15px; margin-top: 3px; flex: 0 0 auto; }
.ffx-foot__contact-item a { color: var(--ff-muted) !important; text-decoration: none; }
.ffx-foot__contact-item a:hover { color: var(--ff-green-dark) !important; text-decoration: underline; text-underline-offset: 3px; }
.ffx-foot__badge img { max-height: 62px; width: auto; border-radius: 8px; }

/* Bottom bar */
.ffx-foot__bottom {
  border-top: 1px solid var(--ff-line);
  padding: 20px 0 26px;
  display: flex; flex-wrap: wrap; gap: 10px 24px;
  align-items: center; justify-content: space-between;
  font-size: 13px; color: var(--ff-faint) !important;
}
.ffx-foot__bottom a { color: var(--ff-faint) !important; text-decoration: none; }
.ffx-foot__bottom a:hover { color: var(--ff-green-dark) !important; text-decoration: underline; text-underline-offset: 3px; }
.ffx-foot a:focus-visible { outline: 3px solid var(--ff-green); outline-offset: 3px; border-radius: 6px; }
@media (prefers-reduced-motion: reduce) {
  .ffx-foot__social a { transition: none; }
  .ffx-foot__social a:hover { transform: none; }
}
