
/* Custom Typography for Powell River Real Estate Site */

/* Base font size improvements with maximum specificity */
html body {
    font-size: 22px !important;
    line-height: 1.8em !important;
}

body * {
    font-size: inherit !important;
}

/* Override any smaller text globally */
* {
    font-size: inherit !important;
}

/* Headings improvements */
h1 {
    font-size: 4rem !important;
    line-height: 1.2 !important;
    margin-bottom: 30px !important;
}

h2 {
    font-size: 3.5rem !important;
    line-height: 1.3 !important;
    margin-bottom: 25px !important;
}

h3 {
    font-size: 3rem !important;
    line-height: 1.4 !important;
    margin-bottom: 22px !important;
}

h4 {
    font-size: 2.5rem !important;
    line-height: 1.4 !important;
    margin-bottom: 20px !important;
}

h5 {
    font-size: 2rem !important;
    line-height: 1.5 !important;
    margin-bottom: 18px !important;
}

h6 {
    font-size: 1.8rem !important;
    line-height: 1.5 !important;
    margin-bottom: 16px !important;
}

/* Paragraph text improvements */
p {
    font-size: 1.3rem !important;
    line-height: 1.9 !important;
    margin-bottom: 20px !important;
    color: #333 !important;
}

/* Navigation improvements */
.navbar-nav > li > a {
    font-size: 1.3rem !important;
    padding: 20px 28px !important;
    font-weight: 600 !important;
}

/* Button text improvements */
.btn,
.button,
.modern-btn,
input[type="submit"],
input[type="button"] {
    font-size: 1.2rem !important;
    padding: 15px 30px !important;
    font-weight: 600 !important;
}

.view-property-btn {
    font-size: 1.1rem !important;
    padding: 14px 28px !important;
    font-weight: 600 !important;
}

/* Hero section text improvements */
.hero-title {
    font-size: 7rem !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
}

.hero-subtitle {
    font-size: 1.6rem !important;
    line-height: 1.6 !important;
}

