/* =========================================================
   VEROLIFE - RESEARCH & DEVELOPMENT PAGE
   IMPORTANT:
   Header/footer are NOT redesigned here.
   They come from your existing style.css.
========================================================= */

:root{
  --rd-green:#4e9847;
  --rd-green-2:#6aaa5c;
  --rd-green-dark:#17612f;
  --rd-green-deep:#0c4f29;
  --rd-mint:#eaf7e5;
  --rd-mint-2:#f4faf1;
  --rd-text:#202a24;
  --rd-muted:#596961;
  --rd-border:rgba(66,111,67,.13);
  --rd-shadow:0 16px 42px rgba(45,80,46,.07);
}

.rd-page{
  width:100%;
  padding:18px 22px 70px;
  overflow:hidden;
  background:#fff;
  color:var(--rd-text);
  font-family: "DM Sans", sans-serif;
}


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

.rd-hero{
  position:relative;
  width:min(1420px,100%);
  min-height:690px;
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  margin:0 auto;
  overflow:hidden;
  border-radius:28px;
  background:
    radial-gradient(circle at 12% 28%,rgba(185,234,170,.28),transparent 35%),
    linear-gradient(125deg,#fbfdf9 0%,#f5faf2 52%,#eef8ea 100%);
}

.rd-hero__copy{
  position:relative;
  z-index:3;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:64px 48px 58px 58px;
}

.rd-eyebrow{
  color:#397c3b;
  font-size:12px;
  font-weight:700;
  letter-spacing:1.35px;
  text-transform:uppercase;
}

.rd-hero h1{
  max-width:590px;
  margin:24px 0 0;
  color:#1e2923;
  font-size:63px;
  font-weight:700;
  line-height:.95;
  letter-spacing:-2.4px;
}

.rd-hero h1 span{
  display:block;
  color:var(--rd-green);
}

.rd-line{
  width:45px;
  height:2px;
  margin-top:24px;
  background:var(--rd-green);
}

.rd-hero__copy > p{
  max-width:545px;
  margin:24px 0 0;
  color:#55665d;
  font-size:14px;
  line-height:1.75;
}

.rd-hero__mini-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:28px;
}

.rd-hero__mini-grid > div{
  min-height:105px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 8px;
  border:1px solid var(--rd-border);
  border-radius:16px;
  background:rgba(255,255,255,.74);
  text-align:center;
  box-shadow:0 8px 22px rgba(40,76,43,.04);
}

.rd-hero__mini-grid i{
  color:#3f8d3e;
  font-size:27px;
}

.rd-hero__mini-grid span{
  color:#3d4d44;
  font-size:12px;
  font-weight:600;
  line-height:1.25;
}

.rd-hero__visual{
  position:relative;
  min-height:690px;
  overflow:hidden;
}

.rd-hero__visual::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  background:linear-gradient(90deg,#f5faf2 0%,rgba(245,250,242,.18) 14%,transparent 42%);
  pointer-events:none;
}

.rd-hero__visual img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  opacity: 0.6;
}


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

.rd-impact{
  width:min(1320px,calc(100% - 44px));
  min-height:310px;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  margin:34px auto 0;
  overflow:hidden;
  border-radius:22px;
  background:
    radial-gradient(circle at 90% 20%,rgba(161,207,105,.13),transparent 30%),
    linear-gradient(105deg,#0d4d2a,#0f6231);
  box-shadow:0 18px 42px rgba(13,78,41,.14);
}

.rd-impact__image{
  min-height:310px;
  overflow:hidden;
}

.rd-impact__image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.rd-impact__content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:34px 38px;
  color:#fff;
}

.rd-impact__small{
  color:#9fcd6a;
  font-size:12px;
  font-weight:700;
  letter-spacing:.8px;
  text-transform:uppercase;
}

.rd-impact__content h2{
  margin:10px 0 0;
  font-size:31px;
  font-weight:700;
  line-height:1.05;
}

.rd-impact__content h2 strong{
  color:#9fcd6a;
}

