/* ===================================================================
   SULKO — stylesheet condiviso
=================================================================== */
:root{
  --void:#0e0d10;
  --void-2:#161318;
  --paper:#f6f2ea;
  --paper-2:#efe9de;
  --ink:#17151a;
  --ink-soft:#4a454c;
  --amber:#ffb25c;
  --orange:#ff6a1f;
  --rust:#c23a1f;
  --line-dark:rgba(255,255,255,0.09);
  --line-light:rgba(23,21,26,0.10);
  --grad: linear-gradient(120deg, var(--amber) 0%, var(--orange) 52%, var(--rust) 100%);
  --font-display:'Roboto Slab', serif;
  --font-body:'Manrope', sans-serif;
  --font-mono:'JetBrains Mono', monospace;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--orange);color:var(--void);}

.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:var(--paper);}
::-webkit-scrollbar-thumb{background:var(--orange);}

.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1);}
.reveal.in{opacity:1; transform:translateY(0);}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1 !important; transform:none !important; transition:none !important;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important;}
}

/* ---------- Nav ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:500;
  background:rgba(14,13,16,0.72);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-dark);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 32px; max-width:1180px; margin:0 auto;
}
.nav-logo{display:flex; align-items:center; gap:10px;}
.nav-logo img{height:28px; width:auto;}
.nav-logo span{
  font-family:var(--font-display); font-weight:800; font-size:19px;
  letter-spacing:0.04em; color:var(--paper);
}
.nav-links{display:flex; gap:34px; align-items:center;}
.nav-links a{
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.06em;
  text-transform:uppercase; color:rgba(246,242,234,0.68);
  position:relative; padding:4px 0; transition:color .25s ease;
}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px;
  background:var(--grad); transition:width .3s ease;
}
.nav-links a:hover, .nav-links a.active{color:var(--paper);}
.nav-links a:hover::after, .nav-links a.active::after{width:100%;}
.nav-cta{
  font-family:var(--font-mono); font-size:12px; letter-spacing:0.05em;
  text-transform:uppercase; color:var(--void); background:var(--grad);
  padding:10px 20px; border-radius:2px; font-weight:600;
  transition:filter .25s ease, transform .25s ease; white-space:nowrap;
}
.nav-cta:hover{filter:brightness(1.08); transform:translateY(-1px);}
.nav-burger{
  display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;
}
.nav-burger span{width:22px; height:2px; background:var(--paper); display:block;}
.mobile-menu{
  display:none; position:fixed; inset:0 0 auto 0; top:64px; z-index:499;
  background:var(--void); border-bottom:1px solid var(--line-dark);
  padding:26px 32px 34px; flex-direction:column; gap:22px;
}
.mobile-menu.show{display:flex;}
.mobile-menu a{
  font-family:var(--font-mono); font-size:14px; letter-spacing:0.05em; text-transform:uppercase;
  color:rgba(246,242,234,0.8);
}
.mobile-menu a.active{color:var(--amber);}

/* ---------- Ribbon divider ---------- */
.ribbon{height:56px; overflow:hidden; position:relative; background:var(--paper);}
.ribbon.on-dark{background:var(--void);}
.ribbon svg{width:100%; height:100%; display:block;}

/* ---------- Page header (subpages) ---------- */
.page-header{
  background:var(--void); color:var(--paper); position:relative; overflow:hidden;
  padding:170px 0 90px; border-bottom:1px solid var(--line-dark);
}
.page-header .hero-grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(var(--line-dark) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-dark) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 70% 60% at 30% 20%, black, transparent);
  opacity:0.6;
  pointer-events:none;   /* 👈 aggiungi questa */
}

.breadcrumb{
  position:relative; font-family:var(--font-mono); font-size:12px; letter-spacing:0.08em;
  text-transform:uppercase; color:rgba(246,242,234,0.5); margin-bottom:22px;
  display:flex; align-items:center; gap:8px;
}
.breadcrumb .cur{color:var(--amber);}
.page-header h1{
  position:relative; font-family:var(--font-display); font-weight:800;
  font-size:clamp(36px, 5vw, 64px); text-transform:uppercase; line-height:1.04; letter-spacing:-0.01em;
  max-width:760px;
}
.page-header h1 em{font-style:normal; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
.page-header p.lead{
  position:relative; margin-top:22px; max-width:520px; font-size:17px; line-height:1.65;
  color:rgba(246,242,234,0.68);
}

.eyebrow{
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--amber);
  display:flex; align-items:center; gap:10px; margin-bottom:22px;
}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--orange);}

