@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&family=Inter:wght@300;400;500;600&display=swap');

:root {
  --lbi-black: #0e0e0e;
  --lbi-gold: #b8975a;
  --lbi-gold-rgb: 184,151,90;
  --lbi-white: #ffffff;
  --lbi-cream: #f8f6f2;
  --lbi-mid: #888888;
}

body {
  font-family: 'Inter', -apple-system, sans-serif !important;
  color: var(--lbi-black) !important;
  background: var(--lbi-white) !important;
  font-size: 15px !important;
  line-height: 1.8 !important;
  font-weight: 300 !important;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  cursor: none !important;
}

/* CURSOR */
.lbi-cursor-dot {
  position: fixed; width: 5px; height: 5px;
  background: var(--lbi-gold); border-radius: 50%;
  pointer-events: none; z-index: 99999;
  transform: translate(-50%,-50%);
  transition: opacity 0.2s;
}
.lbi-cursor-ring {
  position: fixed; width: 30px; height: 30px;
  border: 1px solid rgba(184,151,90,0.55); border-radius: 50%;
  pointer-events: none; z-index: 99998;
  transform: translate(-50%,-50%);
  transition: width 0.22s ease, height 0.22s ease;
}

/* TYPOGRAPHY — Cormorant Garamond per display, Inter per il resto */
h1, h2, .entry-title, .page-title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.08 !important;
  text-transform: lowercase !important;
  color: var(--lbi-black) !important;
}
h3, h4, h5, h6 {
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  font-size: 0.72rem !important;
  color: var(--lbi-black) !important;
  line-height: 1.5 !important;
}
h1 { font-size: clamp(2.2rem, 3.8vw, 4.2rem) !important; }
h2 { font-size: clamp(1.8rem, 2.8vw, 3.2rem) !important; }

/* HEADER */
.site-header {
  background: transparent !important;
  backdrop-filter: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  position: fixed !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  z-index: 1000 !important;
  transition: background 0.5s ease, padding 0.4s ease !important;
  padding: 26px 0 !important;
}
.site-header.lbi-scrolled {
  background: rgba(255,255,255,0.97) !important;
  border-bottom: 1px solid rgba(0,0,0,0.07) !important;
  padding: 14px 0 !important;
  backdrop-filter: blur(16px) !important;
}
.main-navigation ul li a, nav ul li a {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.68rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--lbi-black) !important;
  transition: color 0.2s !important;
}
.site-header:not(.lbi-scrolled) .main-navigation ul li a,
.site-header:not(.lbi-scrolled) nav ul li a {
  color: rgba(255,255,255,0.88) !important;
}
.main-navigation ul li a:hover, nav ul li a:hover { color: var(--lbi-gold) !important; }
.main-navigation ul li, nav ul li { margin: 0 20px !important; }
.main-navigation ul, nav ul { display: flex !important; align-items: center !important; flex-wrap: nowrap !important; }
.site-header:not(.lbi-scrolled) .custom-logo,
.site-header:not(.lbi-scrolled) .site-branding img,
.site-header:not(.lbi-scrolled) .site-title a img { filter: brightness(10) !important; }
.site-header:not(.lbi-scrolled) .site-title a { color: rgba(255,255,255,0.9) !important; }

/* HERO — elegante, testo bottom-left ben proporzionato */
.wp-block-cover {
  min-height: 100vh !important;
  display: flex !important;
  align-items: flex-end !important;
  position: relative !important;
  overflow: hidden !important;
  padding-top: 0 !important;
}
.wp-block-cover__inner-container {
  padding: 0 5vw 8vh !important;
  text-align: left !important;
  width: 100% !important;
  max-width: 100% !important;
  position: relative !important;
  z-index: 3 !important;
}
.wp-block-cover h1, .wp-block-cover .wp-block-heading {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 600 !important;
  font-size: clamp(2.8rem, 5.5vw, 6.5rem) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.05 !important;
  text-transform: lowercase !important;
  color: #ffffff !important;
  max-width: 68vw !important;
  text-shadow: none !important;
  font-style: italic !important;
}
.wp-block-cover::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.62) 100%);
  z-index: 2; pointer-events: none;
}
.wp-block-cover__background { opacity: 0.1 !important; }

