@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;700&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap&subset=latin,latin-ext');
@import url('fontawesome.min.css');

/* ==========================================================================
   1. Globális alapok és resztek
   ========================================================================== */
body {
    background: #fff;
    padding: 0;
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: #333;
    font-family: 'Open Sans', sans-serif;
}

figure, fieldset {
    margin: 0;
    padding: 0;
}

.quantity-controls {
    -webkit-appearance: none;
    appearance: none;
}

/* ==========================================================================
   2. Tipográfia (Összevont és letisztázott verzió)
   ========================================================================== */
h1, h2, h3, h4 {
    font-family: "Playfair Display", serif;
    font-style: normal;
    font-weight: 300;
    color: #333;
    line-height: 1.2;
}

h1 {
    text-transform: uppercase;
    text-align: center;
    margin: 30px 0;
    font-size: 32px;
}

h2, h3, .cart-view h2, h4 {
    font-size: 20px;
    margin: 0 0 10px 0; /* Tisztább margin kezelés */
}

h3, h4, span.cart.tos, span.cart.customer-note {
    font-size: 16px;
    margin: 4px 0;
}

.output-billto h3,
.output-shipto h3 {
    margin-bottom: 8px;
}

/* ==========================================================================
   3. Linkek és Gombok
   ========================================================================== */
a, .asterisk {
    color: #f17f05;
    text-decoration: none;
}

a:hover, a:active {
    color: #80C500;
}

a.noUnderLine {
    text-decoration: none;
}

/* Fő gomb stílusok */
a.button,
input[type=submit],
button,
span.addtocart-button input.addtocart-button,
.vm-button-correct, 
.vm-button-correct:link, 
.vm-button-correct:visited {
    display: inline-block;
    background-color: #80C500;
    color: #fff;
    border-radius: 2px;
    text-decoration: none;
    font-size: 16px;
    text-align: center;
    padding: 12px;
    cursor: pointer;
    border: solid 1px #80C500;
    font-weight: normal;
    letter-spacing: normal;
    font-family: 'Open Sans', sans-serif;
    -webkit-appearance: none;
    appearance: none;
}

a.button.secondary,
button.secondary {
    background-color: #fff;
    color: #80C500;
}

/* Gomb hover állapotok összevonva */
a.button:hover, a.button:active,
a.button.secondary:hover, a.button.secondary:active, 
button:hover,
span.addtocart-button input.addtocart-button:hover,
span.addtocart-button input.addtocart-button:active,
.vm-button-correct:hover, .vm-button-correct:active {
    background-color: #f17f05;
    border-color: #f17f05; /* Nem szükséges az !important, ha a specifikusság jó */
    color: #fff;
    text-decoration: none;
}

a.button.small {
    padding-top: 6px;
    padding-bottom: 6px;
}

/* ==========================================================================
   4. Utility / Segédosztályok
   ========================================================================== */
.pointer { cursor: pointer; }
.clear { float: none; clear: both; }
.gray { color: #888; }
.green { color: #80C500; }
.center { text-align: center; }
.text-right { text-align: right; }
.strong { font-weight: bold; }
.mb0 { margin-bottom: 0; }
.mt0 { margin-top: 0; }
.bordered { border: solid 1px #ddd; border-radius: 2px; }

.widthWrapper {
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
}

/* ==========================================================================
   5. Listák és Navigáció
   ========================================================================== */
ul.linkList {
    list-style: none;
    margin: 0;
    padding: 0;
}
ul.linkList li {
    position: relative;
    padding-left: 1em;
}
ul.linkList li .fa {
    position: absolute;
    left: 0;
    top: .2em;
}
ul.linkList li a {
    text-decoration: none;
}

#topmenu ul, nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
}
#topmenu ul li, nav ul li {
    display: inline-block;
}
#topmenu ul li a, nav ul li a {
    text-decoration: none;
    color: #888;
    text-transform: uppercase;
    padding: 6px;
    display: inline-block;
}

#topmenu ul li a, footer a {
    color: #fff;
}
footer a:hover, footer a:active {
    color: #efefef;
}

