/**
 * Site-wide typography — authoritative match for html/style.css.
 * Loads last; overrides polish.css / page templates.
 */

/* --- Scale tokens (html/style.css) --- */
:root{
--oc365-html-text-2xs:0.75rem;
--oc365-html-text-xs:0.8rem;
--oc365-html-text-sm:0.85rem;
--oc365-html-text-base:0.95rem;
--oc365-html-text-md:1.1rem;
--oc365-html-text-lg:1.15rem;
--oc365-html-text-xl:1.5rem;
--oc365-html-text-2xl:1.85rem;
--oc365-html-text-3xl:2.5rem;
--oc365-html-text-hero:3.25rem;
--oc365-html-weight-medium:500;
--oc365-html-weight-semibold:600;
--oc365-html-weight-bold:700;
--oc365-html-weight-extrabold:800;
--oc365-html-tracking-tight:-0.02em;
--oc365-html-tracking-wide:0.05em;
--oc365-html-tracking-wider:0.1em;
--oc365-html-leading-body:1.6;
--oc365-html-leading-heading:1.25;
--oc365-html-leading-hero:1.15;
}

/* --- Base --- */
body.oc365-html-typography,
body.oc365-html-typography .site-content{
font-family:var(--oc365-font-body);
font-size:1rem;
line-height:var(--oc365-html-leading-body);
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
}

body.oc365-html-typography button,
body.oc365-html-typography input,
body.oc365-html-typography select,
body.oc365-html-typography textarea{
font-family:inherit;
font-size:inherit;
}

body.oc365-html-typography h1,
body.oc365-html-typography h2,
body.oc365-html-typography h3,
body.oc365-html-typography h4,
body.oc365-html-typography h5,
body.oc365-html-typography h6{
font-family:var(--oc365-font-heading);
font-weight:var(--oc365-html-weight-bold);
letter-spacing:var(--oc365-html-tracking-tight);
line-height:var(--oc365-html-leading-heading);
color:var(--oc365-color-text, #111827);
}

/* --- Header --- */
body.oc365-html-typography .site-header .logo:not(:has(img)),
body.oc365-html-typography .site-header a.custom-logo-link.logo:not(:has(img)),
body.oc365-html-typography .site-footer .footer-logo:not(:has(img)){
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-xl);
font-weight:var(--oc365-html-weight-extrabold);
letter-spacing:var(--oc365-html-tracking-tight);
line-height:1.2;
}

body.oc365-html-typography .site-header .nav-link{
font-family:var(--oc365-font-heading);
font-weight:var(--oc365-html-weight-medium);
font-size:var(--oc365-html-text-base);
letter-spacing:normal;
line-height:1.4;
}

body.oc365-html-typography .site-header .btn,
body.oc365-html-typography .site-header nav.nav-menu > a.btn{
font-family:var(--oc365-font-heading);
font-weight:var(--oc365-html-weight-semibold);
font-size:var(--oc365-html-text-base);
}

/* --- Buttons (.btn) --- */
body.oc365-html-typography .btn,
body.oc365-html-typography .load-more-btn,
body.oc365-html-typography .apply-btn,
body.oc365-html-typography .site-content .form-actions .submit-btn,
body.oc365-html-typography .submit-listing-form .submit-btn,
body.oc365-html-typography .contact-form .submit-btn,
body.oc365-html-typography .contact-card__button,
body.oc365-html-typography .back-home{
font-family:var(--oc365-font-heading);
font-weight:var(--oc365-html-weight-semibold);
font-size:var(--oc365-html-text-base);
letter-spacing:normal;
line-height:1.2;
}

/* --- Hero --- */
body.oc365-html-typography .hero-overline,
body.oc365-html-typography .hero__eyebrow,
body.oc365-html-typography .page-contact__eyebrow,
body.oc365-html-typography .page-submit__eyebrow,
body.oc365-html-typography .page-inner__eyebrow,
body.oc365-html-typography .section-header__eyebrow{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-sm);
font-weight:var(--oc365-html-weight-bold);
letter-spacing:var(--oc365-html-tracking-wider);
text-transform:uppercase;
line-height:1.4;
}

