/*
Theme Name: Hello Elementor Child
Theme URI: https://elementor.com/hello-theme/?utm_source=wp-themes&utm_campaign=theme-uri&utm_medium=wp-dash
Template: hello-elementor
Author: Elementor Team
Author URI: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
Description: A lightweight and minimalist WordPress theme for Elementor page builder.
Tags: accessibility-ready,flexible-header,custom-colors,custom-menu,custom-logo,featured-images,rtl-language-support,threaded-comments,translation-ready
Version: 2.8.1.1697699342
Updated: 2023-10-19 09:09:02

-----------------------------------------
Giannibio Child Theme - Main Stylesheet

This file contains:
- Font imports (Typekit puffin-display-soft, custom Moreganic)
- Fixed right sidebar header (68px wide, dark green #1E3C14)
- Slide-out navigation menu styles
- E-commerce header and container base styles
- WooCommerce product grid and card styles
- Single product page layout
- Cart and checkout base styles
- Contact Form 7 styling
- Footer styles

Color palette:
- Primary: #1E3C14 (dark green)
- Background: #EDD5BD (beige)
- Accent: #FEFAEF (warm white)
-----------------------------------------
*/

@import url('https://use.typekit.net/fhv1xmz.css');

@font-face {
	font-family: 'Moreganic';
	src: url("./fonts/Moreganic.woff") format("woff");
	font-weight: normal;
	font-style: normal;
}

body {
	font-family: 'puffin-display-soft' !important;
}

.single-menu-icon {
	width: 40px;	
}

.p-fixed {
	padding-right: 24px;
	width: 20% !important;
	position: fixed !important;
}

.border-radius {
	border-radius: 18px !important; 
}

.site-main {
	min-height: 75vh;
}

nav {
	width: max-content;
	float: inline-end;
	margin-right: 6px;
}

.border-radius {
	border-radius: 18px !important; 
}

.menuOpen {
    width: fit-content !important;
}

.menu-ul {
	margin-left: 16px;
	padding: 0;
	list-style-type: none;
}

.menu-ul li {
	margin-bottom: 8px;
}

.menu-ul li:hover {
	cursor: pointer;
	filter: opacity(65%);
}

.single-menu-text {
	display: inline;
	color: #FEFAEF;
	text-align: right;
	font-family: Moreganic;
	font-size: 32px;
	font-style: normal;
	font-weight: 400;
	line-height: normal;
	margin-right: 24px;
}

.single-menu-icon {
	display: inline;
	float: inline-end;
	margin-left: 24px;
}

.moreganic {
	font-family: 'Moreganic' !important;
}

.puffin {
	font-family: 'puffin-display-soft' !important;
}

.centopercento a {
	width: 100% !important;
}

.menu-icon {
	padding: 0; 
	margin-top: 16px !important;
	margin-bottom: 80px;
    margin-right: 6px;
	float: right;
	display: block !important;
}

header {
	z-index: 999;
	overflow: hidden;
	width: 68px;
    height: 100%;
    position: fixed;
    right: 0;
    background-color: #1E3C14;
    padding: 8px;
    margin: 0;
}

.ecommerce-header {
	width: calc(100% - 68px);
	padding: 40px 40px 20px 40px !important;
    display: flex;
	align-items: center;
}

.woocommerce-product-gallery {
	background-color: white;
	border-radius: 16px;
}

.flex-control-nav {
	display: flex;
	padding-bottom: 16px !important;
    justify-content: center;
}

.ecommerce-menu > * {
	vertical-align: middle;
}

.ecommerce-logo {
	width: 20%;
	max-width: 216px;
	float: left;
}

.ecommerce-menu {
	margin-left: auto; /* Questo sposta il menu a destra */
	float: left;
}

.woocommerce-ordering {
	margin: 0 !important;
}

.wc-block-cart-item__image img {
	border-radius: 16px !important;
}

.wc-block-components-order-summary-item__image img {
	border-radius: 8px !important;
}

.cart-box {
	width: calc(100% - 52px);
	padding: 48px;
}

.white-box {
	background-color: white;
	border-radius: 16px;
	padding: 48px;
}

.wc-block-cart table.wc-block-cart-items, .wc-block-cart table.wc-block-cart-items td, .wc-block-cart table.wc-block-cart-items th {
	margin: 0 !important;
}

.ecommerce-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ecommerce-menu ul li {
    display: inline-block;
    margin-right: 40px;
}

.ecommerce-menu ul li:last-child {
    margin-right: 0;
}

.ecommerce-menu ul li a {
	font-family: 'puffin-display-soft' !important;
	font-size: 1em;
	color: #1e3c14;
    text-decoration: none;
}

