/*
 Theme Name:   ThinkBig Media
 Theme URI:    https://thinkbigmedia.se
 Description:  Child theme för Generatepress byggd av ThinkBig Media.
 Author:       Josef Bekir
 Author URI:   https://thinkbigmedia.se
 Template:     generatepress
 Version:      1.0
*/


/*
================= TABLE OF CONTENTS =================
1. Theme Tweaks
2. Utilities
3. Typography
4. Global Styles
5. Fluent Forms
6. CSS Grid
7. Site Tweaks
=====================================================
*/




/*** 1. THEME TWEAKS ***/

/* Body background color (outside wrapper) */ 
/* body {
    background-color: var(--base-200);
}*/

/* Site Wrapper */
.site-wrapper {
    width: 100%;
    max-width: 1920px;
    margin-inline: auto;
	background-color: var(--base-0);
}

body {
	background-color: var(--base-400);
}
/* Set the main content area height */
#main {
    min-height: 65vh;
}

/* Container Padding Overrides */
.inside-header {
    padding-inline: 0px !important;
}

.site-header {
    padding-inline: clamp(1rem, 0.848rem + 0.758vw, 1.5rem) !important;
}

.site-content, #content {
    padding: 0px;
}



/* -- Search Tweaks -- */

/* Clears the â€˜Xâ€™ from Chrome */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
	filter: grayscale(100) opacity(.3);
	cursor: pointer;
}
/* Search Block */ 

.wp-block-search {
	border-radius: 4px;
	overflow: hidden;
	outline: 1px solid var(--borders);
	box-shadow: 0px 0px 0px #00000010;
	transition: all 250ms ease-in;
	background-color: var(--base-0);
}

.wp-block-search:focus-within {
	outline: 1px solid var(--text);
		box-shadow: 0px 4px 10px #00000010
}

.wp-block-search input {
	border: none;
	padding: 0px 1em;
	border-radius: 4px;
	outline: none;
}

.wp-block-search button{
	background: var(--base-200);
	color: var(--base-700);
	padding: 10px 12px;
	border-left: 1px solid var(--base-300)
}

.wp-block-search button:hover{
	background: var(--base-300);
	color: var(--base-800);
}

/* Search in Navigation */ 
#site-navigation .menu-bar-item a{
	padding-right: 0
}

/* Modal */ 
.search-modal-fields button{
	background: var(--brand) !important;
	color: var(--base-700) !important;
	line-height: 1;
	font-weight: 600;
	border-left: 1px solid var(--base-300);	
	padding: 10px 12px;
}

.search-modal-fields button:hover{
  background: var(--brand-alt) !important;
  color: var(--base-900) !important;
}

.search-modal-fields input {
	background-color: white !important;
	border-radius: 4px;
	border: none;
	padding: 0px 1em;
	outline: none;
}

.search-modal-form{
	color: var(--base-800);
}

.search-modal-fields{
	border-radius: 4px;
	overflow: hidden;
	outline: 1px solid var(--base-300);
	box-shadow: 0px 0px 0px #00000010;
	transition: all 250ms ease-in;
	background-color: var(--base-0);
}

.search-modal-fields:focus-within{
	outline: 1px solid var(--base-300);
	box-shadow: 0px 4px 10px #00000010
}

.gp-search-modal .gp-modal__overlay {
	background-color: #1f293399;
}

/* Search Results / No Search Results template */ 
.search-title-wrapper{
	display: flex;
	align-items: flex-start;
	margin-top: 40px;
	padding-top: 40px;
	border-top: 1px solid var(--base-300);
}

.search-for {
	line-height: 1.4;
}

.search-title{
	font-size: var(--fs-body);
	text-transform: capitalize;
	margin-left: .4em;
	line-height: 1.4;
}


/* Hamburger Menu */
.mobile-menu-control-wrapper .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle:hover,
.mobile-menu-control-wrapper .menu-toggle:focus,
.has-inline-mobile-toggle #site-navigation.toggled {
    background-color: transparent;
    margin-right: -1rem;
    font-size: 1em;
    line-height: 8px;
}

/* Primary Menu Button Styles */
@media (min-width: 768px) {
    .main-navigation .main-nav ul li.nav-cta a {
        background: var(--base-200) !important;
        color: var(--brand) !important;
        padding: 1em 1.5em;
        margin-left: 16px;
        border-radius: 4px;
        line-height: 1;
        font-weight: 600;
		transition:all 0.1s ease-in-out 0s;
    }
    .main-navigation .main-nav ul li.nav-cta a:hover {
        background: var(--base-300) !important;
        color: var(--brand) !important;
		
    }
}