body.oc365-html-typography .hero-title,
body.oc365-html-typography .hero h1.hero-title{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-hero);
font-weight:var(--oc365-html-weight-extrabold);
letter-spacing:var(--oc365-html-tracking-tight);
line-height:var(--oc365-html-leading-hero);
}

body.oc365-html-typography .hero-description,
body.oc365-html-typography .hero__lead{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-lg);
font-weight:400;
letter-spacing:normal;
line-height:var(--oc365-html-leading-body);
}

/* --- Stats --- */
body.oc365-html-typography .stat-number{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-xl);
font-weight:var(--oc365-html-weight-extrabold);
line-height:1.1;
letter-spacing:var(--oc365-html-tracking-tight);
}

body.oc365-html-typography .stat-label{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-sm);
font-weight:var(--oc365-html-weight-medium);
letter-spacing:normal;
line-height:1.4;
}

/* --- Section headers --- */
body.oc365-html-typography .section-title,
body.oc365-html-typography .section-header__title{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-2xl);
font-weight:var(--oc365-html-weight-extrabold);
letter-spacing:var(--oc365-html-tracking-tight);
line-height:var(--oc365-html-leading-heading);
}

body.oc365-html-typography .section-link{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-base);
font-weight:var(--oc365-html-weight-semibold);
letter-spacing:normal;
line-height:1.4;
}

body.oc365-html-typography .section-header__lead{
font-family:var(--oc365-font-body);
font-size:1rem;
font-weight:400;
letter-spacing:normal;
line-height:1.55;
}

body.oc365-html-typography .results-count{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-sm);
font-weight:400;
letter-spacing:normal;
line-height:1.4;
}

/* --- Featured cards --- */
body.oc365-html-typography .featured-title,
body.oc365-html-typography a.featured-card .featured-title{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-md);
font-weight:var(--oc365-html-weight-bold);
line-height:1.4;
letter-spacing:var(--oc365-html-tracking-tight);
}

body.oc365-html-typography .tag-badge{
font-size:var(--oc365-html-text-2xs);
font-weight:var(--oc365-html-weight-bold);
letter-spacing:var(--oc365-html-tracking-wide);
text-transform:uppercase;
line-height:1.2;
}

body.oc365-html-typography .date-day{
font-family:var(--oc365-font-heading);
font-size:2.25rem;
font-weight:var(--oc365-html-weight-extrabold);
line-height:1;
letter-spacing:var(--oc365-html-tracking-tight);
}

body.oc365-html-typography .date-month{
font-size:var(--oc365-html-text-2xs);
font-weight:var(--oc365-html-weight-bold);
letter-spacing:var(--oc365-html-tracking-wide);
text-transform:uppercase;
line-height:1.2;
}

body.oc365-html-typography .meta-loc,
body.oc365-html-typography .meta-value,
body.oc365-html-typography .card-meta-bottom{
font-size:var(--oc365-html-text-sm);
font-weight:var(--oc365-html-weight-medium);
letter-spacing:normal;
}

body.oc365-html-typography .meta-value{
font-weight:var(--oc365-html-weight-semibold);
}

/* --- Filters --- */
body.oc365-html-typography .search-input,
body.oc365-html-typography .filter-select,
body.oc365-html-typography .filter-bar input,
body.oc365-html-typography .filter-bar select,
body.oc365-html-typography .search-field input{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-base);
font-weight:400;
letter-spacing:normal;
line-height:1.4;
}

body.oc365-html-typography .btn-reset{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-base);
font-weight:var(--oc365-html-weight-semibold);
letter-spacing:normal;
}

/* --- Opportunity cards --- */
body.oc365-html-typography .opp-title,
body.oc365-html-typography .opp-title a{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-lg);
font-weight:var(--oc365-html-weight-bold);
line-height:1.35;
letter-spacing:var(--oc365-html-tracking-tight);
}

