.carta-corpo h3
{
    margin-top: 1.6rem;
    color: var(--gold, #d9b45b);
}
.carta-corpo p
{
    line-height: 1.75;
    margin: 0.8rem 0;
}
.carta-corpo ul,
.carta-corpo ol
{
    line-height: 1.7;
    padding-left: 1.2rem;
}
.num-reading-heading
{
    margin-top: 2rem;
}

/* Layout del form (Bootstrap grid: container/row/col nel markup dei tool). */
.tool-desc-col
{
    padding-top: 0.4rem;
    color: var(--lavanda);
    line-height: 1.75;
}
.tool-desc-col .tool-intro
{
    font-size: 1.08rem;
    color: var(--panna);
    margin-bottom: 1rem;
}
.tool-desc-col p
{
    margin: 0 0 1rem;
}

/* Compatibilità per area (coppia): card con icona, 4 colonne via Bootstrap grid */
.compat-card
{
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.5rem;
    height: 100%;
    padding: 1.4rem 1rem;
    margin-bottom: 1.2rem;
    border: 1px solid rgba(185, 175, 214, .12);
    border-radius: var(--radius);
    background: linear-gradient(160deg, var(--indaco-700), var(--indaco-800));
}
.compat-icon
{
    width: 40px;
    height: 40px;
    color: var(--oro-soft);
}
.compat-icon svg
{
    width: 100%;
    height: 100%;
}
.compat-name
{
    color: var(--lavanda);
    font-size: 0.92rem;
}
.compat-score
{
    font-family: var(--font-num);
    font-size: 1.3rem;
    font-weight: 600;
}
.compat-score.level-compatibile { color: var(--oro); }
.compat-score.level-neutra      { color: var(--lavanda); }
.compat-score.level-sfida       { color: var(--rosa); }
.tool-desc-col .tool-payment-note
{
    margin-top: 1.2rem;
    padding: 1rem 1.2rem;
    border-radius: var(--radius, 12px);
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(185, 175, 214, .16);
    font-size: .92rem;
}

/* Colonna laterale del risultato: stampa, link permanente, condivisione */
.tool-share-col
{
    position: sticky;
    top: 5.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}
.tool-share-btn
{
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.8rem 1rem;
    border: 1px solid rgba(185, 175, 214, .12);
    border-radius: var(--radius-sm);
    background: linear-gradient(160deg, var(--indaco-700), var(--indaco-800));
    color: var(--panna);
    font-weight: 600;
    font-size: 0.92rem;
    text-align: left;
}
.tool-share-btn:hover
{
    border-color: var(--oro);
    color: var(--oro-soft);
}
.tool-share-btn svg
{
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}
.tool-share-label
{
    margin: 0.6rem 0 0;
    font-family: var(--font-num);
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--lavanda);
}
.tool-share-row
{
    display: flex;
    gap: 0.6rem;
}
.tool-share-icon
{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(185, 175, 214, .12);
    border-radius: 999px;
    background: linear-gradient(160deg, var(--indaco-700), var(--indaco-800));
    color: var(--lavanda);
}
.tool-share-icon:hover
{
    border-color: var(--oro);
    color: var(--oro-soft);
}
.tool-share-icon svg
{
    width: 18px;
    height: 18px;
}
.tool-share-icon.is-copied
{
    border-color: var(--oro);
    color: var(--oro);
}
@media (max-width: 767px)
{
    .tool-share-col
    {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
        margin-top: 1.4rem;
    }
    .tool-share-label
    {
        width: 100%;
        margin-top: 0.4rem;
    }
}

/* Stampa: solo il risultato, niente nav/footer/colonna di condivisione. */
@media print
{
    .site-nav,
    .site-footer,
    .tool-share-col
    {
        display: none;
    }
}

/* Grafico biorritmi (onde sinusoidali) */
.bio-chart-wrap
{
    padding: 1.2rem 1rem;
    margin-bottom: 1.2rem;
}
.bio-chart
{
    width: 100%;
    height: auto;
    display: block;
}
.bio-zero
{
    stroke: rgba(185, 175, 214, 0.35);
    stroke-width: 1;
    stroke-dasharray: 4 4;
}
.bio-today
{
    stroke: rgba(232, 182, 90, 0.55);
    stroke-width: 1.5;
    stroke-dasharray: 3 3;
}
.bio-legend
{
    display: flex;
    flex-wrap: wrap;
    gap: 1.4rem;
    margin-bottom: 2rem;
}
.bio-legend-item
{
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.95rem;
}
.bio-dot
{
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--c, var(--oro));
}
.bio-name { color: var(--panna); font-weight: 600; }
.bio-val { color: var(--lavanda); font-family: var(--font-num); font-size: 0.85rem; }

/* Etichetta prezzo nelle pagine-strumento */
.price-tag
{
    display: inline-block;
    font-family: var(--font-num);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--indaco-900);
    background: linear-gradient(135deg, var(--oro-soft), var(--oro));
    padding: 0.35rem 1rem;
    border-radius: 999px;
    margin-bottom: 1.1rem;
}
.price-tag.is-free
{
    color: var(--panna);
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--oro);
}

/* Testo descrittivo dei tool (colonna destra o sotto l'intro nei quiz) */
.tool-about
{
    margin: 0.6rem 0 2rem;
    color: var(--lavanda);
    line-height: 1.75;
}
.tool-about p
{
    margin: 0 0 1rem;
}
.tool-get-title
{
    font-family: var(--font-num);
    font-size: 0.78rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--oro);
    margin: 1.4rem 0 0.7rem;
}
.tool-get
{
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.55rem;
}
.tool-get li
{
    position: relative;
    padding-left: 1.4rem;
    color: var(--lavanda);
    line-height: 1.5;
}
.tool-get li::before
{
    content: "\2726";
    position: absolute;
    left: 0;
    color: var(--oro);
}

/* Spaziatura tra i blocchi della colonna descrittiva (era tutto appiccicato:
   il tag prezzo è inline-block senza margin-top proprio, si attaccava
   subito sotto la lista "cosa ricevi"). */
.tool-desc-col .price-tag
{
    display: block;
    width: fit-content;
    margin-top: 1.6rem;
}

/* Blocco registrazione compatto: nome/cognome/email su una riga */
.reg
{
    text-align: left;
    padding: 1.1rem 1.1rem;
    margin-bottom: 1.2rem;
}
.reg-title
{
    font-weight: 600;
    margin: 0 0 0.9rem;
}
.reg-grid
{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.9rem 1rem;
    margin-bottom: 1.15rem;
}
/* Se la griglia è l'ultimo elemento (blocco .reg dei quiz) niente margine sotto. */
.reg-grid:last-child
{
    margin-bottom: 0;
}
.reg-grid .field
{
    margin-bottom: 0;
}
/* L'email (terzo campo) va a tutta larghezza: gli indirizzi sono lunghi. */
.reg-grid .field:nth-child(3)
{
    grid-column: 1 / -1;
}

/* Form dei tool dentro un .panel: padding e spaziatura coerenti. */
.tool-form
{
    padding: 2rem 1.9rem;
}
.tool-form .btn-astral
{
    margin-top: 0.6rem;
}
.tool-form .reg-title
{
    margin: 1.4rem 0 0.9rem;
    font-weight: 600;
}
.tool-form .reg-title:first-child
{
    margin-top: 0;
}
@media (max-width: 640px)
{
    .reg-grid
    {
        grid-template-columns: 1fr;
    }
}
