/* Reading and information pages: Figma 16:170, 12:15 and their mobile counterparts. */
.fr-page {
    max-width: 1440px;
    margin: auto;
    padding: 32px 80px 48px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    color: #574434;
    background: #fffcf8;
    font:
        400 14px/22px 'Poppins',
        sans-serif;
}
.fr-page h1 {
    margin: 0;
    color: #8b1a10;
    font:
        700 32px/40px 'Poppins',
        sans-serif;
}
.fr-page p {
    margin: 0;
}
.fr-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    min-width: 108px;
    min-height: 44px;
    padding: 8px 16px;
    border: 1px solid #e4d6c4;
    border-radius: 22px;
    background: #fff;
    color: #8b1a10;
    text-decoration: none;
    font-weight: 600;
}
.fr-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.fr-card {
    min-width: 0;
    padding: 16px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    border: 1px solid #e4d6c4;
    border-radius: 16px;
    background: #fff;
    overflow-wrap: anywhere;
}
.fr-card h2 {
    margin: 0;
    color: #8b1a10;
    font:
        600 16px/24px 'Poppins',
        sans-serif;
}
.fr-card a:not(.btn) {
    color: inherit;
}
.fr-soft {
    padding: 24px;
    background: #fcebdd;
    border: 0;
}
.fr-wallet {
    gap: 32px;
}
.fr-wallet h2 {
    color: #8b1a10;
    font:
        600 28px/38px 'Poppins',
        sans-serif;
}
.fr-balances {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    width: 100%;
}
.fr-balances span {
    display: block;
    font-size: 12px;
}
.fr-balances strong {
    display: block;
    font-size: 26px;
    line-height: 38px;
    font-weight: 400;
    overflow-wrap: anywhere;
}
.fr-account {
    border-radius: 20px;
}
.fr-wallet .wallet-tab {
    min-height: 44px;
    border-radius: 10px;
    white-space: normal;
}
.fr-wallet .txn-desc,
.fr-wallet .txn-meta {
    overflow-wrap: anywhere;
}
body.np-controller-panchang.np-action-matchmaking .fr-card {
    padding: 24px;
    gap: 16px;
}
body.np-controller-panchang.np-action-matchmaking .fr-card legend {
    float: none;
    width: auto;
    padding: 0 4px;
    color: #8b1a10;
    font-size: 16px;
    font-weight: 600;
}
body.np-controller-panchang.np-action-matchmaking .fr-card > .row {
    width: 100%;
}
body.np-controller-policy #mainContent {
    background: #fffcf8;
}
body.np-controller-policy #mainContent > .container,
body.np-controller-policy .page-hero > .container {
    max-width: 1440px;
    padding-left: 80px;
    padding-right: 80px;
}
body.np-controller-policy .page-hero {
    background: #fffcf8 !important;
    padding: 32px 0 24px;
    border: 0;
}
body.np-controller-policy .page-hero h1 {
    color: #8b1a10;
    font:
        700 32px/40px 'Poppins',
        sans-serif;
}
body.np-controller-policy .page-hero h1 > i {
    display: none;
}
body.np-controller-policy .policy-wrap {
    max-width: none;
}
body.np-controller-policy .policy-card {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    min-width: 0;
}
.fr-policy {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    align-items: start;
    gap: 48px;
}
.fr-contents {
    padding: 24px;
    background: #fcebdd;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: sticky;
    top: 110px;
}
.fr-contents h2 {
    color: #8b1a10;
    font:
        600 14px/22px 'Poppins',
        sans-serif;
    margin: 0;
}
.fr-contents a {
    color: #574434;
    text-decoration: none;
    font:
        400 14px/22px 'Poppins',
        sans-serif;
    padding: 4px 0;
    overflow-wrap: anywhere;
}
.fr-contents a:hover {
    text-decoration: underline;
}
.fr-chapter {
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    background: #fff;
    padding: 16px;
    margin-top: 12px;
    scroll-margin-top: 110px;
}
.fr-chapter > summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    cursor: pointer;
    list-style: none;
}
.fr-chapter > summary::-webkit-details-marker {
    display: none;
}
.fr-chapter > summary::after {
    content: '+';
    color: #8b1a10;
    font-size: 24px;
    flex-shrink: 0;
}
.fr-chapter[open] > summary::after {
    content: '−';
}
.policy-card .fr-chapter > summary h2 {
    margin: 0;
    padding: 0;
    font:
        600 16px/23px 'Poppins',
        sans-serif;
}
.fr-chapter[open] > summary {
    margin-bottom: 12px;
}
.fr-page :focus-visible,
.fr-policy :focus-visible {
    outline: 2px solid #c4530a;
    outline-offset: 3px;
}
@media (max-width: 991px) {
    .fr-page {
        padding: 20px 20px 32px;
        gap: 16px;
    }
    .fr-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    body.np-controller-policy #mainContent > .container,
    body.np-controller-policy .page-hero > .container {
        padding-left: 20px;
        padding-right: 20px;
    }
    .fr-policy {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }
    .fr-contents {
        position: static;
        padding: 20px;
    }
    .fr-page h1,
    body.np-controller-policy .page-hero h1 {
        font-size: 24px;
        line-height: 32px;
    }
    .fr-wallet h1 {
        font-size: 28px;
        line-height: 38px;
    }
    .fr-wallet {
        gap: 32px;
    }
    .fr-wallet .fr-soft {
        padding: 16px;
    }
    .fr-balances {
        gap: 8px;
    }
    .fr-balances strong {
        font-size: 22px;
        line-height: 28px;
    }
    .fr-wallet .txn-item {
        flex-wrap: wrap;
        padding: 16px;
    }
    .fr-wallet .txn-item > .text-end {
        margin-left: auto;
    }
    body.np-controller-panchang.np-action-matchmaking .fr-card {
        padding: 16px;
    }
}
@media print {
    .fr-contents,
    .fr-expand {
        display: none;
    }
    .fr-policy {
        display: block;
    }
}

/* Editorial banners are burgundy in the retrieved astrology and spiritual frames. */
body.np-customer-surface.np-controller-spiritual .sp-hero,
body.np-customer-surface.np-controller-panchang:is(
        .np-action-festivals,
        .np-action-muhurat,
        .np-action-rashifal
    )
    .page-hero {
    max-width: 1280px;
    margin: 24px auto 16px;
    padding: 24px 32px;
    border-radius: 24px;
    border: 0;
    background: #8b1a10 !important;
}
body.np-customer-surface.np-controller-spiritual
    .sp-hero
    :is(h1, p, strong, .sp-eyebrow, .sp-stats div),
body.np-customer-surface.np-controller-panchang:is(
        .np-action-festivals,
        .np-action-muhurat,
        .np-action-rashifal
    )
    .page-hero
    :is(h1, p) {
    color: #fff !important;
}
body.np-customer-surface.np-controller-spiritual .sp-hero > .container,
body.np-customer-surface.np-controller-panchang:is(
        .np-action-festivals,
        .np-action-muhurat,
        .np-action-rashifal
    )
    .page-hero
    > .container {
    padding: 0;
    max-width: none;
}
body.np-controller-spiritual .sp-search input {
    min-height: 46px;
    border-radius: 10px;
}
body.np-controller-spiritual .sp-chip {
    min-height: 44px;
    border-radius: 10px;
}
@media (max-width: 1439px) {
    body.np-customer-surface.np-controller-spiritual .sp-hero,
    body.np-customer-surface.np-controller-panchang:is(
            .np-action-festivals,
            .np-action-muhurat,
            .np-action-rashifal
        )
        .page-hero {
        margin-left: 20px;
        margin-right: 20px;
    }
}
@media (max-width: 767px) {
    body.np-customer-surface.np-controller-spiritual .sp-hero,
    body.np-customer-surface.np-controller-panchang:is(
            .np-action-festivals,
            .np-action-muhurat,
            .np-action-rashifal
        )
        .page-hero {
        padding: 20px;
    }
    body.np-controller-spiritual .sp-toolbar {
        position: static;
    }
    body.np-controller-spiritual .sp-search {
        flex: 1 1 100%;
        min-width: 0;
    }
}

