/* Pescaturismo – formulario de reserva */
.pescaturismo {
	--pescaturismo-primary: #0F2B3D;
	--pescaturismo-accent: #C4511F;
	--pescaturismo-ink: #0F2B3D;
	--pescaturismo-muted: #4A5A64;
	--pescaturismo-line: #CBD5DA;
	--pescaturismo-soft: #F5F0E6;
	--pescaturismo-sea: #E6EEF1;
	--pescaturismo-ok: #1F7A4D;
	--pescaturismo-radius: 14px;
	color: var(--pescaturismo-ink);
	max-width: 760px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.5;
}
.pescaturismo *, .pescaturismo *::before, .pescaturismo *::after { box-sizing: border-box; }
/* Hueco para la cabecera fija del tema al saltar a #reservar */
.pescaturismo[data-pescaturismo] { scroll-margin-top: var(--pescaturismo-anchor-offset, 110px); }
.pescaturismo [hidden] { display: none !important; }

.pescaturismo-form { display: flex; flex-direction: column; gap: 28px; }
.pescaturismo-step { border: 0; margin: 0; padding: 0; min-width: 0; }
.pescaturismo-step-title { display: flex; align-items: center; gap: 10px; font-size: 1.2em; font-weight: 700; margin: 0 0 14px; padding: 0; color: var(--pescaturismo-primary); }
.pescaturismo-num { display: inline-flex; width: 30px; height: 30px; border-radius: 50%; background: var(--pescaturismo-primary); color: #fff; align-items: center; justify-content: center; font-size: 15px; flex: none; }

/* Jornadas */
.pescaturismo-acts { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.pescaturismo-acts.is-single .pescaturismo-act input { position: absolute; opacity: 0; }
.pescaturismo-act { position: relative; display: flex; gap: 12px; align-items: flex-start; border: 2px solid var(--pescaturismo-line); border-radius: var(--pescaturismo-radius); padding: 16px; cursor: pointer; background: #fff; transition: border-color .15s, background .15s; }
.pescaturismo-act:hover { border-color: var(--pescaturismo-primary); }
.pescaturismo-act:has(input:checked) { border-color: var(--pescaturismo-accent); background: #FBF1EC; }
.pescaturismo-act input { margin-top: 4px; accent-color: var(--pescaturismo-accent); width: 18px; height: 18px; flex: none; }
.pescaturismo-act-body { display: flex; flex-direction: column; gap: 4px; }
.pescaturismo-act-season { align-self: flex-start; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; background: var(--pescaturismo-sea); color: var(--pescaturismo-primary); padding: 2px 10px; border-radius: 999px; }
.pescaturismo-act-name { font-size: 1.05em; }
.pescaturismo-act-desc { color: var(--pescaturismo-muted); font-size: 14px; }

/* Personas */
.pescaturismo-people { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; }
.pescaturismo-stepper { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid var(--pescaturismo-line); border-radius: var(--pescaturismo-radius); padding: 10px 12px; background: #fff; }
.pescaturismo-stepper-label { font-weight: 600; font-size: 15px; line-height: 1.25; }
.pescaturismo-stepper-ctrl { display: flex; align-items: center; gap: 6px; flex: none; }
.pescaturismo-stepper-ctrl button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--pescaturismo-line); background: #fff; color: var(--pescaturismo-primary); font-size: 22px; line-height: 1; cursor: pointer; padding: 0; }
.pescaturismo-stepper-ctrl button:hover:not(:disabled) { border-color: var(--pescaturismo-primary); }
.pescaturismo-stepper-ctrl button:disabled { opacity: .35; cursor: not-allowed; }
.pescaturismo-stepper-ctrl input { width: 2.4em; text-align: center; border: 0; background: transparent; font: inherit; font-weight: 700; font-size: 18px; color: inherit; -moz-appearance: textfield; padding: 0; }
.pescaturismo-stepper-ctrl input::-webkit-outer-spin-button, .pescaturismo-stepper-ctrl input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pescaturismo-hint { margin: 8px 0 0; color: var(--pescaturismo-muted); font-size: 14px; min-height: 1em; }

/* Calendario */
.pescaturismo-cal { border: 1px solid var(--pescaturismo-line); border-radius: var(--pescaturismo-radius); padding: 14px; background: #fff; }
.pescaturismo-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.pescaturismo-cal-title { font-size: 1.1em; }
.pescaturismo-cal-nav { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--pescaturismo-line); background: #fff; color: var(--pescaturismo-primary); font-size: 24px; line-height: 1; cursor: pointer; padding: 0; }
.pescaturismo-cal-nav:disabled { opacity: .3; cursor: not-allowed; }
.pescaturismo-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.pescaturismo-dow { text-align: center; font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--pescaturismo-muted); padding: 4px 0; }
.pescaturismo-day { display: flex; align-items: center; justify-content: center; height: 46px; border-radius: 10px; font: inherit; font-size: 15px; border: 0; padding: 0; }
.pescaturismo-day.is-empty { background: transparent; }
.pescaturismo-day.is-available { background: var(--pescaturismo-sea); color: var(--pescaturismo-primary); font-weight: 700; cursor: pointer; border: 2px solid transparent; }
.pescaturismo-day.is-available:hover { border-color: var(--pescaturismo-primary); }
.pescaturismo-day.is-selected { background: var(--pescaturismo-accent); color: #fff; }
.pescaturismo-day.is-full { color: #8A969C; text-decoration: line-through; background: #F1F3F4; }
.pescaturismo-day.is-closed, .pescaturismo-day.is-season, .pescaturismo-day.is-past { color: #A9B3B8; }
.pescaturismo-day:focus-visible, .pescaturismo-cal-nav:focus-visible, .pescaturismo-stepper-ctrl button:focus-visible, .pescaturismo-submit:focus-visible { outline: 3px solid var(--pescaturismo-accent); outline-offset: 2px; }
.pescaturismo-loading, .pescaturismo-nodays { grid-column: 1 / -1; text-align: center; color: var(--pescaturismo-muted); margin: 12px 0; font-size: 14px; }
.pescaturismo-cal-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 12px 0 0; font-size: 13px; color: var(--pescaturismo-muted); }
.pescaturismo-cal-legend > span:not(.pescaturismo-dot) { margin-right: 8px; }
.pescaturismo-dot { display: inline-block; width: 12px; height: 12px; border-radius: 4px; vertical-align: middle; margin-right: 6px; }
.pescaturismo-dot.is-available { background: var(--pescaturismo-sea); border: 1px solid #9DB6C1; }
.pescaturismo-dot.is-full { background: #F1F3F4; border: 1px solid var(--pescaturismo-line); }
.pescaturismo-dot.is-closed { background: #fff; border: 1px solid var(--pescaturismo-line); }
.pescaturismo-chosen { margin: 10px 0 0; font-weight: 700; color: var(--pescaturismo-primary); min-height: 1.5em; }
.pescaturismo-chosen.is-set::before { content: "✓ "; color: var(--pescaturismo-ok); }

/* Campos */
.pescaturismo-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.pescaturismo-span2 { grid-column: 1 / -1; }
.pescaturismo-field { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 15px; margin: 0; }
.pescaturismo-field input, .pescaturismo-field select, .pescaturismo-field textarea, .pescaturismo-prow input {
	font: inherit; font-weight: 400; font-size: 16px; color: var(--pescaturismo-ink);
	padding: 11px 13px; border: 1px solid #9FB0B8; border-radius: 10px; background: #fff; width: 100%; min-height: 46px; margin: 0;
}
.pescaturismo-field textarea { min-height: 90px; resize: vertical; }
.pescaturismo-field input:focus, .pescaturismo-field select:focus, .pescaturismo-field textarea:focus, .pescaturismo-prow input:focus { outline: none; border-color: var(--pescaturismo-primary); box-shadow: 0 0 0 3px rgba(15, 43, 61, .15); }
.pescaturismo [aria-invalid="true"] { border-color: #B42318 !important; }
.pescaturismo-step > .pescaturismo-field { margin-top: 12px; }

.pescaturismo-participants { margin-top: 18px; padding: 14px; border-radius: var(--pescaturismo-radius); background: var(--pescaturismo-soft); }
.pescaturismo-sub { margin: 0 0 10px; font-size: 14px; color: var(--pescaturismo-muted); }
.pescaturismo-sub strong { color: var(--pescaturismo-ink); }
.pescaturismo-prow { display: grid; grid-template-columns: 110px repeat(3, minmax(0, 1fr)); gap: 8px; align-items: center; margin-bottom: 8px; }
.pescaturismo-prow-label { font-size: 14px; font-weight: 700; }
.pescaturismo-check { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; cursor: pointer; margin: 6px 0 0; }
.pescaturismo-check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--pescaturismo-accent); flex: none; }
.pescaturismo-check a { color: var(--pescaturismo-primary); text-decoration: underline; }

/* Resumen y envío */
.pescaturismo-summary { border-radius: var(--pescaturismo-radius); background: var(--pescaturismo-primary); color: #fff; padding: 16px 20px; }
.pescaturismo-summary-row { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.pescaturismo-summary-row strong { font-size: 1.6em; }
.pescaturismo-summary .pescaturismo-muted { color: #CFE0E8; font-size: 14px; }
.pescaturismo-conditions { border: 1px solid var(--pescaturismo-line); border-radius: var(--pescaturismo-radius); padding: 12px 16px; font-size: 14px; color: var(--pescaturismo-muted); }
.pescaturismo-conditions summary { cursor: pointer; font-weight: 600; color: var(--pescaturismo-ink); }
.pescaturismo-conditions p { margin: 8px 0 0; }
.pescaturismo-submit { align-self: stretch; font: inherit; font-weight: 700; font-size: 18px; color: #fff; background: var(--pescaturismo-accent); border: 0; border-radius: 999px; padding: 16px 28px; cursor: pointer; min-height: 52px; }
.pescaturismo-submit:hover:not(:disabled) { filter: brightness(.93); }
.pescaturismo-submit:disabled { opacity: .5; cursor: not-allowed; }
.pescaturismo-note { margin: -16px 0 0; text-align: center; font-size: 14px; color: var(--pescaturismo-muted); }
.pescaturismo-note a { color: var(--pescaturismo-primary); }
.pescaturismo-errors { border-radius: var(--pescaturismo-radius); background: #FDECEA; color: #8A1C12; padding: 12px 16px; font-size: 15px; }
.pescaturismo-errors ul { margin: 0; padding-left: 18px; }
.pescaturismo-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.pescaturismo-success { border-radius: var(--pescaturismo-radius); background: var(--pescaturismo-sea); padding: 28px; text-align: center; outline: none; }
.pescaturismo-success h3 { margin: 0 0 8px; color: var(--pescaturismo-primary); font-size: 1.5em; }
.pescaturismo-success-meta { margin: 12px 0 0; }
.pescaturismo-alert { border-radius: var(--pescaturismo-radius); padding: 12px 16px; background: var(--pescaturismo-sea); color: var(--pescaturismo-primary); max-width: 760px; margin: 0 auto 20px; }
.pescaturismo-alert-ok { background: #E7F4EC; color: #14532D; }
.pescaturismo-alert-error { background: #FDECEA; color: #8A1C12; }

/* Tabla de precios */
.pescaturismo-price-table table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--pescaturismo-radius); overflow: hidden; }
.pescaturismo-price-table th, .pescaturismo-price-table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid #E3E8EA; }
.pescaturismo-price-table thead th { background: var(--pescaturismo-primary); color: #fff; font-weight: 600; }
.pescaturismo-price-table .pescaturismo-muted { color: var(--pescaturismo-muted); font-size: 14px; }
.pescaturismo-price-table .pescaturismo-note { margin: 10px 0 0; text-align: left; }

@media (max-width: 600px) {
	.pescaturismo-grid2 { grid-template-columns: minmax(0, 1fr); }
	.pescaturismo-prow { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding-bottom: 8px; border-bottom: 1px solid var(--pescaturismo-line); }
	.pescaturismo-prow-label { grid-column: 1 / -1; }
	.pescaturismo-prow input[name$="[document]"] { grid-column: 1 / -1; }
	.pescaturismo-cal { padding: 10px; }
	.pescaturismo-cal-grid { gap: 3px; }
	.pescaturismo-day { height: 40px; font-size: 14px; }
}
