/* Anna Prasad Booking — Reference mockup design */
:root {
    --anna-red: #8B1A1A;
    --anna-red-dark: #6B1212;
    --anna-red-light: #FDF0F0;
    --anna-gold: #C9922A;
    --anna-success: #1B7F4A;
    --anna-error: #C0392B;
    --anna-text: #241D12;
    --anna-text-muted: #4A4234;
    --anna-border: #E0D8CE;
    --anna-card: #FFFFFF;
    --anna-bg: #F4F4F4;
    --anna-beige: #FFF8EE;
    --anna-radius: 8px;
    --anna-shadow: 0 2px 16px rgba(44, 36, 22, 0.07);
    /* Spacing scale (consistent vertical rhythm) */
    --anna-gap-label: 8px;   /* label → control, control → hint/link */
    --anna-gap-field: 20px;  /* field → field, block → block */
    --anna-gap-title: 20px;  /* heading → first field */
    --anna-gap-section: 32px;/* section divider padding/margin */
}

/* ── Hero (full-width, temple background) ── */
.anna-hero {
    position: relative;
    background-color: #6B0F0F;
    background-image:
        linear-gradient(90deg, rgba(98,2,3,0.96) 0%, rgba(116,12,12,0.78) 40%, rgba(130,18,18,0.45) 75%, rgba(140,22,22,0.30) 100%),
        url('../assets/images/mandir-header.jpg');
    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;
    color: #fff;
    overflow: hidden;
}

.anna-hero__content {
    position: relative;
    max-width: var(--site-max, 1200px);
    margin: 0 auto;
    padding: 40px 24px 28px;
    text-align: left;
}

.anna-hero--compact .anna-hero__content {
    padding: 32px 24px;
}

.anna-hero__title {
    font-size: clamp(1.875rem, 5vw, 2.75rem);
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin: 0 0 10px;
    line-height: 1.1;
    text-shadow: 0 2px 8px rgba(0,0,0,0.25);
}

.anna-hero__subtitle {
    font-size: clamp(0.875rem, 2.5vw, 1.0625rem);
    opacity: 0.95;
    margin: 0;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 500;
    text-shadow: 0 1px 4px rgba(0,0,0,0.25);
}

/* Bottom badge strip */
.anna-hero__strip {
    position: relative;
    background: rgba(74, 6, 6, 0.55);
    border-top: 1px solid rgba(255,255,255,0.12);
}

.anna-hero__badges {
    list-style: none;
    margin: 0 auto;
    max-width: var(--site-max, 1200px);
    padding: 14px 24px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 14px 44px;
}

.anna-hero__badges li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #fff;
}

.anna-hero__badge-icon {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1.5px solid var(--anna-gold);
    color: var(--anna-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.anna-hero__badge-icon svg {
    width: 16px;
    height: 16px;
}

@media (max-width: 575px) {
    .anna-hero__badges {
        gap: 12px 24px;
    }
    .anna-hero__badges li {
        font-size: 0.875rem;
    }
}

/* ── Booking wrap ── */
.anna-booking-wrap {
    width: 100%;
}

/* ── Stepper ── */
.anna-stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: 28px;
    flex-wrap: wrap;
}

.anna-stepper__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 84px;
}

.anna-stepper__circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--anna-border);
    color: var(--anna-text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    transition: background 0.2s, color 0.2s;
}

.anna-stepper__item--active .anna-stepper__circle {
    background: var(--anna-red);
    color: #fff;
}

.anna-stepper__label {
    font-size: 0.8125rem;
    color: var(--anna-text-muted);
    text-align: center;
    max-width: 90px;
    line-height: 1.3;
}

.anna-stepper__item--active .anna-stepper__label {
    color: var(--anna-red);
    font-weight: 600;
}

.anna-stepper__line {
    flex: 1;
    height: 2px;
    background: var(--anna-border);
    min-width: 16px;
    max-width: 56px;
    margin-bottom: 28px;
}

@media (max-width: 479px) {
    .anna-stepper__label { display: none; }
    .anna-stepper__line { margin-bottom: 0; }
    .anna-stepper__item { min-width: 0; }
}

/* ── Size toggle ── */
.anna-size-toggle {
    display: inline-flex;
    background: var(--anna-border);
    border-radius: var(--anna-radius);
    padding: 4px;
    margin-bottom: 20px;
}

