/*
  Identità visiva provvisoria ma già strutturata.
  Sostituire il logo e le immagini mantenendo dimensioni e proporzioni dei placeholder SVG.
*/
:root {
    --ink: #17221f;
    --muted: #60716c;
    --forest: #16352f;
    --forest-2: #214c43;
    --mint: #dfeee8;
    --lime: #b6dc4b;
    --sand: #f5f1e8;
    --paper: #fbfcfa;
    --line: #d9e1dd;
    --white: #ffffff;
    --radius-sm: .75rem;
    --radius: 1.25rem;
    --radius-lg: 2rem;
    --shadow: 0 18px 50px rgba(22,53,47,.11);
}

html { scroll-behavior: smooth; }
body {
    color: var(--ink);
    background: var(--paper);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.65;
}
img { max-width: 100%; height: auto; }
a { color: var(--forest-2); }
a:hover { color: var(--forest); }

.skip-link { position:absolute; left:-999px; top:0; z-index:9999; background:#fff; padding:.75rem 1rem; }
.skip-link:focus { left:1rem; top:1rem; }

.site-header { background: rgba(251,252,250,.94); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(22,53,47,.08); }
.navbar { min-height: 82px; }
.navbar-brand img { display:block; }
.nav-link { color: var(--ink); font-weight: 600; font-size:.94rem; padding:.75rem .7rem !important; }
.nav-link:hover, .nav-link.active { color: var(--forest-2); }
.nav-link.active { position:relative; }
.nav-link.active::after { content:""; position:absolute; left:.7rem; right:.7rem; bottom:.35rem; height:2px; background:var(--lime); }

.btn { border-radius:999px; font-weight:700; padding:.8rem 1.2rem; }
.btn-primary { background:var(--forest); border-color:var(--forest); }
.btn-primary:hover, .btn-primary:focus { background:var(--forest-2); border-color:var(--forest-2); }
.btn-outline-primary { color:var(--forest); border-color:var(--forest); }
.btn-outline-primary:hover { background:var(--forest); border-color:var(--forest); }
.btn-light { color:var(--forest); }

.eyebrow { text-transform:uppercase; letter-spacing:.12em; font-size:.76rem; font-weight:800; color:var(--forest-2); }
.display-title { font-size:clamp(2.7rem, 6vw, 5.9rem); line-height:.98; letter-spacing:-.055em; font-weight:800; }
.page-title { font-size:clamp(2.5rem, 5vw, 4.9rem); line-height:1.02; letter-spacing:-.045em; font-weight:800; }
.section-title { font-size:clamp(2rem, 4vw, 3.65rem); line-height:1.08; letter-spacing:-.035em; font-weight:800; }
.lead-xl { font-size:clamp(1.2rem, 2vw, 1.55rem); line-height:1.55; color:#34443f; }
.lead-xl-scuro { font-size:clamp(1.2rem, 2vw, 1.55rem); line-height:1.55; color:#429d81; }
.text-muted-custom { color:var(--muted); }

.hero { padding:clamp(5rem, 10vw, 9rem) 0 5rem; overflow:hidden; }
.hero-copy { max-width:950px; }
.hero .accent { color:var(--forest-2); }
.hero-proof { display:flex; flex-wrap:wrap; gap:.65rem 1rem; margin-top:2rem; color:var(--muted); font-size:.95rem; }
.hero-proof span::before { content:"✓"; color:var(--forest-2); font-weight:800; margin-right:.45rem; }

.section { padding:clamp(5rem, 9vw, 8rem) 0; }
.section-sm { padding:4rem 0; }
.section-dark { background:var(--forest); color:var(--white); }
.section-dark .eyebrow, .section-dark .text-muted-custom { color:#b9d0c8; }
.section-sand { background:var(--sand); }
.section-mint { background:var(--mint); }

.idea-panel { max-width:1050px; margin-inline:auto; }
.idea-number { display:inline-grid; place-items:center; width:2.75rem; height:2.75rem; border-radius:50%; background:var(--lime); color:var(--forest); font-weight:900; }
.insight { border-left:4px solid var(--lime); padding-left:1.2rem; font-size:clamp(1.3rem, 2.5vw, 2rem); line-height:1.35; font-weight:750; }

.card-soft { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.5rem, 3vw, 2.5rem); height:100%; box-shadow:0 8px 28px rgba(22,53,47,.05); }
.card-soft h3 { font-size:1.25rem; font-weight:800; }
.card-dark { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:var(--radius); padding:2rem; height:100%; }

.placeholder-frame { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); background:#eaf0ed; }
.placeholder-frame img { width:100%; display:block; }
.placeholder-note { font-size:.8rem; color:var(--muted); margin-top:.6rem; }

.chapter-nav { display:flex; flex-wrap:wrap; gap:.65rem; }
.chapter-nav a { text-decoration:none; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:999px; padding:.55rem .85rem; font-weight:700; font-size:.88rem; }
.chapter-nav a:hover { border-color:var(--forest); }

.question-block { padding:clamp(2rem, 5vw, 4rem); border-radius:var(--radius-lg); background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); }
.question-block .question { font-size:clamp(1.9rem,4vw,3.4rem); line-height:1.1; font-weight:800; letter-spacing:-.035em; }

.cta-band { background:var(--lime); color:var(--forest); border-radius:var(--radius-lg); padding:clamp(2rem,5vw,4.5rem); }
.cta-band h2 { font-size:clamp(2rem,4vw,3.8rem); letter-spacing:-.04em; font-weight:850; }

.process-step { position:relative; padding-left:4.25rem; }
.process-step::before { content:attr(data-step); position:absolute; left:0; top:0; width:3rem; height:3rem; display:grid; place-items:center; border-radius:50%; background:var(--forest); color:#fff; font-weight:850; }
.process-step:not(:last-child)::after { content:""; position:absolute; left:1.45rem; top:3.25rem; bottom:-2rem; width:1px; background:var(--line); }

.quote-card { background:#fff; border-radius:var(--radius-lg); padding:clamp(2rem,5vw,4rem); box-shadow:var(--shadow); }
.quote-card blockquote { font-size:clamp(1.25rem,2.2vw,1.8rem); line-height:1.55; }

.kpi-word { font-size:clamp(3rem,8vw,7rem); font-weight:900; letter-spacing:-.06em; color:var(--forest); line-height:.9; }

.form-control, .form-select { border-radius:.9rem; border-color:#cbd7d2; min-height:3.25rem; }
.form-control:focus, .form-select:focus { border-color:var(--forest-2); box-shadow:0 0 0 .25rem rgba(33,76,67,.12); }
.form-label { font-weight:750; }

.site-footer { background:#0f2924; color:#d8e5e0; }
.site-footer a { color:#d8e5e0; text-decoration:none; }
.site-footer a:hover { color:#fff; }
.footer-logo { opacity:.95; }
.footer-title { color:#fff; font-size:.9rem; text-transform:uppercase; letter-spacing:.1em; font-weight:800; }
.footer-links li { margin:.5rem 0; }
.footer-hook { color:var(--lime); font-weight:800; }
.footer-rule { border-color:rgba(255,255,255,.15); }

.cookie-banner { position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:1080; max-width:760px; margin:auto; padding:1rem; border-radius:1rem; background:#fff; box-shadow:0 16px 50px rgba(0,0,0,.25); border:1px solid var(--line); display:none; }
.cookie-banner.show { display:block; }

@media (max-width: 991.98px) {
    .navbar-collapse { padding:1rem 0 1.25rem; }
    .nav-link.active::after { display:none; }
    .hero { padding-top:4.5rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}
