/*---------------------------------------------------------------------------------

 Theme Name:   Shishin Martial Arts Academy
 Theme URI:    https://seishinacademy.co.uk/
 Description:  A bespoke website design by AboveMedia
 Author:       AboveMedia
 Author URI:   https://abovemedia.co.uk
 Template:     Divi
 Version:      1.0.5
 License:      GNU General Public License https://seishinacademy.co.uk/venues/v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html

------------------------------ ADDITIONAL CSS HERE ------------------------------*/
/* AM_image_min
   Forces every image module inside a row/column with this class to sit inside
   a box of the same minimum height, so mismatched image dimensions (tall vs
   square vs wide) line up visually across the row. Images are scaled down to
   fit inside the box while keeping their original aspect ratio (never
   stretched or cropped) — any leftover space is just blank padding above/below
   the image, not part of the image itself. */

.AM_image_min .et_pb_image .et_pb_image_wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    overflow: hidden;
}

.AM_image_min .et_pb_image .et_pb_image_wrap a,
.AM_image_min .et_pb_image a.et_pb_image_wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.AM_image_min .et_pb_image .et_pb_image_wrap img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 300px;
    object-fit: contain;
}

/*==========================================================*/
/*WOo extra fields */
.tc-extra-product-options .tmcp-field-wrap .price.tc-price .amount {
    padding-left: 20px !important;
}

.tm-extra-product-options .tc-epo-label.tm-has-undo-button {
    padding-left: 30px !important;
}

.tc-chars-remanining {
    padding-right: 15px !important;
}

.tc-label-text {
margin-left: 30px;
}

.tm-epo-reset-variation,
.tm-extra-product-options .tm-epo-reset-radio {
	margin-right: 60px;
}


/*==========================================================*/
/*bullet fix indent on text*/
ul li{
text-indent: -1em;
}

/* FONT ICONS
 * SOLID STAR:  &#xe033;
 * THUMBS UP: &#xe0dd;
 * Reference: https://www.elegantthemes.com/blog/resources/elegant-icon-font
 */

.pa-bullet-list-1 ul {
list-style-type: none!important;
}

.pa-bullet-list-1 ul li:before {
content: '\e052'!important;
color: #2cba6c;
font-family: 'ETMODULES'!important;
margin-right: 10px;
margin-left: -14px;
font-size: 1.2em!important;
}

.pa-bullet-list-2 ul {
list-style-type: none!important;
}

.pa-bullet-list-2 ul li:before {
content: '\e052'!important;
color: #edf000;
font-family: 'ETMODULES'!important;
margin-right: 10px;
margin-left: -14px;
font-size: 1.2em!important;
}

.pa-bullet-list-white ul {
list-style-type: none!important;
}

.pa-bullet-list-white ul li:before {
content: '\e052'!important;
color: white;
font-family: 'ETMODULES'!important;
margin-right: 10px;
margin-left: -14px;
font-size: 1.2em!important;
}


/*==========================================================*/
/* Instructors Modules equal height */
@media (min-width: 768px) {
.et_pb_team_member_description {
  min-height: 230px;
}
}


/*==========================================================*/
/* Venue Text Styling */
.v01 {
	color: #002D72;
	font-weight: bold;
	margin-right: 10px; 
}	

.v02 {
	text-transform: uppercase;
	color: #6a8fba;
	font-weight: bold;
}

/*==========================================================*/
/* WOO FULL SIDEBAR CSS */
.et_pb_widget, .widget_block {
	margin-bottom:10px !important;
}

.wc-block-product-search, .wp-block-woocommerce-product-search {
	margin-bottom: 20px !important;
}

.widget_block h2 {
	color: #fff;
	background: #737373;
    padding: 15px 10px 10px 10px;
	display: flex;
	align-items: left;
	text-align: left;
}

.widget_block h2:before {
	content: '';
	border-top: 2rem solid;
	margin-right:10px;
    margin-top: -5px;	
	flex: 5px 0 1;
	color: #000000;
}

/*==========================================================*/

/* SUB MENU FIXES */
.et-menu li li a {
    padding: 5px 5px; 
    width: 450px;
}

