/* ==========================================================================
   Midian Realms — home.css
   Solo la home (index.php). Usa esclusivamente i token var(--mr-…) di tema.css.
   Riferimento: docs/superpowers/specs/2026-09-25-sito-pubblico-design/
   Main.dc.html (1440) e Mobile.dc.html (390).
   ========================================================================== */

/* ==========================================================================
   Hero — .mr-hero
   ========================================================================== */

.mr-hero {
  position: relative;
  height: 860px;
  overflow: hidden;
}

.mr-hero__sfondo {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 35% 40%;
}

.mr-hero__velo {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(15, 12, 9, 0.95) 0%, rgba(15, 12, 9, 0.84) 36%, rgba(15, 12, 9, 0.40) 66%, rgba(15, 12, 9, 0.32) 100%),
    linear-gradient(180deg, rgba(15, 12, 9, 0.72) 0%, rgba(15, 12, 9, 0) 18%, rgba(15, 12, 9, 0) 72%, var(--mr-fondo) 100%);
}

.mr-hero__contenuto {
  position: absolute;
  top: 88px;
  left: 0;
  right: 0;
  bottom: 0;
  box-sizing: border-box;
  padding: 0 var(--mr-margine-laterale) 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 80px;
}

.mr-hero__testo {
  max-width: 660px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.mr-hero__logo {
  width: 300px;
  height: 200px;
  margin: 0 0 6px -56px;
  display: block;
  filter: drop-shadow(0 6px 22px rgba(0, 0, 0, 0.65));
}

.mr-hero__occhiello {
  margin: 0 0 18px;
  font-family: var(--mr-font-titoli);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--mr-oro);
}

.mr-hero__titolo {
  margin: 0 0 22px;
  font-family: var(--mr-font-titoli);
  font-size: 46px;
  font-weight: 600;
  line-height: 1.14;
  letter-spacing: 0.01em;
  color: var(--mr-titolo);
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.5);
}

.mr-hero__lead {
  margin: 0 0 36px;
  max-width: 560px;
  font-size: 22px;
  line-height: 1.5;
  color: var(--mr-corpo);
}

.mr-hero__azioni {
  display: flex;
  align-items: center;
  gap: 16px;
}

.mr-hero__azioni .mr-btn {
  height: 54px;
  padding: 0 30px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
}

/* Scorciatoia all'accesso: solo mobile, dove la card sta sotto il primo schermo */
.mr-hero__accedi {
  display: none;
}

.mr-hero__nota {
  margin: 28px 0 0;
  font-size: 17px;
  font-style: italic;
  line-height: 1.5;
  color: var(--mr-tenue);
}

/* ==========================================================================
   Il mondo — .mr-luoghi
   ========================================================================== */

.mr-mondo__intro {
  display: flex;
  align-items: flex-start;
  gap: 80px;
  margin-bottom: 72px;
}

.mr-mondo__testata {
  width: 440px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.mr-mondo__filetto {
  width: 64px;
  height: 1px;
  margin-top: 14px;
  background: var(--mr-oro);
}

.mr-mondo__testo {
  margin: 0;
  font-size: 20px;
  line-height: 1.65;
  color: var(--mr-corpo);
}

.mr-luoghi {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  column-gap: 20px;
  row-gap: 48px;
}

.mr-luogo {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.mr-luogo__immagine {
  position: relative;
  height: 300px;
  border: 1px solid var(--mr-bordo);
  border-radius: 3px;
  overflow: hidden;
}

.mr-luogo__immagine img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.mr-luogo__velo {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 150px;
  background: linear-gradient(180deg, rgba(15, 12, 9, 0) 0%, rgba(15, 12, 9, 0.92) 100%);
}

.mr-luogo__didascalia {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mr-luogo__numero {
  font-family: var(--mr-font-titoli);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--mr-oro);
}

.mr-luogo__nome {
  margin: 0;
  font-family: var(--mr-font-titoli);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--mr-titolo);
}

.mr-luogo__testo {
  margin: 0;
  font-size: 16.5px;
  font-style: italic;
  line-height: 1.5;
  color: var(--mr-tenue);
}

/* Luoghi più giocati: cornice oro ed etichetta sull'immagine */
.mr-luogo--evidenza .mr-luogo__immagine {
  border-color: var(--mr-oro);
  box-shadow: 0 0 18px rgba(214, 185, 121, 0.28);
}

.mr-luogo--evidenza .mr-luogo__nome {
  color: var(--mr-oro);
}

.mr-luogo__etichetta {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 4px 8px;
  font-family: var(--mr-font-titoli);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--mr-oro);
  background: rgba(15, 12, 9, 0.8);
  border: 1px solid var(--mr-oro);
  border-radius: 2px;
}

