 /* =========================
   1. RESET / BASE
========================= */

html {
  overflow-y: scroll;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:root{

  --panea-blue:#0d2e40;

  --panea-yellow:#fdc103;

  --panea-white:#f5f1ea;

  --panea-text:#d7dbe0;

  --panea-border:rgba(255,255,255,.10);

  --container-width: 1100px;

  --transition: 0.3s ease;
}


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

img {
  max-width: 100%;
  display: block;
}

ul,
ol {
  list-style: none;
}

button {
  background: none;
  border: none;
  font: inherit;
  cursor: pointer;
}


.container {
  width: min(90%, 1100px);
  margin: 0 auto;
}

input{

  background:
    rgba(255,255,255,.08);

  border:
    1px solid rgba(255,255,255,.15);

  color:#f5efe6;

}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus{

  -webkit-text-fill-color:
    #f5efe6;

  -webkit-box-shadow:
    0 0 0px 1000px
    rgba(255,255,255,.08)
    inset;

  transition:
    background-color 9999s ease-in-out 0s;

}
/* =========================
   GLOBAL BUTTON STYLE
========================= */

button,
.filter-btn,
.filter-reset,
.load-more-btn,
.newsletter-btn,
.cta-link,
.btn-yellow,
.btn-outline{

  background: var(--panea-yellow);
  color:#111;
  font-weight:500;
  letter-spacing:-0.01em;
  border: none;
  transition: .25s ease;
}

/* HOVER */

button:hover,
.filter-btn:hover,
.filter-reset:hover,
.load-more-btn:hover,
.newsletter-btn:hover,
.cta-link:hover,
.btn-yellow:hover,
.btn-outline:hover {

  opacity: .92;
  transform: translateY(-2px);

  color: var(--panea-text);
}

/* BOTTONI FILTRI ATTIVI */

.filter-btn.active{

  background:var(--panea-yellow);
  color:#0b1f26;
}

/* =========================
   3. TYPOGRAPHY
========================= */

body {
  font-family: 'Inter', sans-serif;
  padding-top: 13px;
  background: var(--panea-blue);
  color: var(--panea-text);
}

h1,
h2,
h3,
h4 {
  font-family: 'Playfair Display', serif;
  color: var(--panea-white);
}

h1 {
  font-size: 56px;
  letter-spacing: 1px;
}

h2 {
  font-size: 28px;
}

p {
  font-size: 16px;
  line-height: 1.6;
}

a {
  text-decoration: none;
  color: var(--text);
}

a:hover {
  color: var(--panea-yellow);
}


/* =========================
   5. HEADER
========================= */

.header {
  width: 100%;
  padding-top: 28px;
  padding-bottom: 28px;
}

.header-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
}

.logo-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.logo {
  font-family: 'Playfair Display', serif;
  font-size: 68px;
  line-height: .9;
  color: var(--panea-yellow);
  margin: 0;
  text-decoration:none;
  color:inherit;
  cursor:pointer;
 }

.logo-subtitle {
  margin-top: 8px;
  font-size: 18px;
  letter-spacing: 3px;
  color: var(--panea-white);
}

.menu {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 12px;
}

.menu a {
  font-size: 18px;
  letter-spacing: 1px;
  color: var(--panea-white);
  position: relative;
  padding-bottom: 4px;
  transition: color .25s ease;
}

.menu a:hover,
.menu a.active {
  color: var(--panea-yellow);
}

.menu a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background: var(--panea-yellow);
  transition: width .25s ease;
}

.menu a:hover::after,
.menu a.active::after {
  width: 100%;
}


.welcome-page-body{

  min-height:100vh;

  background:
    linear-gradient(
      rgba(6,18,28,.72),
      rgba(6,18,28,.82)
    ),
    url("img/posters-bg.jpg");

  background-size:cover;

  background-position:center;

  background-repeat:no-repeat;

  color:var(--panea-white);

  overflow-x:hidden;

}

/* =========================
   6. HERO
========================= */

.hero {
  padding-top: 60px;
  padding-bottom: 90px;
}

.hero-layout {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 60px;
}

.hero-text{
max-width:650px;
  width:100%;
  padding-left: 18px;
}

.hero-kicker {
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--panea-yellow);
  opacity: .7;
  margin-bottom: 18px;
}

.hero-text h1 {
  font-family: 'Playfair Display', serif;
font-size: clamp(2.4rem, 4vw, 3.8rem);
  line-height: .95;
  letter-spacing: -2px;
  max-width: 420px;
  color: var(--panea-white);
  margin-bottom: 22px;
}

.highlight {
  color: var(--panea-yellow);
}

.hero-sub {
  max-width: 520px;
  font-size: 18px;
  line-height: 1.8;
  color: rgba(255,255,255,.75);
}

.hero-cta {
  min-width: 340px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding-bottom: 30px;
}

.cta-text {
  font-size: 22px;
  line-height: 1.7;
  color: var(--panea-white);;
}

/* =========================
   7. BUTTONS
========================= */

.cta-link {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-width: 220px;
  height: 58px;
  padding: 0 28px;
  border-radius: 999px;
  background: #f5c400;
  color: #0b2d40;
  text-decoration: none;
  font-weight: 600;
  transition: .25s ease;
}

.cta-link:hover {
  transform: translateY(-2px);
  opacity: .92;
  color: #071923;
}

.load-more-btn {
  height: 46px;
  padding: 0 26px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  color: var(--panea-white);
  font-size: 13px;
  letter-spacing: .4px;
  transition: .25s ease;
  align-items: center;
}

.load-more-btn:hover {
  background: var(--panea-yellow);
  color: #0b1f26;
}

/* =========================
   HOME CINEMA
========================= */

.home-cinema{
  padding: 40px 0 100px;
}

/* =========================
   SECTION HEADER
========================= */

.section-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:28px;
}

/* =========================
   SLIDER WRAPPER
========================= */

.slider-wrapper{
  position:relative;
}

/* =========================
   SLIDER
========================= */

.slider{
  display:flex;
  gap:24px;
  overflow-x:auto;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding-bottom:10px;
}

.slider::-webkit-scrollbar{
  display:none;
}

/* =========================
   SLIDE ITEM
========================= */

.slide-item{
  min-width:320px;
  flex:0 0 320px;
}

/* =========================
   CARD
========================= */

.slide-card{
  display:block;
  width:100%;
  border-radius:24px;
  overflow:hidden;
  background:#132e3a;
  transition:transform .3s ease;
}

.slide-card:hover{
  transform:translateY(-6px);
}

/* =========================
   IMAGE
========================= */

.slide-card img{
  width:100%;
  height:420px;
  object-fit:cover;
  display:block;
}

/* =========================
   CARD INFO
========================= */

.slide-info{
  padding-top:18px;
}

.slide-info h3{
  font-family:'Playfair Display', serif;
  font-size:1.35rem;
  color:#f4efe8;
  margin-bottom:8px;
  line-height:1.2;
}

.film-director{
  font-size:.95rem;
  color:rgba(255,255,255,.65);
  margin-bottom:10px;
  font-family:'Inter', sans-serif;
}

