/* Ser socio: columnas fluidas y ancho máximo reservado para ventanas amplias. */
.member-page {
  --member-content-width:var(--redfe-content-width);
  --member-section-title-size:clamp(26px,2.6vw,34px);
  --member-section-gap:var(--redfe-section-gap);
  --member-section-padding:0;
  --member-page-gutter:clamp(var(--redfe-page-gutter,20px),3.5vw,64px);
}
html body:not(#redfe-identity-override) main.member-page {
  width:100%;
  min-width:0;
  max-width:none;
  margin-inline:0;
  box-sizing:border-box;
}
html body:not(#redfe-identity-override) .member-page>.contenido-limitado {
  width:100%;
  min-width:0;
  max-width:none;
  margin-inline:0;
  padding:0 var(--member-page-gutter)!important;
  box-sizing:border-box;
}
html body:not(#redfe-identity-override) .member-page>.contenido-limitado>:is(section,.nota-legal) {
  width:100%;
  min-width:0;
  max-width:none;
  min-height:0;
  margin:0;
  padding:var(--redfe-section-space) 0;
}
html body:not(#redfe-identity-override) .member-page .contenido-ahorro {
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}
.member-invite {
  display:block;
  border:0;
  background:#fff;
}
.member-invite__content {
  min-width:0;
}
html body:not(#redfe-identity-override) .member-page .member-invite h2 {
  --site-h2-size:var(--member-section-title-size);
  min-width:0;
  margin:0 0 14px;
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  font-size:var(--site-h2-size)!important;
  line-height:1.15!important;
  letter-spacing:-.02em;
}
.member-invite p {
  margin:0;
  color:#333;
  font-size:15px!important;
  font-weight:400;
  line-height:1.6;
}
/* Requisitos con iconos, fotografía y contacto al pie del bloque. */
html body:not(#redfe-identity-override) .member-page>.contenido-limitado>.member-documents {
  --member-documents-padding:clamp(20px,2.5vw,36px);
  display:flex;
  flex-direction:column;
  gap:clamp(28px,3vw,40px);
  scroll-margin-top:110px;
  padding:0;
  border:0;
  border-radius:0;
  background:#fff;
  color:#111;
}
.member-documents__layout {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.9fr);
  align-items:stretch;
  gap:clamp(28px,3vw,40px);
  min-width:0;
}
html body:not(#redfe-identity-override) .member-page>.contenido-limitado>:is(.member-invite,.member-documents,.member-commitments) {
  max-width:var(--member-content-width);
  margin-inline:auto;
}
html body:not(#redfe-identity-override) .member-page .member-invite h2 em {
  font-family:inherit !important;
  font-size:inherit !important;
  font-style:italic !important;
  font-weight:500 !important;
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
}
.member-invite__launch {
  display:inline-block;
  width:1em;
  height:1em;
  margin-left:4px;
  vertical-align:-.12em;
  color:inherit;
}
html body:not(#redfe-identity-override) .member-page>.contenido-limitado>.seccion-ahorro {
  width:calc(100% + 2 * var(--member-page-gutter));
  margin-inline:calc(-1 * var(--member-page-gutter));
  padding-inline:var(--member-page-gutter);
}
.member-page .contenido-ahorro p { max-width:none; }
.member-documents__cta {
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);
  align-items:center;
  gap:24px;
  min-width:0;
  margin:0;
  padding:var(--member-documents-padding);
  border:1px solid #111;
  border-radius:0;
  background:#fff;
}
.member-documents__contact {
  min-width:0;
}
html body:not(#redfe-identity-override) .member-page .member-documents__contact h3 {
  --site-h3-size:16px;
  margin:0 0 4px;
  color:#111;
  font-size:16px!important;
  font-weight:700;
  line-height:1.4!important;
  text-transform:uppercase;
}
.member-documents__contact p {
  margin:0;
  color:#444;
  font-size:15px!important;
  line-height:1.5;
}
html body .member-documents__cta>.public-cta {
  --cta-hover-background:#333;
  --cta-hover-color:#fff;
  --cta-hover-border:#333;
  justify-content:center;
  width:100%;
  max-width:100%;
  min-height:64px;
  padding:18px 24px;
  border-radius:0;
  font-size:16px;
  font-weight:700;
}
.member-page .member-commitments__card>.public-cta {
  align-self:flex-start;
  width:fit-content;
  max-width:100%;
  min-height:44px;
  margin-top:12px;
  padding:10px 14px;
  font-size:13px;
}
.member-page .member-commitments__card>.public-cta>svg {
  width:18px;
  height:18px;
}
/* Beneficios: fotografías e iconos del mismo sistema visual del sitio. */
html body:not(#redfe-identity-override) .member-page>.contenido-limitado>.member-benefits-section {
  display:block;
  max-width:var(--member-content-width);
  margin-inline:auto;
}
.member-benefits__heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);
  align-items:end;
  gap:12px 40px;
}
.member-benefits__eyebrow {
  grid-column:1/-1;
  color:#5f466e;
  font-size:12px;
  font-weight:600;
  line-height:1.4;
  letter-spacing:.1em;
  text-transform:uppercase;
}
html body:not(#redfe-identity-override) .member-page .member-benefits__heading h2 {
  --site-h2-size:var(--member-section-title-size);
  margin:0;
  color:#111;
  font-size:var(--site-h2-size)!important;
  line-height:1.15!important;
  text-align:left;
}
.member-benefits__heading h2>span { display:block; }
html body:not(#redfe-identity-override) .member-page .member-benefits__heading h2>span:last-child {
  font-style:italic;
  font-weight:500!important;
}
.member-benefits__intro {
  max-width:60ch;
  margin:0;
  color:#444;
  font-size:15px!important;
  line-height:1.6;
}
.member-benefits__grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  width:100%;
  min-width:0;
  margin-top:24px;
}
.member-benefit {
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.member-benefit__photo {
  position:relative;
  isolation:isolate;
  margin:0;
  padding:0;
  background:transparent;
}
.member-benefit__label {
  position:absolute;
  z-index:1;
  top:16px;
  left:16px;
  max-width:calc(100% - 32px);
  padding:6px 8px;
  border-radius:8px;
  color:#fff;
  background:#111;
  font-size:11px;
  font-weight:600;
  line-height:1.3;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.member-benefit__photo>.member-benefit__icon {
  position:absolute;
  z-index:2;
  left:50%;
  bottom:-22px;
  transform:translateX(-50%);
  color:var(--member-purple-layer,#d9c9e5);
  background:#111;
  border-color:var(--member-purple,#765282);
}
.member-benefit__image {
  display:block;
  overflow:hidden;
  aspect-ratio:4/3;
  border:0;
  border-radius:14px;
  background:#f7f7f7;
}
.member-benefit__photo img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 28%;
}
.member-benefit__body {
  flex:1;
  padding:36px 0 0;
}
.member-benefit__icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 44px;
  width:44px;
  height:44px;
  border:1px solid #d9c9e5;
  border-radius:50%;
  color:var(--member-purple,#765282);
  background:var(--member-purple-soft,#eee7f4);
}
.member-benefit__icon>.member-benefit-icon {
  display:block;
  width:24px;
  height:24px;
  color:inherit;
}
.member-benefit p {
  margin:0;
  color:#444;
  font-size:15px!important;
  line-height:1.65;
}
.member-benefits__accordion {
  display:none;
  margin-top:24px;
}
.member-benefits__item {
  border-bottom:1px solid #dedede;
}
.member-benefits__item summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 0;
  list-style:none;
  color:#111;
  font-size:17px;
  font-weight:600;
  line-height:1.5;
  cursor:pointer;
}
.member-benefits__item summary::-webkit-details-marker { display:none; }
.member-benefits__item summary::marker { content:""; }
.member-benefits__summary-label {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.member-benefits__summary-label .member-benefit__icon {
  flex-basis:40px;
  width:40px;
  height:40px;
}
.member-benefits__item summary>svg {
  flex:0 0 20px;
  transition:transform .2s ease;
}
.member-benefits__item[open] summary>svg { transform:rotate(180deg); }
.member-benefits__item>p {
  margin:0;
  padding:0 32px 18px 52px;
  color:#444;
  font-size:15px!important;
  line-height:1.65;
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .member-benefit__photo img { transition:transform .8s cubic-bezier(.22,1,.36,1); }
  .member-benefit:hover .member-benefit__photo img { transform:scale(1.06); }
}
@media (prefers-reduced-motion:reduce) {
  .member-benefits__item summary>svg { transition:none; }
  .member-benefit__icon,.member-benefit__icon>svg { animation:none!important; }
}
@media (prefers-reduced-motion:no-preference) {
  .member-benefit:hover .member-benefit__icon,
  .member-benefit:focus-within .member-benefit__icon,
  .member-benefits__item[open] .member-benefit__icon {
    animation:member-benefit-halo .7s ease-out;
  }
  .member-benefit:hover .member-benefit__icon>svg,
  .member-benefit:focus-within .member-benefit__icon>svg,
  .member-benefits__item[open] .member-benefit__icon>svg {
    animation:member-benefit-lift .7s ease-in-out;
  }
}
@keyframes member-benefit-halo {
  0% { box-shadow:0 0 0 0 rgba(118,82,130,.3); }
  100% { box-shadow:0 0 0 12px rgba(118,82,130,0); }
}
@keyframes member-benefit-lift {
  0%,100% { transform:translateY(0) rotate(0) scale(1); }
  35% { transform:translateY(-3px) rotate(-7deg) scale(1.12); }
  70% { transform:translateY(-1px) rotate(4deg) scale(1.06); }
}
@media (max-width:1100px) {
  .member-benefits__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:768px) {
  .member-benefits__heading { grid-template-columns:minmax(0,1fr); gap:12px; }
  .member-benefits__grid { display:none; }
  .member-benefits__accordion { display:block; }
}
html body:not(#redfe-identity-override) .member-page>.contenido-limitado>.nota-legal {
  width:calc(100% + 2 * var(--member-page-gutter));
  margin-inline:calc(-1 * var(--member-page-gutter));
  padding:20px var(--member-page-gutter);
  border:0;
  border-radius:0;
}
html body:not(#redfe-identity-override) .member-page .nota-legal h3 {
  --site-h3-size:14px;
  max-width:none;
  margin:0 0 6px;
  font-size:14px!important;
  line-height:1.4!important;
}
html body:not(#redfe-identity-override) .member-page .nota-legal p {
  max-width:none;
  margin:0;
  font-size:13px!important;
  line-height:1.6;
}
/* Ahorro infantil: ancho editorial y capas en morado suave. */
.member-page {
  --member-purple:#765282;
  --member-purple-ink:#5f466e;
  --member-purple-soft:#eee7f4;
  --member-purple-layer:#d9c9e5;
}
html body:not(#redfe-identity-override) .member-page>.contenido-limitado>.member-child {
  max-width:var(--member-content-width);
  margin-inline:auto;
  padding-block:var(--redfe-section-space);
  background:#fff;
}
.member-child__layout {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  align-items:center;
  gap:clamp(28px,4vw,56px);
}
.member-child__copy { min-width:0; }
.member-child__kicker {
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
  color:var(--member-purple-ink);
  font-size:13px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.member-child__kicker i {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--member-purple-soft);
}
.member-child h2 { max-width:24ch; margin:0 0 18px; }
.member-child p { margin:0 0 24px; color:#333; font-size:16px; line-height:1.7; }
.member-requirements {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
}
.member-requirements li {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  min-height:68px;
  margin:0;
  padding:12px 14px;
  border:0;
  border-radius:0;
  color:#333;
  background:#faf8fc;
  font-size:16px;
  line-height:1.5;
}
.member-requirements li:nth-child(even) { background:var(--member-purple-soft); }
.member-requirements li i {
  display:grid;
  place-items:center;
  flex:0 0 36px;
  width:36px;
  height:36px;
  border-radius:50%;
  color:var(--member-purple-ink);
  background:#fff;
}
.member-requirements li>svg.public-icon {
  flex:0 0 36px;
  width:36px;
  height:36px;
  min-width:36px;
  padding:8px;
  border-radius:50%;
  color:var(--member-purple-ink)!important;
  background:#fff;
}
@media (hover:hover) and (pointer:fine) {
  .member-requirements li { transition:transform .2s ease; }
  .member-requirements li:hover { position:relative; z-index:1; transform:scale(1.025); }
}
@media (prefers-reduced-motion:reduce) {
  .member-requirements li { transition:none; }
  .member-requirements li:hover { transform:none; }
}
.member-photo {
  position:relative;
  isolation:isolate;
  min-width:0;
  margin:0;
  padding:24px 26px 58px;
}
.member-photo::before {
  content:"";
  position:absolute;
  z-index:-2;
  inset:34px 0 24px 26px;
  background:var(--member-purple-layer);
  clip-path:polygon(12% 0,100% 7%,91% 100%,0 91%);
}
.member-photo::after {
  content:"";
  position:absolute;
  z-index:-1;
  top:0;
  right:0;
  width:100px;
  aspect-ratio:1;
  border-radius:50%;
  background:var(--member-purple-soft);
}
.member-photo__media {
  display:block;
  width:100%;
  height:clamp(360px,37vw,480px);
  overflow:hidden;
  clip-path:polygon(0 5%,95% 0,100% 94%,6% 100%);
}
.member-photo__media>img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 38%;
}
@media (prefers-reduced-motion:no-preference) {
  .member-photo__media>img { transition:transform 1s cubic-bezier(.22,1,.36,1); }
  .member-photo__media.is-touch-active>img { transform:scale(1.04); }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .member-photo:hover .member-photo__media>img { transform:scale(1.04); }
}
.member-photo__caption {
  position:absolute;
  left:0;
  bottom:14px;
  display:flex;
  align-items:center;
  gap:10px;
  max-width:280px;
  padding:14px 18px;
  border-left:3px solid #b69bc7;
  border-radius:0 10px 10px 0;
  color:var(--member-purple-ink);
  background:var(--member-purple-soft);
  font-size:14px;
  font-weight:600;
  line-height:1.45;
}
.member-documents .member-photo--documents { width:90%; min-height:0; margin:0 auto; padding:0 12px 12px 0; aspect-ratio:4/3; align-self:center; justify-self:center; }
.member-photo--documents::before { inset:16px 0 0 10px; border-radius:14px; clip-path:none; transform:rotate(2deg); }
.member-photo--documents::after { top:-16px; right:-8px; width:90px; }
.member-documents .member-photo--documents .member-photo__media {
  position:absolute;
  inset:0 12px 12px 0;
  width:calc(100% - 12px);
  height:calc(100% - 12px);
  border-radius:12px;
  clip-path:none;
}
.member-photo--documents .member-photo__media>img { object-position:65% center; }
.member-photo--documents .member-photo__caption { z-index:1; max-width:min(280px,100%); }
.member-photo__accent {
  position:absolute;
  z-index:1;
  top:14px;
  left:-10px;
  width:64px;
  height:12px;
  background:#111;
}
.member-photo__caption-icon { flex:0 0 20px; width:20px; height:20px; }
@media (max-width:800px) {
  .member-photo__media { height:420px; }
}
@media (max-width:480px) {
  .member-photo { padding-inline:16px; }
  .member-photo__media { height:380px; }
  .member-photo__caption { max-width:240px; }
}
@media (max-width:1100px) {
  .member-documents__layout { grid-template-columns:1fr; }
  .member-documents .member-photo--documents { order:-1; width:min(90%,576px); }
  .member-child__layout { grid-template-columns:1fr; }
  .member-photo { width:min(100%,480px); margin-inline:auto; }
}
@media (max-width:700px) {
  .member-documents__cta { grid-template-columns:minmax(0,1fr); gap:18px; }
  html body .member-documents__cta>.public-cta { width:100%; }
}
@media (max-width:600px) {
  .member-requirements { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:1024px) {
  .member-page .member-commitments {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(12px,3vw,24px);
  }
  .member-page .member-commitments__card { min-width:0; gap:12px; }
  .member-page .member-commitments__card--mutual { padding:0; border:0; }
  .member-page .member-commitments__card h2 {
    --site-h2-size:clamp(16px,3vw,23px);
    margin:0;
    overflow-wrap:break-word;
  }
  .member-page .member-commitments__card ul { gap:8px; }
  html body .member-page .member-commitments__card li {
    grid-template-columns:16px minmax(0,1fr);
    gap:6px;
    font-size:clamp(12px,2.3vw,14px);
    line-height:1.5;
  }
  html body .member-page .member-commitments__card li svg { width:16px; height:16px; }
  .member-page .member-commitments__card .section-kicker { font-size:11px; letter-spacing:.05em; }
  .member-page .member-commitments__card .section-kicker::before { width:14px; margin-right:6px; }
  .member-page .member-commitments__card>.public-cta { gap:8px; padding:10px; font-size:12px; }
}