.btn-primary{
  background:var(--grad); color:var(--void); font-weight:700;
  font-family:var(--font-mono); font-size:13px; letter-spacing:0.04em;
  text-transform:uppercase; padding:16px 30px; border-radius:2px;
  border:none; cursor:pointer; transition:transform .25s ease, filter .25s ease;
  display:inline-flex; align-items:center; gap:10px;
}
.btn-primary:hover{transform:translateY(-2px); filter:brightness(1.08);}
.btn-ghost{
  border:1px solid var(--line-dark); color:var(--paper);
  font-family:var(--font-mono); font-size:13px; letter-spacing:0.04em;
  text-transform:uppercase; padding:16px 26px; border-radius:2px;
  display:inline-flex; align-items:center; gap:10px;
  transition:border-color .25s ease, background .25s ease;
}
.btn-ghost:hover{border-color:var(--orange); background:rgba(255,106,31,0.06);}
.btn-ghost.on-light{border-color:var(--line-light); color:var(--ink);}
.btn-ghost.on-light:hover{border-color:var(--rust); background:rgba(194,58,31,0.05);}

/* ---------- Section shared ---------- */
section{padding:118px 0;}
.section-head{display:grid; grid-template-columns:0.9fr 1.4fr; gap:60px; margin-bottom:64px; align-items:end;}
.section-eyebrow{
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--rust);
  display:flex; align-items:center; gap:10px; margin-bottom:18px;
}
.section-eyebrow::before{content:''; width:22px; height:1px; background:var(--rust);}
.on-dark .section-eyebrow{color:var(--amber);}
.on-dark .section-eyebrow::before{background:var(--amber);}
.section-head h2{
  font-family:var(--font-display); font-weight:800; font-size:clamp(30px,3.4vw,44px);
  line-height:1.08; text-transform:uppercase; letter-spacing:-0.01em;
}
.section-head p{font-size:16.5px; line-height:1.7; color:var(--ink-soft); max-width:440px;}
.on-dark .section-head p{color:rgba(246,242,234,0.62);}
.section-foot-link{display:flex; justify-content:flex-end; margin-top:44px;}

