/*
Theme Name:   NOMMA Premium
Theme URI:    https://nommarestaurante.com.br
Description:  NOMMA — Alta Gastronomia em Goiânia. Child theme premium dark luxury.
Author:       NOMMA
Template:     virtue
Version:      1.0.0
Text Domain:  virtue-nomma
*/

/* =====================================================
   NOMMA — DARK LUXURY DESIGN SYSTEM
   Alta Gastronomia · Goiânia · Brasil
   ===================================================== */

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

/* === DESIGN TOKENS === */
:root {
  --noir:          #080808;
  --noir-soft:     #0f0f0d;
  --noir-warm:     #141210;
  --surface:       #1a1816;
  --surface-light: #232120;
  --gold:          #c9a84c;
  --gold-light:    #e8d5a3;
  --gold-pale:     #f5edd8;
  --white-warm:    #f8f5ef;
  --text-primary:  #e8e0d0;
  --text-secondary:#b8aa96;
  --text-muted:    #6a5f50;
  --border:        rgba(201,168,76,0.12);
  --border-hover:  rgba(201,168,76,0.35);

  --font-display:  'Cormorant Garamond', Georgia, serif;
  --font-body:     'Inter', 'Helvetica Neue', system-ui, sans-serif;
  --font-accent:   'Montserrat', 'Helvetica Neue', sans-serif;

  --ease-silk:     cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-expo:     cubic-bezier(0.19, 1, 0.22, 1);
  --ease-back:     cubic-bezier(0.34, 1.56, 0.64, 1);

  --transition:    0.4s var(--ease-silk);
  --shadow-gold:   0 0 80px rgba(201,168,76,0.06), 0 30px 80px rgba(0,0,0,0.6);
  --shadow-card:   0 4px 32px rgba(0,0,0,0.5);
}

/* === GLOBAL RESET === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  background: var(--noir) !important;
  color: var(--text-primary) !important;
  font-family: var(--font-body) !important;
  font-weight: 300 !important;
  font-size: 1rem !important;
  /* line-height: 1.75 !important; */
  letter-spacing: 0.01em !important;
  overflow-x: hidden;
}

::selection { background: rgba(201,168,76,0.18); color: var(--gold-light); }
:focus-visible { outline: 1px solid rgba(201,168,76,0.5); outline-offset: 3px; }

::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: var(--noir); }
::-webkit-scrollbar-thumb { background: var(--gold); }

/* === TYPOGRAPHY SYSTEM === */
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display) !important; color: var(--white-warm) !important; line-height: 1.1; }
h1 { font-size: clamp(3rem, 2rem + 5vw, 7rem) !important; font-weight: 300 !important; letter-spacing: -0.02em !important; }
h2 { font-size: clamp(2rem, 1.5rem + 3vw, 4.5rem) !important; font-weight: 300 !important; letter-spacing: -0.01em !important; }
h3 { font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2.5rem) !important; font-weight: 300 !important; }
h4 { font-family: var(--font-accent) !important; font-size: clamp(0.65rem, 0.6rem + 0.25vw, 0.75rem) !important; font-weight: 500 !important; letter-spacing: 0.25em !important; text-transform: uppercase !important; color: var(--gold) !important; }
h5 { font-family: var(--font-accent) !important; font-size: 0.65rem !important; font-weight: 500 !important; letter-spacing: 0.3em !important; text-transform: uppercase !important; color: var(--gold) !important; }
h6 { font-family: var(--font-accent) !important; font-size: 0.6rem !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; color: var(--text-muted) !important; }

p { color: var(--text-secondary) !important; font-weight: 300 !important; line-height: 1.8 !important; }
a { color: var(--gold) !important; text-decoration: none !important; transition: color var(--transition) !important; }
a:hover { color: var(--gold-light) !important; }

/* === LAYOUT WRAPPERS === */
.container, .container-fluid, .vc_row, .kadence-section { max-width: 100% !important; }
.site-wrapper, #page, .site { background: var(--noir) !important; }
.site-content, #content, .content-area { background: var(--noir) !important; }

/* === HEADER — TRANSPARENT CINEMATIC === */
#masthead,
.site-header,
header.site-header,
.kad-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 9999 !important;
  background: transparent !important;
  transition: background 0.6s var(--ease-silk), backdrop-filter 0.6s !important;
  border-bottom: none !important;
  padding: 0 !important;
}

