/**
 * TradeVest Securities
 *
 * Page-Specific Styles
 *
 * @package TradeVest_Securities
 */


/* =========================================================
   1. INNER PAGE HERO
   ========================================================= */

.tv-page-hero {
    position: relative;
    padding-block: 72px 66px;

    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(15, 118, 110, 0.055) 0%,
            rgba(15, 118, 110, 0) 55%
        ),
        var(--tv-bg-soft);

    border-bottom: 1px solid var(--tv-border);
}

.tv-page-hero__inner {
    max-width: var(--tv-container-narrow);
    margin-inline: auto;
    text-align: center;
}

.tv-page-hero__title {
    max-width: 820px;
    margin: 0 auto 16px;

    color: var(--tv-navy);

    font-size: clamp(2.75rem, 4.5vw, 3.5rem);
    font-weight: var(--tv-weight-semibold);
    line-height: 1.1;
    letter-spacing: -0.035em;
}

.tv-page-hero__description {
    max-width: 700px;
    margin: 0 auto;

    color: var(--tv-text-secondary);

    font-size: var(--tv-text-lg);
    line-height: 1.7;
}


/* =========================================================
   2. INNER PAGE SPACING
   ========================================================= */

.tv-page > .tv-section,
.tv-page > .tv-section--soft {
    padding-block: 76px;
}

.tv-page-hero + .tv-section {
    padding-top: 70px;
}


/* =========================================================
   3. ABOUT INTRO
   ========================================================= */

.tv-about-intro {
    display: grid;

    grid-template-columns:
        minmax(0, 0.8fr)
        minmax(0, 1.2fr);

    gap: clamp(50px, 9vw, 120px);
    align-items: start;
}

.tv-about-intro__heading {
    position: sticky;
    top: 120px;
}

.tv-about-intro__heading h2 {
    max-width: 420px;
    font-size: clamp(2.2rem, 4vw, 3.25rem);
}

.tv-about-intro__content {
    max-width: 680px;
}

.tv-about-intro__content p {
    margin: 0 0 1.5rem;

    color: var(--tv-text-secondary);

    font-size: 1.08rem;
    line-height: 1.85;
}

.tv-about-intro__content p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   4. ABOUT PRINCIPLES
   ========================================================= */

.tv-about-principles {
    display: grid;

    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 20px;
}

.tv-about-principle {
    padding: 30px;

    background: var(--tv-white);

    border: 1px solid var(--tv-border);
    border-radius: var(--tv-radius-lg);

    transition:
        transform var(--tv-transition),
        border-color var(--tv-transition),
        box-shadow var(--tv-transition);
}

.tv-about-principle:hover {
    transform: translateY(-4px);

    border-color: rgba(15, 118, 110, 0.35);

    box-shadow: var(--tv-shadow-sm);
}

.tv-about-principle > span {
    display: block;

    margin-bottom: 42px;

    color: var(--tv-teal);

    font-size: var(--tv-text-sm);
    font-weight: var(--tv-weight-semibold);
    letter-spacing: 0.06em;
}

.tv-about-principle h3 {
    margin-bottom: 12px;
    font-size: var(--tv-text-xl);
}

.tv-about-principle p {
    margin: 0;

    color: var(--tv-text-secondary);

    font-size: var(--tv-text-sm);
    line-height: 1.7;
}


/* =========================================================
   5. PAGINATION
   ========================================================= */

.tv-pagination {
    display: flex;
    justify-content: center;
    margin-top: 52px;
}

.tv-pagination .nav-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.tv-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 42px;
    min-height: 42px;
    padding-inline: 12px;

    color: var(--tv-text-secondary);
    background: var(--tv-white);

    border: 1px solid var(--tv-border);
    border-radius: var(--tv-radius-sm);

    font-size: var(--tv-text-sm);

    transition:
        color var(--tv-transition-fast),
        background-color var(--tv-transition-fast),
        border-color var(--tv-transition-fast);
}

.tv-pagination .page-numbers:hover {
    color: var(--tv-teal);
    border-color: var(--tv-teal);
}

.tv-pagination .page-numbers.current {
    color: var(--tv-white);
    background: var(--tv-navy);
    border-color: var(--tv-navy);
}

