/*
 * 	BNE Blocks: Heading
 *
 * 	@author		Kerry Kline
 * 	@copyright	Copyright (c) Kerry Kline
 * 	@link		http://www.bnecreative.com
 *
 * 	@updated:	July 3, 2023
 *
*/

.bne-heading {
    position: relative;
    display: block;
    margin-bottom: 1.5rem;
    border: none;
}
.bne-heading .heading-inner {}

/* Heading Grid */
.bne-heading.has-subheading .heading-inner {
    display: grid;
    grid-template-areas: "heading" "subheading" ;
    row-gap: calc( var(--row-gap, '1rem') * 1rem);
}
.bne-heading.has-subheading-above .heading-inner {
    grid-template-areas: "subheading" "heading";
}
.bne-heading.has-subheading-above .heading-inner .heading-main { grid-area: heading; }
.bne-heading.has-subheading-above .heading-inner .heading-sub { grid-area: subheading; }

/* Heading Styles */
.heading-main,
.heading-sub {
    display: block; 
    margin: 0;
    padding: 0;
    position: relative;
}


/* Border - Default */
.bne-heading.has-border-above .heading-inner { padding-top: 5px; }
.bne-heading.has-border-below .heading-inner { padding-bottom: 5px; }

.bne-heading.has-border:before {
    content: "";
    position: absolute;
    background-color: var(--border-color);
    width: calc( var(--border-width) * 1%);
    height: calc( var(--border-height) * 1px);
}

/* Border - Above */
.bne-heading.has-border.has-border-above {
    margin-top: calc( ( var(--border-height) * 1px ) + 20px );
}

.bne-heading.has-border.has-border-above:before {
    top: calc( (var(--border-height) * -1px) - 5px );
    left: 0;
}

.bne-heading.heading-align-center.has-border.has-border-above:before {
    left: 50%;
    transform: translateX(-50%);
    margin: 0 auto;
}

.bne-heading.heading-align-right.has-border.has-border-above:before {
    left: auto;
    right: 0;
}

/* Border - Below */
.bne-heading.has-border.has-border-below {
    margin-bottom: calc( ( var(--border-height) * 1px ) + 30px );
}

.bne-heading.has-border.has-border-below:before {
    bottom: calc( ( var(--border-height) * -1px ) - 5px );
    left: 0;
}

.bne-heading.heading-align-center.has-border.has-border-below:before {
    left: 50%;
    transform: translateX(-50%);
    margin: 0 auto;
}

.bne-heading.heading-align-right.has-border.has-border-below:before {
    left: auto;
    right: 0;
}

/* Border - Side */
.bne-heading.has-border.has-border-side {
    margin-left: calc( ( var(--border-width) * 1px) + 10px );
}

.bne-heading.has-border.has-border-side:before {
    left: calc( ( var(--border-width) * -1px) + -10px );
    width: calc( var(--border-width) * 1px);
    height: calc( var(--border-height) * 1%);
    top: 0;
    bottom: 0
}

.bne-heading.heading-align-right.has-border.has-border-side {
    margin-left: auto;
    margin-right: calc( ( var(--border-width) * 1px) + 10px );
}

.bne-heading.heading-align-right.has-border.has-border-side:before {
    left: auto;
    right: calc( ( var(--border-width) * -1px) + -10px );
}

/* Border - Side - Center */
.bne-heading.heading-align-center.has-border.has-border-side {
    overflow: hidden;
    margin: 0 auto 1rem auto;
}

.bne-heading.heading-align-center.has-border.has-border-side:before {
    display: none;
}

.bne-heading.heading-align-center.has-border.has-border-side .heading-inner {
    display: inline-block;
    position: relative;
}
.bne-heading.has-subheading-above.heading-align-center.has-border.has-border-side .heading-inner {
    display: inline-grid;
}

.bne-heading.heading-align-center.has-border.has-border-side .heading-inner:before,
.bne-heading.heading-align-center.has-border.has-border-side .heading-inner:after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: calc( var(--border-width) * 1%);
    height: calc( var(--border-height) * 1%);
    background: var(--border-color);
    right: calc( 100% + 20px );
}

.bne-heading.heading-align-center.has-border.has-border-side .heading-inner:after {
    left: calc( 100% + 20px );
    right: auto;
}

/* Border - Image */
.bne-heading.has-border.has-border-image:before {
    background-color: transparent;
    background-image: var(--border-image);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: 50%;
    vertical-align: middle;
    width: calc( var(--border-width) * 1%);
    height: calc( var(--border-height) * 1%);
}

.bne-heading.has-border.has-border-above.has-border-image {
    margin-top: calc( ( ( var(--border-height) / 2 ) * 1px ) + 10px );
}

.bne-heading.has-border.has-border-below.has-border-image {
    margin-bottom: calc( ( ( var(--border-height) / 2 ) * 1px ) + 10px );
}

.bne-heading.has-border.has-border-above.has-border-image:before {
    top: calc( var(--border-height) * -1%);
}

.bne-heading.has-border.has-border-below.has-border-image:before {
    bottom: calc( var(--border-height) * -1%);
}

.bne-heading.has-border.has-border-side.has-border-image:before {
    width: calc( var(--border-width) * 1px);
    height: calc( var(--border-height) * 1px);
}

.bne-heading.heading-align-left.has-border.has-border-image:before {
    background-position: top left;
}

.bne-heading.heading-align-right.has-border.has-border-image:before {
    background-position: top right;
}

.bne-heading.heading-align-center.has-border.has-border-side.has-border-image .heading-inner:before,
.bne-heading.heading-align-center.has-border.has-border-side.has-border-image .heading-inner:after {
    background-color: transparent;
    background-image: var(--border-image);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: 50%;
    vertical-align: middle;
    width: calc( var(--border-width) * 3px);
    height: calc( var(--border-height) * 3px);
}