.how__left-title {
  font-size: 4em;
}

/* ============================================
   PACKAGING.HTML — MONOCHROME THEME (NO ACCENT COLOR)
   ============================================ */
:root {
  --pkg-accent:      #ffffff;
  --pkg-accent-glow: rgba(255, 255, 255, 0.15);
  --pkg-accent-soft: rgba(255, 255, 255, 0.05);
  --pkg-accent-glow-flash: #ffffff;
}

/* In this project, body.dark represents the Light Theme (white background) */
body.dark {
  --pkg-accent:      #000000;
  --pkg-accent-glow: rgba(0, 0, 0, 0.15);
  --pkg-accent-soft: rgba(0, 0, 0, 0.05);
  --pkg-accent-glow-flash: #000000;
}

/* Links & Menu Link Color Overrides - Must be Black in Light Mode, White in Dark Mode */
body a {
  color: var(--fonts-100) !important;
  text-decoration: none !important;
  transition: opacity 0.25s ease !important;
}
body a:hover {
  opacity: 0.72 !important;
}

/* Neutral Borders on Badges and Tags */
.u-tag {
  border-color: var(--lines) !important;
}

/* Neutral Headings (No Accent Color) */
.pkg-parties__subtitle em,
.pkg-gallery-carousel__title em,
.pkg-formats__title em,
.ppc-label--accent,
.ppc-value--link,
.pkg-pdf-viewer__main-title em {
  color: var(--fonts-100) !important;
}

/* Elementos de UI - Monocromáticos */
.ppc-avatar--red {
  background: var(--fonts-100) !important;
  color: var(--mainbg) !important;
  box-shadow: 0 0 14px var(--pkg-accent-glow) !important;
}
.pkg-format-card__badge {
  background-color: #000000 !important;
  color: #ffffff !important;
  border: 1px solid #000000 !important;
}
.pkg-gallery-marquee__item:hover {
  border-color: var(--fonts-50) !important;
}
.pkg-lightbox__close:hover {
  color: var(--fonts-100) !important;
}
.node-circle.is-active {
  border-color: var(--fonts-100) !important;
  background: var(--fonts-100) !important;
  color: var(--mainbg) !important;
}
.quote-table thead tr {
  background: rgba(128, 128, 128, 0.08) !important;
}
.quote-table thead th {
  color: var(--fonts-100) !important;
}
.quote-table {
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;
}
body.dark .quote-table {
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02) !important;
}
.quote-table tbody tr:hover {
  background: rgba(128, 128, 128, 0.06) !important;
}
.pkg-format-card:hover {
  border-color: var(--fonts-50) !important;
}
.pkg-format-card:hover::before {
  background: linear-gradient(90deg, transparent, var(--fonts-30), transparent) !important;
}
.pkg-format-card__index {
  -webkit-text-stroke-color: var(--lines) !important;
}
.pkg-formats__big-num,
.pkg-gallery-carousel__big-num {
  -webkit-text-stroke-color: var(--lines) !important;
}
.pkg-parties__divider {
  background: var(--lines) !important;
}
.pkg-party-card__head {
  border-color: var(--lines) !important;
}
.ppc-field {
  border-color: var(--lines) !important;
}
.pkg-parties__cards {
  border-color: var(--lines) !important;
}
.pkg-party-card:first-child {
  border-right-color: var(--lines) !important;
}
.ticket-barcode-svg text {
  fill: var(--fonts-100) !important;
}
.pkg-banner__icon {
  position: absolute !important;
  right: 40px !important;
  top: 30px !important;
  width: 70px !important;
  z-index: 3 !important;
  color: var(--fonts-100) !important;
  pointer-events: auto !important;
  transition: transform 0.4s ease, opacity 0.4s ease !important;
}
.pkg-banner__icon:hover {
  transform: rotate(5deg) scale(1.05) !important;
}
@media screen and (max-width: 991px) {
  .pkg-banner__icon {
    right: 24px !important;
    top: 24px !important;
    width: 50px !important;
  }
}

/* ============================================
   HEADER RESPONSIVE: ancho completo en móvil
   ============================================ */
@media screen and (max-width: 767px) {
  .header {
    padding: 1rem !important;
  }
  .header__main {
    width: 100% !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
  }
  .header__left {
    display: none !important;
  }
}
@media screen and (max-width: 479px) {
  .header {
    padding: 0.75rem !important;
  }
  .header__main {
    width: 100% !important;
    gap: 0.75rem !important;
    justify-content: space-between !important;
  }
}


