/*
Theme Name: Yoko Co NCOIL Main
Theme URI: 
Author: Yoko Co
Author URI: 
Description: A modern, custom theme for NCOIL from the team at Yoko Co.
Requires at least: 6.7
Tested up to: 6.7
Requires PHP: 5.7  
Version: 1.31   
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: yoko-custom-core
Tags:  
*/ 


/*************************************************************/
/*************** Gutenberg and FSE quirk fixes ***************/
/*************************************************************/

/* Fixes default gaps between blocks when stacking groups or rows at the highest level */
:where(.wp-site-blocks) > * {margin-block-start: 0; margin-block-end: 0;}

/*************************************************************/
/************ Utility classes for responsive fixes ***********/
/*************************************************************/

/* Handles responsive left-right padding by default by target top level groups. Can be undone by using .esc-pad class on a top level group */
@media screen and (max-width: 1240px) {
	.wp-site-blocks > .wp-block-group:not(.esc-pad), 
	.wp-site-blocks > .wp-block-template-part > .wp-block-group:not(.esc-pad), 
	.wp-block-template-part > .wp-block-template-part > .wp-block-group:not(.esc-pad), 
	.wp-block-template-part > .wp-block-template-part > .wp-block-template-part > .wp-block-group:not(.esc-pad),
	.wp-site-blocks > .entry-content > .wp-block-group:not(.esc-pad) {
		padding-left: 20px; 
		padding-right: 20px;
	}
}
 
/* utility classes for responsive layouts on medium devices */
@media screen and (max-width: 1024px) {
    body .is-layout-flex.md-reverse {flex-direction: row-reverse; justify-content: flex-end;} 
    body .is-layout-flex.md-stack {flex-direction: column;}  
    body .is-layout-flex.md-stack.md-reverse {flex-direction: column-reverse; justify-content: flex-end;} 
    body .is-layout-flex.md-stack  > :is(*, div) {display: block; width: 100%; margin-left: 0; margin-right: 0;} 
    body .wp-block-columns.is-layout-flex.md-reverse {flex-direction: column-reverse; justify-content: flex-end;}
}

/* utility classes for responsive layouts on small devices */
@media screen and (max-width: 781px) {
    body .is-layout-flex.mobile-reverse, body .is-layout-flex.sm-reverse {flex-direction: row-reverse; justify-content: flex-end;} 
    body .is-layout-flex.mobile-stack, body .is-layout-flex.sm-stack {flex-direction: column;} 
    body .is-layout-flex.mobile-stack.mobile-reverse, body .is-layout-flex.sm-stack.sm-reverse {flex-direction: column-reverse; justify-content: flex-end;} 
    body .is-layout-flex.mobile-stack  > :is(*, div), body .is-layout-flex.sm-stack  > :is(*, div) {display: block; width: 100%; margin-left: 0; margin-right: 0;} 
    body .wp-block-columns.is-layout-flex.mobile-reverse, body .wp-block-columns.is-layout-flex.sm-reverse {flex-direction: column-reverse; justify-content: flex-end;}
}

/****************************************************/
/************* Button default effects ***************/
/****************************************************/

/* Button hover states that adapt and work on most buttons */
.wp-element-button {
    transition: transform 0.4s; 
    position: relative;
}
.wp-element-button:hover {
    transform: translate(0,2px);
}
.wp-element-button:after {
    content: ' ';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: transform 0.4s;
    transform: scale(0);
}
.wp-element-button:hover:after {
    backdrop-filter: saturate(1.2) brightness(125%);
    transform: scale(1);
	border-radius: var(--wp--preset--border-radius--large);
}

/****************************************************/
/********* Menu and Mega Menu Functionality *********/
/****************************************************/

/* Fixes grandchild menu behavior */
.wp-block-navigation .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container {
    overflow: visible;
}
.wp-block-navigation-submenu .has-toggle::after, .wp-block-navigation-submenu .has-child .wp-block-navigation-submenu__toggle::after {
    right: 10px;
    top: calc(50% - 14px);
}
.wp-block-navigation-submenu__toggle[aria-expanded=true] {
    text-decoration: underline;
}

/* Restyles dropdown menu */
.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container {
    right: auto;
    left: 0;
    margin-top: 8px;
	border-top: 0;
}

/* Custom alert banner */
.custom-alert-banner p {
    margin-block-start: 0;
    margin-block-end: 0;
}

/* Sets up mega menu */
.mega-menu-group {
    position: absolute;
    width: 100%;
    max-width: 100vw;
    left: 0;
    top: 98px;
}
.mega-menu-group {
    display: none;
}
.mega-menu-group.open {
    display: block;
    z-index: 99;
}

/****** This allows the mega menu to be full width by removing the relative classes from the nav menu container *******/
header .wp-block-navigation__responsive-dialog {
    position: static;
}
header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    position: static;
}
header .wp-block-navigation{
    position: static !important;
}
header .wp-block-navigation .wp-block-navigation-item.full-drop {
    position: static;
}
header .wp-block-navigation .wp-block-navigation__container .full-drop .full-drop.wp-block-navigation__submenu-container {
    position: absolute;
    width: 100%;
}
.has-child.full-drop .wp-block-navigation-submenu__toggle::after { 
  position: relative;
  float: right;
}
.wp-block-navigation-item.open-on-click.full-drop .wp-block-navigation-submenu__toggle {
    padding-right: 0px;
}
.has-child.full-drop .wp-block-navigation-submenu__toggle .wp-block-navigation-item__label {
    padding-right: 6px;
}

/****************************************************/
/***** Fixing default mobile navigation issues ******/
/****************************************************/

/* The following rules address numerous spacing and positioning issues with the mobile navigation */
.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open {
    max-width: 100vw; 
    overflow: hidden; 
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
    padding: 0px 10px; 
    background-color: rgba(0,0,0,0.1)!important;
    border-radius: 3px; 
    width: calc(100% - 20px);
}
.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content {
    padding: var(--wp--preset--spacing--30);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
    padding: 10px;   
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container {
    gap: 0px; 
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    padding-top: 24px!important; 
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list {
    width: 100%; 
}

/****************************************************/
/**************** Misc adjustments ******************/
/****************************************************/
 
/* Fixes default gaps when using prefixes on MFBPro */
.wp-block-mfb-meta-field-block.is-display-inline-block .prefix {
    margin-inline-end: var(--mfb--gap, 0);
}
 
