
/* =========================================================
   MENTOR.IA · RESPONSIVE GLOBAL V22
   Desktop >= 861px stays visually unchanged.
   Mobile/tablet receives centered layout + accessible menu.
========================================================= */
.mobile-menu-toggle{display:none}
.mobile-menu-backdrop{display:none}

@media (max-width:860px){
  html{scroll-padding-top:76px}
  body.menu-open{overflow:hidden}

  /* Header / hamburger */
  header{z-index:1000}
  .header-inner{
    position:relative;
    min-height:68px;
    width:100%;
    max-width:none;
    padding:10px 18px !important;
    gap:12px !important;
  }
  .logo-mark{height:34px !important}
  header nav{
    margin-left:auto;
    gap:10px !important;
  }
  header nav>.btn-primary{
    display:none !important;
  }
  .mobile-menu-toggle{
    display:inline-flex;
    width:44px;height:44px;
    align-items:center;justify-content:center;
    flex-direction:column;gap:5px;
    border:1px solid rgba(244,245,250,.22);
    border-radius:12px;
    background:rgba(255,255,255,.055);
    color:var(--cream,#F4F5FA);
    cursor:pointer;
    padding:0;
    -webkit-tap-highlight-color:transparent;
    transition:background .2s ease,border-color .2s ease,transform .2s ease;
  }
  .mobile-menu-toggle:hover,
  .mobile-menu-toggle:focus-visible{
    background:rgba(62,214,62,.1);
    border-color:rgba(62,214,62,.55);
    outline:none;
  }
  .mobile-menu-toggle span{
    display:block;width:20px;height:2px;border-radius:2px;
    background:currentColor;
    transition:transform .28s ease,opacity .2s ease;
  }
  .mobile-menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .mobile-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .mobile-menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  header .nav-links{
    display:flex !important;
    position:fixed;
    top:68px;left:14px;right:14px;
    z-index:1002;
    flex-direction:column;
    align-items:stretch;
    gap:6px !important;
    padding:14px;
    border:1px solid rgba(244,245,250,.16);
    border-radius:18px;
    background:rgba(5,10,73,.985);
    box-shadow:0 24px 70px rgba(0,0,0,.35);
    backdrop-filter:blur(18px);
    opacity:0;
    visibility:hidden;
    transform:translateY(-12px) scale(.98);
    transform-origin:top center;
    transition:opacity .22s ease,transform .22s ease,visibility .22s;
  }
  header .nav-links.is-open{
    opacity:1;visibility:visible;transform:none;
  }
  header .nav-links a{
    display:flex;
    align-items:center;justify-content:center;
    min-height:46px;
    padding:10px 14px;
    border-radius:12px;
    color:var(--cream,#F4F5FA) !important;
    font-size:15px !important;
    font-weight:600 !important;
    text-align:center;
    text-decoration:none;
  }
  header .nav-links a:hover,
  header .nav-links a:focus-visible{
    background:rgba(62,214,62,.1);
    color:var(--green,#3ED63E) !important;
    outline:none;
  }
  header .nav-links .mobile-menu-cta{
    margin-top:6px;
    background:var(--green,#3ED63E);
    color:var(--green-deep,#0E3A0E) !important;
  }
  .mobile-menu-backdrop{
    position:fixed;inset:68px 0 0;
    z-index:999;
    background:rgba(0,4,45,.58);
    backdrop-filter:blur(2px);
    opacity:0;visibility:hidden;
    transition:opacity .22s ease,visibility .22s;
  }
  .mobile-menu-backdrop.is-open{display:block;opacity:1;visibility:visible}

  /* Global mobile rhythm */
  .wrap{
    width:100%;
    max-width:680px !important;
    padding-left:22px !important;
    padding-right:22px !important;
  }
  section{overflow:hidden}
  h1,h2,h3{overflow-wrap:break-word}
  .eyebrow{justify-content:center}
  .btn{justify-content:center}

  /* Main hero */
  .hero{padding:58px 0 48px !important}
  .hero-inner,.hero-grid{
    grid-template-columns:1fr !important;
    gap:36px !important;
    text-align:center;
  }
  .hero-copy,.hero-sub{
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .hero h1{
    font-size:clamp(38px,9vw,54px) !important;
    line-height:1.08 !important;
  }
  .hero-sub{font-size:16px !important}
  .hero-ctas,.hero-actions{
    justify-content:center !important;
  }
  .hero .signature{
    order:initial !important;
    width:min(100%,520px) !important;
    height:240px !important;
    margin:0 auto !important;
  }
  .facts,.facts.facts-programa{
    width:100% !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:0 !important;
    text-align:center;
  }
  .facts .fact,
  .facts.facts-programa .fact{
    padding:14px 12px !important;
    border-left:0 !important;
    border-top:1px solid var(--line,rgba(244,245,250,.14));
  }
  .facts .fact:nth-child(even){
    border-left:1px solid var(--line,rgba(244,245,250,.14)) !important;
  }
  .facts .fact:first-child,.facts .fact:nth-child(2){border-top:0}
  .price-badge{margin-left:auto;margin-right:auto}

  /* Common centered section heads/copy on touch layouts */
  .section-head,
  .audience-copy,
  .pdf-section-title,
  .event-overview-head,
  .event-stage-head,
  .event-block-head,
  .event-presential-head .wrap,
  .index-registration-context-inner{
    text-align:center !important;
  }
  .section-head>p,
  .audience-copy>p,
  .pdf-section-title>p,
  .event-overview-head>p,
  .event-stage-head>p,
  .event-block-head>p{
    margin-left:auto !important;margin-right:auto !important;
  }

  /* Audience */
  .audience{padding:62px 0 !important}
  .audience-inner{grid-template-columns:1fr !important;gap:34px !important}
  .audience-grid{grid-template-columns:1fr !important}
  .audience-item{text-align:left}
  .audience-format{
    text-align:center !important;
    justify-content:center !important;
  }

  /* PDF/reference sections */
  .pdf-workshop-intro,
  .pdf-overview,
  .pdf-preparation,
  .pdf-structure-overview{padding-top:60px !important;padding-bottom:60px !important}
  .pdf-workshop-intro-inner{text-align:center !important}
  .pdf-intro-facts,
  .pdf-intro-facts-four,
  .pdf-overview-grid,
  .pdf-prep-grid,
  .pdf-structure-columns,
  .pdf-stats,
  .pdf-stats-four{
    grid-template-columns:1fr !important;
  }
  .pdf-intro-facts>div,
  .pdf-stats>div{text-align:center !important}
  .pdf-structure-column{text-align:left}
  .pdf-structure-cta{text-align:center !important}

  /* Speakers */
  .speakers,.event-speakers,.speaker-profiles{padding-top:62px !important;padding-bottom:62px !important}
  .speaker-grid,.event-speaker-grid{grid-template-columns:1fr !important;max-width:560px !important;margin-left:auto !important;margin-right:auto !important}
  .speaker-event-meta,.event-speaker-meta{
    justify-content:center !important;
    text-align:center !important;
  }
  .speaker-card,.event-speaker-card{text-align:center}
  .speaker-card .speaker-bio,.event-speaker-card .event-speaker-bio{text-align:left}
  .speaker-photo,.event-speaker-photo{margin-left:auto !important;margin-right:auto !important}
  .speaker-profile-head{align-items:center !important;text-align:center !important}
  .speaker-profile .speaker-topic{text-align:left}

  /* Event */
  .page-hero{padding:58px 0 48px !important;text-align:center}
  .page-hero-inner{max-width:680px !important}
  .page-facts{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    width:100%;
    gap:0 !important;
  }
  .page-facts .fact{
    padding:14px 10px !important;
    border-left:0 !important;
    border-top:1px solid var(--line,rgba(244,245,250,.14));
  }
  .page-facts .fact:nth-child(even){border-left:1px solid var(--line,rgba(244,245,250,.14)) !important}
  .page-facts .fact:first-child,.page-facts .fact:nth-child(2){border-top:0}
  .event-overview-grid,.event-session-grid{grid-template-columns:1fr !important}
  .event-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .event-module{
    grid-template-columns:54px 1fr !important;
    gap:16px !important;
    text-align:left;
  }
  .event-timeline-list{max-width:620px;margin-left:auto;margin-right:auto}

  /* About */
  .about-body,.founder-letter,.about-pillars,.about-cta{text-align:center}
  .about-body p,.founder-letter p{margin-left:auto;margin-right:auto}
  .about-pillar-grid{grid-template-columns:1fr !important}
  .letter-card{text-align:left}
  .letter-signoff{justify-content:center}

  /* Registration: keep fields readable, center explanatory column */
  .register{padding-top:62px !important;padding-bottom:62px !important}
  .register-info{text-align:center}
  .register-info>p{margin-left:auto !important;margin-right:auto !important}
  .register-info .info-list{text-align:left}
  .register-inner{grid-template-columns:1fr !important}
  .payment-actions{gap:12px}

  /* Footer */
  footer,.footer-grid{text-align:center}
  .footer-grid,.footer-brand{justify-content:center !important}
}

@media (max-width:560px){
  .wrap{padding-left:18px !important;padding-right:18px !important}
  .header-inner{padding-left:14px !important;padding-right:14px !important}
  .logo-mark{height:31px !important}
  .hero{padding-top:46px !important}
  .hero h1{font-size:clamp(34px,10.5vw,46px) !important}
  .hero-ctas,.hero-actions{
    display:grid !important;
    grid-template-columns:1fr;
    width:100%;
  }
  .hero-ctas .btn,.hero-actions .btn{width:100%}
  .facts,.facts.facts-programa,.page-facts{
    grid-template-columns:1fr !important;
  }
  .facts .fact,.facts.facts-programa .fact,.page-facts .fact{
    border-left:0 !important;
    border-top:1px solid var(--line,rgba(244,245,250,.14)) !important;
    padding:13px 8px !important;
  }
  .facts .fact:first-child,.page-facts .fact:first-child{border-top:0 !important}
  .event-overview-stats{grid-template-columns:1fr !important}
  .event-module{grid-template-columns:1fr !important;text-align:center}
  .event-num{margin:0 auto}
  .speaker-card .speaker-bio,.event-speaker-card .event-speaker-bio,
  .speaker-profile .speaker-topic{text-align:center}
  .speaker-event-meta,.event-speaker-meta{display:grid !important;grid-template-columns:1fr !important}
  .sticky-fomo{padding-left:12px !important;padding-right:42px !important}
}

@media (max-width:860px) and (orientation:landscape){
  .header-inner{min-height:62px}
  header .nav-links{top:62px;max-height:calc(100vh - 74px);overflow:auto}
  .mobile-menu-backdrop{inset:62px 0 0}
  .hero,.page-hero{padding-top:38px !important}
  .hero .signature{height:200px !important}
}

/* Hover effects only where hover exists */
@media (hover:hover) and (pointer:fine){
  .speaker-card,.event-speaker-card,.pillar,.audience-item{
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
  }
  .speaker-card:hover,.event-speaker-card:hover,.pillar:hover,.audience-item:hover{
    transform:translateY(-4px);
    box-shadow:0 16px 40px rgba(0,0,0,.10);
  }
}

@media (prefers-reduced-motion:reduce){
  .mobile-menu-toggle span,
  header .nav-links,
  .speaker-card,.event-speaker-card,.pillar,.audience-item{
    transition:none !important;
  }
}

/* =========================================================
   RESPONSIVE HARDENING V23 · public site + transactional UI
   Desktop is intentionally untouched. These rules only apply
   to tablet/mobile widths and prevent horizontal overflow.
========================================================= */
@media (max-width:860px){
  html,body{max-width:100%;overflow-x:hidden}
  *,*::before,*::after{box-sizing:border-box}
  img,svg,video,canvas,iframe{max-width:100%;height:auto}
  input,select,textarea,button{max-width:100%;font-size:16px}
  table{max-width:100%}
  .wrap,.header-inner,.review-wrap,.checkout-pro-card{min-width:0}
  .header-inner>a:first-child{min-width:0;flex:0 1 auto}
  .logo-mark{max-width:min(210px,58vw);object-fit:contain}
  header nav{flex:0 0 auto}

  /* transactional screens */
  .review-page{padding-left:16px!important;padding-right:16px!important}
  .review-wrap,.review-wrap.narrow{width:100%!important;max-width:720px!important}
  .review-grid,.choice-grid,.reservation-choice-grid,.review-data,
  .bank-data{grid-template-columns:1fr!important}
  .review-card:first-child,.total-card{grid-column:auto!important;grid-row:auto!important}
  .total-card{position:static!important}
  .review-card,.payment-choice,.success-card,.transfer-panel{min-width:0!important}
  .reservation-number strong,.review-data strong,.participant-review strong,
  .bank-data strong{overflow-wrap:anywhere;word-break:break-word}

  /* registration */
  .register-inner,.form-grid,.company-grid,.participant-grid{min-width:0}
  .register-form,.register-info,.form-card{min-width:0;max-width:100%}
  .register input,.register select,.register textarea{width:100%;min-width:0}
}

@media (max-width:600px){
  body{font-size:15px}
  .wrap{padding-left:16px!important;padding-right:16px!important}
  .header-inner{padding-left:12px!important;padding-right:12px!important}
  .logo-mark{height:30px!important;max-width:190px}
  .mobile-menu-toggle{width:42px;height:42px;border-radius:11px}
  header .nav-links{left:10px;right:10px;padding:12px;border-radius:15px}

  h1{font-size:clamp(31px,9.5vw,43px)!important;line-height:1.08!important}
  h2{font-size:clamp(26px,7.5vw,36px)!important;line-height:1.12!important}
  h3{line-height:1.2}
  p{overflow-wrap:break-word}
  .eyebrow{max-width:100%;white-space:normal;text-align:center}

  .section-head,.audience-copy,.pdf-section-title,.event-overview-head,
  .event-stage-head,.event-block-head,.register-info{max-width:100%!important}

  /* cards get useful mobile proportions */
  .speaker-card,.event-speaker-card,.pdf-overview-card,.pdf-prep-card,
  .audience-item,.pillar{border-radius:14px!important}

  .review-page{padding:22px 10px 42px!important}
  .review-card,.payment-choice,.success-card{padding:17px!important;border-radius:16px!important}
  .review-head{margin-bottom:20px!important}
  .review-head h1,.success-card h1{font-size:clamp(29px,9vw,39px)!important}
  .review-data{gap:9px!important}
  .review-data div{padding:11px!important}
  .choice-card{padding:16px!important}
  .choice-btn{min-height:46px}
  .reservation-number{padding:14px 10px!important;margin:18px 0!important}
  .reservation-number strong{font-size:16px!important}
  .transfer-panel{padding:16px!important}
  .transfer-form .choice-btn{max-width:none!important;width:100%!important}
}

@media (max-width:390px){
  .wrap{padding-left:13px!important;padding-right:13px!important}
  .logo-mark{max-width:165px}
  .hero h1{font-size:32px!important}
  .review-page{padding-left:8px!important;padding-right:8px!important}
}

/* short landscape phones: use width efficiently without giant vertical gaps */
@media (max-width:860px) and (orientation:landscape) and (max-height:520px){
  .hero,.page-hero{padding-top:26px!important;padding-bottom:30px!important}
  .hero-inner,.hero-grid{gap:24px!important}
  .review-page{padding-top:16px!important;padding-bottom:24px!important}
  header .nav-links{max-height:calc(100dvh - 72px);overflow-y:auto}
}


/* Acceso rapido a inscripcion: solo tablet y movil */
.mobile-enroll-cta{display:none}
@media (max-width:1100px){
  body{padding-bottom:max(82px,env(safe-area-inset-bottom))}
  .mobile-enroll-cta{
    position:fixed;z-index:1200;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));
    display:flex;align-items:center;max-width:min(390px,calc(100vw - 36px));
    border:1px solid rgba(87,255,79,.32);border-radius:18px;
    background:rgba(7,18,49,.96);box-shadow:0 18px 50px rgba(0,0,0,.30),0 0 0 1px rgba(255,255,255,.04) inset;
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    transform:translateY(120%);opacity:0;pointer-events:none;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .35s ease,width .35s ease,border-radius .35s ease;
  }
  .mobile-enroll-cta.is-visible{transform:translateY(0);opacity:1;pointer-events:auto}
  .mobile-enroll-cta__link{min-width:0;display:flex;align-items:center;gap:11px;padding:11px 44px 11px 12px;color:#fff;text-decoration:none}
  .mobile-enroll-cta__icon{width:42px;height:42px;flex:0 0 42px;border-radius:13px;display:grid;place-items:center;background:#3ed63e;color:#071231;box-shadow:0 8px 22px rgba(62,214,62,.24)}
  .mobile-enroll-cta__icon svg{width:21px;height:21px;transition:transform .3s ease}
  .mobile-enroll-cta__copy{display:flex;flex-direction:column;line-height:1.12;white-space:nowrap;overflow:hidden;max-width:210px;transition:max-width .32s ease,opacity .22s ease}
  .mobile-enroll-cta__copy strong{font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:700;letter-spacing:-.01em}
  .mobile-enroll-cta__copy small{margin-top:4px;color:#b9c6e3;font:500 11px/1.1 'Inter',sans-serif}
  .mobile-enroll-cta__arrow{font-size:20px;color:#3ed63e;margin-left:2px;transition:max-width .3s ease,opacity .2s ease,transform .3s ease}
  .mobile-enroll-cta__toggle{position:absolute;right:7px;top:7px;width:28px;height:28px;border:0;border-radius:9px;background:rgba(255,255,255,.07);color:#9eacd0;font-size:18px;line-height:1;cursor:pointer}
  .mobile-enroll-cta__pulse{position:absolute;left:31px;top:31px;width:10px;height:10px;border-radius:50%;background:#3ed63e;pointer-events:none;animation:mobileEnrollPulse 2.1s ease-out infinite}
  .mobile-enroll-cta:not(.is-collapsed) .mobile-enroll-cta__link{animation:mobileEnrollNudge 5.5s ease-in-out 1.2s infinite}
  .mobile-enroll-cta.is-collapsed{border-radius:18px}
  .mobile-enroll-cta.is-collapsed .mobile-enroll-cta__link{padding:9px}
  .mobile-enroll-cta.is-collapsed .mobile-enroll-cta__copy,.mobile-enroll-cta.is-collapsed .mobile-enroll-cta__arrow{max-width:0;opacity:0;margin:0;overflow:hidden}
  .mobile-enroll-cta.is-collapsed .mobile-enroll-cta__toggle{display:none}
  .mobile-enroll-cta.is-collapsed .mobile-enroll-cta__icon svg{transform:rotate(90deg)}
  .mobile-enroll-cta.is-collapsed .mobile-enroll-cta__pulse{left:25px;top:25px}
  @keyframes mobileEnrollPulse{0%{box-shadow:0 0 0 0 rgba(62,214,62,.5)}70%,100%{box-shadow:0 0 0 18px rgba(62,214,62,0)}}
  @keyframes mobileEnrollNudge{0%,82%,100%{transform:translateX(0)}86%{transform:translateX(-4px)}90%{transform:translateX(3px)}94%{transform:translateX(-2px)}}
}
@media (max-width:600px){
  .mobile-enroll-cta{left:14px;right:14px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:none}
  .mobile-enroll-cta__link{width:100%}
  .mobile-enroll-cta__copy{max-width:none;flex:1}
  .mobile-enroll-cta__arrow{margin-left:auto;margin-right:2px}
  .mobile-enroll-cta.is-collapsed{left:auto;right:14px;width:60px}
  .mobile-enroll-cta.is-collapsed .mobile-enroll-cta__link{width:auto}
}
@media (prefers-reduced-motion:reduce){
  .mobile-enroll-cta,.mobile-enroll-cta__icon svg{transition:none!important}
  .mobile-enroll-cta__pulse,.mobile-enroll-cta__link{animation:none!important}
}
@media (min-width:1101px){body{padding-bottom:0}.mobile-enroll-cta{display:none!important}}
