/* Amazon Guía Core — formularios de contacto y reservas.
   Usa las variables del tema si existen (--ag-*) y valores propios si no. */

.agc {
	--c-y: var(--ag-yellow, #F8D500);
	--c-o: var(--ag-orange, #EF6A1E);
	--c-k: var(--ag-black, #000);
	--c-w: var(--ag-white, #fff);
	--c-ink2: rgba(0, 0, 0, .72);
	--c-line: rgba(0, 0, 0, .14);
	--c-line2: rgba(0, 0, 0, .24);
	--c-soft: #F7F7F4;
	--c-tint: #FFF9D9;
	--c-tint: color-mix(in srgb, var(--c-y) 16%, var(--c-w));
	--c-err: #B3261E;
	--c-ok: #1E7B34;
	--r: 18px;
	--ease: cubic-bezier(.22, .61, .36, 1);
	position: relative;
	padding-block: clamp(56px, 7vw, 104px);
	font-family: var(--ag-font-body, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
	color: var(--c-k);
	overflow-x: clip;
}
.agc *, .agc *::before, .agc *::after { box-sizing: border-box; }
.agc-wrap { width: 100%; max-width: calc(1200px + 2 * var(--ag-gutter, 24px)); margin-inline: auto; padding-inline: var(--ag-gutter, clamp(16px, 4vw, 32px)); }
.agc .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap; }

.agc-head { max-width: 760px; margin-bottom: clamp(24px, 4vw, 40px); }
.agc-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: .8125rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 16px; }
.agc-eyebrow::before { content: ""; width: 26px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--c-y) 50%, var(--c-o) 50%); }
.agc-title { font-family: var(--ag-font-head, inherit); font-size: clamp(1.8rem, 1.3rem + 2.2vw, 2.9rem); line-height: 1.08; letter-spacing: -.02em; margin: 0 0 .4em; font-weight: 700; }
.agc-lead { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); color: var(--c-ink2); margin: 0; }
.agc-note { margin: 14px 0 0; display: inline-block; padding: 8px 14px; border-radius: 12px; background: var(--c-tint); border: 1px solid var(--c-y); font-weight: 600; }

.agc-card {
	background: var(--c-w); border: 1px solid var(--c-line); border-radius: var(--r);
	padding: clamp(18px, 2.6vw, 30px);
	box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 12px 32px -18px rgba(0, 0, 0, .2);
}
.agc-card--dark { background: var(--c-k); color: var(--c-w); border-color: var(--c-k); }
.agc-card--dark p { color: rgba(255, 255, 255, .82); }

/* Contacto */
.agc-contact__grid { display: grid; gap: 24px; align-items: start; }
@media (min-width: 1000px) { .agc-contact__grid { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 32px; } .agc-aside { position: sticky; top: 110px; } }
.agc-aside { display: grid; gap: 18px; }
.agc-aside__title { font-family: var(--ag-font-head, inherit); font-size: 1.3rem; margin: 0 0 10px; line-height: 1.2; }
.agc-next { margin: 0; padding: 0; list-style: none; counter-reset: n; display: grid; gap: 12px; }
.agc-next li { counter-increment: n; display: grid; grid-template-columns: 30px 1fr; gap: 10px; color: var(--c-ink2); }
.agc-next li::before { content: counter(n); display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--c-y); color: var(--c-k); font-weight: 800; font-size: .85rem; }
.agc-contact-data { list-style: none; margin: 18px 0 0; padding: 14px 0 0; border-top: 1px solid var(--c-line); display: grid; gap: 6px; }
.agc-contact-data a { font-weight: 700; color: inherit; }
.agc-motivo { display: flex; gap: 10px; align-items: center; padding: 12px 16px; border-radius: 14px; background: var(--c-tint); border: 1px solid var(--c-y); margin: 0 0 22px; font-weight: 600; }
.agc-motivo .agc-icon { flex: 0 0 24px; }