/* Profile overview: Figma 10:15 / 10:90. Saved values stay separate from editing. */
.fr-profile {
    padding-top: 24px;
    padding-bottom: 32px;
    gap: 16px;
}
.fr-profile > .fr-grid {
    align-items: start;
}
.fr-profile .fr-card {
    gap: 8px;
    border-radius: 20px;
}
.fr-profile .fr-profile-identity {
    background: #8b1a10;
    border: 0;
    color: white;
}
.fr-profile-identity h2 {
    color: white;
    font-size: 20px;
    line-height: 28px;
}
.fr-profile-identity p,
.fr-account-overview > p {
    font-size: 12px;
    line-height: 18px;
}
.fr-profile .fr-caption,
.fr-profile-action p {
    font-size: 11px;
    line-height: 18px;
}
.fr-profile-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #f2d4af;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
body .fr-profile .btn {
    font-size: 12px;
    line-height: 18px;
    padding: 8px 10px;
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.fr-profile-identity .btn {
    width: 220px;
    max-width: 100%;
}
.fr-profile .fr-account-overview {
    padding: 16px;
    border-radius: 24px;
}
.fr-account-overview .fr-balances {
    gap: 8px;
}
.fr-account-overview .fr-balances strong {
    font-size: 22px;
    line-height: 28px;
    margin-top: 8px;
}
.fr-account-overview .fr-balances span {
    font-size: 11px;
}
body .fr-account-overview .btn {
    min-height: 44px;
    border-radius: 8px;
}
.fr-profile-links {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}
.fr-profile-links .btn {
    border-radius: 12px;
}
.fr-profile-details h2,
.fr-profile-action h2 {
    font-size: 15px;
    line-height: 22px;
}
.fr-profile-details dl {
    margin: 0;
    width: 100%;
}
.fr-profile-details dl > div {
    display: grid;
    grid-template-columns: 144px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-height: 36px;
}
.fr-profile-details dt {
    font-size: 11px;
    font-weight: 400;
}
.fr-profile-details dd {
    font-size: 13px;
    margin: 0;
    color: #1c140d;
}
.fr-profile .fr-profile-action {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    border-radius: 16px;
}
.fr-profile-action > div {
    flex: 1;
    min-width: 0;
}
.fr-profile-action .btn {
    min-width: 144px;
}
#editProfileModal .form-section-title {
    font-weight: 600;
    color: #8b1a10;
    margin-bottom: 16px;
}
@media (max-width: 991px) {
    .fr-profile h1 {
        font-size: 28px;
        line-height: 36px;
    }
    .fr-profile-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .fr-profile-details dl > div {
        grid-template-columns: 104px minmax(0, 1fr);
    }
    .fr-profile .fr-profile-action {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    .fr-profile-action .btn {
        width: 100%;
        min-height: 44px;
    }
}

/* Help & support: Figma 10:586 / 10:666. */
.fr-support {
    gap: 16px;
    padding-top: 24px;
    padding-bottom: 32px;
}
.fr-support h2 {
    color: #8b1a10;
    font:
        600 18px/26px 'Poppins',
        sans-serif;
    margin: 0;
}
.fr-faq .fr-chapter {
    max-width: 1030px;
    padding: 16px 24px;
    border-radius: 16px;
}
.fr-faq summary {
    color: #8b1a10;
    font-size: 16px;
    line-height: 23px;
    font-weight: 600;
}
.fr-support-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.fr-support-form .fr-grid {
    gap: 24px;
}
.fr-field {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.fr-field label {
    flex: 0 0 90px;
    font-size: 12px;
    font-weight: 600;
    color: #1c140d;
}
.fr-field .form-control,
.fr-field .form-select {
    flex: 1;
    min-width: 0;
    font-size: 12px;
    min-height: 44px;
}
.fr-support-form > .btn {
    align-self: flex-start;
}
.fr-tickets {
    padding: 16px;
    width: 100%;
}
.fr-tickets h2 {
    font-size: 20px;
    line-height: 30px;
}
.fr-tickets .table-responsive {
    width: 100%;
}
@media (max-width: 767px) {
    .fr-support h1 {
        font-size: 28px;
        line-height: 36px;
    }
    .fr-faq .fr-chapter {
        padding: 16px 24px;
    }
    .fr-support-form .fr-grid {
        gap: 16px;
    }
    .fr-field {
        align-items: flex-start;
    }
    .fr-field label {
        padding-top: 12px;
        flex-basis: 90px;
    }
}

/* Native preference inputs retain keyboard behavior and the existing POST contract. */
.fr-notifications {
    padding-top: 24px;
    padding-bottom: 32px;
    gap: 16px;
}
.fr-notifications > p {
    font-size: 16px;
    line-height: 26px;
}
.fr-preferences {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.fr-preferences > .btn {
    align-self: flex-start;
}
.fr-preference {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    background: white;
    border: 1px solid #e4d6c4;
    border-radius: 16px;
    padding: 12px 16px;
    cursor: pointer;
}
.fr-preference h2,
.fr-preference strong {
    display: block;
    font:
        600 15px/22px 'Poppins',
        sans-serif;
    color: #8b1a10;
    margin: 0 0 4px;
}
.fr-preference p,
.fr-preference-description {
    display: block;
    font-size: 12px;
    line-height: 17px;
}
.fr-preference > :first-child {
    min-width: 0;
    overflow-wrap: anywhere;
}
.fr-preference-control {
    position: relative;
    flex: 0 0 64px;
}
.fr-preference-control input {
    position: absolute;
    opacity: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
    z-index: 1;
}
.fr-preference-toggle {
    display: grid;
    place-items: center;
    width: 64px;
    min-height: 46px;
    border: 0;
    border-radius: 10px;
    background: #fcebdd;
    color: #8b1a10;
    font:
        600 12px/18px 'Poppins',
        sans-serif;
    flex-shrink: 0;
}
.fr-preference-control .fr-preference-toggle::after {
    content: 'Off';
}
.fr-preference-toggle.is-on,
.fr-preference-control input:checked + .fr-preference-toggle {
    background: #8b1a10;
    color: white;
}
.fr-preference-control input:checked + .fr-preference-toggle::after {
    content: 'On';
}
.fr-preference-control input:focus-visible + .fr-preference-toggle {
    outline: 2px solid #c4530a;
    outline-offset: 3px;
}
@media (max-width: 767px) {
    .fr-notifications h1 {
        font-size: 28px;
        line-height: 36px;
    }
}

.fr-account-overview {
    padding: 16px;
    gap: 8px;
    border-radius: 20px;
}
.fr-account-overview > p {
    font-size: 12px;
    line-height: 18px;
}
.fr-account-overview .fr-caption {
    font-size: 11px;
}
body .fr-account-overview .btn {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    line-height: 18px;
    padding: 8px 10px;
}
.fr-history {
    padding-top: 56px;
    padding-bottom: 80px;
    gap: 48px;
}
.fr-history h1 {
    font-size: 40px;
    line-height: 52px;
}
.fr-history-eyebrow {
    color: #e8650a;
    font-size: 12px;
    font-weight: 600;
}
.fr-history > p:not(.fr-history-eyebrow) {
    font-size: 16px;
    line-height: 26px;
}
.fr-history-record {
    padding: 24px;
    gap: 24px;
}
.fr-history-record h2 {
    font-size: 14px;
    line-height: 22px;
    color: #574434;
}
.fr-history-empty {
    min-height: 90px;
    font-size: 12px;
    line-height: 26px;
}
.fr-history .table-responsive {
    width: 100%;
}
@media (max-width: 991px) {
    .fr-history {
        padding: 32px 20px 48px;
        gap: 32px;
    }
    .fr-history h1 {
        font-size: 28px;
        line-height: 38px;
    }
    .fr-history-empty {
        min-height: 130px;
    }
}

.fr-about h2 {
    font:
        600 16px/24px 'Poppins',
        sans-serif;
    color: #8b1a10;
    margin: 0 0 12px;
}
.fr-about .fr-card h2 {
    margin: 0;
}
.fr-about-banner {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
}
.fr-about-banner > img {
    width: 100%;
    height: 440px;
    object-fit: cover;
    display: block;
}
.fr-about-banner .fr-back {
    position: absolute;
    top: 12px;
    left: 12px;
}
.fr-about-services {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px 12px;
    align-items: start;
}
body .fr-about-services .btn {
    font-size: 12px;
    line-height: 18px;
    padding: 12px;
}
@media (max-width: 767px) {
    .fr-about-services {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }
    .fr-about-banner > img {
        height: 260px;
    }
}
.fr-lead {
    font-size: 16px;
    line-height: 26px;
}

body .fr-profile-identity p {
    color: #fff;
}
body .fr-account-overview .btn {
    min-width: 74px;
}
body .fr-account-overview a[href*='addMoney'] {
    min-width: 90px;
}
@media (max-width: 991px) {
    .fr-profile h1 {
        font-weight: 600;
    }
}

/* Festival cards: Figma 8:791 and 8:845. */
.fr-festivals {
    gap: 48px;
    padding-top: 24px;
}
.fr-editorial {
    padding: 24px;
    border-radius: 24px;
    background: #8b1a10;
}
body .fr-editorial h1,
body .fr-editorial p,
body .fr-editorial small {
    color: #fff;
}
.fr-editorial small {
    font-size: 9px;
    line-height: 14px;
}
.fr-editorial p {
    margin-top: 8px;
}
.fr-editorial .fr-back {
    min-width: 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    align-self: center;
}
.fr-festival-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.fr-festival-filters select {
    max-width: 100%;
    min-height: 46px;
    border: 0;
    border-radius: 10px;
    padding: 10px 24px 10px 16px;
    background: #fcebdd;
    color: #c4530a;
    font:
        600 14px/22px 'Poppins',
        sans-serif;
}
.fr-festival-filters label:first-child select {
    background: #8b1a10;
    color: #fff;
}
.fr-festival-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 48px 24px;
}
.fr-festival-grid .fr-card {
    padding: 24px;
    gap: 16px;
    text-decoration: none;
    color: #574434;
}
.fr-festival-grid h2 {
    font-size: 20px;
    line-height: 30px;
}
.fr-festival-grid small {
    color: #c4530a;
    font-size: 12px;
    text-transform: uppercase;
}
.fr-festival-grid .fr-festival-note {
    font-size: 12px;
}
.fr-festivals > .fr-soft {
    padding: 16px;
    gap: 8px;
}
@media (max-width: 991px) {
    .fr-festivals {
        gap: 32px;
        padding-top: 20px;
    }
    .fr-festival-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }
    .fr-editorial {
        padding: 20px;
    }
    .fr-editorial h1 {
        overflow-wrap: anywhere;
    }
    .fr-festival-filters label {
        min-width: 0;
        flex: 1 1 40%;
    }
    .fr-festival-filters select {
        width: 100%;
    }
}

.fr-bookings {
    padding: 24px 120px;
}
.fr-bookings > p:not(.fr-history-eyebrow),
.fr-bookings > .fr-soft p {
    font-size: 16px;
    line-height: 26px;
}
.fr-bookings .fr-card h2 {
    font-size: 20px;
    line-height: 30px;
}
.fr-bookings .fr-soft {
    gap: 16px;
}
.fr-bookings .nav-link {
    padding: 12px;
    line-height: 20px;
    background: #fcebdd;
    color: #8b1a10;
    min-height: 44px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
}
.fr-bookings .nav-link.active {
    background: #8b1a10;
    color: white;
}
.fr-booking-empty {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 24px;
}
.fr-booking-empty p {
    margin-top: 6px;
}
.fr-booking-empty[hidden] {
    display: none;
}
@media (max-width: 991px) {
    .fr-bookings {
        padding-left: 20px;
        padding-right: 20px;
    }
    .fr-booking-empty {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* Portal sign-in: Figma 16:391, 16:538 and 16:656. */
.fr-portal {
    padding: 24px 240px 40px;
    gap: 16px;
}
.fr-portal-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 304px;
    align-items: start;
    gap: 16px;
}
.fr-portal-grid .fr-card {
    padding: 16px;
    gap: 8px;
}
.fr-portal-grid .fr-soft {
    border: 1px solid #e4d6c4;
}
.fr-portal-grid aside p {
    font-size: 13px;
    line-height: 20px;
}
.fr-portal form {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
}
.fr-portal-fields {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.fr-portal label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #2d2118;
}
.fr-portal input {
    width: 100%;
    min-width: 0;
    height: 56px;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    padding: 16px;
    background: #fff;
    color: #574434;
    font: inherit;
}
body .fr-portal .btn {
    background: #8b1a10;
    border: 0;
    border-radius: 10px;
    min-height: 46px;
    padding: 12px 24px;
    color: #fff;
    font:
        600 14.4px/20px 'Poppins',
        sans-serif;
}
.fr-portal-links {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.fr-portal-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 12px;
    background: #fcebdd;
    color: #c4530a;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}
/* Password recovery uses the rounded return action, not a related-link chip. Figma 16:459 / 16:495. */
.fr-portal-return {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    min-height: 46px;
    padding: 12px 24px;
    border-radius: 24px;
    background: #fcebdd;
    color: #c4530a;
    text-decoration: none;
    font:
        600 14.4px/20px 'Poppins',
        sans-serif;
}
.fr-portal input::placeholder,
.fr-register input.form-control::placeholder {
    color: #574434;
    opacity: 1;
}
.fr-portal .fr-mobile-field,
.fr-register .fr-mobile-field {
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    background: #fff;
    flex-wrap: nowrap;
}
.fr-portal .fr-mobile-field .input-group-text,
.fr-register .fr-mobile-field .input-group-text {
    border: 0;
    border-radius: 12px 0 0 12px;
    padding: 16px 0 16px 16px;
    background: transparent;
    color: #574434;
    font: inherit;
}
.fr-portal .fr-mobile-field input.form-control,
.fr-register .fr-mobile-field input.form-control {
    border: 0;
    border-radius: 0 12px 12px 0;
    min-height: 54px;
    height: 54px;
    padding-left: 6px;
    box-shadow: none;
}
.fr-mobile-field:focus-within {
    border-color: #e8650a;
    box-shadow: 0 0 0 3px rgba(232, 101, 10, 0.12);
}
/* Figma58:10150/10154/10158: focus, validation and disabled field states. */
:is(.fr-portal, .fr-register)
    input:not([type='checkbox']):not([type='radio']):not(
        [type='hidden']
    ):focus {
    border: 2px solid #e8650a;
    padding: 15px;
    outline: none;
    box-shadow: none !important;
}
:is(.fr-portal, .fr-register)
    input:not([type='checkbox']):not([type='radio']):not([type='hidden']):is(
        .input-validation-error,
        [aria-invalid='true'],
        :user-invalid
    ) {
    border: 2px solid #b42318;
    padding: 15px;
    box-shadow: none !important;
}
:is(.fr-portal, .fr-register)
    input:not([type='checkbox']):not([type='radio']):disabled {
    opacity: 0.45;
    background: #fff;
    cursor: not-allowed;
}
:is(.fr-portal, .fr-register) .fr-mobile-field input.form-control {
    border: 0 !important;
    box-shadow: none !important;
    padding: 16px 16px 16px 6px !important;
}
:is(.fr-portal, .fr-register) .fr-mobile-field:focus-within {
    border-color: #e8650a;
    box-shadow: inset 0 0 0 1px #e8650a;
}
:is(.fr-portal, .fr-register)
    .fr-mobile-field:has(
        input:is(.input-validation-error, [aria-invalid='true'], :user-invalid)
    ) {
    border-color: #b42318;
    box-shadow: inset 0 0 0 1px #b42318;
}
body :is(.fr-portal, .fr-register) .btn:disabled {
    background: #e4d6c4;
    border-color: #e4d6c4;
    color: #927f6c;
    opacity: 1;
    transform: none;
    box-shadow: none;
}
@media (max-width: 1199px) {
    .fr-portal {
        padding-left: 80px;
        padding-right: 80px;
    }
}
@media (max-width: 767px) {
    .fr-portal {
        padding: 24px 20px 40px;
    }
    .fr-portal-grid,
    .fr-portal-fields {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }
    .fr-portal form > button {
        width: 100%;
    }
    .fr-portal h1 {
        font-weight: 600;
    }
}

.fr-muhurat {
    padding-top: 24px;
    gap: 20px;
}
.fr-mobile-back {
    display: none;
}
.fr-date-label {
    display: inline-flex;
    align-items: center;
    padding: 12px 24px;
    border-radius: 10px;
    background: #fcebdd;
    color: #c4530a;
    font-weight: 600;
}
.fr-section-heading {
    margin: 0;
    color: #33211a;
    font:
        600 20px/30px 'Poppins',
        sans-serif;
}
.fr-occasion-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
body .fr-occasion-grid .btn {
    font-size: 12px;
    min-height: 46px;
    padding: 10px;
    border-radius: 10px;
}
.fr-occasion-grid a[aria-current] {
    background: #fcebdd;
}
.fr-occasion-summary {
    background: #fff3de;
    padding: 24px;
    border-radius: 20px;
    gap: 16px;
}
.fr-occasion-summary small {
    color: #c4530a;
    font-size: 12px;
    text-transform: uppercase;
}
@media (max-width: 991px) {
    .fr-muhurat {
        gap: 28px;
    }
    .fr-mobile-back {
        display: inline-flex;
    }
    .fr-editorial .fr-desktop-back {
        display: none;
    }
    .fr-occasion-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Vastu online/on-site selection: Figma 8:907. */
.fr-service-heading {
    padding: 48px 24px;
}
.fr-service-heading .fr-back {
    width: 46px;
    min-width: 46px;
    padding: 0;
}
.fr-service-heading small {
    font-size: 10px;
    line-height: 16px;
    color: #1c140d;
}
.fr-service-heading img {
    flex: none;
}
.fr-vastu form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.fr-vastu-experience {
    padding: 16px;
    gap: 16px;
}
.fr-vastu-experience > .fr-grid,
.fr-vastu-types {
    width: 100%;
}
.fr-vastu-types {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.fr-vastu-types label,
.fr-direction-grid label {
    position: relative;
    cursor: pointer;
}
.fr-vastu-types input,
.fr-direction-grid input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.fr-vastu-types span,
.fr-direction-grid span {
    display: flex;
    align-items: center;
    padding: 12px;
    min-height: 44px;
    border: 1px solid #e4d6c4;
    border-radius: 10px;
    background: #fcebdd;
    color: #8b1a10;
    font-weight: 600;
}
.fr-vastu-types input:checked + span,
.fr-direction-grid input:checked + span {
    outline: 2px solid #8b1a10;
    outline-offset: -3px;
}
.fr-vastu input:focus-visible + span {
    outline: 3px solid #c4530a;
    outline-offset: 2px;
}
.fr-vastu-experience h3,
.fr-vastu-experience legend {
    margin: 0;
    font:
        600 16px/24px 'Poppins',
        sans-serif;
    color: #8b1a10;
}
.fr-vastu-experience legend {
    float: none;
    width: auto;
}
.fr-vastu-experience p {
    font-size: 13px;
    line-height: 20px;
}
.fr-plan-upload {
    background: #fffcf8;
    border: 0;
    align-self: start;
}
.fr-upload-control {
    position: relative;
    width: 100%;
    cursor: pointer;
}
.fr-upload-control input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
.fr-upload-control:focus-within {
    outline: 2px solid #8b1a10;
    outline-offset: 3px;
}
.fr-direction {
    padding: 16px;
    border-radius: 12px;
}
.fr-compass {
    display: flex;
    align-items: center;
    gap: 12px;
}
.fr-compass strong {
    font:
        600 28px/42px 'Poppins',
        sans-serif;
    color: #8b1a10;
}
.fr-direction-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
}
.fr-direction-grid span {
    justify-content: center;
    background: #fff;
    border-color: #ff6b00;
    color: #c4530a;
    font-size: 12px;
}
.fr-vastu-booking {
    display: grid;
    grid-template-columns: minmax(0, 776fr) minmax(0, 480fr);
    align-items: start;
    gap: 24px;
}
.fr-vastu-fields {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    padding: 16px;
}
.fr-vastu-fields label {
    font-size: 12px;
    line-height: 18px;
    font-weight: 600;
    color: #1c140d;
}
.fr-vastu-fields input,
.fr-vastu-fields select {
    width: 100%;
    min-width: 0;
    height: 44px;
    padding: 10px 12px;
    border: 1px solid #e4d6c4;
    border-radius: 10px;
    color: #574434;
    background: #fff;
    font: inherit;
}
.fr-vastu-summary {
    padding: 16px;
    gap: 8px;
}
.fr-vastu-summary dl {
    width: 100%;
    margin: 0;
}
.fr-vastu-summary dt {
    font-size: 12px;
    color: #8b1a10;
    font-weight: 500;
}
.fr-vastu-summary dd {
    margin: 0 0 8px;
    font-size: 13px;
    overflow-wrap: anywhere;
}
.fr-vastu-summary > p {
    font-size: 12px;
    line-height: 20px;
    overflow-wrap: anywhere;
}
body .fr-vastu-summary > .btn {
    width: 100%;
    background: #8b1a10;
    color: #fff;
    min-height: 46px;
    font-size: 12px;
    border-radius: 10px;
}
@media (max-width: 991px) {
    .fr-vastu-booking {
        grid-template-columns: minmax(0, 1fr);
    }
    .fr-service-heading {
        padding: 24px 16px;
    }
    .fr-service-heading h1 {
        font-size: 24px;
        line-height: 32px;
    }
    .fr-service-heading .d-flex {
        flex-wrap: wrap;
    }
    .fr-vastu-types {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .fr-vastu-experience > h2 {
        font-size: 20px;
        line-height: 30px;
    }
}

.fr-vastu-history {
    gap: 48px;
    padding-top: 24px;
}
.fr-vastu-history-heading {
    background: #314b39;
}
.fr-vastu-history > .fr-soft h2 {
    font-size: 20px;
    line-height: 30px;
}
.fr-vastu-history > .fr-soft p {
    font-size: 16px;
    line-height: 26px;
}
@media (max-width: 991px) {
    .fr-vastu .fr-desktop-back {
        display: none;
    }
    .fr-vastu .fr-service-heading .d-flex {
        flex-wrap: nowrap;
    }
    .fr-vastu .fr-service-heading h1 {
        font-size: 20px;
        line-height: 30px;
    }
    .fr-vastu-history {
        gap: 32px;
    }
}

#floorPlanName:empty {
    display: none;
}
/* Daily Rashifal: selected Moon-sign guidance, Figma 8:646 and 8:715. */
.fr-rashifal {
    padding-top: 24px;
    padding-bottom: 80px;
    gap: 20px;
}
.fr-rashifal .fr-editorial {
    padding: 20px 24px;
    border-radius: 16px;
}
.fr-rashi-date {
    display: flex;
    gap: 8px;
}
.fr-rashi-date a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 12px 8px;
    border-radius: 10px;
    background: #fcebdd;
    color: #c4530a;
    text-decoration: none;
    font-size: 12px;
    font-weight: 600;
    min-width: 56px;
}
.fr-rashi-date a:nth-child(2) {
    width: 244px;
}
.fr-rashi-help {
    padding: 16px;
    border-radius: 16px;
    font-size: 12px;
    line-height: 20px;
}
.fr-rashi-help h2,
.fr-rashi-personal h2 {
    font:
        600 20px/30px 'Poppins',
        sans-serif;
    color: #8b1a10;
    margin: 0 0 8px;
}
.fr-rashi-help ol {
    list-style-position: inside;
    padding: 0;
    margin: 0 0 20px;
}
.fr-rashi-label {
    margin: 0;
    color: #35251e;
    font:
        600 18px/26px 'Poppins',
        sans-serif;
}
.fr-rashi-signs {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}
.fr-rashi-signs a {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    gap: 4px;
    height: 80px;
    padding: 8px 4px;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    background: #fff;
    color: #c4530a;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}
.fr-rashi-signs a.active {
    border: 1.5px solid #8b1a10;
    background: #fcebdd;
}
.fr-rashi-signs span {
    padding: 8px 0;
}
.fr-rashi-reading {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px;
    border: 1px solid #e4d6c4;
    border-radius: 20px;
    background: #fff4e2;
    font-size: 16px;
    line-height: 23px;
}
.fr-rashi-reading > small {
    color: #c4530a;
    font-size: 12px;
}
.fr-rashi-reading h2 {
    margin: 0;
    font:
        600 30px/44px 'Poppins',
        sans-serif;
    color: #8b1a10;
}
.fr-rashi-reading > p:first-of-type {
    margin-bottom: 12px;
}
.fr-rashi-guidance {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.fr-rashi-guidance > div {
    padding: 16px;
    border-radius: 12px;
    background: #e3efdf;
}
.fr-rashi-guidance > div:last-child {
    background: #f9e6df;
}
.fr-rashi-guidance small {
    display: block;
    margin-bottom: 6px;
    color: #69452f;
    font-size: 11px;
    font-weight: 600;
    line-height: 16px;
}
.fr-rashi-guidance p {
    color: #35251e;
    font-size: 14px;
    line-height: 20px;
}
.fr-rashi-personal {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 16px;
    padding: 24px;
    border-radius: 16px;
    font-size: 16px;
    line-height: 26px;
}
.fr-rashi-personal h2 {
    margin: 0;
}
@media (max-width: 991px) {
    .fr-rashifal {
        padding: 20px 20px 48px;
    }
    .fr-rashi-signs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .fr-rashi-guidance {
        grid-template-columns: minmax(0, 1fr);
    }
    .fr-rashi-reading {
        padding: 20px;
    }
    .fr-rashi-reading h2 {
        font-size: 24px;
        line-height: 32px;
    }
    .fr-rashi-date a:nth-child(2) {
        flex: 1;
        width: auto;
    }
}
/* Panchang: Figma 49:9190 desktop and 49:9477 mobile. */
.fr-panchang {
    padding-top: 24px;
    padding-bottom: 48px;
}
.fr-panchang-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 24px;
    background: #fff;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
}
.fr-panchang-title {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.fr-panchang-title > img {
    flex: none;
}
.fr-panchang-title .fr-back {
    width: 46px;
    min-width: 46px;
    padding: 0;
    align-self: center;
}
.fr-panchang-title small {
    color: #1c140d;
    font-size: 10px;
    font-weight: 600;
    line-height: 14px;
}
.fr-panchang-title h1 {
    font-size: 28px;
    line-height: 36px;
}
.fr-panchang-title p {
    font-size: 12px;
    line-height: 20px;
    margin-top: 4px;
}
.fr-panchang-filters {
    display: flex;
    gap: 8px;
    flex: none;
}
.fr-panchang-filters select,
.fr-panchang-filters input {
    min-width: 0;
    width: 206px;
    min-height: 46px;
    padding: 10px;
    border: 1.5px solid #e8650a;
    border-radius: 10px;
    background: #fff;
    color: #c4530a;
    font:
        600 12px/18px 'Poppins',
        sans-serif;
}
.fr-panchang-sky {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.fr-panchang-sky > div {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px;
    min-height: 80px;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
}
.fr-sky-sun {
    background: #fff1de;
}
.fr-sky-moon {
    background: #fcebdd;
}
.fr-panchang-sky small,
.fr-panchang-sky strong {
    display: block;
    color: #35251e;
    font-weight: 600;
}
.fr-panchang-sky small {
    font-size: 10px;
    line-height: 14px;
}
.fr-panchang-sky strong {
    font-size: 18px;
    line-height: 24px;
}
.fr-panchang-section {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
}
.fr-panchang-section > small {
    font-size: 10px;
    font-weight: 600;
    line-height: 14px;
    color: #c4530a;
}
.fr-panchang h2 {
    margin: 0;
    color: #8b1a10;
    font:
        600 24px/32px 'Poppins',
        sans-serif;
}
.fr-panchang-timings {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}
.fr-panchang-timings > div {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 84px;
    padding: 12px;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
}
.fr-panchang-timings p {
    display: flex;
    gap: 6px;
    align-items: center;
    font-size: 11px;
    line-height: 16px;
    color: #1c140d;
}
.fr-panchang-timings strong {
    font-size: 15px;
    line-height: 22px;
}
.fr-panchang-timings .favourable {
    background: #e9f3e9;
    color: #217548;
}
.fr-panchang-timings .caution {
    background: #fff0e6;
}
.fr-panchang-tatva,
.fr-panchang-details {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
    padding: 16px;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    background: #fff;
    margin: 0;
}
.fr-panchang-tatva > div > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 5px;
}
.fr-panchang-tatva small {
    font-size: 10px;
    line-height: 14px;
    color: #c4530a;
    font-weight: 600;
}
.fr-panchang-tatva strong {
    font-size: 16px;
    line-height: 22px;
    color: #8b1a10;
}
.fr-panchang-tatva p {
    font-size: 11px;
    line-height: 17px;
}
.fr-panchang-details {
    row-gap: 12px;
}
.fr-panchang-details dt {
    font-size: 11px;
    line-height: 17px;
    font-weight: 400;
}
.fr-panchang-details dd {
    color: #1c140d;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    margin: 2px 0 0;
}
.fr-panchang-choghadiya {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.fr-panchang-choghadiya > div {
    padding: 12px;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    background: #fff;
}
.fr-panchang-choghadiya h3 {
    font:
        600 18px/26px 'Poppins',
        sans-serif;
    color: #1c140d;
    margin: 0 0 8px;
}
.fr-choghadiya-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 6px 8px;
    border-radius: 16px;
    font-size: 12px;
    line-height: 18px;
    margin-top: 4px;
    background: #f5f0e5;
}
.fr-choghadiya-row.good {
    background: #e8f3eb;
}
.fr-choghadiya-row.bad {
    background: #f9eeea;
}
.fr-choghadiya-row strong {
    color: #1c140d;
}
.fr-panchang-festivals {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.fr-panchang-festivals article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: #fff;
    padding: 16px;
    border: 1px solid #e4d6c4;
    border-radius: 10px;
}
.fr-panchang-festivals h3 {
    font:
        600 14px/20px 'Poppins',
        sans-serif;
    color: #8b1a10;
    margin: 0 0 4px;
}
.fr-panchang-festivals p {
    font-size: 11px;
    line-height: 17px;
}
.fr-panchang .btn-outline-saffron {
    border-radius: 8px;
    min-height: 46px;
    font-size: 12px;
    padding: 10px 16px;
    flex: none;
}
.fr-panchang-section > .btn {
    align-self: flex-start;
}
.fr-panchang-poojas {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.fr-panchang-poojas article {
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}
.fr-panchang-poojas article > img {
    display: block;
    width: 100%;
    height: 160px;
    object-fit: cover;
}
.fr-panchang-poojas article > div {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px;
}
.fr-panchang-poojas small {
    background: #fcebdd;
    border-radius: 16px;
    padding: 2px 6px;
    font-size: 10px;
    line-height: 14px;
}
.fr-panchang-poojas h3 {
    margin: 0;
    font:
        600 18px/26px 'Poppins',
        sans-serif;
    color: #1c140d;
}
.fr-panchang-poojas p {
    font-size: 12px;
    line-height: 18px;
}
.fr-panchang-poojas strong {
    font-size: 18px;
    color: #8b1a10;
}
.fr-panchang-poojas .btn {
    width: 220px;
    max-width: 100%;
}
.fr-panchang-read h2 {
    color: #1c140d;
    margin-bottom: 12px;
}
.fr-panchang-read ol {
    font-size: 13px;
    line-height: 20px;
    list-style-position: inside;
    margin: 0;
    padding: 0;
}
@media (max-width: 1199px) {
    .fr-panchang-header {
        flex-wrap: wrap;
    }
    .fr-panchang-filters {
        flex: 1;
    }
    .fr-panchang-filters select,
    .fr-panchang-filters input {
        flex: 1;
    }
}
@media (max-width: 991px) {
    .fr-rashifal .fr-editorial {
        padding: 16px;
        border-radius: 20px;
    }
    .fr-rashi-reading {
        padding: 24px;
    }
    .fr-rashi-reading h2 {
        line-height: 35px;
    }
    .fr-panchang {
        padding: 16px 20px 32px;
        gap: 16px;
    }
    .fr-panchang-header {
        padding: 16px;
        gap: 12px;
    }
    .fr-panchang-title {
        align-items: flex-start;
        position: relative;
        padding-bottom: 48px;
    }
    .fr-panchang-title h1 {
        font-size: 20px;
        line-height: 28px;
        font-weight: 600;
    }
    .fr-panchang-title p {
        position: absolute;
        left: 0;
        right: 0;
        top: 60px;
    }
    .fr-panchang-title .fr-desktop-back {
        display: none;
    }
    .fr-panchang-filters {
        width: 100%;
    }
    .fr-panchang-filters select,
    .fr-panchang-filters input {
        width: 50%;
    }
    .fr-panchang-sky {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .fr-panchang-timings {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .fr-panchang-timings > div:last-child {
        grid-column: 1 / -1;
    }
    .fr-panchang h2 {
        font-size: 20px;
        line-height: 28px;
    }
    .fr-panchang-tatva {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .fr-panchang-tatva > div > div {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }
    .fr-panchang-tatva strong {
        width: 100px;
        flex: none;
    }
    .fr-panchang-details {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .fr-panchang-choghadiya,
    .fr-panchang-festivals {
        grid-template-columns: minmax(0, 1fr);
    }
    .fr-panchang-festivals article {
        padding: 12px;
    }
    .fr-panchang-festivals .btn {
        padding: 8px;
    }
    .fr-panchang-poojas {
        display: flex;
        overflow-x: auto;
        gap: 12px;
        scroll-snap-type: x mandatory;
    }
    .fr-panchang-poojas article {
        flex: 0 0 min(280px, 100%);
        scroll-snap-align: start;
    }
    .fr-panchang-poojas article > img {
        height: 140px;
    }
}
/* Reusable PanditJi profile: Figma 45:11596 and 45:11671. */
.fr-pandit-profile {
    color: #574434;
    background: #fffcf8;
    font:
        400 14px/22px 'Poppins',
        sans-serif;
}
.fr-pandit-profile p {
    margin: 0;
}
.fr-profile-hero {
    padding: 32px max(20px, calc((100vw - 1200px) / 2));
    background: #fcebdd;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.fr-profile-all {
    color: #c4530a;
    font-weight: 600;
    text-decoration: none;
}
.fr-profile-columns {
    display: grid;
    grid-template-columns: minmax(0, 760fr) minmax(0, 408fr);
    gap: 24px;
}
.fr-pandit-identity {
    display: flex;
    gap: 32px;
    align-items: flex-start;
}
.fr-pandit-photo {
    width: 160px;
    height: 160px;
    flex: none;
    border-radius: 20px;
    object-fit: cover;
}
.fr-pandit-initial {
    display: grid;
    place-items: center;
    background: white;
    color: #8b1a10;
    font-size: 48px;
}
.fr-pandit-identity > div:last-child {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}
.fr-pandit-identity h1 {
    color: #1c140d;
    font:
        700 40px/52px 'Poppins',
        sans-serif;
    overflow-wrap: anywhere;
    margin: 0;
}
.fr-kyc {
    display: flex;
    align-items: center;
    gap: 6px;
    border-radius: 6px;
    padding: 6px 10px;
    background: #e8f5ed;
    color: #217548;
    font-size: 12px;
    line-height: 16px;
}
.fr-profile-consult {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
    background: #fff;
    border: 1px solid #e4d6c4;
    border-radius: 16px;
}
.fr-profile-consult > small {
    color: #c4530a;
    font-weight: 600;
    font-size: 12px;
}
.fr-profile-consult h2 {
    font:
        600 28px/38px 'Poppins',
        sans-serif;
    color: #8b1a10;
    margin: 0;
}
.fr-profile-actions {
    display: flex;
    gap: 8px;
}
.fr-profile-actions .btn {
    flex: 1;
    border-radius: 10px;
    font-size: 12px;
    min-height: 44px;
    padding: 10px;
}
.fr-profile-how {
    background: #fcebdd;
    border-radius: 12px;
}
.fr-profile-how summary {
    text-align: center;
    padding: 12px;
    font-weight: 600;
    color: #c4530a;
    list-style: none;
    cursor: pointer;
}
.fr-profile-how summary::-webkit-details-marker {
    display: none;
}
.fr-profile-how p {
    padding: 0 12px 12px;
}
.fr-profile-body {
    max-width: 1200px;
    margin: 32px auto 64px;
}
.fr-profile-about {
    padding: 20px;
    border: 1px solid #e4d6c4;
    border-radius: 16px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.fr-profile-about h2,
.fr-profile-reviews h2 {
    font:
        600 24px/32px 'Poppins',
        sans-serif;
    color: #1c140d;
    margin: 0;
}
.fr-profile-about h3 {
    font:
        600 18px/26px 'Poppins',
        sans-serif;
    color: #1c140d;
    margin: 0;
}
.fr-profile-education {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    border-radius: 12px;
    background: #fff6e8;
}
.fr-profile-education h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #8b1a10;
    font-size: 16px;
}
.fr-profile-education small {
    font-size: 12px;
    line-height: 20px;
}
.fr-cert-button {
    display: flex;
    align-items: center;
    min-height: 44px;
    border: 0;
    background: transparent;
    color: #8b1a10;
    padding: 0;
    font-size: 11px;
    font-weight: 600;
}
.fr-cert-button > span {
    display: flex;
    align-items: center;
    gap: 4px;
    min-height: 28px;
    border: 1px solid #e4d6c4;
    border-radius: 6px;
    background: #fcebdd;
    padding: 4px 6px;
}
.fr-profile-reviews {
    padding: 20px;
    align-self: start;
    background: #fcebdd;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.fr-profile-reviews h2 {
    font-size: 20px;
    line-height: 30px;
}
.fr-profile-reviews article {
    border-top: 1px solid #e4d6c4;
    padding-top: 12px;
}
.fr-pandit-profile [hidden] {
    display: none !important;
}
@media (max-width: 1240px) {
    .fr-profile-body {
        margin: 32px 20px 48px;
    }
}
@media (max-width: 991px) {
    .fr-profile-columns {
        grid-template-columns: minmax(0, 1fr);
    }
    .fr-profile-hero {
        padding: 16px 20px 24px;
    }
    .fr-pandit-photo {
        width: 88px;
        height: 88px;
    }
    .fr-pandit-identity {
        gap: 16px;
    }
    .fr-pandit-identity h1 {
        font-size: 24px;
        line-height: 32px;
    }
    .fr-profile-consult {
        margin-top: 8px;
    }
    .fr-profile-body {
        margin-top: 0;
    }
    .fr-profile-about h2 {
        font-size: 20px;
        line-height: 28px;
    }
}
/* Partner onboarding: Figma 16:276 and 16:330. */
.fr-register {
    max-width: 1120px;
    padding-top: 24px;
    padding-bottom: 40px;
    gap: 16px;
}
.fr-register-kicker {
    font-size: 12px;
    line-height: 20px;
    color: #e8650a;
    font-weight: 600;
}
.fr-register-progress {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}
.fr-register-progress .step-pip {
    display: flex;
    gap: 4px;
    justify-content: center;
    align-items: center;
    padding: 12px 8px;
    border-radius: 10px;
    background: #fcebdd;
    color: #c4530a;
    min-height: 46px;
    font-size: 11px;
    line-height: 16px;
    font-weight: 600;
}
.fr-register-progress .step-pip span + span::before {
    content: '· ';
}
.fr-register-progress .active {
    background: #8b1a10;
    color: #fff;
}
.fr-register-progress .done {
    background: #e8f3eb;
    color: #217548;
}
.fr-register-columns {
    display: grid;
    grid-template-columns: minmax(0, 640fr) minmax(0, 304fr);
    gap: 16px;
    align-items: start;
}
.fr-register-form {
    border: 1px solid #e4d6c4;
    border-radius: 16px;
    padding: 16px;
    background: #fff;
}
.fr-register-note {
    background: #fcebdd;
    padding: 16px;
    border: 1px solid #e4d6c4;
    border-radius: 16px;
}
.fr-register-note h2 {
    margin: 0 0 8px;
    color: #8b1a10;
    font:
        600 16px/24px 'Poppins',
        sans-serif;
}
.fr-register-note p {
    font-size: 13px;
    line-height: 20px;
}
.fr-register-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 12px;
}
.fr-register-details > * {
    grid-column: 1 / -1;
}
.fr-register-details > .mb-3:nth-child(1),
.fr-register-details > .mb-3:nth-child(2) {
    grid-column: auto;
}
.fr-register-details > .mb-3 {
    margin-bottom: 0 !important;
}
.fr-register input.form-control {
    border: 1px solid #e4d6c4;
    min-height: 56px;
    border-radius: 12px;
    padding: 16px;
    font-size: 14px;
}
.fr-register .input-group-text {
    border-color: #e4d6c4;
    background: #fff;
    color: #574434;
}
.fr-register .input-group > .form-control:not(:first-child) {
    border-radius: 0 12px 12px 0;
}
.fr-register .input-group-text:first-child {
    border-radius: 12px 0 0 12px;
}
.fr-register .btn-saffron {
    min-height: 46px;
    border-radius: 10px;
    justify-self: start;
}
.fr-register-links {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.fr-register-links a {
    padding: 12px;
    border-radius: 10px;
    background: #fcebdd;
    color: #c4530a;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}
.fr-register .password-toggle {
    min-width: 48px;
}
.fr-register .password-strength {
    height: 5px;
    background: #eee8e0;
    border-radius: 5px;
    overflow: hidden;
}
.fr-register .password-strength span {
    display: block;
    height: 100%;
    width: 0;
    background: #dc3545;
}
.fr-register .reg-step-kicker {
    font-size: 12px;
    color: #c4530a;
    margin-bottom: 8px;
}
.fr-register-details .form-label {
    margin-bottom: 8px;
    color: #2d2118;
    font-size: 14px;
    line-height: 22px;
}
.fr-register-details #step1Error:empty {
    display: none;
}
.fr-register #step1ContinueBtn {
    margin: 0;
    padding: 12px 24px;
    border: 0;
    background: #8b1a10;
    color: #fff;
    font:
        600 14.4px/20px 'Poppins',
        sans-serif;
}
.fr-register-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    line-height: 18px;
}
@media (max-width: 991px) {
    .fr-register {
        padding: 24px 20px 40px;
    }
    .fr-register h1 {
        font-weight: 600;
    }
    .fr-register-columns {
        grid-template-columns: minmax(0, 1fr);
    }
    .fr-register-progress .step-pip {
        flex-direction: column;
        gap: 0;
        min-height: 48px;
        padding: 6px 8px;
    }
    .fr-register-progress .step-pip span + span::before {
        content: none;
    }
    .fr-register-details {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }
    .fr-register-details > .mb-3:nth-child(1),
    .fr-register-details > .mb-3:nth-child(2) {
        grid-column: 1;
    }
    .fr-register #step1ContinueBtn {
        width: 100%;
    }
    .fr-register .fr-register-form {
        padding: 16px;
    }
}

/* Kundali: Figma 8:183 / 8:238. */
.fr-kundali {
    max-width: 1440px;
    margin: auto;
    padding: 24px 80px 48px;
    color: #574434;
    font:
        400 14px/22px 'Poppins',
        sans-serif;
}
.fr-kundali p {
    margin: 0;
}
.fr-kundali h1,
.fr-kundali h2,
.fr-kundali h3 {
    margin: 0;
    color: #8b1a10;
    font-family: inherit;
}
.fr-kundali h1 {
    font-size: 32px;
    line-height: 40px;
    font-weight: 700;
}
.fr-kundali h2 {
    font-size: 20px;
    line-height: 30px;
    font-weight: 600;
}
.fr-kundali h3 {
    font-size: 16px;
}
.fr-kundali-banner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
    min-height: 200px;
    padding: 24px;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    background: white;
    margin-bottom: 24px;
}
.fr-kundali-banner > div {
    display: flex;
    align-items: center;
    gap: 12px;
}
.fr-kundali-banner small {
    font-size: 10px;
    line-height: 16px;
    color: #1c140d;
    font-weight: 600;
}
.fr-kundali-back {
    width: 46px;
    height: 46px;
    flex-shrink: 0;
    border: 1px solid #8b1a10;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 20px;
    color: #8b1a10;
    text-decoration: none;
}
.fr-kundali-workspace {
    display: grid;
    grid-template-columns: minmax(0, 776fr) minmax(0, 480fr);
    gap: 24px;
    align-items: start;
}
.fr-kundali-details {
    display: flex;
    flex-direction: column;
    gap: 16px;
    background: white;
    border: 1px solid #e4d6c4;
    border-radius: 16px;
    padding: 24px 16px;
    box-shadow: 0 4px 10px #0000000f;
}
.fr-kundali-details h2 {
    font-size: 18px;
    line-height: 26px;
    padding: 10px 12px;
    background: #fcebdd;
    border-radius: 8px;
}
.fr-kundali-details label,
.fr-kundali-details legend {
    color: #1c140d;
    font-size: 12px;
    line-height: 18px;
    font-weight: 600;
    margin: 0;
}
.fr-kundali-details > label:not(.fr-kundali-unknown) {
    margin-bottom: -10px;
}
.fr-kundali-details
    input:not([type='radio']):not([type='checkbox']):not([type='hidden']) {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    color: #574434;
    background: white;
    font:
        400 13px/20px 'Poppins',
        sans-serif;
}
.fr-kundali-details #birthName {
    min-height: 56px;
    padding: 16px;
    border: 1.5px solid #8b1a10;
}
.fr-kundali-details input:focus-visible {
    outline: 2px solid #8b1a10;
    outline-offset: 2px;
}
.fr-kundali-gender {
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0;
}
.fr-kundali-gender legend {
    float: none;
    margin-bottom: 8px;
}
.fr-kundali-gender > div {
    display: flex;
    gap: 8px;
}
.fr-kundali-gender label {
    flex: 1;
    position: relative;
}
.fr-kundali-gender input {
    position: absolute;
    opacity: 0;
}
.fr-kundali-gender span {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    min-height: 44px;
    color: #8b1a10;
    cursor: pointer;
}
.fr-kundali-gender input:checked + span {
    background: #fcebdd;
    border-color: #8b1a10;
}
.fr-kundali-gender input:focus-visible + span {
    outline: 2px solid #8b1a10;
    outline-offset: 2px;
}
.fr-kundali-date-time {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.fr-kundali-date-time > div {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.fr-kundali-unknown {
    display: flex;
    gap: 12px;
    align-items: center;
    min-height: 44px;
}
.fr-kundali-unknown input {
    appearance: none;
    width: 36px;
    height: 20px;
    border-radius: 20px;
    background: #e4d6c4;
    position: relative;
    cursor: pointer;
    flex-shrink: 0;
}
.fr-kundali-unknown input:before {
    content: '';
    position: absolute;
    width: 14px;
    height: 14px;
    top: 3px;
    left: 3px;
    border-radius: 50%;
    background: white;
}
.fr-kundali-unknown input:checked {
    background: #8b1a10;
}
.fr-kundali-unknown input:checked:before {
    left: 19px;
}
.fr-kundali #unknownTimeNote {
    font-size: 12px;
}
.fr-kundali [hidden] {
    display: none !important;
}
.fr-kundali-choices {
    display: flex;
    gap: 8px;
}
.fr-kundali button,
.fr-kundali-choices a,
.fr-kundali-reports a {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 46px;
    border: 1px solid #e4d6c4;
    border-radius: 8px;
    padding: 10px 12px;
    color: #8b1a10;
    background: #fcebdd;
    font:
        600 12px/18px 'Poppins',
        sans-serif;
    text-align: center;
    text-decoration: none;
}
.fr-kundali-choices a {
    flex: 1;
}
.fr-kundali button {
    width: 210px;
    max-width: 100%;
}
.fr-kundali .fr-kundali-save {
    width: 180px;
    background: white;
}
.fr-kundali .fr-kundali-primary {
    background: #8b1a10;
    color: white;
    border-color: #8b1a10;
    border-radius: 10px;
}
.fr-kundali-options {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.fr-kundali-options section {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    background: white;
}
.fr-kundali-options .fr-kundali-guide {
    background: #fcebdd;
    border: 0;
    gap: 8px;
}
.fr-kundali-guide ol {
    padding-left: 18px;
    margin: 0;
    font-size: 12px;
    line-height: 20px;
}
.fr-kundali-reports {
    margin-top: 32px;
}
.fr-kundali-reports article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px;
    border: 1px solid #e4d6c4;
    background: white;
    border-radius: 12px;
    margin-top: 12px;
}
.fr-kundali-details .validation-summary-valid {
    display: none;
}
@media (max-width: 991px) {
    .fr-kundali {
        padding: 20px 20px 32px;
    }
    .fr-kundali-workspace {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .fr-kundali-banner {
        min-height: 0;
        padding: 20px;
        margin-bottom: 16px;
    }
    .fr-kundali h1 {
        font-size: 24px;
        line-height: 32px;
    }
    .fr-kundali-banner > div {
        flex-wrap: wrap;
    }
    .fr-kundali-banner > div > div {
        flex: 1;
        min-width: 140px;
    }
    .fr-kundali-banner img {
        width: 40px;
        height: 40px;
    }
    .fr-kundali-reports article {
        align-items: flex-start;
        flex-direction: column;
    }
}

.fr-kundali-mobile-back {
    display: none;
}
@media (max-width: 991px) {
    .fr-kundali {
        padding-top: 16px;
    }
    .fr-kundali-mobile-back {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 116px;
        min-height: 46px;
        margin: 8px 0 28px;
        border: 1px solid #e4d6c4;
        border-radius: 10px;
        background: white;
        color: #8b1a10;
        font-weight: 600;
        font-size: 13px;
        text-decoration: none;
    }
    .fr-kundali-back {
        display: none;
    }
    .fr-kundali-banner {
        min-height: 160px;
        padding: 16px;
        margin-bottom: 20px;
    }
    .fr-kundali-banner img {
        width: 48px;
        height: 48px;
    }
    .fr-kundali h1 {
        font-size: 22px;
        line-height: 30px;
        font-weight: 600;
    }
    .fr-kundali-banner p {
        font-size: 12px;
        line-height: 20px;
    }
    .fr-kundali-details h2 {
        font-size: 16px;
        line-height: 24px;
    }
    .fr-kundali-date-time {
        grid-template-columns: 1fr;
    }
    .fr-kundali-options button {
        width: 190px;
    }
}
.fr-kundali-checkout {
    width: 350px;
    max-width: calc(100% - 40px);
    max-height: calc(100dvh - 40px);
    padding: 24px;
    border: 1px solid #e4d6c4;
    border-radius: 16px;
    background: #fffcf8;
    color: #574434;
    font:
        400 14px/20px 'Poppins',
        sans-serif;
}
.fr-kundali-checkout::backdrop {
    background: #241a1a66;
}
.fr-kundali-checkout > header {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 20px;
}
.fr-kundali-checkout h1 {
    margin: 0;
    font:
        600 20px/28px 'Poppins',
        sans-serif;
    color: #381b13;
    flex: 1;
}
.fr-kundali-checkout header a {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #f5ede2;
    color: #574434;
    text-decoration: none;
    flex-shrink: 0;
}
.fr-kundali-checkout dl {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 4px 8px;
    background: #fcebdd;
    border-radius: 12px;
    padding: 12px;
    margin: 0 0 20px;
}
.fr-kundali-checkout dt {
    font-size: 11px;
    font-weight: 400;
    color: #615752;
}
.fr-kundali-checkout dd {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: #241a1a;
    overflow-wrap: anywhere;
}
.fr-kundali-checkout p {
    margin: 0 0 20px;
}
.fr-kundali-checkout button,
.fr-kundali-cancel {
    width: 100%;
    display: block;
    border: 1px solid #8b1a10;
    background: #8b1a10;
    color: white;
    font:
        600 14px/20px 'Poppins',
        sans-serif;
    padding: 13px 20px;
    border-radius: 10px;
    text-align: center;
    text-decoration: none;
}
.fr-kundali-cancel {
    background: white;
    color: #8b1a10;
    margin-top: 20px;
}
.fr-kundali-checkout button:disabled {
    opacity: 0.6;
}
.fr-kundali-result {
    padding: 16px;
    background: white;
    border: 0;
    color: #33211a;
    font-size: 11px;
    line-height: 17px;
}
.fr-kundali-result header {
    margin-bottom: 10px;
}
.fr-kundali-result header img {
    width: 26px;
    height: 26px;
}
.fr-kundali-result h2 {
    font:
        500 16px/24px 'Poppins',
        sans-serif;
    margin: 0 0 10px;
}
.fr-kundali-result p,
.fr-kundali-result dl {
    margin-bottom: 10px;
}
.fr-kundali-result button,
.fr-kundali-result-action {
    width: 150px;
    min-height: 44px;
    font-size: 12px;
    line-height: 18px;
    padding: 6px 10px;
}
.fr-kundali-result-action {
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    background: #8b1a10;
    border-radius: 10px;
    font-weight: 600;
    text-decoration: none;
}
@media (max-width: 991px) {
    .fr-profile-hero {
        padding: 0;
        gap: 0;
        background: #fffcf8;
    }
    .fr-profile-hero > .fr-back {
        margin: 8px 20px;
        align-self: flex-start;
    }
    .fr-profile-hero > .fr-profile-all {
        background: #fcebdd;
        padding: 24px 20px 16px;
    }
    .fr-profile-hero > .fr-profile-columns {
        display: contents;
    }
    .fr-pandit-identity {
        background: #fcebdd;
        padding: 0 20px 24px;
    }
    .fr-profile-consult {
        margin: 24px 20px;
    }
}

#certModal .modal-dialog {
    max-width: 500px;
    width: calc(100% - 40px);
    margin-left: auto;
    margin-right: auto;
}
#certModal .np-cert-modal {
    padding: 20px;
    border: 1px solid #e4d6c4;
    border-radius: 20px;
    background: #fcebdd;
    display: flex;
    flex-direction: column;
    gap: 12px;
    color: #8b1a10;
    font:
        400 13px/1.45 Poppins,
        sans-serif;
}
#certModal header {
    display: flex;
    align-items: center;
    gap: 8px;
}
#certModal h2 {
    flex: 1;
    margin: 0;
    font-size: 18px;
    line-height: 1.45;
    font-weight: 700;
}
#certModal header button {
    width: 72px;
    min-height: 44px;
    border: 1.5px solid #e8650a;
    background: white;
    color: #c4530a;
    border-radius: 10px;
    font-weight: 600;
}
#certModal p {
    margin: 0;
}
#certModal .np-credential-scroll {
    max-height: 400px;
    overflow: auto;
}
#certModal .np-cert-viewer {
    min-height: 0;
    background: white;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    overflow: hidden;
}
#certModal .np-cert-viewer img {
    max-height: 340px;
}
#certModal .np-cert-viewer iframe {
    height: 340px;
}
#certModal .np-credential-empty {
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}
#certModal .np-credential-empty strong {
    font-size: 14px;
}
#certModal .np-credential-empty p {
    font-size: 12px;
}
#certModal dl {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin: 8px 0 0;
}
#certModal dt {
    font-size: 11px;
}
#certModal dd {
    font-size: 12px;
    margin: 0;
    overflow-wrap: anywhere;
}
#certModal small {
    font-size: 11px;
}
#certModal [hidden] {
    display: none !important;
}
@media (max-width: 575px) {
    #certModal .modal-dialog {
        max-width: 350px;
    }
}

