/* =====================================================
   SEZIONE 1: STILI STANDARD DEL SITO
   (Variabili, body, tipografia globale, navbar, hero generica,
    mini-cart, footer, prodotti, filtri, breadcrumb, responsive)
===================================================== */

/* Variabili globali */
:root{
  --page-bg: #F6F3EE;
  --text-par: #40403a;
  --accent-sub: #818722;
  --title-bg: #f6f3ee;
  --btn-border: #f6f3ee;
  --color-card-bg: #F0EAD3;
  --section-bg: #ffffff;
  --section-text: #333333;
  --font-headings: 'Raleway', sans-serif;
  --font-text: 'Nunito', sans-serif;
}

/* Corpo base */
body{
  background: var(--page-bg);
  color: var(--text-par);
  font-family:var(--font-text);
  margin:0;
}

/* Tipografia globale */
h1, h2, h3, h4, h5 {
  font-family: var(--font-headings);
}

/* Titoli principali */
h1, h2, h3 {
  font-size:80px;
  font-weight:500;
  color:#000;
  line-height:64px;
  letter-spacing:-1px;
}

/* Titoli minori e paragrafi */
h4 { /* garantisco h4 visibile se non specifico altrove */
  font-size:1.125rem;
  font-weight:600;
  margin:0 0 .5rem 0;
}
p {
  font-size:16px;
  font-weight:400;
  line-height:24px;
}

/* Utente non loggato / loggato */
body:not(.logged) #anon { display: flex !important; }
body:not(.logged) #logged { display: none !important; }
body.logged #anon { display: none !important; }
body.logged #logged { display: flex !important; }

/* Single product headings */
.single-product h1 { font-size:40px; line-height:40px; }
.single-product h3 { font-size:40px; line-height:40px; }

/* NAVBAR */
.navbar{
  position:absolute;
  top:0;
  left:0;
  right:0;
  z-index:10;
  padding:.6rem 1rem;
  background:transparent;
}
.navbar .navbar-toggler{order:1}
.navbar .navbar-brand{order:2;position:absolute;left:50%;transform:translateX(-50%); margin-top:5px;}
.navbar .d-flex{order:3}

@media (max-width: 991.98px) {
  .navbar-brand img { width: 90%; height: auto; }
}