.film-stars{
  color:var(--panea-yellow);
  letter-spacing:2px;
  font-size:1rem;
}

/* =========================
   ARCHIVIO CARD
========================= */

.archivio-more .slide-card{
  position:relative;
}

.archivio-more .slide-info p{
  color:rgba(255,255,255,.7);
  font-size:.95rem;
  margin-top:6px;
}

/* =========================
   ARCHIVIO HERO
========================= */

.archivio-hero{

  text-align:center;

  margin-top:110px;
  margin-bottom:70px;
}

/* KICKER */

.archivio-kicker{

  font-size:.72rem;

  letter-spacing:.22em;

  color:#f4c542;

  margin-bottom:18px;

  font-weight:700;
}

/* TITLE */

.archivio-title{

  font-family:"Playfair Display", serif;

  font-size:4rem;

  color:var(--panea-white);

  margin-bottom:20px;
}

/* SUBTITLE */

.archivio-subtitle{

  max-width:620px;

  margin:0 auto;

  color:rgba(255,255,255,.72);

  line-height:1.8;

  font-size:1.05rem;
}

/* =========================
   SLIDER ARROWS
========================= */

.slider-arrows{
  position:absolute;
  top:-75px;
  right:0;
  display:flex;
  gap:12px;
  z-index:5;
}

.slider-arrow{
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:#f4efe8;
  font-size:1rem;
  cursor:pointer;
  transition:.25s ease;
  backdrop-filter:blur(12px);
}

.slider-arrow:hover{
  background:var(--panea-yellow);
  color:#0b1f26;
  border-color:var(--panea-yellow);
}

/* =========================
   SPLASH SCREEN
========================= */

#splash{

  position:fixed;

  inset:0;

  width:100%;

  height:100vh;

  background:var(--panea-yellow);

  z-index:99999;

  display:flex;

  flex-direction:column;

  align-items:center;

  justify-content:center;

  text-align:center;
}

/* LOGO */

#splash img{

  width:350px;
  
  margin-bottom:38px;
}

/* =========================
   LOADING BAR
========================= */

.loader{

  width:220px;

  height:6px;

  border-radius:999px;

  background:
    rgba(0,0,0,.12);

  overflow:hidden;

  position:relative;
  margin-bottom:24px;
}

/* TESTO LOADER */

.loader-text {

  color: #000000;

}

/* BARRA ESTERNA */

.loader-bar {

  background: rgba(0,0,0,0.12);

}

/* RIEMPIMENTO */

.loader-fill {

  background: linear-gradient(
    90deg,
    #000000,
    #193c4e
  );

}

.loader-bar::after {

  background: #000000;

}
.load-more-wrapper{
  display:flex;
  justify-content:center;
  margin-top:4rem;
}

.load-more-btn{

  background:transparent;

  border:1px solid #f1c54b;

  color:#f1c54b;
  transition:.3s ease;
}

.load-more-btn:hover{

  background:#f1c54b;

  color:#082f45;

}
/* INNER BAR */

.loader::before{

  content:"";

  position:absolute;

  top:0;

  left:-40%;

  width:40%;

  height:100%;

  background:var(--panea-text);

  border-radius:999px;

  animation:
    loadingBar 1.1s ease-in-out infinite;
}

/* TEXT */

#splash p{

  font-size:16px;

  font-weight:700;

  letter-spacing:4px;

  text-transform:uppercase;

  color:var(--panea-text);
}

/* =========================
   ANIMATION
========================= */

@keyframes loadingBar{

  0%{
    left:-40%;
  }

  100%{
    left:100%;
  }

}


/* =========================
   10. ARCHIVIO
========================= */

.archivio-title {
  font-size: 30px;
  text-align: center;
}

.archivio-img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  display: block;
  border-radius: 18px;
}

/* =========================
   FILTRI ARCHIVIO
========================= */

.archivio-filters{
  padding:20px 0 40px;
}

.filters-top{
  display:flex;
  align-items:center;
  gap:1rem;
  margin-top:2rem;
  margin-bottom:3rem;
}

.filter-bar{
  flex:1;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  padding:1rem 1rem;
  background:rgba(255,255,255,.03);
  display:flex;
  gap:18px;
  margin:50px 0 70px;
  flex-wrap:wrap;
}

.filter-label{
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#f4b400;
  margin-bottom:.7rem;
}

.filters-panel{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}

.filters-row{
  width:100%;

  display:flex;
  justify-content:center;
  align-items:center;

  gap:14px;

  margin-top:40px;
  margin-bottom:70px;

  flex-wrap:wrap;
}

.filter-select{
  width:260px;
  height:56px;
  padding:0 20px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
 background:rgba(255,255,255,.05);
  color:#fff;
  font-family:'Inter', sans-serif;
  font-size:.95rem;
font-weight:500;
  backdrop-filter:blur(10px);
  outline:none;
  cursor:pointer;
}

.filter-select option{
  background:#0b1f26;
  color:var(--panea-white);
}

.reset-btn{

  width:56px;
  height:56px;

  border:none;
  border-radius:50%;

  background:#f5c842;

  color:#0b1f26;

  font-size:1.1rem;
  font-weight:700;

  display:flex;
  align-items:center;
  justify-content:center;

  cursor:pointer;

  transition:.25s ease;
}

.reset-btn:hover{

  transform:rotate(-20deg) scale(1.05);

}

/* =========================
   GRID ARCHIVIO
========================= */

.archivio-grid{

  display:grid;

  grid-template-columns:
    repeat(3,1fr);

  gap:26px;

  margin-top:50px;
}

/* CARD */

.archivio-card{
  width:100%;
}

/* IMG */

.archivio-img{

  width:100%;

  object-fit:cover;

  border-radius:24px;

  display:block;
}

/* INFO */

.card-info{
  padding-top:14px;
}

.film-title{

  font-family:
    'Playfair Display', serif;

  font-size:1.2rem;

  color:#f4efe8;

  margin-bottom:6px;

  line-height:1.2;
}

.film-director{

  font-size:.92rem;

  color:
    rgba(255,255,255,.65);

  margin-bottom:10px;
}

/* =========================
   12. NEWSLETTER
========================= */

.newsletter {
  margin-bottom: 10px;
  margin-top: 80px;
  padding: 60px 20px;
  text-align: center;
}

.newsletter-inner {
  max-width: 460px;
  margin: 0 auto;
}

.newsletter h2 {
  font-family: 'Playfair Display', serif;
  color: var(--panea-white);
  margin-bottom: 14px;
  font-size: 28px;
}

.newsletter-btn {
  padding: 14px 26px;
  background: var(--panea-yellow);
  color: var(--panea-blue);
  border-radius: 999px;
  font-size: 14px;
  width: 100%;
  max-width: 300px;
  margin: 20px auto 0;
  display: block;
}

/* =========================
   13. CREDITS
========================= */

.credits{

  margin-top:20px;

  padding:
    40px 20px
    80px;
border-top:
    1px solid rgba(241,197,75,.12);
  text-align:center;
}

/* WRAPPER */

.credits-inner{

  max-width:320px;

  margin:0 auto;
}

/* LABEL */

