/*======================================
Theme Name: Public Safety Group
Theme URI: https://divicake.com/
Description: Child theme for Public Safety Group Divi theme
Version: 1.0
Author: Smith Consulting
Author URI: https://divicake.com/
Template: Divi
======================================*/


/* You can add your own CSS styles here. Use !important to overwrite styles if needed. */
body.home {
    font-size: 1.03em;
}
h1 {
    padding-bottom: 30px;
}
h2 {
    padding-bottom: 20px;
}
h3 {
    padding-bottom: 10px;
}

#et-main-area p a, #et-main-area p a:hover {
    text-decoration: underline;
}
/*a.et_pb_button {
    text-decoration: none !important;
}
a.et_pb_menu__cart-button {
    text-decoration: none;
}*/

#sitename h4{
	color: #CE150E;
    text-align: center;
    padding-bottom: 0;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -0.01em;
}
#sitetag h5 {
    text-align: center;
    font-family: Open Sans,Arial,sans-serif;
    font-weight: 400;
}
#menu-main-menu li li a,
#menu-main-menu-1 li li a {
    text-transform: capitalize !important;
}
#menu-footer-menu.et-menu a {
    color: #f8f8f8;
}

/* Search input text & caret (optional) */
.et-db #et-boc .et-l .et_pb_menu .et_pb_menu__search-input{
  color:#fff;
  caret-color:#fff;
}

/* Placeholder */
.et-db #et-boc .et-l .et_pb_menu .et_pb_menu__search-input::placeholder{ color:#fff; opacity:1; }
.et-db #et-boc .et-l .et_pb_menu .et_pb_menu__search-input::-webkit-input-placeholder{ color:#fff; opacity:1; } /* Chrome/Safari */
.et-db #et-boc .et-l .et_pb_menu .et_pb_menu__search-input::-moz-placeholder{ color:#fff; opacity:1; } /* Firefox */
.et-db #et-boc .et-l .et_pb_menu .et_pb_menu__search-input:-ms-input-placeholder{ color:#fff; }          /* IE 10-11 */
.et-db #et-boc .et-l .et_pb_menu .et_pb_menu__search-input::-ms-input-placeholder{ color:#fff; }         /* old Edge */

/* Search input text & caret (optional) on the home page */
.et-db #et-boc .et-l #home-main-menu.et_pb_menu .et_pb_menu__search-input{
  color:#333;
  caret-color:#333;
}

/* Placeholder */
.et-db #et-boc .et-l #home-main-menu.et_pb_menu .et_pb_menu__search-input::placeholder{ color:#333; opacity:1; }
.et-db #et-boc .et-l #home-main-menu.et_pb_menu .et_pb_menu__search-input::-webkit-input-placeholder{ color:#333; opacity:1; } /* Chrome/Safari */
.et-db #et-boc .et-l #home-main-menu.et_pb_menu .et_pb_menu__search-input::-moz-placeholder{ color:#333; opacity:1; } /* Firefox */
.et-db #et-boc .et-l #home-main-menu.et_pb_menu .et_pb_menu__search-input:-ms-input-placeholder{ color:#333; }          /* IE 10-11 */
.et-db #et-boc .et-l #home-main-menu.et_pb_menu .et_pb_menu__search-input::-ms-input-placeholder{ color:#333; }         /* old Edge */
/* Home page banner */
#banner-row {

}
#banner-col1 {

}
#banner-col2{
    display: flex;
    align-items: center;
}
#banner-img {

}
#banner-logo {
    width: 50%;
    max-width: 235px;
    margin-bottom: 10px;
}
#banner-logo img {
    padding-bottom: 10px;
}
#banner-tag h2 {
    font-size: 18px;
    font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem); /* 20/16 1920/320 */
}
#banner-text {
    max-width: 500px;
}
#banner-text h1 {
    font-size: 2.8rem;
    font-size: clamp(2.25rem, -0.09615384615384626rem + 3.8461538461538463vw, 3.75rem) !important; /* 60/38 1600/980 */
}
#banner-text h3 {
    font-size: 20px;
    font-size: clamp(1.063rem, 0.7705128205128204rem + 0.4794871794871796vw, 1.25rem); /* 20/16 1600/976 */
}
/* general blurb settings */

.et_pb_blurb .et_pb_blurb_description {
    line-height: 1.6;
    font-size: 1rem;
}

/* schedule page */