.rd-impact__content > p{
  max-width:700px;
  margin:18px 0 0;
  color:rgba(255,255,255,.82);
  font-size:12px;
  line-height:1.7;
}

.rd-impact__features{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:24px;
}

.rd-impact__features > div{
  min-height:92px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:10px;
  border-left:1px solid rgba(255,255,255,.14);
  text-align:center;
}

.rd-impact__features > div:first-child{
  border-left:0;
}

.rd-impact__features i{
  color:#a5d16a;
  font-size:25px;
}

.rd-impact__features span{
  color:#fff;
  font-size:12px;
  font-weight:600;
  line-height:1.35;
}


/* =========================================================
   STRENGTHS
========================================================= */

.rd-strengths{
  width:min(1320px,calc(100% - 44px));
  margin:62px auto 0;
}

.rd-section-title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
}

.rd-section-title h2{
  margin:0;
  color:#26342c;
  font-size:29px;
  font-weight:700;
}

.rd-section-title > span{
  position:relative;
  width:68px;
  height:1px;
  background:#bad7b3;
}

.rd-section-title > span:first-child::after,
.rd-section-title > span:last-child::before{
  content:"";
  position:absolute;
  top:50%;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#4b9546;
  transform:translateY(-50%);
}

.rd-section-title > span:first-child::after{right:0;}
.rd-section-title > span:last-child::before{left:0;}

.rd-strengths__grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
  margin-top:28px;
}

.rd-strength-card{
  min-height:255px;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:24px 18px;
  border:1px solid var(--rd-border);
  border-radius:18px;
  background:#fff;
  text-align:center;
  box-shadow:0 8px 28px rgba(44,78,46,.045);
  transition:transform .25s ease,box-shadow .25s ease;
}

.rd-strength-card:hover{
  transform:translateY(-5px);
  box-shadow:0 16px 34px rgba(44,78,46,.09);
}

.rd-strength-card__icon{
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(145deg,#176630,#0d4d2a);
  color:#fff;
  font-size:24px;
}

.rd-strength-card h3{
  margin:18px 0 0;
  color:#29382f;
  font-size:16px;
  font-weight:700;
  line-height:1.24;
}

.rd-strength-card p{
  margin:12px 0 0;
  color:#5c6b63;
  font-size:12px;
  line-height:1.6;
}


/* =========================================================
   PROCESS + INFRA
========================================================= */

.rd-split{
  width:min(1320px,calc(100% - 44px));
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin:28px auto 0;
}

.rd-process,
.rd-infra{
  border:1px solid var(--rd-border);
  border-radius:22px;
  background:#fff;
  box-shadow:0 10px 30px rgba(45,80,46,.05);
}

.rd-block-heading h2{
  margin:0;
  color:#26342d;
  font-size:23px;
  font-weight:700;
}

.rd-block-heading span{
  display:block;
  width:32px;
  height:2px;
  margin-top:9px;
  background:var(--rd-green);
}

.rd-process{
  position:relative;
  padding:26px 26px 24px;
  overflow:hidden;
}

.rd-process__items{
  margin-top:20px;
}

.rd-process__items article{
  position:relative;
  display:grid;
  grid-template-columns:42px 1fr;
  gap:12px;
  padding:0 0 19px;
}

.rd-process__items article:not(:last-child)::after{
  content:"";
  position:absolute;
  left:18px;
  top:36px;
  bottom:0;
  width:1px;
  background:#96c28f;
}

.rd-step{
  position:relative;
  z-index:2;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#176c33;
  color:#fff;
  font-size:12px;
  font-weight:700;
  box-shadow:0 0 0 5px #f2f8ef;
}

.rd-process__items h3{
  margin:2px 0 0;
  color:#2a3930;
  font-size:13px;
  font-weight:700;
}

.rd-process__items p{
  margin:5px 0 0;
  color:#5b6b62;
  font-size:12px;
  line-height:1.5;
}

.rd-process__decor{
  position:absolute;
  right:30px;
  bottom:10px;
  display:flex;
  gap:10px;
  color:rgba(66,145,61,.08);
  font-size:82px;
}

.rd-infra{
  padding:26px;
  background:
    radial-gradient(circle at 90% 10%,rgba(177,225,160,.12),transparent 30%),
    linear-gradient(145deg,#fbfdf9,#f2f9ef);
}

.rd-infra__intro{
  margin:13px 0 0;
  color:#5d6b63;
  font-size:12px;
  line-height:1.6;
}

.rd-infra__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:18px;
}

.rd-infra__grid figure{
  position:relative;
  min-height:150px;
  margin:0;
  overflow:hidden;
  border-radius:14px;
}

.rd-infra__grid img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.rd-infra__grid figcaption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:8px 10px;
  background:rgba(15,79,42,.92);
  color:#fff;
  font-size:12px;
  font-weight:600;
  text-align:center;
}


