/* ═══════════════════════════════════════════
   TEATRO AURORA — BASE STYLES
   Variables · Reset · Typography · Utilities
═══════════════════════════════════════════ */

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

/* ─── VARIABLES ─── */
:root {
  --petrolio:       #0d3b3e;
  --petrolio-dark:  #081f21;
  --petrolio-mid:   #154f53;
  --petrolio-light: #1d6a70;
  --gold:           #c9a84c;
  --gold-light:     #e8c96e;
  --gold-pale:      #f5e6b8;
  --cream:          #f9f3e3;
  --text-light:     rgba(249, 243, 227, 0.85);
  --text-dim:       rgba(249, 243, 227, 0.45);

  --font-display: 'Cormorant Garamond', serif;
  --font-label:   'Syncopate', sans-serif;
  --font-body:    'Lato', sans-serif;

  --transition-fast:   .2s ease;
  --transition-normal: .35s ease;
  --transition-slow:   .6s ease;

  --max-width: 1300px;
  --pad-x: 5%;
}

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

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  background:    var(--petrolio-dark);
  color:         var(--cream);
  font-family:   var(--font-body);
  font-weight:   300;
  overflow-x:    hidden;
  opacity:       0;
  animation:     pageIn .55s ease forwards .04s;
}

body.page-out {
  animation: pageOut .38s ease forwards;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; }
button { font-family: inherit; }

/* ─── PAGE TRANSITIONS ───
   ⚠️ Qui NON ci va `transform`, per quanto una scivolata d'ingresso sia
   tentante. Queste keyframes girano sul <body> con fill-mode: forwards, e
   in quel caso Chrome tiene applicato il transform finale come matrice
   identità invece che come `none`. Un transform sul body — anche identico —
   crea il containing block per i figli `position: fixed`: la nav si ancora
   alla pagina invece che al viewport e scorre via insieme al contenuto,
   su tutte le pagine. Sintomo: scrolli e la barra del menu sparisce.
   Verifica veloce in console: `document.getElementById('main-nav').offsetParent`
   deve essere `null`; se risponde `<body>` qualcuno ha rimesso un transform.
   La sola dissolvenza dà lo stesso effetto senza il difetto. */
@keyframes pageIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes pageOut {
  to { opacity: 0; }
}

/* ─── NOISE OVERLAY ─── */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 900;
  opacity: .5;
}

/* ─── TYPOGRAPHY ─── */
.t-display {
  font-family: var(--font-display);
  font-weight: 300;
}
.t-label {
  font-family: var(--font-label);
  text-transform: uppercase;
  letter-spacing: .3em;
  font-size: .5rem;
}
.t-italic { font-style: italic; }
.t-gold   { color: var(--gold); }
.t-gold-light { color: var(--gold-light); }
.t-dim    { color: var(--text-dim); }
.t-light  { color: var(--text-light); }

/* ─── LAYOUT UTILITIES ─── */
.wrap {
  max-width: var(--max-width);
  margin:    0 auto;
  padding:   0 var(--pad-x);
}

.gold-line {
  width:      50px;
  height:     1px;
  background: var(--gold);
  margin:     1.5rem 0;
}

.gold-divider {
  width:      100%;
  height:     1px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,.2) 30%, rgba(201,168,76,.2) 70%, transparent);
}

/* ─── REVEAL ON SCROLL ─── */
.reveal {
  opacity:    0;
  transform:  translateY(28px);
  transition: opacity .8s ease, transform .8s ease;
}
.reveal.visible {
  opacity:   1;
  transform: none;
}