.custom-course-entry {
}
.custom-course-entry .price {
}
.custom-course-entry .quantity {
    display: inline-block;
    vertical-align: middle;
    margin: 0 30px 0 0 !important;
    width: auto;
    overflow: hidden;
}
.custom-course-entry.quantity input.qty {
    border: 0 solid #333 !important;
    width: auto;
    max-width: 42px;
    background: #eee;
    text-align: center;
}
/* Container styles for each course entry */
#sched-row p {
    padding-bottom: 0;
}
.custom-course-entry {
  border-bottom: 1px solid #ddd;
  padding: 1.5rem 0;
  display: flex;
  flex-direction: column;
  line-height: 1.7em;
}
#sched-row .custom-course-entry p {
    padding-bottom: 5px;
}

 .custom-course-entry .cart {
    display: flex;
 }
/* Style the date */
.custom-course-entry .course-date {
  font-size: 1.125rem;
  font-weight: 600;
  color: #333;
  padding-bottom: 5px;
}

/* Title and category line */
.custom-course-entry .course-title-line {
  font-size: 1rem;
  margin: 0 0 0.75rem;
}
.custom-course-entry .course-title-line .course-title {
  color: #0071a1;
  text-decoration: none;
}
.custom-course-entry .course-cat {
  color: #666;
  font-style: italic;
}

/* Price cosmetics */
.custom-course-entry .price {
  display: inline-block;
}

/* Form layout: price, qty input, button */
.custom-course-entry form.cart {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.custom-course-entry form.cart .quantity input[type="number"] {
  width: 4rem;
  padding: 0.3rem;
  border: 1px solid #ccc;
  border-radius: 4px;
}
.custom-course-entry form.cart .button {
  background-color: #0071a1;
  color: #fff;
  border: none;
  padding: 0.5rem 1rem;
  cursor: pointer;
  border-radius: 4px;
}
.custom-course-entry form.cart .button:hover {
  background-color: #005d85;
}

/* Make schedule column structure clear (if used in a grid) */
.course-schedule-list {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem 2rem;
  align-items: start;
}

/* Responsive tweaks */
@media (max-width: 600px) {
  .course-atc-form {
    flex-direction: column;
    align-items: stretch;
  }
  .course-atc-form .quantity input,
  .course-atc-form .button {
    width: 100%;
  }
}



/* product pages */

.woocommerce div.product p.price {

}
.woocommerce-page .quantity input.qty {
	color: #444;
    font-size: 16px;
    padding: 12px;
    line-height: 1em;
}
#product-detail .et-dynamic-content-woo--product_additional_information.woocommerce h2,
#review_form_wrapper {
	display: none;
}

/* custom add to cart notice */
.custom-instructions {
    margin-bottom: 1em;
    padding: 1em;
    background-color: #f2f2f2;
    border-left: 4px solid #CE150E;
}

/* product page reviews */
.woocommerce #single-prod-review #reviews #comments h3.product-reviews-heading {
    font-size: 20px;
    text-transform: uppercase;
    color: #a7a7a7;
    text-align: center;
    margin-bottom: 0 !important;
}
#single-prod-review .et_pb_divider.reviews-divider {
    position: relative;
}
#single-prod-review .et_pb_divider.reviews-divider:before {
    content: "";
    width: 70px;
    height: 1px;
    border-top: 3px solid #CE150E;
    position: absolute;
    left: 50%;
    top: 0;
    z-index: 10;
    transform: translateX(-50%);
}
#single-prod-review h4.product-reviews-subtitle {
    text-align: center;
    font-size: 28px;
    text-transform: capitalize;
    color: #001F68;
}
.woocommerce #single-prod-review  #reviews #comments ol.commentlist li, .woocommerce-page #single-prod-review  #reviews #comments ol.commentlist li {
    margin-bottom: 15px !important;
}
#single-prod-review li.comment .comment-text .description{
    font-style: italic;
    font-weight: 600;
    font-size: 17px;
    position: relative;
    text-align: center;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text p {
    padding-bottom: 0 !important;
}

/* Style WooCommerce product <li> elements in archive view */
#catlist li.cat-item.product {
    list-style: none;
    padding: 2rem;
    margin: 0 0 2rem;
    border: 1px solid #ddd;
    border-radius: 8px;
    background-color: #fbfbfb;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    width: 100%;
}

/* Improve product title spacing */
#catlist li.cat-item.product h3.woocommerce-loop-product__title {
    font-size: 1.25rem !important;
    font-weight: 700;
    margin-bottom: 0;
    padding-bottom: 0;
}

/* Subtitle / category text (e.g., duration & format) */
#catlist li.cat-item.product .product-categories {
    font-style: italic;
    color: #777;
    margin-bottom: 0.25rem;
    font-size: .9rem;
}

/* Price */
#catlist li.cat-item.product .custom-loop-price {
    font-weight: 700;
    display: block;
}

/* Excerpt styling */
#catlist li.cat-item.product .product-excerpt {
    line-height: 1.5;
}