@media (max-width: 575px) {
    .fr-bookings {
        gap: 16px;
    }
    .fr-bookings > .fr-history-eyebrow {
        order: -1;
    }
    .fr-bookings > .fr-back {
        margin: 8px 0;
    }
    .fr-booking-empty > .btn {
        width: 100%;
    }
    .fr-bookings h1 {
        font-size: 24px;
        line-height: 34px;
        font-weight: 600;
    }
}

.fr-bookings .nav-link[data-filter='upcoming'] {
    width: 98px;
}
.fr-bookings .nav-link[data-filter='completed'] {
    width: 104px;
}
.fr-bookings .nav-link[data-filter='all'] {
    width: 111px;
}

/* Figma 10:253 / 10:291: the dedicated wallet payment review. */
.fr-wallet-add {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 48px;
    padding: 56px 20px 80px;
    background: #fffcf8;
}
.fr-wallet-add > h1,
.fr-wallet-eyebrow,
.fr-wallet-add-form {
    width: 100%;
    max-width: 640px;
    margin: 0;
}
.fr-wallet-add h1 {
    font:
        700 40px/52px Poppins,
        sans-serif;
    color: #8b1a10;
}
.fr-wallet-eyebrow {
    font:
        600 12px/20px Poppins,
        sans-serif;
    color: #e8650a;
}
.fr-wallet-add-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 24px;
    border: 1px solid #e4d6c4;
    border-radius: 16px;
    background: white;
}
.fr-wallet-add-form label {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font:
        600 14px/22px Poppins,
        sans-serif;
}
.fr-wallet-add-form input {
    width: 100%;
    min-width: 0;
    padding: 16px;
    border: 1px solid #e4d6c4;
    border-radius: 12px;
    font:
        400 14px/22px Poppins,
        sans-serif;
    color: #574434;
}
.fr-wallet-secure {
    padding: 24px;
    border-radius: 16px;
    background: #fcebdd;
}
.fr-wallet-secure h2 {
    font:
        600 20px/30px Poppins,
        sans-serif;
    color: #8b1a10;
    margin: 0 0 16px;
}
.fr-wallet-secure p {
    font:
        400 16px/26px Poppins,
        sans-serif;
    color: #574434;
    margin: 0;
}
.fr-wallet-add-form > .btn {
    width: 100%;
    min-height: 46px;
    border-radius: 10px;
    background: #8b1a10;
}
@media (max-width: 767px) {
    .fr-wallet-add {
        align-items: flex-start;
        gap: 32px;
        padding: 32px 20px 48px;
    }
    .fr-wallet-add h1 {
        font-size: 28px;
        line-height: 38px;
        font-weight: 600;
    }
    .fr-wallet-eyebrow {
        order: -1;
    }
}

