/* Presentation is scoped to the existing /reservas/ page. */
body.elgatec-booking-a10 { --elgb-ink:#102a3d; --elgb-muted:#50677a; --elgb-line:#d8e4eb; --elgb-cyan:#43d4ed; --elgb-yellow:#ffda38; --elgb-navy:#092235; }
body.elgatec-booking-a10 .portal-page>.page-hero { background:linear-gradient(118deg,#091b2a 5%,#11384d 74%,#154863); }
body.elgatec-booking-a10 .portal-page>.page-hero .page-hero__inner { padding-block:54px 60px; }
body.elgatec-booking-a10 .portal-page>.page-hero h1 { max-width:920px; font-size:clamp(2.15rem,4.2vw,3.8rem); line-height:1.08; letter-spacing:-.04em; }
body.elgatec-booking-a10 .portal-page>.page-hero p { max-width:700px; color:#d6e7ef; }
body.elgatec-booking-a10 .portal-page>.section { padding-block:64px 92px; background:#f5f8fa; }
body.elgatec-booking-a10 .shortcode-shell { width:min(1200px,calc(100% - 48px)); max-width:1200px; margin-inline:auto; }
.elgb-page,.elgb-page * { box-sizing:border-box; }
.elgb-page { color:var(--elgb-ink); }
.elgb-page h2,.elgb-page h3,.elgb-page p { margin-top:0; }
.elgb-page h2 { font-size:clamp(1.65rem,2.6vw,2.5rem); line-height:1.18; letter-spacing:-.035em; color:var(--elgb-ink); }
.elgb-page h3 { color:var(--elgb-ink); line-height:1.3; }
.elgb-page p { line-height:1.7; color:var(--elgb-muted); }
.elgb-page a { color:#09627f; }
.elgb-page a:hover { color:#0b354c; }
.elgb-page :focus-visible { outline:3px solid #058aa8; outline-offset:4px; }
.elgb-page .elgb-kicker { margin:0 0 13px; color:#08718c; font-size:.73rem; font-weight:850; letter-spacing:.14em; line-height:1.5; text-transform:uppercase; }
.elgb-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:50px; align-items:end; margin-bottom:38px; }
.elgb-intro h2 { margin-bottom:0; }
.elgb-intro>p { max-width:520px; margin-bottom:2px; }
.elgb-booking-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr); align-items:start; gap:28px; scroll-margin-top:130px; }
.elgb-form-panel { min-width:0; padding:34px; border:1px solid var(--elgb-line); border-radius:24px; background:#fff; box-shadow:0 16px 48px rgba(10,40,57,.045); }
.elgb-form-heading { display:flex; align-items:center; gap:16px; }
.elgb-form-heading h2 { margin:0; font-size:clamp(1.55rem,2.2vw,2rem); }
.elgb-form-heading .elgb-kicker { margin-bottom:5px; }
.elgb-step { display:grid; place-items:center; flex:0 0 48px; width:48px; height:52px; border-radius:14px; color:#09334a; background:var(--elgb-yellow); font-size:.8rem; font-weight:900; font-variant-numeric:tabular-nums; }
.elgb-form-lead { margin:22px 0 28px; padding-bottom:25px; border-bottom:1px solid var(--elgb-line); font-size:.94rem; }
.elgb-page .elgb-privacy-note { margin:22px 0 0; font-size:.79rem; line-height:1.6; }
.elgb-privacy-note a { text-decoration:underline; text-underline-offset:3px; }
.elgb-preparation { padding:34px; border-radius:24px; background:var(--elgb-navy); color:#fff; }
.elgb-preparation h2 { margin-bottom:0; font-size:clamp(1.55rem,2.15vw,2rem); color:#fff; }
.elgb-preparation .elgb-kicker { color:var(--elgb-cyan); }
.elgb-preparation-top { position:relative; padding-top:53px; }
.elgb-line-symbol { position:absolute; top:-10px; left:0; color:var(--elgb-yellow); font-size:2.8rem; font-weight:400; }
.elgb-checklist { display:grid; gap:23px; margin:31px 0 0; padding:0; list-style:none; counter-reset:prepare; }
.elgb-checklist li { position:relative; padding-left:29px; counter-increment:prepare; }
.elgb-checklist li::before { content:counter(prepare,decimal-leading-zero); position:absolute; top:2px; left:0; color:var(--elgb-cyan); font-size:.65rem; font-weight:850; }
.elgb-checklist strong { display:block; margin-bottom:6px; font-size:.94rem; color:#fff; }
.elgb-checklist span { display:block; color:#baceDC; font-size:.85rem; line-height:1.65; }
.elgb-availability-note { margin-top:31px; padding-top:25px; border-top:1px solid #2b4759; }
.elgb-availability-note>strong { display:block; color:var(--elgb-yellow); font-size:.9rem; }
.elgb-availability-note p { margin:10px 0 16px; color:#baceDC; font-size:.83rem; }
.elgb-availability-note a { display:inline-flex; align-items:center; justify-content:space-between; gap:20px; color:#fff; font-weight:800; font-size:.9rem; text-decoration:none; }
.elgb-availability-note a:hover { color:var(--elgb-cyan); }
.elgb-availability-note a span { color:var(--elgb-yellow); }
.elgb-service-guide { margin-top:85px; }
.elgb-section-heading { max-width:700px; margin-bottom:29px; }
.elgb-section-heading h2 { margin-bottom:15px; }
.elgb-section-heading>p:last-child { margin-bottom:0; }
.elgb-service-list { display:grid; grid-template-columns:1fr 1fr; column-gap:52px; border-top:1px solid var(--elgb-line); }
.elgb-service-list>a { display:grid; grid-template-columns:25px minmax(0,1fr) 20px; align-items:start; column-gap:17px; padding:27px 0; border-bottom:1px solid var(--elgb-line); text-decoration:none; }
.elgb-service-list>a:hover h3 { color:#08718c; }
.elgb-service-number { padding-top:3px; color:#08718c; font-size:.7rem; font-weight:850; }
.elgb-service-list h3 { margin:0 0 8px; font-size:1.15rem; transition:color .15s ease; }
.elgb-service-list p { margin:0; font-size:.89rem; line-height:1.6; }
.elgb-service-list>a>span:last-child { color:#08718c; font-size:1.3rem; }
.elgb-faq-section { display:grid; grid-template-columns:.85fr 1.35fr; gap:62px; margin-top:85px; padding-top:50px; border-top:1px solid var(--elgb-line); }
.elgb-faq-list details { border-bottom:1px solid var(--elgb-line); }
.elgb-faq-list summary { position:relative; padding:22px 32px 22px 0; cursor:pointer; font-weight:750; color:var(--elgb-ink); line-height:1.55; list-style:none; }
.elgb-faq-list details:first-child summary { padding-top:0; }
.elgb-faq-list summary::-webkit-details-marker { display:none; }
.elgb-faq-list summary::after { content:'+'; position:absolute; right:3px; top:21px; color:#08718c; font-size:1.25rem; line-height:1.2; }
.elgb-faq-list details:first-child summary::after { top:0; }
.elgb-faq-list details[open] summary::after { content:'−'; }
.elgb-faq-list details>p { margin:0; padding:0 22px 23px 0; font-size:.92rem; }

/* Keep the live booking controls and their submission contract. */
.elgb-page #elgBookingApp { max-width:none; width:100%; padding:0; margin:0; border:0; border-radius:0; background:transparent; font-family:inherit; box-shadow:none; }
.elgb-page #elgBookingApp::before { display:none; }
.elgb-page #elgBookingApp .elg-title { color:var(--elgb-ink); font-size:1rem; letter-spacing:0; text-transform:none; text-align:left; margin:0 0 22px; }
.elgb-page #elgBookingApp .elg-title span { color:#08718c!important; }
.elgb-page #elgForm { display:block; margin:0; }
.elgb-page #elgForm .elg-input-group { margin:0 0 21px; min-width:0; }
.elgb-page #elgForm .elg-input-group[style*="display:flex"] { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px!important; align-items:start; }
.elgb-page #elgForm .elg-input-group[style*="display:flex"]>p { grid-column:1/-1; min-width:0; margin:0; }
.elgb-page #elgForm .elgb-field { min-width:0; }
.elgb-page #elgForm label { display:block; margin:0 0 8px; color:var(--elgb-ink)!important; font-size:.86rem!important; font-weight:700; letter-spacing:0; line-height:1.45; text-transform:none!important; }
.elgb-page #elgForm .elg-input { width:100%; min-width:0; min-height:53px; padding:13px 14px; border:1px solid #bed0dc; border-radius:9px; outline:0; background:#fcfdfd; color:var(--elgb-ink); font:inherit; font-size:1rem; line-height:1.5; box-shadow:none; transition:border-color .15s ease,box-shadow .15s ease; }
.elgb-page #elgForm .elg-input::placeholder { color:#697f8d; opacity:1; }
.elgb-page #elgForm .elg-input:focus { border-color:#087f9c; outline:2px solid rgba(7,143,177,.18); outline-offset:2px; box-shadow:0 0 0 3px rgba(25,166,195,.08); }
.elgb-page #elgDate { cursor:pointer; background:linear-gradient(90deg,#f9fcfd,#eef8fb)!important; }
.elgb-page #elgForm .elg-submit { display:block; width:100%; min-height:56px; margin:25px 0 0; padding:15px 18px; border:1px solid #e4c229; border-radius:10px; background:var(--elgb-yellow); color:#102a3d; font-family:inherit; font-size:.95rem; font-weight:850; line-height:1.45; text-transform:none; letter-spacing:0; box-shadow:0 5px 14px rgba(210,166,0,.13); transform:none; }
.elgb-page #elgForm .elg-submit:hover { background:#ffe46e; transform:none; }
.elgb-page #elgForm .elg-submit:disabled { opacity:.65; cursor:wait; }
.elgb-page #elgSlotsContainer { margin-top:23px; }
.elgb-page #elgSlotsGrid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-top:11px; }
.elgb-page #elgSlotsGrid .elg-slot-btn { display:grid; align-items:center; min-height:43px; padding:10px 5px; border:1px solid #c8d8e3; border-radius:7px; background:#f8fbfc; color:var(--elgb-ink); font-size:.84rem; line-height:1.25; }
.elgb-page #elgSlotsGrid .elg-slot-btn:hover:not(.disabled) { border-color:#088ba7; background:#e9f8fb; color:var(--elgb-ink); }
.elgb-page #elgSlotsGrid .elg-slot-btn.selected { border-color:var(--elgb-yellow); background:var(--elgb-yellow); color:var(--elgb-ink); box-shadow:none; }
.elgb-page #elgSlotsGrid .elg-slot-btn.disabled { border-color:#e1e7ec; background:#eef2f5; color:#6d7e8b; box-shadow:none; }
.elgb-page #elgResponse { border-radius:12px; color:var(--elgb-ink); font-size:.94rem; line-height:1.65; }
.elgb-page #elgResponse.elg-success { border:1px solid #a3dce7; background:#eefafd; color:var(--elgb-ink); }
.elgb-page #elgResponse.elg-error { border:1px solid #c0d0da; background:#eef4f8; color:var(--elgb-ink); }
.elgb-page #elgResponse .elg-pulse { animation:none; }
.elgb-page #elgResponse>div>strong { color:#08627c!important; }
.elgb-page #elgResponse>div>div:first-child { background:var(--elgb-cyan)!important; }
.elgb-page #elgResponse p[style*="color:#aaa"] { color:var(--elgb-muted)!important; }

/* The original calendar remains the source of dates and availability. */
.elgb-page #elgCalendarOverlay { background:rgba(6,24,39,.7); backdrop-filter:blur(3px); }
.elgb-page #elgCalendarPopup { width:calc(100% - 32px); max-width:410px; min-height:0; max-height:calc(100dvh - 48px); overflow-y:auto; padding:24px; border:1px solid #99c7d5; border-radius:20px; background:#fff; color:var(--elgb-ink); box-shadow:0 24px 80px rgba(3,21,35,.28); }
.elgb-page #elgCalendarPopup .elg-calendar-header { color:var(--elgb-ink); margin:10px 0 23px; padding-top:11px; gap:10px; }
.elgb-page #elgCalendarPopup .elg-calendar-header button { min-width:39px; min-height:39px; border:1px solid #cae1e9; border-radius:10px; background:#edf8fb; color:var(--elgb-ink); }
.elgb-page #elgCalendarPopup .elg-calendar-grid { gap:5px; }
.elgb-page #elgCalendarPopup .elg-cal-day-header { padding:5px 0 11px; color:#587080; font-size:.72rem; }
.elgb-page #elgCalendarPopup .elg-cal-day { min-width:0; background:#f1f6f8; border:1px solid #e0eaf0; color:var(--elgb-ink); font-size:.86rem; }
.elgb-page #elgCalendarPopup .elg-cal-day:hover:not(.disabled) { background:var(--elgb-yellow); border-color:var(--elgb-yellow); }
.elgb-page #elgCalendarPopup .elg-cal-day.disabled { background:#f9fafb; border-color:#f1f4f6; color:#9caab4!important; }
.elgb-page #elgCalendarPopup .elgb-calendar-close { display:block; width:max-content; margin:0 0 0 auto; padding:2px 3px; color:#28617c; font-size:.78rem; font-weight:750; cursor:pointer; }
.elgb-page .elgb-field-required { color:#2c728b; }

@media (max-width:1000px) {
    .elgb-booking-layout { grid-template-columns:minmax(0,1.25fr) minmax(260px,.85fr); gap:20px; }
    .elgb-form-panel,.elgb-preparation { padding:27px; }
    .elgb-faq-section { grid-template-columns:.8fr 1.2fr; gap:35px; }
}
@media (max-width:760px) {
    body.elgatec-booking-a10 .shortcode-shell { width:calc(100% - 32px); }
    body.elgatec-booking-a10 .portal-page>.page-hero .page-hero__inner { padding-block:36px 42px; }
    body.elgatec-booking-a10 .portal-page>.section { padding-block:38px 62px; }
    .elgb-intro,.elgb-booking-layout,.elgb-faq-section { grid-template-columns:1fr; }
    .elgb-intro { gap:19px; margin-bottom:27px; }
    .elgb-intro>p { max-width:none; }
    .elgb-desktop-break { display:none; }
    .elgb-form-panel,.elgb-preparation { padding:25px; border-radius:19px; }
    .elgb-booking-layout { gap:25px; }
    .elgb-preparation-top { padding-top:0; padding-right:35px; }
    .elgb-line-symbol { right:0; left:auto; top:-14px; }
    .elgb-preparation h2 br { display:none; }
    .elgb-service-guide { margin-top:55px; }
    .elgb-service-list { grid-template-columns:1fr; }
    .elgb-faq-section { margin-top:55px; padding-top:34px; gap:6px; }
    .elgb-service-list>a { padding-block:24px; }
}
@media (max-width:420px) {
    .elgb-form-panel,.elgb-preparation { padding:21px 18px; }
    .elgb-form-heading { gap:11px; }
    .elgb-step { width:39px; flex-basis:39px; height:44px; border-radius:11px; }
    .elgb-form-heading h2 { font-size:1.45rem; }
    .elgb-form-heading .elgb-kicker { font-size:.63rem; letter-spacing:.1em; }
    .elgb-page #elgForm .elg-input-group[style*="display:flex"] { grid-template-columns:1fr; }
    .elgb-page #elgSlotsGrid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .elgb-page #elgCalendarPopup { width:calc(100% - 24px); padding:18px; }
    .elgb-page #elgCalendarPopup .elg-calendar-grid { gap:4px; }
}
@media (prefers-reduced-motion:reduce) {
    .elgb-page *, .elgb-page *::before, .elgb-page *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
