/* ==========================================================
   Axentia Partners — Main Stylesheet
   ========================================================== */

/* --- Custom Properties --- */
:root {
  --ink: #0A0A0A;
  --ink-soft: #3D3D3D;
  --muted: #666666;
  --subtle: #8A8A8A;
  --faint: #B4B4B4;
  --nav-idle: #707070;
  --border: #E3E3E3;
  --border-light: #EDEDED;
  --surface: #FFFFFF;
  --surface-gray: #F5F5F4;
  --font-sans: 'General Sans', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --max-w: 1200px;
  --px: clamp(24px, 5vw, 48px);
  --section-py: clamp(72px, 10vw, 130px);
  --btn-gradient: linear-gradient(180deg, #2E2E2E 0%, #0A0A0A 55%);
  --btn-shadow: inset 0 1px 0 rgba(255,255,255,0.14), 0 1px 2px rgba(10,10,10,0.2);
  --btn-light-gradient: linear-gradient(180deg, #FFFFFF 0%, #E8E8E6 100%);
  --glass-bg: rgba(255,255,255,0.5);
  --glass-blur: blur(14px);
  --glass-border: 1px solid rgba(10,10,10,0.08);
  --ease-out: cubic-bezier(.22,1,.36,1);
}

/* --- Reset --- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-sans); -webkit-font-smoothing: antialiased; background: var(--surface); color: var(--ink); }
::-webkit-scrollbar { display: none; }
* { scrollbar-width: none; }
img { display: block; max-width: 100%; }
a { color: var(--ink); text-decoration: none; }
a:hover { color: var(--muted); }
h1, h2, h3, p { margin: 0; }
button { font-family: inherit; }

/* --- Container --- */
.container { max-width: var(--max-w); margin: 0 auto; padding-left: var(--px); padding-right: var(--px); }

/* --- Section --- */
.section { padding-top: var(--section-py); padding-bottom: var(--section-py); }
.section--sm { padding-top: clamp(64px,8vw,100px); padding-bottom: clamp(64px,8vw,100px); }
.section--dark { background: var(--ink); color: #FFFFFF; }
.section--gray { background: var(--surface-gray); position: relative; overflow: hidden; }
.section--gray::before { content:''; position:absolute; inset:0; background:radial-gradient(600px 400px at 18% 30%,#E4E4E2 0%,transparent 70%),radial-gradient(700px 500px at 85% 75%,#DCDCDA 0%,transparent 70%); pointer-events:none; }
.section--gray > .container { position: relative; }
.section--gray-3::before { background:radial-gradient(600px 400px at 18% 30%,#E4E4E2 0%,transparent 70%),radial-gradient(700px 500px at 85% 75%,#DCDCDA 0%,transparent 70%),radial-gradient(500px 380px at 55% 110%,#E8E8E6 0%,transparent 70%); }

/* --- Eyebrow --- */
.eyebrow { font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--subtle); margin-bottom:28px; }
.eyebrow--dot { display:flex; align-items:center; gap:12px; margin-bottom:36px; }
.eyebrow--dot::before { content:''; width:6px; height:6px; background:var(--ink); border-radius:50%; flex-shrink:0; }
.section--dark .eyebrow { color:#7A7A7A; }
.section--dark .eyebrow--dot::before { background:#FFFFFF; }

/* --- Headings --- */
.heading-xl { font-size:clamp(52px,9vw,112px); line-height:0.96; letter-spacing:-0.045em; font-weight:500; max-width:14ch; text-wrap:balance; }
.heading-hero { font-size:clamp(48px,8vw,96px); line-height:0.98; letter-spacing:-0.045em; font-weight:500; max-width:14ch; text-wrap:balance; }
.heading-lg { font-size:clamp(36px,5vw,64px); font-weight:500; letter-spacing:-0.04em; line-height:1.02; }
.heading-md { font-size:clamp(32px,4.4vw,54px); font-weight:500; letter-spacing:-0.04em; line-height:1.05; }
.heading-case { font-size:clamp(40px,6.4vw,80px); line-height:1; letter-spacing:-0.045em; font-weight:500; max-width:16ch; text-wrap:balance; }
.heading-case-lg { font-size:clamp(44px,7vw,88px); line-height:0.98; letter-spacing:-0.045em; font-weight:500; max-width:16ch; text-wrap:balance; }
.heading-cta { font-size:clamp(36px,5.4vw,72px); font-weight:500; letter-spacing:-0.045em; line-height:0.98; max-width:18ch; text-wrap:balance; }
.heading-cta-lg { font-size:clamp(40px,6vw,84px); font-weight:500; letter-spacing:-0.045em; line-height:0.98; max-width:16ch; text-wrap:balance; color:#FFFFFF; }
.heading-legal { font-size:clamp(40px,6vw,72px); line-height:1; letter-spacing:-0.045em; font-weight:500; max-width:16ch; text-wrap:balance; }

/* --- Body text --- */
.text-intro { font-size:clamp(17px,1.8vw,20px); line-height:1.55; color:var(--muted); max-width:560px; font-weight:400; }
.text-intro--wide { max-width:640px; }
.text-body { font-size:16px; line-height:1.7; color:var(--muted); font-weight:400; }
.text-body-sm { font-size:14.5px; line-height:1.7; color:var(--muted); font-weight:400; }
.text-narrative { font-size:16.5px; line-height:1.7; color:var(--ink-soft); font-weight:400; max-width:680px; }
.text-legal { font-size:15.5px; line-height:1.75; color:var(--ink-soft); font-weight:400; max-width:680px; }
.text-cta { font-size:16px; line-height:1.65; color:#9A9A9A; max-width:480px; font-weight:400; }
.text-cta a { color:#FFFFFF; text-decoration:underline; }

/* --- Header --- */
.header { position:sticky; top:0; z-index:50; background:rgba(255,255,255,0.78); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--border-light); }
.header__inner { max-width:var(--max-w); margin:0 auto; padding:18px var(--px); display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.header__logo { display:flex; align-items:center; }
.header__logo img { height:28px; width:auto; }
.header__nav { display:flex; align-items:center; gap:clamp(16px,3vw,32px); flex-wrap:wrap; }
.header__link { font-size:14px; font-weight:500; color:var(--nav-idle); padding-bottom:3px; background-image:linear-gradient(var(--ink),var(--ink)); background-size:0% 1.5px; background-repeat:no-repeat; background-position:0 100%; transition:color .25s ease, background-size .35s var(--ease-out); }
.header__link:hover { color:var(--ink) !important; background-size:100% 1.5px !important; }
.header__link--active { color:var(--ink); background-size:100% 1.5px; }
.header__actions { display:flex; align-items:center; gap:20px; }
/* sottomenu Servizi: pannello sotto la voce, solo dove c'è hover e spazio; su telefono la voce porta alla pagina Servizi */
.header__item { position:relative; display:flex; }
.header__sub { display:none; position:absolute; top:calc(100% + 18px); left:50%; width:288px; margin-left:-144px; padding:8px; background:rgba(255,255,255,0.985); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur); border:var(--glass-border); border-radius:14px; box-shadow:0 16px 40px rgba(10,10,10,0.10), 0 2px 6px rgba(10,10,10,0.04); }
.header__sub::before { content:''; position:absolute; left:0; right:0; top:-20px; height:20px; }
.header__sublink { position:relative; display:flex; flex-direction:column; gap:3px; padding:12px 52px 12px 14px; border-radius:9px; transition:background-color .2s ease; }
.header__sublink + .header__sublink { margin-top:2px; }
.header__subtitle { font-size:14px; font-weight:500; color:var(--ink); letter-spacing:-0.005em; }
.header__subdesc { font-size:12.5px; line-height:1.4; color:var(--subtle); font-weight:400; transition:color .2s ease; }
.header__sublink::after { content:''; position:absolute; right:12px; top:50%; width:28px; height:28px; margin-top:-14px; border-radius:50%; border:1px solid #E0E0DE; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7 17L17 7M17 7H10M17 7V14' stroke='%230A0A0A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat; transition:background-color .2s ease, border-color .2s ease; }
.header__sublink:hover, .header__sublink:focus-visible, .header__sublink[aria-current="page"] { background:var(--surface-gray); }
.header__sublink:hover .header__subdesc, .header__sublink:focus-visible .header__subdesc { color:var(--muted); }
.header__sublink:hover::after, .header__sublink:focus-visible::after { background-color:var(--ink); border-color:var(--ink); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7 17L17 7M17 7H10M17 7V14' stroke='%23FFFFFF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
@media (hover:hover) and (min-width:769px) {
  .header__sub { display:block; visibility:hidden; opacity:0; transform:translateY(-6px); transition:opacity .2s ease, transform .25s var(--ease-out), visibility 0s linear .2s; }
  .header__item:hover .header__sub, .header__item:focus-within .header__sub { visibility:visible; opacity:1; transform:none; transition-delay:0s; }
  .header__item > .header__link::after { content:''; display:inline-block; width:5px; height:5px; margin-left:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform .25s var(--ease-out); }
  .header__item:hover > .header__link::after, .header__item:focus-within > .header__link::after { transform:translateY(0) rotate(225deg); }
}
.header__login { font-size:14px; font-weight:500; color:var(--nav-idle); transition:color .2s ease; }
.header__login:hover { color:var(--ink); }

/* --- Buttons --- */
.btn { display:inline-flex; align-items:center; gap:8px; border-radius:999px; font-weight:500; font-family:var(--font-sans); text-decoration:none; cursor:pointer; border:none; transition: box-shadow .35s var(--ease-out), transform .35s var(--ease-out), filter .35s var(--ease-out), border-color .35s var(--ease-out), background .35s var(--ease-out); }
.btn:active { transform:translateY(0) scale(0.97); }
.btn--primary { background:var(--btn-gradient); color:#FFFFFF; padding:14px 30px; font-size:15px; letter-spacing:0.01em; box-shadow:inset 0 1px 0 rgba(255,255,255,0.14), 0 2px 6px rgba(10,10,10,0.18); }
.btn--primary:hover { color:#FFFFFF; transform:translateY(-2px); filter:brightness(1.25); box-shadow:inset 0 1px 0 rgba(255,255,255,0.2), 0 12px 28px rgba(10,10,10,0.28); }
.btn--primary-sm { background:var(--btn-gradient); color:#FFFFFF; padding:10px 22px; font-size:13.5px; letter-spacing:0.01em; box-shadow:var(--btn-shadow); }
.btn--primary-sm:hover { color:#FFFFFF; transform:translateY(-1px); filter:brightness(1.25); box-shadow:inset 0 1px 0 rgba(255,255,255,0.2), 0 6px 16px rgba(10,10,10,0.25); }
.btn--secondary { color:var(--ink); padding:13px 26px; border:1px solid #D9D9D9; font-size:15px; background:rgba(255,255,255,0.6); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.btn--secondary:hover { border-color:var(--ink); color:var(--ink); background:var(--surface); transform:translateY(-2px); box-shadow:0 8px 20px rgba(10,10,10,0.08); }
.btn--primary-light { background:var(--btn-light-gradient); color:var(--ink); padding:16px 38px; font-size:16px; letter-spacing:0.01em; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9), 0 2px 8px rgba(0,0,0,0.35); }
.btn--primary-light:hover { color:var(--ink); transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,0.9), 0 14px 34px rgba(0,0,0,0.5); }
.btn--ghost-dark { color:#FFFFFF; padding:15px 32px; border:1px solid #3A3A3A; font-size:15px; background:rgba(255,255,255,0.03); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.btn--ghost-dark:hover { border-color:#FFFFFF; color:#FFFFFF; background:rgba(255,255,255,0.08); transform:translateY(-2px); }
.btn--submit { background:var(--btn-gradient); color:#FFFFFF; padding:15px 36px; font-size:15px; letter-spacing:0.01em; box-shadow:inset 0 1px 0 rgba(255,255,255,0.14), 0 2px 6px rgba(10,10,10,0.18); }
.btn--submit:hover { transform:translateY(-2px); filter:brightness(1.25); box-shadow:inset 0 1px 0 rgba(255,255,255,0.2), 0 12px 28px rgba(10,10,10,0.28); }

/* --- Steps --- */
.steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:clamp(32px,4vw,48px); }
.step { border-top:1px solid var(--border); padding-top:32px; transition:border-color .3s ease; }
.step:hover { border-color:var(--ink); }
.step__num { font-family:var(--font-mono); font-size:12px; font-weight:500; color:var(--subtle); margin-bottom:24px; transition:color .3s ease; }
.step:hover .step__num { color:var(--ink); }
.step__title { font-size:19px; font-weight:500; letter-spacing:-0.01em; margin-bottom:12px; }
.step__text { font-size:14.5px; line-height:1.7; color:var(--muted); font-weight:400; }

/* --- Glass card --- */
.card { background:var(--glass-bg); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur); border:var(--glass-border); border-radius:14px; transition:border-color .3s ease, transform .3s ease, background .3s ease, box-shadow .3s ease; color:var(--ink); text-decoration:none; display:flex; flex-direction:column; overflow:hidden; }
.card:hover { border-color:rgba(10,10,10,0.16); transform:translateY(-3px); background:rgba(255,255,255,0.82); box-shadow:0 16px 40px rgba(10,10,10,0.08); color:var(--ink); }
.card--row { flex-direction:row; }
.card__img { width:100%; object-fit:cover; background:#EBEBE9; display:block; }
.card__img--h { height:190px; }
.card--row .card__img { width:40%; }
.card__body { padding:24px; flex:1; display:flex; flex-direction:column; }
.card__body--lg { padding:30px; }
.card__tag { font-family:var(--font-mono); font-size:10.5px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--subtle); margin-bottom:14px; }
.card__tag--lg { margin-bottom:16px; }
.card__title { font-size:18px; font-weight:500; letter-spacing:-0.01em; margin-bottom:8px; }
.card__title--lg { font-size:20px; letter-spacing:-0.02em; line-height:1.25; }
.card__text { font-size:14px; line-height:1.65; color:var(--muted); font-weight:400; }
.card__arrow { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; border:1px solid #E0E0DE; color:var(--muted); transition:background .2s ease, color .2s ease, border-color .2s ease; margin-top:auto; align-self:flex-end; }
.card:hover .card__arrow { background:var(--ink); color:#FFFFFF; border-color:var(--ink); }
.card__body, .card__body--lg { margin:0; }
.card__arrow--sm { width:28px; height:28px; }

/* --- Dashboard card (servizi) --- */
.dash-card { overflow:hidden; }
.dash-card__preview { padding:20px 20px 0; }
.dash-card__preview img { width:100%; border-radius:8px; border:1px solid rgba(10,10,10,0.06); }
.dash-card__body { padding:22px 24px 26px; }
.dash-card__title { font-size:17px; font-weight:500; letter-spacing:-0.01em; margin-bottom:8px; }
.dash-card__text { font-size:14px; line-height:1.65; color:var(--muted); font-weight:400; }

/* --- Rows (narrative / legal / case detail) --- */
.rows { border-top:1px solid var(--border); }
.section--gray .rows { border-color:rgba(10,10,10,0.12); }
.row { display:flex; gap:clamp(24px,4vw,40px); padding:clamp(32px,4vw,44px) 0; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.section--gray .row { border-color:rgba(10,10,10,0.12); }
.row__label { flex:0 0 240px; }
.row__label--wide { flex:0 0 260px; }
.row__label h2, .row__label h3 { font-family:var(--font-mono); font-size:11px; font-weight:500; color:var(--subtle); text-transform:uppercase; letter-spacing:0.14em; margin:0; }
.row__label h2 { line-height:1.6; }
.row__num { color:var(--faint); margin-right:10px; }
.row__content { flex:1 1 420px; }

/* --- Summary grid --- */
.summary-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:clamp(28px,4vw,40px); }
.summary-item { border-top:1px solid var(--border); padding-top:24px; transition:border-color .3s ease; }
.summary-item:hover { border-color:var(--ink); }
.summary-item__label { font-family:var(--font-mono); font-size:12px; font-weight:500; color:var(--subtle); margin-bottom:16px; }

/* --- FAQ Accordion --- */
.faq { border-top:1px solid var(--border); }
.faq__item { border-bottom:1px solid var(--border); }
.faq__question { width:100%; background:none; border:none; padding:24px 0; display:flex; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; text-align:left; color:var(--ink); }
.faq__question:hover { color:var(--muted); }
.faq__q-text { font-size:17px; font-weight:500; letter-spacing:-0.01em; line-height:1.4; }
.faq__q-num { font-family:var(--font-mono); font-size:12px; font-weight:500; color:var(--faint); flex:0 0 30px; }
.faq__q-row { display:flex; align-items:baseline; gap:18px; flex:1; }
.faq__toggle { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; border:1px solid #D9D9D9; }
.faq__toggle svg { transition:transform .3s ease; }
.faq__item--open .faq__toggle svg { transform:rotate(45deg); }
.faq__answer { display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s ease; }
.faq__item--open .faq__answer { grid-template-rows:1fr; }
.faq__answer-inner { overflow:hidden; }
.faq__answer-text { font-size:15px; line-height:1.7; color:var(--muted); padding:0 48px 28px 0; font-weight:400; }
.faq__answer-text--indented { padding:0 48px 28px 48px; max-width:680px; }

/* --- CTA (dark) --- */
.cta { background:var(--ink); color:#FFFFFF; }
.cta__inner { max-width:var(--max-w); margin:0 auto; padding:clamp(90px,13vw,170px) var(--px); display:flex; flex-direction:column; align-items:center; text-align:center; }
.cta__inner--sm { padding:clamp(90px,12vw,150px) var(--px); }
.cta__actions { display:flex; gap:14px; align-items:center; flex-wrap:wrap; justify-content:center; margin-top:48px; }

/* --- Footer --- */
.footer { border-top:1px solid var(--border-light); background:var(--surface); }
.footer__inner { max-width:var(--max-w); margin:0 auto; padding:clamp(48px,6vw,72px) var(--px) 32px; }
.footer__top { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-wrap:wrap; margin-bottom:clamp(40px,5vw,56px); }
.footer__logo img { height:24px; width:auto; display:block; }
.footer__contact { margin:0; font-size:13px; line-height:1.7; color:var(--subtle); text-align:right; }
.footer__contact a { color:var(--ink-soft); }
/* colonne larghe quanto il loro contenuto, spazio uguale tra l'una e l'altra */
.footer__cols { display:grid; grid-template-columns:repeat(5, max-content); justify-content:space-between; gap:32px clamp(24px,3vw,48px); }
.footer__title { font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink); margin:0 0 18px; }
.footer__list { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.footer__link { font-size:13px; color:var(--subtle); font-weight:400; transition:color .2s ease; }
.footer__link:hover { color:var(--ink); }
.footer__link[aria-current="page"] { color:var(--ink); font-weight:500; }
.footer__button { background:none; border:0; padding:0; font-family:inherit; cursor:pointer; text-align:left; }
.footer__copy { font-family:var(--font-mono); font-size:12px; color:var(--subtle); margin-top:clamp(40px,5vw,56px); padding-top:24px; border-top:1px solid var(--border-light); }
@media (max-width:1000px) {
  .footer__cols { grid-template-columns:repeat(2, minmax(0,1fr)); justify-content:stretch; }
}
@media (max-width:768px) {
  .footer__contact { text-align:left; }
}

/* --- Breadcrumb --- */
.breadcrumb { font-family:var(--font-mono); font-size:12px; color:var(--subtle); margin-bottom:32px; }
.breadcrumb a { color:var(--subtle); transition:color .2s ease; }
.breadcrumb a:hover { color:var(--ink); }
.breadcrumb__sep { margin:0 6px; }

/* --- Related links --- */
.related { font-size:14.5px; color:var(--muted); font-weight:400; margin-top:36px; }
.related__label { font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--subtle); margin-right:14px; }
.related a { text-decoration:underline; text-underline-offset:3px; }

/* --- Case hero image --- */
.case-hero-img { width:100%; max-height:440px; object-fit:cover; border-radius:14px; background:var(--surface-gray); }

/* --- Grids --- */
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.grid-auto { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:12px; }
.grid-auto-sm { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.grid-dash { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:12px; }

/* --- Marquee --- */
@keyframes axentia-marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.marquee-wrap { overflow:hidden; border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:22px 0; -webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent); }
.marquee-track { display:flex; width:max-content; gap:clamp(40px,6vw,80px); align-items:baseline; animation:axentia-marquee 22s linear infinite; }
.marquee-track:hover { animation-play-state:paused; }
.marquee-item { font-family:var(--font-mono); font-size:15px; color:var(--subtle); letter-spacing:0.04em; white-space:nowrap; }

/* --- Quote glass --- */
.quote-glass { display:inline-block; background:rgba(255,255,255,0.05); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border:1px solid rgba(255,255,255,0.10); border-radius:14px; padding:28px 32px; max-width:560px; }
.quote-glass__text { font-size:16px; line-height:1.55; font-style:italic; color:#D6D6D6; font-weight:400; }
.quote-glass__author { font-family:var(--font-mono); font-size:12px; color:#7A7A7A; margin-top:10px; }

/* --- Pixel canvas --- */
.pixel-canvas { position:absolute; right:0; top:0; height:100%; width:min(46%,560px); image-rendering:pixelated; pointer-events:none; user-select:none; opacity:0.75; -webkit-mask-image:linear-gradient(to left,#000 30%,transparent); mask-image:linear-gradient(to left,#000 30%,transparent); }

/* --- Form --- */
.form-label { font-family:var(--font-mono); display:block; font-size:11px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--subtle); margin-bottom:8px; }
.form-control { width:100%; padding:13px 16px; border:1px solid var(--border); border-radius:10px; font-size:15px; font-family:var(--font-sans); background:var(--surface); color:var(--ink); outline:none; transition:border-color .2s ease; }
.form-control:focus { border-color:var(--ink); }
textarea.form-control { resize:vertical; }
.form-field { margin-bottom:20px; }
.form-field--lg { margin-bottom:24px; }
.form-optional { opacity:0.6; }
.checkbox-wrapper { display:flex; align-items:flex-start; gap:10px; }
.checkbox-wrapper input[type="checkbox"] { margin-top:4px; accent-color:var(--ink); }
.checkbox-wrapper label { font-size:13.5px; color:var(--muted); line-height:1.5; }

/* --- Inline CTA (chi-siamo style) --- */
.inline-cta { display:flex; justify-content:space-between; align-items:center; gap:48px; flex-wrap:wrap; }
.inline-cta__text { flex:1 1 420px; }
.inline-cta__text h2 { font-size:clamp(32px,4.4vw,54px); font-weight:500; letter-spacing:-0.04em; line-height:1.05; margin-bottom:20px; }
.inline-cta__text p { font-size:16px; line-height:1.65; color:var(--muted); max-width:520px; font-weight:400; }
.inline-cta__text a { text-decoration:underline; }

/* --- Utility --- */
.flex-end { display:flex; justify-content:flex-end; }
.flex-between { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.flex-actions { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.mt-12 { margin-top:12px; }
.mb-10 { margin-bottom:10px; }
.mb-16 { margin-bottom:16px; }
.mb-20 { margin-bottom:20px; }
.mb-28 { margin-bottom:28px; }
.mb-36 { margin-bottom:36px; }
.mb-48 { margin-bottom:48px; }
.mb-section { margin-bottom:clamp(48px,6vw,72px); }
.max-w-480 { max-width:480px; }
.max-w-520 { max-width:520px; }
.max-w-560 { max-width:560px; }
.max-w-600 { max-width:600px; }
.max-w-640 { max-width:640px; }
.max-w-760 { max-width:760px; }
.max-w-1000 { max-width:1000px; margin-left:auto; margin-right:auto; }

/* Arrow icon helper */
.icon-arrow { display:inline-flex; }

/* --- Responsive --- */
@media (max-width:1024px) {
  .header__actions { display:none !important; }
}
@media (max-width:768px) {
  .grid-3 { grid-template-columns:1fr; }
  .card--row { flex-direction:column; }
  .card--row .card__img { width:100%; height:190px; }
}

/* Passi in card (servizi: "Tre passi, senza rischi.") */
.steps-cards .step__num { margin-bottom:28px; }
.steps-cards .card:hover .step__num { color:var(--ink); }

/* --- Hero doors (home) --- */
.hero-doors { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; margin-top:clamp(48px,6vw,80px); }
.hero-door { justify-content:space-between; min-height:190px; }
.hero-door__foot { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:28px; }
.hero-door__label { font-size:13.5px; color:var(--muted); }
.hero-door .card__arrow { margin-top:0; }

/* --- Progetti --- */
.project { justify-content:flex-start; }
.project__head { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.project__head .card__tag { white-space:nowrap; }
.project__status { font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--subtle); border:1px solid var(--border); border-radius:999px; padding:4px 10px; white-space:nowrap; }
.project__status--live { color:var(--ink); border-color:var(--ink); }
.project__sub { font-size:14px; color:var(--subtle); margin-bottom:16px; }
.project__foot { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; margin-top:auto; padding-top:28px; }
.project__chips { display:flex; flex-wrap:wrap; gap:6px; }
.project__chip { font-family:var(--font-mono); font-size:11px; color:var(--muted); background:var(--surface-gray); border-radius:6px; padding:4px 8px; }
.project .card__arrow { margin-top:0; }
.sol-group + .sol-group { margin-top:clamp(56px,7vw,88px); }
.sol-group__head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px 40px; flex-wrap:wrap; margin-bottom:28px; }

/* schermi molto stretti (320px): evita che parole lunghe sforino il margine */
@media (max-width:340px) {
  .heading-case, .heading-case-lg { font-size:36px; }
}

/* prezzi (siti-web.html): loghi Cloudflare e Shopify come filigrana dietro le card */
.price-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-bottom:56px; }
.price-card { position:relative; padding:36px 32px 28px; isolation:isolate; }
.price-card::before { content:""; position:absolute; z-index:-1; right:-56px; bottom:-56px; width:340px; height:340px; background-color:#0A0A0A; opacity:.09; -webkit-mask:var(--logo) center/contain no-repeat; mask:var(--logo) center/contain no-repeat; transition:opacity .4s ease, background-color .4s ease, transform .5s var(--ease-out); pointer-events:none; }
.price-card:hover::before { background-color:var(--logo-color); opacity:.24; transform:scale(1.04) rotate(-2deg); }
.price-card--cloudflare { --logo:url(../brand/cloudflare.svg); --logo-color:#F38020; }
.price-card--cloudflare::before { width:400px; height:400px; right:-50px; bottom:-80px; }
.price-card--shopify::before { right:-40px; bottom:-40px; }
.price-card--shopify { --logo:url(../brand/shopify.svg); --logo-color:#5E8E3E; }
.price { display:flex; align-items:baseline; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.price__from, .price__vat { font-family:var(--font-mono); font-size:12px; color:var(--muted); }
.price__amount { font-size:52px; font-weight:600; letter-spacing:-0.03em; line-height:1; color:var(--ink); }
.price__amount--md { font-size:40px; }
.price-card__lead { font-size:15px; line-height:1.55; color:var(--ink-soft); margin-bottom:20px; max-width:380px; }
.price-list { list-style:none; padding:0; margin:0 0 24px; display:flex; flex-direction:column; gap:10px; }
.price-list li { position:relative; padding-left:22px; font-size:14.5px; line-height:1.5; color:var(--ink-soft); }
.price-list li::before { content:""; position:absolute; left:0; top:.55em; width:10px; height:5px; border-left:1.5px solid var(--ink); border-bottom:1.5px solid var(--ink); transform:translateY(-70%) rotate(-45deg); }
.price-list--muted li::before { border:0; width:8px; height:1.5px; background:var(--subtle); transform:none; top:.8em; }
.price-card__foot { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-top:18px; border-top:1px solid var(--border-light); }
.price-card__time { font-family:var(--font-mono); font-size:12px; color:var(--muted); }
.price-extra { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:48px; align-items:start; margin-bottom:48px; }
.price-subtitle { font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.addon { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding:16px 0; border-bottom:1px solid var(--border-light); }
.addon__text { display:flex; flex-direction:column; gap:4px; min-width:0; }
.addon__name { font-size:15.5px; font-weight:500; color:var(--ink); }
.addon__desc { font-size:13.5px; line-height:1.5; color:var(--muted); max-width:46ch; }
.addon__price { display:flex; flex-direction:column; align-items:flex-end; gap:2px; text-align:right; flex-shrink:0; font-size:15.5px; font-weight:600; color:var(--ink); }
.addon__note { font-family:var(--font-mono); font-size:11px; font-weight:400; color:var(--muted); }
.price-side { display:flex; flex-direction:column; gap:28px; }
.price-care { padding:28px 28px 24px; }
.price-care .price-list { margin-bottom:16px; }
.price-notes .price-list { margin-top:12px; margin-bottom:0; }
.price-foot { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; padding-top:32px; border-top:1px solid var(--border); }
.price-foot p { max-width:520px; margin:0; }

@media (max-width:900px) {
  .price-extra { grid-template-columns:minmax(0,1fr); gap:40px; }
}
@media (max-width:768px) {
  .price-grid { grid-template-columns:minmax(0,1fr); margin-bottom:40px; }
  .price-card { padding:28px 22px 22px; }
  .price-card::before, .price-card--shopify::before { width:280px; height:280px; right:-60px; bottom:-60px; }
  .price-card--cloudflare::before { width:340px; height:340px; right:-60px; bottom:-90px; }
  .price__amount { font-size:44px; }
  .addon { gap:14px; }
}
.price-list a { text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--subtle); }
.price-list a:hover { text-decoration-color:var(--ink); }
.intro-steps { margin-top:80px; }
.intro-steps__title { font-size:clamp(22px,3vw,28px); font-weight:500; letter-spacing:-0.02em; line-height:1.25; max-width:520px; margin-bottom:36px; }
@media (max-width:768px) { .intro-steps { margin-top:56px; } }

/* calcolatore lavoro manuale */
.calc [hidden] { display:none !important; }
.calc { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:48px; align-items:start; }
.calc__inputs { display:flex; flex-direction:column; gap:40px; }
.calc__block > .eyebrow { margin-bottom:16px; }
.calc__hint { font-size:13.5px; line-height:1.5; color:var(--muted); margin:8px 0 0; }
.calc-field { display:block; margin-top:16px; }
.calc-field .form-label { display:block; margin-bottom:8px; }
.calc-seg { display:inline-flex; flex-wrap:wrap; gap:4px; padding:4px; border:1px solid var(--border); border-radius:999px; background:var(--surface); }
.calc-seg button { font:inherit; font-size:13.5px; padding:9px 16px; border:0; border-radius:999px; background:transparent; color:var(--muted); cursor:pointer; transition:background .2s ease, color .2s ease; }
.calc-seg button[aria-pressed="true"] { background:var(--ink); color:#FFFFFF; }
.calc-task { position:relative; padding:20px; border:1px solid var(--border); border-radius:14px; background:var(--glass-bg); margin-top:12px; }
.calc-task > .calc-field:first-of-type { margin-top:0; }
.calc-task__nums { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.calc-task__nums .calc-field { margin-top:16px; }
select.form-control { appearance:none; -webkit-appearance:none; padding-right:40px; background:#FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%230A0A0A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center; cursor:pointer; text-overflow:ellipsis; }
.calc__hint--tight { display:block; margin-top:6px; font-size:12.5px; }
.calc__links { list-style:none; padding:0; margin:20px 0 0; display:flex; flex-direction:column; gap:8px; }
.calc__links a { font-size:14px; text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--subtle); }
.calc__links a:hover { text-decoration-color:var(--ink); }
.calc-task__remove { position:absolute; top:10px; right:10px; width:30px; height:30px; border:0; border-radius:50%; background:transparent; color:var(--muted); font-size:20px; line-height:1; cursor:pointer; transition:background .2s ease, color .2s ease; }
.calc-task__remove:hover { background:var(--surface-gray); color:var(--ink); }
.calc__add { margin-top:14px; font:inherit; font-size:14px; padding:10px 18px; border:1px dashed var(--subtle); border-radius:999px; background:transparent; color:var(--ink); cursor:pointer; transition:border-color .2s ease, background .2s ease; }
.calc__add:hover { border-color:var(--ink); background:var(--surface); }
.calc-range { width:100%; accent-color:var(--ink); }
.calc__result { position:sticky; top:96px; padding:32px 28px 28px; }
.calc__result:hover { transform:none; }
.calc__label { font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; }
.calc__big { font-size:clamp(40px,6vw,56px); font-weight:600; letter-spacing:-0.03em; line-height:1.05; }
.calc__mid { font-size:30px; font-weight:600; letter-spacing:-0.02em; line-height:1.1; }
.calc__sub { font-size:14.5px; color:var(--muted); margin-top:6px; }
.calc__sub strong { color:var(--ink); font-weight:500; }
.calc__fte { font-size:14.5px; line-height:1.5; color:var(--ink-soft); margin:14px 0 0; }
.calc__breakdown { list-style:none; padding:0; margin:20px 0 0; border-top:1px solid var(--border-light); }
.calc__breakdown li { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--border-light); font-size:14px; color:var(--ink-soft); }
.calc__breakdown li span:last-child { color:var(--ink); font-weight:500; white-space:nowrap; }
.calc__split { margin-top:28px; padding-top:24px; border-top:1px solid var(--border); }
.calc__payback { font-size:14.5px; line-height:1.5; color:var(--ink-soft); margin:14px 0 0; }
.calc__cta { margin-top:28px; width:100%; justify-content:center; }
.calc__fine, .calc__disclaimer { font-size:12.5px; line-height:1.5; color:var(--muted); }
.calc__fine { margin:14px 0 0; }
.calc__disclaimer { margin:32px 0 0; max-width:560px; }
.calc__empty { font-size:15px; line-height:1.5; color:var(--muted); margin:0; }
@media (max-width:900px) {
  .calc { grid-template-columns:minmax(0,1fr); gap:40px; }
  .calc__result { position:static; }
}
@media (max-width:480px) {
  .calc-task { padding:16px; }
  .calc-task__nums { gap:8px; }
  .calc-seg { display:flex; }
  .calc-seg button { flex:1 1 auto; padding:9px 10px; font-size:13px; }
}
.calc__today { font-size:14.5px; line-height:1.5; color:var(--muted); margin:0 0 24px; padding-bottom:20px; border-bottom:1px solid var(--border-light); }
.calc__share { font-size:14.5px; line-height:1.5; color:var(--ink-soft); margin:14px 0 0; }
.calc__range { font-size:15px; line-height:1.4; color:var(--ink-soft); margin:0 0 8px; }
/* calcolatore costo sito: opzioni con casella */
.calc-opt { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:start; padding:16px 18px; margin-top:10px; border:1px solid var(--border); border-radius:14px; background:var(--glass-bg); cursor:pointer; transition:border-color .2s ease; }
.calc-opt:hover { border-color:var(--subtle); }
.calc-opt:has(input:checked) { border-color:var(--ink); }
.calc-opt input { width:18px; height:18px; margin:2px 0 0; accent-color:var(--ink); }
.calc-opt__title { display:block; font-size:15px; font-weight:500; }
.calc-opt__desc { display:block; font-size:13.5px; line-height:1.45; color:var(--muted); margin-top:3px; }
.calc-opt__desc a { text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--subtle); }
.calc-opt__price { font-size:14px; font-weight:500; text-align:right; max-width:110px; }
.calc-opt__price:empty { display:none; }
.calc-num { max-width:160px; }
.calc-seg + .calc__hint { margin-top:14px; }
@media (max-width:480px) {
  .calc-opt { grid-template-columns:auto minmax(0,1fr); padding:14px; }
  .calc-opt__price { grid-column:2; text-align:left; max-width:none; }
}
/* verifica sito (IA readiness) */
.check-url { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; width:100%; max-width:760px; margin-inline:auto; }
.check-url__field { flex:1 1 280px; margin-top:0; }
.check-url__btn { flex:0 0 auto; }
.check-url__btn:disabled { opacity:.6; cursor:progress; }
#v-error { color:var(--ink); margin:12px auto 0; max-width:760px; }
.check-grid { margin-top:48px; }
.check-grid [hidden] { display:none !important; }
.check-list { display:flex; flex-direction:column; gap:40px; }
.check-group > .eyebrow { margin-bottom:12px; }
.check-item { padding:16px 0; border-bottom:1px solid var(--border-light); }
.check-item__head { display:flex; align-items:center; gap:12px; }
.check-item__title { font-size:15.5px; font-weight:500; }
.check-item__ev { font-size:14.5px; line-height:1.5; color:var(--ink-soft); margin:8px 0 0; }
.check-item__fix { font-size:13.5px; line-height:1.5; color:var(--muted); margin:6px 0 0; }
.check-item__fix strong { font-weight:500; color:var(--ink-soft); }
.check-badge { flex:0 0 auto; min-width:74px; text-align:center; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; padding:4px 10px; border-radius:999px; border:1px solid var(--ink); }
.check-badge--ok { background:var(--ink); color:#FFFFFF; }
.check-badge--partial { background:transparent; color:var(--ink); }
.check-badge--fail { background:transparent; color:var(--muted); border-style:dashed; border-color:var(--subtle); }
.check-score__max { font-size:.4em; color:var(--muted); font-weight:500; letter-spacing:0; }
@media (max-width:900px) {
  .check-grid .calc__result { order:-1; }
}

/* Check-up: animazione di caricamento e scheda del risultato */
.check-loading { margin:40px auto 0; max-width:760px; padding:24px 28px; border:1px solid var(--border-light); border-radius:16px; background:var(--glass-bg); animation:check-rise .4s ease both; }
.check-loading[hidden] { display:none; }
.check-loading__head { display:flex; justify-content:space-between; gap:16px; align-items:baseline; font-size:14px; }
.check-loading__host { font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.check-loading__title { font-weight:500; white-space:nowrap; }
.check-loading__bar { height:3px; margin:16px 0 20px; background:var(--border-light); border-radius:2px; overflow:hidden; }
.check-loading__bar i { display:block; height:100%; width:0; background:var(--ink); border-radius:2px; transition:width .9s cubic-bezier(.2,.7,.2,1); }
.check-loading__steps { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.check-step { display:flex; align-items:center; gap:12px; font-size:14.5px; color:var(--subtle); opacity:.55; transition:color .3s, opacity .3s; }
.check-step__dot { position:relative; flex:0 0 18px; width:18px; height:18px; border-radius:50%; border:1.5px solid currentColor; box-sizing:border-box; }
.check-step--active { color:var(--ink); opacity:1; }
.check-step--active .check-step__dot { border-color:var(--border-light); border-top-color:var(--ink); animation:check-spin .7s linear infinite; }
.check-step--done { color:var(--ink-soft); opacity:1; }
.check-step--done .check-step__dot { background:var(--ink); border-color:var(--ink); }
.check-step--done .check-step__dot::after { content:''; position:absolute; left:5px; top:2px; width:4px; height:8px; border:solid #fff; border-width:0 1.5px 1.5px 0; transform:rotate(45deg); animation:check-pop .25s ease both; }

.check-grid.is-revealed .calc__result { animation:check-rise .55s cubic-bezier(.2,.7,.2,1) both; }
.check-ring { position:relative; width:184px; height:184px; margin:12px 0 8px; }
.check-ring svg { width:100%; height:100%; transform:rotate(-90deg); }
.check-ring circle { fill:none; stroke-width:6; }
.check-ring__track { stroke:var(--border-light); }
.check-ring__bar { stroke:var(--ink); stroke-linecap:round; stroke-dasharray:100; stroke-dashoffset:100; transition:stroke-dashoffset 1.3s cubic-bezier(.2,.7,.2,1) .15s; }
.check-ring__num { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; margin:0; padding:0; font-size:56px; line-height:1; font-variant-numeric:tabular-nums; }
.check-ring__num .check-score__max { margin-top:8px; font-size:13px; line-height:1; letter-spacing:.04em; }
.check-areas li { flex-wrap:wrap; row-gap:8px; }
.check-bar { flex:0 0 100%; height:3px; background:var(--border-light); border-radius:2px; overflow:hidden; }
.check-bar i { display:block; height:100%; width:0; background:var(--ink); border-radius:2px; transition:width 1.1s cubic-bezier(.2,.7,.2,1) var(--d,0s); }
.check-item--pre { opacity:0; transform:translateY(10px); }
.check-item { transition:opacity .45s ease, transform .45s cubic-bezier(.2,.7,.2,1); }
@keyframes check-spin { to { transform:rotate(360deg); } }
@keyframes check-rise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@keyframes check-pop { from { opacity:0; transform:rotate(45deg) scale(.4); } to { opacity:1; transform:rotate(45deg) scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .check-loading, .check-grid.is-revealed .calc__result, .check-step--active .check-step__dot, .check-step__dot::after { animation:none !important; }
  .check-ring__bar, .check-bar i, .check-loading__bar i, .check-item, .check-step { transition:none !important; }
  .check-item--pre { opacity:1; transform:none; }
}

#v-out[hidden] { display:none !important; }