.fr-privacy,
.fr-deletion {
    padding: 24px 80px 32px;
    gap: 16px;
}
.fr-privacy h1,
.fr-deletion h1 {
    line-height: 42px;
}
.fr-privacy > .fr-lead,
.fr-deletion > .fr-lead {
    font-size: 16px;
    line-height: 26px;
}
.fr-privacy .fr-card {
    padding: 24px;
    gap: 16px;
}
.fr-privacy .fr-card h2 {
    font-size: 20px;
    line-height: 30px;
}
.fr-privacy #sharingPermissions p {
    margin-top: 6px;
}
.fr-privacy .fr-revoke-access {
    align-self: flex-start;
    min-height: 44px;
    border-radius: 10px;
    font-size: 12px;
}
.fr-privacy .fr-shared-details {
    max-width: 100%;
    overflow-wrap: anywhere;
}
.fr-privacy > .fr-card.fr-soft > .fr-lead {
    font-size: 16px;
    line-height: 26px;
}
.fr-privacy > .btn-saffron {
    min-height: 46px;
    padding: 12px 24px;
    border: 0;
    border-radius: 10px;
    background: #8b1a10;
    font:
        600 14.4px/20px Poppins,
        sans-serif;
}
.fr-deletion-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: start;
}
.fr-deletion-grid .fr-card {
    padding: 16px;
    font-size: 13px;
    line-height: 20px;
}
.fr-deletion form {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}
.fr-deletion label {
    display: flex;
    gap: 10px;
    align-items: center;
    font-size: 12px;
    font-weight: 600;
}
.fr-deletion label > span {
    flex: 0 0 90px;
}
.fr-deletion input {
    min-width: 0;
    width: 100%;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid #e4d6c4;
    border-radius: 10px;
    font-weight: 400;
}
.fr-deletion-timeline {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #fcebdd;
    border-radius: 16px;
    padding: 16px;
}
.fr-deletion .btn {
    align-self: flex-start;
    min-height: 46px;
    background: #8b1a10;
    border-radius: 10px;
}
.fr-wallet-add > .fr-back {
    align-self: center;
}
@media (max-width: 767px) {
    .fr-privacy,
    .fr-deletion {
        padding: 32px 20px;
        gap: 16px;
    }
    .fr-privacy h1,
    .fr-deletion h1 {
        font-size: 28px;
        line-height: 38px;
        font-weight: 600;
    }
    .fr-deletion-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }
    .fr-deletion-grid .fr-card {
        font-size: 14px;
        line-height: 20px;
    }
    .fr-deletion .btn {
        width: 100%;
    }
    .fr-wallet-add > .fr-back {
        align-self: flex-start;
    }
}
@media (max-width: 767px) {
    .fr-privacy {
        padding-top: 24px;
        padding-bottom: 32px;
    }
    .fr-privacy > .fr-back {
        margin-top: 8px;
        margin-bottom: 8px;
    }
    .fr-privacy h1 {
        line-height: 36px;
    }
}

