/* =========================================================
   UNPOSED · v2 — Immersive editorial
   Brand: Gros Ventre + Raleway · bordeaux / caffè / crema
   ========================================================= */
:root{
  --caffe:#2b2120; --bordeaux:#6b1f2e; --bordeaux-deep:#571825;
  --grigio:#c9cdc4; --beige:#efeae0; --beige-soft:#f6f3ec; --cream:#fbf9f5;
  --ink:#2b2120; --muted:#8a807c; --line:rgba(43,33,32,.12);
  --maxw:1200px; --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Raleway',system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:2px}
a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}
.skip-link{position:absolute;left:1rem;top:-4rem;z-index:300;background:var(--bordeaux);color:#fff;padding:.7rem 1.2rem;border-radius:3px;font-size:.85rem;font-weight:600;transition:top .25s var(--ease)}
.skip-link:focus{top:1rem}

.h-display{font-family:'Gros Ventre',serif;font-weight:400;font-size:clamp(2.2rem,5vw,4rem);line-height:1.05;color:var(--caffe)}
.eyebrow{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--bordeaux);font-weight:600;margin-bottom:1rem}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- NAV ---------- */
.nav{position:fixed;top:0;left:0;width:100%;z-index:120;display:flex;align-items:center;justify-content:space-between;
  padding:1.5rem clamp(1.2rem,4vw,3rem);transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease)}
.nav--solid{background:rgba(251,249,245,.94);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line);padding:.7rem clamp(1.2rem,4vw,3rem)}
.nav__logo{position:relative;display:block;height:46px;transition:height .4s var(--ease)}
.nav--solid .nav__logo{height:38px}
.nav__logo-img{height:100%;width:auto;display:block;transition:opacity .35s var(--ease)}
.nav__logo-img--color{position:absolute;top:0;left:0;opacity:0}
.nav--solid .nav__logo-img--color{opacity:1}
.nav--solid .nav__logo-img--cream{opacity:0}
.nav__burger{position:relative;width:40px;height:26px;background:none;border:0;cursor:pointer;z-index:200}
.nav__burger span{position:absolute;left:6px;right:6px;height:2px;background:#fff;transition:.4s var(--ease)}
.nav--solid .nav__burger span{background:var(--caffe)}
.nav__burger span:nth-child(1){top:8px}
.nav__burger span:nth-child(2){top:16px}
body.menu-open .nav__burger span{background:#fff}
body.menu-open .nav__burger span:nth-child(1){top:12px;transform:rotate(45deg)}
body.menu-open .nav__burger span:nth-child(2){top:12px;transform:rotate(-45deg)}

/* ---------- MENU FULLSCREEN ---------- */
body.menu-open .nav__logo{opacity:0;pointer-events:none}
.menu{position:fixed;inset:0;z-index:110;background:var(--caffe);color:var(--beige);
  display:grid;grid-template-columns:1.05fr .95fr;
  transform:translateY(-100%);transition:transform .6s var(--ease)}
body.menu-open .menu{transform:none}
.menu__panel{display:flex;flex-direction:column;justify-content:center;
  padding:clamp(4.5rem,9vw,7rem) clamp(2rem,6vw,5rem) clamp(2rem,4vw,3rem)}
.menu__label{font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;color:var(--grigio);margin-bottom:1.6rem;
  opacity:0;transition:opacity .5s var(--ease) .1s}
body.menu-open .menu__label{opacity:1}
.menu__nav{display:flex;flex-direction:column;gap:.2rem}
.menu__nav a{font-family:'Gros Ventre',serif;font-size:clamp(2.2rem,5.5vw,4.4rem);line-height:1.14;color:var(--beige);
  width:max-content;transition:color .3s var(--ease),transform .5s var(--ease),opacity .5s var(--ease);
  opacity:0;transform:translateY(20px)}
body.menu-open .menu__nav a{opacity:1;transform:none}
.menu__nav a:nth-child(1){transition-delay:.16s}.menu__nav a:nth-child(2){transition-delay:.22s}
.menu__nav a:nth-child(3){transition-delay:.28s}.menu__nav a:nth-child(4){transition-delay:.34s}.menu__nav a:nth-child(5){transition-delay:.40s}
.menu__nav a:hover{color:var(--bordeaux);padding-left:.4rem}
.menu__side{margin-top:auto;padding-top:2rem;font-size:.85rem;color:rgba(239,234,224,.6);display:flex;flex-direction:column;gap:.5rem;
  opacity:0;transition:opacity .6s var(--ease) .5s}
body.menu-open .menu__side{opacity:1}
.menu__social{display:flex;gap:1.4rem;margin-top:.2rem}
.menu__social a{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--beige)}
.menu__social a:hover{color:var(--grigio)}
.menu__media{position:relative;overflow:hidden;background:var(--bordeaux-deep)}
.menu__media img{width:100%;height:100%;object-fit:cover;object-position:center 30%;
  transform:scale(1.08);transition:transform 1s var(--ease);opacity:.92}
body.menu-open .menu__media img{transform:scale(1)}
.menu__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(43,33,32,.5),transparent 40%)}