.pkg-pdf-viewer__tag {
  border-color: var(--lines) !important;
}
.pkg-pdf-meta-pill {
  background: #000000 !important;
  color: #ffffff !important;
  border: none !important;
}
.pkg-parties__pill {
  background: #000000 !important;
  color: #ffffff !important;
  border: none !important;
}
.igv-badge.visible {
  color: var(--fonts-100) !important;
}

/* ============================================
   SECCIÓN FILOSOFÍA: 90vh, texto más grande, hover 1.7
   ============================================ */
.pkg-philosophy {
  min-height: 90vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 80px 48px !important;
  background: linear-gradient(to bottom, #17161e 0%, #05040b 100%) !important;
}
body.dark .pkg-philosophy {
  background: linear-gradient(to bottom, #e7e5eb 0%, #ffffff 100%) !important;
}
.ph-container {
  gap: 40px !important;
}

/* Badge Negro con Texto Blanco sin Bordes */
.ph-badge {
  background: #000000 !important;
  color: #ffffff !important;
  border: none !important;
}

/* Titular de la frase más grande */
.ph-text {
  font-size: clamp(38px, 6.5vw, 84px) !important;
  line-height: 1.5 !important;
  letter-spacing: -0.03em !important;
  color: #ffffff !important;
}
body.dark .ph-text {
  color: #000000 !important;
}

/* Imágenes inline: grandes + hover lento */
.ph-inline-img-wrap {
  width: 140px !important;
  height: 90px !important;
  border-radius: 90px !important;
  border: 1.5px solid var(--lines) !important; /* Neutral border, no blue */
  margin: 0 10px !important;
  transform: translateY(-8px) scale(1) !important;
  /* Transición suave para hover */
  transition:
    transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1),
    border-color 0.5s ease,
    box-shadow 0.5s ease !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2) !important;
  overflow: hidden !important;
  display: inline-flex !important;
  vertical-align: middle !important;
}
.ph-inline-img-wrap img {
  transition: transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}
.ph-inline-img-wrap:hover {
  transform: translateY(-24px) scale(1.7) !important; /* Aumentado a 1.7 y -24px */
  border-color: var(--fonts-50) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15) !important;
}
.ph-inline-img-wrap:hover img {
  transform: scale(1.25) !important; /* Aumentado a 1.25 */
}

/* ============================================
   SOBREESCRITURAS ADICIONALES DE VERDE A MONOCROMO
   ============================================ */
.total-row.grand {
  border-color: var(--lines) !important;
}
.invoice-toggle-wrap {
  box-shadow: none !important;
}
.invoice-toggle-wrap.invoice-active {
  border-color: var(--fonts-100) !important;
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: none !important;
}
body.dark .invoice-toggle-wrap.invoice-active {
  background: rgba(0, 0, 0, 0.03) !important;
}
.invoice-toggle-wrap.invoice-active .invoice-toggle-title {
  color: var(--fonts-100) !important;
}
.invoice-toggle-wrap.invoice-active .invoice-toggle-desc {
  color: var(--fonts-100) !important;
}
.invoice-toggle-wrap.invoice-active .toggle-label {
  color: var(--fonts-100) !important;
}
.toggle-input:checked + .toggle-track {
  background: var(--fonts-100) !important;
  border-color: var(--fonts-100) !important;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.1), 0 0 12px var(--pkg-accent-glow) !important;
}
.toggle-input:checked + .toggle-track::after {
  background: var(--mainbg) !important;
}
.toggle-label.active {
  color: var(--fonts-100) !important;
}
.igv-badge {
  background: rgba(128, 128, 128, 0.1) !important;
  border-color: var(--lines) !important;
  color: var(--fonts-64) !important;
}
.igv-badge.visible {
  background: rgba(128, 128, 128, 0.2) !important;
  border-color: var(--fonts-100) !important;
  color: var(--fonts-100) !important;
}
/* ============================================
   SECCIÓN DE PAGOS: DISEÑO DE TARJETA PREMIUM
   ============================================ */
.payment-card {
  padding: 2.25rem 2rem !important;
  background: rgba(255, 255, 255, 0.02) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  border: 1px solid var(--lines) !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2) !important;
  position: relative !important;
  overflow: visible !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s ease !important;
}

/* Simulated Credit Card Metallic Chip - Removed for matching web-styles */
.payment-card::before {
  display: none !important;
}

/* Fading Left Indicator Light-bar (Monochromatic) - Removed per user request */
.payment-card::after {
  display: none !important;
}

