/* Public pages — premium design layer. Scoped to avoid affecting member/admin UI. */
.public-site {
    --public-ink: #101828;
    --public-muted: #667085;
    --public-line: rgba(15, 23, 42, .09);
    --public-blue: #2563eb;
    --public-indigo: #4f46e5;
    --public-cyan: #06b6d4;
    min-height: 100vh;
    background: #f7f9fd;
    color: var(--public-ink);
}

/* Public pricing catalogue */
.pricing-hero { overflow: hidden; }
.pricing-hero-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.pricing-hero-stats span { display: inline-flex; align-items: baseline; gap: 6px; padding: 9px 13px; border: 1px solid rgba(148,163,184,.18); border-radius: 999px; background: rgba(15,23,42,.28); color: #cbd5e1; font-size: .82rem; }
.pricing-hero-stats strong { color: #fff; font-size: 1rem; }
.pricing-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 22px; }
.pricing-tabs a { display: flex; align-items: center; gap: 13px; padding: 17px 18px; border: 1px solid rgba(148,163,184,.16); border-radius: 18px; background: rgba(15,23,42,.58); color: #cbd5e1; text-decoration: none; transition: border-color .2s ease, transform .2s ease, background .2s ease; }
.pricing-tabs a:hover { transform: translateY(-2px); border-color: rgba(45,212,191,.48); }
.pricing-tabs a.active { border-color: rgba(45,212,191,.58); background: linear-gradient(135deg,rgba(13,148,136,.24),rgba(15,23,42,.74)); color: #fff; box-shadow: inset 0 0 0 1px rgba(45,212,191,.08); }
.pricing-tabs a > span { display: grid; width: 44px; height: 44px; place-items: center; flex: 0 0 auto; border-radius: 13px; background: rgba(45,212,191,.12); color: #5eead4; font-size: 1.15rem; }
.pricing-tabs strong,.pricing-tabs small { display: block; }
.pricing-tabs strong { margin-bottom: 2px; font-size: .98rem; }
.pricing-tabs small { color: #94a3b8; font-size: .75rem; }
.pricing-catalog { padding: clamp(18px,3vw,30px); border: 1px solid rgba(148,163,184,.15); border-radius: 24px; background: rgba(8,18,41,.8); box-shadow: 0 20px 60px rgba(2,6,23,.22); }
.pricing-section-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 20px; }
.pricing-section-head span { color: #2dd4bf; font-size: .7rem; font-weight: 800; letter-spacing: .13em; }
.pricing-section-head h2 { margin: 4px 0 0; color: #f8fafc; font-size: clamp(1.3rem,2.6vw,1.85rem); }
.pricing-section-head p { margin: 0; color: #94a3b8; font-size: .85rem; }
.pricing-section-head p strong { color: #f8fafc; }
.pricing-filter-form { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; padding: 14px; border-radius: 17px; background: rgba(15,23,42,.58); }
.pricing-filter-form label { min-width: 150px; flex: 1 1 160px; }
.pricing-filter-form label > span { display: block; margin-bottom: 6px; color: #94a3b8; font-size: .7rem; font-weight: 700; }
.pricing-filter-form select,.pricing-filter-form input { width: 100%; min-height: 43px; border: 1px solid rgba(148,163,184,.2); border-radius: 11px; outline: none; background: #0f1d35; color: #e2e8f0; }
.pricing-filter-form select { padding: 0 34px 0 12px; }
.pricing-filter-form input { padding: 0 12px 0 37px; }
.pricing-filter-form input:focus,.pricing-filter-form select:focus { border-color: #2dd4bf; box-shadow: 0 0 0 3px rgba(45,212,191,.1); }
.pricing-filter-form .pricing-search { flex: 2 1 280px; }
.pricing-search div { position: relative; }
.pricing-search i { position: absolute; top: 50%; left: 13px; color: #64748b; transform: translateY(-50%); }
.pricing-filter-form .btn { min-height: 43px; }
.pricing-table-wrap { overflow-x: auto; border: 1px solid rgba(148,163,184,.13); border-radius: 16px; }
.pricing-table { width: 100%; border-collapse: collapse; color: #cbd5e1; font-size: .82rem; }
.pricing-table th { padding: 12px 14px; background: rgba(15,23,42,.85); color: #94a3b8; font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.pricing-table td { padding: 13px 14px; border-top: 1px solid rgba(148,163,184,.1); vertical-align: middle; }
.pricing-table tbody tr:hover { background: rgba(45,212,191,.035); }
.pricing-product-name { display: flex; align-items: center; gap: 10px; min-width: 310px; }
.pricing-product-name > span,.pricing-product-icon { display: grid; width: 36px; height: 36px; place-items: center; flex: 0 0 auto; border-radius: 11px; background: rgba(45,212,191,.1); color: #5eead4; }
.pricing-product-name strong,.pricing-product-name small { display: block; }
.pricing-product-name strong { max-width: 480px; color: #f1f5f9; line-height: 1.35; }
.pricing-product-name small { margin-top: 3px; color: #64748b; }
.pricing-category-chip { display: inline-block; max-width: 220px; padding: 5px 8px; overflow: hidden; border-radius: 8px; background: rgba(59,130,246,.1); color: #93c5fd; text-overflow: ellipsis; white-space: nowrap; }
.pricing-feature-list { display: flex; flex-wrap: wrap; gap: 5px; }
.pricing-feature-list span { padding: 4px 7px; border-radius: 7px; background: rgba(16,185,129,.1); color: #6ee7b7; font-size: .68rem; white-space: nowrap; }
.pricing-feature-list .muted { background: rgba(148,163,184,.09); color: #94a3b8; }
.pricing-price { color: #5eead4; font-size: .95rem; font-weight: 800; white-space: nowrap; }
.pricing-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.pricing-product-card { display: flex; min-width: 0; min-height: 220px; flex-direction: column; padding: 16px; border: 1px solid rgba(148,163,184,.13); border-radius: 17px; background: rgba(15,23,42,.54); }
.pricing-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 13px; }
.pricing-kind { padding: 4px 8px; border-radius: 999px; font-size: .64rem; font-weight: 800; }
.pricing-kind.prepaid { background: rgba(14,165,233,.12); color: #7dd3fc; }
.pricing-kind.postpaid { background: rgba(245,158,11,.13); color: #fcd34d; }
.pricing-card-category { overflow: hidden; color: #2dd4bf; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.pricing-product-card h3 { margin: 7px 0; color: #f1f5f9; font-size: .9rem; line-height: 1.4; }
.pricing-product-card code { color: #94a3b8; font-size: .7rem; }
.pricing-card-price { display: flex; justify-content: space-between; align-items: end; gap: 10px; margin-top: auto; padding-top: 16px; border-top: 1px solid rgba(148,163,184,.1); }
.pricing-card-price span { color: #64748b; font-size: .68rem; }
.pricing-card-price strong { color: #5eead4; font-size: 1rem; }
.pricing-pagination { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 22px; }
.pricing-pagination a { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(148,163,184,.2); border-radius: 10px; color: #cbd5e1; text-decoration: none; }
.pricing-pagination a:hover { border-color: #2dd4bf; color: #5eead4; }
.pricing-pagination a.disabled { opacity: .35; pointer-events: none; }
.pricing-pagination span { color: #94a3b8; font-size: .78rem; }
.pricing-pagination strong { color: #f8fafc; }
.pricing-empty { padding: 55px 20px; text-align: center; }
.pricing-empty > span { display: grid; width: 58px; height: 58px; place-items: center; margin: 0 auto 14px; border-radius: 18px; background: rgba(45,212,191,.1); color: #5eead4; font-size: 1.4rem; }
.pricing-empty h3 { color: #f8fafc; }
.pricing-empty p { color: #94a3b8; }
.pricing-cta { display: flex; justify-content: space-between; align-items: center; gap: 28px; margin-top: 22px; padding: clamp(22px,4vw,38px); border: 1px solid rgba(45,212,191,.2); border-radius: 24px; background: linear-gradient(135deg,rgba(13,148,136,.2),rgba(15,23,42,.82)); }
.pricing-cta span { color: #5eead4; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.pricing-cta h2 { margin: 5px 0 7px; color: #fff; font-size: clamp(1.2rem,2.5vw,1.7rem); }
.pricing-cta p { max-width: 680px; margin: 0; color: #94a3b8; font-size: .84rem; }
.pricing-cta > div:last-child { display: flex; flex: 0 0 auto; gap: 9px; }

@media (max-width: 991.98px) {
    .pricing-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .pricing-cta { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 767.98px) {
    .pricing-tabs { gap: 8px; }
    .pricing-tabs a { align-items: flex-start; padding: 13px; }
    .pricing-tabs a > span { width: 38px; height: 38px; }
    .pricing-tabs small { display: none; }
    .pricing-section-head { align-items: flex-start; flex-direction: column; gap: 7px; }
    .pricing-filter-form label,.pricing-filter-form .pricing-search { flex-basis: 100%; }
    .pricing-filter-form .btn { flex: 1 1 120px; }
    .pricing-table,.pricing-table tbody,.pricing-table tr,.pricing-table td { display: block; width: 100%; }
    .pricing-table thead { display: none; }
    .pricing-table tr { padding: 13px; border-top: 1px solid rgba(148,163,184,.13); }
    .pricing-table tr:first-child { border-top: 0; }
    .pricing-table td { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 6px 0; border: 0; text-align: right; }
    .pricing-table td::before { content: attr(data-label); flex: 0 0 90px; color: #64748b; font-size: .68rem; text-align: left; }
    .pricing-table td:first-child { align-items: flex-start; padding-bottom: 10px; }
    .pricing-table td:first-child::before { display: none; }
    .pricing-product-name { min-width: 0; text-align: left; }
    .pricing-category-chip { max-width: 210px; }
}
@media (max-width: 575.98px) {
    .pricing-hero-stats span { width: 100%; justify-content: space-between; }
    .pricing-tabs strong { font-size: .82rem; }
    .pricing-catalog { padding: 13px; border-radius: 19px; }
    .pricing-card-grid { grid-template-columns: 1fr; }
    .pricing-product-card { min-height: 190px; }
    .pricing-cta > div:last-child { width: 100%; flex-direction: column; }
    .pricing-cta .btn { width: 100%; }
}

.public-skip-link {
    position: fixed;
    z-index: 1100;
    top: 8px;
    left: 8px;
    padding: 10px 14px;
    border-radius: 10px;
    background: #fff;
    color: var(--public-blue);
    font-weight: 700;
    transform: translateY(-150%);
    transition: transform .2s ease;
}

.public-skip-link:focus { transform: translateY(0); }

.public-progress {
    position: fixed;
    z-index: 1200;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    transform: scaleX(0);
    transform-origin: left;
    background: linear-gradient(90deg, #60a5fa, #a78bfa, #22d3ee);
    box-shadow: 0 0 16px rgba(96, 165, 250, .8);
}

.public-site .public-navbar {
    min-height: 72px;
    padding: 10px 0;
    background: rgba(7, 15, 35, .9) !important;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 12px 40px rgba(2, 6, 23, .08);
    transition: min-height .25s ease, background .25s ease, box-shadow .25s ease;
}

.public-site .public-navbar.navbar-scrolled {
    min-height: 62px;
    background: rgba(7, 15, 35, .97) !important;
    box-shadow: 0 14px 40px rgba(2, 6, 23, .2);
}

.public-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -.025em;
}

.public-brand:hover { color: #fff; }

.public-brand-mark {
    display: grid;
    place-items: center;
    width: 35px;
    height: 35px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 11px;
    background: linear-gradient(135deg, rgba(96, 165, 250, .28), rgba(139, 92, 246, .28));
    color: #bfdbfe;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 8px 24px rgba(37, 99, 235, .2);
}

.public-nav-links { gap: 4px; }
.public-nav-links .nav-link {
    padding: 8px 12px !important;
    border-radius: 9px;
    color: rgba(255, 255, 255, .68) !important;
    font-size: .84rem;
    font-weight: 650;
    transition: color .2s ease, background .2s ease;
}

.public-nav-links .nav-link:hover,
.public-nav-links .nav-link.active {
    color: #fff !important;
    background: rgba(255, 255, 255, .09);
}

.public-nav-links .nav-link i { margin-right: 4px; }
.public-nav-actions .btn {
    min-width: 74px;
    padding: 8px 13px;
    border-radius: 10px;
    font-size: .78rem;
    font-weight: 750;
}

.public-nav-actions .btn-glow {
    border: 1px solid rgba(255, 255, 255, .12);
    background: linear-gradient(135deg, #3b82f6, #6366f1);
    color: #fff;
    box-shadow: 0 8px 20px rgba(37, 99, 235, .28);
}

.public-navbar-toggler {
    padding: 6px 8px;
    border-color: rgba(255, 255, 255, .16);
    border-radius: 10px;
    box-shadow: none !important;
}

.public-main {
    position: relative;
    isolation: isolate;
    min-height: 68vh;
    overflow: hidden;
    background:
        linear-gradient(rgba(15, 23, 42, .025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(15, 23, 42, .025) 1px, transparent 1px),
        radial-gradient(circle at 15% 5%, rgba(59, 130, 246, .1), transparent 28%),
        radial-gradient(circle at 90% 35%, rgba(139, 92, 246, .08), transparent 26%),
        #f7f9fd;
    background-size: 44px 44px, 44px 44px, auto, auto, auto;
}

.public-content-shell { position: relative; z-index: 2; }
.public-orb {
    position: absolute;
    z-index: 0;
    border-radius: 50%;
    filter: blur(4px);
    pointer-events: none;
    opacity: .55;
    animation: publicFloat 12s ease-in-out infinite alternate;
}

.public-orb-one {
    top: 70px;
    right: -90px;
    width: 220px;
    height: 220px;
    border: 1px solid rgba(59, 130, 246, .14);
    background: radial-gradient(circle at 35% 35%, rgba(255,255,255,.9), rgba(96,165,250,.12) 40%, transparent 70%);
}

.public-orb-two {
    bottom: 30px;
    left: -120px;
    width: 300px;
    height: 300px;
    border: 1px solid rgba(139, 92, 246, .1);
    background: radial-gradient(circle, rgba(167,139,250,.12), transparent 68%);
    animation-delay: -4s;
}

@keyframes publicFloat {
    from { transform: translate3d(0, 0, 0) rotate(0); }
    to { transform: translate3d(-22px, 20px, 0) rotate(8deg); }
}

.public-site .page-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(30px, 5vw, 52px);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 22px;
    background:
        radial-gradient(circle at 85% 10%, rgba(103, 232, 249, .23), transparent 28%),
        radial-gradient(circle at 8% 100%, rgba(167, 139, 250, .22), transparent 33%),
        linear-gradient(125deg, #0b1735 0%, #193d92 52%, #2563eb 100%);
    box-shadow: 0 22px 55px rgba(15, 38, 91, .18), inset 0 1px 0 rgba(255,255,255,.1);
}

.public-site .page-hero::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: .18;
    background-image: linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: linear-gradient(100deg, #000, transparent 75%);
}

.public-site .page-hero::after {
    content: '';
    position: absolute;
    z-index: -1;
    top: -45px;
    right: -35px;
    width: 170px;
    height: 170px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 44% 56% 55% 45%;
    transform: rotate(22deg);
}

.public-site .page-hero h1 {
    max-width: 780px;
    margin-bottom: 10px !important;
    color: #fff;
    font-size: clamp(1.75rem, 4vw, 2.65rem);
    line-height: 1.08;
    letter-spacing: -.04em;
    text-wrap: balance;
}

.public-site .page-hero p {
    max-width: 760px;
    color: rgba(255,255,255,.78);
    font-size: clamp(.9rem, 1.6vw, 1.03rem);
    line-height: 1.7;
}

.public-site .faq-hero-badge,
.public-site .contact-hero-badge,
.public-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 13px;
    padding: 6px 11px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    color: #dbeafe;
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .035em;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
}

.public-site .card-panel,
.public-surface {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 18px;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 12px 36px rgba(15, 23, 42, .055), inset 0 1px 0 #fff;
    backdrop-filter: blur(12px);
}

.public-site .card-panel {
    transition: transform .35s cubic-bezier(.22,1,.36,1), border-color .35s ease, box-shadow .35s ease;
}

.public-site .card-panel:hover {
    border-color: rgba(37, 99, 235, .18);
    box-shadow: 0 20px 44px rgba(15, 23, 42, .09), inset 0 1px 0 #fff;
}

.public-site .card-panel .card-body { padding: clamp(18px, 3vw, 26px); }
.public-site .text-muted { color: var(--public-muted) !important; }

.public-site .btn {
    border-radius: 11px;
    font-weight: 700;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.public-site .btn:hover { transform: translateY(-1px); }
.public-site .btn-primary {
    border-color: transparent;
    background: linear-gradient(135deg, #2563eb, #4f46e5);
    box-shadow: 0 8px 20px rgba(37, 99, 235, .2);
}

.public-site .btn-outline-primary { border-color: rgba(37, 99, 235, .28); }

/* Generic CMS pages */
.cms-page { max-width: 1080px; margin: 0 auto; }
.cms-page .cms-hero { margin-bottom: 24px !important; }
.cms-hero .public-eyebrow { margin-bottom: 12px; }
.cms-page-content {
    color: #344054;
    font-size: .95rem;
    line-height: 1.78;
}

.cms-page-content > .card-panel,
.cms-page-content > .table-responsive,
.cms-page-content > table,
.cms-page-content > .row,
.cms-page-content > ol,
.cms-page-content > ul,
.cms-page-content > p {
    margin-bottom: 20px !important;
}

.cms-page-content .row > [class*="col-"] .card-panel {
    position: relative;
    overflow: hidden;
}

.cms-page-content .row > [class*="col-"] .card-panel::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #2563eb, #8b5cf6, #06b6d4);
}

.cms-page-content h2,
.cms-page-content h3,
.cms-page-content h4,
.cms-page-content h5 {
    letter-spacing: -.025em;
}

.cms-page-content h5 i {
    display: inline-grid;
    place-items: center;
    width: 35px;
    height: 35px;
    margin-right: 7px;
    border-radius: 10px;
    background: #eff6ff;
}

.cms-page-content ol:not(.breadcrumb),
.cms-page-content ul:not(.list-unstyled) {
    padding: 22px 24px 22px 46px;
    border: 1px solid var(--public-line);
    border-radius: 16px;
    background: rgba(255,255,255,.86);
    box-shadow: 0 10px 30px rgba(15,23,42,.04);
}

.cms-page-content li { padding-left: 5px; }
.cms-page-content li + li { margin-top: 9px; }
.cms-page-content .table-responsive {
    overflow: hidden;
    border: 1px solid var(--public-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(15,23,42,.05);
}

.cms-page-content table {
    width: 100%;
    margin: 0 !important;
    border-collapse: separate;
    border-spacing: 0;
    border-color: var(--public-line);
}

.cms-page-content table thead th {
    padding: 15px 17px;
    border: 0;
    background: #eef4ff !important;
    color: #1d3d79;
    font-size: .73rem;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.cms-page-content table td {
    padding: 15px 17px;
    border-color: var(--public-line);
    vertical-align: middle;
}

.cms-page-content table tbody tr { transition: background .2s ease; }
.cms-page-content table tbody tr:hover { background: #f8faff; }
.cms-page-content code {
    display: inline-block;
    max-width: 100%;
    padding: 5px 8px;
    overflow-wrap: anywhere;
    border: 1px solid #dbeafe;
    border-radius: 7px;
    background: #eff6ff;
    color: #1d4ed8;
}

/* FAQ */
.public-site .faq-nav { top: 86px !important; overflow: hidden; }
.public-site .faq-nav-link { font-size: .83rem; font-weight: 650; }
.public-site .faq-nav-link.active {
    background: linear-gradient(135deg, rgba(37,99,235,.12), rgba(79,70,229,.07));
    box-shadow: inset 3px 0 #2563eb;
}

.public-site .faq-section-head {
    margin-bottom: 13px;
    padding: 0 2px 10px;
}

.public-site .faq-section-head i {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: #eaf2ff;
}

.public-site .faq-accordion .accordion-item {
    border-color: var(--public-line);
    border-radius: 14px !important;
    box-shadow: 0 7px 22px rgba(15,23,42,.035);
}

.public-site .faq-accordion .accordion-button { padding: 17px 18px; }
.public-site .faq-accordion .accordion-button:not(.collapsed) {
    background: linear-gradient(135deg, #eff6ff, #f5f3ff);
    color: #1d4ed8;
}

.public-site .faq-search-input {
    min-height: 52px;
    border-radius: 14px;
    backdrop-filter: blur(8px);
}

/* Contact */
.public-site .contact-hero-stat { border-radius: 15px; backdrop-filter: blur(10px); }
.public-site .contact-channel { overflow: hidden; }
.public-site .contact-channel::after {
    content: '';
    position: absolute;
    right: -35px;
    bottom: -35px;
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--channel-color, #2563eb) 9%, transparent);
}

.public-site .contact-channel-icon {
    border: 1px solid color-mix(in srgb, var(--channel-color) 18%, transparent);
    box-shadow: 0 10px 22px color-mix(in srgb, var(--channel-color) 12%, transparent);
}

.public-site .contact-ticket-card,
.public-site .faq-cta,
.public-site .contact-tip { border-left-width: 0; }
.public-site .contact-ticket-card::before,
.public-site .faq-cta::before,
.public-site .contact-tip::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    border-radius: 18px 0 0 18px;
    background: linear-gradient(#2563eb, #6366f1);
}

.public-site .contact-tip::before { background: linear-gradient(#f59e0b, #f97316); }

/* Blog */
.public-blog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.public-article-card { position: relative; overflow: hidden; }
.public-article-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, #2563eb, #8b5cf6, #06b6d4);
}

.public-article-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    color: var(--public-muted);
    font-size: .73rem;
    font-weight: 650;
}

.public-article-card h2 { font-size: 1.08rem; line-height: 1.35; letter-spacing: -.025em; }
.public-article-body { color: var(--public-muted); font-size: .88rem; line-height: 1.72; }
.public-article-body p:last-child { margin-bottom: 0; }

.public-empty-state {
    padding: clamp(40px, 8vw, 80px) 20px;
    border: 1px dashed rgba(37,99,235,.22);
    border-radius: 20px;
    background: rgba(255,255,255,.72);
    text-align: center;
}

.public-empty-icon {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 15px;
    border-radius: 17px;
    background: linear-gradient(135deg, #dbeafe, #ede9fe);
    color: #2563eb;
    font-size: 1.4rem;
}

.public-404 { max-width: 720px; margin: 4vh auto; text-align: center; }
.public-404-code {
    display: inline-block;
    margin-bottom: 5px;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-size: clamp(4rem, 16vw, 8rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.08em;
}

/* Footer */
.public-site footer.landing-footer {
    position: relative;
    padding: clamp(44px, 7vw, 76px) 0 24px;
    overflow: hidden;
    background:
        radial-gradient(circle at 10% 0, rgba(37,99,235,.22), transparent 28%),
        radial-gradient(circle at 95% 90%, rgba(139,92,246,.18), transparent 30%),
        #071023;
}

.public-site footer.landing-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: .14;
    background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size: 42px 42px;
    pointer-events: none;
}

.public-site footer .container { position: relative; }
.public-footer-brand { margin-bottom: 14px; }
.public-footer-copy { max-width: 470px; color: rgba(255,255,255,.58); font-size: .86rem; line-height: 1.7; }
.public-trust-row { display: flex; flex-wrap: wrap; gap: 9px; }
.public-trust-row span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 999px;
    background: rgba(255,255,255,.045);
    color: rgba(255,255,255,.65);
    font-size: .7rem;
}

.public-trust-row i { color: #67e8f9; }
.public-footer-title {
    margin-bottom: 14px;
    color: #fff;
    font-size: .77rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.public-footer-links { display: grid; gap: 9px; }
.public-footer-links a { width: fit-content; color: rgba(255,255,255,.55) !important; font-size: .79rem; }
.public-footer-links a:hover { color: #fff !important; transform: translateX(2px); }
.public-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 42px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.08);
    color: rgba(255,255,255,.4);
    font-size: .72rem;
}

.public-footer-bottom a { color: rgba(255,255,255,.55) !important; }

.public-reveal {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .55s cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms), transform .55s cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms);
}
.public-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 991.98px) {
    .public-site .public-navbar { min-height: 64px; }
    .public-navbar .navbar-collapse {
        margin-top: 10px;
        padding: 8px 0 5px;
        border-top: 1px solid rgba(255,255,255,.08);
    }
    .public-nav-links { gap: 2px; }
    .public-nav-links .nav-link { padding: 9px 10px !important; }
    .public-nav-actions { padding: 2px 0 8px; }
    .public-site .faq-nav .card-body { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    .public-site .faq-nav .card-body::-webkit-scrollbar { display: none; }
    .public-site .faq-nav .card-body p { display: none; }
    .public-site .faq-nav-link { flex: 0 0 auto; white-space: nowrap; }
}

@media (max-width: 767.98px) {
    .public-content-shell { padding-top: 20px !important; padding-bottom: 34px !important; }
    .public-site .page-hero { padding: 25px 20px; border-radius: 18px; }
    .public-site .page-hero h1 { font-size: 1.65rem; }
    .public-site .page-hero p { font-size: .86rem; line-height: 1.62; }
    .public-site .card-panel { border-radius: 15px; }
    .public-site .card-panel .card-body { padding: 17px; }
    .public-blog-grid { grid-template-columns: 1fr; gap: 13px; }
    .cms-page-content { font-size: .87rem; line-height: 1.68; }
    .cms-page-content .table-responsive { overflow-x: auto; border-radius: 13px; }
    .cms-page-content table { min-width: 600px; }
    .cms-page-content table th,
    .cms-page-content table td { padding: 12px 13px; }
    .cms-page-content ol:not(.breadcrumb),
    .cms-page-content ul:not(.list-unstyled) { padding: 18px 17px 18px 38px; }
    .contact-channel { min-height: 100%; }
    .public-footer-bottom { flex-direction: column; align-items: flex-start; margin-top: 30px; }
}

@media (max-width: 420px) {
    .public-brand { font-size: .88rem; }
    .public-brand-mark { width: 32px; height: 32px; }
    .public-site .page-hero { padding: 23px 17px; }
    .public-nav-actions .btn { flex: 1; }
    .public-trust-row { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
    .public-orb { animation: none; }
    .public-reveal { opacity: 1; transform: none; transition: none; }
    .public-site *, .public-site *::before, .public-site *::after { scroll-behavior: auto !important; }
}

@media print {
    .public-navbar, .landing-footer, .public-progress, .public-orb { display: none !important; }
    .public-main { background: #fff; }
    .public-content-shell { max-width: 100%; padding: 0 !important; }
    .public-site .page-hero { color: #000; background: #fff; border: 1px solid #ccc; box-shadow: none; }
    .public-site .page-hero h1, .public-site .page-hero p { color: #000; }
}

/* ==========================================================================
   Unified Public Navbar & Footer Styles
   ========================================================================== */
.public-site .navbar-modern {
    padding: 14px 0;
    background: rgba(24, 13, 47, .92) !important;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    backdrop-filter: blur(20px);
    transition: padding .3s ease, background .3s ease, box-shadow .3s ease;
}
.public-site .navbar-modern.navbar-scrolled {
    padding: 9px 0;
    background: rgba(24, 13, 47, .98) !important;
    box-shadow: 0 12px 35px rgba(31, 12, 42, .24);
}
.public-site .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 1.04rem;
    font-weight: 850;
    letter-spacing: -.025em;
}
.public-site .navbar-brand img { object-fit: contain; border-radius: 10px; }
.public-site .brand-mark, .public-brand-mark {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 11px;
    background: linear-gradient(135deg, #8b5cf6, #fb7185);
    box-shadow: 0 8px 20px rgba(251, 113, 133, .2);
    color: #fff;
}
.public-site .navbar-nav { gap: 8px; }
.public-site .navbar-nav .nav-link {
    padding: 8px 12px;
    color: rgba(255, 255, 255, .75) !important;
    font-size: .86rem;
    font-weight: 650;
    transition: color .2s ease;
}
.public-site .navbar-nav .nav-link:hover,
.public-site .navbar-nav .nav-link:focus,
.public-site .navbar-nav .nav-link.active {
    color: #fff !important;
}
.public-site .nav-actions {
    display: flex;
    align-items: center;
    gap: 9px;
}
.public-site .btn-link-light {
    color: rgba(255, 255, 255, .84) !important;
    font-size: .88rem;
    font-weight: 700;
    text-decoration: none;
}
.public-site .btn-link-light:hover {
    color: #fff !important;
}
.public-site .premium-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 0;
    border-radius: 13px;
    background: linear-gradient(120deg, #7c3aed, #e94f75 72%, #f59e0b);
    box-shadow: 0 12px 30px rgba(145, 58, 170, .3);
    color: #fff !important;
    font-weight: 780;
    text-decoration: none;
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.public-site .premium-btn:hover,
.public-site .premium-btn:focus {
    transform: translateY(-2px);
    box-shadow: 0 18px 40px rgba(145, 58, 170, .38);
    color: #fff !important;
    filter: saturate(1.1);
}
.public-site .premium-btn-sm {
    padding: 9px 15px;
    font-size: .82rem;
}

/* Footer Unified Styles */
.public-site .premium-footer,
.public-site footer.landing-footer {
    padding: 65px 0 25px;
    background: #130820 !important;
    color: #fff;
}
.public-site .landing-footer-grid {
    display: grid;
    grid-template-columns: 1.15fr 1.35fr .65fr 1fr;
    gap: 44px;
    padding-bottom: 45px;
}
.public-site .footer-brand p {
    max-width: 390px;
    margin: 18px 0 0;
    color: #9b8aa6;
    font-size: .77rem;
    line-height: 1.7;
}
.public-site .landing-trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}
.public-site .landing-trust-row span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 9px;
    border: 1px solid rgba(251, 164, 175, .16);
    border-radius: 999px;
    background: rgba(251, 113, 133, .07);
    color: #d9cadf;
    font-size: .62rem;
    font-weight: 700;
}
.public-site .landing-trust-row i { color: #fda4af; }
.public-site .landing-footer-title {
    margin: 3px 0 17px;
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.public-site .landing-footer-office > strong {
    display: block;
    color: #f4ecf6;
    font-size: .78rem;
    line-height: 1.55;
}
.public-site .landing-footer-nib {
    display: block;
    width: fit-content;
    margin: 8px 0 12px;
    padding: 4px 8px;
    border: 1px solid rgba(251, 164, 175, .16);
    border-radius: 7px;
    background: rgba(251, 113, 133, .07);
    color: #fda4af;
    font-size: .63rem;
    font-weight: 750;
    letter-spacing: .035em;
}
.public-site .landing-footer-office address {
    display: grid;
    grid-template-columns: 17px minmax(0, 1fr);
    gap: 7px;
    margin: 0;
    color: #9b8aa6;
    font-size: .7rem;
    font-style: normal;
    line-height: 1.65;
    overflow-wrap: anywhere;
}
.public-site .landing-footer-office address i {
    margin-top: 2px;
    color: #fda4af;
}
.public-site .landing-footer-links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}
.public-site .landing-footer-links a {
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    color: #9b8aa6 !important;
    font-size: .7rem;
    line-height: 1.5;
    text-decoration: none;
    transition: color .2s ease, transform .2s ease;
}
.public-site .landing-footer-links a i {
    margin-top: 1px;
    color: #fda4af;
}
.public-site .landing-footer-links a:hover {
    color: #fff !important;
    transform: translateX(2px);
}
.public-site .footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .07);
    color: #766581;
    font-size: .63rem;
}
.public-site .footer-bottom a {
    color: #bbaac4 !important;
    text-decoration: none;
}
.public-site .footer-bottom a:hover {
    color: #fff !important;
}

@media (max-width: 991.98px) {
    .public-site .landing-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-site .navbar-collapse { background: rgba(24, 13, 47, .98); padding: 16px; border-radius: 16px; margin-top: 12px; }
}
@media (max-width: 575.98px) {
    .public-site .landing-footer-grid { grid-template-columns: 1fr; gap: 30px; }
    .public-site .landing-footer-grid .footer-brand { padding-bottom: 28px; border-bottom: 1px solid rgba(255, 255, 255, .07); }
    .public-site .landing-footer-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 10px 18px; }
    .public-site .footer-bottom { flex-direction: column; }
}
/* Payment gateway redirect result */
.payment-result {
    --result-accent: #2563eb;
    --result-soft: rgba(37, 99, 235, .1);
    min-height: clamp(480px, 68vh, 720px);
    display: grid;
    place-items: center;
    padding: clamp(1.25rem, 4vw, 3rem) 0;
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.payment-result__mesh {
    position: absolute;
    z-index: -3;
    inset: 0;
    opacity: .42;
    background-image: linear-gradient(rgba(32, 73, 122, .075) 1px, transparent 1px), linear-gradient(90deg, rgba(32, 73, 122, .075) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(circle at center, #000 12%, transparent 72%);
}

.payment-result__glow {
    position: absolute;
    z-index: -2;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: var(--result-soft);
    filter: blur(22px);
    pointer-events: none;
}

.payment-result__glow--one { top: 4%; left: 7%; }
.payment-result__glow--two { right: 6%; bottom: 2%; transform: scale(.75); }

.payment-result--success { --result-accent: #16835f; --result-soft: rgba(22, 131, 95, .1); }
.payment-result--pending { --result-accent: #b76b09; --result-soft: rgba(183, 107, 9, .11); }
.payment-result--failed { --result-accent: #c43d4b; --result-soft: rgba(196, 61, 75, .1); }

.payment-result__card {
    width: min(100%, 680px);
    padding: clamp(1.5rem, 5vw, 3rem);
    border: 1px solid rgba(15, 35, 67, .12);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(8, 25, 54, .11);
    text-align: center;
    position: relative;
    overflow: hidden;
    transform: translateZ(0);
    animation: payment-card-enter .65s cubic-bezier(.2,.8,.2,1) both;
}

.payment-result__card::before {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(255,255,255,.8), transparent 28%, transparent 72%, var(--result-soft));
    content: "";
    pointer-events: none;
}

.payment-result__topline { position: absolute; top: 0; left: 12%; width: 76%; height: 3px; border-radius: 0 0 5px 5px; background: linear-gradient(90deg, transparent, var(--result-accent), transparent); }

.payment-result__brandline { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 1.6rem; color: #708097; font-size: .68rem; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.payment-result__brandline span { display: inline-flex; align-items: center; gap: 7px; }
.payment-result__brandline > span:first-child i { color: var(--result-accent); }
.payment-result__live i { width: 7px; height: 7px; border-radius: 50%; background: var(--result-accent); box-shadow: 0 0 0 5px var(--result-soft); }

.payment-result__emblem { position: relative; width: 98px; height: 98px; display: grid; place-items: center; margin: 0 auto 1rem; }
.payment-result__orbit { position: absolute; inset: 0; border: 1px dashed color-mix(in srgb, var(--result-accent) 35%, transparent); border-radius: 50%; animation: payment-orbit 16s linear infinite; }
.payment-result__orbit::after { position: absolute; top: 5px; left: 17px; width: 7px; height: 7px; border-radius: 50%; background: var(--result-accent); box-shadow: 0 0 12px var(--result-accent); content: ""; }

.payment-result__icon {
    width: 76px;
    height: 76px;
    display: grid;
    place-items: center;
    margin: 0;
    border-radius: 50%;
    color: var(--result-accent);
    background: var(--result-soft);
    font-size: 2rem;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--result-accent) 12%, transparent), 0 10px 28px var(--result-soft);
}

.payment-result__eyebrow {
    color: var(--result-accent);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.payment-result h1 {
    margin: .55rem 0 .8rem;
    color: #0b1b35;
    font-size: clamp(1.75rem, 5vw, 2.65rem);
    letter-spacing: -.035em;
}

.payment-result__lead {
    max-width: 540px;
    margin: 0 auto;
    color: #53627a;
    font-size: clamp(1rem, 2.5vw, 1.12rem);
    line-height: 1.7;
}

.payment-result__flow { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); max-width: 520px; margin: 1.65rem auto 1.4rem; }
.payment-result__flow::before { position: absolute; top: 16px; right: 16.66%; left: 16.66%; height: 1px; background: #dfe5ed; content: ""; }
.payment-result__flow-step { position: relative; z-index: 1; display: grid; justify-items: center; gap: 7px; color: #98a2b3; }
.payment-result__flow-step > span { width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid #dce3eb; border-radius: 50%; background: #fff; font-size: .72rem; font-weight: 800; }
.payment-result__flow-step small { font-size: .7rem; font-weight: 700; }
.payment-result__flow-step.is-active { color: var(--result-accent); }
.payment-result__flow-step.is-active > span { border-color: color-mix(in srgb, var(--result-accent) 25%, transparent); background: var(--result-soft); box-shadow: 0 0 0 4px #fff; }

.payment-result__notice {
    display: flex;
    gap: .8rem;
    align-items: flex-start;
    margin: 1.6rem 0;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--result-accent) 18%, transparent);
    border-radius: 14px;
    color: #34445d;
    background: var(--result-soft);
    text-align: left;
}

.payment-result__notice i { flex: 0 0 auto; color: var(--result-accent); font-size: 1.2rem; }
.payment-result__notice p { margin: 0; line-height: 1.6; }
.payment-result__notice strong { display: block; margin: 0 0 .2rem; color: #20324c; font-size: .82rem; }

.payment-result__actions {
    display: flex;
    justify-content: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.payment-result__actions .btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 13px; font-weight: 750; transition: transform .2s ease, box-shadow .2s ease; }
.payment-result__actions .btn:hover { transform: translateY(-2px); }
.payment-result__trust { display: flex; justify-content: center; gap: 1.2rem; flex-wrap: wrap; margin-top: 1.35rem; color: #77869b; font-size: .72rem; font-weight: 650; }
.payment-result__trust span { display: inline-flex; align-items: center; gap: 6px; }
.payment-result__trust i { color: var(--result-accent); }

.payment-result__help { margin: 1.4rem 0 0; color: #748197; font-size: .875rem; }

@media (max-width: 575.98px) {
    .payment-result__card { border-radius: 18px; }
    .payment-result__brandline { justify-content: center; }
    .payment-result__brandline .payment-result__live { display: none; }
    .payment-result__flow-step small { max-width: 84px; line-height: 1.3; }
    .payment-result__actions { display: grid; }
    .payment-result__actions .btn { width: 100%; }
}

@keyframes payment-card-enter { from { opacity: 0; transform: translateY(16px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes payment-orbit { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
    .payment-result__card, .payment-result__orbit { animation: none; }
    .payment-result__actions .btn { transition: none; }
}
