/* tn-base.css — Global styles, variables, header, blog, sidebar, CF7
   TruNorth Jets | Code Snippets: Site Wide Header
   ========================================================================= */

/* --- CSS Variables --- */
:root {
    --tn-blue: #2c74b3;
    --tn-dark: #1a1a1a;
    --tn-text: #4b5563;
    --tn-gray: #6b7280;
    --tn-cream: #f5f4f0;
    --tn-sand: #f8f5f2;
    --tn-gold: #b89c7d;
    --trj-fade-distance: 20vh;
    --trj-linkA: 0;
}

/* --- Typography --- */
h1, h2, h3, h4, h5, p {
    hyphens: none !important;
}

/* --- Header Navigation --- */

/* Active underline pointer */
.trx-addons-nav-pointer-underline .trx-addons-menu-link-parent:after {
    background-color: #fff;
}
.elementor-sticky--effects .sticky-menu-items
.trx-addons-nav-pointer-underline .trx-addons-menu-link-parent:after {
    background-color: #3E87D3 !important;
}

/* Sticky nav link colors */
.elementor-sticky--effects .sec-nav span,
.elementor-sticky--effects .sec-nav a {
    color: #00064c !important;
    transition: color 0.3s ease;
}
.elementor-sticky--effects .sec-nav .elementor-icon-box-icon .elementor-icon,
.sec-nav .elementor-icon-box-icon .elementor-icon {
    fill: #00064c !important;
    padding-top: 5px;
    transition: color 0.3s ease;
}

/* Transparent header variant */
.hdr-transp .elementor-sticky--effects .sec-nav span,
.hdr-transp .elementor-sticky--effects .sec-nav a {
    color: #fff !important;
    transition: color 0.3s ease;
}

/* White sticky variant */
.elementor-sticky--effects .sec-nav-w span,
.elementor-sticky--effects .sec-nav-w a,
.elementor-sticky--effects .sec-nav-w .elementor-icon-box-icon .elementor-icon {
    color: #fff !important;
    fill: #fff !important;
    padding-top: 4px;
    transition: color 0.3s ease;
}

/* Remove active-state strikethrough */
.menu_hover_roll_down > ul > li:not(.menu-collapse) > a:before {
    content: none !important;
}

/* --- Sticky Header Background Fade (CSS-ONLY) ---
   Apply class "trj-header" to header section in Elementor → Advanced → CSS Classes */

.trj-header {
    background-color: transparent !important;
    transition: background-color 180ms ease;
    z-index: 9999;
    isolation: isolate;
}

.trj-header > .elementor-background-overlay,
.trj-header > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-image: none !important;
    background-color: rgb(0 0 0 / 0) !important;
    pointer-events: none;
    will-change: background-color;
    transition: background-color 180ms ease;
}

/* Fallback: snap to dark when sticky */
.trj-header.elementor-sticky--effects > .elementor-background-overlay,
.trj-header.elementor-sticky--active > .elementor-background-overlay,
.trj-header.elementor-sticky--effects > .elementor-motion-effects-container > .elementor-motion-effects-layer,
.trj-header.elementor-sticky--active > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-color: rgb(0 0 0 / 0.92) !important;
    -webkit-backdrop-filter: saturate(120%) blur(6px);
    backdrop-filter: saturate(120%) blur(6px);
}

/* Scroll-linked animation */
@keyframes trjFadeBG {
    from { background-color: rgb(0 0 0 / 0); }
    to   { background-color: rgb(0 0 0 / 0.92); }
}
@keyframes trjShadow {
    from { --shadowA: 0; }
    to   { --shadowA: 1; }
}

html {
    scroll-timeline-name: --trj-page;
    scroll-timeline-axis: block;
}

.trj-header > .elementor-background-overlay,
.trj-header > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    animation-name: trjFadeBG, trjShadow;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-fill-mode: both;
    animation-timeline: --trj-page;
    animation-range: 0 var(--trj-fade-distance);
    -webkit-backdrop-filter: saturate(120%) blur(6px);
    backdrop-filter: saturate(120%) blur(6px);
    box-shadow: 0 6px 18px rgb(0 0 0 / calc(var(--shadowA, 0) * 0.25));
}

/* Legacy scroll-timeline */
@scroll-timeline trj-header-fade {
    source: auto;
    axis: block;
    scroll-offsets: 0px, var(--trj-fade-distance);
}
.trj-header > .elementor-background-overlay,
.trj-header > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    animation-timeline: trj-header-fade, --trj-page;
}