.fr-contents details > summary {
    display: none;
}
.fr-contents details > h2 {
    margin-bottom: 16px;
}
.fr-contents details > a {
    display: block;
    padding: 0;
    margin-top: 16px;
}
.fr-policy .policy-toc[hidden] {
    display: none !important;
}
body.np-controller-policy .page-hero > .container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
}
body.np-controller-policy .page-hero h1,
body.np-controller-policy .page-hero p {
    margin: 0;
}
body.np-controller-policy .page-hero p {
    color: #574434 !important;
    font:
        400 14px/22px Poppins,
        sans-serif !important;
}
.fr-policy .policy-meta {
    margin-bottom: 12px;
}
.fr-policy-support,
.fr-collapse {
    display: table;
    margin-top: 12px;
}
@media (max-width: 991px) {
    body.np-controller-policy .page-hero {
        padding: 20px 0 16px;
    }
    body.np-controller-policy .page-hero > .container {
        gap: 16px;
    }
    .fr-contents {
        padding: 0;
        background: transparent;
    }
    .fr-contents details > summary {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        padding: 12px 24px;
        border: 1px solid #e8650a;
        border-radius: 10px;
        background: white;
        color: #c4530a;
        font-weight: 600;
        cursor: pointer;
    }
    .fr-contents details[open] {
        padding-bottom: 16px;
        background: #fcebdd;
        border-radius: 16px;
    }
    .fr-contents details > h2,
    .fr-contents details > a {
        margin: 16px;
    }
    .fr-policy {
        gap: 16px;
    }
    .fr-deletion > .fr-back {
        margin-bottom: 8px;
    }
}