.anna-size-toggle__btn {
    padding: 12px 28px;
    border: none;
    background: transparent;
    border-radius: 6px;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--anna-text-muted);
    cursor: pointer;
    transition: all 0.2s;
}

.anna-size-toggle__btn.active {
    background: var(--anna-card);
    color: var(--anna-red);
    font-weight: 600;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}

/* ── Form card ── */
.anna-form-card {
    background: var(--anna-card);
    border: 1px solid var(--anna-border);
    border-radius: var(--anna-radius);
    box-shadow: var(--anna-shadow);
    padding: 36px 32px;
}

@media (max-width: 575px) {
    .anna-form-card {
        padding: 24px 18px;
    }
}

.anna-form-card__title {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--anna-red);
    margin: 0 0 var(--anna-gap-title);
    letter-spacing: 0.01em;
}

/* ── Sections ── */
.anna-section {
    margin-bottom: var(--anna-gap-section);
    padding-bottom: var(--anna-gap-section);
    border-bottom: 1px solid var(--anna-border);
}

.anna-section:last-of-type {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.anna-section__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--anna-red);
    margin: 0 0 var(--anna-gap-title);
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.anna-section__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    padding: 0 4px;
    border-radius: 6px;
    background: var(--anna-red);
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0;
}

/* ── Form fields ── */
.anna-form-grid {
    display: grid;
    gap: var(--anna-gap-field);
    margin-bottom: var(--anna-gap-field);
}

@media (min-width: 600px) {
    .anna-form-grid--2 {
        grid-template-columns: 1fr 1fr;
        gap: var(--anna-gap-field) 24px;
    }
}

.anna-field {
    display: flex;
    flex-direction: column;
    gap: var(--anna-gap-label);
    margin-bottom: var(--anna-gap-field);
}

.anna-field:last-child { margin-bottom: 0; }

/* Inside a grid, spacing is owned by the grid gap — avoid double spacing */
.anna-form-grid > .anna-field { margin-bottom: 0; }

.anna-field label {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--anna-text);
    letter-spacing: 0.01em;
}

.anna-required {
    color: var(--anna-red);
    margin-left: 1px;
}

.anna-field input::placeholder,
.anna-field textarea::placeholder {
    color: #8C8475;
    opacity: 1;
}

.anna-field input,
.anna-field select,
.anna-field textarea,
.anna-select {
    width: 100%;
    min-height: 42px;
    padding: 9px 14px;
    font-size: 1rem;
    border: 1px solid var(--anna-border);
    border-radius: var(--anna-radius);
    background: var(--anna-card);
    color: var(--anna-text);
    box-sizing: border-box;
    transition: border-color 0.2s, box-shadow 0.2s;
    appearance: none;
    -webkit-appearance: none;
}

.anna-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B6358' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 40px;
    cursor: pointer;
}

.anna-field textarea {
    min-height: 84px;
    resize: vertical;
    line-height: 1.5;
}

.anna-field input:focus,
.anna-field select:focus,
.anna-field textarea:focus,
.anna-select:focus {
    outline: none;
    border-color: var(--anna-red);
    box-shadow: 0 0 0 3px rgba(139, 26, 26, 0.1);
}

.anna-field input[readonly] {
    background: #FAFAFA;
    cursor: pointer;
}

.anna-field__hint {
    font-size: 0.875rem;
    color: var(--anna-text-muted);
}

.anna-field-row {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

@media (min-width: 600px) {
    .anna-field-row {
        flex-direction: row;
        align-items: center;
    }
    .anna-field-row .anna-select { flex: 1; }
}

/* Availability badge */
.anna-availability {
    font-size: 0.9375rem;
    color: var(--anna-success);
    font-weight: 500;
    display: none;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.anna-availability:not(:empty) {
    display: flex;
}

.anna-availability::before {
    content: '✓';
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #E8F8EF;
    color: var(--anna-success);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    font-weight: 700;
    flex-shrink: 0;
}

/* Notices */
.anna-notice {
    padding: 14px 18px;
    border-radius: var(--anna-radius);
    font-size: 0.9375rem;
    line-height: 1.5;
    margin-bottom: var(--anna-gap-field);
    display: none;
}

.anna-notice:not(:empty) { display: block; }

.anna-notice--info {
    background: #EBF5FB;
    color: #1A5276;
    border: 1px solid #AED6F1;
}

.anna-notice--error {
    background: #FDEDEC;
    color: var(--anna-error);
    border: 1px solid #F5B7B1;
}

/* Date input icon */
.anna-input-icon {
    position: relative;
}

.anna-input-icon input {
    padding-right: 40px;
}

.anna-input-icon__svg {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--anna-text-muted);
    pointer-events: none;
}

/* Phone row */
.anna-phone-row {
    display: flex;
    gap: 0;
}

.anna-phone-prefix {
    display: flex;
    align-items: center;
    padding: 0 16px;
    background: #F5F5F5;
    border: 1px solid var(--anna-border);
    border-right: none;
    border-radius: var(--anna-radius) 0 0 var(--anna-radius);
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--anna-text-muted);
    white-space: nowrap;
}

