/*
Theme Name: Yoko FBA FiberConnect
Theme URI: 
Author: Yoko Co
Author URI: 
Description: A custom theme for FBA's FiberConnect event by Yoko Co.
Requires at least: 6.8
Tested up to: 6.8
Requires PHP: 5.7
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: yoko-fba-fiberconnect
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);
    
}

/****************************************************/
/********* 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: 0px;
    box-shadow: 0px 0px 24px rgba(0,0,0,0.05);
    border-radius: 4px; 
}

.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;
} 



/****** Standardizes appearance of dropdown arrow *******/ 

.has-toggle::after, .has-child .wp-block-navigation-submenu__toggle::after  {
    width: 12px; 
    content: '⌄';
    display: block;
    position: absolute;
    top: 0px;
    right: 0px; 
    font-size: 14px;  
   }
   
   .has-toggle .wp-block-navigation-item__content {
       padding-right: 18px; 
   }
   
   .has-child .wp-block-navigation__submenu-icon {
       display: none;
   }


/****** 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: 10px 24px; 
}

.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);
}
