/* panda-menu-refinement-20260927 */

/* Panda: navegación sin separadores duros, con jerarquía y foco visibles. */
#masthead .main-header-menu .menu-link:focus-visible,
#masthead .ast-menu-toggle:focus-visible,
#masthead .menu-toggle:focus-visible{
  outline:3px solid #276da8!important;outline-offset:2px;
}
.ast-header-break-point #ast-mobile-header .ast-mobile-header-content{
  background:#fff;border:0!important;border-radius:0 0 18px 18px;
  box-shadow:0 12px 24px rgba(31,52,74,.08);padding:6px 12px 12px;
  max-height:calc(100dvh - 172px - env(safe-area-inset-bottom,0px))!important;
  overflow-y:auto;overscroll-behavior:contain;
}
.ast-header-break-point.admin-bar #ast-mobile-header .ast-mobile-header-content{
  max-height:calc(100dvh - 218px - env(safe-area-inset-bottom,0px))!important;
}
.ast-header-break-point #ast-hf-menu-1-mobile,
.ast-header-break-point #ast-hf-menu-1-mobile .menu-item,
.ast-header-break-point #ast-hf-menu-1-mobile .menu-link,
.ast-header-break-point #ast-hf-menu-1-mobile .sub-menu{
  border:0!important;box-shadow:none;
}
.ast-header-break-point #ast-hf-menu-1-mobile{background:#fff;padding:0;}
.ast-header-break-point #ast-hf-menu-1-mobile > .menu-item{margin:2px 0;}
.ast-header-break-point #ast-hf-menu-1-mobile > .menu-item > .menu-link{
  padding:12px 58px 12px 14px;min-height:48px;line-height:24px;
  font-size:16px;font-weight:700;color:#253344;border-radius:10px;background:#fff;
}
.ast-header-break-point #ast-hf-menu-1-mobile .menu-link:hover,
.ast-header-break-point #ast-hf-menu-1-mobile .menu-link:focus-visible,
.ast-header-break-point #ast-hf-menu-1-mobile > .current-menu-item > .menu-link,
.ast-header-break-point #ast-hf-menu-1-mobile > .ast-submenu-expanded > .menu-link{
  background:#eef5fa;color:#235f90;
}
.ast-header-break-point #ast-hf-menu-1-mobile .ast-menu-toggle{
  border:0!important;right:2px;top:2px;width:44px;height:44px;
  padding:0;border-radius:10px;background:#f4f7f9;color:#46586b;line-height:44px;
}
.ast-header-break-point #ast-hf-menu-1-mobile .ast-menu-toggle[aria-expanded="true"]{
  background:#e6f0f7;color:#235f90;
}
.ast-header-break-point #ast-hf-menu-1-mobile .sub-menu{
  background:#f7f9fb;border-radius:10px;margin:2px 0 8px 12px;padding:6px;
}
.ast-header-break-point #ast-hf-menu-1-mobile .sub-menu .menu-link{
  padding:10px 40px 10px 12px;line-height:24px;min-height:44px;
  font-size:15px;font-weight:400;color:#394b5b;background:transparent;border-radius:7px;
}
.ast-header-break-point #ast-mobile-header .menu-toggle{
  width:44px;min-height:44px;padding:10px;border:0!important;border-radius:12px;
  background:#eef5fa;color:#235f90;box-shadow:none;
}
.ast-header-break-point #ast-mobile-header .menu-toggle .ast-mobile-svg{
  fill:currentColor!important;
}
body:not(.ast-header-break-point) #masthead .main-header-menu > .menu-item > .menu-link{
  border-radius:8px;
}
body:not(.ast-header-break-point) #masthead .main-header-menu .sub-menu{
  border:0!important;border-radius:12px;padding:8px;background:#fff;
  box-shadow:0 12px 30px rgba(31,52,74,.12);
}
body:not(.ast-header-break-point) #masthead .main-header-menu .sub-menu .menu-link{
  border:0!important;border-radius:7px;padding:10px 12px;line-height:1.5;
}
body:not(.ast-header-break-point) #masthead .main-header-menu .sub-menu .menu-link:hover,
body:not(.ast-header-break-point) #masthead .main-header-menu .sub-menu .menu-link:focus-visible{
  background:#eef5fa;color:#235f90;
}

/* panda-faq-refinement-20260924 */