/* =========================================================
   STORAGE
========================================================= */

.rd-storage{
  width:min(1320px,calc(100% - 44px));
  min-height:300px;
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  margin:28px auto 0;
  overflow:hidden;
  border:1px solid var(--rd-border);
  border-radius:22px;
  background:
    radial-gradient(circle at 12% 25%,rgba(183,231,168,.18),transparent 33%),
    #fff;
}

.rd-storage__content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:32px 36px;
}

.rd-storage__tag{
  color:#4b8f45;
  font-size:12px;
  font-weight:700;
  letter-spacing:.7px;
  text-transform:uppercase;
}

.rd-storage__content h2{
  margin:9px 0 0;
  color:#26342d;
  font-size:31px;
  font-weight:700;
  line-height:1.04;
}

.rd-storage__content h2 span{
  display:block;
  color:#468f43;
}

.rd-storage__content > p{
  max-width:520px;
  margin:16px 0 0;
  color:#5b6a62;
  font-size:12px;
  line-height:1.65;
}

.rd-storage__features{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:24px;
}

.rd-storage__features > div{
  display:grid;
  grid-template-columns:38px 1fr;
  align-items:center;
  gap:9px;
  padding:6px 13px 6px 0;
  border-right:1px solid rgba(69,116,68,.11);
}

.rd-storage__features > div:nth-child(2){padding-left:13px;}
.rd-storage__features > div:last-child{
  border-right:0;
  padding-left:13px;
  padding-right:0;
}

.rd-storage__features i{
  color:#3f8e3d;
  font-size:21px;
}

.rd-storage__features span{
  color:#47574f;
  font-size:12px;
  font-weight:600;
  line-height:1.4;
}

.rd-storage__image{
  min-height:300px;
  overflow:hidden;
  border-radius:150px 0 0 150px;
}

.rd-storage__image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}


/* =========================================================
   FINAL BAND
========================================================= */

.rd-final{
  width:min(1320px,calc(100% - 44px));
  min-height:180px;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  align-items:center;
  gap:22px;
  margin:28px auto 0;
  padding:24px 32px;
  border-radius:22px;
  background:
    radial-gradient(circle at 10% 50%,rgba(148,210,89,.15),transparent 24%),
    linear-gradient(105deg,#0b4827,#0d5a2d);
}

.rd-final__message{
  display:grid;
  grid-template-columns:90px 1fr;
  align-items:center;
  gap:18px;
}

.rd-final__icon{
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  border:1px solid rgba(169,212,101,.45);
  border-radius:50%;
  color:#a6d068;
  font-size:31px;
}

.rd-final__message h2{
  margin:0;
  color:#fff;
  font-size:27px;
  line-height:1.04;
}

.rd-final__message h2 span{
  display:block;
  color:#9dce68;
}

.rd-final__message p{
  max-width:540px;
  margin:10px 0 0;
  color:rgba(255,255,255,.78);
  font-size:12px;
  line-height:1.55;
}

.rd-final__values{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}

.rd-final__values > div{
  min-height:88px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-left:1px solid rgba(255,255,255,.13);
  text-align:center;
}

.rd-final__values i{
  color:#a3cd68;
  font-size:23px;
}

.rd-final__values span{
  color:#fff;
  font-size:12px;
  font-weight:600;
  line-height:1.35;
}


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

.rd-reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s ease,transform .7s ease;
}