.mr-luoghi__scorri {
  display: none;
  margin: 4px 0 0;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-style: italic;
  color: var(--mr-nota);
}

/* ==========================================================================
   Perché scegliere Midian Realms — .mr-pregi
   ========================================================================== */

.mr-pregi__titolo {
  margin: 0 0 56px;
  font-size: 36px;
}

.mr-pregi {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 48px;
}

.mr-pregio {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.mr-pregio__icona {
  width: 56px;
  height: 56px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--mr-oro-profondo);
  border-radius: 3px;
  color: var(--mr-oro);
}

.mr-pregio__icona svg {
  width: 28px;
  height: 28px;
}

.mr-pregio h3 {
  margin: 4px 0 0;
  font-size: 21px;
}

.mr-pregio p {
  margin: 0;
  font-size: 19px;
  line-height: 1.6;
  color: var(--mr-tenue);
}

/* ==========================================================================
   Contatti — .mr-contatti
   ========================================================================== */

.mr-contatti__layout {
  display: flex;
  align-items: flex-start;
  gap: 80px;
}

.mr-contatti__testo {
  width: 440px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.mr-contatti__testo p.mr-contatti__lead {
  margin: 10px 0 0;
  font-size: 19px;
  line-height: 1.6;
  color: var(--mr-corpo);
}

.mr-contatti__etichetta-canali {
  margin: 28px 0 4px;
  font-family: var(--mr-font-titoli);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--mr-oro);
}

.mr-contatti__canali {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--mr-linea);
}

.mr-canale {
  min-height: 64px;
  display: flex;
  align-items: center;
  gap: 16px;
  border-bottom: 1px solid var(--mr-linea);
  text-decoration: none;
  color: var(--mr-testo);
}

.mr-canale__icona {
  color: var(--mr-oro);
  flex-shrink: 0;
}

