/* Diseño adaptable de la página pública de Mingorría 2027. */
.camp-mingorria-2027 .mobile-camp-only { display: none !important; }

.camp-mingorria-2027 .camp-included-title {
  display: flex; align-items: center; gap: 8px; min-height: 32px;
}
.camp-mingorria-2027 .camp-included-icon {
  display: grid; place-items: center; flex: 0 0 32px; height: 32px;
  border-radius: 9px; background: #e2f4ef; color: #15584c;
}
.camp-mingorria-2027 .camp-included-icon svg { width: 22px; height: 22px; }
.camp-mingorria-2027 .included-item:nth-child(2) .camp-included-icon { background: #fff0cf; color: #76510e; }
.camp-mingorria-2027 .included-item:nth-child(3) .camp-included-icon { background: #f9e9e0; color: #8b4733; }
.camp-mingorria-2027 .included-item:nth-child(4) .camp-included-icon { background: #e1f0fb; color: #255d84; }
.camp-mingorria-2027 .included-item:nth-child(5) .camp-included-icon { background: #ede9fb; color: #563c80; }
.camp-mingorria-2027 .camp-activities-link { margin-top: 14px; }
.camp-mingorria-2027 .feature-photo img.camp-feature-archive {
  display: block; height: auto; aspect-ratio: auto;
}
.camp-mingorria-2027 .gallery-grid img.camp-gallery-dining-photo { object-fit: cover; }

@media (max-width: 640px) {
  body.camp-mingorria-2027 { --camp-ink: #173c40; --camp-teal: #17616a; --camp-paper: #f6fbfa; }
  .camp-mingorria-2027 .mobile-camp-only { display: revert !important; }
  .camp-mingorria-2027 .mobile-camp-hide,
  .camp-mingorria-2027 .public-seasonal-decor,
  .camp-mingorria-2027 .public-whatsapp-floating { display: none !important; }
  .camp-mingorria-2027 .public-topbar { display: none; }
  .camp-mingorria-2027 .public-header-inner {
    width: calc(100% - 24px); min-height: 62px; padding: 6px 0; gap: 8px;
  }
  .camp-mingorria-2027 .public-header-inner .public-logo { min-width: 0; flex: 1 1 100px; }
  .camp-mingorria-2027 .public-header-inner .public-logo img { width: 120px; max-width: 100%; max-height: 45px; }
  .camp-mingorria-2027 .public-header-inner .public-login { min-height: 44px; font-size: .84rem; padding: 0 9px; }
  .camp-mingorria-2027 .public-menu-toggle { width: 44px; height: 44px; flex: 0 0 44px; }
  .camp-mingorria-2027 main > section[id], .camp-mingorria-2027 #precios-mingorria { scroll-margin-top: 79px; }
  .camp-mingorria-2027 .edition-hero {
    display: block; min-height: 0; background: #113b42 !important; overflow: clip;
  }
  .camp-mingorria-2027 .edition-hero::before { content: none; }
  .camp-mingorria-2027 .edition-hero::after { height: 4px; }
  .camp-mingorria-2027 .camp-hero-photo {
    height: clamp(170px, 55vw, 300px);
    background:
      linear-gradient(180deg, transparent 70%, rgba(17,59,66,.22) 88%, #113b42 100%),
      var(--camp-hero) 50% 60% / cover no-repeat;
  }
  .camp-mingorria-2027 .edition-hero-grid {
    width: min(100% - 32px, 480px); padding: 8px 0 25px; display: block;
  }
  .camp-mingorria-2027 .edition-hero .edition-kicker {
    min-height: 28px; padding: 3px 10px; background: #ffe180; color: #263c39;
    font-size: .75rem; text-transform: none; letter-spacing: 0;
  }
  .camp-mingorria-2027 .edition-hero h1 {
    margin: 10px 0 9px; font-size: clamp(2rem, 8.7vw, 3.25rem);
    line-height: 1.02; letter-spacing: -.032em; overflow-wrap: normal; text-wrap: balance;
  }
  .camp-mingorria-2027 .edition-hero h1::after { display: none; }
  .camp-mingorria-2027 .camp-hero-overline {
    display: block; margin-bottom: 5px; color: #e3f4f3; font-size: .52em;
    line-height: 1.2; letter-spacing: 0; font-weight: 800;
  }
  .camp-mingorria-2027 .camp-hero-name { display: block; }
  .camp-mingorria-2027 .hero-line { margin: 0 0 14px; color: #f3fffc; font-size: 1rem; }
  .camp-mingorria-2027 .hero-chips { display: grid; gap: 5px 12px; margin-bottom: 16px; }
  .camp-mingorria-2027 .hero-chip {
    display: inline-flex; min-height: 0; width: fit-content; padding: 0;
    background: none; border-radius: 0; color: #edfafa; font-size: .9rem; font-weight: 650; line-height: 1.3;
  }
  .camp-mingorria-2027 .hero-chip:first-child { color: #ffe899; font-weight: 850; }
  .camp-mingorria-2027 .hero-actions { display: block; }
  .camp-mingorria-2027 .hero-actions .public-button.primary,
  .camp-mingorria-2027 .camp-mobile-action a {
    width: 100%; min-height: 49px; border: 1px solid #ffe180; border-radius: 12px;
    background: #ffe180; color: #173c40; font-size: 1rem; font-weight: 900; box-shadow: none;
  }
  .camp-mingorria-2027 .camp-mobile-nav {
    background: #eef7f5; border-bottom: 1px solid #d7e8e5; padding: 12px 0;
  }
  .camp-mingorria-2027 .camp-mobile-nav-inner {
    width: min(100% - 28px, 560px); margin: auto; display: grid; gap: 7px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .camp-mingorria-2027 .camp-mobile-nav a {
    display: flex; align-items: center; justify-content: space-between; gap: 5px;
    min-height: 44px; border: 1px solid #d1e5e1; border-radius: 9px; padding: 6px 10px;
    background: #fff; color: var(--camp-ink); font-size: .89rem; font-weight: 780; line-height: 1.2;
  }
  .camp-mingorria-2027 .edition-section { padding: 27px 0; }
  .camp-mingorria-2027 .edition-section h2 {
    margin: 0 0 14px; font-size: clamp(1.37rem, 6vw, 1.85rem); line-height: 1.14; text-align: left;
  }
  .camp-mingorria-2027 .edition-section h2::before,
  .camp-mingorria-2027 .edition-section h2::after { display: none; }
  .camp-mingorria-2027 .edition-section .lead { margin: 0 0 14px; text-align: left; font-size: 1rem; line-height: 1.48; }
  .camp-mingorria-2027 .public-page-inner { width: min(100% - 28px, 560px); }
  .camp-mingorria-2027 #info-practica .day-flow,
  .camp-mingorria-2027 #dia-campamento .day-flow,
  .camp-mingorria-2027 .included-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 10px 0 0;
  }
  .camp-mingorria-2027 .day-step,
  .camp-mingorria-2027 .included-item,
  .camp-mingorria-2027 .trust-card {
    padding: 11px; border-radius: 10px; box-shadow: none; min-width: 0;
  }
  .camp-mingorria-2027 .day-step > span { display: none; }
  .camp-mingorria-2027 .day-step > strong,
  .camp-mingorria-2027 .camp-included-title > strong,
  .camp-mingorria-2027 .trust-card > strong { margin: 0; font-size: .93rem; line-height: 1.25; }
  .camp-mingorria-2027 .day-step > p,
  .camp-mingorria-2027 .included-item > p,
  .camp-mingorria-2027 .trust-card > p { margin: 4px 0 0; font-size: .88rem; line-height: 1.36; }
  .camp-mingorria-2027 #incluido-campamento .included-item:last-child:nth-child(odd) { grid-column: span 2; }
  .camp-mingorria-2027 #precios-mingorria { margin: 24px 0 12px; font-size: 1.42rem; }
  .camp-mingorria-2027 #info-practica p { overflow-wrap: break-word; }
  .camp-mingorria-2027 #info-practica h4 { margin: 18px 0 8px; font-size: 1.04rem; }
  .camp-mingorria-2027 .camp-mobile-price {
    border: 1px solid #d2e8e3; border-radius: 14px; padding: 14px;
    background: #fff; color: var(--camp-ink);
  }
  .camp-mingorria-2027 .camp-mobile-price > div { display: grid; gap: 3px; line-height: 1.25; }
  .camp-mingorria-2027 .camp-mobile-price > div + div {
    margin-top: 11px; padding: 10px; border-radius: 9px; background: #fff0b7;
  }
  .camp-mingorria-2027 .camp-mobile-price strong { font-size: 1.34rem; }
  .camp-mingorria-2027 .camp-mobile-price small { font-size: .85rem; }
  .camp-mingorria-2027 .camp-payment-note { margin: 9px 0 0; font-size: .9rem; line-height: 1.45; }
  .camp-mingorria-2027 .camp-discounts { grid-template-columns: 1fr; gap: 6px; margin: 8px 0 12px; }
  .camp-mingorria-2027 .camp-discounts li {
    grid-template-columns: auto minmax(0, 1fr); justify-items: stretch; gap: 3px 10px;
    padding: 9px 10px; border-radius: 9px; line-height: 1.3;
  }
  .camp-mingorria-2027 .camp-discounts li b {
    grid-row: span 2; align-self: center; padding: 7px; border-radius: 7px;
    background: #ffe390; font-size: 1rem; white-space: nowrap;
  }
  .camp-mingorria-2027 .camp-discounts li span { font-size: .86rem; }
  .camp-mingorria-2027 .edition-installments { margin: 12px 0 14px; padding: 12px; }
  .camp-mingorria-2027 #info-practica .edition-installments h4 { margin: 0 0 6px; }
  .camp-mingorria-2027 .edition-installments ul {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 9px;
  }
  .camp-mingorria-2027 .edition-installments li { padding: 8px; line-height: 1.25; }
  .camp-mingorria-2027 .edition-installments li strong { font-size: 1.06rem; }
  .camp-mingorria-2027 .edition-installments li small { font-size: .79rem; }
  .camp-mingorria-2027 .camp-conditions summary { min-height: 46px; padding: 11px 12px; }
  .camp-mingorria-2027 .camp-conditions p { padding: 0 12px 11px; }
  .camp-mingorria-2027 .gallery-grid {
    display: grid; grid-auto-columns: 100%; grid-template-columns: none; grid-auto-flow: column;
    gap: 9px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain; scrollbar-width: none; margin: 0; padding: 0;
  }
  .camp-mingorria-2027 .gallery-grid::-webkit-scrollbar { display: none; }
  .camp-mingorria-2027 .gallery-grid:focus-visible { outline: 2px solid #17616a; outline-offset: 3px; }
  .camp-mingorria-2027 .gallery-grid figure {
    scroll-snap-align: start; min-width: 0; margin: 0; box-shadow: none;
    border: 1px solid #dce8e5; border-radius: 12px; overflow: hidden;
  }
  .camp-mingorria-2027 .gallery-grid img {
    width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; object-position: center;
    transform: none !important;
  }
  .camp-mingorria-2027 .gallery-grid figcaption { padding: 9px 10px; }
  .camp-mingorria-2027 .camp-gallery-count {
    margin: 9px 0 0; text-align: center; color: var(--camp-ink); font-size: .9rem; font-weight: 750;
  }
  .camp-mingorria-2027 .experience-grid,
  .camp-mingorria-2027 .split-section,
  .camp-mingorria-2027 .place-grid { gap: 12px; }
  .camp-mingorria-2027 .split-copy, .camp-mingorria-2027 .place-copy { order: -1; }
  .camp-mingorria-2027 .place-copy { padding: 13px; }
  .camp-mingorria-2027 .place-grid img { min-height: 0; }
  .camp-mingorria-2027 .final-cta h2 { text-align: center; }
  .camp-mingorria-2027 .public-footer { padding-bottom: calc(85px + env(safe-area-inset-bottom, 0px)); }
  .camp-mingorria-2027 .camp-mobile-action:not([hidden]) {
    position: fixed; z-index: 30; display: grid !important; inset: auto 0 0;
    border-top: 1px solid #c6dfdc; background: #f8fdfa;
    padding: 7px max(14px, env(safe-area-inset-right, 0px)) calc(7px + env(safe-area-inset-bottom, 0px)) max(14px, env(safe-area-inset-left, 0px));
  }
  .camp-mingorria-2027 .camp-mobile-action[hidden] { display: none !important; }
  .camp-mingorria-2027 .camp-mobile-action a { display: flex; align-items: center; justify-content: center; }
}
@media (max-width: 640px) and (prefers-reduced-motion: no-preference) {
  .camp-mingorria-2027 .gallery-grid.camp-gallery-peek > figure {
    animation: camp-gallery-invite 2.4s ease-in-out both;
  }
}
@keyframes camp-gallery-invite {
  0%, 100% { transform: translateX(0); }
  26%, 72% { transform: translateX(clamp(-108px, -24vw, -64px)); }
}
@media (max-width: 640px) and (prefers-reduced-motion: reduce) {
  .camp-mingorria-2027 .gallery-grid { grid-auto-columns: calc(100% - 27px); }
}
@media (prefers-reduced-motion: reduce) {
  .camp-mingorria-2027 * { scroll-behavior: auto !important; }
}
