   @font-face {
    font-family: 'Benguiat';
    src: url('../fonts/Benguiat.otf'); /* IE9 Compat Modes */ 
    src: url('../fonts/Benguiat.woff2') format('woff2'), /* Super Modern Browsers */
         url('../fonts/Benguiat.woff') format('woff'), /* Pretty Modern Browsers */
         url('../fonts/Benguiat.ttf')  format('truetype'); /* Safari, Android, iOS */
    font-display: swap;     
  }
   @font-face {
    font-family: 'DMSans';
    src: url('../fonts/DMSans.otf'); /* IE9 Compat Modes */ 
    src: url('../fonts/DMSans.woff2') format('woff2'), /* Super Modern Browsers */
         url('../fonts/DMSans.woff') format('woff'), /* Pretty Modern Browsers */
         url('../fonts/DMSans.ttf')  format('truetype'); /* Safari, Android, iOS */
    font-display: swap;     
  }
  
  *, *::before, *::after { box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; margin: 0; padding: 0;}
  body {
    position:relative;
    margin: 0;        
    font-size: 1rem;     
    background-color: white;
    color:var(--cl-txt);
    width:100%;        
    font-family: var(--font-normal);     
    overflow-x: hidden;
    cursor:default;
    transition: background 1s ease-in-out;
    background: var(--bg-deep);
    -webkit-tap-highlight-color: transparent;
}

html {scroll-behavior: smooth; scroll-padding-top: 80px; max-width:100%; overflow-x: hidden; }
img { max-width: 100%; }
 
 
 :root {
    --bg-deep: #140f0b;
    --bg-section: #1a1410;
    --bg-card: #1f1813;
    --bg-warm: #211a14;
    --gold: #c4a04e;
    --gold-light: #d9b966;
    --gold-dim: rgba(196,160,78,0.12);
    --cream: #f0e6d3;
    --text: rgba(240,230,211,0.9);
    --text-dim: rgba(240,230,211,0.6);
    --text-faint: rgba(240,230,211,0.6);
    --serif: 'Benguiat', serif;
    --sans: 'DM Sans', sans-serif;
    
  }

/* ══════════════════════════════════════
    ANIMATIONS
    ══════════════════════════════════════ */