.anna-phone-row input {
    border-radius: 0 var(--anna-radius) var(--anna-radius) 0;
    flex: 1;
}

/* Quantity stepper */
.anna-qty-stepper {
    display: flex;
    align-items: stretch;
    max-width: 190px;
}

.anna-qty-stepper__btn {
    width: 44px;
    min-height: 42px;
    border: 1px solid var(--anna-border);
    background: #F5F5F5;
    font-size: 1.375rem;
    font-weight: 400;
    color: var(--anna-text);
    cursor: pointer;
    transition: background 0.2s;
    line-height: 1;
    padding: 0;
}

.anna-qty-stepper__btn:first-child { border-radius: var(--anna-radius) 0 0 var(--anna-radius); }
.anna-qty-stepper__btn:last-child { border-radius: 0 var(--anna-radius) var(--anna-radius) 0; }
.anna-qty-stepper__btn:hover { background: var(--anna-border); }

.anna-qty-stepper__input {
    flex: 1;
    text-align: center;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    min-width: 56px;
    font-size: 1.125rem;
    font-weight: 600;
    -moz-appearance: textfield;
}

.anna-qty-stepper__input::-webkit-outer-spin-button,
.anna-qty-stepper__input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Link button */
.anna-link-btn {
    background: none;
    border: none;
    padding: 0;
    font-size: 0.875rem;
    color: var(--anna-red);
    cursor: pointer;
    text-decoration: underline;
    margin-top: 0;
    text-align: left;
}

.anna-link-btn:hover { color: var(--anna-red-dark); }

/* ── Payment table ── */
.anna-payment-table-wrap {
    border: 1px solid var(--anna-border);
    border-radius: var(--anna-radius);
    overflow: hidden;
}

.anna-payment-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 1rem;
}

.anna-payment-table thead {
    background: #F9F7F4;
}

.anna-payment-table th {
    padding: 13px 18px;
    text-align: left;
    font-weight: 700;
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--anna-text-muted);
    border-bottom: 1px solid var(--anna-border);
}

.anna-payment-table th:last-child,
.anna-payment-table td:last-child {
    text-align: right;
}

.anna-payment-table td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--anna-border);
    color: var(--anna-text);
}

.anna-payment-table tbody tr:last-child td {
    border-bottom: 1px solid var(--anna-border);
}

.anna-payment-table__hint {
    font-size: 0.8125rem;
    color: var(--anna-text-muted);
    font-weight: 400;
}

.anna-payment-table__total-row td {
    background: #FAFAFA;
    border-bottom: none;
    padding: 16px 18px;
    font-size: 1.0625rem;
}

.anna-payment-table__total-row strong {
    color: var(--anna-red);
    font-size: 1.1875rem;
}

/* ── Terms ── */
.anna-terms {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: var(--anna-gap-field) 0;
}

.anna-terms input[type="checkbox"] {
    width: 22px;
    height: 22px;
    margin-top: 1px;
    flex-shrink: 0;
    accent-color: var(--anna-red);
}

.anna-terms label {
    font-size: 0.9375rem;
    cursor: pointer;
    line-height: 1.5;
}

.anna-terms a {
    color: var(--anna-red);
    text-decoration: underline;
}

/* ── Buttons ── */
.anna-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 54px;
    padding: 16px 28px;
    font-size: 1.0625rem;
    font-weight: 600;
    border-radius: var(--anna-radius);
    border: none;
    cursor: pointer;
    transition: background 0.2s, opacity 0.2s;
    position: relative;
    text-decoration: none;
}

.anna-btn--primary {
    background: var(--anna-red);
    color: #fff;
}

.anna-btn--primary:hover:not(:disabled) {
    background: var(--anna-red-dark);
}