.credits-label{

  font-size:10px;

  letter-spacing:2.4px;

  text-transform:uppercase;

  color:rgba(255,255,255,.38);

  margin-top:28px;

  margin-bottom:8px;
}

/* NOME */

.credits-name{

  font-family:'Playfair Display',serif;

  font-size:22px;

  line-height:1.4;

  color:var(--panea-white);
}
/* =========================
   14. FADE IN CREDITS
========================= */

.credits-label,
.credits-name{

  opacity:0;

  transform:translateY(18px);

  transition:
    opacity .7s ease,
    transform .7s ease;
}

/* quando visibili */

.credits.show .credits-label,
.credits.show .credits-name{

  opacity:1;

  transform:translateY(0);
}

/* delay progressivo */
.credits.show .fade:nth-child(1) {
  animation-delay: 0.2s;
}

.credits.show .fade:nth-child(2) {
  animation-delay: 0.4s;
}

.credits.show .fade:nth-child(3) {
  animation-delay: 0.6s;
}

.credits.show .fade:nth-child(4) {
  animation-delay: 0.8s;
}

.credits.show .fade:nth-child(5) {
  animation-delay: 1s;
}

.credits.show .fade:nth-child(6) {
  animation-delay: 1.2s;
}

/* =========================
   FILM GRID
========================= */

.film-section {

  max-width: 1100px;

  margin: 120px auto;

  padding: 0;

}
.film-section h2 {

  text-align: left;

  margin-bottom: 40px;

}

.film-grid {

  display: flex;
  flex-direction: column;

  gap: 32px;

  align-items: flex-start;

}

/* FILM CARD */

.film-card {

  background: rgba(15, 40, 65, 0.88);

  border: 1px solid rgba(255,255,255,0.06);

  border-radius: 34px;

  overflow: hidden;

  padding: 26px;

  box-shadow:
    0 10px 40px rgba(0,0,0,0.18);

  transition: 
    transform 0.35s ease,
    box-shadow 0.35s ease;

  width: 100%;

  max-width: 760px;

  margin-bottom: 42px;

}


/* HOVER */

.film-card:hover {

  transform: translateY(-6px);

  box-shadow:
    0 20px 60px rgba(0,0,0,0.25);

}

/* =========================
   IMMAGINE
========================= */

.film-card img {

  width: 100%;

  height: 420px;

  object-fit: cover;

  border-radius: 24px;

  display: block;

}

/* =========================
   CONTENUTO
========================= */

.film-content {

  padding: 22px 10px 8px;
}

/* =========================
   TITOLO
========================= */

.film-card h2 {

  font-family: 'Playfair Display', serif;

  font-size: 2.2rem;

  line-height: 1;

  color: white;

}

/* =========================
   TESTO
========================= */

.film-card p {

  font-family: 'Inter', sans-serif;

  font-size: 0.95rem;

  line-height: 1.8;

  color: rgba(255,255,255,0.82);

  max-width: 90%;
}

.film-year {

  display: inline-block;

  margin-bottom: 12px;

  font-size: 0.78rem;

  letter-spacing: 2px;

  text-transform: uppercase;

  color: #fdc103;

  font-weight: 600;
}
/* =========================
   RUBRICHE HOME
========================= */

.rubriche-home{

  padding:
    90px 0;
}

/* KICKER */

.section-kicker{

  font-size:11px;

  letter-spacing:3px;

  text-transform:uppercase;

  color:var(--panea-yellow);

  opacity:.7;

  margin-bottom:14px;
}

/* TITLE */

.section-title{

  font-family: 'Playfair Display', serif;

  font-size:clamp(30px,5vw,54px);

  line-height:1.05;

  color:var(--panea-white);

  font-weight: 720;

  margin-bottom:42px;
}

/* GRID */

.rubriche-grid{

  display:grid;

  grid-template-columns:1fr;

  gap:18px;
}

/* CARD */

.rubrica-card{

  display:block;

  padding:28px;

  border-radius:24px;

  background:
    rgba(255,255,255,.03);

  border:
    1px solid rgba(255,255,255,.06);

  transition:
    transform .25s ease,
    border-color .25s ease,
    background .25s ease;
}

/* HOVER */

.rubrica-card:hover{

  transform:translateY(-4px);

  border-color:
    rgba(253,193,3,.25);

  background:
    rgba(255,255,255,.045);
}

/* LABEL */

.rubrica-label{

  display:block;

  margin-bottom:16px;

  font-size:11px;

  letter-spacing:2px;

  text-transform:uppercase;

  color:var(--panea-yellow);
}

/* TEXT */

.rubrica-card p{

  font-size:17px;

  line-height:1.7;

  color:var(--panea-white);

  opacity:.9;
}


/* AUTORE (PIÙ IMPORTANTE) */
.author {
  color: var(--panea-text);
  font-size: 16px;
  font-weight: 500;
  margin-top: 10px;
}

/* HASHTAG */
.series {
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-top: 14px;
}

/* GENERE */
.genre-bar {
  color: var(--muted);
  font-size: 13px;
  margin-top: 4px;
}
.meta,
.genre-bar,
.series {
  font-size: 13px;
  opacity: 0.6;
  margin-bottom: 6px;
}

/* =========================
   LOGIN HERO
========================= */
.login-header{

  position: absolute;

}

body.login-page{

  overflow: hidden;

}

.login-hero{

  min-height: 100vh;

  margin-top: 0;

  padding-top: 0;
  display: flex;

  align-items: center;

  justify-content: center;

  padding: 120px 20px 40px;

  overflow: hidden;

}

.login-page{

  position:relative;
  min-height:100vh;
  background-image:
    linear-gradient(
      rgba(5,15,24,.84),
      rgba(5,15,24,.88)
    ),
    url("img/wall.webp");

  background-size:cover;

  background-position:center;

  background-repeat:no-repeat;

}

/* =========================
   LOGIN PAGE WALL
========================= */

.login-page .login-hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

/* CENTRO */

.login-brand{

  position: absolute;

  top: 32px;

  left: 38px;

  z-index: 20;

  font-family: "Playfair Display", serif;

  font-size: 2rem;

  font-weight: 700;

  color: #f3c433;

  text-decoration: none;

  letter-spacing: -.03em;

  transition: opacity .3s ease;

}

.login-brand:hover{

  opacity: .7;

}
.login-page .header{

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  z-index: 50;

}
.login-page .container{

  width: 100%;

  max-width: none;

  margin: 0;

}
.login-page .header-inner{

  justify-content: flex-start;

  padding-left: 42px;

}

.login-kicker{

  font-family:'Inter', sans-serif;

  font-size: 22px;

  letter-spacing:4px;

  text-transform:uppercase;

  color:#f2c94c;

  opacity:.85;

  margin-bottom:18px;

}

.login-divider{

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 14px;

  font-size: 12px;

  letter-spacing: .12em;

  text-transform: uppercase;

  color: rgba(255,255,255,.45);
}


 .login-divider::before,
.login-divider::after{

  content: "";

  flex: 1;

  height: 1px;

  background: rgba(255,255,255,.08);

}
 
/* SFONDO OVERLAY */