/* ─── ANIMATIONS ─── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: none; }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes spotPulse {
  0%, 100% { opacity: .7; }
  50%       { opacity: 1; }
}
@keyframes scrollDrop {
  0%   { transform: scaleY(0); transform-origin: top;    opacity: 1; }
  50%  { transform: scaleY(1); transform-origin: top;    opacity: 1; }
  100% { transform: scaleY(1); transform-origin: bottom; opacity: 0; }
}

/* ─── BUTTONS ─── */
.btn {
  display:     inline-block;
  font-family: var(--font-label);
  font-size:   .58rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  text-decoration: none;
  border:      none;
  transition:  background var(--transition-normal),
               color      var(--transition-normal),
               transform  var(--transition-fast),
               box-shadow var(--transition-normal);
}
.btn:hover { transform: translateY(-2px); }

.btn-gold {
  padding:    1rem 2.4rem;
  background: var(--gold);
  color:      var(--petrolio-dark);
}
.btn-gold:hover {
  background: var(--gold-light);
  box-shadow: 0 10px 34px rgba(201,168,76,.22);
}

.btn-ghost {
  padding:    1rem 2.4rem;
  background: transparent;
  color:      var(--gold);
  border:     1px solid rgba(201,168,76,.4);
}
.btn-ghost:hover { background: rgba(201,168,76,.1); border-color: var(--gold); }

.btn-sm {
  padding:   .7rem 1.5rem;
  font-size: .5rem;
}

/* ─── WHATSAPP BUTTON (show + sponsor) ─── */
.btn-whatsapp {
  display:         inline-flex;
  align-items:     center;
  gap:             .5rem;
  padding:         .7rem 1.4rem;
  background:      #25D366;
  color:           #fff;
  font-family:     var(--font-label);
  font-size:       .58rem;
  letter-spacing:  .18em;
  text-transform:  uppercase;
  text-decoration: none;
  transition:      background .2s, transform .15s;
  margin-top:      1.5rem;
  border:          none;
}
.btn-whatsapp:hover {
  background:  #1ebe5d;
  transform:   translateY(-1px);
}
.btn-whatsapp svg {
  width:  18px;
  height: 18px;
  flex-shrink: 0;
}

/* ─── BADGE AUTOPRODUZIONE ─── */
/* Marca le opere originali prodotte da S.P. Emme Production */
.badge-auto {
  display:        inline-flex;
  align-items:    center;
  gap:            .4rem;
  font-family:    var(--font-label);
  font-size:      .48rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color:          var(--gold);
  background:     rgba(201,168,76,.08);
  border:         1px solid rgba(201,168,76,.3);
  padding:        .38rem .7rem;
  white-space:    nowrap;
}
.badge-auto::before {
  content:     '★';
  font-size:   .62rem;
  line-height: 1;
}

/* ─── PAGE HEADER (inner pages) ─── */
.page-header {
  position: relative;
  padding:  11rem var(--pad-x) 5rem;
  overflow: hidden;
}
.page-header::after {
  content: '';
  position: absolute;
  bottom: 0; left: var(--pad-x); right: var(--pad-x);
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,.3), transparent);
}
.page-header .ph-deco {
  position:    absolute;
  right:       var(--pad-x);
  top:         45%;
  transform:   translateY(-50%);
  font-family: var(--font-display);
  font-style:  italic;
  font-size:   18rem;
  font-weight: 300;
  color:       rgba(201,168,76,.03);
  line-height: 1;
  pointer-events: none;
  user-select: none;
}
.page-header .ph-label {
  font-family:    var(--font-label);
  font-size:      .7rem;
  letter-spacing: .5em;
  color:          var(--gold);
  text-transform: uppercase;
  margin-bottom:  1rem;
  opacity: 0;
  animation: fadeUp .7s ease forwards .2s;
}
.page-header .ph-title {
  font-family:   var(--font-display);
  font-size:     clamp(3.5rem, 8vw, 7rem);
  font-weight:   300;
  line-height:   .95;
  opacity: 0;
  animation: fadeUp .8s ease forwards .4s;
}
.page-header .ph-title em {
  font-style: italic;
  color:      var(--gold-light);
}
.page-header .ph-sub {
  font-family:   var(--font-display);
  font-style:    italic;
  font-size:     1.4rem;
  color:         var(--text-dim);
  margin-top:    1.5rem;
  opacity: 0;
  animation: fadeUp .8s ease forwards .6s;
}

