:root{--black:#2e2e2e;--rosy:#987d7c;--silver:#cfc0b5;--tomato:#ee6c4d;--smoke:#f4f2ef;--ease:cubic-bezier(.455,.03,.515,.955);
--serif:"Gilda Display",Georgia,serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--smoke);color:var(--black);font-family:var(--sans);font-weight:300;font-size:18px;line-height:24px;-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto;vertical-align:middle}
a{color:var(--tomato);text-decoration:none}
button{font:inherit;color:inherit}
.skip{position:absolute;left:-999px;top:0;background:var(--black);color:var(--smoke);padding:8px 12px;z-index:10000}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--tomato);outline-offset:3px}
.container{max-width:1200px;margin:0 auto;padding:0 20px;position:relative}

/* sottolineatura animata (come nell'originale) */
.ul{position:relative;display:inline-block;transition:color .3s var(--ease)}
.ul::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;background:var(--black);transition:width .3s var(--ease)}
.ul:hover,.ul:focus-visible{color:var(--black)}
.ul:hover::after,.ul:focus-visible::after{width:100%}
.on-dark::after{background:var(--smoke)}
.on-dark:hover{color:var(--smoke)}

/* testata */
.header{display:flex;justify-content:space-between;flex-wrap:nowrap}
.header-text{width:100%;padding-right:30px}
.header-image{min-width:380px}
.header-photo{width:380px;min-width:380px;height:560px;object-fit:cover;object-position:top;display:block}
.navbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-top:30px;width:100%}
.menu-link{margin-right:20px;font-size:16px;line-height:16px;font-weight:300}
.menu-link.current{color:var(--rosy);font-weight:700}
.menu-link:not(.current){color:var(--tomato)}
.social{display:flex;gap:12px;align-items:center}
.icon-link{display:inline-block;line-height:0}
.icon-link img{width:30px;height:30px}
.nicola-niclass{font-family:var(--serif);font-size:72px;line-height:72px;margin-top:90px}
.catchline{color:var(--rosy);font-size:24px;line-height:29px;margin-top:10px}
.pen-line{display:block;opacity:.8;mix-blend-mode:multiply;width:200px;margin:30px 0}
.text-header{max-width:600px;margin:0 0 30px}
.link-line{margin:0 0 30px}
.page-link{font-size:18px;line-height:24px}

/* riquadri */
.findme{margin:40px 0 0}
.findme-title{margin:0 0 12px;font-size:16px;color:var(--rosy)}
.findme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.findme-link{display:flex;flex-direction:column;align-items:center;gap:8px;background:#fff;border:1px solid var(--silver);border-radius:5px;padding:12px 14px;min-width:0;transition:border-color .3s var(--ease),transform .3s var(--ease)}
.findme-link:hover{border-color:var(--tomato);transform:translateY(-2px)}
.findme-logo{display:block;width:100%;height:56px}
.findme-logo img{width:100%;height:100%;object-fit:contain;display:block}
.findme-logo.crop img{object-fit:cover;object-position:top}
.findme-label{font-size:13px;line-height:17px;color:var(--rosy);text-align:center;overflow-wrap:anywhere}
.findme-link:hover .findme-label{color:var(--black)}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:24px 0 30px}
.tile{position:relative;aspect-ratio:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;text-align:left;
 background:var(--black);color:var(--smoke);border:0;border-radius:5px;padding:20px;cursor:pointer;overflow:hidden;
 transition:transform .3s var(--ease),background-color .3s var(--ease),box-shadow .3s var(--ease)}
.tile svg{position:absolute;top:20px;left:20px;width:38px;height:38px;fill:none;stroke:var(--silver);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s,transform .3s var(--ease)}
.tile-title{font-family:var(--serif);font-size:28px;line-height:30px;font-weight:400}
.tile-count{margin-top:6px;font-size:14px;line-height:18px;color:var(--silver)}
.tile-line{position:absolute;left:20px;right:20px;bottom:10px;height:1px;background:var(--tomato);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
@media (hover:hover){
.tile:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(46,46,46,.18)}
.tile:hover .tile-line{transform:scaleX(1)}
.tile:hover svg{transform:scale(1.08)}
}
.tile:focus-visible{transform:translateY(-4px);box-shadow:0 10px 24px rgba(46,46,46,.18)}
.tile:focus-visible .tile-line{transform:scaleX(1)}
.tile[aria-expanded="true"]{background:var(--tomato)}
.tile[aria-expanded="true"] svg{stroke:var(--smoke)}
.tile[aria-expanded="true"] .tile-count{color:var(--smoke)}
.tile[aria-expanded="true"] .tile-line{background:var(--smoke);transform:scaleX(1)}

