/* =========================
   RIZTRIP COMPACT UI LAYER
   Global polish for page density and responsive layouts.
========================= */

:root{
    --app-bg:#f5f7fb;
    --app-surface:#ffffff;
    --app-surface-soft:#f8fafc;
    --app-ink:#142033;
    --app-muted:#647084;
    --app-line:#dce4ee;
    --app-brand:#0f766e;
    --app-brand-dark:#115e59;
    --app-shadow:0 8px 22px rgba(15,23,42,.07);
    --app-shadow-hover:0 14px 30px rgba(15,23,42,.10);
    --app-radius:14px;
}

html{
    scroll-padding-top:72px;
}

body{
    background:var(--app-bg);
    color:var(--app-ink);
    font-size:15px;
    line-height:1.55;
}

body,
button,
input,
select,
textarea{
    letter-spacing:0 !important;
}

h1,
h2,
h3,
h4,
h5,
h6{
    letter-spacing:0 !important;
    line-height:1.18;
}

p{
    line-height:1.62;
}

img{
    object-fit:cover;
}

.qris-image,
.payment-logo,
.bank-logo{
    object-fit:contain !important;
}

.container,
.container-modern{
    max-width:1180px !important;
}

.navbar,
.topbar-modern,
.admin-navbar,
.navbar-custom{
    box-shadow:0 6px 18px rgba(7,24,39,.13) !important;
}

.navbar-brand,
.brand-modern{
    font-size:1.45rem !important;
    line-height:1.15 !important;
}

.navbar .nav-link,
.nav-link-modern,
.riztrip-nav-btn{
    font-size:.9rem !important;
}

.navbar .btn,
.btn,
.btn-modern,
.submit-btn,
.copy-account-btn{
    min-height:40px;
    border-radius:10px !important;
    font-weight:750;
    line-height:1.2;
    padding:.58rem .9rem;
}

.btn-lg,
.btn-premium{
    min-height:42px;
    padding:.7rem 1rem !important;
    font-size:1rem !important;
}

.hero,
.hero-section,
.hero-modern,
.home-hero,
.admin-hero,
.history-hero,
.page-hero{
    min-height:auto !important;
    padding-top:64px !important;
    padding-bottom:54px !important;
}

.hero h1,
.hero-title,
.hero-modern h1,
.admin-hero h1,
.history-hero h1,
.page-hero h1{
    font-size:clamp(1.75rem, 3vw, 2.85rem) !important;
    line-height:1.14 !important;
    margin-bottom:14px !important;
}

.hero p,
.hero-text,
.hero-modern p,
.admin-hero p,
.history-hero p,
.page-hero p{
    font-size:clamp(.94rem, 1.1vw, 1.02rem) !important;
    max-width:680px;
    margin-bottom:0;
}

.hero-grid{
    gap:28px !important;
}

.hero-grid > *,
.hero-copy,
.hero-content,
.hero-title,
.hero-text,
.hero-actions{
    min-width:0;
}

.hero-badge,
.section-kicker,
.panel-chip,
.fc-chip,
.result-chip,
.status-badge,
.badge,
.badge-status{
    padding:7px 11px !important;
    font-size:.78rem !important;
    line-height:1.25 !important;
    border-radius:999px !important;
}

.section-padding,
.market-section,
.feature-section,
.help-section,
.help-section-modern,
.page-wrap,
.form-wrap,
.detail-wrap,
.history-wrap{
    padding-top:48px !important;
    padding-bottom:48px !important;
}

.py-5{
    padding-top:3rem !important;
    padding-bottom:3rem !important;
}

.py-4{
    padding-top:1.5rem !important;
    padding-bottom:1.5rem !important;
}

.section-head,
.market-head,
.trip-section-head,
.page-head{
    margin-bottom:22px !important;
}

.section-title,
.market-head h2,
.trip-section-head h2,
.feature-head h2,
.help-head h2,
.box-title{
    font-size:clamp(1.35rem, 2.2vw, 2rem) !important;
    line-height:1.2 !important;
    margin-bottom:8px !important;
}

.section-subtitle,
.page-subtitle,
.box-subtitle,
.muted-text{
    font-size:.94rem !important;
}

.trip-grid,
.feature-grid,
.meta-grid,
.info-grid,
.quick-stats,
.preview-grid{
    gap:16px !important;
}

.card,
.feature-card,
.trip-card,
.trip-card-modern,
.catalog-card,
.featured-trip-card,
.user-trip-card,
.history-card,
.detail-card,
.side-card,
.booking-card,
.help-card,
.section-box,
.table-box,
.form-box,
.summary-box,
.dashboard-card,
.stats-card,
.auth-card,
.recommend-box,
.recommend-box-modern,
.preview-card,
.filter-box,
.qris-box,
.payment-card,
.payment-option,
.help-cta,
.hero-card,
.floating-card,
.result-card{
    border-radius:var(--app-radius) !important;
    box-shadow:var(--app-shadow) !important;
}