.anna-btn--primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.anna-btn--full { width: 100%; }

.anna-btn--cta {
    font-size: 1.1875rem;
    min-height: 60px;
    padding: 18px 28px;
    letter-spacing: 0.01em;
}

.anna-btn--outline {
    background: transparent;
    color: var(--anna-red);
    border: 1px solid var(--anna-red);
}

.anna-btn--outline:hover { background: var(--anna-red-light); }

.anna-btn--sm {
    min-height: 0;
    padding: 9px 16px;
    font-size: 0.875rem;
    gap: 6px;
}

.anna-btn--ghost {
    background: none;
    color: var(--anna-text-muted);
    border: none;
    font-size: 0.9375rem;
    min-height: 0;
    padding: 12px;
    margin-top: var(--anna-gap-label);
    width: 100%;
}

.anna-btn--ghost:hover { color: var(--anna-text); }

.anna-btn--loading .anna-btn__text { visibility: hidden; }
.anna-btn--loading .anna-spinner { display: block; }

.anna-spinner {
    display: none;
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255,255,255,0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: anna-spin 0.7s linear infinite;
    position: absolute;
}

@keyframes anna-spin { to { transform: rotate(360deg); } }

/* Secure notice */
.anna-secure-notice {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    background: var(--anna-beige);
    border: 1px solid #F0E4CC;
    border-radius: var(--anna-radius);
    padding: 18px 20px;
    margin-top: var(--anna-gap-field);
}

.anna-secure-notice svg {
    color: var(--anna-gold);
    flex-shrink: 0;
    margin-top: 2px;
    width: 24px;
    height: 24px;
}

.anna-secure-notice p {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--anna-text-muted);
    line-height: 1.55;
}

/* ── Sidebar ── */
.anna-sidebar {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* Shared info card */
.anna-info-card {
    background: var(--anna-card);
    border: 1px solid var(--anna-border);
    border-radius: var(--anna-radius);
    padding: 20px 22px;
    box-shadow: var(--anna-shadow);
}

.anna-info-card__title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--anna-red);
    margin: 0 0 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--anna-border);
}

.anna-info-card__link {
    display: inline-block;
    margin-top: 6px;
    font-size: 0.9375rem;
    color: var(--anna-red);
    text-decoration: none;
    font-weight: 600;
}

.anna-info-card__link:hover { text-decoration: underline; }

.anna-info-card__link--btn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    text-align: left;
}

/* Rath Yatra promo banner */
.anna-promo {
    display: block;
    text-decoration: none;
    background: linear-gradient(#FFFDF8, #FFF6E8);
    border: 2px solid var(--anna-gold);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--anna-shadow);
    transition: transform 0.2s, box-shadow 0.2s;
}

.anna-promo:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(139, 26, 26, 0.18);
}

.anna-promo__img {
    display: block;
    width: 100%;
    height: auto;
}

.anna-promo__caption {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 16px 14px;
    text-align: center;
}

.anna-promo__date {
    font-size: 1rem;
    font-weight: 800;
    color: var(--anna-red);
    letter-spacing: 0.01em;
}

.anna-promo__cta {
    font-size: 0.875rem;
    color: var(--anna-text-muted);
    font-weight: 600;
}

/* Cancellation callout */
.anna-callout {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--anna-red-light);
    border: 1px solid #F1C0C0;
    border-left: 4px solid var(--anna-red);
    border-radius: var(--anna-radius);
    padding: 16px 18px;
}

.anna-callout__icon {
    color: var(--anna-red);
    flex-shrink: 0;
    margin-top: 1px;
}

.anna-callout__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.anna-callout__body strong {
    font-size: 0.9375rem;
    color: var(--anna-red);
    line-height: 1.4;
}

.anna-callout__body span {
    font-size: 0.875rem;
    color: var(--anna-text-muted);
    line-height: 1.45;
}

.anna-callout--success {
    background: #E8F8EF;
    border-color: #BFE8D0;
    border-left-color: var(--anna-success);
}

.anna-callout--success .anna-callout__icon,
.anna-callout--success .anna-callout__body strong {
    color: var(--anna-success);
}

/* Terms & Conditions list */
.anna-tnc-list {
    list-style: none;
    padding: 0;
    margin: 0 0 8px;
}

.anna-tnc-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 0.9375rem;
    color: var(--anna-text-muted);
    line-height: 1.5;
    padding: 10px 0;
    border-bottom: 1px dashed var(--anna-border);
}