body.oc365-html-typography .opp-badge{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-2xs);
font-weight:var(--oc365-html-weight-medium);
letter-spacing:normal;
line-height:1.25;
}

body.oc365-html-typography .opp-desc{
font-family:var(--oc365-font-body);
font-size:0.9rem;
font-weight:400;
letter-spacing:normal;
line-height:var(--oc365-html-leading-body);
}

body.oc365-html-typography .opp-apply-link{
font-family:var(--oc365-font-heading);
font-size:0.9rem;
font-weight:var(--oc365-html-weight-semibold);
letter-spacing:normal;
}

/* Legacy listing cards (non-HTML markup) */
body.oc365-html-typography .listing-title{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-lg);
font-weight:var(--oc365-html-weight-bold);
line-height:1.35;
letter-spacing:var(--oc365-html-tracking-tight);
}

body.oc365-html-typography .listing-summary{
font-size:0.9rem;
font-weight:400;
letter-spacing:normal;
line-height:var(--oc365-html-leading-body);
}

body.oc365-html-typography .listing-chip,
body.oc365-html-typography .badge{
font-size:var(--oc365-html-text-2xs);
font-weight:var(--oc365-html-weight-medium);
letter-spacing:normal;
text-transform:none;
}

/* --- Page titles (contact / submit / inner) --- */
body.oc365-html-typography .page-contact__title,
body.oc365-html-typography .page-submit__title,
body.oc365-html-typography .page-inner__title,
body.oc365-html-typography .contact-title,
body.oc365-html-typography .submit-title{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-3xl);
font-weight:var(--oc365-html-weight-extrabold);
letter-spacing:var(--oc365-html-tracking-tight);
line-height:var(--oc365-html-leading-heading);
}

body.oc365-html-typography .page-contact__lead,
body.oc365-html-typography .page-submit__lead,
body.oc365-html-typography .page-inner__lead,
body.oc365-html-typography .contact-subtitle,
body.oc365-html-typography .submit-subtitle{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-md);
font-weight:400;
letter-spacing:normal;
line-height:var(--oc365-html-leading-body);
}

body.oc365-html-typography .contact-card__title,
body.oc365-html-typography .submit-card__title,
body.oc365-html-typography .channel-name{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-base);
font-weight:var(--oc365-html-weight-semibold);
letter-spacing:normal;
line-height:1.4;
}

body.oc365-html-typography .contact-card__text,
body.oc365-html-typography .submit-card__text,
body.oc365-html-typography .channel-val{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-base);
font-weight:400;
letter-spacing:normal;
line-height:var(--oc365-html-leading-body);
}

/* --- Forms --- */
body.oc365-html-typography .form-label,
body.oc365-html-typography .form-group label,
body.oc365-html-typography .submit-listing-form label,
body.oc365-html-typography .contact-form label,
body.oc365-html-typography .checkbox-group legend{
font-family:var(--oc365-font-heading);
font-size:0.9rem;
font-weight:var(--oc365-html-weight-semibold);
letter-spacing:normal;
line-height:1.4;
}

body.oc365-html-typography .form-control,
body.oc365-html-typography .submit-listing-form .form-control,
body.oc365-html-typography .contact-form input,
body.oc365-html-typography .contact-form textarea{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-base);
font-weight:400;
letter-spacing:normal;
line-height:1.4;
}

body.oc365-html-typography .checkbox-label,
body.oc365-html-typography .confirmation-text{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-base);
font-weight:var(--oc365-html-weight-medium);
letter-spacing:normal;
line-height:1.4;
}

body.oc365-html-typography .form-section__title{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-base);
font-weight:var(--oc365-html-weight-semibold);
letter-spacing:normal;
line-height:1.4;
}

body.oc365-html-typography .field-hint,
body.oc365-html-typography .char-counter,
body.oc365-html-typography .word-count{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-2xs);
font-weight:400;
letter-spacing:normal;
}

body.oc365-html-typography .upload-text-bold{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-base);
font-weight:var(--oc365-html-weight-semibold);
letter-spacing:normal;
}

