/* Layout: colonna editoriale singola; hero con snippet SERP in posizione #1, servizi in griglia 2x2, ciclo brand/traffico, audit, contatti */
:root{
  --bg:#f6f7fb; --surface:#ffffff; --ink:#141a33; --muted:#5a617d; --line:#dfe2ee;
  --accent:#2f4fd9; --accent-soft:#e7ebfd; --serp-url:#1d6b3a; --warm:#e0603c;
  --display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --body:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;
  --mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0e1222; --surface:#161b30; --ink:#eceffa; --muted:#a2a8c3; --line:#2a3150;
  --accent:#8ea2ff; --accent-soft:#1f2850; --serp-url:#6fd39a; --warm:#ff8a66; color-scheme:dark }}
:root[data-theme="dark"]{
  --bg:#0e1222; --surface:#161b30; --ink:#eceffa; --muted:#a2a8c3; --line:#2a3150;
  --accent:#8ea2ff; --accent-soft:#1f2850; --serp-url:#6fd39a; --warm:#ff8a66; color-scheme:dark }

*{box-sizing:border-box}
body{background:var(--bg); color:var(--ink); font-family:var(--body); font-size:17px; line-height:1.6;
  padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px))}
.wrap{max-width:1040px; margin:0 auto; display:flex; flex-direction:column; gap:96px; padding-block:40px 64px}
a{color:var(--accent)}
a:focus-visible, button:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:4px}
h1,h2,h3{font-family:var(--display); text-wrap:balance; margin:0; line-height:1.08}
h2{font-size:clamp(1.9rem, 4vw, 2.7rem); font-weight:700; letter-spacing:-.02em}
h3{font-size:1.3rem; font-weight:700}
p{margin:0; max-width:62ch}
.label{font-family:var(--mono); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted)}

/* nav */
nav{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px}
.brand{font-family:var(--display); font-weight:800; font-size:1.15rem; letter-spacing:-.01em}
nav ul{list-style:none; margin:0; padding:0; display:flex; gap:20px; flex-wrap:wrap}
nav a{color:var(--muted); text-decoration:none; font-weight:500}
nav a:hover{color:var(--ink)}

/* hero */
.hero{display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:end}
.hero > *{min-width:0}
.hero h1{font-size:clamp(2.8rem, 8vw, 5.6rem); font-weight:800; letter-spacing:-.035em}
.hero h1 span{display:block; color:var(--accent)}
.hero .lede{margin-top:24px; font-size:1.15rem; color:var(--muted)}
.serp{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:20px 22px; display:flex; flex-direction:column; gap:14px}
.serp-bar{display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:999px; padding:8px 14px; font-family:var(--mono); font-size:.85rem; color:var(--muted)}
.serp-bar svg{flex:none}
.result{display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start}
.pos{font-family:var(--mono); font-size:.8rem; font-weight:500; background:var(--accent); color:var(--surface); border-radius:6px; padding:2px 7px; margin-top:3px}
.result .url{font-family:var(--mono); font-size:.78rem; color:var(--serp-url); word-break:break-all}
.result .t{font-family:var(--body); color:var(--accent); font-size:1.08rem; font-weight:600; line-height:1.3; margin-top:2px}
.result .d{font-size:.92rem; color:var(--muted); line-height:1.5; margin-top:4px}
.result.dim{opacity:.45}
.result.dim .bar{height:9px; background:var(--line); border-radius:4px; margin-top:6px}

/* about */
.about{display:grid; grid-template-columns:220px 1fr; gap:32px}
.about > *{min-width:0}
.about .body{display:flex; flex-direction:column; gap:18px; font-size:1.1rem}
.roles{display:flex; flex-wrap:wrap; gap:8px; margin-top:6px}
.roles span{font-family:var(--mono); font-size:.82rem; border:1px solid var(--line); border-radius:999px; padding:5px 12px; background:var(--surface)}

/* services */
.services{display:flex; flex-direction:column; gap:32px}
.services header{display:flex; flex-direction:column; gap:12px}
.grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); border-top:1px solid var(--line)}
.svc{padding:28px 28px 32px 0; border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:12px}
.svc:nth-child(even){padding:28px 0 32px 28px; border-left:1px solid var(--line)}
.svc .ic{width:40px; height:40px; color:var(--accent)}
.svc p{color:var(--muted)}
.cta{align-self:flex-start; display:inline-flex; align-items:center; gap:8px; font-weight:600; text-decoration:none; background:var(--ink); color:var(--bg); padding:12px 20px; border-radius:999px}
.cta:hover{background:var(--accent)}