/* ---------- HERO ---------- */
.hero{position:relative;height:100svh;min-height:560px;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}
.hero__slides{position:absolute;inset:0}
.hero__slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s var(--ease)}
.hero__slide.is-active{opacity:1;animation:kb 8s var(--ease) forwards}
@keyframes kb{from{transform:scale(1.06)}to{transform:scale(1)}}
.hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,33,32,.5),rgba(43,33,32,.25) 40%,rgba(43,33,32,.6));z-index:1}
.hero__content{position:relative;z-index:2;padding:0 1.5rem}
.hero__logo{width:min(600px,84vw);height:auto;margin:0 auto 1.6rem;filter:drop-shadow(0 4px 40px rgba(0,0,0,.45))}
.hero__tag{color:#fff;font-weight:300;font-size:clamp(1.05rem,2.4vw,1.5rem);letter-spacing:.02em;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.hero__cats{color:rgba(255,255,255,.85);font-weight:400;font-size:clamp(.68rem,1.3vw,.82rem);letter-spacing:.28em;text-transform:uppercase;margin-top:1.1rem;text-shadow:0 2px 16px rgba(0,0,0,.35)}
.hero__scroll{position:absolute;bottom:1.8rem;left:50%;transform:translateX(-50%);z-index:2;color:#fff;
  font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;display:flex;align-items:center;gap:.6rem}
.hero__scroll span{animation:bob 2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

/* ---------- MANIFESTO ---------- */
.manifesto{max-width:1000px;margin:0 auto;padding:clamp(5rem,14vw,10rem) 2rem;text-align:center}
.manifesto__eyebrow{font-size:.72rem;letter-spacing:.4em;text-transform:uppercase;color:var(--bordeaux);font-weight:600;margin-bottom:2rem}
.manifesto__text{font-family:'Gros Ventre',serif;font-weight:400;font-size:clamp(1.7rem,4vw,3.2rem);line-height:1.32;color:var(--caffe)}
.manifesto__text em{font-style:normal;color:var(--bordeaux)}

/* ---------- COLLEZIONI ---------- */
.collections__head{text-align:center;padding:0 2rem 3rem}
.collections__head .eyebrow{display:block}
.band{display:block;position:relative;width:100%;height:clamp(440px,78vh,880px);overflow:hidden;border:0;padding:0;cursor:pointer;background:var(--caffe)}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease);opacity:.9}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,33,32,.1),rgba(43,33,32,.15) 45%,rgba(43,33,32,.72));transition:background .5s}
.band:hover img{transform:scale(1.06)}
.band:hover::after{background:linear-gradient(180deg,rgba(43,33,32,.2),rgba(43,33,32,.3) 45%,rgba(43,33,32,.78))}
.band__inner{position:absolute;left:0;bottom:0;z-index:2;padding:clamp(1.6rem,5vw,4rem);text-align:left;color:var(--beige);display:flex;flex-direction:column;gap:.5rem;width:100%}
.band__meta{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--grigio);font-weight:600}
.band__title{font-family:'Gros Ventre',serif;font-size:clamp(2.6rem,7vw,5.5rem);line-height:1;color:#fff}
.band__more{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--beige);
  opacity:.85;transform:translateY(6px);transition:transform .4s var(--ease),letter-spacing .4s var(--ease)}
.band:hover .band__more{transform:none;letter-spacing:.24em}
.band--soon{cursor:default}
.band--soon .band__more{color:var(--grigio);opacity:.7}
.band--soon:hover img{transform:none}

/* ---------- CHI SONO ---------- */
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,6rem);align-items:center;
  max-width:1240px;margin:0 auto;padding:clamp(5rem,12vw,9rem) clamp(1.5rem,5vw,3rem)}