/* Link color interpolation on scroll */
@keyframes trjLink {
    from { --trj-linkA: 0; }
    to   { --trj-linkA: 1; }
}
.trj-header .sec-nav a,
.trj-header .sec-nav span,
.trj-header .sec-nav .elementor-icon-box-icon .elementor-icon {
    color: color-mix(in oklab, #fff calc(100% - calc(var(--trj-linkA) * 100%)), #00064c calc(var(--trj-linkA) * 100%));
    fill: currentColor;
    animation: trjLink 1s linear both;
    animation-timeline: --trj-page, trj-header-fade;
    animation-range: 0 var(--trj-fade-distance);
}

/* --- Blog / Post Layout --- */
.post_content_single li {
    list-style-position: inside;
    margin-left: 1em;
    padding-left: 1em;
    text-indent: -1.4em;
    font-size: 1rem;
}
.post_header.entry-header {
    margin-bottom: 0.5em;
}
.single-post, .blog {
    background-color: var(--theme-color-bg_color_2);
}

/* --- Sidebar / Widget Layout --- */
.sidebar_default .widget + .widget {
    margin-top: 15px;
}
body.fixed_blocks_sticky .sidebar:not(.elementor-element) {
    position: relative;
}

/* --- List Icon Styling (wp-block-list) --- */
.wp-block-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.wp-block-list li {
    position: relative;
    padding: 0 0 0 1.6em;
    margin: 0.5em 0 0.2em 0.7em;
}
.wp-block-list.article li,
.wp-block-list.radio li,
.wp-block-list.tv li {
    position: relative;
    padding-left: 1.5rem;
}

.wp-block-list.article li::before,
.wp-block-list.radio li::before,
.wp-block-list.tv li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.1em;
    width: 1rem;
    height: 1rem;
    background-color: #000;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

/* newspaper */
.wp-block-list.article li::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 5a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v11a3 3 0 0 0 3 3H8a5 5 0 0 1-5-5V5zm4 2v2h7V7H7zm0 4v1h7v-1H7zm0 3v1h5v-1H7z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 5a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v11a3 3 0 0 0 3 3H8a5 5 0 0 1-5-5V5zm4 2v2h7V7H7zm0 4v1h7v-1H7zm0 3v1h5v-1H7z'/%3E%3C/svg%3E");
}

/* radio */
.wp-block-list.radio li::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 7h18a2 2 0 0 1 2 2v8a4 4 0 0 1-4 4H5a4 4 0 0 1-4-4V9a2 2 0 0 1 2-2zm3 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm6 1h7v2h-7v-2zm0 4h5v2h-5v-2zM7 2l10 3-1 2L6 4 7 2z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 7h18a2 2 0 0 1 2 2v8a4 4 0 0 1-4 4H5a4 4 0 0 1-4-4V9a2 2 0 0 1 2-2zm3 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm6 1h7v2h-7v-2zm0 4h5v2h-5v-2zM7 2l10 3-1 2L6 4 7 2z'/%3E%3C/svg%3E");
}

/* tv */
.wp-block-list.tv li::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8 3l4 4 4-4 1.5 1.5L14.5 8H18a4 4 0 0 1 4 4v5a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4v-5a4 4 0 0 1 4-4h3.5L6.5 4.5 8 3zm-2 7a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a2 2 0 0 0-2-2H6z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8 3l4 4 4-4 1.5 1.5L14.5 8H18a4 4 0 0 1 4 4v5a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4v-5a4 4 0 0 1 4-4h3.5L6.5 4.5 8 3zm-2 7a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a2 2 0 0 0-2-2H6z'/%3E%3C/svg%3E");
}


/* --- Contact Form 7 (CF7) --- */
.wpcf7-text,
input[type="email"],
input[type="url"],
input[type="tel"],
.wpcf7 textarea,
.wpcf7-form select {
    border: 1px solid #e4e4e4 !important;
    background: transparent !important;
    box-shadow: none;
    padding: 5px !important;
    margin: 5px 0;
    border-radius: 4px;
    color: #fff !important;
}
.wpcf7-form label {
    font-size: 0.9rem;
    font-family: 'Commissioner', sans-serif !important;
    color: #fff;
    font-weight: 600;
    margin-bottom: 15px;
}
.wpcf7 textarea {
    height: 80px;
    width: 100%;
    max-width: inherit;
}
.wpcf7 input {
    border-radius: 4px !important;
    padding: 5px !important;
    width: 100%;
    max-width: inherit;
}
.wpcf7 input[type="submit"] {
    width: 200px !important;
    padding: 9px 12px;
    border-radius: 24px;
    background-color: #3E87D3 !important;
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
}
.wpcf7 input[type="submit"]:hover {
    background-color: #586775 !important;
}
.wpcf7-not-valid-tip {
    border-radius: 4px;
    padding: 4px;
    background-color: rgba(0, 0, 0, 0.5);
    color: rgba(255, 0, 0, 0.71);
    font-weight: 600;
    width: 320px;
}
.wpcf7-not-valid-tip:before {
    content: '⇡ ';
}
.wpcf7-response-output {
    border: 0 !important;
    background: #fff !important;
    color: #382673;
    padding: 15px !important;
    text-align: center;
    border-radius: 4px;
}

/* CF7 Focus & Autofill */
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="text"]:focus-visible,
.wpcf7 input[type="email"]:focus-visible,
.wpcf7 input[type="tel"]:focus-visible {
    border-color: #fff !important;
    background: transparent !important;
    box-shadow: none;
    padding: 5px !important;
    margin-bottom: 5px;
}
.wpcf7 input[type="text"]:active,
.wpcf7 input[type="email"]:active,
.wpcf7 input[type="tel"]:active,
.wpcf7 textarea:active {
    background: transparent;
    box-shadow: none;
    color: #000;
}
input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 30px rgba(255, 255, 255, 0.7) inset !important;
}
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px rgba(255, 255, 255, 1) inset !important;
}

/* --- Global Fixes --- */
.grecaptcha-badge {
    visibility: hidden;
}