/* Luna Llena Travel — ronda 2: viajeros, pago estilo Stripe y página Nosotros */
/* ---------- Adultos y menores ---------- */
.travelers { display: grid; gap: 12px; }
.field label small { font-weight: 400; opacity: .7; margin-left: 4px; }
.ages { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.ages:empty { display: none; }
.ages__note { grid-column: 1 / -1; margin: 0; font-size: .8rem; color: inherit; opacity: .75; }
.ages__warn { margin: 0; }
.price-block .field select { background: #fff; }

/* ---------- Pago simulado estilo Stripe ---------- */
.sp { --sp-line: #E0E0E6; --sp-text: #30313D; --sp-muted: #6D6E78; --sp-focus: rgba(255, 122, 0, .28);
  display: grid; gap: 14px; padding: 20px; background: #fff; border: 1px solid var(--sp-line); border-radius: 8px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Ubuntu, sans-serif; color: var(--sp-text); }
.sp__demo { margin: 0; padding: 10px 12px; font-size: .82rem; line-height: 1.45; background: var(--warn-bg); border: 1px solid var(--warn-line); border-radius: 6px; }
.sp__fill { font: inherit; font-weight: 600; padding: 0 4px; border: 0; border-bottom: 1px dashed currentColor; background: none; color: var(--orange-ink); cursor: pointer; }
.sp__express { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.sp__x { display: flex; align-items: center; justify-content: center; gap: 4px; min-height: 46px; border: 0; border-radius: 6px; font: 500 1.02rem/1 inherit; font-family: inherit; cursor: pointer; transition: filter .15s; }
.sp__x:hover { filter: brightness(1.12); }
.sp__x:focus-visible { outline: 3px solid var(--sp-focus); outline-offset: 2px; }
.sp__x svg { width: 20px; height: 20px; }
.sp__x--apple, .sp__x--google { background: #000; color: #fff; }
.sp__x--link { background: #00D66F; color: #011E0F; font-size: .95rem; }
.sp__x--link b { font-weight: 800; letter-spacing: -.02em; }
.sp__link-dot { width: 14px; height: 14px; border-radius: 50%; background: #011E0F; margin-right: 4px; }
.sp__x--paypal { background: #FFC439; font-size: 1.15rem; }
.sp__or { display: flex; align-items: center; gap: 12px; font-size: .82rem; color: var(--sp-muted); }
.sp__or::before, .sp__or::after { content: ""; flex: 1; height: 1px; background: var(--sp-line); }
.sp__field { display: grid; gap: 6px; }
.sp__field[hidden] { display: none !important; }
.sp__field label { font-size: .85rem; font-weight: 400; color: var(--sp-text); }
.sp__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sp__input { position: relative; display: flex; align-items: center; background: #fff; border: 1px solid var(--sp-line); border-radius: 6px;
  box-shadow: 0 1px 1px rgba(0, 0, 0, .03), 0 3px 6px rgba(0, 0, 0, .02); transition: border-color .15s, box-shadow .15s; }
.sp__input:focus-within { border-color: var(--orange); box-shadow: 0 0 0 3px var(--sp-focus); }
.sp__input.is-invalid { border-color: #DF1B41; box-shadow: 0 0 0 1px #DF1B41; }
.sp__input input, .sp__input select { flex: 1; min-width: 0; min-height: 44px; padding: 10px 12px; border: 0; border-radius: 6px; background: transparent; font: 400 1rem/1.2 inherit; font-family: inherit; color: var(--sp-text); }
.sp__input input:focus, .sp__input select:focus { outline: none; }
.sp__input input::placeholder { color: #A3A4AD; }
.sp__brands { display: flex; gap: 4px; padding-right: 10px; }
.sp__brand { display: grid; place-items: center; width: 32px; height: 20px; border-radius: 3px; font: 800 .5rem/1 Arial, sans-serif; letter-spacing: .02em; transition: opacity .15s; }
.sp__brand--visa { background: #1A1F71; color: #fff; font-style: italic; font-size: .58rem; }
.sp__brand--mc { position: relative; background: #252525; }
.sp__brand--mc i { position: absolute; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: #EB001B; left: 6px; }
.sp__brand--mc i + i { left: 13px; background: #F79E1B; opacity: .9; }
.sp__brand--amex { background: #2E77BC; color: #fff; }
.sp__brands[data-brand="visa"] .sp__brand:not(.sp__brand--visa),
.sp__brands[data-brand="mc"] .sp__brand:not(.sp__brand--mc),
.sp__brands[data-brand="amex"] .sp__brand:not(.sp__brand--amex) { opacity: .15; }
.sp__cvc-ic { width: 24px; height: 16px; margin-right: 12px; color: #A3A4AD; }
.sp__err { margin: 0; font-size: .88rem; color: #DF1B41; }
.sp__legal { margin: 0; font-size: .78rem; line-height: 1.5; color: var(--sp-muted); }
.sp__stripe { font: 800 1rem/1 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: -.04em; color: #635BFF; }
.spin { display: inline-block; width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 520px) { .sp { padding: 14px; } .sp__express { grid-template-columns: 1fr; } }

/* ---------- Nosotros ---------- */
em.pending { font-style: normal; }
.ab-hero { padding-bottom: 40px; }
.ab-hero__in { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(28px, 5vw, 64px); align-items: center; }
.ab-hero h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); margin: 14px 0 18px; }
.ab-hero__img { margin: 0; }
.ab-hero__img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 20px; }
.ab-hero__img figcaption { font-size: .8rem; color: var(--muted); margin-top: 8px; }
.ab-toc { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.ab-toc a { padding: 8px 14px; font-size: .82rem; text-decoration: none; border: 1px solid var(--line); border-radius: 999px; transition: border-color .15s, color .15s; }
.ab-toc a:hover { border-color: var(--orange); color: var(--orange-ink); }
.ab-stats { display: grid; grid-template-columns: repeat(6, 1fr); border-block: 1px solid var(--line); }
.ab-stats > div { display: grid; gap: 6px; align-content: start; padding: 26px 16px; border-left: 1px solid var(--line); }
.ab-stats > div:first-child { border-left: 0; padding-left: 0; }
.ab-stats b { font: 300 clamp(2rem, 4vw, 3rem)/1 var(--font-head); color: var(--ink); }
.ab-stats b.is-pending { color: var(--muted); }
.ab-stats span { font-size: .85rem; color: var(--muted); }
.ab-split { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(28px, 5vw, 72px); align-items: start; }
.ab-milestones { list-style: none; margin: 0; padding: 0 0 0 22px; border-left: 1px solid var(--line); display: grid; gap: 22px; }
.ab-milestones li { position: relative; display: grid; gap: 4px; }
.ab-milestones li::before { content: ""; position: absolute; left: -28px; top: 6px; width: 11px; height: 11px; border-radius: 50%; background: var(--orange); }
.ab-milestones b { font: 500 .8rem/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--orange-ink); }
.ab-founders { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 48px; }
.ab-team { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ab-person { display: grid; gap: 14px; align-content: start; }
.ab-person--lg { grid-template-columns: 200px 1fr; gap: 22px; padding: 22px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.ab-person__ph { display: grid; place-items: center; aspect-ratio: 4/5; padding: 12px; text-align: center; font-size: .8rem; color: var(--muted); background: var(--orange-soft); border: 1px dashed var(--line); border-radius: 12px; }
.ab-person b { display: block; font: 500 1.1rem/1.3 var(--font-head); }
.ab-person small { display: block; font-size: .8rem; color: var(--orange-ink); margin-top: 2px; }
.ab-person p { margin: 8px 0 0; font-size: .9rem; color: var(--muted); }
.ab-guides { display: grid; gap: 14px; }
.ab-check, .ab-partner, .ab-legal__item { display: grid; gap: 6px; padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: 14px; }
.ab-check { grid-template-columns: 28px 1fr; gap: 14px; }
.ab-check svg, .ab-partner svg, .ab-legal__item svg, .ab-pillars svg { width: 24px; height: 24px; color: var(--orange-ink); }
.ab-check b, .ab-partner b, .ab-legal__item b { display: block; font-weight: 600; }
.ab-check span, .ab-partner span, .ab-legal__item span { font-size: .9rem; color: var(--muted); }
.ab-offices { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ab-office { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.ab-office__map { aspect-ratio: 16/9; background: var(--orange-soft); }
.ab-office__map iframe { width: 100%; height: 100%; border: 0; display: block; }
.ab-office__body { display: grid; gap: 6px; padding: 22px; }
.ab-office__body h3 { margin: 0 0 4px; }
.ab-office__body p { margin: 0; color: var(--muted); }
.ab-office__body .btn { justify-self: start; margin-top: 10px; }
.ab-legal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ab-ratings { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ab-rating { display: grid; gap: 6px; padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: 14px; }
.ab-rating__n { font: 300 2.6rem/1 var(--font-head); color: var(--muted); }
.ab-rating__n svg { width: 36px; height: 36px; color: var(--orange-ink); }
.ab-rating__stars { color: var(--orange); letter-spacing: 2px; }
.ab-rating small { font-size: .85rem; color: var(--muted); }
.reviews .review:not(:has(.review__photo)) { padding-top: 24px; }
.ab-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, minmax(160px, 1fr)); gap: 14px; }
.ab-gallery figure { margin: 0; overflow: hidden; border-radius: 14px; }
.ab-gallery figure:first-child { grid-row: span 2; }
.ab-gallery img { width: 100%; height: 100%; object-fit: cover; }
.ab-gallery__ph { display: grid; place-items: center; text-align: center; font-size: .85rem; color: var(--muted); background: var(--orange-soft); border: 1px dashed var(--line); }
.ab-gallery figure:nth-child(2) { grid-column: span 2; }
.ab-pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ab-pillars .card { padding: 24px; }
.ab-pillars h3 { margin: 12px 0 8px; font-size: 1.1rem; }
.ab-pillars p { margin: 0; font-size: .92rem; color: var(--muted); }
#faq .section-head .btn { margin-top: 20px; }
.ab-partners { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ab-blog { display: block; margin-top: 20px; padding: 28px; background: var(--ink); color: var(--bg); border-radius: 16px; }
.ab-blog h3 { margin: 10px 0 6px; font-size: 1.6rem; }
.ab-blog p { margin: 0; opacity: .8; }
@media (max-width: 1000px) {
  .ab-hero__in, .ab-split, .ab-founders { grid-template-columns: 1fr; }
  .ab-stats { grid-template-columns: repeat(3, 1fr); }
  .ab-stats > div:nth-child(4) { border-left: 0; padding-left: 0; }
  .ab-team, .ab-pillars, .ab-partners { grid-template-columns: repeat(2, 1fr); }
  .ab-legal, .ab-ratings { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .ab-stats { grid-template-columns: 1fr 1fr; }
  .ab-stats > div { border-left: 0; padding-left: 0; }
  .ab-offices, .ab-legal, .ab-ratings, .ab-team, .ab-pillars, .ab-partners { grid-template-columns: 1fr; }
  .ab-person--lg { grid-template-columns: 1fr; }
  .ab-person--lg .ab-person__ph { aspect-ratio: 3/2; }
  .ab-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .ab-gallery figure:first-child, .ab-gallery figure:nth-child(2) { grid-row: auto; grid-column: 1 / -1; aspect-ratio: 4/3; }
  .ab-gallery__ph { aspect-ratio: 1; }
}

/* Premium: Nosotros y pago con las mismas esquinas rectas */
[data-theme="premium"] :is(.ab-hero__img img, .ab-person--lg, .ab-person__ph, .ab-check, .ab-partner, .ab-legal__item, .ab-office, .ab-rating, .ab-gallery figure, .ab-blog) { border-radius: 2px !important; }
[data-theme="premium"] :is(.ab-person--lg, .ab-check, .ab-partner, .ab-legal__item, .ab-office, .ab-rating) { background: #FBF8F3; }
[data-theme="premium"] .ab-hero h1 { font-weight: 300; }

/* ---------- Redes sociales ---------- */
.social { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 20px; }
.social__a { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid currentColor; border-radius: 50%; opacity: .9; transition: color .15s, border-color .15s; }
.social__a svg { width: 19px; height: 19px; }
a.social__a:hover { color: var(--orange); }
.social__a.is-pending { opacity: .35; border-style: dashed; }
.social .pending { margin: 0; }
a.source-chip { text-decoration: none; }
a.source-chip svg { width: 18px; height: 18px; }
a.ab-rating { text-decoration: none; color: inherit; transition: border-color .15s; }
a.ab-rating:hover { border-color: var(--orange); }
.ab-social { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; margin-top: 20px; padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.ab-social h3 { margin: 0 0 4px; }
.ab-social p { margin: 0; color: var(--muted); }
.ab-social .social { margin-top: 0; }
[data-theme="premium"] .ab-social { background: #FBF8F3; border-radius: 2px; }
