/*
 * Rete Felina — Base Stylesheet
 */
:root {
    --rete-primary: #A367A1;
    --rete-primary-light: #F3EAF3;
    --rete-primary-dark: #7A4D79;
    --rete-accent: #00C0C6;
    --rete-accent-light: #E5F8F9;
    --rete-surface: #FAFAF8;
    --rete-card: #FFFFFF;
    --rete-text: #1E293B;
    --rete-text-muted: #64748B;
    --rete-border: #E2E8F0;
    --rete-radius: 1rem;
    --rete-shadow-card: 0 2px 12px rgba(30, 41, 59, .06);
    --rete-shadow-hover: 0 16px 48px rgba(30, 41, 59, .1);

    /* Legacy ali-* aliases used inside leftover block render templates. */
    --ali-teal: var(--rete-accent);
    --ali-teal-deep: #008A8E;
    --ali-teal-glow: var(--rete-accent-light);
    --ali-navy: var(--rete-primary-dark);
    --ali-navy-light: var(--rete-primary);
    --ali-cream: var(--rete-surface);
    --ali-warm-gray: var(--rete-border);
    --ali-text: var(--rete-text);
    --ali-text-secondary: var(--rete-text-muted);
    --ali-radius: var(--rete-radius);
    --ali-btn-radius: 50px;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: 'Nunito', system-ui, -apple-system, sans-serif; font-size: 1rem; line-height: 1.6; color: var(--rete-text); background: var(--rete-surface); -webkit-font-smoothing: antialiased; }
img, svg { max-width: 100%; display: block; }
h1, h2, h3, h4, h5, h6 { font-family: 'Lora', Georgia, serif; font-weight: 600; line-height: 1.2; color: var(--rete-text); }
h1 { font-size: clamp(2rem, 4vw, 3rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); }
h3 { font-size: clamp(1.3rem, 2vw, 1.6rem); }
h4 { font-size: 1.2rem; }
h5 { font-size: 1.05rem; }
h6 { font-size: .95rem; }
a { color: var(--rete-primary); text-decoration: none; }
a:hover { color: var(--rete-primary-dark); text-decoration: underline; }
p { margin: 0 0 1em; }
::selection { background: var(--rete-primary-light); color: var(--rete-primary-dark); }
.rete-container { max-width: 1140px; margin: 0 auto; padding: 0 1.25rem; }
html { scroll-behavior: smooth; }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.reveal { animation: fadeInUp .8s cubic-bezier(.22,1,.36,1) both; }
.reveal-d1 { animation-delay: .1s; }
.reveal-d2 { animation-delay: .2s; }
.reveal-d3 { animation-delay: .3s; }
.entry-content > * { margin-block: 1em; }
.entry-content h2 { margin-top: 1.5em; }
.entry-content h3 { margin-top: 1.5em; }
.entry-content blockquote { border-left: 3px solid var(--rete-primary); padding-left: 1rem; color: var(--rete-text-muted); font-style: italic; }
.entry-content ul, .entry-content ol { padding-left: 1.5rem; }

/* ── Section label (shared, used by rete/* blocks) ───────── */
.ali-label {
    font-family: 'Nunito', sans-serif;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .15em;
    color: var(--block-accent, var(--rete-accent));
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.ali-label::before {
    content: '';
    width: 24px;
    height: 2px;
    background: var(--block-accent, var(--rete-accent));
    border-radius: 1px;
}
.ali-label--no-line::before { display: none; }

/* ── Section heading (shared) ────────────────────────────── */
.ali-heading {
    font-family: 'Lora', Georgia, serif;
    font-weight: 600;
    color: var(--rete-text);
    margin: 0 0 28px;
    line-height: 1.15;
}

/* ── Pill button (shared) ────────────────────────────────── */
.ali-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rete-accent);
    color: #fff;
    font-family: 'Nunito', sans-serif;
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .04em;
    padding: 12px 28px;
    border: none;
    border-radius: var(--ali-btn-radius);
    cursor: pointer;
    transition: all .3s cubic-bezier(.22, 1, .36, 1);
    text-decoration: none;
}
.ali-btn::after {
    content: '\2192';
    transition: transform .3s ease;
}
.ali-btn:hover {
    background: var(--rete-primary);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(0, 192, 198, .3);
    text-decoration: none;
}
.ali-btn:hover::after {
    transform: translateX(3px);
}
.ali-btn--outline {
    background: transparent;
    border: 2px solid rgba(255, 255, 255, .25);
    color: #fff;
}
.ali-btn--outline:hover {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .5);
    color: #fff;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .15);
}
.ali-btn--white {
    background: #fff;
    color: var(--rete-primary-dark);
}
.ali-btn--white:hover {
    background: #fff;
    color: var(--rete-primary);
    box-shadow: 0 8px 30px rgba(0, 0, 0, .15);
}
.ali-btn--outline-teal,
.ali-btn--outline-secondary {
    background: transparent;
    border: 1.5px solid var(--block-accent, var(--rete-accent));
    color: var(--block-accent, var(--rete-accent)) !important;
}
.ali-btn--outline-teal:hover,
.ali-btn--outline-secondary:hover {
    background: var(--block-accent, var(--rete-accent));
    color: #fff !important;
    box-shadow: 0 6px 24px var(--block-accent-glow, rgba(0, 192, 198, .3));
}
.ali-btn--ghost {
    background: none;
    border: none;
    color: var(--block-accent, var(--rete-accent)) !important;
    font-weight: 600;
    padding: 10px 8px;
    text-decoration: none !important;
}
.ali-btn--ghost:hover {
    text-decoration: underline !important;
}
.ali-btn--sm {
    padding: 10px 22px;
    font-size: .78rem;
}

/* ── Blocchi Full-Width page layout ──────────────────────
   Constrains top-level core blocks (Heading, Columns, Group,
   etc.) to 1140px while letting rete/* full-width blocks
   (alignfull) break out to the viewport edge. */
.rete-page-content {
    overflow-x: hidden; /* prevent horizontal scroll from alignfull break-out */
}
.rete-page-content > * {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    box-sizing: border-box;
}
.rete-page-content > .alignfull {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    width: 100%;
}
.rete-page-content > .alignwide {
    max-width: 1140px;
}
