/* Compact commerce: all table rules scoped to the pricing accordion. */
.gpt56-card-details__content [data-motor-precio]:has(> .pricing-accordion-content) { padding:0!important; border:0!important; background:transparent!important; }
.gpt56-card-details__content:has(.pricing-accordion-content) { gap:4px; padding-top:4px; }
.pricing-accordion-content { --text-spacing:0; --title-spacing:0; color:#161616; background:#fff; padding:0; text-align:left; }
.pricing-accordion-content, .pricing-accordion-content * { box-sizing:border-box; font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace!important; }
.gpt56-card-details__content [data-motor-precio] .pricing-accordion-content > .fr-table,
.gpt56-card-details__content [data-motor-precio] .pricing-accordion-content .fr-table__wrapper,
.gpt56-card-details__content [data-motor-precio] .pricing-accordion-content .fr-table__container,
.gpt56-card-details__content [data-motor-precio] .pricing-accordion-content .fr-table__content { display:block!important; padding:0!important; margin:0!important; width:100%; overflow:visible; box-shadow:none; background:none; }
.pricing-accordion-content .pricing-table { display:table; table-layout:fixed; width:100%; min-width:0; border-collapse:collapse; border-spacing:0; margin:0; color:#161616; }
.pricing-accordion-content .pricing-table thead { background:#f6f6f6; color:#666; box-shadow:none; }
.pricing-accordion-content .pricing-table thead th { height:24px; padding:2px 4px; font-size:11px; line-height:16px; font-weight:400; border-bottom:1px solid #ddd; }
.pricing-accordion-content .pricing-table thead th:first-child { width:46%; text-align:left; }
.pricing-accordion-content .pricing-table thead th:nth-child(2) { width:23%; text-align:right; }
.pricing-accordion-content .pricing-table thead th:last-child { width:31%; text-align:right; padding-right:14px; }
.pricing-accordion-content .pricing-table tbody tr { cursor:pointer; background:#fff; }
.pricing-accordion-content .pricing-table tbody tr:nth-child(even) { background:#f6f6f6; }
.pricing-accordion-content .pricing-table tbody tr:hover,
.pricing-accordion-content .pricing-table tbody tr:focus-within { background:#ececfe; }
.pricing-accordion-content .pricing-table tbody th,
.pricing-accordion-content .pricing-table tbody td { height:48px; padding:2px 4px; border-bottom:1px solid #ddd; vertical-align:middle; font-size:12px; line-height:16px; }
.pricing-accordion-content .pricing-tier-label { display:block; font-size:13px; line-height:18px; font-weight:700; }
.pricing-accordion-content .pricing-tier-meta { display:flex; flex-wrap:wrap; align-items:center; gap:2px 4px; }
.pricing-accordion-content .pricing-installments { font-size:10px; line-height:14px; font-weight:400; color:#666; white-space:nowrap; }
.pricing-accordion-content .pricing-scholarship.fr-badge { font-size:10px; line-height:14px; padding:0 3px; min-height:14px; margin:0; white-space:nowrap; }
.pricing-accordion-content .pricing-reference { text-align:right; }
.pricing-accordion-content .pricing-before { color:#666; font-size:11px; line-height:16px; text-decoration:line-through; white-space:nowrap; }
.pricing-accordion-content .pricing-select { display:flex; align-items:center; justify-content:flex-end; gap:3px; min-height:44px; width:100%; border:0; border-radius:0; padding:0; margin:0; background:transparent; color:#161616; cursor:pointer; box-shadow:none; }
.pricing-accordion-content .pricing-now { font-size:15px; line-height:20px; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.pricing-accordion-content .pricing-select-arrow { font-family:Arial,sans-serif!important; font-size:20px; line-height:20px; color:#000091; }
.pricing-accordion-content .pricing-select:focus-visible { outline:2px solid #0a76f6; outline-offset:1px; }
.pricing-accordion-content .pricing-reserve-note { margin:4px 0 0; padding:0 4px; font:10px/14px ui-monospace,monospace; color:#666; }
/* Benefits stay in the accordion; reduce only their internal whitespace. */
.gpt56-card-details__content:has(.pricing-accordion-content) .gpt56-card-benefits { margin:0!important; padding-top:4px!important; gap:4px!important; }
@media (max-width:575px) {
 .gpt56-card-details__content:has(.pricing-accordion-content) .gpt56-card-benefits .btn-app-primary { padding-top:8px!important; padding-bottom:8px!important; min-height:40px; }
 .pricing-accordion-content .pricing-table tbody th,.pricing-accordion-content .pricing-table tbody td { padding-left:2px; padding-right:2px; }
}
@media (hover:none),(pointer:coarse) {
 html[data-gpt56-v7] article.gpt56-rich-card:not(.is-v7-active) img.v7-card-color-overlay { opacity:0!important; transform:none!important; }
 html[data-gpt56-v7] article.gpt56-rich-card:not(.is-v7-active) img.v7-card-vintage-base { opacity:1!important; transform:none!important; }
 html[data-gpt56-v7] article.gpt56-rich-card.is-v7-active img.v7-card-color-overlay { opacity:1!important; }
 html[data-gpt56-v7] article.gpt56-rich-card.is-v7-active img.v7-card-vintage-base { opacity:0!important; }
}

/* Reservation surface is separate from the existing contact form. */
.pricing-reservation-dialog { width:min(440px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); overflow:auto; padding:20px; margin:auto; border:1px solid #ddd; border-radius:12px; background:#fff; color:#161616; box-shadow:0 12px 48px #0003; }
.pricing-reservation-dialog::backdrop { background:#0008; }
.pricing-reservation-dialog * { box-sizing:border-box; }
.pricing-reservation-dialog h2 { margin:0 0 12px; padding-right:55px; font-size:20px; line-height:26px; }
.pricing-reservation-dialog .reservation-close { position:absolute; right:10px; top:8px; min-height:44px; padding:8px; border:0; background:transparent; font-size:12px; cursor:pointer; }
.pricing-reservation-dialog .reservation-selection { padding:10px; background:#f6f6f6; border-left:3px solid #000091; }
.pricing-reservation-dialog .reservation-program { font-size:13px; line-height:18px; margin:0 0 6px; }
.pricing-reservation-dialog .reservation-price { display:block; font:700 13px/18px ui-monospace,"SFMono-Regular",Menlo,monospace; }
.pricing-reservation-dialog .reservation-scholarship { font-size:12px; color:#37635f; }
.pricing-reservation-dialog .reservation-notice { margin:10px 0; font-size:12px; line-height:18px; }
.pricing-reservation-dialog .reservation-field { display:block; margin:10px 0; font-size:13px; font-weight:600; }
.pricing-reservation-dialog input, .pricing-reservation-dialog textarea { display:block; width:100%; min-height:44px; padding:8px; margin-top:4px; border:1px solid #929292; border-radius:4px; background:#fff; color:#161616; font-size:16px; }
.pricing-reservation-dialog .reservation-extra { margin:8px 0; font-size:12px; }
.pricing-reservation-dialog .reservation-extra summary { padding:6px 0; cursor:pointer; }
.pricing-reservation-dialog .reservation-status { font-size:12px; margin:4px 0; }
.pricing-reservation-dialog .reservation-status:empty { display:none; }
.pricing-reservation-dialog .reservation-submit { width:100%; min-height:44px; padding:10px; margin-top:8px; border:0; border-radius:4px; background:#000091; color:#fff; font-size:14px; font-weight:700; cursor:pointer; }
.pricing-reservation-dialog .reservation-submit:disabled { opacity:.65; cursor:wait; }
.pricing-reservation-dialog :focus-visible { outline:2px solid #0a76f6; outline-offset:2px; }
@media(max-width:575px) { .pricing-reservation-dialog { width:100%; max-height:calc(100dvh - 24px); margin:auto 0 0; padding:16px 16px max(16px,env(safe-area-inset-bottom)); border-radius:16px 16px 0 0; } }

/* A compact phone table, with a readable type scale on wider screens. */
@media (min-width:576px) {
 .pricing-accordion-content .pricing-table thead th { height:30px; padding:4px 8px; font-size:13px; line-height:20px; }
 .pricing-accordion-content .pricing-table tbody th,
 .pricing-accordion-content .pricing-table tbody td { height:56px; padding:4px 8px; font-size:14px; line-height:20px; }
 .pricing-accordion-content .pricing-tier-label { font-size:15px; line-height:22px; }
 .pricing-accordion-content .pricing-installments,
 .pricing-accordion-content .pricing-scholarship.fr-badge { font-size:12px; line-height:18px; }
 .pricing-accordion-content .pricing-before { font-size:14px; line-height:22px; }
 .pricing-accordion-content .pricing-now { font-size:19px; line-height:26px; }
 .pricing-accordion-content .pricing-reserve-note { font-size:12px; line-height:18px; margin-top:6px; }
 .pricing-accordion-content .pricing-select { gap:8px; }
}
@media (min-width:1024px) {
 .pricing-accordion-content .pricing-table thead th { font-size:14px; }
 .pricing-accordion-content .pricing-before { font-size:16px; line-height:24px; }
 .pricing-accordion-content .pricing-now { font-size:22px; line-height:28px; }
 .pricing-accordion-content .pricing-tier-label { font-size:16px; line-height:24px; }
 .pricing-accordion-content .pricing-table tbody th,
 .pricing-accordion-content .pricing-table tbody td { height:60px; padding:6px 10px; }
}
@media (min-width:1920px) {
 .pricing-accordion-content .pricing-before { font-size:18px; line-height:26px; }
 .pricing-accordion-content .pricing-now { font-size:24px; line-height:30px; }
}

/* Override the DSFR no-scroll intrinsic width within this component only. */
.pricing-accordion-content .fr-table.fr-table--no-scroll .fr-table__wrapper .fr-table__content table.pricing-table { width:100%; }
.pricing-accordion-content .fr-table .pricing-table thead th:nth-child(n+2),
.pricing-accordion-content .fr-table .pricing-table .pricing-reference { text-align:right; }
