/* 
====================================================================
    BELLA RIVA — CUSTOM TYPOGRAPHY OVERRIDE
    Font: Josefin Sans (Fully applied for Heading & Body)
====================================================================
*/

:root {
    --heading-font: 'Oswald', sans-serif;
    --body-font: 'Josefin Sans', sans-serif;
}

/* Base Body Override */
body {
    font-family: var(--body-font);
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
}

/* Headings Override */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--heading-font);
    font-weight: 600; /* Semi-bold for high-end feel */
    letter-spacing: 0.02em;
}

h1 { font-size: 56px; line-height: 1.2; }
h2 { font-size: 48px; line-height: 1.25; }
h3 { font-size: 36px; line-height: 1.3; }
h4 { font-size: 32px; line-height: 1.35; }
h5 { font-size: 24px; line-height: 1.4; }
h6 { font-size: 20px; line-height: 1.4; }

/* Global Typography Elements */
p, .normal__text p {
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 1.7; /* Josefin Sans needs a bit of breathing room */
    font-weight: 400;
    letter-spacing: 0.01em;
}

/* Subtitle Decoration */
.sub____title, 
.sub____title span {
    font-family: var(--heading-font) !important;
    font-style: italic;
    font-weight: 500;
    font-size: 24px;
    line-height: 1.3;
    text-transform: none;
    letter-spacing: 0.03em; /* Slightly reduced because Josefin is wide */
}

/* Section Title Hierarchy */
.main____title h1 {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 48px;
    text-transform: capitalize;
}

/* Header & Menu */
.main-menu .navigation > li > a {
    font-family: var(--body-font);
    font-size: 15px; /* Adjusted down slightly as Josefin uppercase is large */
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em; /* Reduced from 0.1em */
}

.sticky-header .main-menu .navigation > li {
    padding: 25px 0px !important;
}

/* Mobile Menu */
.mobile-menu .navigation li > a {
    font-family: var(--body-font);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Hero / Banner Section */
.banner__top__text h1 {
    font-family: var(--heading-font);
    font-weight: 300;
    letter-spacing: 0.2em; /* Reduced from 0.3em */
    font-size: 80px;
    opacity: 0.15;
}

.banner-carousel .content-box h1 {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 64px; /* Reduced slightly to prevent line breaks */
    line-height: 1.2;
}

.banner-carousel .content-box p {
    font-size: 18px;
    font-weight: 400;
    max-width: 600px;
    line-height: 1.6;
}

/* Buttons */
.theme-btn-one, 
.theme-btn-two {
    font-family: var(--body-font);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em; /* Reduced from 0.15em */
    font-size: 14px;
    transition: all 0.3s ease;
}

/* Form Elements */
input, 
button, 
select, 
textarea,
.nice-select,
.nice-select .current,
.nice-select .list li {
    font-family: var(--body-font);
    font-size: 15px;
}

/* Footer Typography */
.main-footer .footer__title .sub____title {
    font-size: 20px;
    margin-bottom: 5px;
}

.footer___title__text p {
    font-family: var(--body-font);
    font-size: 15px;
}

.footer__menu ul li a {
    font-family: var(--body-font);
    font-weight: 500;
    text-transform: capitalize;
    letter-spacing: 0.02em;
}

/* Tab & Accordion */
.tab___all {
    font-family: var(--body-font);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.accordion-box .block .acc-btn {
    font-family: var(--heading-font);
    font-weight: 600;
}

/* News / Blog Section */
.news-block-one .lower-content h4 a {
    font-family: var(--heading-font);
    font-weight: 600;
    font-size: 26px; /* Adjusted for neatness */
}

.news-block-one .lower-content .short__des p {
    font-size: 15px;
}

/* Special Accents */
span {
    font-family: inherit; /* Prevent theme-color spans from breaking font-family */
}

/* 
====================================================================
    INTERIOR PAGES SPECIFIC OVERRIDES
    About, Menu, Booking, Contact, Service
====================================================================
*/

/* Page Title Banner */
.page-title .title h1 {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 56px;
    letter-spacing: 0.05em;
    text-transform: capitalize;
}

/* About / Team Section */
.team__block__bottom h5,
.team___info h5 {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 24px;
    margin-bottom: 5px;
}
.team__block__bottom span,
.team___info span {
    font-family: var(--body-font);
    font-size: 14px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

/* Menu Page */
.name__price__shrtd li .name__price li {
    font-family: var(--heading-font);
    font-weight: 600;
    font-size: 22px;
}
.name__price__shrtd li p {
    font-family: var(--body-font);
    font-size: 15px;
    line-height: 1.5;
}

/* Service Page */
.service-block-one .inner-box h4 {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 24px;
}
.service-block-one .inner-box h4 a {
    font-family: inherit;
}

/* Contact & Sidebar */
.contact-info h4,
.sidebar-text h4,
.sidebar-from h4 {
    font-family: var(--heading-font);
    font-weight: 600;
    font-size: 24px;
    margin-bottom: 15px;
}
.contact-info ul li,
.contact-info ul li a {
    font-family: var(--body-font);
    font-size: 16px;
}

/* Correction for layout overflow or tight spaces */
.main-menu .navigation > li {
    margin: 0px 15px; /* Slightly tighter margin to prevent nav wrap with wide font */
}