.anna-tnc-list li:last-child { border-bottom: none; }

.anna-tnc-list__icon {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--anna-red-light);
    color: var(--anna-red);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Numbered terms list */
.anna-tnc-ol {
    list-style: none;
    counter-reset: tnc;
    padding: 0;
    margin: 0 0 8px;
}

.anna-tnc-ol li {
    counter-increment: tnc;
    position: relative;
    padding: 9px 0 9px 30px;
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--anna-text-muted);
    border-bottom: 1px dashed var(--anna-border);
}

.anna-tnc-ol li:last-child { border-bottom: none; }

.anna-tnc-ol li::before {
    content: counter(tnc);
    position: absolute;
    left: 0;
    top: 9px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--anna-red-light);
    color: var(--anna-red);
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 20px;
    text-align: center;
}

/* Daily Aarti card */
.anna-aarti {
    background: var(--anna-card);
    border: 1px solid var(--anna-border);
    border-radius: var(--anna-radius);
    overflow: hidden;
    box-shadow: var(--anna-shadow);
}

.anna-aarti__img {
    display: block;
    width: 100%;
    height: auto;
}

.anna-aarti__body {
    padding: 16px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.anna-aarti__title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--anna-text);
    margin: 0 0 4px;
}

.anna-aarti__meta {
    font-size: 0.875rem;
    color: var(--anna-text-muted);
    margin: 0;
}

.anna-aarti__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 20px;
    background: var(--anna-red);
    color: #fff;
    border-radius: var(--anna-radius);
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s;
}

.anna-aarti__btn:hover { background: var(--anna-red-dark); }

/* Temple timings */
.anna-timings {
    margin: 0 0 8px;
}

.anna-timings__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--anna-border);
    font-size: 0.9375rem;
}

.anna-timings__row:last-child { border-bottom: none; }

.anna-timings dt {
    color: var(--anna-text-muted);
    font-weight: 500;
}

.anna-timings dd {
    margin: 0;
    font-weight: 700;
    color: var(--anna-text);
    white-space: nowrap;
}

/* Weekly prasad menu (sidebar) */
.anna-menu-sb__sub {
    margin: 4px 0 8px;
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--anna-red);
}

.anna-menu-sb__sub--timed {
    display: flex;
    flex-direction: column;
}

.anna-menu-sb__sub--timed span {
    text-transform: none;
    letter-spacing: 0;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--anna-error);
    margin-top: 2px;
}

.anna-menu-sb__sub--night {
    margin-top: 18px;
}

.anna-menu-sb {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.anna-menu-sb th,
.anna-menu-sb td {
    padding: 7px 10px;
    border: 1px solid var(--anna-border);
    text-align: left;
    vertical-align: top;
    line-height: 1.4;
}

.anna-menu-sb th {
    width: 44px;
    background: #F9F7F4;
    color: var(--anna-text-muted);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.8125rem;
    white-space: nowrap;
}

.anna-menu-sb td {
    color: var(--anna-text);
}

.anna-menu-sb tr:nth-child(even) td {
    background: #FCFBF9;
}

.anna-menu-sb__note {
    margin: 12px 0 0;
    font-size: 0.8125rem;
    font-style: italic;
    color: var(--anna-text-muted);
}

/* Cancellation policy (sidebar) */
.anna-policy__intro {
    margin: 0 0 12px;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--anna-text);
}

.anna-policy-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.anna-policy-list__item {
    position: relative;
    padding: 10px 12px 10px 34px;
    border-radius: var(--anna-radius);
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--anna-text);
    border: 1px solid var(--anna-border);
    background: #FCFBF9;
}

.anna-policy-list__item::before {
    position: absolute;
    left: 11px;
    top: 10px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
}

.anna-policy-list__item--ok {
    background: #ECFAF1;
    border-color: #BCE8CD;
}

.anna-policy-list__item--ok::before {
    content: '\2713';
    background: var(--anna-success);
}

.anna-policy-list__item--warn {
    background: #FFF7E8;
    border-color: #F0DCB0;
}

.anna-policy-list__item--warn::before {
    content: '\21BB';
    background: var(--anna-gold);
}

.anna-policy-list__item--no {
    background: #FDEDEC;
    border-color: #F5C6C2;
}

.anna-policy-list__item--no::before {
    content: '\2715';
    background: var(--anna-error);
}

