/* Direzione finale: una rivista digitale luminosa, calma e leggibile. */
:root { --ink:#27221f; --paper:#fbfaf7; --orange:#ef5642; --acid:#e8ddd1; --line:rgba(39,34,31,.15); }
body { background:var(--paper); color:var(--ink); }
main { overflow:hidden; }
.partners h2 em { color:var(--orange); }
.clients-count { margin:46px 0 0; font-size:18px; font-weight:900; letter-spacing:.12em; }
.clients-count span { color:var(--orange); }
.partners-description { max-width:520px; color:#625a54; }
.partners-description p { max-width:none; margin:0; line-height:1.5; }
.partners-description p + p { margin-top:17px; }
.contact { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.78fr); grid-template-areas:"copy photo"; column-gap:clamp(45px,8vw,130px); align-items:start; min-height:0; padding-bottom:96px; }
.contact-copy { grid-area:copy; }
.contact-photo { grid-area:photo; justify-self:stretch; display:block; width:100%; height:auto; }
.contact-direct { display:grid; gap:9px; margin:48px 0 0; text-align:left; font:500 clamp(25px,3vw,46px)/1 "Playfair Display",serif; letter-spacing:-.045em; }
.contact-direct small { color:#625a54; font:700 10px var(--futura); letter-spacing:.09em; text-transform:uppercase; }
.contact-direct a { justify-self:start; color:var(--ink); border-bottom:2px solid var(--orange); }
.contact-social { display:flex; gap:38px; margin-top:36px; }
.contact-social a { display:inline-flex; align-items:center; justify-content:center; color:var(--ink); transition:color .2s,transform .2s; }
.contact-social .social-icon { width:84px; height:84px; }
.contact-social a:hover { color:var(--orange); transform:translateY(-3px); }
.back-to-top { position:fixed; right:26px; bottom:26px; z-index:10; width:52px; height:52px; border:0; border-radius:50%; background:var(--orange); color:var(--paper); font:400 29px/1 var(--futura); cursor:pointer; opacity:0; pointer-events:none; transform:translateY(12px); transition:opacity .25s ease,transform .25s ease,background .2s ease; }
.back-to-top.visible { opacity:1; pointer-events:auto; transform:translateY(0); }
.back-to-top:hover { background:var(--ink); }
@media(max-width:700px) { .contact { display:block; } .contact-photo { width:100%; height:auto; margin-top:35px; } .contact-direct { margin-top:28px; } }
.service-tab-copy { display:grid; gap:5px; text-align:left; }
.service-tab .service-tab-copy { font:inherit; letter-spacing:normal; }
.service-tab-copy b { font:600 22px/1 var(--futura); letter-spacing:-.035em; }
.service-tab-copy small { color:#756d66; font:500 11px/1.25 var(--futura); letter-spacing:.03em; }
.service-tab.active .service-tab-copy small { color:#625a54; }
.service-list article { grid-template-columns:55px 1fr; }
.principles-title-row { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin:42px 0 60px; }
.principles-title-row h2 { margin:0; font-size:clamp(46px,5.4vw,82px); line-height:.98; }
.principles-title-row h2 em { color:var(--orange); }
.principles-action { display:flex; justify-content:flex-end; margin-top:28px; }
.case-study-link { flex:0 0 auto; display:inline-flex; align-items:center; background:var(--orange); color:var(--paper); padding:14px 18px; font:700 11px var(--futura); letter-spacing:.08em; text-transform:uppercase; transition:background .2s,transform .2s; }
.case-study-link:hover { background:var(--ink); transform:translateY(-2px); }
@media(max-width:700px) { .principles-title-row { display:block; margin:32px 0 40px; } .principles-action { justify-content:flex-start; margin-top:24px; } }
.photo-marquee { overflow:hidden; padding:20px 0; background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.photo-marquee-label { margin:0 5vw 14px; }
.photo-track { display:flex; gap:6px; width:max-content; animation:photo-marquee 480s linear infinite; }
.photo-track figure { flex:0 0 390px; height:285px; margin:0; overflow:hidden; }
.photo-track img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s cubic-bezier(.2,.75,.2,1); }
.photo-track figure.portrait img { object-position:center 25%; }
.photo-track figure:hover img { transform:scale(1.08); }
.photo-track figure { cursor:zoom-in; }
.photo-marquee:hover .photo-track { animation-play-state:paused; }
@keyframes photo-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media(max-width:700px) { .photo-marquee { padding:14px 0; } .photo-marquee-label { margin:0 6vw 12px; } .photo-track { gap:5px; } .photo-track figure { flex-basis:275px; height:200px; } }
@media(prefers-reduced-motion:reduce) { .photo-track { animation:none; } }
.photo-lightbox { width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:48px 6vw; border:0; background:rgba(20,17,15,.94); }
.photo-lightbox[open] { display:grid; place-items:center; }
.photo-lightbox::backdrop { background:rgba(20,17,15,.94); }
.photo-lightbox img { display:block; width:auto; max-width:100%; height:auto; max-height:calc(100dvh - 96px); object-fit:contain; }
.photo-lightbox-close { position:fixed; top:22px; right:28px; width:44px; height:44px; border:1px solid rgba(255,255,255,.7); border-radius:50%; background:transparent; color:#fff; font:300 34px/1 var(--futura); cursor:pointer; }
.photo-lightbox-close:hover { background:var(--orange); border-color:var(--orange); }
.video-manifesto:before { display:none; }
.newsletter-image { display:block; }
.nav-cta { display:inline-flex; align-items:center; background:var(--orange) !important; color:var(--paper); }
.nav-cta:hover { background:var(--ink) !important; color:var(--paper); }
.content-section .newsletter-copy { max-width:1120px; }
.newsletter-text-columns { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,6vw,95px); max-width:1050px; }
.newsletter-text-columns p { margin:0; color:#5b534d; font-size:16px; line-height:1.58; }
.newsletter-text-columns strong { color:var(--ink); }
.newsletter-subscribe { margin-top:38px; text-align:center; }
.newsletter-subscribe a { display:inline-block; background:var(--orange); color:var(--paper); padding:15px 24px; font:700 12px/1.25 var(--futura); letter-spacing:.06em; text-transform:uppercase; transition:background .2s,transform .2s; }
.newsletter-subscribe a:hover { background:var(--ink); transform:translateY(-2px); }
.newsletter-links { justify-content:center; gap:38px !important; margin-top:42px !important; }
.newsletter-links a { width:90px !important; height:90px !important; }
.newsletter-links a .social-icon { width:72px !important; height:72px !important; }
@media(max-width:700px) { .newsletter-text-columns { grid-template-columns:1fr; gap:18px; } }
.section-index { font-size:11px; letter-spacing:.11em; color:#8c837c; }
.site-header { position:absolute; height:92px; padding:0 5vw; background:transparent; }
.brand-logo img { width:158px; max-height:56px; }
.main-nav { font-size:14px; letter-spacing:.025em; }
.main-nav>a:not(.nav-cta):hover { color:var(--orange); }
.nav-cta { border:0; margin-left:5px; padding:11px 16px; color:var(--paper); background:var(--ink); }
.nav-cta i { color:var(--paper); }
.hero { min-height:780px; grid-template-columns:54% 46%; background:var(--paper); position:relative; }
.hero:after { content:""; position:absolute; top:92px; bottom:0; left:54%; width:1px; background:var(--line); pointer-events:none; }
.hero-copy { padding:185px 5vw 105px; }
.hero .eyebrow { color:#716a64; }
.hero .eyebrow:before { color:var(--orange); }
.hero h1 { font-size:clamp(58px,7vw,108px); line-height:.92; letter-spacing:-.07em; margin:29px 0 31px; }
.hero h1 em { color:var(--orange); }
.hero h1 .hero-accent { color:var(--orange); }
.hero .intro { max-width:405px; color:#514b46; font-size:18px; }
.hero .intro em { color:var(--orange); }
.hero .text-link { border-color:var(--orange); color:var(--ink); }
.hero .text-link span { color:var(--orange); }
.brand-symbol { width:90px; margin-top:26px; opacity:.85; }
.hero-visual { margin:122px 5vw 78px 0; border-radius:0; background-image:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.06)),url("assets/portfolio/hero-laura.jpg?v=3"); background-position:center center; filter:saturate(.82); }
.image-credit { right:18px; bottom:23px; color:var(--paper); }
.hero-stamp { display:none; }
.hero-bottom { width:auto; right:5vw; bottom:23px; padding:0; border:0; color:#776f69; mix-blend-mode:normal; background:transparent; font-size:9px; }
.hero-bottom span:first-child { display:none; }
.hero-bottom span:nth-child(2) { display:block; }
.section { padding:120px 5vw; }
.about { background:var(--paper); color:var(--ink); border-top:1px solid var(--line); }
.about-main { padding-top:42px; grid-template-columns:1.2fr .8fr; gap:10vw; }
.about h2,.services h2,.partners h2 { font-size:clamp(46px,5.4vw,82px); }
.about h2 em { color:var(--orange); }
.about-text { color:#5a534d; font-size:17px; }
.about-text .text-link { border-color:var(--orange); color:var(--ink); }
.manifesto { margin-top:90px; padding-top:17px; color:var(--ink); font-size:clamp(20px,3.1vw,46px); letter-spacing:-.08em; }
.manifesto span:nth-child(2) { color:#9d958e; }.manifesto span:nth-child(3) { color:var(--orange); }
.portfolio-notes { background:#fff; color:var(--ink); border-top:1px solid var(--line); }
.portfolio-notes-head { display:grid; grid-template-columns:1.3fr .7fr; align-items:end; gap:8vw; margin:43px 0 58px; }
.portfolio-notes h2 { margin:0; font-size:clamp(46px,5.4vw,82px); line-height:.96; }.portfolio-notes h2 em { color:var(--orange); }
.portfolio-notes-head > p { margin:0; max-width:310px; color:#625a54; font-size:17px; line-height:1.5; }
.portfolio-notes-grid { display:grid; grid-template-columns:1.25fr .75fr .75fr; gap:18px; align-items:start; }
.portfolio-notes figure { margin:0; }.portfolio-notes img { display:block; width:100%; aspect-ratio:.72; object-fit:cover; filter:saturate(.88); }.portfolio-notes .portfolio-feature img { aspect-ratio:1.4; object-position:center; filter:grayscale(1) contrast(1.05); }
.portfolio-notes figcaption { padding-top:12px; color:#514a44; font:500 14px var(--futura); letter-spacing:.01em; }.portfolio-notes figcaption span { color:var(--orange); font-size:11px; margin-right:9px; }
.video-manifesto { background:#f3eee8; grid-template-columns:.95fr 1.05fr; gap:9vw; align-items:center; position:relative; }
.video-manifesto:before { content:"MANIFESTO / 01"; position:absolute; right:5vw; top:28px; color:#a0958d; font:500 10px var(--futura); letter-spacing:.1em; }
.video-manifesto .section-index { color:#716a64; }
.video-manifesto h2 { font-size:clamp(46px,5.5vw,82px); margin:43px 0 23px; }.video-manifesto h2 em { color:var(--orange); }
.video-manifesto-copy > p:not(.section-index) { color:#5a534d; font-size:17px; }
.video-manifesto .text-link { border-color:var(--orange); }
.reel-wrap { width:min(100%,460px); justify-self:center; aspect-ratio:.72; border-radius:0; box-shadow:0 18px 44px rgba(39,34,31,.12); clip-path:none; }
.reel-link-label { background:var(--paper); border-radius:99px; }
.services { background:var(--paper); grid-template-columns:37% 63%; gap:7vw; position:relative; }
.services:before { content:""; position:absolute; top:0; left:5vw; right:5vw; height:1px; background:var(--line); }
.services-heading h2 { margin-top:42px; }.services-heading h2 em { color:var(--orange); }
.service-tabs { margin-top:58px; }.service-tab { font-size:18px; color:var(--ink); }.service-tab .service-tab-copy b { color:inherit; }.service-tab.active { color:var(--orange); padding-left:0; }.service-tab.active:before { content:""; width:6px; height:6px; border-radius:50%; background:var(--orange); position:absolute; margin-left:-16px; }.service-tab i { color:var(--orange); }
.service-panels { padding-top:45px; }.panel-intro { color:#453e39; font-size:20px; }.service-list article { padding:25px 0; }.service-list h3 { font-size:30px; }.service-list p { color:#635b54; }.service-list b { color:var(--orange); }
.principles { background:#fff; color:var(--ink); border-top:1px solid var(--line); }.principles > h2 { font-size:clamp(46px,5.4vw,82px); margin:42px 0 60px; }.principles > h2 em { color:var(--orange); }.principles-grid { gap:16px; border:0; perspective:1200px; }.principles-grid article { background:#f5f1ec; border:0; margin:0; min-height:240px; padding:28px; position:relative; transform:translateZ(0); transform-origin:center bottom; transition:transform .42s cubic-bezier(.2,.75,.2,1), box-shadow .42s ease, background-color .32s ease; will-change:transform; }.principles-grid article:hover { background:#fff; box-shadow:0 24px 38px rgba(39,34,31,.16); transform:translateY(-14px) translateZ(42px) rotateX(2deg) scale(1.035); z-index:1; }.principles-grid article:first-child { border-radius:18px 0 0 18px; }.principles-grid article:last-child { border-radius:0 18px 18px 0; }.principles-grid p { color:var(--orange); margin-bottom:62px; }.principles-grid span { color:#5b544e; }
.content-section { background:var(--paper); color:var(--ink); }.newsletter-feature { display:block; margin-top:48px; }.newsletter-image { aspect-ratio:3 / 1; background:var(--orange); overflow:hidden; }.newsletter-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }.newsletter-copy { max-width:720px; padding:43px 0 0; }.newsletter-kicker { margin:0 0 22px; color:var(--orange); font:500 11px var(--futura); letter-spacing:.09em; text-transform:uppercase; }.newsletter-copy h2 { font-size:clamp(44px,4.6vw,70px); line-height:.91; margin:0 0 24px; }.newsletter-copy h2 em { color:var(--orange); }.newsletter-copy > p:not(.newsletter-kicker) { max-width:650px; margin:0; color:#5b534d; font-size:16px; line-height:1.55; }.newsletter-links { display:flex; gap:15px; margin-top:26px; }.newsletter-links a { display:inline-flex; align-items:center; justify-content:center; width:25px; height:25px; color:var(--ink); transition:color .2s ease,transform .2s ease; }.newsletter-links a .social-icon { width:18px; height:18px; }.newsletter-links a:hover { color:var(--orange); transform:translateY(-2px); }.content-grid { gap:28px; margin-top:48px; }.newsletter-grid { grid-template-columns:1fr; }.content-card { height:490px; border-radius:14px; }.content-card:before { background:linear-gradient(0deg,rgba(24,20,17,.68),rgba(24,20,17,.04)); }.content-card h2 { font-size:48px; }.content-card i { color:var(--paper); }.social-row { margin-top:0; padding:30px 0; gap:24px; font-family:var(--futura); border-color:var(--line); }.social-row a { color:#5f5751; }.social-row a:hover { color:var(--orange); }.social-row a span { color:#918780; }
.reading { background-image:url("assets/portfolio/ritratto-vino.jpg"); background-position:center; }.watching { background-image:url("assets/portfolio/talk-colore.jpg"); background-position:center; }
.social-icon { width:28px; height:28px; flex:0 0 28px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }.social-row a { display:inline-flex; align-items:center; gap:10px; }.footer-icon { display:inline-flex; align-items:center; justify-content:center; }.footer-icon .social-icon { width:42px; height:42px; }
.partners { background:#fff; color:var(--ink); border-top:1px solid var(--line); padding-top:78px; padding-bottom:78px; overflow:hidden; }.partners-head { margin:28px 0 34px; align-items:start; }.partners h2 { font-size:clamp(38px,4.3vw,64px); }.partners-head p { color:#625a54; }.logo-grid { display:block; width:calc(100% + 10vw); margin-left:-5vw; border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; }.logo-track { display:flex; width:max-content; animation:logo-marquee 120s linear infinite; }.logo-grid:hover .logo-track { animation-play-state:paused; }.logo-card { flex:0 0 164px; height:78px; background:#fff; border:0; border-right:1px solid var(--line); padding:12px; }.logo-card img { mix-blend-mode:multiply; filter:saturate(.78); max-width:78%; max-height:42px; }.logo-card:nth-child(4n),.logo-card:nth-child(6n) { border-right:1px solid var(--line); }@keyframes logo-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }@media (prefers-reduced-motion:reduce) { .logo-track { animation:none; } }
.contact { background:#f3eee8; color:var(--ink); min-height:485px; padding:105px 5vw; }.contact h2 { font-size:clamp(54px,6.7vw,104px); line-height:.9; max-width:850px; }.contact h2 em { color:var(--orange); }.contact .eyebrow { color:#716a64; }.contact .eyebrow:before { color:var(--orange); }.round-link { width:136px; height:136px; background:var(--orange); border:0; color:var(--paper); right:8vw; bottom:78px; }.round-link:hover { background:var(--ink); color:var(--paper); }
footer { background:var(--paper); color:#675f59; padding:30px 5vw; border-top:1px solid var(--line); }footer .brand-logo img { width:135px; }footer a:hover { color:var(--orange); }
.footer-details { display:block; margin-right:auto; padding-left:34px; }
.footer-details p { margin:0; font:500 10px/1.45 var(--futura); letter-spacing:.04em; }
.footer-legal { display:flex; gap:16px; margin-top:8px; font:500 10px/1 var(--futura); text-transform:uppercase; letter-spacing:.08em; }
.footer-legal a { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:700px){
  .site-header { height:70px; padding:0 6vw; background:rgba(251,250,247,.94); border-bottom:1px solid var(--line); position:fixed; backdrop-filter:blur(8px); }
  .menu-toggle { color:var(--ink); font-family:var(--futura); }.main-nav { top:70px; background:transparent; width:100%; padding:24px 6vw; }
  .hero { min-height:auto; grid-template-columns:1fr; padding-top:70px; }.hero-copy { min-height:550px; padding:105px 6vw 58px; }.hero h1 { font-size:60px; }.hero-visual { height:470px; margin:0 6vw 36px; border-radius:0; }.hero-bottom { display:none; }
  .hero:after { display:none; }
  .section { padding:84px 6vw; }.about-main,.video-manifesto,.services { grid-template-columns:1fr; gap:35px; }.about-main { padding-top:33px; }.manifesto { margin-top:60px; }.video-manifesto:before { right:6vw; top:20px; }.video-manifesto h2 { margin-top:32px; }.reel-wrap { width:min(100%,370px); }.service-tabs { margin-top:38px; }.service-panels { padding-top:28px; }.service-tab.active:before { display:none; }.principles-grid { grid-template-columns:1fr; gap:1px; }.principles-grid article,.principles-grid article:first-child,.principles-grid article:last-child { border-radius:0; min-height:auto; }.principles-grid p { margin-bottom:20px; }.newsletter-feature { margin-top:32px; }.newsletter-image { min-height:0; aspect-ratio:3 / 1; }.newsletter-copy { padding:32px 0 0; }.newsletter-copy h2 { font-size:48px; }.content-grid { grid-template-columns:1fr; gap:16px; }.content-card { height:400px; }.social-row { grid-template-columns:1fr; gap:15px; }.social-row p { grid-column:auto; }.social-row a span { display:inline; }.logo-card { height:112px; }.contact { min-height:470px; padding:84px 6vw; }.contact h2 { font-size:54px; }.round-link { width:115px; height:115px; right:6vw; bottom:55px; }footer { padding:26px 6vw; grid-template-columns:1fr; }footer p,footer div { grid-row:auto; }.footer-details { padding:0; margin:0; }.footer-legal { margin-top:10px; }
  .portfolio-notes-head { grid-template-columns:1fr; gap:20px; margin:32px 0 38px; }.portfolio-notes-grid { grid-template-columns:1fr 1fr; gap:14px; }.portfolio-notes .portfolio-feature { grid-column:1 / -1; }.portfolio-notes .portfolio-feature img { aspect-ratio:1.2; }.portfolio-notes img { aspect-ratio:.82; }.partners { padding-top:62px; padding-bottom:62px; }.logo-grid { width:calc(100% + 12vw); margin-left:-6vw; }.logo-card { flex-basis:128px; height:68px; padding:10px; }
  .main-nav { left:auto; right:0; width:min(270px,82vw); align-items:flex-end; text-align:right; box-shadow:none; }
  .main-nav .nav-cta { align-self:flex-end; }
  .site-header.menu-open { background:transparent; border-bottom-color:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .main-nav.open { background:transparent !important; padding-top:18px; gap:14px; }
  .main-nav.open > a:not(.nav-cta) { padding:7px 0 5px; border-bottom:1px solid rgba(39,34,31,.24); font-size:15px; font-weight:600; text-shadow:0 1px 12px rgba(251,250,247,.9); }
  .main-nav.open .nav-cta { margin-top:7px; box-shadow:0 8px 20px rgba(39,34,31,.14); }
}