.login-overlay {

  position: absolute;

  inset: 0;

}


/* LOGIN CONTENT */

.login-content {
  width: 100%;
  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  gap: 16px;
  margin: 0 auto;
  padding: 120px 40px;
  z-index: 2;
  max-width: 900px;
 transform: translateY(-20px);

}

/* TITLE */

.login-title {
 font-size: clamp(3rem, 7vw, 5.8rem);

  line-height: .95;
  margin-top: 20px;
  margin-bottom: 10px;

}

/* SUBTITLE */

.logo-subtitle {

  margin-top: 10px;

  font-size: 15px;
letter-spacing: 3.2px;
opacity: .75;
margin-bottom:30px;
  color: var(--panea-white);
}



/* LOGIN BOX */

.login-box{

 width: 100%;
 margin-top:30px;

  max-width: 440px;

  padding: 24px;
 
  display: flex;
  align-items: center;
  flex-direction: column;

  gap: 22px;

  backdrop-filter: blur(10px);

  border: 1px solid rgba(255,255,255,.12);

  background: rgba(13,46,64,.52);

box-shadow:
  0 8px 30px rgba(0,0,0,.18);

  border-radius: 30px;
  }

/* INPUT */

.login-box input{

  width: 100%;

  height: 56px;

  padding: 0 20px;

  border-radius: 16px;

  background: rgba(255,255,255,.10);

  border: 1px solid rgba(255,255,255,.12);
  color: white;

  font-size: 15px;

}

.login-box input:focus{

  border-color: rgba(243,198,35,.55);

  box-shadow:
    0 0 0 4px rgba(243,198,35,.08);

}

/* BUTTONS CONTAINER */

.login-buttons{

  display: flex;

  gap: 14px;

  margin-top: 6px;

}
/* BUTTONS */

.login-btn,
.register-btn{

  max-width: 260px;

  margin: 0 auto;

  display: flex;

  align-items: center;

  justify-content: center;

 width: 220px;

  height: 56px;

  border-radius: 18px;

  font-size: 17px;

  font-family: 'Inter', sans-serif;

  font-weight: 600;

  cursor: pointer;

  transition: 0.3s ease;

}

/* LOGIN BUTTON */

.login-btn{
  font-weight:700;
 margin-top:10px;
  box-shadow:0 8px 30px rgba(243,198,35,.22);
}

.login-form{

  display:flex;

  flex-direction:column;

  gap:18px;

}

.login-heading{

  margin-bottom:45px;

}
/* REGISTER BUTTON */

.register-btn{

  background: transparent;

  border:1px solid rgba(255,255,255,.12);

  color: rgba(255,255,255,.82);

}

.login-back{

  position: absolute;

  top: 42px;

  left: 50%;

  transform: translateX(320px);

  z-index: 30;

  color: #f8f3eb;

  text-decoration: none;

  font-size: 14px;

  letter-spacing: .12em;

  text-transform: uppercase;

}

.login-back:hover{

  color: #f3c623;

  letter-spacing: .26em;

}


.login-buttons button{

  height: 54px;

  border-radius: 18px;

  font-size: 15px;

}

/* FOOTER */

.login-footer{

  margin-top: 34px;

  font-size: 20px;

  line-height: 1.5;

  font-style: italic;

  color: rgba(255,255,255,.88);

}

.login-form input{

  width:100%;

  padding:16px 18px;

  border-radius:18px;

  border:1px solid rgba(255,255,255,.15);

  background:
    rgba(255,255,255,.08);

  color:#f5efe6;

  font-size:1rem;

  backdrop-filter:blur(10px);

}

.login-form input:-webkit-autofill,
.login-form input:-webkit-autofill:hover,
.login-form input:-webkit-autofill:focus{

  -webkit-text-fill-color:
    #f5efe6;

  -webkit-box-shadow:
    0 0 0px 1000px
    rgba(255,255,255,.08)
    inset;

  border:
    1px solid rgba(255,255,255,.15);

}

/* =========================
   EMPTY STATE
========================= */

.empty-state{

  display:none;

  width:100%;

  text-align:center;

  margin:60px 0;

  font-family:'Inter', sans-serif;

  font-size:1rem;

  font-weight:600;

  letter-spacing:.5px;

  color:#f3efe7;

  opacity:.9;
}

.empty-state.show{

  display:block;
}

.empty-state .star{

  color:#f2b90f;

  margin-left:6px;
}

.section-label{
  font-family: Inter, sans-serif;
  font-size:clamp(1.15rem, 1.8vw, 1.7rem);
  font-weight: 400;
  color:var(--panea-yellow);
  letter-spacing:-0.02em;
  }

.line-break{
  display:block;
}

/* =========================
   ABOUT DESKTOP
========================= */

.about-page{

  width:100%;

  max-width:1400px;

  margin:
    0 auto 20px;

  padding:
    170px 7% 120px;

}

/* TOP */

.about-top{

  display:grid;

  grid-template-columns:
    1.1fr .9fr;

  align-items:center;

  gap:18px;

  margin-bottom:70px;

}

.about-top,
.about-bottom{

  width:100%;

  max-width:1200px;

  margin:0 auto;

}
/* TEXT */

.about-text{
  z-index:2;
  max-width:760px;
margin-left:80px;
}

.about-number{

  font-size:.9rem;

  letter-spacing:6px;

  color:#d4a93a;

  margin-bottom:28px;

}

.about-title{

  font-size:6rem;

  line-height:.9;

  margin-bottom:30px;

}

.about-intro{

  font-size:1.25rem;

  line-height:1.8;

  max-width:520px;

}

/* IMAGE */

.about-image{

  display:flex;

  justify-content:center;

}

.about-image img{

  width:100%;
  object-fit:cover;
max-width:340px;
  filter:
    drop-shadow(
      0 20px 40px
      rgba(0,0,0,.22)
    );
}

/* BOTTOM */

.about-bottom{

  width:100%;

  max-width:1000px;

  margin:0 auto;

  text-align:center;

}
/* QUOTE */

.about-highlight{

  font-size:3rem;

  line-height:.92;

  max-width:600px;
  margin:
    65px auto 45px;

}

.about-highlight span{

  color:#f1c54b;

  font-style:italic;

}

/* BODY */

.about-body{

  font-size:1.15rem;
max-width:700px;

  margin:
    0 auto 22px;
 
  margin-bottom:22px;

}

/* TAG */

.about-tag{

  font-size:.82rem;

  letter-spacing:7px;

  opacity:.55;

}

.about-intro span{

  color:#f1c54b;

  font-style:italic;

}
/* =========================
   REVIEW LAYOUT
========================= */

.review-layout{

  width:min(88%, 1180px);

  margin:0 auto;

  display:grid;

  grid-template-columns:260px 1fr;

  gap:120px;

  padding:120px 0;

}

.review-hero{

  position:relative;

  width:100%;

  height:82vh;
 
  overflow:hidden;

  display:flex;

  align-items:center;

  justify-content:center;

}

/* REVIEW TITLE */