#masthead.scrolled,
.site-header.scrolled,
.kad-header.scrolled {
  background: rgba(8,8,8,0.92) !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  border-bottom: 1px solid var(--border) !important;
}

/* Header inner */
.site-header .container,
.kad-header .container,
#masthead .container {
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 2rem 3rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

/* Site logo/title */
.site-title,
.site-branding .site-title,
.kad-header .site-title {
  font-family: var(--font-display) !important;
  font-size: 1.6rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase !important;
  color: var(--white-warm) !important;
}
.site-title a, .site-title a:hover { color: var(--white-warm) !important; }
.site-logo img { max-height: 50px !important; width: auto !important; }

/* Navigation */
.main-navigation,
.primary-navigation,
.kad-nav,
#main-nav,
nav.main-navigation {
  background: transparent !important;
}

.main-navigation ul,
.primary-navigation ul {
  list-style: none !important;
  display: flex !important;
  gap: 2.5rem !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

.main-navigation ul li a,
.primary-navigation ul li a,
.kad-nav ul li a {
  font-family: var(--font-accent) !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: rgba(232,224,208,0.8) !important;
  padding: 0.5rem 0 !important;
  border-bottom: 1px solid transparent !important;
  transition: all var(--transition) !important;
}

.main-navigation ul li a:hover,
.primary-navigation ul li a:hover {
  color: var(--gold-light) !important;
  border-bottom-color: rgba(201,168,76,0.4) !important;
}

/* CTA reserva no menu */
.main-navigation ul li.menu-item-reserva > a,
.main-navigation ul li:last-child > a {
  padding: 0.75rem 1.75rem !important;
  border: 1px solid var(--gold) !important;
  color: var(--gold) !important;
  transition: all var(--transition) !important;
}
.main-navigation ul li.menu-item-reserva > a:hover,
.main-navigation ul li:last-child > a:hover {
  background: var(--gold) !important;
  color: var(--noir) !important;
  border-bottom-color: var(--gold) !important;
}

/* Hamburger (mobile) */
.menu-toggle,
.hamburger-toggle {
  background: transparent !important;
  border: 1px solid var(--border) !important;
  color: var(--white-warm) !important;
  padding: 0.6rem 0.9rem !important;
  cursor: pointer !important;
  transition: all var(--transition) !important;
}
.menu-toggle:hover { border-color: var(--gold) !important; color: var(--gold) !important; }

/* === HERO SECTION === */
.home-hero,
.hero-section,
.page-template-default .hero-wrap,
.virtue_slide_wrap,
.slide-wrap {
  position: relative !important;
  width: 100vw !important;
  /* height: 100vh !important; */
  min-height: 700px !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  /* background: var(--noir) !important; */
}

.home-hero::after,
.hero-section::after,
.virtue_slide_wrap::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(
    to bottom,
    rgba(8,8,8,0.2) 0%,
    rgba(8,8,8,0.55) 50%,
    rgba(8,8,8,0.92) 100%
  ) !important;
  z-index: 1 !important;
}

.hero-content,
.virtue_slide_caption {
  position: relative !important;
  z-index: 2 !important;
  text-align: center !important;
  padding: 0 2rem !important;
  max-width: 900px !important;
}

/* Hero eyebrow */
.hero-eyebrow,
.hero-pre-title {
  font-family: var(--font-accent) !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.4em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  margin-bottom: 1.5rem !important;
  display: block !important;
}

/* Hero title */
.hero-title,
.virtue_slide_caption h1,
.hero-section h1 {
  font-family: var(--font-display) !important;
  font-size: clamp(3.5rem, 2rem + 7vw, 8.5rem) !important;
  font-weight: 300 !important;
  letter-spacing: -0.02em !important;
  line-height: 0.95 !important;
  color: var(--white-warm) !important;
  margin-bottom: 2rem !important;
}
.hero-title em,
.hero-section h1 em {
  font-style: italic !important;
  color: var(--gold-light) !important;
}