.tv-pagination .page-numbers.dots {
    color: var(--tv-text-light);
    background: transparent;
    border-color: transparent;
}


/* =========================================================
   6. SINGLE ARTICLE HEADER
   ========================================================= */

.tv-post-header {
    max-width: var(--tv-container-narrow);
    margin-inline: auto;

    padding: 92px 0 48px;

    background: var(--tv-white);

    text-align: center;
}

.tv-post-header .tv-eyebrow {
    margin-bottom: 18px;
}

.tv-post-title {
    max-width: 900px;
    margin: 0 auto 22px;

    color: var(--tv-navy);

    font-size: clamp(2.8rem, 5vw, 4.4rem);
    font-weight: var(--tv-weight-semibold);
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.tv-post-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;

    color: var(--tv-text-light);

    font-size: var(--tv-text-sm);
}


/* =========================================================
   7. FEATURED IMAGE
   ========================================================= */

.tv-post-featured-image {
    width: min(calc(100% - 64px), 1100px);

    margin: 0 auto 58px;

    overflow: hidden;

    background: var(--tv-bg-muted);

    border-radius: var(--tv-radius-lg);
}

.tv-post-featured-image img {
    display: block;

    width: 100%;
    height: auto;
}


/* =========================================================
   8. ARTICLE CONTENT
   ========================================================= */

.tv-post-content {
    width: min(calc(100% - 64px), var(--tv-content));

    margin-inline: auto;

    padding-bottom: 70px;
}

.tv-post-content > * {
    margin-bottom: 1.5rem;
}

.tv-post-content p {
    color: var(--tv-text-secondary);

    font-size: 1.08rem;
    line-height: 1.9;
}

.tv-post-content h2 {
    margin-top: 3rem;
    margin-bottom: 1rem;

    color: var(--tv-navy);

    font-size: var(--tv-text-2xl);
}

.tv-post-content h3 {
    margin-top: 2.5rem;
    margin-bottom: 1rem;

    color: var(--tv-navy);

    font-size: var(--tv-text-xl);
}

.tv-post-content ul,
.tv-post-content ol {
    margin-bottom: 1.75rem;
    padding-left: 1.4rem;

    color: var(--tv-text-secondary);
}

.tv-post-content li {
    margin-bottom: 0.65rem;
    padding-left: 0.25rem;

    line-height: 1.8;
}

.tv-post-content blockquote {
    margin: 2.5rem 0;
    padding: 22px 26px;

    background: var(--tv-bg-soft);

    border-left: 3px solid var(--tv-teal);

    color: var(--tv-navy);

    font-size: 1.15rem;
    line-height: 1.7;
}

.tv-post-content img {
    max-width: 100%;
    height: auto;

    border-radius: var(--tv-radius-md);
}

.tv-post-content a {
    color: var(--tv-teal);

    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;

    transition: color var(--tv-transition-fast);
}

.tv-post-content a:hover {
    color: var(--tv-teal-dark);
}


/* =========================================================
   9. ARTICLE DISCLAIMER
   ========================================================= */

.tv-post-disclaimer {
    margin-top: 48px;
    padding: 22px 24px;

    background: var(--tv-bg-soft);

    border: 1px solid var(--tv-border);
    border-radius: var(--tv-radius-md);
}

.tv-post-disclaimer strong {
    display: block;

    margin-bottom: 8px;

    color: var(--tv-navy);

    font-size: var(--tv-text-sm);
}

.tv-post-disclaimer p {
    margin: 0;

    color: var(--tv-text-light);

    font-size: var(--tv-text-xs);
    line-height: 1.7;
}


/* =========================================================
   10. ARTICLE NAVIGATION
   ========================================================= */

.tv-post-navigation {
    padding-block: 28px;
    border-top: 1px solid var(--tv-border);
}

.tv-post-navigation__inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}


/* =========================================================
   11. CONTACT PAGE
   ========================================================= */

.tv-contact-section {
    padding-block: var(--tv-space-10);
}

.tv-contact-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 0.85fr)
        minmax(0, 1.15fr);

    gap: clamp(50px, 8vw, 110px);

    align-items: start;
}

