/*
Theme Name: Basalt
Author: Francisco Mónaco
Author URI: http://franciscomonaco.com/
Description: Tailor made theme developed specially for Basalt's website.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

/*------------------------------------------ Reset */

*                                                                           { box-sizing: border-box; outline: none; outline: none; }
p, a, h1, h2, h3, h4, h5, h6, ul, ol, li,
body, div, section, nav, input, textarea
                                                                            { margin: 0; padding: 0; font-weight: normal; }
video, svg, img                                                             { vertical-align: middle; width: 100%; height: auto; display: block; }
input[type="text"], input[type="submit"], textarea, select                  { -webkit-appearance: none; -moz-appearance: none; appearance: none; }



/*------------------------------------------------------------------------------------ Woo */

.woocommerce-product-gallery                                                { display: none; }
.woocommerce-tabs.wc-tabs-wrapper                                           { display: none; }
#sidebar                                                                    { display: none; }
.woocommerce div.product div.summary p.stock                                { display: none; }
.woocommerce div.product div.summary .product_title                         { display: none; }
.woocommerce div.product div.summary .price                                 { display: none; }
.woocommerce div.product div.summary .woocommerce-product-details__short-description { display: none; }
.woocommerce div.product div.summary .product_meta                          { display: none; }

.wp-block-woocommerce-checkout svg                                          { width: initial; height: initial; display: initial; }



/*------------------------------------------------------------------------------------ Text */

.upper                                                                      { text-transform: uppercase; }
.lower                                                                      { text-transform: lowercase; }
.text-center                                                                { text-align: center; }
.text-left                                                                  { text-align: left; }
.text-right                                                                 { text-align: right; }
.text-just                                                                  { text-align: justify; }



/*------------------------------------------------------------------------------------ Border */

.border                                                                     { border-width: 1px; border-style: solid; }
.border-2                                                                   { border-width: 2px; border-style: solid; }
.border-3                                                                   { border-width: 3px; border-style: solid; }
.border-top                                                                 { border-top-width: 1px; border-top-style: solid; }
.border-top-2                                                               { border-top-width: 2px; border-top-style: solid; }
.border-top-3                                                               { border-top-width: 3px; border-top-style: solid; }
.border-bottom                                                              { border-bottom-width: 1px; border-bottom-style: solid; }
.border-bottom-2                                                            { border-bottom-width: 2px; border-bottom-style: solid; }
.border-bottom-3                                                            { border-bottom-width: 3px; border-bottom-style: solid; }
.border-left                                                                { border-left-width: 1px; border-left-style: solid; }
.border-left-2                                                              { border-left-width: 2px; border-left-style: solid; }
.border-left-3                                                              { border-left-width: 3px; border-left-style: solid; }
.border-right                                                               { border-right-width: 1px; border-right-style: solid; } 



/*------------------------------------------------------------------------------------ Editor content */