.card:hover,
.feature-card:hover,
.trip-card:hover,
.trip-card-modern:hover,
.catalog-card:hover,
.featured-trip-card:hover,
.user-trip-card:hover,
.history-card:hover,
.payment-option:hover{
    box-shadow:var(--app-shadow-hover) !important;
}

.card-body,
.feature-card,
.trip-body,
.trip-content,
.catalog-card-body,
.featured-trip-body,
.user-trip-body,
.history-body,
.detail-body,
.side-card,
.booking-card,
.help-card,
.section-box,
.table-box,
.form-box,
.summary-box,
.dashboard-card .card-body,
.stats-card .card-body,
.recommend-box,
.recommend-box-modern,
.filter-box,
.preview-box,
.help-cta,
.hero-card,
.floating-card{
    padding:18px !important;
}

.trip-card-modern,
.catalog-card,
.featured-trip-card,
.user-trip-card,
.history-card,
.detail-card,
.card,
.stats-card,
.dashboard-card{
    overflow:hidden;
}

.trip-media,
.trip-thumb,
.trip-card img,
.trip-card-modern img,
.catalog-card img,
.featured-trip-card img,
.user-trip-card img,
.history-card img,
.detail-card img{
    height:210px !important;
    border-radius:0 !important;
}

.trip-title,
.trip-card-modern h3,
.catalog-card h3,
.featured-trip-card h3,
.user-trip-card h3,
.history-card h3,
.detail-card h2{
    font-size:1.08rem !important;
    line-height:1.3 !important;
    margin-bottom:8px !important;
}

.trip-description,
.trip-card-modern p,
.catalog-card p,
.featured-trip-card p,
.user-trip-card p,
.history-card p{
    font-size:.92rem !important;
}

.trip-meta,
.trip-footer,
.history-meta,
.meta-row,
.info-row,
.payment-head,
.payment-total,
.bank-detail-row,
.action-row,
.form-head{
    gap:10px !important;
}

.info-item,
.meta-item,
.summary-item,
.detail-panel,
.rating-box,
.metric-box,
.stat-item,
.benefit-item{
    border-radius:12px !important;
    padding:12px !important;
}

.form-label{
    margin-bottom:6px !important;
    font-size:.88rem !important;
    font-weight:700 !important;
}

.form-control,
.form-select,
textarea.form-control{
    min-height:42px;
    border-radius:10px !important;
    padding:.6rem .78rem !important;
    font-size:.94rem !important;
}

textarea.form-control{
    min-height:104px;
}

.input-wrap i{
    left:14px !important;
}

.input-wrap .form-control{
    padding-left:42px !important;
}

.table-responsive{
    border-radius:12px !important;
}

.table{
    margin-bottom:0 !important;
}

.table th,
.table td{
    padding:.65rem .72rem !important;
    font-size:.9rem !important;
    vertical-align:middle !important;
}

.table thead th{
    white-space:nowrap;
}

.stats-number,
.dashboard-number,
.summary-value,
.price-box{
    font-size:clamp(1.35rem, 2.4vw, 2rem) !important;
    line-height:1.18 !important;
}

.auth-shell,
.admin-auth,
.auth-section{
    min-height:100svh !important;
    padding:28px 16px !important;
}

.auth-container{
    width:min(100%, 980px) !important;
}

.auth-card{
    grid-template-columns:minmax(310px,.85fr) minmax(380px,1fr) !important;
    min-height:auto !important;
}

.auth-form-panel,
.auth-copy{
    padding:30px !important;
}

.auth-title,
.auth-form-panel h1{
    font-size:clamp(1.55rem, 2.8vw, 2.25rem) !important;
    line-height:1.12 !important;
}

.auth-lead,
.auth-form-panel p{
    font-size:.94rem !important;
}

.floating-contact{
    gap:8px !important;
}

.floating-contact a{
    width:42px !important;
    height:42px !important;
    font-size:1rem !important;
}