.review-hero h1{

  font-family: 'Playfair Display', serif;

  font-size: 30px;

  line-height: 0.95;

  letter-spacing: -2px;


  margin-bottom: 24px;

  text-shadow:
    0 6px 30px rgba(0,0,0,0.45);

}

/* REVIEW SUBTITLE */

.hero subtitle {

  font-family: 'Inter', sans-serif;

  font-size: 22px;

  font-weight: 400;

  line-height: 1.5;

  color: rgba(255,255,255,0.88);

  max-width: 620px;

  text-shadow:
    0 4px 18px rgba(0,0,0,0.35);

}

.review-hero::after{

  content: "";

  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      to bottom,
      rgba(4, 10, 18, 0.25),
      rgba(4, 10, 18, 0.68)
    );

  z-index: 1;

}

.hero-img{

  position:absolute;

  inset:0;

  width:100%;

  height:100%;

  object-fit:cover;

  object-position:center center;

}
/* =========================
   SIDEBAR
========================= */

.review-sidebar{

  position:relative;

}

/* BOX STICKY */

.sidebar-box{

  position:sticky;

  top:130px;
  min-width: 320px;
overflow-wrap: break-word;
  padding:2rem;

  border:1px solid rgba(255,255,255,.08);

  border-radius:28px;

  background:rgba(255,255,255,.03);

  backdrop-filter:blur(14px);

}

/* LABEL */

.sidebar-label{

  font-size:.72rem;
 
  text-transform:uppercase;

  letter-spacing:.16em;

  color:#f4b400;

  margin-bottom:8px;

}

/* VALUE */

.sidebar-value{

  margin-bottom:28px;

  color:#f4efe8;

  line-height:1.6;

}

/* WATCH */

.sidebar-watch{

  display:inline-flex;

  margin-bottom:30px;

  text-decoration:none;

  color:#111;

  background:#f4b400;

  padding:.8rem 1rem;

  border-radius:999px;

  font-size:.85rem;

}

.sidebar-series{

  color: var(--panea-white);

  font-weight:500;

  letter-spacing:.08em;

}

.save-movie-btn{

  width: 100%;

  margin-top: 14px;

  padding: 13px 16px;

  border: 1px solid rgba(255,255,255,.1);

  background: rgba(13,46,64,.35);

  color: #f3c433;

  border-radius: 14px;

  font-size: 11px;

  letter-spacing: .14em;

  text-transform: uppercase;

  cursor: pointer;

  transition: .3s ease;

}

.save-movie-btn:hover{

  background: #f3c433;

  color: #000;

}

/* =========================
   TESTO
========================= */

.review-content{
font-size:1.06rem;
  letter-spacing:.01em;
  max-width:640px;
   padding-top:20px;
}

.review-content p{

  font-size:1.08rem;

  line-height:2.15;

  margin-bottom:2rem;

  color:rgba(255,255,255,.88);

}
.review-end{

  margin-top:80px;

  padding-top:35px;

  border-top:1px solid rgba(255,255,255,.08);

}

.rating{

  font-size:1.3rem;

  letter-spacing:4px;

  color:#f6c453;

  margin-bottom:18px;

}
.firma-recensione{

  font-size:.95rem;

  line-height:1.8;

  opacity:.8;

  font-weight:500;

}

.hero-overlay{

  position:relative;

  z-index:3;

  text-align:center;

  max-width:800px;

  padding:0 25px;

  margin: 0 auto;

  width: 100%;

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  text-align: center;

}

.hero-overlay h1{
  margin-bottom:20px;
 font-size: clamp(3rem, 8vw, 6rem);
  line-height: .92;
 
  color: #f8f3eb;
  text-shadow:
    0 4px 18px rgba(0,0,0,.45),
    0 1px 2px rgba(0,0,0,.6);
  max-width: 9ch;
}

.home-cta{
position:relative;
  overflow:hidden;

  background:
    linear-gradient(
      180deg,
      #f2c94c 0%,
      #e5b92f 100%
    );

  padding:140px 20px;
  text-align:center;
}


.home-cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("img/wall.jpg") center/cover;
  opacity:.06;
  filter:blur(4px);
  transform:scale(1.1);
}

.cta-kicker{
  font-size:.8rem;
  letter-spacing:3px;
  text-transform:uppercase;
  color:#8a6510;
  margin-bottom:20px;
  opacity:.9;
}

.home-cta h2{
  font-family:"Playfair Display", serif;
  font-size:4rem;
  line-height:1.05;
  color:#0b1f26;
  margin-bottom:24px;
}

.cta-sub{
  font-size:1.05rem;
  line-height:1.8;
  max-width:520px;
  margin:0 auto 40px;
   color:rgba(11,31,38,.75);
}

.cta-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:18px 42px;
  border-radius:999px;
  background:#f2c94c;
  color:#0b1f26;
  font-weight:700;
  text-decoration:none;
  transition:.25s;
}

.cta-button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 30px rgba(242,201,76,.25);
}
.home-cta > *{
  position:relative;
  z-index:2;
}
/* =========================
   MANIFESTO HOME
========================= */

.manifesto-home{

  min-height:58vh;

  display:flex;
  align-items:center;

  padding:120px 0 90px;

  position:relative;
  overflow:hidden;
}

/* WRAPPER */

.manifesto-wrapper{
display:flex;
  align-items:center;
  justify-content:center;

  gap:90px;

  width:100%;
  max-width:1200px;

  margin:0 auto;
}

/* LEFT */

.manifesto-left{

  max-width:520px;
}

.manifesto-right{

  max-width:320px;
}

.manifesto-left h2{

  font-family:"Playfair Display", serif;

  font-size:4.2rem;
  line-height:.95;

  color:var(--panea-white);

  margin-bottom:24px;
}

.manifesto-left span{

  color:#f4c542;
}

.manifesto-left p{

  max-width:480px;

  color:rgba(255,255,255,.75);

  font-size:1.05rem;
  line-height:1.8;
}

/* DIVIDER */

.manifesto-divider{

  width:1px;
  height:180px;

  background:
  linear-gradient(
    to bottom,
    transparent,
    rgba(255,255,255,.15),
    transparent
  );
}

/* RIGHT */

.manifesto-kicker{

  font-size:.7rem;
  letter-spacing:.25em;

  color:#f4c542;

  margin-bottom:16px;

  font-weight:700;
}

.manifesto-right h3{

  font-family:"Playfair Display", serif;

  font-size:2.8rem;
  line-height:1;

  color:var(--panea-white);

  margin-bottom:20px;
}

.manifesto-sub{

  color:rgba(255,255,255,.72);

  line-height:1.8;

  margin-bottom:30px;
}

/* BUTTON */

.manifesto-btn{

  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:15px 34px;

  border-radius:999px;

  background:#f4c542;
  color:#0b1f26;

  font-weight:600;

  text-decoration:none;

  transition:.25s;
}

.manifesto-btn:hover{

  transform:translateY(-2px);

  background:#ffd95e;
}

/* =========================
   CONTACT CARDS
========================= */

.contact-grid{

  display:grid;

  grid-template-columns:
    repeat(3, 1fr);

  gap:24px;

  margin-top:70px;

}

