@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800;900&family=Playfair+Display:wght@700;800;900&display=swap');

/* === CHT HOMEPAGE PREMIUM RICH TYPOGRAPHY v57 === */

:root{
    --cht-body-font: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --cht-display-font: "Playfair Display", Georgia, serif;

    --cht-ink: #071a33;
    --cht-navy: #10284d;
    --cht-royal: #0e63ce;
    --cht-sky: #2b8cff;
    --cht-orange: #ff6b1a;
    --cht-gold: #f5b84b;
    --cht-muted: #61738c;
}

/* Premium base font */
html,
body{
    font-family: var(--cht-body-font) !important;
    color: var(--cht-ink);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body p,
body li,
body a,
body span,
body label,
body input,
body select,
body textarea,
body button{
    font-family: var(--cht-body-font) !important;
}

/* Keep headings polished */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6{
    text-wrap: balance;
    overflow-wrap: break-word;
}

/* Premium dark hero overlay */
.banner-section,
.hero-section,
.hero-banner,
.home-hero,
.main-banner,
.banner-wrap{
    position: relative;
    isolation: isolate;
}

.banner-section::before,
.hero-section::before,
.hero-banner::before,
.home-hero::before,
.main-banner::before,
.banner-wrap::before{
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        radial-gradient(circle at 18% 22%, rgba(255,184,75,.20) 0%, rgba(255,184,75,0) 32%),
        linear-gradient(90deg, rgba(4,15,32,.84) 0%, rgba(6,24,50,.62) 46%, rgba(6,24,50,.20) 100%),
        linear-gradient(180deg, rgba(4,15,32,.25) 0%, rgba(4,15,32,.48) 100%);
}

.banner-section > *,
.hero-section > *,
.hero-banner > *,
.home-hero > *,
.main-banner > *,
.banner-wrap > *{
    position: relative;
    z-index: 1;
}

/* Hero title: rich luxury look */
body h1,
.banner-content h1,
.hero-content h1,
.home-hero h1,
.hero-section h1,
.hero-banner h1,
.main-banner h1,
.banner-wrap h1{
    font-family: var(--cht-display-font) !important;
    font-weight: 900 !important;
    letter-spacing: -0.052em !important;
    line-height: 1.02 !important;
    color: #fff7e8 !important;
    -webkit-text-fill-color: #fff7e8 !important;
    text-shadow:
        0 6px 30px rgba(0,0,0,.78),
        0 2px 5px rgba(0,0,0,.55),
        0 0 22px rgba(245,184,75,.18);
}

/* Hero paragraph */
.banner-content p,
.hero-content p,
.home-hero p,
.hero-section p,
.hero-banner p,
.main-banner p,
.banner-wrap p{
    color: rgba(255,255,255,.95) !important;
    font-weight: 600 !important;
    line-height: 1.62 !important;
    text-shadow: 0 3px 16px rgba(0,0,0,.52);
}

/* Section headings: premium gradient restored */
.section-heading h2,
.section-header h2,
.section-title h2,
.sec-title h2,
.title-section h2,
.home-section-title h2,
body main > section h2{
    font-family: var(--cht-display-font) !important;
    font-weight: 900 !important;
    letter-spacing: -0.045em !important;
    line-height: 1.08 !important;
    background: linear-gradient(92deg, #071a33 0%, #104f9e 48%, #ff6b1a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
}

/* Small premium section badge */
.section-subtitle,
.section-tag,
.title-badge,
.sec-subtitle,
.sub-title{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: var(--cht-body-font) !important;
    color: #0e63ce !important;
    background: linear-gradient(135deg, rgba(14,99,206,.10), rgba(255,107,26,.10)) !important;
    border: 1px solid rgba(14,99,206,.14) !important;
    border-radius: 999px;
    padding: 5px 13px;
    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: .09em !important;
    text-transform: uppercase !important;
}

/* Paragraph under headings */
.section-heading p,
.section-header p,
.section-title p,
.sec-title p,
.title-section p{
    color: var(--cht-muted) !important;
    font-weight: 500 !important;
    line-height: 1.65 !important;
}

/* Service and package cards richer */
.card,
.tour-card,
.package-card,
.hotel-card,
.destination-card{
    border-color: rgba(14,99,206,.08) !important;
    box-shadow: 0 14px 34px rgba(11,31,61,.08) !important;
}

/* Card headings */
.card h3,
.card h4,
.tour-card h3,
.tour-card h4,
.package-card h3,
.package-card h4,
.hotel-card h3,
.hotel-card h4,
.destination-card h3,
.destination-card h4,
.card-title,
.tour-title,
.package-title,
.service-title{
    font-family: var(--cht-body-font) !important;
    font-weight: 900 !important;
    color: #10284d !important;
    -webkit-text-fill-color: #10284d !important;
    letter-spacing: -0.025em !important;
    line-height: 1.23 !important;
}

.card p,
.tour-card p,
.package-card p,
.hotel-card p,
.destination-card p{
    color: #61738c !important;
    line-height: 1.55 !important;
}

/* Orange / price / action richness */
.btn,
.btn-primary,
.theme-btn,
.orange-btn,
a[class*="btn"],
button[type="submit"]{
    font-family: var(--cht-body-font) !important;
    font-weight: 900 !important;
    letter-spacing: -0.01em !important;
}

/* FAQ should remain clean, not decorative */
.accordion h2,
.accordion-header,
.accordion-button,
.accordion h2 button{
    font-family: var(--cht-body-font) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    letter-spacing: -0.01em !important;
    color: #10284d !important;
    -webkit-text-fill-color: #10284d !important;
    background: transparent !important;
    text-shadow: none !important;
}

/* CTA heading white */
.cta h2,
.cta-section h2,
.call-to-action h2,
.ready-section h2,
.footer-cta h2{
    font-family: var(--cht-display-font) !important;
    color: #fff7e8 !important;
    -webkit-text-fill-color: #fff7e8 !important;
    text-shadow: 0 4px 22px rgba(0,0,0,.45);
}

/* Mobile premium polish */
@media (max-width: 767px){

    body{
        font-size: 14px !important;
    }

    .banner-section::before,
    .hero-section::before,
    .hero-banner::before,
    .home-hero::before,
    .main-banner::before,
    .banner-wrap::before{
        background:
            radial-gradient(circle at 18% 18%, rgba(255,184,75,.22) 0%, rgba(255,184,75,0) 36%),
            linear-gradient(180deg, rgba(4,15,32,.78) 0%, rgba(6,24,50,.62) 48%, rgba(4,15,32,.76) 100%),
            linear-gradient(90deg, rgba(4,15,32,.78) 0%, rgba(4,15,32,.44) 100%);
    }

    body h1,
    .banner-content h1,
    .hero-content h1,
    .home-hero h1,
    .hero-section h1,
    .hero-banner h1,
    .main-banner h1,
    .banner-wrap h1{
        font-family: var(--cht-display-font) !important;
        font-size: clamp(33px, 10vw, 42px) !important;
        font-weight: 900 !important;
        line-height: 1.02 !important;
        letter-spacing: -0.055em !important;
        color: #fff7e8 !important;
        -webkit-text-fill-color: #fff7e8 !important;
        margin-bottom: 12px !important;
        max-width: 100% !important;
        text-shadow:
            0 6px 32px rgba(0,0,0,.86),
            0 2px 6px rgba(0,0,0,.62),
            0 0 20px rgba(245,184,75,.22);
    }

    .banner-content,
    .hero-content,
    .home-hero .container,
    .hero-section .container,
    .hero-banner .container,
    .main-banner .container,
    .banner-wrap .container{
        text-align: left !important;
    }

    .banner-content p,
    .hero-content p,
    .home-hero p,
    .hero-section p,
    .hero-banner p,
    .main-banner p,
    .banner-wrap p{
        font-size: 14.5px !important;
        line-height: 1.55 !important;
        font-weight: 600 !important;
        max-width: 96% !important;
        color: rgba(255,255,255,.96) !important;
    }

    .section-heading,
    .section-header,
    .section-title,
    .sec-title,
    .title-section{
        text-align: center !important;
        margin-bottom: 20px !important;
    }

    .section-heading h2,
    .section-header h2,
    .section-title h2,
    .sec-title h2,
    .title-section h2,
    .home-section-title h2,
    body main > section h2{
        font-family: var(--cht-display-font) !important;
        font-size: clamp(25px, 7.3vw, 32px) !important;
        line-height: 1.08 !important;
        letter-spacing: -0.048em !important;
        margin-bottom: 8px !important;
        background: linear-gradient(92deg, #071a33 0%, #104f9e 50%, #ff6b1a 100%);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent !important;
        -webkit-text-fill-color: transparent !important;
    }

    .section-heading p,
    .section-header p,
    .section-title p,
    .sec-title p,
    .title-section p{
        font-size: 13.5px !important;
        line-height: 1.55 !important;
        max-width: 94% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .section-subtitle,
    .section-tag,
    .title-badge,
    .sec-subtitle,
    .sub-title{
        font-size: 10.5px !important;
        padding: 4px 11px !important;
        margin-bottom: 8px !important;
    }

    .card h3,
    .card h4,
    .tour-card h3,
    .tour-card h4,
    .package-card h3,
    .package-card h4,
    .hotel-card h3,
    .hotel-card h4,
    .destination-card h3,
    .destination-card h4,
    .card-title,
    .tour-title,
    .package-title,
    .service-title{
        font-size: 14.8px !important;
        line-height: 1.25 !important;
        font-weight: 900 !important;
        letter-spacing: -0.025em !important;
    }

    .card p,
    .tour-card p,
    .package-card p,
    .hotel-card p,
    .destination-card p{
        font-size: 12.8px !important;
        line-height: 1.48 !important;
    }

    .accordion h2,
    .accordion-header,
    .accordion-button,
    .accordion h2 button{
        font-size: 13.5px !important;
        line-height: 1.35 !important;
    }
}

@media (max-width: 380px){
    body h1,
    .banner-content h1,
    .hero-content h1,
    .home-hero h1,
    .hero-section h1,
    .hero-banner h1,
    .main-banner h1,
    .banner-wrap h1{
        font-size: 31px !important;
    }

    .section-heading h2,
    .section-header h2,
    .section-title h2,
    .sec-title h2,
    .title-section h2,
    .home-section-title h2,
    body main > section h2{
        font-size: 24px !important;
    }
}