.editor-content                                                             { font-size: 16px; line-height: 1.6; } 
.editor-content h1                                                          { font-size: 2rem; font-weight: bold; margin-bottom: 1rem; } 
.editor-content h2                                                          { font-size: 1.75rem; font-weight: bold; margin-bottom: 1rem; } 
.editor-content h3                                                          { font-size: 1.5rem; font-weight: bold; margin-bottom: 0.75rem; } 
.editor-content h4                                                          { font-size: 1.25rem; font-weight: bold; margin-bottom: 0.5rem; } 
.editor-content h5                                                          { font-size: 1.1rem; font-weight: bold; margin-bottom: 0.5rem; } 
.editor-content h6                                                          { font-size: 1rem; font-weight: bold; margin-bottom: 0.5rem; } 
.editor-content p                                                           { margin-bottom: 1rem; } 
.editor-content ul                                                          { list-style-type: disc; padding-left: 1.5rem; margin-bottom: 1rem; } 
.editor-content ol                                                          { list-style-type: decimal; padding-left: 1.5rem; margin-bottom: 1rem; } 
.editor-content li                                                          { margin-bottom: 0.5rem; } 
.editor-content blockquote                                                  { border-left: 4px solid #ccc; padding-left: 1rem; font-style: italic; color: #666; margin: 1rem 0; } 
.editor-content pre                                                         { background: #f4f4f4; padding: 1rem; border-radius: 5px; overflow-x: auto; font-family: "Courier New", monospace; font-size: 14px; } 
.editor-content code                                                        { background: #eee; padding: 0.2rem 0.4rem; border-radius: 3px; font-family: "Courier New", monospace; }  
.editor-content table                                                       { width: 100%; border-collapse: collapse; margin-bottom: 1rem; } 
.editor-content th, .editor-content td                                      { border: 1px solid #ddd; padding: 0.75rem; text-align: left; } 
.editor-content th                                                          { background: #f7f7f7; font-weight: bold; } 
.editor-content img                                                         { max-width: 100%; height: auto; border-radius: 5px; } 
.editor-content hr                                                          { border: 0; height: 1px; background: #ddd; margin: 2rem 0; } 
.editor-content .wp-block-button__link                                      { display: inline-block; background: #000; color: #fff; padding: 0.5rem 1rem; text-decoration: none; border-radius: 5px; transition: background 0.3s ease; } 
.editor-content .wp-block-button__link:hover                                { background: #5a5a5a; }
.editor-content div:last-child,
.editor-content p:last-child                                                { margin-bottom: 0; }



/*------------------------------------------------------------------------------------ General classes */

body                                                                        { touch-action: auto !important; }
main                                                                        { min-height: 100vh; }
.enter-content main                                                         { opacity: 1 !important; }
.cover-image                                                                { background-size: cover; background-position: center; }

.deepspace                                                                  { position: fixed; top: 0; left: 0; z-index: -1; }
.deepspace.active                                                           { transition: all 0.8s; opacity: 1 !important; }

.fakespace                                                                  { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: -1; overflow-x: scroll; transform: translateX(220px); transition: all 2.0s cubic-bezier(0.25, 1, 0.5, 1); }
.fakespace img                                                              { height: 100vh; width: auto; opacity: 0; transition: all 2.0s; }
.fakespace.active                                                           { transform: translateX(0); }
.fakespace.active img                                                       { opacity: 1; transition-delay: 0.4s; max-width: none; }

.ghost-link                                                                 { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }

/* Intro */
.intro-loader                                                                     { position: fixed; top: 0; left: 0; right: 0; bottom: 0; transition: all 0.8s; }
.intro-loader .inner                                                              { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; }
.intro-loader .inner .logo                                                        { width: 200px; }
.enter-loader .intro-loader                                                       { opacity: 1 !important; }
.enter-loader.exit-loader .intro-loader                                           { opacity: 0 !important; }

.disable                                                                    { pointer-events: none; opacity: 0.5; }



/*------------------------------------------------------------------------------------ Nav */

.mobile-bar                                                                 { position: fixed; top: 0; left: 0; width: 100%; height: 80px; z-index: 11; }
.enter-content .mobile-bar                                                  { opacity: 1 !important; transform: translateY(0) !important; }
.mobile-bar .inner                                                          { display: flex; justify-content: space-between; align-items: center; height: 100%; }
.mobile-bar .inner .menu-button                                             { width: 75px; position: relative; }
.mobile-bar .inner .menu-button .dummy                                      { opacity: 0; }
.mobile-bar .inner .menu-button .string                                     { position: absolute; left: 0; top: 0; transition: all 0.4s ease; }
.mobile-bar .inner .menu-button .string-2                                   { opacity: 0; }
.menu-is-open .mobile-bar .inner .menu-button .string                       { transition: all 0.8s ease; }
.menu-is-open .mobile-bar .inner .menu-button .string-1                     { opacity: 0; }
.menu-is-open .mobile-bar .inner .menu-button .string-2                     { opacity: 1; }
.mobile-bar .inner .brand                                                   { height: 26px; }
.mobile-bar .inner .brand svg                                               { height: 100%; width: auto; }
.mobile-bar .inner .cart                                                    { width: 75px; display: flex; justify-content: flex-end; }

.mobile-menu                                                                { position: fixed; top: 80px; left: 0; width: 100%; height: calc(100vh - 80px); transform: translateY(-100px); opacity: 0; pointer-events: none; transition: all 0.4s ease; z-index: 10; }
.menu-is-open .mobile-menu                                                  { transform: translateY(-0); opacity: 1; pointer-events: all; transition: all 0.8s ease; }
.mobile-menu .inner                                                         { height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
    
.mobile-menu .products .item                                                { margin-bottom: 2px; }
.mobile-menu .products .tooltip                                             { width: 23px; margin-left: 13px; margin-bottom: 2px; position: relative; }
.mobile-menu .products .tooltip .info                                       { position: absolute; left: 32px; height: 200px; width: 200px; top: -72px; display: flex; align-items: center; opacity: 0; pointer-events: none; transform: translateX(40px); transition: all 0.6s cubic-bezier(0.25, 1, 0.5, 1); }
.mobile-menu .products .tooltip:hover .info                                 { opacity: 1; transform: translateX(0); }
.mobile-menu .products .tooltip .info .wrapper                              { position: relative; }
.mobile-menu .products .tooltip .info .wrapper .bg                          { position: absolute; left: 0; top: 0; right: 0; bottom: 0; border-radius: 12px; background-color: #393939; }
.mobile-menu .products .tooltip .info .wrapper .text                        { padding: 14px 16px; position: relative; }
.mobile-menu .products .tooltip .info .wrapper .text p                      { font-size: 12px; }
.mobile-menu .products .separator                                           { width: 1px; height: 6px; margin-left: 24px; margin-bottom: 2px; border-left: 1px solid; }
.mobile-menu .products .fade-1                                              { opacity: 0.6; }
.mobile-menu .products .fade-2                                              { opacity: 0.4; }
.mobile-menu .products .fade-3                                              { opacity: 0.2; }



/*------------------------------------------------------------------------------------ Footer */

footer .inner                                                               { display: flex; flex-direction: column; gap: 60px; }
.enter-content footer .inner                                                { opacity: 1 !important; transform: translateY(0) !important; }
footer .inner .mod                                                          { display: flex; flex-direction: column; gap: 30px; }



/*------------------------------------------------------------------------------------ Sections */

.landing .intro                                                             { padding-top: 60px; }
.product-feed                                                               { padding: 40px 0 80px; }



/*------------------------------------------------------------------------------------ Repeaters */

.product-item                                                               { border-radius: 24px; padding: 12px 12px 0; position: relative; }
.product-item .images                                                       { border-radius: 12px; overflow: hidden; position: relative; }
.product-item .images .image                                                { height: 30vh; width: 100%; }
.product-item .images .image.counter-image                                  { position: absolute; top: 0; left: 0; opacity: 0; }
.product-item .images .image img                                            { object-fit: cover; width: 100%; height: 100%; }
.product-item .info                                                         { display: flex; width: 100%; justify-content: space-between; }
.product-item .info .col                                                    { display: flex; align-items: center; gap: 8px; }
.product-item .info .col .separator                                         { height: 2px; width: 20px; margin-top: 4px; }
.product-item .info .col .action                                            { padding-bottom: 4px; border-bottom: 1px solid; opacity: 0.5; }



/*------------------------------------------------------------------------------------ Global Page */

.page-wrapper .inner                                                        { border-radius: 24px; }



/*------------------------------------------------------------------------------------ Product Page */

.product-wrapper .product-gallery                                           { border-radius: 24px; overflow: hidden; position: relative; }
.product-wrapper .product-gallery .image                                    { height: 50vh; }
.product-wrapper .product-gallery .image img                                { height: 100%; object-fit: cover; }
.product-wrapper .product-gallery .slick-dots                               { position: absolute; left: 0; bottom: 0; width: 100%; display: flex; gap: 8px; justify-content: center; padding: 24px 0; pointer-events: none; }
.product-wrapper .product-gallery .slick-dots li                            { width: 10px; height: 10px; border-radius: 100px; background-color: var(--gray-c); list-style: none; pointer-events: all; }
.product-wrapper .product-gallery .slick-dots li.slick-active               { background-color: var(--white-c); }
.product-wrapper .product-gallery .slick-dots li button                     { width: 14px; height: 100%; font-size: 0; padding: 0; opacity: 0; }

.product-wrapper .product-title                                             { padding-top: 40px; padding-bottom: 40px; }
.product-wrapper .product-info                                              { border-radius: 24px 24px 0 0; display: flex; flex-direction: column; gap: var(--spacing); }
.product-wrapper .product-info .description                                 { padding-top: 24px; }
.product-wrapper .product-info .controls                                    { display: flex; flex-direction: column; gap: var(--spacing); }
.product-wrapper .product-info .controls .list                              { margin-top: 12px; border-top: 1px solid var(--light-gray-c); }
.product-wrapper .product-info .controls .list .item                        { height: 74px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--light-gray-c); }
.product-wrapper .product-info .controls .list .ghost-input                 { height: 36px; width: 60px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--light-gray-c); }
.woocommerce div.product form.cart div.quantity                             { display: none; }
.woocommerce div.product form.cart .button                                  { width: 100%; background-color: var(--light-gray-c); color: var(--black-c); height: 64px; font-weight: 400; border-radius: 8px; }

.product-wrapper .product-tabs                                              { padding-top: 24px; border-radius: 0 0 24px 24px; padding-top: 48px; padding-bottom: 48px; }
.product-wrapper .product-tabs .accordion                                   { border-top: 1px solid var(--gray-c); }
.product-wrapper .product-tabs .accordion .item                             { border-bottom: 1px solid var(--gray-c); }
.product-wrapper .product-tabs .accordion .item .q                          { height: 74px; display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
.product-wrapper .product-tabs .accordion .item .a                          { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.product-wrapper .product-tabs .accordion .item.active .a                   { max-height: 1000px; }



/*------------------------------------------------------------------------------------ Cart & Checkout Page */

table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img  { border-radius: 12px; }
.wc-block-cart-item__wrap .wc-block-components-product-metadata                 { display: none; }
.wc-block-components-order-summary .wc-block-components-order-summary-item__description .wc-block-components-product-metadata { display: none; }
.wc-block-cart .wc-block-cart__submit-container                                 { margin-top: 24px; }
.wc-block-cart .wc-block-cart__submit-container .wc-block-cart__submit-button   { width: 100%; background-color: var(--light-gray-c); color: var(--black-c); height: 64px; font-weight: 400; border-radius: 8px; }




@media(min-width: 900px){ /* -------------------------------------------- */
    
    /*------------------------------------------------------------------------------------ General */
    
    main                                                                    { padding-left: var(--l-bar-width); }
    
    
    
    /*------------------------------------------------------------------------------------ Left bar */
    
    .left-bar                                                               { position: fixed; left: 0; top: 0; height: 100vh; width: var(--l-bar-width); z-index: 11; }
    .left-bar .inner                                                        { height: 100%; width: 100%; }
    .left-bar .col                                                          { height: 100%; width: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: var(--spacing); }
    .left-bar .col .mod.vert                                                { flex: 1; display: flex; flex-direction: column; justify-content: center; }
    
    .left-bar .col .brand                                                   { display: flex; justify-content: space-between; align-items: center; }
    .left-bar .col .brand .logo                                             { height: 22px; }
    .left-bar .col .brand .logo svg                                         { height: 100%; width: auto; }
    .left-bar .col .brand .cart .link.disable                               { opacity: 0.4; pointer-events: none; }
    
    .left-bar .block                                                        { margin-bottom: var(--spacing); }
    .left-bar .block:last-child                                             { margin-bottom: 0; }
    .left-bar .products .item                                               { margin-bottom: 2px; }
    .left-bar .products .tooltip                                            { width: 23px; margin-left: 13px; margin-bottom: 2px; }
    .left-bar .products .tooltip                                             { width: 23px; margin-left: 13px; margin-bottom: 2px; position: relative; }
    .left-bar .products .tooltip .info                                       { position: absolute; left: 32px; height: 200px; width: 200px; top: -72px; display: flex; align-items: center; opacity: 0; pointer-events: none; transform: translateX(40px); transition: all 0.6s cubic-bezier(0.25, 1, 0.5, 1); }
    .left-bar .products .tooltip:hover .info                                 { opacity: 1; transform: translateX(0); }
    .left-bar .products .tooltip .info .wrapper                              { position: relative; }
    .left-bar .products .tooltip .info .wrapper .bg                          { position: absolute; left: 0; top: 0; right: 0; bottom: 0; border-radius: 12px; background-color: #393939; }
    .left-bar .products .tooltip .info .wrapper .text                        { padding: 14px 16px; position: relative; }
    .left-bar .products .tooltip .info .wrapper .text p                      { font-size: 12px; }
    .left-bar .products .separator                                          { width: 1px; height: 6px; margin-left: 24px; margin-bottom: 2px; border-left: 1px solid; }
    .left-bar .products .fade-1                                             { opacity: 0.6; }
    .left-bar .products .fade-2                                             { opacity: 0.4; }
    .left-bar .products .fade-3                                             { opacity: 0.2; }
    
    footer                                                                  { display: none; }



    /*------------------------------------------------------------------------------------ Sections */

    .landing .intro                                                             { padding: var(--spacing); }
    .product-feed                                                               { padding: 40px 0 80px; display: flex; justify-content: center; }
    .product-feed .feed                                                         { max-width: 500px; }



    /*------------------------------------------------------------------------------------ Repeaters */

    .product-item .images .image                                                { height: 33vh; }



    /*------------------------------------------------------------------------------------ Global Page */

    .page-wrapper                                                               { padding: var(--spacing); display: flex; flex-direction: column; justify-content: center; }
    .page-wrapper .inner                                                        { border-radius: 24px; max-width: 1000px; }



    /*------------------------------------------------------------------------------------ Product Page */

    .product-wrapper                                                            { padding: var(--spacing); }
    .product-wrapper .product-gallery-wrapper                                   { padding: 0; }
    
}



@media(min-width: 1200px){ /* -------------------------------------------- */

    /*------------------------------------------------------------------------------------ Sections */

    .landing                                                                    { display: flex; align-items: center; flex-direction: column; width: 100%; }
    .landing .intro                                                             { padding: 10vh 0 0; max-width: 600px; }
    .product-feed                                                               { padding: 40px 0 80px; display: flex; justify-content: center; }
    .product-feed .feed                                                         { max-width: 500px; }



    /*------------------------------------------------------------------------------------ Repeaters */

    .product-item .images .image                                                { height: 35vh; }



    /*------------------------------------------------------------------------------------ Global Page */

    .page-wrapper                                                               { padding: var(--spacing); display: flex; flex-direction: column; align-items: center; }
    .page-wrapper .inner                                                        { border-radius: 24px; padding: var(--spacing); max-width: 1000px; }



    /*------------------------------------------------------------------------------------ Product Page */

    .product-wrapper                                                            { padding: var(--spacing); }
    .product-wrapper .product-gallery-wrapper                                   { padding: 0; }
    .product-wrapper .col-info                                                  { width: 100%; display: flex; align-items: center; flex-direction: column; }
    .product-wrapper .col-info > *                                              { max-width: 500px; }
    
}



@media(min-width: 1400px){ /* -------------------------------------------- */
    
    /*------------------------------------------------------------------------------------ Left bar */
    
    .left-bar .products .tooltip                                            { margin-left: 16px; }
    .left-bar .products .separator                                          { margin-left: 27px; }
    
}



@media(min-width: 1600px){ /* -------------------------------------------- */
    
}



@media(hover: hover) { /* -------------------------------------------- */

    /*------------------------------------------------------------------------------------ Repeaters */
    
    .product-item                                                               { transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1); transform-origin: center; }
    .product-item:hover                                                         { transition: all 12.0s cubic-bezier(0.25, 1, 0.5, 1); transform: scale(1.1); }
    .product-item .images .image.counter-image                                  { transition: all 0.4s; }
    .product-item:hover .images .image.counter-image                            { opacity: 1; }
    
}