/**
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.txt
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade this module to a newer
* versions in the future. If you wish to customize this module for your
* needs please refer to CustomizationPolicy.txt file inside our module for more information.
*
* @author Webkul IN
* @copyright Since 2010 Webkul
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/

#wk_store_locator {
    font-family: 'Open Sans', sans-serif;
    color: #393939;
}

.wk-margn-3 {
    margin: 3px;
}

.wk-store-heading {
    font-size: 16px;
    font-weight: Bold;
    margin-bottom: 10px;
    /* text-align: center; */
}

.wk-current-location {
    margin-top: 5px;
    color: #9c9c9c;
}

/* .wk-current-location-md-4 {
    text-align: center;
    cursor: pointer;
    left: 325px;
    position: absolute;
    top: 44%;
    opacity: .5;
} */

#wrapper_header_right {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    font-size: 14px;
}

.wrapper_content_left_not {
    background: white;
    margin-bottom: 20px;
    padding: 15px;
}

#wrapper_content_left {
    clear: both;
}

#wrapper_content_right {
    float: left;
    width: 100%;
    height: 500px;
    border-radius: 10px 10px 10px 10px;
    box-shadow: 0px 0px 4px -2px rgba(0, 0, 0, 0.5);
}

.wkstore-name {
    color: #247BDD !important;
    font-size: 15px;
    font-weight: 600;
}

.wkstore-name:focus {
    outline: 0 !important;
    text-decoration: none;
}

/* .wkstore-products ul {
	display: flex;
	flex-wrap: wrap;
	margin-top: 15px !important;
} */

.wkstores-heading {
    font-weight: 600;
    font-size: 16px;
    color: #000000;
}

.wkstore-details-heading {
    font-weight: bold;
    color: #333333;
    font-size: 14px;
}

.wk_store>div {
    width: 100%;
}

.wk_store table td {
    padding: 4px !important;
    vertical-align: top !important;
}

.wkstore_hours {
    display: none;
}

/* Estilos antigos mantidos para compatibilidade, mas sobrescritos pelo novo design */
.wk_store_details .wk_store {
    border-bottom: none;
}

#wrapper_content .wk_full_store {
    float: left;
    width: 100%;
    border-bottom: 1px solid #ebebeb;
}

#wrapper_content .wk_store_details,
body#product .wk_store_details {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}

.padding-2 {
    padding: 2px 0;
}

#wk_store_details_page {
    top: 40px !important;
    padding: 10px !important;
    margin: 10px;
    background: white;
    left: 0px !important;
    font-size: 13px;
    border-width: 1px;
    border-color: #cfcfcf;
    background-color: #ffffff;
}

html,
body,
#map-canvas {
    height: 100%;
    margin: 0px;
    padding: 0px;
    border-radius: 10px 10px 10px 10px;
}

#wrapper_header {
    background-color: #ffffff;
    border-radius: 10px 10px 10px 10px;
    box-shadow: 0px 0px 4px -2px rgba(0, 0, 0, 0.5);
    margin: 0px 0px 20px 0px;
    padding: 15px !important;
}

.wk-form-label {
    font-size: 13px;
    font-weight: bold;
    color: #333;
    padding-left: 4px;
    margin-bottom: 6px;
    display: block;
}

.wkstore-btn {
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    border-width: 1px;
    /* margin: 20px 0 10px; */
    background: #247bdd;
    padding: 12px 20px;
    text-align: center;
    text-decoration: none;
    color: white;
    display: inline-block;
    border: 1px solid #1857d5;
    /* min-width: 120px; */
}

.wkstore-btn:hover,
.wkstore-btn:focus {
    color: white;
    background: #1172d1;
}

.wkstore-btn-outline {
    background: #ffffff;
    color: #247bdd;
    border: 1px solid #247bdd;
    margin-top: 10px;
}

.wkstore-btn-outline:hover,
.wkstore-btn-outline:focus {
    background: #f8f9fa;
    color: #1857d5;
    border-color: #1857d5;
}

/* Spinner para o botão "Enter the shop" */
.wk-store-enter-btn.wk-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.8;
}

.wk-store-enter-btn.wk-loading .wk-spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid #247bdd;
    border-top-color: transparent;
    border-radius: 50%;
    animation: wk-spin 0.6s linear infinite;
    vertical-align: middle;
    margin: 0;
}

@keyframes wk-spin {
    to {
        transform: rotate(360deg);
    }
}

.wk_store .wkstore-btn {
    margin: 20px 0 10px !important;
}

#wrapper_content {
    /* margin-top: 10px; */
    width: 100%;
    float: left;
}

#wrapper_header_right .form-control {
    border-radius: 5px;
}

#module-wkstorelocator-storedetails .wk-store-hour table td,
table th {
    padding: 4px !important;
}