/* INLINE SEARCH */
.navbar-search {
  right: 40px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  opacity: 0;
  overflow: hidden;
  transition: all 0.4s ease;
  z-index: 5;
}
.navbar-search.active { width: 200px; opacity: 1; }
.search-input {
  background-color: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.4);
  color: #fff;
  font-size: 0.9rem;
  padding: 0.25rem 0.6rem;
  border-radius: 4px;
}
.search-input::placeholder { color: rgba(255,255,255,0.6); }
.search-input:focus { outline: none; border-color: var(--accent-sub, #818722); background-color: rgba(255,255,255,0.2); }

/* HERO GENERICA (parte della "standard site") */
.hero{
  position:relative;
  width:100%;
  height:100vh;
  overflow:hidden;
}
.hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero-overlay{ position:absolute; inset:0; background:rgba(0,0,0,.35); z-index:1; }
.hero-content { position: relative; z-index:2; top: 20%; transform: translateY(8%); text-align: center; color: rgb(255, 255, 255); }
.hero-claim{
  font-size:80px;
  font-weight:500;
  letter-spacing:-1px;
  line-height:64px;
  margin:0 0 2rem 0;
  color:var(--title-bg);
}

/* BUTTONS GENERALI */
.hero-btn, .acc-btn, .register-btn{
  background-color: rgba(255,255,255,0);
  color: var(--btn-border);
  border: 1px solid var(--btn-border);
  border-radius: 14px;
  font-family: var(--font-headings);
  font-weight:500;
  font-size:15px;
  text-transform: uppercase;
  height:41px;
  line-height:15px;
  padding:12px 24px;
  text-align:center;
  text-decoration:none;
  display:inline-block;
  transition: all 0.3s ease;
  cursor:pointer;
  -webkit-font-smoothing: antialiased;
}
.hero-btn:hover, .acc-btn:hover, .register-btn:hover{
  background-color: var(--btn-border);
  color: #40403a;
  text-decoration:none;
}
.hero-btn-more {margin-top: 3rem;}

/* SECTION INTRO (titolo intro) */
.section-intro .lead-cappello{
  color:var(--accent-sub);
  font-size: 25px;
  font-weight:500;
  font-family:var(--font-headings);
}
.section-intro .mb-5{ margin-bottom: 0rem !important; }

/* TITOLI SECONDARI USATI NEL TEMA */
.pretitle{
  font-family:var(--font-headings);
  color:var(--accent-sub);
  text-transform:uppercase;
  letter-spacing:1px;
  font-weight:600;
}

h4.pretitle {
  font-size: 24px;
}

.title{
  color:#000;
  margin-top:.8rem;
  margin-bottom:2rem;
}

/* FOOTER (inclusi background e colori) */
.site-footer .footer-top{
  background:#818722;
  color:#fff;
  padding:3rem 0;
}
.site-footer h6{ color:#fff; font-size:20px; font-weight:500; }
.site-footer p, .site-footer ul{ color:#f6f3ee; }
.site-footer .link-light{ color:#f6f3ee; text-decoration:none; }
.site-footer .link-light:hover{ text-decoration:underline; }
.footer-bottom{
  background:#000;
  color:#fff;
  padding:.75rem 1rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.language-selector img{ margin-left:8px; }

.footer-social { display:flex; gap:10px; align-items:center; }
.social-title {
  font-family: var(--font-accent, 'Raleway', sans-serif);
  color: #fff;
  text-transform: uppercase;
  font-size: 0.9rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.social-icon { width: 28px; height: 28px; transition: transform 0.2s ease, opacity 0.2s ease; }
.social-icon:hover { transform: scale(1.1); opacity: 0.85; }

/* MINI-CART SIDE */
.mini-cart {
  position: fixed;
  top: 0;
  right: -400px;
  width: 350px;
  height: 100%;
  background: #fff;
  box-shadow: -4px 0 15px rgba(0,0,0,0.2);
  z-index: 1050;
  display: flex;
  flex-direction: column;
  transition: right 0.3s ease;
  padding: 1rem;
  overflow-y: auto;
}
.mini-cart.open { right: 0; }
.mini-cart-header { border-bottom: 1px solid #ddd; padding-bottom: 0.5rem; margin-bottom: 1rem; }
.mini-cart-header h5 { margin: 0; font-family: var(--font-headings); font-weight: 600; }
#closeMiniCart { font-size: 1.5rem; line-height: 1; border: none; background: none; cursor: pointer; }
.mini-cart-items { flex-grow: 1; display: flex; flex-direction: column; gap: 0.5rem; }
.mini-cart-item { display: flex; justify-content: space-between; font-family: 'Nunito', sans-serif; font-size: 0.95rem; padding: 0.25rem 0.5rem; border-bottom: 1px solid #eee; }
.mini-cart-footer { border-top: 1px solid #ddd; padding-top: 1rem; font-family: 'Nunito', sans-serif; }
.mini-cart-footer a.btn-accent { background-color: var(--accent-sub); color: #fff; border: 1px solid var(--accent-sub); border-radius: 14px; font-weight: 500; text-transform: uppercase; }
.mini-cart-footer a.btn-accent:hover { background-color: #fff; color: var(--accent-sub); text-decoration: none; }

/* Nascondo il minicart di default (overlay) */
#miniCart, .mini-cart-overlay { display: none; }
#miniCart.active, .mini-cart-overlay.active { display: block; }
@media (max-width: 767.98px) {
  #miniCart, .mini-cart-overlay { display: none; }
}

/* MINI-CART ITEMS dettagli */
.mini-cart-item { display:flex; align-items:center; gap:.5rem; padding:.5rem 0; border-bottom:1px solid #eee; }
.mini-cart-thumb { width:60px; height:60px; object-fit:cover; border-radius:12px; }
.mini-cart-details { flex-grow:1; display:flex; flex-direction:column; gap:.25rem; font-family:'Nunito',sans-serif; }
.mini-cart-details .sku { font-size:12px; color:#666; }
.qty-controls { display:flex; align-items:center; gap:.25rem; }
.qty-btn { background-color:#818722; color:#fff; border:none; width:24px; height:24px; border-radius:50%; cursor:pointer; font-weight:bold; line-height:1; }
.qty-btn:hover { background-color:#fff; color:#818722; border:1px solid #818722; }
.qty-input { width:40px; text-align:center; border:1px solid #ddd; border-radius:6px; font-size:14px; height:24px; }

/* CART BADGE */
#cartBadge { position:absolute; top:-6px; right:-6px; background:red; color:#fff; border-radius:50%; padding:2px 6px; font-size:12px; font-weight:600; pointer-events:none; }

/* RICERCA INLINE NAVBAR */
#searchInput { width: 200px; transition: all 0.3s ease; }
#searchInput:focus { outline:none; box-shadow:0 0 4px rgba(129,135,34,0.5); }
.navbar-search input.form-control { width:200px; transition: width 0.3s ease; }
.navbar-search input.form-control:focus { width:250px; }
.navbar-search button { white-space: nowrap; }

/* PRODOTTI / GRID / CARD generici (tema) */
.product-grid .product-card { border-radius:12px; overflow:hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.product-grid .product-card:hover { transform: translateY(-5px); box-shadow:0 10px 20px rgba(0,0,0,0.1); }
.product-card .ribbon { position:absolute; top:10px; left:10px; padding:0.25rem 0.5rem; font-size:0.75rem; font-weight:600; color:#fff; border-radius:4px; text-transform:uppercase; }
.ribbon-new { background-color:#818722; } .ribbon-sale { background-color:#c0392b; }
.product-card img { width:100%; object-fit:cover; }
.card-body h5 { font-family:var(--font-headings); font-size:1rem; margin-bottom:0.5rem; }
.card-body p { font-size:0.9rem; margin-bottom:0.5rem; }
.btn-accent { background-color:#818722; color:#fff; border-radius:12px; text-transform:uppercase; font-size:0.8rem; padding:0.5rem; transition: all 0.3s ease; }
.btn-accent:hover { background-color:#fff; color:#818722; }

/* CATEGORY HERO */
.category-hero { position:relative; background-size:cover; background-position:center; height:300px; }
.category-hero .overlay { position:absolute; inset:0; background: rgba(0,0,0,0.35); }
.category-hero h1 { position:absolute; bottom:50px; left:50%; transform:translateX(-50%); margin:0; color:#fff; text-align:center; font-size:64px; }

/* BREADCRUMB E FILTRI */
.breadcrumb-container { background: var(--page-bg); padding: 0.5rem 1rem; display:flex; align-items:center; justify-content:space-between; border-radius:.5rem; margin-bottom:1rem; flex-wrap:wrap; }
.breadcrumb { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; }
.breadcrumb li + li::before { content:"/"; padding:0 .5rem; color:#999; }
.breadcrumb a { color: var(--accent-sub); text-decoration:none; }
.breadcrumb a:hover { text-decoration:underline; }
.breadcrumb-item + .breadcrumb-item::before { content: ">"; color: var(--accent-sub, #ff9900); }
.breadcrumb-item a { color: var(--accent-sub, #ff9900); text-decoration:none; }
.breadcrumb-item.active { background: transparent; color: var(--color-card-bg, #333); }

/* FILTER TOGGLE & FILTERS SECTION */
#filterToggle { border:2px solid var(--accent-sub, #ff9900); background:transparent; padding:6px 10px; border-radius:.375rem; display:flex; align-items:center; transition:all .3s ease; }
#filterToggle img { transition: filter .3s ease; }
#filterToggle:hover { background: var(--color-card-bg, #f5f5f5); }
#filterToggle:hover img { content: url('../images/icons8-filter-64_w.png'); }

.filters-section { background-color: var(--color-card-bg); overflow:hidden; max-height:0; padding:0; transition: max-height 0.5s ease, padding 0.5s ease; }
.filters-section.open { max-height:500px; padding:15px; }
.filter-group { margin-bottom:10px; }
.filter-group strong { display:block; margin-bottom:.5rem; font-weight:600; }
.filter-group input[type="checkbox"] { margin-right:5px; }
.filter-group input[type="text"] { width:100%; }

/* SERVICE BUTTONS */
.service-buttons { background-color: var(--page-bg); padding:15px 0; }

/* RESPONSIVE GENERALE */
@media(max-width:991px){
  .hero-claim{ font-size:44px; line-height:44px; }
  .intro-h1{ font-size:40px; line-height:44px; }
  .title{ font-size:40px; line-height:44px; }
  .escape-h3{ font-size:44px; line-height:48px; max-width:100%; }
  .escape-par{ max-width:100%; }
  .accordion-images .acc-item{ min-height:220px; }
  .hero-btn{ font-size:1rem; padding:.5rem 1.5rem; margin-top:2rem; }
}
@media (max-width: 767px) {
  .breadcrumb-container { flex-direction: column; align-items:flex-start; gap:.5rem; }
  #filterToggle { margin-left:0; }
  .filters-section { max-height:0; }
  .filters-section.open { max-height:1000px; }
  .mini-cart { width:100%; }
}

/* =====================================================
   SEZIONE 2: STILI PLUGIN MODULAR PAGE
   (Half Video, Half Image, Accordion, Testimonials, Title Block, Title Intro, Title Text Left/Right, Verticards)
===================================================== */

/* VERTICARDS */
.verticards-section {
  padding: 3rem 0;
}
.verticards-section .verticards-card {
  display: flex;
  flex-direction: column;
  background: transparent;
  overflow: hidden;
  transition: transform 0.3s ease;
  position: relative;
  padding: 0;
  margin-bottom: 2rem;
}
.verticards-section .verticards-img {
  width: 100%;
  aspect-ratio: 1 / 1.5;
  display: block;
  object-fit: cover;
  border-radius: 21px;
  transition: transform 0.3s ease;
}
.verticards-section .verticards-card:hover .verticards-img { transform: scale(1.05); }
.verticards-section .verticards-content { padding: 1rem 0; }
.verticards-section .verticards-content h4 { font-size: 18px; font-weight: 500; margin-bottom: 0.5rem; }
.verticards-section .verticards-content p { font-size: 14px; line-height: 1.5; }
.verticards-card .bottom-img { order: 2; }
.verticards-card .top-img { order: 0; }

@media (max-width: 767.98px) {
  .verticards-section .verticards-card {
    flex-direction: column;
    border-radius: 21px;
    background-color: var(--color-card-bg);
    padding: 1rem 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
  }
  .verticards-section .verticards-img { aspect-ratio: 1 / 1; margin-bottom:1rem; }
  .verticards-section .verticards-content p { font-size: 16px; line-height: 1.5; }
  .verticards-section .verticards-content h4 { font-size: 18px; margin-bottom: .5rem; }
}

/* FULL IMAGE SECTION (half-image) */
.full-image-section {
  position: relative;
  width: 100%;
  height: 60vh;
  min-height: 300px;
  overflow: hidden;
}
.full-image-section.full-image-hero { height: 100vh; }
.full-image-img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: translate(-50%, -50%);
  z-index: 1;
}
.full-image-overlay { position:absolute; top:0; left:0; width:100%; height:100%; background: rgba(0,0,0,0.45); z-index:2; }
.full-image-section .container { position:relative; z-index:3; padding:0 15px; }
.full-image-section h3, .full-image-section p { color:#fff; max-width:650px; }
@media (max-width:767px) {
  .full-image-section .container { align-items:center; text-align:center; }
}

/* HALF VIDEO (plugin) */
.half-video{
  position:relative;
  height:60vh;
  min-height:500px;
  overflow:hidden;
}
.half-video-bg, .half-overlay{ position:absolute; inset:0; width:100%; height:100%; }
.half-video-bg{ object-fit:cover; }
.half-overlay{ background:rgba(0,0,0,.32); z-index:1 }
.half-video .container{ position:relative; z-index:2; height:100%; display:flex; align-items:center; }
.escape-h3{ color:var(--title-bg); }
.escape-par{ font-size:16px; font-weight:400; line-height:24px; max-width:40%; color:var(--title-bg); }
/* register-btn (qui è usato sia dal tema sia dal plugin; plugin styles kept minimal) */
.half-video .register-btn{
  position:absolute;
  right:24px;
  bottom:18px;
  z-index:3;
  background-color: rgba(255,255,255,0);
  color: var(--btn-border);
  border: 1px solid var(--btn-border);
  border-radius: 14px;
  font-family: var(--font-headings);
  font-weight:500;
  font-size:15px;
  text-transform:uppercase;
  height:41px;
  line-height:15px;
  padding:12px 24px;
  transition: all 0.3s ease;
}
.half-video .register-btn:hover { background-color: var(--btn-border); color:#40403a; }

/* ACCORDION (plugin) */
.accordion-images {
  display: flex;
  width: 100%;
  height: 400px;
  overflow: hidden;
  gap: 0;
}
.accordion-images .acc-item { flex: 1 1 0%; position: relative; transition: flex 0.4s ease; }
.accordion-images .acc-media { width: 100%; height: 100%; position: relative; cursor: pointer; outline: none; }
.accordion-images .acc-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.accordion-images .acc-overlay { position: absolute; bottom: 0; width: 100%; padding: 1rem; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.45) 100%); color: #fff; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; }
.accordion-images .acc-title { margin: 0 0 0.5rem; font-family: var(--font-headings); font-weight: 600; }
.accordion-images .acc-btn { background-color: rgba(255,255,255,0); color: rgb(246,243,238); border: 1px solid rgb(246,243,238); border-radius: 14px; font-family: var(--font-headings); font-weight:500; font-size:15px; text-transform: uppercase; height:41px; line-height:15px; padding:12px 24px; text-align:center; text-decoration:none; display: inline-block; width: auto; transition: all 0.3s ease; }
.accordion-images .acc-btn:hover { background-color: rgb(246,243,238); color: #40403a; }
.accordion-images .acc-item:hover { flex: 3 1 0%; }
.accordion-images .acc-item:not(:hover) { flex: 1 1 0%; }
.accordion-images .acc-item.expanded .acc-media img, .accordion-images .acc-item:hover .acc-media img { transform: scale(1.05); }
@media(max-width: 991px){
  .accordion-images { flex-direction: column; height: auto; }
  .accordion-images .acc-item { flex: 1 1 100%; min-height: 220px; }
  .accordion-images .acc-item:hover { flex: 1 1 100%; }
}

/* TESTIMONIALS (plugin) */
.testimonials {
  background-color: var(--page-bg) !important;
}
.testimonial-card {
  background-color: var(--color-card-bg);
  border: none;
  box-shadow: none;
  border-radius: 21px;
}
.testimonial-card .card-footer {
  background-color: var(--color-card-bg);
  border-top: none;
  border-radius: 0 0 21px 21px;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.testimonial-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
.testimonial-quote { font-size: 2rem; color: #818722; }
.testimonial-avatar { width: 50px; height: 50px; object-fit: cover; }
.testimonial-rating { display: flex; gap: 4px; align-items: center; }
.testimonial-rating img { width: 20px; height: 20px; }

/* TITLE BLOCKS (plugin) */
/* Title block / Intro title / Title text left / right */
.title-block, .title-intro-block, .title-text-left, .title-text-right { margin-bottom: 2rem; }
.title-block h2, .title-intro-block h2, .title-text-left h2, .title-text-right h2 { font-family: var(--font-headings); font-weight:500; color:#000; }
.title-text-left h4, .title-text-right h4 {
  text-transform: uppercase;
  color: var(--accent-sub);
  font-weight: 600;
  margin-bottom: 1rem;
}

/* SECTION FLAGS & EDITORIAL (used by plugin blocks) */
.home-section { background-color: var(--section-bg); color: var(--section-text); overflow: hidden; }
.home-section .row.align-items-center { display:flex; flex-wrap:wrap; align-items:flex-start !important; }
.home-section .pretitle { margin-bottom: 1rem; }

/* Titoli sbandierati (title left/right plugin blocks) */
.section-flag-left, .section-flag-right {
  width: 50% !important;
  margin: 0;
  padding: 0.5em 0;
}
.section-flag-left { display:inline-block; text-align:left; }
.section-flag-right { display:block; text-align:right; margin-left:auto; width:fit-content; }

/* Section text (plugin) */
.section-text { column-count:1; column-gap:0; column-rule:none; }
.section-text.two_cols {
  column-count: 2;
  column-gap: 40px;
  column-rule: 1px solid #ddd;
}
@media (max-width: 768px) {
  .section-text { column-count:1; column-gap:0; column-rule:none; }
  .section-flag-left, .section-flag-right { width:100%; text-align:center; }
}

/* Section subtitles left/right (plugin) */
.section-subtitle-left { text-align:left; font-weight:600; margin-bottom:1rem; }
.section-subtitle-right { text-align:right; font-weight:600; margin-bottom:1rem; }

/* small responsive helpers */
.section-1 .col-md-6 > .row, .section-2 .col-md-6 > .row { display:flex; flex-wrap:wrap; gap:1rem; }
.section-1 .col-md-6 > .row > div, .section-2 .col-md-6 > .row > div { flex:1 1 50%; }
@media (max-width: 767.98px) {
  .section-1 .col-md-6 > .row, .section-2 .col-md-6 > .row { flex-direction:column; }
}

/* END SEZIONE 2 */

/* (nota: tutte le regole responsive già incluse sopra e nei rispettivi blocchi) */