.payment-card:hover {
  transform: translateY(-6px) !important;
  border-color: var(--fonts-100) !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.3) !important;
}
.payment-card.reveal.reveal-delay-1,
.payment-card.reveal-delay-1,
.payment-card.reveal.reveal-delay-2,
.payment-card.reveal-delay-2 {
  border: 1px solid var(--lines) !important;
}

/* Typography styles */
.pc-bank {
  font-family: 'Space Mono', monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.15em !important;
  color: var(--fonts-50) !important;
  text-transform: uppercase !important;
  margin-bottom: 12px !important;
}
.pc-type {
  font-family: 'Archivo', sans-serif !important;
  font-weight: 800 !important;
  font-size: 1.4rem !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
  color: var(--fonts-100) !important;
  margin-bottom: 24px !important;
}

/* Inset Account Number block */
.pc-number {
  font-family: 'Space Mono', monospace !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--fonts-100) !important;
  letter-spacing: 0.08em !important;
  padding: 16px 20px !important;
  background: rgba(0, 0, 0, 0.3) !important;
  border: 1px solid var(--lines) !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
  position: relative !important;
  overflow: hidden !important;
}
.pc-number:hover {
  border-color: var(--fonts-100) !important;
  background: rgba(0, 0, 0, 0.5) !important;
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

/* Copy button indicator slide-in */
.copy-hint {
  font-family: 'Space Mono', monospace !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  color: var(--fonts-100) !important;
  text-transform: uppercase !important;
  background: var(--mainbg) !important;
  border: 1px solid var(--lines) !important;
  padding: 4px 8px !important;
  border-radius: 4px !important;
  opacity: 0 !important;
  transform: translateX(8px) !important;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.pc-number:hover .copy-hint {
  opacity: 1 !important;
  transform: translateX(0) !important;
}

/* Light Theme overrides for payment cards */
body.dark .payment-card {
  background: rgba(0, 0, 0, 0.01) !important;
  border-color: var(--lines) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.02) !important;
}
body.dark .payment-card::before {
  display: none !important;
}
body.dark .payment-card:hover {
  background: #ffffff !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.05) !important;
  border-color: var(--fonts-100) !important;
}
body.dark .pc-number {
  background: #f4f4f6 !important;
  border-color: rgba(0, 0, 0, 0.08) !important;
}
body.dark .pc-number:hover {
  background: #eaeaea !important;
  border-color: rgba(0, 0, 0, 0.18) !important;
}
body.dark .copy-hint {
  background: #ffffff !important;
}
.toggle-ripple {
  background: rgba(128, 128, 128, 0.1) !important;
}
.pdf-thumb.active .thumb-page {
  border-color: var(--fonts-50) !important;
}
.pdf-page-content.is-cover {
  border-color: var(--fonts-50) !important;
}
.pdf-section-title {
  color: var(--fonts-100) !important;
}
.btn-pdf-download {
  background: #000000 !important;
  color: #ffffff !important;
  border: none !important;
}
.btn-pdf-download:hover {
  background: #222222 !important;
  opacity: 0.9 !important;
}
.btn-primary:hover, .ai__btn:hover {
  background-color: #000000 !important;
  color: #ffffff !important;
  border: none !important;
}
.fs-cc_link:hover {
  color: var(--fonts-100) !important;
}
.pkg-banner__tag {
  color: var(--fonts-100) !important;
}

/* ============================================
   SECCIÓN PARTES INVOLUCRADAS: DISEÑO MEJORADO
   ============================================ */
.pkg-parties {
  padding: 8rem 4rem !important;
}
.pkg-parties__divider {
  width: 100% !important;
  max-width: 1200px !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, var(--lines) 15%, var(--lines) 85%, transparent) !important;
  margin-bottom: 3rem !important;
}
.pkg-parties__cards {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  gap: 20px !important;
  border: none !important;
  background: transparent !important;
  overflow: visible !important;
  width: 100% !important;
  max-width: 1200px !important;
  align-items: stretch !important;
}
.pkg-party-card {
  padding: 1.75rem !important;
  background: #111111 !important;
  color: #ffffff !important;
  border: 1.5px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 20px !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s ease, background 0.4s ease !important;
  position: relative !important;
  overflow: visible !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25) !important;
  gap: 0 !important;
}
.pkg-party-card::after {
  position: absolute !important;
  top: 24px !important;
  right: 24px !important;
  font-family: 'Space Mono', monospace !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  padding: 4px 8px !important;
  border-radius: 4px !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: rgba(255, 255, 255, 0.5) !important;
  background: #1c1c1c !important;
  line-height: 1 !important;
}
 
