/* TRXNews production features: deterministic post covers, contact form and responsive ad slots. */

/* ------------------------------ Post covers ------------------------------ */
.trx-post-cover {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0 0 1.5rem;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, .16);
    border-radius: 14px;
    background: #0b1f45;
    box-shadow: 0 14px 32px rgba(15, 23, 42, .14);
    isolation: isolate;
    container-type: inline-size;
}
.trx-post-cover--image {
    aspect-ratio: 16 / 9;
    background: #eef2f7;
}
.trx-post-cover--image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.trx-post-cover--generated {
    --cover-a: #071b3d;
    --cover-b: #0d3b79;
    --cover-accent: #ffd54a;
    --cover-signal: #e31b23;
    --cover-text: #fff;
    --cover-muted: #d9e7ff;
    aspect-ratio: 1200 / 630;
    min-height: 340px;
    color: var(--cover-text);
    background:
        radial-gradient(circle at 79% 22%, rgba(255,255,255,.22) 0 1px, transparent 2px) 0 0 / 42px 42px,
        radial-gradient(circle at 92% 5%, rgba(255,255,255,.18), transparent 28%),
        linear-gradient(132deg, var(--cover-a) 0 56%, var(--cover-b) 56% 100%);
}
.trx-post-cover--v2 { --cover-a:#5a321f;--cover-b:#b7895f;--cover-accent:#ffe173;--cover-signal:#b4121b;--cover-muted:#f7eadc; }
.trx-post-cover--v3 { --cover-a:#18225c;--cover-b:#3449bc;--cover-accent:#f4c542;--cover-signal:#fff;--cover-muted:#dbe1ff; }
.trx-post-cover--v4 { --cover-a:#041c44;--cover-b:#0d376f;--cover-accent:#fff;--cover-signal:#df1018;--cover-muted:#d8e7ff; }
.trx-post-cover--v5 { --cover-a:#47132b;--cover-b:#9b3154;--cover-accent:#ffc447;--cover-signal:#f4f0e8;--cover-muted:#f6dce6; }
.trx-post-cover--v6 { --cover-a:#073d45;--cover-b:#0d7a7f;--cover-accent:#f6bf38;--cover-signal:#fff;--cover-muted:#d7f1ef; }
.trx-post-cover--v7 { --cover-a:#311a63;--cover-b:#6b36aa;--cover-accent:#ff9f43;--cover-signal:#fff;--cover-muted:#eadfff; }
.trx-post-cover--v8 { --cover-a:#111;--cover-b:#353535;--cover-accent:#ffd21f;--cover-signal:#fff;--cover-muted:#efefef; }
.trx-post-cover--v3 .trx-cover-action,
.trx-post-cover--v4 .trx-cover-kicker span,
.trx-post-cover--v5 .trx-cover-action,
.trx-post-cover--v6 .trx-cover-action,
.trx-post-cover--v7 .trx-cover-action,
.trx-post-cover--v8 .trx-cover-action { color:#101827; }
.trx-cover-pattern,
.trx-cover-pattern::before,
.trx-cover-pattern::after,
.trx-cover-pattern i {
    position: absolute;
    pointer-events: none;
}
.trx-cover-pattern { inset: 0; z-index: 0; }
.trx-cover-pattern::before {
    content: "";
    left: -7%;
    right: 32%;
    bottom: -20%;
    height: 44%;
    background: var(--cover-accent);
    transform: rotate(-5deg);
    opacity: .78;
}
.trx-cover-pattern::after {
    content: "";
    top: -20%;
    right: 14%;
    width: 34%;
    height: 140%;
    border-left: 2px solid rgba(255,255,255,.24);
    border-right: 2px solid rgba(255,255,255,.12);
    transform: rotate(13deg);
}
.trx-cover-pattern i:nth-child(1) { width: 220px; height: 220px; right: 7%; top: 8%; border: 2px solid rgba(255,255,255,.22); border-radius: 50%; }
.trx-cover-pattern i:nth-child(2) { width: 160px; height: 160px; right: 9.6%; top: 12.8%; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.trx-cover-pattern i:nth-child(3) { left: 4.5%; top: 9%; width: 34%; height: 2px; background: linear-gradient(90deg,var(--cover-accent),transparent); }
.trx-cover-copy {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 72%;
    height: 100%;
    min-width: 0;
    padding: clamp(22px, 3vw, 42px) clamp(22px, 3.4vw, 48px);
    padding: clamp(22px, 4cqw, 42px) clamp(22px, 4.5cqw, 48px);
}
.trx-cover-kicker {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin-bottom: clamp(10px, 1.7vw, 20px);
    flex-shrink: 0;
    font-size: clamp(.65rem, .9vw, .86rem);
    font-size: clamp(.65rem, 1.5cqw, .86rem);
    font-weight: 800;
    letter-spacing: .105em;
    line-height: 1.2;
    text-transform: uppercase;
}
.trx-cover-kicker span {
    padding: .55em .75em;
    background: var(--cover-accent);
    color: #111827;
}
.trx-cover-kicker b { color: var(--cover-muted); }
.trx-cover-year {
    color: var(--cover-accent);
    flex-shrink: 0;
    font-size: clamp(2.4rem, 4vw, 4.7rem);
    font-size: clamp(2.4rem, 8cqw, 5.2rem);
    font-weight: 900;
    letter-spacing: -.065em;
    line-height: .86;
    text-shadow: 0 5px 18px rgba(0,0,0,.2);
}
.trx-cover-action {
    margin: clamp(7px, .8vw, 11px) 0 clamp(8px, 1vw, 14px);
    padding: .45em .75em .4em;
    background: var(--cover-signal);
    color: #fff;
    box-shadow: 7px 7px 0 rgba(0,0,0,.16);
    flex-shrink: 0;
    font-size: clamp(.76rem, 1.25vw, 1.1rem);
    font-size: clamp(.76rem, 2.5cqw, 1.2rem);
    font-weight: 900;
    letter-spacing: .065em;
    line-height: 1;
    text-transform: uppercase;
    transform: rotate(-1deg);
}
.trx-cover-title {
    display: -webkit-box;
    max-width: 100%;
    overflow: hidden;
    color: var(--cover-text);
    flex-shrink: 0;
    font-size: clamp(1.45rem, 2.45vw, 2.8rem);
    font-size: clamp(1.45rem, 5.2cqw, 3.15rem);
    font-weight: 900;
    letter-spacing: -.045em;
    line-height: 1.03;
    overflow-wrap: anywhere;
    word-break: break-word;
    text-wrap: balance;
    text-shadow: 0 4px 18px rgba(0,0,0,.28);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}
.trx-cover-keywords {
    display: flex;
    flex-shrink: 0;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: auto;
    padding-top: 15px;
}
.trx-cover-keywords span {
    max-width: 190px;
    overflow: hidden;
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,.4);
    background: rgba(4, 12, 28, .34);
    color: #fff;
    font-size: clamp(.58rem, .72vw, .72rem);
    font-weight: 800;
    letter-spacing: .06em;
    line-height: 1;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.trx-cover-art {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    bottom: 0;
    width: 37%;
    overflow: hidden;
    background: linear-gradient(180deg,rgba(255,255,255,.1),rgba(0,0,0,.16));
    clip-path: polygon(25% 0,100% 0,100% 100%,0 100%);
}
.trx-cover-building {
    position: absolute;
    right: 7%;
    bottom: 12%;
    width: 72%;
    height: 42%;
    border-top: clamp(12px, 2vw, 24px) solid var(--cover-accent);
    border-bottom: clamp(12px, 2vw, 24px) solid var(--cover-accent);
    opacity: .88;
}
.trx-cover-building::before {
    content: "";
    position: absolute;
    left: -8%;
    right: -8%;
    top: calc(clamp(48px, 7vw, 84px) * -1);
    height: clamp(48px, 7vw, 84px);
    background: var(--cover-muted);
    clip-path: polygon(50% 0,100% 100%,0 100%);
}
.trx-cover-building i {
    float: left;
    width: 12%;
    height: 100%;
    margin: 0 4%;
    background: var(--cover-muted);
}
.trx-cover-document {
    position: absolute;
    right: 4%;
    bottom: 5%;
    width: 42%;
    height: 42%;
    padding: 16% 10% 8%;
    background: #fff;
    box-shadow: 0 12px 28px rgba(0,0,0,.28);
    transform: rotate(4deg);
}
.trx-cover-document span {
    position: absolute;
    top: 8%;
    left: 10%;
    right: 10%;
    height: 13%;
    background: var(--cover-a);
}
.trx-cover-document i {
    display: block;
    width: 68%;
    height: 7%;
    margin: 10% 0;
    background: #cbd5e1;
}
.trx-cover-document b {
    position: absolute;
    right: 9%;
    bottom: 9%;
    display: grid;
    width: clamp(24px, 3.2vw, 42px);
    height: clamp(24px, 3.2vw, 42px);
    place-items: center;
    border-radius: 50%;
    background: #149447;
    color: #fff;
    font-size: clamp(.8rem, 1.8vw, 1.25rem);
}

/* ---------------------------- Responsive ads ----------------------------- */
.trx-ad-slot {
    display: block;
    clear: both;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 1rem auto;
    overflow: hidden;
    text-align: center;
}
.trx-ad-slot > *,
.trx-ad-slot iframe,
.trx-ad-slot img,
.trx-ad-slot video,
.trx-ad-slot object,
.trx-ad-slot embed,
.trx-ad-slot ins {
    max-width: 100% !important;
}
.trx-ad-slot img,
.trx-ad-slot video { height: auto !important; }
.trx-ad-slot ins.adsbygoogle { display: block; width: 100%; }
.trx-ad-slot--sidebar { margin-top: 0; }
.trx-ad-slot--middle {
    margin: 1.8rem 0;
    padding: 1rem 0;
    border-top: 1px solid rgba(15, 23, 42, .1);
    border-bottom: 1px solid rgba(15, 23, 42, .1);
}
.trx-ad-slot--list { margin: .25rem 0 1.25rem; }

/* ------------------------------ Contact page ----------------------------- */
.trx-contact-card {
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, .14);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
}
.trx-contact-intro {
    height: 100%;
    padding: clamp(24px, 4vw, 38px);
    background:
        radial-gradient(circle at 85% 12%, rgba(255,255,255,.18), transparent 24%),
        linear-gradient(145deg, #071b3d, #0d4f83);
    color: #fff;
}
.trx-contact-intro .trx-contact-eyebrow {
    color: #ffd54a;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.trx-contact-intro h1 {
    margin: .75rem 0 1rem;
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 850;
    letter-spacing: -.045em;
    line-height: 1.04;
}
.trx-contact-intro p { color: rgba(255,255,255,.82); line-height: 1.7; }
.trx-contact-points { margin: 1.4rem 0 0; padding: 0; list-style: none; }
.trx-contact-points li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: .7rem 0;
    border-top: 1px solid rgba(255,255,255,.15);
    font-size: .88rem;
}
.trx-contact-points i { color: #ffd54a; }
.trx-contact-form-wrap { padding: clamp(22px, 4vw, 38px); }
.trx-contact-form .form-label { font-weight: 700; }
.trx-contact-form .form-control,
.trx-contact-form .form-select {
    min-height: 46px;
    border-color: #cbd5e1;
}
.trx-contact-form textarea.form-control { min-height: 170px; resize: vertical; }
.trx-contact-form .form-control:focus,
.trx-contact-form .form-select:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 .2rem rgba(13,110,253,.12);
}
.trx-contact-submit { min-height: 48px; font-weight: 750; }
.trx-contact-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.trx-contact-note { color: #64748b; font-size: .78rem; line-height: 1.55; }

/* --------------------------- ThemeMono harmony --------------------------- */
body.theme-mono-active .trx-post-cover,
body.theme-mono-active .trx-contact-card {
    border: 2px solid var(--mono-ink, #111);
    border-radius: 0;
    box-shadow: none;
}
body.theme-mono-active .trx-post-cover--generated { border-top: 9px solid var(--mono-accent, var(--header-bg)); }
body.theme-mono-active .trx-cover-action,
body.theme-mono-active .trx-cover-kicker span,
body.theme-mono-active .trx-cover-keywords span,
body.theme-mono-active .trx-cover-document { border-radius: 0 !important; }
body.theme-mono-active .trx-contact-intro {
    border-right: 2px solid var(--mono-ink, #111);
    background: var(--mono-ink, #111);
}
body.theme-mono-active .trx-contact-intro .trx-contact-eyebrow,
body.theme-mono-active .trx-contact-points i { color: var(--mono-signal, #f4c430); }
body.theme-mono-active .trx-contact-form .form-control,
body.theme-mono-active .trx-contact-form .form-select {
    border: 1px solid var(--mono-ink, #111);
    border-radius: 0;
}
body.theme-mono-active .trx-contact-submit { border-radius: 0; background: var(--mono-accent, var(--header-bg)); border-color: var(--mono-accent, var(--header-bg)); }
body.theme-mono-active .trx-ad-slot--middle { border-color: var(--mono-rule, #b8b8b2); }

@media (max-width: 767.98px) {
    .trx-post-cover { margin-bottom: 1.15rem; border-radius: 10px; }
    .trx-post-cover--generated {
        aspect-ratio: auto;
        min-height: 360px;
        background:
            radial-gradient(circle at 85% 12%, rgba(255,255,255,.18), transparent 25%),
            linear-gradient(145deg, var(--cover-a), var(--cover-b));
    }
    .trx-cover-copy { width: 100%; padding: 24px 20px; }
    .trx-cover-title { max-width: 92%; font-size: clamp(1.55rem, 7vw, 2.35rem); -webkit-line-clamp: 4; }
    .trx-cover-art { width: 44%; opacity: .28; clip-path: none; }
    .trx-cover-pattern::before { right: -20%; height: 28%; bottom: -15%; }
    .trx-cover-keywords { max-width: 86%; }
    .trx-contact-intro { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
    body.theme-mono-active .trx-contact-intro { border-right: 0; border-bottom: 2px solid var(--mono-ink, #111); }
    .trx-ad-slot { margin: .8rem auto; }
    .trx-ad-slot--middle { margin: 1.25rem 0; padding: .75rem 0; }
}

@media (max-width: 420px) {
    .trx-post-cover--generated { min-height: 380px; }
    .trx-cover-kicker { max-width: 88%; }
    .trx-cover-year { font-size: 3rem; }
    .trx-cover-title { max-width: 100%; }
    .trx-cover-keywords span:nth-child(n+3) { display: none; }
    .trx-cover-art { width: 52%; opacity: .2; }
}

@media print {
    .trx-ad-slot,
    .trx-share-actions,
    .trx-share-footer { display: none !important; }
    .trx-post-cover { break-inside: avoid; box-shadow: none; }
}