.nav li ul {
    position: absolute;
    padding: 5px 0; 
    width: 450px;
}
.nav li li {
  padding: 0px;
  margin: 0;
}
.et_mobile_menu li a:hover, .nav ul li a:hover {
  background-color: rgba(0, 0, 0, 0.16);
  opacity: 1 !important;
}
.et_pb_menu_0_tb_header.et_pb_menu .nav li ul {
  border-color: transparent !important;
}
ul.et_mobile_menu .menu-item-has-children .sub-menu.visible, #main-header ul.et_mobile_menu .menu-item-has-children .sub-menu.visible, .et-db #et-boc .et-l ul.et_mobile_menu .menu-item-has-children .sub-menu.visible, .et-db #main-header ul.et_mobile_menu .menu-item-has-children .sub-menu.visible {
  background: 
#6a8fba !important;
}
/*==========================================================*/
/* LOGO RESCALE ON MOBILES */
@media only screen and (max-width: 980px) {
#sse_logo {
  max-width: 30%;
}
}    

/*==========================================================*/
/*BESPOKE MOBILE MENU */

.et_mobile_nav_menu:before  {
content: 'MENU';
position: absolute;
right: 40px;
margin-top:5px;
margin-right: 20px;
color: #fff;
font-size:16px;
}

.et_mobile_menu {
border-top:0;
}

.et_mobile_menu li {
text-align:center !important;
}
  
.et_mobile_menu li li, .et_mobile_menu li ul {
padding-left:0 !important;
}

.et_mobile_menu {
min-width: 100vw;
}

.et_mobile_menu {
min-height:100vh !important;
min-height: -webkit-fill-available;
padding-top:50px !important;
}

html {
height: -webkit-fill-available;
}

.mobile_nav.opened .et_mobile_menu {
display:block !important;
}

/*==========================================================*/
/* COLLAPSABLE MOBILE MENU */

.et_pb_module .mobile_menu_bar::before {
  top: 8px !important;
}

#et_mobile_nav_menu .mobile_nav.opened .mobile_menu_bar::before,
.et_pb_module.et_pb_menu .et_mobile_nav_menu .mobile_nav.opened .mobile_menu_bar::before {
	content: '\4d';
}

ul.et_mobile_menu li.menu-item-has-children .mobile-toggle,
ul.et_mobile_menu li.page_item_has_children .mobile-toggle,
.et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children .mobile-toggle,
.et-db #et-boc .et-l ul.et_mobile_menu li.page_item_has_children .mobile-toggle {
	width: 44px;
	height: 100%;
	padding: 0px !important;
	max-height: 44px;
	border: none;
	position: absolute;
	right: 0px;
	top: 0px;
	z-index: 999;
	background-color: transparent;
}

ul.et_mobile_menu>li.menu-item-has-children,
ul.et_mobile_menu>li.page_item_has_children,
ul.et_mobile_menu>li.menu-item-has-children .sub-menu li.menu-item-has-children,
.et-db #et-boc .et-l ul.et_mobile_menu>li.menu-item-has-children,
.et-db #et-boc .et-l ul.et_mobile_menu>li.page_item_has_children,
.et-db #et-boc .et-l ul.et_mobile_menu>li.menu-item-has-children .sub-menu li.menu-item-has-children {
	position: relative;
}

.et_mobile_menu .menu-item-has-children>a,
.et-db #et-boc .et-l .et_mobile_menu .menu-item-has-children>a {
	background-color: transparent;
}

ul.et_mobile_menu .menu-item-has-children .sub-menu,
#main-header ul.et_mobile_menu .menu-item-has-children .sub-menu,
.et-db #et-boc .et-l ul.et_mobile_menu .menu-item-has-children .sub-menu,
.et-db #main-header ul.et_mobile_menu .menu-item-has-children .sub-menu {
	display: none !important;
	visibility: hidden !important;
}

ul.et_mobile_menu .menu-item-has-children .sub-menu.visible,
#main-header ul.et_mobile_menu .menu-item-has-children .sub-menu.visible,
.et-db #et-boc .et-l ul.et_mobile_menu .menu-item-has-children .sub-menu.visible,
.et-db #main-header ul.et_mobile_menu .menu-item-has-children .sub-menu.visible {
	display: block !important;
	visibility: visible !important;
}

ul.et_mobile_menu li.menu-item-has-children .mobile-toggle,
.et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children .mobile-toggle {
	text-align: center;
	opacity: 1;
}

ul.et_mobile_menu li.menu-item-has-children .mobile-toggle::after,
.et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children .mobile-toggle::after {
	top: 10px;
	position: relative;
	font-family: "ETModules";
	content: '\33';
	color: #8e1c2b;
	background: #f0f3f6;
	border-radius: 50%;
	padding: 3px;
}