/* ---------- Home hero v2 ---------- */
.home-hero{
  background:var(--void); color:var(--paper); position:relative; overflow:hidden;
  padding:176px 0 0;
  border-bottom:1px solid var(--line-dark);
}
.home-hero .hero-grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(var(--line-dark) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-dark) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 10%, black, transparent);
  opacity:0.55;
  pointer-events:none;
}
.home-hero-inner{position:relative; z-index:2;}
.home-hero h1{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(44px, 8vw, 108px);
  line-height:0.98; letter-spacing:-0.015em; text-transform:uppercase;
  max-width:920px;
}
.home-hero h1 em{font-style:normal; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
.home-hero-bottom{
  display:grid; grid-template-columns:1fr 340px; gap:50px; align-items:end;
  margin-top:34px; padding-bottom:70px;
}
.home-hero p.lead{font-size:17.5px; line-height:1.7; color:rgba(246,242,234,0.7); max-width:460px;}
.home-hero-actions{display:flex; gap:16px; margin-top:32px; flex-wrap:wrap;}
.home-hero-mark{position:relative; display:flex; justify-content:flex-end; align-items:flex-end;}
.home-hero-mark svg{width:100%; max-width:260px; height:auto; filter:drop-shadow(0 24px 50px rgba(255,106,31,0.22));}
.s-outline{
  fill:url(#sGradFill); fill-opacity:0;
  stroke:url(#sGradFill); stroke-width:4;
  stroke-linejoin:round; stroke-linecap:round;
  stroke-dasharray:2000; stroke-dashoffset:2000;
  animation:drawS 1.9s cubic-bezier(.65,0,.35,1) .3s forwards, fillS .9s ease 1.7s forwards;
}
@keyframes drawS{ to{stroke-dashoffset:0;} }
@keyframes fillS{ to{fill-opacity:1;} }

/* ticker band */
.ticker-band{background:var(--void-2); border-top:1px solid var(--line-dark);}
.ticker-band .wrap{
  display:grid; grid-template-columns:repeat(4,1fr); padding:0;
}
.ticker-item{
  padding:34px 30px; border-left:1px solid var(--line-dark);
  display:flex; flex-direction:column; gap:6px;
}
.ticker-item:first-child{border-left:none;}
.ticker-item b{
  font-family:var(--font-display); font-size:30px; font-weight:800;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.ticker-item span{font-family:var(--font-mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:rgba(246,242,234,0.5);}

/* ---------- Chi siamo ---------- */
.about{background:var(--paper);}
.about-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:center;}
.about-visual{
  position:relative; aspect-ratio:4/5; border-radius:4px; overflow:hidden;
  background:var(--void); display:flex; align-items:center; justify-content:center;
}
.about-visual .mark{width:52%; opacity:0.95;}
.about-visual::after{content:''; position:absolute; inset:0; background:radial-gradient(circle at 30% 20%, rgba(255,106,31,0.22), transparent 60%);}
.about-text p{font-size:17px; line-height:1.8; color:var(--ink-soft); margin-bottom:20px;}
.about-text p.big{font-size:20px; color:var(--ink); font-weight:600; line-height:1.5;}
.about-points{display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:36px;}
.about-point{border-left:2px solid var(--rust); padding-left:16px;}
.about-point b{font-family:var(--font-display); font-size:16px; display:block; margin-bottom:4px; text-transform:uppercase;}
.about-point span{font-size:14px; color:var(--ink-soft); line-height:1.55;}

.values-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-light); border:1px solid var(--line-light); margin-top:70px;}
.value-card{background:var(--paper); padding:36px 30px;}
.value-card .n{font-family:var(--font-mono); font-size:12px; color:var(--rust);}
.value-card h3{font-family:var(--font-display); font-size:18px; text-transform:uppercase; margin:16px 0 10px;}
.value-card p{font-size:14.5px; line-height:1.6; color:var(--ink-soft);}

.timeline{margin-top:80px; border-top:1px solid var(--line-light);}
.tl-row{display:grid; grid-template-columns:120px 1fr; gap:32px; padding:28px 0; border-bottom:1px solid var(--line-light);}
.tl-row .yr{font-family:var(--font-mono); font-size:14px; color:var(--rust); letter-spacing:0.05em;}
.tl-row p{font-size:15.5px; color:var(--ink-soft); line-height:1.6;}

/* ---------- Servizi ---------- */
.services{background:var(--void); color:var(--paper);}
.service-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* O 3, a seconda di quante card hai */
  gap: 0; /* FONDAMENTALE: Rimuove lo spazio "morto" grigio */
  background: transparent; /* Il background non serve più per le linee */
  border: none; /* Rimuovi il bordo esterno se gestito diversamente */
}
.service-grid.two {
  grid-template-columns: repeat(2, 1fr);
}
.service-card {
  background: var(--void);
  padding: 38px 32px;
  position: relative;
  transition: background .35s ease, border-color .35s ease; /* Aggiungi transizione per il bordo */
  
  /* Aggiungi i bordi che prima erano il "gap" */
  border-right: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line-dark);
  
  /* Assicura che la card occupi tutto lo spazio */
  width: 100%;
  height: 100%;
  box-sizing: border-box; 
}

/* Gestione bordi per l'ultima colonna (opzionale, per estetica) */
.service-card:nth-child(4n) {
  border-right: none; /* Rimuovi bordo destro all'ultima di ogni riga (se grid a 4) */
}
/* Se usi grid a 3 (come nel tuo HTML attuale con 3 card): */
.service-grid:not(.two) .service-card:nth-child(3n) {
  border-right: none;
}
.service-card:hover {
  background: var(--void-2);
  /* Opzionale: cambia colore al bordo per integrarlo nell'effetto */
  border-color: var(--line-dark); /* O un altro colore se vuoi che la linea spar/change */
  z-index: 1; /* Assicura che l'hover copra eventuali sovrapposizioni */
  position: relative;
}
.service-num{font-family:var(--font-mono); font-size:12px; color:var(--rust); letter-spacing:0.08em;}
.service-card h3{font-family:var(--font-display); font-weight:700; font-size:20px; margin:22px 0 14px; text-transform:uppercase; letter-spacing:0.01em; line-height:1.25;}
.service-card p{font-size:14.5px; line-height:1.65; color:rgba(246,242,234,0.6); margin-bottom:18px;}
.service-card .icon{width:38px; height:38px; margin-top:8px; border:1px solid var(--line-dark); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:border-color .3s ease;}
.service-card:hover .icon{border-color:var(--orange);}
.service-card .icon svg{width:16px; height:16px; stroke:var(--amber);}
.service-list{list-style:none; margin-top:6px;}
.service-list li{font-size:13.5px; color:rgba(246,242,234,0.55); padding:6px 0 6px 18px; position:relative;}
.service-list li::before{content:'—'; position:absolute; left:0; color:var(--rust);}

