/* ==========================================================================
   VIARG · Experiencias: estilos propios del cuestionario y del plan.
   El resto del diseño viene de styles.css (el mismo de tours.viarg.ar).
   ========================================================================== */

.hero__accent { color: var(--cyan-600); }
.nav__plan { display: none; }
.has-plan .nav__plan { display: inline-flex; }

/* --- Cuestionario --------------------------------------------------------- */
.quiz-sec { padding-block: 72px 88px; background: linear-gradient(180deg, var(--bg-soft) 0%, #fff 100%); scroll-margin-top: calc(var(--nav-h) + 24px); }
.quiz {
  max-width: 820px; margin: 0 auto; background: #fff; border: 1px solid var(--line); border-radius: 28px;
  box-shadow: var(--shadow-md); padding: clamp(22px, 4vw, 44px); display: grid; gap: 18px; min-height: 520px; align-content: start;
}
.quiz__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 36px; }
.quiz__step { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--cyan-700); margin-left: auto; }
.quiz__back { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--ink-2); padding: 8px 4px; }
.quiz__back .icon { transform: rotate(180deg); }
.quiz__back[hidden] { display: none; }
.quiz__bar { height: 6px; border-radius: 999px; background: var(--bg-tint); overflow: hidden; }
.quiz__bar span { display: block; height: 100%; width: 0; background: var(--grad); border-radius: inherit; transition: width .5s var(--ease); }
.quiz__fine { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13px; color: var(--ink-3); text-align: center; margin-top: 6px; }
.quiz__fine .icon { color: var(--cyan-600); flex: none; }
.quiz.is-done, .is-done .quiz { min-height: 0; }

.q-step { display: grid; gap: 8px; animation: q-in .45s var(--ease) both; }
@keyframes q-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.q-title { font-size: clamp(26px, 3.6vw, 36px); font-weight: 700; line-height: 1.15; outline: none; }
.q-sub { color: var(--ink-2); font-size: 16px; margin-bottom: 14px; }

