@font-face{font-family:"Kalameh";src:url("../../font/Kalameh.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}

:root {
    color-scheme: dark;
    --bg: #090909;
    --surface: #121212;
    --surface-light: #191919;
    --gold: #d6b568;
    --gold-light: #f2d99a;
    --text: #f5f1e8;
    --muted: #a7a195;
    --border: rgba(214, 181, 104, 0.2);
    --success: #75c99a;
    --danger: #e88989;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    color: var(--text);
    background: radial-gradient(ellipse at 50% 0%, rgba(214, 181, 104, 0.09), transparent 48%),
        var(--bg);
    font-family: "Kalameh", Tahoma, Arial, sans-serif;
    line-height: 1.8;
}

button,
input {
    font: inherit;
}

button {
    -webkit-tap-highlight-color: transparent;
}

.reservation-page {
    width: min(100% - 32px, 760px);
    margin-inline: auto;
    padding-block: 64px;
}

.page-header {
    margin-bottom: 36px;
    text-align: center;
}

.brand-mark {
    display: inline-block;
    padding: 5px 16px;
    border: 1px solid var(--border);
    border-radius: 100px;
    color: var(--gold-light);
    font-size: 12px;
    letter-spacing: 1px;
    position: relative;
}

.brand-mark::after {
    content: "";
    width: inherit;
    height: inherit;
    background-color: #0d0d0d;
    border-radius: 100px;
    position: absolute;
    inset: 0;
    z-index: -1;
    animation: aim_scale_1 2s infinite;
}

@keyframes aim_scale_1 {
    from {
        
        opacity: 1;
    }

    to {
        
        opacity: 0;
    }
}

.brand-mark::before {
    content: "";
    width: inherit;
    height: inherit;
    background-color: #c6a354;
    border-radius: 100px;
    position: absolute;
    inset: 0;
    z-index: -1;
    animation: aim_scale_2 2s infinite;
}

@keyframes aim_scale_2 {
    from {
        
        opacity: 1;
    }

    to {
        
        opacity: 0;
    }
}

.page-header h1 {
    margin: 18px 0 8px;
    font-size: clamp(28px, 5vw, 42px);
    font-weight: 800;
    letter-spacing: -1px;
}

.page-header p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
}

.reservation-card {
    margin-bottom: 22px;
    padding: clamp(20px, 4vw, 32px);
    border: 1px solid var(--border);
    border-radius: 22px;
    background: linear-gradient(145deg, rgba(25, 25, 25, 0.97), rgba(15, 15, 15, 0.97));
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.2);
}

.section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}

.section-heading h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.section-number {
    color: var(--gold);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
}

.status-message {
    margin: 0 0 18px;
    color: var(--muted);
    font-size: 13px;
}

.dates-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 22px;
}

.date-option,
.slot-option {
    min-height: 48px;
    border: 1px solid var(--border);
    border-radius: 12px;
    color: var(--text);
    background: var(--surface-light);
    cursor: pointer;
    transition:border-color 180ms ease,background 180ms ease,color 180ms ease;
}

.date-option {
    padding: 9px 16px;
    font-size: 13px;
}

.date-option:hover,
.slot-option:not(:disabled):hover {
    border-color: var(--gold);
    
}

.date-option.is-selected,
.slot-option.is-selected {
    border-color: var(--gold);
    color: var(--gold-light);
    background: rgba(214, 181, 104, 0.12);
    box-shadow: inset 0 0 0 1px rgba(214, 181, 104, 0.12);
}

.slots-container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.slot-option {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 14px;
    text-align: right;
}

.slot-option>span {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.slot-option strong {
    font-size: 16px;
    font-weight: 700;
}

.slot-option span span {
    color: var(--muted);
    font-size: 11px;
}

.slot-option:disabled {
    border-color: rgba(255, 255, 255, 0.06);
    color: #777;
    background: #111;
    cursor: not-allowed;
    opacity: 0.65;
}

.slot-option:disabled span span {
    color: var(--danger);
}

.capacity-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 22px;
    padding: 14px 16px;
    border: 1px solid rgba(117, 201, 154, 0.2);
    border-radius: 12px;
    background: rgba(117, 201, 154, 0.06);
    color: var(--muted);
    font-size: 13px;
}

.capacity-info strong {
    color: var(--success);
    font-size: 20px;
}

.form-group {
    display: grid;
    gap: 8px;
    margin-bottom: 20px;
}

.form-group label {
    color: #ded8cb;
    font-size: 13px;
}

.form-group input {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    outline: none;
    color: var(--text);
    background: #0d0d0d;
    transition:border-color 180ms ease,box-shadow 180ms ease;
}

.form-group input:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(214, 181, 104, 0.09);
}

#submitReservation {
    width: 100%;
    min-height: 52px;
    margin-top: 4px;
    border: 1px solid var(--gold);
    border-radius: 12px;
    color: #17120a;
    background: linear-gradient(110deg, #b99448, #f2d99a, #c6a354);
    font-weight: 800;
    cursor: pointer;
    transition:filter 180ms ease,opacity 180ms ease;
}

#submitReservation:not(:disabled):hover {
    filter: brightness(1.08);
    
}

#submitReservation:disabled {
    border-color: #49412f;
    color: #8b8067;
    background: #29251d;
    cursor: not-allowed;
    opacity: 0.75;
}

button:focus-visible {
    outline: 2px solid var(--gold-light);
    outline-offset: 3px;
}

[hidden] {
    display: none !important;
}

@media (max-width: 480px) {
    .reservation-page {
        width: min(100% - 22px, 760px);
        padding-block: 36px;
    }

    .page-header {
        margin-bottom: 26px;
    }

    .reservation-card {
        padding: 20px 16px;
        border-radius: 17px;
    }

    .section-heading h2 {
        font-size: 16px;
    }

    .dates-container {
        gap: 8px;
    }

    .date-option {
        flex: 1 1 calc(50% - 8px);
        padding-inline: 8px;
    }

    .slots-container {
        grid-template-columns: 1fr;
    }

    .slot-option {
        min-height: 60px;
    }
}

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
}

.form-group select,
.form-group textarea {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    outline: none;
    color: var(--text);
    background: #0d0d0d;
    font: inherit;
    transition:border-color 180ms ease,box-shadow 180ms ease;
}

.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(214, 181, 104, 0.09);
}

.form-group-wide {
    grid-column: 1 / -1;
}

.optional,
.form-note {
    color: var(--muted);
    font-size: 11px;
}

.form-note {
    margin: 12px 0 0;
    text-align: center;
}

.is-warning {
    color: var(--gold-light);
    border-right: 3px solid var(--gold);
    padding-right: 12px;
}

.confirmation-card {
    border-color: rgba(117, 201, 154, 0.28);
}

.confirmation-card p {
    color: var(--text);
}

.arrival-note {
    color: var(--gold-light) !important;
    font-weight: 700;
}

.reservation-code {
    color: var(--gold-light) !important;
    font-size: 20px;
    font-weight: 800;
}

.secondary-button {
    width: 100%;
    min-height: 48px;
    border: 1px solid var(--gold);
    border-radius: 12px;
    color: var(--gold-light);
    background: transparent;
    font: inherit;
    cursor: pointer;
}

@media (max-width: 520px) {
    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-group-wide {
        grid-column: auto;
    }
}


.modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 20px;
    background: rgba(0, 0, 0, 0.82);
    backdrop-filter: blur(6px);
}

.modal-overlay[hidden] {
    display: none !important;
}