/* pannelli a comparsa */
.panel{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .5s var(--ease),visibility 0s .5s}
.panel.open{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .5s var(--ease)}
.no-js .panel{grid-template-rows:1fr;visibility:visible}
.panel-clip{overflow:hidden;min-height:0}
.panel-in{padding:10px 0 30px}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.h1{font-family:var(--serif);font-weight:400;font-size:48px;line-height:48px;margin:0 0 30px;padding-top:30px}
.panel-close{background:none;border:1px solid var(--silver);border-radius:50%;width:40px;height:40px;margin-top:34px;font-size:24px;line-height:1;color:var(--rosy);cursor:pointer;flex:none;transition:all .3s var(--ease)}
.panel-close:hover{background:var(--black);border-color:var(--black);color:var(--smoke)}
.no-js .panel-close,.no-js .panel-foot{display:none}
.panel-foot{text-align:center;margin-top:60px}
.panel-close-bottom{background:none;border:0;padding:0;color:var(--tomato);font-size:16px;cursor:pointer}

/* libri */
.book-grid{display:grid;grid-template-columns:repeat(4,1fr);column-gap:24px;margin-top:30px}
.book{margin-bottom:34px}
.book-toggle{position:relative;display:block;width:100%;background:none;border:0;padding:0;cursor:pointer;text-align:center}
.book-cover{display:block;overflow:hidden;aspect-ratio:4/3}
.book-img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .5s var(--ease)}
.book-toggle:hover .book-img,.book-toggle:focus-visible .book-img{transform:scale(1.06)}
/* copertine "piatte": l'ombra la disegna il sito */
.book-cover.flat{overflow:visible;padding:12px 0 18px}
.flat .book-img{filter:drop-shadow(0 10px 14px rgba(46,46,46,.28))}
.book-detail-cover.flat{aspect-ratio:auto;overflow:visible}
.book-detail-cover.flat .book-img{height:auto;object-fit:contain}
.book-name{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-top:10px;font-family:var(--serif);font-weight:400;font-size:18px;line-height:23px}
.book-more{display:inline-block;margin-top:8px;color:var(--tomato);font-size:14px;line-height:18px}
.book-toggle:hover .book-more{color:var(--black)}
.book-toggle:hover .book-more::after{width:100%}
.t-close{display:none}
.book-toggle[aria-expanded="true"] .t-open{display:none}
.book-toggle[aria-expanded="true"] .t-close{display:inline}
.badge{position:absolute;z-index:3;top:0;left:50%;transform:translate(30px,-10px) rotate(30deg);width:80px;height:80px;border-radius:50%;
 background:var(--tomato);color:var(--smoke);display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;line-height:18px;font-weight:400}
.book-detail{grid-column:1/-1;display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .45s var(--ease),visibility 0s .45s}
.book-detail.open{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .45s var(--ease)}
.no-js .book-detail{grid-template-rows:1fr;visibility:visible}
.book-detail-clip{overflow:hidden;min-height:0}
.book-detail-in{padding:0 0 50px}
.rule{height:1px;background:var(--rosy)}
.book-detail-body{display:flex;gap:44px;padding:30px 0}
.book-detail-cover{width:36%;flex:none;align-self:flex-start;position:sticky;top:20px}
.book-detail-cover{aspect-ratio:5/8;overflow:hidden}
.book-detail-cover .book-img{width:100%;height:100%;object-fit:cover;object-position:center}
.book-info{flex:1;min-width:0}
.book-title{font-family:var(--serif);font-weight:400;font-size:32px;line-height:32px;margin:0 0 10px}
.book-subtitle{color:var(--rosy);font-size:24px;line-height:32px;padding-bottom:30px}
.book-h2{font-family:var(--serif);font-weight:400;font-size:24px;line-height:32px;margin:0 0 10px}
.book-presentation{font-size:14px;line-height:20px;font-style:italic;padding-bottom:30px}
.book-details-cols{display:flex;gap:30px;padding-bottom:40px}
.book-details{width:50%;font-size:14px;line-height:20px}
.bold{font-weight:700}
.book-cta{text-align:center}
.call-to-action{font-size:24px;line-height:32px;font-weight:500}

/* eventi */
.events{display:flex;flex-wrap:wrap;gap:30px;margin-bottom:30px}
.event-card{flex:1 1 40%;max-width:calc(50% - 15px);background:var(--black);border-radius:5px;padding:30px;color:var(--smoke)}
.event-date{color:var(--rosy);font-size:24px;line-height:24px;margin-bottom:20px}
.event-title{font-family:var(--serif);font-size:32px;line-height:32px;margin-bottom:10px}
.event-description p{margin:0 0 20px}
.no-events{max-width:600px}

