/* Oroscopo Aziendale — layout di pagina (usa i token Astro DS).
   I componenti stanno in ds/components.css; qui solo lo scaffolding delle pagine. */

.wrap { max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.wrap--narrow { max-width: 760px; }

/* ---- Nav ---- */
.site-nav {
  position: sticky; top: 0; z-index: 50;
  background: var(--bg); border-bottom: var(--bw-2) solid var(--border-ink);
}
.site-nav__inner { display: flex; align-items: center; justify-content: space-between; height: 70px; }
.site-nav__brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--text); }
.site-nav__brand img { height: 30px; }
.site-nav__links { display: flex; align-items: center; gap: 26px; }
.site-nav__links a { color: var(--text); text-decoration: none; font-size: 15px; font-weight: 600; }
@media (max-width: 720px) { .site-nav__links a:not(.ads-btn) { display: none; } }

/* ---- Hero ---- */
.hero { position: relative; overflow: hidden; border-bottom: var(--bw-2) solid var(--border-ink); }
.hero__stars { position: absolute; inset: 0; opacity: 0.5; }
.hero__mark {
  position: absolute; right: -120px; top: -90px; width: 460px; opacity: 0.07; pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) { .hero__mark { animation: astro-spin 200s linear infinite; } }
.hero__grid {
  position: relative; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px;
  align-items: center; padding: 72px 24px 80px;
}
.hero__title { font-size: clamp(48px, 7vw, 104px); margin: 0 0 22px; color: var(--text); font-weight: 400; }
.hero__title em {
  font-style: italic; color: var(--text);
  background: linear-gradient(transparent 58%, var(--accent) 58% 92%, transparent 92%);
  padding: 0 0.06em; -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.hero__lede { font-size: 19px; line-height: 1.6; color: var(--text-muted); max-width: 480px; margin: 0 0 30px; }
.hero__cta { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.hero__fine { font-family: var(--font-mono); font-size: 12px; color: var(--text-subtle); margin-top: 24px; letter-spacing: 0.04em; }
.hero__aside { display: flex; flex-direction: column; align-items: center; gap: 22px; }
.hero__card { width: 100%; max-width: 360px; transform: rotate(-1.5deg); }
@media (max-width: 860px) {
  .hero__grid { grid-template-columns: 1fr; gap: 40px; padding: 48px 24px 60px; }
  .hero__aside { order: -1; }
}

/* ---- Sections ---- */
.section { padding: 76px 0; }
.section--sunken { background: var(--surface-sunken); }
.section__head { text-align: center; max-width: 640px; margin: 0 auto 44px; }
.section__head--left { text-align: left; margin: 0 0 40px; max-width: none; }
.section__title { font-size: clamp(32px, 4.4vw, 54px); margin: 10px 0 0; color: var(--text); font-weight: 400; }
.section__title em { font-style: italic; color: var(--accent-2); }
.section__sub { font-size: 17px; line-height: 1.6; color: var(--text-muted); margin: 14px auto 0; max-width: 560px; }

.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 820px) { .grid-3 { grid-template-columns: 1fr; } }

/* ---- Manifesto band (dark) ---- */
.manifesto {
  background: var(--c-oxblood); color: var(--c-paper-50);
  border-top: var(--bw-2) solid var(--c-ink-900); border-bottom: var(--bw-2) solid var(--c-ink-900);
}
.manifesto__inner { position: relative; padding: 88px 24px; display: flex; align-items: center; gap: 48px; flex-wrap: wrap; }
.manifesto__text { flex: 1 1 460px; }
.manifesto__quote { font-size: clamp(30px, 4.2vw, 56px); line-height: 1.07; margin: 16px 0 0; font-weight: 400; color: var(--c-paper-50); }
.manifesto__quote em { font-style: italic; color: var(--accent); }
.manifesto__wheel { flex: 0 0 auto; width: 210px; }

/* ---- Signup ---- */
.signup__card { padding: clamp(24px, 4vw, 44px); box-shadow: var(--shadow-hard-lg); }
.signup__head { margin-bottom: 30px; }
.signup__title { font-size: clamp(30px, 3.6vw, 44px); margin: 10px 0 6px; font-weight: 400; }
.signup__title em { font-style: italic; color: var(--accent); }
.signup__sub { color: var(--text-muted); font-size: 16px; margin: 0; }
.form-grid { display: grid; gap: 22px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 560px) { .form-row { grid-template-columns: 1fr; } }
.consent-box { background: var(--surface-card); border: var(--bw-2) solid var(--border-ink); border-radius: var(--r-md); padding: 16px 18px; }
.form-submit { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.form-submit__note { font-family: var(--font-mono); font-size: 12px; color: var(--text-subtle); }
.form-message { font-weight: 600; min-height: 1.4em; font-family: var(--font-sans); }
.form-message.ok { color: var(--success); }
.form-message.error { color: var(--danger); }
/* honeypot */
.hp { position: absolute; left: -9999px; top: -9999px; height: 0; overflow: hidden; }

/* ---- Footer ---- */
.site-footer { background: var(--c-ink-950); color: var(--text-muted); border-top: var(--bw-2) solid var(--border-ink); }
.site-footer__top { padding: 52px 24px; display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; flex-wrap: wrap; }
.site-footer__blurb { max-width: 320px; }
.site-footer__blurb img { height: 30px; }
.site-footer__blurb p { font-size: 13px; line-height: 1.6; color: var(--text-subtle); margin-top: 16px; }
.site-footer__cols { display: flex; gap: 56px; flex-wrap: wrap; }
.site-footer__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.site-footer__col a { color: var(--text-muted); font-size: 14px; text-decoration: none; }
.site-footer__col a:hover { color: var(--accent); }
.site-footer__bar {
  padding: 18px 24px; border-top: var(--bw-hair) solid var(--border);
  display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 11px;
  color: var(--text-subtle); flex-wrap: wrap; gap: 8px;
}

/* ---- System / centered notice ---- */
.centered { min-height: 82vh; display: flex; align-items: center; justify-content: center; padding: 40px 20px; }
.centered__card { padding: 12px; max-width: 560px; width: 100%; }

/* ---- Legal (privacy) ---- */
.legal { padding: 40px 0 60px; }
.legal h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(32px,4vw,48px); margin: 0 0 6px; }
.legal h2 { font-family: var(--font-display); font-weight: 400; font-size: 1.4rem; margin: 28px 0 6px; }
.legal p, .legal li { color: var(--text-muted); line-height: 1.65; }
.legal-note { background: var(--accent-soft); border: var(--bw-1) solid var(--accent); padding: 12px 16px; border-radius: var(--r-md); font-size: 0.92rem; color: var(--text); }