/* Room availability cards (dharamshala find page) */
.anna-room-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.anna-room-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    padding: 16px 18px;
    border: 1px solid var(--anna-border);
    border-radius: var(--anna-radius);
    background: #FCFBF9;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.anna-room-card:hover {
    border-color: var(--anna-red);
    box-shadow: var(--anna-shadow);
}

.anna-room-card__info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.anna-room-card__name {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--anna-text);
}

.anna-room-card__price {
    font-size: 1rem;
    font-weight: 700;
    color: var(--anna-red);
}

.anna-room-card__price small {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--anna-text-muted);
}

.anna-room-card__action {
    display: flex;
    align-items: center;
    gap: 14px;
}

.anna-room-card__avail {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--anna-success);
    white-space: nowrap;
}

.anna-room-card__soldout {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--anna-error);
}

.anna-loader-row {
    padding: 16px;
    text-align: center;
    color: var(--anna-text-muted);
    font-size: 0.9375rem;
}

.anna-room-loader {
    margin-top: 4px;
}

.anna-room-loader:not(:empty) {
    margin-top: 16px;
}

/* Total bar (room pricing) */
.anna-total-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 16px;
    padding: 14px 18px;
    border-radius: var(--anna-radius);
    background: #FAFAFA;
    border: 1px solid var(--anna-border);
}

.anna-total-bar__label {
    font-size: 1rem;
    font-weight: 600;
    color: var(--anna-text);
}

.anna-total-bar__value {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--anna-red);
}

/* Availability matrix pills */
.anna-avail-table th,
.anna-avail-table td { text-align: center; }
.anna-avail-table th:first-child,
.anna-avail-table td:first-child { text-align: left; }

.anna-avail-pill {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
}

