/* v6.9 · Reserva del cliente: tarjetas suaves, servicios con duración y precio en etiquetas, pulsación y foco cuidados */
:root{--rv-ease:cubic-bezier(.23,1,.32,1)}
body{background:linear-gradient(180deg,#EFE6D6 0%,#F4EBDD 220px,#F4EBDD 100%) fixed}
.paso{border-radius:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 1px 2px rgba(8,39,61,.05),0 14px 28px -18px rgba(8,39,61,.3)}
.paso h2{letter-spacing:-.01em}
.opc{border:0;border-radius:18px;background:#FBF7F0;box-shadow:inset 0 0 0 1px rgba(11,60,93,.1);transition:transform .16s var(--rv-ease),box-shadow .2s ease,background-color .2s ease;touch-action:manipulation}
.opc:active{transform:scale(.985)}
@media (hover:hover) and (pointer:fine){.opc:hover{background:#fff;box-shadow:inset 0 0 0 1.5px rgba(11,60,93,.35),0 12px 22px -16px rgba(8,39,61,.35)}}
.opc[aria-checked=true]{background:#fff;box-shadow:inset 0 0 0 2px #155C99,0 12px 22px -16px rgba(21,92,153,.5)}
.opc .dato{display:inline-flex;align-items:center;gap:6px}
.rv-chip{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;font:600 13px/1 Inter,Arial,sans-serif;color:#44525F;background:rgba(11,60,93,.07);white-space:nowrap}
.rv-precio{color:#0B5F58;background:rgba(23,179,166,.16);font-weight:700}
input[type=text],input[type=tel],input[type=email],select,textarea{border-radius:14px;transition:box-shadow .2s ease,border-color .2s ease}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;box-shadow:0 0 0 4px rgba(23,179,166,.22)}
.btn{transition:transform .16s var(--rv-ease),box-shadow .2s ease,filter .2s ease}
.btn:active{transform:scale(.97)}
.btn-coral{background:linear-gradient(180deg,#DB4A2B 0%,#C93A1C 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 12px 22px -12px rgba(201,58,28,.85)}
.hora{border-radius:14px;transition:transform .16s var(--rv-ease),background-color .2s ease}
.hora:active{transform:scale(.97)}
@media (prefers-reduced-motion:reduce){.opc,.btn,.hora{transition:none}}

/* ═══ Cabecera de la reserva: azul con relieve, islas desenfocadas y datos en etiquetas ═══ */
.reserva>.rv-hero{--grano:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .09 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:relative;overflow:hidden;margin:0 -16px 22px;padding:max(16px,env(safe-area-inset-top)) 22px 34px;border-radius:0 0 32px 32px;color:#fff;background:radial-gradient(120% 90% at 12% -20%,rgba(255,255,255,.34) 0%,rgba(255,255,255,0) 55%),linear-gradient(112deg,rgba(255,255,255,0) 34%,rgba(255,255,255,.13) 47%,rgba(255,255,255,0) 60%),var(--grano),linear-gradient(180deg,#1E78BD 0%,#155C99 60%,#0F4A7E 100%);box-shadow:0 28px 44px -30px rgba(15,74,126,.9)}
.rv-islas{position:absolute;inset:-10px -20px;background:url('/assets/islas-canarias-mini.v34.webp') right -30px center/auto 118% no-repeat;filter:blur(3.5px) saturate(1.3) brightness(1.08);opacity:.62;mix-blend-mode:soft-light;animation:rv-deriva 18s ease-in-out infinite alternate}
.rv-vineta{position:absolute;inset:0;background:radial-gradient(90% 100% at 30% 40%,rgba(8,44,76,0) 0%,rgba(8,44,76,.5) 100%)}
.rv-hero>*:not(.rv-islas):not(.rv-vineta){position:relative}
.rv-arriba{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin-bottom:18px}
.rv-sello{display:inline-flex;align-items:center;min-height:44px;margin-left:auto}
.rv-sello img{display:block;height:22px;width:auto;opacity:.92}
.rv-arriba .btn-texto{color:#fff;min-height:44px;padding:0 10px 0 4px}
.rv-hero h1{margin:0;font:700 clamp(32px,9.4vw,42px)/1.08 Poppins,Inter,sans-serif;letter-spacing:-.025em;color:#fff;text-wrap:balance;text-shadow:0 2px 24px rgba(6,30,52,.35)}
.rv-hero .rv-lugar{display:inline-flex;align-items:center;gap:8px;margin:16px 0 0;min-height:36px;padding:0 15px 0 12px;border-radius:999px;color:#fff;font:600 14px/1 Inter,Arial,sans-serif;background:rgba(255,255,255,.18);-webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.rv-pin{width:16px;height:16px;background:#fff;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s7-6.2 7-12a7 7 0 0 0-14 0c0 5.8 7 12 7 12z'/><circle cx='12' cy='10' r='2.5'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s7-6.2 7-12a7 7 0 0 0-14 0c0 5.8 7 12 7 12z'/><circle cx='12' cy='10' r='2.5'/></svg>") center/contain no-repeat}
.rv-hero h1,.rv-hero .rv-lugar{animation:rv-entra .9s var(--rv-ease) both}
.rv-hero .rv-lugar{animation-delay:.12s}
@keyframes rv-entra{from{opacity:0;transform:translateY(10px);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes rv-deriva{from{transform:translateX(0) scale(1.04)}to{transform:translateX(-18px) scale(1.1)}}
.reserva>.rv-hero+.paso{margin-top:-6px}
@media (prefers-reduced-motion:reduce){.rv-islas,.rv-hero h1,.rv-hero .rv-lugar{animation:none}}
/* islas más presentes en la cabecera */
.rv-islas{opacity:.5;mix-blend-mode:normal;filter:blur(3px) saturate(1.2) brightness(1.25);background-position:right -10px center;background-size:auto 112%}
/* Bloques secundarios: sin borde discontinuo ni beige apagado; mismo lenguaje de etiquetas y cristal teal */
.espera{border:0;border-radius:18px;background:rgba(23,179,166,.09);box-shadow:inset 0 0 0 1px rgba(23,179,166,.24)}
.espera p{margin:0 0 10px;font-weight:600;color:var(--navy)}
.ig-pase-opcion{border:0;border-radius:18px;background:rgba(11,60,93,.05);box-shadow:inset 0 0 0 1px rgba(11,60,93,.1)}
.paso .vacio{color:#44525F}
.paso h2{display:flex;align-items:center;gap:10px}
.cambiar{min-height:44px;display:inline-flex;align-items:center}
.insignia{border:0;padding-top:6px}
.reserva hr,.insignia{border-top:0}

/* ═══ De la cabecera hacia abajo: el mismo material (celeste, islas difuminadas, cristal) y acentos en azul, coral y turquesa ═══ */
body{background:linear-gradient(180deg,#C9DFF1 0%,#DCEAF6 360px,#E8F1F9 100%) fixed;color:#15222E}
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:url('/assets/islas-canarias-mini.v34.webp') 30% 74%/190% auto no-repeat;opacity:.2;filter:blur(7px) saturate(1.3);mix-blend-mode:multiply}
body::after{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(90% 60% at 80% 110%,rgba(232,87,58,.1) 0%,rgba(232,87,58,0) 70%),radial-gradient(80% 50% at 10% 40%,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 70%)}
.paso{background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5);border-radius:24px;box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 1px 2px rgba(8,39,61,.05),0 20px 38px -26px rgba(15,74,126,.55)}
.paso h2::before{content:'';flex:0 0 10px;height:10px;border-radius:50%;background:linear-gradient(180deg,#F0653F,#C93A1C);box-shadow:0 0 0 4px rgba(232,87,58,.16)}
.opc{background:#F4F8FC;box-shadow:inset 0 0 0 1px rgba(21,92,153,.14)}
.opc[aria-checked=true]{background:#fff;box-shadow:inset 0 0 0 2px #1E73B8,0 14px 24px -16px rgba(21,92,153,.6)}
.paso .chips .chip{border:0;background:#F4F8FC;color:var(--navy);box-shadow:inset 0 0 0 1px rgba(21,92,153,.16);min-height:44px;transition:transform .16s var(--rv-ease),background-color .2s ease,color .2s ease}
.paso .chips .chip:active{transform:scale(.97)}
.paso .chips .chip[aria-checked=true]{background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,0) 50%),linear-gradient(180deg,#1E73B8,#155C99);color:#fff;box-shadow:0 12px 20px -12px rgba(21,92,153,.8)}
.dia{border:0;background:#F4F8FC;box-shadow:inset 0 0 0 1px rgba(21,92,153,.14);transition:transform .16s var(--rv-ease),background-color .2s ease}
.dia:active{transform:scale(.97)}
.dia[aria-checked=true]{background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,0) 50%),linear-gradient(180deg,#1E73B8,#155C99);color:#fff;box-shadow:0 14px 22px -14px rgba(21,92,153,.8)}
.hora{border:0;background:#F4F8FC;box-shadow:inset 0 0 0 1px rgba(21,92,153,.14)}
@media (hover:hover) and (pointer:fine){.hora:hover,.dia:hover{background:#fff;box-shadow:inset 0 0 0 1.5px rgba(21,92,153,.4)}}
.hora[aria-checked=true]{background:linear-gradient(180deg,#F0653F,#C93A1C);color:#fff;box-shadow:0 14px 22px -12px rgba(201,58,28,.85)}
.barra-accion{background:linear-gradient(180deg,rgba(232,241,249,0) 0%,rgba(220,234,246,.92) 42%,rgba(214,230,244,.98) 100%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.insignia{margin:18px 0 0;padding:14px 16px;border-radius:20px;background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 1px rgba(21,92,153,.12);color:#2C3A47}
.insignia svg{color:#0E8077}
.paso label{color:var(--navy)}
.paso input[type=text],.paso input[type=tel],.paso input[type=email]{background:#F9FBFE;box-shadow:inset 0 0 0 1px rgba(21,92,153,.16);border:0;min-height:52px}
.paso input:focus-visible{box-shadow:inset 0 0 0 1.5px #1E73B8,0 0 0 4px rgba(23,179,166,.22)}
.paso .vacio,.paso .ayuda{color:#3C4B59}
.reserva{padding-bottom:150px}
@media (prefers-reduced-motion:reduce){.paso .chips .chip,.dia{transition:none}}
/* correcciones: el hover no pisa el estado elegido; islas de fondo más limpias */
@media (hover:hover) and (pointer:fine){.hora:not([aria-checked=true]):hover,.dia:not([aria-checked=true]):hover{background:#fff;box-shadow:inset 0 0 0 1.5px rgba(21,92,153,.4)}}
.hora[aria-checked=true]:hover{background:linear-gradient(180deg,#F0653F,#C93A1C);color:#fff}
.dia[aria-checked=true]:hover{background:linear-gradient(180deg,#1E73B8,#155C99);color:#fff}
body::before{mix-blend-mode:soft-light;opacity:.6;filter:blur(9px) saturate(1.5);background-size:200% auto;background-position:34% 72%}
/* horas en 4 columnas: menos recorrido sin quitar ninguna */
.horas{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.hora{min-height:46px;font-size:15.5px;padding:0}