/* Hero subtitle */
.hero-subtitle {
  font-family: var(--font-body) !important;
  font-size: clamp(0.875rem, 0.8rem + 0.375vw, 1rem) !important;
  font-weight: 300 !important;
  letter-spacing: 0.08em !important;
  color: rgba(232,224,208,0.65) !important;
  margin-bottom: 3rem !important;
  max-width: 500px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Hero scroll indicator */
.hero-scroll {
  position: absolute !important;
  bottom: 2.5rem !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.75rem !important;
  opacity: 0.5 !important;
  transition: opacity var(--transition) !important;
}
.hero-scroll:hover { opacity: 0.9 !important; }
.hero-scroll span {
  font-family: var(--font-accent) !important;
  font-size: 0.55rem !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
}
.hero-scroll::after {
  content: '' !important;
  width: 1px !important;
  height: 50px !important;
  background: linear-gradient(to bottom, var(--gold), transparent) !important;
  animation: scrollLine 2s ease-in-out infinite !important;
}

/* === BUTTONS === */
.wp-block-button__link,
.button,
.btn,
a.button,
input[type="submit"],
button[type="submit"],
.virtue-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  font-family: var(--font-accent) !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  padding: 1.1rem 2.75rem !important;
  border: 1px solid var(--gold) !important;
  background: transparent !important;
  color: var(--gold) !important;
  cursor: pointer !important;
  transition: all 0.4s var(--ease-silk) !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  position: relative !important;
  overflow: hidden !important;
}

.wp-block-button__link::before,
.button::before,
.btn::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: var(--gold) !important;
  transform: translateX(-101%) !important;
  transition: transform 0.5s var(--ease-expo) !important;
  z-index: -1 !important;
}

.wp-block-button__link:hover,
.button:hover,
.btn:hover {
  color: var(--noir) !important;
  border-color: var(--gold) !important;
}

.wp-block-button__link:hover::before,
.button:hover::before,
.btn:hover::before {
  transform: translateX(0) !important;
}

/* Button solid variant */
.wp-block-button.is-style-fill .wp-block-button__link,
.button-solid,
.btn-solid {
  background: var(--gold) !important;
  color: var(--noir) !important;
}
.wp-block-button.is-style-fill .wp-block-button__link:hover,
.button-solid:hover { background: var(--gold-light) !important; }

/* === SECTIONS — BASE === */
section,
.section,
.wp-block-group,
.nomma-section {
  position: relative;
  overflow: hidden;
}

/* Section label */
.section-label,
.nomma-label {
  font-family: var(--font-accent) !important;
  font-size: 0.6rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.4em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  display: flex !important;
  align-items: center !important;
  gap: 1.25rem !important;
  margin-bottom: 1.75rem !important;
}
.section-label::before {
  content: '' !important;
  width: 40px !important;
  height: 1px !important;
  background: var(--gold) !important;
  opacity: 0.6 !important;
}

/* Section title */
.section-title {
  font-family: var(--font-display) !important;
  font-size: clamp(2rem, 1.5rem + 2.5vw, 4rem) !important;
  font-weight: 300 !important;
  letter-spacing: -0.01em !important;
  color: var(--white-warm) !important;
  line-height: 1.1 !important;
  margin-bottom: 1.5rem !important;
}

/* Gold divider */
.gold-divider,
.nomma-divider {
  width: 60px !important;
  height: 1px !important;
  background: var(--gold) !important;
  opacity: 0.6 !important;
  margin: 2rem auto !important;
}

/* === CARDS === */
.nomma-card,
.dish-card,
.menu-item-card {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  transition: all 0.5s var(--ease-silk) !important;
  overflow: hidden !important;
}
.nomma-card:hover,
.dish-card:hover {
  border-color: var(--border-hover) !important;
  transform: translateY(-4px) !important;
  box-shadow: var(--shadow-gold) !important;
}
.nomma-card img,
.dish-card img {
  width: 100% !important;
  aspect-ratio: 4/3 !important;
  object-fit: cover !important;
  transition: transform 0.8s var(--ease-silk) !important;
  filter: brightness(0.85) saturate(0.9) !important;
}
.nomma-card:hover img,
.dish-card:hover img {
  transform: scale(1.06) !important;
  filter: brightness(0.95) saturate(1.05) !important;
}
.nomma-card-body {
  padding: 1.75rem !important;
}
.nomma-card-price {
  font-family: var(--font-display) !important;
  font-size: 1.25rem !important;
  font-weight: 300 !important;
  color: var(--gold) !important;
  margin-top: 0.5rem !important;
}

/* === SLIDER/HERO OVERRIDES === */
/* Kadence / Virtue slider */
.kd-slider,
.virtue-slider,
.flexslider,
.virtue_slide_wrap {
  background: var(--noir) !important;
}
.flex-direction-nav a,
.kd-nav-btn { display: none !important; }
.flex-control-paging li a {
  background: rgba(201,168,76,0.2) !important;
  border: 1px solid rgba(201,168,76,0.4) !important;
}
.flex-control-paging li a.flex-active {
  background: var(--gold) !important;
}