.q-opts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.q-opt {
  display: grid; grid-template-columns: 48px 1fr 24px; align-items: center; gap: 14px; text-align: left; width: 100%;
  padding: 16px; border-radius: 18px; background: #fff; border: 1.5px solid var(--line); min-height: 80px;
  transition: border-color .2s, background-color .2s, transform .2s var(--ease), box-shadow .2s;
}
.q-opt:hover { border-color: var(--cyan); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.q-opt:active { transform: scale(.98); }
.q-opt__ico { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--bg-tint); color: var(--cyan-700); font-size: 22px; transition: background-color .2s, color .2s; }
.q-opt__txt { display: grid; gap: 2px; line-height: 1.3; }
.q-opt__txt b { font-size: 16px; font-weight: 600; }
.q-opt__txt small { font-size: 13px; color: var(--ink-3); }
.q-opt__check { width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--line); display: grid; place-items: center; color: transparent; font-size: 14px; transition: all .2s; }
.q-opt[aria-pressed="true"] { border-color: var(--cyan); background: #f2fbfe; }
.q-opt[aria-pressed="true"] .q-opt__ico { background: var(--grad); color: #fff; }
.q-opt[aria-pressed="true"] .q-opt__check { background: var(--cyan); border-color: var(--cyan); color: #fff; }
.q-next { justify-self: center; margin-top: 10px; min-width: 220px; }
.q-next:disabled { opacity: .45; pointer-events: none; box-shadow: none; }

.q-pax { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
.q-pax__btn { display: grid; place-items: center; gap: 2px; padding: 16px 4px; border-radius: 16px; border: 1.5px solid var(--line); background: #fff; font-size: 24px; font-weight: 700; transition: border-color .2s, background-color .2s, transform .2s var(--ease); }
.q-pax__btn small { font-size: 11px; font-weight: 500; color: var(--ink-3); }
.q-pax__btn:hover { border-color: var(--cyan); transform: translateY(-2px); }
.q-pax__btn[aria-pressed="true"] { border-color: var(--cyan); background: var(--grad); color: #fff; }
.q-pax__btn[aria-pressed="true"] small { color: rgba(255, 255, 255, .85); }

.q-loading { display: grid; justify-items: center; gap: 10px; padding: 70px 0; text-align: center; animation: q-in .4s var(--ease) both; }
.q-loading b { font-size: 20px; }
.q-loading small { color: var(--ink-3); }
.q-spinner { width: 46px; height: 46px; border-radius: 50%; border: 4px solid var(--bg-tint); border-top-color: var(--cyan); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.q-done { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; animation: q-in .4s var(--ease) both; }
.q-done__ico { width: 44px; height: 44px; border-radius: 50%; background: var(--grad); color: #fff; display: grid; place-items: center; font-size: 22px; }
.q-done b { display: block; font-size: 17px; }
.q-done small { color: var(--ink-3); font-size: 13px; }
.q-done__ctas { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.is-done .quiz__bar, .is-done .quiz__fine { display: none; }

/* --- Resultado ------------------------------------------------------------ */
.plan-sec { padding-block: 24px 88px; scroll-margin-top: calc(var(--nav-h) + 16px); }
.plan-hero {
  position: relative; overflow: hidden; border-radius: 32px; background: var(--petrol); color: #fff;
  padding: clamp(28px, 5vw, 60px); min-height: 340px; display: grid; align-items: end; box-shadow: var(--shadow-lg);
  animation: q-in .6s var(--ease) both;
}
.plan-hero__bg { position: absolute; inset: 0; }
.plan-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.plan-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,42,51,.95) 0%, rgba(15,42,51,.82) 45%, rgba(15,42,51,.35) 100%); }
.plan-hero__copy { position: relative; display: grid; gap: 12px; max-width: 640px; justify-items: start; }
.eyebrow--light { background: rgba(255, 255, 255, .14); color: #fff; }
.plan-hero h2 { font-size: clamp(30px, 4.6vw, 50px); font-weight: 700; line-height: 1.08; }
.plan-hero__tag { font-size: 18px; color: var(--lime); font-weight: 600; }
.plan-hero__promise { font-size: 16px; color: rgba(255, 255, 255, .86); line-height: 1.6; }
.plan-hero__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.plan-hero__chips span, .plan-hero__chips button { font-size: 13px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .18); color: #fff; display: inline-flex; align-items: center; gap: 6px; }
.plan-hero__chips button { background: transparent; text-decoration: underline; text-underline-offset: 3px; }
.plan-hero__chips button .icon { transform: rotate(180deg); }

.plan-grid { display: grid; grid-template-columns: 1fr 340px; gap: 32px; margin-top: 36px; align-items: start; }
.plan-head h3, .addons h3 { font-size: 22px; font-weight: 700; }
.plan-head p { color: var(--ink-2); font-size: 15px; margin-top: 4px; }

.days { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 14px; position: relative; }
.days::before { content: ""; position: absolute; left: 27px; top: 20px; bottom: 20px; width: 2px; background: linear-gradient(var(--cyan), var(--bg-tint)); }
.day { display: grid; grid-template-columns: 56px 1fr; gap: 16px; position: relative; animation: q-in .5s var(--ease) both; }
.day:nth-child(2) { animation-delay: .06s; } .day:nth-child(3) { animation-delay: .12s; } .day:nth-child(4) { animation-delay: .18s; } .day:nth-child(5) { animation-delay: .24s; } .day:nth-child(6) { animation-delay: .3s; }
.day__num { width: 56px; height: 56px; border-radius: 18px; background: var(--grad); color: #fff; display: grid; place-content: center; text-align: center; font-size: 22px; font-weight: 700; line-height: 1; box-shadow: var(--glow); position: relative; z-index: 1; }
.day__num small { display: block; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; opacity: .85; margin-bottom: 2px; }
.day__items { display: grid; gap: 10px; }
.day--empty p { grid-column: 1 / -1; color: var(--ink-3); padding: 16px; border: 1px dashed var(--line); border-radius: 16px; text-align: center; }

.pitem { display: grid; grid-template-columns: 150px 1fr; background: #fff; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: var(--shadow-sm); transition: box-shadow .2s, border-color .2s; }
.pitem:hover { border-color: #cfe9f1; box-shadow: var(--shadow-md); }
.pitem__media { position: relative; min-height: 120px; background: var(--petrol); display: block; }
.pitem__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pitem__art { position: absolute; inset: 0; display: grid; place-items: center; color: var(--cyan); font-size: 40px; background: radial-gradient(circle at 30% 30%, #1b4a57, var(--petrol)); }
.pitem__body { padding: 14px 16px; display: grid; gap: 4px; align-content: center; }
.pitem__when { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--cyan-700); }
.pitem h3 { font-size: 17px; font-weight: 600; line-height: 1.3; }
.pitem h3 button { text-align: left; }
.pitem h3 .t-pre { color: var(--cyan-600); }
.pitem p { font-size: 14px; color: var(--ink-2); }
.pitem__actions { display: flex; gap: 4px; margin-top: 2px; }
.pitem__actions button { font-size: 13px; font-weight: 600; padding: 8px 10px 8px 0; margin-right: 8px; color: var(--cyan-700); }
.pitem__actions [data-remove] { color: var(--ink-3); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.plan-extras { display: grid; gap: 10px; margin-top: 14px; padding-left: 72px; }
.plan-extras[hidden] { display: none; }

.worry { display: grid; grid-template-columns: 52px 1fr; gap: 16px; margin-top: 32px; padding: 22px; border-radius: 22px; background: linear-gradient(135deg, #f0fbfe 0%, #fff 60%, #fbfbe6 100%); border: 1px solid #d7eef4; }
.worry:empty { display: none; }
.worry__ico { width: 52px; height: 52px; border-radius: 16px; background: var(--petrol); color: var(--lime); display: grid; place-items: center; font-size: 24px; }
.worry h3 { font-size: 19px; font-weight: 700; margin-bottom: 8px; }
.worry ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.worry li { display: flex; gap: 8px; align-items: flex-start; font-size: 15px; color: var(--ink-2); }
.worry li .icon { color: var(--cyan-600); margin-top: 3px; flex: none; }

.addons { margin-top: 36px; display: grid; gap: 14px; }
.addons .extras { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.addons .extras__more { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.addons .extras__more[hidden] { display: none; }
.addons .extras__toggle { grid-column: 1 / -1; }

.plan-sum {
  position: sticky; top: calc(var(--nav-h) + 32px); display: grid; gap: 10px; padding: 24px; border-radius: 24px;
  background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-md);
}
.plan-sum__label { font-size: 13px; color: var(--ink-3); }
.plan-sum__total { font-size: 36px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; line-height: 1.1; }
.plan-sum__pp { font-size: 14px; color: var(--ink-2); margin-bottom: 6px; }
.plan-sum__fine { font-size: 12.5px; color: var(--ink-3); text-align: center; }
.plan-sum__perks { list-style: none; margin: 6px 0 0; padding: 14px 0 0; border-top: 1px solid var(--line); display: grid; gap: 8px; }
.plan-sum__perks li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--ink-2); }
.plan-sum__perks .icon { color: var(--cyan-600); }

/* La barra inferior solo aparece cuando ya hay plan */
body:not(.has-plan) .tripbar { transform: translate(-50%, 140%); }

@media (max-width: 900px) {
  .plan-grid { grid-template-columns: 1fr; }
  .plan-sum { position: static; order: -1; }
}
@media (max-width: 640px) {
  .quiz-sec { padding-block: 40px 56px; }
  .quiz { border-radius: 22px; padding: 20px 16px; min-height: 0; }
  .q-title { font-size: 26px; }
  .q-sub { font-size: 15px; margin-bottom: 8px; }
  .q-opts { grid-template-columns: 1fr; gap: 10px; }
  .q-opts--many { grid-template-columns: 1fr 1fr; }
  .q-opts--many .q-opt { grid-template-columns: 1fr; justify-items: start; gap: 10px; padding: 14px; min-height: 0; position: relative; }
  .q-opts--many .q-opt__ico { width: 40px; height: 40px; font-size: 19px; border-radius: 12px; }
  .q-opts--many .q-opt__check { position: absolute; top: 12px; right: 12px; }
  .q-opts--many .q-opt__txt b { font-size: 14.5px; }
  .q-opts--many .q-opt__txt small { font-size: 12px; }
  .q-opt { min-height: 72px; padding: 12px 14px; grid-template-columns: 44px 1fr 22px; gap: 12px; }
  .q-opt__ico { width: 44px; height: 44px; }
  .q-pax { grid-template-columns: repeat(4, 1fr); }
  .q-done { grid-template-columns: auto 1fr; }
  .q-done__ctas { grid-column: 1 / -1; justify-content: stretch; }
  .q-done__ctas .btn { flex: 1; }
  .plan-sec { padding-top: 8px; }
  .plan-hero { border-radius: 24px; min-height: 0; padding: 26px 20px; }
  .plan-hero__bg::after { background: linear-gradient(180deg, rgba(15,42,51,.7) 0%, rgba(15,42,51,.95) 70%); }
  .plan-hero__tag { font-size: 16px; }
  .plan-hero__promise { font-size: 15px; }
  .plan-sum { display: none; }
  .days::before { left: 21px; }
  .day { grid-template-columns: 44px 1fr; gap: 10px; }
  .day__num { width: 44px; height: 44px; border-radius: 14px; font-size: 18px; }
  .day__num small { font-size: 8.5px; }
  .pitem { grid-template-columns: 96px 1fr; border-radius: 16px; }
  .pitem__media { min-height: 112px; }
  .pitem__body { padding: 10px 12px; }
  .pitem h3 { font-size: 15px; }
  .pitem p { font-size: 13px; }
  .plan-extras { padding-left: 54px; }
  .worry { grid-template-columns: 1fr; padding: 18px; }
  .addons .extras, .addons .extras__more { grid-template-columns: 1fr; }
  .tripbar small { white-space: nowrap; }
}

/* En computadora el resumen va al costado: la barra inferior y su lugar quedan para el celular */
@media (min-width: 901px) {
  .tripbar { display: none; }
  .has-trip .fab-wa { transform: none; opacity: 1; pointer-events: auto; }
}
