/*
Theme Name: Every Child Leaves Protected
Theme URI: https://rsvequityaction.org/
Author: NMQF Communications
Description: Stand-alone Every Child Leaves Protected site with on-site WordPress blog, report, resources, family guide, and consent-based resource-pack form.
Version: 2.3.1
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: eclp-rsv-campaign
*/
:root{
  --orange:#f47a1f;
  --orange-dark:#c94f0a;
  --orange-deep:#873000;
  --orange-soft:#fff3e8;

  --cream:#fbf8f3;
  --soft:#fff7f0;
  --white:#ffffff;

  --ink:#241e1b;
  --muted:#655d58;
  --border:#ecd9ca;

  --shadow:0 24px 70px rgba(86,44,15,.12);
  --shadow-soft:0 12px 36px rgba(86,44,15,.08);

  --max:1180px;
}


/* =========================================================
   GLOBAL
========================================================= */

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}

body{
  margin:0;
  background:#fff;
  color:var(--ink);

  font-family:
    Inter,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    Helvetica,
    Arial,
    sans-serif;

  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{
  max-width:100%;
  height:auto;
}

a{
  color:inherit;
}

button,
input,
select,
textarea{
  font:inherit;
}

.eclp-wrap{
  width:min(calc(100% - 40px),var(--max));
  margin-inline:auto;
}


/* =========================================================
   PROGRESS BAR
========================================================= */

.eclp-progress{
  position:fixed;

  top:0;
  left:0;

  z-index:9999;

  width:0;
  height:4px;

  background:
    linear-gradient(
      90deg,
      var(--orange-dark),
      var(--orange),
      #ffb05c
    );

  box-shadow:
    0 0 14px rgba(244,122,31,.45);
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

.eclp-skip{
  position:absolute;
  left:-9999px;
}

.eclp-skip:focus{
  left:16px;
  top:16px;

  z-index:9999;

  padding:10px 14px;

  background:#fff;

  border-radius:8px;
  box-shadow:var(--shadow);
}


/* =========================================================
   HEADER
========================================================= */

.eclp-header{
  position:sticky;
  top:0;

  z-index:100;

  background:
    rgba(255,255,255,.96);

  backdrop-filter:blur(15px);
  -webkit-backdrop-filter:blur(15px);

  border-bottom:
    1px solid var(--border);

  transition:
    box-shadow .3s ease,
    background .3s ease;
}

.eclp-header.is-scrolled{
  background:
    rgba(255,255,255,.94);

  box-shadow:
    0 13px 38px rgba(80,40,15,.10);
}

.eclp-header .eclp-wrap{
  width:min(calc(100% - 34px),1360px);
}

.eclp-header-inner{
  position:relative;

  min-height:92px;

  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:24px;
}


/* =========================================================
   HEADER LOGOS
========================================================= */

.eclp-brand{
  display:flex;
  align-items:center;

  gap:13px;

  flex:0 0 auto;

  text-decoration:none;
}

.eclp-org-logo-frame{
  width:118px;
  height:44px;

  display:flex;
  align-items:center;

  flex:0 0 118px;
}

.eclp-org-logo{
  display:block;

  width:100%;
  height:44px;

  object-fit:contain;
  object-position:left center;
}

.eclp-brand-divider{
  width:1px;
  height:54px;

  background:var(--border);
}


/* =========================================================
   ECLP CAMPAIGN LOGO
========================================================= */

.eclp-campaign-logo-frame{
  width:90px;
  height:66px;

  flex:0 0 90px;

  display:flex;
  align-items:center;
  justify-content:center;

  overflow:visible;

  border-radius:10px;

  box-shadow:
    0 7px 18px rgba(95,46,120,.17);

  transition:
    transform .3s ease,
    box-shadow .3s ease;
}

.eclp-campaign-logo-frame:hover{
  transform:
    translateY(-3px)
    scale(1.035);

  box-shadow:
    0 12px 27px rgba(95,46,120,.25);
}

.eclp-campaign-logo{
  display:block;

  width:100%;
  height:100%;

  overflow:visible;
}


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

.eclp-nav{
  display:flex;
  align-items:center;

  gap:4px;

  padding:5px;

  border:
    1px solid var(--border);

  border-radius:999px;

  background:#fff8f2;

  font-size:12.5px;
  font-weight:800;

  white-space:nowrap;

  box-shadow:
    0 7px 22px rgba(80,40,10,.04);
}

.eclp-nav > a{
  text-decoration:none;
}

.eclp-nav > a:not(.eclp-nav-cta){
  padding:9px 10px;

  border-radius:999px;

  color:#332c28;

  transition:
    background .25s ease,
    color .25s ease,
    transform .25s ease,
    box-shadow .25s ease;
}

.eclp-nav > a:not(.eclp-nav-cta):hover{
  color:var(--orange-dark);
  background:#fff;

  transform:translateY(-2px);

  box-shadow:
    0 6px 17px rgba(130,55,8,.08);
}

.eclp-nav-cta{
  position:relative;

  overflow:hidden;

  padding:10px 18px;

  border-radius:999px;

  color:#fff!important;
  background:var(--orange);

  box-shadow:
    0 9px 22px rgba(244,122,31,.27);

  transition:
    transform .25s ease,
    background .25s ease,
    box-shadow .25s ease;
}

.eclp-nav-cta:hover{
  background:var(--orange-dark);

  transform:translateY(-2px);

  box-shadow:
    0 13px 28px rgba(244,122,31,.32);
}

.eclp-nav-cta::after{
  content:"";

  position:absolute;

  width:32px;

  top:-20%;
  bottom:-20%;

  left:-60px;

  background:
    rgba(255,255,255,.38);

  transform:skewX(-22deg);

  animation:
    eclpShine 4s infinite;
}


/* =========================================================
   MOBILE MENU
========================================================= */

.eclp-menu-toggle{
  display:none;

  width:46px;
  height:46px;

  padding:0;

  border:
    1px solid var(--border);

  border-radius:14px;

  background:#fff;

  cursor:pointer;

  place-items:center;
  align-content:center;

  gap:4px;
}

.eclp-menu-toggle span{
  display:block;

  width:20px;
  height:2px;

  border-radius:4px;

  background:
    var(--orange-dark);

  transition:
    transform .25s ease,
    opacity .25s ease;
}

.eclp-menu-toggle.is-open span:nth-child(1){
  transform:
    translateY(6px)
    rotate(45deg);
}

.eclp-menu-toggle.is-open span:nth-child(2){
  opacity:0;
}

.eclp-menu-toggle.is-open span:nth-child(3){
  transform:
    translateY(-6px)
    rotate(-45deg);
}

.eclp-mobile-menu{
  display:none;

  position:absolute;

  top:calc(100% + 10px);
  left:0;
  right:0;

  padding:13px;

  border:
    1px solid var(--border);

  border-radius:22px;

  background:
    rgba(255,255,255,.99);

  box-shadow:
    0 25px 60px rgba(90,45,10,.15);
}

.eclp-mobile-menu.is-open{
  display:grid;

  gap:4px;

  animation:
    eclpMenuIn .3s ease both;
}

.eclp-mobile-menu a{
  padding:12px 14px;

  border-radius:12px;

  color:#2f2824;

  font-size:14px;
  font-weight:800;

  text-decoration:none;
}

.eclp-mobile-menu a:hover{
  background:var(--orange-soft);
  color:var(--orange-dark);
}

.eclp-mobile-menu-cta{
  margin-top:5px;

  background:var(--orange)!important;
  color:#fff!important;

  text-align:center;
}


/* =========================================================
   BUTTONS
========================================================= */

.eclp-actions{
  display:flex;
  flex-wrap:wrap;

  gap:12px;

  margin-top:28px;
}

.eclp-btn{
  min-height:50px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  gap:8px;

  padding:0 22px;

  border:2px solid transparent;
  border-radius:999px;

  font-size:14px;
  font-weight:900;

  text-decoration:none;

  transition:
    transform .25s ease,
    box-shadow .25s ease,
    background .25s ease;
}

.eclp-btn:hover{
  transform:translateY(-3px);
}

.eclp-btn-primary{
  color:#fff;

  background:
    linear-gradient(
      135deg,
      var(--orange-dark),
      var(--orange)
    );

  box-shadow:
    0 14px 32px rgba(201,79,10,.24);
}

.eclp-btn-primary:hover{
  box-shadow:
    0 18px 38px rgba(201,79,10,.31);
}

.eclp-btn-secondary{
  color:var(--orange-dark);

  background:#fff;

  border-color:var(--orange);
}

.eclp-btn-light{
  color:var(--orange-deep);
  background:#fff;
}

.eclp-btn-urgent{
  min-height:56px;

  padding-inline:27px;

  font-size:15px;

  animation:
    eclpCtaPulse 4s ease-in-out infinite;
}


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

.eclp-hero{
  position:relative;

  min-height:680px;

  overflow:hidden;

  background:
    linear-gradient(
      90deg,
      #ffffff 0%,
      #fffaf6 43%,
      #f8f8f6 43%,
      #f8f8f6 100%
    );

  border-bottom:
    1px solid var(--border);
}


/* FULL CAMPAIGN IMAGE ON RIGHT SIDE */

.eclp-hero::before{
  content:"";

  position:absolute;

  top:0;
  right:0;
  bottom:0;

  width:58%;

  z-index:0;

  background-image:
    var(--eclp-hero-image, none);

  background-repeat:no-repeat;

  background-position:center center;

  background-size:contain;

  background-color:#f7f8f8;

  pointer-events:none;
}


/* LIGHT BLEND BETWEEN COPY AND IMAGE */

.eclp-hero::after{
  content:"";

  position:absolute;

  z-index:1;

  top:0;
  bottom:0;

  left:39%;

  width:12%;

  pointer-events:none;

  background:
    linear-gradient(
      90deg,
      #fff 0%,
      rgba(255,255,255,.92) 25%,
      rgba(255,255,255,.46) 65%,
      rgba(255,255,255,0) 100%
    );
}

.eclp-hero-grid{
  position:relative;

  z-index:3;

  min-height:680px;

  display:flex;
  align-items:center;

  padding:65px 0;
}

.eclp-hero-copy{
  width:43%;

  max-width:560px;

  animation:
    eclpHeroCopy .85s cubic-bezier(.16,1,.3,1) both;
}

.eclp-advocacy-badge{
  display:inline-flex;

  padding:8px 13px;

  margin-bottom:12px;

  border-radius:999px;

  color:#fff;
  background:var(--orange-deep);

  font-size:11px;
  font-weight:900;

  letter-spacing:.09em;
  text-transform:uppercase;

  animation:
    eclpBadgePulse 4s ease-in-out infinite;
}

.eclp-eyebrow{
  width:max-content;

  display:flex;
  align-items:center;

  gap:9px;

  padding:8px 13px;

  border:
    1px solid #efcaaa;

  border-radius:999px;

  color:var(--orange-dark);

  background:
    rgba(255,255,255,.93);

  font-size:12px;
  font-weight:900;

  letter-spacing:.075em;
  text-transform:uppercase;
}

.eclp-eyebrow-dot{
  width:8px;
  height:8px;

  border-radius:50%;

  background:var(--orange);

  box-shadow:
    0 0 0 5px rgba(244,122,31,.12);

  animation:
    eclpDotPulse 2.4s ease-in-out infinite;
}

.eclp-hero h1{
  margin:21px 0 18px;

  font-size:
    clamp(45px,5vw,68px);

  line-height:.98;

  letter-spacing:-.047em;
}

.eclp-hero h1 span{
  color:var(--orange);
}

.eclp-hero-lead{
  margin:0;

  color:var(--muted);

  font-size:
    clamp(17px,1.6vw,20px);
}

.eclp-stakeholder-links{
  display:flex;
  flex-wrap:wrap;

  gap:9px 18px;

  margin-top:20px;
}

.eclp-stakeholder-links a{
  color:var(--orange-deep);

  font-size:13px;
  font-weight:900;

  text-decoration:none;
}

.eclp-stakeholder-links a:hover{
  color:var(--orange);

  text-decoration:underline;

  text-underline-offset:4px;
}

.eclp-parent-link{
  display:flex;
  align-items:center;

  gap:12px;

  margin-top:25px;
  padding-top:20px;

  border-top:
    1px solid var(--border);

  color:var(--muted);

  font-size:12.5px;
}

.eclp-parent-link img{
  width:100px;

  flex:0 0 auto;
}

.eclp-parent-link a{
  color:var(--orange-dark);

  font-weight:900;
}


/* =========================================================
   IMPACT
========================================================= */

.eclp-impact-strip{
  color:#fff;

  background:
    linear-gradient(
      120deg,
      var(--orange-dark),
      var(--orange),
      #ff9b40,
      var(--orange)
    );

  background-size:300% 300%;

  animation:
    eclpGradient 12s ease infinite;
}

.eclp-impact-grid{
  display:grid;

  grid-template-columns:
    repeat(3,1fr);
}

.eclp-impact-stat{
  min-height:188px;

  padding:30px 34px;

  border-right:
    1px solid rgba(255,255,255,.25);

  transition:
    transform .3s ease,
    background .3s ease;
}

.eclp-impact-stat:last-child{
  border-right:0;
}

.eclp-impact-stat:hover{
  transform:translateY(-5px);

  background:
    rgba(255,255,255,.08);
}

.eclp-impact-number{
  display:block;

  color:#fff;

  font-size:48px;
  font-weight:950;

  line-height:.95;

  letter-spacing:-.055em;
}

.eclp-impact-stat strong{
  display:block;

  margin-top:10px;

  font-size:16px;
  line-height:1.15;
}

.eclp-impact-stat p{
  max-width:320px;

  margin:6px 0 0;

  color:
    rgba(255,255,255,.91);

  font-size:12.5px;
}

.eclp-impact-source{
  padding:0 34px 18px;

  color:
    rgba(255,255,255,.85);

  font-size:11px;

  text-align:right;
}

.eclp-impact-source a{
  color:#fff;

  font-weight:900;
}


/* =========================================================
   COMMON SECTIONS
========================================================= */

.eclp-section{
  padding:88px 0;
}

.eclp-section-soft{
  background:var(--soft);
}

.eclp-section-cream{
  background:var(--cream);
}

.eclp-kicker{
  margin:0 0 10px;

  color:var(--orange-dark);

  font-size:12px;
  font-weight:950;

  letter-spacing:.08em;

  text-transform:uppercase;
}

.eclp-section h2{
  margin:0;

  font-size:
    clamp(34px,4.6vw,52px);

  line-height:1.04;

  letter-spacing:-.038em;
}

.eclp-section-heading-orange{
  color:var(--orange-dark);
}

.eclp-lead{
  max-width:790px;

  margin:17px 0 0;

  color:var(--muted);

  font-size:18px;
}


/* =========================================================
   REVEAL ANIMATIONS
========================================================= */

.eclp-reveal,
.eclp-reveal-left,
.eclp-reveal-right{
  opacity:0;

  transition:
    opacity .78s cubic-bezier(.16,1,.3,1),
    transform .78s cubic-bezier(.16,1,.3,1),
    filter .78s ease;
}

.eclp-reveal{
  transform:translateY(32px);

  filter:blur(3px);
}

.eclp-reveal-left{
  transform:translateX(-42px);
}

.eclp-reveal-right{
  transform:translateX(42px);
}

.eclp-reveal.is-visible,
.eclp-reveal-left.is-visible,
.eclp-reveal-right.is-visible{
  opacity:1;

  transform:none;

  filter:none;
}


/* =========================================================
   PROBLEM CARDS
========================================================= */

.eclp-problem-grid{
  display:grid;

  grid-template-columns:
    repeat(4,1fr);

  gap:15px;

  margin-top:36px;
}

.eclp-problem-card{
  padding:25px;

  border:
    1px solid var(--border);

  border-radius:23px;

  background:#fff;

  box-shadow:
    var(--shadow-soft);

  transition:
    transform .35s ease,
    box-shadow .35s ease,
    border-color .35s ease;
}

.eclp-problem-card:hover{
  transform:translateY(-8px);

  border-color:#e0b38b;

  box-shadow:var(--shadow);
}

.eclp-icon{
  width:46px;
  height:46px;

  display:grid;
  place-items:center;

  margin-bottom:17px;

  border-radius:15px;

  color:var(--orange-dark);
  background:var(--orange-soft);

  font-size:20px;
  font-weight:900;
}

.eclp-problem-card h3{
  margin:0 0 8px;

  font-size:19px;
}

.eclp-problem-card p{
  margin:0;

  color:var(--muted);

  font-size:14px;
}


/* =========================================================
   FEATURE ROWS
========================================================= */

.eclp-feature-row{
  display:grid;

  grid-template-columns:
    .9fr 1.1fr;

  align-items:center;

  gap:42px;

  margin-top:38px;
}

.eclp-feature-row.reverse{
  grid-template-columns:
    1.1fr .9fr;
}

.eclp-feature-row.reverse .eclp-feature-image{
  order:2;
}

.eclp-feature-image{
  overflow:hidden;

  border:
    1px solid var(--border);

  border-radius:30px;

  background:#fff;

  box-shadow:var(--shadow);

  transition:
    transform .4s ease,
    box-shadow .4s ease;
}

.eclp-feature-image:hover{
  transform:translateY(-6px);
}

.eclp-feature-image img{
  display:block;

  width:100%;

  max-height:560px;

  object-fit:contain;

  background:#fff;

  transition:
    transform .55s ease;
}

.eclp-feature-image:hover img{
  transform:scale(1.025);
}

.eclp-feature-copy h3{
  margin:8px 0 13px;

  font-size:33px;
  line-height:1.06;

  letter-spacing:-.035em;
}

.eclp-feature-copy p{
  color:var(--muted);

  font-size:16px;
}

.eclp-list{
  display:grid;

  gap:11px;

  margin:23px 0 0;

  padding:0;

  list-style:none;
}

.eclp-list li{
  display:grid;

  grid-template-columns:
    25px 1fr;

  gap:10px;
}

.eclp-check{
  width:23px;
  height:23px;

  display:grid;
  place-items:center;

  border-radius:8px;

  color:var(--orange-dark);
  background:var(--orange-soft);

  font-size:12px;
  font-weight:900;
}


/* =========================================================
   HUB CARDS
========================================================= */

.eclp-hub-grid{
  display:grid;

  grid-template-columns:
    repeat(3,1fr);

  gap:17px;

  margin-top:38px;
}

.eclp-hub{
  position:relative;

  min-height:250px;

  display:flex;
  flex-direction:column;

  padding:
    28px 28px 55px;

  overflow:hidden;

  border:
    1px solid var(--border);

  border-radius:26px;

  background:#fff;

  text-decoration:none;

  transition:
    transform .35s ease,
    box-shadow .35s ease,
    border-color .35s ease;
}

.eclp-hub:hover{
  transform:translateY(-8px);

  border-color:#e2b58e;

  box-shadow:var(--shadow);
}

.eclp-hub::after{
  content:"→";

  position:absolute;

  right:24px;
  bottom:21px;

  color:var(--orange);

  font-size:21px;
  font-weight:900;

  transition:
    transform .3s ease;
}

.eclp-hub:hover::after{
  transform:translateX(6px);
}

.eclp-hub-tag{
  width:max-content;

  padding:5px 9px;

  border-radius:999px;

  color:var(--orange-dark);

  background:var(--orange-soft);

  font-size:10px;
  font-weight:900;

  letter-spacing:.07em;

  text-transform:uppercase;
}

.eclp-hub h3{
  margin:18px 0 9px;

  font-size:23px;
  line-height:1.08;
}

.eclp-hub p{
  margin:0;

  max-width:94%;

  color:var(--muted);

  font-size:14px;
}


/* =========================================================
   INLINE CTA
========================================================= */

.eclp-inline-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:20px;

  margin-top:34px;

  padding:22px 25px;

  border-radius:22px;

  color:#fff;

  background:
    linear-gradient(
      120deg,
      var(--orange-deep),
      #a33b00
    );

  box-shadow:
    var(--shadow-soft);
}

.eclp-inline-cta strong{
  display:block;

  margin-bottom:3px;

  font-size:18px;
}

.eclp-inline-cta span{
  color:
    rgba(255,255,255,.83);

  font-size:13px;
}


/* =========================================================
   POLICY CARDS
========================================================= */

.eclp-action-grid{
  display:grid;

  grid-template-columns:
    repeat(3,1fr);

  gap:17px;

  margin-top:36px;
}

.eclp-action-card{
  padding:27px;

  border:
    1px solid var(--border);

  border-radius:24px;

  background:#fff;

  box-shadow:
    var(--shadow-soft);

  transition:
    transform .35s ease,
    box-shadow .35s ease;
}

.eclp-action-card:hover{
  transform:translateY(-7px);

  box-shadow:var(--shadow);
}

.eclp-action-card h3{
  margin:13px 0 8px;

  font-size:21px;
}

.eclp-action-card p{
  margin:0 0 19px;

  color:var(--muted);

  font-size:14px;
}

.eclp-resource-source{
  display:block;

  margin-bottom:5px;

  color:var(--orange-dark);

  font-size:10px;
  font-weight:900;

  letter-spacing:.075em;

  text-transform:uppercase;
}


/* =========================================================
   ACTION BAND
========================================================= */

.eclp-action-band{
  padding:70px 0;

  color:#fff;

  background:
    linear-gradient(
      135deg,
      #7d2b00 0%,
      #c94f0a 55%,
      #f47a1f 100%
    );

  background-size:
    250% 250%;

  animation:
    eclpGradient 11s ease infinite;
}

.eclp-action-band-inner{
  display:grid;

  grid-template-columns:
    1fr auto;

  align-items:center;

  gap:40px;
}

.eclp-action-band h2{
  max-width:760px;

  margin:0;

  color:#fff;

  font-size:
    clamp(36px,5vw,56px);

  line-height:1;

  letter-spacing:-.04em;
}

.eclp-action-band p{
  max-width:700px;

  margin:17px 0 0;

  color:
    rgba(255,255,255,.86);

  font-size:17px;
}

.eclp-action-band-buttons{
  display:flex;
  flex-direction:column;

  gap:11px;
}

.eclp-action-band .eclp-btn-secondary{
  color:#fff;

  background:transparent;

  border-color:
    rgba(255,255,255,.75);
}


/* =========================================================
   BLOG
========================================================= */

.eclp-blog-grid{
  display:grid;

  grid-template-columns:
    repeat(3,1fr);

  gap:20px;

  margin-top:38px;
}

.eclp-blog-card{
  overflow:hidden;

  border:
    1px solid var(--border);

  border-radius:26px;

  background:#fff;

  box-shadow:var(--shadow-soft);

  text-decoration:none;

  transition:
    transform .35s ease,
    box-shadow .35s ease;
}

.eclp-blog-card:hover{
  transform:translateY(-9px);

  box-shadow:var(--shadow);
}

.eclp-blog-image{
  aspect-ratio:16 / 9;

  overflow:hidden;

  background:#f5f5f5;
}

.eclp-blog-image img{
  display:block;

  width:100%;
  height:100%;

  object-fit:cover;

  transition:
    transform .55s ease;
}

.eclp-blog-card:hover .eclp-blog-image img{
  transform:scale(1.05);
}

.eclp-blog-body{
  padding:22px;
}

.eclp-blog-meta{
  display:block;

  margin-bottom:8px;

  color:var(--orange-dark);

  font-size:10px;
  font-weight:900;

  letter-spacing:.07em;

  text-transform:uppercase;
}

.eclp-blog-card h3{
  margin:0;

  font-size:21px;
  line-height:1.15;
}

.eclp-blog-card p{
  margin:11px 0 0;

  color:var(--muted);

  font-size:13.5px;
}

.eclp-blog-more{
  display:inline-block;

  margin-top:16px;

  color:var(--orange-dark);

  font-size:13px;
  font-weight:900;
}


/* =========================================================
   RESOURCES
========================================================= */

.eclp-resource-groups{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  gap:20px;

  margin-top:38px;
}

.eclp-resource-group{
  padding:25px;

  border:
    1px solid var(--border);

  border-radius:28px;

  background:#fff;
}

.eclp-resource-group-wide{
  grid-column:
    1 / -1;

  background:
    linear-gradient(
      135deg,
      #fff,
      var(--orange-soft)
    );
}

.eclp-resource-group h3{
  margin:0 0 18px;

  color:var(--orange-deep);

  font-size:20px;
}

.eclp-resource-list{
  display:grid;

  gap:11px;
}

.eclp-resource-list-featured{
  grid-template-columns:
    repeat(3,minmax(0,1fr));
}

.eclp-resource{
  position:relative;

  display:block;

  padding:
    18px 44px 18px 18px;

  border:
    1px solid #f0e2d7;

  border-radius:17px;

  background:#fffcfa;

  text-decoration:none;

  transition:
    transform .3s ease,
    border-color .3s ease,
    box-shadow .3s ease;
}

.eclp-resource:hover{
  transform:translateX(5px);

  border-color:#dfb189;

  box-shadow:
    0 8px 22px rgba(80,40,10,.06);
}

.eclp-resource::after{
  content:"↗";

  position:absolute;

  right:17px;
  top:17px;

  color:var(--orange);

  font-weight:900;
}

.eclp-resource strong{
  display:block;

  font-size:15px;
  line-height:1.26;
}

.eclp-resource p{
  margin:6px 0 0;

  color:var(--muted);

  font-size:12.5px;
}


/* =========================================================
   PROTECT FROM DAY ONE
========================================================= */

.eclp-parent-section{
  background:
    linear-gradient(
      135deg,
      #fff,
      #fff3e9
    );
}

.eclp-parent-card{
  display:grid;

  grid-template-columns:
    1fr .9fr;

  align-items:center;

  gap:40px;

  padding:45px;

  border:
    1px solid var(--border);

  border-radius:34px;

  background:#fff;

  box-shadow:
    var(--shadow);
}

.eclp-pdo-logo{
  display:block;

  width:min(100%,410px);

  margin-inline:auto;

  transition:
    transform .4s ease;
}

.eclp-parent-card:hover .eclp-pdo-logo{
  transform:scale(1.035);
}


/* =========================================================
   SIGNUP
========================================================= */

.eclp-signup-section{
  color:#fff;

  background:
    linear-gradient(
      135deg,
      #6c2400,
      var(--orange-deep),
      #a83d00
    );

  background-size:
    250% 250%;

  animation:
    eclpGradient 12s ease infinite;
}

.eclp-signup{
  display:grid;

  grid-template-columns:
    .9fr 1.1fr;

  align-items:center;

  gap:52px;
}

.eclp-signup .eclp-kicker{
  color:#ffd2ad;
}

.eclp-signup h2{
  color:#fff;
}

.eclp-signup-copy > p{
  max-width:540px;

  color:
    rgba(255,255,255,.82);

  font-size:17px;
}

.eclp-signup-benefits{
  display:grid;

  gap:11px;

  margin-top:25px;
}

.eclp-signup-benefit{
  display:grid;

  grid-template-columns:
    28px 1fr;

  gap:11px;

  color:
    rgba(255,255,255,.91);

  font-size:14px;
}

.eclp-signup-check{
  width:24px;
  height:24px;

  display:grid;
  place-items:center;

  border-radius:8px;

  background:
    rgba(255,255,255,.14);

  color:#fff;

  font-weight:900;
}

.eclp-form-shell{
  padding:34px;

  border-radius:29px;

  color:var(--ink);
  background:#fff;

  box-shadow:
    0 30px 75px rgba(0,0,0,.22);
}

.eclp-form-shell h3{
  margin:0 0 7px;

  font-size:25px;
}

.eclp-form-shell > p{
  color:var(--muted);
}

.eclp-form-shell .hs-form-frame{
  width:100%;

  min-height:260px;
}

.eclp-form-note{
  margin-top:14px!important;
  padding-top:13px;

  border-top:
    1px solid var(--border);

  color:#7b726c!important;

  font-size:11px!important;
}


/* =========================================================
   FOOTER
========================================================= */

.eclp-footer{
  color:
    rgba(255,255,255,.72);

  background:#2f190b;
}

.eclp-footer-main{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  align-items:center;

  gap:35px;

  padding:
    35px 0 27px;
}

.eclp-footer-main strong{
  display:block;

  color:#fff;

  font-size:18px;
}

.eclp-footer-main p{
  max-width:520px;

  margin:5px 0 0;

  font-size:13px;
}

.eclp-footer-links{
  justify-self:end;

  display:flex;
  flex-wrap:wrap;

  gap:18px;

  font-size:13px;
  font-weight:800;
}

.eclp-footer-links a{
  color:#fff;

  text-decoration:none;
}

.eclp-footer-links a:hover{
  text-decoration:underline;
}

.eclp-footer-bottom{
  display:flex;
  justify-content:space-between;

  flex-wrap:wrap;

  gap:20px;

  padding:
    18px 0 24px;

  border-top:
    1px solid rgba(255,255,255,.09);

  font-size:11px;
}


/* =========================================================
   BACK TO TOP
========================================================= */

.eclp-back-top{
  position:fixed;

  right:22px;
  bottom:22px;

  z-index:90;

  width:48px;
  height:48px;

  display:grid;
  place-items:center;

  border:0;
  border-radius:50%;

  color:#fff;
  background:var(--orange);

  font-size:20px;
  font-weight:900;

  cursor:pointer;

  opacity:0;

  pointer-events:none;

  transform:translateY(15px);

  box-shadow:
    0 12px 30px rgba(201,79,10,.30);

  transition:
    opacity .3s ease,
    transform .3s ease;
}

.eclp-back-top.is-visible{
  opacity:1;

  pointer-events:auto;

  transform:none;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes eclpGradient{

  0%{
    background-position:0% 50%;
  }

  50%{
    background-position:100% 50%;
  }

  100%{
    background-position:0% 50%;
  }

}

@keyframes eclpHeroCopy{

  from{
    opacity:0;

    transform:
      translateY(30px);
  }

  to{
    opacity:1;

    transform:none;
  }

}

@keyframes eclpCtaPulse{

  0%,
  88%,
  100%{
    transform:scale(1);
  }

  94%{
    transform:scale(1.025);
  }

}

@keyframes eclpBadgePulse{

  0%,
  100%{
    box-shadow:
      0 0 0 0 rgba(135,48,0,0);
  }

  50%{
    box-shadow:
      0 0 0 7px rgba(135,48,0,.07);
  }

}

@keyframes eclpDotPulse{

  0%,
  100%{
    box-shadow:
      0 0 0 5px rgba(244,122,31,.12);
  }

  50%{
    box-shadow:
      0 0 0 9px rgba(244,122,31,.04);
  }

}

@keyframes eclpShine{

  0%,
  68%{
    left:-60px;
  }

  85%{
    left:125%;
  }

  100%{
    left:125%;
  }

}

@keyframes eclpMenuIn{

  from{
    opacity:0;

    transform:
      translateY(-8px);
  }

  to{
    opacity:1;

    transform:none;
  }

}


/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:1180px){

  .eclp-nav{
    display:none;
  }

  .eclp-menu-toggle{
    display:grid;

    margin-left:auto;
  }

}


@media(max-width:1050px){

  .eclp-hero{
    min-height:auto;

    padding-top:360px;

    background:#fff;
  }

  .eclp-hero::before{
    top:0;

    width:100%;
    height:360px;

    bottom:auto;

    background-size:contain;

    background-position:center center;

    background-color:#f7f8f8;
  }

  .eclp-hero::after{
    display:none;
  }

  .eclp-hero-grid{
    min-height:auto;

    padding:
      45px 0 60px;
  }

  .eclp-hero-copy{
    width:100%;

    max-width:760px;

    margin-inline:auto;
  }

  .eclp-feature-row,
  .eclp-feature-row.reverse,
  .eclp-parent-card,
  .eclp-signup,
  .eclp-action-band-inner{
    grid-template-columns:1fr;
  }

  .eclp-feature-row.reverse .eclp-feature-image{
    order:0;
  }

  .eclp-problem-grid,
  .eclp-hub-grid,
  .eclp-action-grid{
    grid-template-columns:
      1fr 1fr;
  }

  .eclp-resource-groups{
    grid-template-columns:1fr;
  }

  .eclp-resource-group-wide{
    grid-column:auto;
  }

  .eclp-resource-list-featured{
    grid-template-columns:
      1fr 1fr;
  }

  .eclp-blog-grid{
    grid-template-columns:
      1fr 1fr;
  }

  .eclp-footer-main{
    grid-template-columns:1fr;
  }

  .eclp-footer-links{
    justify-self:start;
  }

}


@media(max-width:760px){

  .eclp-impact-grid{
    grid-template-columns:1fr;
  }

  .eclp-impact-stat{
    min-height:0;

    border-right:0;

    border-bottom:
      1px solid rgba(255,255,255,.23);
  }

  .eclp-impact-stat:last-child{
    border-bottom:0;
  }

  .eclp-impact-source{
    text-align:left;
  }

  .eclp-blog-grid{
    grid-template-columns:1fr;
  }

  .eclp-inline-cta{
    align-items:flex-start;

    flex-direction:column;
  }

}


@media(max-width:660px){

  .eclp-wrap{
    width:min(
      calc(100% - 28px),
      var(--max)
    );
  }

  .eclp-header-inner{
    min-height:70px;
  }

  .eclp-brand{
    gap:8px;
  }

  .eclp-org-logo-frame{
    width:86px;
    height:31px;

    flex-basis:86px;
  }

  .eclp-org-logo{
    height:31px;
  }

  .eclp-brand-divider{
    height:38px;
  }

  .eclp-campaign-logo-frame{
    width:56px;
    height:42px;

    flex-basis:56px;

    border-radius:7px;
  }

  .eclp-hero{
    padding-top:235px;
  }

  .eclp-hero::before{
    height:235px;

    background-size:contain;

    background-position:center center;
  }

  .eclp-hero-grid{
    padding:
      35px 0 48px;
  }

  .eclp-hero h1{
    font-size:43px;
  }

  .eclp-actions{
    flex-direction:column;
  }

  .eclp-btn{
    width:100%;
  }

  .eclp-stakeholder-links{
    display:grid;

    grid-template-columns:
      1fr 1fr;
  }

  .eclp-parent-link{
    display:block;
  }

  .eclp-parent-link img{
    margin-bottom:12px;
  }

  .eclp-section{
    padding:64px 0;
  }

  .eclp-problem-grid,
  .eclp-hub-grid,
  .eclp-action-grid,
  .eclp-resource-list-featured{
    grid-template-columns:1fr;
  }

  .eclp-parent-card,
  .eclp-form-shell{
    padding:24px;
  }

}


@media(prefers-reduced-motion:reduce){

  *,
  *::before,
  *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;

    transition-duration:.001ms!important;

    scroll-behavior:auto!important;
  }

  .eclp-reveal,
  .eclp-reveal-left,
  .eclp-reveal-right{
    opacity:1!important;

    transform:none!important;

    filter:none!important;
  }

}


