/* Revisión final de Recorrido. Las fotografías originales se conservan. */
.hilo path { stroke-width:2; stroke-dasharray:none !important; stroke-dashoffset:0 !important; opacity:.82; }
.hilo circle { opacity:1 !important; }
.arrival-scene { position:relative; isolation:isolate; overflow:hidden; border-radius:14px; background:#efe4d4; aspect-ratio:4/5; }
.arrival-scene img { display:block; position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; border-radius:0; }
.arrival-scene .arrival-warm { object-position:51% 50%; opacity:1; }
.arrival-scene .arrival-bulldog { object-position:58% 56%; opacity:0; }
.arrival-control { position:absolute; z-index:3; right:14px; bottom:14px; min-width:48px; min-height:48px; border:1px solid #ffffffa0; border-radius:24px; background:#11356e; color:#fff; font:600 13px/1.1 var(--sans); padding:12px 16px; cursor:pointer; }
.arrival-control[hidden] { display:none; }
.arrival-control:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.arrival-scene.is-ready .arrival-warm { animation:arrival-warm 18s ease-in-out infinite,arrival-camera 18s linear infinite; }
.arrival-scene.is-ready .arrival-bulldog { animation:arrival-bulldog 18s ease-in-out infinite; }
.arrival-scene.is-ready.is-paused img { animation-play-state:paused; }
@keyframes arrival-camera { 0%,100%{transform:scale(1)} 50%{transform:scale(1.065)} }
@keyframes arrival-warm { 0%,36%,100%{opacity:1} 48%,78%{opacity:0} }
@keyframes arrival-bulldog { 0%,36%,100%{opacity:0} 48%,78%{opacity:1} }
.services-mesa { background:#f5f0e7; border-radius:14px; padding:24px; margin-top:42px; }
.service-plates { list-style:none; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px; padding:0; margin:0; }
.service-plates>li { grid-column:span 2; min-width:0; }
.service-plates>li:nth-child(-n+2),.service-plates>li:nth-last-child(-n+2) { grid-column:span 3; }
.service-plate { position:relative; display:flex; flex-direction:column; height:100%; min-height:228px; padding:24px; border:1px solid transparent; border-radius:10px; background:#fff; color:#11356e; text-decoration:none; }
.service-plate>.ico:first-child { width:48px; height:48px; margin-bottom:28px; }
.service-plate .placa-n { position:absolute; top:26px; right:24px; font-size:13px; color:#566074; }
.service-plate h3 { margin: auto 0 8px; font-size:23px; line-height:1.2; font-weight:600; padding-right:22px; color:#11356e; }
.service-plate p { font-size:15px; line-height:1.55; color:#566074; padding-right:24px; }
.service-plate .fl { position:absolute; right:20px; bottom:24px; width:21px; height:21px; }
.service-plate:hover { border-color:#11356e; }
.service-plate:focus-visible { outline:3px solid #11356e; outline-offset:3px; }
.palabra-in { display:block; }
.palabra-texto { max-width:860px; }
.review-stories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:38px; }
.review-story { display:flex; flex-direction:column; padding:30px; border:1px solid #dfded6; border-radius:12px; background:#f5f0e7; }
.review-story blockquote { margin:0 0 24px; font:500 clamp(21px,2vw,27px)/1.5 var(--sans); letter-spacing:-.025em; color:#11356e; }
.review-story figcaption { margin-top:auto; font-size:14px; line-height:1.65; color:#566074; }
.review-story figcaption b { display:block; color:#11356e; font-size:16px; }
.review-story a { display:inline-block; margin-top:6px; text-decoration:underline; text-underline-offset:3px; }
.review-source-note { font-size:13px; line-height:1.6; color:#566074; margin-top:20px; max-width:65em; }
.google-destination { display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding:18px 22px; margin-top:26px; border:1px solid #dfded6; border-radius:10px; width:fit-content; text-decoration:none; color:#11356e; background:#fff; }
.google-destination img { width:auto; height:18px; max-width:none; }
.google-destination span { font-weight:600; font-size:15px; }
@media(max-width:899px){
 .arrival-scene { aspect-ratio:1.2; }
 .services-mesa { padding:16px; }
 .service-plates { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .service-plates>li,.service-plates>li:nth-child(-n+2),.service-plates>li:nth-last-child(-n+2){grid-column:auto;}
 .service-plates>li:last-child { grid-column:1/-1; }
 /* Zigzag dentro del canal lateral, sin cruzar el texto. */
 .etapa-in { padding-left:64px; }
 .etapa--der .etapa-nodo { left:20px; right:auto; }
 .etapa--izq .etapa-nodo { left:0; right:auto; }
 .review-stories { gap:16px; }
 .review-story { padding:24px; }
}
@media(max-width:599px){
 .services-mesa { padding:12px; margin-top:26px; }
 .service-plates { grid-template-columns:1fr; }
 .service-plate { min-height:0; padding:20px 34px 20px 56px; }
 .service-plate>.ico:first-child { position:absolute; left:12px; top:20px; width:30px; height:30px; margin:0; }
 .service-plate h3 { font-size:20px; line-height:1.25; padding:0; overflow-wrap:anywhere; }
 .service-plate p { margin:0; padding:0; font-size:14px; }
 .service-plate .fl { right:10px; bottom:20px; width:18px; height:18px; }
 .service-plate .placa-n { display:none; }
 .review-stories { grid-template-columns:1fr; }
 .review-story blockquote { font-size:22px; }
 .etapa-foto { margin-left:-40px; }
}
@media(max-width:359px){
 .cab .lg { --u:.175px; }
 .cab-fila { gap:8px; }
}
@media(prefers-reduced-motion:reduce){
 .arrival-scene.is-ready img { animation:none !important; transform:none !important; }
 .arrival-scene .arrival-warm { opacity:1 !important; }
 .arrival-scene .arrival-bulldog { opacity:0 !important; }
 .arrival-control { display:none !important; }
}
