/* ═══════════════════════════════════════════════
   Art Mega Menu — Front-end Styles
   ═══════════════════════════════════════════════ */

/* ── Topbar ── */
.amm-topbar {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding: 8px 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
    box-sizing: border-box;
}
header#header {
    margin-top: 45px !important;
}
/* Scrolling mode */
.amm-topbar-scrolling .amm-topbar-inner {
    display: inline-flex;
    white-space: nowrap;
    will-change: transform;
    animation: amm-topbar-scroll linear infinite;
}

@keyframes amm-topbar-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* Static mode: testo centrato */
.amm-topbar-static .amm-topbar-inner {
    display: flex;
    justify-content: center;
    white-space: normal;
    text-align: center;
    padding: 0 16px;
}

/* Neutralize theme styles on <p> tags inside topbar content */
.amm-topbar-text p {
    margin: 0;
    padding: 0;
    color: inherit;
    text-align: inherit;
    display: inline;
}

/* Visibilità selettiva desktop / mobile */
.amm-topbar-desktop-only { display: block; }
.amm-topbar-mobile-only  { display: none; }

@media (max-width: 767px) {
    .amm-topbar-desktop-only { display: none; }
    .amm-topbar-mobile-only  { display: block; }
}

/* ── Theme overrides ── */
#amm-nav-wrapper button:focus,
#amm-front-panel button:focus {
    outline: none;
}

/* ── Wrapper ── */
.amm-nav-wrapper {
    position: relative;
    z-index: 1000;
}

/* ── Navigation bar ── */
.amm-nav-bar {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

.amm-nav-item {
    position: relative;
}

.amm-nav-link {
    display: block;
    padding: 22px 18px;
    color: #333;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.15s;
    border-bottom: 1px solid transparent;
    font-family: 'Host Grotesk', sans-serif !important;
        text-transform: uppercase !important;
        font-size: 11px !important;
        font-weight: 400;
        letter-spacing: 1px;
}

.amm-nav-link:hover,
.amm-nav-link.amm-nav-active {
    color: #222;
    border-bottom-color: #333;
    text-decoration: none;
}

.amm-nav-badge {
    display: inline-block;
    position: absolute;
    top: 2px;
    right: -12px;
    border-radius: 0;
    padding: 0 6px;
    font-size: 10px;
    height: 19px;
    line-height: 18px;
}

/* ── Mega panel — fixed full-viewport-width ── */
.amm-front-panel {
    position: fixed;
    left: 0;
    right: 0;
    width: 100%;
    height: 80vh;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    border-top: 1px solid #eee;
    z-index: 9999;
    pointer-events: none;
    clip-path: inset(0 0 100% 0);
    visibility: hidden;
    transition: clip-path 0.45s cubic-bezier(0.9, 0, 0.1, 1),
                visibility 0s linear 0.45s;
}

.sticky .amm-front-panel {
  margin-top: -5px;
}

.amm-front-panel.amm-panel-open {
    clip-path: inset(0 0 0% 0);
    visibility: visible;
    pointer-events: auto;
    transition: clip-path 0.45s cubic-bezier(0.09, 0.72, 0.76, 1.01),
                visibility 0s linear 0s;
}

.amm-front-panel-inner {
    position: relative;
    height: 100%;
}

/* All content blocks stacked — CSS-only show/hide via opacity + visibility */
.amm-front-panel-content {
    position: absolute;
    inset: 0;
    overflow-y: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s cubic-bezier(0.9, 0, 0.1, 1),
                visibility 0s linear 0.15s;
}

/* First open: 0.4s delay — content appears once panel is fully open */
.amm-front-panel-content.amm-content-in {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.3s cubic-bezier(0.9, 0, 0.1, 1) 0.4s,
                visibility 0s linear 0.4s;
}

/* Panel switch: short delay then fade-in */
.amm-front-panel-content.amm-content-switch {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.3s cubic-bezier(0.9, 0, 0.1, 1) 0.25s,
                visibility 0s linear 0.25s;
}

/* ── Columns ── */
.amm-front-columns {
    display: flex;
    align-items: stretch;
    padding: 0px;
    gap: 0px;
    height: 100%;
    box-sizing: border-box;
}

.amm-front-col {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 0;
    min-width: 0;
    align-self: stretch;
    overflow-y: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.amm-front-col::-webkit-scrollbar {
      display: none;
}

.amm-front-col:not(:last-child) {
    border-right: .05px solid #e0e0e0;
    padding-right: 0px;
    padding: 0px;
}

.amm-front-col-1 { flex: 1; }
.amm-front-col-2 { flex: 2; }
.amm-front-col-3 { flex: 3; }
.amm-front-col-4 { flex: 4; }

/* ── Widget blocks ── */
.amm-front-widget {
    flex-shrink: 0;
}

/* Image/video widgets expand to fill remaining column space */
.amm-front-widget--media {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 180px;
}

.amm-front-widget--media .amm-img-widget,
.amm-front-widget--media .amm-video-widget {
    flex: 1;
}

/* ── Widget title ── */
.amm-front-widget .amm-widget-title {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #121212;
    margin: 0 0 10px;
    padding: 6px 20px !important;
    border-bottom: 0.5px solid #e0e0e0;
}
#header.normal .row.action {
    padding: 0px 30px 0px;
        border-bottom: 0.5px solid #EAEAEA;
}
#header .header-top > .container, #header .header-nav > .container {
  background-color: #FFFFFF
}
#header .header-top {
    margin-top: -5px;
}
/* ── Categories ── */
.amm-front-widget .amm-cat-nav {
    position: relative;
    overflow: hidden;
}