/* ---------- Pricing ---------- */
.pricing{background:var(--paper);}
.pricing-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line-light); border:1px solid var(--line-light);
}
.pricing-card{
  background:var(--paper); padding:42px 34px 36px; position:relative;
  display:flex; flex-direction:column;
  transition:background .3s ease, box-shadow .3s ease;
}
.pricing-card:hover{background:#fffdf9;}
.pricing-card .service-num{color:var(--rust);}
.pricing-card h3{
  font-family:var(--font-display); font-weight:700; font-size:19px;
  margin:20px 0 10px; text-transform:uppercase; letter-spacing:0.01em; line-height:1.25;
}
.pricing-card > p{font-size:14px; line-height:1.6; color:var(--ink-soft); margin-bottom:28px;}
.pricing-tiers{display:flex; flex-direction:column; border-top:1px solid var(--line-light); margin-top:auto;}
.pricing-tier{
  display:flex; justify-content:space-between; align-items:baseline; gap:14px;
  padding:15px 0; border-bottom:1px solid var(--line-light);
}
.pricing-tier:last-child{border-bottom:none;}
.tier-name{font-size:13.5px; color:var(--ink-soft); line-height:1.4;}
.tier-price{font-family:var(--font-mono); font-size:14px; font-weight:600; color:var(--rust); white-space:nowrap;}

.pricing-card.featured{
  background:var(--void); color:var(--paper); z-index:1;
  box-shadow:inset 0 3px 0 0 var(--orange), 0 24px 60px rgba(0,0,0,0.16);
}
.pricing-card.featured:hover{background:var(--void-2);}
.pricing-card.featured .service-num{color:var(--amber);}
.pricing-card.featured h3{color:var(--paper);}
.pricing-card.featured > p{color:rgba(246,242,234,0.6);}
.pricing-card.featured .pricing-tiers{border-top-color:var(--line-dark);}
.pricing-card.featured .pricing-tier{border-bottom-color:var(--line-dark);}
.pricing-card.featured .tier-name{color:rgba(246,242,234,0.68);}
.pricing-card.featured .tier-price{color:var(--amber);}
.pricing-badge{
  position:absolute; top:0; right:0; background:var(--grad); color:var(--void);
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.06em; padding:7px 16px;
  border-radius:0 0 0 4px;
}
.pricing-note{
  margin-top:40px; padding-top:28px; border-top:1px solid var(--line-light);
  font-size:13.5px; line-height:1.75; color:var(--ink-soft); max-width:760px;
}

@media (max-width:900px){
  .pricing-grid{grid-template-columns:1fr;}
  .pricing-card.featured{box-shadow:inset 3px 0 0 0 var(--orange), 0 24px 60px rgba(0,0,0,0.16);}
}

.compare{margin-top:90px;}
.compare-table{width:100%; border-collapse:collapse;}
.compare-table th, .compare-table td{padding:18px 20px; text-align:left; border-bottom:1px solid var(--line-dark); font-size:14.5px;}
.compare-table th{font-family:var(--font-mono); font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; color:rgba(246,242,234,0.5); font-weight:500;}
.compare-table td:first-child{font-family:var(--font-display); text-transform:uppercase; font-weight:700; font-size:15px;}
.compare-table td.yes{color:var(--amber);}
.compare-table td:not(:first-child){color:rgba(246,242,234,0.72);}
.compare-table td.price{font-family:var(--font-mono); color:var(--amber); white-space:nowrap;}

/* ---------- Costi aggiuntivi ---------- */
.extras{background:var(--void); color:var(--paper);}
.extras .compare-table{margin-top:4px;}
.extras-note{
  margin-top:32px; padding-top:26px; border-top:1px solid var(--line-dark);
  font-size:13.5px; line-height:1.75; color:rgba(246,242,234,0.55); max-width:760px;
}

/* ---------- Metodo ---------- */
.method{background:var(--paper);}
.method-list{border-top:1px solid var(--line-light);}
.method-row{display:grid; grid-template-columns:90px 1fr 1.4fr; gap:32px; padding:36px 0; border-bottom:1px solid var(--line-light); align-items:start; transition:padding-left .3s ease;}
.method-row:hover{padding-left:12px;}
.method-row .idx{font-family:var(--font-display); font-size:34px; font-weight:800; color:var(--paper-2); -webkit-text-stroke:1.4px var(--rust); text-transform:uppercase;}
.method-row h3{font-family:var(--font-display); font-size:20px; font-weight:700; text-transform:uppercase; letter-spacing:0.01em; align-self:center;}
.method-row p{font-size:15.5px; line-height:1.7; color:var(--ink-soft); align-self:center;}
.method-row .tags{margin-top:10px; display:flex; gap:8px; flex-wrap:wrap;}
.method-row .tags span{font-family:var(--font-mono); font-size:10.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--rust); border:1px solid var(--line-light); padding:4px 9px; border-radius:2px;}