.ecommerce-container {
	width: calc(100% - 68px);
	padding: 0 40px;
}

.ecommerce-title, .product_title {
	font-family: 'Moreganic' !important;
	color: #1e3c14;
}

.ecommerce-title {
	margin-bottom: 24px;
}

.woocommerce-loop-product__title {
	text-align: left;
	margin: 12px 0 4px 0 !important;
	padding: 0 !important;
	font-family: 'puffin-display-soft' !important;
	color: #1e3c14;
	font-weight: bold !important;
	font-size: 1em !important;
}

/* Prezzo nella card prodotto */
.woocommerce ul.products li.product .price {
	font-family: 'puffin-display-soft' !important;
	font-size: 0.9em !important;
	margin: 0 0 12px 0 !important;
	padding: 0 !important;
	color: #1e3c14;
	font-weight: 600 !important;
	text-align: left;
	display: block;
}

.woocommerce-Price-amount {
	font-family: 'puffin-display-soft' !important;
	color: #1e3c14;
}

.amount {
	padding: 16px 0;
	font-size: 1.2em !important;
}

.description-product {
	font-family: 'puffin-display-soft' !important;
	color: #1e3c14;
	font-size: 1.1em !important;
	padding-bottom: 0 !important;
}

.qty {
	width: 80px !important;
	padding: 16px;
	margin: 8px 0 16px 0;
	font-size: 16px;
	border: 0 !important;
	border-radius: 16px;
	outline: none;
  }
  
.qty:focus {
	border-color: #007bff;
}

.add_to_cart_button, .single_add_to_cart_button {
	border-radius: 9px !important;
	background-color: var(--e-global-color-primary) !important;
	color: white !important; 
	font-family: 'Moreganic' !important;
	font-size: 1em !important;
	font-weight: normal !important;
	margin-top: 0 !important;
}

form.cart > *, .quantity {
	height: 100%;
	vertical-align: middle;
}

.single_add_to_cart_button {
	display: block;
	font-size: 1.5em !important;
	border-radius: 18px !important;

}

.product img {
	border-radius: 18px;
}

/* Nascondi il browser default */
select.orderby {
  color: #1e3c14;
  background-color: #fff;
  font-size: 16px;
  font-family: 'puffin-display-soft' !important;
}

/* Stile per l'hover */
select.orderby:hover {
  border-color: #1e3c14;
}

/* Stile per il focus */
select.orderby:focus {
  outline: none;
  border-color: #1e3c14;
}

/* Stile per le opzioni */
select.orderby option {
  color: #1e3c14;
  background-color: #fff;
  border-bottom: 1px solid #ccc;
}

/* Stile per l'opzione selezionata */
select.orderby option:checked {
  color: #fff;
  background-color: #1e3c14 !important;
}

.footer {
	margin-top: 40px;
	font-family: 'puffin-display-soft' !important;
	padding: 40px;
	background-color: #1e3c14;
	text-align: center;
	color: white !important;
}

/* Griglia prodotti */
.woocommerce ul.products {
    display: flex;
    flex-wrap: wrap;
    width: calc(100% + 16px);
    margin-left: -8px !important;
    padding: 0;
    list-style: none;
}

.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
    margin: 8px;
    padding: 12px;
    width: calc(25% - 16px);
    background-color: white;
    border-radius: 16px;
    box-sizing: border-box;
    float: none !important;
}

/* Responsive griglia prodotti */
@media (max-width: 1200px) {
    .woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
        width: calc(33.333% - 16px);
    }
}

@media (max-width: 900px) {
    .woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
        width: calc(50% - 16px);
    }
}

@media (max-width: 600px) {
    .woocommerce ul.products {
        width: 100%;
        margin-left: 0 !important;
    }

    .woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
        width: 100%;
        margin: 0 0 16px 0;
    }
}

.woocommerce-product-gallery__wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.woocommerce-product-gallery__image--placeholder {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
}

.ecommerce-single-product-images {
	width: 100%;
	aspect-ratio: 16 / 9;
}

.woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3; 
    object-fit: contain; 
	border-radius: 18px;
}

.flex-control-nav {
	padding-top: 24px !important;
}

.flex-control-nav li {
	padding-right: 16px !important;
}

/* Layout scheda prodotto singolo */
.single-product-first-box {
	display: flex;
	gap: 40px;
	align-items: flex-start;
}

.single-product-first-box .woocommerce-product-gallery {
	flex: 1;
	max-width: 55%;
}

.single-product-first-box .entry-summary {
	flex: 1;
	max-width: 45%;
	background: white;
	border-radius: 16px;
	padding: 32px;
}