/* Read More link style */
#catlist .read-more-link {
    font-size: 0.9rem;
    margin-left: 0.25rem;
    text-decoration: underline;
    color: #0047c4;
}
a.button.product-link-button {
    color: #fff;
}

#catlist .read-more-link:hover {
    color: #005b8f;
}

ul.product-titles-by-category {
  columns: 2;
  -webkit-columns: 2;
  -moz-columns: 2;
  column-gap: 2em;  
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}

/* Shop and arcive page titles */

.woocommerce ul.products li.product h3.woocommerce-loop-product__title a {
    text-decoration: underline;
    color: #0047c4 !important;
}
.product-categories-below-title {
    font-weight: 700;
    color: #555;
}


/* select box */
.woocommerce div.product form.cart .variations {
    max-width: 600px;
}
.woocommerce div.product form.cart .variations label {
    padding-right: 10px;
}

/* Make the select box more modern and visually distinct */
.woocommerce div.product form.cart .variations td select {
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 15px;
    color: #333;
    font-family: "Open Sans", sans-serif;
    width: 100%;
    max-width: 100%;
    transition: all 0.3s ease;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg fill='gray' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 16px;
}

.single_variation .price {
  display: block !important;
}


.reset_variations {
  margin-left: 1em;
  text-decoration: underline;
  color: #555;
  cursor: pointer;
}
/* PRODUCT PAGES */
.et_pb_wc_add_to_cart form.cart .variations td.value span:after {
    border: 0;
}
#custom_checkout_field {
    margin-bottom: 30px;
}
#cust-chkout .woocommerce-billing-fields h3, #cust-chkout .woocommerce-additional-fields h3 {
    line-height: 1.2em;
}

#course_registration_field .optional {
    display: none;
}

/* Reference Manuals page in Divi Theme Builder */
#ref-man .man-combo .yith-wcpb-product-bundled-items {
    display: none;
}


/* Hide empty product image gallery */
.woocommerce-product-gallery,
.woocommerce ul.products li.product .woocommerce-loop-product__link img,
.wc-block-grid__product-image,
.woocommerce div.product div.images,
.woocommerce div.product div.images img.wp-post-image,
.yith-wcpb-product-bundled-item-image,
.woocommerce-product-attributes-item {
    display: none !important;
}

/* Checkout page */
#psg-pmt .woocommerce-order p.woocommerce-thankyou-order-received{
    font-size: 20px !important;
    color: #111;
    font-weight: bold;
    margin-bottom: 10px;
}
#psg-pmt .woocommerce-order ul.woocommerce-thankyou-order-details.order_details {
    font-size: 16px !important;
    margin-bottom: 1em;
}

/* Forminator forms */
.forminator-ui#forminator-module-821.forminator-design--default .forminator-label {
    font-size:  15px;
}

/* Mobile menu phone number style */

a.custom-phone {
    color: #fff;
    text-decoration: none;
    margin: 0 10px;
    line-height: 1;
    display: flex;
    align-items: center;
}
.custom-phone .et-pb-icon {
    font-size: 20px !important;
    color: #fff;
}
#mheader-section .et_pb_menu__logo img:after {
    content: "The Public Safety Group";
    font-size: 14px;
}

/* global footer */
#footer-section .et_pb_menu .et_pb_menu__wrap,
#menu-footer-menu,
#footer-section .et_pb_menu .et_pb_menu__menu>nav>ul>li {
    display: block;
}
#menu-footer-menu li {
    padding-bottom: 5px;
}
#footer2-section,
#footer2-section a {
    color: rgba(221, 221, 221, 0.7);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
}

/* Responsive screen sizes */
/*#menu-main-menu-1 is not home main menu
  #menu-main-menu is home main menu */