.pkg-party-card__head {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding-bottom: 0.5rem !important;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.1) !important;
}
.ppc-avatar {
  width: 42px !important;
  height: 42px !important;
  border-radius: 10px !important;
  font-family: 'Space Mono', monospace !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  transition: all 0.3s ease !important;
}
.ppc-avatar--gray {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
}
.ppc-avatar--red {
  background: #ffffff !important;
  color: #111111 !important;
  border-color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(255, 255, 255, 0.15) !important;
}
.ppc-entity-title {
  font-family: 'Archivo', sans-serif !important;
  font-weight: 800 !important;
  font-size: 1.2rem !important;
  letter-spacing: -0.02em !important;
  color: #ffffff !important;
  margin: 0 !important;
}
.ppc-fields {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px 20px !important;
  padding-top: 0 !important;
}
.ppc-field {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 4px !important;
  padding: 0 !important;
  border-bottom: none !important;
}
.ppc-field:first-child {
  grid-column: span 2 !important;
}

.ppc-label {
  font-family: 'Space Mono', monospace !important;
  font-size: 9px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: rgba(255, 255, 255, 0.45) !important;
}
.ppc-value {
  font-family: 'Archivo', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #ffffff !important;
  line-height: 1.4 !important;
}
.ppc-value--bold {
  font-weight: 700 !important;
}
.ppc-value--mono {
  font-family: 'Space Mono', monospace !important;
  font-size: 13px !important;
  letter-spacing: -0.02em !important;
}
.ppc-value--link {
  color: #ffffff !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  text-decoration-color: rgba(255, 255, 255, 0.25) !important;
  transition: opacity 0.2s ease !important;
}
.ppc-value--link:hover {
  opacity: 0.8 !important;
}
.pkg-party-card:hover {
  transform: translateY(-6px) scale(1.01) !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.45) !important;
  background: #151515 !important;
}

/* Connectors and Arrows */
.pkg-parties__connector {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--fonts-50) !important;
  width: 48px !important;
  height: 48px !important;
  align-self: center !important;
  justify-self: center !important;
  transition: transform 0.3s ease !important;
}
.pkg-parties__connector svg {
  width: 28px !important;
  height: 28px !important;
  stroke: var(--fonts-50) !important;
}

/* Clean overrides: cards are always dark with white text in light theme as well */
body.dark .pkg-party-card {
  background: #111111 !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25) !important;
}
body.dark .pkg-party-card::after {
  background: #1c1c1c !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
  color: rgba(255, 255, 255, 0.6) !important;
}
body.dark .ppc-value--link {
  text-decoration-color: rgba(255, 255, 255, 0.25) !important;
}
body.dark .pkg-party-card:hover {
  background: #151515 !important;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.4) !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
}