.about__media{position:relative;z-index:0}
.about__media::before{content:"";position:absolute;inset:0;transform:translate(20px,20px);border:1px solid var(--bordeaux);border-radius:3px;z-index:-1;transition:transform .5s var(--ease)}
.about__media:hover::before{transform:translate(12px,12px)}
.about__media img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 20%;border-radius:3px;position:relative;z-index:1;box-shadow:0 20px 55px rgba(43,33,32,.18)}
.about__text p{margin-bottom:1.1rem;color:#574e4a}
.about__text .h-display{margin-bottom:1.6rem}
.about__sign{font-family:'Gros Ventre',serif;font-size:1.7rem;color:var(--bordeaux);margin-top:1.4rem!important}

/* ---------- PORTFOLIO ---------- */
.portfolio{padding:clamp(5rem,12vw,9rem) clamp(1.2rem,4vw,3rem);background:var(--beige-soft)}
.portfolio__head{text-align:center;margin-bottom:2rem}
.portfolio__head .eyebrow{display:block}
.portfolio__sub{color:var(--muted);font-size:.92rem;margin-top:.4rem}
.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-bottom:2.6rem}
.filter{font-family:inherit;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  padding:.6rem 1.2rem;border:1px solid var(--line);border-radius:2rem;background:transparent;color:var(--muted);cursor:pointer;transition:.3s var(--ease)}
.filter:hover{color:var(--bordeaux);border-color:var(--bordeaux)}
.filter.is-active{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux)}
.grid{columns:4;column-gap:1rem;max-width:1400px;margin:0 auto}
.gcard{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;margin:0 0 1rem;break-inside:avoid;border-radius:3px;overflow:hidden;position:relative}
.gcard img{width:100%;display:block;transition:transform .7s var(--ease)}
.gcard::after{content:"";position:absolute;inset:0;background:rgba(43,33,32,0);transition:background .4s}
.gcard:hover img{transform:scale(1.06)}
.gcard:hover::after{background:rgba(43,33,32,.14)}
.gcard.is-hidden{display:none}