@media (min-width: 1200px){
    .trip-grid{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .trip-media,
    .trip-thumb,
    .trip-card img,
    .trip-card-modern img,
    .catalog-card img,
    .featured-trip-card img,
    .user-trip-card img,
    .history-card img{
        height:200px !important;
    }
}

@media (max-width: 991.98px){
    .container,
    .container-modern{
        width:100% !important;
        padding-left:18px !important;
        padding-right:18px !important;
    }

    .navbar-collapse{
        margin-top:10px;
        padding:10px 0 2px;
    }

    .navbar .btn,
    .riztrip-nav-btn{
        width:100%;
        justify-content:center;
    }

    .hero,
    .hero-section,
    .hero-modern,
    .home-hero,
    .admin-hero,
    .history-hero,
    .page-hero{
        padding-top:58px !important;
        padding-bottom:42px !important;
    }

    .hero-grid,
    .detail-section-grid,
    .booking-grid,
    .admin-grid{
        grid-template-columns:1fr !important;
    }

    .auth-card{
        grid-template-columns:1fr !important;
    }

    .auth-copy,
    .auth-visual,
    .auth-brand-panel{
        min-height:auto !important;
        padding:26px !important;
    }
}

@media (max-width: 767.98px){
    body{
        font-size:14.5px;
    }

    .section-padding,
    .market-section,
    .feature-section,
    .help-section,
    .help-section-modern,
    .page-wrap,
    .form-wrap,
    .detail-wrap,
    .history-wrap{
        padding-top:34px !important;
        padding-bottom:34px !important;
    }

    .py-5{
        padding-top:2rem !important;
        padding-bottom:2rem !important;
    }

    .trip-grid,
    .feature-grid,
    .meta-grid,
    .info-grid,
    .quick-stats,
    .preview-grid{
        grid-template-columns:1fr !important;
    }

    .trip-media,
    .trip-thumb,
    .trip-card img,
    .trip-card-modern img,
    .catalog-card img,
    .featured-trip-card img,
    .user-trip-card img,
    .history-card img,
    .detail-card img{
        height:190px !important;
    }

    .card-body,
    .feature-card,
    .trip-body,
    .trip-content,
    .catalog-card-body,
    .featured-trip-body,
    .user-trip-body,
    .history-body,
    .detail-body,
    .side-card,
    .booking-card,
    .help-card,
    .section-box,
    .table-box,
    .form-box,
    .summary-box,
    .dashboard-card .card-body,
    .stats-card .card-body,
    .recommend-box,
    .recommend-box-modern,
    .filter-box,
    .preview-box,
    .help-cta,
    .hero-card,
    .floating-card{
        padding:16px !important;
    }

    .d-flex.form-head,
    .payment-head,
    .payment-total,
    .bank-detail-row,
    .action-row,
    .history-card .d-flex,
    .table-box > .d-flex{
        align-items:stretch !important;
        flex-direction:column !important;
    }

    .d-flex.form-head .btn,
    .table-box > .d-flex .btn,
    .action-wrap .btn{
        width:100%;
    }

    .form-control,
    .form-select,
    textarea.form-control{
        font-size:16px !important;
    }

    .table th,
    .table td{
        white-space:nowrap;
        font-size:.84rem !important;
    }

    .auth-shell,
    .admin-auth,
    .auth-section{
        padding:18px 12px !important;
    }

    .auth-form-panel,
    .auth-copy,
    .auth-visual,
    .auth-brand-panel{
        padding:22px !important;
    }
}

@media (max-width: 575.98px){
    .container,
    .container-modern{
        padding-left:14px !important;
        padding-right:14px !important;
    }

    .navbar-brand,
    .brand-modern{
        font-size:1.28rem !important;
    }

    .hero,
    .hero-section,
    .hero-modern,
    .home-hero,
    .admin-hero,
    .history-hero,
    .page-hero{
        padding-top:48px !important;
        padding-bottom:34px !important;
    }

    .hero h1,
    .hero-title,
    .hero-modern h1,
    .admin-hero h1,
    .history-hero h1,
    .page-hero h1{
        font-size:1.58rem !important;
    }

    .section-title,
    .market-head h2,
    .trip-section-head h2,
    .feature-head h2,
    .help-head h2,
    .box-title{
        font-size:1.28rem !important;
    }

    .card,
    .feature-card,
    .trip-card,
    .trip-card-modern,
    .catalog-card,
    .featured-trip-card,
    .user-trip-card,
    .history-card,
    .detail-card,
    .side-card,
    .booking-card,
    .help-card,
    .section-box,
    .table-box,
    .form-box,
    .summary-box,
    .dashboard-card,
    .stats-card,
    .auth-card,
    .recommend-box,
    .recommend-box-modern,
    .preview-card,
    .filter-box,
    .qris-box,
    .payment-card,
    .payment-option,
    .help-cta,
    .hero-card,
    .floating-card,
    .result-card{
        border-radius:12px !important;
    }

    .trip-media,
    .trip-thumb,
    .trip-card img,
    .trip-card-modern img,
    .catalog-card img,
    .featured-trip-card img,
    .user-trip-card img,
    .history-card img,
    .detail-card img{
        height:170px !important;
    }

    .btn,
    .btn-modern,
    .submit-btn,
    .copy-account-btn{
        min-height:38px;
        padding:.56rem .78rem !important;
        font-size:.9rem !important;
    }

    .auth-copy,
    .auth-visual,
    .auth-brand-panel{
        display:none !important;
    }

    .auth-form-panel{
        padding:20px !important;
    }

    .floating-contact{
        left:50% !important;
        right:auto !important;
        bottom:max(10px, env(safe-area-inset-bottom)) !important;
        display:flex !important;
        transform:translateX(-50%);
        gap:7px !important;
        padding:6px !important;
        border-radius:999px !important;
        background:rgba(7,24,39,.58);
        backdrop-filter:blur(12px);
        box-shadow:0 10px 26px rgba(7,24,39,.22);
    }

    .floating-contact a{
        width:38px !important;
        height:38px !important;
        box-shadow:none !important;
    }

    .hero-title,
    .hero-text,
    .hero-actions,
    .section-title,
    .section-subtitle{
        max-width:100% !important;
    }
}