.entry-summary .product_title {
	margin: 0 0 16px 0;
	font-size: 1.8em;
}

.entry-summary .description-product {
	display: block;
	margin-bottom: 24px;
	line-height: 1.6;
}

.entry-summary .amount {
	display: block;
	font-size: 1.4em !important;
	font-weight: bold;
	margin-bottom: 8px;
	padding: 0;
}

.entry-summary .quantity {
	margin-bottom: 16px !important;
}

.quantity {
	width: auto;
    margin-bottom: 8px !important;
}

.entry-summary .single_add_to_cart_button {
	width: 100%;
	padding: 16px 24px !important;
}

.entry-summary .product-price {
	margin-bottom: 24px;
}

/* Sezione acquisto: raggruppa form e info pagamento */
.product-purchase-section {
	display: flex;
	flex-direction: column;
}

/* Form add to cart in cima */
.product-purchase-section form.cart {
	order: 1;
	margin-bottom: 24px;
}

/* Label quantità prima del selettore */
.product-purchase-section form.cart .quantity {
	position: relative;
}

.product-purchase-section form.cart .quantity::before {
	content: "Quantità:";
	display: block;
	font-weight: bold;
	margin-bottom: 8px;
	font-size: 0.95em;
}

/* Info pagamento (Klarna, etc.) dopo il form */
.product-purchase-section > *:not(form.cart) {
	order: 2;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid #eee;
	font-size: 0.85em;
}

.wp-block-woocommerce-cart-line-items-block, .wp-block-woocommerce-cart-order-summary-block {
	font-family: 'puffin-display-soft' !important;
	color: #1e3c14;
	font-size: 1.15em;
}

.wc-block-components-product-name, .wc-block-components-totals-coupon-link {
	color: #1e3c14 !important;
	font-weight: bold;
	text-decoration: underline;
}

.wc-block-components-totals-coupon__form button {
	color: #1e3c14 !important;
	border-color: #1e3c14 !important;
}

.wc-block-components-totals-coupon__form button:hover {
	background-color: #1e3c14 !important;
	border-color: #1e3c14 !important;
	color: white !important;
}

.wp-block-woocommerce-proceed-to-checkout-block {
	margin-top: 16px;
	background-color: #1e3c14;
	border-radius: 18px;
}

.wp-block-woocommerce-proceed-to-checkout-block a, .wp-block-woocommerce-proceed-to-checkout-block button {
	color: white !important;
	font-family: 'puffin-display-soft' !important;
	font-size: 1.15em;
	border: 0 !important;
}

.wp-block-woocommerce-proceed-to-checkout-block button:hover, .wc-block-components-checkout-place-order-button, .wc-block-components-checkout-place-order-button:hover {
	color: white !important;
	font-family: 'puffin-display-soft' !important;
	font-size: 1.15em;
	background-color: #1e3c14;
	border-radius: 18px;
	border: 0 !important;
}

.entry-summary a {
	color: #1e3c14;
	text-decoration: underline !important;
}

/* Container form */
.wpcf7-form {
  max-width: 800px;
  margin: 1rem auto;
  padding: 2rem 2rem;
  background: #ffffff;
  border: 1px solid #eee;
  border-radius: 12px;
}

/* Spaziatura tra i campi */
.wpcf7-form p {
  margin-bottom: 1.5rem;
}

/* Input, textarea e select */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 textarea,
.wpcf7 select {
  width: 100%;
  padding: 0.9rem 1rem;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 8px;
  background: #f9f9f9;
  color: #333;
  transition: all 0.2s ease-in-out;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
  outline: none;
  border-color: #f6b800;
  background: #fff;
}

/* Textarea specifico */
.wpcf7 textarea {
  min-height: 120px;
  resize: vertical;
}

/* Bottone submit */
.wpcf7 input[type="submit"] {
  background: #FEFAEF;
  color: #000;
  padding: 0.9rem 2rem;
  border: none;
  border-radius: 8px;
  font-weight: 500;
  font-size: 1rem;
  cursor: pointer;
  transition: background 0.2s ease-in-out;
}

.wpcf7 input[type="submit"]:hover {
  background: #1E3C14;
  color: white;
}

/* Feedback messaggi */
.wpcf7-response-output {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 8px;
  font-size: 0.95rem;
}

.wpcf7-mail-sent-ok {
  background-color: #f0fdf4;
  color: #14532d;
  border: 1px solid #bbf7d0;
}

.wpcf7-validation-errors {
  background-color: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
}

span.wpcf7-not-valid-tip {
  color: #dc2626;
  font-size: 0.9rem;
  margin-top: 0.25rem;
  display: block;
}