.amm-front-widget .amm-cat-panel {
    width: 100%;
    transition: transform 0.25s ease;
}

.amm-front-widget .amm-cat-panel-sub {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: #fff;
    transform: translateX(100%);
    transition: transform 0.25s ease;
}

.amm-front-widget .amm-cat-nav.amm-sub-open .amm-cat-panel { transform: translateX(-100%); }
.amm-front-widget .amm-cat-nav.amm-sub-open .amm-cat-panel-sub { transform: translateX(0); }

.amm-front-widget .amm-cat-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.amm-front-widget .amm-front-cat-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 0px solid #f2f2f2;
}

.amm-front-widget .amm-front-cat-item:last-child { border-bottom: none; }

.amm-front-widget .amm-front-cat-item.amm-has-subs { cursor: pointer; }
.amm-front-widget .amm-front-cat-item.amm-has-subs:hover { background: #f9f9f9; }

.amm-front-widget .amm-cat-name {
    flex: 1;
    display: block;
    padding: 8px 4px;
    font-size: 14px;
    color: #121212;
    text-decoration: none;
    line-height: 1.3;
}

.amm-front-widget .amm-cat-name:hover { color: #000; text-decoration: none; }

/* CSS chevron right */
.amm-front-widget .amm-cat-sub-arrow {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-top: 0.5px solid #121212;
    border-right: 0.5px solid #121212;
    transform: rotate(45deg);
    flex-shrink: 0;
    margin-right: 8px;
}

/* CSS chevron left — color inherits from button */
.amm-front-widget .amm-cat-back-arrow {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-top: 1.5px solid currentColor;
    border-left: 1.5px solid currentColor;
    transform: rotate(-45deg);
    flex-shrink: 0;
}

.amm-front-widget .amm-cat-back-item {
    border-bottom: 0.5px solid #ddd !important;
}

.amm-front-widget .amm-cat-back-btn {
    background: none;
    border: none;
    padding: 8px 4px;
    color: #333;
    cursor: pointer;
    font-size: 13px;
    font-weight: 400;
    display: flex;
    align-items: center;
    gap: 8px;
}

.amm-front-widget .amm-cat-back-btn:hover { color: #000; }

.amm-front-widget .amm-cat-parent-item .amm-cat-name {
    font-weight: 700;
}

/* ── Products ── */
.amm-front-widget .amm-products-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 20px;
}

.amm-front-widget .amm-product-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    text-decoration: none;
    color: inherit;
}

.amm-front-widget .amm-product-img {
    flex: 1 1 0;
    min-width: 0;
}

.amm-front-widget .amm-product-img img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 3px;
    display: block;
}

.amm-front-widget .amm-product-img-placeholder {
    width: 100%;
    aspect-ratio: 1;
    background: #f5f5f5;
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ccc;
    font-size: 20px;
}