/* === CONTENT SECTIONS === */
/* About section */
.about-section,
.section-sobre {
  background: var(--noir-warm) !important;
  padding: 8rem 0 !important;
}

/* Menu/Cardápio */
.menu-section,
.section-cardapio {
  background: var(--noir) !important;
  padding: 8rem 0 !important;
}

/* Gallery */
.gallery-section,
.section-galeria {
  background: var(--noir-soft) !important;
  padding: 6rem 0 !important;
}

/* Chef section */
.chef-section,
.section-chef {
  background: var(--surface) !important;
  padding: 8rem 0 !important;
}

/* Testimonials */
.testimonials-section,
.section-depoimentos {
  background: var(--noir) !important;
  padding: 8rem 0 !important;
}

/* === GALLERY GRID === */
.gallery-grid,
.wp-block-gallery {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
  gap: 2px !important;
}

.gallery-grid figure,
.wp-block-gallery figure {
  overflow: hidden !important;
  aspect-ratio: 4/3 !important;
  margin: 0 !important;
}

.gallery-grid figure img,
.wp-block-gallery figure img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.8s var(--ease-silk), filter 0.8s !important;
  filter: brightness(0.8) saturate(0.85) !important;
}

.gallery-grid figure:hover img,
.wp-block-gallery figure:hover img {
  transform: scale(1.08) !important;
  filter: brightness(0.95) saturate(1.1) !important;
}

/* === MENU PAGE === */
.menu-category {
  padding: 5rem 0 !important;
  border-bottom: 1px solid var(--border) !important;
}
.menu-category:last-child { border-bottom: none !important; }

.menu-item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  padding: 1.25rem 0 !important;
  border-bottom: 1px solid rgba(201,168,76,0.05) !important;
  transition: all var(--transition) !important;
  gap: 1.5rem !important;
}
.menu-item:hover { padding-left: 0.75rem !important; border-bottom-color: var(--border) !important; }
.menu-item-name {
  font-family: var(--font-display) !important;
  font-size: 1.2rem !important;
  font-weight: 400 !important;
  color: var(--white-warm) !important;
}
.menu-item-desc {
  font-size: 0.8rem !important;
  color: var(--text-muted) !important;
  font-style: italic !important;
  margin-top: 0.2rem !important;
}
.menu-item-line {
  flex: 1 !important;
  height: 1px !important;
  background: rgba(201,168,76,0.08) !important;
  margin: 0 1rem !important;
  align-self: center !important;
}
.menu-item-price {
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-weight: 300 !important;
  color: var(--gold) !important;
  white-space: nowrap !important;
}

/* === TESTIMONIALS === */
.testimonial-card {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  padding: 2.5rem !important;
  position: relative !important;
}
.testimonial-card::before {
  content: '\201C' !important;
  font-family: var(--font-display) !important;
  font-size: 8rem !important;
  line-height: 1 !important;
  color: var(--gold) !important;
  opacity: 0.15 !important;
  position: absolute !important;
  top: -1rem !important;
  left: 2rem !important;
}
.testimonial-text {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 1.3rem !important;
  font-weight: 300 !important;
  color: var(--text-primary) !important;
  line-height: 1.6 !important;
  margin-bottom: 1.5rem !important;
}
.testimonial-author {
  font-family: var(--font-accent) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
}
.testimonial-stars {
  color: var(--gold) !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.2em !important;
  margin-bottom: 1rem !important;
}

/* === FORMS === */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="time"],
input[type="number"],
select,
textarea,
.wpforms-field input,
.wpforms-field select,
.wpforms-field textarea {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  color: var(--text-primary) !important;
  font-family: var(--font-body) !important;
  font-size: 0.875rem !important;
  font-weight: 300 !important;
  padding: 1rem 1.25rem !important;
  width: 100% !important;
  transition: border-color var(--transition) !important;
  outline: none !important;
  -webkit-appearance: none !important;
}
input:focus, select:focus, textarea:focus,
.wpforms-field input:focus, .wpforms-field select:focus, .wpforms-field textarea:focus {
  border-color: var(--gold) !important;
  background: rgba(26,24,22,0.8) !important;
}
input::placeholder, textarea::placeholder { color: var(--text-muted) !important; }