nav { background-color: #f17f05; }
nav ul li a { color: #fff; padding: 10px 8px; }
nav ul li a:hover,
nav ul li a:active,
nav ul li.active a {
    background-color: #80C500;
    color: #fff;
}

ul.mod-articles-items.mod-articles-grid {
    list-style: none;
}

/* ==========================================================================
   6. Strukturális elemek (Header, Footer, Grid)
   ========================================================================== */
#logoArea {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    position: relative;
    background-color: #000;
}
#logo { float: left; }
#logo img { height: 100px; float: left; }

#logoArea #productsearch {
    position: absolute;
    right: 60px;
    width: 380px;
    top: 34px;
    padding: 0 20px;
    box-sizing: border-box;    
}
#logoArea #productsearch input {
    width: 100%;
    box-sizing: border-box;
    padding: 8px;
    border-radius: 2px;
    border: none;
    padding-right: 30px;
    font-size: 16px;
    color: #555;
}
#logoArea #productsearch .fa-search {
    position: absolute;
    top: 8px;
    right: 24px;
    cursor: pointer;
    font-size: 16px;
    color: #80C500;
}
#logoArea #cartContainer {
    position: absolute;
    right: 20px;
    top: 32px;
    width: 41px;
    height: 36px;
}
#logoArea #cartContainer .fa-shopping-cart {
    font-size: 36px;
    color: #80C500;
    -webkit-text-stroke: 2px white;
    text-shadow: 0 0 8px rgba(0,0,0,0.1);
}
#logoArea #cartContainer .total_products {
    position: absolute;
    right: 0;
    bottom: -4px;
    color: white;
    background-color: red;
    border-radius: 50%;
    display: inline-block;
    width: 20px;
    height: 20px;
    text-align: center;
    overflow: visible;
    font-size: 11px;
    font-weight: bold;
}
#logoArea #cartContainer .total_products:empty {
    display: none;
}

footer {
    background-color: #f17f05;
    margin-top: 20px;
    padding-top: 20px;
}
footer #socials {
    text-align: center;
    padding: 20px;
}
footer #socials a {
    margin: 0 8px;
}
footer .fab {
    font-size: 48px;
}

.row {
    width: 100%;
    display: flow-root; /* Modern clearfix kiváltás */
}
.row .col { float: left; }
.row.col2 .col { width: 50%; }
.row.col34 .col:first-child { width: 25%; }
.row.col34 .col:last-child { width: 75%; }
.row.col23 .col:first-child { width: 33%; }
.row.col23 .col:last-child { width: 64%; }

.address.row {
    display: table;
    margin-bottom: 20px !important;
}
.address.row .col {
    display: table-cell;
}

/* ==========================================================================
   7. Webáruház / Komponensek (Kategóriák, Termékek, Kosár)
   ========================================================================== */
.category-view, .productList {
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;    
}
.category-view { margin-top: 20px; }