.modal-box {
    position: relative;
    flex: 0 0 auto;
    width: min(100%, 420px);
    max-height: calc(100% - 40px);
    max-height: calc(100dvh - 40px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #d6b568 #121212;
    padding: 58px 24px 26px;
    margin: auto;
    text-align: center;
    background: linear-gradient(145deg, #191919, #0c0c0c);
    border: 1px solid #d6b568;
    border-radius: 22px;
    box-shadow: 0 20px 70px rgba(0, 0, 0, .65);
    animation: modalAppear .22s ease-out;
}

.modal-close {
    position: absolute;
    top: 12px;
    left: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    line-height: 1;
    border: 1px solid #49412f;
    border-radius: 50%;
    background: #121212;
    color: #f2d99a;
    font-family: "Kalameh", Tahoma, Arial, sans-serif;
    font-size: 27px;
    cursor: pointer;
}

.modal-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 14px;
    border: 1px solid rgba(214, 181, 104, .45);
    border-radius: 50%;
    color: #f2d99a;
    font-size: 26px;
}

.modal-box h2 {
    margin: 0 0 12px;
    color: #f2d99a;
    font-size: 23px;
}

.modal-box p {
    color: #e4dfd3;
    line-height: 2;
    font-size: 14px;
}

.modal-phone {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 18px 0;
    color: #f2d99a;
    font-size: 21px;
    font-weight: bold;
    direction: ltr;
    text-decoration: none;
}

.modal-phone:hover {
    color: #fff0bf;
}

.modal-phone svg {
    width: 25px;
    height: 25px;
    flex-shrink: 0;
}

.modal-phone span::after {
    content: "     کلیک کنید";
}

.modal-hint {
    margin: 14px 0 20px;
    padding: 12px;
    border: 1px solid rgba(214, 181, 104, .22);
    border-radius: 10px;
    background: rgba(214, 181, 104, .06);
}

.modal-confirm {
    width: 100%;
    min-height: 48px;
    border: 0;
    border-radius: 11px;
    background: linear-gradient(110deg, #b99448, #f2d99a);
    color: #17120a;
    font: inherit;
    font-weight: bold;
    cursor: pointer;
}

@keyframes modalAppear {
    from {
        opacity: 0;
        
    }

    to {
        opacity: 1;
        
    }
}

@media (prefers-reduced-motion: reduce) {
    .modal-box {
        animation: none;
    }
}

/* کشویی بازه‌های رزرو */
.segmentation-accordion {
    width: 100%;
    display: block;
    box-sizing: border-box;
    grid-column: 1 / -1;
    margin: 0 0 14px;
    margin-bottom: 14px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: linear-gradient(135deg, #191919, #101010);
    transition:border-color 180ms ease;
}

.segmentation-accordion[open] {
    border-color: rgba(214, 181, 104, 0.65);
}

.segmentation-summary {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    box-sizing: border-box;
    padding: 18px;
    cursor: pointer;
    list-style: none;
}

.segmentation-summary::-webkit-details-marker {
    display: none;
}

.segmentation-summary::before {
    content: "＋";
    color: var(--gold);
    font-size: 20px;
    order: 3;
}

.segmentation-accordion[open]>.segmentation-summary::before {
    content: "−";
}

.segmentation-heading {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 4px;
}

.segmentation-title {
    color: var(--gold-light);
    font-size: 15px;
    font-weight: 800;
}

.segmentation-range {
    color: var(--muted);
    font-size: 11px;
}

.segmentation-status {
    flex-shrink: 0;
    padding: 4px 9px;
    border: 1px solid var(--border);
    border-radius: 20px;
    color: var(--muted);
    font-size: 10px;
}

.segmentation-status.is-open {
    color: var(--success);
    border-color: rgba(117, 201, 154, 0.3);
    background: rgba(117, 201, 154, 0.06);
}

.segmentation-dates {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(110px, 1fr));
    gap: 10px;
    box-sizing: border-box;
    margin: 0;
    padding: 0 16px 16px;
    animation: segmentationReveal 180ms ease-out;
}

.segmentation-summary[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.65;
}

@keyframes segmentationReveal {
    from {
        opacity: 0;
        
    }

    to {
        opacity: 1;
        
    }
}

@media (max-width: 480px) {
    .segmentation-summary {
        padding: 14px 12px;
        gap: 8px;
    }

    .segmentation-title {
        font-size: 13px;
    }

    .segmentation-status {
        padding: 3px 6px;
        font-size: 9px;
    }

    .segmentation-dates {
        padding-inline: 10px;
    }
}

/* هم‌ترازی و تیترهای بخش‌های رزرو */
.section-heading {
    justify-content: center;
    text-align: center;
    position: relative;
}
.section-heading h2 { text-align: center; }
.section-heading .section-number { position: absolute; inset-inline-end: 0; }
.subsection-heading { margin: 6px 0 14px; padding-top: 16px; border-top: 1px solid var(--border); }
.subsection-heading h2 { color: var(--gold-light); font-size: 16px; }
.dates-container { justify-content: center; }
.date-option, .slot-option { text-align: center; justify-content: center; }
.slot-option > span { align-items: center; text-align: center; }

/* یکدست‌سازی کنترل‌های فرم در مرورگرهای مختلف */
button{appearance:none;background-image:none}
textarea{resize:none}
input[type=number]{appearance:textfield;-moz-appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}


/* مرحله نهم: کنترل‌های شیشه‌ای، فوکوس طلایی و اسکرول یکپارچه */
html { scrollbar-color: #8f7136 #101010; scrollbar-width: thin; scroll-behavior: smooth; }
* { scrollbar-width: thin; scrollbar-color: #8f7136 #101010; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: #101010; border-radius: 10px; }
*::-webkit-scrollbar-thumb { background: linear-gradient(180deg,#d6b568,#765a25); border: 2px solid #101010; border-radius: 10px; }
*::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg,#f2d99a,#a98237); }
input:not([type=checkbox]):not([type=radio]), select, textarea {
  text-align: center !important; outline: none !important; border: 1px solid rgba(214,181,104,.28) !important;
  transition:border-color .28s ease,box-shadow .32s ease,background-color .32s ease !important;
  caret-color: var(--gold-light); appearance: none; -webkit-appearance: none;
}
input:not([type=checkbox]):not([type=radio]):hover, select:hover, textarea:hover {
  border-color: rgba(242,217,154,.78) !important;
  background-image: linear-gradient(110deg,transparent 0%,rgba(242,217,154,0) 34%,rgba(242,217,154,.13) 48%,rgba(242,217,154,0) 62%,transparent 100%) !important;
  background-size: 220% 100% !important; background-position: 100% 0; animation: inputGlassSweep .85s ease both;
  box-shadow: 0 5px 20px rgba(214,181,104,.08), inset 0 0 0 1px rgba(242,217,154,.035) !important;
}
input:not([type=checkbox]):not([type=radio]):focus, select:focus, textarea:focus {
  border-color: var(--gold-light) !important;
  box-shadow: 0 0 0 3px rgba(214,181,104,.14), 0 0 22px rgba(214,181,104,.10), inset 0 0 0 1px rgba(242,217,154,.1) !important;
}
select { background-image: none !important; }
textarea { resize: none !important; }
.reservation-page, .reservation-card, .form-grid { min-width: 0; max-width: 100%; }

@keyframes inputGlassSweep { from { background-position: 120% 0; } to { background-position: -120% 0; } }


/* Stage 14: unified Kalameh typography and animated glass sweep for public form */
:root { --project-font: "Kalameh", Tahoma, sans-serif; }
html, body, button, input, select, textarea, label { font-family: var(--project-font) !important; }
input:not([type=checkbox]):not([type=radio]), select, textarea {
  text-align:center !important; outline:none !important; appearance:none; -webkit-appearance:none;
  border:1px solid rgba(214,181,104,.32); background-color:#151515; background-repeat:no-repeat;
  transition:border-color .25s ease,box-shadow .28s ease,background-color .25s ease;
}
select { background-image:linear-gradient(45deg,transparent 50%,#e6bd66 50%),linear-gradient(135deg,#e6bd66 50%,transparent 50%); background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%; background-size:6px 6px,6px 6px; padding-inline:30px 12px; }
input:not([type=checkbox]):not([type=radio]):hover, textarea:hover {
  background-image:linear-gradient(110deg,transparent 0%,rgba(242,217,154,0) 34%,rgba(242,217,154,.2) 48%,rgba(242,217,154,0) 62%,transparent 100%);
  background-size:240% 100%; background-position:120% 0; animation:publicGlassSweep .82s ease-in-out both;
  border-color:rgba(242,217,154,.8); box-shadow:0 5px 20px rgba(214,181,104,.09);
}
select:hover { background-image:linear-gradient(45deg,transparent 50%,#e6bd66 50%),linear-gradient(135deg,#e6bd66 50%,transparent 50%),linear-gradient(110deg,transparent 0%,rgba(242,217,154,0) 34%,rgba(242,217,154,.2) 48%,rgba(242,217,154,0) 62%,transparent 100%); background-size:6px 6px,6px 6px,240% 100%; background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%,120% 0; animation:publicSelectSweep .82s ease-in-out both; }
input:not([type=checkbox]):not([type=radio]):focus, select:focus, textarea:focus { border-color:#f2d99a; box-shadow:0 0 0 3px rgba(230,189,102,.15),0 0 22px rgba(230,189,102,.12); }
@keyframes publicGlassSweep { from{background-position:120% 0}to{background-position:-120% 0} }
@keyframes publicSelectSweep { from{background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%,120% 0}to{background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%,-120% 0} }

button, .modal-close { display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; line-height:1.35; }
button svg, button i, button .icon { flex:0 0 auto; display:inline-grid; place-items:center; }
.modal-close { width:36px; height:36px; padding:0 !important; line-height:1 !important; }

/* Stage 16: refined online reservation form */
:root{--gold:#e2bb62;--gold-light:#ffe5a0;--text:#fffaf0;--muted:#c0b8a7;--border:rgba(226,187,98,.3)}
.reservation-card{border-color:rgba(226,187,98,.3);background:linear-gradient(145deg,rgba(28,27,23,.98),rgba(12,12,12,.98));box-shadow:0 20px 60px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.025)}
.section-heading h2{letter-spacing:.2px;text-wrap:balance}
.form-grid{gap:18px}
.form-group{min-width:0;position:relative}
.form-group label{display:block;margin-bottom:8px;color:#f2dfb1;letter-spacing:.15px}
.form-group input,.form-group select,.form-group textarea{width:100%;min-width:0;position:relative;isolation:isolate;border:1px solid #5c4a2b;border-radius:13px;background:linear-gradient(135deg,rgba(33,31,25,.96),rgba(14,14,14,.98));color:#fffaf0;padding:13px 15px;font:inherit;line-height:1.6;text-align:center;box-shadow:inset 0 1px rgba(255,255,255,.035);transition:border-color .28s ease,box-shadow .28s ease,background .28s ease}
.form-group input::placeholder,.form-group textarea::placeholder{color:#9f9787;opacity:1}
.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:#d9b75f;background:linear-gradient(135deg,rgba(45,40,28,.98),rgba(18,17,14,.98));box-shadow:0 7px 22px #0005,inset 0 1px #ffffff08}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#ffe5a0;box-shadow:0 0 0 3px #e2bb6233,0 0 26px #e2bb621a;background:#19170f;}
.form-group input:not([type=checkbox])::after{content:""}
.form-group input,.form-group select,.form-group textarea{background-image:linear-gradient(115deg,transparent 0%,transparent 36%,rgba(255,255,255,.09) 48%,rgba(255,255,255,.015) 57%,transparent 70%);background-size:240% 100%;background-position:100% 0}
.form-group input:hover,.form-group select:hover,.form-group textarea:hover{animation:reservationGlassSweep16 .85s ease-out}
@keyframes reservationGlassSweep16{0%{background-position:100% 0}100%{background-position:-40% 0}}
.form-group select{appearance:none;-webkit-appearance:none;padding-inline-end:42px;background-image:linear-gradient(45deg,transparent 50%,#e7c56f 50%),linear-gradient(135deg,#e7c56f 50%,transparent 50%),linear-gradient(115deg,transparent 0%,transparent 36%,rgba(255,255,255,.09) 48%,rgba(255,255,255,.015) 57%,transparent 70%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%,100% 0;background-size:6px 6px,6px 6px,240% 100%;background-repeat:no-repeat}
.form-group select:hover{background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%,-40% 0}
.form-group select:focus{background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%,-40% 0}
.form-group textarea{text-align:right;resize:vertical;min-height:100px}
#submitReservation{width:100%;min-height:54px;margin-top:20px;border:1px solid #ffe4a0;border-radius:14px;background:linear-gradient(120deg,#9a7028,#e5bd60 48%,#ffe8a8);color:#211707;font-weight:800;letter-spacing:.25px;box-shadow:0 9px 26px #d6aa4b25,inset 0 1px #fff9}
#submitReservation:disabled{filter:grayscale(.65);opacity:.52;box-shadow:none;cursor:not-allowed}
.form-note,.page-header p{letter-spacing:.1px;line-height:1.9;text-wrap:balance}
.status-message{text-align:center;letter-spacing:.1px}
@media(max-width:600px){.reservation-page{width:min(100% - 20px,760px);padding-block:28px}.reservation-card{padding:18px 14px;border-radius:18px}.section-heading{gap:10px;margin-bottom:18px}.form-grid{grid-template-columns:1fr;gap:14px}.form-group input,.form-group select,.form-group textarea{padding:12px}.page-header h1{letter-spacing:0;font-size:clamp(26px,8vw,36px)}}
@media(prefers-reduced-motion:reduce){.form-group input:hover,.form-group select:hover,.form-group textarea:hover{animation:none}}


/* Stage 17: stable rendering, RTL defaults, and unified interactions */
html,body{direction:rtl}
body{ text-align:right }
button,a{transition:color .22s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease,filter .25s ease!important}
button:not(:disabled):hover{box-shadow:0 7px 22px rgba(230,189,102,.16)!important;filter:brightness(1.035)}
button:not(:disabled):active{filter:brightness(.97)}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{direction:rtl;text-align:center!important;appearance:none!important;-webkit-appearance:none!important;background-image:none!important;padding-inline:12px!important;outline:none!important}
select{background-image:none!important;padding-inline:12px!important}
input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{display:none!important;-webkit-appearance:none!important}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):hover,select:hover,textarea:hover{background-image:linear-gradient(110deg,transparent 0%,rgba(242,217,154,0) 34%,rgba(242,217,154,.22) 48%,rgba(242,217,154,0) 62%,transparent 100%)!important;background-size:240% 100%;background-position:120% 0;background-repeat:no-repeat!important;animation:stage17GlassSweep .9s ease-in-out both!important;border-color:#f2d99a!important;box-shadow:0 5px 20px rgba(214,181,104,.12),inset 0 0 0 1px rgba(242,217,154,.05)!important}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):focus,select:focus,textarea:focus{background-color:#17150f!important;border-color:#f2d99a!important;box-shadow:0 0 0 3px rgba(230,189,102,.16),0 0 22px rgba(230,189,102,.12)!important;outline:none!important}
@keyframes stage17GlassSweep{from{background-position:120% 0}to{background-position:-120% 0}}
[role=alert],.error,.form-message,.edit-feedback,.message,.success-toast,.admin-modal-box,.hint{direction:rtl;text-align:center}
.message,.form-message,.edit-feedback,.hint{margin-inline:auto}
.admin-modal-close,.toast-close,.modal-close,.close-button,.message-icon,.admin-modal-icon,.success-toast::before{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;line-height:1!important}
.table-wrap,.table-shell,.table-shell *{min-width:0}
.tab-slider,.night-slider{transition:left .42s cubic-bezier(.22,.8,.25,1),top .42s cubic-bezier(.22,.8,.25,1),width .28s ease,height .28s ease!important}
.search-toggle-icon{display:inline-flex;align-items:center;justify-content:center}
.search-toggle-icon svg{display:block}
.night-arrow:disabled,.table-scroll-arrow:disabled{cursor:not-allowed!important;opacity:.3!important;filter:saturate(.45)!important;box-shadow:none!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.form-group input:focus,.form-group select:focus,.form-group textarea:focus{animation:none!important;background-position:0 0}.form-error,.error-message,[role=alert]{direction:rtl;text-align:center}

input:not([type=checkbox]):not([type=radio]):not([type=hidden]):focus,select:focus,textarea:focus{animation:none!important;background-image:none!important;background-position:0 0}

/* RTL labels, centered compact actions, and non-moving focus state */
.field label,.edit-grid label,.search-field>span{direction:rtl;text-align:right!important;align-items:flex-start!important;justify-content:flex-start!important}
.section-heading,.section-heading h2,.section-number,.table-wrap th,.table-wrap td{text-align:center}

/* صفحهٔ خوشامدگویی تمام‌صفحه */
.welcome-screen { position:fixed; z-index:30000; inset:0; display:flex; align-items:center; justify-content:center; min-height:100svh; overflow:hidden; padding:28px 20px; color:#fff7e7; background:#080706; isolation:isolate; }
.welcome-backdrop { position:absolute; z-index:-2; inset:0; background-image:linear-gradient(135deg,rgba(7,6,5,.83),rgba(7,6,5,.5) 48%,rgba(7,6,5,.86)),url('../images/committee.jpg'); background-position:center center; background-size:cover; background-repeat:no-repeat; animation:welcomeImageReveal 1.1s ease both; }
.welcome-screen::before { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(ellipse at 50% 42%,rgba(230,189,102,.17),transparent 48%); pointer-events:none; }
.welcome-content { position:relative; width:min(100%,780px); padding:clamp(28px,6vw,64px) clamp(18px,5vw,48px); border:1px solid rgba(242,217,154,.34); border-radius:28px; background:linear-gradient(145deg,rgba(18,16,12,.72),rgba(7,7,7,.54)); box-shadow:0 25px 90px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.09); backdrop-filter:blur(7px); text-align:center; animation:welcomeContentIn .85s .12s ease both; }
.welcome-eyebrow { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:5px 16px; border:1px solid rgba(242,217,154,.35); border-radius:99px; color:#f2d99a; background:rgba(230,189,102,.08); font-size:clamp(11px,2vw,14px); }
.welcome-content h1 { margin:20px 0 12px; color:#f7dfaa; font-size:clamp(34px,7.5vw,70px); font-weight:900; line-height:1.35; text-shadow:0 4px 24px rgba(0,0,0,.65); }
.welcome-greeting { margin:0; font-size:clamp(23px,4.5vw,36px); font-weight:800; }
.welcome-description { margin:13px 0 28px; color:rgba(255,247,231,.78); font-size:clamp(13px,2.5vw,17px); }
.welcome-continue { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:54px; padding:13px 25px; border:1px solid #f2d99a; border-radius:13px; color:#17120a; background:linear-gradient(115deg,#b38b38,#f2d99a,#d2a849); font-size:16px; font-weight:900; box-shadow:0 12px 30px rgba(199,157,65,.2),inset 0 1px rgba(255,255,255,.65); }
.welcome-continue span { display:flex; align-items:center; justify-content:center; font-size:23px; line-height:1; transition:margin .2s ease; }
.welcome-continue:hover span { margin-inline-start:5px; }
.welcome-bottom-note { position:absolute; bottom:18px; left:0; right:0; color:rgba(255,247,231,.55); font-size:12px; letter-spacing:2px; text-align:center; }
.welcome-screen.is-leaving { animation:welcomeLeave .72s cubic-bezier(.7,0,.2,1) both; pointer-events:none; }
@keyframes welcomeImageReveal { from { opacity:.35; } to { opacity:1; } }
@keyframes welcomeContentIn { from { opacity:0; top:-18px; } to { opacity:1; top:0; } }
@keyframes welcomeLeave { 0% { left:0; opacity:1; } 58% { left:12%; opacity:.55; } 100% { left:100%; opacity:0; visibility:hidden; } }
.reservation-step:not([hidden]) { animation:stepReveal .5s ease both; }
@keyframes stepReveal { from { opacity:0; top:12px; } to { opacity:1; top:0; } }
.reservation-step { position:relative; }
#step2 .section-heading { margin-top:12px; }
.form-group label { display:flex; flex-direction:column; justify-content:center; gap:4px; width:100%; margin-bottom:8px; text-align:center; }
.section-heading { align-items:center; }
.section-heading h2 { text-align:center; }
@media(max-width:560px) { .welcome-content { border-radius:22px; } .welcome-continue { width:100%; } .welcome-bottom-note { bottom:10px; } }
@media(prefers-reduced-motion:reduce) { .welcome-backdrop,.welcome-content,.welcome-screen.is-leaving,.reservation-step:not([hidden]) { animation-duration:.01ms !important; } }

/* Stage 19: remove the accidental pre-focus and keep the glass sweep active on typing */
.form-group input:not([type=checkbox]):not([type=radio]):not([type=hidden]):hover,
.form-group input:not([type=checkbox]):not([type=radio]):not([type=hidden]):focus,
.form-group select:hover,.form-group textarea:hover,.form-group textarea:focus,
.form-group .custom-select-trigger:hover,.form-group .custom-select.is-open .custom-select-trigger,
.sougvare-glass-pass {
  background-image: linear-gradient(105deg,transparent 0%,transparent 36%,rgba(255,245,208,0) 43%,rgba(255,245,208,.24) 50%,rgba(255,245,208,0) 57%,transparent 65%,transparent 100%) !important;
  background-size:250% 100% !important;
  background-position:135% 0;
  background-repeat:no-repeat !important;
  animation:sougvareGlassPass .88s ease-in-out both !important;
}
.form-group select,.form-group .custom-select-trigger { background-image:none !important; }
.form-group select:hover,.form-group select:focus,.form-group .custom-select-trigger:hover,.form-group .custom-select.is-open .custom-select-trigger { background-image:linear-gradient(105deg,transparent 0%,transparent 36%,rgba(255,245,208,0) 43%,rgba(255,245,208,.24) 50%,rgba(255,245,208,0) 57%,transparent 65%,transparent 100%) !important; }
.form-group .custom-select-trigger.sougvare-glass-pass {background-image:linear-gradient(105deg,transparent 0%,transparent 36%,rgba(255,245,208,0) 43%,rgba(255,245,208,.24) 50%,rgba(255,245,208,0) 57%,transparent 65%,transparent 100%)!important;animation:sougvareGlassPass .88s ease-in-out both!important}

/* Stage 20: lock the welcome screen without scrollbar jumps; leave via compositor-friendly fade/clip */
html.welcome-open, body.welcome-open { overflow:hidden !important; scrollbar-gutter:stable; overscroll-behavior:none; }
.welcome-screen.is-leaving { animation:welcomeLeave .72s cubic-bezier(.22,.72,.22,1) both; pointer-events:none; }
@keyframes welcomeLeave { 0% { opacity:1; clip-path:inset(0 0 0 0); visibility:visible; } 55% { opacity:.62; clip-path:inset(0 0 0 18%); } 100% { opacity:0; clip-path:inset(0 0 0 100%); visibility:hidden; } }

.welcome-content,.welcome-bottom-note{z-index:2;}
.welcome-backdrop{z-index:-2;}
.welcome-screen::before{z-index:-1;}

/* Stage 21: consistent guest-count control and predictable section reveal */
.form-group .custom-select,
.form-group .custom-select-trigger { width:100%; min-width:0; }
.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-group .custom-select-trigger { min-height:54px; height:54px; box-sizing:border-box; }
.form-group label { min-height:24px; line-height:1.6; flex-direction:row; align-items:center; justify-content:center; }
.reservation-step:not([hidden]),
#step2:not([hidden]),
#step3:not([hidden]) { scroll-margin-top:18px; }

/* The welcome panel moves upward as a whole; no fade and no scrollbar-width change. */
html { scrollbar-gutter:auto !important; }
html.welcome-open, body.welcome-open { overflow:hidden !important; }
.welcome-screen { inset:0 0 auto !important; bottom:auto !important; width:100%; height:100vh; height:100dvh; min-height:100vh; }
.welcome-screen.is-leaving { animation:welcomeLeaveUp .58s cubic-bezier(.65,0,.35,1) both !important; }
@keyframes welcomeLeaveUp {
  from { top:0; visibility:visible; }
  to { top:-105vh; visibility:hidden; }
}


/* Stage 22: clearer responsive registration form and smooth, delay-free confirmation */
html { overflow-y: auto !important; scrollbar-gutter: auto !important; scroll-behavior: smooth; }
html.welcome-open, body.welcome-open { overflow: hidden !important; }
.form-group label { font-size: clamp(14px, 1.8vw, 16px) !important; font-weight: 700; line-height: 1.7; }
.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-group select, .form-group textarea, .form-group .custom-select-trigger {
  font-size: clamp(16px, 2vw, 18px) !important;
  min-height: 54px;
  line-height: 1.65;
}
.form-group textarea { min-height: 96px; }
.form-note, .optional, .status-message { font-size: clamp(13px, 1.6vw, 15px); }
.date-option { font-size: clamp(14px, 1.7vw, 16px); }
.slot-option strong { font-size: clamp(17px, 2vw, 19px); }
.slot-option span span { font-size: clamp(13px, 1.6vw, 15px); }
#step2:not([hidden]), #step3:not([hidden]) { scroll-margin-top: 22px; }
.reservation-step:not([hidden]) { animation: none !important; }
.confirmation-card { opacity: 1; transition: opacity .22s ease; }
.confirmation-card.is-entering { opacity: 0; }
@media (max-width: 520px) {
  .form-group label { font-size: 15px !important; }
  .form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .form-group select, .form-group textarea, .form-group .custom-select-trigger { font-size: 16px !important; min-height: 52px; }
  .date-option { min-height: 48px; }
  .section-heading h2 { font-size: 18px; }
}


/* Stage 27: stable date selection, visible welcome fade, and a compact first screen. */
.reservation-page.is-date-selection {
  min-height: 100dvh;
  padding-block: clamp(12px, 2.4vh, 24px);
}
.reservation-page.is-date-selection .page-header { margin-bottom: clamp(10px, 1.8vh, 18px); }
.reservation-page.is-date-selection .brand-mark { padding-block: 3px; }
.reservation-page.is-date-selection .page-header h1 { margin: 7px 0 3px; font-size: clamp(25px, 4.2vw, 36px); line-height: 1.35; }
.reservation-page.is-date-selection .page-header p { margin: 0; font-size: 13px; line-height: 1.6; }
.reservation-page.is-date-selection .reservation-card { margin-bottom: 0; padding: clamp(12px, 2.2vh, 20px) clamp(14px, 3vw, 24px); background: linear-gradient(145deg,rgba(25,25,25,.72),rgba(15,15,15,.62)); }
.reservation-page.is-date-selection .section-heading { margin-bottom: 10px; }
.reservation-page.is-date-selection .status-message { margin-bottom: 8px; }
.reservation-page.is-date-selection .segmentation-accordion { margin-bottom: 8px; background: linear-gradient(135deg,rgba(25,25,25,.72),rgba(16,16,16,.62)); }
.reservation-page.is-date-selection .segmentation-summary { padding-block: 10px; }
.reservation-page.is-date-selection .segmentation-dates { animation: none !important; }

/* Let the site's background remain visible through the date, session, and registration surfaces. */
.reservation-card { background: linear-gradient(145deg,rgba(25,25,25,.72),rgba(15,15,15,.62)) !important; }
.segmentation-accordion { background: linear-gradient(135deg,rgba(25,25,25,.70),rgba(16,16,16,.60)) !important; }
.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-group select, .form-group textarea, .form-group .custom-select-trigger {
  background-color: rgba(13,13,13,.66) !important;
  backdrop-filter: blur(2px);
}
#step2 .slot-option { background-color: rgba(25,25,25,.62); }
#step2 .capacity-info { background-color: rgba(117,201,154,.09); }

/* Explicitly animate the greeting down gently and fade/slide the entire welcome screen upward. */
.welcome-content { animation: sougvareWelcomeContentIn 1.05s .08s cubic-bezier(.22,.75,.25,1) both !important; }
@keyframes sougvareWelcomeContentIn {
  from { opacity: 0; top: -24px; }
  to { opacity: 1; top: 0; }
}
.welcome-screen.is-leaving {
  animation: sougvareWelcomeFadeUp .82s cubic-bezier(.55,.05,.35,1) both !important;
  pointer-events: none !important;
}
@keyframes sougvareWelcomeFadeUp {
  0% { margin-top: 0; opacity: 1; visibility: visible; }
  100% { margin-top: -100vh; opacity: 0; visibility: hidden; }
}

@media (max-height: 760px) and (min-width: 481px) {
  .reservation-page.is-date-selection { padding-block: 10px; }
  .reservation-page.is-date-selection .page-header { margin-bottom: 8px; }
  .reservation-page.is-date-selection .page-header h1 { margin-block: 4px 2px; }
  .reservation-page.is-date-selection .reservation-card { padding-block: 10px; }
  .reservation-page.is-date-selection .segmentation-summary { padding-block: 8px; }
}
@media (max-width: 480px) {
  .reservation-page.is-date-selection { padding-block: 12px; }
  .reservation-page.is-date-selection .page-header { margin-bottom: 10px; }
  .reservation-page.is-date-selection .page-header h1 { font-size: clamp(24px,7vw,31px); }
  .reservation-page.is-date-selection .reservation-card { padding: 12px 10px; }
  .reservation-page.is-date-selection .segmentation-summary { padding: 9px 10px; }
}


/* Stage 28: normal document scrolling, a compact centered first step, and larger responsive typography. */
html {
  overflow-x: clip !important;
  overflow-y: auto !important;
  scrollbar-gutter: stable !important;
  scroll-behavior: smooth;
}
body { overflow-x: clip !important; }
/* The welcome layer itself must not clip content or create a nested scroll container. */
.welcome-screen { overflow: visible !important; }
html.welcome-open, body.welcome-open {
  overflow-x: clip !important;
  overflow-y: auto !important;
  scrollbar-gutter: stable !important;
  overscroll-behavior: auto !important;
}
.welcome-screen.is-leaving { overflow: visible !important; }
/* Center the initial date step in the available viewport without locking page scrolling. */
.reservation-page.is-date-selection {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: clamp(10px, 2vh, 20px);
  overflow: visible;
}
.reservation-page.is-date-selection .page-header { margin-bottom: clamp(8px, 1.4vh, 14px); }
.reservation-page.is-date-selection .page-header h1 { font-size: clamp(27px, 3.5vw, 36px); }
.reservation-page.is-date-selection .page-header p { font-size: clamp(14px, 1.5vw, 16px); }
.reservation-page.is-date-selection .reservation-card { width: 100%; }
.reservation-card { overflow: visible; }
.section-heading h2 { font-size: clamp(20px, 2.1vw, 24px); line-height: 1.5; }
.section-number { font-size: clamp(14px, 1.5vw, 16px); }
.form-group label { font-size: clamp(16px, 1.8vw, 19px) !important; line-height: 1.65; }
.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-group select, .form-group textarea, .form-group .custom-select-trigger {
  font-size: clamp(17px, 1.8vw, 20px) !important;
  min-height: 58px;
}
.date-option { font-size: clamp(15px, 1.7vw, 18px); min-height: 52px; }
.slot-option strong { font-size: clamp(19px, 2vw, 22px); }
.slot-option span span, .form-note, .optional, .status-message { font-size: clamp(14px, 1.5vw, 16px); }
@media (max-height: 700px) and (min-width: 600px) {
  .reservation-page.is-date-selection { padding-block: 8px; }
  .reservation-page.is-date-selection .page-header { margin-bottom: 8px; }
  .reservation-page.is-date-selection .page-header h1 { margin-block: 3px; font-size: clamp(25px, 3vw, 31px); }
  .reservation-page.is-date-selection .reservation-card { padding-block: 10px; }
  .reservation-page.is-date-selection .section-heading { margin-bottom: 7px; }
  .reservation-page.is-date-selection .segmentation-summary { padding-block: 7px; }
}
@media (max-width: 520px) {
  .reservation-page.is-date-selection { justify-content: flex-start; padding-block: 12px; }
  .section-heading h2 { font-size: 20px; }
  .form-group label { font-size: 16px !important; }
  .form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .form-group select, .form-group textarea, .form-group .custom-select-trigger { font-size: 17px !important; min-height: 54px; }
  .date-option { font-size: 15px; }
}


/* Stage 29: final override for welcome screen scroll stability; page scroll remains reserved and dark. */
html.welcome-open { overflow-x:clip !important; overflow-y:scroll !important; scrollbar-gutter:stable !important; background:#090909 !important; }
body.welcome-open { overflow-x:clip !important; overflow-y:visible !important; position:relative !important; width:auto !important; background-color:#090909 !important; }
.welcome-screen { overflow:visible !important; }
.welcome-screen.is-leaving { animation:sougvareWelcomeExit .82s cubic-bezier(.22,.72,.22,1) both !important; }

/* Stage 31: hide the group-reservation modal's scrollbar while preserving wheel, touch and keyboard scrolling. */
.modal-box, .admin-modal-box {
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
.modal-box::-webkit-scrollbar, .admin-modal-box::-webkit-scrollbar { width:0 !important; height:0 !important; display:none !important; }
.modal-overlay, .admin-modal-overlay { scrollbar-width:none !important; -ms-overflow-style:none !important; scrollbar-color:transparent transparent; }
.modal-overlay::-webkit-scrollbar, .admin-modal-overlay::-webkit-scrollbar { width:0 !important; height:0 !important; display:none !important; }

/* Keep the three registration steps flowing gently, without transform-based movement. */
.page-header { margin-bottom:18px; }
.reservation-step:not([hidden]) {
  animation: reservationStepSoftIn .58s cubic-bezier(.22,.72,.25,1) both !important;
  scroll-margin-top:18px;
}
@keyframes reservationStepSoftIn {
  from { opacity:0; top:10px; }
  to { opacity:1; top:0; }
}
.reservation-page.is-date-selection .page-header { margin-bottom:clamp(8px,1.4vh,14px); }
@media (prefers-reduced-motion:reduce) {
  .reservation-step:not([hidden]) { animation-duration:.01ms !important; }
}

/* Stage 32: compact equal status pills, scrollable hidden-scrollbar welcome overlay, and its own gold particles. */
.segmentation-status {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  gap:7px !important; flex:0 0 112px !important; width:112px !important; min-width:112px !important;
  min-height:32px !important; padding:5px 9px !important; white-space:nowrap !important;
  line-height:1.2 !important; box-sizing:border-box !important; text-align:center !important;
}
.segmentation-status-icon { display:block !important; flex:0 0 15px !important; width:15px !important; height:15px !important; margin:0 !important; }
.segmentation-status > span { display:block; flex:0 0 auto; line-height:1.2; }
@media(max-width:480px) {
  .segmentation-status { flex-basis:104px !important; width:104px !important; min-width:104px !important; min-height:30px !important; gap:6px !important; font-size:10px !important; }
  .segmentation-status-icon { flex-basis:14px !important; width:14px !important; height:14px !important; }
}
/* The overlay can scroll when its contents exceed the viewport, but its own scrollbar stays hidden. */
.welcome-screen {
  display:flex !important; align-items:center !important; justify-content:center !important;
  overflow-x:hidden !important; overflow-y:auto !important; scrollbar-width:none !important;
  -ms-overflow-style:none !important; overscroll-behavior:contain !important;
  padding:clamp(18px,4vh,34px) 20px !important;
}
.welcome-screen::-webkit-scrollbar { display:none !important; width:0 !important; height:0 !important; }
.welcome-content { z-index:2 !important; flex:0 0 auto !important; margin-block:auto !important; }
.welcome-bottom-note { z-index:3 !important; pointer-events:none; }
.welcome-particles { position:absolute !important; inset:0 !important; display:block !important; width:100% !important; height:100% !important; z-index:0 !important; pointer-events:none !important; opacity:.7 !important; }
.welcome-backdrop { z-index:-2 !important; }
.welcome-screen::before { z-index:-1 !important; }
/* Keep a stable dark page scrollbar gutter while the welcome overlay itself hides its own scrollbar. */
html, body { background-color:#090909 !important; }
html { overflow-y:scroll !important; scrollbar-gutter:stable !important; }
html::-webkit-scrollbar-track, body::-webkit-scrollbar-track { background:#090909 !important; }
/* Universal SVG/text alignment for session actions, status controls, and modal close buttons. */
button:has(> svg), a:has(> svg) { align-items:center !important; justify-content:center !important; gap:8px !important; }
button:has(> svg) > svg, a:has(> svg) > svg { display:block !important; flex:0 0 auto !important; align-self:center !important; margin:0 !important; }
.admin-modal-close,.toast-close,.modal-close,.close-button,.message-close,[aria-label*="بستن"] {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  text-align:center !important; vertical-align:middle !important; line-height:1 !important;
}
.admin-modal-close svg,.toast-close svg,.modal-close svg,.close-button svg { display:block !important; flex:0 0 auto !important; margin:0 !important; }


/* Stage 33: keep modal close glyphs optically centered across reservation views. */
button[aria-label*="بستن"], .message-close, .admin-modal-close, .toast-close, .modal-close, .close-button {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  align-self:center !important; vertical-align:middle !important; line-height:0 !important;
}
button[aria-label*="بستن"] > svg, .message-close > svg, .admin-modal-close > svg,
.toast-close > svg, .modal-close > svg, .close-button > svg {
  display:block !important; flex:0 0 18px !important; width:18px !important; height:18px !important; margin:auto !important;
}
.sougvare-design-preview .segmentation-status { min-width:104px; justify-content:center; }
.sougvare-design-preview .slot-option:disabled { opacity:.65; }

/* Unified typography: Kalameh everywhere; headings use synthesized bold from the regular font. */
html,body,button,input,select,textarea,table,th,td,label,a{font-family:"Kalameh",Tahoma,Arial,sans-serif}
h1,h2,h3,h4,h5,h6,legend,.section-heading,.section-heading h2,.page-header h1,.range-settings-head h2{font-weight:800}

/* Rules step: modern black-and-gold cards, accessible confirmation, and gentle motion. */
.welcome-content h1 span {
    display:block;
    margin-top:5px;
    color:#f2d99a;
    font-size:clamp(28px,5.4vw,54px);
    line-height:1.45;
}
.rules-card {
    position:relative;
    overflow:hidden;
    border:1px solid rgba(230,189,102,.3) !important;
    background:linear-gradient(145deg,rgba(24,21,15,.96),rgba(11,11,10,.98)) !important;
    box-shadow:0 22px 58px rgba(0,0,0,.34),inset 0 1px rgba(255,245,215,.045),0 0 34px rgba(196,151,55,.055) !important;
    animation:rulesCardIn .62s cubic-bezier(.2,.7,.2,1) both;
}
.rules-card::before {
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:3px;
    background:linear-gradient(180deg,transparent,#f2d99a,#9d762a,transparent);
    opacity:.8;
    pointer-events:none;
}
.rules-heading { justify-content:center; margin-bottom:22px !important; }
.rules-heading h2 { color:#f2d99a !important; font-size:clamp(23px,4vw,31px); }
.rules-heading .section-number { display:flex; align-items:center; justify-content:center; border:1px solid rgba(242,217,154,.46); color:#f2d99a; background:rgba(230,189,102,.09); }
.reservation-rules-list {
    display:grid;
    gap:10px;
    padding:0;
    margin:0;
    list-style:none;
    counter-reset:reservation-rule;
}
.reservation-rules-list li {
    counter-increment:reservation-rule;
    position:relative;
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    align-items:start;
    gap:12px;
    padding:14px 14px;
    border:1px solid rgba(242,217,154,.13);
    border-radius:15px;
    color:#f4efe3;
    background:linear-gradient(110deg,rgba(255,255,255,.025),rgba(230,189,102,.025));
    box-shadow:inset 0 1px rgba(255,255,255,.025);
    line-height:1.95;
    transition:transform .25s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease;
    animation:ruleItemIn .48s both;
    animation-delay:calc(var(--rule-index, 0) * 55ms);
}
.reservation-rules-list li:nth-child(1){--rule-index:1}.reservation-rules-list li:nth-child(2){--rule-index:2}.reservation-rules-list li:nth-child(3){--rule-index:3}.reservation-rules-list li:nth-child(4){--rule-index:4}.reservation-rules-list li:nth-child(5){--rule-index:5}.reservation-rules-list li:nth-child(6){--rule-index:6}.reservation-rules-list li:nth-child(7){--rule-index:7}
.reservation-rules-list li::before {
    content:counter(reservation-rule, persian);
    display:flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    border:1px solid rgba(230,189,102,.42);
    border-radius:10px;
    color:#f2d99a;
    background:rgba(230,189,102,.09);
    font-weight:900;
    line-height:1;
    transition:background .25s ease,color .25s ease,transform .25s ease;
}
.reservation-rules-list li:hover {
    transform:translateY(-2px);
    border-color:rgba(242,217,154,.46);
    background:linear-gradient(110deg,rgba(230,189,102,.09),rgba(255,255,255,.035));
    box-shadow:0 9px 24px rgba(0,0,0,.2),0 0 20px rgba(230,189,102,.055),inset 0 1px rgba(255,255,255,.05);
}
.reservation-rules-list li:hover::before { color:#17120a; background:linear-gradient(135deg,#f5dfaa,#bd913b); transform:rotate(-4deg); }
.rules-acceptance {
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:20px;
    padding:15px 16px;
    border:1px solid rgba(230,189,102,.25);
    border-radius:14px;
    color:#f2e6c9;
    background:rgba(230,189,102,.045);
    cursor:pointer;
    line-height:1.8;
    transition:border-color .25s ease,background .25s ease,box-shadow .25s ease;
}
.rules-acceptance:hover,.rules-accepted .rules-acceptance { border-color:rgba(230,189,102,.55); background:rgba(230,189,102,.085); box-shadow:0 0 20px rgba(230,189,102,.07); }
.rules-acceptance input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.rules-checkmark { flex:0 0 25px; width:25px; height:25px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(242,217,154,.55); border-radius:7px; background:#11100d; transition:background .2s ease,border-color .2s ease,box-shadow .2s ease; }
.rules-checkmark svg { width:17px; height:17px; fill:none; stroke:#17120a; stroke-width:2.7; stroke-linecap:round; stroke-linejoin:round; opacity:0; transform:scale(.65); transition:opacity .2s ease,transform .2s ease; }
.rules-acceptance input:checked + .rules-checkmark { border-color:#f2d99a; background:linear-gradient(135deg,#f2d99a,#c89a43); box-shadow:0 0 15px rgba(230,189,102,.18); }
.rules-acceptance input:checked + .rules-checkmark svg { opacity:1; transform:scale(1); }
.rules-acceptance input:focus-visible + .rules-checkmark { outline:2px solid #f2d99a; outline-offset:3px; }
.rules-continue { display:flex; width:100%; margin-top:15px; }
.rules-continue:disabled { color:#96896d !important; border-color:#51462e !important; background:linear-gradient(115deg,#28241b,#393020) !important; box-shadow:none !important; cursor:not-allowed; opacity:.62; }
.rules-continue:not(:disabled) { animation:rulesButtonGlow 2.8s ease-in-out infinite; }
.reservation-flow { width:100%; }
.reservation-flow.flow-entering { animation:reservationFlowIn .55s cubic-bezier(.2,.7,.2,1) both; }
.rules-card.rules-leaving { animation:rulesExit .34s ease both; pointer-events:none; }
@keyframes rulesCardIn { from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)} }
@keyframes ruleItemIn { from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)} }
@keyframes reservationFlowIn { from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)} }
@keyframes rulesExit { to{opacity:0;transform:translateY(-8px)} }
@keyframes rulesButtonGlow { 0%,100%{box-shadow:0 10px 27px rgba(199,157,65,.17),inset 0 1px rgba(255,255,255,.5)} 50%{box-shadow:0 12px 34px rgba(199,157,65,.31),inset 0 1px rgba(255,255,255,.72)} }
@media(max-width:560px) {
    .reservation-rules-list { gap:8px; }
    .reservation-rules-list li { grid-template-columns:29px minmax(0,1fr); gap:9px; padding:12px 10px; border-radius:12px; font-size:14px; }
    .reservation-rules-list li::before { width:28px; height:28px; border-radius:8px; }
    .rules-acceptance { align-items:flex-start; padding:12px; font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
    .rules-card,.reservation-rules-list li,.rules-card.rules-leaving,.reservation-flow.flow-entering,.rules-continue:not(:disabled) { animation:none !important; transition:none !important; }
}


/* Forbidden cursor targets for locked ranges, unavailable dates and unavailable time slots. */
.segmentation-accordion.is-locked,
.segmentation-accordion.is-locked *,
.date-option:disabled,
.date-option:disabled *,
.slot-option:disabled,
.slot-option:disabled * { cursor: not-allowed; }

/* Brand mark: cohesive gold glass sheen, sweeping back and forth every three seconds. */
.brand-mark{
  isolation:isolate;position:relative;overflow:hidden;box-sizing:border-box;
  border-color:rgba(230,189,102,.48)!important;
  color:#f4d993!important;
  background-color:rgba(230,189,102,.07)!important;
  background-image:linear-gradient(108deg,rgba(230,189,102,.035) 0%,rgba(230,189,102,.11) 35%,rgba(255,222,145,.62) 49%,rgba(230,189,102,.18) 57%,rgba(184,137,47,.045) 72%,rgba(230,189,102,.06) 100%)!important;
  background-size:240% 100%!important;background-position:-120% 0;
  box-shadow:inset 0 1px rgba(255,240,195,.15),0 0 18px rgba(230,189,102,.10);
  text-shadow:0 0 10px rgba(230,189,102,.18);
  animation:brandMarkGoldSweep 3s ease-in-out infinite alternate!important;
}
.brand-mark::before,.brand-mark::after{content:none!important;animation:none!important}
@keyframes brandMarkGoldSweep{from{background-position:-120% 0}to{background-position:120% 0}}
@media(prefers-reduced-motion:reduce){.brand-mark{animation:none!important;background-position:center!important}}

/* Reservation page polish: stable viewport, balanced intro spacing and visible survey-style gold background. */
html { scrollbar-gutter: stable both-edges; scroll-behavior: smooth; }
html::-webkit-scrollbar, body::-webkit-scrollbar { width: 0 !important; height: 0 !important; }
html { scrollbar-width: none; }
body { min-height: 100vh; min-height: 100dvh; }
.sougvare-particles { opacity: .82 !important; }
.page-header { margin-bottom: 28px; }
.page-header p { margin-block: 18px !important; line-height: 1.95; text-wrap: balance; }
.rules-heading { display:flex; align-items:center; justify-content:center; }
.rules-heading .section-number { display:none !important; }
.rules-heading h2 { text-align:center; }
.welcome-screen { height:100vh; height:100dvh; min-height:100vh; min-height:100dvh; padding-top:max(18px, env(safe-area-inset-top)); padding-bottom:max(18px, env(safe-area-inset-bottom)); }
.welcome-content { max-height:calc(100dvh - 36px); overflow-y:auto; scrollbar-width:none; }
.welcome-content::-webkit-scrollbar { display:none; }
.welcome-bottom-note { position:static !important; display:block; flex:0 0 auto; margin:18px auto 0; width:100%; text-align:center; letter-spacing:1px; }
.welcome-screen { flex-wrap:wrap; align-content:center; gap:0; }
.reservation-page.is-date-selection { scroll-margin-top:12px; }
.reservation-flow { scroll-margin-top:18px; }
.reservation-rules-list { scroll-margin-top:18px; }
@media (min-width: 601px) {
  html { scrollbar-gutter:stable; }
  .welcome-screen { overflow-x:hidden !important; overflow-y:auto !important; }
  .welcome-content { width:min(100%,760px); }
}
@media (max-width: 600px) {
  .welcome-screen { min-height:100svh; min-height:100dvh; height:100svh; height:100dvh; padding-inline:14px; }
  .welcome-content { max-height:calc(100dvh - 32px); padding:clamp(20px,5vh,34px) 18px; }
  .welcome-greeting { margin-block:8px 12px; line-height:1.65; }
  .welcome-content h1 { margin-block:12px 10px; line-height:1.4; }
  .welcome-description { margin-block:12px 20px; line-height:1.9; }
  .welcome-bottom-note { margin-top:12px; }
  .page-header { margin-bottom:18px; }
  .page-header p { margin-block:18px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
}


/* Stage 34: welcome refinement — full survey-style gold particles, reserved invisible scrollbar,
   restrained typography, luminous slogan and centered entry-door SVG. */
html.welcome-open {
  overflow-y: scroll !important;
  scrollbar-gutter: stable !important;
  scrollbar-color: transparent transparent !important;
}
html.welcome-open::-webkit-scrollbar { width: 12px !important; height: 12px !important; }
html.welcome-open::-webkit-scrollbar-track,
html.welcome-open::-webkit-scrollbar-thumb { background: transparent !important; border-color: transparent !important; }
html:not(.welcome-open) { scrollbar-width: auto !important; scrollbar-color: rgba(230,189,102,.72) #090909 !important; }
html:not(.welcome-open)::-webkit-scrollbar { width: 12px !important; }
html:not(.welcome-open)::-webkit-scrollbar-track { background:#090909 !important; }
html:not(.welcome-open)::-webkit-scrollbar-thumb { background:linear-gradient(180deg,#f2d99a,#9f762d) !important; border:3px solid #090909 !important; border-radius:99px !important; }
.sougvare-particles { opacity:.92 !important; }
.welcome-screen { background:#080706 !important; }
.welcome-screen::before { background:radial-gradient(ellipse at 50% 42%,rgba(230,189,102,.14),transparent 54%) !important; }
.welcome-content {
  width:min(100%,720px) !important;
  padding:clamp(16px,3.2vh,30px) clamp(16px,3.6vw,34px) !important;
  display:flex !important; flex-direction:column !important; align-items:center !important;
  gap:clamp(8px,1.4vh,14px) !important;
  max-height:calc(100dvh - max(24px, env(safe-area-inset-top)) - max(24px, env(safe-area-inset-bottom))) !important;
  overflow-y:auto !important; scrollbar-width:none !important; -ms-overflow-style:none !important;
}
.welcome-content::-webkit-scrollbar { display:none !important; width:0 !important; }
.welcome-content > .sougvare-brand-logos { --sougvare-brand-size:clamp(68px,8.6vw,96px) !important; margin:0 auto clamp(2px, .6vh, 7px) !important; }
.welcome-eyebrow {
  margin:0 !important; position:relative; isolation:isolate; overflow:hidden;
  color:#fff8e8 !important; border-color:rgba(255,244,211,.65) !important;
  background:linear-gradient(110deg,rgba(230,189,102,.10),rgba(255,255,255,.06),rgba(230,189,102,.10)) !important;
  box-shadow:0 0 14px rgba(255,245,220,.12),0 0 25px rgba(230,189,102,.17),inset 0 0 12px rgba(255,255,255,.06) !important;
  text-shadow:0 0 12px rgba(255,245,220,.5),0 0 22px rgba(230,189,102,.45) !important;
  animation:welcomeEyebrowGlow 3s ease-in-out infinite alternate;
  transition:box-shadow .25s ease,filter .25s ease,transform .25s ease;
}
.welcome-eyebrow:hover { box-shadow:0 0 20px rgba(255,255,245,.35),0 0 34px rgba(230,189,102,.45) !important; filter:brightness(1.15); transform:translateY(-1px); }
@keyframes welcomeEyebrowGlow { from {filter:brightness(.96);text-shadow:0 0 8px rgba(255,245,220,.3),0 0 15px rgba(230,189,102,.28)} to {filter:brightness(1.12);text-shadow:0 0 13px rgba(255,255,245,.65),0 0 27px rgba(230,189,102,.55)} }
.welcome-greeting,.welcome-description { margin:0 !important; line-height:1.8 !important; text-wrap:balance; }
.welcome-content h1 {
  width:100%; margin:clamp(2px, .7vh, 8px) 0 !important;
  font-size:clamp(24px,4.3vw,42px) !important; line-height:1.48 !important;
  text-wrap:balance; overflow-wrap:anywhere;
  text-shadow:0 0 12px rgba(255,255,245,.18),0 0 28px rgba(230,189,102,.38),0 4px 22px rgba(0,0,0,.8) !important;
}
.welcome-content h1 span {
  margin-top:clamp(2px,.5vh,6px) !important;
  font-size:clamp(22px,3.7vw,36px) !important; line-height:1.45 !important;
  text-shadow:0 0 9px rgba(255,255,245,.48),0 0 24px rgba(230,189,102,.58) !important;
}
.welcome-description { font-size:clamp(13px,1.7vw,16px) !important; }
.welcome-continue {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  flex-direction:row !important; gap:10px !important; width:auto !important; max-width:100%;
  min-height:48px !important; margin:clamp(2px,.5vh,6px) auto 0 !important;
  padding:10px clamp(16px,3vw,24px) !important; line-height:1.5 !important;
  white-space:normal; text-align:center; box-sizing:border-box;
  box-shadow:0 0 14px rgba(230,189,102,.28),0 0 28px rgba(255,255,245,.08),inset 0 1px rgba(255,255,255,.68) !important;
  transition:transform .22s ease,box-shadow .22s ease,filter .22s ease !important;
}
.welcome-continue:hover { transform:translateY(-2px); filter:brightness(1.08); box-shadow:0 0 20px rgba(255,255,245,.25),0 0 36px rgba(230,189,102,.45),inset 0 1px rgba(255,255,255,.78) !important; }
.welcome-enter-icon { display:block; width:21px; height:21px; flex:0 0 21px; align-self:center; }
.welcome-continue-label { display:block; line-height:1.5; }
.welcome-bottom-note { margin-top:clamp(4px,1vh,10px) !important; line-height:1.5; font-size:clamp(11px,1.4vw,13px); }
@media(max-width:600px) {
  .welcome-content { width:100% !important; padding:clamp(14px,2.8vh,22px) 14px !important; gap:clamp(7px,1.2vh,11px) !important; }
  .welcome-content > .sougvare-brand-logos { --sougvare-brand-size:clamp(62px,18vw,78px) !important; }
  .welcome-content h1 { font-size:clamp(22px,6.2vw,30px) !important; line-height:1.45 !important; }
  .welcome-content h1 span { font-size:clamp(20px,5.7vw,27px) !important; }
  .welcome-greeting { font-size:clamp(13px,3.6vw,15px); }
  .welcome-description { font-size:clamp(12px,3.4vw,14px) !important; }
  .welcome-continue { width:auto !important; max-width:100%; min-height:46px !important; padding:9px 16px !important; }
}
@media(max-height:650px) {
  .welcome-content { gap:6px !important; padding-block:12px !important; }
  .welcome-content > .sougvare-brand-logos { --sougvare-brand-size:clamp(52px,9vh,66px) !important; }
  .welcome-content h1 { font-size:clamp(21px,4.5vh,30px) !important; margin-block:2px !important; }
  .welcome-content h1 span { font-size:clamp(20px,4.1vh,27px) !important; }
  .welcome-bottom-note { margin-top:2px !important; }
}
@media(prefers-reduced-motion:reduce) { .welcome-eyebrow { animation:none !important; } }


/* Stage 35: steady scrollbar gutter, correctly placed entry icon, and focused booking receipt. */
html {
  scrollbar-gutter: stable !important;
  scroll-behavior: auto !important;
  scrollbar-color: transparent transparent !important;
}
html::-webkit-scrollbar, body::-webkit-scrollbar { width:12px !important; height:12px !important; }
html::-webkit-scrollbar-track, html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-track, body::-webkit-scrollbar-thumb {
  background:transparent !important; border-color:transparent !important;
}
html, body { overflow-anchor:none; }
.welcome-continue { flex-direction:row !important; }
#enterReservation .welcome-continue-label { order:1; }
#enterReservation .welcome-enter-icon { order:2; transform:none !important; }
.confirmation-card { text-align:center !important; }
.confirmation-heading { position:relative; display:flex !important; justify-content:center !important; align-items:center !important; margin-bottom:18px !important; }
.confirmation-heading h2 { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; margin:0; text-align:center !important; font-size:clamp(20px,2.8vw,26px) !important; }
.confirmation-check { display:inline-grid; place-items:center; flex:0 0 30px; width:30px; height:30px; border:1px solid rgba(117,201,154,.78); border-radius:50%; color:#c9ffdc; background:rgba(38,128,75,.2); box-shadow:0 0 12px rgba(117,201,154,.3); font-size:20px; line-height:1; }
#confirmationText { display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; }
#confirmationText > p:first-child { width:100%; margin:0; font-size:clamp(17px,2.2vw,21px); line-height:1.95; text-align:center; }
.confirmation-card .arrival-note { margin:18px 0 22px; font-size:clamp(16px,2vw,19px); line-height:1.9; text-align:center; }
.reservation-code { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; width:min(100%,560px); margin:6px auto 10px !important; padding:18px clamp(14px,3vw,26px); border:1px solid rgba(242,217,154,.72); border-radius:18px; background:linear-gradient(135deg,rgba(230,189,102,.13),rgba(255,255,255,.035),rgba(230,189,102,.1)); box-shadow:0 0 18px rgba(230,189,102,.2),0 0 38px rgba(255,245,220,.09),inset 0 0 18px rgba(230,189,102,.06); }
.reservation-code-label { font-size:clamp(17px,2.3vw,21px); color:#f8e8b9; }
.reservation-code-arrow { width:clamp(28px,4vw,38px); height:auto; flex:0 0 auto; color:#f2d99a; filter:drop-shadow(0 0 7px rgba(242,217,154,.8)); animation:reservationCodePoint 1.7s ease-in-out infinite alternate; }
.reservation-code-value { font-size:clamp(34px,5.2vw,46px); line-height:1.2; font-weight:900; color:#fff3c7; text-shadow:0 0 10px rgba(255,255,245,.72),0 0 24px rgba(230,189,102,.72); }
@keyframes reservationCodePoint { from { transform:translateX(-2px); opacity:.78; } to { transform:translateX(3px); opacity:1; } }
@media(max-width:560px) {
  .reservation-code { gap:9px; padding:15px 10px; }
  .reservation-code-label { font-size:16px; }
  .reservation-code-value { font-size:clamp(30px,9vw,40px); }
  .confirmation-heading h2 { font-size:clamp(19px,5vw,23px) !important; }
  .confirmation-card .arrival-note { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .reservation-code-arrow { animation:none !important; } }


/* Stage 36: requested reservation-flow polish; keep the existing layout and behavior otherwise. */
#enterReservation {
  transform: none !important;
  transition: box-shadow .25s ease, filter .25s ease !important;
}
#enterReservation:hover,
#enterReservation:focus-visible {
  transform: none !important;
  animation: reservationStartGlow 1.25s ease-in-out infinite alternate !important;
  filter: brightness(1.04);
}
#enterReservation:hover .welcome-continue-label,
#enterReservation:focus-visible .welcome-continue-label { margin: 0 !important; }
#enterReservation .welcome-enter-icon { transform: scaleX(-1) !important; }
@keyframes reservationStartGlow {
  from { box-shadow: 0 0 14px rgba(255,255,245,.34), 0 0 26px rgba(230,189,102,.34), inset 0 1px rgba(255,255,255,.7) !important; }
  to { box-shadow: 0 0 24px rgba(255,255,245,.72), 0 0 46px rgba(230,189,102,.72), inset 0 1px rgba(255,255,255,.9) !important; }
}
#showReservationForm.rules-continue {
  display: flex !important;
  width: min(100%, 520px) !important;
  margin: 30px auto 0 !important;
  justify-content: center !important;
}
#showReservationForm.rules-continue > span { transform: scaleX(-1); }
/* Rules leave upward with a fade; the reservation form appears without a positional jump. */
.rules-card.rules-leaving { animation: reservationRulesFadeUp .48s cubic-bezier(.22,.72,.22,1) both !important; }
@keyframes reservationRulesFadeUp {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-22px); }
}
.reservation-flow.flow-entering { animation: reservationFlowFadeIn .42s ease both !important; }
@keyframes reservationFlowFadeIn { from { opacity: 0; } to { opacity: 1; } }
.reservation-page.has-confirmation .page-header p { display: none !important; }
.reservation-code {
  cursor: default;
  transition: border-color .25s ease, box-shadow .25s ease, background .25s ease, transform .25s ease !important;
}
.reservation-code:hover {
  border-color: rgba(255,248,224,.96) !important;
  background: linear-gradient(135deg,rgba(230,189,102,.22),rgba(255,255,255,.075),rgba(230,189,102,.19)) !important;
  box-shadow: 0 0 25px rgba(255,245,220,.25), 0 0 48px rgba(230,189,102,.38), inset 0 0 22px rgba(255,255,255,.07) !important;
}
.reservation-code-arrow { transform: scaleX(-1); }
@keyframes reservationCodePoint { from { translate: 2px 0; opacity: .78; } to { translate: -3px 0; opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  #enterReservation:hover, #enterReservation:focus-visible { animation: none !important; }
  .rules-card.rules-leaving, .reservation-flow.flow-entering { animation-duration: .01ms !important; }
}

/* Stage 37: center the rules acceptance, keep the page gutter stable, and prevent dropdown jumps. */
.rules-acceptance {
  width: 100% !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  flex-wrap: wrap;
}
.rules-acceptance > span:last-child {
  flex: 0 1 auto;
  text-align: center;
}
@media (max-width: 600px) {
  .rules-acceptance {
    align-items: center !important;
    justify-content: center !important;
  }
}

/* Keep the same 12px scrollbar space in every stage; only its appearance fades on entry. */
html {
  overflow-y: scroll !important;
  scrollbar-gutter: stable !important;
  scroll-behavior: auto !important;
  overflow-anchor: none !important;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar { width: 12px !important; height: 12px !important; }
html.welcome-open {
  overflow-y: scroll !important;
  scrollbar-gutter: stable !important;
  scrollbar-color: transparent transparent !important;
}
html.welcome-open::-webkit-scrollbar-track,
html.welcome-open::-webkit-scrollbar-thumb {
  background: transparent !important;
  border-color: transparent !important;
}
html:not(.welcome-open) {
  scrollbar-color: rgba(230,189,102,.72) #090909 !important;
}
html:not(.welcome-open)::-webkit-scrollbar-track { background: #090909 !important; }
html:not(.welcome-open)::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg,#f2d99a,#9f762d) !important;
  border: 3px solid #090909 !important;
  border-radius: 99px !important;
}
html, body { overflow-anchor: none !important; }

/* Menus scroll internally and remain fully usable near the bottom edge of the viewport. */
.custom-select-menu {
  overscroll-behavior: contain !important;
  scroll-padding-block: 8px;
  -webkit-overflow-scrolling: touch;
}
.custom-select-option {
  min-height: 42px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.custom-select.is-open .custom-select-trigger {
  transform: none !important;
}


/* Stage 38: make the welcome particle network vivid and keep the page scrollbar consistent in every state. */
.welcome-particles {
  opacity: 1 !important;
  filter: contrast(1.06) saturate(1.08);
}
html,
html.welcome-open,
html:not(.welcome-open) {
  overflow-y: scroll !important;
  scrollbar-gutter: stable !important;
  scrollbar-width: thin !important;
  scrollbar-color: #9f762d #090909 !important;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar { width: 12px !important; height: 12px !important; }
html::-webkit-scrollbar-track,
html.welcome-open::-webkit-scrollbar-track,
html:not(.welcome-open)::-webkit-scrollbar-track,
body::-webkit-scrollbar-track {
  background: #090909 !important;
  border-color: #090909 !important;
}
html::-webkit-scrollbar-thumb,
html.welcome-open::-webkit-scrollbar-thumb,
html:not(.welcome-open)::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #f2d99a, #9f762d) !important;
  border: 3px solid #090909 !important;
  border-radius: 99px !important;
}
html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #fff0c0, #c49b49) !important;
}
#enterReservation .welcome-enter-icon {
  translate: 0 1.5px !important;
}


/* Stage 39: restore the original airy welcome animation and keep stage transitions seamless. */
.welcome-particles {
  opacity: .7 !important;
  filter: none !important;
}

/* Reserve the gutter for stable layout, but draw a scrollbar only when the document actually overflows. */
html,
html.welcome-open,
html:not(.welcome-open),
html.sougvare-modal-open {
  overflow-y: auto !important;
  scrollbar-gutter: stable !important;
}

/* The page underneath the welcome overlay is laid out at its real top position but clipped to the viewport.
   This prevents the hidden form from creating a fake scrollbar on the intro screen. */
body.welcome-open #reservationMain {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  left: 0 !important;
  width: min(100% - 32px, 760px) !important;
  height: 100vh !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
  overflow: hidden !important;
  margin-inline: auto !important;
  z-index: 1 !important;
}

/* Use a compositor-friendly upward fade; the already-running background is revealed underneath. */
.welcome-screen.is-leaving {
  animation: welcomeExitWithoutBlackFrame .82s cubic-bezier(.22,.72,.22,1) both !important;
  pointer-events: none !important;
}
@keyframes welcomeExitWithoutBlackFrame {
  0% { opacity: 1; transform: translateY(0); visibility: visible; }
  58% { opacity: .72; transform: translateY(-28vh); visibility: visible; }
  100% { opacity: 0; transform: translateY(-100%); visibility: hidden; }
}

/* The locked-range padlock sits optically 1.5px lower, as requested. */
.segmentation-lock-emoji {
  position: relative !important;
  top: 1.5px !important;
}

@media (prefers-reduced-motion: reduce) {
  .welcome-screen.is-leaving { animation-duration: .01ms !important; }
}


/* Fine polish: keep the welcome-to-rules exit on the compositor, with a softer mobile backdrop. */
.welcome-screen { backface-visibility:hidden; transform:translateZ(0); }
.welcome-screen.is-leaving {
  will-change:transform,opacity;
  backface-visibility:hidden;
  transform:translate3d(0,0,0);
  animation-timing-function:cubic-bezier(.16,.72,.2,1) !important;
}
@media (max-width:600px) {
  .sougvare-particles { opacity:.46 !important; }
  .welcome-particles { opacity:.42 !important; }
  .welcome-screen.is-leaving { animation-duration:.76s !important; }
}


/* Final: skip the welcome-screen exit animation to avoid the mobile viewport tick. */
#welcomeScreen.is-leaving { animation:none !important; transition:none !important; }
#welcomeScreen[hidden] { display:none !important; }

/* Highlight the essential reservation details in the black-and-gold confirmation. */
#confirmationText > p.confirmation-summary {
  display:flex !important;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  width:100%;
  margin:0;
  text-align:center;
  line-height:1.8;
}
.confirmation-summary-lead {
  flex:1 0 100%;
  color:#f5e4b6;
  font-weight:800;
  margin-bottom:2px;
}
.confirmation-summary-item {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:6px;
  min-height:42px;
  padding:7px 12px;
  border:1px solid rgba(230,189,102,.4);
  border-radius:12px;
  background:linear-gradient(135deg,rgba(230,189,102,.12),rgba(255,255,255,.025));
  box-shadow:inset 0 1px rgba(255,255,255,.035),0 0 14px rgba(230,189,102,.055);
}
.confirmation-summary-label { color:#d9b65e; font-size:14px; font-weight:700; }
.confirmation-summary-value { color:#ffe7a0; font-size:16px; font-weight:900; text-shadow:0 0 12px rgba(230,189,102,.22); }
@media(max-width:520px) {
  #confirmationText > p.confirmation-summary { gap:7px; }
  .confirmation-summary-item { gap:4px; min-height:38px; padding:6px 9px; }
  .confirmation-summary-label { font-size:12px; }
  .confirmation-summary-value { font-size:14px; }
}


/* Dates with no capacity or dates that have passed are visibly unavailable, matching unavailable session buttons. */
.date-option.is-unavailable-date:disabled,
.date-option.is-unavailable-date:disabled:hover {
    border-color: rgba(224, 88, 88, .58) !important;
    color: #ffb0b0 !important;
    background: linear-gradient(135deg, rgba(91, 24, 24, .78), rgba(37, 13, 13, .92)) !important;
    box-shadow: inset 0 0 0 1px rgba(224, 88, 88, .12), 0 0 12px rgba(150, 25, 25, .1) !important;
    opacity: .92;
    cursor: not-allowed;
}
.date-option.is-unavailable-date:disabled::after {
    content: "";
    display: none;
}

/* Bank details shown at the end of the successful online reservation flow. */
.confirmation-bank-info {
    width: min(100%, 640px);
    margin: 4px auto 10px;
    padding: clamp(12px, 2.6vw, 18px);
    border: 1px solid rgba(230, 189, 102, .34);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(230,189,102,.075), rgba(255,255,255,.025));
    text-align: center;
}
.confirmation-bank-info h3 {
    margin: 0 0 10px;
    color: #f2d99a;
    font-size: clamp(15px, 2vw, 18px);
    text-align: center;
}
.confirmation-bank-row {
    display: grid;
    grid-template-columns: minmax(80px, .8fr) minmax(0, 2fr) auto;
    align-items: center;
    gap: 8px;
    padding: 9px 0;
    border-top: 1px solid rgba(230,189,102,.15);
}
.confirmation-bank-label { color: var(--muted); text-align: center; }
.confirmation-bank-number { color: #fff0c4; direction: ltr; unicode-bidi: isolate; text-align: center; overflow-wrap: anywhere; font-size: clamp(12px, 1.8vw, 15px); }
.confirmation-bank-copy { min-width: 52px; padding: 6px 10px; border: 1px solid rgba(230,189,102,.45); border-radius: 8px; color: #f2d99a; background: rgba(230,189,102,.07); font: inherit; cursor: pointer; }
.confirmation-bank-copy:hover { background: rgba(230,189,102,.16); }
@media(max-width:520px) {
    .confirmation-bank-row { grid-template-columns: 1fr auto; gap: 6px 9px; }
    .confirmation-bank-label { grid-column: 1 / -1; }
    .confirmation-bank-number { text-align: center; }
    .confirmation-bank-copy { grid-column: 1 / -1; justify-self: center; }
}

/* Date labels: only genuinely unavailable dates are red; unopened ranges stay neutral/gold. */
.date-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    text-align: center;
}
.date-option-label { display:block; }
.date-option-status {
    display:block;
    color:inherit;
    font-size:10px;
    font-weight:800;
    line-height:1.35;
}
.date-option-status[hidden] { display:none !important; }
.date-option.is-locked-date:disabled,
.date-option.is-locked-date:disabled:hover {
    border-color:rgba(214,181,104,.28)!important;
    color:#d7c28a!important;
    background:linear-gradient(135deg,rgba(214,181,104,.075),rgba(18,18,18,.9))!important;
    box-shadow:none!important;
    opacity:.78;
    cursor:not-allowed;
}
.date-option.is-no-capacity-date:disabled,
.date-option.is-no-capacity-date:disabled:hover {
    border-color:rgba(214,181,104,.34)!important;
    color:#d7c28a!important;
    background:rgba(214,181,104,.045)!important;
}
.date-option.is-unavailable-date:disabled .date-option-status { color:#ff9292!important; }

/* Full/past sessions are red. Sessions locked only because their range has not opened are not red. */
.slot-option:disabled,
.slot-option.is-disabled-slot:disabled {
    border-color:rgba(214,181,104,.24)!important;
    color:#d7c28a!important;
    background:linear-gradient(135deg,rgba(214,181,104,.055),rgba(17,17,17,.94))!important;
    box-shadow:none!important;
    opacity:.82;
    cursor:not-allowed;
}
.slot-option:disabled span span,
.slot-option.is-disabled-slot:disabled span span { color:#c8b578!important; }
.slot-option.is-locked-slot:disabled,
.slot-option.is-locked-slot:disabled:hover {
    border-color:rgba(214,181,104,.28)!important;
    color:#d7c28a!important;
    background:linear-gradient(135deg,rgba(214,181,104,.075),rgba(18,18,18,.92))!important;
}
.slot-option.is-locked-slot:disabled span span { color:#c8b578!important; }
.slot-option.is-unavailable-slot:disabled,
.slot-option.is-unavailable-slot:disabled:hover {
    border-color:rgba(224,88,88,.66)!important;
    color:#ffb0b0!important;
    background:linear-gradient(135deg,rgba(91,24,24,.78),rgba(37,13,13,.92))!important;
    box-shadow:inset 0 0 0 1px rgba(224,88,88,.12)!important;
    opacity:.94;
}
.slot-option.is-unavailable-slot:disabled span span { color:#ff9292!important; }


/* Final adjustment: for unavailable dates/sessions, use red border only. Text and background stay neutral. */
.date-option.is-unavailable-date:disabled,
.date-option.is-unavailable-date:disabled:hover {
    border: 1px solid rgba(235, 75, 75, .92) !important;
    color: #e6d4a4 !important;
    background: rgba(20, 18, 15, .82) !important;
    box-shadow: none !important;
    opacity: .92 !important;
}
.date-option.is-unavailable-date:disabled .date-option-status {
    color: #d7c28a !important;
}
.slot-option.is-unavailable-slot:disabled,
.slot-option.is-unavailable-slot:disabled:hover {
    border: 1px solid rgba(235, 75, 75, .92) !important;
    color: #e6d4a4 !important;
    background: linear-gradient(135deg, rgba(214,181,104,.045), rgba(17,17,17,.94)) !important;
    box-shadow: none !important;
    opacity: .92 !important;
}
.slot-option.is-unavailable-slot:disabled span span {
    color: #c8b578 !important;
}

.confirmation-bank-intro{margin:0 auto 8px;color:#d1c5aa;font-size:13px;text-align:center}
.confirmation-bank-blessing{display:inline-block;margin:2px auto 15px;padding:6px 18px;border:1px solid rgba(242,217,154,.38);border-radius:999px;color:#fff0bd;font-size:clamp(17px,2.5vw,21px);font-weight:900;text-shadow:0 0 7px rgba(255,242,190,.85),0 0 17px rgba(230,189,102,.8),0 0 31px rgba(230,189,102,.45);box-shadow:0 0 17px rgba(230,189,102,.2),inset 0 0 12px rgba(230,189,102,.08);animation:motherBlessingGlow 2.4s ease-in-out infinite alternate}
@keyframes motherBlessingGlow{from{filter:brightness(.96);box-shadow:0 0 12px rgba(230,189,102,.16),inset 0 0 8px rgba(230,189,102,.05)}to{filter:brightness(1.18);box-shadow:0 0 21px rgba(230,189,102,.3),inset 0 0 15px rgba(230,189,102,.1)}}
@media(prefers-reduced-motion:reduce){.confirmation-bank-blessing{animation:none}}

.confirmation-heading .confirmation-check{display:inline-block;width:25px;height:25px;vertical-align:middle;fill:none;stroke:#9de5b5;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 7px rgba(82,225,127,.35))}

/* Rules are Persian prose: keep paragraphs right-aligned while number markers remain geometric. */
.rules-card,.rules-card .reservation-rules-list,.rules-card .reservation-rules-list li{direction:rtl!important;text-align:right!important}
.rules-card .reservation-rules-list{padding-inline-start:0!important;padding-inline-end:0!important;list-style:none!important;counter-reset:rule-item}
.rules-card .reservation-rules-list li{position:relative!important;display:block!important;padding:12px 54px 12px 14px!important;line-height:2!important}
.rules-card .reservation-rules-list li>span{display:block!important;width:100%!important;text-align:right!important}
.rules-card .reservation-rules-list li::before{content:counter(rule-item)!important;counter-increment:rule-item;position:absolute!important;right:8px!important;top:50%!important;transform:translateY(-50%)!important;width:32px!important;height:32px!important;display:grid!important;place-items:center!important;border:1px solid rgba(214,181,104,.55)!important;border-radius:9px!important;background:linear-gradient(145deg,rgba(214,181,104,.16),rgba(214,181,104,.045))!important;color:#f2d58d!important;font-weight:800!important;box-shadow:0 3px 12px rgba(0,0,0,.18)!important;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important}
.rules-card .reservation-rules-list li:hover::before{transform:translateY(-50%) scale(1.08)!important;border-color:#e6bd66!important;box-shadow:0 0 14px rgba(230,189,102,.24)!important}


/* Final refinement: lock controls, matching SVG CTA, isolated bank-copy action, and arrival note. */
#showReservationForm.rules-continue{display:flex;align-items:center;justify-content:center;gap:10px}
#showReservationForm.rules-continue>svg{display:block;width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.segmentation-accordion.is-locked>.segmentation-summary,.segmentation-summary.is-noninteractive{pointer-events:none!important;cursor:not-allowed!important;user-select:none}
.segmentation-accordion.is-locked>.segmentation-summary{opacity:.72}
.slot-option:disabled,.date-option:disabled{cursor:not-allowed!important}
.confirmation-bank-row{grid-template-columns:minmax(86px,.8fr) minmax(0,2fr) 104px}
.confirmation-bank-copy-wrap{position:relative;display:grid;place-items:center;width:104px;min-width:104px;min-height:42px;justify-self:end;isolation:isolate}
.confirmation-bank-copy{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-width:104px;height:40px;white-space:nowrap;transition:color .2s,border-color .2s,background .2s,box-shadow .2s}
.confirmation-bank-copy svg,.confirmation-copy-tooltip svg{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.confirmation-bank-copy.is-copied{color:#72e0a5!important;border-color:#39b978!important;background:rgba(37,171,103,.13)!important;box-shadow:0 0 16px rgba(53,205,127,.23)!important}
.confirmation-copy-tooltip{position:absolute;inset-inline-end:0;bottom:calc(100% + 7px);z-index:3;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:104px;padding:7px 10px;border:1px solid rgba(70,205,129,.6);border-radius:9px;background:#10271b;color:#82e6aa;font-size:12px;font-weight:800;box-shadow:0 5px 22px rgba(0,0,0,.35),0 0 15px rgba(53,205,127,.18);animation:copyTooltipIn .18s ease-out both;pointer-events:none}
.confirmation-copy-tooltip[hidden]{display:none!important}
@keyframes copyTooltipIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.confirmation-card .arrival-note{display:block;text-align:center!important;line-height:2;margin:18px auto 22px;max-width:680px}
.confirmation-card .arrival-note strong{display:inline-block;color:#f4dca0;font-weight:900}
@media(max-width:520px){.confirmation-bank-row{grid-template-columns:1fr;justify-items:center}.confirmation-bank-label{grid-column:auto}.confirmation-bank-copy-wrap{grid-column:auto;justify-self:center;margin-top:3px}}

/* Stable, independent status pills for open and upcoming reservation ranges. */
.segmentation-status {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    flex: 0 0 112px !important;
    width: 112px !important;
    min-width: 112px !important;
    min-height: 34px;
    padding: 6px 10px !important;
    box-sizing: border-box;
    white-space: nowrap;
    border-radius: 11px !important;
    font-weight: 800;
    line-height: 1.2;
}
.segmentation-status > span { flex: 0 0 auto; }
.segmentation-status-icon {
    display: block !important;
    flex: 0 0 17px !important;
    width: 17px !important;
    height: 17px !important;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.segmentation-status.is-open {
    color: #8af0b2 !important;
    border-color: rgba(86, 220, 142, .58) !important;
    background: linear-gradient(135deg, rgba(34, 135, 78, .22), rgba(17, 66, 42, .32)) !important;
    box-shadow: 0 0 12px rgba(63, 220, 132, .15), inset 0 0 8px rgba(80, 230, 145, .07);
    text-shadow: 0 0 8px rgba(92, 235, 151, .42);
}
.segmentation-status.is-open .segmentation-status-icon {
    filter: drop-shadow(0 0 4px rgba(100, 255, 166, .85));
}
.segmentation-status.is-locked {
    color: #e5c77f !important;
    border-color: rgba(214, 181, 104, .48) !important;
    background: linear-gradient(135deg, rgba(113, 83, 31, .2), rgba(48, 37, 18, .34)) !important;
    box-shadow: 0 0 11px rgba(214, 181, 104, .12), inset 0 0 8px rgba(214, 181, 104, .05);
}
.segmentation-status.is-locked .segmentation-status-icon {
    filter: drop-shadow(0 0 4px rgba(242, 202, 116, .62));
}
@media (max-width: 520px) {
    .segmentation-status { flex-basis: 100px !important; width: 100px !important; min-width: 100px !important; gap: 5px !important; }
    .segmentation-status-icon { flex-basis: 15px !important; width: 15px !important; height: 15px !important; }
}
/* Copy feedback remains on the button itself; no floating tooltip shifts or overlays the receipt. */
.confirmation-copy-tooltip { display: none !important; }

/* V7: SVG plus/minus control stays in a fixed box and animates without moving adjacent content. */
.segmentation-summary::before{content:none!important;display:none!important}
.segmentation-toggle-icon{
  display:inline-flex;align-items:center;justify-content:center;order:3;
  flex:0 0 34px;width:34px;min-width:34px;height:34px;min-height:34px;
  box-sizing:border-box;border:1px solid rgba(230,189,102,.48);border-radius:10px;
  background:linear-gradient(145deg,rgba(230,189,102,.14),rgba(30,24,14,.55));
  color:#f6d98f;box-shadow:0 0 10px rgba(230,189,102,.08),inset 0 1px rgba(255,255,255,.06);
  pointer-events:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.segmentation-toggle-icon svg{display:block;flex:0 0 19px;width:19px;height:19px;overflow:visible;fill:none;stroke:currentColor;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px rgba(242,217,154,.28));transition:filter .18s ease,transform .18s ease}
.segmentation-toggle-vertical{opacity:1;transform:scaleY(1);transform-origin:center;transition:opacity .16s ease,transform .16s ease}
.segmentation-accordion[open]>.segmentation-summary .segmentation-toggle-vertical{opacity:0;transform:scaleY(.12)}
.segmentation-summary:not(.is-noninteractive):hover .segmentation-toggle-icon,
.segmentation-summary:not(.is-noninteractive):focus-visible .segmentation-toggle-icon{
  border-color:rgba(255,228,164,.95);background:linear-gradient(145deg,rgba(230,189,102,.24),rgba(45,34,17,.72));
  box-shadow:0 0 16px rgba(230,189,102,.24),inset 0 1px rgba(255,255,255,.09);
}
.segmentation-summary:not(.is-noninteractive):hover .segmentation-toggle-icon svg{transform:scale(1.1);filter:drop-shadow(0 0 6px rgba(255,225,154,.8))}
.segmentation-summary:focus-visible{outline:2px solid rgba(230,189,102,.8);outline-offset:2px}
@media(max-width:480px){.segmentation-toggle-icon{flex-basis:32px;width:32px;min-width:32px;height:32px;min-height:32px}.segmentation-toggle-icon svg{flex-basis:18px;width:18px;height:18px}}
@media(prefers-reduced-motion:reduce){.segmentation-toggle-icon,.segmentation-toggle-icon svg,.segmentation-toggle-vertical{transition:none!important}}

/* V7: preserve the green confirmation checkmark's square SVG dimensions inside the heading. */
.confirmation-heading h2 .confirmation-check{
  display:block!important;flex:0 0 28px!important;flex-shrink:0!important;
  width:28px!important;min-width:28px!important;max-width:28px!important;
  height:28px!important;min-height:28px!important;max-height:28px!important;
  box-sizing:border-box!important;overflow:visible!important;align-self:center!important;
  vertical-align:middle!important;object-fit:contain!important;
}


/* V8: more vertical breathing room around form section headings. */
.reservation-page .section-heading{padding-block:7px;margin-top:10px;margin-bottom:28px}
.reservation-page .subsection-heading{padding-block:7px;margin-top:10px;margin-bottom:18px}

/* V10 — rules checkbox cannot collapse when the accompanying label wraps. */
.rules-acceptance{align-items:center!important;gap:12px!important;line-height:1.95!important}
.rules-acceptance .rules-checkmark{box-sizing:border-box!important;flex:0 0 25px!important;width:25px!important;min-width:25px!important;height:auto!important;min-height:25px!important;aspect-ratio:1/1;align-self:center!important;display:grid!important;place-items:center!important}
.rules-acceptance .rules-checkmark svg{display:block;flex:0 0 17px;width:17px;height:17px}
.rules-card .rules-continue{margin-bottom:18px!important}
.rules-card .section-heading{padding-block:14px!important;margin-top:16px!important;margin-bottom:24px!important}
.reservation-page .section-heading{padding-block:12px!important;margin-top:14px!important;margin-bottom:22px!important}
.reservation-page .subsection-heading{padding-block:10px!important;margin-top:14px!important;margin-bottom:18px!important}

/* V10 — comfortable reading size for public reservation rules and form labels. */
.reservation-rules-list li,.rules-acceptance{font-size:clamp(14px,1vw + 10px,16px)!important}
.form-group>label,.form-group label{font-size:clamp(14px,.85vw + 10px,16px)!important;font-weight:700;line-height:1.8}
.form-group input,.form-group select,.form-group textarea{font-size:clamp(15px,.7vw + 12px,17px)!important}
.availability-midnight-note{font-size:clamp(14px,.8vw + 10px,16px)}