.section-title {
    font-size: 3.5rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

.section-subtitle {
    font-size: 1.4rem !important;
    line-height: 1.6 !important;
}

.lifestyle-heading {
    font-size: 1.8rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

.lifestyle-text {
    font-size: 1.3rem !important;
    line-height: 1.8 !important;
}

.feature-title {
    font-size: 1.8rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

.feature-description {
    font-size: 1.3rem !important;
    line-height: 1.7 !important;
}

.cta-title {
    font-size: 3.5rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

.cta-subtitle {
    font-size: 1.4rem !important;
    line-height: 1.6 !important;
}

/* Property card text improvements */
.property-card h3,
.property-card .property-price {
    font-size: 2.6rem !important;
    font-weight: 700 !important;
}

.property-card .property-address {
    font-size: 1.6rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

.property-card p,
.property-card .property-location {
    font-size: 1.4rem !important;
    line-height: 1.6 !important;
}

/* Form inputs improvements */
input[type="text"],
input[type="email"],
input[type="tel"],
textarea,
select {
    font-size: 1rem !important;
    padding: 12px 15px !important;
    line-height: 1.5 !important;
}

/* Footer text improvements */
footer {
    font-size: 1rem !important;
    color: #D1D5DB !important;
}

footer h4,
footer h5 {
    font-size: 1.3rem !important;
    margin-bottom: 15px !important;
    color: #F3F4F6 !important;
}

footer p,
footer li {
    font-size: 1rem !important;
    line-height: 1.7 !important;
    color: #D1D5DB !important;
}

footer a {
    color: #E5E7EB !important;
}

footer a:hover {
    color: #DC2626 !important;
}

/* Breadcrumb improvements */
.breadcrumb li {
    font-size: 1rem !important;
}

/* List improvements */
ul li,
ol li {
    font-size: 1.1rem !important;
    line-height: 1.7 !important;
    margin-bottom: 8px !important;
}

/* Table text improvements */
table {
    font-size: 1rem !important;
}

th {
    font-size: 1.1rem !important;
    font-weight: 600 !important;
}

td {
    font-size: 1rem !important;
    line-height: 1.6 !important;
}

/* Dropdown menu improvements */
.dropdown-menu li a {
    font-size: 1rem !important;
    padding: 12px 20px !important;
}

/* Alert and notification improvements */
.alert {
    font-size: 1rem !important;
    padding: 15px 20px !important;
}

/* Label improvements */
label {
    font-size: 1rem !important;
    font-weight: 600 !important;
    margin-bottom: 8px !important;
}

/* Quote/blockquote improvements */
blockquote {
    font-size: 1.2rem !important;
    line-height: 1.7 !important;
}

/* Override common small text elements to be more readable */
small,
.small,
.caption,
.meta,
.post-meta,
.post-meta *,
.breadcrumb,
.breadcrumb li,
.breadcrumb li a,
span,
div,
td,
th {
    font-size: 1.1rem !important;
    line-height: 1.6 !important;
}

/* Specific overrides for elements that tend to be small */
.navbar-nav > li > a,
nav a,
header a,
header li,
header li a {
    font-size: 1.4rem !important;
    font-weight: 600 !important;
}

/* Content area text improvements */
#content,
#content *,
section,
section *,
article,
article *,
.container,
.container * {
    font-size: inherit !important;
    line-height: 1.7 !important;
}

/* Ensure all links are readable */
a,
a *,
.link,
.btn,
.button {
    font-size: 1.3rem !important;
    line-height: 1.5 !important;
}

/* Caption text */
.caption,
.flex-caption {
    font-size: 1rem !important;
    line-height: 1.6 !important;
}

.flex-caption h3 {
    font-size: 1.5rem !important;
    margin-bottom: 10px !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    html body {
        font-size: 20px !important;
    }
    
    /* Ensure mobile text is never too small */
    * {
        font-size: inherit !important;
        min-font-size: 18px !important;
    }
    
    h1 {
        font-size: 3.2rem !important;
    }
    
    h2 {
        font-size: 2.8rem !important;
    }
    
    h3 {
        font-size: 2.4rem !important;
    }
    
    .hero-title,
    .flex-caption h3:first-child,
    .flexslider .flex-caption h3,
    #featured .flex-caption h3 {
        font-size: 4.5rem !important;
    }
    
    .hero-subtitle {
        font-size: 1.4rem !important;
    }
    
    .section-title {
        font-size: 3rem !important;
    }
    
    .property-card h3,
    .property-card .property-price {
        font-size: 2.2rem !important;
    }
    
    .navbar-nav > li > a {
        font-size: 1.2rem !important;
        padding: 18px 24px !important;
    }
    
    p {
        font-size: 1.2rem !important;
    }
}

@media (max-width: 480px) {
    html body {
        font-size: 19px !important;
    }
    
    h1 {
        font-size: 2.8rem !important;
    }
    
    h2 {
        font-size: 2.4rem !important;
    }
    
    h3 {
        font-size: 2rem !important;
    }
    
    .hero-title,
    .flex-caption h3:first-child,
    .flexslider .flex-caption h3,
    #featured .flex-caption h3 {
        font-size: 3.5rem !important;
    }
    
    .hero-subtitle {
        font-size: 1.3rem !important;
    }
    
    p {
        font-size: 1.2rem !important;
    }
}

/* Final overrides to ensure no text is too small */
.container *,
#wrapper *,
section *,
article *,
div *,
span *,
.col-lg-4 *,
.col-md-4 *,
.col-sm-4 *,
.row * {
    font-size: inherit !important;
    line-height: inherit !important;
}

/* Minimum font size enforcement */
* {
    min-font-size: 16px !important;
}

/* Property card text - ensure it's large enough */
.property-card,
.property-card *,
.item-thumbs,
.item-thumbs *,
.post-meta,
.post-meta *,
.widget,
.widget * {
    font-size: 1.2rem !important;
    line-height: 1.6 !important;
}

/* Specific targeting for Curtis Yungen text and prominent content */
.hero-content,
.hero-content *,
.main-content,
.main-content *,
.intro-text,
.intro-text *,
.tagline,
.tagline *,
.slogan,
.slogan *,
.caption h3,
.flex-caption h3,
.flexslider .caption,
.flexslider .caption *,
.hero-banner,
.hero-banner *,
.banner-text,
.banner-text *,
.slide-content,
.slide-content *,
.slider-text,
.slider-text * {
    font-size: 2.2rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

/* Target any text that mentions Curtis Yungen specifically - Make this the largest text on site */
*[class*="curtis"] *,
*[class*="realtor"] *,
*[class*="agent"] *,
.professional-intro,
.professional-intro *,
.agent-intro,
.agent-intro *,
.realtor-intro,
.realtor-intro *,
*:contains("Curtis Yungen"),
*:contains("Curtis Yungen Knows"),
*:contains("Powell River Real Estate") {
    font-size: 4.5rem !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
}

/* Slider and carousel text enhancements */
.carousel-caption,
.carousel-caption *,
.slider-caption,
.slider-caption *,
.slide-title,
.slide-title *,
.slide-description,
.slide-description * {
    font-size: 2.8rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7) !important;
}

/* Featured content text */
.featured-content,
.featured-content *,
.featured-text,
.featured-text *,
.highlight-text,
.highlight-text *,
.emphasis,
.emphasis * {
    font-size: 2.4rem !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
}

/* Primary hero text - Curtis Yungen main heading */
.flex-caption h3:first-child,
.caption h3:first-child,
.slider-text h3:first-child,
.slide-content h3:first-child,
.hero-banner h3:first-child,
.flexslider h3:first-child,
.flexslider .flex-caption h3,
.flexslider .caption h3,
#featured .flexslider .flex-caption h3,
#featured .flex-caption h3,
.main-heading,
.primary-heading,
.hero-main-title,
.hero-title {
    font-size: 8rem !important;
    font-weight: 900 !important;
    line-height: 1.0 !important;
    text-transform: uppercase !important;
    letter-spacing: 3px !important;
    margin-bottom: 30px !important;
    text-shadow: 3px 3px 6px rgba(0,0,0,0.8) !important;
    color: white !important;
}

/* Additional flexslider specific targeting */
.flexslider .slides li .flex-caption h3,
.flexslider .slides .flex-caption h3,
#featured .flexslider .slides .flex-caption h3,
#featured .flexslider .flex-caption h3 {
    font-size: 8rem !important;
    font-weight: 900 !important;
    line-height: 1.0 !important;
    text-transform: uppercase !important;
    letter-spacing: 3px !important;
    margin-bottom: 30px !important;
    text-shadow: 3px 3px 6px rgba(0,0,0,0.8) !important;
    color: white !important;
}

/* Maximum priority override for any slider text */
div.flexslider div.flex-caption h3,
section#featured div.flexslider div.flex-caption h3 {
    font-size: 8rem !important;
    font-weight: 900 !important;
    line-height: 1.0 !important;
    text-transform: uppercase !important;
    letter-spacing: 3px !important;
    margin-bottom: 30px !important;
    text-shadow: 3px 3px 6px rgba(0,0,0,0.8) !important;
    color: white !important;
}

/* Taglines should be smaller than main heading */
.tagline,
.tagline *,
.sub-heading,
.sub-title,
.hero-subtitle,
.flex-caption h3:not(:first-child),
.caption h3:not(:first-child) {
    font-size: 1.8rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    letter-spacing: 1px !important;
}
