/* Shared catalogue and private checkout. */
[hidden]{display:none!important}
.catalog-shell{width:min(calc(100% - 2rem),1240px);margin-inline:auto}
.catalog-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem}
.catalog-heading h2{max-width:14ch}
.catalog-heading>p{max-width:33rem;color:#bcc5c8;font-size:1.05rem}
.catalog-count{display:inline-block;padding:.45rem .7rem;border:1px solid rgba(30,220,242,.4);border-radius:99px;color:#8eebf5;font-size:.875rem;margin-bottom:1.1rem}
.catalog-services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.offer-card{display:flex;flex-direction:column;min-width:0;padding:1.55rem;border:1px solid rgba(255,255,255,.2);border-radius:1rem;background:linear-gradient(140deg,rgba(30,220,242,.045),transparent 50%),#101418}
.offer-card h3{font-family:inherit;text-transform:none;letter-spacing:-.03em;font-size:1.55rem;line-height:1.12;margin:0 0 1rem}
.offer-card .offer-description{font-size:1rem;line-height:1.55;color:#aeb9bd;margin-bottom:1.2rem}
.offer-price{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap;margin:.3rem 0 .5rem}
.offer-price strong{font-size:clamp(2rem,3vw,3.1rem);letter-spacing:-.045em;color:#f1f5f5;line-height:1.1}
.offer-price span{color:#c2ccce;font-size:.95rem}
.offer-meta,.offer-note{font-size:.9rem;color:#a8e9f2;line-height:1.5;margin-bottom:1.2rem}
.offer-details{list-style:none;padding:0;margin:0 0 1.5rem;color:#c7d0d3;font-size:.95rem}
.offer-details li{padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.12)}
.offer-card .offer-actions{margin-top:auto;display:grid;gap:.75rem}
.offer-card .btn{width:100%;font-size:.875rem;letter-spacing:.045em;min-height:3.25rem}
.offer-card .btn-primary,.checkout-submit{background:#1edcf2!important;color:#031114!important;border-color:#1edcf2!important}
.offer-actions>a:not(.btn){text-align:center;font-size:.875rem;color:#a8e9f2;text-decoration:underline;text-underline-offset:.2rem}
.plan-group{margin-top:2.6rem;scroll-margin-top:7rem}
.plan-group-heading{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:1rem}
.plan-group-heading h3{font-family:inherit;font-size:1.35rem;text-transform:none;margin:0;letter-spacing:-.02em}
.plan-group-heading p{color:#aeb9bd;font-size:.95rem;margin:0}
.catalog-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.catalog-plans.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.offer-card[data-category=lab]{border-color:rgba(30,220,242,.45)}
.plan-service{display:block;margin:.5rem 0 1.2rem;font-size:.95rem;color:#a8e9f2;text-decoration:underline;text-underline-offset:.2rem}
.catalog-nav{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1.3rem}
.catalog-nav a{border:1px solid rgba(255,255,255,.3);border-radius:99px;padding:.6rem 1rem;font-size:.95rem}
.catalog-nav a:hover{background:rgba(30,220,242,.12);border-color:#1edcf2}
.catalog-note{margin-top:1.4rem;color:#aeb9bd;font-size:.9rem}
.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.rule-card{padding:1.6rem;border:1px solid rgba(255,255,255,.18);border-radius:1rem;background:#101418}
.rule-card h3{font-family:inherit;text-transform:none;font-size:1.3rem;letter-spacing:-.02em;margin:0 0 1rem}
.rule-card p{color:#c0cacc;font-size:1rem;line-height:1.6;margin:0}
.opening-list{display:grid;gap:.7rem;margin:0}
.opening-list>div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:.65rem}
.opening-list dt,.opening-list dd{margin:0;font-size:1rem}
.opening-list dd{color:#a8e9f2}
.checkout-top{padding:3.5rem 0 1.7rem;border-bottom:0;background:none}
.checkout-top h1{font-family:inherit;font-size:clamp(2.2rem,5vw,4rem);line-height:1.06;max-width:20ch}
.checkout-demo{padding:.85rem 1rem;border:1px solid rgba(30,220,242,.4);background:rgba(30,220,242,.055);border-radius:.6rem;color:#c6eef2;font-size:.9rem}
.checkout-layout{padding:1rem 0 4rem;border:0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:1.5rem;align-items:start}
.checkout-panel,.order-summary{padding:clamp(1.2rem,3vw,2rem);border:1px solid rgba(255,255,255,.2);border-radius:1rem;background:#101418}
.checkout-panel h2,.order-summary h2{font-family:inherit;font-size:1.5rem;letter-spacing:-.03em;text-transform:none;line-height:1.15;margin:0 0 1rem}
.checkout-panel .choice-label{display:block;font-size:1rem;letter-spacing:0;text-transform:none;font-weight:700;margin:1.2rem 0 .6rem}
.checkout-panel input[type=date],.checkout-panel select{display:block;width:100%;padding:.85rem;border:1px solid #66757b;border-radius:.5rem;background:#0a0e11;color:#f4f7f7;min-height:3rem;color-scheme:dark;font-size:1rem}
.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;max-height:20rem;overflow:auto;padding:.2rem;margin-top:.5rem}
.slot-btn{background:transparent;color:#e7eef0;border:1px solid #596970;border-radius:.45rem;padding:.7rem .3rem;cursor:pointer;font-size:1rem}
.slot-btn[aria-pressed=true]{background:#1edcf2;color:#031114;border-color:#1edcf2;font-weight:800}
.empty-slots{grid-column:1/-1;color:#c7d0d3}
.checkout-terms{display:flex;align-items:flex-start;gap:.7rem;font-size:.95rem;line-height:1.5;color:#c8d2d5;margin:1.3rem 0;text-transform:none;letter-spacing:normal}
.checkout-terms input{width:1.15rem;height:1.15rem;flex-shrink:0;accent-color:#1edcf2;margin-top:.15rem}
.checkout-terms a{color:#a8e9f2;text-decoration:underline}
.checkout-panel .btn{width:100%;font-size:.875rem;letter-spacing:.04em}
.checkout-panel .btn::after{content:none}
.summary-lines{display:grid;gap:.85rem;margin:1.4rem 0}
.summary-lines>div{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.8rem;border-bottom:1px solid rgba(255,255,255,.13);font-size:1rem}
.summary-lines dt{color:#aebbc0}.summary-lines dd{margin:0;text-align:right;max-width:64%}
.summary-total{display:flex;justify-content:space-between;gap:1rem;font-size:1.1rem;align-items:center}
.summary-total strong{color:#a8e9f2;font-size:2rem;letter-spacing:-.04em}
.summary-related{display:grid;gap:.7rem;margin-top:1.5rem}
.summary-related a{font-size:.95rem;color:#a8e9f2;text-decoration:underline;text-underline-offset:.2rem}
.checkout-error{padding:.8rem 1rem;border-left:3px solid #ffb5a4;background:rgba(255,181,164,.08);color:#ffd8d0;margin:1rem 0}
.checkout-success{padding:2rem;border:1px solid rgba(30,220,242,.5);border-radius:1rem;background:#101b1e;margin:1rem 0 4rem}
.checkout-success h2{font-family:inherit;font-size:2rem;text-transform:none;letter-spacing:-.03em;line-height:1.15}
.checkout-success .actions{margin:1rem 0}.checkout-success .btn{font-size:.9rem}
.booking-status{padding:1rem 0;color:#c4d5d9}
.checkout-section-label{font-size:.875rem;text-transform:uppercase;letter-spacing:.12em;color:#8ddfe9;margin:0 0 1rem}
.checkout-fine{font-size:.9rem;line-height:1.6;color:#aebbc0}
.checkout-back{display:inline-block;color:#bceff5;font-size:1rem;margin-bottom:1.3rem}
.contact-hours{display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.95rem;margin-top:1.6rem;color:#c2ccce}
.catalog-plans .offer-card:target,.catalog-services .offer-card:target{border:2px solid #1edcf2;scroll-margin-top:7rem}
@media(max-width:1000px){.catalog-services{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-plans.three{grid-template-columns:1fr}.checkout-layout{grid-template-columns:1fr}.order-summary{order:-1}}
@media(max-width:680px){.catalog-services,.catalog-plans,.rules-grid{grid-template-columns:1fr}.catalog-heading,.plan-group-heading{display:block}.catalog-heading>p,.plan-group-heading p{margin-top:1rem}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.checkout-top{padding-top:2rem}.checkout-success{padding:1.3rem}.opening-list>div{flex-wrap:wrap}}
