/* NoorVista 3.1.22 — premium public booking experience */
#nvPublicBooking.nv-public-booking{--nv-booking-glow:rgba(14,165,233,.22);--nv-booking-deep:#073a5a;--nv-booking-cyan:#0ea5c6;padding:clamp(10px,2vw,24px)}
#nvPublicBooking .nv-public-booking__backdrop{background:radial-gradient(circle at 15% 10%,rgba(14,165,233,.18),transparent 28rem),rgba(4,25,39,.78)!important;backdrop-filter:blur(10px) saturate(120%)!important;-webkit-backdrop-filter:blur(10px) saturate(120%)!important}
#nvPublicBooking .nv-public-booking__panel{width:min(1120px,100%)!important;max-height:min(95dvh,940px)!important;border:1px solid rgba(186,230,253,.92)!important;border-radius:30px!important;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)!important;box-shadow:0 40px 120px rgba(3,34,52,.42),0 0 0 1px rgba(255,255,255,.7) inset,0 0 48px rgba(14,165,233,.12)!important}
#nvPublicBooking .nv-public-booking__panel:before{content:"";position:absolute;top:12px;left:50%;z-index:2;width:78px;height:5px;border-radius:999px;background:linear-gradient(90deg,#bfdbfe,#38bdf8,#2dd4bf);transform:translateX(-50%);opacity:.9;box-shadow:0 0 18px rgba(56,189,248,.28)}
#nvPublicBooking .nv-public-booking__header{padding:30px 30px 20px!important;background:radial-gradient(circle at 85% 0,rgba(34,211,238,.14),transparent 16rem),radial-gradient(circle at 8% 0,rgba(59,130,246,.12),transparent 15rem),linear-gradient(180deg,#f8fcff,#fff)!important}
#nvPublicBooking .nv-public-booking__eyebrow{display:none!important}
#nvPublicBooking .nv-public-booking__header h2{font-size:clamp(1.35rem,2.5vw,2rem)!important;font-weight:950!important;letter-spacing:-.02em;color:#082f49!important;text-align:right!important}
#nvPublicBooking .nv-public-booking__close{width:48px!important;height:48px!important;border-radius:16px!important;box-shadow:0 8px 22px rgba(190,18,60,.10)!important;transition:transform .18s ease,box-shadow .18s ease!important}
#nvPublicBooking .nv-public-booking__close:hover{transform:rotate(4deg) scale(1.04);box-shadow:0 12px 28px rgba(190,18,60,.16)!important}
#nvPublicBooking .nv-public-booking__progress{grid-template-columns:repeat(var(--nv-booking-progress-count,8),minmax(0,1fr))!important;gap:9px!important;padding:14px 24px!important;background:linear-gradient(180deg,#f8fbfd,#f2f8fb)!important}
#nvPublicBooking .nv-public-booking__progress-item{justify-content:center;min-height:54px!important;border-color:#d7e7ee!important;background:rgba(255,255,255,.78)!important;border-radius:15px!important;color:#496779!important;box-shadow:0 4px 12px rgba(20,62,84,.035)}
#nvPublicBooking .nv-public-booking__progress-item.is-active{border-color:#0ea5c6!important;background:linear-gradient(135deg,#075985,#0b8dad)!important;color:#fff!important;box-shadow:0 10px 24px rgba(7,126,173,.22),0 0 22px rgba(34,211,238,.12)!important}
#nvPublicBooking .nv-public-booking__progress-item.is-active span:first-child{background:rgba(255,255,255,.18)!important}
#nvPublicBooking .nv-public-booking__body{padding:26px 28px 30px!important;background:radial-gradient(circle at 100% 0,rgba(224,247,250,.5),transparent 24rem),linear-gradient(180deg,#fff,#fbfdff)!important}
#nvPublicBooking .nv-booking-step__head{margin-bottom:22px!important;padding:0 3px}
#nvPublicBooking .nv-booking-step__head h3{font-size:1.18rem!important;font-weight:950!important;color:#0b3851!important;text-align:right!important}
#nvPublicBooking .nv-booking-step__head p{font-size:.87rem!important;color:#6d8391!important;text-align:right!important}
#nvPublicBooking .nv-booking-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
#nvPublicBooking .nv-booking-service-choice{position:relative;isolation:isolate;min-height:158px!important;overflow:hidden;padding:21px 22px!important;border:1px solid #bfe2ef!important;border-radius:22px!important;background:radial-gradient(circle at 95% 0,rgba(34,211,238,.12),transparent 9rem),linear-gradient(145deg,#fff 0%,#f3fbfe 100%)!important;box-shadow:0 12px 30px rgba(7,71,100,.07),inset 0 1px 0 rgba(255,255,255,.9)!important;text-align:right!important;align-content:center!important}
#nvPublicBooking .nv-booking-service-choice:before{content:"";position:absolute;inset:auto -35px -55px auto;z-index:-1;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(14,165,198,.13),transparent 68%)}
#nvPublicBooking .nv-booking-service-choice:after{display:none!important;content:none!important}
#nvPublicBooking .nv-booking-service-choice:hover,#nvPublicBooking .nv-booking-service-choice:focus-visible{border-color:#31b9d5!important;background:linear-gradient(145deg,#fff,#ebfaff)!important;box-shadow:0 18px 42px rgba(7,126,173,.15),0 0 0 4px rgba(14,165,198,.08),0 0 30px rgba(34,211,238,.14)!important;transform:translateY(-3px)!important}
#nvPublicBooking .nv-booking-service-choice.is-selected{border-color:#087ea8!important;background:linear-gradient(145deg,#eafaff,#fff)!important;box-shadow:0 18px 42px rgba(7,126,173,.17),0 0 0 4px rgba(14,165,198,.12)!important}
#nvPublicBooking .nv-booking-service-choice .nv-booking-choice__top{display:grid!important;grid-template-columns:58px minmax(0,1fr);align-items:center!important;justify-content:stretch!important;gap:14px!important}
#nvPublicBooking .nv-booking-service-choice .nv-booking-choice__top:before{content:"";width:56px;height:56px;grid-column:1;grid-row:1;border-radius:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230878a5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z'/%3E%3Ccircle cx='12' cy='12' r='3.2'/%3E%3Cpath d='M17.5 4.5 20 2m-1 5h3'/%3E%3C/svg%3E") center/29px no-repeat,linear-gradient(145deg,#e2f8fc,#fff);border:1px solid #b8e5ef;box-shadow:0 10px 25px rgba(8,126,165,.14),0 0 22px rgba(34,211,238,.15)}
#nvPublicBooking .nv-booking-service-choice .nv-booking-choice__top strong{grid-column:2;grid-row:1;font-size:1.02rem!important;line-height:1.85!important;text-align:right!important;color:#0b3851!important}
#nvPublicBooking .nv-booking-service-details{margin:14px 72px 0 0!important;color:#587386!important;font-size:.82rem!important;line-height:1.9!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-align:right!important}
#nvPublicBooking .nv-booking-service-choice .nv-booking-choice__meta,#nvPublicBooking .nv-booking-service-choice .nv-booking-service-insurances,#nvPublicBooking .nv-booking-service-choice .nv-booking-pill{display:none!important}
#nvPublicBooking .nv-booking-choice:not(.nv-booking-service-choice){border-radius:19px!important;background:linear-gradient(145deg,#fff,#f7fbfd)!important;box-shadow:0 9px 24px rgba(20,62,84,.06)!important;text-align:right!important}
#nvPublicBooking .nv-booking-choice__icon{border:1px solid #bfe5ef!important;background:linear-gradient(145deg,#e3f8fc,#fff)!important;box-shadow:0 8px 20px rgba(8,126,165,.11)!important}
#nvPublicBooking .nv-booking-month,#nvPublicBooking .nv-booking-day,#nvPublicBooking .nv-booking-time{border-radius:16px!important;background:linear-gradient(180deg,#fff,#f7fbfd)!important;box-shadow:0 7px 18px rgba(20,62,84,.045)}
#nvPublicBooking .nv-booking-month:hover,#nvPublicBooking .nv-booking-day:hover,#nvPublicBooking .nv-booking-time:hover{border-color:#52c4dd!important;box-shadow:0 11px 25px rgba(8,126,165,.11)!important;transform:translateY(-1px)}
#nvPublicBooking .nv-booking-form{padding:18px;border:1px solid #d4e7ee;border-radius:20px;background:linear-gradient(145deg,#fff,#f7fbfd);box-shadow:0 12px 30px rgba(20,62,84,.055)}
#nvPublicBooking input,#nvPublicBooking select,#nvPublicBooking textarea{border-radius:13px!important;border-color:#c7dfe8!important;background:#fff!important;text-align:right}
#nvPublicBooking input:focus,#nvPublicBooking select:focus,#nvPublicBooking textarea:focus{border-color:#0ea5c6!important;box-shadow:0 0 0 4px rgba(14,165,198,.11)!important}
#nvPublicBooking .nv-booking-btn--primary{border-radius:14px!important;background:linear-gradient(135deg,#075985,#0d9bb8)!important;box-shadow:0 12px 28px rgba(7,126,173,.22),0 0 20px rgba(34,211,238,.12)!important}
@media(max-width:760px){#nvPublicBooking{padding:0!important;align-items:end!important}#nvPublicBooking .nv-public-booking__panel{width:100%!important;max-height:96dvh!important;border-radius:26px 26px 0 0!important}#nvPublicBooking .nv-public-booking__header{padding:27px 17px 15px!important}#nvPublicBooking .nv-public-booking__progress{display:flex!important;overflow-x:auto!important;padding:10px 12px!important}#nvPublicBooking .nv-public-booking__progress-item{flex:0 0 120px!important}#nvPublicBooking .nv-public-booking__body{padding:19px 15px 24px!important}#nvPublicBooking .nv-booking-card-grid{grid-template-columns:1fr!important}#nvPublicBooking .nv-booking-service-details{margin-right:0!important}}

/* Additions for the canonical tariff/payment step. Base booking layout remains in public-appointment-booking-2.1.78.css. */
.nv-booking-tariff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.nv-booking-tariff-choice{display:flex!important;flex-direction:column;align-items:stretch!important;text-align:right!important;gap:10px;min-height:170px}
.nv-booking-tariff-choice .nv-booking-choice__top{width:100%}
.nv-booking-tariff-insurance{margin:0;color:#526f7d;font-size:.88rem;line-height:1.8}
.nv-booking-tariff-price{display:grid;gap:4px;padding:10px 12px;border:1px solid #cde7ef;border-radius:12px;background:#f4fbfd}
.nv-booking-tariff-price strong{font-size:1.02rem;color:#075a78}
.nv-booking-tariff-price small{color:#8296a0}.nv-booking-tariff-price small s{text-decoration-thickness:1px}
.nv-booking-tariff-price em{font-style:normal;color:#516e7b;font-size:.82rem}
.nv-booking-tariff-price.is-text strong{font-size:.92rem;line-height:1.8}
.nv-booking-tariff-note{display:block;color:#687d86;line-height:1.75;font-weight:400}
.nv-final-amount-row.is-warning{background:#fff9e9;border-color:#efd99b}.nv-final-amount-row.is-warning strong{color:#8a5b00}
@media (max-width:640px){.nv-booking-tariff-grid{grid-template-columns:1fr}.nv-booking-tariff-choice{min-height:0}}

.nv-booking-insurer-panel{grid-column:1/-1;padding:16px;border:1px solid #cde7ef;border-radius:16px;background:#f7fcfe}.nv-booking-insurer-panel>strong{display:block;margin-bottom:10px;color:#0f3b5a}.nv-booking-insurer-grid{display:flex;flex-wrap:wrap;gap:10px}.nv-booking-insurer-choice{min-height:42px;padding:8px 14px;border:1px solid #badce8;border-radius:12px;background:#fff;color:#244f64;font:inherit;font-weight:800;cursor:pointer}.nv-booking-insurer-choice:hover,.nv-booking-insurer-choice:focus-visible,.nv-booking-insurer-choice.is-selected{border-color:#0b8caf;background:#eaf9fd;color:#075a78}.nv-booking-tariff-choice.is-selected{border-color:#0b8caf!important;background:#effbfe!important}@media(max-width:640px){.nv-booking-insurer-grid{display:grid;grid-template-columns:1fr}.nv-booking-insurer-choice{width:100%}}

/* NoorVista R9 — canonical final booking review.
 * This is intentionally the last step-8 contract so older experimental
 * review-grid rules cannot squeeze or reorder the cards.
 */
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-public-booking__body{overflow-y:auto!important;overflow-x:hidden!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-step{width:100%!important;max-width:none!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-step__head{width:100%!important;max-width:none!important;margin:0 0 16px!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-grid{display:grid!important;width:100%!important;grid-template-columns:minmax(0,1.45fr) minmax(270px,.8fr)!important;grid-template-areas:"appointment patient" "amount amount"!important;gap:14px!important;align-items:start!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card,#nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card{width:100%!important;min-width:0!important;margin:0!important;padding:16px!important;border:1px solid #dbe8f1!important;border-radius:18px!important;background:linear-gradient(180deg,#fff,#f8fcff)!important;box-shadow:none!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card--appointment{grid-area:appointment!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card--patient{grid-area:patient!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card{grid-area:amount!important;display:block!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-list,#nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-rows{display:grid!important;grid-template-columns:1fr!important;gap:0!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row,#nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row{min-width:0!important;display:grid!important;grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr)!important;align-items:start!important;gap:12px!important;padding:9px 0!important;border-bottom:1px solid #e8f0f5!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row:last-child,#nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row:last-child{border-bottom:0!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row span,#nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row span{min-width:0!important;color:#6d8190!important;font-size:.78rem!important;line-height:1.75!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row strong,#nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row strong{min-width:0!important;overflow-wrap:anywhere!important;color:#123f68!important;font-size:.86rem!important;line-height:1.75!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-final-actions{position:static!important;width:100%!important;margin:16px 0 0!important;padding:14px 0 0!important;justify-content:center!important;border-top:1px solid #e5eef4!important;background:transparent!important;box-shadow:none!important}
#nvPublicBooking[data-nv-booking-current-step="8"] [data-nv-booking-submit-final]{width:min(100%,320px)!important;min-height:50px!important}
#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-action-note{width:100%!important;text-align:center!important}
@media(max-width:820px){#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-grid{grid-template-columns:1fr!important;grid-template-areas:"appointment" "patient" "amount"!important;gap:10px!important}}
@media(max-width:560px){#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-card,#nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-card{padding:13px!important;border-radius:15px!important}#nvPublicBooking[data-nv-booking-current-step="8"] .nv-booking-review-row,#nvPublicBooking[data-nv-booking-current-step="8"] .nv-final-amount-row{grid-template-columns:1fr!important;gap:2px!important;padding:8px 0!important}}