/* Keep the FAQ quiet and readable; the approved identity stays elsewhere. */
html body #page .elementor-25103 :is(.elementor-element-phband21,.elementor-element-phfaq24){display:none!important;}
html body #page #content .pl #dudas{padding-block:56px!important;}
html body #page #content .pl #dudas::before{display:none!important;}
html body #page #content .pl #dudas .faq{gap:20px!important;}
html body #page #content .pl #dudas .cinta{display:inline-block!important;padding:0!important;margin:0!important;background:none!important;box-shadow:none!important;border:0!important;border-radius:0!important;color:#666!important;font-size:14px!important;font-weight:400!important;line-height:1.5!important;letter-spacing:0!important;}
html body #page #content .pl #dudas .cinta::before,
html body #page #content .pl #dudas .cinta::after{display:none!important;content:none!important;}
html body #page #content .pl #dudas h2{margin-top:10px!important;color:#242424!important;font-size:24px!important;font-weight:600!important;line-height:1.3!important;letter-spacing:0!important;}
html body #page #content .pl #dudas .sub{margin-top:12px!important;font-size:16px!important;line-height:1.6!important;}
html body #page #content .pl #dudas details{margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:none!important;}
html body #page #content .pl #dudas summary{box-sizing:border-box!important;min-height:44px!important;padding:7px 0!important;margin:0!important;border:0!important;box-shadow:none!important;background:none!important;color:#242424!important;font-size:16.5px!important;font-weight:400!important;line-height:1.5!important;letter-spacing:0!important;}
html body #page #content .pl #dudas summary::after{color:#767676!important;font-size:22px!important;font-weight:400!important;line-height:1!important;}
html body #page #content .pl #dudas .faq-answer,
html body #page #content .pl #dudas .faq-answer p,
html body #page #content .pl #dudas .faq-answer li{font-size:16px!important;font-weight:400!important;line-height:1.6!important;}
html body #page #content .pl #dudas .faq-answer{padding:0 0 12px!important;}
html body #page #content .pl #dudas .faq-answer > :first-child{margin-top:4px!important;}
html body #page #content .pl #dudas .faq-answer > :last-child{margin-bottom:0!important;}
html body #page #content .pl #dudas .btn-ghost,
html body #page #content .pl #dudas .btn-ghost:is(:link,:visited,:hover,:active,:focus,:focus-visible){background:none!important;border:0!important;box-shadow:none!important;color:#242424!important;font-size:16px!important;font-weight:400!important;line-height:1.5!important;text-decoration:underline!important;text-underline-offset:3px!important;padding:0!important;min-height:44px!important;transform:none!important;transition:none!important;}
html body #page #content .pl #dudas .btn-ghost svg{width:20px!important;height:20px!important;flex:0 0 20px!important;color:#128c4a!important;fill:currentColor!important;transform:none!important;}
html body #page #content .pl #dudas :is(summary,a,button,input,select,textarea):focus-visible{outline:2px solid #4054B2!important;outline-offset:3px!important;}
@media(max-width:700px){
html body #page #content .pl #dudas{padding-block:48px!important;}
html body #page #content .pl #dudas h2{font-size:22px!important;}
}

/* panda-final-refinements-20260924 */

/* Panda: three scoped refinements. No tariff, hierarchy, media or content changes. */

/* 1. Personalisation belongs visually to the Basic card, rather than a second banner. */
html body .pl #packs .packs > .pack.destacado > .regalo {
  margin: 16px 0 0;
  padding: 12px 14px;
  border: 1px solid #dce2f3;
  border-radius: 14px;
  background: #f4f6fe;
  color: #35468f;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  text-align: left;
  box-shadow: none;
}

/* Existing second occurrence below the celebration cards: same quiet treatment. */
html body .pl #celebraciones > .wrap > .nota-precio {
  max-width: 850px;
  margin: 18px auto 0;
  padding: 12px 14px;
  border: 1px solid #dce2f3;
  border-radius: 14px;
  background: #f4f6fe;
  color: #35468f;
  font-size: 15px;
  font-weight: 700 !important;
  line-height: 1.5;
  text-align: left !important;
}