.padding-top-15 {
    padding: 15px 0;
}

.wk-border-left {
    border-left: 1px solid #dbdbdb !important;
}

/* #wk_store_products .product-miniature .thumbnail-container {
    position: relative;
    margin-bottom: 1.563rem;
    height: 298px;
    background: #fff;
    box-shadow: 2px 2px 8px 0 rgba(0, 0, 0, .2);
} */

.wk_store_details>.wk-border-none {
    border: 0px;
}

/* #wk_store_products .product-miniature .product-description {
    position: absolute;
    z-index: 1;
    background: #fff;
    width: 99.99%;
    bottom: 0;
    height: 48px;
    border-top: 1px solid #dbdbdb;
    box-shadow: 0px 0px 8px 0 rgba(0, 0, 0, .11);
} */
/*
#wk_store_products .product-miniature .product-price-and-shipping {
    color: #232323;
    font-weight: 700;
    text-align: center;
} */

/* #wk_store_products .product-miniature .product-title {
    text-align: center;
    text-transform: capitalize;
    margin-top: 1rem;
} */

/* #wk_store_products .product-miniature .product-title a {
    color: #7a7a7a;
    font-size: 0.875rem;
    text-decoration: none;
    text-align: center;
    font-weight: 400;
} */

#wk_store_products a.thumbnail:hover,
#wk_store_products a.thumbnail:focus {
    border-color: #dbdbdb;
}

#wk_store_products .img-thumbnail,
#wk_store_products .thumbnail {
    border: none;
}

#wk_store_products {
    width: 100%;
    margin-top: 10px;
}

#products_ul li:hover {
    background: #e4f7e4 !important;
}

#products_ul li {
    padding: 5px 10px 5px;
}

#products_ul {
    position: relative;
}

#products_ul ul {
    border: 1px solid #dbdbdb;
    position: absolute;
    width: 100%;
    background: white;
    z-index: 1;
}

.wk_store_products_container #nb_page_items {
    padding: 0 1rem !important;
    height: 27px !important;
}

#wk-store-timing tr:first-child td {
    padding: 0px 4px !important;
}

/* Estilos antigos - sobrescritos pelo novo design */
.wk_store .wkstore-name {
    padding: 0;
}

.wk_store_card .wkstore-name {
    padding: 0;
}



/************Modal Box *********/
.pac-container {
    z-index: 10000 !important;
    border-radius: 6px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
    border: 1px solid #e0e0e0 !important;
    margin-top: 0 !important;
    font-family: inherit !important;
    overflow: hidden !important;
    background: white !important;
    padding: 4px 0 !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
}

#search_city_block {
    position: relative;
}

#search_city_block>div[style*="inline-flex"] {
    position: relative;
    width: 100%;
}

/* Garante que o dropdown do Google seja posicionado relativo ao container, não ao input */
#search_city_block .pac-container {
    position: absolute !important;
    top: 80% !important;
    left: 0 !important;
    right: auto !important;
    margin-top: 0 !important;
}

#search_city_block #wk_current_location {
    flex: 1;
    min-width: 0;
}

#search_city_block .pac-container {
    width: 100% !important;
    left: 0 !important;
    right: auto !important;
    box-sizing: border-box !important;
}

.pac-container .pac-item {
    padding: 10px 14px !important;
    border-top: none !important;
    cursor: pointer !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    transition: background-color 0.15s ease !important;
    margin: 0 !important;
    background-color: #f8f9fa !important;
    white-space: normal !important;
    word-wrap: break-word !important;
}

.pac-container .pac-item:first-child {
    border-top: none !important;
}

.pac-container .pac-item:hover {
    background-color: #e9ecef !important;
}

.pac-container .pac-item-selected,
.pac-container .pac-item-selected:hover {
    background-color: #e9ecef !important;
}

.pac-container .pac-item-query {
    color: #333 !important;
    font-weight: 400 !important;
    font-size: 14px !important;
}

.pac-container .pac-icon {
    display: none !important;
}

.pac-container .pac-matched {
    font-weight: 500 !important;
    color: #333 !important;
}

.pac-container .pac-item-query .pac-matched {
    color: #333 !important;
}

.pac-container .pac-item-query {
    padding-right: 8px !important;
}

.pac-container::after {
    display: none !important;
}


.wk-padding-right-15 {
    padding-right: 15px;
}

.wkshow_hours {
    cursor: pointer;
}

body#checkout .gm-style-iw>button {
    display: none !important;
}

#pac-input {
    background-color: #fff;
    padding: 0 11px 0 13px;
    width: 230px;
    font-family: Roboto;
    font-size: 15px;
    font-weight: 300;
    text-overflow: ellipsis;
    top: 3px !important;
}