.amm-front-widget .amm-product-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 2 1 0;
    min-width: 0;
    align-items: left;
    justify-content: center;
}

.amm-front-widget .amm-product-name {
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 1px;
    color: #121212;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.amm-front-widget .amm-product-price {
    font-size: 13px;
    color: #121212;
    font-weight: 400;
}

.amm-front-widget .amm-product-buy {
    display: inline-block;
    margin-top: 4px;
    padding: 0px;
    font-size: 11px;
    font-weight: 400;
    border: 0px solid #333;
    border-radius: 0px;
    color: #333;
    align-self: flex-start;
    text-transform: uppercase;
    transition: background 0.15s, color 0.15s;
}

.amm-front-widget .amm-product-row:hover .amm-product-buy {
    background: #FFF;
    color: #121212;
    text-decoration: underline;
}

/* ── Image widget ── */
.amm-front-widget .amm-img-widget {
    position: relative;
    background-color: #f0f0f0;
    background-size: cover;
    background-position: center;
    border-radius: 0px;
    overflow: hidden;
    min-height: 180px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.amm-front-widget .amm-align-h-left  { justify-content: flex-start; }
.amm-front-widget .amm-align-h-right { justify-content: flex-end; }

.amm-front-widget .amm-align-v-top    .amm-img-content { align-self: flex-start; }
.amm-front-widget .amm-align-v-middle .amm-img-content { align-self: center; }
.amm-front-widget .amm-align-v-bottom .amm-img-content { align-self: flex-end; }

.amm-front-widget .amm-img-gradient {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

/* Gradient follows text position */
.amm-front-widget .amm-align-v-bottom .amm-img-gradient {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.65) 0%, transparent 60%);
}
.amm-front-widget .amm-align-v-top .amm-img-gradient {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.65) 0%, transparent 60%);
}
.amm-front-widget .amm-align-v-middle.amm-align-h-center .amm-img-gradient {
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.55) 0%, transparent 70%);
}
.amm-front-widget .amm-align-v-middle.amm-align-h-left .amm-img-gradient {
    background: radial-gradient(ellipse at left center, rgba(0, 0, 0, 0.55) 0%, transparent 70%);
}
.amm-front-widget .amm-align-v-middle.amm-align-h-right .amm-img-gradient {
    background: radial-gradient(ellipse at right center, rgba(0, 0, 0, 0.55) 0%, transparent 70%);
}

.amm-front-widget .amm-img-content {
    position: relative;
    z-index: 1;
    padding: 16px;
}

.amm-front-widget .amm-align-h-left   .amm-img-content { text-align: left; }
.amm-front-widget .amm-align-h-center .amm-img-content { text-align: center; }
.amm-front-widget .amm-align-h-right  .amm-img-content { text-align: right; }

.amm-front-widget .amm-img-title {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 6px;
    line-height: 1.3;
    background: transparent !important;
    text-align: inherit;
}

.amm-front-widget .amm-img-desc {
    font-size: 13px;
    margin: 0 0 10px;
    line-height: 1.5;
    color: inherit;
    text-align: inherit;
}

.amm-front-widget .amm-widget-btn {
    display: inline-block;
    padding: 7px 18px;
    border: 0.5px solid currentColor;
    border-radius: 0px;
    letter-spacing: 1px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    transition: opacity 0.2s;
}

.amm-front-widget .amm-widget-btn:hover {
    opacity: 0.8;
    text-decoration: none;
}

/* ── Video widget ── */
.amm-front-widget .amm-video-widget {
    position: relative;
    border-radius: 0px;
    overflow: hidden;
    min-height: 180px;
    display: flex;
    align-items: stretch;
    justify-content: center;
}
body:not(#index) #main {
    padding-top: 76px;
  }
  #header.sticky.normal .row.action {
      padding: 0px 0px;
  }