/* 2. The blue conversion card lives in reviews, not in the final coral section. */
html body .pl #opiniones .op:has(> a.btn-wa) {
  min-width: 0;
  align-items: stretch !important;
  justify-content: center !important;
  text-align: left;
  gap: 14px;
}
html body .pl #opiniones .op:has(> a.btn-wa) > h3 {
  max-width: 100%;
  margin: 0;
  line-height: 1.25;
  overflow-wrap: break-word;
}
html body .pl #opiniones .op:has(> a.btn-wa) > p {
  flex: 0 0 auto;
  max-width: 100%;
  margin: 0;
}
html body .pl #opiniones .op > a.btn-wa {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 48px;
  margin: 4px 0 0 !important;
  padding: 14px 16px;
  border-radius: 14px;
  gap: 8px;
  font-size: 1rem;
  line-height: 1.35;
  white-space: normal;
  text-align: center;
}

/* 3. Low Cost: white card, green outline, calm tag, WhatsApp action.
   All inspected non-highlighted .packs children are Low Cost. Basic keeps
   its wider desktop column, recommended tag, blue outline and stronger shadow. */
html body .pl #packs .packs > .pack:not(.destacado) {
  border: 2px solid #25d366;
  border-radius: 24px;
  background: #fff;
  box-shadow: none;
}
html body .pl #packs .packs > .pack:not(.destacado) > .tag {
  background: #eaf8ef;
  color: #276340;
}
html body .pl #packs .packs > .pack:not(.destacado) .pack-cab h3,
html body .pl #packs .packs > .pack:not(.destacado) .precio {
  color: #276340;
}
html body .pl #packs .packs > .pack:not(.destacado) > a.btn,
html body .pl #packs .packs > .pack:not(.destacado) > a.btn:hover,
html body .pl #packs .packs > .pack:not(.destacado) > a.btn:focus,
html body .pl #packs .packs > .pack:not(.destacado) > a.btn:active {
  background: #25d366;
  color: #fff;
  border-color: #25d366;
  border-radius: 14px;
  box-shadow: none;
  transform: none;
}
html body .pl #packs .packs > .pack:not(.destacado) > a.btn svg {
  color: #fff;
  fill: currentColor;
}

/* Fourth refinement: the existing Astra header remains visible during scroll.
   Scoped to commercial pages. No fixed-position duplicate or spacer is added. */
body:has(.pl) {
  --panda-header-admin-offset: 0px;
}
body.admin-bar:has(.pl) {
  --panda-header-admin-offset: 32px;
}
body:has(.pl) #page > #masthead {
  position: sticky;
  top: var(--panda-header-admin-offset);
  z-index: 1000;
  width: 100%;
  background: #fff;
}

/* Keep anchored section headings visible beneath the measured sticky header. */
html body:has(.pl) #page #content .pl section[id] {
  scroll-margin-top: calc(220px + var(--panda-header-admin-offset));
}
@media (max-width: 921px) {
  html body:has(.pl) #page #content .pl section[id] {
    scroll-margin-top: calc(120px + var(--panda-header-admin-offset));
  }
}

/* BODY hidden/auto was confirmed in live DOM and prevents native sticky.
   clip preserves horizontal clipping without creating a scrolling ancestor. */
@supports (overflow: clip) {
  body:has(.pl) {
    overflow-x: clip !important;
    overflow-y: visible !important;
  }
}

body:has(.pl) #masthead #ast-mobile-header .ast-primary-header-bar {
  min-height: 72px;
  padding-top: 8px;
  padding-bottom: 8px;
  background: #fff;
}
body:has(.pl) #masthead #ast-mobile-header .site-logo-img img.custom-logo {
  display: block;
  width: 160px;
  max-width: 100%;
  height: auto;
  max-height: 57px;
  object-fit: contain;
}
body:has(.pl) #masthead #ast-mobile-header .menu-toggle {
  min-width: 44px;
  min-height: 44px;
}
body:has(.pl) #masthead #ast-mobile-header .ast-mobile-header-content {
  max-height: calc(100vh - 160px - var(--panda-header-admin-offset));
  max-height: calc(100dvh - 160px - var(--panda-header-admin-offset) - env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fff;
}

/* WordPress toolbar is fixed at 46px only from 601 to 782px. At <=600px
   it is absolute and scrolls away; keeping a 46px sticky offset leaves a gap. */
@media (min-width: 601px) and (max-width: 782px) {
  body.admin-bar:has(.pl) { --panda-header-admin-offset: 46px; }
}
@media (max-width: 600px) {
  body.admin-bar:has(.pl) { --panda-header-admin-offset: 0px; }
}

/* The HTML widget only carries CSS, so it must not add a footer gap. */
html body #page .elementor-25103 .elementor-element-phfine25{display:none!important;}