/* Pulsante hero */
.wp-block-cover .wp-block-button__link {
  background: transparent !important;
  color: rgba(255,255,255,0.9) !important;
  border: 1px solid rgba(255,255,255,0.45) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  padding: 15px 40px !important;
  border-radius: 0 !important;
  transition: all 0.3s !important;
}
.wp-block-cover .wp-block-button__link:hover {
  background: var(--lbi-gold) !important;
  border-color: var(--lbi-gold) !important;
}

/* MARQUEE */
.lbi-marquee {
  overflow: hidden; white-space: nowrap;
  border-top: 1px solid rgba(0,0,0,0.06);
  border-bottom: 1px solid rgba(0,0,0,0.06);
  padding: 18px 0;
  background: var(--lbi-white);
}
.lbi-marquee-track {
  display: inline-flex;
  animation: lbiMarquee 32s linear infinite;
}
.lbi-marquee-item {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: rgba(0,0,0,0.32);
  padding: 0 48px;
  flex-shrink: 0;
}
.lbi-marquee-sep { color: var(--lbi-gold); }
@keyframes lbiMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* SCROLL REVEAL */
.lbi-reveal { opacity: 0; transform: translateY(28px); transition: opacity 1s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1); }
.lbi-reveal.lbi-visible { opacity: 1; transform: translateY(0); }

/* SEZIONI */
.wp-block-group.alignfull, .wp-block-group.alignwide {
  padding-top: 90px !important; padding-bottom: 90px !important;
}
.wp-block-group.has-background {
  padding-top: 72px !important; padding-bottom: 72px !important;
}

/* PULSANTI */
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--lbi-black) !important;
  color: var(--lbi-white) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 16px 44px !important;
  border-radius: 0 !important;
  transition: all 0.3s !important;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
  background: var(--lbi-gold) !important;
}

/* FOOTER */
.site-footer { background: #0e0e0e !important; color: rgba(255,255,255,0.38) !important; }
.site-footer a { color: rgba(255,255,255,0.45) !important; }
.site-footer a:hover { color: var(--lbi-gold) !important; }

/* WHATSAPP */
.whatsapp-float {
  position: fixed; width: 48px; height: 48px;
  bottom: 28px; left: 28px;
  background: #25d366; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  text-decoration: none; z-index: 9999;
  animation: waPulse 3s infinite;
}
@keyframes waPulse {
  0% { box-shadow: 0 0 0 0 rgba(37,211,102,0.45); }
  70% { box-shadow: 0 0 0 12px rgba(37,211,102,0); }
  100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); }
}
hr { border: none !important; border-top: 1px solid rgba(0,0,0,0.06) !important; margin: 0 !important; }

/* ── TESTIMONIANZA — quote elegante senza foto ── */
.wp-block-media-text { position: relative; }
.lbi-testimonial-hidden-media .wp-block-media-text__media { display: none !important; }
.lbi-testimonial .wp-block-media-text__media { display: none !important; }
.lbi-testimonial { display: block !important; text-align: center !important; padding: 80px 10vw !important; }
.lbi-testimonial .wp-block-media-text__content { padding: 0 !important; max-width: 760px !important; margin: 0 auto !important; }

/* ── RESPONSIVE MOBILE (max 768px) ── */
@media (max-width: 768px) {
  .wp-block-cover { min-height: 80vh !important; }
  .wp-block-cover h1, .wp-block-cover .wp-block-heading { font-size: clamp(1.7rem, 7vw, 2.8rem) !important; max-width: 92vw !important; line-height: 1.1 !important; }
  .wp-block-cover__inner-container { padding: 0 6vw 7vh !important; }
  h1 { font-size: clamp(1.5rem, 6vw, 2.2rem) !important; }
  h2 { font-size: clamp(1.2rem, 5vw, 1.8rem) !important; }
  .wp-block-media-text { grid-template-columns: 1fr !important; display: block !important; }
  .wp-block-media-text .wp-block-media-text__media { width: 100% !important; max-height: 260px !important; overflow: hidden !important; }
  .wp-block-media-text .wp-block-media-text__media img { width: 100% !important; object-fit: cover !important; height: 260px !important; }
  .wp-block-media-text .wp-block-media-text__content { padding: 36px 6vw !important; }
  .wp-block-group.alignfull, .wp-block-group.alignwide { padding-top: 52px !important; padding-bottom: 52px !important; }
  .lbi-marquee-item { font-size: 0.6rem !important; padding: 0 22px !important; letter-spacing: 0.14em !important; }
  .site-header { padding: 16px 0 !important; }
  .site-header.lbi-scrolled { padding: 10px 0 !important; }
  .main-navigation ul, nav ul { flex-wrap: wrap !important; justify-content: center !important; }
  .main-navigation ul li, nav ul li { margin: 4px 10px !important; }
  .wp-block-columns { flex-direction: column !important; }
  .wp-block-column { flex-basis: 100% !important; width: 100% !important; min-width: 100% !important; margin-left: 0 !important; }
  .wp-block-cover .wp-block-button__link { padding: 13px 28px !important; font-size: 0.6rem !important; }
}

