/* Planificador de viaje por pasos (contacto) */
.planner{ background:var(--marfil-2); border:1px solid rgba(74,64,51,0.14); border-radius:6px; padding:clamp(1.25rem,3vw,2.25rem); box-shadow:0 18px 40px -28px rgba(36,27,18,0.35); }
.planner-head{ margin-bottom:1.5rem; }
.planner-head h2{ font-size:var(--fs-h2); margin:0 0 0.35em; }
.planner-head p{ margin:0; color:var(--carbon); font-size:0.95rem; }

.planner-progress{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:0.5rem; margin:0 0 2rem; padding:0; counter-reset:step; }
.planner-progress li{ position:relative; padding-top:0.7rem; font-size:0.75rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--piedra); border-top:3px solid rgba(74,64,51,0.15); transition:color .25s ease, border-color .25s ease; }
.planner-progress li.active{ color:var(--verde-text); border-top-color:var(--ambar); }
.planner-progress li.done{ color:var(--oliva); border-top-color:var(--oliva); }
@media (max-width:520px){ .planner-progress li span{ display:none; } .planner-progress li::before{ counter-increment:step; content:counter(step); } }

.planner-step{ border:0; margin:0; padding:0; min-width:0; }
.planner.js .planner-step{ display:none; }
.planner.js .planner-step.active{ display:block; animation:plannerIn .35s ease; }
@keyframes plannerIn{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .planner.js .planner-step.active{ animation:none; } }

.planner-q{ margin:0 0 1.75rem; padding:0; border:0; min-width:0; }
.planner-q > legend, .planner-q > .q-label{ display:block; padding:0; margin-bottom:0.2rem; font-family:var(--font-display); font-size:1.2rem; font-weight:600; color:var(--verde-text); }
.planner-q .q-hint{ display:block; margin:0 0 0.9rem; font-size:0.85rem; color:var(--carbon); opacity:0.75; }