/* ─── FOOTER ─── */
footer {
  padding:     3rem var(--pad-x);
  border-top:  1px solid rgba(201,168,76,.1);
}
.footer-inner {
  max-width: var(--max-width);
  margin:    0 auto;
  display:   flex;
  justify-content: space-between;
  align-items:     center;
}
.footer-logo {
  font-family: var(--font-display);
  font-style:  italic;
  font-size:   1.5rem;
  color:       var(--gold);
}
.footer-copy {
  font-size: .75rem;
  color:     var(--text-dim);
}
.footer-links {
  display:     flex;
  gap:         2rem;
  list-style:  none;
}
.footer-links a {
  font-family:    var(--font-label);
  font-size:      .42rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color:          var(--text-dim);
  text-decoration: none;
  transition:     color var(--transition-normal);
}
.footer-links a:hover { color: var(--gold); }

/* ─── FOOTER SOCIAL ─── */
.footer-inner {
  flex-wrap: wrap;
  gap: .8rem;
}
.footer-social {
  display: flex;
  gap: .8rem;
}
.footer-social-link {
  width:           34px;
  height:          34px;
  border:          1px solid rgba(201,168,76,.2);
  display:         flex;
  align-items:     center;
  justify-content: center;
  text-decoration: none;
  color:           var(--gold);
  transition:      background var(--transition-normal),
                   border-color var(--transition-normal);
}
.footer-social-link svg {
  width:  15px;
  height: 15px;
}
.footer-social-link:hover {
  background:   rgba(201,168,76,.1);
  border-color: var(--gold);
}

/* ─── FOOTER CREDIT ─── */
/* Firma dello studio: va a capo da sola sotto tutto il resto. */
.footer-credit {
  flex-basis:     100%;
  text-align:     center;
  margin-top:     1.4rem;
  padding-top:    1.2rem;
  border-top:     1px solid rgba(201,168,76,.08);
  font-family:    var(--font-label);
  font-size:      .46rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color:          rgba(249, 243, 227, 0.3);
}

/* ─── FORM ELEMENTS ─── */
.fg {
  display:        flex;
  flex-direction: column;
  gap:            .4rem;
  margin-bottom:  1rem;
}
.fg label {
  font-family:    var(--font-label);
  font-size:      .70rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color:          var(--gold);
}
.fg input,
.fg select,
.fg textarea {
  background:  rgba(13, 59, 62, .35);
  border:      1px solid rgba(201,168,76,.18);
  color:       var(--cream);
  font-family: var(--font-body);
  font-size:   .88rem;
  padding:     .85rem 1.1rem;
  outline:     none;
  transition:  border-color var(--transition-normal),
               background   var(--transition-normal);
}
.fg input:focus,
.fg select:focus,
.fg textarea:focus {
  border-color: var(--gold);
  background:   rgba(13, 59, 62, .6);
}
.fg textarea         { height: 130px; resize: vertical; }
.fg select option    { background: var(--petrolio-dark); }
.form-row {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   1rem;
}

/* Consenso privacy nei moduli */
.fg-consent {
  display:     flex;
  align-items: flex-start;
  gap:         .7rem;
  margin:      1.2rem 0 1.4rem;
}
.fg-consent input[type="checkbox"] {
  width:        16px;
  height:       16px;
  min-width:    16px;
  margin-top:   .15rem;
  accent-color: var(--gold);
  cursor:       pointer;
}
.fg-consent label {
  font-size:   .78rem;
  line-height: 1.7;
  color:       var(--text-dim);
  cursor:      pointer;
}
.fg-consent a {
  color:                   var(--gold);
  text-decoration:         underline;
  text-underline-offset:   3px;
}
.fg-consent a:hover { color: var(--gold-light); }

/* ─── RESPONSIVE ─── */
@media (max-width: 900px) {
  .form-row { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .page-header .ph-deco { display: none; }
}