body.oc365-html-typography .upload-text-muted{
font-size:var(--oc365-html-text-xs);
font-weight:400;
letter-spacing:normal;
}

body.oc365-html-typography .file-preview{
font-size:var(--oc365-html-text-sm);
font-weight:var(--oc365-html-weight-semibold);
letter-spacing:normal;
}

/* --- Footer --- */
body.oc365-html-typography .footer-logo:not(:has(img)){
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-xl);
font-weight:var(--oc365-html-weight-extrabold);
letter-spacing:var(--oc365-html-tracking-tight);
line-height:1.2;
}

body.oc365-html-typography .footer-desc,
body.oc365-html-typography .newsletter-text{
font-family:var(--oc365-font-body);
font-size:0.9rem;
font-weight:400;
letter-spacing:normal;
line-height:1.5;
}

body.oc365-html-typography .footer-col-title{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-base);
font-weight:var(--oc365-html-weight-semibold);
letter-spacing:normal;
line-height:1.4;
}

body.oc365-html-typography .footer-links a{
font-family:var(--oc365-font-body);
font-size:0.9rem;
font-weight:400;
letter-spacing:normal;
line-height:1.4;
}

body.oc365-html-typography .newsletter-input{
font-family:var(--oc365-font-body);
font-size:0.9rem;
font-weight:400;
letter-spacing:normal;
}

body.oc365-html-typography .copyright{
font-family:var(--oc365-font-body);
font-size:var(--oc365-html-text-sm);
font-weight:400;
letter-spacing:normal;
}

/* --- Prose (legal / page content) --- */
body.oc365-html-typography .oc365-prose{
font-family:var(--oc365-font-body);
font-size:1rem;
line-height:var(--oc365-html-leading-body);
letter-spacing:normal;
}

body.oc365-html-typography .oc365-prose h1{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-3xl);
font-weight:var(--oc365-html-weight-extrabold);
letter-spacing:var(--oc365-html-tracking-tight);
line-height:var(--oc365-html-leading-heading);
}

body.oc365-html-typography .oc365-prose h2{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-2xl);
font-weight:var(--oc365-html-weight-extrabold);
letter-spacing:var(--oc365-html-tracking-tight);
line-height:var(--oc365-html-leading-heading);
}

body.oc365-html-typography .oc365-prose h3{
font-family:var(--oc365-font-heading);
font-size:var(--oc365-html-text-lg);
font-weight:var(--oc365-html-weight-bold);
letter-spacing:var(--oc365-html-tracking-tight);
line-height:1.35;
}

body.oc365-html-typography .oc365-prose h4,
body.oc365-html-typography .oc365-prose h5,
body.oc365-html-typography .oc365-prose h6{
font-family:var(--oc365-font-heading);
font-weight:var(--oc365-html-weight-bold);
letter-spacing:var(--oc365-html-tracking-tight);
}

body.oc365-html-typography .oc365-prose p,
body.oc365-html-typography .oc365-prose li{
font-weight:400;
letter-spacing:normal;
}

/* --- Inline ad --- */
body.oc365-html-typography .inline-ad,
body.oc365-html-typography .inline-ad span{
font-size:var(--oc365-html-text-xs);
font-weight:400;
letter-spacing:var(--oc365-html-tracking-wide);
text-transform:uppercase;
}

/* --- Responsive (html/style.css) --- */
@media (max-width:768px){
body.oc365-html-typography .hero-title,
body.oc365-html-typography .hero h1.hero-title{
font-size:2.25rem;
line-height:var(--oc365-html-leading-hero);
}

body.oc365-html-typography .section-title,
body.oc365-html-typography .section-header__title{
font-size:var(--oc365-html-text-2xl);
}

body.oc365-html-typography .site-header .nav-menu .nav-link{
font-size:var(--oc365-html-text-md);
}

body.oc365-html-typography #listing-results .card-left .date-day,
body.oc365-html-typography .date-day{
font-size:1.75rem;
}

body.oc365-html-typography #listing-results .card-left .date-month,
body.oc365-html-typography .date-month{
font-size:var(--oc365-html-text-sm);
}
}