ul.et_mobile_menu li.menu-item-has-children.dt-open>.mobile-toggle::after,
.et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children.dt-open>.mobile-toggle::after {
	content: '\32';
}

.et_pb_menu_0.et_pb_menu .et_mobile_menu:after {
	position: absolute;
	right: 5%;
	margin-left: -20px;
	top: -14px;
	width: 0;
	height: 0;
	content: '';
	border-left: 20px solid transparent;
	border-right: 20px solid transparent;
	border-bottom: 20px solid #ffffff;
}

.mobile_menu_bar {
	position: relative;
	display: block;
	bottom: 10px;
	line-height: 0;
}

.et_pb_menu_0.et_pb_menu .et_mobile_menu,
.et_pb_menu_0.et_pb_menu .et_mobile_menu ul {
	background-color: #ffffff!important;
	border-radius: 10px;
}

/*==========================================================*/
/*----- HEADER BLOCK PSEUDO -----*/
.header-block-line-left h2 {
	display: flex;
	align-items: left;
	text-align: left;
}

.header-block-line-left h2:before {
	content: '';
	border-top: 2rem solid;
	margin-right:10px;
	margin-top: -3px;	
	flex: 5px 0 1;
	color: #cda046;
}

/*==========================================================*/
/* FOOTER PADDING */
.bottom-nav {
  padding: 10px 0px 0px 0px;
}

#footer-info {
  padding: 0px 0px 20px 0px;
}

#et-footer-nav .container {
width: 90% !important;
}

#footer-bottom .container {
width: 90% !important;
}
/*==========================================================*/
/* MOBILE PREVENT STACKING */
@media only screen and (max-width: 770px) { 
.four-columns .et_pb_column {
width: 25%!important;
} 
}

@media only screen and (max-width: 770px) { 
.two-columns .et_pb_column {
width: 50%!important;
} 
}

