<commit_before>// Body Typography
//
// Mixin to adjust the font size and line height only. Typically used for one off elements that do not require any top
// or bottom margins.

@mixin body($font-size, $line-height) {
  @if $responsive == true {
    font-size: ($font-size / 16) + rem;
    line-height: ($line-height / 16) + rem;
  } @else {
    font-size: $font-size + px;
    line-height: $line-height + px;
  }
}

// Paragraph Typography
//
// Mixin to style paragraph typography. Adjusts the font size and line height but also adjusts the
// top and bottom margins to help space the paragraphs out appropriately.

@mixin paragraph($font-size, $line-height) {
  @if $responsive == true {
    font-size: ($font-size / 16) + rem;
    line-height: ($line-height / 16) + rem;
    margin-top: 0;
    margin-bottom: ($font-size - 6) / 16 + rem;
  } @else {
    font-size: $font-size + px;
    line-height: $line-height + px;
    margin-top: 0;
    margin-bottom: ($font-size - 6) + px;
  }
}

// Heading Typography
//
// Mixin to set the spacing between paragraphs and headings and improve the flow of the document.

@mixin heading($font-size, $line-height) {
  letter-spacing: -1px;

  @if $responsive == true {
    font-size: ($font-size / 16) + rem;
    line-height: ($line-height / 16) + rem;
    margin-top: ($font-size) / 16 + rem;
    margin-bottom: ($font-size / 2) / 16 + rem;

    @include respond-to($mq-l) {
      margin-top: ($font-size*1.5) / 16 + rem;
      margin-bottom: ($font-size / 2) / 16 + rem;
    }

  } @else {
    font-size: $font-size + px;
    line-height: $line-height + px;
    margin-top: ($font-size*1.5) + px;
    margin-bottom: ($font-size / 2) + px;

    @include respond-to($mq-l) {
      margin-top: ($font-size*1.5) + px;
      margin-bottom: ($font-size / 2) + px;
    }
  }
}

// Typesetting Options