:focus-visible{
  outline:
    3px solid #ffb36d;

  outline-offset:3px;
}

/* WordPress integration and secondary content pages */
body.admin-bar .eclp-header { top:32px; }
body.admin-bar .eclp-progress { top:32px; }
@media (max-width:782px) {
  body.admin-bar .eclp-header { top:46px; }
  body.admin-bar .eclp-progress { top:46px; }
}
.eclp-article-shell { max-width:900px; min-height:45vh; padding-top:75px; padding-bottom:80px; }
.eclp-article-shell > article { background:#fff; }
.eclp-article-shell h1 { font-size:clamp(34px, 5vw, 56px); line-height:1.08; letter-spacing:-.035em; }
.eclp-article-shell h2,.eclp-article-shell h3 {line-height:1.18; margin-top:1.35em;}
.eclp-article-shell p,.eclp-article-shell li {font-size:16px;line-height:1.8;}
.eclp-article-shell img {height:auto; border-radius:12px;}
.eclp-article-shell a:not(.eclp-btn) {color:#c94f0a;text-decoration:underline;text-underline-offset:3px;}
.eclp-article-shell .post-meta {color:#655d58;font-size:13px;}
.eclp-article-shell .post-entry {padding:30px 0;border-bottom:1px solid #ecd9ca;}
.eclp-article-shell blockquote {border-left:4px solid #f47a1f;padding-left:20px;}
.eclp-form-pending{padding:20px; border-radius:12px;background:#fff3e8; border:1px solid #ecd9ca;}
.eclp-admin-note{font-size:12px!important;color:#873000!important;}
.eclp-article-shell input:not([type=checkbox]), .eclp-article-shell textarea {width:100%;max-width:100%;border:1px solid #ecd9ca;border-radius:10px;padding:12px;}
.eclp-article-shell input[type=submit], .eclp-article-shell button {background:#f47a1f;color:#fff;border:0;border-radius:100px;padding:12px 22px;cursor:pointer;}
.eclp-pagination{display:flex;gap:18px;justify-content:space-between;margin-top:24px;}
.eclp-comments {margin-top:45px;padding-top:25px;border-top:1px solid #ecd9ca;}
@media (max-width:660px) {.eclp-article-shell{padding-top:50px;padding-bottom:60px;}}


/* WordPress v2: on-site content, native forms, Adjoa-approved orange accent */
:root{--eclp-orange:#f47a1f;--eclp-orange-dark:#c94f0a}
body.admin-bar .eclp-header{top:32px}
@media(max-width:782px){body.admin-bar .eclp-header{top:46px}}
.eclp-org-logo-frame{width:164px;height:47px;flex-basis:164px}
.eclp-org-logo{width:164px;height:47px;max-width:100%;object-fit:contain;object-position:left center}
.eclp-brand{gap:14px}
.eclp-campaign-logo-frame{width:86px;height:64px;flex-basis:86px}
.eclp-parent-marker{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;color:var(--orange-dark);background:var(--orange-soft);border-radius:12px;font-weight:900;font-size:26px}
.eclp-parent-link{align-items:center}
.eclp-resource-directory-link{display:block;margin:14px 0 0;color:var(--orange-dark);font-weight:800;font-size:16px;text-decoration:underline;text-underline-offset:4px}
.eclp-empty-state{margin-top:38px;background:var(--orange-soft);padding:34px;border-radius:24px;max-width:800px}
.eclp-empty-state h3{margin:0 0 8px;font-size:25px}
.eclp-empty-state p{margin:0 0 20px;color:var(--muted)}
.eclp-inner-page{min-height:65vh;background:#fff}
.eclp-inner-banner{background:linear-gradient(115deg,#fff8f1,#fff,#fff4e7);padding:75px 0 60px;border-bottom:1px solid var(--border)}
.eclp-inner-banner h1{font-size:clamp(36px,5vw,57px);line-height:1.04;letter-spacing:-.04em;max-width:1000px;margin:6px 0 16px}
.eclp-back-link{font-weight:700;color:var(--orange-dark);text-decoration:none}
.eclp-back-link:hover{text-decoration:underline}
.eclp-inner-content{padding-top:60px;padding-bottom:90px}
.eclp-inner-content h2{font-size:clamp(28px,3vw,38px);letter-spacing:-.03em;line-height:1.15}
.eclp-inner-content a:not(.eclp-btn):not(.eclp-resource):not(.eclp-blog-card){color:var(--orange-dark)}
.eclp-inner-content .eclp-content-subhead{margin:45px 0 18px}
.eclp-doc-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:46px;align-items:start}
.eclp-doc-layout>div p{font-size:17px;line-height:1.7;color:var(--muted)}
.eclp-doc-layout figure{margin:0;border:1px solid var(--border);background:#fff;border-radius:24px;overflow:hidden;box-shadow:var(--shadow-soft)}
.eclp-doc-layout figure img{width:100%;height:auto;max-height:660px;object-fit:contain;display:block}
.eclp-doc-layout figcaption{font-size:12px;padding:12px;text-align:center;color:var(--muted)}
.eclp-pdf-frame{width:100%;height:min(84vh,950px);min-height:550px;border:1px solid var(--border);border-radius:20px;background:#fafafa}
.eclp-small{font-size:13px!important;color:var(--muted);margin-top:23px}
.eclp-prose{max-width:850px;font-size:17px;line-height:1.8}
.eclp-prose ul,.eclp-family-list{padding-left:24px;line-height:1.8}
.eclp-prose a,.eclp-single-article a{color:var(--orange-dark)}
.eclp-directory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.eclp-directory-grid .eclp-resource{min-height:147px}
.eclp-single-article{max-width:850px;margin-inline:auto;font-size:18px;line-height:1.8}
.eclp-single-article p{margin:0 0 23px}
.eclp-single-article img{max-width:100%;height:auto}
.eclp-single-meta{color:var(--muted);font-size:13px;margin:10px 0 25px}
.eclp-blog-archive .eclp-blog-grid{margin-top:0}
.eclp-page-content{margin:0 auto;max-width:850px;padding:60px 20px}
.eclp-page-content>h1{color:var(--orange-dark)}
/* Dedicated signup: submitted data stays in WordPress rather than HubSpot. */
.eclp-native-form{display:grid;gap:15px;margin-top:20px}
.eclp-form-row{display:grid;gap:6px}
.eclp-form-row label{font-size:13px;color:#382b26;font-weight:800}
.eclp-form-row input{width:100%;height:48px;border:1px solid #d9c9bb;border-radius:12px;background:#fff;padding:0 15px;color:#2f2723;font-size:15px}
.eclp-form-row input:focus{outline:2px solid #f47a1f;outline-offset:2px;border-color:#f47a1f}
.eclp-form-check{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;color:#332a25;cursor:pointer}
.eclp-form-check input{width:17px;height:17px;accent-color:#c94f0a;margin-top:2px;flex:0 0 17px}
.eclp-honeypot{position:absolute!important;left:-9999px!important;opacity:0!important;pointer-events:none!important}
.eclp-form-submit{width:100%;cursor:pointer;border:0;margin-top:3px}
.eclp-form-note{font-size:11px!important;line-height:1.5!important;color:#766c64!important;margin:4px 0 0!important}
.eclp-form-result{padding:14px 16px;background:#ecf8f0;color:#21553a;border-radius:12px;margin:12px 0;font-weight:700}
.eclp-form-result.eclp-error{background:#fff0ed;color:#943d2a}
@media(max-width:1050px){.eclp-doc-layout{grid-template-columns:1fr}.eclp-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:660px){.eclp-org-logo-frame{width:108px;height:34px;flex-basis:108px}.eclp-org-logo{width:108px;height:34px}.eclp-campaign-logo-frame{width:54px;height:41px;flex-basis:54px}.eclp-directory-grid{grid-template-columns:1fr}.eclp-inner-banner{padding:45px 0}.eclp-inner-content{padding-top:35px;padding-bottom:60px}.eclp-pdf-frame{min-height:430px}}

/* v2.2: readable, responsive NMQF branding and editorial templates. */
.eclp-org-logo-frame{width:204px;height:62px;flex-basis:204px}
.eclp-org-logo{width:100%;height:100%;max-width:100%;object-fit:contain;object-position:left center;background:transparent}
.eclp-article-author{font-size:14px;color:var(--muted);margin:10px 0 0}
.eclp-article-byline{font-size:13px;color:var(--muted);margin:12px 0 20px}
.eclp-article-categories,.eclp-article-tags{font-size:13px;margin-top:18px;color:var(--muted)}
.eclp-article-categories a,.eclp-article-tags a{color:var(--orange-dark)}
.eclp-blog-listing{margin-top:32px}
.eclp-single-article img{max-width:100%;height:auto}
.eclp-single-article figure{margin:0 0 28px}
.eclp-single-article figure img{border-radius:18px}
.eclp-blog-pagination{margin:36px 0}
.eclp-blog-pagination .page-numbers{display:inline-block;padding:10px 15px;margin-right:4px;border:1px solid var(--border);border-radius:12px;text-decoration:none}
.eclp-blog-pagination .current{background:var(--orange);border-color:var(--orange);color:white}
@media(max-width:660px){.eclp-org-logo-frame{width:120px;height:41px;flex-basis:120px}.eclp-org-logo{width:100%;height:100%}}