/* testi lunghi */
.h2{color:var(--rosy);font-family:var(--serif);font-weight:400;font-size:32px;line-height:38px;margin:60px 0 30px}
.h3{color:var(--rosy);font-weight:500;font-size:24px;line-height:28px;margin:60px 0 20px;padding-left:20px}
.text-about,.text-presse{text-align:justify;padding-left:20px}
.text-about p,.text-presse p{margin:0 0 24px}
.text-about .legend{color:var(--rosy);font-style:italic;padding:0 100px 4px}
.italic{color:var(--rosy);font-style:italic}
.text-presse{column-count:2;column-gap:40px;column-rule:1px solid var(--silver)}
.presse-legend{margin:-20px 0 20px;font-family:var(--serif);font-style:italic;font-size:18px}
.press-item .h2{margin-top:90px}
.press-item:first-child .h2{margin-top:30px}
.presse-h3{margin-top:40px}
.about .h2:first-child{margin-top:20px}
.diplome{margin:60px 0 0;text-align:center}
.diplome img{max-width:100%}
.signature-container{text-align:center;margin-top:60px}
.signature{width:300px}

/* altri siti */
.links-grid{display:flex;flex-wrap:wrap;gap:30px 60px;align-items:flex-start}
.link-block{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:260px}
.collectif-image{width:200px;max-width:100%;margin-bottom:12px}

/* pie di pagina */
.footer{background:var(--black);color:var(--smoke);margin-top:60px;padding:60px 0}
.footer-in{display:flex;gap:20px;align-items:flex-end}
.footer-left,.footer-middle,.footer-right{width:33.333%}
.footer-left{display:flex;flex-direction:column}
.footer-name{font-family:var(--serif);font-size:32px;line-height:32px;margin-bottom:10px}
.footer-info{color:var(--smoke);line-height:24px;font-size:16px;width:max-content}
.footer-middle{text-align:center;font-family:var(--serif);font-size:16px}
.footer-right{text-align:right}
.footer a{color:var(--smoke)}
.footer .menu-link{margin:0 0 0 20px;color:var(--tomato)}
.footer .menu-link.current{color:var(--smoke)}
.footer .ul::after{background:var(--smoke)}

/* torna su */
.to-top{position:fixed;right:20px;bottom:30px;z-index:50;width:50px;height:50px;border-radius:50%;background:var(--tomato);color:var(--smoke);overflow:hidden;
 display:flex;flex-direction:column;align-items:center;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .3s,transform .3s,visibility .3s}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top svg{flex:none;width:22px;height:22px;margin-top:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:margin .3s var(--ease)}
.to-top span{font-family:var(--serif);font-size:11px;line-height:12px;text-transform:uppercase;text-align:center;margin-top:14px;padding:0 4px}
.to-top:hover svg{margin-top:-30px}

@media (max-width:991px){
 .header{flex-wrap:wrap;margin-bottom:30px}
 .header-text{padding-right:10px}
 .header-image{min-width:250px}
 .header-photo{width:250px;min-width:250px;height:auto}
 .navbar{flex-wrap:wrap}
 .langues{margin-bottom:30px}
 .book-grid{grid-template-columns:repeat(3,1fr)}
 .book-detail-body{padding:30px 10px;flex-direction:column;gap:24px}
 .book-detail-cover{width:min(70%,320px);position:static;align-self:center}
 .event-card{max-width:100%;flex-basis:100%}
 .text-presse{column-count:1}
 .text-about,.text-presse{padding-right:20px}
 .text-about .legend{padding:0 40px 4px}
 .footer-in{flex-wrap:wrap}.footer-left,.footer-right{width:calc(50% - 10px)}.footer-middle{order:3;width:100%;margin-top:40px;text-align:center}
}
@media (max-width:767px){
 .findme-grid{grid-template-columns:repeat(2,1fr);gap:12px}
 .header-image{min-width:100%;margin-top:40px;text-align:center}
 .header-photo{width:100%;max-width:420px}
 .nicola-niclass{font-size:64px;line-height:64px;margin-top:50px}
 .tiles{grid-template-columns:repeat(2,1fr);gap:14px}
 .tile-title{font-size:24px;line-height:26px}
 .book-grid{grid-template-columns:repeat(2,1fr);column-gap:14px}
 .book-name{font-size:16px;line-height:21px}
 .badge{width:64px;height:64px;font-size:10px;line-height:14px;transform:translate(10px,-8px) rotate(30deg)}
 .book-details-cols{flex-direction:column;gap:10px}.book-details{width:100%}
 .book-title{font-size:26px;line-height:28px}
 .call-to-action{font-size:20px}
 .h1{font-size:40px;line-height:42px}
 .footer-in{padding:0 20px}
}
@media (max-width:479px){
 .container{padding:0 15px}
 body{font-size:16px}
 .text-header{text-align:justify;font-size:14px;line-height:20px}
 .nicola-niclass{font-size:52px;line-height:54px}
 .tile{padding:14px}.tile svg{top:14px;left:14px;width:30px;height:30px}.tile-line{left:14px;right:14px}
 .book-more{font-size:13px}
 .signature{width:200px}
 .text-about .legend{padding:0 10px 4px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