@media screen and (max-width: 991px) {
  .pkg-parties__cards {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .pkg-parties__connector {
    transform: rotate(90deg) !important;
    margin: 8px 0 !important;
  }
}
@media screen and (max-width: 576px) {
  .ppc-fields {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .ppc-field:first-child {
    grid-column: span 1 !important;
  }
  .pkg-party-card {
    padding: 1.5rem !important;
  }
  .pkg-party-card::after {
    top: 20px !important;
    right: 20px !important;
  }
}

/* ============================================
   CARRUSEL DE GALERÍA: DISEÑO DE LIGHTBOX PREMIUM
   ============================================ */
.pkg-lightbox {
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.25, 1, 0.5, 1) !important;
  background: rgba(2, 1, 8, 0.92) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
}
.pkg-lightbox.show {
  opacity: 1 !important;
}

/* Imagen con slide & pop elástico a pantalla completa vertical */
.pkg-lightbox__img {
  max-width: 100% !important;
  max-height: 100% !important;
  height: 100% !important;
  width: auto !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
  transform: translateY(30px) scale(0.95) !important;
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}
.pkg-lightbox.show .pkg-lightbox__img {
  transform: translateY(0) scale(1) !important;
}

/* Botón de cierre ocultado */
.pkg-lightbox__close {
  display: none !important;
}

/* Caption ocultada */
.pkg-lightbox__caption {
  display: none !important;
}

/* Gallery Marquee Item Monochrome Overrides */
.pkg-gallery-marquee__item:hover {
  transform: scale(1.03) !important;
  border-color: var(--fonts-100) !important;
}

/* Gallery Marquee Speed Optimizations (Slow and elegant motion) */
.pkg-gallery-marquee__track {
  animation-duration: 90s !important;
}
.pkg-gallery-marquee__row.row-slow .pkg-gallery-marquee__track {
  animation-duration: 160s !important;
}

/* Gallery Marquee Performance Optimization Rules */
.pkg-gallery-marquee__track {
  will-change: transform !important;
  backface-visibility: hidden !important;
}
.pkg-gallery-marquee__item {
  will-change: transform !important;
  backface-visibility: hidden !important;
}
.pkg-gallery-marquee__item img {
  will-change: transform !important;
  backface-visibility: hidden !important;
}

/* ==========================================================================
   PREGUNTAS FRECUENTES (FAQ) STYLE IMPROVEMENTS (Monochrome, Soft & Premium)
   ========================================================================== */

/* Disable conflicting CSS transitions for GSAP accordion */
.faq__content {
  transition: none !important;
}

/* Correct line-height and letter-spacing for the FAQ answers */
.faq__content-txt.u-body-2.u-fonts-100 {
  letter-spacing: -0.015em !important;
  line-height: 1.65 !important;
  color: var(--fonts-64) !important; /* Premium softer look */
  padding-top: 1.25rem !important;
  padding-bottom: 0.5rem !important;
}

/* Base styles for FAQ list item */
.faq__item {
  border-bottom: 1px solid var(--lines) !important;
  transition: background-color 0.4s ease, border-left 0.4s ease, padding 0.4s ease !important;
  border-left: 0px solid transparent !important;
  background-color: transparent;
}

/* Active FAQ item highlighted background container & border indicator */
.faq__item.active {
  background-color: var(--secondbg) !important; /* Subtle second background */
  border-left: 4px solid var(--fonts-100) !important; /* Thick left accent line */
  padding-left: 2.5rem !important; /* Slide padding open */
}

/* Micro-interaction on question hover (slides slightly to the right) */
.faq__item-title {
  transition: color 0.3s ease, padding-left 0.3s ease !important;
}
.faq__item-title:hover {
  opacity: 1 !important; /* Disable default fade out */
  color: var(--fonts-100) !important;
  padding-left: 0.25rem !important;
}

/* Question tag styling */
.faq__label.u-body-3.u-fonts-100 {
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
}

/* ==========================================================================
   VISUALIZADOR DE PDF (PDF VIEWER) STYLING IMPROVEMENTS (Taller & Theme-adaptive)
   ========================================================================== */

.cs-pdf-wrap {
  position: relative;
  height: 850px !important; /* Increased height from 680px for a taller and more readable view */
  border-radius: 16px !important;
  overflow: hidden !important;
  border: 1px solid var(--lines) !important;
  background: var(--secondbg) !important;
  margin-bottom: 48px !important;
  
  /* Premium, smooth and theme-adaptive shadow */
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.15) !important;
  transition: box-shadow 0.3s ease, transform 0.3s ease !important;
  will-change: transform;
}

.cs-pdf-wrap:hover {
  /* Subtle lift effect on hover */
  transform: translateY(-4px) !important;
  box-shadow: 0 28px 64px rgba(0, 0, 0, 0.22) !important;
}

/* Softer shadow for the Light Theme (body.dark in this project) */
body.dark .cs-pdf-wrap {
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.06) !important;
}
body.dark .cs-pdf-wrap:hover {
  box-shadow: 0 28px 64px rgba(0, 0, 0, 0.1) !important;
}

/* Styling for the FAQ tag (placed on top of the title) */
.pkg-faq__tag {
  letter-spacing: 0.15em !important;
  color: var(--fonts-50) !important;
  display: inline-block !important;
  margin-bottom: 1rem !important;
}

/* Dynamic theme-based background for Section 01 Banner */
.pkg-banner__bg {
  background-image: url('banner/banner_01.jpg');
}
body.dark .pkg-banner__bg {
  background-image: url('banner/banner_00.jpg');
}

/* ==========================================================================
   NUEVOS AJUSTES PEDIDOS POR EL USUARIO (01 al 05)
   ========================================================================== */

/* 01. TICKET PLACED ON TOP OF THE BANNER (RESTORED TO ORIGINAL OVERLAY POSITION) */
.pkg-banner__ticket-container {
  position: absolute !important;
  left: 40px !important;
  top: 40px !important;
  transform: none !important;
  width: 100% !important;
  max-width: 320px !important; /* Original compact width on desktop */
  z-index: 10 !important; /* z-index superior al banner */
  pointer-events: none !important;
  display: block !important;
  margin: 0 !important;
}