/*==========================================================*/
/* CF7 to DIVI CSS */
.wpcf7-text, .wpcf7-textarea, .wpcf7-captchar {
background-color: #eee !important;
border: none !important;
width: 100% !important;
-moz-border-radius: 0 !important;
-webkit-border-radius: 0 !important;
border-radius: 0 !important;
font-size: 14px;
color: #999 !important;
padding: 16px !important;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.wpcf7-submit {
color: white !important;
margin: 8px auto 0;
cursor: pointer;
font-size: 20px;
font-weight: 500;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
padding: 6px 20px;
line-height: 1.7em;
background: #7cda24;
border: 2px solid;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-moz-transition: all 0.2s;
-webkit-transition: all 0.2s;
transition: all 0.2s;
}
.wpcf7-submit:hover { 
letter-spacing: 2px;
background-color: green; 
color: white;
padding: 6px 20px !important; 
}

/*--------------Fullwith Specialty Section----------------------*/
.ds-fullwidth-specialty> .et_pb_row {
min-width: 90% !important;
}

/*==========================================================*/
/*--------------SEISHIN ICON NAV----------------------*/

/*==========================================================*/
/* AM_SEISH_NAV — STACKED ICON HEADER NAVIGATION
   Purpose: Adds an icon ABOVE the text label for each top-level item
   in the header menu, on the Menu Module tagged with the CSS Class
   "am_seish_nav" (Divi Builder > Menu Module > CSS ID & Classes).

   CONSOLIDATED (v1.0.6): every rule below is listed ONCE, with two
   comma-separated selectors where needed — a plain selector (for
   normal pages) and a ".et-db #et-boc .et-l"-prefixed selector
   (needed to win a specificity fight against Divi's own cached
   menu styles on WooCommerce/CPT-templated pages, which use a
   different core stylesheet with higher-specificity rules). This
   replaces the earlier version, which duplicated every rule in a
   separate section further down the file — that duplication was
   the direct cause of the Join button colour not updating
   everywhere when only one copy was edited. Now there is only one
   place to change any given value.

   VARIABLES: all repeated sizing values are defined ONCE as CSS
   custom properties on .am_seish_nav below, referenced elsewhere
   via var(--name). Edit the single line here to update every rule
   using that variable.
*/

.am_seish_nav {
    container-type: inline-size;
    --nav-icon-size: 1.15cqw;   /* icon font-size AND icon box height/width */
    --nav-icon-gap:  0.6cqw;    /* space between icon and text label */
    --nav-text-size: 0.85cqw;   /* nav label font-size */
    --nav-arrow-gap: 0.4cqw;    /* space before the dropdown arrow */
    --nav-btn-border: 0.1cqw;   /* Join button border thickness */
    --nav-btn-pad-y:  0.6cqw;   /* Join button vertical padding */
    --nav-btn-pad-x:  1.5cqw;   /* Join button horizontal padding */
    --nav-item-pad-x: 0.5cqw;   /* horizontal padding between nav items */
    --nav-icon-color: #cda046;  /* colour of the ET-icon-font glyphs (Home, How To Book, Shop, Other) and the Cart icon. Does NOT affect the Karate/Kickboxing PNGs — their colour comes from the image file itself. */
}

/* Base layout: flex container that wraps, so the icon (forced onto
   its own row below) and the text+arrow row can stack vertically
   while text+arrow stay side-by-side on their own row. */
.am_seish_nav .et-menu-nav > ul > li > a,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li > a {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* SHARED ICON POSITIONING & SIZING
   Applies to all six top-level icon items together, so they sit in
   an identically sized box, on their own row above the text,
   regardless of whether the icon is a font glyph or a PNG image. */
.am_seish_nav .et-menu-nav > ul > li.menu-item-126732 > a:before,
.am_seish_nav .et-menu-nav > ul > li.menu-item-128652 > a:before,
.am_seish_nav .et-menu-nav > ul > li.menu-item-127230 > a:before,
.am_seish_nav .et-menu-nav > ul > li.menu-item-126915 > a:before,
.am_seish_nav .et-menu-nav > ul > li.menu-item-126913 > a:before,
.am_seish_nav .et-menu-nav > ul > li.menu-item-127567 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-126732 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-128652 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-127230 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-126915 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-126913 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-127567 > a:before {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-basis: 100%;
    order: -1;
    height: var(--nav-icon-size);
    line-height: 1;
    margin-bottom: var(--nav-icon-gap);
    color: var(--nav-icon-color);
}

/* HOME — ET icon font glyph \e074 */
.am_seish_nav .et-menu-nav > ul > li.menu-item-126732 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-126732 > a:before {
    font-family: 'ETMODULES';
    content: '\e074';
    font-size: var(--nav-icon-size);
}

/* HOW TO BOOK — ET icon font glyph \e023 */
.am_seish_nav .et-menu-nav > ul > li.menu-item-128652 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-128652 > a:before {
    font-family: 'ETMODULES';
    content: '\e023';
    font-size: var(--nav-icon-size);
}

/* SHOP — ET icon font glyph \e073 */
.am_seish_nav .et-menu-nav > ul > li.menu-item-127230 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-127230 > a:before {
    font-family: 'ETMODULES';
    content: '\e073';
    font-size: var(--nav-icon-size);
}

/* OTHER — ET icon font glyph \e08c */
.am_seish_nav .et-menu-nav > ul > li.menu-item-126915 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-126915 > a:before {
    font-family: 'ETMODULES';
    content: ' \e08c';
    font-size: var(--nav-icon-size);
}

/* KARATE — custom PNG icon (gold version) */
.am_seish_nav .et-menu-nav > ul > li.menu-item-126913 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-126913 > a:before {
    content: '';
    width: var(--nav-icon-size);
    background-image: url('https://seishinacademy.co.uk/wp-content/uploads/2026/07/gi_karate_gold.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

/* KICKBOXING — custom PNG icon (gold version) */
.am_seish_nav .et-menu-nav > ul > li.menu-item-127567 > a:before,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.menu-item-127567 > a:before {
    content: '';
    width: var(--nav-icon-size);
    background-image: url('https://seishinacademy.co.uk/wp-content/uploads/2026/07/kickboxing_gold.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

/* DROPDOWN ARROW REALIGNMENT
   Divi core places this arrow with position:absolute; right:0;
   top:0 — designed for the original inline (row) menu layout. This
   override cancels that positioning so the arrow sits inline, to
   the right of the text, on the same row. */
.am_seish_nav .et-menu .menu-item-has-children > a:first-child::after,
.et-db #et-boc .et-l .am_seish_nav .et-menu .menu-item-has-children > a:first-child::after {
    position: static;
    top: auto;
    right: auto;
    margin-left: var(--nav-arrow-gap);
}

/* Nav label text font-size — overrides Divi core's own text size. */
.am_seish_nav .et-menu-nav > ul > li > a,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li > a {
    font-size: var(--nav-text-size);
}

/* JOIN TODAY button styling — gold gradient fill, matching border,
   rounded corners, subtle drop shadow. */
.am_seish_nav .et-menu-nav > ul > li.am_seish_nav-btn > a,
.et-db #et-boc .et-l .am_seish_nav .et-menu-nav > ul > li.am_seish_nav-btn > a {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    width: 100%;
    text-align: center;
    background: linear-gradient(to top, #9b6816, #cda046);
    border-width: var(--nav-btn-border);
    border-style: solid;
    border-color: #cda046;
    color: #fff !important;
    padding: var(--nav-btn-pad-y) var(--nav-btn-pad-x);
    border-radius: 4px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}

/* CART ICON — existing Divi/WooCommerce cart icon, recoloured and
   repositioned above the "Cart" text (matches the other six icons). */
.pa-menu-shop > a:after,
.et-db #et-boc .et-l .pa-menu-shop > a:after {
    font-family: 'ETMODULES';
    content: '\e015';
    text-align: center;
    color: var(--nav-icon-color);
    transition: all .3s ease;
    order: -1;
    flex-basis: 100%;
    margin-bottom: var(--nav-icon-gap);
    display: flex;
    align-items: center;
    justify-content: center;
    height: var(--nav-icon-size);
    line-height: 1;
}

/* JOIN <li> PADDING OVERRIDE
   Removes Divi core's default (uneven) li padding for the Join
   item specifically, so the button's visible box is sized purely
   by the symmetric padding on the <a> above, not by Divi's own
   left/right li padding. */
#menu-primary-menu > li:nth-child(8) > a:nth-child(1),
.et-db #et-boc .et-l #menu-primary-menu > li:nth-child(8) > a:nth-child(1) {
    padding-right: 10px;
    padding-left: 10px;
}

/*==========================================================*/
/* NAV ITEM SPACING — horizontal padding between top-level items. */
.am_seish_nav.et_pb_menu--without-logo .et_pb_menu__menu > nav > ul > li > a,
.am_seish_nav .et_pb_menu__menu > nav > ul > li > a {
  padding-left: var(--nav-item-pad-x);
}

.et_pb_menu ul li {
    text-indent: 0 !important;
}

/*==========================================================*/
/* FORCE HAMBURGER AT 1050px
   Hides the desktop icon-nav and shows the mobile hamburger nav at
   1050px instead of Divi's own default (980px), since the
   responsive icon/text scaling still runs out of room and wraps
   below that width. Both plain and ".et-db #et-boc .et-l"-prefixed
   selectors included, since Divi's own competing rule at this
   breakpoint uses that same higher-specificity prefix on some
   page templates. */
@media (max-width: 1050px) {
    .et_pb_menu .et_pb_menu__menu,
    .et-db #et-boc .et-l #menu-primary-menu {
        display: none !important;
    }
    .et_pb_menu .et_mobile_nav_menu,
    .et-db #et-boc .et-l .et_pb_menu .et_mobile_nav_menu {
        display: flex !important;
        float: none !important;
        align-items: center !important;
    }
    .et_pb_menu .et_pb_menu__wrap {
        justify-content: flex-end !important;
    }
}

/*==========================================================*/
/* AM-NOSTACK-2COL — PREVENT 2-COLUMN ROW FROM STACKING
   Purpose: Forces a Divi row's two columns to stay side-by-side
   (50%/50%), centered, at Tablet and Phone widths, instead of
   Divi's default behaviour of stacking them into a single column
   below 981px. Apply the CSS Class "am-nostack-2col" to the ROW
   itself (Divi Builder > Row Settings > CSS ID & Classes). */
@media only screen and (max-width: 980px) {
    .am-nostack-2col.et_pb_row {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: center !important;
    }
    .am-nostack-2col.et_pb_row > .et_pb_column {
        width: 50% !important;
        max-width: 50% !important;
    }
}

/*==========================================================*/
/* AM-CLEAN-LIST — fixes list marker/number misalignment caused
   by <li><p>...</p></li> structure (marker and text separating
   onto different lines, or marker overlapping text). Scoped to
   a new class so the existing global "ul li{text-indent:-1em}"
   rule is left untouched everywhere else on the site. Apply the
   CSS Class "am-clean-list" to the Text Module containing lists
   like this. */
.am-clean-list ul,
.am-clean-list ol {
    padding-left: 1.4em;
}
.am-clean-list ul li,
.am-clean-list ol li {
    text-indent: 0;
    list-style-position: outside;
    margin-bottom: 0.6em;
}
.am-clean-list ul li p,
.am-clean-list ol li p {
    display: inline;
    margin: 0;
}