.tv-contact-info {
    max-width: 520px;
}

.tv-contact-info h2 {
    margin-bottom: 20px;

    font-size: clamp(2.2rem, 4vw, 3.2rem);
    line-height: 1.1;
}

.tv-contact-info__description {
    margin-bottom: 42px;

    color: var(--tv-text-secondary);

    font-size: 1.05rem;
    line-height: 1.8;
}


/* =========================================================
   CONTACT DETAILS
   ========================================================= */

.tv-contact-details {
    display: flex;
    flex-direction: column;
    gap: 28px;
}


/* =========================================================
   CONTACT DETAIL
   ========================================================= */

.tv-contact-detail {
    display: grid;

    grid-template-columns: 52px minmax(0, 1fr);

    column-gap: 18px;

    align-items: start;

    padding: 0;
}


/* =========================================================
   CONTACT ICON CIRCLE
   ========================================================= */

.tv-contact-detail__icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 52px;
    height: 52px;

    flex: 0 0 52px;

    color: var(--tv-teal);
    background: var(--tv-teal-soft);

    border: 1px solid rgba(15, 118, 110, 0.18);
    border-radius: 50%;

    line-height: 0;

    transition:
        color var(--tv-transition-fast),
        background-color var(--tv-transition-fast),
        border-color var(--tv-transition-fast),
        transform var(--tv-transition-fast);
}


/* =========================================================
   CONTACT ICON SVG
   ========================================================= */

