/* VYRITY-005P1B — Montserrat + Source Sans Pro typography
   Montserrat: headings, navigation, controls, branded interface
   Source Sans Pro: body copy, reports, blog prose, forms, captions

   Font files are installed from Ralphie's supplied ZIPs by
   install-vyrity-typefaces.ps1. */

@font-face{
  font-family:"Montserrat";
  src:url("/assets/fonts/montserrat/Montserrat-Regular.ttf?v=005P1B") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Montserrat";
  src:url("/assets/fonts/montserrat/Montserrat-Medium.ttf?v=005P1B") format("truetype");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Montserrat";
  src:url("/assets/fonts/montserrat/Montserrat-SemiBold.ttf?v=005P1B") format("truetype");
  font-weight:600;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Montserrat";
  src:url("/assets/fonts/montserrat/Montserrat-Bold.ttf?v=005P1B") format("truetype");
  font-weight:700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Montserrat";
  src:url("/assets/fonts/montserrat/Montserrat-SemiBoldItalic.ttf?v=005P1B") format("truetype");
  font-weight:600;
  font-style:italic;
  font-display:swap;
}

@font-face{
  font-family:"Source Sans Pro";
  src:url("/assets/fonts/source-sans-pro/SourceSansPro-Regular.ttf?v=005P1B") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Source Sans Pro";
  src:url("/assets/fonts/source-sans-pro/SourceSansPro-Italic.ttf?v=005P1B") format("truetype");
  font-weight:400;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:"Source Sans Pro";
  src:url("/assets/fonts/source-sans-pro/SourceSansPro-SemiBold.ttf?v=005P1B") format("truetype");
  font-weight:600;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Source Sans Pro";
  src:url("/assets/fonts/source-sans-pro/SourceSansPro-SemiBoldItalic.ttf?v=005P1B") format("truetype");
  font-weight:600;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:"Source Sans Pro";
  src:url("/assets/fonts/source-sans-pro/SourceSansPro-Bold.ttf?v=005P1B") format("truetype");
  font-weight:700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Source Sans Pro";
  src:url("/assets/fonts/source-sans-pro/SourceSansPro-BoldItalic.ttf?v=005P1B") format("truetype");
  font-weight:700;
  font-style:italic;
  font-display:swap;
}

:root{
  --vyrity-brand-font:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --vyrity-ui-font:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --vyrity-body-font:"Source Sans Pro",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}

/* Default reading typography */
html,
body{
  font-family:var(--vyrity-body-font)!important;
  font-synthesis:none;
}

/* Ordinary content remains Source Sans Pro. */
body p,
body li,
body dd,
body dt,
body blockquote,
body figcaption,
body table,
body td,
body th{
  font-family:var(--vyrity-body-font)!important;
}

/* Branded / interactive UI uses Montserrat. */
h1,h2,h3,h4,h5,h6,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
select,
option,
label,
legend,
summary,
nav,
nav a,
.brand-link,
.brand-word,
.eyebrow,
.kicker,
.content-title,
.hero-title,
.display-title,
.button,
.nav-button,
.sign-in,
.nav-style-item,
.va-top-admin,
.vyrity-settings-shell h1,
.vyrity-settings-shell h2,
.vyrity-settings-shell h3{
  font-family:var(--vyrity-ui-font)!important;
}

/* Text-entry controls stay easy to read. */
input:not([type="button"]):not([type="submit"]):not([type="reset"]),
textarea{
  font-family:var(--vyrity-body-font)!important;
}

/* A restrained heading hierarchy — no billboard typography. */
.hero-copy h1{
  font-family:var(--vyrity-brand-font)!important;
  font-weight:600!important;
  font-size:clamp(3rem,4.8vw,4.4rem)!important;
  line-height:.98!important;
  letter-spacing:-.025em!important;
}

.content-title{
  font-family:var(--vyrity-brand-font)!important;
  font-weight:600!important;
  font-size:clamp(2.4rem,3.8vw,3.4rem)!important;
  line-height:1.02!important;
  letter-spacing:-.03em!important;
}

.blog-article .content-title{
  font-size:clamp(2.35rem,3.5vw,3.1rem)!important;
  line-height:1.04!important;
}

h2{
  font-weight:600;
  letter-spacing:-.018em;
}
h3,h4,h5,h6{
  font-weight:600;
  letter-spacing:-.012em;
}

/* Compact navigation: Montserrat, but deliberately smaller and lighter. */
.public-nav a,
.public-nav summary,
.sign-in,
.nav-button,
.nav-style-item{
  font-family:var(--vyrity-ui-font)!important;
  font-weight:600!important;
  letter-spacing:-.008em!important;
}

.public-nav a,
.public-nav summary,
.sign-in{
  font-size:.94rem!important;
}

.nav-button{
  font-size:.95rem!important;
}

.brand-link{
  font-weight:700!important;
  letter-spacing:.12em!important;
}

/* Buttons feel firm without the old ultra-heavy appearance. */
.button,
button,
input[type="button"],
input[type="submit"],
input[type="reset"]{
  font-weight:600;
}

/* Forms/settings/profile/admin body text use Source Sans Pro. */
.vyrity-settings-shell,
.vyrity-profile-shell,
.vyrity-listen-panel,
[class^="va-"],
[class*=" va-"]{
  font-family:var(--vyrity-body-font)!important;
}

.vyrity-settings-shell button,
.vyrity-profile-shell button,
[class^="va-"] button,
[class*=" va-"] button{
  font-family:var(--vyrity-ui-font)!important;
}

/* Emphasis uses real Source Sans weights/styles when inside prose. */
p strong,p b,li strong,li b,blockquote strong,blockquote b{
  font-family:var(--vyrity-body-font)!important;
  font-weight:700;
}
p em,p i,li em,li i,blockquote em,blockquote i{
  font-family:var(--vyrity-body-font)!important;
  font-style:italic;
}

/* Technical content remains monospace. */
code,pre,kbd,samp,
code *,pre *,kbd *,samp *{
  font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace!important;
  font-synthesis:initial;
}

@media(max-width:700px){
  .hero-copy h1{
    font-size:clamp(2.65rem,11vw,3.65rem)!important;
  }
  .content-title,
  .blog-article .content-title{
    font-size:clamp(2.15rem,9vw,3rem)!important;
  }
}


/* VYRITY-005P1C — final restrained heading scale */
:root{
  --vyrity-fs-hero:clamp(3rem,4.8vw,4.4rem);
  --vyrity-fs-page-title:clamp(2.4rem,3.8vw,3.4rem);
  --vyrity-fs-h2:clamp(1.9rem,2.8vw,2.5rem);
  --vyrity-fs-h3:clamp(1.45rem,2vw,1.8rem);
  --vyrity-fs-card-title:clamp(1.5rem,1.9vw,1.95rem);
}

h2{
  font-size:var(--vyrity-fs-h2);
  line-height:1.08;
  letter-spacing:-.02em;
}

h3{
  font-size:var(--vyrity-fs-h3);
  line-height:1.15;
  letter-spacing:-.015em;
}

.blog-card h2,
.blog-card-title,
.blog-list-card h2{
  font-size:var(--vyrity-fs-card-title)!important;
  line-height:1.12!important;
  letter-spacing:-.02em!important;
}

body p,
body li,
body dd,
body dt,
body blockquote,
body figcaption{
  font-size:1.08rem;
  line-height:1.65;
}