.faq{margin-top:20px; border-top:1px solid var(--line-light);}
.faq-item{border-bottom:1px solid var(--line-light);}
.faq-q{padding:26px 0; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-family:var(--font-display); font-size:17px; text-transform:uppercase; font-weight:700;}
.faq-q .plus{font-family:var(--font-mono); color:var(--rust); font-size:20px; transition:transform .3s ease;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.faq-item.open .faq-a{max-height:200px;}
.faq-a p{padding:0 0 26px; font-size:15px; color:var(--ink-soft); line-height:1.7; max-width:640px;}

/* ---------- Stack marquee ---------- */
.stack{background:var(--void-2); border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); padding:52px 0;}
.stack-label{font-family:var(--font-mono); font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:rgba(246,242,234,0.45); text-align:center; margin-bottom:30px;}
.marquee{overflow:hidden; width:100%; position:relative;}
.marquee::before, .marquee::after{content:''; position:absolute; top:0; bottom:0; width:120px; z-index:2; pointer-events:none;}
.marquee::before{left:0; background:linear-gradient(90deg, var(--void-2), transparent);}
.marquee::after{right:0; background:linear-gradient(270deg, var(--void-2), transparent);}
.marquee-track{display:flex; width:max-content; animation:scroll 32s linear infinite;}
.marquee-track span{font-family:var(--font-display); font-size:26px; font-weight:700; text-transform:uppercase; color:transparent; -webkit-text-stroke:1px rgba(246,242,234,0.28); padding:0 34px; white-space:nowrap; display:flex; align-items:center; gap:34px;}
.marquee-track span::after{content:'◆'; font-size:10px; -webkit-text-stroke:0; color:var(--rust);}
@keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ---------- Progetti ---------- */
.work{background:var(--paper);}
.work-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:1px; background:var(--line-light);}
.work-card{background:var(--paper); position:relative; overflow:hidden; min-height:280px; padding:34px; display:flex; flex-direction:column; justify-content:flex-end;}
.work-card.tall{grid-row:span 2; min-height:588px;}
.work-card .tag{font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--rust); margin-bottom:10px;}
.work-card h3{font-family:var(--font-display); font-size:24px; font-weight:800; text-transform:uppercase; margin-bottom:10px; line-height:1.15;}
.work-card p{font-size:14.5px; color:var(--ink-soft); line-height:1.6; max-width:340px;}
.work-card .stack-tags{margin-top:14px; display:flex; gap:8px; flex-wrap:wrap;}
.work-card .stack-tags span{font-family:var(--font-mono); font-size:10.5px; text-transform:uppercase; color:var(--ink-soft); border:1px solid var(--line-light); padding:3px 8px; border-radius:2px;}
.work-card::before{content:''; position:absolute; inset:0; opacity:0.14; background:var(--grad); z-index:0; clip-path:polygon(100% 0, 100% 100%, 55% 100%); transition:opacity .4s ease, clip-path .5s ease;}
.work-card:hover::before{opacity:0.24; clip-path:polygon(100% 0, 100% 100%, 30% 100%);}
.work-card > *{position:relative; z-index:1;}

.work-grid-full{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line-light); margin-top:1px;}

/* ---------- CTA ---------- */
.cta{background:var(--void); color:var(--paper); text-align:center; padding:130px 0; position:relative; overflow:hidden;}
.cta-glow{position:absolute; width:700px; height:700px; border-radius:50%; background:radial-gradient(circle, rgba(255,106,31,0.22), transparent 65%); top:50%; left:50%; transform:translate(-50%,-50%); filter:blur(10px);}
.cta h2{position:relative; font-family:var(--font-display); font-weight:800; font-size:clamp(32px,5vw,58px); text-transform:uppercase; line-height:1.08; max-width:760px; margin:0 auto 28px;}
.cta h2 em{font-style:normal; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
.cta p{position:relative; color:rgba(246,242,234,0.65); font-size:17px; max-width:480px; margin:0 auto 42px;}
.cta .btn-primary{position:relative; padding:18px 38px; font-size:14px;}

/* ---------- Contatti ---------- */
.contact{background:var(--paper);}
.contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px;}
.contact-info h3{font-family:var(--font-display); font-size:15px; text-transform:uppercase; letter-spacing:0.08em; color:var(--rust); margin-bottom:14px;}
.contact-block{margin-bottom:38px;}
.contact-block p, .contact-block a{font-size:16px; line-height:1.7; color:var(--ink-soft);}
.contact-block a:hover{color:var(--orange);}
.social-row{display:flex; gap:14px; margin-top:8px;}
.social-row a{width:40px; height:40px; border:1px solid var(--line-light); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:11px; transition:border-color .25s ease, color .25s ease;}
.social-row a:hover{border-color:var(--orange); color:var(--orange);}

