/* ============================================================
   TRAINOLOGYM — FORMACIÓN (Curso Biomecánica)
   Clon Figma punto a punto. Desktop 1440 / Móvil 393.
   Hereda tokens, nav, footer-base y botones de styles.css.
   ============================================================ */

/* ===================================================================
   HERO
   =================================================================== */
.fhero{position:relative;min-height:1024px;color:#fff;overflow:hidden}
.fhero__bg{position:absolute;inset:0;overflow:hidden}
.fhero__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fhero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(91.73deg,rgba(0,0,0,.69) 25.7%,rgba(48,48,48,.186) 60.3%,rgba(102,102,102,0) 102.3%)}
.fhero__inner{position:relative;max-width:1440px;margin-inline:auto;height:100%;min-height:1024px}

.fhero__left{position:absolute;left:102px;top:180px;width:786px;display:flex;flex-direction:column;align-items:flex-start}
.fhero__overline{display:flex;align-items:center;gap:12px;height:56px}
.fhero__overline-ic{width:24px;height:12px;color:#fff;flex-shrink:0}
.fhero__overline>span{font-family:var(--tgy-font-body);font-weight:500;font-size:16px;line-height:28px;letter-spacing:.5px}
.fhero__pill{display:inline-flex;align-items:center;height:30px;padding:0 16px;border-radius:32px;
  background:linear-gradient(16.63deg,#641219 35%,#b31a23 53%,#ec5b31 72%);
  font-family:var(--tgy-font-body)!important;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.5px;color:#fff}

.fhero__h1{font-family:var(--tgy-font-display);font-weight:400;font-size:97px;line-height:93px;letter-spacing:.5px;
  text-transform:uppercase;margin:19px 0 0;width:753px}
.fhero__h1 .red{color:var(--tgy-rojo)}

.fhero__features{display:flex;gap:32px;margin-top:30px}
.fhero__feature{width:217px}
.fhero__feature h3{font-family:var(--tgy-font-body);font-weight:700;font-size:26px;line-height:32px;letter-spacing:.5px;
  margin:0 0 10px;text-transform:uppercase;color:#fff}
.fhero__feature p{font-family:var(--tgy-font-body);font-weight:400;font-size:18px;line-height:24px;letter-spacing:.5px;margin:0;color:#fff}

.fhero__price{margin-top:34px}
.fhero__price-num{font-family:var(--tgy-font-display);font-weight:700;font-size:80px;line-height:80px;margin:0;color:#fff}
.fhero__price-note{font-family:var(--tgy-font-body);font-weight:400;font-size:20px;line-height:24px;margin:14px 0 0;opacity:.8;color:#fff}

.fhero__cta{margin-top:24px}
.btn-tgy--white{background:#fff;color:#1d1d1d}
.btn-tgy--white:hover{color:#1d1d1d;background:#fff}
.btn-circle--white{background:#fff;color:#1d1d1d}
.btn-circle--white:hover{background:#fff}

/* Formulario hero */
/* Panel blanco con notch. Altura adaptable al contenido: el notch (parte inferior)
   queda anclado al fondo con calc(100% - …) y los lados rectos se estiran. Así, si se
   añaden campos al formulario, la forma crece sin romperse. Botones = pie del wrapper. */
.fhero-form-wrap{position:absolute;left:882px;top:236px;width:438.859px;z-index:2}
.fhero-form{position:relative;width:100%;min-height:430px;background:#F2F4F8;border-radius:20px;
  /* Notch inferior-izquierdo por UNIÓN de máscaras (sin XOR) para evitar el filo
     blanco anti-aliasing que dejaba mask-composite:exclude. Capa 1 = todo el form
     menos la banda inferior de 110px; capa 2 = la pestaña inferior ya recortada en
     positivo. Sin mask-composite → unión por defecto (borde AA suave, sin línea). */
  -webkit-mask:linear-gradient(#000 0 0) top left/100% calc(100% - 110px) no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='438.859' height='110'%3E%3Cpath d='M0 5V0H438.859V110H241.944C229.935 110 219.488 101.775 216.67 90.101L207.207 50.899C204.389 39.225 193.942 31 181.933 31H26C11.64 31 0 19.36 0 5Z'/%3E%3C/svg%3E") left bottom/438.859px 110px no-repeat;
  mask:linear-gradient(#000 0 0) top left/100% calc(100% - 110px) no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='438.859' height='110'%3E%3Cpath d='M0 5V0H438.859V110H241.944C229.935 110 219.488 101.775 216.67 90.101L207.207 50.899C204.389 39.225 193.942 31 181.933 31H26C11.64 31 0 19.36 0 5Z'/%3E%3C/svg%3E") left bottom/438.859px 110px no-repeat;
  padding:19px 27px 110px 30px;display:flex;flex-direction:column;gap:14px}
.fhero-form__lead{font-family:var(--tgy-font-body);font-weight:500;font-size:22px;line-height:1.29;color:rgba(0,0,0,.8);margin:0;width:382px}
.fhero-form__field{width:100%;height:62px;background:rgba(179,179,179,.46);border:0;outline:none;border-radius:200px;
  padding:0 32px;font-family:var(--tgy-font-body);font-weight:400;font-size:20px;color:rgba(0,0,0,.8);box-sizing:border-box;display:block}
.fhero-form__field::placeholder{color:rgba(0,0,0,.8);opacity:1}
.fhero-form__field:focus{box-shadow:0 0 0 2px rgba(179,26,35,.45)}
textarea.fhero-form__field--area{height:178px;border-radius:35px;padding:18px 32px;resize:none;line-height:1.3}
.fhero-form__check{display:flex;gap:18px;align-items:flex-start;width:382px;max-width:100%;margin:0;cursor:pointer}
.fhero-form__box{appearance:none;-webkit-appearance:none;width:25px;height:27px;border-radius:5px;background:rgba(0,14,18,.2);
  border:0;flex-shrink:0;cursor:pointer;position:relative;margin:0}
.fhero-form__box:checked{background:var(--tgy-rojo)}
.fhero-form__box:checked::after{content:"";position:absolute;left:8px;top:4px;width:6px;height:12px;
  border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.fhero-form__check>span:last-child{font-family:var(--tgy-font-body);font-weight:400;font-size:16px;line-height:1.2;color:rgba(0,0,0,.8);width:337px;max-width:100%}
.fhero-form__actions{position:absolute;right:16px;bottom:26px;display:flex;gap:37px;align-items:center;z-index:3}
.fhero-form__wa{display:inline-flex;align-items:center;gap:7px;height:43px;padding:0 10px 0 16px;border-radius:32px;
  border:0;cursor:pointer;font-family:var(--tgy-font-body);font-weight:600;font-size:16px;letter-spacing:.5px;text-decoration:none;background:#fff;color:#000;margin-right:35px}
.fhero-form__wa-ic{width:34px;height:33px;border-radius:100px;background:var(--tgy-rojo);display:inline-flex;align-items:center;justify-content:center}
.fhero-form__wa-ic svg{width:16px;height:17px}
/* Contact Form 7 dentro de la caja del hero: neutralizar wrappers de CF7 para
   mantener el diseño (campos a ancho completo, sin huecos extra). */
.fhero-form .wpcf7-form-control-wrap{display:block;width:100%}
.fhero-form input[type=hidden]{display:none}
.fhero-form .wpcf7-spinner{margin:0}
.fhero-form .wpcf7-not-valid-tip{font-family:var(--tgy-font-body);font-size:13px;line-height:1.2;color:var(--tgy-rojo);margin:4px 0 0;display:block}
.fhero-form .wpcf7-response-output{font-family:var(--tgy-font-body);font-size:14px;line-height:1.3;margin:4px 0 0;padding:8px 14px;border-radius:12px;border-width:1px}
.fhero .wpcf7{margin:0}
.wpcf7 form .wpcf7-response-output{margin:0em 0.5em 1em;padding:0.2em 1em;color:#000}
/* Consentimiento (CF7 [acceptance]) con el aspecto del diseño (checkbox cuadrado rojo). */
.fhero-form .wpcf7-acceptance .wpcf7-list-item{margin:0}
.fhero-form .wpcf7-acceptance label{display:flex;gap:18px;align-items:flex-start;margin:0;cursor:pointer}
.fhero-form .wpcf7-acceptance input[type=checkbox]{appearance:none;-webkit-appearance:none;width:25px;height:27px;border-radius:5px;background:rgba(0,14,18,.2);border:0;flex-shrink:0;cursor:pointer;position:relative;margin:0}
.fhero-form .wpcf7-acceptance input[type=checkbox]:checked{background:var(--tgy-rojo)}
.fhero-form .wpcf7-acceptance input[type=checkbox]:checked::after{content:"";position:absolute;left:9px;top:6px;width:6px;height:12px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.fhero-form .wpcf7-acceptance .wpcf7-list-item-label{font-family:var(--tgy-font-body);font-weight:400;font-size:16px;line-height:1.2;color:rgba(0,0,0,.8)}

/* ===================================================================
   RIBBON
   =================================================================== */
.fribbon-sec{padding:0;background:var(--tgy-bg)}
.fribbon{margin-top:-60px;position:relative;z-index:5;border-radius:20px;
  background:linear-gradient(11.86deg,#641219 35%,#b31a23 53%,#ec5b31 72%);
  display:flex;align-items:flex-start;justify-content:space-between;gap:40px;padding:49px 73px 63px}
.fribbon__item{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1}
.fribbon__ic{display:block;margin-bottom:15px}
.fribbon__item p{font-family:var(--tgy-font-body);font-weight:400;font-size:24px;line-height:normal;letter-spacing:-1px;
  text-transform:uppercase;color:#fff;margin:0}

/* ===================================================================
   MEMORIZAR
   =================================================================== */
.fmemo{padding:100px 0 0}
.fmemo__head{display:flex;align-items:flex-start;justify-content:space-between;gap:60px}
.fmemo__overline{font-size:22px;font-weight:500;line-height:1.3}
.fmemo__title{font-family:var(--tgy-font-display);font-weight:400;font-size:85px;line-height:1.1;letter-spacing:-1.7px;
  text-transform:uppercase;color:#fff;width:941px;max-width:78%;margin:0;text-align:right}
.fmemo__body{display:flex;gap:35px;align-items:flex-start;margin-top:35px}
.fmemo__media{width:434px;height:309px;flex-shrink:0;border-radius:16px;overflow:hidden}
.fmemo__media img{width:100%;height:100%;object-fit:contain}
.fmemo__content{flex:1;display:flex;flex-direction:column;gap:43px;max-width:774px}
.fmemo__lead{font-family:var(--tgy-font-body);font-weight:400;font-size:38px;line-height:1.1;color:#fff;margin:0}
.fmemo__lead .o60{color:rgba(255,255,255,.6)}
.fmemo__lead .o40{color:rgba(255,255,255,.4)}
/* Listas dentro del bloque "Dominar": legibles y con poco espacio entre viñetas
   (cada viñeta viene en su propio <ul>, que es hijo flex con gap 43 → se compensa) */
.fmemo__content ul{margin:0;padding-left:1.1em;list-style:disc}
.fmemo__content li{font-family:var(--tgy-font-body);font-weight:400;font-size:24px;line-height:1.35;color:#fff}
.fmemo__content li::marker{color:var(--tgy-rojo)}
.fmemo__content li strong{font-weight:700}
.fmemo__content ul + ul{margin-top:-29px}
.fmemo__lead + ul{margin-top:-27px}
.fmemo__content p:empty{display:none}

/* ===================================================================
   PLAN DE ESTUDIOS
   =================================================================== */
.fplan{padding:96px 0 96px 0}
.fplan__head{display:flex;align-items:flex-start;justify-content:space-between;gap:60px;margin-bottom:32px}
.fplan__overline{font-size:20px;font-weight:500}
.fplan__title{font-family:var(--tgy-font-display);font-weight:400;font-size:85px;line-height:1.1;letter-spacing:-1.7px;
  text-transform:uppercase;color:#fff;width:941px;max-width:78%;margin:0;text-align:right}

.fplan__tabs{display:flex;align-items:center;gap:0;background:rgba(255,255,255,.06);border-radius:40px;width:529px;height:67px;padding:0;overflow:hidden;margin-bottom:42px}
.fplan__tab{flex:1;height:100%;border:0;background:transparent;color:#fff;cursor:pointer;
  font-family:var(--tgy-font-body);font-weight:600;font-size:20px;letter-spacing:.5px;text-transform:capitalize}
.fplan__tab{transition:background .3s ease,color .3s ease,font-size .2s ease}
.fplan__tab.is-active{background:var(--tgy-rojo);border-radius:40px}
.fplan__tab:not(.is-active){font-weight:500;font-size:14px;text-transform:uppercase;color:rgba(255,255,255,.85)}

/* Paneles por nivel (solo el activo visible) */
.fplan__panels{position:relative}
.fplan__panel{display:none}
.fplan__panel.is-active{display:block}

.fplan__card{background:var(--tgy-rojo);border-radius:20px;display:flex;gap:25px;align-items:flex-start;padding:33px 24px}
.fplan__col{width:543px;flex-shrink:0;display:flex;flex-direction:column;gap:0}
.fplan__level{font-family:var(--tgy-font-body);font-weight:600;font-size:29px;line-height:28px;letter-spacing:.5px;text-transform:uppercase;color:#fff;margin:0 0 28px}
/* Bloque acordeón: cerrado = fila roja; abierto = panel blanco */
.fplan__block{transition:background .3s ease}
.fplan__block+.fplan__block{border-top:1px solid rgba(255,255,255,.45)}
.fplan__block-head{width:100%;background:none;border:0;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 0;text-align:left}
.fplan__block-title{font-family:var(--tgy-font-body);font-weight:600;font-size:23px;line-height:1.1;color:#fff;transition:color .3s ease}
.fplan__block-arrow{width:42px;height:42px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:color .3s ease,transform .3s ease}
.fplan__block-arrow svg{width:30px;height:30px}
.fplan__block-text{max-height:0;overflow:hidden;transition:max-height .4s ease}
.fplan__block-text p{font-family:var(--tgy-font-body);font-weight:400;font-size:17px;line-height:24px;letter-spacing:.5px;color:rgba(0,0,0,.78);margin:0;padding:0 18px 18px 0}
.fplan__block-text ul,.fplan__block-text ol{margin:0;padding:0 18px 18px 22px;list-style-position:outside}
.fplan__block-text ul{list-style:disc}
.fplan__block-text ol{list-style:decimal}
.fplan__block-text li{font-family:var(--tgy-font-body);font-weight:400;font-size:17px;line-height:24px;letter-spacing:.5px;color:rgba(0,0,0,.78);margin:0 0 6px}
.fplan__block-text li:last-child{margin-bottom:0}
/* Estado abierto */
.fplan__block.is-open{background:#f2f4f8;border-radius:19px;padding:0 18px;margin:8px 0}
.fplan__block.is-open+.fplan__block{border-top-color:transparent}
.fplan__block.is-open .fplan__block-head{padding:16px 0 6px}
.fplan__block.is-open .fplan__block-title{color:#0c0c0c}
.fplan__block.is-open .fplan__block-arrow{color:#0c0c0c;transform:rotate(90deg)}
.fplan__block.is-open .fplan__block-text{max-height:420px}
.fplan__media{flex:1;height:544px;border-radius:16px;overflow:hidden;position:sticky;top:120px;align-self:flex-start;background:#0d1012}
.fplan__media>img,.fplan__media>video{width:100%;height:100%;object-fit:cover;display:block}
/* Botón play sobre la media del bloque (abre el vídeo en el modal, como en el resto de la web). */
.fplan__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;border:1px solid var(--tgy-rojo);cursor:pointer;padding:13px;box-sizing:content-box;
  display:inline-flex;align-items:center;justify-content:center;background:none;transition:transform .25s ease;z-index:2}
.fplan__play:hover{transform:translate(-50%,-50%) scale(1.06)}
.fplan__play img{width:64px;height:64px;object-fit:contain;display:block}

/* ===================================================================
   ESPECIALIDADES
   =================================================================== */
.fspec{padding:96px 0}
.fspec__inner{display:flex;align-items:flex-start;gap:51px}
.fspec__title{font-family:var(--tgy-font-body);font-weight:600;font-size:32px;line-height:1.1;letter-spacing:-.64px;
  text-transform:uppercase;color:#fff;width:319px;flex-shrink:0;margin:0}
.fspec__track{display:flex;gap:13px;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;cursor:grab;scrollbar-width:none;padding-bottom:6px}
.fspec__track::-webkit-scrollbar{display:none}
.spec-card{width:278px;min-height:322px;flex-shrink:0;border-radius:20px;background:transparent;border:1px solid rgba(255,255,255,.18);
  padding:16px 14px;display:flex;flex-direction:column;align-items:center;gap:10px;justify-content:flex-start}
.spec-card__img{width:243px;height:127px;border-radius:13px;overflow:hidden;flex-shrink:0}
.spec-card__img img{width:100%;height:100%;object-fit:cover}
.spec-card__body{display:flex;flex-direction:column;align-items:flex-start;gap:19px;width:244px}
.spec-card__name{font-family:var(--tgy-font-body);font-weight:600;font-size:23px;line-height:24px;letter-spacing:.5px;color:#fff;margin:0;width:233px}
.spec-card__desc{font-family:var(--tgy-font-body);font-weight:400;font-size:20px;line-height:1.3;color:#fff;margin:0}
.spec-card__cta{height:46px;padding:0 32px;font-size:19px}

/* ===================================================================
   BONUS
   =================================================================== */
.fbonus{padding:96px 0 96px}
.fbonus__head{display:flex;align-items:flex-start;justify-content:space-between;gap:60px;margin-bottom:40px}
.fbonus__overline{font-size:20px;font-weight:500}
.fbonus__title{font-family:var(--tgy-font-display);font-weight:400;font-size:64px;line-height:1.1;letter-spacing:-1.28px;
  text-transform:uppercase;color:#fff;width:843px;max-width:70%;margin:0;text-align:right}
.fbonus__grid{display:flex;gap:38px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;cursor:grab;scrollbar-width:none;padding-bottom:6px}
.fbonus__grid::-webkit-scrollbar{display:none}
.bonus-card{position:relative;width:387px;height:442px;flex-shrink:0;
  background:linear-gradient(180deg,#23292c,#171c1f);
  border-radius:24px;padding:17px;
  /* Forma exacta del Figma (nodo Subtract 387×442, muesca cóncava inferior). */
  clip-path:path('M367 0C378.046 0 387 8.95431 387 20V422C387 433.046 378.046 442 367 442H250.442C239.622 442 229.934 435.299 226.115 425.176L222.211 414.824C218.393 404.701 208.704 398 197.884 398H26C11.6406 398 0 386.359 0 372V20C0 8.95437 8.9544 0.000107651 20 0H367Z')}
/* Borde blanco 1px del Figma (strokeAlign INSIDE): SVG overlay con el mismo path; el clip-path de la card recorta la mitad exterior del stroke 2px → queda 1px interior siguiendo la muesca. */
.bonus-card__border{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;display:block}
.bonus-card__border path{stroke:#fff;stroke-width:2;fill:none}
.bonus-card__badge{position:absolute;left:284px;bottom:8px;font-family:var(--tgy-font-body);font-weight:600;font-size:20px;letter-spacing:.5px;color:#fff}
.bonus-card__img{width:346px;height:182px;border-radius:13px;overflow:hidden}
.bonus-card__img img{width:100%;height:100%;object-fit:cover}
.bonus-card__title{font-family:var(--tgy-font-body);font-weight:600;font-size:20px;line-height:24px;letter-spacing:.5px;text-transform:uppercase;color:#fff;margin:20px 0 14px}
.bonus-card__desc{font-family:var(--tgy-font-body);font-weight:400;font-size:18px;line-height:1.4;color:rgba(255,255,255,.85);margin:0;width:339px}

/* ===================================================================
   FUNFACT (banda imagen)
   =================================================================== */
.ffun{height:520px;overflow:hidden;background:var(--tgy-bg)}
.ffun__bg{position:absolute;inset:0}
.ffun__bg img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
.ffun__fade{position:absolute;inset:0;background:linear-gradient(to bottom,#21272a 0%,transparent 22%,transparent 78%,#21272a 100%)}

/* ===================================================================
   SÍ / NO
   =================================================================== */
.fsino{padding:40px 0 40px 0}
.fsino__grid{display:flex;gap:35px}
.sino-card{flex:1;height:auto;border-radius:20px;padding:33px 47px;display:flex;flex-direction:column}
.sino-card--yes{background:linear-gradient(46.17deg,#641219 35%,#b31a23 53%,#ec5b31 72%)}
.sino-card--no{border:1px solid #fff;background:transparent}
.sino-card__title{font-family:var(--tgy-font-display);font-weight:700;font-size:40px;line-height:56px;letter-spacing:.5px;
  text-transform:uppercase;color:#fff;margin:0 0 38px;text-align:center}
.sino-card__title .big{font-size:57px}
.sino-card__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:21px;flex:1}
.sino-card__list li{display:flex;gap:14px;align-items:center}
.sino-check{width:32.25px;height:32.25px;flex-shrink:0;color:#fff}
.sino-card__list li span{font-family:var(--tgy-font-body);font-weight:400;font-size:18px;line-height:24px;letter-spacing:.5px;color:#fff;opacity:.7}
.sino-card__more{display:flex;align-items:center;justify-content:space-between;gap:14px;border:2px solid #fff;border-radius:37px;
  padding:6px 12px;margin-bottom:23px}
.sino-card__more>span:first-child{font-family:var(--tgy-font-body);font-weight:600;font-size:18px;line-height:24px;letter-spacing:.5px;color:#fff;opacity:.7}
.sino-card__more-ic{width:47px;height:47px;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.sino-card__more-ic svg{width:33px;height:33px;transform:rotate(90deg)}

/* ===================================================================
   OPINIONES
   =================================================================== */
.fopin{padding:96px 0 0;overflow:hidden}
.fopin__watermark{position:absolute;left:-360px;top:0;width:972px;height:1105px;object-fit:cover;opacity:.06;pointer-events:none}
.fopin__head{display:flex;align-items:flex-start;justify-content:space-between;gap:60px;margin-bottom:40px}
.fopin__overline{font-size:20px;font-weight:500}
.fopin__title{font-family:var(--tgy-font-display);font-weight:400;font-size:86px;line-height:1.1;letter-spacing:-1.72px;
  text-transform:uppercase;color:#fff;width:578px;max-width:50%;margin:0;text-align:right}
.fopin__body{display:flex;gap:60px;align-items:center}
.fopin__media{position:relative;width:338px;height:363px;flex-shrink:0;border-radius:10px;overflow:hidden}
.fopin__portrait{width:100%;height:100%;object-fit:cover}
.fopin__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:none;border:0;padding:0;cursor:pointer}
.fopin__play-btn{width:112px;height:112px;border-radius:77px;border:1px solid var(--tgy-rojo);background:rgba(0,0,0,.2);
  display:inline-flex;align-items:center;justify-content:center;padding:3px;transition:transform .25s}
.fopin__play-btn img{width:80px;height:80px}
.fopin__play:hover .fopin__play-btn{transform:scale(1.05)}

.fopin__reviews{flex:1;position:relative;display:flex;flex-direction:column;gap:0;max-width:540px;padding-left:54px;border-left:2px solid rgba(255,255,255,.18)}
.review{display:flex;gap:18px;align-items:center;padding:14px 0;position:relative;cursor:pointer}
.review::before{content:"";position:absolute;left:-61px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;background:rgba(255,255,255,.25)}
.review--active::before{background:var(--tgy-rojo)}
.review__avatar{width:88px;height:88px;border-radius:100px;object-fit:cover;flex-shrink:0}
.review--active .review__avatar{width:72px;height:72px}
.review__name{font-family:var(--tgy-font-body);font-weight:600;font-size:20px;line-height:24px;letter-spacing:.5px;color:#fff;margin:0}
.review__role{font-family:var(--tgy-font-paragraph);font-weight:400;font-size:16px;line-height:24px;color:#cdcdcd;margin:0}
.review__detail{padding:10px 0 24px;display:flex;flex-direction:column;gap:16px}
.review__stars{display:flex;gap:4px}
.review__stars svg{width:32px;height:32px;color:#ecb014}
.review__text{font-family:var(--tgy-font-body);font-weight:400;font-size:20px;line-height:24px;letter-spacing:.5px;color:#fbfbfb;margin:0;width:378px;max-width:100%}

/* ===================================================================
   CALCULADORA
   =================================================================== */
.fcalc{padding:96px 0}
.fcalc__inner{display:flex;align-items:flex-start;justify-content:space-between;gap:40px}
.fcalc__overline{flex-shrink:0;font-size:20px;font-weight:500}
/* Card blanco con notch (path exacto Figma 865×830); heading y form DENTRO */
.fcalc__card{position:relative;width:865px;max-width:100%;height:830px;flex-shrink:0;background:#F2F4F8;box-sizing:border-box;
  clip-path:path('M844.999 0C856.045 0 864.999 8.95431 864.999 20V810C864.999 821.046 856.045 830 844.999 830H437.838C426.942 830 417.202 823.206 413.438 812.98L387.147 741.539C383.383 731.313 373.643 724.519 362.747 724.519H26C11.6406 724.519 0 712.878 0 698.519V20C0 8.95431 8.95431 7.37962e-07 20 0H844.999Z');
  padding:40px 48px 36px;display:flex;flex-direction:column}
.fcalc__title{font-family:var(--tgy-font-display);font-weight:400;font-size:86px;line-height:1.1;letter-spacing:-1.72px;
  text-transform:uppercase;color:#21272a;max-width:755px;margin:0 0 24px}
.fcalc__qs{display:flex;flex-direction:column;gap:14px}
.fcalc__q{background:rgba(179,179,179,.46);border-radius:200px;height:62px;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:18px 32px;font-family:var(--tgy-font-body);font-weight:400;font-size:20px;line-height:1;color:rgba(0,0,0,.8);cursor:pointer}
.fcalc__q span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fcalc__q-ic{width:24px;height:24px;flex-shrink:0;color:rgba(0,0,0,.7)}
.fcalc__qlast{padding:18px 2px;font-family:var(--tgy-font-body);font-weight:400;font-size:20px;line-height:1;color:rgba(0,0,0,.8)}
.fcalc__slider{margin-top:14px}
.fcalc__range{-webkit-appearance:none;appearance:none;width:100%;height:34px;background:transparent;cursor:pointer;margin:0}
.fcalc__range::-webkit-slider-runnable-track{height:2px;background:rgba(0,0,0,.22);border-radius:2px}
.fcalc__range::-moz-range-track{height:2px;background:rgba(0,0,0,.22);border-radius:2px}
.fcalc__range::-webkit-slider-thumb{-webkit-appearance:none;width:34px;height:34px;border-radius:50%;margin-top:-16px;
  background:var(--tgy-gradient);border:3px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.fcalc__range::-moz-range-thumb{width:34px;height:34px;border-radius:50%;background:var(--tgy-gradient);border:3px solid #fff}
.fcalc__value{font-family:var(--tgy-font-body);font-weight:400;font-size:20px;line-height:24px;color:#21272a;margin:14px 0 0;text-align:right}
.fcalc__value b{font-weight:600}
.fcalc__btn{align-self:flex-end;margin-top:auto}

/* ===================================================================
   FAQ
   =================================================================== */
.ffaq{padding:96px 0 100px}
.ffaq__head{display:flex;align-items:flex-start;justify-content:space-between;gap:60px;margin-bottom:32px}
.ffaq__overline{font-size:20px;font-weight:500}
.ffaq__title{font-family:var(--tgy-font-display);font-weight:400;font-size:86px;line-height:1.1;letter-spacing:-1.72px;
  text-transform:uppercase;color:#fff;width:686px;max-width:57%;margin:0;text-align:right}
/* Acordeón = componente compartido .faq-item / .faq-q / .faq-arrow / .faq-a de styles.css (home) */

/* ===================================================================
   RESPONSIVE — MÓVIL (≤ 991.98px)
   =================================================================== */
@media (max-width:991.98px){
  /* HERO */
  .fhero{min-height:0;padding-bottom:40px}
  .fhero__inner{min-height:0;display:flex;flex-direction:column;padding-top:96px}
  .fhero__left{position:relative;left:0;top:0;width:100%;padding:0 20px}
  .fhero__overline{height:auto;flex-wrap:wrap;gap:10px;margin-bottom:14px}
  .fhero__h1{font-size:46px;line-height:.95;width:100%;margin-top:0}
  .fhero__features{flex-direction:column;gap:18px;margin-top:24px}
  .fhero__feature{width:100%}
  .fhero__feature h3{font-size:24px;line-height:1.1;margin-bottom:6px}
  .fhero__feature p{font-size:17px}
  .fhero__price{margin-top:28px}
  .fhero__price-num{font-size:54px;line-height:1}
  .fhero__cta{margin-top:20px;flex-wrap:wrap}
  .btn-tgy--white{font-size:14px;padding:12px 20px}
  .fhero-form-wrap{position:static;left:auto;top:auto;width:100%}
  .fhero-form{position:relative;left:0;top:0;width:calc(100% - 40px);min-height:0;height:auto;clip-path:none;
    -webkit-mask:none;mask:none;
    margin:32px 20px 0;padding:24px 22px;border-radius:24px}
  .fhero-form__lead{width:100%;font-size:18px}
  .fhero-form__field{font-size:17px;height:56px;padding:16px 24px;width:100%}
  .fhero-form__field--area{height:140px}
  .fhero-form__check{width:100%}
  .fhero-form__check>span:last-child{width:auto}
  .fhero-form__actions{position:static;flex-wrap:wrap;gap:12px;margin-top:16px;margin-left:20px}

  /* RIBBON */
  .fribbon{margin-top:24px;flex-wrap:wrap;gap:28px 24px;padding:28px 24px}
  .fribbon__item{flex:1 1 40%;min-width:120px}
  .fribbon__item p{font-size:16px}
  .fribbon__ic{width:48px!important;height:48px!important;margin-bottom:10px}

  /* MEMORIZAR */
  .fmemo{padding:56px 0 0}
  .fmemo__head{flex-direction:column;gap:16px}
  .fmemo__title{font-size:34px;width:100%;max-width:100%;letter-spacing:-.5px}
  .fmemo__body{flex-direction:column;gap:24px;margin-top:28px}
  .fmemo__media{width:100%;height:auto;aspect-ratio:434/434}
  .fmemo__content{gap:28px;max-width:100%}
  .fmemo__lead{font-size:22px}
  .fmemo__content li{font-size:18px;line-height:1.4}
  .fmemo__content ul + ul{margin-top:-16px}
  .fmemo__lead + ul{margin-top:-14px}

  /* PLAN */
  .fplan{padding:56px 0 48px 0}
  .fplan__head{flex-direction:column;gap:14px;margin-bottom:24px}
  .fplan__title{font-size:34px;width:100%;max-width:100%;letter-spacing:-.5px}
  .fplan__tabs{width:100%;height:56px;margin-bottom:28px}
  .fplan__tab{font-size:14px}
  .fplan__tab.is-active{font-size:16px}
  .fplan__card{flex-direction:column;gap:20px;padding:20px}
  .fplan__col{width:100%}
  .fplan__level{font-size:22px;line-height:1.1}
  .fplan__block-title,.fplan__row-title{font-size:19px}
  .fplan__media{width:100%;height:auto;aspect-ratio:609/544;order:-1;position:relative;top:auto}

  /* ESPECIALIDADES */
  .fspec{padding:56px 0}
  .fspec__inner{flex-direction:column;gap:24px}
  .fspec__title{font-size:28px;width:100%}
  /* En columna, flex:1 no constriñe el ancho → el track se expande y desborda la página.
     Forzar ancho de contenedor para que overflow-x:auto recorte y scrollee dentro. */
  .fspec__track{flex:0 0 auto;width:100%;max-width:100%;scroll-snap-type:x mandatory}
  .spec-card{scroll-snap-align:start}

  /* BONUS */
  .fbonus{padding:56px 0 56px}
  .fbonus__head{flex-direction:column;gap:14px;margin-bottom:28px}
  .fbonus__title{font-size:38px;width:100%;max-width:100%}
  .fbonus__grid{overflow-x:auto;gap:18px;scroll-snap-type:x mandatory;scroll-padding-inline:0;padding-bottom:8px;scrollbar-width:none}
  .fbonus__grid::-webkit-scrollbar{display:none}
  /* Móvil: tarjeta más pequeña (con peek) + swipe. clip-path y borde SVG escalados a 300×343 */
  .bonus-card{scroll-snap-align:start;width:300px;height:343px;padding:14px;
    clip-path:path('M284.496 0C293.059 0 300 6.949 300 15.52V327.48C300 336.052 293.059 343 284.496 343H194.141C185.753 343 178.243 337.8 175.283 329.944L172.257 321.911C169.297 314.055 161.786 308.855 153.398 308.855H20.155C9.024 308.855 0 299.822 0 288.679V15.52C0 6.949 6.941 0 15.504 0H284.496Z')}
  .bonus-card__img{width:100%;height:141px}
  .bonus-card__title{font-size:17px;line-height:21px;margin:14px 0 10px}
  .bonus-card__desc{width:100%;font-size:15px}
  .bonus-card__badge{left:auto;right:14px;bottom:6px;font-size:17px}

  /* FUNFACT */
  .ffun{height:320px}

  /* SÍ/NO */
  .fsino__grid{flex-direction:column;gap:20px}
  .sino-card{height:auto;padding:28px 24px}
  .sino-card__title{font-size:30px;line-height:1.2;margin-bottom:24px}
  .sino-card__title .big{font-size:38px}
  .sino-card__list li span{font-size:16px}
  .sino-card__more{margin-top:24px;margin-bottom:0}

  /* OPINIONES */
  .fopin{padding:56px 0 0}
  .fopin__watermark{display:none}
  .fopin__head{flex-direction:column;gap:14px;margin-bottom:28px}
  .fopin__title{font-size:38px;width:100%;max-width:100%}
  .fopin__body{flex-direction:column;gap:32px}
  .fopin__media{width:100%;max-width:338px;height:auto;aspect-ratio:338/363;align-self:center}
  .fopin__play-btn{width:80px;height:80px}
  .fopin__play-btn img{width:58px;height:58px}
  .fopin__reviews{width:100%;max-width:100%;padding-left:40px}
  .review::before{left:-47px}
  .review__text{width:100%;font-size:18px}

  /* CALCULADORA */
  .fcalc{padding:56px 0}
  .fcalc__inner{flex-direction:column;gap:20px}
  .fcalc__card{width:100%;height:auto;clip-path:none;border-radius:24px;padding:24px 22px 28px}
  .fcalc__title{font-size:34px;max-width:100%;letter-spacing:-.5px;margin-bottom:18px}
  .fcalc__q{font-size:16px;gap:12px;padding:16px 22px;height:auto;min-height:56px}
  .fcalc__q span{white-space:normal}
  .fcalc__qlast{font-size:16px}
  .fcalc__btn{align-self:stretch;justify-content:center;margin-top:20px}

  /* FAQ (acordeón compartido; estilos móviles en styles.css) */
  .ffaq{padding:56px 0 56px}
  .ffaq__head{flex-direction:column;gap:14px;margin-bottom:24px}
  .ffaq__title{font-size:38px;width:100%;max-width:100%;text-align:left}
}