.pkg-banner__ticket {
  pointer-events: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  z-index: 11 !important;
  background-color: transparent !important; /* Quitado el fondo, transparente por completo */
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--fonts-100) !important; /* Restored theme-adaptive text color */
}

/* Ensure all nested items inside the ticket adapt dynamically to light/dark themes */
.pkg-banner__ticket,
.pkg-banner__ticket * {
  color: var(--fonts-100) !important;
  border-color: var(--lines) !important;
}

.ticket-divider {
  background-color: var(--fonts-100) !important;
  opacity: 0.65 !important;
  height: 1px !important;
}

.ticket-barcode-svg rect,
.ticket-barcode-svg path,
.ticket-barcode-svg text {
  fill: var(--fonts-100) !important;
}

/* Align ticket text appropriately for absolute corner placement */
.ticket-title {
  text-align: left !important;
}
.ticket-date, .ticket-time {
  text-align: left !important;
}

@media screen and (max-width: 991px) {
  .pkg-banner__ticket-container {
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    max-width: 300px !important;
    position: absolute !important;
    margin: 0 !important;
    z-index: 10 !important;
  }
  .ticket-title, .ticket-date, .ticket-time {
    text-align: center !important; /* Center on mobile for visual balance */
  }
}

/* 02. BANNER FULL-SCREEN WITH RESTORED HIGH-FIDELITY BG IMAGE */
.pkg-banner {
  width: 100% !important;
  max-width: 100% !important;
  height: 100vh !important;
  min-height: 100vh !important;
  position: relative !important;
  padding: 0 !important;
  margin: 0 !important; /* Reset margin top */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  background-color: transparent !important;
  z-index: 1 !important;
}

.pkg-banner__bg {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  z-index: 1 !important;
  background-color: transparent !important;
  opacity: 1 !important; /* Restored full opacity for image visual clarity! */
}


/* 03. PDF VIEWER: RESPONSIVE FLEX LAYOUT (SIDE-BY-SIDE ON DESKTOP, STACKED ON MOBILE) */
.pkg-pdf-viewer {
  display: flex !important;
  flex-direction: row !important; /* Side by side on desktop */
  align-items: flex-start !important;
  padding: 8rem 4rem !important;
}

.pkg-pdf-viewer__left {
  width: 30% !important; /* 30% width on desktop */
  padding-right: 2rem !important;
  margin-bottom: 0 !important;
}

.pkg-pdf-viewer__right {
  width: 70% !important; /* 70% width on desktop */
}

.cs-pdf-wrap {
  width: 90% !important; /* Take 90% of page container on desktop */
  margin-left: 0 !important; /* Align perfectly to the left */
  margin-right: auto !important;
}

/* PDF Responsive toggle classes */
.pdf-desktop {
  display: block !important;
}
.pdf-mobile {
  display: none !important;
}

@media screen and (max-width: 991px) {
  .pkg-pdf-viewer {
    flex-direction: column !important; /* Stack vertically on tablet/mobile */
    padding: 6rem 2rem !important;
  }
  .pkg-pdf-viewer__left {
    width: 100% !important;
    padding-right: 0 !important;
    margin-bottom: 2.5rem !important;
  }
  .pkg-pdf-viewer__right {
    width: 100% !important;
  }
  .cs-pdf-wrap {
    width: 90% !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }
}