/* cycle */
.cycle{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; background:var(--accent-soft); border-radius:22px; padding:48px}
.cycle > *{min-width:0}
.cycle .txt{display:flex; flex-direction:column; gap:16px}
.cycle svg{width:100%; max-width:380px; justify-self:center; height:auto}
.cycle svg text{font-family:var(--display); font-weight:700}

/* audit */
.audit{display:flex; flex-direction:column; gap:32px}
.audit .intro{display:flex; flex-direction:column; gap:14px}
.factors{display:grid; grid-template-columns:1.2fr 1fr; gap:24px}
.factors > div{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:26px; display:flex; flex-direction:column; gap:14px; min-width:0}
.factors ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column}
.factors li{display:flex; gap:12px; align-items:baseline; padding:10px 0; border-top:1px dashed var(--line)}
.factors li:first-child{border-top:0}
.factors li::before{content:""; width:8px; height:8px; flex:none; border-radius:2px; background:var(--accent); transform:translateY(-1px)}
.factors .ext li::before{background:var(--warm)}

/* contact */
.contact{display:flex; flex-direction:column; gap:28px; border-top:2px solid var(--ink); padding-top:40px}
.contact h2{font-size:clamp(2.2rem, 6vw, 3.8rem)}
.channels{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px}
.ch{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:20px; display:flex; flex-direction:column; gap:10px; min-width:0}
.ch .v{font-family:var(--mono); font-size:.95rem; word-break:break-all; user-select:all}
.ch .v a{text-decoration:none}
.copy{align-self:flex-start; font:500 .82rem var(--body); color:var(--ink); background:transparent; border:1px solid var(--line); border-radius:999px; padding:5px 12px; cursor:pointer}
.copy:hover{border-color:var(--accent); color:var(--accent)}
footer{color:var(--muted); font-size:.9rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px}

@media (max-width:820px){
  .wrap{gap:72px}
  .hero, .about, .cycle, .factors{grid-template-columns:1fr}
  .about{gap:12px}
  .cycle{padding:32px 22px}
  .channels{grid-template-columns:1fr}
}
@media (max-width:620px){
  .grid{grid-template-columns:1fr}
  .svc, .svc:nth-child(even){padding:24px 0; border-left:0}
}
@media (prefers-reduced-motion:no-preference){
  .cycle .spin{transform-origin:190px 190px; animation:rot 24s linear infinite}
  @keyframes rot{to{transform:rotate(360deg)}}
}

html{scroll-behavior:smooth}
body{margin:0}
nav a[aria-current="page"]{color:var(--ink); font-weight:600}
.ch .v a{color:var(--accent)}

/* progetti */
.page-head{display:flex; flex-direction:column; gap:18px}
.page-head h1{font-size:clamp(2.6rem, 7vw, 4.8rem); font-weight:800; letter-spacing:-.035em}
.page-head .lede{font-size:1.15rem; color:var(--muted)}
.stats{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; max-width:620px}
.stat{border-top:2px solid var(--ink); padding-top:12px; display:flex; flex-direction:column; gap:4px}
.stat b{font-family:var(--display); font-size:clamp(2.4rem, 6vw, 3.4rem); font-weight:800; letter-spacing:-.03em; line-height:1; color:var(--accent); font-variant-numeric:tabular-nums}
.stat span{color:var(--muted)}
.note{font-size:.92rem; color:var(--muted); border-left:3px solid var(--line); padding-left:14px}
.cases{display:flex; flex-direction:column; gap:24px}
.case{background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:32px; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:32px}
.case > div{display:flex; flex-direction:column; gap:12px; min-width:0}
.case h3{font-size:clamp(1.4rem, 3vw, 1.8rem)}
.case ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px}
.case li{display:flex; gap:10px; align-items:baseline}
.case li::before{content:""; width:7px; height:7px; flex:none; border-radius:2px; background:var(--accent); transform:translateY(-2px)}
.tags{display:flex; flex-wrap:wrap; gap:6px}
.tags span{font-family:var(--mono); font-size:.74rem; border:1px solid var(--line); border-radius:999px; padding:3px 10px; color:var(--muted)}
.others{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); border-top:1px solid var(--line)}
.other{padding:22px 24px 22px 0; border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:6px}
.other:nth-child(even){padding:22px 0 22px 24px; border-left:1px solid var(--line)}
.other h3{font-size:1.1rem}
.other p{color:var(--muted); font-size:.98rem}
@media (max-width:820px){ .case{grid-template-columns:1fr; padding:24px; gap:20px} }
@media (max-width:620px){ .others{grid-template-columns:1fr} .other, .other:nth-child(even){padding:20px 0; border-left:0} }