@media (max-width: 1024px) {
    .main-navigation .main-nav ul li.nav-cta a {
        margin-left: 0px;
    }
}

/* Post Editor Width & Title */
body .editor-styles-wrapper .post-type-post .block-editor-block-list__layout,
body .editor-styles-wrapper .post-type-post .edit-post-visual-editor__post-title-wrapper .editor-post-title {
    max-width: 768px !important;
    margin-inline: auto !important;
}


/* Password Protected Pages */
.post-password-form {
    max-width: 768px;
    padding: 8rem 0px;
    margin-inline: auto;
    text-align: center;
}

/*** 2. UTILITIES ***/

/* Clickable Parent */

.clickable-parent {
	position: relative;
	cursor: pointer;
}

.clickable-parent a::before{
	content: '';
	position: absolute; 
	inset: 0; 
	z-index: 1;
}

.clickable-parent:focus-within{
	outline: -webkit-focus-ring-color auto 0px;
}

.clickable-parent:focus-within :focus{
	box-shadow: none; 
	outline: none;
}

.clickable-parent:hover .card-button{
	background-color: var(--brand-alt);
}

/* Visually Hidden */
.visually-hidden:not(:focus):not(:active) {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

/* Line Limits */
.line-limit-3, .line-limit-2 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-limit-3 {
    -webkit-line-clamp: 3;
}

.line-limit-2 {
    -webkit-line-clamp: 2;
}

/* Aspect Ratios */
.ar-16-9, .ar-9-16, .ar-4-3, .ar-2-3, .ar-1-1 {
    object-fit: cover;
}

.ar-16-9 {
    aspect-ratio: 16/9;
}

.ar-9-16 {
    aspect-ratio: 9/16;
}

.ar-4-3 {
    aspect-ratio: 4/3;
}

.ar-2-3 {
	aspect-ratio: 2/3;
}

.ar-1-1 {
	aspect-ratio: 1/1;
}



/* No Underline */
.no-ul, .no-ul a {
	text-decoration: none;
}

/* Border Radius */
:root{
    --radius-xs:  .125rem;
    --radius-s:  .25rem;
    --radius-m:  .5rem;
    --radius-l:  .8rem;
    --radius-xl:  1.5rem;
    --radius-xxl:  2rem;
    --radius-50:  50%;
    --radius-circle:  50%;
}

/*** 3. TYPOGRAPHY  ***/ 

:root {
	/* These HAVE TO match what is in the Customizer > Typography. Pull in font familys using font manager. Set headline-font as 'All Headlings', set body-font as HTML */ 
    --headline-font: Poppins, sans-serif;
    --body-font: Poppins, sans-serif;
    --fs-body: clamp(0.95rem, calc(0.86rem + 0.21vw), 1.05rem);
	--fs-headline-xxl: clamp(4rem, calc(1.8rem + 7.08vw), 8rem);
    --fs-headline-xl: clamp(2rem, calc(1.8rem + 4.08vw), 4rem);
    --fs-headline-h1: clamp(2rem, calc(1.44rem + 1.4vw), 3rem);
    --fs-headline-h2: clamp(1.5rem, calc(1.44rem + 0.64vw), 1.9rem);
    --fs-headline-h3: clamp(1.3rem, calc(1.3rem + 0.4vw), 1.6rem);
    --fs-headline-h4: clamp(1.25rem, calc(1.21rem + 0.21vw), 1.38rem);
    --fs-headline-h5: clamp(1.25rem, calc(1.21rem + 0.21vw), 1.38rem);
    --fs-headline-h6: clamp(1.25rem, calc(1.21rem + 0.21vw), 1.38rem); 
    --fs-headline-pre: clamp(0.97rem, calc(1.01rem + -0.05vw), 1rem);
    --fs-headline-body-xl: clamp(1.27rem, calc(1.15rem + 0.59vw), 1.62rem);
    --fs-headline-body-l: clamp(1.13rem, calc(1.05rem + 0.38vw), 1.35rem);
    --fs-headline-body-s: clamp(0.89rem, calc(0.87rem + 0.08vw), 0.94rem);
    --fs-headline-body-xs: clamp(0.78rem, calc(0.79rem + -0.01vw), 0.79rem);
    --text-s: clamp(0.89rem, calc(0.87rem + 0.08vw), 0.94rem);
    --text-xs: clamp(0.78rem, calc(0.79rem + -0.01vw), 0.79rem);
	--text-m: clamp(1.05rem, calc(0.95rem + 0.29vw), 1.20rem);
	--text-l: clamp(1.10rem, calc(1.01rem + 0.35vw), 1.30rem);


	--site-width-d: 1200px;
}

/* Default Body / p font settings */ 
p {
    font-size: var(--fs-body);
	line-height: 1.5;
	margin-bottom: 1.5rem;
	font-family: var(--body-font);
}

/* Default Headings weight, margin, font-family */ 
h1, h2, h3, h4, h5, h6, .headline-xxl, .headline-xl, .headline-h1, .headline-h2, .headline-h3, .headline-h4, .headline-h5, .headline-h6 {
	font-weight: 600;
	margin-bottom: .5em;	
	font-family: var(--headline-font);
}

/* Heading font-size and line-height */ 
.headline-xxl{
    font-size: var(--fs-headline-xxl);
	font-style: normal;
	letter-spacing: -0.03em;
	line-height: 90%;
	
}

.headline-xl{
    font-size: var(--fs-headline-xl);
	font-style: normal;
	letter-spacing: -0.03em;
	line-height: 1em;
	
}

h1, .headline-h1 {
    font-size: var(--fs-headline-h1);
	font-style: normal;
	letter-spacing: -0.03em;
	line-height: 1.1em;
}

h2, .headline-h2 {
font-size: var(--fs-headline-h2);
	line-height: 100%;
	letter-spacing: -0.94px;
}

h3, .headline-h3 {
    font-size: var(--fs-headline-h3);
    line-height: 1.15;
}

h4, .headline-h4 {
    font-size: var(--fs-headline-h4);
    line-height: 1.1;
}

h5, .headline-h5 {
    font-size: 1.375rem;
    font-size: var(--fs-headline-h5);
    line-height: 1.25;
}

h6, .headline-h6 {
    font-size: 1.25rem;
    font-size: var(--fs-headline-h6);
    line-height: 1.4;
}

.headline-pre {
    font-size: var(--fs-headline-pre);
	text-transform: uppercase; 
	letter-spacing: .1em;
    margin-bottom: 0.1em;

}

/* Additional Body font-size */ 


.body-text-xl, .body-text-xl p {
	font-family: var(--body-font);
    font-size: var(--fs-headline-body-xl);
    line-height: 1.2;

}

.body-text-l, .body-text-l p {
	font-family: var(--body-font);
    font-size: var(--fs-headline-body-l);
    line-height: 1.2;
}

.body-text-s, .body-text-s p {
	font-family: var(--body-font);
    font-size: var(--fs-headline-body-s);
    line-height: 1.3;
}

.body-text-xs, .body-text-xs p {
	font-family: var(--body-font);
    font-size: var(--fs-headline-body-xs);
    line-height: 1.5;
}

.text-small {
    font-size: var(--text-s);
    line-height: 1.4;
    margin-bottom: 10px
}

.text-xs {
    font-size: var(--text-xs);
    line-height: 1.5;
    margin-bottom: 10px
}


/* Add top margin to blog post H2-H6 */

/*.single-post :is(h2, h3, h4, h5, h6) {
	margin-top: 1.5em;
}*/

/* Button Global Line Height */
.gb-button {
    line-height: 1em;
	font-family: Poppins;
}

/* Remove bottom margin on last paragraph */
.gb-container p:last-child:last-of-type {
    margin-bottom: 0px;
}

.block-editor-block-list__layout .gb-container p:nth-last-child(2) {
    margin-bottom: 0px;
}


/*** 4. GLOBAL STYLES ***/ 

/* Sections  */
.container-section-xs {
	padding: 1rem clamp(1rem, 0.848rem + 0.758vw, 1.5rem) 1rem clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.container-section-s {
	padding: clamp(1.5rem, 1.5rem + 0vw, 1.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(1.5rem, 1.5rem + 0vw, 1.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.container-section-m {
	padding: clamp(1.5rem, 1.197rem + 1.515vw, 2.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(1.5rem, 1.197rem + 1.515vw, 2.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.container-section-d {
	padding: clamp(3rem, 2.394rem + 3.03vw, 5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(3rem, 2.394rem + 3.03vw, 5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.container-section-l {
	padding: clamp(4.5rem, 3.591rem + 4.545vw, 7.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(4.5rem, 3.591rem + 4.545vw, 7.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.container-section-xl {
	padding: clamp(6rem, 4.788rem + 6.061vw, 10rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(6rem, 4.788rem + 6.061vw, 10rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

/* Default List Styles */
ol, ul {
    margin: 0 0 1.5em 1.5em;
}
ol li,
ul li {
	font-family: var(--body-font);
	font-size: var(--fs-body);
	font-weight: 400;
	line-height: 1.5;
}

/* Container Widths */ 

:root{
	--width-d: 1200px;
	--width-m: 64rem; 
	--width-s: 48rem; 
	--width-xs: 40rem;
}

/* Announcement Bar */ 

.announcement-bar {
    position: relative;
}

.announcement-bar-closed {
    display: none;
}

.announcement-close {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translatey(-50%);
    cursor: pointer;
}

/*** 5. FLUENT FORMS ***/ 
   
.fluentform .frm-fluent-form input:not([type="submit"]),
.fluentform .frm-fluent-form textarea {
    border-width: 1px;
    border-radius: 0px;
    border-color: var(--base-300);
    background-color: var(--base-0);
    padding: 12px 16px;
}

/* required asterisk color */
.fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label:after {
color: var(--brand);
}

.fluentform .ff-el-group {
margin-bottom: 15px;
}

.fluentform .frm-fluent-form input:not([type="submit"]):focus ,
.fluentform .frm-fluent-form textarea:focus {
    border-width: 1px;
    border-color: var(--base-700);
    background-color: var(--base-0);
    box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .0);
}

.fluentform .ff_t_c {
font-size: 13px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
color: #666666;
padding-left: 5px;
padding-bottom: 16px;	
}

.fluentform .ff-el-is-error .ff-el-form-control {
border: 1px solid var(--brand);
}

.fluentform .ff-el-is-error .text-danger {
font-size: 14px;
color: var(--base-700);
}

.fluentform .ff-el-form-check-label .ff-el-form-check-input {
top: -1px;
}

.fluentform .frm-fluent-form .ff-el-input--label label {
    font-size: .9rem;
    color: var(--base-700);
}

.fluentform .frm-fluent-form input::placeholder,
.fluentform .frm-fluent-form textarea::placeholder {
    font-size:16px;
    font-weight:400;
    color: var(--text-light);
}

.fluentform .frm-fluent-form button[type='submit'] {
    font-size:16px;
    font-weight:600;
    color: var(--base-950);
    background-color: var(--brand);
    padding:12px 32px;
    height: auto;
    display: block;
    margin-right: auto;
    border-radius: 4px;
}

.fluentform .frm-fluent-form button[type='submit']:hover {
    color: var(--base-950);
    background-color: var(--brand-alt);
}

#fluentform_4_success .ff-message-success {
border: 0px solid white;
box-shadow: 0px 0px 0px 0px #ffffff;
    margin-top: 16px;
font-size: 1rem;
padding: 0px;
}

.fluentform .ff-el-form-control {
background: var(--base-0);
}

/*** 6. CSS GRID ***/

/* Simple CSS grid */

.grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.grid-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
}

.grid-4{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
}

.grid-5 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
}

.grid-6 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}

.gap-xs{
    gap: .5rem;
}

.gap-s{
    gap: 1rem;
}

.gap-m{
    gap: 2rem;
}

.gap-l{
    gap: 4rem;
}

.gap-xl{
    gap: 6rem;
}

/* TABLET */
@media (min-width: 769px) and (max-width: 1024px) {
    .grid-2{
        grid-template-columns: 1fr;
    }

    .grid-3, .grid-4{
        grid-template-columns: 1fr 1fr;
    }

    .grid-5, .grid-6{
        grid-template-columns: 1fr 1fr 1fr;
    }

    .gap-xs{
        gap: .5rem;
    }
    
    .gap-s{
        gap: 1rem;
    }
    
    .gap-m{
        gap: 1.5rem;
    }
    
    .gap-l{
        gap: 3rem;
    }
    
    .gap-xl{
        gap: 4rem;
    }
}

/* MOBILE */
@media (max-width: 768px) {
    .grid-2, .grid-3, .grid-4 {
        grid-template-columns: 1fr;
    }

    .grid-5, .grid-6 {
        grid-template-columns: 1fr 1fr
    }

    .gap-xs{
        gap: .25rem;
    }
    
    .gap-s{
        gap: .5rem;
    }
    
    .gap-m{
        gap: 1rem;
    }
    
    .gap-l{
        gap: 2rem;
    }
    
    .gap-xl{
        gap: 3rem;
    }
} 

/* Photo Gallery */ 
.eb-gallery-img-wrapper.masonry .eb-gallery-img-content img {
    width: 100%;
}



/*** 7. THEME TWEAKS ***/

.linked-container {
    position: relative;
}
.linked-container a:before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 10;
}