/* ── RESPONSIVE TABLET (769px–1024px) ── */
@media (min-width: 769px) and (max-width: 1024px) {
  .wp-block-cover h1, .wp-block-cover .wp-block-heading { font-size: clamp(2rem, 4vw, 4rem) !important; max-width: 85vw !important; }
  h2 { font-size: clamp(1.5rem, 2.5vw, 2.6rem) !important; }
  .wp-block-column { flex-basis: 45% !important; }
}

/* ===== HEADER — assoluto solo su homepage, normale sulle altre pagine ===== */

/* Homepage: sovrapposto all'hero, trasparente, scorre via */
body.home .site-header {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 999 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  transition: none !important;
}
/* Homepage: link menu bianchi su hero */
body.home .site-header .main-navigation a,
body.home .site-header .nav-links a,
body.home .site-header .menu-item a {
  color: rgba(255,255,255,0.92) !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.5) !important;
}
body.home .site-header .custom-logo,
body.home .site-header .site-logo img,
body.home .site-header img[class*="logo"] {
  filter: brightness(0) invert(1) !important;
}

/* Pagine interne: header normale sticky con sfondo bianco */
body:not(.home) .site-header {
  position: sticky !important;
  top: 0 !important;
  background: #ffffff !important;
  box-shadow: 0 1px 12px rgba(0,0,0,0.08) !important;
  z-index: 999 !important;
}

/* ===== PARALLAX OVERFLOW ===== */
.wp-block-cover { overflow: hidden !important; }
.wp-block-cover__image-background {
  will-change: transform !important;
  transform-origin: center top !important;
}

/* ===== 3D DEPTH SCROLL ===== */
.lbi-depth-card {
  transition: transform 0.12s linear !important;
  will-change: transform !important;
  backface-visibility: hidden !important;
}
/* ===== TESTIMONIAL GAP FIX ===== */
/* Hide the testimonial group container when its only child is hidden */
.wp-block-group:has(> .wp-block-group__inner-container > .wp-block-media-text[style*="display: none"]),
.wp-block-group:has(> .wp-block-group__inner-container > .wp-block-media-text[style*="display:none"]) {
  display: none !important;
}

/* ===== FOOTER — sfondo bianco al posto del nero ===== */
.site-footer {
  background: #ffffff !important;
  color: #333333 !important;
  border-top: 1px solid #e8e8e8 !important;
}
.site-footer a,
.site-footer p,
.site-footer span,
.site-footer li {
  color: #555555 !important;
}
.site-footer .iubenda-embed,
.site-footer [class*="iubenda"] {
  color: #555555 !important;
}

/* MOBILE: homepage header in flusso normale, non sovrapposto all'hero */
@media (max-width: 768px) {
  body.home .site-header {
    position: relative !important;
    top: auto !important;
    background: rgba(255,255,255,0.97) !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.1) !important;
  }
  body.home .site-header .main-navigation a,
  body.home .site-header .nav-links a,
  body.home .site-header .menu-item a {
    color: #333333 !important;
    text-shadow: none !important;
  }
  body.home .site-header .custom-logo,
  body.home .site-header .site-logo img,
  body.home .site-header img[class*="logo"] {
    filter: none !important;
  }
}

/* PARALLAX FIX — no black bars on scroll */
.wp-block-cover__image-background,
.wp-block-cover__video-background {
object-fit: cover !important;
  object-position: center center !important;
}

/* Grazie-2 page fixes */
.page-id-5360 .card__title { color: #ffffff !important; }
.page-id-5360 #sfsi_plus_floater { display: none !important; }