.anna-avail-pill--sold { background: #FDEDEC; color: var(--anna-error); }
.anna-avail-pill--left { background: #ECFAF1; color: var(--anna-success); }

/* CMS fallback */
.anna-sidebar__cms {
    font-size: 0.9375rem;
    line-height: 1.6;
}

.anna-sidebar__cms img {
    max-width: 100%;
    height: auto;
    border-radius: var(--anna-radius);
}

/* ── Sticky mobile footer ── */
.anna-sticky-footer {
    display: none;
}

@media (max-width: 767px) {
    .anna-sticky-footer {
        display: flex;
        align-items: center;
        gap: 12px;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        padding: 12px 16px;
        background: var(--anna-card);
        border-top: 1px solid var(--anna-border);
        box-shadow: 0 -4px 16px rgba(0,0,0,0.1);
        z-index: 100;
    }

    .anna-sticky-footer__total {
        flex: 1;
        font-size: 0.875rem;
        color: var(--anna-text-muted);
    }

    .anna-sticky-footer__total strong {
        display: block;
        font-size: 1.25rem;
        color: var(--anna-red);
    }

    .anna-sticky-footer .anna-btn {
        flex: 1;
        padding: 12px 16px;
    }

    /* Only the home form gets a sticky footer, so reserve space + hide its
       inline CTA/ghost there. Other pages (review/summary, room form) keep
       their visible CTA buttons. */
    .anna-booking-wrap:has(.anna-sticky-footer) {
        padding-bottom: 80px;
    }

    #anna_form .anna-btn--cta { display: none; }
    #anna_form .anna-btn--ghost { display: none; }
}

/* ── Menu modal ── */
.anna-menu-modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.anna-menu-modal.is-open { display: flex; }

.anna-menu-modal__content {
    background: var(--anna-card);
    border-radius: var(--anna-radius);
    max-width: 640px;
    width: 100%;
    max-height: 80vh;
    overflow: auto;
    padding: 24px;
}

.anna-menu-modal__close {
    float: right;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--anna-text-muted);
}

.anna-menu-table {
    width: 100%;
    font-size: 0.75rem;
    border-collapse: collapse;
    margin-top: 12px;
}

.anna-menu-table th,
.anna-menu-table td {
    padding: 8px;
    border: 1px solid var(--anna-border);
    text-align: left;
}

.anna-menu-table th {
    background: var(--anna-red-light);
    font-weight: 600;
}

.anna-hidden-source { display: none; }

/* ── Toast ── */
.anna-toast-container {
    position: fixed;
    top: 80px;
    right: 16px;
    left: 16px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 8px;
    pointer-events: none;
}

@media (min-width: 480px) {
    .anna-toast-container { left: auto; max-width: 360px; }
}

.anna-toast {
    padding: 14px 16px;
    border-radius: var(--anna-radius);
    font-size: 0.875rem;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    pointer-events: auto;
    animation: anna-toast-in 0.3s ease;
}

.anna-toast--error { background: #FDEDEC; color: var(--anna-error); border: 1px solid #F5B7B1; }
.anna-toast--success { background: #E8F8EF; color: var(--anna-success); border: 1px solid #A9DFBF; }
.anna-toast--info { background: #EBF5FB; color: #1A5276; border: 1px solid #AED6F1; }

@keyframes anna-toast-in {
    from { opacity: 0; transform: translateY(-12px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ── Blocking alert dialog (critical / blocker errors) ── */
.anna-alert-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(36, 29, 18, 0.55);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}

.anna-alert-overlay.is-open {
    display: flex;
    animation: anna-alert-fade 0.2s ease;
}

.anna-alert {
    background: var(--anna-card);
    border-radius: 14px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
    width: 100%;
    max-width: 420px;
    padding: 28px 26px 24px;
    text-align: center;
    animation: anna-alert-pop 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.anna-alert__icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: #FDEDEC;
    color: var(--anna-error);
    display: flex;
    align-items: center;
    justify-content: center;
}

.anna-alert__title {
    margin: 0 0 8px;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--anna-text);
}

.anna-alert__msg {
    margin: 0 0 22px;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--anna-text-muted);
}

.anna-alert__btn {
    width: 100%;
    min-height: 48px;
    padding: 12px 24px;
    border: none;
    border-radius: var(--anna-radius);
    background: var(--anna-red);
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.anna-alert__btn:hover { background: var(--anna-red-dark); }

.anna-alert__btn:focus-visible {
    outline: 3px solid rgba(139, 26, 26, 0.35);
    outline-offset: 2px;
}

@keyframes anna-alert-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes anna-alert-pop {
    from { opacity: 0; transform: translateY(12px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* ── Validation ── */
.anna-field--invalid input,
.anna-field--invalid select,
.anna-field--invalid textarea {
    border-color: var(--anna-error);
}

label.error,
.anna-field__error {
    font-size: 0.75rem;
    color: var(--anna-error) !important;
    margin-top: 4px;
}

#pincodeerrordiv:not(:empty) { display: block; }

/* ── Review / confirmation pages ── */
.anna-review,
.anna-success-page {
    max-width: 720px;
    margin: 0 auto;
}

.anna-success-page__icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--anna-success);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin: 0 auto 16px;
}

.anna-success-page__title {
    text-align: center;
    font-size: 1.5rem;
    color: var(--anna-success);
    margin: 0 0 8px;
}

.anna-detail-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.anna-detail-list li {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid var(--anna-border);
    font-size: 0.9375rem;
    gap: 16px;
}

.anna-detail-list li span:first-child { color: var(--anna-text-muted); }
.anna-detail-list li strong { text-align: right; }

.anna-progress {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.anna-progress__step {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8125rem;
    color: var(--anna-text-muted);
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--anna-card);
    border: 1px solid var(--anna-border);
}

.anna-progress__step--active {
    background: var(--anna-red-light);
    border-color: var(--anna-red);
    color: var(--anna-red);
    font-weight: 600;
}

.anna-progress__num {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--anna-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
}

.anna-progress__step--active .anna-progress__num {
    background: var(--anna-red);
    color: #fff;
}

.anna-card {
    background: var(--anna-card);
    border: 1px solid var(--anna-border);
    border-radius: var(--anna-radius);
    box-shadow: var(--anna-shadow);
    overflow: hidden;
    margin-bottom: 16px;
}

.anna-card__header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--anna-border);
    background: var(--anna-red-light);
}

.anna-card__title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
    color: var(--anna-red);
}

.anna-card__body { padding: 20px; }

.anna-banner {
    padding: 12px 16px;
    border-radius: var(--anna-radius);
    font-size: 0.875rem;
    margin-bottom: 16px;
}

.anna-banner--info { background: #EBF5FB; color: #1A5276; border: 1px solid #AED6F1; }
.anna-banner--success { background: #E8F8EF; color: var(--anna-success); border: 1px solid #A9DFBF; }

.anna-booking-wrap .view_prasad_pop_up { display: none; }
