/* ==========================================================================
   Ichy Car Rental — Reservador (booking.css)
   Se apoya en los design tokens del sitio (uploads/ichy/ichy-styles.css,
   scoped a #ichy-page) y define fallbacks por si esa hoja no está.
   Mobile-first · WCAG AA · áreas táctiles ≥ 48px · focus visible.
   ========================================================================== */

/* ---- tokens (fallback si no carga ichy-styles.css) ----------------------- */
#ichy-page.ichy-booking-app, .ichy-portal {
	--ichy-orange: #EC6D17;
	--ichy-orange-deep: #C94F08;
	--ichy-yellow: #F7DB15;
	--ichy-yellow-soft: #FFE75C;
	--ichy-green: #23611E;
	--ichy-green-deep: #0B4F24;
	--ichy-sky: #2FA8E1;
	--ichy-sky-soft: #BFEAFF;
	--ichy-sand: #F4E5C1;
	--ichy-cream: #FFF7DC;
	--ichy-white: #FFFFFF;
	--ichy-black: #14100F;
	--ichy-ink: #251911;
	--ichy-muted: #6B5A48;
	--ichy-line: #F0C76C;
	--font-display: 'Bungee', 'Arial Black', system-ui, sans-serif;
	--font-headline: 'Bebas Neue', 'Oswald', Impact, sans-serif;
	--font-body: 'Montserrat', 'Poppins', Arial, sans-serif;
	--font-script: 'Pacifico', cursive;

	/* tokens propios del reservador */
	--b-bg: #FFFDF6;
	--b-surface: var(--ichy-white);
	--b-surface-warm: var(--ichy-cream);
	--b-line: rgba(20, 16, 15, .12);
	--b-line-warm: #F0D9A6;
	--b-text: var(--ichy-ink);
	--b-muted: #6B5A48;          /* 5.9:1 sobre blanco */
	--b-focus: var(--focus-ring, #1B6FB8); /* anillo de foco, AA sobre cream/blanco */
	--b-error: #B3261E;
	--b-error-bg: #FDECEA;
	--b-success: var(--ichy-green-deep);
	--b-success-bg: #E7F3E7;
	--b-warn-bg: #FFF4CC;
	--b-info-bg: #E8F5FC;
	--b-radius: 18px;
	--b-radius-sm: 12px;
	--b-radius-pill: 999px;
	--b-shadow: 0 10px 30px rgba(20, 16, 15, .08);
	--b-shadow-lg: 0 18px 44px rgba(20, 16, 15, .14);
	--b-ease: cubic-bezier(.2, .7, .3, 1);
	--b-ease-out: cubic-bezier(.16, 1, .3, 1);
	--b-ease-tropical: cubic-bezier(.34, 1.3, .64, 1);
	--b-press: 100ms;
	--b-hover: 140ms;
	--b-step: 320ms;
	--b-bar-h: 72px;

	font-family: var(--font-body);
	font-size: 1rem; /* independiente de la tipografía fluida del tema */
	color: var(--b-text);
	background: var(--b-bg);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	min-height: 100vh;
}

/* la hoja del sitio pone overflow-x:hidden en #ichy-page: aquí lo necesitamos para sticky */
#ichy-page.ichy-booking-app { overflow-x: clip; }

.ichy-booking-app *, .ichy-booking-app *::before, .ichy-booking-app *::after { box-sizing: border-box; }
.ichy-booking-app img { max-width: 100%; display: block; }
.ichy-booking-app a { color: var(--ichy-orange-deep); text-decoration: underline; text-underline-offset: 2px; }
.ichy-booking-app a:hover { color: var(--ichy-orange); }
.ichy-booking-app button { font-family: inherit; }
.ichy-booking-app :focus-visible { outline: 3px solid var(--b-focus); outline-offset: 2px; border-radius: 6px; }
.ichy-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ichy-skip-link { position: absolute; left: -999px; top: 8px; background: var(--ichy-black, #14100F); color: #fff; padding: 10px 14px; z-index: 100; border-radius: 8px; }
.ichy-skip-link:focus { left: 8px; }
body.ichy-booking-body { margin: 0; background: #FFFDF6; }

/* ---- tipografía ---------------------------------------------------------- */
.ichy-booking-app h1, .ichy-booking-app h2, .ichy-booking-app h3 { margin: 0; line-height: 1.05; }
.ichy-h1 { font-family: var(--font-headline); font-size: clamp(2rem, 6vw, 3.1rem); letter-spacing: .01em; text-transform: uppercase; color: var(--ichy-black); }
.ichy-h2 { font-family: var(--font-headline); font-size: clamp(1.35rem, 4vw, 1.75rem); letter-spacing: .01em; text-transform: uppercase; color: var(--ichy-black); display: flex; align-items: center; gap: 8px; }
.ichy-h3 { font-family: var(--font-headline); font-size: 1.25rem; letter-spacing: .02em; text-transform: uppercase; color: var(--ichy-black); display: flex; align-items: center; gap: 8px; }
.ichy-lead { margin: 8px 0 0; color: var(--b-muted); font-size: .98rem; max-width: 62ch; }
.ichy-muted { color: var(--b-muted); font-size: .9rem; }
.ichy-script { font-family: var(--font-script); font-size: 1.5rem; color: var(--ichy-green-deep); text-shadow: 2px 2px 0 var(--ichy-yellow); text-transform: none; }
.ichy-eyebrow-line { display: inline-flex; align-items: center; gap: 6px; font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--ichy-orange-deep); }
.ichy-finenote { display: flex; gap: 6px; align-items: flex-start; font-size: .82rem; color: var(--b-muted); margin: 14px 0 0; }
.ichy-finenote .ichy-icon { flex: 0 0 auto; margin-top: 3px; }

/* ---- app frame ----------------------------------------------------------- */
.ichy-app { min-height: 100vh; display: flex; flex-direction: column; }
.ichy-appbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; background: var(--b-surface); border-bottom: 1px solid var(--b-line-warm); position: sticky; top: 0; z-index: 30; }
.ichy-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ichy-black); }
.ichy-brand img { height: 36px; width: auto; }
.ichy-brand-text { font-family: var(--font-display); font-size: 1.3rem; color: var(--ichy-orange); letter-spacing: .02em; }
.ichy-brand-sub { font-family: var(--font-headline); font-size: 1.1rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ichy-green-deep); }
.ichy-appbar-phone { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: .9rem; color: var(--ichy-black); text-decoration: none; padding: 10px 12px; border-radius: var(--b-radius-pill); background: var(--ichy-yellow); min-height: 44px; }
.ichy-appbar-phone:hover { background: var(--ichy-yellow-soft); color: var(--ichy-black); }
.ichy-layout { width: min(100% - 32px, 1180px); margin: 0 auto; padding: 18px 0 calc(var(--b-bar-h) + 24px); display: grid; grid-template-columns: 1fr; gap: 24px; flex: 1; }
.ichy-main { min-width: 0; }
.ichy-appfoot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 18px 16px 90px; font-size: .78rem; color: var(--b-muted); border-top: 1px solid var(--b-line-warm); background: var(--b-surface); }
.ichy-appfoot-sec { display: inline-flex; align-items: center; gap: 4px; }