label,
.wpforms-field-label {
  font-family: var(--font-accent) !important;
  font-size: 0.6rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--text-secondary) !important;
  display: block !important;
  margin-bottom: 0.5rem !important;
}

.wpforms-submit-container button,
.wpforms-submit,
.contact-form-submit {
  background: transparent !important;
  border: 1px solid var(--gold) !important;
  color: var(--gold) !important;
  font-family: var(--font-accent) !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  padding: 1.1rem 3rem !important;
  cursor: pointer !important;
  transition: all var(--transition) !important;
  border-radius: 0 !important;
  margin-top: 1rem !important;
}
.wpforms-submit-container button:hover,
.wpforms-submit:hover {
  background: var(--gold) !important;
  color: var(--noir) !important;
}

/* WPForms overrides */
.wpforms-container { color: var(--text-primary) !important; }
.wpforms-form .wpforms-field { margin-bottom: 1.5rem !important; }
.wpforms-confirmation-container-full { background: var(--surface) !important; border: 1px solid var(--gold) !important; color: var(--gold-light) !important; padding: 2rem !important; }

/* === FOOTER === */
#colophon,
footer.site-footer,
.site-footer,
#site-footer {
  background: var(--noir-soft) !important;
  border-top: 1px solid var(--border) !important;
  padding: 6rem 0 2.5rem !important;
  color: var(--text-muted) !important;
}

.footer-brand {
  font-family: var(--font-display) !important;
  font-size: 2.5rem !important;
  font-weight: 300 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  color: var(--white-warm) !important;
  margin-bottom: 0.75rem !important;
}

.footer-tagline {
  font-family: var(--font-accent) !important;
  font-size: 0.6rem !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  margin-bottom: 2rem !important;
}

.footer-heading {
  font-family: var(--font-accent) !important;
  font-size: 0.6rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  color: var(--text-secondary) !important;
  margin-bottom: 1.5rem !important;
  padding-bottom: 0.75rem !important;
  border-bottom: 1px solid var(--border) !important;
}

.footer-nav ul,
.footer-menu ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.footer-nav ul li,
.footer-menu ul li {
  margin-bottom: 0.75rem !important;
}
.footer-nav ul li a,
.footer-menu ul li a {
  font-size: 0.8rem !important;
  font-weight: 300 !important;
  color: var(--text-muted) !important;
  transition: color var(--transition) !important;
  letter-spacing: 0.05em !important;
}
.footer-nav ul li a:hover,
.footer-menu ul li a:hover { color: var(--gold-light) !important; }

/* Virtue/KadenceWP footer nav */
#footer-nav ul,
.footer-widget-area ul,
.footer_nav ul {
  list-style: none !important;
  padding: 0 !important;
}
#footer-nav ul li a,
.footer_nav ul li a {
  font-size: 0.8rem !important;
  color: var(--text-muted) !important;
  transition: color var(--transition) !important;
}
#footer-nav ul li a:hover { color: var(--gold-light) !important; }

.footer-bottom,
.footer-copyright,
.kad-standard-footer {
  border-top: 1px solid var(--border) !important;
  padding-top: 2rem !important;
  margin-top: 4rem !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.footer-copyright p,
.footer-bottom p,
.site-info {
  font-size: 0.7rem !important;
  letter-spacing: 0.1em !important;
  color: var(--text-muted) !important;
}

.footer-social {
  display: flex !important;
  gap: 1.25rem !important;
  align-items: center !important;
}
.footer-social a {
  font-family: var(--font-accent) !important;
  font-size: 0.6rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--text-muted) !important;
  transition: color var(--transition) !important;
}
.footer-social a:hover { color: var(--gold) !important; }

/* Virtue footer specific */
#kad-footer-outer,
.kad-footer-area,
.kad_footer_widget_area {
  background: var(--noir-soft) !important;
  padding: 5rem 0 !important;
}

/* === PAGE TEMPLATES === */
/* Full-width page */
.page-full-width .site-main,
.page-template-full_width_page .site-main { margin: 0 !important; max-width: 100% !important; }

/* Page hero banner */
.page-banner,
.virtue-page-banner {
  height: 45vh !important;
  min-height: 320px !important;
  background: var(--noir-warm) !important;
  display: flex !important;
  align-items: flex-end !important;
  padding: 0 0 4rem 0 !important;
  margin-top: 80px !important;
  position: relative !important;
}
.page-banner::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(to right, rgba(8,8,8,0.7) 0%, transparent 60%) !important;
}
.page-banner-content {
  position: relative !important;
  z-index: 1 !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 0 3rem !important;
}