.choice-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:0.7rem; }
.choice-grid.three{ grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
@media (max-width:560px){ .choice-grid, .choice-grid.three{ grid-template-columns:1fr; } }
.contact-layout.planner-layout{ grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:clamp(1.5rem,3vw,3rem); }
@media (max-width:860px){ .contact-layout.planner-layout{ grid-template-columns:1fr; } }
.contact-layout.planner-layout .contact-info-card{ position:sticky; top:6.5rem; }
@media (max-width:860px){ .contact-layout.planner-layout .contact-info-card{ position:static; } }
.choice{ position:relative; display:block; cursor:pointer; }
.choice input{ position:absolute; opacity:0; inset:0; width:100%; height:100%; margin:0; cursor:pointer; }
.choice span{ display:flex; align-items:center; gap:0.7rem; min-height:3.2rem; padding:0.7em 1em; background:#fff; border:1.5px solid rgba(74,64,51,0.25); border-radius:var(--radius-sharp); font-size:0.95rem; font-weight:500; color:var(--carbon); transition:border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.choice span::before{ content:''; flex:0 0 1.15rem; height:1.15rem; border:1.5px solid rgba(74,64,51,0.45); border-radius:50%; background:#fff; transition:all .2s ease; }
.choice.check span::before{ border-radius:4px; }
.choice:hover span{ border-color:var(--ambar); }
.choice input:checked + span{ border-color:var(--oliva); background:var(--salvia-tint); color:var(--verde-text); box-shadow:inset 0 0 0 1px var(--oliva); }
.choice input:checked + span::before{ border-color:var(--oliva); background:var(--oliva) radial-gradient(circle,#fff 0 28%,transparent 32%); }
.choice.check input:checked + span::before{ background:var(--oliva); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-size:100%; }
.choice input:focus-visible + span{ outline:2px solid var(--oliva); outline-offset:2px; }

.planner-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:560px){ .planner-row{ grid-template-columns:1fr; } }

.stepper{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0.7rem 1rem; background:#fff; border:1.5px solid rgba(74,64,51,0.25); border-radius:var(--radius-sharp); }
.stepper .stepper-label{ font-weight:600; font-size:0.95rem; color:var(--verde-text); }
.stepper .stepper-label small{ display:block; font-weight:400; font-size:0.78rem; opacity:0.7; }
.stepper-ctrl{ display:flex; align-items:center; gap:0.9rem; }
.stepper-ctrl button{ width:2.3rem; height:2.3rem; border-radius:50%; border:1.5px solid var(--oliva); background:transparent; color:var(--oliva); font-size:1.25rem; line-height:1; cursor:pointer; transition:background .2s ease, color .2s ease; }
.stepper-ctrl button:hover:not(:disabled){ background:var(--oliva); color:var(--marfil); }
.stepper-ctrl button:disabled{ opacity:0.35; cursor:not-allowed; }
.stepper-ctrl output{ min-width:1.6rem; text-align:center; font-size:1.15rem; font-weight:700; color:var(--verde-text); }

.child-ages{ margin-top:1rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:0.8rem; }
.child-ages:empty{ display:none; }
.child-ages .field{ margin-bottom:0; }

.planner .field input[type="date"]{ min-height:3rem; }
.planner-consent{ display:flex; align-items:flex-start; gap:0.6rem; font-size:0.82rem; color:var(--carbon); margin:0.25rem 0 1.25rem; }
.planner-consent input{ margin-top:0.2rem; accent-color:var(--oliva); width:1.05rem; height:1.05rem; flex:0 0 auto; }
.planner-consent a{ color:var(--oliva); text-decoration:underline; }

.planner-error{ display:none; margin:0 0 1rem; padding:0.75em 1em; border-radius:var(--radius-sharp); background:rgba(178,58,46,0.08); color:#B23A2E; font-size:0.88rem; }
.planner-error.visible{ display:block; }

.planner-nav{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:0.5rem; }
.planner-nav .btn[hidden]{ display:none; }
.planner-nav .push{ margin-left:auto; }
.planner-trust{ margin:1.4rem 0 0; padding:1rem 0 0; border-top:1px solid rgba(74,64,51,0.14); display:flex; flex-wrap:wrap; gap:0.4rem 1.4rem; list-style:none; font-size:0.8rem; color:var(--carbon); }
.planner-trust li::before{ content:'\2713'; color:var(--oliva); font-weight:700; margin-right:0.45em; }

.planner-done{ display:none; text-align:center; padding:2rem 0.5rem; }
.planner.sent .planner-done{ display:block; }
.planner-done[hidden]{ display:none; }
.planner.sent .form-status, .planner.sent .planner-head, .planner.sent .planner-progress, .planner.sent .planner-step, .planner.sent .planner-trust, .planner.sent .planner-nav, .planner.sent .planner-error{ display:none !important; }
.planner-done h3{ font-size:var(--fs-h2); margin-bottom:0.4em; }
.planner-done p{ margin-inline:auto; max-width:46ch; }


.sr-only{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Banda "por qué nosotros" con formulario rápido (portada) */
.why-band.has-form .why-split{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.why-band.has-form .why-grid{ grid-template-columns:repeat(2,1fr); gap:2.25rem 2rem; }
.why-band.has-form .why-item{ text-align:left; }
.quote-card{ background:var(--marfil-2); color:var(--carbon); padding:clamp(1.4rem,3vw,2rem); border-radius:6px; box-shadow:0 22px 44px -26px rgba(36,27,18,0.55); }
.quote-card h3{ font-size:var(--fs-h3); margin:0 0 0.2em; color:var(--verde-text); }
.quote-card .quote-sub{ margin:0 0 1.2rem; font-size:0.88rem; color:var(--carbon); opacity:0.8; }
.quote-card label{ display:flex; flex-direction:column; gap:0.35rem; margin-bottom:0.9rem; font-size:0.8rem; font-weight:700; color:var(--verde-text); }
.quote-card select, .quote-card input{ font-family:var(--font-body); font-size:1rem; font-weight:400; padding:0.7em 0.9em; border:1.5px solid rgba(74,72,68,0.3); border-radius:var(--radius-sharp); background:#fff; color:var(--carbon); min-height:2.9rem; width:100%; }
.quote-card select:focus, .quote-card input:focus{ outline:2px solid var(--oliva); outline-offset:1px; border-color:var(--oliva); }
.quote-row{ display:grid; grid-template-columns:1fr 1fr; gap:0.9rem; }
.quote-card .btn{ width:100%; justify-content:center; margin-top:0.4rem; }
.quote-card .quote-note{ margin:0.8rem 0 0; font-size:0.78rem; text-align:center; opacity:0.75; }
@media (max-width:960px){ .why-band.has-form .why-split{ grid-template-columns:1fr; } }
@media (max-width:520px){ .why-band.has-form .why-grid{ grid-template-columns:1fr; } }

/* Sliders */
.range-q{ margin-bottom:2rem; }
.range-head{ display:grid; grid-template-columns:1fr auto 1fr; align-items:baseline; gap:0.5rem; margin:0.4rem 0 0.9rem; font-size:0.9rem; font-weight:600; color:var(--carbon); }
.range-head span:last-child{ text-align:right; }
.range-value{ font-family:var(--font-display); font-size:1.25rem; font-weight:700; color:var(--verde-text); text-align:center; }
.range-wrap{ position:relative; padding:0.4rem 0; }
.range{ -webkit-appearance:none; appearance:none; display:block; width:100%; height:10px; margin:0; border-radius:999px; cursor:pointer; --pct:50%;
  background:linear-gradient(to right,var(--oliva) 0,var(--oliva) var(--pct),rgba(74,64,51,0.2) var(--pct),rgba(74,64,51,0.2) 100%); position:relative; z-index:1; }
.range::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:30px; height:30px; border-radius:50%; background:var(--marfil-2); border:3px solid var(--oliva); box-shadow:0 3px 8px rgba(36,27,18,0.3); transition:transform .15s ease; }
.range::-moz-range-thumb{ width:24px; height:24px; border-radius:50%; background:var(--marfil-2); border:3px solid var(--oliva); box-shadow:0 3px 8px rgba(36,27,18,0.3); }
.range:hover::-webkit-slider-thumb, .range:active::-webkit-slider-thumb{ transform:scale(1.1); }
.range:focus-visible{ outline:2px solid var(--oliva); outline-offset:6px; }
.range:disabled{ cursor:not-allowed; opacity:0.4; }
.range-ticks{ position:absolute; left:15px; right:15px; top:50%; height:0; display:flex; justify-content:space-between; z-index:2; pointer-events:none; }
.range-ticks span{ width:4px; height:4px; margin-top:-2px; border-radius:50%; background:rgba(255,255,255,0.75); }
.range-q.skipped .range-ticks, .range-q.skipped .range-head span{ opacity:0.4; }
.range-skip{ display:inline-flex; align-items:center; gap:0.5rem; margin-top:0.9rem; font-size:0.85rem; color:var(--carbon); cursor:pointer; }
.range-skip input{ accent-color:var(--oliva); width:1.05rem; height:1.05rem; }

/* Deslizadores: barra más larga y clara */
.range-q{ margin-bottom:2.25rem; }
.range-head{ margin:0.6rem 0 1.1rem; font-size:0.85rem; color:var(--carbon); }
.range-value{ font-size:1.5rem; }
.range-wrap{ padding:0.7rem 0; }
.range{ height:14px; }
.range::-webkit-slider-thumb{ width:36px; height:36px; border-width:4px; }
.range::-moz-range-thumb{ width:28px; height:28px; border-width:4px; }
.range-ticks{ left:18px; right:18px; }
.range-ticks span{ width:5px; height:5px; margin-top:-2.5px; }

/* "Want to become a partner?" band just above the footer */
.partner-band{ background:#1A130D; color:var(--marfil); padding-block:clamp(2.75rem,6vw,4.5rem); border-top:3px solid var(--ambar); }
.partner-band-inner{ display:flex; align-items:center; justify-content:space-between; gap:clamp(1.5rem,4vw,3rem); flex-wrap:wrap; }
.partner-band .eyebrow{ color:#E3B382; }
.partner-band h2{ color:var(--marfil); margin:.2em 0 .4em; }
.partner-band p{ margin:0; color:rgba(243,234,214,.88); max-width:56ch; }
.partner-band .btn{ white-space:nowrap; }
@media (max-width:640px){ .partner-band .btn{ width:100%; text-align:center; } }