.category-view .category {
    width: 33%;
    box-sizing: border-box;
    padding: 4px;
}
.category-view .category .spacer {
    width: 100%;
    aspect-ratio: 16 / 9;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    display: flex;
    align-items: flex-end;
    opacity: 0.9;
}
.category-view .category .spacer:hover { opacity: 1; }
.category-view .category .spacer .title { background-color: #000; padding: 10px; }
.category-view .category .spacer .title h2 { margin: 0; padding: 0; color: #fff; }

.productListCont.featured, .blogListCont { padding: 30px 0; }

.productList div.productItem {
    width: 18%;
    min-width: 220px;
    box-sizing: border-box;
    margin: 2px 2px 20px 2px;
    background-color: #fff;
    padding: 10px 10px 54px 10px;
    border: solid 1px #ddd;
    border-radius: 2px;
    position: relative;
}
.productList div.productItem:hover { box-shadow: 0 0 10px #e7e7e7; }
.productList div.productItem .addCartContainer {
    position: absolute;
    left: 0;
    bottom: 8px;
    width: 100%;
}
.productList div.productItem .addCartContainer .addCart { width: 100%; }

.category_description {
    max-width: 65ch;
    margin: 0 auto;
}

.addtocart-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}
.productdetails-view .addtocart-bar { margin-left: 0; float: left; }

span.quantity-controls { width: auto; display: flex; }
span.quantity-controls input.quantity-controls { width: 30px; height: 30px; padding: 0; margin: 0; }
span.quantity-controls input.quantity-plus, 
span.quantity-controls input.quantity-minus {
    border: solid 2px #80C500;
    border-radius: 3px;
    background-position: center;
    background-repeat: no-repeat;
}

/* Beágyazott SVG optimalizálások */
span.quantity-controls input.quantity-plus {
    background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" height="16" width="14" viewBox="0 0 448 512"%3E%3Cpath fill="%2380c500" d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"/%3E%3C/svg%3E');
}
span.quantity-controls input.quantity-plus:hover,
span.quantity-controls input.quantity-plus:active {
    border-color: #f17f05;
    background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" height="16" width="14" viewBox="0 0 448 512"%3E%3Cpath fill="%23f17f05" d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"/%3E%3C/svg%3E');
}
span.quantity-controls input.quantity-minus {
    background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" height="16" width="14" viewBox="0 0 448 512"%3E%3Cpath fill="%2380c500" d="M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"/%3E%3C/svg%3E');
}
span.quantity-controls input.quantity-minus:hover,
span.quantity-controls input.quantity-minus:active {
    border-color: #f17f05;
    background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" height="16" width="14" viewBox="0 0 448 512"%3E%3Cpath fill="%23f17f05" d="M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"/%3E%3C/svg%3E');
}

input.addtocart-button {
    width: 80px;
    height: 30px;
    padding: 0;
    background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" height="16" width="18" viewBox="0 0 576 512"%3E%3Cpath fill="%23ffffff" d="M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20h44v44c0 11 9 20 20 20s20-9 20-20V180h44c11 0 20-9 20-20s-9-20-20-20H356V96c0-11-9-20-20-20s-20 9-20 20v44H272c-11 0-20 9-20 20z"/%3E%3C/svg%3E') !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    text-indent: -9999px;
    margin-left: 8px;
}
.productdetails input.addtocart-button {
    width: auto;
    height: auto;
    text-indent: 0;
    padding-left: 32px !important;
    background-position: 12px center !important;
}
.quantity-controls .quantity-input { padding: 0; height: 27px; width: 30px; margin: 0 4px; }

.imageContainer a, .imageContainer figure, .main-image a {
    aspect-ratio: 1 / 1;
    display: flex;
    justify-content: center;
    align-items: center;
}
.main-image img, .imageContainer img {
    max-width: 100%;
    max-height: 100%;
    height: auto;
    width: auto;
    display: block;
}

.descriptionContainer { text-align: center; }
.descriptionContainer h2 { margin: 0; }
.descriptionContainer h2 a { color: #888; text-decoration: none; margin: 10px 0; display: block; }

p.product_s_desc { height: auto; color: #666; font-size: 13px; }
.priceContainer { margin: 10px 0; }
.priceContainer .vm-price-desc { display: none; }
.priceContainer .product-price { float: none; text-align: center; }
.orderby-displaynumber { border: none; margin-top: 0; padding-top: 0; }

.productdetails-view { padding: 0 10px; }
.productdetails-view .product-short-description { margin-bottom: 0; color: #666; padding: 20px 0 0 20px; }
.productdetails-view .spacer-buy-area { padding: 0; }

.product-price { margin: 0; text-align: center; float: none; line-height: normal; font-size: 20px; }
.productdetails-view .vm-product-container .product-price { margin: 20px 0; text-align: left; padding-left: 20px; }
.productdetails-view .vm-product-container .addtocart-bar { margin: 0 auto; padding-left: 20px; }
.productdetails-view .addCartContainer .addtocart-bar { text-align: center; }

.productdetails-view .vm-product-container, .cart-view, .editAddressCont { width: 80%; margin: 0 auto; }
.productdetails-view .vm-product-container, .productdetails-view .product-description { text-align: justify; color: #666; }
.productdetails-view .product-description { margin-left: 20px; }
.productdetails-view .vm-product-container .productImage { border: solid 1px #e7e7e7; padding: 4px; }
.productdetails-view.blog .vm-product-container > .row { margin-bottom: 30px; }
.productdetails-view.blog .product-short-description { padding-top: 30px; text-align: left; }

.items-more { padding: 0 20px; }
.item-page { max-width: 960px; margin: 0 auto; padding: 0 10px; }
.item-page img { max-width: 100%; }

/* Felugró ablakok (Popups) */
#fancybox-outer { padding-right: 0; }
.cartPopup:after { clear: both; float: none; }
.cartPopup .iconContainer, .cartPopup .description { display: inline-block; }
.cartPopup .iconContainer { position: absolute; top: 0; left: 0; color: #888; }
.cartPopup .description { padding-left: 90px; min-height: 74px; margin-bottom: 6px; line-height: 70px; color: #80C500; }
.cartPopup h2 { margin: 0; }
.cartPopup a { cursor: pointer; }
.cartPopup .fa-check { color: #80C500; }
.cartPopup .showcartCont { display: flex; justify-content: space-between; gap: 10px; }

.errorPopup { text-align: center; color: #f17f05; }
.errorPopup i { font-size: 36px; }
.errorPopup p { margin: 6px 0 0 0; }

#payment_select #paychangediv { vertical-align: middle; }
#shipment_select hr, #payment_select hr { display: none; }
.vmpayment_description, .vmshipment_description, .vmpayment_cost, .vmshipment_cost { display: block; line-height: 1.5; font-size: 11px; }

/* Űrlapok */
input[type=text], input[type=email] { border: solid 2px #ddd; border-radius: 3px; padding: 8px; }
.adminForm input[type=text], .adminForm input[type=email] { width: 100%; box-sizing: border-box; }
.adminForm .row { margin-bottom: 20px; }
.checkout-button-top { text-align: left !important; padding-top: 10px !important; }

.squaredTwo { margin: 0; width: 20px; height: 20px; background: none; box-shadow: none; display: inline-block; }
.squaredTwo label { background: none; box-shadow: none; top: 0; left: 0; }
.squaredTwo label:after { border-color: #80C500; }
#lodingdiv div { background: none; }

#cookie-bar-button { text-shadow: none !important; }
.chrono_credits { display: none; }
.vendor-details-view, .vm-wrap { max-width: 900px; margin: 0 auto 40px auto; }

/* ProOPC kosár bővítmény igazítások */
.summary.proopc-table-striped tr td,
table.cart-summary.proopc-table-striped tr td,
.proopc-product-name a, .col-name a {
    text-transform: none !important;
}

#ProOPC .cart-page-title {
    font-family: "Playfair Display", serif !important;
    color: #333 !important;
    margin-top: 16px;
    font-size: 32px !important;
}
#ProOPC .cart-page-title span { display: none; font-size: 32px !important; }

.price-title, .final-price, .product-discount, 
.product-price .PricesalesPrice, .col-total .PricesalesPrice,
.grand-total .PricebillTotal {
    color: #80C500 !important;
}

#ProOPC, #ProOPC span, #ProOPC div, #ProOPC p, #ProOPC input, #ProOPC select, 
#ProOPC button, #ProOPC h1, .proopc-finalpage h3, .proopc-finalpage h2, 
.proopc-finalpage h1, .proopc-finalpage h4, .proopc-register-login h3, 
.proopc-register-login h2, .proopc-register-login h4, 
.proopc-register-login h1, .billto-shipto span, a.terms-of-service {
    font-family: 'Open Sans', sans-serif !important;
    font-size: 14px !important;
}

#ProOPC .grand-total span { font-size: 18px !important; }
#ProOPC .proopc-process-title { padding: 4px 0 4px 16px !important; }
#ProOPC .proopc-process-title,
#ProOPC .proopc-process-title strong {
    color: #80C500 !important;
    font-size: 18px !important;
    font-weight: normal;
}
#ProOPC .proopc-step {
    background-color: #80C500 !important;
    color: white !important;
    font-weight: bold !important;
}
.proopc-btn-info {
    background-color: #80C500 !important;
    background-image: none !important;
    font-weight: bold !important;
    text-transform: uppercase;
}
.proopc-btn-info:hover, .proopc-btn-info:active { background-color: #f17f05 !important; }
#ProOPC th.col-price span, 
#ProOPC td.col-price span,
#ProOPC td.col-price:before { display: none !important; }
#ProOPC input.terms-of-service { width: 24px !important; height: 24px !important; margin-right: 10px !important; }

.vmshipment_cost.fee { color: #80C500; }
.csomagpontCont { border-top: solid 1px #ddd; }
#selectedFoxpostCont span#selectedFoxpost { font-weight: bold; }
a.terms-of-service { display: inline; }
.proopc-alert-error { color: #f17f05 !important; background: none !important; }
.cart-mpl_csomagpont-group { display: none; }

.order-done { text-align: center; }
.order-done .post_payment_payment_name, .order-done .vm-button-correct { display: none; }
.order-done .post_payment_order_number { font-weight: bold; }
.order-done .post_payment_order_number, .order-done .post_payment_order_total { color: #80C500; }
.order-done .post_payment_order_total_title, .order-done .post_payment_order_number_title { color: #333; }
.emptyCart { margin-bottom: 40px; }

.gbs3 { width: 100%; max-width: 480px; margin: 0 auto; }
.gbs3 input[type=text], .gbs3 textarea.A { box-sizing: border-box; width: 100% !important; }
.gbs3 .gcore-display-table { width: 100%; }

.product-related-products, .product-related-categories { border: none; }

#system-message {
    background-color: #f9f9f9;
    margin: 10px;
    text-align: center;
    padding: 10px;
    box-shadow: 0 0 10px #999;
}
#system-message .close { display: none; }

#fancybox-wrap.iframe { position: fixed !important; left: 0 !important; top: 0 !important; }
#fancybox-wrap.iframe #fancybox-close { top: 2px; right: 1px; }
#fancybox-wrap.iframe,
#fancybox-wrap.iframe #fancybox-frame,
#fancybox-wrap.iframe #fancybox-content { min-height: 600px !important; height: 100%; }

.blogTitle { text-align: center; }
.blogTitle h1 { margin: 0 auto; background-color: #efefef; display: inline-block; padding: 0 10px; border-radius: 8px 8px 0 0; }
.blogTitle h1 a { color: #999; text-decoration: none; }
.customfields-title-wrapper h2 { text-transform: uppercase; color: #f17f05; text-align: center; }
h4.alert-heading { color: #f17f05; }

/* ==========================================================================
   8. RESPONSIVE / MEDIA QUERIES
   ========================================================================== */
@media only screen and (max-width: 900px) {
    #logoArea { height: 120px; }
    #logoArea #logo { text-align: center; }
    #logoArea #logo img { height: 80px; }
    #logoArea #productsearch { top: 80px; left: 0; width: 100%; margin-left: 0; }
    #logoArea #productsearch .fa-search { right: 24px; }
    .productdetails-view.blog .product-short-description { padding-top: 0; }
}

@media (max-width: 767px) {
    #ProOPC th.col-price, 
    #ProOPC td.col-price,
    #ProOPC tr.cart-sub-total,
    #ProOPC .grand-total .sub-headings { display: none !important; }
    #ProOPC .grand-total td:nth-of-type(3):before { content: 'Fizetendő' !important; font-size: 16px; line-height: 1.55; }
}

@media only screen and (max-width: 720px) {
    .productdetails-view .vm-product-container,
    .productdetails-view .product-description,
    .cart-view,
    .editAddressCont { width: 100%; margin: 0 auto; }
    .descriptionContainer h2 { font-size: 16px; }
}

@media only screen and (max-width: 640px) {
    .category-view .category { width: 50%; }
    .row .col { width: 100% !important; float: none; }
    .productdetails-view .product-short-description,
    .productdetails-view .vm-product-container .product-price,
    .productdetails-view .vm-product-container .addtocart-bar,
    .productdetails-view.blog .product-short-description { text-align: center; padding-left: 0; }
    .productdetails-view .vm-product-container .addtocart-bar { float: none; }
}

@media only screen and (max-width: 479px) {
    h1 { font-size: 24px; }
    #logoArea #logo img { height: 70px; margin-top: 8px; }
    .jcarousel-wrapper { display: none; }
    .priceList { font-size: 12px; }
    .priceList .thumbnail { display: none; }
    .priceList .vm-cart-item-quantity button { font-size: 14px; padding: 7px; }
    .cartPopup .showcartCont { display: block; justify-content: normal; }
    .cartPopup .showcartCont .button { display: block; }
    .cartPopup .showcartCont .showcart { margin-top: 10px; }
    .blogItem { display: block; }
    .blogItem .imageContainer, .blogItem .descriptionContainer { width: 100%; }
    .productList div.productItem { min-width: 150px; padding-bottom: 84px; }
    .productList .addtocart-bar { flex-wrap: wrap; }
    .productList span.addtocart-button { margin-top: 8px; display: block; }
    .productList input.addtocart-button { margin-left: 0; width: 100px; height: 34px; }
    .productList p.product_s_desc,
    .productdetails .product-short-description,
    .productdetails .product-description { font-size: 12px; }
    .productdetails .addtocart-bar { display: block; }
    .productdetails span.quantity-controls { justify-content: center; }
    .productdetails input.addtocart-button { margin-left: 0; margin-top: 8px; }
    .productdetails .product-description { margin-top: 32px; }
}

@media only screen and (max-width: 390px) {
    #logoArea #logo img { height: 60px; margin-top: 16px; }
    .productList div.productItem { min-width: 150px; }
}

@media only screen and (max-width: 369px) {   
    #logoArea #logo img { height: 50px; margin-top: 16px; }
    .productList div.productItem, .category-view .category { width: 100%; }
    .addtocart-bar { width: 180px; }
}