.contact-card {

  min-height: 320px;

  padding: 38px;

  border-radius: 30px;

  background: rgba(255,255,255,0.03);

  border: 1px solid rgba(255,255,255,0.08);

  backdrop-filter: blur(14px);

  -webkit-backdrop-filter: blur(14px);

  display: flex;

  flex-direction: column;

  justify-content: space-between;
 width: 100%;

}

.contact-page{

  margin-top:120px;

}

.contact-cards {

  max-width: 1200px;

  margin: 100px auto;

  padding: 0 40px;

}

 /* CONTACT GRID */

.contact-cards .container {

  display: grid !important;

  grid-template-columns: repeat(3, 1fr) !important;

  gap: 28px !important;

  align-items: stretch !important;

}



.contact-links{

  margin-top:18px;

}

.contact-links a{

  color:#f5c542;

  text-decoration:none;

}


.card-small{

  margin-top:12px;

  opacity:.7;

}

/* =========================
   LOGIN CTA
========================= */

.about-card .login-cta {

  margin-top: 26px;

}

.about-card .login-cta a {

  color: #f0b94b;

  text-decoration: none;

  font-weight: 600;

}
/* =========================
   SECTIONS
========================= */

.sections {
  max-width: 1200px;
  margin: 80px auto;
  padding: 0 40px;
}

.sections .container {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 28px;

  align-items: stretch;

}

/* =========================
   CARD
========================= */

.card {

  padding: 38px;

  border-radius: 30px;

  background: rgba(255,255,255,0.03);

  border: 1px solid rgba(255,255,255,0.08);

  backdrop-filter: blur(14px);

  -webkit-backdrop-filter: blur(14px);

  transition: 0.3s ease;

  min-height: 320px;

  display: flex;

  flex-direction: column;

  justify-content: space-between;

}

.card:hover {

  transform: translateY(-6px);

  background: rgba(255,255,255,0.05);

  border: 1px solid rgba(255,255,255,0.14);

}

/* =========================
   CARD TEXT
========================= */

.card h3 {

  font-size: 0.78rem;

  letter-spacing: 2px;

  text-transform: uppercase;

  color: #f0b94b;

  margin-bottom: 18px;

  font-family: 'Inter', sans-serif;

}

.card h2 {

  font-size: 2.2rem;

  line-height: 0.95;

  margin-bottom: 24px;

  color: #f5f1e8;

  font-family: 'Playfair Display', serif;

}

.card p {

  font-size: 1rem;

  line-height: 1.7;

  color: rgba(255,255,255,0.78);

  font-family: 'Inter', sans-serif;

}

/* =========================
   LOGIN LINK
========================= */

.login-cta {

  margin-top: 24px;

}

.login-cta a {

  color: #f0b94b;

  text-decoration: none;

  font-weight: 600;

}

.login-cta a:hover {

  opacity: 0.8;

}

.about-cards .container {

  background: transparent !important;

  border: none !important;

  box-shadow: none !important;

  backdrop-filter: none !important;

  -webkit-backdrop-filter: none !important;

  display: grid;
 margin-top: 0 !important;
  padding-top: 0 !important;


  grid-template-columns: repeat(3, 1fr);

  gap: 28px;

}

.back-link{

  display: inline-flex;

  align-items: center;

  gap: 10px;

  padding: 10px 18px;

  margin-bottom: 34px;

  border-radius: 999px;

  background: rgba(7, 19, 35, 0.72);

  border: 1px solid rgba(255,255,255,0.08);

  backdrop-filter: blur(10px);

  color: #ffffff;

  font-size: 0.95rem;

  font-weight: 600;

  text-decoration: none;

  transition: 0.3s ease;

}

.back-link:hover{

  background: rgba(25, 60, 78, 0.95);

  transform: translateY(-2px);

}

.back-link::before{

  content: "←";

  color: #f3c623;

}


/* BUTTONS */

.newsletter-btn:hover,
.load-more-btn:hover,
.login-btn:hover,
.register-btn:hover,
.reset-btn:hover,
.sidebar-watch:hover,
.back-link:hover,
.cta-link:hover {

  color: #000000 !important;

}

.back-link,
.back-link:active,
.back-link:focus,
.back-link:visited {
  color: white !important;
  -webkit-tap-highlight-color: transparent;
}

.back-link:active {
  color: #f5c542 !important;
}


.manifesto-btn,
.manifesto-btn:active,
.manifesto-btn:focus,
.manifesto-btn:visited {
  color: black !important;
  -webkit-tap-highlight-color: transparent;
}

.register-btn,
.register-btn:visited {
  color: white !important;
}

.register-btn:active,
.register-btn:focus,
.register-btn:hover {
  color: var(--panea-yellow) !important;
}

/* =========================
   PROFILE PAGE
========================= */

.profile-page{

  min-height:100vh;

  background:
    linear-gradient(
      rgba(7,15,25,.88),
      rgba(7,15,25,.94)
    ),
    url("img/wall.webp");

  background-size:cover;

  background-position:center;

  color:#f5f1ea;

  font-family:"Inter", sans-serif;

}

/* HEADER */

.profile-header{

  display:flex;

  justify-content:space-between;

  align-items:center;

  padding:28px 60px;

}

.profile-logo{

  font-family:"Playfair Display", serif;

  font-size:2rem;

  font-weight:700;

  color:#f3c94d;

  text-decoration:none;

}

.profile-nav{

  display:flex;

  gap:24px;

  align-items:center;

}

.profile-nav a,
.logout-btn{

  color:#f5f1ea;

  text-decoration:none;

  background:none;

  border:none;

  font-size:.95rem;

  cursor:pointer;

  opacity:.8;

  transition:.3s;

}

.profile-nav a:hover,
.logout-btn:hover{

  opacity:1;

}

/* HERO */

.profile-hero{

  text-align:center;

  padding:90px 20px 60px;

}

.profile-kicker{

  font-size:.72rem;

  letter-spacing:2px;

  color:#f3c94d;

  margin-bottom:18px;

}

.profile-title{

  font-family:"Playfair Display", serif;

  font-size:clamp(3rem,8vw,5.5rem);

  line-height:.95;

  margin-bottom:22px;

}

.profile-subtitle{

  font-size:1.05rem;

  opacity:.78;

}

/* USER */

.profile-user{

  display:flex;

  justify-content:center;

  margin-bottom:70px;

}

.profile-user-box{

  padding:22px 28px;

  border:1px solid rgba(255,255,255,.08);

  background:rgba(20,35,55,.45);

  backdrop-filter:blur(18px);

  border-radius:24px;

}

.profile-user-label{

  font-size:.7rem;

  letter-spacing:2px;

  opacity:.5;

  margin-bottom:10px;

}

.profile-email{

  font-size:1rem;

}

/* SAVED */

.saved-movies{

  width:min(1200px,90%);

  margin:auto;

}

.section-top{

  margin-bottom:30px;

}

.section-top h2{

  font-family:"Playfair Display", serif;

  font-size:2rem;

}

.saved-grid{

  display:grid;

  grid-template-columns:
    repeat(auto-fit,minmax(220px,1fr));

  gap:24px;

}

