/*
 * ECP MOBILE PREMIUM V1.2 | SP-RC168.4.77 + trailer, footer, precio y acciones
 * Sólo presentación pública para viewports <= 767px.
 * Datos, rutas, marca, reglas comerciales, escritorio y tablet sin cambios.
 * Carga independiente después de app.css y CSS del tráiler, sin recompilar Vite.
 */
@media screen and (max-width: 767px) {
  .ecp-public-shell {
    --ecp-mobile-navy: #041c42;
    --ecp-mobile-blue: #07366d;
    --ecp-mobile-gold: #ffc324;
    --ecp-mobile-line: rgba(91, 161, 243, .32);
    --ecp-mobile-pad: clamp(12px, 4vw, 20px);
    -webkit-text-size-adjust: 100%;
  }
  .ecp-public-shell *,
  .ecp-public-shell *::before,
  .ecp-public-shell *::after { box-sizing: border-box; }
  .ecp-public-shell img, .ecp-public-shell video,
  .ecp-public-shell iframe { max-width: 100%; }
  .ecp-public-shell :where(.ecp-public-wrap, .ecp-signature-wrap, .ecp-footer-shell) {
    width: calc(100% - 2 * var(--ecp-mobile-pad));
    max-width: 100%;
    margin-inline: auto;
    min-width: 0;
  }
  .ecp-public-shell :where(h1,h2,h3,h4,p,a,span,strong) { overflow-wrap: break-word; }
  .ecp-public-shell :where(input,select,textarea) { font-size: 16px; max-width: 100%; }
  .ecp-public-shell :where(a,button,[role="button"],select) { touch-action: manipulation; }
  .ecp-public-shell :where(a,button,input,select,textarea):focus-visible { outline: 3px solid #ffcb32; outline-offset: 2px; }

  /* 01 - Cabecera: siempre una única fila, sin ocultar la identidad oficial. */
  .ecp-public-shell .ecp-signature-topbar,
  .ecp-public-shell .ecp-signature-nav,
  .ecp-public-shell .ecp-signature-trust,
  .ecp-public-shell .ecp-signature-search { display: none !important; }
  .ecp-public-shell .ecp-signature-primary,
  .ecp-public-shell .ecp-signature-primary__inner { min-height: 74px !important; height: auto !important; }
  .ecp-public-shell .ecp-signature-primary { background: #fff; border-bottom: 1px solid #e3eaf3; }
  .ecp-public-shell .ecp-signature-primary__inner {
    display: grid !important; grid-template-columns: minmax(0,1fr) max-content !important;
    column-gap: 7px !important; padding: 10px 0; align-items: center;
  }
  .ecp-public-shell .ecp-signature-brand {
    display: flex !important; align-items: center; gap: 7px !important;
    min-width: 0; max-width: 100%; text-decoration: none;
  }
  .ecp-public-shell .ecp-signature-brand img {
    width: clamp(34px, 10vw, 48px) !important;
    height: clamp(34px, 10vw, 48px) !important; flex: none; object-fit: contain;
  }
  .ecp-public-shell .ecp-signature-brand span { min-width: 0; gap: 0; }
  .ecp-public-shell .ecp-signature-brand strong {
    display: block; max-width: 175px !important; margin: 0;
    font-size: clamp(10.5px, 3.05vw, 15px) !important;
    line-height: 1.23; letter-spacing: -.025em; white-space: normal;
  }
  .ecp-public-shell .ecp-signature-brand small { display: none !important; }
  .ecp-public-shell .ecp-signature-actions {
    display: flex; gap: 5px !important; align-items: center;
    min-width: 0; justify-content: flex-end;
  }
  .ecp-public-shell .ecp-signature-actions .ecp-market-selector { min-width: 0; }
  .ecp-public-shell .ecp-signature-actions .ecp-market-selector__trigger {
    display: flex; align-items: center; justify-content: center;
    width: auto !important; min-width: 65px !important; max-width: 78px;
    min-height: 44px; height: 44px !important; padding: 0 6px !important;
    border-radius: 11px; gap: 3px; box-shadow: 0 4px 14px rgba(6, 28, 66, .06);
  }
  .ecp-public-shell .ecp-market-selector__flag { width: 20px !important; height: 14px !important; flex: none; }
  .ecp-public-shell .ecp-market-selector__currency { font-size: 11px !important; }
  .ecp-public-shell .ecp-market-selector__country { display:none !important; }
  .ecp-public-shell .ecp-market-selector__menu { right: 0; left: auto; max-width: min(320px, calc(100vw - 24px)); z-index: 205; }
  .ecp-public-shell .ecp-signature-cart,
  .ecp-public-shell .ecp-signature-header .ecp-mobile-menu-button {
    display: grid !important; place-items:center; width:44px !important;
    height:44px !important; min-width:44px; padding:0 !important;
    border-radius: 12px !important; flex:none; background:#fff;
  }
  .ecp-public-shell .ecp-signature-cart b { z-index: 2; }
  .ecp-public-shell .ecp-mobile-menu-layer { position: fixed; inset: 0; z-index: 250; }
  .ecp-public-shell .ecp-mobile-menu {
    width: min(360px, 91vw); max-width:100%; max-height:100dvh;
    overflow-y:auto; overscroll-behavior:contain;
  }
  .ecp-public-shell .ecp-mobile-menu__nav a,
  .ecp-public-shell .ecp-mobile-menu__actions a { min-height:44px; }
  .ecp-public-shell .ecp-mobile-menu__search input { font-size: 16px; min-width:0; }

  /* 02 - Portada real RC153, con prioridad a la legibilidad. */
  .ecp-public-shell .ecp-hero-signature.ecp-hero-advisory-rc153 {
    background: radial-gradient(ellipse at 80% 30%, rgba(15,93,191,.28), transparent 55%),
      repeating-radial-gradient(ellipse at 0% 85%, transparent 0 79px, rgba(48,112,194,.10) 80px 82px, transparent 83px 140px),
      linear-gradient(126deg, #041936 0%, #062c62 72%, #041d43 100%);
    color:#fff;
  }
  .ecp-public-shell .ecp-hero-advisory-rc153 .ecp-hero-signature__wrap {
    width: calc(100% - 2 * var(--ecp-mobile-pad)) !important; max-width: 100%;
  }
  .ecp-public-shell .ecp-hero-advisory-rc153 .ecp-hero-signature__grid {
    display:flex !important; flex-direction:column !important; align-items:stretch;
    gap: 0 !important; min-height:0; padding: 24px 0 26px !important;
  }
  .ecp-public-shell .ecp-hero-advisory-rc153 .ecp-hero-signature__value {
    order:1 !important; width:100% !important; min-width:0;
    padding:0 !important; margin:0; text-align:left;
  }
  .ecp-public-shell .ecp-hero-signature__institutional {
    margin:0 0 14px; font-size: 10px !important; font-weight:700;
    letter-spacing:.24em; color:#c9dcf6;
  }
  .ecp-public-shell .ecp-hero-advisory-rc153 .ecp-hero-signature h1 {
    max-width:100%; margin:0 0 14px; font-size: clamp(29px, 8.8vw, 43px) !important;
    line-height:1.12 !important; letter-spacing:-.04em;
  }
  .ecp-public-shell .ecp-hero-signature h1 span,
  .ecp-public-shell .ecp-hero-signature h1 mark { display:block; white-space:normal; }
  .ecp-public-shell .ecp-hero-signature h1 mark { color:#ffc323; background:transparent; }
  .ecp-public-shell .ecp-hero-signature__description {
    margin:0 0 19px !important; max-width:52ch;
    color:#e5eefc; font-size: 15px !important; line-height:1.65 !important;
  }
  .ecp-public-shell .ecp-hero-advisory-rc153 .ecp-hero-signature__benefits {
    display:grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap:8px !important; margin: 0 0 21px; width:100%;
  }
  .ecp-public-shell .ecp-hero-benefit {
    min-width:0; display:flex !important; flex-direction:column; align-items:flex-start;
    gap:8px; padding:0 5px 0 0 !important; border:0 !important;
    color:#f6faff; font-size:clamp(10px,2.5vw,12px) !important;
    line-height:1.35; font-weight:650;
  }
  .ecp-public-shell .ecp-hero-benefit__icon { display:grid; place-items:center; width:31px; height:31px; color:#ffc323; }
  .ecp-public-shell .ecp-hero-benefit__icon svg { width:26px; height:26px; }
  .ecp-public-shell .ecp-hero-signature__actions {
    display:flex !important; flex-direction:column !important; gap:9px !important;
    width:100%; max-width:none !important; margin:0 0 15px;
  }
  .ecp-public-shell .ecp-hero-signature__primary {
    width:100% !important; min-width:0; min-height:56px !important;
    display:flex; align-items:center; justify-content:center; gap:14px;
    border-radius:13px !important; padding:12px 16px;
    background:linear-gradient(100deg,#ffb80a,#ffd447) !important; color:#061b40 !important;
    font-size:15px !important; font-weight:800; text-align:center;
  }
  .ecp-public-shell .ecp-hero-signature__secondary {
    align-self:center; min-height:44px; font-size:13px; color:#fff;
    padding:8px 15px; border-color:rgba(255,195,35,.6);
  }
  .ecp-public-shell .ecp-hero-advisory-rc153 .ecp-hero-signature__visual {
    order:2 !important; width:100% !important; height: clamp(250px,90vw,450px) !important;
    position:relative; margin:0; border-radius:18px 18px 10px 10px;
    overflow:hidden; min-width:0;
  }
  .ecp-public-shell .ecp-hero-signature__visual picture,
  .ecp-public-shell .ecp-hero-signature__visual picture img { display:block; width:100%; height:100%; object-fit:cover; }
  .ecp-public-shell .ecp-hero-signature__visual picture img { object-position:center 35%; }
  .ecp-public-shell .ecp-hero-rating-card { bottom:100px !important; right:10px !important; width:auto !important; max-width:50%; padding:9px 11px !important; }
  .ecp-public-shell .ecp-hero-rating-card__score { font-size:15px; }
  .ecp-public-shell .ecp-hero-rating-card p { font-size:9px; }
  .ecp-public-shell .ecp-hero-advisory-rc153 .ecp-hero-finder {
    order:3 !important; position:relative; z-index:2;
    display:grid !important; grid-template-rows:auto auto !important;
    gap:12px !important; width:calc(100% - 12px) !important; margin:-80px auto 20px !important;
    padding:19px 15px 16px !important; min-height:0 !important;
    border:1px solid #2766af; border-radius:20px !important;
    background:linear-gradient(145deg, #05224c,#073268) !important;
    box-shadow:0 20px 45px rgba(0,12,33,.35) !important;
  }
  .ecp-public-shell .ecp-hero-finder__title {
    color:#fff; font-size: clamp(18px,5vw,23px) !important;
    line-height:1.3; font-weight:750;
  }
  .ecp-public-shell .ecp-hero-finder__fields {
    width:100%; display:grid !important; grid-template-columns:minmax(0,1fr) !important;
    gap:10px !important; min-width:0;
  }
  .ecp-public-shell .ecp-hero-finder__fields > label { min-width:0; width:100%; }
  .ecp-public-shell .ecp-hero-finder__control,
  .ecp-public-shell .ecp-hero-finder__select select,
  .ecp-public-shell .ecp-hero-finder__fields > button {
    width:100% !important; height:52px !important; min-height:52px !important;
    border-radius:11px !important; font-size:16px !important;
  }
  .ecp-public-shell .ecp-hero-finder__control input { width:100% !important; height:50px !important; min-width:0; font-size:16px !important; }
  .ecp-public-shell .ecp-hero-finder__select select { padding-right:34px; background-color:#183e70; color:#fff; }
  .ecp-public-shell .ecp-hero-finder__fields > button {
    background:linear-gradient(105deg,#ffb90a,#ffd546) !important;
    color:#051d42 !important; font-weight:800;
  }
  .ecp-public-shell .ecp-hero-advisory-rc153 .ecp-orientation-form {
    order:4 !important; width:100% !important; height:auto !important;
    min-height:0 !important; margin:0; padding:17px 14px !important;
    border-radius:17px; overflow:visible;
  }
  .ecp-public-shell .ecp-orientation-form input,
  .ecp-public-shell .ecp-orientation-form select { min-width:0; font-size:16px !important; }
  .ecp-public-shell .ecp-hero-advisory-rc153 .ecp-orientation-phone--rc152 { grid-template-columns:minmax(88px,110px) minmax(0,1fr); }

  /* 03 - Secciones de programas reales y carruseles: lista táctil sin recortes. */
  .ecp-public-shell .ecp-premium-home-panel--catalog,
  .ecp-public-shell .ecp-premium-home-panel--offers {
    background:radial-gradient(ellipse at 100% 4%,rgba(14,77,169,.26),transparent 58%),
      linear-gradient(150deg,#041b3b,#072c61) !important;
    color:#fff; padding-block:24px;
  }
  .ecp-public-shell .ecp-premium-home-panel .ecp-public-wrap { width:calc(100% - 2 * var(--ecp-mobile-pad)); max-width:100%; }
  .ecp-public-shell .ecp-premium-category-section,
  .ecp-public-shell .ecp-premium-program-section,
  .ecp-public-shell .ecp-premium-offer-section { min-width:0; max-width:100%; margin-block:0 22px; }
  .ecp-public-shell .ecp-premium-category-section > header,
  .ecp-public-shell .ecp-premium-program-section__header,
  .ecp-public-shell .ecp-rc38-packs__heading,
  .ecp-public-shell .ecp-rc41-memberships__heading {
    display:flex !important; flex-wrap:wrap; align-items:flex-start; justify-content:space-between;
    gap:12px; min-width:0; margin-bottom:14px;
  }
  .ecp-public-shell .ecp-premium-category-section h2,
  .ecp-public-shell .ecp-premium-program-section__header h2,
  .ecp-public-shell .ecp-rc38-packs__heading h2,
  .ecp-public-shell .ecp-rc41-memberships__heading h2 {
    font-size:clamp(21px,6vw,26px) !important; line-height:1.2;
    color:#fff !important; letter-spacing:-.03em;
  }
  .ecp-public-shell .ecp-premium-program-section__header p,
  .ecp-public-shell .ecp-rc38-packs__heading p,
  .ecp-public-shell .ecp-rc41-memberships__heading p { color:#cddcf1; font-size:14px; line-height:1.5; }
  .ecp-public-shell .ecp-premium-program-section--dark { border-radius:20px; padding:16px !important; }
  .ecp-public-shell .ecp-premium-carousel-shell { display:block !important; min-width:0; width:100%; }
  .ecp-public-shell .ecp-premium-carousel-shell__prev,
  .ecp-public-shell .ecp-premium-carousel-shell__next,
  .ecp-public-shell .ecp-premium-carousel-markers { display:none !important; }
  .ecp-public-shell .ecp-premium-carousel-track {
    display:grid !important; grid-template-columns:minmax(0,1fr) !important;
    gap:15px !important; width:100%; overflow:visible !important;
    scroll-snap-type:none !important; touch-action:auto !important;
  }
  .ecp-public-shell .ecp-premium-carousel-slide {
    width:100% !important; max-width:100% !important; min-width:0 !important;
    flex:none !important; scroll-snap-align:none !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1 {
    height:auto !important; width:100% !important; max-width:100%; min-width:0;
    overflow:hidden; border-radius:17px !important;
    background:#082d60 !important; border:1px solid #2363a7 !important;
    box-shadow:0 12px 28px rgba(0,8,29,.21) !important;
    transform:none !important; color:#fff !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1__media { aspect-ratio:16/9; width:100%; }
  .ecp-public-shell .ecp-program-card-premium-rc1__media-content { min-width:0; }
  .ecp-public-shell .ecp-program-card-premium-rc1__media-content h3,
  .ecp-public-shell .ecp-program-card-premium-rc1__media-content h3 a {
    color:#fff !important; white-space:normal !important; font-size:17px !important;
    line-height:1.3; overflow:visible !important; display:block;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1__media-content .ecp-program-card-premium-rc1__category { color:#f6d77a; }
  .ecp-public-shell .ecp-program-card-premium-rc1__badges { right:55px; gap:5px; }
  .ecp-public-shell .ecp-program-card-premium-rc1__badge { font-size:10px; }
  .ecp-public-shell .ecp-program-card-premium-rc1__teacher {
    width:100%; min-width:0; padding:10px 14px; color:#f2f7ff;
    background:rgba(13,57,112,.78); border-color:rgba(145,195,255,.2);
  }
  .ecp-public-shell .ecp-program-card-premium-rc1__teacher strong { color:#fff; font-size:12px; white-space:normal; }
  .ecp-public-shell .ecp-program-card-premium-rc1__teacher small { color:#c5d8ed; font-size:11px; white-space:normal; }
  .ecp-public-shell .ecp-program-card-premium-rc1__body { padding:15px !important; gap:11px; min-width:0; }
  .ecp-public-shell .ecp-program-card-premium-rc1__facts {
    display:flex !important; flex-wrap:wrap; gap:8px 11px; min-width:0;
    color:#dceafa;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1__facts span { min-width:0; color:#dceafa; font-size:12px; }
  .ecp-public-shell .ecp-program-card-premium-rc1__facts svg { color:#ffc324; }
  .ecp-public-shell .ecp-program-card-premium-rc1__commerce { margin-top:auto; gap:10px; }
  .ecp-public-shell .ecp-program-card-premium-rc1__price { color:#fff; }
  .ecp-public-shell .ecp-program-card-premium-rc1__price strong { color:#fff !important; font-size:clamp(20px,6vw,27px) !important; }
  .ecp-public-shell .ecp-program-card-premium-rc1__price-note { color:#c6d8f1; }
  .ecp-public-shell .ecp-program-card-premium-rc1__primary-actions,
  .ecp-public-shell .ecp-program-card-premium-rc1__secondary-actions { display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:8px; min-width:0; }
  .ecp-public-shell .ecp-program-card-premium-rc1__primary-actions form { min-width:0; width:100%; }
  .ecp-public-shell .ecp-program-card-premium-rc1__primary-actions :is(button,a),
  .ecp-public-shell .ecp-program-card-premium-rc1__secondary-actions :is(button,a) {
    width:100% !important; min-width:0 !important; min-height:44px;
    display:flex; align-items:center; justify-content:center;
    text-align:center; white-space:normal;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1__buy,
  .ecp-public-shell .ecp-program-card-premium-rc1__view-program { background:linear-gradient(110deg,#ffb709,#ffd445) !important; color:#081d3e !important; border-color:#fbbd1b !important; }
  .ecp-public-shell .ecp-program-card-premium-rc1__orientation,
  .ecp-public-shell .ecp-program-card-premium-rc1__cart { color:#f8fbff !important; border:1px solid #87aee4 !important; background:#0a3166 !important; }
  .ecp-public-shell .ecp-program-card-premium-rc1__secure,
  .ecp-public-shell .ecp-program-card-premium-rc1__availability { color:#c4d9ef; }
  /* RC168.4.77: el trigger existente debe estar siempre disponible por toque. */
  .ecp-public-shell .ecp-program-card-premium-rc1.has-trailer .ecp-program-trailer-trigger {
    position:absolute; z-index:7; inset:auto !important; left:50%; top:48%;
    width:52px !important; height:52px !important; min-height:0; padding:0;
    transform:translate(-50%,-50%); pointer-events:auto; opacity:1 !important;
    visibility:visible !important; display:flex !important; align-items:center; justify-content:center;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1.has-trailer .ecp-program-trailer-trigger__play {
    display:flex !important; align-items:center; justify-content:center;
    top:0 !important; left:0 !important; right:auto; bottom:auto;
    width:52px !important; height:52px !important; min-width:52px !important; min-height:52px !important;
    padding:0; border-radius:999px; background:rgba(3,23,49,.75);
    border:2px solid #fff; color:#fff;
    opacity:1 !important; visibility:visible !important; transform:none !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1.has-trailer .ecp-program-trailer-trigger__play-disc { width:40px; height:40px; display:grid; place-items:center; }
  .ecp-public-shell .ecp-program-card-premium-rc1.has-trailer .ecp-program-trailer-trigger__play-label { display:none !important; }

  /* 04 - Packs, membresías, docentes y testimonios existentes. */
  .ecp-public-shell .ecp-rc38-packs__grid,
  .ecp-public-shell .ecp-rc41-memberships .ecp-membership-grid,
  .ecp-public-shell .ecp-learning-path-grid {
    display:grid !important; grid-template-columns:minmax(0,1fr) !important;
    gap:14px !important; width:100%; min-width:0;
  }
  .ecp-public-shell .ecp-rc38-packs__grid > *,
  .ecp-public-shell .ecp-membership-grid > *,
  .ecp-public-shell .ecp-learning-path-grid > * { width:100%; max-width:100%; min-width:0; }
  .ecp-public-shell .ecp-rc38-packs__all,
  .ecp-public-shell .ecp-rc41-memberships__compare { display:inline-flex; min-height:44px; align-items:center; }
  .ecp-public-shell .ecp-premium-home-panel--offers :is(button,a) { white-space:normal; }
  .ecp-public-shell .ecp-premium-growth-cta { display:flex !important; flex-direction:column; gap:14px; padding:20px 14px; }
  .ecp-public-shell .ecp-premium-growth-cta__benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
  .ecp-public-shell .ecp-hero-panorama-rc22__picture img { height:auto; max-width:100%; }
  .ecp-public-shell .ecp-social-proof-premium,
  .ecp-public-shell .ecp-rc28-faq-showcase { min-width:0; max-width:100%; }
  .ecp-public-shell .ecp-rc28-faq-showcase__container { display:flex !important; flex-direction:column; gap:16px; max-width:100%; }
  .ecp-public-shell .ecp-rc28-faq-showcase__institution,
  .ecp-public-shell .ecp-rc28-faq-showcase__content { width:100%; min-width:0; max-width:100%; }
  .ecp-public-shell .ecp-faq-item { min-width:0; }
  .ecp-public-shell .ecp-faq-item__question { font-size:14px; line-height:1.4; white-space:normal; }
  .ecp-public-shell .ecp-rc28-faq-showcase__help-button,
  .ecp-public-shell .ecp-rc28-faq-showcase__advisor-link { min-height:44px; }

  /* 05 - Catálogo, búsquedas y filtros. */
  .ecp-public-shell .ecp-catalog-page { min-width:0; width:100%; }
  .ecp-public-shell .ecp-catalog-hero__grid { display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:16px !important; }
  .ecp-public-shell .ecp-catalog-hero h1 { font-size:clamp(25px,7vw,32px) !important; line-height:1.18; }
  .ecp-public-shell .ecp-catalog-hero__search { width:100%; min-width:0; }
  .ecp-public-shell .ecp-catalog-hero__search > div { display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:9px; }
  .ecp-public-shell .ecp-catalog-hero__search input { width:100%; height:48px; padding:10px; min-width:0; }
  .ecp-public-shell .ecp-catalog-hero__search button { width:100%; min-height:46px; }
  .ecp-public-shell .ecp-catalog-type-links {
    display:flex !important; width:calc(100% - 2 * var(--ecp-mobile-pad));
    overflow-x:auto; flex-wrap:nowrap; gap:8px; scroll-snap-type:x proximity;
    padding-block:10px; scrollbar-width:thin; -webkit-overflow-scrolling:touch;
  }
  .ecp-public-shell .ecp-catalog-type-links a {
    flex:none; white-space:nowrap; min-height:42px; display:flex;
    align-items:center; scroll-snap-align:start;
  }
  .ecp-public-shell .ecp-catalog-content,
  .ecp-public-shell .ecp-catalog-shell,
  .ecp-public-shell .ecp-catalog-results,
  .ecp-public-shell .ecp-catalog-results__toolbar { min-width:0; max-width:100%; }
  .ecp-public-shell .ecp-catalog-shell { display:block !important; }
  .ecp-public-shell .ecp-catalog-filter-toggle { min-height:46px; }
  .ecp-public-shell .ecp-catalog-sidebar { max-width:min(360px,90vw); max-height:100dvh; overflow-y:auto; }
  .ecp-public-shell .ecp-catalog-results__toolbar,
  .ecp-public-shell .ecp-catalog-results__actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
  .ecp-public-shell .ecp-program-grid.ecp-catalog-grid,
  .ecp-public-shell .ecp-catalog-grid--list { display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:16px; }
  .ecp-public-shell .ecp-catalog-grid > * { width:100%; min-width:0; max-width:100%; }

  /* 06 - Página detallada: datos reales, acciones comerciales originales. */
  .ecp-public-shell .ecp-course-detail-page .ecp-public-wrap { width:calc(100% - 2 * var(--ecp-mobile-pad)); max-width:100%; }
  .ecp-public-shell .ecp-course-detail-grid--primary,
  .ecp-public-shell .ecp-detail-lower-grid,
  .ecp-public-shell .ecp-academic-closing-zone { display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:18px; }
  .ecp-public-shell .ecp-course-content,
  .ecp-public-shell .ecp-course-sidebar-flow { min-width:0; width:100%; max-width:100%; }
  .ecp-public-shell .ecp-program-hero { display:grid; grid-template-columns:minmax(0,1fr); min-width:0; }
  .ecp-public-shell .ecp-program-hero h1 { font-size:clamp(25px,7vw,32px) !important; line-height:1.17; overflow-wrap:break-word; }
  .ecp-public-shell .ecp-program-meta-inline { display:flex; flex-wrap:wrap; gap:9px; }
  .ecp-public-shell .ecp-program-hero img { max-width:100%; height:auto; object-fit:cover; }
  .ecp-public-shell .ecp-program-section-nav { display:flex; flex-wrap:nowrap; overflow-x:auto; max-width:100%; padding-bottom:7px; overscroll-behavior-x:contain; }
  .ecp-public-shell .ecp-program-section-nav a { flex:none; min-height:44px; display:flex; align-items:center; }
  .ecp-public-shell .ecp-program-purchase-panel { width:100%; max-width:100%; min-width:0; position:static !important; }
  .ecp-public-shell .ecp-purchase-panel__price-hero,
  .ecp-public-shell .ecp-purchase-options label { min-width:0; flex-wrap:wrap; }
  .ecp-public-shell .ecp-purchase-actions { display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:8px; }
  .ecp-public-shell .ecp-purchase-actions form { width:100%; min-width:0; }
  .ecp-public-shell .ecp-purchase-actions button { width:100%; min-width:0; min-height:48px; }
  .ecp-public-shell .ecp-mobile-purchase-bar {
    max-width:100%; padding-bottom: max(12px, env(safe-area-inset-bottom));
  }
  .ecp-public-shell .ecp-mobile-purchase-bar button { min-height:44px; }

  /* 07 - Modal de tráiler: 16:9, focus/scroll y botón cerrar siempre tocable. */
  .ecp-public-shell .ecp-program-trailer-modal {
    position:fixed; inset:0; z-index:2147483000;
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom));
  }
  .ecp-public-shell .ecp-program-trailer-modal__dialog {
    width:100% !important; max-width:min(540px,100%) !important;
    max-height:calc(100dvh - 16px) !important; overflow-y:auto !important;
    overscroll-behavior:contain; border-radius:17px !important;
  }
  .ecp-public-shell .ecp-program-trailer-modal__media { position:relative; width:100%; aspect-ratio:16/9; height:auto !important; min-height:0; overflow:hidden; }
  .ecp-public-shell .ecp-program-trailer-modal__media :is(iframe,video) {
    width:100%; height:100%; object-fit:contain;
  }
  .ecp-public-shell .ecp-program-trailer-modal__close {
    position:absolute; z-index:10; right:9px; top:9px;
    width:44px; height:44px; display:grid; place-items:center;
  }
  .ecp-public-shell .ecp-program-trailer-modal__body { padding:16px 14px 20px; }
  .ecp-public-shell .ecp-program-trailer-modal__intro h2 { font-size:clamp(20px,5vw,25px); white-space:normal; }
  .ecp-public-shell .ecp-program-trailer-modal__facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ecp-public-shell .ecp-program-trailer-modal__fact { min-width:0; }
  .ecp-public-shell .ecp-program-trailer-modal__actions { display:grid; grid-template-columns:minmax(0,1fr); gap:9px; }
  .ecp-public-shell .ecp-program-trailer-modal__actions :is(a,button) { min-height:46px; }

  /* 08 - Pie institucional: contenido real y enlaces accesibles. */
  .ecp-public-shell .ecp-footer-premium-grid { display:grid !important; grid-template-columns:minmax(0,1fr) !important; row-gap:22px; }
  .ecp-public-shell .ecp-footer-zone { min-width:0; max-width:100%; }
  .ecp-public-shell .ecp-footer-link-list a,
  .ecp-public-shell .ecp-footer-pills a { min-height:44px; display:flex; align-items:center; }
  .ecp-public-shell .ecp-footer-description { font-size:14px; line-height:1.6; }
  .ecp-public-shell .ecp-footer-logo img { max-width:100%; height:auto; }
  .ecp-public-shell .ecp-footer-legal-data { overflow-wrap:anywhere; }
  .ecp-public-shell .ecp-whatsapp-widget,
  .ecp-public-shell [data-ui="whatsapp-widget"] { right:max(12px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom)); }
}
/* Dispositivos de 320px: preservar cabecera y formularios sin hacer zoom. */
@media screen and (max-width: 359px) {
  .ecp-public-shell { --ecp-mobile-pad:10px; }
  .ecp-public-shell .ecp-signature-brand img { width:33px !important; height:33px !important; }
  .ecp-public-shell .ecp-signature-brand strong { font-size:10px !important; }
  .ecp-public-shell .ecp-signature-actions { gap:3px !important; }
  .ecp-public-shell .ecp-signature-actions .ecp-market-selector__trigger { min-width:58px !important; max-width:62px; padding:0 3px !important; }
  .ecp-public-shell .ecp-signature-cart,
  .ecp-public-shell .ecp-signature-header .ecp-mobile-menu-button { width:40px !important; min-width:40px; height:44px !important; }
  .ecp-public-shell .ecp-hero-signature__benefits { gap:4px !important; }
  .ecp-public-shell .ecp-hero-benefit { font-size:10px !important; }
  .ecp-public-shell .ecp-hero-advisory-rc153 .ecp-hero-finder { width:100% !important; padding:15px 11px !important; }
}
@media screen and (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .ecp-public-shell .ecp-program-card-premium-rc1,
  .ecp-public-shell .ecp-program-card-premium-rc1 img,
  .ecp-public-shell .ecp-mobile-menu { transition:none !important; }
}


/* --------------------------------------------------------------------------
   ECP MOBILE PREMIUM V1.1 — acceso táctil al tráiler y footer.
   Solo CSS en móvil. El botón existe en Blade únicamente si el tráiler está
   activado y ProgramTrailerService puede validar su fuente.
   -------------------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  /* Todos los cards académicos comparten el mismo componente Blade; ninguna
     dependencia de hover. El área táctil no bloquea las etiquetas o enlaces. */
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-card-premium-rc1__media {
    position: relative;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger {
    position: absolute !important;
    z-index: 9 !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    background: transparent !important;
    pointer-events: none !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger__play {
    position: absolute !important;
    z-index: 2 !important;
    top: 40% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    display: grid !important;
    place-items: center !important;
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    min-height: 56px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1.5px solid rgba(255,255,255,.94) !important;
    border-radius: 50% !important;
    color: #fff !important;
    background: rgba(3,21,50,.64) !important;
    box-shadow: 0 6px 18px rgba(0,9,30,.36), 0 0 0 5px rgba(255,255,255,.15) !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate(-50%,-50%) !important;
    pointer-events: auto !important;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger__play-disc {
    display: grid !important;
    place-items: center !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    border: none !important;
    border-radius: 50%;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger__play-disc svg {
    display: block !important;
    width: 23px !important;
    height: 23px !important;
    fill: currentColor !important;
    color: #fff !important;
  }
  /* Conservar exactamente la dinámica solicitada: icono en reposo, sin texto
     superpuesto; clic o toque abre el modal ya existente en JS. */
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger__play-label {
    display: none !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger__play:focus-visible {
    outline: 3px solid #ffca28 !important;
    outline-offset: 5px !important;
  }

  /* Footer móvil: identidad -> atención -> navegación institucional.
     Mantiene exactamente los enlaces, logos y números configurados en Laravel. */
  .ecp-public-shell .ecp-premium-footer .ecp-footer-main {
    padding: 22px 0 24px !important;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-premium-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 13px !important;
    width: calc(100% - 2 * var(--ecp-mobile-pad)) !important;
    margin-inline: auto !important;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-zone,
  .ecp-public-shell .ecp-premium-footer .ecp-footer-zone:first-child,
  .ecp-public-shell .ecp-premium-footer .ecp-footer-zone:last-child,
  .ecp-public-shell .ecp-premium-footer .ecp-footer-zone:nth-child(4) {
    width: 100% !important;
    min-height: 0 !important;
    max-width: 100% !important;
    padding: 18px 16px !important;
    border: 1px solid rgba(181,205,239,.19) !important;
    border-radius: 16px !important;
    background: rgba(12,47,88,.30) !important;
    box-shadow: 0 7px 24px rgba(0,7,25,.12);
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-identity {
    order: 1;
    align-items: flex-start;
    padding: 22px 18px !important;
    background: linear-gradient(140deg,rgba(20,70,119,.44),rgba(4,28,58,.5)) !important;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-support {
    order: 2;
    border: 1.5px solid rgba(244,176,0,.76) !important;
    background: linear-gradient(135deg,rgba(5,33,70,.94),rgba(10,54,96,.82)) !important;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-nav-zone { order: 3; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-logo { width: min(100%,290px) !important; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-description { max-width: 100%; font-size: 14px; line-height: 1.58; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-pills {
    width: 100%; display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 8px;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-pills a {
    min-width: 0; justify-content: center; text-align: center;
    padding: 9px 6px; font-size: 11px;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-pills a:last-child { grid-column: 1 / -1; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-socials {
    display: flex !important; justify-content: flex-start !important;
    width: 100%; flex-wrap: wrap; gap: 11px;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-socials :is(a,span) {
    width: 46px; height: 46px; flex: 0 0 auto;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-heading { gap: 10px; min-height: 25px; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-heading strong {
    font-size: 16px; line-height: 1.35; letter-spacing: .02em;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-heading-rule { margin: 11px 0 9px; width: 35px; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-link-list { gap: 1px !important; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-link-list a {
    display: flex !important; align-items: center !important;
    width: 100%; min-height: 43px !important;
    padding: 9px 0 !important; font-size: 14px !important;
    line-height: 1.38; overflow-wrap: anywhere;
    border-bottom: 1px solid rgba(198,218,246,.11);
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-link-list li:last-child a { border-bottom: 0; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-account {
    margin-top: 15px; padding-top: 14px;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-validate-cta {
    max-width: 100%; margin: 11px 0 14px; min-height: 76px;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-support-head {
    grid-template-columns: 39px minmax(0,1fr); gap: 10px;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-support-head > .ecp-ui-icon { width: 37px; height: 37px; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-support h3 { font-size: 19px; line-height: 1.24; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-support-rule { margin: 15px 0; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-whatsapp-list a {
    min-height: 58px; grid-template-columns: 42px minmax(0,1fr);
    gap: 10px; padding: 8px 10px;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-whatsapp-logo { width: 39px; height: 39px; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-whatsapp-list strong {
    white-space: normal; overflow-wrap: anywhere;
    font-size: clamp(16px,4.5vw,22px); letter-spacing: .015em;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-bottom-premium .ecp-footer-shell {
    display: flex !important; flex-direction: column !important;
    gap: 10px !important; align-items: center; justify-content: center;
    padding: 17px 0 22px !important; min-height: 0 !important;
    text-align: center;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-bottom-divider { display: none !important; }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-bottom-premium p {
    display: flex; align-items: center; justify-content: center !important;
    max-width: 100%; text-align: center;
    margin: 0; font-size: 12px; line-height: 1.45;
    overflow-wrap: anywhere;
  }
  .ecp-public-shell .ecp-premium-footer .ecp-footer-bottom-premium .ecp-footer-motto {
    font-size: 14px; color: #ffcb4d;
  }
}


/* --------------------------------------------------------------------------
   ECP MOBILE PREMIUM V1.2 — correcciones acumulativas posteriores a V1.1.
   SOLO <=767px. No altera escritorio, rutas ni permisos de compra.
   -------------------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  /* Precio: fondo claro real del card, texto oscuro de contraste accesible.
     V1.0 pintaba #fff sobre #f0f5fd y ocultaba el importe. */
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-program-card-premium-rc1__price,
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-program-card-premium-rc1__price > div {
    color: #0a2d5c !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-program-card-premium-rc1__price strong,
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-program-card-premium-rc1__price strong.is-consult {
    color: #092d60 !important;
    opacity: 1 !important;
    text-shadow: none !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-program-card-premium-rc1__price small {
    color: #344d70 !important;
    opacity: 1 !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-program-card-premium-rc1__price del {
    color: #66788d !important;
    opacity: 1 !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-program-card-premium-rc1__price-note {
    color: #485e78 !important;
    font-size: 11px !important;
    line-height: 1.45 !important;
  }
  /* El comercio conserva su estado real: los botones deshabilitados no se
     habilitan artificialmente ni disparan formularios. */

  /* Menos altura por card: Comprar, Agregar y WhatsApp, después Ver más.
     Botón sólo móvil; Alpine revela/enfoca enlaces ya existentes. */
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-program-card-premium-rc1__secondary-actions {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 9px !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-program-card-premium-rc1__secondary-actions > .ecp-whatsapp-course-button {
    grid-column: 1 !important;
    width: 100% !important;
    min-height: 47px;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-mobile-optional-action {
    display: none !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-mobile-optional-action.ecp-mobile-action-open {
    display: flex !important;
    grid-column: 1 !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-mobile-actions-toggle {
    display: flex !important;
    grid-column: 1 !important;
    justify-content: center;
    align-items: center;
    gap: 9px;
    width: 100%;
    min-height: 44px;
    padding: 9px 15px;
    border-radius: 11px;
    border: 1px solid #9ebde3;
    background: #e5eefb;
    color: #102f5c;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 750;
    cursor: pointer;
    touch-action: manipulation;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-mobile-actions-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference .ecp-mobile-actions-toggle:focus-visible {
    outline: 3px solid #b16c00 !important;
    outline-offset: 2px;
  }

  /* Tráiler: anclaje táctil preciso de 64 px en vez de un overlay de área
     completa con pointer-events:none. Así el Play no queda bajo otra capa al
     reducir el ancho del navegador. Alpine conserva su evento y modal. */
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-card-premium-rc1__media {
    position: relative !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger {
    position: absolute !important;
    inset: auto !important;
    top: 40% !important;
    left: 50% !important;
    z-index: 30 !important;
    display: block !important;
    width: 64px !important;
    height: 64px !important;
    min-width: 64px !important;
    min-height: 64px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    transform: translate(-50%,-50%) !important;
    pointer-events: auto !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger::before {
    display: none !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger__play {
    position: absolute !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 31 !important;
    display: grid !important;
    place-items: center !important;
    width: 64px !important;
    height: 64px !important;
    min-width: 64px !important;
    min-height: 64px !important;
    padding: 0 !important;
    margin: 0 !important;
    color: #fff !important;
    border: 2px solid #fff !important;
    border-radius: 50% !important;
    background: rgba(3,21,50,.77) !important;
    box-shadow: 0 7px 20px rgba(0,9,30,.42),0 0 0 4px rgba(255,255,255,.15) !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
    touch-action: manipulation;
    cursor: pointer;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger__play-disc {
    position: static !important;
    display: grid !important;
    place-items: center !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: none !important;
  }
  .ecp-public-shell .ecp-program-card-premium-rc1--reference.has-trailer .ecp-program-trailer-trigger__play-label {
    display: none !important;
  }
  /* El modal es hijo directo de body; siempre supera header y tarjetas. */
  .ecp-public-shell .ecp-program-trailer-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
  }
}