@keyframes fadeUp {
from { opacity: 0; transform: translateY(24px); }
to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeDown {
from { opacity: 0; transform: translateY(-20px); }
to   { opacity: 1; transform: translateY(0); }
}

.reveal {
opacity: 0;
transform: translateY(40px);
transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
            transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.visible {
opacity: 1;
transform: translateY(0);
} 

.topbar-lang {
  position: fixed;
  top: 0; left: 0; right: 0;
  display:flex;
  align-items:center;
  justify-content: flex-end;
  height:30px;
  background: rgba(20,15,11,1);
  padding: 5px 50px;  
  border-bottom: 1px solid var(--gold-dim);
  z-index: 210;
}

nav {
position: fixed;
top: 30px; left: 0; right: 0;
z-index: 210;
height: 100px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(20,15,11,0.9);
-webkit-backdrop-filter: blur(16px);
backdrop-filter: blur(16px);
border-bottom: 2px solid var(--gold-dim);
padding-block: 40px;

}

.nav-inner {
width: 100%;
margin:0 auto;
padding: 0 40px;
display: flex;
align-items: center;
justify-content: center;
}

.nav-links {
display: flex;
align-items: center;
gap: 28px;
list-style: none;
flex: 1;
}

.nav-link-left {
justify-content: flex-end;
padding-right: 32px;
padding-left:0;
}

.nav-link-right {
justify-content: flex-start;
padding-left: 32px;
}

.nav-links a, .lang-option {
font-family: var(--sans);
font-size: 14px;
font-weight: 400;
letter-spacing: 2.5px;
text-transform: uppercase;
color: var(--text-dim);
text-decoration: none;
transition: color 0.3s;
white-space: nowrap;
}

.lang-option {background:none;border:none; padding:0;}

.nav-links a:hover, .lang-option:hover { color: var(--gold-light); }

.nav-logo-center {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
text-decoration: none;
transition: all 0.4s;
z-index: 201;
}

.nav-logo-center:hover {
background: rgba(196,160,78,0.08);
}

.logo-img { width: 180px; }


/* ══════════════════════════════════════
    DROPDOWN — Desktop
    ══════════════════════════════════════ */
.has-dropdown {
position: relative;
}

.has-dropdown > a {
display: inline-flex;
align-items: center;
gap: 5px;
}

.dropdown-arrow {
transition: transform 0.3s;
flex-shrink: 0;
}

.has-dropdown:hover .dropdown-arrow,
.has-dropdown.open .dropdown-arrow {
transform: rotate(180deg);
}

.dropdown-menu {
position: absolute;
top: calc(100% + 38px);
left: 50%;
transform: translateX(-50%);
min-width: 220px;
background: rgba(26,20,16,0.97);
-webkit-backdrop-filter: blur(20px);
backdrop-filter: blur(20px);
border: 1px solid var(--gold-dim);
border-top: 2px solid var(--gold);
padding: 8px 0;
opacity: 0;
visibility: hidden;
transform: translateX(-50%) translateY(8px);
transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
pointer-events: none;
}

/* Zona hover bridge — più alta per coprire il gap fino al bordo nav */
.has-dropdown::after {
content: '';
position: absolute;
top: 100%;
left: -20px;
right: -20px;
height: 36px;
display: none;
}

.has-dropdown:hover::after {
display: block;
}

.has-dropdown:hover .dropdown-menu {
opacity: 1;
visibility: visible;
transform: translateX(-50%) translateY(0);
pointer-events: auto;
}

.dropdown-menu li {
list-style: none;
}

.dropdown-menu a {
display: block;
padding: 10px 24px;
font-size: 14px !important;
letter-spacing: 2px !important;
color: var(--text-dim) !important;
transition: all 0.3s !important;
white-space: nowrap;
}

.dropdown-menu a:hover {
color: var(--gold-light) !important;
background: rgba(196,160,78,0.04);
padding-left: 28px;
}

/* Linea dorata sottile nel dropdown */
.dropdown-menu li + li {
border-top: 1px solid rgba(196,160,78,0.06);
}


/* ══════════════════════════════════════
    HAMBURGER
    ══════════════════════════════════════ */
.nav-hamburger {
display: none;
width: 32px;
height: 22px;
position: relative;
cursor: pointer;
z-index: 201;
background: none;
border: none;
padding: 0;
}

.nav-hamburger span {
display: block;
position: absolute;
left: 0;
width: 100%;
height: 1px;
background: var(--gold);
transition: all 0.5s cubic-bezier(0.76, 0, 0.24, 1);
transform-origin: center;
}

.nav-hamburger span:nth-child(1) { top: 0; }
.nav-hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.nav-hamburger span:nth-child(3) { top: 100%; transform: translateY(-100%); }

.nav-hamburger.active span:nth-child(1) {
top: 50%;
transform: translateY(-50%) rotate(45deg);
background: var(--gold);
}
.nav-hamburger.active span:nth-child(2) {
opacity: 0;
transform: translateY(-50%) scaleX(0);
}
.nav-hamburger.active span:nth-child(3) {
top: 50%;
transform: translateY(-50%) rotate(-45deg);
background: var(--gold);
}


/* ══════════════════════════════════════
    MOBILE MENU FULLSCREEN
    ══════════════════════════════════════ */
.mobile-menu {
position: fixed;
inset: 0;
z-index: 200;
background: rgba(20,15,11,0.97);
-webkit-backdrop-filter: blur(24px);
backdrop-filter: blur(24px);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0;
opacity: 0;
visibility: hidden;
transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
            visibility 0.6s;
}

.mobile-menu.open {
opacity: 1;
visibility: visible;
}

.mobile-menu::before {
content: '';
width: 1px;
height: 40px;
background: linear-gradient(to bottom, transparent, var(--gold));
margin-bottom: 32px;
transform: scaleY(0);
transform-origin: top;
transition: transform 0.6s 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.mobile-menu.open::before {
transform: scaleY(1);
}

.mobile-menu > a,
.mobile-menu > .mobile-dropdown-trigger {
font-family: var(--serif);
font-size: 18px;
font-weight: 400;
color: var(--cream);
text-decoration: none;
padding: 10px 0;
opacity: 0;
text-transform: uppercase;
transform: translateY(20px);
transition: opacity 0.5s, transform 0.5s, color 0.3s;
cursor: pointer;
background: none;
border: none;
text-align: center;
}

.mobile-menu.open > a,
.mobile-menu.open > .mobile-dropdown-trigger {
opacity: 1;
transform: translateY(0);
display:flex;
align-items:center;
gap:10px;
}

/* Stagger */
.mobile-menu.open > :nth-child(2) { transition-delay: 0.1s, 0.1s, 0s; }
.mobile-menu.open > :nth-child(3) { transition-delay: 0.15s, 0.15s, 0s; }
.mobile-menu.open > :nth-child(4) { transition-delay: 0.2s, 0.2s, 0s; }
.mobile-menu.open > :nth-child(5) { transition-delay: 0.25s, 0.25s, 0s; }
.mobile-menu.open > :nth-child(6) { transition-delay: 0.3s, 0.3s, 0s; }
.mobile-menu.open > :nth-child(7) { transition-delay: 0.35s, 0.35s, 0s; }
.mobile-menu.open > :nth-child(8) { transition-delay: 0.4s, 0.4s, 0s; }
.mobile-menu.open > :nth-child(9) { transition-delay: 0.45s, 0.45s, 0s; }

.mobile-menu > a:hover,
.mobile-menu > .mobile-dropdown-trigger:hover {
color: var(--gold);
}

/* ── Mobile Dropdown ── */
.mobile-dropdown-trigger {
display: inline-flex;
align-items: center;
gap: 8px;
font-family: var(--serif);
}

.mobile-dropdown-trigger .dropdown-arrow {
stroke: var(--gold);
transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.mobile-dropdown-trigger.open .dropdown-arrow {
transform: rotate(180deg);
}

.mobile-submenu {
max-height: 0;
overflow: hidden;
transition: max-height 0.5s cubic-bezier(0.16, 1, 0.3, 1),
            opacity 0.4s;
opacity: 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 0;
}

.mobile-submenu.open {
max-height: 200px;
opacity: 1;
}

.mobile-submenu a {
font-family: var(--sans);
font-size: clamp(13px, 3vw, 16px);
font-weight: 300;
letter-spacing: 3px;
text-transform: uppercase;
color: var(--gold);
text-decoration: none;
padding: 10px 0;
transition: color 0.3s;
opacity: 0.7;
}

.mobile-submenu a:hover {
opacity: 1;
color: var(--gold-light);
}

.mobile-menu::after {
content: '';
width: 1px;
height: 40px;
background: linear-gradient(to top, transparent, var(--gold));
margin-top: 32px;
transform: scaleY(0);
transform-origin: bottom;
transition: transform 0.6s 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.mobile-menu.open::after {
transform: scaleY(1);
}

body.menu-open {
overflow: hidden;
}

body.menu-open nav {
background: transparent;
-webkit-backdrop-filter: none;
backdrop-filter: none;
border-bottom-color: transparent;
}


/* ══════════════════════════════════════
    RESPONSIVE
    ══════════════════════════════════════ */
@media (max-width:1900px) {.nav-links a {font-size:12px;}}
@media (max-width:1735px) {
    .logo-img {width:150px;}
     .nav-links a {  letter-spacing: 2px; } 
     .nav-links { gap: 20px;}
      .nav-link-left {padding-right: 24px;}
      .nav-link-right {padding-left: 24px; }
}   

@media (max-width: 1265px) {
.nav-links { display: none; }
.nav-hamburger { display: block; }
.nav-inner { justify-content: space-between; width:100%;}
.logo-img { width: 140px; }
nav { height: 70px; }
.topbar-lang {padding:0 40px;}
}

@media (max-width: 600px) {
nav { height: 70px; }
.nav-inner { padding: 0 20px; }
.logo-img { width: 100px; }
}


section {
padding: 120px 48px;
position: relative;
}

.section-tag {
font-family: var(--sans);
font-size: 14px;
font-weight: 300;
letter-spacing: 6px;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 20px;
}

.section-title {
font-family: var(--serif);
font-size: clamp(30px, 4.5vw, 52px);
font-weight: 300;
line-height: 1.15;
color: var(--cream);
margin-bottom: 24px;
margin-top:0;
}

.section-text {
font-family: var(--serif);
font-size: 17px;
font-weight: 300;
line-height: 1.8;
color: var(--text-dim);
max-width: 560px;
}

.section-divider {
display: flex;
align-items: center;
gap: 12px;
margin: 28px 0;
}

.sd-line { width: 32px; height: 1px; background: var(--gold); }
.sd-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); }

/* ══════════════════════════════════════
     FOOTER
     ══════════════════════════════════════ */
footer {
padding: 48px 48px 36px;
border-top: 1px solid var(--gold-dim);
background: var(--bg-deep);
}

.footer-inner {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 48px;
padding-bottom: 36px;
border-bottom: 1px solid var(--gold-dim);
}

.footer-col h4 {
font-family: var(--sans);
font-size: 15px;
font-weight: 400;
letter-spacing: 5px;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 16px;
}

.footer-col p,
.footer-col a {
font-family: var(--serif);
font-size: 14px;
font-weight: 300;
line-height: 1.8;
color: var(--text-dim);
text-decoration: none;
display: block;
}

.footer-col a:hover { color: var(--gold); }

.footer-bottom {
max-width: 1200px;
margin: 0 auto;
padding-top: 24px;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 12px;
}

.footer-copy {
font-family: var(--sans);
font-size: 13px;
font-weight: 200;
color: var(--text-faint);
letter-spacing: 1px;
}

.footer-copy a {
color: var(--text-faint);
text-decoration: none;
transition: color 0.3s;
}

.footer-copy a:hover { color: var(--gold); }

.footer-powered {
font-family: var(--sans);
font-size: 13px;
font-weight: 300;
color: var(--text-faint);
letter-spacing: 1px;
}

.footer-powered a {
color: var(--text-dim);
text-decoration: none;
transition: color 0.3s;
}

.footer-powered a:hover { color: var(--gold); }  

@media (max-width:1200px) {section {padding: 120px 68px;}}
@media (max-width: 900px) {    
    section { padding: 80px 24px; }   
    .footer-inner { grid-template-columns: 1fr; gap: 32px; text-align:center;}
  }
 

@media (max-width: 600px) {    
footer { padding: 36px 24px 28px; }
.footer-bottom { text-align: center; justify-content: center;}
}

/*stili generali */
.width100 {width:100%;}
.h100 {height:100vh;} 
.relative {position:relative;}
.wrap-flex {display:flex; }
.column {flex-direction:column;}
.wrap {flex-wrap: wrap;}
.center {align-items:center;justify-content: center;}
.flexwrap {flex-wrap: wrap;}
.spc_btw {justify-content: space-between;}
.justify-c {justify-content: center;}
.justify-r {justify-content: flex-end;}
.justify-s {justify-content: flex-start;}
.align-start {align-items:flex-start;}
.align-end {align-items:flex-end;}
.align-center {align-items:center;}
.fit {width:fit-content;}

.txt-c {text-align:center;}
.txt-r {text-align:right;}
.txt-l {text-align: left;}
.txt-j {text-align: justify;}
.txt-w {color:white;}
.txt-gold {color:var(--gold);}
.txt-gold-dim {color:var(--gold-dim);}
.uppercase {text-transform: uppercase;}
.underline {text-decoration: underline;}
.bold {font-weight:600;}

.pointer {cursor:pointer;}
.gap5 {gap:5px;}
.gap10 {gap:10px;}
.gap16 {gap:16px;}
.gap20 {gap:20px;}
.gap30 {gap:30px;}
.gap50 {gap:50px;}
.gap100 {gap:100px;}

.m0 {margin:0;}
.ml-auto {margin-left:auto;}
.mr-auto {margin-right:auto;}
.m-auto {margin: 0 auto;}
.m-block0 {margin-block: 0;} /* top e bottom */
.m-inline0 {margin-inline: 0;} /* left e right */
.mt0 {margin-top:0;}
.mt5 {margin-top:5px;}
.mt10 {margin-top:10px;}
.mt16 {margin-top:16px;}
.mt20 {margin-top:20px;}
.mt50 {margin-top:50px;}
.mt100 {margin-top:100px;}
.mb0 {margin-bottom:0;}
.mb3 {margin-bottom:3em;}
.mb5 {margin-bottom:5px;}
.mb10 {margin-bottom:10px;}
.mb16 {margin-bottom:16px;}
.mb20 {margin-bottom:20px;}
.mb50 {margin-bottom:50px;}
.mb100 {margin-bottom:100px;}

.p0 {padding:0;}
.p5 {padding: 5px;}
.p10 {padding:10px;}

.pt0 {padding-top:0;}
.pb0 {padding-bottom:0;}
.p-block0 {padding-block: 0;} /* top e bottom */
.p-inline0 {padding-inline: 0;} /* left e right */

.bradius {border-radius:var(--bradius);}

.bg-warm {background:var(--bg-warm);}
.bg-dark {background:var(--bg-deep);}

.link-gen {
    font-family: var(--sans);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 2px;
    color: var(--text-dim);  
    text-decoration: none;
    transition: all 0.3s;
}
.link-gen:hover { color: var(--gold);}

.sticky {
  position:sticky;
  position: -webkit-sticky;
  position: -moz-sticky;
  position: -ms-sticky;
  position: -o-sticky;
}
.absolute {
  position:absolute;
  position: -webkit-absolute;
  position: -moz-absolute;
  position: -ms-absolute;
  position: -o-absolute;
}

.fixed {
  position:fixed;
  position: -webkit-fixed;
  position: -moz-fixed;
  position: -ms-fixed;
  position: -o-fixed;
}
.bkgr-image_cover {
  background-size: cover;
  -webkit-background-size:cover;
   -moz-background-size: cover;
   -o-background-size:cover;
  background-repeat: no-repeat;
  background-position: center;
  width:100%;
  height:100vh;
}  

