/*
 * Dr. Shahriyari — French global typography v2.6.30
 * Scope: every frontend surface whose document language is French (fr).
 * Font: Didot family throughout. Native Didot is preferred where available;
 * GFS Didot is loaded as the consistent open webfont implementation.
 * The font binary is not bundled; Google Fonts is requested only on French pages.
 */

html[lang^="fr"],
body.dsh-lang-fr{
  --dsh-fr-font:Didot,"GFS Didot","Didot LT STD","Bodoni 72","Bodoni MT","Times New Roman",serif;
  --dsh-fr-h1:clamp(2.30rem,4.25vw,3.72rem);
  --dsh-fr-h2:clamp(1.78rem,2.85vw,2.58rem);
  --dsh-fr-h3:clamp(1.22rem,1.55vw,1.54rem);
  --dsh-fr-h4:clamp(1.06rem,1.18vw,1.27rem);
  font-family:var(--dsh-fr-font);
  font-kerning:normal;
  font-variant-ligatures:common-ligatures;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/*
 * Global French body/UI layer. This stylesheet is enqueued after page-specific
 * styles so Home, Blog, article, treatment/service, About, Contact, navigation,
 * footer, cards, forms and future French templates inherit one typography system.
 */
html[lang^="fr"] body,
body.dsh-lang-fr,
html[lang^="fr"] body :where(div,section,article,aside,main,header,footer,nav,p,ul,ol,li,dl,dt,dd,blockquote,figcaption,details,summary,label,legend,a,button,input,textarea,select,option,table,thead,tbody,tfoot,tr,th,td,span,small,strong,b,em,i,time,address),
body.dsh-lang-fr :where(div,section,article,aside,main,header,footer,nav,p,ul,ol,li,dl,dt,dd,blockquote,figcaption,details,summary,label,legend,a,button,input,textarea,select,option,table,thead,tbody,tfoot,tr,th,td,span,small,strong,b,em,i,time,address){
  font-family:var(--dsh-fr-font)!important;
}

html[lang^="fr"] body,
body.dsh-lang-fr{
  font-size:1.04rem;
  line-height:1.76;
  letter-spacing:.002em;
}

html[lang^="fr"] :where(p,li,dd,blockquote),
body.dsh-lang-fr :where(p,li,dd,blockquote){
  line-height:1.82!important;
}

html[lang^="fr"] :where(button,input,textarea,select,summary,.wp-element-button,.wp-block-button__link),
body.dsh-lang-fr :where(button,input,textarea,select,summary,.wp-element-button,.wp-block-button__link){
  font-size:clamp(.94rem,.92rem + .08vw,1.02rem);
  line-height:1.5;
  letter-spacing:.01em;
}

/*
 * Didot is naturally high-contrast and visually prominent. Headings therefore
 * use restrained sizes and regular display weight rather than oversized or
 * artificially heavy treatment.
 */
html[lang^="fr"] :where(
  h1,h2,h3,h4,h5,h6,
  .wp-block-post-title,
  .wp-block-site-title,
  .wp-block-query-title,
  .wp-block-heading,
  .dsh-abt260-mast__brand,
  [class*="__title"],
  [class*="-title"]
),
body.dsh-lang-fr :where(
  h1,h2,h3,h4,h5,h6,
  .wp-block-post-title,
  .wp-block-site-title,
  .wp-block-query-title,
  .wp-block-heading,
  .dsh-abt260-mast__brand,
  [class*="__title"],
  [class*="-title"]
){
  font-family:var(--dsh-fr-font)!important;
  font-style:normal;
  font-weight:400!important;
  font-synthesis:none;
  text-wrap:balance;
}

html[lang^="fr"] :where(h1,.wp-block-post-title,.wp-block-site-title),
body.dsh-lang-fr :where(h1,.wp-block-post-title,.wp-block-site-title){
  font-size:var(--dsh-fr-h1)!important;
  line-height:1.10!important;
  letter-spacing:-.018em!important;
  max-width:24ch;
}

html[lang^="fr"] :where(h2,.wp-block-query-title),
body.dsh-lang-fr :where(h2,.wp-block-query-title){
  font-size:var(--dsh-fr-h2)!important;
  line-height:1.16!important;
  letter-spacing:-.012em!important;
}

html[lang^="fr"] h3,
body.dsh-lang-fr h3{
  font-size:var(--dsh-fr-h3)!important;
  line-height:1.25!important;
  letter-spacing:-.006em!important;
}

html[lang^="fr"] :where(h4,h5,h6),
body.dsh-lang-fr :where(h4,h5,h6){
  font-size:var(--dsh-fr-h4)!important;
  line-height:1.32!important;
}

/* Linked/spanned title content must retain the same Didot treatment. */
html[lang^="fr"] :where(h1,h2,h3,h4,h5,h6,.wp-block-post-title,.wp-block-site-title,.wp-block-query-title,[class*="__title"],[class*="-title"]) :where(a,span,strong,b,em,i),
body.dsh-lang-fr :where(h1,h2,h3,h4,h5,h6,.wp-block-post-title,.wp-block-site-title,.wp-block-query-title,[class*="__title"],[class*="-title"]) :where(a,span,strong,b,em,i){
  font-family:inherit!important;
  font-weight:inherit!important;
  letter-spacing:inherit!important;
}

/* Non-heading component titles keep their component scale while using Didot. */
html[lang^="fr"] :where([class*="__title"],[class*="-title"]):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6),
body.dsh-lang-fr :where([class*="__title"],[class*="-title"]):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){
  line-height:1.28!important;
  letter-spacing:-.006em!important;
}

html[lang^="fr"] .dsh-abt260-mast__brand,
body.dsh-lang-fr .dsh-abt260-mast__brand{
  font-size:clamp(2.05rem,4.6vw,3.35rem)!important;
  line-height:1.10!important;
}

/* Compact navigation/UI keeps Didot without display-scale inflation. */
html[lang^="fr"] :where(.dsh-header,.dsh-nav,.dsh-breadcrumb,.dsh-button,.wp-block-navigation,.wp-block-button),
body.dsh-lang-fr :where(.dsh-header,.dsh-nav,.dsh-breadcrumb,.dsh-button,.wp-block-navigation,.wp-block-button){
  font-family:var(--dsh-fr-font)!important;
}

/* Technical literals remain monospaced for legibility. */
html[lang^="fr"] :where(code,pre,kbd,samp),
body.dsh-lang-fr :where(code,pre,kbd,samp){
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace!important;
  letter-spacing:normal!important;
}

@media (max-width:782px){
  html[lang^="fr"],body.dsh-lang-fr{
    --dsh-fr-h1:clamp(2.02rem,8.2vw,2.82rem);
    --dsh-fr-h2:clamp(1.55rem,6.4vw,2.08rem);
    --dsh-fr-h3:clamp(1.16rem,4.5vw,1.40rem);
  }
  html[lang^="fr"] body,
  body.dsh-lang-fr{
    font-size:1.02rem;
    line-height:1.78;
  }
}

@media (max-width:420px){
  html[lang^="fr"],body.dsh-lang-fr{
    --dsh-fr-h1:clamp(1.92rem,9vw,2.48rem);
    --dsh-fr-h2:clamp(1.48rem,6.8vw,1.90rem);
  }
}