.mr-canale__testi {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.mr-canale__titolo {
  font-family: var(--mr-font-titoli);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.mr-canale__sottotitolo {
  font-size: 15px;
  color: var(--mr-nota);
}

.mr-canale__freccia {
  color: var(--mr-oro-scuro);
  flex-shrink: 0;
}

.mr-contatti__modulo {
  flex-grow: 1;
  min-width: 0;
  box-sizing: border-box;
  padding: 40px;
  background: var(--mr-fascia);
  border: 1px solid var(--mr-bordo);
  border-radius: 4px;
}

.mr-contatti__griglia {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 20px;
  row-gap: 22px;
}

.mr-contatti__griglia .mr-campo--largo {
  grid-column: 1 / -1;
}

.mr-contatti__modulo .mr-contatti__invio {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-end;
  gap: 20px;
}

.mr-contatti__invio .mr-campo {
  flex-grow: 1;
}

.mr-contatti__disclaimer {
  grid-column: 1 / -1;
  margin: 2px 0 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--mr-nota);
}

/* ==========================================================================
   Responsive — 1200px (hero, mondo e contatti impilati), 992px e 576px
   ========================================================================== */

@media (max-width: 1200px) {
  .mr-hero {
    height: auto;
    padding-bottom: 56px;
  }

  .mr-hero__sfondo,
  .mr-hero__velo {
    height: 720px;
    bottom: auto;
  }

  .mr-hero__sfondo {
    object-position: 58% 30%;
  }

  .mr-hero__velo {
    background: linear-gradient(180deg, rgba(15, 12, 9, 0.80) 0%, rgba(15, 12, 9, 0.35) 22%, rgba(15, 12, 9, 0.62) 46%, rgba(21, 17, 13, 0.97) 72%, var(--mr-fondo) 100%);
  }

  .mr-hero__contenuto {
    position: relative;
    top: auto;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    /* 20px sotto il menu, qui alto 88px; sotto i 992px il menu e' alto 64 */
    padding: 108px var(--mr-margine-laterale) 0;
    gap: 32px;
  }

  .mr-hero__testo {
    min-height: 600px;
  }

  .mr-hero__logo {
    margin-bottom: auto;
  }

  .mr-mondo__intro {
    flex-direction: column;
    gap: 14px;
    margin-bottom: 22px;
  }

  .mr-mondo__testata {
    width: auto;
  }

  .mr-luoghi {
    display: flex;
    gap: 14px;
    margin: 22px calc(-1 * var(--mr-margine-laterale)) 0;
    padding: 0 var(--mr-margine-laterale) 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--mr-margine-laterale);
  }

  .mr-luogo {
    width: 264px;
    flex-shrink: 0;
    scroll-snap-align: start;
  }

  .mr-luogo__immagine {
    height: 320px;
  }

  .mr-luoghi__scorri {
    display: flex;
  }

  .mr-contatti__layout {
    flex-direction: column;
    gap: 32px;
  }

  .mr-contatti__testo {
    width: auto;
  }

  .mr-contatti__modulo {
    width: 100%;
    margin-top: 28px;
  }
}

@media (max-width: 992px) {
  /* Mobile: il testo sta sull immagine (720px), la card di accesso sotto, sul fondo pagina */
  .mr-hero__contenuto {
    padding-top: 84px;
  }

  .mr-hero__testo {
    max-width: none;
  }

  .mr-hero__logo {
    width: 240px;
    height: 160px;
    margin: 0 0 auto -44px;
  }

  .mr-hero__titolo {
    font-size: 31px;
    line-height: 1.16;
  }

  .mr-hero__lead {
    font-size: 19px;
  }

  .mr-hero__azioni {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .mr-hero__azioni .mr-btn {
    height: 52px;
  }

  /* Accedi e' l'azione principale; Crea passa a secondaria, Esplora a link compatto */
  .mr-hero__azioni .mr-hero__accedi {
    display: inline-flex;
  }

  body.mr-sito .mr-hero__azioni .mr-hero__accedi,
  body.mr-sito .mr-hero__azioni .mr-hero__accedi:hover {
    color: var(--mr-fondo);
  }

  .mr-hero__azioni .mr-btn--primario {
    background: rgba(15, 12, 9, 0.35);
    border-color: var(--mr-oro-scuro);
    color: var(--mr-oro-chiaro);
  }

  .mr-hero__azioni .mr-btn--primario:hover {
    background: rgba(15, 12, 9, 0.5);
    color: var(--mr-titolo);
  }

  body.mr-sito .mr-hero__azioni .mr-btn--discreto {
    height: 40px;
    border-color: transparent;
    box-shadow: none;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  .mr-hero__accesso {
    margin-top: 8px;
  }

  .mr-pregi__titolo {
    font-size: 27px;
    margin-bottom: 32px;
  }

  .mr-pregi {
    display: flex;
    flex-direction: column;
    gap: 28px;
  }

  .mr-pregio {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    column-gap: 16px;
    row-gap: 6px;
    align-items: start;
  }

  .mr-pregio__icona {
    grid-row: span 2;
  }

  .mr-pregio__icona {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
  }

  .mr-pregio h3 {
    margin: 0;
    font-size: 18px;
  }

  .mr-pregio p {
    font-size: 17px;
  }

  .mr-contatti__griglia {
    grid-template-columns: 1fr;
  }

  .mr-contatti__modulo {
    padding: 20px;
  }

  .mr-contatti__modulo .mr-contatti__invio {
    flex-direction: column;
    align-items: stretch;
  }
}