.rd-reveal.is-visible{
  opacity:1;
  transform:none;
}


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

@media(max-width:1180px){
  .rd-hero h1{font-size:54px;}
  .rd-strength-card h3{font-size:14px;}
}

@media(max-width:900px){

  .rd-page{
    padding:12px 12px 55px;
  }

  .rd-hero{
    grid-template-columns:1fr;
  }

  .rd-hero__copy{
    align-items:center;
    padding:58px 30px 40px;
    text-align:center;
  }

  .rd-hero h1{
    max-width:650px;
  }

  .rd-line{
    margin-left:auto;
    margin-right:auto;
  }

  .rd-hero__copy > p{
    max-width:650px;
  }

  .rd-hero__visual{
    min-height:470px;
  }

  .rd-impact{
    width:100%;
    grid-template-columns:1fr;
  }

  .rd-impact__image{
    min-height:330px;
  }

  .rd-strengths,
  .rd-split,
  .rd-storage,
  .rd-final{
    width:100%;
  }

  .rd-strengths__grid{
    grid-template-columns:repeat(2,1fr);
  }

  .rd-split{
    grid-template-columns:1fr;
  }

  .rd-storage{
    grid-template-columns:1fr;
  }

  .rd-storage__image{
    min-height:350px;
    border-radius:0;
  }

  .rd-final{
    grid-template-columns:1fr;
  }
}

@media(max-width:620px){

  .rd-page{
    padding:8px 8px 45px;
  }

  .rd-hero{
    border-radius:20px;
  }

  .rd-hero__copy{
    padding:46px 18px 30px;
  }

  .rd-eyebrow{
    font-size:12px;
  }

  .rd-hero h1{
    font-size:44px;
    letter-spacing:-1.4px;
  }

  .rd-hero__copy > p{
    font-size:13px;
    line-height:1.7;
  }

  .rd-hero__mini-grid{
    grid-template-columns:repeat(2,1fr);
    width:100%;
  }

  .rd-hero__visual{
    min-height:330px;
  }

  .rd-impact__content{
    padding:28px 20px;
  }

  .rd-impact__content h2{
    font-size:26px;
  }

  .rd-impact__features{
    grid-template-columns:repeat(2,1fr);
  }

  .rd-impact__features > div:nth-child(odd){
    border-left:0;
  }

  .rd-section-title h2{
    font-size:24px;
  }

  .rd-section-title > span{
    width:36px;
  }

  .rd-strengths__grid{
    grid-template-columns:1fr;
  }

  .rd-strength-card{
    min-height:auto;
  }

  .rd-infra__grid{
    grid-template-columns:1fr;
  }

  .rd-storage__content{
    padding:28px 18px;
  }

  .rd-storage__features{
    grid-template-columns:1fr;
  }

  .rd-storage__features > div,
  .rd-storage__features > div:nth-child(2),
  .rd-storage__features > div:last-child{
    padding:10px 0;
    border-right:0;
    border-bottom:1px solid rgba(69,116,68,.10);
  }

  .rd-storage__features > div:last-child{
    border-bottom:0;
  }

  .rd-final{
    padding:28px 18px;
  }

  .rd-final__message{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
  }

  .rd-final__values{
    grid-template-columns:repeat(2,1fr);
  }

  .rd-final__values > div:nth-child(odd){
    border-left:0;
  }
}

@media(prefers-reduced-motion:reduce){
  .rd-reveal{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* =========================================================
   GLOBAL FONT CONSISTENCY - ICON SAFE
   Do not override ::before / ::after because icon libraries
   use their own font-family on pseudo-elements.
========================================================= */
html,
body,
button,
input,
select,
textarea {
  font-family: "DM Sans", sans-serif;
}

