/* «Descubre tu ruta» · cita desde «Tu siguiente paso» (CG_Form_Ruta, 2026-10-10).
   Reutiliza el modal del Semáforo (semaforo.css, .cgs-*) en verde = personas. */
.cgru-modal { --m: #17795b; --m-s: #e6f7f0; background: rgba(8, 36, 28, .62); }
.cgru-modal .cgs-resumen { background: #0f3d30; }
.cgru-modal .cgs-kicker { color: #8fe0c3; }
.cgru-modal .cgs-btn { box-shadow: 0 10px 22px -12px rgba(15, 61, 48, .9); }
.cgru-modal .cgs-btn:hover { background: #0f5c45; }
.cgru-modal .cgs-pasos li:not(.is-on):not(.is-done) { background: #eef5f2; }
.cgru-modal .cgs-fechas button, .cgru-modal .cgs-horas button { border-color: #d5e7df; }
.cgru-modal .cgs-check:hover { background: #f5faf8; }
.cgru-modal :focus-visible { outline: 3px solid #2eb98f; outline-offset: 2px; }

/* Resumen: la ruta que viaja con la cita */
.cgru-ruta { margin-bottom: 22px; padding: 14px; border-radius: 14px; background: rgba(255, 255, 255, .08); }
.cgru-ruta small { display: block; font-size: .62rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #8fe0c3; }
.cgru-ruta b { display: block; margin: 4px 0; font-size: 1.05rem; line-height: 1.25; color: #fff; }
.cgru-ruta span { font-size: .76rem; color: rgba(252, 252, 242, .7); }
ul.cgru-adjunto { margin: 0 0 auto !important; padding: 0; list-style: none; }
ul.cgru-adjunto li { position: relative; margin: 0 !important; padding: 9px 0 9px 20px; border-top: 1px solid rgba(252, 252, 242, .14); font-size: .82rem; line-height: 1.4; color: rgba(252, 252, 242, .9); }
ul.cgru-adjunto li::before { content: "✓"; position: absolute; left: 0; top: 9px; font-weight: 800; color: #2eb98f; }

/* Paso 2 · a nombre de… */
.cgru-quien { display: grid; gap: 2px; margin: 0 0 16px; padding: 12px 14px; border: 1px solid #d5e7df; border-radius: 12px; background: #fcfcf2; }
.cgru-quien small { font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #6b7c76; }
.cgru-quien b { font-size: 1rem; color: #0f3d30; }
.cgru-quien span { font-size: .82rem; color: #4a5c56; overflow-wrap: anywhere; }
.cgru-modal .cgs-campo textarea { width: 100%; min-height: 64px; margin: 0; padding: 10px 13px; border: 1.5px solid #d5e7df; border-radius: 10px; background: #fff; box-shadow: none; font-size: .95rem; line-height: 1.4; color: var(--tinta); resize: vertical; }
.cgru-modal .cgs-campo textarea:focus, .cgru-modal .cgs-campo input:focus { border-color: var(--m); box-shadow: 0 0 0 3px rgba(23, 121, 91, .16); outline: 0; }
.cgru-modal .cgs-label small { font-weight: 400; color: #8a8a8a; }
.cgru-costo { margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: #fff7e6; border: 1px solid #f2d9a4; }
.cgru-costo p { margin: 0 0 4px; font-size: .88rem; font-weight: 700; color: #6b4a00; }
.cgru-costo .cgs-check { padding: 6px 0; }
.cgru-costo .cgs-check:hover { background: none; }
.cgru-costo.is-error { border-color: var(--r); background: #fbeceb; }
p.cgru-privacidad { margin: 0 0 8px; font-size: .78rem; line-height: 1.45; color: #6b7c76; }
p.cgru-privacidad a { color: var(--m); }

@media (max-width: 849px) {
	.cgru-modal .cgru-adjunto { display: none; }
	.cgru-ruta { margin: 0; padding: 10px 12px; }
}

/* ---------- Tarjeta «Tu siguiente paso» (fondo verde del tema): días de la semana ---------- */
.cgru-semana { margin: 0 0 .7rem; }
.cgru-semana [hidden] { display: none !important; }
p.cgru-semana-k { margin: 0 0 .55rem; font-size: .78em; font-weight: 800; letter-spacing: .02em; color: #0f3d30; }
.cgru-semana-dias { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: .4rem; margin-bottom: .55rem; }
.cgru-semana-cargando { grid-column: 1 / -1; padding: .85rem; border: 1px dashed rgba(15, 61, 48, .35); border-radius: 14px; font-size: .82em; text-align: center; color: rgba(15, 61, 48, .8); }
.cgru-semana button.cgru-dia { display: flex; flex-direction: column; align-items: center; gap: .1rem; min-height: 0; margin: 0; padding: .55rem .1rem .5rem; border: 0; border-radius: 12px; background: #fcfcf2;
	font-size: inherit; font-weight: 400; letter-spacing: 0; line-height: 1.15; text-transform: none; color: #0f3d30; cursor: pointer; box-shadow: 0 6px 14px -10px rgba(15, 61, 48, .7); transition: transform .15s, background .15s, box-shadow .15s; }
.cgru-semana button.cgru-dia small { font-size: .62em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #17795b; }
.cgru-semana button.cgru-dia b { font-size: 1.35em; font-weight: 900; color: #0f3d30; }
.cgru-semana button.cgru-dia span { font-size: .6em; font-weight: 700; white-space: nowrap; color: #4a5c56; }
.cgru-semana button.cgru-dia:hover, .cgru-semana button.cgru-dia:focus-visible { transform: translateY(-2px); background: #fff; box-shadow: 0 12px 22px -12px rgba(15, 61, 48, .8); }
.cgru-semana button.cgru-dia:focus-visible { outline: 3px solid #0f3d30; outline-offset: 2px; }
.cgru-semana .cgru-semana-todos { min-height: 44px; }
.cgru-semana-ok { display: flex; align-items: flex-start; gap: .75rem; padding: .85rem .9rem; border-radius: 14px; background: #fcfcf2; color: #0f3d30; }
.cgru-semana-ok .cgru-ok-ico { flex: none; display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: #17795b; color: #fff; font-style: normal; font-weight: 900; }
.cgru-ok-txt { min-width: 0; }
.cgru-ok-txt small { display: block; font-size: .6em; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #17795b; }
.cgru-ok-txt b { display: block; margin: .15rem 0; font-size: .95em; line-height: 1.25; }
.cgru-ok-txt em { display: block; font-size: .72em; font-style: normal; line-height: 1.4; color: #4a5c56; }
.cg-ru .cgru-ok-txt button.cgru-ok-ics { min-height: 44px; margin: .2rem 0 0; padding: 0; border: 0; background: none; font-size: .78em; font-weight: 700; letter-spacing: 0; text-transform: none; text-decoration: underline; text-underline-offset: 3px; color: #0f3d30; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .cgru-semana button.cgru-dia { transition: none; } }

/* ---------- Paso 2 con pago (WooCommerce, 2026-10-10) ---------- */
.cgru-pago { margin: 0 0 12px; padding: 14px; border: 1px solid #d5e7df; border-radius: 14px; background: #fff; }
.cgru-pago.is-error { border-color: var(--r); background: #fdf6f5; }
dl.cgru-pago-desglose { margin: 0 0 12px; }
.cgru-pago-desglose div { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border-bottom: 1px dashed #e3ece8; font-size: .9rem; }
.cgru-pago-desglose dt, .cgru-pago-desglose dd { float: none; margin: 0; font-size: inherit; font-weight: 400; letter-spacing: 0; text-transform: none; color: #4a5c56; }
.cgru-pago-desglose .is-total { border-bottom: 0; padding-top: 8px; }
.cgru-pago-desglose .is-total dt, .cgru-pago-desglose .is-total dd { font-size: 1.05rem; font-weight: 800; color: #0f3d30; }
.cgru-pago-iconos .payment-icons { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; opacity: 1; }
.cgru-pago-iconos .payment-icon { display: inline-flex; margin: 0; padding: 4px 6px; border: 1px solid #e3ece8; border-radius: 6px; background: #fff; }
.cgru-pago-iconos .payment-icon svg { width: 38px; height: 22px; fill: #0f3d30; opacity: .9; }
ul.cgru-pago-metodos, ul.cgru-pago-cond { margin: 0 0 10px !important; padding: 0; list-style: none; }
ul.cgru-pago-metodos li, ul.cgru-pago-cond li { position: relative; margin: 0 0 4px !important; padding-left: 16px; font-size: .82rem; line-height: 1.45; color: #4a5c56; }
ul.cgru-pago-metodos li::before, ul.cgru-pago-cond li::before { content: "•"; position: absolute; left: 3px; color: #17795b; font-weight: 800; }
ul.cgru-pago-metodos b { color: #0f3d30; }
p.cgru-pago-k { margin: 6px 0 4px; font-size: .62rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #6b7c76; }
.cgru-pago .cgs-check { padding: 8px 0 4px; }
.cgru-pago .cgs-check:hover { background: none; }
p.cgru-pago-nota { margin: 4px 0 0; font-size: .78rem; color: #6b7c76; }

.cgru-semana-ok.is-apartada { background: #fff7e6; }
.cgru-semana-ok.is-apartada .cgru-ok-ico { background: #d99a1e; }
.cgru-semana-ok.is-apartada small { color: #8a5a00; }

/* Avisos por URL (apartado vencido, reagendar) */
.cgru-aviso { display: flex; align-items: flex-start; gap: 12px; max-width: 820px; margin: 0 auto 16px; padding: 14px 16px; border-radius: 14px; background: #e6f7f0; color: #0f3d30; font-size: 1rem; line-height: 1.5; }
.cgru-aviso--alerta { background: #fff7e6; color: #5c3d00; }
.cgru-aviso p { flex: 1; margin: 0; }
.cgru-aviso button { flex: none; min-height: 0; margin: 0; padding: 0 6px; border: 0; background: none; font-size: 1.4rem; line-height: 1; color: inherit; cursor: pointer; }