.fr-policy .policy-meta {
    padding: 0;
    border: 0;
    font:
        400 14px/22px Poppins,
        sans-serif;
}
.fr-policy .fr-expand,
.fr-policy .fr-collapse,
.fr-policy .fr-policy-support {
    font:
        600 14px/20px Poppins,
        sans-serif;
    min-height: 46px;
    border-radius: 10px;
}
@media (max-width: 991px) {
    body.np-controller-policy .page-hero h1 {
        font-weight: 600;
        letter-spacing: 0;
    }
    body.np-controller-policy.np-action-terms .page-hero h1 {
        max-width: 320px;
    }
}

.fr-profile-consult > button.fr-profile-how {
    border: 0;
    border-radius: 10px;
    background: #fcebdd;
    color: #c4530a;
    min-height: 46px;
    padding: 12px 24px;
    font:
        600 14.4px/20px Poppins,
        sans-serif;
}

.fr-panchang-filters .np-date-label {
    width: 206px;
    flex: none;
}
.fr-panchang-filters .np-date-label > .np-date-open {
    position: static;
    display: block;
    width: 100%;
    min-height: 46px;
    border: 1.5px solid #e8650a;
    border-radius: 10px;
    padding: 8px 10px;
    background: #fff;
    color: #c4530a;
    font:
        600 12px/18px Poppins,
        sans-serif;
}
@media (max-width: 1199px) {
    .fr-panchang-filters {
        flex: 1 0 100%;
    }
    .fr-panchang-filters .np-date-label,
    .fr-panchang-filters select {
        flex: 1 1 0;
        min-width: 0;
        width: 0;
    }
    .fr-panchang-filters select {
        font-size: 12px !important;
    }
}