@media screen and (max-width: 767px) {
  .pkg-pdf-viewer {
    padding: 4rem 1.5rem !important;
  }
  .cs-pdf-wrap {
    width: 100% !important; /* Full width on smaller mobile screens for readability */
  }
}
/* 04. MENU DRAWER AT 90% SCREEN WIDTH (ONLY IN MOBILE/TABLET RESPONSIVE) */
@media screen and (max-width: 991px) {
  .menu__wrap-main {
    width: 90vw !important;
    max-width: 90vw !important;
  }

  .menu__wrap {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* 05. DETALLE DE SERVICIOS: PREMIUM LARGER TEXT SIZES */
.quote-header h2.u-h2 {
  font-size: clamp(42px, 6vw, 68px) !important;
  line-height: 1.05 !important;
}

.quote-client-info {
  font-size: 14px !important;
  line-height: 1.8 !important;
}

.pricing-option-card h4 {
  font-size: 22px !important;
}

.pricing-option-card p {
  font-size: 15px !important;
}

.pricing-option-card div {
  font-size: 21px !important;
}

/* Services table font size boosts */
.quote-table thead th {
  font-size: 13px !important;
  letter-spacing: 0.15em !important;
  padding: 22px 24px !important;
}

.quote-table tbody td {
  font-size: 16px !important;
  line-height: 1.6 !important;
  padding: 26px 24px !important;
}

.quote-table tbody td.td-service-name {
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
}

.quote-table tbody td.td-qty, 
.quote-table tbody td.td-price {
  font-size: 16px !important;
  font-family: 'Space Mono', monospace !important;
}

.td-desc-small {
  font-size: 13px !important;
  margin-top: 6px !important;
  opacity: 0.8 !important;
}

/* Totals block size boost */
.invoice-toggle-title {
  font-size: 16px !important;
  font-weight: 800 !important;
}

.invoice-toggle-desc {
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.promo-code-wrap div {
  font-size: 15px !important;
}

.promo-code-wrap input, 
.promo-code-wrap button {
  font-size: 14px !important;
}

.total-row {
  padding: 16px 24px !important;
}

.total-row .total-label {
  font-size: 16px !important;
}

.total-row .total-value {
  font-size: 18px !important;
}

.total-row.grand {
  padding: 20px 24px !important;
}

.total-row.grand .total-label {
  font-size: 20px !important;
  font-weight: 800 !important;
}

.total-row.grand .total-value {
  font-size: 26px !important;
  font-weight: 900 !important;
}

.billing-note {
  font-size: 14px !important;
}

/* ==========================================================================
   BANNER + TICKET: RESPONSIVE MÓVIL (CORREGIDO AL FINAL DE LA WEB PARA PREVALENCIA)
   ========================================================================== */
@media screen and (max-width: 767px) {
  /* Mostrar PDF movil y ocultar PDF desktop */
  .pdf-desktop {
    display: none !important;
  }
  .pdf-mobile {
    display: block !important;
    width: 100% !important;
    height: 550px !important; /* Altura fija ideal para scroll vertical en celulares */
    overflow-y: auto !important; /* Permitir scroll interactivo para las paginas */
    background: rgba(255, 255, 255, 0.03) !important;
    border-radius: 12px !important;
    border: 1px solid var(--lines) !important;
    padding: 16px !important;
    box-sizing: border-box !important;
    -webkit-overflow-scrolling: touch !important; /* Scroll con inercia ultra-suave en iPhone/Safari */
  }
  body.dark .pdf-mobile {
    background: rgba(0, 0, 0, 0.03) !important;
  }

  /* Textos más grandes en mobile */
  .ticket-title {
    font-size: 28px !important;
    line-height: 1.08 !important;
  }
  .ticket-date,
  .ticket-time {
    font-size: 13px !important;
  }

  /* Banner + Imagen de fondo al fondo a su tamaño correcto */
  .pkg-banner {
    /* >>> AQUÍ MODIFICAS EL TAMAÑO (ALTURA) DE LA SECCIÓN DEL BANNER EN MÓVIL <<< */
    height: 125vh !important;
    min-height: 125vh !important;
    
    position: relative !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    z-index: 1 !important;

    /* >>> AQUÍ MODIFICAS EL COLOR DE FONDO DEL BANNER EN MÓVIL (MODO OSCURO ACTIVO) <<< */
    background-color: #101010  !important;
  }

  /* >>> AQUÍ MODIFICAS EL COLOR DE FONDO DEL BANNER EN MÓVIL (MODO CLARO ACTIVO / body.dark) <<< */
  body.dark .pkg-banner {
    background-color: #ded9dd  !important;
  }
  .pkg-banner__bg {
    position: absolute !important;
    bottom: 0 !important;
    top: auto !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    
    /* >>> AQUÍ MODIFICAS EL TAMAÑO (ALTURA) DE LA IMAGEN DE FONDO DEL BANNER EN MÓVIL <<< */
    height: 75vh !important; 
    
    background-position: center bottom !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    z-index: 1 !important;

    /* >>> AQUÍ MODIFICAS LA IMAGEN DE FONDO DEL BANNER EN MÓVIL (MODO OSCURO ACTIVO) <<< */
    background-image: url('banner/mobile_banner_01.jpg') !important;
  }

  /* >>> AQUÍ MODIFICAS LA IMAGEN DE FONDO DEL BANNER EN MÓVIL (MODO CLARO ACTIVO / body.dark) <<< */
  body.dark .pkg-banner__bg {
    background-image: url('banner/mobile_banner_00.jpg') !important;
  }

  /* Ticket container al 90% posicionado exactamente debajo de header__main */
  .pkg-banner__ticket-container {
    position: absolute !important;
    left: 50% !important;
    top: 90px !important; /* Justo debajo del header__main en la parte superior */
    transform: translate(-50%, 0) !important; /* Solo traducción horizontal para evitar centrado vertical */
    width: 90% !important;
    max-width: 90% !important;
    margin: 0 !important;
    z-index: 100 !important; /* z-index superior al banner */
  }

  /* Logo (icon) posicionado en la parte inferior del banner */
  .pkg-banner__icon {
    position: absolute !important;
    top: auto !important;
    bottom: 20px !important;
    right: 20px !important;
    width: 48px !important;
    z-index: 5 !important;
  }

  /* Seccion Filosofia: texto y contenedor al 95% de ancho en celular */
  .ph-container {
    width: 95% !important;
    max-width: 95% !important;
  }
  .ph-text {
    width: 95% !important;
    max-width: 95% !important;
    margin: 0 auto !important;
    text-align: center !important;
  }

  /* Ajustes para Preajustes de Cliente en movil (evitar distorsion) */
  .pkg-parties__presets {
    border-radius: 16px !important;
    padding: 16px 20px !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 90% !important;
    max-width: 90% !important;
    margin: 40px auto 0 !important;
    text-align: center !important;
  }
  .pkg-parties__presets span {
    margin-bottom: 4px !important;
  }
  .pkg-parties__presets div {
    justify-content: center !important;
    width: 100% !important;
  }

  /* Ajustes para tabla de cotizacion en movil (Alineacion a la derecha) */
  .quote-table tbody td {
    text-align: right !important;
    padding-left: 45% !important; /* Dejar espacio para la etiqueta de la izquierda */
    position: relative !important;
  }
  .quote-table tbody td:first-child {
    text-align: right !important;
    padding-left: 45% !important;
    border-bottom: 1px dashed var(--lines) !important;
    margin-bottom: 12px !important;
  }
  .quote-table tbody td::before {
    content: attr(data-label) !important;
    position: absolute !important;
    left: 16px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    float: none !important;
    font-family: 'Space Mono', monospace !important;
    font-size: 10px !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    color: var(--fonts-50) !important;
    font-weight: 700 !important;
  }
  .quote-table tbody td:first-child::before {
    display: block !important; /* Mostrar la etiqueta Servicio en movil */
  }
}

@media screen and (max-width: 479px) {
  /* Ajustes para móviles pequeños (como el tamaño de 425px indicado) */
  .ticket-title {
    font-size: 24px !important;
  }
  .ticket-date,
  .ticket-time {
    font-size: 12px !important;
  }
  .pkg-banner {
    /* >>> AQUÍ MODIFICAS EL TAMAÑO (ALTURA) DE LA SECCIÓN DEL BANNER EN MÓVILES PEQUEÑOS <<< */
    height: 120vh !important;
    min-height: 120vh !important;

    /* >>> AQUÍ MODIFICAS EL COLOR DE FONDO DEL BANNER EN MÓVILES PEQUEÑOS (MODO OSCURO ACTIVO) <<< */
    background-color: #101010  !important;
  }

  /* >>> AQUÍ MODIFICAS EL COLOR DE FONDO DEL BANNER EN MÓVILES PEQUEÑOS (MODO CLARO ACTIVO / body.dark) <<< */
  body.dark .pkg-banner {
    background-color: #ded9dd  !important;
  }
  .pkg-banner__bg {
    /* >>> AQUÍ MODIFICAS EL TAMAÑO (ALTURA) DE LA IMAGEN DE FONDO EN MÓVILES PEQUEÑOS <<< */
    height: 90vh !important;  
    position: absolute !important;
    bottom: 0 !important;
    top: auto !important;
  }
  .pkg-banner__ticket-container {
    position: absolute !important;
    left: 50% !important;
    top: 85px !important; /* Justo debajo del header en móviles pequeños */
    transform: translate(-50%, 0) !important; /* Solo traducción horizontal */
    width: 90% !important;
    max-width: 90% !important;
    margin: 0 !important;
    z-index: 100 !important; /* z-index superior al banner */
  }
  .pkg-banner__icon {
    position: absolute !important;
    top: auto !important;
    bottom: 15px !important;
    right: 15px !important;
    width: 42px !important;
  }
}



