/*
Theme Name: Visit Cava Theme
Theme URI: https://visitcava.it/
Author: Antigravity & Team
Author URI: https://visitcava.it/
Description: Un tema WordPress premium stile Magazine per il portale turistico di Cava de' Tirreni. Include supporto ACF Pro, Tailwind CSS, ed è ottimizzato per performance ed estetica editoriale.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: visit-cava-theme
*/

/* === DESIGN TOKENS (DEFAULT LIGHT MODE) === */
:root {
  --cava-bg: #fcfcf9;           /* Bianco caldo avorio, stile carta stampata */
  --cava-surface: #ffffff;      /* Sfondo elementi pulito */
  --cava-line: #e2e8f0;         /* Linee di griglia chiare (slate-200) */
  --cava-fg: #0f172a;           /* Testo principale scuro (slate-900) */
  --cava-muted: #475569;        /* Testo secondario grigio (slate-600) */
  --cava-red: #b91c1c;          /* Rosso istituzionale di Cava */
  --cava-gold: #d97706;         /* Oro istituzionale di Cava */
  --cava-gold-light: #f59e0b;   /* Oro chiaro per hover */
  --cava-glow: rgba(217, 119, 6, 0.15);
}

/* === DARK MODE CONFIGURATION (SU SFONDO BLUE FONCÉ) === */
:root.cava-dark-mode {
  --cava-bg: #090e1a;           /* Deep Midnight Blue (Blue Foncé) */
  --cava-surface: #10172a;      /* Slate scuro per le card */
  --cava-line: #1e293b;         /* Linee scure eleganti (slate-800) */
  --cava-fg: #f8fafc;           /* Testo principale chiaro (slate-50) */
  --cava-muted: #94a3b8;        /* Testo secondario grigio chiaro (slate-400) */
  --cava-red: #ef4444;          /* Rosso brillante per contrasto */
  --cava-gold: #fbbf24;         /* Oro brillante per contrasto */
  --cava-gold-light: #fcd34d;   /* Oro chiaro per hover */
  --cava-glow: rgba(251, 191, 36, 0.2);
}

/* Base resets & typography */
body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  color: var(--cava-fg);
  background-color: var(--cava-bg);
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--cava-gold) var(--cava-bg);
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Magazine Editorial Typography */
.magazine-display {
  font-family: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: -0.04em;
}

.magazine-heading {
  font-size: clamp(2.5rem, 8vw, 6.5rem);
  line-height: 0.9;
  font-weight: 700;
  letter-spacing: -0.04em;
  font-family: 'Space Grotesk', 'Inter', system-ui, sans-serif;
}

.section-title {
  font-size: 0.75rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--cava-gold);
}

.section-title::after {
  content: ' _';
  color: var(--cava-red);
  animation: cursorBlink 1.2s step-end infinite;
}

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

.mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

/* Header & Navigation */
.nav-link {
  position: relative;
  transition: color 0.2s ease;
  color: var(--cava-muted);
}

.nav-link::after {
  content: '';
  position: absolute;
  width: 0;
  height: 2px;
  bottom: -4px;
  left: 0;
  background-color: var(--cava-gold);
  transition: width 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.nav-link:hover {
  color: var(--cava-fg);
}

.nav-link:hover::after {
  width: 100%;
}

/* News Ticker (Marquee effect) */
.ticker-wrap {
  width: 100%;
  overflow: hidden;
  background: var(--cava-red);
  color: #ffffff;
  padding: 8px 0;
}

.ticker-move {
  display: inline-block;
  white-space: nowrap;
  padding-right: 100%;
  animation: marquee 25s linear infinite;
}

.ticker-item {
  display: inline-block;
  padding: 0 2rem;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

@keyframes marquee {
  0% { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(-100%, 0, 0); }
}

/* Magazine Cards & Interaction */
.magazine-card {
  position: relative;
  background: var(--cava-surface);
  border: 1px solid var(--cava-line);
  transition: border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), 
              transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.magazine-card::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  height: 3px;
  width: 100%;
  background: var(--cava-red);
  transform: scaleX(0);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.magazine-card:hover {
  border-color: var(--cava-gold);
  transform: translateY(-2px);
  box-shadow: 0 10px 30px var(--cava-glow);
}

.magazine-card:hover::before {
  transform: scaleX(1);
}

/* Buttons - Cava Style */
.cava-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid var(--cava-line);
  background: transparent;
  color: var(--cava-fg);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
  text-decoration: none;
}

.cava-button:hover {
  background: var(--cava-fg);
  color: var(--cava-bg);
  border-color: var(--cava-fg);
}

.cava-button.accent {
  border-color: var(--cava-red);
  color: var(--cava-red);
}

.cava-button.accent:hover {
  background: var(--cava-red);
  color: #ffffff;
  border-color: var(--cava-red);
  box-shadow: 0 0 15px rgba(185, 28, 28, 0.25);
}

.cava-button.gold {
  border-color: var(--cava-gold);
  color: var(--cava-gold);
}

.cava-button.gold:hover {
  background: var(--cava-gold);
  color: #ffffff;
  border-color: var(--cava-gold);
  box-shadow: 0 0 15px rgba(217, 119, 6, 0.25);
}

/* Floating controls */
.color-mode-float {
  position: fixed;
  left: 1.25rem;
  bottom: 1.25rem;
  z-index: 80;
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--cava-line);
  background: var(--cava-surface);
  color: var(--cava-fg);
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.color-mode-float:hover {
  transform: translateY(-2px);
  border-color: var(--cava-gold);
}

.color-mode-float .mode-icon-moon {
  display: inline-flex;
}

.color-mode-float .mode-icon-sun {
  display: none;
}

.cava-dark-mode .color-mode-float .mode-icon-moon {
  display: none;
}

.cava-dark-mode .color-mode-float .mode-icon-sun {
  display: inline-flex;
}

.backtop-float {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 80;
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--cava-line);
  background: var(--cava-surface);
  color: var(--cava-fg);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  transition: opacity 0.3s ease, transform 0.3s ease, background 0.2s ease;
}

.backtop-float.show {
  opacity: 1;
  pointer-events: auto;
}

.backtop-float:hover {
  transform: translateY(-2px);
  border-color: var(--cava-red);
  color: var(--cava-red);
}

/* Precision grid overlay */
.cava-grid-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background-image:
    linear-gradient(rgba(148, 163, 184, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, 0.08) 1px, transparent 1px);
  background-size: 32px 32px;
}

.cava-dark-mode .cava-grid-layer {
  background-image:
    linear-gradient(rgba(30, 41, 59, 0.3) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30, 41, 59, 0.3) 1px, transparent 1px);
}

/* Scroll reveal classes */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.show {
  opacity: 1;
  transform: translateY(0);
}

/* WordPress Core standards */
.aligncenter { display: block; margin: 1.5em auto; }
.alignleft { float: left; margin: 0.5em 1.5em 1.5em 0; }
.alignright { float: right; margin: 0.5em 0 1.5em 1.5em; }
.wp-caption { background: var(--cava-surface); border: 1px solid var(--cava-line); padding: 5px; text-align: center; max-width: 100%; }
.wp-caption-text { font-size: 0.8em; color: var(--cava-muted); margin: 5px 0 0; }
