/* ==========================================================================
   belmodo production — replica statica fedele (nessuna dipendenza da Wix)
   ========================================================================== */

/* ---- Font reali del sito originale (self-hosted) ---- */
@font-face{
  font-family:"Arian LT";
  src:url("../fonts/arian-lt-w20-regular.latin.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212;
}
@font-face{
  font-family:"Arian LT";
  src:url("../fonts/arian-lt-w20-regular.latin-ext.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
  unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"DIN Neuzeit Grotesk";
  src:url("../fonts/din-neuzeit-grotesk.latin.woff2") format("woff2");
  font-weight:300 400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Helvetica W01 Light";
  src:url("../fonts/helvetica-light.woff2") format("woff2");
  font-weight:300 400;font-style:normal;font-display:swap;
}

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:#000;
  color:#fff;
  font-family:"Arian LT","Arial Narrow",Arial,Helvetica,sans-serif;
  line-height:1.4;
  overflow-x:hidden;
}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:#000;padding:8px 14px;z-index:100}
.skip:focus{left:8px}

/* ==========================================================================
   BANNER "Sito in aggiornamento" — minimale, sobrio, su tutte le pagine
   ========================================================================== */
.site-banner{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:nowrap;
  gap:.7em;
  background:#1c1c1c;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.16);
  color:#d5d5d5;
  font-family:"Arian LT",Arial,Helvetica,sans-serif;
  /* si adatta: resta su UNA riga anche su mobile */
  font-size:clamp(8px,2.5vw,11px);
  letter-spacing:.22em;
  text-transform:uppercase;
  white-space:nowrap;
  padding:11px 12px 10px;
  cursor:pointer;
  transition:background .18s,color .18s;
}
.site-banner:hover{background:#242424;color:#fff}
.site-banner:hover .site-banner__logo{opacity:1}
.site-banner__by{color:#969696}
.site-banner__logo{
  height:1.25em;width:auto;display:block;
  opacity:.9;transition:opacity .18s;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header{
  max-width:980px;
  margin:0 auto;
  padding:42px 20px 0;
  text-align:center;
}
.logo{display:block}
.logo img{
  width:min(478px,84vw);
  height:auto;
  margin:0 auto;
}
/* DESKTOP: menu a sinistra, contatti a destra con la mail SOPRA il telefono */
.site-nav{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-top:24px;
  padding-bottom:14px;
}
.site-nav__menu{display:flex;gap:26px;padding-top:2px}
.site-nav__menu a{
  font-family:"Arian LT",Arial,Helvetica,sans-serif;
  font-size:12px;
  font-weight:400;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#b9b9b9;
  transition:color .18s;
}
.site-nav__menu a:hover{color:#fff}
.site-nav__menu a[aria-current="page"]{color:#ff4242}

.site-nav__contact{text-align:right;line-height:2}
.site-nav__contact a{
  display:block;                 /* mail sopra, telefono sotto */
  font-family:"Arian LT",Arial,Helvetica,sans-serif;
  font-size:10.5px;
  font-weight:400;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#a7a7a7;
  transition:color .18s;
  white-space:nowrap;
}
.site-nav__contact a:hover{color:#fff}

/* ==========================================================================
   HERO (video showreel) — blocco centrato ~980px, come l'originale
   ========================================================================== */
.hero{padding:0 20px}
.hero__frame{
  position:relative;
  width:100%;
  max-width:980px;
  margin:0 auto;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#000;
}
.hero__video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
}
/* finché il video è in "autoplay muto" (senza attributo controls) niente UI nativa;
   dopo il click compaiono i controlli veri e si può mettere in pausa */
video:not([controls])::-webkit-media-controls,
video:not([controls])::-webkit-media-controls-enclosure,
video:not([controls])::-webkit-media-controls-panel,
video:not([controls])::-webkit-media-controls-overlay-play-button,
video:not([controls])::-webkit-media-controls-start-playback-button{
  display:none!important;
  -webkit-appearance:none!important;
  opacity:0!important;
}
.hero__play{
  position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.9);
  background:rgba(0,0,0,.15);
  cursor:pointer;
  transition:background .2s,transform .2s;
}
.hero__play-ic{
  position:relative;
  width:0;height:0;
  border-style:solid;
  border-width:8px 0 8px 14px;
  border-color:transparent transparent transparent #fff;
  margin-left:3px;
}
.hero__play:hover{background:rgba(255,255,255,.22);transform:translate(-50%,-50%) scale(1.06)}
.hero.is-playing .hero__play{display:none}

/* ==========================================================================
   CAPTION condivisa (hover su foto e film) — testo come l'originale
   ========================================================================== */
.cap{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;
  padding:16px;
  text-align:center;
  background:rgba(0,0,0,.34);
  opacity:0;
  transition:opacity .4s ease;
  pointer-events:none;
}
.cap__t{
  font-family:"Palatino Linotype","Palatino","Book Antiqua","URW Palladio L",Georgia,serif;
  font-weight:700;
  font-size:15px;
  line-height:21px;
  letter-spacing:.02em;
  color:#d2d2d3;
}
.cap__d{
  font-family:"Helvetica W01 Light","Helvetica Neue",Helvetica,Arial,sans-serif;
  font-weight:300;
  font-size:15px;
  line-height:18px;
  color:#d2d2d3;
}

/* ==========================================================================
   GALLERY (HOME) — masonry 2 colonne a tutta larghezza, hover con didascalia
   ========================================================================== */
.gallery{
  display:flex;
  gap:4px;
  padding:26px 18px 0;
}
.gallery__col{
  flex:1 1 0;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
/* fallback senza JS: 2 colonne via CSS columns */
.gallery.no-js{display:block;column-count:2;column-gap:4px}
.gallery.no-js .tile{break-inside:avoid;margin-bottom:4px}

.tile{
  position:relative;
  line-height:0;
  background:#0a0a0a;
  overflow:hidden;
}
.tile img{width:100%;height:auto}
.tile:hover .cap{opacity:1}
@media (prefers-reduced-motion:no-preference){
  .tile img{transition:transform .6s cubic-bezier(.2,.6,.2,1)}
  .tile:hover img{transform:scale(1.035)}
}

/* ==========================================================================
   FILMS (WORK) — colonna singola ~980px, poster + play, hover con titolo
   ========================================================================== */
.films{
  max-width:980px;
  margin:0 auto;
  padding:10px 20px 0;
  display:flex;
  flex-direction:column;
  gap:21px;
}
.film{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:#000;
  overflow:hidden;
  cursor:pointer;
}
.film__poster,
.film video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;background:#000;
}
.film video{opacity:0;transition:opacity .3s ease}
.film.is-ready video{opacity:1}
.film.is-ready .film__poster{opacity:0}
.film__play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:0;height:0;
  border-style:solid;
  border-width:22px 0 22px 38px;
  border-color:transparent transparent transparent rgba(255,255,255,.9);
  transition:opacity .25s;
  pointer-events:none;
}
.film__hit{position:absolute;inset:0;width:100%;height:100%;background:none;border:0;cursor:pointer}
.film:hover .cap{opacity:1}
.film.is-playing .film__play{opacity:0}
.film.is-playing .cap{opacity:0}

/* ==========================================================================
   FOOTER — minimale ed elegante, coerente con il resto del sito
   ========================================================================== */
.site-footer{
  background:#0a0a0a;
  margin-top:56px;
  border-top:1px solid rgba(255,255,255,.10);
}
.site-footer__inner{
  max-width:720px;
  margin:0 auto;
  padding:60px 20px 52px;
  text-align:center;
  font-family:"Arian LT",Arial,Helvetica,sans-serif;
}
.site-footer__brand{
  font-size:21px;
  letter-spacing:.05em;
  color:#fff;
}
.site-footer__brand span{
  font-size:10px;
  letter-spacing:.36em;
  text-transform:uppercase;
  color:#969696;
}
.site-footer__nav{
  margin-top:24px;
  display:flex;
  justify-content:center;
  gap:28px;
}
.site-footer__nav a{
  font-size:13px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#b9b9b9;
  transition:color .18s;
}
.site-footer__nav a:hover{color:#fff}
.site-footer__contact{
  margin-top:22px;
  font-size:13px;
  letter-spacing:.08em;
  color:#cfcfcf;
}
.site-footer__contact a{transition:color .18s}
.site-footer__contact a:hover{color:#ff4242}
.site-footer__contact .dot{margin:0 .7em;color:#555}
.site-footer__tag{
  margin-top:28px;
  font-family:"Palatino Linotype","Palatino","Book Antiqua",Georgia,serif;
  font-style:italic;
  font-size:13px;
  color:#9a9a9a;
}
.site-footer__legal{
  margin-top:14px;
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#949494;
}
/* --- "Made with ♥ by  Claar" — tutta la riga è cliccabile --- */
.site-footer__credit{
  margin:34px auto 0;
  background:none;border:0;padding:6px 4px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:.55em;
  font-family:"Arian LT",Arial,Helvetica,sans-serif;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#9c9c9c;
  transition:color .18s;
}
.site-footer__credit:hover{color:#eee}
.site-footer__credit:hover .site-footer__credit-logo{opacity:1}
.site-footer__credit-logo{
  height:1.15em;width:auto;display:block;   /* stessa altezza visiva del testo "Site by" */
  opacity:.92;transition:opacity .18s;
}

.site-footer__bar{height:6px;background:#4e4e4f}

/* --- Popup contatti Claar --- */
.cmodal[hidden]{display:none!important}
.cmodal{
  position:fixed;inset:0;z-index:210;
  display:flex;align-items:center;justify-content:center;
  padding:24px;
  background:rgba(0,0,0,.9);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0;transition:opacity .22s ease;
}
.cmodal.is-open{opacity:1}
.cmodal__box{
  position:relative;
  background:#101010;
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 30px 90px rgba(0,0,0,.65);
  padding:52px 44px 44px;
  max-width:380px;width:100%;
  text-align:center;
  transform:translateY(12px);
  transition:transform .22s ease;
}
.cmodal.is-open .cmodal__box{transform:none}
.cmodal__logo{
  width:146px;height:auto;
  margin:0 auto 14px;
}
.cmodal__kicker{
  font-family:"Arian LT",Arial,Helvetica,sans-serif;
  font-size:10px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:#949494;
  margin-bottom:26px;
}
.cmodal__links{display:flex;flex-direction:column;gap:10px}
.cmodal__link{
  display:flex;align-items:center;justify-content:center;gap:10px;
  font-family:"Arian LT",Arial,Helvetica,sans-serif;
  font-size:13px;
  letter-spacing:.04em;
  color:#e2e2e2;
  border:1px solid rgba(255,255,255,.16);
  padding:13px 16px;
  transition:background .18s,color .18s,border-color .18s;
}
.cmodal__link svg{flex:0 0 auto;opacity:.85}
.cmodal__link:hover{background:#fff;color:#000;border-color:#fff}
.cmodal__link:hover svg{opacity:1}
.cmodal__close{
  position:absolute;top:10px;right:16px;
  background:none;border:0;cursor:pointer;
  color:#fff;font-size:24px;line-height:1;
  opacity:.55;transition:opacity .18s;
}
.cmodal__close:hover{opacity:1}

/* ==========================================================================
   LIGHTBOX — clic su una foto della gallery = apertura a schermo intero
   ========================================================================== */
.tile{cursor:zoom-in}
.lightbox[hidden]{display:none!important}
.lightbox{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  padding:4vmin;
  background:#000;
  opacity:0;
  transition:opacity .25s ease;
}
.lightbox.is-open{opacity:1}
.lightbox__fig{
  margin:0;
  max-width:100%;max-height:100%;
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.lightbox__img{
  max-width:100%;
  max-height:82vh;
  width:auto;height:auto;
  object-fit:contain;
  box-shadow:0 20px 60px rgba(0,0,0,.6);
}
.lightbox__cap{
  text-align:center;
  font-family:"Palatino Linotype","Palatino","Book Antiqua",Georgia,serif;
  color:#d2d2d3;
  font-size:14px;
  letter-spacing:.03em;
  line-height:1.5;
}
.lightbox__cap b{font-weight:700;display:block}
.lightbox__cap span{font-family:"Helvetica W01 Light","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300}
.lightbox__close{
  position:absolute;top:18px;right:24px;
  background:none;border:0;cursor:pointer;
  color:#fff;font-size:34px;line-height:1;
  opacity:.75;transition:opacity .18s;
  z-index:2;
}
.lightbox__close:hover{opacity:1}
.lightbox__nav{
  position:absolute;top:0;bottom:0;
  width:16%;min-width:64px;
  background:none;border:0;cursor:pointer;
  color:#fff;font-size:30px;
  display:flex;align-items:center;justify-content:center;
  opacity:.5;transition:opacity .18s;
}
.lightbox__nav:hover{opacity:1}
.lightbox__nav--prev{left:0;justify-content:flex-start;padding-left:14px}
.lightbox__nav--next{right:0;justify-content:flex-end;padding-right:14px}
@media (max-width:640px){
  .lightbox__nav{font-size:24px;min-width:48px;opacity:.7}
}

/* --- Pagina 404 --- */
.notfound{
  min-height:56vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:22px;padding:90px 20px 80px;
}
.notfound__frame{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;
  padding:38px 54px;
  overflow:hidden;
}
/* parentesi angolari tipo mirino / crop-marks */
.notfound__frame::before,
.notfound__frame::after{
  content:"";position:absolute;width:26px;height:26px;
  border:2px solid rgba(255,255,255,.55);
}
.notfound__frame::before{top:0;left:0;border-right:0;border-bottom:0}
.notfound__frame::after{bottom:0;right:0;border-left:0;border-top:0}
.notfound__reel{
  position:absolute;
  width:132px;height:132px;
  color:rgba(255,255,255,.07);
}
.notfound__code{
  position:relative;z-index:1;
  font-family:"Palatino Linotype","Palatino","Book Antiqua",Georgia,serif;
  font-weight:700;
  font-size:clamp(64px,14vw,120px);
  letter-spacing:.02em;
  color:#fff;line-height:1;
}
/* riga di scansione che passa sopra il "404" (come il glitch del video hero) */
.notfound__scan{
  position:absolute;left:0;right:0;height:2px;
  background:rgba(255,255,255,.5);
  top:0;
  mix-blend-mode:overlay;
  pointer-events:none;
}
.notfound__msg{
  font-family:"Palatino Linotype","Palatino","Book Antiqua",Georgia,serif;
  font-style:italic;
  font-size:15px;color:#c9c9c9;
}
.notfound__links{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;
  font-family:"Arian LT",Arial,sans-serif;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#7f7f7f;
}
.notfound__links a{color:#e2e2e2;transition:color .18s}
.notfound__links a:hover{color:#ff4242}
@media (prefers-reduced-motion:no-preference){
  .notfound__reel{animation:nf-spin 14s linear infinite}
  .notfound__scan{animation:nf-scan 3.4s cubic-bezier(.5,0,.5,1) infinite}
  .notfound__code{animation:nf-glitch 5s steps(1) infinite}
}
@keyframes nf-spin{to{transform:rotate(360deg)}}
@keyframes nf-scan{
  0%,100%{top:0;opacity:0}
  8%{opacity:.5}
  92%{opacity:.5}
  50%{top:100%}
}
@keyframes nf-glitch{
  0%,97%,100%{text-shadow:none;transform:none}
  97.5%{text-shadow:-2px 0 rgba(255,66,66,.8),2px 0 rgba(80,160,255,.8);transform:translateX(1px)}
  98.5%{text-shadow:2px 0 rgba(255,66,66,.8),-2px 0 rgba(80,160,255,.8);transform:translateX(-1px)}
}

/* ==========================================================================
   ANIMAZIONI — minimali, discrete, disattivate se l'utente preferisce
   ========================================================================== */
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}

  /* comparsa morbida all'apertura della pagina */
  .site-banner{animation:bm-fade .6s ease both}
  .site-header{animation:bm-rise .8s ease .06s both}
  .hero{animation:bm-rise .8s ease .18s both}

  /* reveal allo scroll (classe aggiunta da main.js) */
  .reveal{opacity:0;transform:translateY(18px);
    transition:opacity .7s ease,transform .7s cubic-bezier(.2,.6,.2,1)}
  .reveal.is-in{opacity:1;transform:none}
}
@keyframes bm-fade{from{opacity:0}to{opacity:1}}
@keyframes bm-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ==========================================================================
   RESPONSIVE (tablet / mobile)
   ========================================================================== */
@media (max-width:900px){
  .site-header{padding-top:30px}
  .hero,.films{padding-left:14px;padding-right:14px}
  .site-footer{margin-top:64px}
  .site-footer__inner{padding:46px 18px 40px}
}
@media (max-width:640px){
  /* MOBILE: menu centrato, poi mail e telefono AFFIANCATI sulla stessa riga */
  .site-nav{flex-direction:column;align-items:center;gap:12px;text-align:center}
  .site-nav__menu{justify-content:center;gap:22px}
  .site-nav__contact{
    display:flex;justify-content:center;align-items:baseline;
    gap:0;flex-wrap:nowrap;
  }
  .site-nav__contact a{
    display:inline;
    font-size:9px;letter-spacing:.06em;
  }
  .site-nav__tel::before{content:"·";margin:0 .8em;color:#666}
  .gallery{flex-direction:column;padding:16px 10px 0}
  .gallery.no-js{column-count:1}
  .gallery__col{gap:6px}
  /* su touch la didascalia resta visibile: niente hover */
  .tile .cap,.film .cap{opacity:1;background:rgba(0,0,0,.28)}
  .hero__play{width:50px;height:50px}
  .site-banner{letter-spacing:.12em}
  .cmodal__box{padding:44px 26px 34px}
  .cmodal__logo{width:130px}
  .cmodal__link{font-size:12px;letter-spacing:.02em}
}