.form{display:flex; flex-direction:column; gap:20px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.field label{font-family:var(--font-mono); font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-soft); display:block; margin-bottom:8px;}
.field input, .field textarea, .field select{width:100%; background:transparent; border:none; border-bottom:1px solid var(--line-light); padding:12px 2px; font-family:var(--font-body); font-size:15.5px; color:var(--ink); transition:border-color .25s ease;}
.field input:focus, .field textarea:focus, .field select:focus{outline:none; border-color:var(--orange);}
.field textarea{resize:vertical; min-height:100px;}
.form .btn-primary{align-self:flex-start; background:var(--void); color:var(--paper); margin-top:8px;}
.form .btn-primary span.grad-txt{background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}

.map-strip{margin-top:80px; border-top:1px solid var(--line-light); padding-top:50px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-light);}
.map-strip .loc{background:var(--paper); padding:30px;}
.map-strip .loc h4{font-family:var(--font-display); font-size:16px; text-transform:uppercase; margin-bottom:8px;}
.map-strip .loc p{font-size:14px; color:var(--ink-soft); line-height:1.6;}

/* ---------- Footer ---------- */
footer{background:var(--void); color:rgba(246,242,234,0.55); padding:70px 0 30px; border-top:1px solid var(--line-dark);}
.foot-top{display:grid; grid-template-columns:1.2fr 0.8fr 0.8fr 0.8fr; gap:40px; padding-bottom:50px;}
.foot-brand img{height:24px; margin-bottom:18px;}
.foot-brand p{font-size:14px; line-height:1.7; max-width:280px;}
.foot-col h4{font-family:var(--font-mono); font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:var(--paper); margin-bottom:16px;}
.foot-col a{display:block; font-size:14px; color:rgba(246,242,234,0.55); margin-bottom:10px; transition:color .2s ease;}
.foot-col a:hover{color:var(--amber);}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; border-top:1px solid var(--line-dark); font-family:var(--font-mono); font-size:12px; flex-wrap:wrap; gap:12px;}
.foot-bottom a{color:rgba(246,242,234,0.55);}
.foot-bottom a:hover{color:var(--amber);}

/* ---------- Social ---------- */
.social-row a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 15px; /* Spazio tra le icone */
  color: #000000; /* Colore delle icone (es. bianco) */
  transition: color 0.3s ease;
}

.social-row a:hover {
  color: #0077b5; /* Colore LinkedIn all'hover per il primo link */
}
/* Per GitHub all'hover, potresti dover usare un selettore più specifico o nth-child */
.social-row a:nth-child(2):hover {
  color: #000000; /* GitHub solitamente resta bianco o diventa grigio chiaro */
}

.social-row svg {
  width: 24px;  /* Dimensione icona */
  height: 24px;
}   

/* Riduce gli spazi eccessivi generati da Usercentrics nella privacy policy */
.uc-privacy-policy h1,
.uc-privacy-policy h2,
.uc-privacy-policy h3 {
  margin-top: 32px !important;
  margin-bottom: 12px !important;
}
.uc-privacy-policy p,
.uc-privacy-policy ul,
.uc-privacy-policy li {
  margin-top: 0 !important;
  margin-bottom: 12px !important;
}
.uc-privacy-policy br + br {
  display: none; /* rimuove doppi a-capo consecutivi */
}