%prevent-text-zooming {
  // non-standard property to prevent automatic text zooming when changing orientation or viewing mobile
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

%font-smoothing {
  // doesn't work as well with italics as with regular text
  -webkit-font-smoothing: antialiased;

  // improves antialiasing in Chrome and Windows
  text-shadow: 1px 1px transparent;
}

@mixin font-features($liga, $kern) {
  // allows access to kerning and ligatypes in fonts that support it.
  -webkit-font-feature-settings: "#{$liga}";
  -moz-font-feature-settings: "#{$liga}", "#{$kern}";
  font-feature-settings: "#{$liga}", "#{$kern}";
}

@mixin legibility($kerning: normal) {
  // optimize the font for legibility (kerning of characters)
  -webkit-font-kerning: $kerning;
  -moz-font-kerning: $kerning;
  font-kerning: $kerning;
}

// Default font stack placeholder
%font-body {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300;
  .wf-museosans-n4-active & {
    font-family: 'museo_sans';
  }
}

// Bold weight headings for the brand font
%font-heading-heavy {
  font-family: Arial;
  font-weight: 700;
  .wf-museosans-n4-active & {
    font-family: 'museo_sans';
  }
}

// Medium weight headings for the brand font
%font-heading-medium {
  font-family: Arial;
  font-weight: 500;
  .wf-museosans-n4-active & {
    font-family: 'museo_sans';
  }
}

// Placeholders for type styles

%type {
  @extend %font-body;
  @include body(16, 22);

  @include respond-to($mq-l) {
    @include body(18, 24);
  }
}

%type-small {
  @include body(14, 18);
}

%type-table {
  @include body(14, 18);

  @include respond-to($mq-m) {
    @include body(16, 22);
  }
}

%type-callout {
  @include body(14, 18);
  @extend %font-heading-medium;

  @include respond-to($mq-m) {
    @include body(16, 22);
  }
}

%type-button {
  @extend %font-heading-medium;
  @extend %font-smoothing;
  @include body(18, 24);
}

%type-primary-navigation {
  @extend %font-heading-heavy;
  @include body(14, 18);

  @include respond-to($mq-m) {
    @include body(16, 22);
  }
}

%type-navigation {
  @extend %font-heading-medium;
  @include body(14, 18);
}

%type-contact-heading {
  @extend %font-heading-heavy;
  @include body(24, 30);

  @include respond-to($mq-m) {
    @include body(30, 36);
  }
}

%type-homepage-headings {
  @extend %font-heading-medium;
  @include body(18, 24);

  @include respond-to($mq-m) {
    @include body(24, 30);
  }
}

%paragraph {
  @include paragraph(16, 22);<commit_msg>Update big fonts so don't break layout in Welsh<commit_after>// Body Typography
//
// Mixin to adjust the font size and line height only. Typically used for one off elements that do not require any top
// or bottom margins.

@mixin body($font-size, $line-height) {
  @if $responsive == true {
    font-size: ($font-size / 16) + rem;
    line-height: ($line-height / 16) + rem;
  } @else {
    font-size: $font-size + px;
    line-height: $line-height + px;
  }
}

// Paragraph Typography
//
// Mixin to style paragraph typography. Adjusts the font size and line height but also adjusts the
// top and bottom margins to help space the paragraphs out appropriately.

@mixin paragraph($font-size, $line-height) {
  @if $responsive == true {
    font-size: ($font-size / 16) + rem;
    line-height: ($line-height / 16) + rem;
    margin-top: 0;
    margin-bottom: ($font-size - 6) / 16 + rem;
  } @else {
    font-size: $font-size + px;
    line-height: $line-height + px;
    margin-top: 0;
    margin-bottom: ($font-size - 6) + px;
  }
}

// Heading Typography
//
// Mixin to set the spacing between paragraphs and headings and improve the flow of the document.

@mixin heading($font-size, $line-height) {
  letter-spacing: -1px;

  @if $responsive == true {
    font-size: ($font-size / 16) + rem;
    line-height: ($line-height / 16) + rem;
    margin-top: ($font-size) / 16 + rem;
    margin-bottom: ($font-size / 2) / 16 + rem;

    @include respond-to($mq-l) {
      margin-top: ($font-size*1.5) / 16 + rem;
      margin-bottom: ($font-size / 2) / 16 + rem;
    }

  } @else {
    font-size: $font-size + px;
    line-height: $line-height + px;
    margin-top: ($font-size*1.5) + px;
    margin-bottom: ($font-size / 2) + px;

    @include respond-to($mq-l) {
      margin-top: ($font-size*1.5) + px;
      margin-bottom: ($font-size / 2) + px;
    }
  }
}

// Typesetting Options

%prevent-text-zooming {
  // non-standard property to prevent automatic text zooming when changing orientation or viewing mobile
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

%font-smoothing {
  // doesn't work as well with italics as with regular text
  -webkit-font-smoothing: antialiased;

  // improves antialiasing in Chrome and Windows
  text-shadow: 1px 1px transparent;
}

@mixin font-features($liga, $kern) {
  // allows access to kerning and ligatypes in fonts that support it.
  -webkit-font-feature-settings: "#{$liga}";
  -moz-font-feature-settings: "#{$liga}", "#{$kern}";
  font-feature-settings: "#{$liga}", "#{$kern}";
}

@mixin legibility($kerning: normal) {
  // optimize the font for legibility (kerning of characters)
  -webkit-font-kerning: $kerning;
  -moz-font-kerning: $kerning;
  font-kerning: $kerning;
}

// Default font stack placeholder
%font-body {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300;
  .wf-museosans-n4-active & {
    font-family: 'museo_sans';
  }
}

// Bold weight headings for the brand font
%font-heading-heavy {
  font-family: Arial;
  font-weight: 700;
  .wf-museosans-n4-active & {
    font-family: 'museo_sans';
  }
}

// Medium weight headings for the brand font
%font-heading-medium {
  font-family: Arial;
  font-weight: 500;
  .wf-museosans-n4-active & {
    font-family: 'museo_sans';
  }
}

// Placeholders for type styles

%type {
  @extend %font-body;
  @include body(16, 22);

  @include respond-to($mq-l) {
    @include body(18, 24);
  }
}

%type-small {
  @include body(14, 18);
}

%type-table {
  @include body(14, 18);

  @include respond-to($mq-m) {
    @include body(16, 22);
  }
}

%type-callout {
  @include body(14, 18);
  @extend %font-heading-medium;

  @include respond-to($mq-m) {
    @include body(16, 22);
  }
}

%type-button {
  @extend %font-heading-medium;
  @extend %font-smoothing;
  @include body(18, 24);
}

%type-primary-navigation {
  @extend %font-heading-heavy;
  @include body(14, 18);

  @include respond-to($mq-m) {
    @include body(16, 22);
  }

  .theme-cy & {
    @include respond-to($mq-m) {
      @include body(14, 18);
    }
  }
}

%type-navigation {
  @extend %font-heading-medium;
  @include body(14, 18);
}

%type-contact-heading {
  @extend %font-heading-heavy;
  @include body(24, 30);

  @include respond-to($mq-m) {
    @include body(30, 36);
  }
}

%type-homepage-headings {
  @extend %font-heading-medium;
  @include body(18, 24);

  @include respond-to($mq-m) {
    @include body(24, 30);
  }

  .theme-cy & {
    @include respond-to($mq-m) {
      @include body(18, 24);
    }
  }
}

%paragraph {
  @include paragraph(16, 22);
{'fraction_non_alphanumeric': 0.16477777777777777, 'fraction_numerical': 0.028444444444444446, 'mean_word_length': 2.9495392716103552, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2977723', 'n_tokens_mistral': 3581, 'n_tokens_neox': 3309, 'n_words': 837}