@media screen and (min-width: 981px) {
    #menu-col {
        width: calc(100% - 110px);
    }
    #logo-col {
        width: 110px;
    }
    #phone {
        margin-bottom: 8px;
    }
    #menu-main-menu.et-menu.nav li,
    #menu-main-menu-1.et-menu.nav li {
        line-height: 1.3em;
    }
    #menu-main-menu.et-menu.nav li li,
    #menu-main-menu-1.et-menu.nav li li {
        padding: 0 10px 8px !important;
    }
    .et-menu.nav ul li li a:hover {
        background: transparent;
    }
    #menu-main-menu, #menu-main-menu-1 {
        margin-right: 5px;
    }
    #mainmenu .a.et_pb_menu__icon{
        padding: 0 5px;
    }
    #menu-main-menu li a {
        color: #333;
    }
    #menu-main-menu li a:hover {
        color: #111;
        opacity:  1;
    }
    #menu-main-menu-1 li a,
    #menu-main-menu-1 li a:hover {
        color: #fff;
        opacity: 1;
    }
    #menu-main-menu li a:hover,
    #menu-main-menu-1 li a:hover{
        text-decoration: none;
    }
    #menu-main-menu-1 li li a,
    #menu-main-menu-1 li li a:hover {
        color: #555;
        opacity: 1;
    }
    #menu-main-menu li a:before,
    #menu-main-menu-1 li a:before {
        content: "";
        position: absolute;
        z-index: -2;
        left: 0;
        right: 100%;
        bottom: 0;
        background: #fff;
        height: 2px;
        -webkit-transition-property: right;
        transition-property: right;
        -webkit-transition-duration: 0.3s;
        transition-duration: 0.3s;
        -webkit-transition-timing-function: ease-out;
        transition-timing-function: ease-out;
    }
    #menu-main-menu li a:before,
    #menu-main-menu li li a:before,
    #menu-main-menu-1 li li a:before {
        background: #ee0200;
    }
    #menu-main-menu li a:hover:before,
    #menu-main-menu-1 li a:hover:before {
        right: 0;

    }
    /* category pages - columns */
    #catlist.products {
        display: flex;
        flex-wrap: wrap;
    }
    #catlist li.cat-item.product {
        margin: 0 2% 2rem;
        width: 46% !important;
    }
    #catlist li.cat-item.product .product-excerpt {
        line-height: 1.44;
        font-size: .94em;
    }
    /* schedule page */
    .custom-course-entry {
      display: block;
      line-height: 1.7em;
    }
    #sched-row .custom-course-entry p {
        padding-bottom: 0px;
        margin-right: 15px;
        margin-bottom: 5px;
        display: inline-block;
    }

    .custom-course-entry .cart {
        display: flex;
     }
    /* Style the date */
    .custom-course-entry .course-date {
        font-size: 1rem;
        white-space: nowrap;
    }

    /* Title and category line */
    .custom-course-entry .course-date,
    .custom-course-entry .course-title-line,
    .custom-course-entry .price {
        margin-right: 15px;
        margin-botom: 0;
    }
    .custom-course-entry .cat {
        white-space: nowrap;
    }
}
@media screen and (min-width: 1920px) {
    #catlist li.cat-item.product {
        margin: 0 2% 2rem;
        width: 29%;
    }
}

/*@media (max-width: 980px) {
    #catlist li.cat-item.product {
        margin: 0 0 2rem;
        width: 100% !important;
    }
}*/

@media screen and (max-width: 980px) {
    #catlist li.cat-item.product, .et-db #et-boc .et-l .et_pb_shop ul#catlist.products.columns-1 li.product {
        margin: 0 0 2rem;
        width: 100% !important;
    }
     
  /* Ensure the row holding both phone and menu items is flex
  .et_pb_menu_inner_container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
  } */

  /* Keep phone number styled and on the left
  .et_pb_text_0_tb_header {
    margin-right: 10px;
    white-space: nowrap;
    font-size: 16px;
    font-weight: 600;
    color: #ffffff;
  } */

  /* Ensure menu icons don't wrap or collapse 
  .et_pb_menu__wrap {
    flex-shrink: 0;
  }*/

  /* Force dropdown to break out and be full width 
  ul.et_mobile_menu {
    position: fixed !important;
    top: 45px !important; 
    left: 0;
    right: 0;
    width: 100vw;
    max-width: 100vw;
    background-color: #002366;
    z-index: 9999;
  }*/

  /* Optional: Ensure menu items don't get squished */

  ul.et_mobile_menu li a {
    padding: 10px;
    font-size: 14.4px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
  ul.et_mobile_menu li a:hover {
    opacity: 1 !important;
  }


    /*change hamburger icon to x when mobile menu is open*/

    #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';
    }


    /*adjust the new toggle element which is added via jQuery*/

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


    /*some code to keep everyting positioned properly*/

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


    /*remove default background color from menu items that have children*/

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


    /*hide the submenu by default*/

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


    /*show the submenu when toggled open*/

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


    /*adjust the toggle icon position and transparency*/

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


    /*submenu toggle icon when closed*/

    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: #00d263;
        background: #f0f3f6;
        border-radius: 50%;
        padding: 3px;
        font-size: 18px;
    }


    /*submenu toggle icon when open*/

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


    /*add point on top of the menu submenu dropdown*/

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


    /*force the background color and add a rounded border

    .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;
    }*/
    #banner-col1 {
        display: none;
    }
    /* Training Page columns */
    ul.product-titles-by-category {
        columns: 1;
        -webkit-columns: 1;
        -moz-columns: 1;
        column-gap: 0;
    }
  
}
@media only screen and (max-width: 768px) {
    
}