/* ---------- Mobile ---------- */
@media (max-width: 900px){
  .nav-links{display:none;}
  .nav-cta{display:none;}
  .nav-burger{display:flex;}
  .home-hero-bottom{grid-template-columns:1fr; align-items:start;}
  .home-hero-mark{justify-content:flex-start; margin-top:30px;}
  .home-hero-mark svg{max-width:170px;}
  .ticker-band .wrap{grid-template-columns:1fr 1fr;}
  .ticker-item{border-left:none; border-top:1px solid var(--line-dark);}
  .ticker-item:nth-child(1),.ticker-item:nth-child(2){border-top:none;}
  .section-head{grid-template-columns:1fr; gap:20px;}
  .about-grid{grid-template-columns:1fr;}
  .about-points{grid-template-columns:1fr;}
  .service-grid{grid-template-columns:1fr 1fr;}
  .service-grid.two{grid-template-columns:1fr;}
  .values-grid{grid-template-columns:1fr;}
  .method-row{grid-template-columns:50px 1fr; grid-template-areas:"idx h" "p p";}
  .method-row .idx{grid-area:idx;}
  .method-row h3{grid-area:h;}
  .method-row p{grid-area:p;}
  .work-grid{grid-template-columns:1fr;}
  .work-card.tall{grid-row:auto; min-height:280px;}
  .work-grid-full{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .foot-top{grid-template-columns:1fr 1fr; row-gap:36px;}
  .map-strip{grid-template-columns:1fr;}
  .compare-table{font-size:13px;}
}
@media (max-width:560px){
  .wrap{padding:0 20px;}
  .page-header{padding:140px 0 70px;}
  .home-hero{padding:150px 0 0;}
  .service-grid{grid-template-columns:1fr;}
  .foot-top{grid-template-columns:1fr;}
}

/* ---------- Recensioni ---------- */
.reviews-summary{background:var(--void); color:var(--paper); padding-bottom:70px; border-bottom:1px solid var(--line-dark);}
.reviews-stats{display:flex; align-items:center; gap:40px; flex-wrap:wrap;}
.rs-score-num{font-family:var(--font-display); font-weight:800; font-size:clamp(48px,7vw,84px); line-height:1; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
.rs-score-block{display:flex; flex-direction:column; gap:8px;}
.rs-stars{display:flex; gap:4px;}
.rs-stars svg{width:20px; height:20px;}
.rs-count{font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.05em; color:rgba(246,242,234,0.55); text-transform:uppercase;}
.rs-divider{width:1px; align-self:stretch; background:var(--line-dark);}
.rs-note{font-size:15px; line-height:1.7; color:rgba(246,242,234,0.65); max-width:420px;}

.star{color:var(--line-light); fill:currentColor; display:block;}
.star.full{color:var(--amber);}

.rs-stars .star{color:rgba(246,242,234,0.2);}
.rs-stars .star.full{color:var(--amber);}

.reviews{background:var(--paper);}
.reviews-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(300px,1fr)); gap:1px; background:var(--line-light); border:1px solid var(--line-light); margin-top:0;}
.review-card{background:var(--paper); padding:34px 30px; display:flex; flex-direction:column; gap:16px;}
.review-card .stars{display:flex; gap:3px;}
.review-card .stars svg{width:15px; height:15px;}
.review-card .review-text{font-size:15px; line-height:1.7; color:var(--ink-soft); flex:1;}
.review-card .review-who{display:flex; flex-direction:column; gap:2px; padding-top:14px; border-top:1px solid var(--line-light);}
.review-card .review-who b{font-family:var(--font-display); font-size:15px; text-transform:uppercase; letter-spacing:0.01em;}
.review-card .review-who span{font-family:var(--font-mono); font-size:11.5px; color:var(--rust); letter-spacing:0.03em;}
.review-card .review-date{font-family:var(--font-mono); font-size:10.5px; color:var(--ink-soft); opacity:0.6; text-transform:uppercase; letter-spacing:0.05em;}

.reviews-state{grid-column:1/-1; padding:60px 20px; text-align:center; font-size:15px; color:var(--ink-soft); font-family:var(--font-mono);}
.reviews-state.err{color:var(--rust);}