/* ---- stepper ------------------------------------------------------------- */
.ichy-stepper { background: var(--b-surface); border-bottom: 1px solid var(--b-line-warm); }
.ichy-stepper ol { list-style: none; margin: 0 auto; padding: 0 8px; display: flex; width: min(100%, 1180px); counter-reset: s; }
.ichy-step { flex: 1; position: relative; }
.ichy-step-btn { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 100%; padding: 10px 4px; border: 0; background: transparent; color: var(--b-muted); font: inherit; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; cursor: default; min-height: 60px; }
button.ichy-step-btn { cursor: pointer; }
button.ichy-step-btn:hover .ichy-step-num { transform: scale(1.06); }
.ichy-step-num { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--ichy-sand); color: var(--b-muted); font-family: var(--font-display); font-size: .8rem; transition: transform .15s var(--b-ease); }
.ichy-step.is-current .ichy-step-btn { color: var(--ichy-black); }
.ichy-step.is-current .ichy-step-num { background: var(--ichy-orange); color: #fff; box-shadow: 0 0 0 4px rgba(236, 109, 23, .18); }
.ichy-step.is-done .ichy-step-num { background: var(--ichy-green-deep); color: #fff; }
.ichy-step.is-done .ichy-step-btn { color: var(--ichy-green-deep); }
.ichy-step + .ichy-step::before { content: ''; position: absolute; left: -50%; top: 23px; width: 100%; height: 2px; background: var(--ichy-sand); z-index: 0; }
.ichy-step.is-done + .ichy-step::before, .ichy-step.is-current + .ichy-step::before { background: var(--ichy-sand); }
.ichy-step.is-done + .ichy-step.is-done::before, .ichy-step.is-done + .ichy-step.is-current::before { background: var(--ichy-green-deep); }
.ichy-step-num, .ichy-step-label { position: relative; z-index: 1; }
.ichy-step-label { background: var(--b-surface); padding: 0 2px; }

/* ---- botones ------------------------------------------------------------- */
.ichy-b { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 20px; border: 2px solid transparent; border-radius: var(--b-radius-pill); font-family: var(--font-body); font-weight: 800; font-size: .88rem; letter-spacing: .03em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background-color var(--b-hover) var(--b-ease-out), color var(--b-hover) var(--b-ease-out), transform var(--b-hover) var(--b-ease-out), box-shadow var(--b-hover) var(--b-ease-out); line-height: 1.1; white-space: nowrap; }
.ichy-b .ichy-icon:last-child { transition: transform 180ms var(--b-ease-out); }
@media (hover: hover) and (pointer: fine) {
	.ichy-b:hover:not(:disabled) { transform: translateY(-1px); }
	.ichy-b-primary:hover:not(:disabled) .ichy-icon:last-child, .ichy-b-attention:hover:not(:disabled) .ichy-icon:last-child { transform: translateX(3px); }
}
.ichy-b:active:not(:disabled) { transform: scale(.97); transition-duration: var(--b-press); }
.ichy-b:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.ichy-b-primary { background: var(--ichy-orange); color: #fff; box-shadow: 0 8px 18px rgba(236, 109, 23, .28); }
.ichy-b-primary:hover:not(:disabled) { background: var(--ichy-orange-deep); }
.ichy-b-attention { background: var(--ichy-yellow); color: var(--ichy-black); box-shadow: 0 8px 18px rgba(20, 16, 15, .14); }
.ichy-b-attention:hover:not(:disabled) { background: var(--ichy-yellow-soft); }
.ichy-b-trust { background: var(--ichy-green-deep); color: #fff; box-shadow: 0 8px 18px rgba(11, 79, 36, .25); }
.ichy-b-trust:hover:not(:disabled) { background: var(--ichy-green); }
.ichy-b-outline { background: #fff; color: var(--ichy-black); border-color: var(--ichy-black); }
.ichy-b-outline:hover:not(:disabled) { background: var(--ichy-cream); }
.ichy-b-quiet { background: transparent; color: var(--ichy-ink); border-color: var(--b-line); }
.ichy-b-quiet:hover:not(:disabled) { background: var(--b-surface-warm); }
.ichy-b-sm { min-height: 40px; padding: 8px 14px; font-size: .78rem; }
.ichy-b-lg { min-height: 56px; padding: 14px 28px; font-size: .98rem; }
.ichy-w100 { width: 100%; }
.ichy-iconbtn { width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--b-surface-warm); color: var(--ichy-black); display: grid; place-items: center; cursor: pointer; }
.ichy-backlink, .ichy-editlink { background: none; border: 0; padding: 6px 0; color: var(--ichy-orange-deep); font: inherit; font-weight: 700; font-size: .88rem; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; text-decoration: underline; text-underline-offset: 3px; min-height: 40px; }
.ichy-spinner { width: 18px; height: 18px; border-radius: 50%; border: 2.5px solid rgba(255, 255, 255, .45); border-top-color: #fff; animation: ichy-spin .8s linear infinite; display: inline-block; vertical-align: middle; }
.ichy-spinner-dark { border-color: rgba(20, 16, 15, .2); border-top-color: var(--ichy-orange); }
@keyframes ichy-spin { to { transform: rotate(360deg); } }

/* ---- tarjetas / secciones ------------------------------------------------- */
.ichy-card { background: var(--b-surface); border: 1px solid var(--b-line-warm); border-radius: var(--b-radius); padding: 18px; box-shadow: var(--b-shadow); }
/* Secciones del paso Personalizar: mismo ritmo vertical (título → texto → contenido) */
.ichy-sec { margin-top: 28px; }
.ichy-sec .ichy-h2 { margin: 0 0 14px; }
.ichy-sec > .ichy-muted { margin: -6px 0 16px; }
.ichy-sec > .ichy-covgrid, .ichy-sec > .ichy-optlist, .ichy-sec > .ichy-coupon-row { margin-top: 0; }
.ichy-stepwrap { display: flex; flex-direction: column; gap: 18px; animation: ichy-step-in var(--b-step) var(--b-ease-out) both; }
@keyframes ichy-step-in { from { opacity: 0; transform: translate3d(0, 12px, 0); } to { opacity: 1; transform: none; } }
@keyframes ichy-card-in { from { opacity: 0; transform: translate3d(0, 14px, 0) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes ichy-pop { 0% { transform: scale(1); } 35% { transform: scale(1.06); } 100% { transform: scale(1); } }
@keyframes ichy-pulse-ring { 0% { box-shadow: 0 0 0 0 rgba(236, 109, 23, .45); } 100% { box-shadow: 0 0 0 12px rgba(236, 109, 23, 0); } }
@keyframes ichy-hero-in { from { opacity: 0; transform: translate3d(0, 16px, 0) scale(.96); } to { opacity: 1; transform: none; } }
.ichy-vlist > .ichy-vc:not(.is-skeleton) { animation: ichy-card-in 380ms var(--b-ease-out) both; animation-delay: calc(var(--i, 0) * 55ms); }
.ichy-covs > .ichy-cov, .ichy-optlist > .ichy-opt, .ichy-review-grid > .ichy-rv { animation: ichy-card-in 340ms var(--b-ease-out) both; animation-delay: calc(var(--i, 0) * 45ms); }
.ichy-sum-total-v.is-pop { display: inline-block; animation: ichy-pop 260ms var(--b-ease-out); }
.ichy-step.is-current .ichy-step-num { animation: ichy-pulse-ring 600ms var(--b-ease-out) 1; }
.ichy-confirm-hero { animation: ichy-hero-in 550ms var(--b-ease-tropical) both; }
.ichy-confirm-hero .ichy-code { animation: ichy-card-in 420ms var(--b-ease-out) 260ms both; }
.ichy-notice, .ichy-errsum { animation: ichy-step-in 260ms var(--b-ease-out) both; }
.ichy-stephead { display: flex; flex-direction: column; gap: 2px; }
.ichy-stepnav { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.ichy-stepnav .ichy-b-primary, .ichy-stepnav .ichy-b-attention, .ichy-stepnav .ichy-b-trust { margin-left: auto; }
.ichy-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.ichy-span2 { grid-column: 1 / -1; }

/* ---- formularios --------------------------------------------------------- */
.ichy-fs { border: 0; padding: 0; margin: 0 0 18px; min-width: 0; }
.ichy-fs-legend { font-family: var(--font-headline); font-size: 1.2rem; letter-spacing: .04em; text-transform: uppercase; color: var(--ichy-green-deep); display: flex; align-items: center; gap: 8px; margin-bottom: 10px; padding: 0; }
.ichy-fld { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ichy-fld-label { font-size: .8rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--ichy-ink); }
.ichy-req { color: var(--ichy-orange-deep); }
.ichy-fld-control { width: 100%; min-height: 50px; padding: 12px 14px; border: 1.5px solid var(--b-line-warm); border-radius: var(--b-radius-sm); background: #fff; color: var(--ichy-ink); font: inherit; font-size: 1rem; transition: border-color var(--b-hover) var(--b-ease-out), box-shadow var(--b-hover) var(--b-ease-out); -webkit-appearance: none; appearance: none; }
select.ichy-fld-control { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23251911' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 40px; }
.ichy-fld-control:hover { border-color: var(--ichy-line); }
.ichy-fld-control:focus { outline: none; border-color: var(--ichy-orange); box-shadow: 0 0 0 4px rgba(236, 109, 23, .18); }
.ichy-fld-control:disabled { background: #f6f3ea; color: var(--b-muted); }
.ichy-fld.has-error .ichy-fld-control { border-color: var(--b-error); background: #fffafa; }
.ichy-fld-hint { font-size: .78rem; color: var(--b-muted); }
.ichy-fld-error { font-size: .82rem; font-weight: 700; color: var(--b-error); display: flex; gap: 4px; align-items: center; }
.ichy-errsum { background: var(--b-error-bg); border: 1px solid var(--error-border, #F1B8B3); border-left: 5px solid var(--b-error); border-radius: var(--b-radius-sm); padding: 12px 14px; margin-bottom: 16px; color: var(--error-ink, #6A1A15); }
.ichy-errsum strong { display: flex; align-items: center; gap: 6px; }
.ichy-errsum ul { margin: 6px 0 0 18px; padding: 0; font-size: .9rem; }
.ichy-errlist { margin: 4px 0 0 18px; padding: 0; }
.ichy-check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; padding: 6px 0; min-height: 44px; }
.ichy-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ichy-check-box { flex: 0 0 26px; width: 26px; height: 26px; border: 2px solid var(--ichy-ink); border-radius: 8px; display: grid; place-items: center; color: transparent; background: #fff; transition: background-color var(--b-hover) var(--b-ease-out), border-color var(--b-hover) var(--b-ease-out), transform 200ms var(--b-ease-tropical); margin-top: 2px; }
.ichy-check input:checked + .ichy-check-box { transform: scale(1.08); }
.ichy-check input:checked + .ichy-check-box { background: var(--ichy-green-deep); border-color: var(--ichy-green-deep); color: #fff; }
.ichy-check input:focus-visible + .ichy-check-box { outline: 3px solid var(--b-focus); outline-offset: 2px; }
.ichy-check-text { font-size: .95rem; font-weight: 600; }
.ichy-check-text small { display: block; font-weight: 500; color: var(--b-muted); font-size: .8rem; margin-top: 2px; }
.ichy-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ichy-privacy { display: flex; gap: 6px; align-items: flex-start; font-size: .82rem; color: var(--b-muted); background: var(--b-surface-warm); padding: 10px 12px; border-radius: var(--b-radius-sm); margin: 0 0 14px; }
.ichy-flight { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--b-line-warm); }

/* ---- paso 1: búsqueda ---------------------------------------------------- */
.ichy-stepwrap-search { gap: 20px; }
.ichy-hero-search { text-align: left; padding-top: 6px; }
.ichy-hero-search .ichy-h1 { margin-top: 6px; }
.ichy-search-form { position: relative; overflow: hidden; }
.ichy-search-form::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 6px; background: linear-gradient(90deg, var(--ichy-orange), var(--ichy-yellow), var(--ichy-green)); }
.ichy-search-extra { margin-top: 4px; }
.ichy-search-cta { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; align-items: stretch; }
.ichy-search-cta .ichy-b { width: 100%; }
.ichy-search-note { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; color: var(--ichy-green-deep); font-weight: 700; justify-content: center; }
.ichy-trustrow { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .85rem; font-weight: 700; color: var(--ichy-ink); }
.ichy-trustrow li { display: inline-flex; align-items: center; gap: 6px; }
.ichy-trustrow .ichy-icon { color: var(--ichy-orange); }
.ichy-mock-banner { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; background: var(--ichy-yellow); color: var(--ichy-black); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 6px 12px; border-radius: var(--b-radius-pill); }

/* ---- paso 2: vehículos --------------------------------------------------- */
.ichy-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.ichy-toolbar-count { font-weight: 700; font-size: .9rem; color: var(--b-muted); }
.ichy-toolbar-actions { display: flex; gap: 8px; align-items: center; }
.ichy-sortsel { display: inline-flex; align-items: center; gap: 6px; border: 2px solid var(--b-line); border-radius: var(--b-radius-pill); padding: 0 8px 0 12px; min-height: 40px; background: #fff; }
.ichy-sortsel select { border: 0; background: transparent; font: inherit; font-weight: 700; font-size: .82rem; color: var(--ichy-ink); padding: 8px 4px; max-width: 46vw; }
.ichy-filters { padding: 14px; }
.ichy-filters-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; flex-wrap: wrap; gap: 8px; }
.ichy-loading-text { display: flex; align-items: center; gap: 8px; color: var(--b-muted); font-weight: 700; margin: 0; }
.ichy-vlist { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }

.ichy-vc { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; background: var(--b-surface); border: 1px solid var(--b-line-warm); border-radius: var(--b-radius); overflow: hidden; box-shadow: var(--b-shadow); transition: box-shadow 200ms var(--b-ease-out), transform 200ms var(--b-ease-out), border-color 200ms var(--b-ease-out); }
.ichy-vc-media img { transition: transform 260ms var(--b-ease-out); }
@media (hover: hover) and (pointer: fine) {
	.ichy-vc:hover { box-shadow: var(--b-shadow-lg); transform: translateY(-3px); }
	.ichy-vc:hover .ichy-vc-media img { transform: scale(1.04); }
}
.ichy-vc.is-unavailable { opacity: .72; }
.ichy-vc.is-selected { border-color: var(--ichy-green-deep); box-shadow: 0 0 0 3px rgba(11, 79, 36, .18); }
.ichy-vc-media { position: relative; min-width: 0; width: 100%; background: radial-gradient(120% 90% at 50% 100%, #fff 0%, var(--ichy-cream) 60%, var(--ichy-sand) 100%); aspect-ratio: 16 / 9; display: grid; place-items: center; padding: 14px; }
.ichy-vc-media img { width: 100%; height: 100%; max-height: 100%; object-fit: contain; filter: drop-shadow(0 12px 16px rgba(20, 16, 15, .18)); }
.ichy-vc-badges { position: absolute; left: 12px; top: 12px; display: flex; gap: 6px; flex-wrap: wrap; }
.ichy-vc-body { min-width: 0; padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 10px; }
.ichy-vc-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.ichy-vc-class { font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ichy-green-deep); }
.ichy-vc-name { font-family: var(--font-headline); font-size: 1.6rem; letter-spacing: .02em; text-transform: uppercase; color: var(--ichy-black); line-height: 1; }
.ichy-vc-similar { font-family: var(--font-body); font-size: .8rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--b-muted); }
.ichy-vc-specs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .82rem; font-weight: 600; color: var(--ichy-ink); }
.ichy-vc-specs li { display: inline-flex; align-items: center; gap: 5px; }
.ichy-vc-specs .ichy-icon { color: var(--b-muted); }
.ichy-vc-loc { font-size: .8rem; color: var(--b-muted); display: inline-flex; gap: 4px; align-items: center; }
.ichy-vc-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--b-line-warm); flex-wrap: wrap; }
.ichy-vc-price { display: flex; flex-direction: column; gap: 2px; }
.ichy-vc-price.is-muted { color: var(--b-muted); font-size: .85rem; font-weight: 600; }
.ichy-vc-perday b { font-family: var(--font-display); font-size: 1.5rem; color: var(--ichy-orange-deep); }
.ichy-vc-perday small { font-weight: 700; color: var(--b-muted); margin-left: 2px; }
.ichy-vc-total { font-size: .86rem; color: var(--ichy-ink); }
.ichy-vc-total b { color: var(--ichy-black); }
.ichy-vc-incl { font-size: .74rem; color: var(--ichy-green-deep); font-weight: 700; }
.ichy-status { font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; padding: 5px 9px; border-radius: var(--b-radius-pill); white-space: nowrap; }
.ichy-status-green { background: var(--b-success-bg); color: var(--ichy-green-deep); }
.ichy-status-yellow { background: var(--b-warn-bg); color: #6B5200; }
.ichy-status-sky { background: var(--b-info-bg); color: #0B5A83; }
.ichy-status-muted { background: #EFEBE3; color: var(--b-muted); }
.ichy-tag { display: inline-flex; align-items: center; padding: 5px 10px; border-radius: var(--b-radius-pill); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; line-height: 1; }
.ichy-tag-green { background: var(--ichy-green-deep); color: #fff; }
.ichy-tag-yellow { background: var(--ichy-yellow); color: var(--ichy-black); }
.ichy-tag-cream { background: #fff; color: var(--ichy-ink); border: 1px solid var(--b-line-warm); }
.ichy-tag-sky { background: var(--ichy-sky-soft); color: #0B5A83; }

/* skeleton */
.ichy-skel { background: linear-gradient(90deg, #F1ECE0 25%, #FAF7EE 50%, #F1ECE0 75%); background-size: 200% 100%; animation: ichy-shimmer 1.3s infinite; border-radius: 10px; min-height: 12px; }
.ichy-vc.is-skeleton .ichy-vc-media { aspect-ratio: 16 / 9; }
.ichy-vc.is-skeleton .ichy-vc-body { gap: 12px; }
@keyframes ichy-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) {
	.ichy-skel, .ichy-spinner { animation-duration: 3s; }
	.ichy-booking-app * { scroll-behavior: auto !important; }
	.ichy-stepwrap, .ichy-vlist > .ichy-vc:not(.is-skeleton), .ichy-covs > .ichy-cov, .ichy-optlist > .ichy-opt, .ichy-review-grid > .ichy-rv, .ichy-confirm-hero, .ichy-confirm-hero .ichy-code, .ichy-notice, .ichy-errsum { animation: ichy-fade-only 200ms ease both; }
	.ichy-sum-total-v.is-pop, .ichy-step.is-current .ichy-step-num { animation: none; }
	.ichy-b:hover:not(:disabled), .ichy-b:active:not(:disabled), .ichy-vc:hover, .ichy-cov:active:not(:disabled), .ichy-qty-btn:active:not(:disabled) { transform: none; }
	.ichy-vc:hover .ichy-vc-media img, .ichy-b .ichy-icon:last-child, .ichy-cov.is-on .ichy-cov-check, .ichy-check input:checked + .ichy-check-box { transform: none !important; }
}
@keyframes ichy-fade-only { from { opacity: 0; } to { opacity: 1; } }

/* estados vacío / error */
.ichy-state { text-align: center; padding: 36px 18px; background: var(--b-surface); border: 1px dashed var(--b-line-warm); border-radius: var(--b-radius); display: flex; flex-direction: column; align-items: center; gap: 10px; }
.ichy-state-icon { width: 72px; height: 72px; border-radius: 50%; background: var(--b-surface-warm); color: var(--ichy-orange); display: grid; place-items: center; }
.ichy-state-icon.is-error { background: var(--b-error-bg); color: var(--b-error); }
.ichy-state-title { font-family: var(--font-headline); font-size: 1.5rem; text-transform: uppercase; letter-spacing: .02em; }
.ichy-state-text { color: var(--b-muted); max-width: 48ch; }
.ichy-state-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 6px; }

/* avisos */
.ichy-notice { display: flex; gap: 12px; padding: 12px 14px; border-radius: var(--b-radius-sm); border: 1px solid transparent; font-size: .92rem; }
.ichy-notice-icon { flex: 0 0 auto; margin-top: 1px; }
.ichy-notice-title { display: block; margin-bottom: 2px; }
.ichy-notice-actions { margin-top: 8px; display: flex; gap: 8px; flex-wrap: wrap; }
.ichy-notice-info { background: var(--b-info-bg); border-color: #BFE3F5; color: #0B4560; }
.ichy-notice-warning { background: var(--b-warn-bg); border-color: #F0D98A; color: #5C4600; }
.ichy-notice-success { background: var(--b-success-bg); border-color: #BFDDBF; color: var(--ichy-green-deep); }
.ichy-notice-error { background: var(--b-error-bg); border-color: #F1B8B3; color: #6A1A15; }
.ichy-notice-mock { background: #FFF9DB; border-color: var(--ichy-yellow); color: var(--ichy-ink); }

/* ---- paso 3: personalizar ------------------------------------------------ */
.ichy-chosen { display: grid; grid-template-columns: 1fr; gap: 12px; align-items: center; background: linear-gradient(135deg, #fff 0%, var(--ichy-cream) 100%); }
.ichy-chosen img { width: min(100%, 260px); height: auto; margin: 0 auto; filter: drop-shadow(0 12px 16px rgba(20, 16, 15, .18)); }
.ichy-chosen .ichy-badge { margin-bottom: 10px; }
.ichy-chosen .ichy-h2 { margin: 0 0 6px; }
.ichy-incl { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: .82rem; font-weight: 700; color: var(--ichy-green-deep); }
.ichy-incl li { display: inline-flex; align-items: center; gap: 4px; }
.ichy-covs { gap: 12px; }
.ichy-cov { display: grid; grid-template-columns: 30px 1fr auto; gap: 10px; text-align: left; align-items: start; background: #fff; border: 2px solid var(--b-line-warm); border-radius: var(--b-radius); padding: 14px; cursor: pointer; font: inherit; color: inherit; transition: border-color var(--b-hover) var(--b-ease-out), box-shadow var(--b-hover) var(--b-ease-out), transform var(--b-hover) var(--b-ease-out), background-color var(--b-hover) var(--b-ease-out); min-height: 48px; }
.ichy-cov:active:not(:disabled) { transform: scale(.99); transition-duration: var(--b-press); }
.ichy-cov-check { transition: background-color var(--b-hover) var(--b-ease-out), border-color var(--b-hover) var(--b-ease-out), transform 200ms var(--b-ease-tropical); }
.ichy-cov.is-on .ichy-cov-check { transform: scale(1.08); }
.ichy-cov:hover:not(:disabled) { border-color: var(--ichy-line); }
.ichy-cov.is-on { border-color: var(--ichy-green-deep); box-shadow: 0 0 0 3px rgba(11, 79, 36, .14); }
.ichy-cov.is-rec:not(.is-on) { border-color: var(--ichy-yellow); }
.ichy-cov:disabled { cursor: default; background: var(--b-surface-warm); }
.ichy-cov-check { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--ichy-ink); display: grid; place-items: center; color: #fff; }
.ichy-cov.is-on .ichy-cov-check { background: var(--ichy-green-deep); border-color: var(--ichy-green-deep); }
.ichy-cov-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ichy-cov-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 1rem; }
.ichy-cov-desc { font-size: .84rem; color: var(--b-muted); }
.ichy-cov-hl { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .76rem; font-weight: 700; color: var(--ichy-green-deep); }
.ichy-cov-hl span { display: inline-flex; align-items: center; gap: 3px; }
.ichy-cov-price { text-align: right; display: flex; flex-direction: column; align-items: flex-end; line-height: 1.1; }
.ichy-cov-price b { font-family: var(--font-display); font-size: 1.1rem; color: var(--ichy-orange-deep); }
.ichy-cov-price small { font-size: .72rem; color: var(--b-muted); font-weight: 700; }
.ichy-cov-tot { margin-top: 4px; }
.ichy-optlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ichy-opt { display: grid; grid-template-columns: 44px 1fr; gap: 10px 12px; align-items: center; background: #fff; border: 2px solid var(--b-line-warm); border-radius: var(--b-radius); padding: 12px 14px; transition: border-color var(--b-hover) var(--b-ease-out), background-color var(--b-hover) var(--b-ease-out); }
.ichy-opt.is-on { background: #F7FBF4; }
.ichy-qty-val { transition: transform 160ms var(--b-ease-out); }
.ichy-qty-btn { transition: background-color var(--b-hover) var(--b-ease-out), transform var(--b-hover) var(--b-ease-out); }
.ichy-qty-btn:active:not(:disabled) { transform: scale(.92); transition-duration: var(--b-press); }
.ichy-opt.is-on { border-color: var(--ichy-green-deep); }
.ichy-opt-icon { width: 44px; height: 44px; border-radius: 12px; background: var(--b-surface-warm); color: var(--ichy-orange-deep); display: grid; place-items: center; }
.ichy-opt-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ichy-opt-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ichy-opt-desc { font-size: .82rem; color: var(--b-muted); }
.ichy-opt-price { font-size: .84rem; font-weight: 800; color: var(--ichy-orange-deep); }
.ichy-opt > .ichy-qty, .ichy-opt > .ichy-b { grid-column: 1 / -1; justify-self: end; }
.ichy-qty { display: inline-flex; align-items: center; border: 2px solid var(--ichy-ink); border-radius: var(--b-radius-pill); overflow: hidden; }
.ichy-qty-btn { width: 44px; height: 44px; border: 0; background: #fff; color: var(--ichy-ink); display: grid; place-items: center; cursor: pointer; }
.ichy-qty-btn:hover:not(:disabled) { background: var(--b-surface-warm); }
.ichy-qty-btn:disabled { color: #b9b0a3; cursor: not-allowed; }
.ichy-qty-val { min-width: 36px; text-align: center; font-family: var(--font-display); font-size: 1rem; }
.ichy-coupon-row { display: flex; gap: 8px; }
.ichy-coupon-row .ichy-fld-control { flex: 1; text-transform: uppercase; }
.ichy-coupon-msg { margin: 8px 0 0; font-size: .86rem; font-weight: 700; display: flex; gap: 6px; align-items: center; }
.ichy-coupon-msg.is-ok { color: var(--ichy-green-deep); }
.ichy-coupon-msg.is-bad { color: var(--b-error); }

/* ---- resumen sticky ------------------------------------------------------ */
.ichy-sum-desktop { display: none; }
.ichy-sum-title { font-family: var(--font-headline); font-size: 1.4rem; letter-spacing: .03em; text-transform: uppercase; }
.ichy-sum-body { display: flex; flex-direction: column; gap: 12px; margin: 12px 0; }
.ichy-sum-row { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; }
.ichy-sum-row .ichy-icon { color: var(--ichy-orange); margin-top: 3px; }
.ichy-sum-k { font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--b-muted); }
.ichy-sum-v { font-weight: 700; font-size: .95rem; }
.ichy-sum-sub { font-size: .84rem; color: var(--b-muted); }
.ichy-sum-lines { list-style: none; margin: 4px 0 0; padding: 10px 0 0; border-top: 1px dashed var(--b-line-warm); display: flex; flex-direction: column; gap: 4px; font-size: .86rem; }
.ichy-sum-lines li { display: flex; justify-content: space-between; gap: 10px; }
.ichy-sum-total { display: flex; flex-direction: column; padding: 12px 14px; border-radius: var(--b-radius-sm); background: var(--ichy-cream); margin-bottom: 12px; transition: opacity .2s; }
.ichy-sum-total.is-updating { opacity: .7; }
.ichy-sum-total-k { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--b-muted); }
.ichy-sum-total-v { font-family: var(--font-display); font-size: 1.7rem; color: var(--ichy-black); }
.ichy-sum-total-split { font-size: .78rem; color: var(--ichy-ink); }
.ichy-sum-mobile { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; }
.ichy-sum-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--b-line-warm); box-shadow: 0 -10px 30px rgba(20, 16, 15, .12); min-height: var(--b-bar-h); }
.ichy-sum-bar-toggle { background: none; border: 0; text-align: left; padding: 4px 0; cursor: pointer; font: inherit; display: flex; flex-direction: column; min-height: 44px; justify-content: center; }
.ichy-sum-bar-k { font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--b-muted); display: inline-flex; align-items: center; gap: 4px; }
.ichy-sum-bar-v { font-family: var(--font-display); font-size: 1.35rem; color: var(--ichy-black); }
.ichy-sum-mobile-panel { background: #fff; border-top-left-radius: 22px; border-top-right-radius: 22px; padding: 16px 16px 4px; max-height: 60vh; overflow: auto; box-shadow: 0 -14px 40px rgba(20, 16, 15, .2); animation: ichy-up .22s var(--b-ease); }
.ichy-sum-mobile-head { display: flex; justify-content: space-between; align-items: center; }
@keyframes ichy-up { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }

/* ---- review / precio ----------------------------------------------------- */
.ichy-review-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.ichy-rv { display: flex; flex-direction: column; gap: 10px; }
.ichy-rv-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ichy-rv-veh { display: grid; grid-template-columns: 120px 1fr; gap: 12px; align-items: center; }
.ichy-rv-veh img { width: 120px; height: auto; filter: drop-shadow(0 8px 10px rgba(20, 16, 15, .16)); }
.ichy-rv-veh > div { min-width: 0; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.ichy-dl { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.ichy-dl > div { display: flex; flex-direction: column; gap: 2px; }
.ichy-dl dt { font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--b-muted); }
.ichy-dl dd { margin: 0; font-weight: 700; font-size: .95rem; overflow-wrap: anywhere; }
.ichy-price-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ichy-price-table thead th { text-align: left; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--b-muted); padding: 0 0 8px; border-bottom: 2px solid var(--ichy-sand); }
.ichy-price-grouphead th { text-align: left; font-family: var(--font-headline); font-size: 1.05rem; letter-spacing: .04em; text-transform: uppercase; color: var(--ichy-green-deep); padding: 14px 0 4px; }
.ichy-price-dur { font-family: var(--font-body); font-size: .78rem; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--b-muted); }
.ichy-price-table td { padding: 6px 0; vertical-align: top; border-bottom: 1px solid #F3EEE2; }
.ichy-price-label { font-weight: 700; }
.ichy-price-meta { font-size: .78rem; color: var(--b-muted); }
.ichy-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 700; }
.is-negative .ichy-num { color: var(--ichy-green-deep); }
.ichy-price-total th { text-align: left; font-family: var(--font-headline); font-size: 1.4rem; letter-spacing: .03em; text-transform: uppercase; padding-top: 14px; }
.ichy-price-total td { font-family: var(--font-display); font-size: 1.5rem; color: var(--ichy-black); padding-top: 14px; border: 0; }
.ichy-pay-split { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.ichy-pay-box { border-radius: var(--b-radius-sm); padding: 12px; display: flex; flex-direction: column; gap: 4px; }
.ichy-pay-box.is-now { background: var(--ichy-yellow); color: var(--ichy-black); }
.ichy-pay-box.is-later { background: var(--b-success-bg); color: var(--ichy-green-deep); }
.ichy-pay-k { font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 4px; }
.ichy-pay-v { font-family: var(--font-display); font-size: 1.35rem; }
.ichy-pay-policy { display: flex; gap: 6px; align-items: flex-start; font-size: .84rem; color: var(--ichy-ink); margin: 10px 0 0; }
.ichy-pay-policy > span { flex: 1; }
.ichy-pay-policy .ichy-icon { flex: 0 0 auto; margin-top: 3px; color: var(--ichy-sky); }
.ichy-notices { list-style: none; margin: 8px 0 0; padding: 0; font-size: .8rem; color: var(--b-muted); display: flex; flex-direction: column; gap: 4px; }
.ichy-notices li { display: flex; gap: 6px; align-items: center; }
.ichy-accept { border-color: var(--ichy-line); background: var(--ichy-cream); }
.ichy-details summary { cursor: pointer; font-weight: 800; font-size: .9rem; display: flex; align-items: center; gap: 6px; padding: 6px 0; min-height: 44px; }
.ichy-details[open] summary { margin-bottom: 10px; }

/* ---- pago ---------------------------------------------------------------- */
.ichy-pay-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.ichy-payslot { background: #fff; border: 2px solid var(--ichy-green-deep); border-radius: var(--b-radius); padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.ichy-payslot-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.ichy-payslot-head h3 { font-family: var(--font-headline); font-size: 1.35rem; letter-spacing: .03em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 6px; color: var(--ichy-green-deep); }
.ichy-payslot-provider { display: inline-flex; align-items: center; gap: 8px; font-size: .78rem; color: var(--b-muted); font-weight: 700; }
.ichy-payslot-pname { text-transform: uppercase; letter-spacing: .06em; }
.ichy-payslot-mock { display: flex; flex-direction: column; gap: 12px; }
.ichy-payslot-fake { border: 1px dashed var(--b-line); border-radius: var(--b-radius-sm); padding: 12px; background: #FAF8F2; font-size: .86rem; color: var(--b-muted); display: flex; flex-direction: column; gap: 6px; }
.ichy-payslot-fake-row { display: flex; justify-content: space-between; font-variant-numeric: tabular-nums; }
.ichy-payslot-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ichy-payslot-actions .ichy-b { flex: 1 1 200px; }
.ichy-payslot-mount { min-height: 120px; border: 1px dashed var(--b-line); border-radius: var(--b-radius-sm); margin-bottom: 10px; }
.ichy-payslot-foot { display: flex; gap: 6px; align-items: flex-start; font-size: .78rem; color: var(--b-muted); margin: 0; }
.ichy-payslot-foot .ichy-icon { flex: 0 0 auto; margin-top: 2px; color: var(--ichy-green-deep); }
.ichy-pay-side { display: flex; flex-direction: column; gap: 8px; }
.ichy-pay-big { display: flex; justify-content: space-between; align-items: baseline; padding: 12px; background: var(--ichy-yellow); border-radius: var(--b-radius-sm); font-weight: 800; }
.ichy-pay-big b { font-family: var(--font-display); font-size: 1.6rem; }
.ichy-pay-small { display: flex; justify-content: space-between; font-size: .9rem; padding: 4px 2px; }

/* ---- confirmación -------------------------------------------------------- */
.ichy-confirm-hero { text-align: center; padding: 32px 18px; border-radius: var(--b-radius); display: flex; flex-direction: column; align-items: center; gap: 8px; color: #fff; background: linear-gradient(145deg, var(--ichy-green-deep), var(--ichy-green)); }
.ichy-confirm-hero.is-yellow { background: linear-gradient(145deg, #E0B800, var(--ichy-yellow)); color: var(--ichy-black); }
.ichy-confirm-hero.is-orange { background: linear-gradient(145deg, var(--ichy-orange-deep), var(--ichy-orange)); }
.ichy-confirm-hero .ichy-h1 { color: inherit; }
.ichy-confirm-hero .ichy-script { color: var(--ichy-yellow); text-shadow: 2px 2px 0 rgba(0, 0, 0, .18); }
.ichy-confirm-hero.is-yellow .ichy-script { color: var(--ichy-green-deep); text-shadow: none; }
.ichy-confirm-hero p { margin: 0; max-width: 52ch; }
.ichy-code { margin-top: 10px; background: rgba(255, 255, 255, .95); color: var(--ichy-black); border-radius: var(--b-radius-sm); padding: 12px 22px; display: flex; flex-direction: column; align-items: center; }
.ichy-code-k { font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--b-muted); }
.ichy-code-v { font-family: var(--font-display); font-size: clamp(1.6rem, 7vw, 2.4rem); letter-spacing: .06em; color: var(--ichy-orange-deep); }
.ichy-steps-list { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font-size: .95rem; }
.ichy-confirm-actions { justify-content: center; }
.ichy-confirm-actions .ichy-b-primary { margin-left: 0; }

/* ---- responsive ---------------------------------------------------------- */
@media (min-width: 560px) {
	.ichy-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ichy-search-cta { flex-direction: row; align-items: center; justify-content: space-between; }
	.ichy-search-cta .ichy-b { width: auto; }
	.ichy-vlist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ichy-opt { grid-template-columns: 44px 1fr auto; }
	.ichy-opt > .ichy-qty, .ichy-opt > .ichy-b { grid-column: auto; }
	.ichy-chosen { grid-template-columns: 220px 1fr; }
	.ichy-dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
	.ichy-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ichy-layout { grid-template-columns: minmax(0, 1fr); padding-top: 28px; padding-bottom: 40px; }
	.ichy-app.has-summary .ichy-layout { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; }
	.ichy-sum-desktop { display: block; position: sticky; top: 84px; background: #fff; border: 1px solid var(--b-line-warm); border-radius: var(--b-radius); padding: 18px; box-shadow: var(--b-shadow); }
	.ichy-sum-mobile { display: none; }
	.ichy-appfoot { padding-bottom: 18px; }
	.ichy-vlist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ichy-app.has-summary.is-vehicles .ichy-vlist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ichy-review-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
	.ichy-pay-grid { grid-template-columns: minmax(0, 1fr) 320px; align-items: start; }
	.ichy-step-btn { flex-direction: row; gap: 10px; font-size: .78rem; min-height: 56px; }
	.ichy-step + .ichy-step::before { top: 27px; }
	.ichy-hero-search { padding-top: 14px; }
	.ichy-card { padding: 24px; }
	.ichy-cov-price b { font-size: 1.25rem; }
}
@media (min-width: 1180px) {
	.ichy-vlist { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ichy-app.has-summary.is-vehicles .ichy-vlist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---- print (confirmación) ------------------------------------------------ */
@media print {
	.ichy-appbar, .ichy-stepper, .ichy-appfoot, .ichy-confirm-actions, .ichy-sum-mobile, .ichy-mock-banner { display: none !important; }
	.ichy-confirm-hero { color: #000; background: none; border: 2px solid #000; }
	.ichy-details { display: block; }
	.ichy-details > *:not(summary) { display: block !important; }
	.ichy-card { box-shadow: none; }
}
.ichy-sum-bar-v small { font-family: var(--font-body); font-size: .85rem; font-weight: 700; color: var(--b-muted); }

/* Cloudflare Turnstile (solo cuando hay site key) */
.ichy-turnstile:empty { display: none; }
.ichy-accept .ichy-turnstile { margin-top: 12px; }
/* Portales (popovers/drawer de filtros) heredan tokens pero no el layout de la página */
.ichy-portal { min-height: 0; background: none; }
.ichy-consent { display: grid; gap: 12px; }
.ichy-consent .ichy-privacy a { color: var(--ichy-orange-deep); font-weight: 700; }

/* Resumen horizontal del paso Vehículos */
.ichy-sum-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; padding: 14px 18px; background: #fff; border: 1px solid var(--b-line-warm); border-radius: var(--b-radius); box-shadow: var(--b-shadow); }
.ichy-sum-strip-item { display: flex; align-items: center; gap: 10px; min-width: 0; color: var(--ichy-orange-deep); }
.ichy-sum-strip-item > div { display: grid; line-height: 1.25; color: var(--ichy-ink); }
.ichy-sum-strip-item b { font-size: .95rem; }
.ichy-sum-strip-item small { color: var(--b-muted); font-size: .8rem; }
.ichy-sum-strip .ichy-btn { margin-left: auto; }
@media (min-width: 900px) { .ichy-app.is-vehicles .ichy-vlist { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .ichy-app.is-vehicles .ichy-vlist { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ichy-privacy > span { flex: 1 1 auto; line-height: 1.5; } .ichy-privacy > svg, .ichy-privacy i { margin-top: 2px; flex: 0 0 auto; }
