/* Ajustes visuales solicitados para la segunda revisión local. */
.cta-band {
  position: relative;
  isolation: isolate;
  background: linear-gradient(90deg, rgba(7, 10, 61, .96) 0%, rgba(10, 19, 88, .82) 52%, rgba(16, 29, 105, .55) 100%), url('/assets/fondo-cta.webp') center 51% / cover no-repeat;
  min-height: 300px;
  display: flex;
  align-items: center;
}
.cta-band::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(25, 40, 159, .1), transparent 70%);
}
.cta-inner { position: relative; z-index: 1; padding-inline: clamp(14px, 2.2vw, 32px); }
.hero-bottom { justify-content: flex-end; }
.about-hero {
  min-height: 540px;
  display: flex;
  align-items: center;
  background: linear-gradient(90deg, rgba(5, 8, 55, .98) 0%, rgba(8, 14, 77, .92) 45%, rgba(10, 20, 81, .57) 100%), url('/assets/fondo-nosotros.webp') center 45% / cover no-repeat;
}
.about-hero .shell { position: relative; z-index: 1; }
.about-hero::before { opacity: .35; }
.contact-hero {
  min-height: 540px;
  display: flex;
  align-items: center;
  background: linear-gradient(90deg, rgba(5, 8, 55, .98) 0%, rgba(8, 14, 77, .91) 43%, rgba(10, 20, 81, .52) 100%), url('/assets/legal.webp') center 44% / cover no-repeat;
}
.contact-hero .shell { position: relative; z-index: 1; }
.contact-hero::before { opacity: .35; }
.legal-brand-row {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: -18px 0 65px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--line);
}
.legal-brand-row img { display: block; width: min(300px, 72vw); height: auto; }
.case-scope {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: 44px;
  align-items: center;
  margin-top: 64px;
  padding-top: 40px;
  border-top: 1px solid #dce4f1;
}
.case-kicker { color: #4260bc; font: 800 10px Manrope, sans-serif; letter-spacing: .15em; }
.case-scope h3 { max-width: 440px; margin: 11px 0 12px; font: 800 clamp(24px, 2.8vw, 34px)/1.14 Manrope, sans-serif; letter-spacing: -.05em; }
.case-scope p { max-width: 450px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.case-tags { display: flex; flex-wrap: wrap; align-content: center; gap: 10px; }
.case-tags span { display: inline-flex; align-items: center; min-height: 43px; padding: 10px 17px; border: 1px solid #d5def0; border-radius: 999px; background: white; color: #182957; font: 700 12px Manrope, sans-serif; }
.recovery-terms { padding: 76px 0; color: white; background: linear-gradient(115deg, #090c52, #173593); }
.recovery-terms-inner { display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: 72px; }
.recovery-terms h2 { margin: 16px 0 0; font: 800 clamp(31px, 3.8vw, 49px)/1.13 Manrope, sans-serif; letter-spacing: -.06em; }
.recovery-terms p { margin: 0 0 15px; max-width: 660px; color: #d4e1fb; font-size: 15px; line-height: 1.72; }
.recovery-terms strong { color: white; }
.recovery-terms .btn { margin-top: 8px; }
.form-message a { display: inline-flex; align-items: center; font-weight: 800; color: #2148b8; text-decoration: underline; text-underline-offset: 3px; }
.team-group + .team-group { margin-top: 60px; }
.team-group .team-col-title { border-bottom: 0; padding: 0 0 22px; }
.team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.team-group:nth-child(2) .team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.team-member { min-width: 0; }
.team-member-visual {
  height: 310px;
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  border-radius: 17px;
  background: radial-gradient(circle at 80% 20%, rgba(46, 227, 242, .42), transparent 35%), linear-gradient(145deg, #13248b, #0a0e5b 65%, #192275);
}
.team-group:nth-child(2) .team-member-visual { height: 350px; }
.team-member-visual::after { content: ""; position: absolute; width: 120%; height: 80%; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; left: -10%; bottom: -50%; transform: rotate(-28deg); }
.team-member-visual > span { font: 800 68px Manrope, sans-serif; letter-spacing: -.08em; color: rgba(255,255,255,.72); }
.team-member-visual.has-photo::after { display: none; }
.team-member-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; transition: transform .5s ease; }
.team-member:hover .team-member-visual img { transform: scale(1.04); }
.team-member-info { padding: 16px 2px 0; }
.team-member-info small { display: block; font: 800 10px Manrope, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #5870b1; }
.team-member-info h3 { margin: 7px 0 0; font: 800 19px/1.25 Manrope, sans-serif; letter-spacing: -.04em; }
.team-member.no-portrait { display: flex; align-items: center; gap: 15px; padding: 18px; border-radius: 16px; border: 1px solid #e1e5ee; background: #f7f9fd; align-self: start; }
.team-member.no-portrait .team-member-visual,
.team-group:nth-child(2) .team-member.no-portrait .team-member-visual { width: 61px; height: 61px; flex: 0 0 61px; border-radius: 12px; }
.team-member.no-portrait .team-member-visual > span { font-size: 20px; letter-spacing: -.05em; }
.team-member.no-portrait .team-member-visual::after { display: none; }
.team-member.no-portrait .team-member-info { padding: 0; }
.team-member.no-portrait .team-member-info h3 { font-size: 15px; }
.team-member.no-portrait .team-member-info small { font-size: 9px; }
@media (min-width: 801px) and (max-width: 850px) {
  .site-nav { gap: 10px; font-size: 12px; }
  .nav-contact { padding: 10px 13px; gap: 10px; }
}
@media (max-width: 800px) {
  .about-hero { min-height: 500px; background-position: 62% center; }
  .contact-hero { min-height: 500px; background-position: 58% center; }
  .cta-band { min-height: 320px; background-position: 62% center; }
  .team-grid, .team-group:nth-child(2) .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-member-visual, .team-group:nth-child(2) .team-member-visual { height: 320px; }
  .case-scope, .recovery-terms-inner { grid-template-columns: 1fr; gap: 28px; }
  .recovery-terms { padding: 65px 0; }
}
@media (max-width: 520px) {
  .team-grid, .team-group:nth-child(2) .team-grid { grid-template-columns: 1fr; }
  .team-member-visual, .team-group:nth-child(2) .team-member-visual { height: 370px; }
  .case-scope { margin-top: 48px; padding-top: 30px; }
  .case-tags span { min-height: 39px; padding: 9px 13px; font-size: 11px; }
  .legal-brand-row { margin: -8px 0 48px; padding-bottom: 36px; }
}
.contact-option small { overflow-wrap: anywhere; }
.contact-option + .contact-option { margin-top: -17px; }
.contact-option + .contact-option .option-icon { background: #e7ecff; color: #285dff; }
.field-trap { position: absolute !important; left: -10000px; width: 1px !important; height: 1px; opacity: 0; }

.reviews-section {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #080d43;
  background-image: radial-gradient(circle at 3% 8%, rgba(56, 93, 225, .34), transparent 38%), radial-gradient(circle at 95% 93%, rgba(25, 208, 229, .19), transparent 34%);
}
.reviews-section::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .28;
  pointer-events: none;
  background-image: linear-gradient(rgba(126, 161, 238, .12) 1px, transparent 1px), linear-gradient(90deg, rgba(126, 161, 238, .12) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(180deg, #000, transparent 88%);
}
.reviews-section > .shell { position: relative; z-index: 1; }
.reviews-heading { display: flex; align-items: flex-start; flex-direction: column; position: relative; margin-bottom: 43px; }
.reviews-heading h2 { font: 800 clamp(37px, 4.3vw, 60px)/1.12 Manrope, sans-serif; letter-spacing: -.065em; margin: 19px 0 0; }
.reviews-heading em { font-style: normal; color: #58e1f1; }
.reviews-heading-mark { position: absolute; right: 3%; top: 12%; color: #49d7ed; font-size: 68px; opacity: .42; text-shadow: 0 0 45px rgba(73, 215, 237, .75); }
.reviews-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 17px; }
.review-card { position: relative; isolation: isolate; min-height: 286px; padding: 25px; display: flex; flex-direction: column; justify-content: space-between; border-radius: 19px; border: 1px solid rgba(163, 188, 251, .2); background: linear-gradient(145deg, rgba(31, 47, 126, .7), rgba(13, 25, 85, .8)); box-shadow: 0 14px 34px rgba(0, 6, 44, .14); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.review-card::before { content: ""; position: absolute; inset: -1px; z-index: -1; border-radius: inherit; background: radial-gradient(circle at 95% 0, rgba(55, 200, 236, .18), transparent 50%); opacity: .7; transition: opacity .3s ease; }
.review-card:hover { transform: translateY(-7px); border-color: rgba(102, 230, 241, .65); box-shadow: 0 24px 48px rgba(0, 6, 44, .3); }
.review-card:hover::before { opacity: 1; }
.review-card-featured { grid-column: span 2; background: linear-gradient(130deg, rgba(45, 57, 149, .83), rgba(17, 41, 101, .86)); }
.review-card-top { display: flex; justify-content: space-between; align-items: flex-start; }
.review-quote { font: 800 62px/.75 Georgia, serif; color: #5fe4ed; }
.review-count { font: 800 10px Manrope, sans-serif; letter-spacing: .15em; color: #9ab4e0; }
.review-card blockquote { margin: 20px 0 24px; color: #ecf3ff; font-size: 14px; line-height: 1.72; }
.review-card-featured blockquote { max-width: 550px; font-size: 18px; line-height: 1.65; }
.review-card-person { display: flex; align-items: center; gap: 12px; padding-top: 17px; border-top: 1px solid rgba(180, 204, 255, .16); }
.review-avatar { display: grid; place-items: center; flex: 0 0 37px; height: 37px; border-radius: 50%; border: 1px solid rgba(109, 232, 244, .4); background: linear-gradient(135deg, rgba(99, 223, 236, .3), rgba(117, 88, 241, .3)); color: #d3faff; font: 800 12px Manrope, sans-serif; }
.review-card-person strong { color: #fff; font: 800 12px Manrope, sans-serif; }
@media (max-width: 900px) { .reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .reviews-section { padding-block: 76px; } .reviews-grid { grid-template-columns: 1fr; } .review-card-featured { grid-column: auto; } .review-card { min-height: 240px; } .reviews-heading-mark { right: 0; top: 10px; font-size: 39px; } }
@media (prefers-reduced-motion: reduce) { .review-card, .review-card::before { transition: none; } }

.flyers-section { position: relative; overflow: hidden; color: #fff; background: radial-gradient(circle at 84% 8%, rgba(82, 72, 214, .36), transparent 38%), linear-gradient(135deg, #070b43, #111b72 58%, #071146); }
.flyers-section::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .3; background-image: linear-gradient(rgba(161, 181, 255, .11) 1px, transparent 1px), linear-gradient(90deg, rgba(161, 181, 255, .11) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg, transparent, #000); }
.flyers-section > .shell { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: center; gap: clamp(38px, 5vw, 76px); }
.flyers-intro { grid-column: 2; grid-row: 1; text-align: left; }
.flyers-intro h2 { margin: 22px 0 0; max-width: 650px; font: 800 clamp(40px, 4.3vw, 64px)/1.1 Manrope, sans-serif; letter-spacing: -.065em; }
.flyers-intro h2 em { color: #60e6f2; font-style: normal; }
.flyer-carousel { grid-column: 1; grid-row: 1; min-width: 0; position: relative; display: grid; grid-template-rows: minmax(0, 1fr) 64px; }
.flyer-stage { position: relative; z-index: 1; min-width: 0; aspect-ratio: 1; }
.flyer-slide { position: absolute; inset: 0; display: grid; place-items: center; opacity: 0; visibility: hidden; transform: translateX(22px) scale(.985); transition: opacity .55s ease, transform .55s ease, visibility .55s; pointer-events: none; }
.flyer-slide.is-active { opacity: 1; visibility: visible; transform: translateX(0) scale(1); pointer-events: auto; }
.flyer-slide a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 0; overflow: hidden; outline-offset: 4px; }
.flyer-slide img { display: block; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 20px 34px rgba(0, 3, 31, .35)); }
.flyer-toolbar { z-index: 2; display: flex; align-items: center; justify-content: center; gap: 22px; padding: 12px 0 0; }
.flyer-navigation { display: flex; gap: 6px; }
.flyer-navigation button { display: grid; place-items: center; width: 45px; height: 45px; border: 0; color: white; background: transparent; font-size: 24px; transition: color .2s, transform .2s; }
.flyer-navigation button:hover { color: #7de9f1; transform: translateY(-2px); }
.flyer-navigation button:focus-visible, .flyer-slide a:focus-visible { outline: 3px solid #72e7f3; outline-offset: 3px; }
.flyer-status { display: inline-flex; gap: 6px; align-items: baseline; min-width: 74px; font: 800 13px Manrope, sans-serif; letter-spacing: .05em; }
.flyer-current { color: #79e8f1; font-size: 19px; }
.flyer-separator, .flyer-status > span:last-child { color: #a9b8e5; }
@media (max-width: 950px) { .flyers-section > .shell { display: block; } .flyers-intro { margin-bottom: 38px; text-align: center; } .flyers-intro h2 { margin-inline: auto; } .flyer-carousel { max-width: 680px; margin-inline: auto; } }
@media (max-width: 650px) { .flyers-section { padding-block: 76px; } .flyer-carousel { grid-template-rows: minmax(0, 1fr) 62px; } }
@media (max-width: 400px) { .flyer-toolbar { gap: 15px; } }
@media (prefers-reduced-motion: reduce) { .flyer-slide, .flyer-navigation button { transition: none; } }
