/* Horarios Parroquiales — «Sugerir un cambio» */
.hp-sug-wrap { margin: 1rem 0 0; font-size: .9rem; color: var(--hp-suave, #6b665e); }
.hp-sug-btn {
	display: inline; padding: 0; margin: 0; font: inherit; font-weight: 600; line-height: inherit; cursor: pointer;
	color: var(--hp-acento, #7a2e2e); background: none; border: 0;
	text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 2px;
}
.hp-sug-btn:hover { text-decoration-color: currentColor; }
.hp-sug-btn:focus-visible { outline: 2px solid var(--hp-acento, #7a2e2e); outline-offset: 2px; border-radius: 2px; }
.hp-sug-btn::after { content: ""; display: inline-block; width: .38em; height: .38em; margin: 0 0 .18em .4em; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); transition: transform .15s; }
.hp-sug-btn[aria-expanded="true"]::after { transform: rotate(-135deg); margin-bottom: -.05em; }

/* Variante botón contorneado (aviso de ciudad, ficha del templo) */
.hp-sug-btn.hp-sug-contorno {
	padding: .5rem .95rem; border: 1px solid var(--hp-acento, #7a2e2e); border-radius: 4px; background: var(--hp-fondo, #fff); text-decoration: none;
}
.hp-sug-btn.hp-sug-contorno:hover { background: var(--hp-acento, #7a2e2e); color: #fff; }

.hp-sug-panel {
	margin: .75rem 0 1rem; padding: 1.1rem 1.2rem 1rem;
	color: var(--hp-texto, #1f1d1a); background: var(--hp-fondo, #fff);
	border: 1px solid var(--hp-borde, #e4e0d8); border-top: 3px solid var(--hp-acento, #7a2e2e); border-radius: var(--hp-radio, 6px);
	font-size: .95rem; line-height: 1.45; text-align: left;
	animation: hp-sug-in .16s ease-out;
}
.hp-sug-panel.hp-sug-ancho { grid-column: 1 / -1; margin: 0; }
@keyframes hp-sug-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .hp-sug-panel { animation: none; } }

.hp-sug-form { display: grid; gap: .8rem; max-width: 46rem; margin: 0; }
.hp-sug-panel .hp-sug-form p { margin: 0; }
.hp-sug-titulo { font-weight: 700; font-size: 1.02rem; }
.hp-sug-panel .hp-sug-form .hp-sug-intro { margin: -.5rem 0 0; }
.hp-sug-intro { font-size: .85rem; color: var(--hp-suave, #6b665e); }
.hp-sug-fila { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .8rem; }
.hp-sug-f { display: flex; flex-direction: column; gap: .3rem; margin: 0; font-size: .8rem; color: var(--hp-suave, #6b665e); }
.hp-sug-f > span { font-weight: 600; letter-spacing: .01em; }
.hp-sug-f em { font-style: normal; font-weight: 400; }
.hp-sug-f input, .hp-sug-f select, .hp-sug-f textarea {
	width: 100%; min-height: 2.5rem; padding: .45rem .6rem; box-sizing: border-box;
	font: inherit; font-size: .95rem; color: var(--hp-texto, #1f1d1a);
	background: var(--hp-fondo, #fff); border: 1px solid var(--hp-borde, #e4e0d8); border-radius: 4px;
}
.hp-sug-f textarea { min-height: 6rem; resize: vertical; line-height: 1.45; }
.hp-sug-f input:focus, .hp-sug-f select:focus, .hp-sug-f textarea:focus { outline: 2px solid var(--hp-acento, #7a2e2e); outline-offset: 0; border-color: transparent; }
.hp-sug-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.hp-sug-pie { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.hp-sug-enviar {
	padding: .6rem 1.15rem; font: inherit; font-weight: 600; font-size: .95rem; cursor: pointer;
	color: #fff; background: var(--hp-acento, #7a2e2e); border: 1px solid var(--hp-acento, #7a2e2e); border-radius: 4px;
}
.hp-sug-enviar:hover { filter: brightness(.88); }
.hp-sug-enviar:disabled { opacity: .6; cursor: progress; }
.hp-sug-cancelar { padding: .6rem .2rem; font: inherit; font-size: .95rem; cursor: pointer; color: var(--hp-suave, #6b665e); background: none; border: 0; text-decoration: underline; text-underline-offset: 2px; }
.hp-sug-msg { flex-basis: 100%; margin: 0; min-height: 1.2em; font-size: .88rem; color: var(--hp-suave, #6b665e); }
.hp-sug-msg:empty { display: none; }
.hp-sug-msg.hp-sug-error { color: #a12a1f; }
.hp-sug-gracias { margin: 0; padding-left: .8rem; border-left: 3px solid #4f7a3a; font-weight: 600; }

/* Dentro de las tarjetas */
.hp-card .hp-sug-wrap { margin: .6rem 0 0; padding-top: .55rem; border-top: 1px solid var(--hp-borde, #e4e0d8); font-size: .85rem; }

@media (max-width: 600px) {
	.hp-sug-panel { padding: 1rem; }
	.hp-sug-pie .hp-sug-enviar { flex: 1 1 auto; }
}
.hp-sug-form > .hp-sug-cancelar { justify-self: start; padding-left: 0; }
