/*
 * Movemos tu Imagen · Mejoras visuales v1.1.17
 * 1. Filosofía editorial · 2. Timeline al hacer scroll
 * 3. FAQ refinada · 4. Footer premium
 * Capa no destructiva: sobre styles.css, effects.css y visual-v1.1.16.css.
 */

/* FILOSOFÍA: nueva proporción editorial, sin iconografía decorativa redundante. */
.statement-section {
  isolation:isolate;
  background:linear-gradient(123deg,#11291d 0%,#193b29 53%,#234a32 100%);
}
.statement-section::before {
  content:"";
  position:absolute;
  inset:0;
  width:auto;
  height:auto;
  right:auto;
  top:auto;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:radial-gradient(ellipse 60% 72% at 100% 11%,rgba(142,199,105,.12),transparent 72%),
             linear-gradient(90deg,transparent 0%,transparent 49.9%,rgba(198,229,179,.075) 50%,transparent 50.1%);
  pointer-events:none;
  transform:none;
}
.statement-section::after {
  content:"";
  position:absolute;
  width:min(56vw,650px);
  aspect-ratio:1;
  right:-25%;bottom:-125%;
  border-radius:50%;
  border:1px solid rgba(199,242,162,.13);
  box-shadow:0 0 0 55px rgba(199,242,162,.025),0 0 0 116px rgba(199,242,162,.015);
  pointer-events:none;
}
.statement-layout {
  position:relative;z-index:1;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(54px,8vw,120px);
  padding-top:clamp(105px,10vw,154px);
  padding-bottom:clamp(105px,10vw,154px);
  align-items:end;
}
.statement-layout > div:first-child {position:relative;}
.statement-layout .kicker-on-dark {color:#cbe8aa;letter-spacing:.17em;}
.statement-layout h2 {
  font-size:clamp(54px,5.6vw,82px);
  line-height:1.07;
  letter-spacing:-.064em;
  max-width:790px;
  margin-top:29px;
}
.statement-layout h2 em {display:inline;color:#d5f4a5;letter-spacing:-.055em;}
.statement-right {min-height:0;padding:10px 0 7px 32px;border-left:1px solid rgba(219,247,194,.24);}
.statement-right p {color:#d5e4d5;font-size:clamp(16px,1.35vw,18px);line-height:1.85;max-width:445px;margin-bottom:34px;}
.statement-right .btn-outline-light {border-color:rgba(214,246,176,.55);color:#f1fce8;}
.statement-right .btn-outline-light:hover {background:#d6f3a8;color:#173b2a;border-color:#d6f3a8;}
.statement-right .giant-asterisk {display:none;}

/* PROCESO: línea vertical de progreso, círculos y jerarquía en cada paso. */
.process-section {background:linear-gradient(180deg,#fbfcf6 0%,#f4f8f0 100%);}
.process-grid {grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(60px,8vw,122px);align-items:start;}
.process-intro {padding-top:11px;}
.process-intro h2 {max-width:480px;}
.process-intro>p {max-width:405px;font-size:16px;line-height:1.86;}
.process-list {
  position:relative;
  padding:0 0 0 2px;
  --timeline-progress:0%;
}
.process-list::before,.process-list::after {
  content:"";
  position:absolute;
  z-index:0;
  width:2px;
  left:27px;
  top:33px;
  bottom:48px;
  border-radius:12px;
  pointer-events:none;
}
.process-list::before {background:#d5e5ce;}
.process-list::after {
  background:linear-gradient(180deg,#7ac348,#3a7a3b);
  bottom:auto;
  height:calc((100% - 81px) * var(--timeline-progress) / 100);
  height:var(--timeline-progress); /* JS proporciona una longitud en px para máxima compatibilidad */
  box-shadow:0 0 16px rgba(108,172,75,.22);
  transition:height .18s linear;
}
.process-step {
  position:relative;z-index:1;
  grid-template-columns:54px minmax(0,1fr);
  gap:23px;
  min-height:128px;
  padding:20px 6px 28px 0;
  border-bottom:1px solid #d7e4d3;
  align-items:start;
}
.process-step:first-child {border-top:0;}
.process-step:last-child {border-bottom:0;padding-bottom:18px;}
.step-number {
  display:grid;place-items:center;
  width:54px;height:54px;
  padding:0;
  border:1px solid #bed8ad;
  border-radius:50%;
  background:#f8fbf4;
  box-shadow:0 0 0 6px #f7faf2;
  color:#3b7044;
  font-size:13px;letter-spacing:.04em;
  font-weight:820;
  transition:background .3s,color .3s,border-color .3s,transform .3s;
}
.process-step.is-current .step-number,
.process-step.is-passed .step-number {background:#234c32;color:#e9f7d9;border-color:#234c32;}
.process-step.is-current .step-number {transform:scale(1.06);box-shadow:0 0 0 6px #e4f1da;}
.process-step h3 {font-size:clamp(21px,2vw,25px);letter-spacing:-.04em;line-height:1.24;margin:7px 0 10px;}
.process-step p {max-width:410px;font-size:14px;line-height:1.7;color:#587064;}

/* FAQ: conserver el verde aprobado, mejorar lectura, foco y apertura. */
.faq-section {
  background:#d6f3a8;
  background-image:radial-gradient(ellipse 65% 65% at 0% 0%,rgba(255,255,255,.34),transparent 85%);
}
.faq-grid {
  grid-template-columns:minmax(0,.78fr) minmax(0,1.17fr);
  gap:clamp(55px,9vw,140px);
  align-items:start;
}
.faq-grid h2 {font-size:clamp(47px,4.7vw,70px);letter-spacing:-.06em;line-height:1.12;}
.faq-grid>div:first-child p {color:#3d603d;max-width:370px;font-size:16px;line-height:1.75;margin-top:25px;margin-bottom:22px;}
.faq-grid .text-link {font-size:14px;font-weight:800;border-bottom:1px solid #2e6339;padding:0 0 10px;}
.faq-list {border-top:0;display:flex;flex-direction:column;gap:12px;}
.faq-list details {
  border:1px solid rgba(38,93,42,.13);
  border-radius:16px;
  background:rgba(255,255,255,.60);
  box-shadow:0 6px 14px rgba(28,78,27,.035);
  overflow:hidden;
  transition:background .26s,border-color .26s,box-shadow .26s;
}
.faq-list details[open] {background:#f8fdf0;border-color:rgba(43,96,42,.22);box-shadow:0 12px 30px rgba(40,89,37,.09);}
.faq-list summary {
  min-height:74px;
  padding:19px 22px 19px 24px;
  line-height:1.48;
  font-size:15px;
  font-weight:770;
  color:#1a392a;
  transition:color .25s ease;
}
.faq-list summary span {
  width:35px;height:35px;
  border-radius:50%;
  background:#e7f7cb;
  border:1px solid #c6e4a7;
  color:#1e5730;
  font-size:21px;
  line-height:1;
  font-weight:400;
  flex-shrink:0;
  transition:transform .3s ease,background .3s ease,color .3s ease;
}
.faq-list details[open] summary span {transform:rotate(45deg);background:#1d4b30;color:#fff;border-color:#1d4b30;}
.faq-list summary:hover {color:#347b37;}
.faq-list summary:focus-visible {outline:3px solid #2a6539;outline-offset:-5px;border-radius:13px;}
.faq-list details p {color:#536c57;font-size:14px;line-height:1.8;max-width:100%;margin:0;padding:0 76px 24px 24px;}

/* FOOTER: columnas aireadas, separación sutil y jerarquía de enlaces. */
.site-footer {
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#10261d 0%,#142f22 70%,#173726 100%);
  padding:clamp(75px,8vw,115px) 0 32px;
}
.site-footer::before {content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#86be54,#d6f3a8 43%,transparent 90%);}
.site-footer::after {content:"";position:absolute;right:-170px;bottom:-290px;width:580px;height:580px;border:1px solid rgba(197,238,150,.065);border-radius:50%;pointer-events:none;}
.footer-top {
  position:relative;z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.65fr) repeat(2,minmax(0,.9fr));
  column-gap:clamp(26px,4.2vw,73px);
  row-gap:48px;
  padding-bottom:clamp(58px,6vw,86px);
}
.footer-logo-link {border-radius:15px;background:#f7faf1;padding:12px 16px;box-shadow:0 9px 20px rgba(0,0,0,.11);}
.footer-logo-original {width:224px;max-width:100%;height:auto;}
.footer-brand-col p {color:#bfcebf;max-width:340px;font-size:15px;line-height:1.82;margin:27px 0 0;}
.footer-col {gap:0;padding-top:7px;}
.footer-col strong {
  color:#e7f6df;
  font-size:11px;
  letter-spacing:.16em;
  font-weight:850;
  margin-bottom:26px;
  display:block;
}
.footer-col strong::after {content:"";display:block;width:25px;height:2px;background:#97cb72;border-radius:6px;margin-top:13px;}
.footer-col a,.footer-col span {
  display:block;
  width:fit-content;
  max-width:100%;
  color:#b9cdbb;
  font-size:13px;
  line-height:1.5;
  padding:7px 0;
  transition:color .23s ease,transform .23s ease;
}
.footer-col a:hover {color:#e0fac5;transform:translateX(3px);}
.footer-col a:focus-visible,.footer-logo-link:focus-visible {outline:2px solid #cff7ad;outline-offset:4px;}
.footer-bottom {
  border-top:1px solid rgba(200,239,183,.16);
  padding-top:28px;
  justify-content:flex-start;
  position:relative;z-index:1;
  color:#a8c3ad;
  font-size:12px;
  letter-spacing:.012em;
}

@media(max-width:980px) {
  .statement-layout {gap:40px;padding-top:95px;padding-bottom:95px;}
  .statement-layout h2 {font-size:clamp(48px,6vw,69px);}
  .process-grid {gap:52px;}
  .faq-grid {gap:50px;}
  .footer-top {grid-template-columns:1.45fr 1fr 1fr;gap:34px;}
  .footer-brand-col {grid-column:auto;}
  .footer-col:last-child {grid-column:auto;}
}
@media(max-width:740px) {
  .statement-section::before {background:radial-gradient(ellipse 100% 70% at 100% 0%,rgba(142,199,105,.11),transparent 75%);}
  .statement-layout {grid-template-columns:1fr;gap:30px;padding-top:80px;padding-bottom:86px;}
  .statement-layout h2 {font-size:clamp(47px,9vw,66px);max-width:590px;margin-top:20px;}
  .statement-right {padding-left:22px;max-width:560px;}
  .statement-right p {font-size:16px;}
  .process-grid {grid-template-columns:1fr;gap:34px;}
  .process-intro>p {margin-bottom:0;}
  .process-list {padding-top:0;}
  .faq-grid {grid-template-columns:1fr;gap:40px;}
  .faq-grid h2 {font-size:clamp(42px,8vw,58px);}
  .faq-list {gap:11px;}
  .footer-top {grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px;}
  .footer-brand-col {grid-column:1/-1;}
  .footer-col:last-child {grid-column:auto;}
}
@media(max-width:470px) {
  .statement-layout h2 {font-size:clamp(43px,11vw,55px);}
  .statement-right {padding-left:18px;}
  .process-step {grid-template-columns:48px minmax(0,1fr);gap:13px;min-height:132px;padding:21px 0 25px;}
  .step-number {width:48px;height:48px;font-size:12px;}
  .process-list::before,.process-list::after {left:25px;top:26px;bottom:40px;}
  .process-step h3 {font-size:20px;margin-top:6px;}
  .process-step p {font-size:13px;}
  .faq-grid h2 {font-size:clamp(40px,10vw,49px);}
  .faq-list summary {font-size:14px;min-height:72px;padding:18px 15px;}
  .faq-list summary span {width:33px;height:33px;}
  .faq-list details p {padding:0 17px 20px 15px;font-size:13px;}
  .footer-top {column-gap:20px;row-gap:35px;}
  .footer-col strong {margin-bottom:14px;}
  .footer-col a,.footer-col span {font-size:12px;line-height:1.65;}
  .footer-logo-original {width:200px;}
}
@media(prefers-reduced-motion:reduce) {
  /* Únicamente el progreso añadido; no cambia el comportamiento de versiones previas. */
  .process-list::after {transition:none;}
  .step-number {transition:none;}
}