.amm-front-widget .amm-video-embed {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.amm-front-widget .amm-video-embed iframe,
.amm-front-widget .amm-video-embed video {
    position: absolute;
    top: 50%;
    left: 50%;
    /* Cover technique: iframe sized 16:9, forced to fill container */
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    aspect-ratio: 16 / 9;
    transform: translate(-50%, -50%);
    border: 0;
}

/* ── Text (WYSIWYG) widget ── */
.amm-front-widget .amm-text-content {
    font-size: 13px;
    line-height: 1.6;
    color: #444;
}

.amm-front-widget .amm-text-content a { color: inherit; }

/* ── CMS list ── */
.amm-front-widget .amm-cms-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.amm-front-widget .amm-cms-list li {
    border-bottom: 1px solid #f2f2f2;
}

.amm-front-widget .amm-cms-list li:last-child { border-bottom: none; }

.amm-front-widget .amm-cms-link {
    display: block;
    padding: 8px 4px;
    font-size: 13px;
    color: #333;
    text-decoration: none;
}

.amm-front-widget .amm-cms-link:hover { color: #000; text-decoration: none; }

/* ── Spacer ── */
.amm-front-widget .amm-spacer { width: 100%; }

/* ── Heading widget ── */
.amm-front-widget .amm-heading-widget {
    margin: 0 0 8px;
    line-height: 1.3;
    font-weight: 700;
    color: inherit;
}

/* ── Custom URL widget ── */
.amm-front-widget .amm-custom-url-link {
    display: inline-block;
    font-size: 13px;
    color: #333;
    text-decoration: underline;
    transition: opacity 0.15s;
}

.amm-front-widget .amm-custom-url-link:hover {
    opacity: 0.7;
    text-decoration: underline;
}

.amm-front-widget .amm-custom-url-wrapper {
    display: block;
}

/* ── Slider widget ── */
.amm-front-widget .amm-slider {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    min-height: 240px;
}

.amm-front-widget--media .amm-slider {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 240px;
}

.amm-slider-track {
    position: relative;
    flex: 1;
    min-height: 240px;
    overflow: hidden;
}

.amm-slide {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-size: cover;
    background-position: center;
    background-color: #333;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.amm-slide.amm-slide-active {
    opacity: 1;
    pointer-events: auto;
}

/* ─ Fade animation ─ */
.amm-slider-anim-fade .amm-slide { transform: none; }

/* ─ Zoom animation ─ */
.amm-slider-anim-zoom .amm-slide { transform: scale(1.06); }
.amm-slider-anim-zoom .amm-slide.amm-slide-active { transform: scale(1); }

/* ─ Slide animation — all transforms managed by JS, no CSS rules needed ─ */

/* Slide content — inherits color from inline style, alignment via .amm-align-h/v-* */
.amm-slider .amm-img-content {
    position: relative;
    z-index: 1;
    padding: 16px;
}

/* ─ Navigation arrows — minimal circular CSS chevrons ─ */
.amm-slider-prev,
.amm-slider-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(0,0,0,0.35);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s;
}
.amm-slider-prev { left: 10px; }
.amm-slider-next { right: 10px; }
.amm-slider-prev:hover,
.amm-slider-next:hover { background: rgba(0,0,0,0.6); }

.amm-slider-prev::before,
.amm-slider-next::before {
    content: '';
    display: block;
    width: 9px;
    height: 9px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    position: absolute;
    top: 50%;
    left: 50%;
}
.amm-slider-prev::before {
    transform: translate(-30%, -50%) rotate(-135deg);
}
.amm-slider-next::before {
    transform: translate(-70%, -50%) rotate(45deg);
}

/* Hide arrows when autoplay is on */
.amm-slider[data-autoplay="1"] .amm-slider-prev,
.amm-slider[data-autoplay="1"] .amm-slider-next { display: none; }


.amm-front-widget .amm-custom-url-wrapper.amm-btn-align-left   { text-align: left; }
.amm-front-widget .amm-custom-url-wrapper.amm-btn-align-center { text-align: center; }
.amm-front-widget .amm-custom-url-wrapper.amm-btn-align-right  { text-align: right; }

.amm-front-widget .amm-custom-url-btn {
    display: inline-block;
    padding: 8px 20px;
    border: 1px solid var(--amm-btn-border, #000);
    border-radius: 0px;
    font-size: 14px;
    font-weight: 600;
    color: var(--amm-btn-text, #000);
    background: var(--amm-btn-bg, #fff);
    text-decoration: none;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    cursor: pointer;
}

.amm-front-widget .amm-custom-url-btn.amm-btn-size-sm {
    padding: 5px 14px;
    font-size: 12px;
}

.amm-front-widget .amm-custom-url-btn.amm-btn-size-md {
    padding: 8px 20px;
    font-size: 14px;
}

.amm-front-widget .amm-custom-url-btn.amm-btn-size-lg {
    padding: 13px 30px;
    font-size: 16px;
}

.amm-front-widget .amm-custom-url-btn.amm-btn-size-full {
    display: block;
    width: 100%;
    padding: 10px;
    font-size: 14px;
    text-align: center;
    box-sizing: border-box;
}

.amm-front-widget .amm-custom-url-btn:hover {
    background: var(--amm-btn-bg-h, #fff);
    color: var(--amm-btn-text-h, #000);
    border-color: var(--amm-btn-border-h, #000);
    text-decoration: none;
}

/* ═══════════════════════════════════════════════
   Art Mega Menu — Versione mobile (.side_menu)
   Il tema del sito gestisce il drawer/hamburger.
   Questi stili si attivano solo quando il modulo
   è renderizzato dentro il div .side_menu.
   ═══════════════════════════════════════════════ */

/* ── Elementi mobile: nascosti sul desktop ── */
.amm-mobile-panel-header { display: none; }
.amm-mobile-item-btn     { display: none !important; }

/* ── Dentro .side_menu: nav bar verticale ── */
.side_menu .amm-nav-bar {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
}

.side_menu .amm-nav-item {
    position: static;
}

.side_menu .amm-nav-link {
    padding: 22px 16px;
    border-bottom: none;
    white-space: normal;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.side_menu .amm-nav-link:hover,
.side_menu .amm-nav-link.amm-nav-active {
    border-bottom-color: transparent;
}

/* ── Freccia destra come ::after sul link del mega menu ── */
.side_menu .amm-nav-has-panel .amm-nav-link::after {
    content: '';
    display: inline-block;
    width: 7px;
    height: 7px;
    border-top: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
    transform: rotate(45deg);
    flex-shrink: 0;
    opacity: 0.5;
}

/* ── Pannello: slide da destra → sinistra all'apertura,
       sinistra → destra alla chiusura (override animazione desktop) ── */
.side_menu .amm-front-panel {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    clip-path: none !important;
    visibility: visible !important;
    box-shadow: none;
    border-top: none;
    overflow-y: auto;
    pointer-events: none;
    z-index: 99999 !important;
    background: #fff;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.side_menu .amm-front-panel.amm-mobile-panel-open {
    transform: translateX(0);
    pointer-events: auto;
}

/* ── Header "Indietro": visibile solo in .side_menu ── */
.side_menu .amm-mobile-panel-header {
    display: flex;
    align-items: center;
    padding: 12px 16px;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.amm-mobile-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px 0;
    font-size: 14px;
    font-weight: 600;
    color: #333;
}

.amm-mobile-back-btn:hover { color: #000; }

.amm-mobile-back-arrow {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-top: 1.5px solid currentColor;
    border-left: 1.5px solid currentColor;
    transform: rotate(-45deg);
    flex-shrink: 0;
}

/* ── Contenuto pannello: statico (override stacking desktop) ── */
.side_menu .amm-front-panel-inner {
    height: auto;
}

.side_menu .amm-front-panel-content {
    position: static !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transition: none !important;
    display: none;
}

.side_menu .amm-front-panel-content.amm-mobile-content-active {
    display: block;
}

/* ── Colonne: una sotto l'altra, nessun bordo ── */
.side_menu .amm-front-columns {
    flex-direction: column;
    height: auto;
    padding: 16px;
    gap: 16px;
}

.side_menu .amm-front-col {
    align-self: auto;
    width: 100%;
    gap: 12px;
}

.side_menu .amm-front-col-1,
.side_menu .amm-front-col-2,
.side_menu .amm-front-col-3,
.side_menu .amm-front-col-4 {
    flex: none;
}

.side_menu .amm-front-col:not(:last-child) {
    border-right: none;
    padding-right: 0;
}
.amm-front-col:first-child {
  padding: 20px
}