/* Account wallet: Figma10:174 /10:217. The same ledger backs every filter. */
.fr-wallet {
    padding-top: 56px;
    padding-bottom: 80px;
    gap: 48px;
}
.fr-wallet h1 {
    font-size: 40px;
    line-height: 52px;
}
.fr-wallet > p:not(.fr-wallet-eyebrow) {
    font-size: 16px;
    line-height: 26px;
}
.fr-wallet .fr-account {
    padding: 16px;
    gap: 8px;
}
.fr-wallet .fr-account > p {
    font-size: 12px;
    line-height: 18px;
}
.fr-wallet .fr-balances strong {
    font-size: 22px;
    line-height: 28px;
}
.fr-wallet .fr-balances {
    gap: 8px;
}
.fr-wallet .fr-account .btn {
    min-height: 44px;
    font-size: 12px;
    line-height: 18px;
    border-radius: 8px;
    padding: 8px 16px;
}
.fr-wallet-history {
    display: flex;
    flex-direction: column;
    gap: 48px;
    width: 100%;
}
.fr-wallet-section-heading {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.fr-wallet-section-heading h2 {
    margin: 0;
}
.fr-wallet-section-heading > p {
    font-size: 16px;
    line-height: 26px;
}
.fr-wallet-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.fr-wallet .wallet-tab {
    min-height: 46px;
    min-width: 90px;
    padding: 12px 8px;
    border: 0;
    border-radius: 10px;
    background: #fcebdd;
    color: #8b1a10;
    font:
        600 12px/18px Poppins,
        sans-serif;
}
.fr-wallet .wallet-tab:first-child {
    min-width: 150px;
}
.fr-wallet .wallet-tab.active {
    background: #8b1a10;
    color: white;
}
.fr-wallet-ledger {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    width: 100%;
    padding: 24px;
    border-radius: 16px;
    background: #fcebdd;
}
.fr-wallet-ledger h3 {
    margin: 0;
    color: #8b1a10;
    font:
        600 20px/30px Poppins,
        sans-serif;
}
.fr-wallet #txnList {
    width: 100%;
}
.fr-wallet .txn-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid #e4d6c4;
}
.fr-wallet .txn-item:last-child {
    border-bottom: 0;
}
.fr-wallet-transaction-copy,
.fr-wallet-transaction-amount {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    overflow-wrap: anywhere;
}
.fr-wallet-transaction-copy {
    flex: 1;
}
.fr-wallet-transaction-amount {
    text-align: right;
}
.fr-wallet .txn-amount.credit {
    color: #217548;
}
.fr-wallet .txn-amount.debit {
    color: #8b1a10;
}
.fr-wallet-empty {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}
.fr-wallet [hidden] {
    display: none !important;
}
.fr-notification-list {
    width: 100%;
}
.fr-notification-list > h2 {
    font:
        600 20px/30px Poppins,
        sans-serif;
}
.fr-notification-list > p {
    font-size: 16px;
    line-height: 26px;
}
.fr-notification-list > .card {
    width: 100%;
}
@media (max-width: 991px) {
    .fr-wallet {
        padding-top: 32px;
        padding-bottom: 48px;
        gap: 32px;
    }
    .fr-wallet h1 {
        font-size: 28px;
        line-height: 38px;
        font-weight: 600;
    }
    .fr-wallet > .fr-wallet-eyebrow {
        order: -1;
    }
    .fr-wallet > .fr-back {
        margin: 8px 0;
    }
    .fr-wallet-history {
        gap: 32px;
    }
    .fr-wallet .wallet-tab:first-child {
        min-width: 130px;
    }
    .fr-wallet .wallet-tab {
        min-width: 80px;
    }
    .fr-wallet-ledger {
        padding: 24px;
    }
    .fr-wallet .txn-item {
        padding: 16px 0;
    }
}