.review-form-section{background:var(--void); color:var(--paper); border-top:1px solid var(--line-dark);}
.review-form-section .form-status{color:rgba(246,242,234,0.7);}
.review-form-section .form-status.ok{color:var(--amber);}
.review-form-section .form-status.err{color:#ff8a6a;}
.review-form-section .field label{color:rgba(246,242,234,0.55);}
.review-form-section .field input,
.review-form-section .field textarea{color:var(--paper); border-bottom:1px solid var(--line-dark);}
.review-form-section .field input::placeholder,
.review-form-section .field textarea::placeholder{color:rgba(246,242,234,0.3);}
.review-form-section .field input:focus,
.review-form-section .field textarea:focus{border-color:var(--orange);}
.review-form-section .form .btn-primary{background:var(--grad); color:var(--void);}

.star-input{display:flex; gap:8px; margin-top:4px;}
.star-input button{background:none; border:none; cursor:pointer; padding:4px; color:var(--line-dark); transition:color .2s ease, transform .2s ease;}
.star-input button svg{width:26px; height:26px; fill:currentColor; display:block;}
.star-input button:hover{transform:translateY(-2px);}
.star-input button.active{color:var(--amber);}
.star-input-hint{font-family:var(--font-mono); font-size:11px; color:rgba(246,242,234,0.4); margin-top:6px; text-transform:uppercase; letter-spacing:0.04em;}

@media (max-width:900px){
  .reviews-stats{gap:24px;}
  .rs-divider{display:none;}
}

/* ---------- Legal pages ---------- */
.legal{background:var(--paper);}
.legal-updated{
  font-family:var(--font-mono); font-size:12px; text-transform:uppercase;
  letter-spacing:0.08em; color:var(--rust); margin-bottom:14px;
}
.legal-intro{font-size:16px; line-height:1.8; color:var(--ink-soft); max-width:760px; margin-bottom:56px;}
.legal-toc{
  display:grid; grid-template-columns:repeat(3,1fr); gap:12px 28px;
  padding:0 0 56px; border-bottom:1px solid var(--line-light); margin-bottom:56px;
}
.legal-toc a{
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.03em;
  color:var(--ink-soft); transition:color .2s ease;
}
.legal-toc a:hover{color:var(--rust);}
.legal-section{padding:34px 0; border-top:1px solid var(--line-light);}
.legal-section:last-of-type{border-bottom:1px solid var(--line-light);}
.legal-section h2{
  font-family:var(--font-display); font-weight:800; font-size:21px;
  text-transform:uppercase; letter-spacing:-0.005em; margin-bottom:20px;
  display:flex; flex-wrap:wrap; gap:0 14px; align-items:baseline;
}
.legal-section h2 .num{font-family:var(--font-mono); font-size:13px; color:var(--rust); font-weight:500; margin-right:14px;}
.legal-section h3{
  font-family:var(--font-display); font-weight:700; font-size:15.5px;
  text-transform:uppercase; margin:26px 0 12px;
}
.legal-section p{font-size:15.5px; line-height:1.85; color:var(--ink-soft); margin:0 0 18px; max-width:760px;}
.legal-section p:last-child{margin-bottom:0;}
.legal-section ul{margin:4px 0 22px 20px; max-width:760px;}
.legal-section ul:last-child{margin-bottom:0;}
.legal-section li{font-size:15.5px; line-height:1.8; color:var(--ink-soft); margin-bottom:10px;}
.legal-section li:last-child{margin-bottom:0;}
.legal-section a{color:var(--rust); text-decoration:underline; text-underline-offset:2px;}
.legal-section a:hover{color:var(--orange);}
.legal-section strong{color:var(--ink); font-weight:700;}
.legal-contact{font-size:15.5px; line-height:1.9; color:var(--ink-soft);}

@media (max-width:760px){
  .legal-toc{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .legal-toc{grid-template-columns:1fr;}
  .ticker-band .wrap{grid-template-columns:1fr 1fr;}
}

/* ---------- Privacy policy widget (third-party content) ---------- */
.uc-privacy-policy{font-family:var(--font-body); color:var(--ink-soft);}
.uc-privacy-policy h1,
.uc-privacy-policy h2,
.uc-privacy-policy h3,
.uc-privacy-policy h4{
  font-family:var(--font-display) !important; text-transform:uppercase; color:var(--ink) !important;
  letter-spacing:-0.005em; line-height:1.25 !important;
  margin:26px 0 10px !important; padding:0 !important;
}
.uc-privacy-policy h1{font-size:24px !important; margin-top:0 !important;}
.uc-privacy-policy h2{font-size:19px !important;}
.uc-privacy-policy h3{font-size:16px !important;}
.uc-privacy-policy h4{font-size:14.5px !important;}
.uc-privacy-policy p{
  font-size:15.5px !important; line-height:1.75 !important; color:var(--ink-soft) !important;
  margin:0 0 12px !important; padding:0 !important; max-width:760px;
}
.uc-privacy-policy ul,
.uc-privacy-policy ol{margin:4px 0 14px 20px !important; padding:0 !important; max-width:760px;}
.uc-privacy-policy li{font-size:15.5px !important; line-height:1.7 !important; color:var(--ink-soft) !important; margin-bottom:6px !important;}
.uc-privacy-policy a{color:var(--rust); text-decoration:underline; text-underline-offset:2px;}
.uc-privacy-policy a:hover{color:var(--orange);}
.uc-privacy-policy strong{color:var(--ink); font-weight:700;}
.uc-privacy-policy table{width:100%; border-collapse:collapse; margin:12px 0 20px !important; font-size:14px;}
.uc-privacy-policy th,
.uc-privacy-policy td{border:1px solid var(--line-light); padding:8px 10px !important; text-align:left; vertical-align:top;}
.uc-privacy-policy hr{border:none; border-top:1px solid var(--line-light); margin:24px 0 !important;}
.uc-privacy-policy > *:first-child{margin-top:0 !important;}
.uc-privacy-policy > *:last-child{margin-bottom:0 !important;}