.iris-tpta-article,
.iris-tpta-callout,
.iris-tpta-related,
.iris-tpta-note,
.iris-tpta-toc,
.iris-tpta-visual,
.iris-tpta-sources,
.iris-tpta-cluster {
    --iris-cream: #fbf6ef;
    --iris-beige: #efe2d3;
    --iris-blush: #ead1cc;
    --iris-taupe: #9a8173;
    --iris-brown: #6f574b;
    --iris-ink: #3f332f;
    box-sizing: border-box;
}

.iris-tpta-article {
    color: var(--iris-ink);
}

.iris-tpta-hero,
.iris-tpta-section,
.iris-tpta-callout,
.iris-tpta-related,
.iris-tpta-note,
.iris-tpta-toc,
.iris-tpta-visual,
.iris-tpta-sources {
    max-width: 920px;
    margin: 30px auto;
}

.iris-tpta-cluster {
    max-width: 1080px;
    margin: 34px auto;
    padding: clamp(24px, 5vw, 46px);
    background: #fbf6ef;
    border: 1px solid rgba(154, 129, 115, 0.18);
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(111, 87, 75, 0.07);
}

.iris-tpta-hero {
    padding: clamp(34px, 6vw, 68px) clamp(22px, 4vw, 52px);
    background: linear-gradient(135deg, #fbf6ef 0%, #f3e8dd 58%, #ead1cc 100%);
    border: 1px solid rgba(154, 129, 115, 0.2);
    border-radius: 18px;
}

.iris-tpta-hero h1 {
    max-width: 760px;
    margin: 0;
    color: var(--iris-ink);
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.08;
    letter-spacing: 0;
}

.iris-tpta-hero p,
.iris-tpta-section p,
.iris-tpta-callout p,
.iris-tpta-note p,
.iris-tpta-visual p,
.iris-tpta-sources li {
    font-size: 1.03rem;
    line-height: 1.78;
}

.iris-tpta-kicker {
    margin: 0 0 12px;
    color: var(--iris-taupe);
    font-size: 0.78rem !important;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.3 !important;
    text-transform: uppercase;
}

.iris-tpta-section h2,
.iris-tpta-callout h2,
.iris-tpta-related h2,
.iris-tpta-sources h2,
.iris-tpta-cluster h2 {
    margin-top: 0;
    color: var(--iris-brown);
    font-size: clamp(1.45rem, 2vw, 2rem);
    letter-spacing: 0;
}

.iris-tpta-section {
    padding: 6px clamp(4px, 2vw, 18px);
}

.iris-tpta-note,
.iris-tpta-toc,
.iris-tpta-visual,
.iris-tpta-callout,
.iris-tpta-related,
.iris-tpta-sources {
    padding: clamp(20px, 4vw, 34px);
    background: rgba(251, 246, 239, 0.72);
    border: 1px solid rgba(154, 129, 115, 0.18);
    border-radius: 16px;
    box-shadow: 0 14px 36px rgba(111, 87, 75, 0.07);
}

.iris-tpta-experience {
    background: #fbf6ef;
    border-color: rgba(234, 209, 204, 0.9);
}

.iris-tpta-guide-cta {
    background: linear-gradient(135deg, #fbf6ef 0%, #f6eee6 100%);
    text-align: left;
}

.iris-tpta-button,
.iris-tpta-related-grid a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 12px 18px;
    color: #fff !important;
    background: var(--iris-brown);
    border-radius: 999px;
    text-decoration: none !important;
    font-weight: 700;
}

.iris-tpta-button:hover,
.iris-tpta-related-grid a:hover {
    background: #4f3c34;
}

.iris-tpta-toc ol {
    display: grid;
    gap: 10px;
    margin: 0;
    padding-left: 22px;
}

.iris-tpta-toc a,
.iris-tpta-sources a {
    color: var(--iris-brown);
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}

.iris-tpta-visual {
    background: #fffaf5;
    border-style: dashed;
}

.iris-tpta-quote {
    margin: 24px 0;
    padding: 22px 26px;
    color: var(--iris-brown);
    background: #f7ece7;
    border-left: 4px solid var(--iris-blush);
    border-radius: 14px;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: 1.5;
}

.iris-tpta-related-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.iris-tpta-cluster-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
}

.iris-tpta-cluster-grid a {
    display: flex;
    align-items: center;
    min-height: 58px;
    padding: 14px 16px;
    color: var(--iris-brown);
    background: #fffaf5;
    border: 1px solid rgba(154, 129, 115, 0.18);
    border-radius: 14px;
    text-decoration: none;
    font-weight: 700;
}

.iris-tpta-cluster-grid a:hover {
    background: #f7ece7;
}

.iris-tpta-related-grid a {
    min-height: 50px;
    padding: 12px;
    border-radius: 12px;
    font-size: 0.92rem;
    text-align: center;
}

@media (max-width: 760px) {
    .iris-tpta-hero,
    .iris-tpta-section,
    .iris-tpta-callout,
    .iris-tpta-related,
    .iris-tpta-note,
    .iris-tpta-toc,
    .iris-tpta-visual,
    .iris-tpta-sources {
        margin: 22px auto;
    }

    .iris-tpta-related-grid {
        grid-template-columns: 1fr;
    }

    .iris-tpta-cluster-grid {
        grid-template-columns: 1fr;
    }

    .iris-tpta-button {
        width: 100%;
    }
}