/* === VIRTUE THEME SPECIFIC OVERRIDES === */
/* Remove default virtue header background */
#kad-header { background: transparent !important; border: none !important; }
#kad-header.scrolled { background: rgba(8,8,8,0.92) !important; }

/* Virtue mobile nav */
#kad-mobile-nav,
.kad-mobile-nav { background: rgba(8,8,8,0.98) !important; border: none !important; }
#kad-mobile-nav ul li a, .kad-mobile-nav ul li a { color: var(--text-primary) !important; }

/* Virtue page title */
.virtuepost_header,
.virtue_page_title { background: var(--noir-warm) !important; }
.virtuepost_header h1, .virtue_page_title h1 { color: var(--white-warm) !important; }

/* Virtue sidebar */
#secondary, .sidebar, .widget-area { background: transparent !important; }

/* Virtue widget titles */
.widget-title, .widgettitle {
  font-family: var(--font-accent) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  border-bottom: 1px solid var(--border) !important;
  padding-bottom: 0.75rem !important;
  margin-bottom: 1.25rem !important;
}

/* === UTILITY CLASSES === */
.container-nomma {
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 0 3rem !important;
}
.text-center { text-align: center !important; }
.text-gold { color: var(--gold) !important; }
.text-display { font-family: var(--font-display) !important; }
.section-padding { padding: 8rem 0 !important; }
.section-padding-lg { padding: 12rem 0 !important; }
.bg-noir { background: var(--noir) !important; }
.bg-surface { background: var(--surface) !important; }
.bg-warm { background: var(--noir-warm) !important; }

/* Grid utilities */
.grid-2 { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 3rem !important; }
.grid-3 { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 2.5rem !important; }
.grid-4 { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 2rem !important; }

/* Aspect ratios */
.ratio-cinema { aspect-ratio: 21/9 !important; }
.ratio-wide    { aspect-ratio: 16/9 !important; }
.ratio-square  { aspect-ratio: 1/1 !important; }
.ratio-portrait { aspect-ratio: 3/4 !important; }

