.booking-page{max-width:1050px;margin:0 auto;padding:75px 7% 100px;display:grid;grid-template-columns:.8fr 1fr;gap:12%;align-items:start}.booking-intro h1{font:400 clamp(48px,6vw,70px)/1.1 var(--serif);margin:25px 0}.booking-intro h1 em{color:var(--accent)}.booking-intro>p:last-child{max-width:330px;color:var(--muted);line-height:1.9}.request-form{background:#eee9e0;padding:34px;gap:20px}.request-form [hidden]{display:none!important}.request-form .submit{margin-top:5px}@media(max-width:650px){.booking-page{display:block;padding:48px 7%}.booking-intro{margin-bottom:35px}.request-form{padding:24px 18px}}
.request-form select{appearance:none;-webkit-appearance:none;cursor:pointer;border:1px solid #d5cec3;border-radius:0;padding:14px 42px 14px 14px;background-color:#f8f5f0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='m3 5 4 4 4-4' stroke='%23b78369' stroke-width='1.4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;color:var(--ink);transition:border-color .2s,box-shadow .2s}.request-form select:hover,.request-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b783691a;outline:none}.request-form select:invalid{color:#79736a}.request-form select option{background:#f8f5f0;color:#262521;padding:12px}.request-form select option:disabled{color:#999187}
.request-form input[type="date"]{appearance:none;-webkit-appearance:none;cursor:pointer;border:1px solid #d5cec3;padding:14px;background:#f8f5f0;color:var(--ink);color-scheme:light;transition:border-color .2s,box-shadow .2s}.request-form input[type="date"]:hover,.request-form input[type="date"]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b783691a;outline:none}.request-form input[type="date"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.75;filter:sepia(.25)}.request-form input[type="tel"]:read-only{cursor:text}
body{background:var(--paper)}.booking-page{background:var(--paper)}.request-form{background:#eee9e0}.request-form select option{background:#f8f5f0;color:#262521}.request-form select option:checked{background:#e8ddd1;color:#262521}

.price-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:34px}.price-card{background:#eee9e0;padding:26px 28px}.price-card h3{font:400 23px var(--serif);margin:10px 0 18px}.price-card dl{margin:0}.price-card dl div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #d9d1c6;padding:12px 0;font-size:12px}.price-card dt{color:#68635c}.price-card dd{margin:0;white-space:nowrap}.calculated-price{margin:0;padding:14px 16px;background:#eee9e0;border-left:2px solid var(--accent);font:17px var(--serif)}@media(max-width:700px){.price-cards{grid-template-columns:1fr}}

.receipt{position:relative;max-width:370px;margin:42px 0 0;padding:28px 30px 24px;background:#fffdf9;color:#282621;box-shadow:0 14px 36px #3b30220d;border:1px solid #e7e0d6;font-family:'DM Sans',sans-serif}.receipt:before,.receipt:after{content:'';position:absolute;left:0;right:0;height:8px;background:linear-gradient(135deg,#fffdf9 5px,transparent 0) 0 0/10px 10px repeat-x}.receipt:before{top:-1px}.receipt:after{bottom:-8px;transform:rotate(180deg)}.receipt-top{text-align:center;display:grid;gap:7px}.receipt-top span{font:500 25px var(--serif);letter-spacing:-.6px}.receipt-top small,.receipt-line>span,.receipt-total>span{font-size:8px;letter-spacing:1.7px;color:#8d857b}.receipt-rule{border-top:1px solid #ded8ce;margin:20px 0}.receipt-rule.dashed{border-top-style:dashed;margin:16px 0}.receipt-line{display:grid;gap:6px;margin:13px 0}.receipt-line strong{font:400 15px var(--serif);overflow-wrap:anywhere}.receipt-total{display:flex;align-items:center;justify-content:space-between;gap:12px}.receipt-total strong{font:400 26px var(--serif);color:#a8735c}.receipt-note{font-size:9px;line-height:1.6;color:#8d857b;margin:13px 0 20px}.receipt-bottom{text-align:center;padding-top:16px;border-top:1px dashed #ded8ce;font-size:8px;letter-spacing:1.5px;line-height:1.9;color:#8d857b}.booking-intro>p:last-of-type{max-width:350px}.booking-intro .receipt{margin-top:38px}@media(max-width:650px){.receipt{max-width:none;margin-top:30px}}

.success-card{background:#eee9e0;padding:48px 42px;text-align:center;align-self:center;max-width:540px}.success-card[hidden]{display:none}.success-mark{width:58px;height:58px;border:1px solid #b78369;border-radius:50%;display:grid;place-items:center;margin:0 auto 24px;color:#b78369;font-size:24px}.success-card h2{font:400 38px var(--serif);margin:14px 0}.success-card>p:not(.eyebrow){line-height:1.8;color:var(--muted)}.success-card small{display:block;color:var(--muted);line-height:1.7;margin:18px 0 24px}.success-card .button{display:inline-block}

body.success-open{overflow:hidden}body.success-open:before{content:'';position:fixed;inset:0;background:#26252199;backdrop-filter:blur(3px);z-index:20}.success-card{position:fixed;z-index:21;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,510px);max-height:90vh;overflow:auto;box-shadow:0 24px 80px #0003;border:1px solid #e2d8cc;padding:48px 42px}.success-card[hidden]{display:none}@media(max-width:520px){.success-card{padding:38px 26px}.success-card h2{font-size:32px}}

/* Увеличенная прямоугольная карточка благодарности с более читаемой типографикой. */
.success-card{width:min(92vw,680px);padding:58px 64px;border-radius:0;background:#f2eee7}.success-card h2{font-size:clamp(40px,5vw,52px);font-weight:500;line-height:1.15;color:#201f1c}.success-card>p:not(.eyebrow){font-size:18px;color:#514d47;line-height:1.7}.success-card small{font-size:14px;color:#625d56}.success-card .eyebrow{font-size:10px;letter-spacing:2.4px}.success-mark{width:64px;height:64px;font-size:29px}.success-card .button{font-size:13px;font-weight:600;padding:19px 28px}@media(max-width:520px){.success-card{padding:40px 25px}.success-card h2{font-size:36px}.success-card>p:not(.eyebrow){font-size:16px}}

.consent-check{display:flex;grid-template-columns:18px 1fr;align-items:flex-start;gap:10px;font-size:11px;line-height:1.65;color:#625d56}.consent-check input{width:15px;height:15px;margin:2px 0;accent-color:#a8735c}.consent-check a{color:#8f5f49;text-decoration:underline;text-underline-offset:3px}

/* Та же визуальная система на странице оформления записи. */
.booking-page{max-width:1180px;gap:9%;padding-top:64px}.booking-intro h1{font-size:clamp(50px,5.4vw,68px)}.request-form{background:#f0ece5;padding:38px;box-shadow:0 16px 42px #29241a0a}.request-form label{font-size:11px;color:#58544e}.request-form input,.request-form textarea{font-size:14px;padding:12px 0}.request-form select,.request-form input[type=date]{font-size:13px;padding:15px}.calculated-price{font-size:18px;background:#e9e3d9;padding:18px}.receipt{background:#fffefa;box-shadow:0 18px 50px #29241a12}.success-card{background:#f2eee7}.success-card .button{display:inline-block}

/* Диапазон итоговой стоимости всегда остаётся цельным и выровненным. */
.price-card dl div{align-items:center}.price-card dd{white-space:nowrap;min-width:max-content;font-variant-numeric:tabular-nums}.receipt-total{align-items:flex-start}.receipt-total strong{white-space:nowrap;min-width:max-content;text-align:right}.calculated-price{overflow-wrap:normal;word-break:normal}@media(max-width:390px){.price-card{padding-inline:16px}.price-card dl div{gap:8px}.price-card dt,.price-card dd{font-size:11px}}

.calculated-price{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.calculated-price strong{white-space:nowrap;font:500 18px var(--serif);color:#a8735c}.calculated-price span{min-width:0}@media(max-width:430px){.calculated-price{align-items:flex-start;flex-direction:column;gap:5px}}

/* Три спокойных шага помогают быстро ориентироваться в форме записи. */
.request-form .form-group{display:grid;gap:17px}
.request-form .form-group+.form-group{border-top:1px solid #d8d0c6;padding-top:22px;margin-top:2px}
.form-group-heading{display:flex;align-items:center;gap:12px;border-bottom:1px solid #ded7cd;padding:0 0 12px;margin-bottom:1px}
.form-group-heading span{font-size:10px;letter-spacing:1.2px;color:var(--accent);font-weight:600}
.form-group-heading h2{font:400 21px/1.2 var(--serif);letter-spacing:0;color:var(--ink);margin:0}
.request-form .form-hint{padding:12px 14px;background:#e9e3d9;border-left:2px solid var(--accent);font-size:11px;line-height:1.65}
.receipt-total{padding:11px 12px;background:#f2eee7;border-left:2px solid var(--accent)}
@media(max-width:520px){.request-form .form-group+.form-group{padding-top:18px}.form-group-heading h2{font-size:20px}}

/* Более компактный ритм формы, чтобы она занимала меньше высоты. */
.request-form{padding:30px;gap:15px}
.request-form .form-group{gap:13px}
.request-form .form-group+.form-group{padding-top:16px;margin-top:0}
.form-group-heading{padding-bottom:9px}
.request-form label{gap:6px}
.request-form select,.request-form input[type=date]{padding-top:12px;padding-bottom:12px}
.calculated-price{padding:14px 15px}
.request-form .form-hint{padding:10px 12px}
@media(max-width:650px){.request-form{padding:22px 17px;gap:14px}}
.request-form textarea[name="comment"]{resize:none}
.field-label-text{display:inline}
.required-star{color:#a34d42;font-weight:600;margin-left:2px}
.request-form label.is-invalid .field-label-text{color:#a34d42}
.request-form label.is-invalid input,.request-form label.is-invalid select,.request-form label.is-invalid textarea{border-color:#b34b40!important;box-shadow:0 0 0 2px #b34b4017!important}
@media(max-width:650px){.request-form>.receipt{width:100%;max-width:none;margin:8px 0 0}}
