/* H4L - pagine contenuti (home + pagine interne) */
.p-topbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 30;
  display: flex; justify-content: space-between; align-items: center;
  padding: 18px 24px;
  background: linear-gradient(180deg, rgba(3,3,8,.75), rgba(3,3,8,0));
}
.p-topbar .logo { color: var(--ink); font-weight: 900; font-size: 18px; letter-spacing: .08em; text-decoration: none; }
.p-topbar .navlink { color: rgba(255,255,255,.75); font-size: 10px; letter-spacing: .25em; text-decoration: none; border: 1px solid rgba(255,255,255,.25); padding: 9px 14px; background: rgba(3,3,8,.5); }

.c-hero { position: relative; height: 100vh; min-height: 540px; overflow: hidden; display: flex; align-items: flex-end; }
.c-hero video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: contrast(1.05) brightness(.9); }
.c-veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,3,8,.55) 0%, rgba(3,3,8,.15) 45%, rgba(3,3,8,.92) 100%); }
.c-hero-inner { position: relative; z-index: 1; padding: 0 7vw 11vh; }
.c-kicker { color: rgba(255,255,255,.7); font-size: 12px; letter-spacing: .42em; margin-bottom: 18px; }
.c-h1 { color: var(--ink); font-weight: 900; font-size: clamp(34px, 7.5vw, 84px); line-height: 1.02; letter-spacing: .02em; margin: 0 0 22px; }
.c-hero-sub { color: var(--ink-70); font-size: 16px; max-width: 430px; line-height: 1.6; }
.c-scrolldown { color: rgba(255,255,255,.4); font-size: 10px; letter-spacing: .35em; margin-top: 34px; }

.c-sec { display: flex; gap: 5vw; padding: 13vh 7vw; border-top: 1px solid var(--line); align-items: flex-start; }
.c-sec.alt { flex-direction: row-reverse; text-align: right; }
.c-sec.alt .c-line, .c-sec.alt .c-p { margin-left: auto; }
.c-num { font-size: clamp(56px, 11vw, 120px); font-weight: 400; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.22); line-height: 1; flex: 0 0 auto; }
.c-secbody { flex: 1; padding-top: 8px; }
.c-h2 { color: var(--ink); font-weight: 900; font-size: clamp(24px, 4.5vw, 40px); letter-spacing: .04em; margin: 0; }
.c-line { width: 46px; height: 1px; background: rgba(255,255,255,.4); margin: 16px 0; }
.c-p { color: var(--ink-70); font-size: 16px; line-height: 1.65; max-width: 460px; margin: 0 0 20px; }
.c-link { background: none; border: none; color: rgba(255,255,255,.85); font-size: 12px; letter-spacing: .3em; cursor: pointer; padding: 0 0 4px; border-bottom: 1px solid rgba(255,255,255,.3); text-decoration: none; display: inline-block; }

.c-media { padding: 10vh 4vw; display: flex; flex-direction: column; align-items: center; gap: 22px; border-top: 1px solid var(--line); }
.c-media video { max-height: 88vh; max-width: 96vw; filter: contrast(1.05); border: 1px solid rgba(255,255,255,.14); }
.c-media-cap { color: rgba(255,255,255,.6); font-size: 11px; letter-spacing: .35em; }
.c-media-head { color: rgba(255,255,255,.75); font-size: 12px; letter-spacing: .42em; }

.c-promo { padding: 12vh 7vw; text-align: center; border-top: 1px solid var(--line); }
.c-promo-kick { color: rgba(255,255,255,.55); font-size: 11px; letter-spacing: .42em; margin-bottom: 14px; }
.c-promo-big { color: var(--ink); font-weight: 900; font-size: clamp(26px, 6vw, 52px); letter-spacing: .03em; margin-bottom: 16px; }

.c-foot { padding: 16vh 7vw 12vh; text-align: center; border-top: 1px solid var(--line); }
.c-foot .c-h2 { margin-bottom: 34px; }
.c-cred { color: rgba(255,255,255,.3); font-size: 10px; letter-spacing: .25em; margin-top: 52px; }

.c-contacts { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.c-sec.alt .c-contacts { align-items: flex-end; }
.c-addr { color: rgba(255,255,255,.65); font-size: 14px; margin-top: 6px; }
.c-cta-mini { display: inline-block; margin-top: 4px; color: var(--ink); border: 1px solid rgba(255,255,255,.7); padding: 11px 24px; font-size: 11px; letter-spacing: .3em; text-decoration: none; background: transparent; cursor: pointer; }

/* pagine interne (corsi, pt, ecc.) */
.k-head { padding: 15vh 7vw 5vh; }
.k-title { color: var(--ink); font-weight: 900; font-size: clamp(30px, 6.5vw, 60px); letter-spacing: .03em; margin: 6px 0 14px; }
.k-card { border-top: 1px solid var(--line); padding: 6vh 7vw; }
.k-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 8px; }
.k-name { color: var(--ink); font-weight: 900; font-size: clamp(21px, 4.5vw, 32px); letter-spacing: .04em; }
.k-badge { font-size: 10px; letter-spacing: .3em; padding: 7px 12px; border: 1px solid rgba(255,255,255,.3); color: rgba(255,255,255,.65); white-space: nowrap; }
.k-badge.soon { border-color: rgba(255,255,255,.9); color: #ffffff; }
.k-tag { color: rgba(255,255,255,.55); font-size: 11px; letter-spacing: .3em; margin-bottom: 14px; }
.k-note { padding: 5vh 7vw 14vh; color: rgba(255,255,255,.5); font-size: 11px; letter-spacing: .25em; line-height: 2; }
.k-steps { display: flex; flex-direction: column; gap: 0; }

@media (max-width: 700px) {
  .c-sec, .c-sec.alt { flex-direction: column; text-align: left; gap: 10px; }
  .c-sec.alt .c-line, .c-sec.alt .c-p { margin-left: 0; }
  .c-sec.alt .c-contacts { align-items: flex-start; }
}

/* regolamento */
.r-list { color: var(--ink-70); font-size: 15px; line-height: 1.75; max-width: 640px; padding-left: 20px; margin: 0; }
.r-list li { margin-bottom: 10px; }
.k-todo { display: inline-block; border: 1px dashed rgba(255,255,255,.55); color: #fff; font-family: "Courier New", ui-monospace, monospace; font-size: 10px; letter-spacing: .2em; padding: 2px 8px; vertical-align: middle; }

.k-photo { width: 100%; max-width: 560px; display: block; border: 1px solid rgba(255,255,255,.14); margin: 4px 0 18px; }

/* firma sviluppatore */
.c-dev { margin-top: 16px; }
.c-dev a { color: rgba(255,255,255,.45); font-size: 10px; letter-spacing: .25em; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.2); padding-bottom: 3px; transition: color .25s; }
.c-dev a:hover { color: #f5f6fa; }
