/*------------------------------------*\
    #HEADINGS
\*------------------------------------*/

// scss-lint:disable ElsePlacement

/**
 * Basic heading styles
 **/

// Individual heading settings for h1-h6 must be defined sepeartely

$sagovau-headings-settings: (
    h1: $sagovau-h1-settings,
    h2: $sagovau-h2-settings,
    h3: $sagovau-h3-settings,
    h4: $sagovau-h4-settings,
    h5: $sagovau-h5-settings,
    h6: $sagovau-h6-settings
) !default;

$sagovau-enable-headings-utility-classes: false !default;  // Create utility classes to mimic heading styles - csswizardry.com/2012/02/pragmatic-practical-font-sizing-in-css





// Set default heading behaviour

h1,
h2,
h3,
h4,
h5,
h6 {
    page-break-after: avoid;

    strong,
    b {
        font-weight: inherit;    // Prevent CMS users from applying font weights within headings
    }

}





/**
 * 1. Loop through the setting maps to create the headings
 *
 * 2. Add the necessary extend-only classes, if required.
 *
 * 3. If the font-family is either the base font or highlight font, extend the
 *    appropriate class. (This allows other parameters, such as letter-spacing,
 *    to be set elsewhere.
 **/

@each $heading, $settings in $sagovau-headings-settings {   //* [1] */

    @if $heading == h1 { $heading: 'h1, %alpha'; }         //* [2] */

    @else if $heading == h2 { $heading: 'h2, %beta'; }      //* [2] */

    @else if $heading == h3 { $heading: 'h3, %gamma'; }     //* [2] */

    @else if $heading == h4 { $heading: 'h4, %delta'; }     //* [2] */

    @else if $heading == h5 { $heading: 'h5, %epsilon'; }   //* [2] */

    @else if $heading == h6 { $heading: 'h6, %zeta'; }      //* [2] */

    #{$heading} {

        @each $property, $value in $settings {  /* [1] */

            @if $property == font-family and $value == $sagovau-font-family-base {   /* [3] */

                @extend %#{$sagovau-namespace}font-base;

            } @else if $property == font-family and $value == $sagovau-font-family-highlight {     /* [3] */

                @extend %#{$sagovau-namespace}font-highlight;

            } @else if $property == font-size {

                @include inuit-font-size($value);

            } @else {

                #{$property}: $value;

            }

        }

    }

}


// Create heading utility classes, if required

@if $sagovau-enable-headings-utility-classes == true {

    .#{$sagovau-namespace}alpha {
        @extend %#{$sagovau-namespace}alpha;
    }

    .#{$sagovau-namespace}beta {
        @extend %#{$sagovau-namespace}beta;
    }

    .#{$sagovau-namespace}gamma {
        @extend %#{$sagovau-namespace}gamma;
    }

    .#{$sagovau-namespace}delta {
        @extend %#{$sagovau-namespace}delta;
    }

    .#{$sagovau-namespace}epsilon {
        @extend %#{$sagovau-namespace}epsilon;
    }

    .#{$sagovau-namespace}zeta {
        @extend %#{$sagovau-namespace}zeta;
    }

}