.controls {
    margin-top: 8px;
    border: 1px solid transparent;
    border-radius: 2px 0 0 2px;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    height: 32px;
    outline: none;
    box-shadow: 0 2px 6px rgb(0 0 0 / 30%);
}


@media (max-width: 991px) {
    .wk-store-shipping {
        margin: auto;
    }
}

@media (max-width: 540px) {
    #pac-input {
        left: 10px !important;
        top: 50px !important;
    }
}

/* ============================================
   DESIGN MODERNO PARA CARDS DE LOJAS
   ============================================ */

/* Grid layout responsivo */
.wk_store_details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 24px;
    padding-top: 20px;
}

.wk_store_card {
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0px 0px 4px -2px rgba(0, 0, 0, 0.5);
}

.wk_store_card_content {
    padding: 24px;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.wk_store_logo_container {
    text-align: center;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #f0f0f0;
}

.wk_store_logo {
    height: 60px;
    width: auto;
    object-fit: contain;
    border-radius: 8px;
    background: #fafafa;
    box-sizing: border-box;
}

.wk_store_info {
    flex: 1;
    margin-bottom: 20px;
}

.wk_store_info .wkstore-name {
    margin: 0 0 16px 0;
    padding: 0;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
}

.wk_store_info .wkstore-name a {
    color: #247BDD;
    text-decoration: none;
    transition: color 0.2s ease;
}

.wk_store_info .wkstore-name a:hover {
    color: #1857d5;
    text-decoration: none;
}

.wk_store_detail_item {
    display: flex;
    flex-direction: column;
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid #f5f5f5;
}

.wk_store_detail_item:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.wk_store_detail_label {
    font-weight: 600;
    font-size: 13px;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.wk_store_detail_value {
    font-size: 14px;
    color: #333;
    line-height: 1.5;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.wk_store_timing_current {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

.wk_store_open {
    color: #28a745;
    font-weight: 500;
}

.wk_store_closed {
    color: #dc3545;
    font-weight: 500;
}

.wk_store_actions {
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid #f0f0f0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.wk_store_actions .wkstore-btn {
    width: 100%;
    max-width: 487px;
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 500;
    text-align: center;
    border-radius: 6px;
    transition: all 0.2s ease;
    margin: 0 !important;
}

.wkstore_hours {
    display: none;
    margin-top: 12px;
    padding: 12px;
    background: #f8f9fa;
    border-radius: 6px;
    width: 100%;
}

.wkstore_hours.active {
    display: block;
}

/* Em desktop (lojas lado a lado), horário abre como overlay sem aumentar altura */
/* Usa classe JavaScript para detectar quando grid realmente mostra 2 colunas */
.wk-grid-two-columns {
    overflow: visible;
}

.wk-grid-two-columns .wk_store_detail_item {
    position: relative;
}

.wk-grid-two-columns .wk_store_detail_value {
    position: relative;
}

.wk-grid-two-columns .wkstore_hours {
    position: absolute !important;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 100;
    margin-top: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    border: 1px solid #e0e0e0;
    background: #ffffff;
    max-height: 300px;
    overflow-y: auto;
    border-radius: 8px;
}

.wk-grid-two-columns .wkstore_hours.active {
    display: block;
}

/* Garante que o card não aumenta de altura quando horário abre */
.wk-grid-two-columns .wk_store_card {
    overflow: visible;
}

.wk-grid-two-columns .wk_store_card_content {
    overflow: visible;
}

.wk-grid-two-columns #wk_store_content {
    overflow: visible;
}

/* Quando card está em hover ou horário está aberto, aumenta z-index */
.wk-grid-two-columns .wk_store_card:hover {
    z-index: 90;
    position: relative;
}

.wk-grid-two-columns .wk_store_card.hours-open {
    z-index: 90;
    position: relative;
}

.wk_store_hours_table {
    width: 100%;
    border-collapse: collapse;
}

.wk_store_hours_table tr {
    border-bottom: 1px solid #e8e8e8;
}

.wk_store_hours_table tr:last-child {
    border-bottom: none;
}

.wk_store_hours_table td {
    padding: 8px 4px;
    font-size: 13px;
}

.wk_store_hours_day,
.wk_store_hours_day_current {
    font-weight: 500;
    color: #555;
    width: 40%;
}

.wk_store_hours_day_current {
    color: #247BDD;
}

.wk_store_hours_separator {
    width: 5%;
    text-align: center;
    color: #999;
}

.wk_store_hours_time,
.wk_store_hours_time_current {
    color: #666;
}

.wk_store_hours_time_current {
    color: #247BDD;
}

.wkshow_hours {
    cursor: pointer;
    color: #247BDD;
    font-size: 20px;
    vertical-align: middle;
    margin-left: 8px;
    transition: transform 0.2s ease;
}

.wkshow_hours:hover {
    color: #1857d5;
}

.wkshow_hours.expanded {
    transform: rotate(180deg);
}

/* Responsividade para mobile (apenas quando grid mostra 1 coluna) */
/* Ajustado para 749px para não conflitar com o overlay que começa em 750px */
@media (max-width: 749px) {
    .wk_store_details {
        grid-template-columns: 1fr !important;
    }

    .wk_store_card {
        border-radius: 8px;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
        margin-bottom: 0;
        border: 1px solid #e0e0e0;
        overflow: hidden;
    }

    .wk_store_detail_item {
        position: relative;
    }

    .wk_store_card:hover {
        transform: none;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    }

    .wk_store_card_content {
        padding: 15px;
    }

    .wk_store_logo_container {
        margin-bottom: 12px;
        padding-bottom: 12px;
    }

    .wk_store_logo {
        height: 60px;
        width: auto;
        padding: 8px;
        box-sizing: border-box;
    }

    .wk_store_info {
        margin-bottom: 15px;
    }

    .wk_store_info .wkstore-name {
        font-size: 18px;
        margin-bottom: 14px;
        line-height: 1.4;
    }

    .wk_store_detail_item {
        margin-bottom: 12px;
        padding-bottom: 12px;
    }

    .wk_store_detail_label {
        font-size: 11px;
        margin-bottom: 5px;
        letter-spacing: 0.3px;
    }

    .wk_store_detail_value {
        font-size: 14px;
        line-height: 1.6;
    }

    .wk_store_timing_current {
        flex-wrap: wrap;
    }

    .wk_store_actions {
        padding-top: 16px;
        margin-top: 16px;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
    }

    .wk_store_actions .wkstore-btn {
        padding: 14px 20px;
        font-size: 15px;
        width: 100%;
        max-width: 487px;
        border-radius: 6px;
    }

    .wk_store_actions .wkstore-btn-outline {
        margin-top: 0;
    }

    .wkstore_hours {
        position: relative !important;
        margin-top: 10px;
        padding: 12px;
        border-radius: 6px;
        box-shadow: none !important;
        border: none !important;
        background: #f8f9fa !important;
        max-height: none !important;
    }

    .wk_store_hours_table {
        width: 100%;
    }

    .wk_store_hours_table td {
        padding: 6px 4px;
        font-size: 12px;
    }

    .wkshow_hours {
        font-size: 18px;
        margin-left: 6px;
    }

    .wkstores-heading {
        font-size: 18px;
        margin-bottom: 12px;
    }
}

@media (max-width: 768px) {
    #search_city_block .pac-container {
        top: 100% !important;
    }

    /* Ajustes de design para formulário em telas menores */
    #wrapper_header_right {
        flex-direction: column;
        gap: 0;
    }

    #wrapper_header_right .form-group,
    #wrapper_header_right #search_city_field,
    #wrapper_header_right #search_city_block {
        margin-bottom: 16px;
        width: 100%;
    }

    #wrapper_header_right .form-control {
        padding: 12px 14px;
        font-size: 15px;
        background-color: #f8f9fa;
        transition: background-color 0.2s;
    }

    #wrapper_header_right .form-control:focus {
        background-color: #ffffff;
        outline: none;
    }

    .wk-form-label {
        font-size: 14px;
        font-weight: bold;
        color: #333;
        padding-left: 0;
        margin-bottom: 8px;
    }

    #wrapper_header_right .btn.wkstore-btn {
        margin-top: 8px;
        width: 100%;
        padding: 14px 20px;
        font-size: 16px;
    }

    /* Ajuste para o ícone de localização */
    #wk-locate-current {
        margin-top: 0;
        align-self: center;
        margin-left: 8px;
    }

    #search_city_block>div[style*="inline-flex"] {
        display: flex;
        align-items: center;
    }

    #search_city_block #wk_current_location {
        flex: 1;
    }
}

/* Desktop - 2 colunas quando houver espaço */
@media (min-width: 768px) {
    .wk_store_details {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Desktop grande - manter 2 colunas mas com mais espaço */
@media (min-width: 1200px) {
    .wk_store_details {
        grid-template-columns: repeat(2, 1fr);
        gap: 28px;
    }

    .wk_store_card_content {
        padding: 28px;
    }
}

/* Override para manter compatibilidade */
#wrapper_content .wk_store_details,
body#product .wk_store_details {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
    gap: 24px !important;
}

#wk-locate-current {
    position: relative;
    left: 5px;
    cursor: pointer;
    transition: color 0.2s;
}

#wk-locate-current:hover {
    color: #7e43ff;
}

#wk-locate-current:active {
    color: #6d23ed;
}