.natflip {
  --natflip-height: 760px;
  --natflip-bg: #ece9e2;
  width: 100%;
  max-width: 1500px;
  margin: 24px auto;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  outline: none;
}

.natflip__stage {
  position: relative;
  width: 100%;
  height: min(var(--natflip-height), 82vh);
  min-height: 420px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--natflip-bg);
  border-radius: 18px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.04);
}

.natflip__book {
  width: 100%;
  height: 100%;
}

.natflip__page {
  background: #fff;
  overflow: hidden;
  box-shadow: 0 3px 18px rgba(0,0,0,.15);
}

.natflip__canvas {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: fill;
  background: #fff;
}

.natflip__loading {
  position: absolute;
  z-index: 10;
  inset: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: center;
  justify-content: center;
  padding: 30px;
  text-align: center;
  color: #222;
  background: var(--natflip-bg);
}

.natflip__spinner {
  width: 34px;
  height: 34px;
  border: 3px solid rgba(0,0,0,.15);
  border-top-color: rgba(0,0,0,.75);
  border-radius: 999px;
  animation: natflip-spin .8s linear infinite;
}

@keyframes natflip-spin { to { transform: rotate(360deg); } }

.natflip__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  justify-content: center;
  align-items: center;
  padding: 14px 0 4px;
}

.natflip__button {
  appearance: none;
  border: 0;
  border-radius: 999px;
  min-width: 44px;
  min-height: 44px;
  padding: 0 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  cursor: pointer;
  background: #111;
  color: #fff !important;
  font: inherit;
  line-height: 1;
}

.natflip__button:hover { opacity: .82; }
.natflip__counter { min-width: 82px; text-align: center; font-variant-numeric: tabular-nums; }
.natflip__hint { margin: 4px 0 0; text-align: center; font-size: 13px; opacity: .62; }

.natflip--fullscreen {
  max-width: none;
  width: 100vw;
  height: 100vh;
  margin: 0;
  padding: 12px;
  background: #111;
  box-sizing: border-box;
}
.natflip--fullscreen .natflip__stage { height: calc(100vh - 86px); border-radius: 8px; }
.natflip--fullscreen .natflip__controls { color: white; }
.natflip--fullscreen .natflip__hint { display: none; }

@media (max-width: 700px) {
  .natflip { margin: 8px auto; }
  .natflip__stage { height: min(72vh, 720px); min-height: 430px; border-radius: 10px; }
  .natflip__hint { padding: 0 12px; }
}

/* Capa independiente para zoom táctil sin interferir con PageFlip. */
.natflip__zoom {
  width: 100%;
  height: 100%;
  transform-origin: center center;
  will-change: transform;
  transition: transform .12s ease-out;
}

.natflip--zoomed .natflip__zoom {
  transition: none;
}

.natflip--zoomed .natflip__stage {
  cursor: grab;
}

@media (pointer: coarse) {
  .natflip__stage {
    /* Conserva el swipe normal de la revista; el zoom de dos dedos lo gestiona el plugin. */
    touch-action: pan-y;
  }
}


/* v1.5: pantalla completa compatible con iPhone/iPad. */
html.natflip-page-fullscreen,
body.natflip-page-fullscreen {
  overflow: hidden !important;
  overscroll-behavior: none;
}

.natflip--pseudo-fullscreen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483646 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100vh !important;
  height: 100dvh !important;
  margin: 0 !important;
  padding: max(6px, env(safe-area-inset-top)) max(6px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left)) !important;
  box-sizing: border-box;
  background: #111;
}

.natflip--pseudo-fullscreen .natflip__stage,
.natflip--fullscreen .natflip__stage {
  height: calc(100vh - 72px);
  height: calc(100dvh - 72px);
  min-height: 0;
  border-radius: 8px;
}

.natflip--pseudo-fullscreen .natflip__controls,
.natflip--fullscreen .natflip__controls {
  min-height: 44px;
  padding: 7px 0 0;
  color: white;
}

.natflip--pseudo-fullscreen .natflip__hint,
.natflip--fullscreen .natflip__hint {
  display: none;
}

/* iPhone en horizontal: antes el min-height de 430px hacía que la revista
   quedara cortada. Aquí el visor se adapta a la altura real disponible. */
@media (orientation: landscape) and (max-height: 600px) {
  .natflip {
    margin: 4px auto;
  }

  .natflip__stage {
    height: calc(100dvh - 62px);
    min-height: 0;
    border-radius: 8px;
  }

  .natflip__controls {
    flex-wrap: nowrap;
    gap: 6px;
    padding: 5px 0 2px;
  }

  .natflip__button {
    min-width: 34px;
    min-height: 34px;
    padding: 0 10px;
    font-size: 15px;
  }

  .natflip__counter {
    min-width: 64px;
    font-size: 13px;
  }

  .natflip__hint {
    display: none;
  }

  .natflip--pseudo-fullscreen .natflip__stage,
  .natflip--fullscreen .natflip__stage {
    height: calc(100dvh - 46px);
  }

  .natflip--pseudo-fullscreen .natflip__controls,
  .natflip--fullscreen .natflip__controls {
    min-height: 38px;
    padding-top: 4px;
  }
}