.saved-card{

  overflow:hidden;

  border-radius:24px;

  background:#111;

}

.saved-card img{

  width:100%;

  display:block;

}

/* QUOTE */

.profile-quote{

  text-align:center;

  padding:120px 20px;

}

.profile-quote p{

  font-family:"Playfair Display", serif;

  font-size:clamp(1.8rem,4vw,3rem);

  line-height:1.3;

  opacity:.82;

  max-width:800px;

  margin:auto;

}

/* EMPTY */

.saved-empty{

  display:none;

  text-align:center;

  padding:80px 20px;

  opacity:.5;

  font-size:1rem;

}

/* CARD */

.saved-card{

  position:relative;

  overflow:hidden;

  border-radius:24px;

  background:#111;

  aspect-ratio:2/3;

}

/* IMG */

.saved-card img{

  width:100%;

  height:100%;

  object-fit:cover;

  display:block;

  transition:.5s ease;

}

/* OVERLAY */

.saved-overlay{

  position:absolute;

  inset:0;

  background:
    linear-gradient(
      transparent,
      rgba(0,0,0,.88)
    );

  display:flex;

  flex-direction:column;

  justify-content:flex-end;

  padding:20px;

  opacity:0;

  transition:.35s ease;

}

/* TITLE */

.saved-overlay h3{

  font-size:1rem;

  margin-bottom:12px;

}

/* DELETE */

.remove-btn{

  border:none;

  background:#f3c94d;

  color:#000;

  padding:10px 14px;

  border-radius:999px;

  font-size:.72rem;

  cursor:pointer;

  width:fit-content;

  text-transform:uppercase;

  letter-spacing:.12em;

}

/* HOVER */

.saved-card:hover img{

  transform:scale(1.05);

}

.saved-card:hover .saved-overlay{

  opacity:1;

}

/* =========================
   SAVED STATE
========================= */

.saved-state{

  background:#f3c94d;

  color:#000;

  opacity:.9;

  cursor:default;

}

.movie-actions{

  display:flex;

  flex-direction:column;

  gap:12px;

  margin-top:20px;

}

.save-movie-btn{

  width:100%;

  padding:14px 18px;

  border-radius:999px;

  border:
    1px solid rgba(255,255,255,.08);

  background:
    rgba(15,30,45,.45);

  color:#f5f1ea;

  font-size:.78rem;

  letter-spacing:.08em;

  cursor:pointer;

  transition:.3s ease;

}

.save-movie-btn:hover{

  background:#f3c94d;

  color:#000;

  transform:translateY(-2px);

}

.menu-toggle{

  display:none;

}

/* HAMBURGER */

.menu-toggle span{

  display:block;

  width:28px;
  height:2px;

  background:#f4efe8;

  margin:6px 0;

  border-radius:20px;

}

















/* =========================================
   MOBILE
========================================= */