.tv-contact-detail__icon svg {
    display: block;

    width: 24px;
    height: 24px;

    margin: 0;
    padding: 0;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* ---------------------------------------------------------
   SVG ELEMENT NORMALIZATION
   --------------------------------------------------------- */

.tv-contact-detail__icon svg path,
.tv-contact-detail__icon svg circle,
.tv-contact-detail__icon svg rect,
.tv-contact-detail__icon svg line,
.tv-contact-detail__icon svg polyline,
.tv-contact-detail__icon svg polygon,
.tv-contact-detail__icon svg ellipse {
    fill: none;

    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   CONTACT DETAIL LABEL
   ========================================================= */

.tv-contact-detail__label {
    display: block;

    margin: 1px 0 7px;

    color: var(--tv-text-light);

    font-size: var(--tv-text-xs);
    font-weight: var(--tv-weight-semibold);
    letter-spacing: 0.07em;
    line-height: 1.3;

    text-transform: uppercase;
}


/* =========================================================
   CONTACT DETAIL HOVER
   ========================================================= */

.tv-contact-detail:hover .tv-contact-detail__icon {
    color: var(--tv-white);

    background: var(--tv-teal);
    border-color: var(--tv-teal);

    transform: translateY(-2px);
}


/* =========================================================
   CONTACT LINKS
   ========================================================= */

.tv-contact-detail a {
    color: var(--tv-teal);

    font-size: 1rem;
    font-weight: var(--tv-weight-medium);

    transition: color var(--tv-transition-fast);
}

.tv-contact-detail a:hover {
    color: var(--tv-teal-dark);
}


/* =========================================================
   CONTACT TEXT
   ========================================================= */

.tv-contact-detail p {
    margin: 0;

    color: var(--tv-text-secondary);

    font-size: 1rem;
    line-height: 1.7;
}


/* =========================================================
   CONTACT FORM
   ========================================================= */

.tv-contact-form-wrapper {
    padding: clamp(28px, 4vw, 44px);

    background: var(--tv-white);

    border: 1px solid var(--tv-border);
    border-radius: var(--tv-radius-lg);

    box-shadow: var(--tv-shadow-sm);
}

.tv-contact-form-header {
    margin-bottom: 30px;
}

.tv-contact-form-header h2 {
    margin-bottom: 8px;

    font-size: var(--tv-text-2xl);
}

.tv-contact-form-header p {
    margin: 0;

    color: var(--tv-text-secondary);

    font-size: var(--tv-text-sm);
}


/* =========================================================
   12. FAQ
   ========================================================= */

.tv-faq-section {
    padding-block: var(--tv-space-10);
}

.tv-faq-grid {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 24px 50px;

    max-width: 1100px;

    margin-inline: auto;
}

.tv-faq-column {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.tv-faq-item {
    margin: 0;

    overflow: hidden;

    background: var(--tv-white);

    border: 1px solid var(--tv-border);
    border-radius: var(--tv-radius-md);

    transition:
        border-color var(--tv-transition-fast),
        box-shadow var(--tv-transition-fast);
}

.tv-faq-item:hover,
.tv-faq-item[open] {
    border-color: rgba(15, 118, 110, 0.40);
    box-shadow: var(--tv-shadow-sm);
}

.tv-faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    min-height: 72px;

    padding: 20px 22px;

    color: var(--tv-navy);

    font-size: var(--tv-text-sm);
    font-weight: var(--tv-weight-semibold);
    line-height: 1.5;

    cursor: pointer;
    list-style: none;

    transition:
        color var(--tv-transition-fast),
        background-color var(--tv-transition-fast);
}

.tv-faq-question:hover {
    color: var(--tv-teal);
}

.tv-faq-question::-webkit-details-marker {
    display: none;
}

.tv-faq-question::marker {
    display: none;
    content: "";
}

.tv-faq-icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 30px;
    height: 30px;

    flex: 0 0 30px;

    color: var(--tv-teal);
    background: var(--tv-teal-soft);

    border: 1px solid rgba(15, 118, 110, 0.14);
    border-radius: 50%;

    font-size: 20px;
    font-weight: var(--tv-weight-regular);
    line-height: 1;

    transition:
        transform var(--tv-transition-fast),
        background-color var(--tv-transition-fast),
        color var(--tv-transition-fast);
}

.tv-faq-item[open] .tv-faq-icon {
    color: var(--tv-white);
    background: var(--tv-teal);
    transform: rotate(45deg);
}

.tv-faq-answer {
    padding: 0 22px 22px;

    animation: tv-faq-answer-in 180ms ease-out;
}

.tv-faq-answer p {
    max-width: 720px;

    margin: 0;

    padding-top: 18px;

    color: var(--tv-text-secondary);

    border-top: 1px solid var(--tv-border);

    font-size: var(--tv-text-sm);
    line-height: 1.75;
}

.tv-faq-answer a {
    color: var(--tv-teal);

    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;

    transition: color var(--tv-transition-fast);
}

.tv-faq-answer a:hover {
    color: var(--tv-teal-dark);
}


/* =========================================================
   FAQ ANSWER ANIMATION
   ========================================================= */

@keyframes tv-faq-answer-in {

    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   13. 404
   ========================================================= */

.tv-404 {
    display: flex;
    align-items: center;

    min-height: 58vh;
}

.tv-404__inner {
    max-width: 680px;

    margin-inline: auto;

    text-align: center;
}

.tv-404__title {
    margin-bottom: 18px;

    font-size: clamp(2.8rem, 6vw, 4.5rem);
    line-height: 1.05;
}

.tv-404__description {
    max-width: 560px;

    margin: 0 auto;

    color: var(--tv-text-secondary);

    font-size: 1.05rem;
    line-height: 1.8;
}

.tv-404__actions {
    display: flex;

    align-items: center;
    justify-content: center;

    flex-wrap: wrap;

    gap: 12px;

    margin-top: 32px;
}


/* =========================================================
   14. RESPONSIVE — TABLET
   ========================================================= */

@media (max-width: 1024px) {

    .tv-about-intro {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .tv-about-intro__heading {
        position: static;
    }

    .tv-about-principles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tv-contact-layout {
        gap: 50px;
    }

}


/* =========================================================
   15. RESPONSIVE — MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .tv-page-hero {
        padding-block: 64px 56px;
    }

    .tv-page-hero__title {
        font-size: clamp(2.35rem, 11vw, 3.2rem);
    }

    .tv-page-hero__description {
        font-size: var(--tv-text-base);
    }

    .tv-page > .tv-section,
    .tv-page > .tv-section--soft {
        padding-block: 56px;
    }

    .tv-page-hero + .tv-section {
        padding-top: 56px;
    }


    /* -----------------------------------------------------
       ABOUT
       ----------------------------------------------------- */

    .tv-about-intro {
        gap: 30px;
    }

    .tv-about-intro__heading h2 {
        font-size: 2.25rem;
    }

    .tv-about-intro__content p {
        font-size: 1rem;
        line-height: 1.8;
    }

    .tv-about-principles {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .tv-about-principle {
        padding: 25px;
    }

    .tv-about-principle > span {
        margin-bottom: 30px;
    }


    /* -----------------------------------------------------
       BLOG / ARTICLE
       ----------------------------------------------------- */

    .tv-post-header {
        padding: 64px 20px 36px;
    }

    .tv-post-title {
        font-size: clamp(2.25rem, 10vw, 3.25rem);
    }

    .tv-post-featured-image {
        width: calc(100% - 40px);

        margin-bottom: 40px;

        border-radius: var(--tv-radius-md);
    }

    .tv-post-content {
        width: calc(100% - 40px);

        padding-bottom: 56px;
    }

    .tv-post-content p,
    .tv-post-content li {
        font-size: 1rem;
        line-height: 1.8;
    }


    /* -----------------------------------------------------
       CONTACT
       ----------------------------------------------------- */

    .tv-contact-section {
        padding-block: 56px;
    }

    .tv-contact-layout {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .tv-contact-info {
        max-width: none;
    }

    .tv-contact-info h2 {
        font-size: 2.25rem;
    }

    .tv-contact-info__description {
        margin-bottom: 32px;
        font-size: 1rem;
    }

    .tv-contact-details {
        gap: 24px;
    }

    .tv-contact-detail {
        grid-template-columns: 46px minmax(0, 1fr);
        column-gap: 15px;
    }

    .tv-contact-detail__icon {
        width: 46px;
        height: 46px;
        flex-basis: 46px;
    }

    .tv-contact-detail__icon svg {
        width: 21px;
        height: 21px;
    }

    .tv-contact-detail__label {
        margin-top: 1px;
        margin-bottom: 6px;
    }

    .tv-contact-form-wrapper {
        padding: 24px;
    }


    /* -----------------------------------------------------
       FAQ
       ----------------------------------------------------- */

    .tv-faq-section {
        padding-block: 56px;
    }

    .tv-faq-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .tv-faq-column {
        gap: 14px;
    }

    .tv-faq-question {
        min-height: 66px;
        padding: 18px;
        gap: 14px;
    }

    .tv-faq-icon {
        width: 28px;
        height: 28px;
        flex-basis: 28px;
        font-size: 18px;
    }

    .tv-faq-answer {
        padding: 0 18px 18px;
    }


    /* -----------------------------------------------------
       404
       ----------------------------------------------------- */

    .tv-404 {
        min-height: 55vh;
        padding-block: 80px;
    }

}


/* =========================================================
   16. RESPONSIVE — SMALL MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .tv-post-header {
        padding-inline: 16px;
    }

    .tv-post-featured-image {
        width: calc(100% - 32px);
    }

    .tv-post-content {
        width: calc(100% - 32px);
    }


    /* -----------------------------------------------------
       CONTACT
       ----------------------------------------------------- */

    .tv-contact-form-wrapper {
        padding: 20px;
    }

    .tv-contact-detail {
        grid-template-columns: 44px minmax(0, 1fr);
        column-gap: 14px;
    }

    .tv-contact-detail__icon {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
    }

    .tv-contact-detail__icon svg {
        width: 20px;
        height: 20px;
    }


    /* -----------------------------------------------------
       CONTACT TEXT
       ----------------------------------------------------- */

    .tv-contact-detail a,
    .tv-contact-detail p {
        font-size: 0.95rem;
    }

}


/* =========================================================
   17. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .tv-about-principle,
    .tv-pagination .page-numbers,
    .tv-post-content a,
    .tv-contact-detail,
    .tv-contact-detail__icon,
    .tv-contact-detail a,
    .tv-faq-item,
    .tv-faq-question,
    .tv-faq-icon,
    .tv-faq-answer {
        transition: none;
        animation: none;
    }

}

/* =========================================================
   TRADEVEST SERVICE PAGES
   ========================================================= */


/* =========================================================
   1. SERVICE HERO
   ========================================================= */

.tv-service-hero {
	position: relative;
	overflow: hidden;
}

.tv-service-hero::before {
	position: absolute;
	top: -180px;
	right: -140px;

	width: 440px;
	height: 440px;

	background: radial-gradient(
		circle,
		rgba(15, 118, 110, 0.09) 0%,
		rgba(15, 118, 110, 0) 70%
	);

	content: "";
	pointer-events: none;
}

.tv-service-hero .tv-page-hero__inner {
	position: relative;
	z-index: 1;
}

.tv-service-hero__actions {
	display: flex;
	align-items: center;
	justify-content: center;

	margin-top: 2rem;
}

.tv-service-hero__actions .tv-btn {
	min-width: 180px;
}


/* =========================================================
   2. SERVICE OVERVIEW
   ========================================================= */

.tv-service-overview {
	background: var(--tv-white);
}

.tv-service-overview__layout {
	display: grid;

	grid-template-columns:
		minmax(0, 0.85fr)
		minmax(0, 1.15fr);

	gap: clamp(3rem, 7vw, 6.5rem);

	align-items: start;
}

.tv-service-overview__heading {
	max-width: 520px;
}

.tv-service-overview__heading h2 {
	max-width: 480px;

	margin: 0.75rem 0 0;

	font-size: clamp(2rem, 3.5vw, 2.8rem);
	line-height: 1.15;
}

.tv-service-overview__content {
	max-width: 680px;
}

.tv-service-overview__content p {
	margin: 0 0 1.25rem;

	color: var(--tv-text-secondary);

	font-size: 1.05rem;
	line-height: 1.8;
}

.tv-service-overview__content p:last-child {
	margin-bottom: 0;
}


/* =========================================================
   3. HOW TRADEVEST HELPS
   ========================================================= */

.tv-service-features {
	background: var(--tv-bg-soft);
}

.tv-service-features__grid {
	display: grid;

	grid-template-columns:
		repeat(3, minmax(0, 1fr));

	gap: 1.25rem;

	margin-top: 3rem;
}

.tv-service-feature {
	position: relative;

	padding: 2rem;

	background: var(--tv-white);

	border: 1px solid var(--tv-border);
	border-radius: var(--tv-radius-lg);

	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.tv-service-feature:hover {
	transform: translateY(-3px);

	border-color: rgba(15, 118, 110, 0.28);

	box-shadow: var(--tv-shadow-sm);
}

.tv-service-feature__number {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 2rem;
	height: 2rem;

	margin-bottom: 1.35rem;

	color: var(--tv-teal);

	border: 1px solid rgba(15, 118, 110, 0.24);
	border-radius: 50%;

	font-size: 0.72rem;
	font-weight: var(--tv-weight-semibold);
	line-height: 1;
	letter-spacing: 0.04em;
}

.tv-service-feature h3 {
	margin: 0 0 0.65rem;

	color: var(--tv-navy);

	font-size: 1.18rem;
	line-height: 1.35;
}

.tv-service-feature p {
	margin: 0;

	color: var(--tv-text-secondary);

	font-size: 0.96rem;
	line-height: 1.72;
}


/* =========================================================
   4. RISKS & CONSIDERATIONS
   Editorial Layout — No Cards
   ========================================================= */

.tv-service-risks {
	background: var(--tv-white);
}

.tv-service-risks__layout {
	display: grid;

	grid-template-columns:
		minmax(0, 0.85fr)
		minmax(0, 1.15fr);

	gap: clamp(3rem, 7vw, 6.5rem);

	align-items: start;
}


/* =========================================================
   5. RISKS — LEFT INTRODUCTION
   ========================================================= */

.tv-service-risks__heading {
	max-width: 500px;
}

.tv-service-risks__heading h2 {
	max-width: 460px;

	margin: 0.75rem 0 1.25rem;

	color: var(--tv-navy);

	font-size: clamp(2rem, 3.5vw, 2.8rem);
	line-height: 1.15;
}

.tv-service-risks__heading > p {
	max-width: 480px;

	margin: 0;

	color: var(--tv-text-secondary);

	font-size: 1.05rem;
	line-height: 1.8;
}


/* =========================================================
   6. RISKS — RIGHT CONTENT
   ========================================================= */

.tv-service-risks__content {
	display: flex;
	flex-direction: column;

	border-top: 1px solid var(--tv-border);
}

.tv-service-risk {
	display: grid;

	grid-template-columns: 42px minmax(0, 1fr);

	column-gap: 20px;

	padding: 1.5rem 0;

	border-bottom: 1px solid var(--tv-border);
}

.tv-service-risk__number {
	display: flex;

	align-items: flex-start;
	justify-content: flex-start;

	padding-top: 3px;

	color: var(--tv-teal);

	font-size: 0.72rem;
	font-weight: var(--tv-weight-semibold);
	line-height: 1;
	letter-spacing: 0.06em;
}

.tv-service-risk h3 {
	margin: 0 0 0.5rem;

	color: var(--tv-navy);

	font-size: 1.12rem;
	line-height: 1.4;
}

.tv-service-risk p {
	max-width: 620px;

	margin: 0;

	color: var(--tv-text-secondary);

	font-size: 0.96rem;
	line-height: 1.72;
}


/* =========================================================
   7. SERVICE PAGE TYPOGRAPHY
   ========================================================= */

.tv-service-page .tv-page-hero__title {
	max-width: 800px;

	margin-inline: auto;
}

.tv-service-page .tv-page-hero__description {
	max-width: 700px;

	margin-inline: auto;
}


/* =========================================================
   8. SERVICE PAGE SPACING
   ========================================================= */

.tv-service-page .tv-section {
	padding-block: clamp(4.5rem, 8vw, 6.5rem);
}


/* =========================================================
   9. TABLET
   ========================================================= */

@media (max-width: 900px) {

	.tv-service-overview__layout,
	.tv-service-risks__layout {
		grid-template-columns: 1fr;

		gap: 2.5rem;
	}

	.tv-service-features__grid {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

	.tv-service-risks__heading {
		max-width: 650px;
	}

	.tv-service-risks__heading > p {
		max-width: 650px;
	}

}


/* =========================================================
   10. MOBILE
   ========================================================= */

@media (max-width: 767px) {

	/* -----------------------------------------------------
	   HERO
	   ----------------------------------------------------- */

	.tv-service-hero__actions {
		margin-top: 1.5rem;
	}

	.tv-service-hero__actions .tv-btn {
		width: 100%;
		max-width: 300px;
	}


	/* -----------------------------------------------------
	   OVERVIEW
	   ----------------------------------------------------- */

	.tv-service-overview__layout {
		gap: 2rem;
	}

	.tv-service-overview__heading h2 {
		font-size: 2.15rem;
	}

	.tv-service-overview__content p {
		font-size: 1rem;
		line-height: 1.8;
	}


	/* -----------------------------------------------------
	   FEATURES
	   ----------------------------------------------------- */

	.tv-service-features__grid {
		grid-template-columns: 1fr;

		gap: 1rem;

		margin-top: 2rem;
	}

	.tv-service-feature {
		padding: 1.5rem;
	}


	/* -----------------------------------------------------
	   RISKS
	   ----------------------------------------------------- */

	.tv-service-risks__layout {
		gap: 2.5rem;
	}

	.tv-service-risks__heading h2 {
		font-size: 2.15rem;
	}

	.tv-service-risks__heading > p {
		font-size: 1rem;
		line-height: 1.8;
	}

	.tv-service-risk {
		grid-template-columns: 34px minmax(0, 1fr);

		column-gap: 15px;

		padding: 1.35rem 0;
	}

	.tv-service-risk h3 {
		font-size: 1.05rem;
	}

	.tv-service-risk p {
		font-size: 0.95rem;
		line-height: 1.7;
	}


	/* -----------------------------------------------------
	   GENERAL SERVICE SPACING
	   ----------------------------------------------------- */

	.tv-service-page .tv-section {
		padding-block: 4rem;
	}

}


/* =========================================================
   11. SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

	.tv-service-feature {
		padding: 1.35rem;
	}

	.tv-service-hero__actions .tv-btn {
		max-width: 100%;
	}

	.tv-service-risk {
		grid-template-columns: 30px minmax(0, 1fr);

		column-gap: 12px;
	}

}


/* =========================================================
   12. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.tv-service-feature {
		transition: none;
	}

}