/* Campos */
.agc-form { display: block; }
.agc-fieldset { border: 0; margin: 0 0 22px; padding: 0; min-width: 0; }
.agc-card.agc-fieldset { padding: clamp(18px, 2.6vw, 28px); }
.agc-legend { display: flex; align-items: center; gap: 10px; float: left; width: 100%; margin: 0 0 14px; padding: 0; font-family: var(--ag-font-head, inherit); font-size: clamp(1.15rem, 1.05rem + .4vw, 1.4rem); font-weight: 700; line-height: 1.25; }
.agc-legend + * { clear: both; }
.agc-legend__n { display: grid; place-items: center; flex: 0 0 32px; height: 32px; border-radius: 50%; background: var(--c-k); color: var(--c-w); font-size: .9rem; font-family: var(--ag-font-body, inherit); }
.agc-row { display: grid; gap: 0 18px; }
@media (min-width: 640px) { .agc-row { grid-template-columns: 1fr 1fr; } }
.agc-field { margin-bottom: 18px; }
.agc-field > label { display: block; font-weight: 700; margin-bottom: 6px; }
.agc-req { color: var(--c-o); }
.agc-opt { font-weight: 500; color: var(--c-ink2); font-size: .9em; }
.agc-hint { margin: -2px 0 8px; font-size: .9rem; color: var(--c-ink2); }
.agc-field input[type="text"], .agc-field input[type="email"], .agc-field input[type="url"], .agc-field textarea {
	width: 100%; min-height: 52px; padding: 13px 16px;
	font: inherit; font-size: 1rem; color: var(--c-k);
	background: var(--c-w); border: 1.5px solid var(--c-line2); border-radius: 14px;
	transition: border-color .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
	-webkit-appearance: none; appearance: none;
}
.agc-field textarea { min-height: 120px; resize: vertical; line-height: 1.5; }
.agc-field input:hover, .agc-field textarea:hover { border-color: var(--c-k); }
.agc-field input:focus, .agc-field textarea:focus { outline: none; border-color: var(--c-k); box-shadow: 0 0 0 4px var(--c-y); }
.agc-field.is-invalid input, .agc-field.is-invalid textarea { border-color: var(--c-err); background: #FFF6F5; }
.agc-error { margin: 6px 0 0; color: var(--c-err); font-size: .9rem; font-weight: 600; display: flex; gap: 6px; align-items: flex-start; }
.agc-error::before { content: "!"; flex: 0 0 18px; height: 18px; border-radius: 50%; background: var(--c-err); color: #fff; font-size: .72rem; display: grid; place-items: center; margin-top: 2px; }
.agc-error[hidden] { display: none; }
.agc-field--check label { display: flex; gap: 12px; align-items: flex-start; font-weight: 500; font-size: .95rem; color: var(--c-ink2); cursor: pointer; }
.agc-field--check input { flex: 0 0 24px; width: 24px; height: 24px; margin: 0; accent-color: var(--c-k); cursor: pointer; }
.agc-field--check a { color: var(--c-k); font-weight: 700; }
.agc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Tarjetas de servicio (radios reales) */
.agc-services { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 560px) { .agc-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.agc-contact .agc-services { margin-bottom: 4px; }
@media (min-width: 1200px) { .agc-contact .agc-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.agc-service { position: relative; display: block; cursor: pointer; }
.agc-service--unsure { grid-column: 1 / -1; }
.agc-service input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.agc-service__box {
	display: flex; align-items: center; gap: 12px; height: 100%; min-height: 64px;
	padding: 12px 44px 12px 12px; border-radius: 16px;
	border: 1.5px solid var(--c-line2); background: var(--c-w);
	transition: border-color .25s var(--ease), background .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}
.agc-service:hover .agc-service__box { border-color: var(--c-k); transform: translateY(-2px); box-shadow: 0 10px 20px -16px rgba(0, 0, 0, .5); }
.agc-service__icon { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border-radius: 12px; background: var(--c-soft); transition: background .25s var(--ease), transform .35s var(--ease); }
.agc-icon { width: 22px; height: 22px; }
.agc-service__text { display: grid; gap: 2px; min-width: 0; }
.agc-service__label { font-weight: 800; line-height: 1.25; }
.agc-service__hint { font-size: .85rem; color: var(--c-ink2); line-height: 1.3; }
.agc-service__check { position: absolute; right: 14px; top: 50%; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%; border: 2px solid var(--c-line2); background: var(--c-w); transition: all .25s var(--ease); }
.agc-service input:checked + .agc-service__box { border-color: var(--c-k); background: var(--c-tint); box-shadow: 4px 4px 0 var(--c-y); }
.agc-service input:checked + .agc-service__box .agc-service__icon { background: var(--c-y); transform: rotate(-6deg); }
.agc-service input:checked + .agc-service__box .agc-service__check { border-color: var(--c-k); background: var(--c-k); box-shadow: inset 0 0 0 4px var(--c-y); }
.agc-service input:focus-visible + .agc-service__box { outline: 3px solid var(--c-k); outline-offset: 3px; box-shadow: 0 0 0 7px var(--c-y); }
.agc-fieldset.is-invalid .agc-service__box { border-color: var(--c-err); }
.agc-services--multi .agc-service__check { border-radius: 7px; }
.agc-services--multi .agc-service input:checked + .agc-service__box .agc-service__check {
	background: var(--c-k) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F8D500' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E") center / 15px no-repeat;
	box-shadow: none;
}
.agc-hint--legend { clear: both; margin: -6px 0 12px; }

/* Botones */
.agc-actions { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; margin-top: 8px; }
.agc-btn {
	--bg: var(--c-y);
	position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 54px; padding: 12px 28px; border-radius: 999px; border: 2px solid var(--bg);
	background: var(--bg); color: var(--c-k); font: inherit; font-weight: 800; font-size: 1rem; text-decoration: none; cursor: pointer;
	transition: transform .25s var(--ease), box-shadow .25s var(--ease), opacity .2s;
}
.agc-btn:hover, .agc-btn:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 22px -12px rgba(0, 0, 0, .5); }
.agc-btn:focus-visible { outline: 3px solid var(--c-k); outline-offset: 3px; box-shadow: 0 0 0 7px var(--c-y); }
.agc-card--dark .agc-btn:focus-visible { outline-color: var(--c-w); }
.agc-btn--orange { --bg: var(--c-o); }
.agc-btn--block { width: 100%; }
.agc-btn[aria-busy="true"] { cursor: progress; opacity: .85; }
.agc-btn[aria-busy="true"] .agc-spinner { display: inline-block; }
.agc-spinner { display: none; width: 18px; height: 18px; border-radius: 50%; border: 2.5px solid rgba(0, 0, 0, .25); border-top-color: var(--c-k); animation: agcSpin .8s linear infinite; }
@keyframes agcSpin { to { transform: rotate(360deg); } }
.agc-small { margin: 0; font-size: .88rem; color: var(--c-ink2); }
.agc-small a { color: var(--c-k); font-weight: 700; }

/* Estados */
.agc-status:empty { display: none; }
.agc-status { margin-top: 16px; }
.agc-alert { padding: 14px 18px; border-radius: 14px; margin: 0 0 18px; font-weight: 600; animation: agcIn .4s var(--ease) both; }
.agc-alert--ok { background: #EAF7EE; border: 1.5px solid var(--c-ok); color: #0F4D20; }
.agc-alert--error { background: #FDECEA; border: 1.5px solid var(--c-err); color: #7A1610; }
.agc-success { display: grid; gap: 10px; padding: clamp(22px, 4vw, 36px); border-radius: var(--r); background: var(--c-w); border: 2px solid var(--c-k); box-shadow: 8px 8px 0 var(--c-y); animation: agcIn .5s var(--ease) both; }
.agc-success__icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--c-y); }
.agc-success h3 { font-family: var(--ag-font-head, inherit); font-size: clamp(1.4rem, 1.2rem + 1vw, 2rem); margin: 6px 0 0; line-height: 1.15; }
.agc-success p { margin: 0; color: var(--c-ink2); }
.agc-success dl { margin: 8px 0 0; display: grid; gap: 6px; }
.agc-success dl div { display: flex; flex-wrap: wrap; gap: 4px 10px; }
.agc-success dt { font-weight: 800; }
.agc-success dd { margin: 0; }
@keyframes agcIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Reserva */
.agc-steps { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.agc-steps li { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 10px 12px; border-radius: 999px; border: 1.5px solid var(--c-line); font-weight: 700; font-size: .9rem; color: var(--c-ink2); transition: all .3s var(--ease); }
.agc-steps li span { display: grid; place-items: center; flex: 0 0 26px; height: 26px; border-radius: 50%; background: var(--c-soft); font-size: .8rem; transition: all .3s var(--ease); }
.agc-steps li.is-done { color: var(--c-k); border-color: var(--c-k); }
.agc-steps li.is-done span { background: var(--c-k); color: var(--c-w); }
.agc-steps li.is-current { color: var(--c-k); border-color: var(--c-k); background: var(--c-tint); }
.agc-steps li.is-current span { background: var(--c-y); }
@media (max-width: 700px) {
	.agc-steps li { justify-content: center; padding: 8px 4px; font-size: 0; gap: 0; }
	.agc-steps li span { font-size: .8rem; }
	.agc-steps li.is-current { font-size: .78rem; gap: 6px; grid-column: span 1; }
}
@media (max-width: 420px) { .agc-steps li.is-current { font-size: 0; gap: 0; } }

.agc-booking__grid { display: grid; gap: 18px; align-items: start; }
.agc-booking__col { display: grid; gap: 18px; min-width: 0; }
.agc-booking__col > .agc-fieldset { margin: 0; }
@media (min-width: 1000px) { .agc-booking__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 24px; } }
.agc-booking .agc-services { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 560px) { .agc-booking .agc-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.agc-tz { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 14px; padding: 10px 12px; border-radius: 12px; background: var(--c-soft); font-size: .9rem; }
.agc-tz svg { flex: 0 0 18px; margin-top: 2px; color: var(--c-o); }

.agc-cal { border: 1px solid var(--c-line); border-radius: 16px; padding: 12px; }
.agc-cal__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.agc-cal__month { margin: 0; font-weight: 800; font-size: 1.05rem; text-transform: capitalize; text-align: center; flex: 1; }
.agc-cal__nav { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--c-line2); background: var(--c-w); color: var(--c-k); cursor: pointer; transition: background .2s var(--ease); }
.agc-cal__nav:hover:not([disabled]) { background: var(--c-y); }
.agc-cal__nav[disabled] { opacity: .35; cursor: not-allowed; }
.agc-cal__nav:focus-visible, .agc-day:focus-visible, .agc-slot input:focus-visible + span { outline: 3px solid var(--c-k); outline-offset: 2px; box-shadow: 0 0 0 6px var(--c-y); }
.agc-cal__dow, .agc-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.agc-cal__dow span { text-align: center; font-size: .75rem; font-weight: 800; color: var(--c-ink2); padding: 4px 0; }
.agc-day {
	position: relative; aspect-ratio: 1; min-height: 40px; display: grid; place-items: center;
	border-radius: 12px; border: 1.5px solid transparent; background: transparent; color: rgba(0, 0, 0, .35);
	font: inherit; font-weight: 700; font-size: .95rem; cursor: default; padding: 0;
	transition: background .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.agc-day.is-available { color: var(--c-k); background: var(--c-tint); border-color: rgba(0, 0, 0, .08); cursor: pointer; }
.agc-day.is-available::after { content: ""; position: absolute; bottom: 5px; width: 5px; height: 5px; border-radius: 50%; background: var(--c-o); }
.agc-day.is-available:hover { border-color: var(--c-k); transform: translateY(-1px); }
.agc-day[aria-pressed="true"] { background: var(--c-k); color: var(--c-w); border-color: var(--c-k); }
.agc-day[aria-pressed="true"]::after { background: var(--c-y); }
.agc-day.is-today { box-shadow: inset 0 0 0 1.5px var(--c-o); }
.agc-day--pad { visibility: hidden; }
.agc-cal__msg { margin: 8px 0 0; font-size: .9rem; color: var(--c-ink2); min-height: 1.2em; }
.agc-cal.is-loading .agc-cal__grid { opacity: .45; }

.agc-slots { margin-top: 14px; }
.agc-slots__title { margin: 0 0 10px; font-weight: 700; }
.agc-slots__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; }
.agc-slot { position: relative; display: block; }
.agc-slot input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.agc-slot span { display: grid; place-items: center; min-height: 46px; border-radius: 12px; border: 1.5px solid var(--c-line2); background: var(--c-w); font-weight: 800; cursor: pointer; transition: all .2s var(--ease); animation: agcIn .35s var(--ease) both; }
.agc-slot:hover span { border-color: var(--c-k); }
.agc-slot input:checked + span { background: var(--c-y); border-color: var(--c-k); box-shadow: 3px 3px 0 var(--c-k); }

.agc-summary__list { margin: 0 0 18px; display: grid; gap: 8px; }
.agc-summary__list div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--c-soft); }
.agc-summary__list dt { font-weight: 800; }
.agc-summary__list dd { margin: 0; overflow-wrap: anywhere; }
.agc-summary .agc-small { margin-top: 12px; }

.agc-unavailable { display: flex; flex-wrap: wrap; gap: 18px; align-items: flex-start; max-width: 860px; }
.agc-unavailable > div { flex: 1 1 260px; }
.agc-unavailable__icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; background: var(--c-tint); border: 1px solid var(--c-y); }
.agc-unavailable__title { font-weight: 800; font-size: 1.15rem; margin: 0 0 6px; }
.agc-unavailable p { margin: 0 0 14px; }
.agc-admin-hint { font-size: .85rem; padding: 10px 12px; border-radius: 10px; background: var(--c-soft); border: 1px dashed var(--c-line2); }

@media (prefers-reduced-motion: reduce) {
	.agc *, .agc *::before, .agc *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.agc-spinner { animation: none; border-top-color: var(--c-k); }
}