/* === WHATSAPP FLOATING BUTTON === */
.nomma-whatsapp-float {
  position: fixed !important;
  bottom: 2.5rem !important;
  right: 2.5rem !important;
  z-index: 9998 !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  background: #25D366 !important;
  color: #fff !important;
  padding: 0.9rem 1.5rem !important;
  border-radius: 0 !important;
  box-shadow: 0 8px 32px rgba(37,211,102,0.25) !important;
  transition: all 0.4s var(--ease-silk) !important;
  text-decoration: none !important;
  font-family: var(--font-accent) !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  overflow: hidden !important;
}
.nomma-whatsapp-float::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(255,255,255,0.15) !important;
  transform: translateX(-101%) !important;
  transition: transform 0.4s var(--ease-expo) !important;
}
.nomma-whatsapp-float:hover { box-shadow: 0 12px 40px rgba(37,211,102,0.4) !important; transform: translateY(-3px) !important; color: #fff !important; }
.nomma-whatsapp-float:hover::before { transform: translateX(0) !important; }
.nomma-whatsapp-float svg { width: 20px !important; height: 20px !important; flex-shrink: 0 !important; }

@media (max-width: 480px) {
  .nomma-whatsapp-float span { display: none !important; }
  .nomma-whatsapp-float { padding: 1rem !important; border-radius: 50% !important; width: 56px !important; height: 56px !important; justify-content: center !important; }
}

/* === ANIMATIONS === */
@keyframes scrollLine {
  0% { transform: scaleY(0); transform-origin: top; opacity: 0; }
  40% { transform: scaleY(1); transform-origin: top; opacity: 1; }
  60% { transform: scaleY(1); transform-origin: bottom; opacity: 1; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-25px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes goldShimmer {
  0%, 100% { opacity: 0.6; }
  50%       { opacity: 1; }
}

@keyframes revealLine {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* Scroll reveal — initial state */
.nomma-reveal {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity 0.9s var(--ease-expo), transform 0.9s var(--ease-expo);
}
.nomma-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.nomma-reveal-delay-1 { transition-delay: 0.1s; }
.nomma-reveal-delay-2 { transition-delay: 0.2s; }
.nomma-reveal-delay-3 { transition-delay: 0.35s; }
.nomma-reveal-delay-4 { transition-delay: 0.5s; }

/* Fade from left */
.nomma-reveal-left {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 0.9s var(--ease-expo), transform 0.9s var(--ease-expo);
}
.nomma-reveal-left.is-visible { opacity: 1; transform: translateX(0); }

/* Gold line reveal */
.nomma-line-reveal {
  overflow: hidden;
}
.nomma-line-reveal::after {
  content: '';
  display: block;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1s var(--ease-expo);
  transition-delay: 0.3s;
}
.nomma-line-reveal.is-visible::after { transform: scaleX(1); }

/* === IMAGE HOVER EFFECTS === */
.img-hover-zoom {
  overflow: hidden !important;
  display: block !important;
}
.img-hover-zoom img {
  transition: transform 0.9s var(--ease-silk), filter 0.9s !important;
  filter: brightness(0.8) saturate(0.9) !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.img-hover-zoom:hover img {
  transform: scale(1.07) !important;
  filter: brightness(0.95) saturate(1.1) !important;
}

/* === PARALLAX BACKGROUNDS === */
.parallax-bg {
  background-attachment: fixed !important;
  background-size: cover !important;
  background-position: center !important;
}
@media (max-width: 768px) { .parallax-bg { background-attachment: scroll !important; } }

/* === MAP STYLING === */
.map-container,
.embed-google-map {
  filter: invert(1) hue-rotate(180deg) brightness(0.85) saturate(0.5) !important;
  border: 1px solid var(--border) !important;
}

/* === BREADCRUMBS === */
.breadcrumbs,
.virtue-breadcrumbs,
.woocommerce-breadcrumb {
  font-family: var(--font-accent) !important;
  font-size: 0.6rem !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--text-muted) !important;
  padding: 1.5rem 0 !important;
}
.breadcrumbs a { color: var(--text-muted) !important; }
.breadcrumbs a:hover { color: var(--gold) !important; }

/* === MOBILE RESPONSIVE === */
@media (max-width: 1024px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr) !important; }
  .container-nomma { padding: 0 2rem !important; }
  .section-padding { padding: 6rem 0 !important; }
}

@media (max-width: 768px) {
  h1 { font-size: clamp(2.5rem, 2rem + 4vw, 4.5rem) !important; }
  h2 { font-size: clamp(1.8rem, 1.5rem + 2.5vw, 3.5rem) !important; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr !important; }
  .container-nomma { padding: 0 1.5rem !important; }
  .section-padding { padding: 5rem 0 !important; }
  .footer-bottom { flex-direction: column !important; gap: 1.5rem !important; text-align: center !important; }
  .hero-title { font-size: clamp(2.8rem, 2rem + 6vw, 6rem) !important; }

  /* Header mobile */
  #masthead .container,
  .kad-header .container,
  .site-header .container { padding: 1.25rem 1.5rem !important; }

  .main-navigation,
  .primary-navigation {
    display: none !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(8,8,8,0.98) !important;
    z-index: 9997 !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .main-navigation.is-open,
  .primary-navigation.is-open { display: flex !important; }
  .main-navigation ul,
  .primary-navigation ul { flex-direction: column !important; gap: 2rem !important; }
  .main-navigation ul li a,
  .primary-navigation ul li a { font-size: 1rem !important; }
}

@media (max-width: 480px) {
  .section-padding { padding: 4rem 0 !important; }
  .container-nomma { padding: 0 1.25rem !important; }
  .wp-block-button__link, .button, .btn { padding: 1rem 2rem !important; }
}

/* === ADMIN BAR FIX === */
.admin-bar #masthead,
.admin-bar .site-header,
.admin-bar .kad-header { top: 32px !important; }
@media (max-width: 782px) {
  .admin-bar #masthead,
  .admin-bar .site-header { top: 46px !important; }
}

/* === WORDPRESS BLOCKS PREMIUM === */
/* Cover block */
.wp-block-cover,
.wp-block-cover-image {
  background-color: var(--noir) !important;
  min-height: 70vh !important;
}
.wp-block-cover__inner-container { z-index: 2 !important; }

/* Columns */
.wp-block-columns { gap: 3rem !important; }

/* Separator */
.wp-block-separator {
  border: none !important;
  border-top: 1px solid var(--border) !important;
  margin: 3rem auto !important;
  max-width: 80px !important;
}
.wp-block-separator.is-style-wide {
  max-width: 200px !important;
  border-top-color: rgba(201,168,76,0.3) !important;
}

/* Quote */
.wp-block-quote {
  border-left: 2px solid var(--gold) !important;
  padding: 0 0 0 2rem !important;
  margin: 3rem 0 !important;
}
.wp-block-quote p {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 1.5rem !important;
  color: var(--gold-light) !important;
  line-height: 1.5 !important;
}
.wp-block-quote cite {
  font-family: var(--font-accent) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  font-style: normal !important;
}

/* Pullquote */
.wp-block-pullquote {
  border: 1px solid var(--border) !important;
  padding: 3rem !important;
  text-align: center !important;
  background: var(--surface) !important;
}
.wp-block-pullquote blockquote p {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: clamp(1.25rem, 1rem + 1.25vw, 2rem) !important;
  color: var(--white-warm) !important;
}

/* Table */
.wp-block-table table {
  border-collapse: collapse !important;
  width: 100% !important;
}
.wp-block-table td, .wp-block-table th {
  border: 1px solid var(--border) !important;
  padding: 1rem 1.25rem !important;
  color: var(--text-primary) !important;
}
.wp-block-table th {
  background: var(--surface) !important;
  font-family: var(--font-accent) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
}
/* === CONTENT SYSTEM CONSOLIDATION (ONLINE OPT 4/5) === */
:root {
  --nomma-content-pad: clamp(16px, 4vw, 52px);
  --nomma-content-pad-mobile: clamp(14px, 5vw, 22px);
  --nomma-readable: 68ch;
}

.entry-content > .wp-block-group,
.entry-content > .wp-block-columns,
.entry-content > .wp-block-cover,
.entry-content > .wp-block-media-text,
.entry-content > .wp-block-html {
  padding-left: var(--nomma-content-pad) !important;
  padding-right: var(--nomma-content-pad) !important;
}

.wp-block-cover__inner-container,
.entry-content .wp-block-group,
.entry-content .wp-block-columns {
  margin-left: auto !important;
  margin-right: auto !important;
}

.entry-content h1,
.entry-content h2,
.entry-content h3 {
  text-wrap: balance;
}

.entry-content h1 { font-size: clamp(2.3rem, 6vw, 6rem) !important; line-height: 0.98 !important; }
.entry-content h2 { font-size: clamp(1.8rem, 4vw, 3.9rem) !important; line-height: 1.1 !important; }
.entry-content h3 { font-size: clamp(1.25rem, 2.8vw, 2rem) !important; line-height: 1.2 !important; }

.entry-content p {
  font-size: clamp(0.98rem, 0.93rem + 0.25vw, 1.08rem) !important;
  line-height: 1.85 !important;
  max-width: var(--nomma-readable);
}

.entry-content .has-text-align-center,
.entry-content .has-text-align-center p,
.entry-content .has-text-align-center h1,
.entry-content .has-text-align-center h2,
.entry-content .has-text-align-center h3 {
  margin-left: auto !important;
  margin-right: auto !important;
}

.section-label.has-text-align-center,
.has-text-align-center .section-label {
  justify-content: center !important;
}

.section-label.has-text-align-center::before,
.has-text-align-center .section-label::before {
  display: none !important;
}

.wpforms-field input,
.wpforms-field select,
.wpforms-field textarea,
input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
  min-height: 52px !important;
  padding: 0.95rem 1.1rem !important;
}

.wpforms-field textarea,
textarea { min-height: 140px !important; }

.wpforms-container .wpforms-field { margin-bottom: 1.1rem !important; }

@media (max-width: 768px) {
  .entry-content > .wp-block-group,
  .entry-content > .wp-block-columns,
  .entry-content > .wp-block-cover,
  .entry-content > .wp-block-media-text,
  .entry-content > .wp-block-html {
    padding-left: var(--nomma-content-pad-mobile) !important;
    padding-right: var(--nomma-content-pad-mobile) !important;
  }

  .entry-content .wp-block-columns { gap: 1.25rem !important; }

  .entry-content .wp-block-buttons {
    width: 100% !important;
    justify-content: center !important;
  }

  .entry-content .wp-block-button__link {
    width: 100% !important;
    justify-content: center !important;
    padding-left: 1.2rem !important;
    padding-right: 1.2rem !important;
    letter-spacing: 0.14em !important;
  }
}

@media (max-width: 480px) {
  .entry-content p { font-size: clamp(0.96rem, 0.9rem + 0.2vw, 1rem) !important; }
}