/* ---------- RECENSIONI ---------- */
.reviews{padding:clamp(5rem,12vw,9rem) 2rem}
.reviews__head{text-align:center;max-width:var(--maxw);margin:0 auto 3rem}
.reviews__head .eyebrow{display:block}
.reviews__grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.review{background:var(--cream);border-radius:4px;padding:2.2rem 2rem;box-shadow:0 6px 24px rgba(43,33,32,.06);display:flex;flex-direction:column;gap:1rem}
.stars{color:#c89b3c;letter-spacing:.15em}
.review blockquote{font-size:1.02rem;line-height:1.6;color:#574e4a;font-style:italic}
.review figcaption{font-weight:600;color:var(--bordeaux);font-size:.9rem}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin:0 auto;padding:clamp(4rem,10vw,7rem) 2rem}
.faq__head{text-align:center;margin-bottom:2.6rem}
.faq__head .eyebrow{display:block}
.faq__item{border-bottom:1px solid var(--line)}
.faq__item summary{cursor:pointer;list-style:none;padding:1.2rem .2rem;font-weight:600;color:var(--caffe);font-size:1.05rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";font-size:1.5rem;color:var(--bordeaux);transition:transform .3s var(--ease)}
.faq__item[open] summary::after{transform:rotate(45deg)}
.faq__item p{padding:0 .2rem 1.3rem;color:#6a615c}

/* ---------- CONTATTI ---------- */
.contact{background:var(--caffe);color:var(--beige);padding:clamp(5rem,12vw,9rem) clamp(1.5rem,5vw,3rem);
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.contact .eyebrow{color:var(--grigio)}
.contact .h-display{color:#fff;margin-bottom:1.2rem}
.contact__intro>p{color:rgba(239,234,224,.78);max-width:42ch}
.contact__list{list-style:none;margin:1.6rem 0}
.contact__list li{padding:1.1rem 0;border-bottom:1px solid rgba(239,234,224,.16);display:flex;flex-direction:column;gap:.25rem}
.contact__list li span{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--grigio)}
.contact__list li a{font-size:1.12rem;transition:color .3s}
.contact__list li a:hover{color:var(--grigio)}
.contact__social{display:flex;gap:1rem;margin-top:1.6rem;flex-wrap:wrap}
.contact__social a{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:.7rem 1.3rem;border:1px solid rgba(239,234,224,.3);border-radius:2px;transition:.35s}
.contact__social a:hover{background:var(--beige);color:var(--caffe);border-color:var(--beige)}
.contact__wa:hover{background:#25D366!important;border-color:#25D366!important;color:#fff!important}
.cform{background:rgba(255,255,255,.04);border:1px solid rgba(239,234,224,.14);border-radius:6px;padding:2rem;display:flex;flex-direction:column;gap:1.1rem}
.cform__2{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.cform label{display:flex;flex-direction:column;gap:.4rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--grigio);font-weight:600}
.cform input,.cform select,.cform textarea{font-family:inherit;font-size:1rem;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(239,234,224,.2);border-radius:3px;padding:.8rem .9rem;transition:border-color .3s;text-transform:none;letter-spacing:normal;font-weight:400}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--grigio)}
.cform select option{color:#2b2120}
.cform textarea{resize:vertical}
.cform__check{flex-direction:row!important;align-items:flex-start;gap:.6rem;text-transform:none!important;letter-spacing:normal!important;font-weight:400!important;font-size:.82rem!important;color:rgba(239,234,224,.7)!important}
.cform__check input{width:auto;margin-top:.2rem}
.btn{align-self:flex-start;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;padding:1rem 2.4rem;border-radius:2px;background:var(--bordeaux);color:#fff;border:0;cursor:pointer;transition:.35s var(--ease)}
.btn:hover{background:var(--bordeaux-deep);transform:translateY(-2px)}
.cform__status{font-size:.92rem}
.cform__status.ok{color:#9fd5a8}.cform__status.err{color:#e8a0a0}

/* ---------- FOOTER ---------- */
.footer{background:var(--bordeaux-deep);color:var(--beige);padding:3.5rem 2rem;text-align:center}
.footer__logo{height:54px;width:auto;margin:0 auto 1rem;opacity:.95}
.footer p{font-size:.85rem;color:rgba(239,234,224,.72)}
.footer__credit{margin-top:.5rem;font-size:.75rem;color:rgba(239,234,224,.5)}

/* ---------- VISORE FULLSCREEN ---------- */
.viewer{position:fixed;inset:0;z-index:1000;background:rgba(18,13,13,.97);display:none;align-items:center;justify-content:center;padding:2vw}
.viewer.open{display:flex}
.viewer__stage{max-width:94vw;max-height:90vh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.viewer__img{max-width:94vw;max-height:90vh;object-fit:contain;border-radius:2px;cursor:zoom-in;transition:transform .4s var(--ease);animation:vin .4s var(--ease)}
.viewer__img.zoomed{transform:scale(2);cursor:zoom-out}
@keyframes vin{from{opacity:0;transform:scale(.97)}to{opacity:1}}
.viewer__close,.viewer__nav{position:absolute;background:rgba(255,255,255,.12);border:0;color:#fff;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .3s}
.viewer__close:hover,.viewer__nav:hover{background:rgba(255,255,255,.28)}
.viewer__close{top:1.2rem;right:1.4rem;width:48px;height:48px;font-size:1.9rem}
.viewer__nav{top:50%;transform:translateY(-50%);width:56px;height:56px;font-size:2rem}
.viewer__prev{left:1.4rem}.viewer__next{right:1.4rem}
.viewer__count{position:absolute;top:1.6rem;left:1.6rem;color:rgba(255,255,255,.75);font-size:.85rem;letter-spacing:.15em}
body.no-scroll{overflow:hidden}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1000px){ .grid{columns:3} }
@media(max-width:900px){
  .about{grid-template-columns:1fr;max-width:480px}
  .contact{grid-template-columns:1fr}
  .reviews__grid{grid-template-columns:1fr;max-width:480px}
  .grid{columns:2}
}
@media(max-width:600px){
  .grid{columns:1}
  .cform__2{grid-template-columns:1fr}
  .band{height:64vh}
  .menu{grid-template-columns:1fr}
  .menu__panel{position:relative;z-index:1}
  .menu__media{position:absolute;inset:0;opacity:.18}
  .menu__media::after{background:linear-gradient(180deg,rgba(43,33,32,.35),rgba(43,33,32,.72))}
  .viewer__nav{width:44px;height:44px;font-size:1.6rem}
  .viewer__prev{left:.4rem}.viewer__next{right:.4rem}
}

/* ---------- RIDUZIONE MOVIMENTO ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .hero__slide{transition:opacity .5s linear}
  .hero__scroll span{animation:none}
}

/* ===== Pulsante WhatsApp fisso ===== */
.wa-fab{position:fixed;right:1.25rem;bottom:1.25rem;z-index:100;width:56px;height:56px;border-radius:50%;
  background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 22px rgba(0,0,0,.28);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.wa-fab:hover{transform:scale(1.08);box-shadow:0 10px 30px rgba(0,0,0,.34)}
.wa-fab svg{display:block}
@media (max-width:640px){.wa-fab{right:1rem;bottom:1rem;width:52px;height:52px}}

/* ===== "Mostra altre foto" (portfolio compatto, solo mobile) ===== */
.grid__more{display:block;margin:2.2rem auto 0;padding:.95rem 2.4rem;background:none;border:1px solid var(--bordeaux);
  color:var(--bordeaux);border-radius:3px;font-family:'Raleway',sans-serif;font-size:.76rem;letter-spacing:.24em;
  text-transform:uppercase;font-weight:600;cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease)}
.grid__more:hover{background:var(--bordeaux);color:#fff}
.grid__more[hidden]{display:none}
@media (min-width:769px){.grid__more{display:none!important}}
