/* TESSIRVE 5.17.268 — corrección de la 267, SOLO menú hamburguesa móvil.
 * Regla final: ganarle a las geometrías heredadas sin alterar PC, Core o cabecera cerrada.
 */
@media (max-width:782px) {
  /* Menu abierto como pantalla propia, no como un bloque intermedio de la web.
     No desplazamos el main ni dejamos el fondo de la página a la vista. */
  html:has(body.tessirve-theme .ms-primary-nav.is-open) {
    --ms-header-extra:0px!important;
    overflow:hidden!important;
  }
  body.tessirve-theme:has(.ms-primary-nav.is-open) {
    overflow:hidden!important;
  }
  body.tessirve-theme:has(.ms-primary-nav.is-open) .ms-site-main,
  body.tessirve-theme:has(.ms-primary-nav.is-open) .ms-site-footer {
    visibility:hidden!important;
    pointer-events:none!important;
  }
  html body.tessirve-theme .ms-site-header .ms-site-header-inner>.ms-primary-nav.is-open {
    box-sizing:border-box!important;
    display:block!important;
    height:calc(100dvh - var(--ms-header-mobile-height,54px) - var(--ms-admin-space,0px))!important;
    min-height:calc(100dvh - var(--ms-header-mobile-height,54px) - var(--ms-admin-space,0px))!important;
    max-height:calc(100dvh - var(--ms-header-mobile-height,54px) - var(--ms-admin-space,0px))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    background:transparent!important;
    margin-top:0!important;
    padding:9px 10px max(20px,env(safe-area-inset-bottom))!important;
    border:0!important;
    border-radius:0!important;
  }
  /* Continuidad del mismo paisaje y del switch hasta el último pixel. */
  html body.tessirve-theme .ms-site-header .ms-site-header-inner>.ms-primary-nav.is-open::before {
    display:block!important;
    content:""!important;
    inset:0!important;
    height:100%!important;
    min-height:100%!important;
    border-radius:0!important;
    background-position:
      center calc(-1 * var(--tsv219-field-header-height)),
      center calc(-1 * var(--tsv219-field-header-height)),
      center calc(-1 * var(--tsv219-field-header-height))!important;
    pointer-events:none!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu,
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu:before,
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu:after,
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu>li.ms-mobile-menu-tessirve-heading,
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu>li.ms-menu-sections-start,
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu>li.ms-menu-ranking-item,
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu>li.ms-menu-history-item {
    background:transparent!important;
    background-color:transparent!important;
    background-image:none!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu {
    padding:6px 4px 15px!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu>li.ms-mobile-menu-tessirve-heading,
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu>li.ms-mobile-menu-tessirve-heading strong,
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu>li:is(.ms-menu-agenda-item,.ms-menu-ranking-item,.ms-menu-history-item)>a {
    color:#fff!important;
    opacity:1!important;
    text-shadow:0 1px 3px rgba(0,0,0,.48)!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-site-menu>li.ms-mobile-menu-tessirve-heading {
    margin-top:10px!important;
    grid-column:1/-1!important;
    padding:0!important;
  }

  /* Cambios visuales reales: selectores más específicos que las versiones 214-266. */
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks {
    margin:0 0 8px!important;
    padding:11px!important;
    border-radius:20px!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid {
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid>.ms-mobile-quicklink {
    min-height:102px!important;
    height:auto!important;
    border-radius:18px!important;
    padding:9px 4px!important;
    gap:6px!important;
    font-size:.84rem!important;
    line-height:1.15!important;
    font-weight:850!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid>.ms-mobile-quicklink>.ms-mobile-quicklink-icon {
    width:74px!important;
    height:59px!important;
    min-height:59px!important;
    max-width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:none!important;
    overflow:visible!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid>.ms-mobile-quicklink>.ms-mobile-quicklink-icon>img {
    display:block!important;
    width:auto!important;
    height:auto!important;
    max-width:min(72px,100%)!important;
    max-height:56px!important;
    min-width:0!important;
    object-fit:contain!important;
    flex:none!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid>.ms-mobile-quicklink>span:last-child {
    overflow:visible!important;
    display:block!important;
    font-size:inherit!important;
    line-height:1.16!important;
    font-weight:850!important;
    text-align:center!important;
    white-space:normal!important;
    text-shadow:0 1px 3px rgba(0,0,0,.55)!important;
  }
  /* Primera: dejar de reducir el escudo a 12 px como hacía la 266.
     Ventana suficiente para el escudo con ajuste fino del borde sobrante. */
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid>.ms-mobile-quicklink:first-child .ms-mobile-quicklink-lpf-icon {
    position:relative!important;
    display:block!important;
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    height:59px!important;
    min-height:59px!important;
    overflow:hidden!important;
    flex:none!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid>.ms-mobile-quicklink:first-child .ms-mobile-quicklink-lpf-icon>img {
    display:block!important;
    position:absolute!important;
    top:50%!important;
    left:-4px!important;
    width:auto!important;
    height:68px!important;
    max-width:none!important;
    max-height:none!important;
    transform:translateY(-50%)!important;
    clip-path:none!important;
  }

  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-menu-kicker,
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-kicker {
    font-size:.77rem!important;
    line-height:1.2!important;
  }
}
/* Lo que es una tablet pequeña aprovecha algo más de espacio. */
@media (min-width:500px) and (max-width:782px){
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid>.ms-mobile-quicklink {
    min-height:120px!important;
  }
}
@media (max-width:365px){
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid>.ms-mobile-quicklink {
    min-height:93px!important;
    font-size:.77rem!important;
    padding:7px 2px!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid>.ms-mobile-quicklink>.ms-mobile-quicklink-icon {
    height:51px!important;
    min-height:51px!important;
  }
  html body.tessirve-theme .ms-site-header .ms-primary-nav.is-open .ms-mobile-quicklinks-grid>.ms-mobile-quicklink>.ms-mobile-quicklink-icon>img {
    max-height:49px!important;
    max-width:65px!important;
  }
}

/* 5.17.268 revisión visual: el paisaje NO termina cuando desplazás el menú.
 * El fondo pertenece al área que se desplaza (background-attachment:local),
 * no a un ::before de 100vh que desaparecía tras la última fila.
 */
@media(max-width:782px){
  html body.tessirve-theme .ms-site-header .ms-site-header-inner>.ms-primary-nav.is-open {
    background-image:
      linear-gradient(180deg,var(--tsv219-field-top),var(--tsv219-field-bottom)),
      linear-gradient(110deg,
        color-mix(in srgb,var(--theme-primary,#16884a) 92%,#25313e 8%),
        color-mix(in srgb,var(--theme-secondary,#0a5b35) 88%,#25313e 12%)),
      url('tessirve-anime-grass-mobile-217.webp')!important;
    background-blend-mode:normal,color,normal!important;
    background-attachment:scroll!important;
    background-size:
      100% 100%,100% 100%,cover!important;
    background-position:
      center top,center top,center top!important;
    background-repeat:no-repeat!important;
    background-color:var(--theme-primary,#16884a)!important;
  }
  html body.tessirve-theme .ms-site-header .ms-site-header-inner>.ms-primary-nav.is-open::before {
    content:none!important;
    display:none!important;
  }
  html body.tessirve-theme .ms-site-header .ms-site-header-inner>.ms-primary-nav.is-open .ms-site-menu,
  html body.tessirve-theme .ms-site-header .ms-site-header-inner>.ms-primary-nav.is-open .ms-site-menu>li,
  html body.tessirve-theme .ms-site-header .ms-site-header-inner>.ms-primary-nav.is-open .ms-site-menu>li.ms-mobile-menu-tessirve-heading {
    background-color:transparent!important;
    background-image:none!important;
  }
}
/* Fondo fijo de toda la pantalla detrás del menú. Corrige el corte visual
   del césped al desplazarse: el lienzo ya no pertenece al elemento desplazable. */
@media(max-width:782px){
  html body.tessirve-theme:has(.ms-primary-nav.is-open)::before{
    content:""!important;
    display:block!important;
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:var(--ms-header-mobile-height,54px)!important;
    bottom:0!important;
    width:100%!important;
    height:auto!important;
    z-index:95!important;
    pointer-events:none!important;
    background-image:
      linear-gradient(180deg,var(--tsv219-field-top),var(--tsv219-field-bottom)),
      linear-gradient(110deg,
        color-mix(in srgb,var(--theme-primary,#16884a) 92%,#25313e 8%),
        color-mix(in srgb,var(--theme-secondary,#0a5b35) 88%,#25313e 12%)),
      url('tessirve-anime-grass-mobile-217.webp')!important;
    background-blend-mode:normal,color,normal!important;
    background-size:100% var(--tsv219-field-canvas-height)!important;
    background-position:center calc(-1 * var(--tsv219-field-header-height))!important;
    background-repeat:no-repeat!important;
    background-color:var(--theme-primary,#16884a)!important;
    filter:var(--tsv219-field-filter)!important;
    opacity:1!important;
  }
  html body.tessirve-theme .ms-site-header .ms-site-header-inner>.ms-primary-nav.is-open{
    background:transparent!important;
  }
}