@media (max-width: 768px) {

  /* =========================
     GLOBAL
  ========================= */

  body{
    overflow-x:hidden;
  }

  .container,
  .review-layout,
  .hero-layout,
  .manifesto-wrapper,
  .about-layout{
    width:100%;
    padding-left:22px;
    padding-right:22px;
  }

  section{
    margin-bottom:70px;
  }

  h1{
    font-size:42px;
    line-height:.95;
  }

  h2{
    font-size:32px;
    line-height:1;
  }

  p{
    font-size:16px;
    line-height:1.8;
  }

  /* =========================
     HEADER
  ========================= */

  .header{
    padding-top:20px;
    padding-bottom:10px;
  }

  .header-inner{
    flex-direction:column;
    align-items:center;
    gap:18px;
  }

  .logo-block{
    text-align:center;
    align-items:center;
  }

  .logo{
    font-size:3.8rem;
  }

  .logo-subtitle{
    font-size:.68rem;
    letter-spacing:.22em;
  }


  /* =========================
     HERO
  ========================= */

  .hero{
    padding-top:40px;
    padding-bottom:30px;
  }

  .hero-layout{
    flex-direction:column;
    align-items:flex-start;
    gap:40px;
  }

  .hero-text{
    padding:0;
    max-width:100%;
  }

  .hero-text h1{
    font-size:3.4rem;
    line-height:.92;
    max-width:100%;
  }

  .hero-sub{
    font-size:1rem;
    line-height:1.8;
    max-width:100%;
  }

  .hero-overlay h1{
    font-size: 2.8rem;
    line-height: .95;
  }
 
 .hero-cta{
    min-width:100%;
    padding-bottom:0;
  }

  .cta-link{
    width:100%;
    height:54px;
    font-size:.95rem;
  }

  /* =========================
     HOME CARD
  ========================= */

  .film-section{
    margin:80px auto;
  }

  .film-card{
    max-width:100%;
    padding:18px;
    border-radius:26px;
    margin-bottom:26px;
  }

  .film-card img{
    height:260px;
    border-radius:18px;
  }

  .film-content{
    padding:18px 4px 4px;
  }

  .film-card h2{
    font-size:2rem;
    line-height:1;
  }

  .film-card p{
    max-width:100%;
    font-size:.95rem;
    line-height:1.7;
  }

  /* =========================
     SLIDER
  ========================= */

  .slide-item{
    min-width:84%;
    flex:0 0 84%;
  }

  .slide-card img{
    height:280px;
  }

  .slider-arrows{
    display:none;
  }

  /* =========================
     ARCHIVIO
  ========================= */

  .archivio-hero{
    margin-top:70px;
    margin-bottom:40px;
    padding:0 20px;
  }

  .archivio-title{
    font-size:2.7rem;
    line-height:.95;
  }

  .archivio-subtitle{
    font-size:.95rem;
    line-height:1.8;
  }

  .archivio-grid{

    display:grid;

    grid-template-columns:
      repeat(2, 1fr);

    gap:18px;
   

  }

  .archivio-img{
    height:280px;
  }

  .archivio-card img{

    aspect-ratio:1/1;

    object-fit:cover;

    border-radius:22px;

  }

  .archivio-card h3 {

    line-height:1.05;

    margin-top:16px;
   font-size: 1.25em;

  }

  .archivio-card p{

    font-size:.95rem;

    line-height:1.5;

  }

 .archivio-grid .archivio-card{
  display:none;
}

.archivio-grid .archivio-card:nth-child(-n+4){
  display:block;
}
  /* =========================
     REVIEW PAGE
  ========================= */

  .review-hero{
    height:58vh;
  }

  .hero-overlay{
    padding:0 20px;
  }

  .hero-overlay h1{
    font-size:3rem;
    line-height:.95;
  }

  .hero-subtitle {

  text-align: center;

  width: 100%;

  margin: 0 auto;

  }

  .review-layout{
    grid-template-columns:1fr;
    gap:36px;
    padding-top:50px;
    padding-bottom:60px;
  }

  .sidebar-box{
    position:relative;
    top:auto;
    min-width:100%;
    padding:1.6rem;
    border-radius:24px;
  }

  .review-content{
    max-width:100%;
    padding-top:0;
  }

  .review-content p{
    font-size:1rem;
    line-height:2;
  }

  .review-end{
    margin-top:50px;
  }

  /* =========================
     LOGIN
  ========================= */

  .login-content{
    padding:120px 24px 80px;
  }

  .login-title{
    font-size:3rem;
    line-height:.92;
  }

  .login-subtitle{
    font-size:1rem;
    line-height:1.6;
    white-space:normal;
  }

  .login-box input{
    height:58px;
    font-size:1rem;
    border-radius:18px;
  }

  .login-buttons{
    flex-direction:column;
    gap:12px;
  }

  .login-btn,
  .register-btn{
    width:100%;
    height:54px;
  }
 
 .login-page{
    padding-top:40px;
  }

  .login-hero{

    min-height:auto;

   padding-top:10px;

  }

  .login-heading{

    margin-bottom:28px;

  }

  /* =========================
     ABOUT
  ========================= */

   .about-page{
  padding-top:80px;
    overflow:hidden;
    position:relative;
   }

  .about-top{

    display:grid;

    grid-template-columns:
      1fr 120px;

    gap:24px;

    align-items:start;

  }


  .about-title{

    line-height:.9;

    margin-bottom:28px;

  }

  .about-highlight{

    margin-top:70px;
    font-size: 30px;
  }

.about-image{

  position:absolute;

    top:180px;

    width:180px;
right:-30px;
    opacity:0.95;

    z-index:1;

}

.about-image img{
  max-width:none;
  width:100%;
    display:block;
  transform:translateX(18px);

}

  .about-intro{

    font-size:1.1rem;

    line-height:1.8;

  }

 .about-text{

    position:relative;
    z-index:2;

    max-width:70%;

 }
  /* =========================
     CARDS GRID
  ========================= */

  .sections .container,
  .contact-cards .container,
  .about-cards .container{
    grid-template-columns:1fr !important;
  }

  .card,
  .contact-card,
  .about-card{
    min-height:auto;
    padding:26px;
    border-radius:24px;
  }

  /* =========================
     NEWSLETTER
  ========================= */

  .newsletter{
    padding:40px 20px;
  }

  .newsletter h2{
    font-size:2rem;
  }

  .newsletter-btn{
    max-width:100%;
  }

  /* =========================
     FOOTER
  ========================= */

  .credits{
    margin-top:70px;
    padding-bottom:50px;
  }



  /* =========================
     BASE
  ========================= */

  .profile-page{

    padding: 0 22px;
    overflow-x: hidden;

  }

  /* =========================
     HEADER
  ========================= */

  .profile-header{

    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 18px;

    padding-top: 34px;
    margin-bottom: 70px;

  }

  .profile-logo{

    font-size: 3rem;
    text-align: center;

  }

  .profile-nav{

    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;

    gap: 12px;

  }

  .profile-nav a,
  .logout-btn{

    font-size: 0.9rem;

    padding: 10px 18px;

    border-radius: 999px;

  }

  /* =========================
     HERO
  ========================= */

  .profile-hero{

    text-align: center;

    margin-bottom: 55px;

  }

  .profile-kicker{

    font-size: 0.8rem;
    letter-spacing: 4px;

    margin-bottom: 18px;

  }

  .profile-title{

    font-size: 4rem;
    line-height: 0.95;

    margin-bottom: 22px;

  }

  .profile-subtitle{

    font-size: 1.1rem;
    line-height: 1.7;

    max-width: 320px;
    margin: 0 auto;

  }

  /* =========================
     USER BOX
  ========================= */

  .profile-user{

    display: flex;
    justify-content: center;

    margin-bottom: 70px;

  }

  .profile-user-box{

    width: 100%;

    padding: 28px;

    border-radius: 30px;

    backdrop-filter: blur(12px);

  }

  .profile-user-label{

    font-size: 0.8rem;
    letter-spacing: 4px;

    margin-bottom: 14px;

  }

  .profile-email{

    font-size: 1rem;
    line-height: 1.6;

    word-break: break-word;

  }

  /* =========================
     SEZIONI
  ========================= */

  .saved-section{

    margin-bottom: 80px;

  }

  .saved-title{

    font-size: 2.4rem;

    margin-bottom: 30px;

    text-align: center;

  }

  /* =========================
     GRID
  ========================= */

  .saved-grid{

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 18px;

  }

  /* =========================
     CARD
  ========================= */

  .saved-card{

    border-radius: 24px;

    overflow: hidden;

  }

  .saved-card img{

    width: 100%;
    aspect-ratio: 0.72;

    object-fit: cover;

    display: block;

  }

  .saved-card-content{

    padding: 16px;

  }

  .saved-card h3{

    font-size: 1rem;
    line-height: 1.3;

    margin-bottom: 8px;

  }

  .saved-card p{

    font-size: 0.9rem;
    line-height: 1.5;

  }

  /* =========================
     QUOTE
  ========================= */

  .profile-quote{

    text-align: center;

    margin-top: 100px;
    margin-bottom: 50px;

    padding-bottom: 40px;

  }

  .profile-quote p{

    font-size: 1rem;
    line-height: 1.8;

    letter-spacing: 4px;

    opacity: 0.7;

  }

 
.menu-toggle{

    display:block;

    background:none;
    border:none;

    cursor:pointer;

    z-index:1001;

  }

  .menu{

    position:fixed;

    top:0;
    right:-100%;

    width:100%;
    height:100vh;

    background:#08293b;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    gap:34px;

    transition:.45s ease;

    z-index:1000;

  }

  .menu.active{

    right:0;

  }
 

  .manifesto-wrapper{

  flex-direction:column;

  gap:50px;

}

.manifesto-home{

  padding:140px 22px 80px;

}

  .manifesto-left{

    width:100%;
   overflow:hidden;

  }

 .manifesto-left h2{

  font-size:3.35rem;

  line-height:.92;

  letter-spacing:-0.04em;

    word-break:break-word;

  }

  .manifesto-left p{

    margin-top:28px;

  font-size:1rem;

  line-height:1.75;

  color:rgba(255,255,255,.72);

    max-width:100%;

  }

  /* LINEA */

  .manifesto-divider{

    width:100%;

    height:1px;

    min-height:1px;

  }

  /* BLOCCO SOTTO */

  .manifesto-right{

    width:100%;

  }

  .manifesto-right h2{

    font-size:3.4rem;

    line-height:.95;

  }

  .manifesto-right p{

    margin-top:20px;

    font-size:1.05rem;

    line-height:1.8;

  }

  /* BUTTON */

  .manifesto-btn{

    width:100%;

    justify-content:center;

    padding:20px;

    border-radius:18px;

  }

  .contact-cards .container{

    display:flex;

    flex-direction:column;

    align-items:center;

  }

  .contact-card{

    width:100%;

  padding-inline:20px;


    max-width:520px;

    margin:0 auto;

  }
}












 
@media (min-width: 1024px) {

  .rubriche-grid {
    grid-template-columns: repeat(3,1fr);
    gap: 24px;
  }

  .rubriche-grid{

    grid-template-columns:
      repeat(3,1fr);

    gap:24px;
  }

  .rubrica-card{

    min-height:240px;

    padding:34px;
  }
   .hero img {
      height: 82vh;
}
}
